diff --git a/examples/lsig_with_app/artifacts/OptInLsig.lsig.teal b/examples/lsig_with_app/artifacts/OptInLsig.lsig.teal index b0eef885c..bc92ad64e 100644 --- a/examples/lsig_with_app/artifacts/OptInLsig.lsig.teal +++ b/examples/lsig_with_app/artifacts/OptInLsig.lsig.teal @@ -1,15 +1,11 @@ #pragma version 10 //#pragma mode logicsig -intcblock TMPL_APP_ID 0 1 +intcblock 0 1 TMPL_APP_ID // This TEAL was generated by TEALScript v0.105.2 // https://github.com/algorandfoundation/TEALScript - -// The following lines of TEAL are used to initialize template variables in scratch slots -intc 0 // TMPL_APP_ID - -// The address of this logic signature is QUL5U6CEH7Q5HGEG2A2LNHNT5EKMYKLUFDDMTW6HWHLSGTNEF456R7BIIM +// The address of this logic signature is FKZPLQTSDQKAIA2GQUXW2QPXIN7P5VBZU7H67MP5WZSBLJNMXMMALMPEME b *route_logic @@ -17,7 +13,7 @@ b *route_logic *route_logic: // execute logic()void callsub logic - intc 2 // 1 + intc 1 // 1 return // logic(): void @@ -51,7 +47,7 @@ logic: // verify assetAmount txn AssetAmount - intc 1 // 0 + intc 0 // 0 == // transaction verification failed: {"txn":"this.txn","field":"assetAmount","expected":"0"} @@ -67,7 +63,7 @@ logic: // verify fee txn Fee - intc 1 // 0 + intc 0 // 0 == // transaction verification failed: {"txn":"this.txn","field":"fee","expected":"0"} @@ -92,7 +88,7 @@ logic: // examples/lsig_with_app/lsig_with_app.algo.ts:26 // appCall = this.txnGroup[this.txn.groupIndex + 1] txn GroupIndex - intc 2 // 1 + intc 1 // 1 + frame_bury 0 // appCall: txn @@ -100,7 +96,7 @@ logic: // assert(appCall.applicationID === this.APP_ID) frame_dig 0 // appCall: txn gtxns ApplicationID - intc 0 // TMPL_APP_ID + intc 2 // TMPL_APP_ID == assert diff --git a/examples/lsig_with_app/artifacts/OptInLsig.src_map.json b/examples/lsig_with_app/artifacts/OptInLsig.src_map.json index 6b988bb3d..458f0891e 100644 --- a/examples/lsig_with_app/artifacts/OptInLsig.src_map.json +++ b/examples/lsig_with_app/artifacts/OptInLsig.src_map.json @@ -9,299 +9,299 @@ }, { "teal": 10, - "source": "examples/lsig_with_app/lsig_with_app.algo.ts:35", + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:8", "pc": [ - 1 + 1, + 2, + 3 ] }, { - "teal": 14, - "source": "examples/lsig_with_app/lsig_with_app.algo.ts:8", + "teal": 15, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:12", "pc": [ - 2, - 3, - 4 + 4, + 5, + 6 ] }, { - "teal": 19, + "teal": 16, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:12", "pc": [ - 5, - 6, 7 ] }, { - "teal": 20, + "teal": 17, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:12", "pc": [ 8 ] }, { - "teal": 21, + "teal": 23, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:12", "pc": [ - 9 + 9, + 10, + 11 ] }, { - "teal": 27, + "teal": 26, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:12", "pc": [ - 10, - 11, - 12 + 12, + 13 ] }, { - "teal": 30, - "source": "examples/lsig_with_app/lsig_with_app.algo.ts:12", + "teal": 41, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:14", "pc": [ - 13, - 14 + 14, + 15 ] }, { - "teal": 45, + "teal": 42, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:14", "pc": [ - 15, - 16 + 16, + 17 ] }, { - "teal": 46, + "teal": 43, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:14", "pc": [ - 17, 18 ] }, { - "teal": 47, + "teal": 46, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:14", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"typeEnum\",\"expected\":\"axfer\"}", "pc": [ 19 ] }, { - "teal": 50, - "source": "examples/lsig_with_app/lsig_with_app.algo.ts:14", - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"typeEnum\",\"expected\":\"axfer\"}", + "teal": 49, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:15", "pc": [ - 20 + 20, + 21 ] }, { - "teal": 53, + "teal": 50, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:15", "pc": [ - 21, 22 ] }, { - "teal": 54, + "teal": 51, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:15", "pc": [ 23 ] }, { - "teal": 55, + "teal": 54, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:15", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"assetAmount\",\"expected\":\"0\"}", "pc": [ 24 ] }, { - "teal": 58, - "source": "examples/lsig_with_app/lsig_with_app.algo.ts:15", - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"assetAmount\",\"expected\":\"0\"}", + "teal": 57, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:16", "pc": [ - 25 + 25, + 26 ] }, { - "teal": 61, + "teal": 58, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:16", "pc": [ - 26, - 27 + 27, + 28 ] }, { - "teal": 62, + "teal": 59, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:16", "pc": [ - 28, 29 ] }, { - "teal": 63, + "teal": 62, "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": [ 30 ] }, { - "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\"}", + "teal": 65, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:19", "pc": [ - 31 + 31, + 32 ] }, { - "teal": 69, + "teal": 66, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:19", "pc": [ - 32, 33 ] }, { - "teal": 70, + "teal": 67, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:19", "pc": [ 34 ] }, { - "teal": 71, + "teal": 70, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:19", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"fee\",\"expected\":\"0\"}", "pc": [ 35 ] }, { - "teal": 74, - "source": "examples/lsig_with_app/lsig_with_app.algo.ts:19", - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"fee\",\"expected\":\"0\"}", + "teal": 73, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:21", "pc": [ - 36 + 36, + 37 ] }, { - "teal": 77, + "teal": 74, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:21", "pc": [ - 37, - 38 + 38, + 39 ] }, { - "teal": 78, + "teal": 75, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:21", "pc": [ - 39, 40 ] }, { - "teal": 79, + "teal": 78, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:21", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"rekeyTo\",\"expected\":\"globals.zeroAddress\"}", "pc": [ 41 ] }, { - "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\"}", + "teal": 81, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:23", "pc": [ - 42 + 42, + 43 ] }, { - "teal": 85, + "teal": 82, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:23", "pc": [ - 43, - 44 + 44, + 45 ] }, { - "teal": 86, + "teal": 83, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:23", "pc": [ - 45, 46 ] }, { - "teal": 87, + "teal": 86, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:23", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"assetCloseTo\",\"expected\":\"globals.zeroAddress\"}", "pc": [ 47 ] }, { "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\"}", + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:26", "pc": [ - 48 + 48, + 49 ] }, { - "teal": 94, + "teal": 91, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:26", "pc": [ - 49, 50 ] }, { - "teal": 95, + "teal": 92, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:26", "pc": [ 51 ] }, { - "teal": 96, + "teal": 93, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:26", "pc": [ - 52 + 52, + 53 ] }, { "teal": 97, - "source": "examples/lsig_with_app/lsig_with_app.algo.ts:26", + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:29", "pc": [ - 53, - 54 + 54, + 55 ] }, { - "teal": 101, + "teal": 98, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:29", "pc": [ - 55, - 56 + 56, + 57 ] }, { - "teal": 102, + "teal": 99, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:29", "pc": [ - 57, 58 ] }, { - "teal": 103, + "teal": 100, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:29", "pc": [ 59 ] }, { - "teal": 104, + "teal": 101, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:29", "pc": [ 60 @@ -309,59 +309,52 @@ }, { "teal": 105, - "source": "examples/lsig_with_app/lsig_with_app.algo.ts:29", - "pc": [ - 61 - ] - }, - { - "teal": 109, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:30", "pc": [ - 62, - 63 + 61, + 62 ] }, { - "teal": 110, + "teal": 106, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:30", "pc": [ + 63, 64, - 65, - 66 + 65 ] }, { - "teal": 111, + "teal": 107, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:30", "pc": [ + 66, 67, 68, 69, 70, - 71, - 72 + 71 ] }, { - "teal": 112, + "teal": 108, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:30", "pc": [ - 73 + 72 ] }, { - "teal": 113, + "teal": 109, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:30", "pc": [ - 74 + 73 ] }, { - "teal": 114, + "teal": 110, "source": "examples/lsig_with_app/lsig_with_app.algo.ts:12", "pc": [ - 75 + 74 ] } ] \ No newline at end of file diff --git a/examples/reti/artifacts/StakingPool.approval.teal b/examples/reti/artifacts/StakingPool.approval.teal index 147d6a5d5..d7cf18b75 100644 --- a/examples/reti/artifacts/StakingPool.approval.teal +++ b/examples/reti/artifacts/StakingPool.approval.teal @@ -1,16 +1,12 @@ #pragma version 10 -intcblock 0 1 6 64 32 16 128 200 5 300 1000 4 1_000_000 2_100_000 8 TMPL_nfdRegistryAppId 100000 400 2 40 48 -bytecblock 0x 0x63726561746f72417070 0x7374616b657273 0x76616c696461746f724964 0x706f6f6c4964 0x0a8101 0x7374616b6564 0x7374616b65416363756d756c61746f72 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0x0000000000000000 0x726f756e6473506572446179 0x62696e526f756e645374617274 0x726577617264416363756d756c61746f72 0x6e756d5374616b657273 0x6c6173745061796f7574 0x75aff61d 0x00000000000000000000000000000000 0x00000000000000000000000000000064 0x6d696e456e7472795374616b65 0x65706f63684e756d626572 0x65776d61 0x151f7c75 TMPL_feeSinkAddr 0xa2dc51b5 0x572767d1 0x4df8d86e 0x0c2245e1 0x00 +intcblock 0 1 6 64 32 16 128 200 5 300 1000 4 1_000_000 2_100_000 8 100000 400 2 40 48 TMPL_nfdRegistryAppId +bytecblock 0x 0x63726561746f72417070 0x7374616b657273 0x76616c696461746f724964 0x706f6f6c4964 0x0a8101 0x7374616b6564 0x7374616b65416363756d756c61746f72 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0x0000000000000000 0x726f756e6473506572446179 0x62696e526f756e645374617274 0x726577617264416363756d756c61746f72 0x6e756d5374616b657273 0x6c6173745061796f7574 0x75aff61d 0x00000000000000000000000000000000 0x00000000000000000000000000000064 0x6d696e456e7472795374616b65 0x65706f63684e756d626572 0x65776d61 0x151f7c75 0xa2dc51b5 0x572767d1 0x4df8d86e 0x0c2245e1 0x00 TMPL_feeSinkAddr // This TEAL was generated by TEALScript v0.105.2 // 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 -bytec 22 // TMPL_feeSinkAddr -intc 15 // 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 // Here, action refers to the OnComplete in combination with whether the app is being created or called @@ -238,7 +234,7 @@ costForBoxStorage: // return SCBOX_PERBOX + totalNumBytes * SCBOX_PERBYTE; pushint 2500 frame_dig -1 // totalNumBytes: uint64 - intc 17 // 400 + intc 16 // 400 * + retsub @@ -346,7 +342,7 @@ initStorage: *skip_and0: bz *ternary0_false - intc 16 // 100000 + intc 15 // 100000 b *ternary0_end *ternary0_false: @@ -360,7 +356,7 @@ initStorage: // ALGORAND_ACCOUNT_MIN_BALANCE + // extraMBR + // this.costForBoxStorage(7 /* 'stakers' name */ + len() * MAX_STAKERS_PER_POOL) - intc 16 // 100000 + intc 15 // 100000 frame_dig 2 // extraMBR: uint64 + pushint 12807 @@ -1369,7 +1365,7 @@ removeStake: itxn_begin intc 2 // appl itxn_field TypeEnum - bytec 23 // method "stakeRemoved((uint64,uint64,uint64),address,uint64,uint64,bool)void" + bytec 22 // method "stakeRemoved((uint64,uint64,uint64),address,uint64,uint64,bool)void" itxn_field ApplicationArgs // examples/reti/stakingPool.algo.ts:367 @@ -1406,7 +1402,7 @@ removeStake: itob itxn_field ApplicationArgs frame_dig 4 // stakerRemoved: bool - bytec 27 // 0x00 + bytec 26 // 0x00 intc 0 // 0 uncover 2 setbit @@ -1681,7 +1677,7 @@ claimTokens: itxn_begin intc 2 // appl itxn_field TypeEnum - bytec 23 // method "stakeRemoved((uint64,uint64,uint64),address,uint64,uint64,bool)void" + bytec 22 // method "stakeRemoved((uint64,uint64,uint64),address,uint64,uint64,bool)void" itxn_field ApplicationArgs // examples/reti/stakingPool.algo.ts:434 @@ -1717,7 +1713,7 @@ claimTokens: itob itxn_field ApplicationArgs intc 0 // 0 - bytec 27 // 0x00 + bytec 26 // 0x00 intc 0 // 0 uncover 2 setbit @@ -2189,7 +2185,7 @@ epochBalanceUpdate: itxn_begin intc 2 // appl itxn_field TypeEnum - bytec 24 // method "getPoolAppId(uint64,uint64)uint64" + bytec 23 // method "getPoolAppId(uint64,uint64)uint64" itxn_field ApplicationArgs // examples/reti/stakingPool.algo.ts:562 @@ -2247,7 +2243,7 @@ epochBalanceUpdate: itxn_begin intc 2 // appl itxn_field TypeEnum - bytec 25 // method "setTokenPayoutRatio(uint64)(uint64[24],uint64)" + bytec 24 // method "setTokenPayoutRatio(uint64)(uint64[24],uint64)" itxn_field ApplicationArgs // examples/reti/stakingPool.algo.ts:572 @@ -2286,7 +2282,7 @@ epochBalanceUpdate: itxn_begin intc 2 // appl itxn_field TypeEnum - bytec 26 // method "proxiedSetTokenPayoutRatio((uint64,uint64,uint64))(uint64[24],uint64)" + bytec 25 // method "proxiedSetTokenPayoutRatio((uint64,uint64,uint64))(uint64[24],uint64)" itxn_field ApplicationArgs // examples/reti/stakingPool.algo.ts:578 @@ -2825,7 +2821,7 @@ epochBalanceUpdate: // examples/reti/stakingPool.algo.ts:733 // globals.opcodeBudget < 400 global OpcodeBudget - intc 17 // 400 + intc 16 // 400 < bz *if34_end @@ -2977,7 +2973,7 @@ epochBalanceUpdate: // examples/reti/stakingPool.algo.ts:763 // cmpStaker.rewardTokenBalance += stakerTokenReward frame_dig 25 // cmpStaker: (address,uint64,uint64,uint64,uint64) - intc 20 // headOffset + intc 19 // headOffset frame_dig 25 // cmpStaker: (address,uint64,uint64,uint64,uint64) extract 48 8 btoi @@ -3060,7 +3056,7 @@ epochBalanceUpdate: // examples/reti/stakingPool.algo.ts:779 // cmpStaker.totalRewarded += stakerReward frame_dig 25 // cmpStaker: (address,uint64,uint64,uint64,uint64) - intc 19 // headOffset + intc 18 // headOffset frame_dig 25 // cmpStaker: (address,uint64,uint64,uint64,uint64) extract 40 8 btoi @@ -3239,7 +3235,7 @@ epochBalanceUpdate: // examples/reti/stakingPool.algo.ts:814 // cmpStaker.rewardTokenBalance += stakerTokenReward frame_dig 32 // cmpStaker: (address,uint64,uint64,uint64,uint64) - intc 20 // headOffset + intc 19 // headOffset frame_dig 32 // cmpStaker: (address,uint64,uint64,uint64,uint64) extract 48 8 btoi @@ -3301,7 +3297,7 @@ epochBalanceUpdate: // examples/reti/stakingPool.algo.ts:822 // cmpStaker.totalRewarded += stakerReward frame_dig 32 // cmpStaker: (address,uint64,uint64,uint64,uint64) - intc 19 // headOffset + intc 18 // headOffset frame_dig 32 // cmpStaker: (address,uint64,uint64,uint64,uint64) extract 40 8 btoi @@ -3575,7 +3571,7 @@ goOnline: // fee: this.getGoOnlineFee(), // }) itxn_begin - intc 18 // keyreg + intc 17 // keyreg itxn_field TypeEnum // examples/reti/stakingPool.algo.ts:885 @@ -3654,7 +3650,7 @@ goOffline: // examples/reti/stakingPool.algo.ts:907 // sendOfflineKeyRegistration({}) itxn_begin - intc 18 // keyreg + intc 17 // keyreg itxn_field TypeEnum // Fee field not set, defaulting to 0 @@ -3703,7 +3699,7 @@ linkToNFD: // examples/reti/stakingPool.algo.ts:917 // applicationID: AppID.fromUint64(this.nfdRegistryAppId) - intc 15 // TMPL_nfdRegistryAppId + intc 20 // TMPL_nfdRegistryAppId itxn_field ApplicationID // examples/reti/stakingPool.algo.ts:918 @@ -3806,7 +3802,7 @@ proxiedSetTokenPayoutRatio: itxn_begin intc 2 // appl itxn_field TypeEnum - bytec 24 // method "getPoolAppId(uint64,uint64)uint64" + bytec 23 // method "getPoolAppId(uint64,uint64)uint64" itxn_field ApplicationArgs // examples/reti/stakingPool.algo.ts:935 @@ -3870,7 +3866,7 @@ proxiedSetTokenPayoutRatio: itxn_begin intc 2 // appl itxn_field TypeEnum - bytec 25 // method "setTokenPayoutRatio(uint64)(uint64[24],uint64)" + bytec 24 // method "setTokenPayoutRatio(uint64)(uint64[24],uint64)" itxn_field ApplicationArgs // examples/reti/stakingPool.algo.ts:942 @@ -3971,7 +3967,7 @@ getFeeSink: // examples/reti/stakingPool.algo.ts:956 // return this.feeSinkAddr; - bytec 22 // TMPL_feeSinkAddr + bytec 27 // TMPL_feeSinkAddr retsub // algoSaturationLevel(): uint64 @@ -4355,7 +4351,7 @@ setRoundsPerDay: pushbytes 0x400e14fb // method "goOnline(pay,byte[],byte[],byte[],uint64,uint64,uint64)void" pushbytes 0x51ef3b21 // method "goOffline()void" pushbytes 0xa24e2717 // method "linkToNFD(uint64,string)void" - bytec 26 // method "proxiedSetTokenPayoutRatio((uint64,uint64,uint64))(uint64[24],uint64)" + bytec 25 // 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 diff --git a/examples/reti/artifacts/StakingPool.arc32.json b/examples/reti/artifacts/StakingPool.arc32.json index 33f1de3b0..74200fafc 100644 --- a/examples/reti/artifacts/StakingPool.arc32.json +++ b/examples/reti/artifacts/StakingPool.arc32.json @@ -161,7 +161,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAwIDEgNiA2NCAzMiAxNiAxMjggMjAwIDUgMzAwIDEwMDAgNCAxXzAwMF8wMDAgMl8xMDBfMDAwIDggVE1QTF9uZmRSZWdpc3RyeUFwcElkIDEwMDAwMCA0MDAgMiA0MCA0OApieXRlY2Jsb2NrIDB4IDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgMHg3Mzc0NjE2YjY1NzI3MyAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgMHg3MDZmNmY2YzQ5NjQgMHgwYTgxMDEgMHg3Mzc0NjE2YjY1NjQgMHg3Mzc0NjE2YjY1NDE2MzYzNzU2ZDc1NmM2MTc0NmY3MiAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGIDB4MDAwMDAwMDAwMDAwMDAwMCAweDcyNmY3NTZlNjQ3MzUwNjU3MjQ0NjE3OSAweDYyNjk2ZTUyNmY3NTZlNjQ1Mzc0NjE3Mjc0IDB4NzI2NTc3NjE3MjY0NDE2MzYzNzU2ZDc1NmM2MTc0NmY3MiAweDZlNzU2ZDUzNzQ2MTZiNjU3MjczIDB4NmM2MTczNzQ1MDYxNzk2Zjc1NzQgMHg3NWFmZjYxZCAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQgMHg2ZDY5NmU0NTZlNzQ3Mjc5NTM3NDYxNmI2NSAweDY1NzA2ZjYzNjg0ZTc1NmQ2MjY1NzIgMHg2NTc3NmQ2MSAweDE1MWY3Yzc1IFRNUExfZmVlU2lua0FkZHIgMHhhMmRjNTFiNSAweDU3Mjc2N2QxIDB4NGRmOGQ4NmUgMHgwYzIyNDVlMSAweDAwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNS4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIGxpbmVzIG9mIFRFQUwgYXJlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0ZW1wbGF0ZSB2YXJpYWJsZXMgaW4gc2NyYXRjaCBzbG90cwpieXRlYyAyMiAvLyBUTVBMX2ZlZVNpbmtBZGRyCmludGMgMTUgLy8gVE1QTF9uZmRSZWdpc3RyeUFwcElkCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnRjIDIgLy8gNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbiAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV91cGRhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgdXBkYXRlQXBwbGljYXRpb24KCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHVwZGF0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKdXBkYXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTQKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gQWRkcmVzcy5mcm9tQWRkcmVzcygnTFo0VjJJUlZMQ1hGSks0UkVKVjRUQUdFS0VZVEEyR01SNlRDMjM0NE9CM0wzQUYzTVdYWjZaQUZJUScpLAoJLy8gICAgICAgJ1RlbXBvcmFyeTogY29udHJhY3QgaXMgdXBncmFkZWFibGUgYnV0IG9ubHkgZHVyaW5nIHRlc3RpbmcgYW5kIG9ubHkgZnJvbSBhIGRldmVsb3BtZW50IGFjY291bnQnCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJcHVzaGJ5dGVzIDB4NWU3OTVkMjIzNTU4YWU1NGFiOTEyMjZiYzk4MGM0NTEzMTMwNjhjYzhmYTYyZDZmOWM3MDc2YmQ4MGJiNjVhZiAvLyBhZGRyICJMWjRWMklSVkxDWEZKSzRSRUpWNFRBR0VLRVlUQTJHTVI2VEMyMzQ0T0IzTDNBRjNNV1haNlpBRklRIgoJPT0KCgkvLyBUZW1wb3Jhcnk6IGNvbnRyYWN0IGlzIHVwZ3JhZGVhYmxlIGJ1dCBvbmx5IGR1cmluZyB0ZXN0aW5nIGFuZCBvbmx5IGZyb20gYSBkZXZlbG9wbWVudCBhY2NvdW50Cglhc3NlcnQKCXJldHN1YgoKLy8gY3JlYXRlQXBwbGljYXRpb24odWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCS8vIG1pbkVudHJ5U3Rha2U6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJYnRvaQoKCS8vIHBvb2xJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGNyZWF0aW5nQ29udHJhY3RJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBjcmVhdGVBcHBsaWNhdGlvbih1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBjcmVhdGVBcHBsaWNhdGlvbgoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gY3JlYXRlQXBwbGljYXRpb24oY3JlYXRpbmdDb250cmFjdElkOiB1aW50NjQsIHZhbGlkYXRvcklkOiB1aW50NjQsIHBvb2xJZDogdWludDY0LCBtaW5FbnRyeVN0YWtlOiB1aW50NjQpOiB2b2lkCi8vCi8vIEluaXRpYWxpemUgdGhlIHN0YWtpbmcgcG9vbCB3LyBvd25lciBhbmQgbWFuYWdlciwgYnV0IGNhbiBvbmx5IGJlIGNyZWF0ZWQgYnkgdGhlIHZhbGlkYXRvciBjb250cmFjdC4KLy8gQHBhcmFtIHt1aW50NjR9IGNyZWF0aW5nQ29udHJhY3RJZCAtIGlkIG9mIGNvbnRyYWN0IHRoYXQgY29uc3RydWN0ZWQgdXMgLSB0aGUgdmFsaWRhdG9yIGFwcGxpY2F0aW9uIChzaW5nbGUgZ2xvYmFsIGluc3RhbmNlKQovLyBAcGFyYW0ge3VpbnQ2NH0gdmFsaWRhdG9ySWQgLSBpZCBvZiB2YWxpZGF0b3Igd2UncmUgYSBzdGFraW5nIHBvb2wgb2YKLy8gQHBhcmFtIHt1aW50NjR9IHBvb2xJZCAtIHdoaWNoIHBvb2wgaWQgYXJlIHdlCi8vIEBwYXJhbSB7dWludDY0fSBtaW5FbnRyeVN0YWtlIC0gbWluaW11bSBhbW91bnQgdG8gYmUgaW4gcG9vbCwgYnV0IGFsc28gbWluaW11bSBhbW91bnQgYmFsYW5jZSBjYW4ndCBnbyBiZWxvdyAod2l0aG91dCByZW1vdmluZyBhbGwhKQpjcmVhdGVBcHBsaWNhdGlvbjoKCXByb3RvIDQgMAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTA4CgkvLyBjcmVhdGluZ0NvbnRyYWN0SWQgPT09IDAKCWZyYW1lX2RpZyAtMSAvLyBjcmVhdGluZ0NvbnRyYWN0SWQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglieiAqaWYwX2Vsc2UKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTAKCS8vIGFzc2VydCh2YWxpZGF0b3JJZCA9PT0gMCkKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpbnRjIDAgLy8gMAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTEKCS8vIGFzc2VydChwb29sSWQgPT09IDApCglmcmFtZV9kaWcgLTMgLy8gcG9vbElkOiB1aW50NjQKCWludGMgMCAvLyAwCgk9PQoJYXNzZXJ0CgliICppZjBfZW5kCgoqaWYwX2Vsc2U6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTEzCgkvLyBhc3NlcnQodmFsaWRhdG9ySWQgIT09IDApCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTE0CgkvLyBhc3NlcnQocG9vbElkICE9PSAwKQoJZnJhbWVfZGlnIC0zIC8vIHBvb2xJZDogdWludDY0CglpbnRjIDAgLy8gMAoJIT0KCWFzc2VydAoKKmlmMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTE2CgkvLyBhc3NlcnQobWluRW50cnlTdGFrZSA+PSBNSU5fQUxHT19TVEFLRV9QRVJfUE9PTCwgJ3N0YWtpbmcgcG9vbCBtdXN0IGhhdmUgbWluaW11bSBlbnRyeSBvZiAxIGFsZ28nKQoJZnJhbWVfZGlnIC00IC8vIG1pbkVudHJ5U3Rha2U6IHVpbnQ2NAoJcHVzaGludCAxMDAwMDAwCgk+PQoKCS8vIHN0YWtpbmcgcG9vbCBtdXN0IGhhdmUgbWluaW11bSBlbnRyeSBvZiAxIGFsZ28KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTcKCS8vIHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlID0gY3JlYXRpbmdDb250cmFjdElkCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWZyYW1lX2RpZyAtMSAvLyBjcmVhdGluZ0NvbnRyYWN0SWQ6IHVpbnQ2NAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTE4CgkvLyB0aGlzLnZhbGlkYXRvcklkLnZhbHVlID0gdmFsaWRhdG9ySWQKCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTkKCS8vIHRoaXMucG9vbElkLnZhbHVlID0gcG9vbElkCglieXRlYyA0IC8vICAicG9vbElkIgoJZnJhbWVfZGlnIC0zIC8vIHBvb2xJZDogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjAKCS8vIHRoaXMubnVtU3Rha2Vycy52YWx1ZSA9IDAKCWJ5dGVjIDEzIC8vICAibnVtU3Rha2VycyIKCWludGMgMCAvLyAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjEKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlID0gMAoJYnl0ZWMgNiAvLyAgInN0YWtlZCIKCWludGMgMCAvLyAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjIKCS8vIHRoaXMubWluRW50cnlTdGFrZS52YWx1ZSA9IG1pbkVudHJ5U3Rha2UKCWJ5dGVjIDE4IC8vICAibWluRW50cnlTdGFrZSIKCWZyYW1lX2RpZyAtNCAvLyBtaW5FbnRyeVN0YWtlOiB1aW50NjQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEyMwoJLy8gdGhpcy5sYXN0UGF5b3V0LnZhbHVlID0gZ2xvYmFscy5yb3VuZAoJYnl0ZWMgMTQgLy8gICJsYXN0UGF5b3V0IgoJZ2xvYmFsIFJvdW5kCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjQKCS8vIHRoaXMuZXBvY2hOdW1iZXIudmFsdWUgPSAwCglieXRlYyAxOSAvLyAgImVwb2NoTnVtYmVyIgoJaW50YyAwIC8vIDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEyNgoJLy8gdGhpcy5zZXRSb3VuZHNQZXJEYXkoKQoJY2FsbHN1YiBzZXRSb3VuZHNQZXJEYXkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTI3CgkvLyB0aGlzLmJpblJvdW5kU3RhcnQudmFsdWUgPSBnbG9iYWxzLnJvdW5kIC0gKGdsb2JhbHMucm91bmQgJSB0aGlzLnJvdW5kc1BlckRheS52YWx1ZSkKCWJ5dGVjIDExIC8vICAiYmluUm91bmRTdGFydCIKCWdsb2JhbCBSb3VuZAoJZ2xvYmFsIFJvdW5kCglieXRlYyAxMCAvLyAgInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CgklCgktCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjgKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSA9IDAgYXMgdWludDEyOAoJYnl0ZWMgNyAvLyAgInN0YWtlQWNjdW11bGF0b3IiCglieXRlYyAxNiAvLyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjkKCS8vIHRoaXMucmV3YXJkQWNjdW11bGF0b3IudmFsdWUgPSAwCglieXRlYyAxMiAvLyAgInJld2FyZEFjY3VtdWxhdG9yIgoJaW50YyAwIC8vIDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEzMAoJLy8gdGhpcy53ZWlnaHRlZE1vdmluZ0F2ZXJhZ2UudmFsdWUgPSAwIGFzIHVpbnQxMjgKCWJ5dGVjIDIwIC8vICAiZXdtYSIKCWJ5dGVjIDE2IC8vIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGdhcygpdm9pZAoqYWJpX3JvdXRlX2dhczoKCS8vIGV4ZWN1dGUgZ2FzKCl2b2lkCgljYWxsc3ViIGdhcwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2FzKCk6IHZvaWQKLy8KLy8gZ2FzIGlzIGEgZHVtbXkgbm8tb3AgY2FsbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHBvb2wtdXAgcmVzb3VyY2UgcmVmZXJlbmNlcyBhbmQgb3Bjb2RlIGNvc3QKZ2FzOgoJcHJvdG8gMCAwCglyZXRzdWIKCi8vIGNvc3RGb3JCb3hTdG9yYWdlKHRvdGFsTnVtQnl0ZXM6IHVpbnQ2NCk6IHVpbnQ2NApjb3N0Rm9yQm94U3RvcmFnZToKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNDIKCS8vIHJldHVybiBTQ0JPWF9QRVJCT1ggKyB0b3RhbE51bUJ5dGVzICogU0NCT1hfUEVSQllURTsKCXB1c2hpbnQgMjUwMAoJZnJhbWVfZGlnIC0xIC8vIHRvdGFsTnVtQnl0ZXM6IHVpbnQ2NAoJaW50YyAxNyAvLyA0MDAKCSoKCSsKCXJldHN1YgoKLy8gaW5pdFN0b3JhZ2UocGF5KXZvaWQKKmFiaV9yb3V0ZV9pbml0U3RvcmFnZToKCS8vIG1iclBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludGMgMSAvLyAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnRjIDEgLy8gIHBheQoJPT0KCgkvLyBhcmd1bWVudCAwIChtYnJQYXltZW50KSBmb3IgaW5pdFN0b3JhZ2UgbXVzdCBiZSBhIHBheSB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBpbml0U3RvcmFnZShwYXkpdm9pZAoJY2FsbHN1YiBpbml0U3RvcmFnZQoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gaW5pdFN0b3JhZ2UobWJyUGF5bWVudDogUGF5VHhuKTogdm9pZAovLwovLyBDYWxsZWQgYWZ0ZXIgd2UncmUgY3JlYXRlZCBhbmQgdGhlbiBmdW5kZWQsIHNvIHdlIGNhbiBjcmVhdGUgb3VyIGxhcmdlIHN0YWtlcnMgbGVkZ2VyIHN0b3JhZ2UKLy8gQ2FsbGVyIGhhcyB0byBnZXQgTUJSIGFtb3VudHMgZnJvbSBWYWxpZGF0b3JSZWdpc3RyeSB0byBrbm93IGhvdyBtdWNoIHRvIGZ1bmQgdXMgdG8gY292ZXIgdGhlIGJveCBzdG9yYWdlIGNvc3QKLy8gSWYgdGhpcyBpcyBwb29sIDEgQU5EIHRoZSB2YWxpZGF0b3IgaGFzIHNwZWNpZmllZCBhIHJld2FyZCB0b2tlbiwgb3B0LWluIHRvIHRoYXQgdG9rZW4KLy8gc28gdGhhdCB0aGUgdmFsaWRhdG9yIGNhbiBzZWVkIHRoZSBwb29sIHdpdGggZnV0dXJlIHJld2FyZHMgb2YgdGhhdCB0b2tlbi4KLy8gQHBhcmFtIG1iclBheW1lbnQgcGF5bWVudCBmcm9tIGNhbGxlciB3aGljaCBjb3ZlcnMgbWJyIGluY3JlYXNlIG9mIG5ldyBzdGFraW5nIHBvb2xzJyBzdG9yYWdlCmluaXRTdG9yYWdlOgoJcHJvdG8gMSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gMwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNTMKCS8vIGFzc2VydCghdGhpcy5zdGFrZXJzLmV4aXN0cywgJ3N0YWtpbmcgcG9vbCBhbHJlYWR5IGluaXRpYWxpemVkJykKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCgoJLy8gc3Rha2luZyBwb29sIGFscmVhZHkgaW5pdGlhbGl6ZWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNTYKCS8vIHZhbGlkYXRvckNvbmZpZyA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuZ2V0VmFsaWRhdG9yQ29uZmlnPih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAyIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlYyAxNSAvLyAgbWV0aG9kICJnZXRWYWxpZGF0b3JDb25maWcodWludDY0KSh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KSIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE1NwoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkKCWJ5dGVjIDEgLy8gICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNTgKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXQoJYnl0ZWMgMyAvLyAgInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnRjIDEgLy8gMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglmcmFtZV9idXJ5IDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTYwCgkvLyBpc1Rva2VuRWxpZ2libGUgPSB2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCAhPT0gMAoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTUzIDgKCWJ0b2kKCWludGMgMCAvLyAwCgkhPQoJZnJhbWVfYnVyeSAxIC8vIGlzVG9rZW5FbGlnaWJsZTogYm9vbAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNjEKCS8vIGV4dHJhTUJSID0gaXNUb2tlbkVsaWdpYmxlICYmIHRoaXMucG9vbElkLnZhbHVlID09PSAxID8gQVNTRVRfSE9MRElOR19GRUUgOiAwCglmcmFtZV9kaWcgMSAvLyBpc1Rva2VuRWxpZ2libGU6IGJvb2wKCWR1cAoJYnogKnNraXBfYW5kMAoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJPT0KCSYmCgoqc2tpcF9hbmQwOgoJYnogKnRlcm5hcnkwX2ZhbHNlCglpbnRjIDE2IC8vIDEwMDAwMAoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglpbnRjIDAgLy8gMAoKKnRlcm5hcnkwX2VuZDoKCWZyYW1lX2J1cnkgMiAvLyBleHRyYU1CUjogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE2MgoJLy8gUG9vbEluaXRNYnIgPQoJLy8gICAgICAgQUxHT1JBTkRfQUNDT1VOVF9NSU5fQkFMQU5DRSArCgkvLyAgICAgICBleHRyYU1CUiArCgkvLyAgICAgICB0aGlzLmNvc3RGb3JCb3hTdG9yYWdlKDcgLyogJ3N0YWtlcnMnIG5hbWUgKi8gKyBsZW48U3Rha2VkSW5mbz4oKSAqIE1BWF9TVEFLRVJTX1BFUl9QT09MKQoJaW50YyAxNiAvLyAxMDAwMDAKCWZyYW1lX2RpZyAyIC8vIGV4dHJhTUJSOiB1aW50NjQKCSsKCXB1c2hpbnQgMTI4MDcKCWNhbGxzdWIgY29zdEZvckJveFN0b3JhZ2UKCSsKCWZyYW1lX2J1cnkgMyAvLyBQb29sSW5pdE1icjogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE2OAoJLy8gdmVyaWZ5UGF5VHhuKG1iclBheW1lbnQsIHsgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsIGFtb3VudDogUG9vbEluaXRNYnIgfSkKCS8vIHZlcmlmeSByZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgUmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoibWJyUGF5bWVudCIsImZpZWxkIjoicmVjZWl2ZXIiLCJleHBlY3RlZCI6InRoaXMuYXBwLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9kaWcgMyAvLyBQb29sSW5pdE1icjogdWludDY0Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoibWJyUGF5bWVudCIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiJQb29sSW5pdE1iciJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTY5CgkvLyB0aGlzLnN0YWtlcnMuY3JlYXRlKCkKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJcHVzaGludCAxMjgwMAoJYm94X2NyZWF0ZQoJcG9wCgoJLy8gKmlmMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNzEKCS8vIGlzVG9rZW5FbGlnaWJsZSAmJiB0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMQoJZnJhbWVfZGlnIDEgLy8gaXNUb2tlbkVsaWdpYmxlOiBib29sCglkdXAKCWJ6ICpza2lwX2FuZDEKCWJ5dGVjIDQgLy8gICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaW50YyAxIC8vIDEKCT09CgkmJgoKKnNraXBfYW5kMToKCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTczCgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICAgIHhmZXJBc3NldDogQXNzZXRJRC5mcm9tVWludDY0KHZhbGlkYXRvckNvbmZpZy5yZXdhcmRUb2tlbklkKSwKCS8vICAgICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgICAgYXNzZXRBbW91bnQ6IDAsCgkvLyAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxMSAvLyAgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTc0CgkvLyB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCkKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE1MyA4CglidG9pCglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNzUKCS8vIGFzc2V0UmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTc2CgkvLyBhc3NldEFtb3VudDogMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoqaWYxX2VuZDoKCXJldHN1YgoKLy8gYWRkU3Rha2UocGF5LGFkZHJlc3MpdWludDY0CiphYmlfcm91dGVfYWRkU3Rha2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIxIC8vIDB4MTUxZjdjNzUKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoc3Rha2VyKSBmb3IgYWRkU3Rha2UgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludGMgMSAvLyAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnRjIDEgLy8gIHBheQoJPT0KCgkvLyBhcmd1bWVudCAxIChzdGFrZWRBbW91bnRQYXltZW50KSBmb3IgYWRkU3Rha2UgbXVzdCBiZSBhIHBheSB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhZGRTdGFrZShwYXksYWRkcmVzcyl1aW50NjQKCWNhbGxzdWIgYWRkU3Rha2UKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBhZGRTdGFrZShzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4sIHN0YWtlcjogQWRkcmVzcyk6IHVpbnQ2NAovLwovLyBBZGRzIHN0YWtlIHRvIHRoZSBnaXZlbiBhY2NvdW50LgovLyBDYW4gT05MWSBiZSBjYWxsZWQgYnkgdGhlIHZhbGlkYXRvciBjb250cmFjdCB0aGF0IGNyZWF0ZWQgdXMKLy8gTXVzdCByZWNlaXZlIHBheW1lbnQgZnJvbSB0aGUgdmFsaWRhdG9yIGNvbnRyYWN0IGZvciBhbW91bnQgYmVpbmcgc3Rha2VkLgovLwovLyBAcGFyYW0ge1BheVR4bn0gc3Rha2VkQW1vdW50UGF5bWVudCBwcmlvciBwYXltZW50IGNvbWluZyBmcm9tIHZhbGlkYXRvciBjb250cmFjdCB0byB1cyBvbiBiZWhhbGYgb2Ygc3Rha2VyLgovLyBAcGFyYW0ge0FkZHJlc3N9IHN0YWtlciAtIFRoZSBhY2NvdW50IGFkZGluZyBuZXcgc3Rha2UKLy8gQHRocm93cyB7RXJyb3J9IC0gVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBzdGFraW5nIHBvb2wgaXMgZnVsbC4KLy8gQHJldHVybnMge3VpbnQ2NH0gbmV3ICdlbnRyeSByb3VuZCcgcm91bmQgbnVtYmVyIG9mIHN0YWtlIGFkZAphZGRTdGFrZToKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXBuIDQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTkyCgkvLyBhc3NlcnQodGhpcy5zdGFrZXJzLmV4aXN0cywgJ3N0YWtpbmcgcG9vbCBtdXN0IGJlIGluaXRpYWxpemVkIGZpcnN0JykKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJYm94X2xlbgoJc3dhcAoJcG9wCgoJLy8gc3Rha2luZyBwb29sIG11c3QgYmUgaW5pdGlhbGl6ZWQgZmlyc3QKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxOTUKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkuYWRkcmVzcywKCS8vICAgICAgICdzdGFrZSBjYW4gb25seSBiZSBhZGRlZCB2aWEgdGhlIHZhbGlkYXRvciBjb250cmFjdCcKCS8vICAgICApCgl0eG4gU2VuZGVyCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCT09CgoJLy8gc3Rha2UgY2FuIG9ubHkgYmUgYWRkZWQgdmlhIHRoZSB2YWxpZGF0b3IgY29udHJhY3QKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxOTkKCS8vIGFzc2VydChzdGFrZXIgIT09IGdsb2JhbHMuemVyb0FkZHJlc3MpCglmcmFtZV9kaWcgLTIgLy8gc3Rha2VyOiBBZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjAyCgkvLyB0aGlzLmNoZWNrSWZCaW5DbG9zZWQoKQoJY2FsbHN1YiBjaGVja0lmQmluQ2xvc2VkCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIwNgoJLy8gdmVyaWZ5UGF5VHhuKHN0YWtlZEFtb3VudFBheW1lbnQsIHsKCS8vICAgICAgIHNlbmRlcjogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkuYWRkcmVzcywKCS8vICAgICAgIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgYW1vdW50OiBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzdGFrZWRBbW91bnRQYXltZW50IiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6IkFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzdGFrZWRBbW91bnRQYXltZW50IiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InN0YWtlZEFtb3VudFBheW1lbnQiLCJmaWVsZCI6ImFtb3VudCIsImV4cGVjdGVkIjoic3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIxNQoJLy8gZW50cnlSb3VuZCA9IGdsb2JhbHMucm91bmQgKyBBTEdPUkFORF9TVEFLSU5HX0JMT0NLX0RFTEFZCglnbG9iYWwgUm91bmQKCXB1c2hpbnQgMzIwCgkrCglmcmFtZV9idXJ5IDAgLy8gZW50cnlSb3VuZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIxNgoJLy8gZmlyc3RFbXB0eSA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDEgLy8gZmlyc3RFbXB0eTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIxOAoJLy8gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgKz0gc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQKCWJ5dGVjIDYgLy8gICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CgkrCglieXRlYyA2IC8vICAic3Rha2VkIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjIwCgkvLyByb3VuZHNMZWZ0SW5CaW4gPSB0aGlzLmJpblJvdW5kU3RhcnQudmFsdWUgKyB0aGlzLnJvdW5kc1BlckRheS52YWx1ZSAtIGdsb2JhbHMucm91bmQKCWJ5dGVjIDExIC8vICAiYmluUm91bmRTdGFydCIKCWFwcF9nbG9iYWxfZ2V0CglieXRlYyAxMCAvLyAgInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CgkrCglnbG9iYWwgUm91bmQKCS0KCWZyYW1lX2J1cnkgMiAvLyByb3VuZHNMZWZ0SW5CaW46IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMjEKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSA9CgkvLyAgICAgICB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgKyAoc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQgYXMgdWludDEyOCkgKiAocm91bmRzTGVmdEluQmluIGFzIHVpbnQxMjgpCglieXRlYyA3IC8vICAic3Rha2VBY2N1bXVsYXRvciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJaXRvYgoJZnJhbWVfZGlnIDIgLy8gcm91bmRzTGVmdEluQmluOiB1aW50NjQKCWl0b2IKCWIqCgliKwoJZHVwCgliaXRsZW4KCWludGMgNiAvLyAxMjgKCTw9CgoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlICsgKHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50IGFzIHVpbnQxMjgpICogKHJvdW5kc0xlZnRJbkJpbiBhcyB1aW50MTI4KSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGVjIDggLy8gMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludGMgNSAvLyAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjI1CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGg7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDMgLy8gaTogdWludDY0CgoqZm9yXzA6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjI1CgkvLyBpIDwgdGhpcy5zdGFrZXJzLnZhbHVlLmxlbmd0aAoJZnJhbWVfZGlnIDMgLy8gaTogdWludDY0CglpbnRjIDcgLy8gMjAwCgk8CglieiAqZm9yXzBfZW5kCgoJLy8gKmlmMl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMjYKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgMzAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglpbnRjIDkgLy8gMzAwCgk8CglieiAqaWYyX2VuZAoKCS8vICppZjJfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIyNwoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50YyAyIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGVjIDUgLy8gICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludGMgOCAvLyAgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjI5CgkvLyBjbXBTdGFrZXIgPSBjbG9uZSh0aGlzLnN0YWtlcnMudmFsdWVbaV0pCglmcmFtZV9kaWcgMyAvLyBpOiB1aW50NjQKCWludGMgMyAvLyA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDMgLy8gNjQKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWZyYW1lX2J1cnkgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyAqaWYzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIzMAoJLy8gY21wU3Rha2VyLmFjY291bnQgPT09IHN0YWtlcgoJZnJhbWVfZGlnIDQgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDAgMzIKCWZyYW1lX2RpZyAtMiAvLyBzdGFrZXI6IEFkZHJlc3MKCT09CglieiAqaWYzX2VuZAoKCS8vICppZjNfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIzMgoJLy8gY21wU3Rha2VyLmJhbGFuY2UgKz0gc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQKCWZyYW1lX2RpZyA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50YyA0IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CgkrCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMzMKCS8vIGNtcFN0YWtlci5lbnRyeVJvdW5kID0gZW50cnlSb3VuZAoJZnJhbWVfZGlnIDQgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglwdXNoaW50IDU2IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjM2CgkvLyB0aGlzLnN0YWtlcnMudmFsdWVbaV0gPSBjbXBTdGFrZXIKCWZyYW1lX2RpZyAzIC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWZyYW1lX2RpZyA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYnl0ZWMgMiAvLyAgInN0YWtlcnMiCgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMzgKCS8vIHJldHVybiBlbnRyeVJvdW5kOwoJZnJhbWVfZGlnIDAgLy8gZW50cnlSb3VuZDogdWludDY0CgliICphZGRTdGFrZSpyZXR1cm4KCippZjNfZW5kOgoJLy8gKmlmNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyNDAKCS8vIGZpcnN0RW1wdHkgPT09IDAgJiYgY21wU3Rha2VyLmFjY291bnQgPT09IGdsb2JhbHMuemVyb0FkZHJlc3MKCWZyYW1lX2RpZyAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglkdXAKCWJ6ICpza2lwX2FuZDIKCWZyYW1lX2RpZyA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAwIDMyCglnbG9iYWwgWmVyb0FkZHJlc3MKCT09CgkmJgoKKnNraXBfYW5kMjoKCWJ6ICppZjRfZW5kCgoJLy8gKmlmNF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjQxCgkvLyBmaXJzdEVtcHR5ID0gaSArIDEKCWZyYW1lX2RpZyAzIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCippZjRfZW5kOgoKKmZvcl8wX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIyNQoJLy8gaSArPSAxCglmcmFtZV9kaWcgMyAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDMgLy8gaTogdWludDY0CgliICpmb3JfMAoKKmZvcl8wX2VuZDoKCS8vICppZjVfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjQ1CgkvLyBmaXJzdEVtcHR5ID09PSAwCglmcmFtZV9kaWcgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmNV9lbmQKCgkvLyAqaWY1X2NvbnNlcXVlbnQKCS8vIFN0YWtpbmcgcG9vbCBmdWxsCgllcnIKCippZjVfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI1MgoJLy8gYXNzZXJ0KHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50ID49IHRoaXMubWluRW50cnlTdGFrZS52YWx1ZSwgJ211c3Qgc3Rha2UgYXQgbGVhc3QgdGhlIG1pbmltdW0gZm9yIHRoaXMgcG9vbCcpCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWJ5dGVjIDE4IC8vICAibWluRW50cnlTdGFrZSIKCWFwcF9nbG9iYWxfZ2V0Cgk+PQoKCS8vIG11c3Qgc3Rha2UgYXQgbGVhc3QgdGhlIG1pbmltdW0gZm9yIHRoaXMgcG9vbAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI1NAoJLy8gYXNzZXJ0KHRoaXMuc3Rha2Vycy52YWx1ZVtmaXJzdEVtcHR5IC0gMV0uYWNjb3VudCA9PT0gZ2xvYmFscy56ZXJvQWRkcmVzcykKCWZyYW1lX2RpZyAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCS0KCWludGMgMyAvLyA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDAgLy8gMAoJKwoJaW50YyA0IC8vIDMyCglieXRlYyAyIC8vICAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9leHRyYWN0CglnbG9iYWwgWmVyb0FkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjU1CgkvLyB0aGlzLnN0YWtlcnMudmFsdWVbZmlyc3RFbXB0eSAtIDFdID0gewoJLy8gICAgICAgYWNjb3VudDogc3Rha2VyLAoJLy8gICAgICAgYmFsYW5jZTogc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQsCgkvLyAgICAgICB0b3RhbFJld2FyZGVkOiAwLAoJLy8gICAgICAgcmV3YXJkVG9rZW5CYWxhbmNlOiAwLAoJLy8gICAgICAgZW50cnlSb3VuZDogZW50cnlSb3VuZCwKCS8vICAgICB9CglmcmFtZV9kaWcgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCWludGMgMSAvLyAxCgktCglpbnRjIDMgLy8gNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJZnJhbWVfZGlnIC0yIC8vIHN0YWtlcjogQWRkcmVzcwoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglpdG9iCgljb25jYXQKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWZyYW1lX2RpZyAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoJaXRvYgoJY29uY2F0CglieXRlYyAyIC8vICAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI2MgoJLy8gdGhpcy5udW1TdGFrZXJzLnZhbHVlICs9IDEKCWJ5dGVjIDEzIC8vICAibnVtU3Rha2VycyIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJKwoJYnl0ZWMgMTMgLy8gICJudW1TdGFrZXJzIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjYzCgkvLyByZXR1cm4gZW50cnlSb3VuZDsKCWZyYW1lX2RpZyAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoKKmFkZFN0YWtlKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDQKCXJldHN1YgoKLy8gcmVtb3ZlU3Rha2UoYWRkcmVzcyx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX3JlbW92ZVN0YWtlOgoJLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMSAoc3Rha2VyKSBmb3IgcmVtb3ZlU3Rha2UgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgcmVtb3ZlU3Rha2UoYWRkcmVzcyx1aW50NjQpdm9pZAoJY2FsbHN1YiByZW1vdmVTdGFrZQoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gcmVtb3ZlU3Rha2Uoc3Rha2VyOiBBZGRyZXNzLCBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gUmVtb3ZlcyBzdGFrZSBvbiBiZWhhbGYgb2YgY2FsbGVyIChyZW1vdmluZyBvd24gc3Rha2UpLiAgSWYgYW55IHRva2VuIHJld2FyZHMgZXhpc3QsIHRob3NlIGFyZSBhbHdheXMgc2VudCBpbgovLyBmdWxsLiBBbHNvIG5vdGlmaWVzIHRoZSB2YWxpZGF0b3IgY29udHJhY3QgZm9yIHRoaXMgcG9vbHMgdmFsaWRhdG9yIG9mIHRoZSBzdGFrZXIgLyBiYWxhbmNlIGNoYW5nZXMuCi8vCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyIC0gYWNjb3VudCB0byByZW1vdmUuICBub3JtYWxseSBzYW1lIGFzIHNlbmRlciwgYnV0IHRoZSB2YWxpZGF0b3Igb3duZXIgb3IgbWFuYWdlciBjYW4gYWxzbyBjYWxsCi8vIHRoaXMgdG8gcmVtb3ZlIHRoZSBzcGVjaWZpZWQgc3Rha2VyIGV4cGxpY2l0bHkuIFRoZSByZW1vdmVkIHN0YWtlIE1VU1Qgb25seSBnbyB0byB0aGUgc3Rha2VyIG9mIGNvdXJzZS4gIFRoaXMgaXMKLy8gc28gYSB2YWxpZGF0b3IgY2FuIHNodXQgZG93biBhIHBvb29sIGFuZCByZWZ1bmQgdGhlIHN0YWtlcnMuICBJdCBjYW4gYWxzbyBiZSB1c2VkIHRvIGtpY2sgb3V0IHN0YWtlcnMgd2hvIG5vIGxvbmdlcgovLyBtZWV0IHRoZSBnYXRpbmcgcmVxdWlyZW1lbnRzIChkZXRlcm1pbmVkIGJ5IHRoZSBub2RlIGRhZW1vbikuCi8vIEBwYXJhbSB7dWludDY0fSBhbW91bnRUb1Vuc3Rha2UgLSBUaGUgYW1vdW50IG9mIHN0YWtlIHRvIGJlIHJlbW92ZWQuICBTcGVjaWZ5IDAgdG8gcmVtb3ZlIGFsbCBzdGFrZS4KLy8gQHRocm93cyB7RXJyb3J9IElmIHRoZSBhY2NvdW50IGhhcyBpbnN1ZmZpY2llbnQgYmFsYW5jZSBvciBpZiB0aGUgYWNjb3VudCBpcyBub3QgZm91bmQuCnJlbW92ZVN0YWtlOgoJcHJvdG8gMiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gNgoKCS8vICppZjZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjgwCgkvLyBzdGFrZXIgIT09IHRoaXMudHhuLnNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJdHhuIFNlbmRlcgoJIT0KCWJ6ICppZjZfZW5kCgoJLy8gKmlmNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjgxCgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIHRoaXMuaXNPd25lck9yTWFuYWdlckNhbGxlcigpLAoJLy8gICAgICAgICAnSWYgc3Rha2VyIGlzIG5vdCBzZW5kZXIgaW4gcmVtb3ZlU3Rha2UgY2FsbCwgdGhlbiBzZW5kZXIgTVVTVCBiZSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcicKCS8vICAgICAgICkKCWNhbGxzdWIgaXNPd25lck9yTWFuYWdlckNhbGxlcgoKCS8vIElmIHN0YWtlciBpcyBub3Qgc2VuZGVyIGluIHJlbW92ZVN0YWtlIGNhbGwsIHRoZW4gc2VuZGVyIE1VU1QgYmUgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3IKCWFzc2VydAoKKmlmNl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Mjg3CgkvLyB0aGlzLmNoZWNrSWZCaW5DbG9zZWQoKQoJY2FsbHN1YiBjaGVja0lmQmluQ2xvc2VkCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI4OQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8xOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI4OQoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50YyA3IC8vIDIwMAoJPAoJYnogKmZvcl8xX2VuZAoKCS8vICppZjdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjkwCgkvLyBnbG9iYWxzLm9wY29kZUJ1ZGdldCA8IDMwMAoJZ2xvYmFsIE9wY29kZUJ1ZGdldAoJaW50YyA5IC8vIDMwMAoJPAoJYnogKmlmN19lbmQKCgkvLyAqaWY3X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyOTEKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyA1IC8vICAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnRjIDggLy8gIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjdfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI5MwoJLy8gY21wU3Rha2VyID0gY2xvbmUodGhpcy5zdGFrZXJzLnZhbHVlW2ldKQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnRjIDMgLy8gNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAzIC8vIDY0CglieXRlYyAyIC8vICAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gKmlmOF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyOTQKCS8vIGNtcFN0YWtlci5hY2NvdW50ID09PSBzdGFrZXIKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAwIDMyCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgk9PQoJYnogKmlmOF9lbmQKCgkvLyAqaWY4X2NvbnNlcXVlbnQKCS8vICppZjlfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Mjk1CgkvLyBhbW91bnRUb1Vuc3Rha2UgPT09IDAKCWZyYW1lX2RpZyAtMiAvLyBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglieiAqaWY5X2VuZAoKCS8vICppZjlfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI5NwoJLy8gYW1vdW50VG9VbnN0YWtlID0gY21wU3Rha2VyLmJhbGFuY2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9idXJ5IC0yIC8vIGFtb3VudFRvVW5zdGFrZTogdWludDY0CgoqaWY5X2VuZDoKCS8vICppZjEwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI5OQoJLy8gY21wU3Rha2VyLmJhbGFuY2UgPCBhbW91bnRUb1Vuc3Rha2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCTwKCWJ6ICppZjEwX2VuZAoKCS8vICppZjEwX2NvbnNlcXVlbnQKCS8vIEluc3VmZmljaWVudCBiYWxhbmNlCgllcnIKCippZjEwX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMDIKCS8vIGNtcFN0YWtlci5iYWxhbmNlIC09IGFtb3VudFRvVW5zdGFrZQoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglpbnRjIDQgLy8gIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCS0KCWl0b2IKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMwMwoJLy8gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgLT0gYW1vdW50VG9VbnN0YWtlCglieXRlYyA2IC8vICAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMiAvLyBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NAoJLQoJYnl0ZWMgNiAvLyAgInN0YWtlZCIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMwNQoJLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoKCS8vICppZjExX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMwNgoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSA+IDAKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglpbnRjIDAgLy8gMAoJPgoJYnogKmlmMTFfZW5kCgoJLy8gKmlmMTFfY29uc2VxdWVudAoJLy8gKmlmMTJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzA4CgkvLyB0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMQoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJPT0KCWJ6ICppZjEyX2Vsc2UKCgkvLyAqaWYxMl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzA5CgkvLyB2YWxpZGF0b3JDb25maWcgPSBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLmdldFZhbGlkYXRvckNvbmZpZz4oewoJLy8gICAgICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgICAgICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdLAoJLy8gICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZWMgMTUgLy8gIG1ldGhvZCAiZ2V0VmFsaWRhdG9yQ29uZmlnKHVpbnQ2NCkodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMTAKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzExCgkvLyBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50YyAxIC8vIDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJZnJhbWVfYnVyeSAzIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMxNwoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgICAgICAgICB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCksCgkvLyAgICAgICAgICAgICAgIGFzc2V0UmVjZWl2ZXI6IHN0YWtlciwKCS8vICAgICAgICAgICAgICAgYXNzZXRBbW91bnQ6IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UsCgkvLyAgICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxMSAvLyAgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzE4CgkvLyB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCkKCWZyYW1lX2RpZyAzIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE1MyA4CglidG9pCglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMTkKCS8vIGFzc2V0UmVjZWl2ZXI6IHN0YWtlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMyMAoJLy8gYXNzZXRBbW91bnQ6IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMjIKCS8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCA9IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglmcmFtZV9idXJ5IDIgLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzIzCgkvLyBjbXBTdGFrZXIucmV3YXJkVG9rZW5CYWxhbmNlID0gMAoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglieXRlYyA5IC8vIDB4MDAwMDAwMDAwMDAwMDAwMAoJcmVwbGFjZTIgNDgKCWZyYW1lX2J1cnkgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWIgKmlmMTJfZW5kCgoqaWYxMl9lbHNlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMyOAoJLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkID0gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZQoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWZyYW1lX2J1cnkgMiAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMjkKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPSAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0OAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKKmlmMTJfZW5kOgoKKmlmMTFfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMzNAoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgIGNtcFN0YWtlci5iYWxhbmNlID09PSAwIHx8IGNtcFN0YWtlci5iYWxhbmNlID49IHRoaXMubWluRW50cnlTdGFrZS52YWx1ZSwKCS8vICAgICAgICAgICAnY2Fubm90IHJlZHVjZSBiYWxhbmNlIGJlbG93IG1pbmltdW0gYWxsb3dlZCBzdGFrZSB1bmxlc3MgYWxsIGlzIHJlbW92ZWQnCgkvLyAgICAgICAgICkKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglpbnRjIDAgLy8gMAoJPT0KCWR1cAoJYm56ICpza2lwX29yMAoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWJ5dGVjIDE4IC8vICAibWluRW50cnlTdGFrZSIKCWFwcF9nbG9iYWxfZ2V0Cgk+PQoJfHwKCipza2lwX29yMDoKCS8vIGNhbm5vdCByZWR1Y2UgYmFsYW5jZSBiZWxvdyBtaW5pbXVtIGFsbG93ZWQgc3Rha2UgdW5sZXNzIGFsbCBpcyByZW1vdmVkCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQyCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICAgICAgYW1vdW50OiBhbW91bnRUb1Vuc3Rha2UsCgkvLyAgICAgICAgICAgcmVjZWl2ZXI6IHN0YWtlciwKCS8vICAgICAgICAgICBub3RlOiAndW5zdGFrZWQnLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxIC8vICBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQzCgkvLyBhbW91bnQ6IGFtb3VudFRvVW5zdGFrZQoJZnJhbWVfZGlnIC0yIC8vIGFtb3VudFRvVW5zdGFrZTogdWludDY0CglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNDQKCS8vIHJlY2VpdmVyOiBzdGFrZXIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQ1CgkvLyBub3RlOiAndW5zdGFrZWQnCglwdXNoYnl0ZXMgMHg3NTZlNzM3NDYxNmI2NTY0IC8vICJ1bnN0YWtlZCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQ3CgkvLyBzdGFrZXJSZW1vdmVkID0gZmFsc2UKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDQgLy8gc3Rha2VyUmVtb3ZlZDogYm9vbAoKCS8vICppZjEzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM0OAoJLy8gY21wU3Rha2VyLmJhbGFuY2UgPT09IDAKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppZjEzX2VuZAoKCS8vICppZjEzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTAKCS8vIHRoaXMubnVtU3Rha2Vycy52YWx1ZSAtPSAxCglieXRlYyAxMyAvLyAgIm51bVN0YWtlcnMiCglhcHBfZ2xvYmFsX2dldAoJaW50YyAxIC8vIDEKCS0KCWJ5dGVjIDEzIC8vICAibnVtU3Rha2VycyIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM1MQoJLy8gY21wU3Rha2VyLmFjY291bnQgPSBnbG9iYWxzLnplcm9BZGRyZXNzCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWludGMgMCAvLyAwCglnbG9iYWwgWmVyb0FkZHJlc3MKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM1MgoJLy8gY21wU3Rha2VyLnRvdGFsUmV3YXJkZWQgPSAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0MAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTMKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPSAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0OAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTQKCS8vIHN0YWtlclJlbW92ZWQgPSB0cnVlCglpbnRjIDEgLy8gMQoJZnJhbWVfYnVyeSA0IC8vIHN0YWtlclJlbW92ZWQ6IGJvb2wKCippZjEzX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTcKCS8vIHRoaXMuc3Rha2Vycy52YWx1ZVtpXSA9IGNtcFN0YWtlcgoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnRjIDMgLy8gNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglieXRlYyAyIC8vICAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM1OQoJLy8gcm91bmRzTGVmdEluQmluID0gdGhpcy5iaW5Sb3VuZFN0YXJ0LnZhbHVlICsgdGhpcy5yb3VuZHNQZXJEYXkudmFsdWUgLSBnbG9iYWxzLnJvdW5kCglieXRlYyAxMSAvLyAgImJpblJvdW5kU3RhcnQiCglhcHBfZ2xvYmFsX2dldAoJYnl0ZWMgMTAgLy8gICJyb3VuZHNQZXJEYXkiCglhcHBfZ2xvYmFsX2dldAoJKwoJZ2xvYmFsIFJvdW5kCgktCglmcmFtZV9idXJ5IDUgLy8gcm91bmRzTGVmdEluQmluOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzYwCgkvLyBzdWJ0cmFjdEFtb3VudDogdWludDEyOCA9IChhbW91bnRUb1Vuc3Rha2UgYXMgdWludDEyOCkgKiAocm91bmRzTGVmdEluQmluIGFzIHVpbnQxMjgpCglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyA1IC8vIHJvdW5kc0xlZnRJbkJpbjogdWludDY0CglpdG9iCgliKgoJZHVwCgliaXRsZW4KCWludGMgNiAvLyAxMjgKCTw9CgoJLy8gKGFtb3VudFRvVW5zdGFrZSBhcyB1aW50MTI4KSAqIChyb3VuZHNMZWZ0SW5CaW4gYXMgdWludDEyOCkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlYyA4IC8vIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnRjIDUgLy8gMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWZyYW1lX2J1cnkgNiAvLyBzdWJ0cmFjdEFtb3VudDogdWludDEyOAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNjEKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSA9IHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSAtIHN1YnRyYWN0QW1vdW50CglieXRlYyA3IC8vICAic3Rha2VBY2N1bXVsYXRvciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyA2IC8vIHN1YnRyYWN0QW1vdW50OiB1aW50MTI4CgliLQoJZHVwCgliaXRsZW4KCWludGMgNiAvLyAxMjgKCTw9CgoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlIC0gc3VidHJhY3RBbW91bnQgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlYyA4IC8vIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnRjIDUgLy8gMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM2NgoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5zdGFrZVJlbW92ZWQ+KHsKCS8vICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgICAgICBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgICAgICB7IGlkOiB0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCBwb29sSWQ6IHRoaXMucG9vbElkLnZhbHVlLCBwb29sQXBwSWQ6IHRoaXMuYXBwLmlkIH0sCgkvLyAgICAgICAgICAgICBzdGFrZXIsCgkvLyAgICAgICAgICAgICBhbW91bnRUb1Vuc3Rha2UsCgkvLyAgICAgICAgICAgICBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQsCgkvLyAgICAgICAgICAgICBzdGFrZXJSZW1vdmVkLAoJLy8gICAgICAgICAgIF0sCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWJ5dGVjIDIzIC8vICBtZXRob2QgInN0YWtlUmVtb3ZlZCgodWludDY0LHVpbnQ2NCx1aW50NjQpLGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNjcKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzY4CgkvLyBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgICAgICB7IGlkOiB0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCBwb29sSWQ6IHRoaXMucG9vbElkLnZhbHVlLCBwb29sQXBwSWQ6IHRoaXMuYXBwLmlkIH0sCgkvLyAgICAgICAgICAgICBzdGFrZXIsCgkvLyAgICAgICAgICAgICBhbW91bnRUb1Vuc3Rha2UsCgkvLyAgICAgICAgICAgICBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQsCgkvLyAgICAgICAgICAgICBzdGFrZXJSZW1vdmVkLAoJLy8gICAgICAgICAgIF0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglieXRlYyA0IC8vICAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWNvbmNhdAoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJY29uY2F0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMiAvLyBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAyIC8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDQgLy8gc3Rha2VyUmVtb3ZlZDogYm9vbAoJYnl0ZWMgMjcgLy8gMHgwMAoJaW50YyAwIC8vIDAKCXVuY292ZXIgMgoJc2V0Yml0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Mzc2CgkvLyByZXR1cm47CglyZXRzdWIKCippZjhfZW5kOgoKKmZvcl8xX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI4OQoJLy8gaSArPSAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgliICpmb3JfMQoKKmZvcl8xX2VuZDoKCS8vIGFjY291bnQgbm90IGZvdW5kCgllcnIKCXJldHN1YgoKLy8gY2xhaW1Ub2tlbnMoKXZvaWQKKmFiaV9yb3V0ZV9jbGFpbVRva2VuczoKCS8vIGV4ZWN1dGUgY2xhaW1Ub2tlbnMoKXZvaWQKCWNhbGxzdWIgY2xhaW1Ub2tlbnMKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGNsYWltVG9rZW5zKCk6IHZvaWQKLy8KLy8gQ2xhaW1zIGFsbCB0aGUgYXZhaWxhYmxlIHJld2FyZCB0b2tlbnMgYSBzdGFrZXIgaGFzIGF2YWlsYWJsZSwgc2VuZGluZyB0aGVpciBlbnRpcmUgYmFsYW5jZSB0byB0aGUgc3Rha2VyIGZyb20KLy8gcG9vbCAxIChlaXRoZXIgZGlyZWN0bHksIG9yIHZpYSB2YWxpZGF0b3ItPnBvb2wxIHRvIHBheSBpdCBvdXQpCi8vIEFsc28gbm90aWZpZXMgdGhlIHZhbGlkYXRvciBjb250cmFjdCBmb3IgdGhpcyBwb29scyB2YWxpZGF0b3Igb2YgdGhlIHN0YWtlciAvIGJhbGFuY2UgY2hhbmdlcy4KY2xhaW1Ub2tlbnM6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwbiA0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5MQoJLy8gc3Rha2VyID0gdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCglmcmFtZV9idXJ5IDAgLy8gc3Rha2VyOiBhZGRyZXNzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5MwoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoKKmZvcl8yOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5MwoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50YyA3IC8vIDIwMAoJPAoJYnogKmZvcl8yX2VuZAoKCS8vICppZjE0X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5NAoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAzMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludGMgOSAvLyAzMDAKCTwKCWJ6ICppZjE0X2VuZAoKCS8vICppZjE0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozOTUKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyA1IC8vICAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnRjIDggLy8gIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjE0X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozOTcKCS8vIGNtcFN0YWtlciA9IGNsb25lKHRoaXMuc3Rha2Vycy52YWx1ZVtpXSkKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMyAvLyA2NAoJYnl0ZWMgMiAvLyAgInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vICppZjE1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5OAoJLy8gY21wU3Rha2VyLmFjY291bnQgPT09IHN0YWtlcgoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDAgMzIKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJPT0KCWJ6ICppZjE1X2VuZAoKCS8vICppZjE1X2NvbnNlcXVlbnQKCS8vICppZjE2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5OQoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSA9PT0gMAoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmMTZfZW5kCgoJLy8gKmlmMTZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQwMAoJLy8gcmV0dXJuOwoJcmV0c3ViCgoqaWYxNl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDAyCgkvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQgPSAwCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAzIC8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZDogdWludDY0CgoJLy8gKmlmMTdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDA0CgkvLyB0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMQoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJPT0KCWJ6ICppZjE3X2Vsc2UKCgkvLyAqaWYxN19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDA1CgkvLyB2YWxpZGF0b3JDb25maWcgPSBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLmdldFZhbGlkYXRvckNvbmZpZz4oewoJLy8gICAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZWMgMTUgLy8gIG1ldGhvZCAiZ2V0VmFsaWRhdG9yQ29uZmlnKHVpbnQ2NCkodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MDYKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDA3CgkvLyBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50YyAxIC8vIDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJZnJhbWVfYnVyeSA0IC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQxMgoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgICAgICAgeGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLnJld2FyZFRva2VuSWQpLAoJLy8gICAgICAgICAgICAgYXNzZXRSZWNlaXZlcjogc3Rha2VyLAoJLy8gICAgICAgICAgICAgYXNzZXRBbW91bnQ6IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UsCgkvLyAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMTEgLy8gIGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQxMwoJLy8geGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLnJld2FyZFRva2VuSWQpCglmcmFtZV9kaWcgNCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNTMgOAoJYnRvaQoJaXR4bl9maWVsZCBYZmVyQXNzZXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDE0CgkvLyBhc3NldFJlY2VpdmVyOiBzdGFrZXIKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQxNQoJLy8gYXNzZXRBbW91bnQ6IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UKCWZyYW1lX2RpZyAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MTcKCS8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCA9IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UKCWZyYW1lX2RpZyAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglmcmFtZV9idXJ5IDMgLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDE4CgkvLyBjbXBTdGFrZXIucmV3YXJkVG9rZW5CYWxhbmNlID0gMAoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglieXRlYyA5IC8vIDB4MDAwMDAwMDAwMDAwMDAwMAoJcmVwbGFjZTIgNDgKCWZyYW1lX2J1cnkgMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWIgKmlmMTdfZW5kCgoqaWYxN19lbHNlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQyMwoJLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkID0gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZQoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MjQKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPSAwCglmcmFtZV9kaWcgMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0OAoJZnJhbWVfYnVyeSAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKKmlmMTdfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQyOAoJLy8gdGhpcy5zdGFrZXJzLnZhbHVlW2ldID0gY21wU3Rha2VyCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWludGMgMyAvLyA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglmcmFtZV9kaWcgMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDMzCgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLnN0YWtlUmVtb3ZlZD4oewoJLy8gICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgICAgIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgICAgIHsgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfSwKCS8vICAgICAgICAgICAgIHN0YWtlciwKCS8vICAgICAgICAgICAgIDAsIC8vIG5vIGFsZ28gcmVtb3ZlZAoJLy8gICAgICAgICAgICAgYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkLAoJLy8gICAgICAgICAgICAgZmFsc2UsIC8vIHN0YWtlciBpc24ndCBiZWluZyByZW1vdmVkLgoJLy8gICAgICAgICAgIF0sCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWJ5dGVjIDIzIC8vICBtZXRob2QgInN0YWtlUmVtb3ZlZCgodWludDY0LHVpbnQ2NCx1aW50NjQpLGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MzQKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDM1CgkvLyBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgICAgICB7IGlkOiB0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCBwb29sSWQ6IHRoaXMucG9vbElkLnZhbHVlLCBwb29sQXBwSWQ6IHRoaXMuYXBwLmlkIH0sCgkvLyAgICAgICAgICAgICBzdGFrZXIsCgkvLyAgICAgICAgICAgICAwLCAvLyBubyBhbGdvIHJlbW92ZWQKCS8vICAgICAgICAgICAgIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCwKCS8vICAgICAgICAgICAgIGZhbHNlLCAvLyBzdGFrZXIgaXNuJ3QgYmVpbmcgcmVtb3ZlZC4KCS8vICAgICAgICAgICBdCglieXRlYyAzIC8vICAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCgljb25jYXQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWNvbmNhdAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDMgLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglpbnRjIDAgLy8gMAoJYnl0ZWMgMjcgLy8gMHgwMAoJaW50YyAwIC8vIDAKCXVuY292ZXIgMgoJc2V0Yml0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDQzCgkvLyByZXR1cm47CglyZXRzdWIKCippZjE1X2VuZDoKCipmb3JfMl9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozOTMKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzIKCipmb3JfMl9lbmQ6CgkvLyBhY2NvdW50IG5vdCBmb3VuZAoJZXJyCglyZXRzdWIKCi8vIGdldFN0YWtlckluZm8oYWRkcmVzcykoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfZ2V0U3Rha2VySW5mbzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMjEgLy8gMHgxNTFmN2M3NQoKCS8vIHN0YWtlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChzdGFrZXIpIGZvciBnZXRTdGFrZXJJbmZvIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGdldFN0YWtlckluZm8oYWRkcmVzcykoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgljYWxsc3ViIGdldFN0YWtlckluZm8KCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnZXRTdGFrZXJJbmZvKHN0YWtlcjogQWRkcmVzcyk6IFN0YWtlZEluZm8KLy8KLy8gUmV0cmlldmVzIHRoZSBzdGFrZWQgaW5mb3JtYXRpb24gZm9yIGEgZ2l2ZW4gc3Rha2VyLgovLwovLyBAcGFyYW0ge0FkZHJlc3N9IHN0YWtlciAtIFRoZSBhZGRyZXNzIG9mIHRoZSBzdGFrZXIuCi8vIEByZXR1cm5zIHtTdGFrZWRJbmZvfSAtIFRoZSBzdGFrZWQgaW5mb3JtYXRpb24gZm9yIHRoZSBnaXZlbiBzdGFrZXIuCi8vIEB0aHJvd3Mge0Vycm9yfSAtIElmIHRoZSBzdGFrZXIncyBhY2NvdW50IGlzIG5vdCBmb3VuZC4KZ2V0U3Rha2VySW5mbzoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ1OAoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8zOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ1OAoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50YyA3IC8vIDIwMAoJPAoJYnogKmZvcl8zX2VuZAoKCS8vICppZjE4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ1OQoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAyMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludGMgNyAvLyAyMDAKCTwKCWJ6ICppZjE4X2VuZAoKCS8vICppZjE4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0NjAKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyA1IC8vICAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnRjIDggLy8gIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjE4X2VuZDoKCS8vICppZjE5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ2MgoJLy8gdGhpcy5zdGFrZXJzLnZhbHVlW2ldLmFjY291bnQgPT09IHN0YWtlcgoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnRjIDMgLy8gNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAwIC8vIDAKCSsKCWludGMgNCAvLyAzMgoJYnl0ZWMgMiAvLyAgInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJPT0KCWJ6ICppZjE5X2VuZAoKCS8vICppZjE5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0NjMKCS8vIHJldHVybiB0aGlzLnN0YWtlcnMudmFsdWVbaV07CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludGMgMyAvLyA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDMgLy8gNjQKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWIgKmdldFN0YWtlckluZm8qcmV0dXJuCgoqaWYxOV9lbmQ6CgoqZm9yXzNfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDU4CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKmZvcl8zCgoqZm9yXzNfZW5kOgoJLy8gYWNjb3VudCBub3QgZm91bmQKCWVycgoKKmdldFN0YWtlckluZm8qcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIHBheVRva2VuUmV3YXJkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfcGF5VG9rZW5SZXdhcmQ6CgkvLyBhbW91bnRUb1NlbmQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIHJld2FyZFRva2VuOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMiAoc3Rha2VyKSBmb3IgcGF5VG9rZW5SZXdhcmQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgcGF5VG9rZW5SZXdhcmQoYWRkcmVzcyx1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgcGF5VG9rZW5SZXdhcmQKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHBheVRva2VuUmV3YXJkKHN0YWtlcjogQWRkcmVzcywgcmV3YXJkVG9rZW46IHVpbnQ2NCwgYW1vdW50VG9TZW5kOiB1aW50NjQpOiB2b2lkCi8vCi8vIFtJbnRlcm5hbCBwcm90b2NvbCBtZXRob2RdIFJlbW92ZSBhIHNwZWNpZmllZCBhbW91bnQgb2YgJ2NvbW11bml0eSB0b2tlbicgcmV3YXJkcyBmb3IgYSBzdGFrZXIuCi8vIFRoaXMgY2FuIE9OTFkgYmUgY2FsbGVkIGJ5IG91ciB2YWxpZGF0b3IgYW5kIG9ubHkgaWYgd2UncmUgcG9vbCAxIC0gd2l0aCB0aGUgdG9rZW4uCi8vIE5vdGU6IHRoaXMgY2FuIGFsc28gYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBhcyBwYXJ0IG9mIE9XTkVSIHdhbnRpbmcgdG8gc2VuZCB0aGUgcmV3YXJkIHRva2VucwovLyBzb21ld2hlcmUgZWxzZSAoaWUgaWYgdGhleSdyZSBzdW5zZXR0aW5nIHRoZWlyIHZhbGlkYXRvciBhbmQgbmVlZCB0aGUgcmV3YXJkIHRva2VucyBiYWNrKS4KLy8gSXQncyB1cCB0byB0aGUgdmFsaWRhdG9yIHRvIGVuc3VyZSB0aGF0IHRoZSBiYWxhbmNlIGluIHJld2FyZFRva2VuSGVsZEJhY2sgaXMgaG9ub3JlZC4KLy8gQHBhcmFtIHN0YWtlciAtIHRoZSBzdGFrZXIgYWNjb3VudCB0byBzZW5kIHJld2FyZHMgdG8KLy8gQHBhcmFtIHJld2FyZFRva2VuIC0gaWQgb2YgcmV3YXJkIHRva2VuICh0byBhdm9pZCByZS1lbnRyYW5jeSBpbiBjYWxsaW5nIHZhbGlkYXRvciBiYWNrIHRvIGdldCBpZCkKLy8gQHBhcmFtIGFtb3VudFRvU2VuZCAtIGFtb3VudCB0byBzZW5kIHRoZSBzdGFrZXIgKHRoZXJlIGlzIHNpZ25pZmljYW50IHRydXN0IGhlcmUoISkgLSBhbHNvIHdoeSBvbmx5IHZhbGlkYXRvciBjYW4gY2FsbCB1cwpwYXlUb2tlblJld2FyZDoKCXByb3RvIDMgMAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0ODEKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkuYWRkcmVzcywKCS8vICAgICAgICd0aGlzIGNhbiBvbmx5IGJlIGNhbGxlZCB2aWEgdGhlIHZhbGlkYXRvciBjb250cmFjdCcKCS8vICAgICApCgl0eG4gU2VuZGVyCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCT09CgoJLy8gdGhpcyBjYW4gb25seSBiZSBjYWxsZWQgdmlhIHRoZSB2YWxpZGF0b3IgY29udHJhY3QKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0ODUKCS8vIGFzc2VydCh0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMSwgJ211c3QgYmUgcG9vbCAxIGluIG9yZGVyIHRvIGJlIGNhbGxlZCB0byBwYXkgb3V0IHRva2VuIHJld2FyZHMnKQoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJPT0KCgkvLyBtdXN0IGJlIHBvb2wgMSBpbiBvcmRlciB0byBiZSBjYWxsZWQgdG8gcGF5IG91dCB0b2tlbiByZXdhcmRzCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDg2CgkvLyBhc3NlcnQocmV3YXJkVG9rZW4gIT09IDAsICdjYW4gb25seSBjbGFpbSB0b2tlbiByZXdhcmRzIGZyb20gdmFsaWRhdG9yIHRoYXQgaGFzIHRoZW0nKQoJZnJhbWVfZGlnIC0yIC8vIHJld2FyZFRva2VuOiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoKCS8vIGNhbiBvbmx5IGNsYWltIHRva2VuIHJld2FyZHMgZnJvbSB2YWxpZGF0b3IgdGhhdCBoYXMgdGhlbQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ4OQoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgeGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQocmV3YXJkVG9rZW4pLAoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogc3Rha2VyLAoJLy8gICAgICAgYXNzZXRBbW91bnQ6IGFtb3VudFRvU2VuZCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxMSAvLyAgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDkwCgkvLyB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NChyZXdhcmRUb2tlbikKCWZyYW1lX2RpZyAtMiAvLyByZXdhcmRUb2tlbjogdWludDY0CglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0OTEKCS8vIGFzc2V0UmVjZWl2ZXI6IHN0YWtlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ5MgoJLy8gYXNzZXRBbW91bnQ6IGFtb3VudFRvU2VuZAoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFRvU2VuZDogdWludDY0CglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyB1cGRhdGVBbGdvZFZlcihzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX3VwZGF0ZUFsZ29kVmVyOgoJLy8gYWxnb2RWZXI6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHVwZGF0ZUFsZ29kVmVyKHN0cmluZyl2b2lkCgljYWxsc3ViIHVwZGF0ZUFsZ29kVmVyCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyB1cGRhdGVBbGdvZFZlcihhbGdvZFZlcjogc3RyaW5nKTogdm9pZAovLwovLyBVcGRhdGUgdGhlIChob25vciBzeXN0ZW0pIGFsZ29kIHZlcnNpb24gZm9yIHRoZSBub2RlIGFzc29jaWF0ZWQgdG8gdGhpcyBwb29sLiAgVGhlIG5vZGUgbWFuYWdlbWVudCBkYWVtb24KLy8gc2hvdWxkIGNvbXBhcmUgaXRzIGN1cnJlbnQgbm9kZXMgdmVyc2lvbiB0byB0aGUgdmVyc2lvbiBzdG9yZWQgaW4gZ2xvYmFsIHN0YXRlLCB1cGRhdGluZyB3aGVuIGRpZmZlcmVudC4KLy8gVGhlIHJldGkgbm9kZSBkYWVtb24gY29tcG9zZXMgaXRzIG93biB2ZXJzaW9uIHN0cmluZyB1c2luZyBmb3JtYXQ6Ci8vIHttYWpvcn0ue21pbm9yfS57YnVpbGR9IHticmFuY2h9IFt7Y29tbWl0IGhhc2h9XSwKLy8gaWU6IDMuMjIuMCByZWwvc3RhYmxlIFs2YjUwODk3NV0KLy8gWyBPTkxZIE9XTkVSIE9SIE1BTkFHRVIgQ0FOIENBTEwgXQovLyBAcGFyYW0ge3N0cmluZ30gYWxnb2RWZXIgLSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBhbGdvcmFuZCBub2RlIGRhZW1vbiB2ZXJzaW9uIChyZXRpIG5vZGUgZGFlbW9uIGNvbXBvc2VzIGl0cyBvd24gbWV0YSB2ZXJzaW9uKQp1cGRhdGVBbGdvZFZlcjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MDYKCS8vIGFzc2VydCh0aGlzLmlzT3duZXJPck1hbmFnZXJDYWxsZXIoKSwgJ2NhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcicpCgljYWxsc3ViIGlzT3duZXJPck1hbmFnZXJDYWxsZXIKCgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3IKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MDcKCS8vIHRoaXMuYWxnb2RWZXIudmFsdWUgPSBhbGdvZFZlcgoJcHVzaGJ5dGVzIDB4NjE2YzY3NmY2NDU2NjU3MiAvLyAiYWxnb2RWZXIiCglmcmFtZV9kaWcgLTEgLy8gYWxnb2RWZXI6IHN0cmluZwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gZXBvY2hCYWxhbmNlVXBkYXRlKCl2b2lkCiphYmlfcm91dGVfZXBvY2hCYWxhbmNlVXBkYXRlOgoJLy8gZXhlY3V0ZSBlcG9jaEJhbGFuY2VVcGRhdGUoKXZvaWQKCWNhbGxzdWIgZXBvY2hCYWxhbmNlVXBkYXRlCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBlcG9jaEJhbGFuY2VVcGRhdGUoKTogdm9pZAovLwovLyBVcGRhdGVzIHRoZSBiYWxhbmNlIG9mIHN0YWtlcnMgaW4gdGhlIHBvb2wgYmFzZWQgb24gdGhlIHJlY2VpdmVkICdyZXdhcmRzJyAoY3VycmVudCBiYWxhbmNlIHZzIGtub3duIHN0YWtlZCBiYWxhbmNlKQovLyBzdGFrZXJzIG91dHN0YW5kaW5nIGJhbGFuY2UgaXMgYWRqdXN0ZWQgYmFzZWQgb24gdGhlaXIgJSBvZiBzdGFrZSBhbmQgdGltZSBpbiB0aGUgY3VycmVudCBlcG9jaCAtIHNvIHRoYXQgYmFsYW5jZQovLyBjb21wb3VuZHMgb3ZlciB0aW1lIGFuZCBzdGFrZXIgY2FuIHJlbW92ZSB0aGF0IGFtb3VudCBhdCB3aWxsLgovLyBUaGUgdmFsaWRhdG9yIGlzIHBhaWQgdGhlaXIgcGVyY2VudGFnZSBlYWNoIGVwb2NoIHBheW91dC4KLy8KLy8gTm90ZTogQU5ZT05FIGNhbiBjYWxsIHRoaXMuCmVwb2NoQmFsYW5jZVVwZGF0ZToKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXBuIDM2CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUyMAoJLy8gdmFsaWRhdG9yQ29uZmlnID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5nZXRWYWxpZGF0b3JDb25maWc+KHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWJ5dGVjIDE1IC8vICBtZXRob2QgImdldFZhbGlkYXRvckNvbmZpZyh1aW50NjQpKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTIxCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZWMgMSAvLyAgImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUyMgoJLy8gbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdCglieXRlYyAzIC8vICAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludGMgMSAvLyAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MjkKCS8vIGVwb2NoUm91bmRMZW5ndGggPSB2YWxpZGF0b3JDb25maWcuZXBvY2hSb3VuZExlbmd0aCBhcyB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE2OSA0CglidG9pCglmcmFtZV9idXJ5IDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUzMAoJLy8gY3VyUm91bmQgPSBnbG9iYWxzLnJvdW5kCglnbG9iYWwgUm91bmQKCWZyYW1lX2J1cnkgMiAvLyBjdXJSb3VuZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUzMQoJLy8gdGhpc0Vwb2NoQmVnaW4gPSBjdXJSb3VuZCAtIChjdXJSb3VuZCAlIGVwb2NoUm91bmRMZW5ndGgpCglmcmFtZV9kaWcgMiAvLyBjdXJSb3VuZDogdWludDY0CglmcmFtZV9kaWcgMiAvLyBjdXJSb3VuZDogdWludDY0CglmcmFtZV9kaWcgMSAvLyBlcG9jaFJvdW5kTGVuZ3RoOiB1aW50NjQKCSUKCS0KCWZyYW1lX2J1cnkgMyAvLyB0aGlzRXBvY2hCZWdpbjogdWludDY0CgoJLy8gKmlmMjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTM0CgkvLyB0aGlzLmxhc3RQYXlvdXQuZXhpc3RzCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlYyAxNCAvLyAgImxhc3RQYXlvdXQiCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCglieiAqaWYyMF9lbmQKCgkvLyAqaWYyMF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTM1CgkvLyBsYXN0UGF5b3V0RXBvY2ggPSB0aGlzLmxhc3RQYXlvdXQudmFsdWUgLSAodGhpcy5sYXN0UGF5b3V0LnZhbHVlICUgZXBvY2hSb3VuZExlbmd0aCkKCWJ5dGVjIDE0IC8vICAibGFzdFBheW91dCIKCWFwcF9nbG9iYWxfZ2V0CglieXRlYyAxNCAvLyAgImxhc3RQYXlvdXQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0CgklCgktCglmcmFtZV9idXJ5IDQgLy8gbGFzdFBheW91dEVwb2NoOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTM5CgkvLyBhc3NlcnQobGFzdFBheW91dEVwb2NoICE9PSB0aGlzRXBvY2hCZWdpbiwgImNhbid0IGNhbGwgZXBvY2hCYWxhbmNlVXBkYXRlIGluIHNhbWUgZXBvY2ggYXMgcHJpb3IgY2FsbCIpCglmcmFtZV9kaWcgNCAvLyBsYXN0UGF5b3V0RXBvY2g6IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJIT0KCgkvLyBjYW4ndCBjYWxsIGVwb2NoQmFsYW5jZVVwZGF0ZSBpbiBzYW1lIGVwb2NoIGFzIHByaW9yIGNhbGwKCWFzc2VydAoKKmlmMjBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU0MgoJLy8gdGhpcy5jaGVja0lmQmluQ2xvc2VkKCkKCWNhbGxzdWIgY2hlY2tJZkJpbkNsb3NlZAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NDUKCS8vIHRoaXMubGFzdFBheW91dC52YWx1ZSA9IGN1clJvdW5kCglieXRlYyAxNCAvLyAgImxhc3RQYXlvdXQiCglmcmFtZV9kaWcgMiAvLyBjdXJSb3VuZDogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NDYKCS8vIHRoaXMuZXBvY2hOdW1iZXIudmFsdWUgKz0gMQoJYnl0ZWMgMTkgLy8gICJlcG9jaE51bWJlciIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJKwoJYnl0ZWMgMTkgLy8gICJlcG9jaE51bWJlciIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU1MQoJLy8gaXNUb2tlbkVsaWdpYmxlID0gdmFsaWRhdG9yQ29uZmlnLnJld2FyZFRva2VuSWQgIT09IDAKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE1MyA4CglidG9pCglpbnRjIDAgLy8gMAoJIT0KCWZyYW1lX2J1cnkgNSAvLyBpc1Rva2VuRWxpZ2libGU6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTUyCgkvLyBwb29sT25lQXBwSUQgPSB0aGlzLmFwcC5pZAoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJZnJhbWVfYnVyeSA2IC8vIHBvb2xPbmVBcHBJRDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU1MwoJLy8gcG9vbE9uZUFkZHJlc3MgPSB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfYnVyeSA3IC8vIHBvb2xPbmVBZGRyZXNzOiBhZGRyZXNzCgoJLy8gKmlmMjFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTU4CgkvLyBpc1Rva2VuRWxpZ2libGUKCWZyYW1lX2RpZyA1IC8vIGlzVG9rZW5FbGlnaWJsZTogYm9vbAoJYnogKmlmMjFfZW5kCgoJLy8gKmlmMjFfY29uc2VxdWVudAoJLy8gKmlmMjJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTU5CgkvLyB0aGlzLnBvb2xJZC52YWx1ZSAhPT0gMQoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJIT0KCWJ6ICppZjIyX2VuZAoKCS8vICppZjIyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NjEKCS8vIHBvb2xPbmVBcHBJRCA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuZ2V0UG9vbEFwcElkPih7CgkvLyAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWUsIDFdLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAyIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlYyAyNCAvLyAgbWV0aG9kICJnZXRQb29sQXBwSWQodWludDY0LHVpbnQ2NCl1aW50NjQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NjIKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTYzCgkvLyBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZSwgMV0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMQoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludGMgMSAvLyAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWJ0b2kKCWZyYW1lX2J1cnkgNiAvLyBwb29sT25lQXBwSUQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NjUKCS8vIHBvb2xPbmVBZGRyZXNzID0gQXBwSUQuZnJvbVVpbnQ2NChwb29sT25lQXBwSUQpLmFkZHJlc3MKCWZyYW1lX2RpZyA2IC8vIHBvb2xPbmVBcHBJRDogdWludDY0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCWZyYW1lX2J1cnkgNyAvLyBwb29sT25lQWRkcmVzczogYWRkcmVzcwoKKmlmMjJfZW5kOgoJLy8gKmlmMjNfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTcwCgkvLyB0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMQoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJPT0KCWJ6ICppZjIzX2Vsc2UKCgkvLyAqaWYyM19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTcxCgkvLyB0b2tlblBheW91dFJhdGlvID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5zZXRUb2tlblBheW91dFJhdGlvPih7CgkvLyAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAyIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlYyAyNSAvLyAgbWV0aG9kICJzZXRUb2tlblBheW91dFJhdGlvKHVpbnQ2NCkodWludDY0WzI0XSx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTcyCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZWMgMSAvLyAgImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU3MwoJLy8gbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdCglieXRlYyAzIC8vICAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludGMgMSAvLyAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgOCAvLyB0b2tlblBheW91dFJhdGlvOiBQb29sVG9rZW5QYXlvdXRSYXRpbwoJYiAqaWYyM19lbmQKCippZjIzX2Vsc2U6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTc3CgkvLyB0b2tlblBheW91dFJhdGlvID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFN0YWtpbmdQb29sLnByb3RvdHlwZS5wcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbz4oewoJLy8gICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQocG9vbE9uZUFwcElEKSwKCS8vICAgICAgICAgICBtZXRob2RBcmdzOiBbeyBpZDogdGhpcy52YWxpZGF0b3JJZC52YWx1ZSwgcG9vbElkOiB0aGlzLnBvb2xJZC52YWx1ZSwgcG9vbEFwcElkOiB0aGlzLmFwcC5pZCB9XSwKCS8vICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZWMgMjYgLy8gIG1ldGhvZCAicHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0WzI0XSx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTc4CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHBvb2xPbmVBcHBJRCkKCWZyYW1lX2RpZyA2IC8vIHBvb2xPbmVBcHBJRDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTc5CgkvLyBtZXRob2RBcmdzOiBbeyBpZDogdGhpcy52YWxpZGF0b3JJZC52YWx1ZSwgcG9vbElkOiB0aGlzLnBvb2xJZC52YWx1ZSwgcG9vbEFwcElkOiB0aGlzLmFwcC5pZCB9XQoJYnl0ZWMgMyAvLyAgInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWJ5dGVjIDQgLy8gICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJY29uY2F0Cgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCgljb25jYXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnRjIDEgLy8gMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglmcmFtZV9idXJ5IDggLy8gdG9rZW5QYXlvdXRSYXRpbzogUG9vbFRva2VuUGF5b3V0UmF0aW8KCippZjIzX2VuZDoKCippZjIxX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1ODYKCS8vIHZhbGlkYXRvclN0YXRlID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5nZXRWYWxpZGF0b3JTdGF0ZT4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJcHVzaGJ5dGVzIDB4MWYyZjAxMDkgLy8gbWV0aG9kICJnZXRWYWxpZGF0b3JTdGF0ZSh1aW50NjQpKHVpbnQxNix1aW50NjQsdWludDY0LHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1ODcKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTg4CgkvLyBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50YyAxIC8vIDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJZnJhbWVfYnVyeSA5IC8vIHZhbGlkYXRvclN0YXRlOiAodWludDE2LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1OTAKCS8vIHJld2FyZFRva2VuSGVsZEJhY2sgPSB2YWxpZGF0b3JTdGF0ZS5yZXdhcmRUb2tlbkhlbGRCYWNrCglmcmFtZV9kaWcgOSAvLyB2YWxpZGF0b3JTdGF0ZTogKHVpbnQxNix1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTggOAoJYnRvaQoJZnJhbWVfYnVyeSAxMCAvLyByZXdhcmRUb2tlbkhlbGRCYWNrOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTk2CgkvLyBhbGdvUmV3YXJkQXZhaWwgPSB0aGlzLmFwcC5hZGRyZXNzLmJhbGFuY2UgLSB0aGlzLnRvdGFsQWxnb1N0YWtlZC52YWx1ZSAtIHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQoJcG9wCglieXRlYyA2IC8vICAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCS0KCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJLQoJZnJhbWVfYnVyeSAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1OTcKCS8vIGlzUG9vbFNhdHVyYXRlZCA9IGZhbHNlCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAxMiAvLyBpc1Bvb2xTYXR1cmF0ZWQ6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTk4CgkvLyBhbGdvU2F0dXJhdGlvbkFtdCA9IHRoaXMuYWxnb1NhdHVyYXRpb25MZXZlbCgpCgljYWxsc3ViIGFsZ29TYXR1cmF0aW9uTGV2ZWwKCWZyYW1lX2J1cnkgMTMgLy8gYWxnb1NhdHVyYXRpb25BbXQ6IHVpbnQ2NAoKCS8vICppZjI0X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYwNgoJLy8gdmFsaWRhdG9yU3RhdGUudG90YWxBbGdvU3Rha2VkID4gYWxnb1NhdHVyYXRpb25BbXQKCWZyYW1lX2RpZyA5IC8vIHZhbGlkYXRvclN0YXRlOiAodWludDE2LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxMCA4CglidG9pCglmcmFtZV9kaWcgMTMgLy8gYWxnb1NhdHVyYXRpb25BbXQ6IHVpbnQ2NAoJPgoJYnogKmlmMjRfZW5kCgoJLy8gKmlmMjRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYwNwoJLy8gaXNQb29sU2F0dXJhdGVkID0gdHJ1ZQoJaW50YyAxIC8vIDEKCWZyYW1lX2J1cnkgMTIgLy8gaXNQb29sU2F0dXJhdGVkOiBib29sCgoqaWYyNF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjEzCgkvLyB0b2tlblJld2FyZEF2YWlsID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMTQgLy8gdG9rZW5SZXdhcmRBdmFpbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYxNAoJLy8gdG9rZW5SZXdhcmRQYWlkT3V0ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjE1CgkvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dCA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDE2IC8vIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0OiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjE2CgkvLyBleGNlc3NUb0ZlZVNpbmsgPSAwCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAxNyAvLyBleGNlc3NUb0ZlZVNpbms6IHVpbnQ2NAoKCS8vICppZjI1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYxNwoJLy8gaXNUb2tlbkVsaWdpYmxlCglmcmFtZV9kaWcgNSAvLyBpc1Rva2VuRWxpZ2libGU6IGJvb2wKCWJ6ICppZjI1X2VuZAoKCS8vICppZjI1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2MTgKCS8vIHRva2VuUmV3YXJkQmFsID0KCS8vICAgICAgICAgcG9vbE9uZUFkZHJlc3MuYXNzZXRCYWxhbmNlKEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCkpIC0gcmV3YXJkVG9rZW5IZWxkQmFjawoJZnJhbWVfZGlnIDcgLy8gcG9vbE9uZUFkZHJlc3M6IGFkZHJlc3MKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE1MyA4CglidG9pCglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIDEwIC8vIHJld2FyZFRva2VuSGVsZEJhY2s6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAxOCAvLyB0b2tlblJld2FyZEJhbDogdWludDY0CgoJLy8gKmlmMjZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjIzCgkvLyB0b2tlblJld2FyZEJhbCA+PSB2YWxpZGF0b3JDb25maWcucmV3YXJkUGVyUGF5b3V0CglmcmFtZV9kaWcgMTggLy8gdG9rZW5SZXdhcmRCYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTYxIDgKCWJ0b2kKCT49CglieiAqaWYyNl9lbmQKCgkvLyAqaWYyNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjI5CgkvLyBvdXJQb29sUGN0T2ZXaG9sZSA9IHRva2VuUGF5b3V0UmF0aW8ucG9vbFBjdE9mV2hvbGVbdGhpcy5wb29sSWQudmFsdWUgLSAxXQoJZnJhbWVfZGlnIDggLy8gdG9rZW5QYXlvdXRSYXRpbzogUG9vbFRva2VuUGF5b3V0UmF0aW8KCWludGMgMCAvLyAwCglieXRlYyA0IC8vICAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWludGMgMSAvLyAxCgktCglpbnRjIDE0IC8vIDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAxNCAvLyA4CglleHRyYWN0MwoJYnRvaQoJZnJhbWVfYnVyeSAxOSAvLyBvdXJQb29sUGN0T2ZXaG9sZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYzMgoJLy8gdG9rZW5SZXdhcmRBdmFpbCA9IHdpZGVSYXRpbyhbdmFsaWRhdG9yQ29uZmlnLnJld2FyZFBlclBheW91dCwgb3VyUG9vbFBjdE9mV2hvbGVdLCBbMV8wMDBfMDAwXSkKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE2MSA4CglidG9pCglmcmFtZV9kaWcgMTkgLy8gb3VyUG9vbFBjdE9mV2hvbGU6IHVpbnQ2NAoJbXVsdwoJaW50YyAwIC8vIDAKCWludGMgMTIgLy8gMV8wMDBfMDAwCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAxNCAvLyB0b2tlblJld2FyZEF2YWlsOiB1aW50NjQKCippZjI2X2VuZDoKCippZjI1X2VuZDoKCS8vICppZjI3X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYzNQoJLy8gdG9rZW5SZXdhcmRBdmFpbCA9PT0gMAoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglieiAqaWYyN19lbmQKCgkvLyAqaWYyN19jb25zZXF1ZW50CgkvLyAqaWYyOF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NDAKCS8vIGFsZ29SZXdhcmRBdmFpbCA8IDFfMDAwXzAwMAoJZnJhbWVfZGlnIDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CglpbnRjIDEyIC8vIDFfMDAwXzAwMAoJPAoJYnogKmlmMjhfZW5kCgoJLy8gKmlmMjhfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY0MQoJLy8gbG9nKCchdG9rZW4mJiFub2FsZ28gdG8gcGF5JykKCXB1c2hieXRlcyAweDIxNzQ2ZjZiNjU2ZTI2MjYyMTZlNmY2MTZjNjc2ZjIwNzQ2ZjIwNzA2MTc5IC8vICIhdG9rZW4mJiFub2FsZ28gdG8gcGF5IgoJbG9nCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY0MgoJLy8gcmV0dXJuOwoJcmV0c3ViCgoqaWYyOF9lbmQ6CgoqaWYyN19lbmQ6CgkvLyAqaWYyOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NDYKCS8vIGlzUG9vbFNhdHVyYXRlZAoJZnJhbWVfZGlnIDEyIC8vIGlzUG9vbFNhdHVyYXRlZDogYm9vbAoJYnogKmlmMjlfZWxzZWlmMV9jb25kaXRpb24KCgkvLyAqaWYyOV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjQ5CgkvLyBkaW1pbmlzaGVkUmV3YXJkID0gd2lkZVJhdGlvKFthbGdvUmV3YXJkQXZhaWwsIGFsZ29TYXR1cmF0aW9uQW10XSwgW3ZhbGlkYXRvclN0YXRlLnRvdGFsQWxnb1N0YWtlZF0pCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWZyYW1lX2RpZyAxMyAvLyBhbGdvU2F0dXJhdGlvbkFtdDogdWludDY0CgltdWx3CglpbnRjIDAgLy8gMAoJZnJhbWVfZGlnIDkgLy8gdmFsaWRhdG9yU3RhdGU6ICh1aW50MTYsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDEwIDgKCWJ0b2kKCWRpdm1vZHcKCXBvcAoJcG9wCglzd2FwCgkhCgoJLy8gd2lkZVJhdGlvIGZhaWxlZAoJYXNzZXJ0CglmcmFtZV9idXJ5IDIwIC8vIGRpbWluaXNoZWRSZXdhcmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NTEKCS8vIGV4Y2Vzc1RvRmVlU2luayA9IGFsZ29SZXdhcmRBdmFpbCAtIGRpbWluaXNoZWRSZXdhcmQKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJZnJhbWVfZGlnIDIwIC8vIGRpbWluaXNoZWRSZXdhcmQ6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAxNyAvLyBleGNlc3NUb0ZlZVNpbms6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NTIKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgICAgYW1vdW50OiBleGNlc3NUb0ZlZVNpbmssCgkvLyAgICAgICAgIHJlY2VpdmVyOiB0aGlzLmdldEZlZVNpbmsoKSwKCS8vICAgICAgICAgbm90ZTogJ3Bvb2wgc2F0dXJhdGVkLCBleGNlc3MgdG8gZmVlIHNpbmsnLAoJLy8gICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMSAvLyAgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY1MwoJLy8gYW1vdW50OiBleGNlc3NUb0ZlZVNpbmsKCWZyYW1lX2RpZyAxNyAvLyBleGNlc3NUb0ZlZVNpbms6IHVpbnQ2NAoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjU0CgkvLyByZWNlaXZlcjogdGhpcy5nZXRGZWVTaW5rKCkKCWNhbGxzdWIgZ2V0RmVlU2luawoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NTUKCS8vIG5vdGU6ICdwb29sIHNhdHVyYXRlZCwgZXhjZXNzIHRvIGZlZSBzaW5rJwoJcHVzaGJ5dGVzIDB4NzA2ZjZmNmMyMDczNjE3NDc1NzI2MTc0NjU2NDJjMjA2NTc4NjM2NTczNzMyMDc0NmYyMDY2NjU2NTIwNzM2OTZlNmIgLy8gInBvb2wgc2F0dXJhdGVkLCBleGNlc3MgdG8gZmVlIHNpbmsiCglpdHhuX2ZpZWxkIE5vdGUKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY1OAoJLy8gYWxnb1Jld2FyZEF2YWlsID0gZGltaW5pc2hlZFJld2FyZAoJZnJhbWVfZGlnIDIwIC8vIGRpbWluaXNoZWRSZXdhcmQ6IHVpbnQ2NAoJZnJhbWVfYnVyeSAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJYiAqaWYyOV9lbmQKCippZjI5X2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY1OQoJLy8gdmFsaWRhdG9yQ29uZmlnLnBlcmNlbnRUb1ZhbGlkYXRvciAhPT0gMAoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTczIDQKCWJ0b2kKCWludGMgMCAvLyAwCgkhPQoJYnogKmlmMjlfZW5kCgoJLy8gKmlmMjlfZWxzZWlmMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjYyCgkvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dCA9IHdpZGVSYXRpbygKCS8vICAgICAgICAgW2FsZ29SZXdhcmRBdmFpbCwgdmFsaWRhdG9yQ29uZmlnLnBlcmNlbnRUb1ZhbGlkYXRvciBhcyB1aW50NjRdLAoJLy8gICAgICAgICBbMV8wMDBfMDAwXQoJLy8gICAgICAgKQoJZnJhbWVfZGlnIDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNzMgNAoJYnRvaQoJbXVsdwoJaW50YyAwIC8vIDAKCWludGMgMTIgLy8gMV8wMDBfMDAwCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY2OAoJLy8gYWxnb1Jld2FyZEF2YWlsIC09IHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0CglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWZyYW1lX2RpZyAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CgktCglmcmFtZV9idXJ5IDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CgoJLy8gKmlmMzBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Njc1CgkvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dCA+IDAKCWZyYW1lX2RpZyAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CglpbnRjIDAgLy8gMAoJPgoJYnogKmlmMzBfZW5kCgoJLy8gKmlmMzBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY3OAoJLy8gbWFuYWdlclRvcE9mZiA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDIxIC8vIG1hbmFnZXJUb3BPZmY6IHVpbnQ2NAoKCS8vICppZjMxX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY4MAoJLy8gdmFsaWRhdG9yQ29uZmlnLm1hbmFnZXIgIT09IHZhbGlkYXRvckNvbmZpZy52YWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyAmJgoJLy8gICAgICAgICAgIHZhbGlkYXRvckNvbmZpZy5tYW5hZ2VyLmJhbGFuY2UgLSB2YWxpZGF0b3JDb25maWcubWFuYWdlci5taW5CYWxhbmNlIDwgMl8xMDBfMDAwCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0MCAzMgoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTc3IDMyCgkhPQoJZHVwCglieiAqc2tpcF9hbmQzCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0MCAzMgoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQwIDMyCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJLQoJaW50YyAxMyAvLyAyXzEwMF8wMDAKCTwKCSYmCgoqc2tpcF9hbmQzOgoJYnogKmlmMzFfZW5kCgoJLy8gKmlmMzFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY4MwoJLy8gbWFuYWdlclRvcE9mZiA9IHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0IDwgMl8xMDBfMDAwID8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQgOiAyXzEwMF8wMDAKCWZyYW1lX2RpZyAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CglpbnRjIDEzIC8vIDJfMTAwXzAwMAoJPAoJYnogKnRlcm5hcnkxX2ZhbHNlCglmcmFtZV9kaWcgMTYgLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQ6IHVpbnQ2NAoJYiAqdGVybmFyeTFfZW5kCgoqdGVybmFyeTFfZmFsc2U6CglpbnRjIDEzIC8vIDJfMTAwXzAwMAoKKnRlcm5hcnkxX2VuZDoKCWZyYW1lX2J1cnkgMjEgLy8gbWFuYWdlclRvcE9mZjogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY4NAoJLy8gc2VuZFBheW1lbnQoewoJLy8gICAgICAgICAgICAgYW1vdW50OiBtYW5hZ2VyVG9wT2ZmLAoJLy8gICAgICAgICAgICAgcmVjZWl2ZXI6IHZhbGlkYXRvckNvbmZpZy5tYW5hZ2VyLAoJLy8gICAgICAgICAgICAgbm90ZTogJ3ZhbGlkYXRvciByZXdhcmQgdG8gbWFuYWdlciBmb3IgZnVuZGluZyBlcG9jaCB1cGRhdGVzJywKCS8vICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxIC8vICBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Njg1CgkvLyBhbW91bnQ6IG1hbmFnZXJUb3BPZmYKCWZyYW1lX2RpZyAyMSAvLyBtYW5hZ2VyVG9wT2ZmOiB1aW50NjQKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY4NgoJLy8gcmVjZWl2ZXI6IHZhbGlkYXRvckNvbmZpZy5tYW5hZ2VyCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0MCAzMgoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2ODcKCS8vIG5vdGU6ICd2YWxpZGF0b3IgcmV3YXJkIHRvIG1hbmFnZXIgZm9yIGZ1bmRpbmcgZXBvY2ggdXBkYXRlcycKCXB1c2hieXRlcyAweDc2NjE2YzY5NjQ2MTc0NmY3MjIwNzI2NTc3NjE3MjY0MjA3NDZmMjA2ZDYxNmU2MTY3NjU3MjIwNjY2ZjcyMjA2Njc1NmU2NDY5NmU2NzIwNjU3MDZmNjM2ODIwNzU3MDY0NjE3NDY1NzMgLy8gInZhbGlkYXRvciByZXdhcmQgdG8gbWFuYWdlciBmb3IgZnVuZGluZyBlcG9jaCB1cGRhdGVzIgoJaXR4bl9maWVsZCBOb3RlCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMzFfZW5kOgoJLy8gKmlmMzJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjkwCgkvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dCAtIG1hbmFnZXJUb3BPZmYgPiAwCglmcmFtZV9kaWcgMTYgLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDIxIC8vIG1hbmFnZXJUb3BPZmY6IHVpbnQ2NAoJLQoJaW50YyAwIC8vIDAKCT4KCWJ6ICppZjMyX2VuZAoKCS8vICppZjMyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2OTEKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgICAgICAgIGFtb3VudDogdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQgLSBtYW5hZ2VyVG9wT2ZmLAoJLy8gICAgICAgICAgICAgcmVjZWl2ZXI6IHZhbGlkYXRvckNvbmZpZy52YWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcywKCS8vICAgICAgICAgICAgIG5vdGU6ICd2YWxpZGF0b3IgcmV3YXJkJywKCS8vICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxIC8vICBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjkyCgkvLyBhbW91bnQ6IHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0IC0gbWFuYWdlclRvcE9mZgoJZnJhbWVfZGlnIDE2IC8vIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0OiB1aW50NjQKCWZyYW1lX2RpZyAyMSAvLyBtYW5hZ2VyVG9wT2ZmOiB1aW50NjQKCS0KCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY5MwoJLy8gcmVjZWl2ZXI6IHZhbGlkYXRvckNvbmZpZy52YWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcwoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTc3IDMyCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY5NAoJLy8gbm90ZTogJ3ZhbGlkYXRvciByZXdhcmQnCglwdXNoYnl0ZXMgMHg3NjYxNmM2OTY0NjE3NDZmNzIyMDcyNjU3NzYxNzI2NCAvLyAidmFsaWRhdG9yIHJld2FyZCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCippZjMyX2VuZDoKCippZjMwX2VuZDoKCippZjI5X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MDYKCS8vIGluY3JlYXNlZFN0YWtlID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoKCS8vICppZjMzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczMAoJLy8gYWxnb1Jld2FyZEF2YWlsICE9PSAwIHx8IHRva2VuUmV3YXJkQXZhaWwgIT09IDAKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCSE9CglkdXAKCWJueiAqc2tpcF9vcjEKCWZyYW1lX2RpZyAxNCAvLyB0b2tlblJld2FyZEF2YWlsOiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoJfHwKCipza2lwX29yMToKCWJ6ICppZjMzX2VuZAoKCS8vICppZjMzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzEKCS8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMjMgLy8gcGFydGlhbFN0YWtlcnNUb3RhbFN0YWtlOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzMyCgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGg7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDI0IC8vIGk6IHVpbnQ2NAoKKmZvcl80OgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczMgoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAyNCAvLyBpOiB1aW50NjQKCWludGMgNyAvLyAyMDAKCTwKCWJ6ICpmb3JfNF9lbmQKCgkvLyAqaWYzNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzMKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgNDAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglpbnRjIDE3IC8vIDQwMAoJPAoJYnogKmlmMzRfZW5kCgoJLy8gKmlmMzRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczNAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50YyAyIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGVjIDUgLy8gICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludGMgOCAvLyAgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMzRfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczNgoJLy8gY21wU3Rha2VyID0gY2xvbmUodGhpcy5zdGFrZXJzLnZhbHVlW2ldKQoJZnJhbWVfZGlnIDI0IC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMyAvLyA2NAoJYnl0ZWMgMiAvLyAgInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyAqaWYzNV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzcKCS8vIGNtcFN0YWtlci5hY2NvdW50ICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzCglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDAgMzIKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCWJ6ICppZjM1X2VuZAoKCS8vICppZjM1X2NvbnNlcXVlbnQKCS8vICppZjM2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczOAoJLy8gY21wU3Rha2VyLmVudHJ5Um91bmQgPj0gdGhpc0Vwb2NoQmVnaW4KCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNTYgOAoJYnRvaQoJZnJhbWVfZGlnIDMgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJPj0KCWJ6ICppZjM2X2Vsc2UKCgkvLyAqaWYzNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzQxCgkvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2UgKz0gY21wU3Rha2VyLmJhbGFuY2UKCWZyYW1lX2RpZyAyMyAvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2U6IHVpbnQ2NAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCgkrCglmcmFtZV9idXJ5IDIzIC8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0CgliICppZjM2X2VuZAoKKmlmMzZfZWxzZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NDUKCS8vIHRpbWVJblBvb2wgPSB0aGlzRXBvY2hCZWdpbiAtIGNtcFN0YWtlci5lbnRyeVJvdW5kCglmcmFtZV9kaWcgMyAvLyB0aGlzRXBvY2hCZWdpbjogdWludDY0CglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDU2IDgKCWJ0b2kKCS0KCWZyYW1lX2J1cnkgMjYgLy8gdGltZUluUG9vbDogdWludDY0CgoJLy8gKmlmMzdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzQ5CgkvLyB0aW1lSW5Qb29sIDwgZXBvY2hSb3VuZExlbmd0aAoJZnJhbWVfZGlnIDI2IC8vIHRpbWVJblBvb2w6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0Cgk8CglieiAqaWYzN19lbmQKCgkvLyAqaWYzN19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzUwCgkvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2UgKz0gY21wU3Rha2VyLmJhbGFuY2UKCWZyYW1lX2RpZyAyMyAvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2U6IHVpbnQ2NAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCgkrCglmcmFtZV9idXJ5IDIzIC8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc1MQoJLy8gdGltZVBlcmNlbnRhZ2UgPSAodGltZUluUG9vbCAqIDEwMDApIC8gZXBvY2hSb3VuZExlbmd0aAoJZnJhbWVfZGlnIDI2IC8vIHRpbWVJblBvb2w6IHVpbnQ2NAoJaW50YyAxMCAvLyAxMDAwCgkqCglmcmFtZV9kaWcgMSAvLyBlcG9jaFJvdW5kTGVuZ3RoOiB1aW50NjQKCS8KCWZyYW1lX2J1cnkgMjcgLy8gdGltZVBlcmNlbnRhZ2U6IHVpbnQ2NAoKCS8vICppZjM4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc1MwoJLy8gdG9rZW5SZXdhcmRBdmFpbCA+IDAKCWZyYW1lX2RpZyAxNCAvLyB0b2tlblJld2FyZEF2YWlsOiB1aW50NjQKCWludGMgMCAvLyAwCgk+CglieiAqaWYzOF9lbmQKCgkvLyAqaWYzOF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzU1CgkvLyBzdGFrZXJUb2tlblJld2FyZCA9IHdpZGVSYXRpbygKCS8vICAgICAgICAgICAgICAgICAgIFtjbXBTdGFrZXIuYmFsYW5jZSwgdG9rZW5SZXdhcmRBdmFpbCwgdGltZVBlcmNlbnRhZ2VdLAoJLy8gICAgICAgICAgICAgICAgICAgW3RoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlLCAxMDAwXQoJLy8gICAgICAgICAgICAgICAgICkKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJbXVsdwoJZnJhbWVfZGlnIDI3IC8vIHRpbWVQZXJjZW50YWdlOiB1aW50NjQKCXVuY292ZXIgMgoJZGlnIDEKCSoKCWNvdmVyIDIKCW11bHcKCWNvdmVyIDIKCSsKCXN3YXAKCWJ5dGVjIDYgLy8gICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJaW50YyAxMCAvLyAxMDAwCgltdWx3CglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAyOCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc2MgoJLy8gdG9rZW5SZXdhcmRBdmFpbCAtPSBzdGFrZXJUb2tlblJld2FyZAoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJZnJhbWVfZGlnIDI4IC8vIHN0YWtlclRva2VuUmV3YXJkOiB1aW50NjQKCS0KCWZyYW1lX2J1cnkgMTQgLy8gdG9rZW5SZXdhcmRBdmFpbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc2MwoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSArPSBzdGFrZXJUb2tlblJld2FyZAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50YyAyMCAvLyAgaGVhZE9mZnNldAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglmcmFtZV9kaWcgMjggLy8gc3Rha2VyVG9rZW5SZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc2NAoJLy8gdG9rZW5SZXdhcmRQYWlkT3V0ICs9IHN0YWtlclRva2VuUmV3YXJkCglmcmFtZV9kaWcgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCWZyYW1lX2RpZyAyOCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgkrCglmcmFtZV9idXJ5IDE1IC8vIHRva2VuUmV3YXJkUGFpZE91dDogdWludDY0CgoqaWYzOF9lbmQ6CgkvLyAqaWYzOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NjYKCS8vIGFsZ29SZXdhcmRBdmFpbCA+IDAKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT4KCWJ6ICppZjM5X2VuZAoKCS8vICppZjM5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NjgKCS8vIHN0YWtlclJld2FyZCA9IHdpZGVSYXRpbygKCS8vICAgICAgICAgICAgICAgICAgIFtjbXBTdGFrZXIuYmFsYW5jZSwgYWxnb1Jld2FyZEF2YWlsLCB0aW1lUGVyY2VudGFnZV0sCgkvLyAgICAgICAgICAgICAgICAgICBbdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUsIDEwMDBdCgkvLyAgICAgICAgICAgICAgICAgKQoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCW11bHcKCWZyYW1lX2RpZyAyNyAvLyB0aW1lUGVyY2VudGFnZTogdWludDY0Cgl1bmNvdmVyIDIKCWRpZyAxCgkqCgljb3ZlciAyCgltdWx3Cgljb3ZlciAyCgkrCglzd2FwCglieXRlYyA2IC8vICAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCWludGMgMTAgLy8gMTAwMAoJbXVsdwoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMjkgLy8gc3Rha2VyUmV3YXJkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzc1CgkvLyBhbGdvUmV3YXJkQXZhaWwgLT0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWZyYW1lX2RpZyAyOSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NzgKCS8vIGNtcFN0YWtlci5iYWxhbmNlICs9IHN0YWtlclJld2FyZAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50YyA0IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAyOSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc3OQoJLy8gY21wU3Rha2VyLnRvdGFsUmV3YXJkZWQgKz0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglpbnRjIDE5IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQwIDgKCWJ0b2kKCWZyYW1lX2RpZyAyOSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc4MAoJLy8gaW5jcmVhc2VkU3Rha2UgKz0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoJZnJhbWVfZGlnIDI5IC8vIHN0YWtlclJld2FyZDogdWludDY0CgkrCglmcmFtZV9idXJ5IDIyIC8vIGluY3JlYXNlZFN0YWtlOiB1aW50NjQKCippZjM5X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3ODMKCS8vIHRoaXMuc3Rha2Vycy52YWx1ZVtpXSA9IGNtcFN0YWtlcgoJZnJhbWVfZGlnIDI0IC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X3JlcGxhY2UKCippZjM3X2VuZDoKCippZjM2X2VuZDoKCippZjM1X2VuZDoKCipmb3JfNF9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzIKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDI0IC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMjQgLy8gaTogdWludDY0CgliICpmb3JfNAoKKmZvcl80X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3OTEKCS8vIG5ld1Bvb2xUb3RhbFN0YWtlID0gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgLSBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2UKCWJ5dGVjIDYgLy8gICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDIzIC8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0CgktCglmcmFtZV9idXJ5IDMwIC8vIG5ld1Bvb2xUb3RhbFN0YWtlOiB1aW50NjQKCgkvLyAqaWY0MF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3OTUKCS8vIG5ld1Bvb2xUb3RhbFN0YWtlID4gMAoJZnJhbWVfZGlnIDMwIC8vIG5ld1Bvb2xUb3RhbFN0YWtlOiB1aW50NjQKCWludGMgMCAvLyAwCgk+CglieiAqaWY0MF9lbmQKCgkvLyAqaWY0MF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzk3CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGg7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDMxIC8vIGk6IHVpbnQ2NAoKKmZvcl81OgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc5NwoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAzMSAvLyBpOiB1aW50NjQKCWludGMgNyAvLyAyMDAKCTwKCWJ6ICpmb3JfNV9lbmQKCgkvLyAqaWY0MV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3OTgKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgMjAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglpbnRjIDcgLy8gMjAwCgk8CglieiAqaWY0MV9lbmQKCgkvLyAqaWY0MV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzk5CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZWMgNSAvLyAgI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50YyA4IC8vICBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoqaWY0MV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODAxCgkvLyBjbXBTdGFrZXIgPSBjbG9uZSh0aGlzLnN0YWtlcnMudmFsdWVbaV0pCglmcmFtZV9kaWcgMzEgLy8gaTogdWludDY0CglpbnRjIDMgLy8gNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAzIC8vIDY0CglieXRlYyAyIC8vICAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vICppZjQyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgwMgoJLy8gY21wU3Rha2VyLmFjY291bnQgIT09IGdsb2JhbHMuemVyb0FkZHJlc3MgJiYgY21wU3Rha2VyLmVudHJ5Um91bmQgPCB0aGlzRXBvY2hCZWdpbgoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAwIDMyCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9CglkdXAKCWJ6ICpza2lwX2FuZDQKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNTYgOAoJYnRvaQoJZnJhbWVfZGlnIDMgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJPAoJJiYKCipza2lwX2FuZDQ6CglieiAqaWY0Ml9lbmQKCgkvLyAqaWY0Ml9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODAzCgkvLyB0aW1lSW5Qb29sID0gdGhpc0Vwb2NoQmVnaW4gLSBjbXBTdGFrZXIuZW50cnlSb3VuZAoJZnJhbWVfZGlnIDMgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA1NiA4CglidG9pCgktCglmcmFtZV9idXJ5IDMzIC8vIHRpbWVJblBvb2w6IHVpbnQ2NAoKCS8vICppZjQzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgwNQoJLy8gdGltZUluUG9vbCA+PSBlcG9jaFJvdW5kTGVuZ3RoCglmcmFtZV9kaWcgMzMgLy8gdGltZUluUG9vbDogdWludDY0CglmcmFtZV9kaWcgMSAvLyBlcG9jaFJvdW5kTGVuZ3RoOiB1aW50NjQKCT49CglieiAqaWY0M19lbmQKCgkvLyAqaWY0M19jb25zZXF1ZW50CgkvLyAqaWY0NF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MTAKCS8vIHRva2VuUmV3YXJkQXZhaWwgPiAwCglmcmFtZV9kaWcgMTQgLy8gdG9rZW5SZXdhcmRBdmFpbDogdWludDY0CglpbnRjIDAgLy8gMAoJPgoJYnogKmlmNDRfZW5kCgoJLy8gKmlmNDRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgxMQoJLy8gc3Rha2VyVG9rZW5SZXdhcmQgPSB3aWRlUmF0aW8oW2NtcFN0YWtlci5iYWxhbmNlLCB0b2tlblJld2FyZEF2YWlsXSwgW25ld1Bvb2xUb3RhbFN0YWtlXSkKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJbXVsdwoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyAzMCAvLyBuZXdQb29sVG90YWxTdGFrZTogdWludDY0CglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAzNCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgxNAoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSArPSBzdGFrZXJUb2tlblJld2FyZAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50YyAyMCAvLyAgaGVhZE9mZnNldAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglmcmFtZV9kaWcgMzQgLy8gc3Rha2VyVG9rZW5SZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgxNQoJLy8gdG9rZW5SZXdhcmRQYWlkT3V0ICs9IHN0YWtlclRva2VuUmV3YXJkCglmcmFtZV9kaWcgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCWZyYW1lX2RpZyAzNCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgkrCglmcmFtZV9idXJ5IDE1IC8vIHRva2VuUmV3YXJkUGFpZE91dDogdWludDY0CgoqaWY0NF9lbmQ6CgkvLyAqaWY0NV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MTcKCS8vIGFsZ29SZXdhcmRBdmFpbCA+IDAKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT4KCWJ6ICppZjQ1X2VuZAoKCS8vICppZjQ1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MTgKCS8vIHN0YWtlclJld2FyZCA9IHdpZGVSYXRpbyhbY21wU3Rha2VyLmJhbGFuY2UsIGFsZ29SZXdhcmRBdmFpbF0sIFtuZXdQb29sVG90YWxTdGFrZV0pCglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJbXVsdwoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyAzMCAvLyBuZXdQb29sVG90YWxTdGFrZTogdWludDY0CglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAzNSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MjEKCS8vIGNtcFN0YWtlci5iYWxhbmNlICs9IHN0YWtlclJld2FyZAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50YyA0IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAzNSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgyMgoJLy8gY21wU3Rha2VyLnRvdGFsUmV3YXJkZWQgKz0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglpbnRjIDE5IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQwIDgKCWJ0b2kKCWZyYW1lX2RpZyAzNSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgyMwoJLy8gaW5jcmVhc2VkU3Rha2UgKz0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoJZnJhbWVfZGlnIDM1IC8vIHN0YWtlclJld2FyZDogdWludDY0CgkrCglmcmFtZV9idXJ5IDIyIC8vIGluY3JlYXNlZFN0YWtlOiB1aW50NjQKCippZjQ1X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MjcKCS8vIHRoaXMuc3Rha2Vycy52YWx1ZVtpXSA9IGNtcFN0YWtlcgoJZnJhbWVfZGlnIDMxIC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X3JlcGxhY2UKCippZjQzX2VuZDoKCippZjQyX2VuZDoKCipmb3JfNV9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3OTcKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDMxIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMzEgLy8gaTogdWludDY0CgliICpmb3JfNQoKKmZvcl81X2VuZDoKCippZjQwX2VuZDoKCippZjMzX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MzcKCS8vIHJvdW5kc0xlZnRJbkJpbiA9IHRoaXMuYmluUm91bmRTdGFydC52YWx1ZSArIHRoaXMucm91bmRzUGVyRGF5LnZhbHVlIC0gZ2xvYmFscy5yb3VuZAoJYnl0ZWMgMTEgLy8gICJiaW5Sb3VuZFN0YXJ0IgoJYXBwX2dsb2JhbF9nZXQKCWJ5dGVjIDEwIC8vICAicm91bmRzUGVyRGF5IgoJYXBwX2dsb2JhbF9nZXQKCSsKCWdsb2JhbCBSb3VuZAoJLQoJZnJhbWVfYnVyeSAzNiAvLyByb3VuZHNMZWZ0SW5CaW46IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MzgKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlICs9IGluY3JlYXNlZFN0YWtlCglieXRlYyA2IC8vICAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAyMiAvLyBpbmNyZWFzZWRTdGFrZTogdWludDY0CgkrCglieXRlYyA2IC8vICAic3Rha2VkIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODM5CgkvLyB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgPQoJLy8gICAgICAgdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlICsgKGluY3JlYXNlZFN0YWtlIGFzIHVpbnQxMjgpICogKHJvdW5kc0xlZnRJbkJpbiBhcyB1aW50MTI4KQoJYnl0ZWMgNyAvLyAgInN0YWtlQWNjdW11bGF0b3IiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfZGlnIDM2IC8vIHJvdW5kc0xlZnRJbkJpbjogdWludDY0CglpdG9iCgliKgoJYisKCWR1cAoJYml0bGVuCglpbnRjIDYgLy8gMTI4Cgk8PQoKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSArIChpbmNyZWFzZWRTdGFrZSBhcyB1aW50MTI4KSAqIChyb3VuZHNMZWZ0SW5CaW4gYXMgdWludDEyOCkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlYyA4IC8vIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnRjIDUgLy8gMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjg0MQoJLy8gdGhpcy5yZXdhcmRBY2N1bXVsYXRvci52YWx1ZSA9IHRoaXMucmV3YXJkQWNjdW11bGF0b3IudmFsdWUgKyBpbmNyZWFzZWRTdGFrZQoJYnl0ZWMgMTIgLy8gICJyZXdhcmRBY2N1bXVsYXRvciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAyMiAvLyBpbmNyZWFzZWRTdGFrZTogdWludDY0CgkrCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4NDcKCS8vIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuc3Rha2VVcGRhdGVkVmlhUmV3YXJkcz4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgIHsgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfSwKCS8vICAgICAgICAgaW5jcmVhc2VkU3Rha2UsCgkvLyAgICAgICAgIHRva2VuUmV3YXJkUGFpZE91dCwKCS8vICAgICAgICAgdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQsCgkvLyAgICAgICAgIGV4Y2Vzc1RvRmVlU2luaywKCS8vICAgICAgIF0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJcHVzaGJ5dGVzIDB4NDE4ZmNlZmMgLy8gbWV0aG9kICJzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzKCh1aW50NjQsdWludDY0LHVpbnQ2NCksdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4NDgKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODQ5CgkvLyBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgIHsgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfSwKCS8vICAgICAgICAgaW5jcmVhc2VkU3Rha2UsCgkvLyAgICAgICAgIHRva2VuUmV3YXJkUGFpZE91dCwKCS8vICAgICAgICAgdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQsCgkvLyAgICAgICAgIGV4Y2Vzc1RvRmVlU2luaywKCS8vICAgICAgIF0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglieXRlYyA0IC8vICAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWNvbmNhdAoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJY29uY2F0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDIyIC8vIGluY3JlYXNlZFN0YWtlOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMTYgLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAxNyAvLyBleGNlc3NUb0ZlZVNpbms6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGdvT25saW5lKHBheSxieXRlW10sYnl0ZVtdLGJ5dGVbXSx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfZ29PbmxpbmU6CgkvLyB2b3RlS2V5RGlsdXRpb246IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNgoJYnRvaQoKCS8vIHZvdGVMYXN0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDUKCWJ0b2kKCgkvLyB2b3RlRmlyc3Q6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJYnRvaQoKCS8vIHN0YXRlUHJvb2ZQSzogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglleHRyYWN0IDIgMAoKCS8vIHNlbGVjdGlvblBLOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWV4dHJhY3QgMiAwCgoJLy8gdm90ZVBLOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZmVlUGF5bWVudDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50YyAxIC8vIDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludGMgMSAvLyAgcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDYgKGZlZVBheW1lbnQpIGZvciBnb09ubGluZSBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGdvT25saW5lKHBheSxieXRlW10sYnl0ZVtdLGJ5dGVbXSx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGdvT25saW5lCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnb09ubGluZShmZWVQYXltZW50OiBQYXlUeG4sIHZvdGVQSzogYnl0ZXMsIHNlbGVjdGlvblBLOiBieXRlcywgc3RhdGVQcm9vZlBLOiBieXRlcywgdm90ZUZpcnN0OiB1aW50NjQsIHZvdGVMYXN0OiB1aW50NjQsIHZvdGVLZXlEaWx1dGlvbjogdWludDY0KTogdm9pZAovLwovLyBSZWdpc3RlcnMgYSBzdGFraW5nIHBvb2wga2V5IG9ubGluZSBhZ2FpbnN0IGEgcGFydGljaXBhdGlvbiBrZXkuCi8vIFsgT05MWSBPV05FUiBPUiBNQU5BR0VSIENBTiBDQUxMIF0KLy8KLy8gQHBhcmFtIHtQYXlUeG59IGZlZVBheW1lbnQgLSBwYXltZW50IHRvIGNvdmVyIGV4dHJhIGZlZSBvZiBnb2luZyBvbmxpbmUgaWYgb2ZmbGluZSAtIG9yIDAgaWYgbm90IHJlbmV3YWwKLy8gQHBhcmFtIHtieXRlc30gdm90ZVBLIC0gVGhlIHZvdGUgcHVibGljIGtleS4KLy8gQHBhcmFtIHtieXRlc30gc2VsZWN0aW9uUEsgLSBUaGUgc2VsZWN0aW9uIHB1YmxpYyBrZXkuCi8vIEBwYXJhbSB7Ynl0ZXN9IHN0YXRlUHJvb2ZQSyAtIFRoZSBzdGF0ZSBwcm9vZiBwdWJsaWMga2V5LgovLyBAcGFyYW0ge3VpbnQ2NH0gdm90ZUZpcnN0IC0gVGhlIGZpcnN0IHZvdGUgaW5kZXguCi8vIEBwYXJhbSB7dWludDY0fSB2b3RlTGFzdCAtIFRoZSBsYXN0IHZvdGUgaW5kZXguCi8vIEBwYXJhbSB7dWludDY0fSB2b3RlS2V5RGlsdXRpb24gLSBUaGUgdm90ZSBrZXkgZGlsdXRpb24gdmFsdWUuCi8vIEB0aHJvd3Mge0Vycm9yfSBXaWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSBjYWxsZXIgaXMgbm90IHRoZSBvd25lciBvciBhIG1hbmFnZXIuCmdvT25saW5lOgoJcHJvdG8gNyAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODgxCgkvLyBhc3NlcnQodGhpcy5pc093bmVyT3JNYW5hZ2VyQ2FsbGVyKCksICdjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3InKQoJY2FsbHN1YiBpc093bmVyT3JNYW5hZ2VyQ2FsbGVyCgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODgyCgkvLyBleHRyYUZlZSA9IHRoaXMuZ2V0R29PbmxpbmVGZWUoKQoJY2FsbHN1YiBnZXRHb09ubGluZUZlZQoJZnJhbWVfYnVyeSAwIC8vIGV4dHJhRmVlOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODgzCgkvLyB2ZXJpZnlQYXlUeG4oZmVlUGF5bWVudCwgeyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgYW1vdW50OiBleHRyYUZlZSB9KQoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gZmVlUGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJmZWVQYXltZW50IiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gZmVlUGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAwIC8vIGV4dHJhRmVlOiB1aW50NjQKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJmZWVQYXltZW50IiwiZmllbGQiOiJhbW91bnQiLCJleHBlY3RlZCI6ImV4dHJhRmVlIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4ODQKCS8vIHNlbmRPbmxpbmVLZXlSZWdpc3RyYXRpb24oewoJLy8gICAgICAgdm90ZVBLOiB2b3RlUEssCgkvLyAgICAgICBzZWxlY3Rpb25QSzogc2VsZWN0aW9uUEssCgkvLyAgICAgICBzdGF0ZVByb29mUEs6IHN0YXRlUHJvb2ZQSywKCS8vICAgICAgIHZvdGVGaXJzdDogdm90ZUZpcnN0LAoJLy8gICAgICAgdm90ZUxhc3Q6IHZvdGVMYXN0LAoJLy8gICAgICAgdm90ZUtleURpbHV0aW9uOiB2b3RlS2V5RGlsdXRpb24sCgkvLyAgICAgICBmZWU6IHRoaXMuZ2V0R29PbmxpbmVGZWUoKSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxOCAvLyAga2V5cmVnCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjg4NQoJLy8gdm90ZVBLOiB2b3RlUEsKCWZyYW1lX2RpZyAtMiAvLyB2b3RlUEs6IGJ5dGVzCglpdHhuX2ZpZWxkIFZvdGVQSwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4ODYKCS8vIHNlbGVjdGlvblBLOiBzZWxlY3Rpb25QSwoJZnJhbWVfZGlnIC0zIC8vIHNlbGVjdGlvblBLOiBieXRlcwoJaXR4bl9maWVsZCBTZWxlY3Rpb25QSwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4ODcKCS8vIHN0YXRlUHJvb2ZQSzogc3RhdGVQcm9vZlBLCglmcmFtZV9kaWcgLTQgLy8gc3RhdGVQcm9vZlBLOiBieXRlcwoJaXR4bl9maWVsZCBTdGF0ZVByb29mUEsKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODg4CgkvLyB2b3RlRmlyc3Q6IHZvdGVGaXJzdAoJZnJhbWVfZGlnIC01IC8vIHZvdGVGaXJzdDogdWludDY0CglpdHhuX2ZpZWxkIFZvdGVGaXJzdAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4ODkKCS8vIHZvdGVMYXN0OiB2b3RlTGFzdAoJZnJhbWVfZGlnIC02IC8vIHZvdGVMYXN0OiB1aW50NjQKCWl0eG5fZmllbGQgVm90ZUxhc3QKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODkwCgkvLyB2b3RlS2V5RGlsdXRpb246IHZvdGVLZXlEaWx1dGlvbgoJZnJhbWVfZGlnIC03IC8vIHZvdGVLZXlEaWx1dGlvbjogdWludDY0CglpdHhuX2ZpZWxkIFZvdGVLZXlEaWx1dGlvbgoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4OTEKCS8vIGZlZTogdGhpcy5nZXRHb09ubGluZUZlZSgpCgljYWxsc3ViIGdldEdvT25saW5lRmVlCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gZ29PZmZsaW5lKCl2b2lkCiphYmlfcm91dGVfZ29PZmZsaW5lOgoJLy8gZXhlY3V0ZSBnb09mZmxpbmUoKXZvaWQKCWNhbGxzdWIgZ29PZmZsaW5lCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnb09mZmxpbmUoKTogdm9pZAovLwovLyBNYXJrcyBhIHN0YWtpbmcgcG9vbCBrZXkgT0ZGTElORS4KLy8gWyBPTkxZIE9XTkVSIE9SIE1BTkFHRVIgQ0FOIENBTEwgXQpnb09mZmxpbmU6Cglwcm90byAwIDAKCgkvLyAqaWY0Nl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MDMKCS8vIHRoaXMudHhuLnNlbmRlciAhPT0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkuYWRkcmVzcwoJdHhuIFNlbmRlcgoJYnl0ZWMgMSAvLyAgImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgkhPQoJYnogKmlmNDZfZW5kCgoJLy8gKmlmNDZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkwNAoJLy8gYXNzZXJ0KHRoaXMuaXNPd25lck9yTWFuYWdlckNhbGxlcigpLCAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yJykKCWNhbGxzdWIgaXNPd25lck9yTWFuYWdlckNhbGxlcgoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcgoJYXNzZXJ0CgoqaWY0Nl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTA3CgkvLyBzZW5kT2ZmbGluZUtleVJlZ2lzdHJhdGlvbih7fSkKCWl0eG5fYmVnaW4KCWludGMgMTggLy8gIGtleXJlZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gbGlua1RvTkZEKHVpbnQ2NCxzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX2xpbmtUb05GRDoKCS8vIG5mZE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBuZmRBcHBJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBsaW5rVG9ORkQodWludDY0LHN0cmluZyl2b2lkCgljYWxsc3ViIGxpbmtUb05GRAoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gbGlua1RvTkZEKG5mZEFwcElkOiB1aW50NjQsIG5mZE5hbWU6IHN0cmluZyk6IHZvaWQKbGlua1RvTkZEOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkxNAoJLy8gYXNzZXJ0KHRoaXMuaXNPd25lck9yTWFuYWdlckNhbGxlcigpLCAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yJykKCWNhbGxzdWIgaXNPd25lck9yTWFuYWdlckNhbGxlcgoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkxNgoJLy8gc2VuZEFwcENhbGwoewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpLAoJLy8gICAgICAgYXBwbGljYXRpb25BcmdzOiBbJ3ZlcmlmeV9uZmRfYWRkcicsIG5mZE5hbWUsIGl0b2IobmZkQXBwSWQpLCByYXdCeXRlcyh0aGlzLmFwcC5hZGRyZXNzKV0sCgkvLyAgICAgICBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MTcKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5uZmRSZWdpc3RyeUFwcElkKQoJaW50YyAxNSAvLyBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MTgKCS8vIGFwcGxpY2F0aW9uQXJnczogWyd2ZXJpZnlfbmZkX2FkZHInLCBuZmROYW1lLCBpdG9iKG5mZEFwcElkKSwgcmF3Qnl0ZXModGhpcy5hcHAuYWRkcmVzcyldCglwdXNoYnl0ZXMgMHg3NjY1NzI2OTY2Nzk1ZjZlNjY2NDVmNjE2NDY0NzIgLy8gInZlcmlmeV9uZmRfYWRkciIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTIgLy8gbmZkTmFtZTogc3RyaW5nCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0xIC8vIG5mZEFwcElkOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTE5CgkvLyBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKV0KCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJZDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9ucwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0WzI0XSx1aW50NjQpCiphYmlfcm91dGVfcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW86CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIxIC8vIDB4MTUxZjdjNzUKCgkvLyBwb29sS2V5OiAodWludDY0LHVpbnQ2NCx1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJcHVzaGludCAyNAoJPT0KCgkvLyBhcmd1bWVudCAwIChwb29sS2V5KSBmb3IgcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8gbXVzdCBiZSBhICh1aW50NjQsdWludDY0LHVpbnQ2NCkKCWFzc2VydAoKCS8vIGV4ZWN1dGUgcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0WzI0XSx1aW50NjQpCgljYWxsc3ViIHByb3hpZWRTZXRUb2tlblBheW91dFJhdGlvCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8ocG9vbEtleTogVmFsaWRhdG9yUG9vbEtleSk6IFBvb2xUb2tlblBheW91dFJhdGlvCi8vCi8vIHByb3hpZWRTZXRUb2tlblBheW91dFJhdGlvIGlzIG1lYW50IHRvIGJlIGNhbGxlZCBieSBwb29scyAhPSAxIC0gY2FsbGluZyBVUywgcG9vbCAjMQovLyBXZSBuZWVkIHRvIHZlcmlmeSB0aGF0IHdlIGFyZSBpbiBmYWN0IGJlaW5nIGNhbGxlZCBieSBhbm90aGVyIG9mIE9VUiBwb29scyAobm90IHVzKQovLyBhbmQgdGhlbiB3ZSdsbCBjYWxsIHRoZSB2YWxpZGF0b3Igb24gdGhlaXIgYmVoYWxmIHRvIHVwZGF0ZSB0aGUgdG9rZW4gcGF5b3V0cwovLyBAcGFyYW0gcG9vbEtleSAtIFZhbGlkYXRvclBvb2xLZXkgdHVwbGUKcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW86Cglwcm90byAxIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzAKCS8vIGFzc2VydCh0aGlzLnZhbGlkYXRvcklkLnZhbHVlID09PSBwb29sS2V5LmlkLCAnY2FsbGVyIG11c3QgYmUgcGFydCBvZiBzYW1lIHZhbGlkYXRvciBzZXQhJykKCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCT09CgoJLy8gY2FsbGVyIG11c3QgYmUgcGFydCBvZiBzYW1lIHZhbGlkYXRvciBzZXQhCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTMxCgkvLyBhc3NlcnQodGhpcy5wb29sSWQudmFsdWUgPT09IDEsICdjYWxsZWUgbXVzdCBiZSBwb29sIDEnKQoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJPT0KCgkvLyBjYWxsZWUgbXVzdCBiZSBwb29sIDEKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzIKCS8vIGFzc2VydChwb29sS2V5LnBvb2xJZCAhPT0gMSwgJ2NhbGxlciBtdXN0IE5PVCBiZSBwb29sIDEnKQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnRjIDEgLy8gMQoJIT0KCgkvLyBjYWxsZXIgbXVzdCBOT1QgYmUgcG9vbCAxCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTM0CgkvLyBjYWxsZXJQb29sQXBwSUQgPSBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLmdldFBvb2xBcHBJZD4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbcG9vbEtleS5pZCwgcG9vbEtleS5wb29sSWRdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWJ5dGVjIDI0IC8vICBtZXRob2QgImdldFBvb2xBcHBJZCh1aW50NjQsdWludDY0KXVpbnQ2NCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkzNQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkKCWJ5dGVjIDEgLy8gICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzYKCS8vIG1ldGhvZEFyZ3M6IFtwb29sS2V5LmlkLCBwb29sS2V5LnBvb2xJZF0KCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludGMgMSAvLyAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyBjYWxsZXJQb29sQXBwSUQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzgKCS8vIGFzc2VydChjYWxsZXJQb29sQXBwSUQgPT09IHBvb2xLZXkucG9vbEFwcElkKQoJZnJhbWVfZGlnIDAgLy8gY2FsbGVyUG9vbEFwcElEOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDE2IDgKCWJ0b2kKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTM5CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBBcHBJRC5mcm9tVWludDY0KHBvb2xLZXkucG9vbEFwcElkKS5hZGRyZXNzKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk0MQoJLy8gcmV0dXJuIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuc2V0VG9rZW5QYXlvdXRSYXRpbz4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgfSk7CglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWJ5dGVjIDI1IC8vICBtZXRob2QgInNldFRva2VuUGF5b3V0UmF0aW8odWludDY0KSh1aW50NjRbMjRdLHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NDIKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTQzCgkvLyBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50YyAxIC8vIDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBpc093bmVyT3JNYW5hZ2VyQ2FsbGVyKCk6IGJvb2xlYW4KaXNPd25lck9yTWFuYWdlckNhbGxlcjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk0OAoJLy8gT3duZXJBbmRNYW5hZ2VyID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5nZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXI+KHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCXB1c2hieXRlcyAweDJmYTIyYzRiIC8vIG1ldGhvZCAiZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyKHVpbnQ2NCkoYWRkcmVzcyxhZGRyZXNzKSIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk0OQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkKCWJ5dGVjIDEgLy8gICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NTAKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXQoJYnl0ZWMgMyAvLyAgInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnRjIDEgLy8gMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglmcmFtZV9idXJ5IDAgLy8gT3duZXJBbmRNYW5hZ2VyOiAoYWRkcmVzcyxhZGRyZXNzKQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NTIKCS8vIHJldHVybiB0aGlzLnR4bi5zZW5kZXIgPT09IE93bmVyQW5kTWFuYWdlclswXSB8fCB0aGlzLnR4bi5zZW5kZXIgPT09IE93bmVyQW5kTWFuYWdlclsxXTsKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAwIC8vIE93bmVyQW5kTWFuYWdlcjogKGFkZHJlc3MsYWRkcmVzcykKCWV4dHJhY3QgMCAzMgoJPT0KCWR1cAoJYm56ICpza2lwX29yMgoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIDAgLy8gT3duZXJBbmRNYW5hZ2VyOiAoYWRkcmVzcyxhZGRyZXNzKQoJZXh0cmFjdCAzMiAzMgoJPT0KCXx8Cgoqc2tpcF9vcjI6CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gZ2V0RmVlU2luaygpOiBBZGRyZXNzCmdldEZlZVNpbms6Cglwcm90byAwIDEKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTU2CgkvLyByZXR1cm4gdGhpcy5mZWVTaW5rQWRkcjsKCWJ5dGVjIDIyIC8vIFRNUExfZmVlU2lua0FkZHIKCXJldHN1YgoKLy8gYWxnb1NhdHVyYXRpb25MZXZlbCgpOiB1aW50NjQKLy8KLy8gUmV0dXJucyB0aGUgbWF4aW11bSBhbGxvd2VkIHN0YWtlIHBlciB2YWxpZGF0b3IgYmFzZWQgb24gYSBwZXJjZW50YWdlIG9mIGFsbCBjdXJyZW50IG9ubGluZSBzdGFrZSBiZWZvcmUKLy8gdGhlIHZhbGlkYXRvciBpcyBjb25zaWRlcmVkIHNhdHVyYXRlZCAtIHdoZXJlIHJld2FyZHMgYXJlIGRpbWluaXNoZWQuCmFsZ29TYXR1cmF0aW9uTGV2ZWw6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NjYKCS8vIG9ubGluZSA9IHRoaXMuZ2V0Q3VycmVudE9ubGluZVN0YWtlKCkKCWNhbGxzdWIgZ2V0Q3VycmVudE9ubGluZVN0YWtlCglmcmFtZV9idXJ5IDAgLy8gb25saW5lOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTY4CgkvLyByZXR1cm4gd2lkZVJhdGlvKFtvbmxpbmUsIE1BWF9WQUxJREFUT1JfU09GVF9QQ1RfT0ZfT05MSU5FXzFERUNJTUFMXSwgWzEwMDBdKTsKCWZyYW1lX2RpZyAwIC8vIG9ubGluZTogdWludDY0CglwdXNoaW50IDEwMAoJbXVsdwoJaW50YyAwIC8vIDAKCWludGMgMTAgLy8gMTAwMAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gZ2V0R29PbmxpbmVGZWUoKTogdWludDY0CmdldEdvT25saW5lRmVlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTc1CgkvLyBpc09ubGluZSA9IGZhbHNlCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAwIC8vIGlzT25saW5lOiBib29sCgoJLy8gKmlmNDdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTc2CgkvLyAhaXNPbmxpbmUKCWZyYW1lX2RpZyAwIC8vIGlzT25saW5lOiBib29sCgkhCglieiAqaWY0N19lbmQKCgkvLyAqaWY0N19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTc4CgkvLyByZXR1cm4gMl8wMDBfMDAwOwoJcHVzaGludCAyXzAwMF8wMDAKCWIgKmdldEdvT25saW5lRmVlKnJldHVybgoKKmlmNDdfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk4MAoJLy8gcmV0dXJuIDA7CglpbnRjIDAgLy8gMAoKKmdldEdvT25saW5lRmVlKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBnZXRDdXJyZW50T25saW5lU3Rha2UoKTogdWludDY0CmdldEN1cnJlbnRPbmxpbmVTdGFrZToKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5ODUKCS8vIHJldHVybiAyXzAwMF8wMDBfMDAwXzAwMF8wMDA7CglwdXNoaW50IDJfMDAwXzAwMF8wMDBfMDAwXzAwMAoJcmV0c3ViCgovLyBjaGVja0lmQmluQ2xvc2VkKCk6IHZvaWQKLy8KLy8gQ2hlY2tzIGlmIHRoZSBjdXJyZW50IHJvdW5kIGlzIGluIGEgJ25ldyBjYWxjdWxhdGlvbiBiaW4nIChhcHByb3hpbWF0ZWx5IGRhaWx5KQpjaGVja0lmQmluQ2xvc2VkOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gNAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5OTIKCS8vIGN1cnJlbnRCaW5TaXplID0gdGhpcy5yb3VuZHNQZXJEYXkudmFsdWUgYXMgdWludDEyOAoJYnl0ZWMgMTAgLy8gICJyb3VuZHNQZXJEYXkiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJZnJhbWVfYnVyeSAwIC8vIGN1cnJlbnRCaW5TaXplOiB1bnNhZmUgdWludDEyOAoKCS8vICppZjQ4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5MwoJLy8gZ2xvYmFscy5yb3VuZCA+PSB0aGlzLmJpblJvdW5kU3RhcnQudmFsdWUgKyAoY3VycmVudEJpblNpemUgYXMgdWludDY0KQoJZ2xvYmFsIFJvdW5kCglieXRlYyAxMSAvLyAgImJpblJvdW5kU3RhcnQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDAgLy8gY3VycmVudEJpblNpemU6IHVuc2FmZSB1aW50MTI4CglkdXAKCWJpdGxlbgoJaW50YyAzIC8vIDY0Cgk8PQoKCS8vIGN1cnJlbnRCaW5TaXplIGFzIHVpbnQ2NCBvdmVyZmxvd2VkIDY0IGJpdHMKCWFzc2VydAoJcHVzaGJ5dGVzIDB4RkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludGMgMTQgLy8gOAoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJYnRvaQoJKwoJPj0KCWJ6ICppZjQ4X2VuZAoKCS8vICppZjQ4X2NvbnNlcXVlbnQKCS8vICppZjQ5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5NAoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAzMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludGMgOSAvLyAzMDAKCTwKCWJ6ICppZjQ5X2VuZAoKCS8vICppZjQ5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5OTUKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyA1IC8vICAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnRjIDggLy8gIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjQ5X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5OTcKCS8vIGFwcHJveFJvdW5kc1BlclllYXI6IHVpbnQxMjggPSBjdXJyZW50QmluU2l6ZSAqICgzNjUgYXMgdWludDEyOCkKCWZyYW1lX2RpZyAwIC8vIGN1cnJlbnRCaW5TaXplOiB1bnNhZmUgdWludDEyOAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNmQKCWIqCglkdXAKCWJpdGxlbgoJaW50YyA2IC8vIDEyOAoJPD0KCgkvLyBjdXJyZW50QmluU2l6ZSAqICgzNjUgYXMgdWludDEyOCkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlYyA4IC8vIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnRjIDUgLy8gMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWZyYW1lX2J1cnkgMSAvLyBhcHByb3hSb3VuZHNQZXJZZWFyOiB1aW50MTI4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5OAoJLy8gYXZnU3Rha2U6IHVpbnQxMjggPSB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgLyBjdXJyZW50QmluU2l6ZQoJYnl0ZWMgNyAvLyAgInN0YWtlQWNjdW11bGF0b3IiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDAgLy8gY3VycmVudEJpblNpemU6IHVuc2FmZSB1aW50MTI4CgliLwoJZHVwCgliaXRsZW4KCWludGMgNiAvLyAxMjgKCTw9CgoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlIC8gY3VycmVudEJpblNpemUgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlYyA4IC8vIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnRjIDUgLy8gMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWZyYW1lX2J1cnkgMiAvLyBhdmdTdGFrZTogdWludDEyOAoKCS8vICppZjUwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5OQoJLy8gYXZnU3Rha2UgIT09IDAKCWZyYW1lX2RpZyAyIC8vIGF2Z1N0YWtlOiB1aW50MTI4CglieXRlYyAxNiAvLyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCgliIT0KCWJ6ICppZjUwX2VuZAoKCS8vICppZjUwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDAzCgkvLyBhcHI6IHVpbnQxMjggPQoJLy8gICAgICAgICAgICgoKHRoaXMucmV3YXJkQWNjdW11bGF0b3IudmFsdWUgYXMgdWludDEyOCkgKiAoMTAwMDAgYXMgdWludDEyOCkpIC8gYXZnU3Rha2UpICoKCS8vICAgICAgICAgICAoYXBwcm94Um91bmRzUGVyWWVhciAvIGN1cnJlbnRCaW5TaXplKQoJYnl0ZWMgMTIgLy8gICJyZXdhcmRBY2N1bXVsYXRvciIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjcxMAoJYioKCWZyYW1lX2RpZyAyIC8vIGF2Z1N0YWtlOiB1aW50MTI4CgliLwoJZnJhbWVfZGlnIDEgLy8gYXBwcm94Um91bmRzUGVyWWVhcjogdWludDEyOAoJZnJhbWVfZGlnIDAgLy8gY3VycmVudEJpblNpemU6IHVuc2FmZSB1aW50MTI4CgliLwoJYioKCWR1cAoJYml0bGVuCglpbnRjIDYgLy8gMTI4Cgk8PQoKCS8vICgoKHRoaXMucmV3YXJkQWNjdW11bGF0b3IudmFsdWUgYXMgdWludDEyOCkgKiAoMTAwMDAgYXMgdWludDEyOCkpIC8gYXZnU3Rha2UpICpcbiAgICAgICAgICAoYXBwcm94Um91bmRzUGVyWWVhciAvIGN1cnJlbnRCaW5TaXplKSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGVjIDggLy8gMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludGMgNSAvLyAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJZnJhbWVfYnVyeSAzIC8vIGFwcjogdWludDEyOAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDA3CgkvLyBhbHBoYTogdWludDEyOCA9IDEwIGFzIHVpbnQxMjgKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBhCglmcmFtZV9idXJ5IDQgLy8gYWxwaGE6IHVuc2FmZSB1aW50MTI4CgoJLy8gKmlmNTFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAwOQoJLy8gYXZnU3Rha2UgPiAzMDAwMDAwMDAwMDAKCWZyYW1lX2RpZyAyIC8vIGF2Z1N0YWtlOiB1aW50MTI4CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDVkOTY0YjgwMAoJYj4KCWJ6ICppZjUxX2VuZAoKCS8vICppZjUxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDEwCgkvLyBhbHBoYSA9IDkwIGFzIHVpbnQxMjgKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVhCglmcmFtZV9idXJ5IDQgLy8gYWxwaGE6IHVuc2FmZSB1aW50MTI4CgoqaWY1MV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAxMgoJLy8gdGhpcy53ZWlnaHRlZE1vdmluZ0F2ZXJhZ2UudmFsdWUgPQoJLy8gICAgICAgICAgICh0aGlzLndlaWdodGVkTW92aW5nQXZlcmFnZS52YWx1ZSAqICgoMTAwIGFzIHVpbnQxMjgpIC0gYWxwaGEpKSAvICgxMDAgYXMgdWludDEyOCkgKwoJLy8gICAgICAgICAgIChhcHIgKiBhbHBoYSkgLyAoMTAwIGFzIHVpbnQxMjgpCglieXRlYyAyMCAvLyAgImV3bWEiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglieXRlYyAxNyAvLyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY0CglmcmFtZV9kaWcgNCAvLyBhbHBoYTogdW5zYWZlIHVpbnQxMjgKCWItCgliKgoJYnl0ZWMgMTcgLy8gMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAoJYi8KCWZyYW1lX2RpZyAzIC8vIGFwcjogdWludDEyOAoJZnJhbWVfZGlnIDQgLy8gYWxwaGE6IHVuc2FmZSB1aW50MTI4CgliKgoJYnl0ZWMgMTcgLy8gMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAoJYi8KCWIrCglkdXAKCWJpdGxlbgoJaW50YyA2IC8vIDEyOAoJPD0KCgkvLyAodGhpcy53ZWlnaHRlZE1vdmluZ0F2ZXJhZ2UudmFsdWUgKiAoKDEwMCBhcyB1aW50MTI4KSAtIGFscGhhKSkgLyAoMTAwIGFzIHVpbnQxMjgpICtcbiAgICAgICAgICAoYXByICogYWxwaGEpIC8gKDEwMCBhcyB1aW50MTI4KSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGVjIDggLy8gMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludGMgNSAvLyAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJYXBwX2dsb2JhbF9wdXQKCippZjUwX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDE4CgkvLyB0aGlzLnNldFJvdW5kc1BlckRheSgpCgljYWxsc3ViIHNldFJvdW5kc1BlckRheQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDE5CgkvLyB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgPSAodGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgYXMgdWludDEyOCkgKiAodGhpcy5yb3VuZHNQZXJEYXkudmFsdWUgYXMgdWludDEyOCkKCWJ5dGVjIDcgLy8gICJzdGFrZUFjY3VtdWxhdG9yIgoJYnl0ZWMgNiAvLyAgInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglieXRlYyAxMCAvLyAgInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCgliKgoJZHVwCgliaXRsZW4KCWludGMgNiAvLyAxMjgKCTw9CgoJLy8gKHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlIGFzIHVpbnQxMjgpICogKHRoaXMucm91bmRzUGVyRGF5LnZhbHVlIGFzIHVpbnQxMjgpIG92ZXJmbG93ZWQgMTI4IGJpdHMKCWFzc2VydAoJYnl0ZWMgOCAvLyAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50YyA1IC8vIDE2CgktCglzd2FwCglzdWJzdHJpbmczCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDIwCgkvLyB0aGlzLnJld2FyZEFjY3VtdWxhdG9yLnZhbHVlID0gMAoJYnl0ZWMgMTIgLy8gICJyZXdhcmRBY2N1bXVsYXRvciIKCWludGMgMCAvLyAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDIxCgkvLyB0aGlzLmJpblJvdW5kU3RhcnQudmFsdWUgPSBnbG9iYWxzLnJvdW5kIC0gKGdsb2JhbHMucm91bmQgJSB0aGlzLnJvdW5kc1BlckRheS52YWx1ZSkKCWJ5dGVjIDExIC8vICAiYmluUm91bmRTdGFydCIKCWdsb2JhbCBSb3VuZAoJZ2xvYmFsIFJvdW5kCglieXRlYyAxMCAvLyAgInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CgklCgktCglhcHBfZ2xvYmFsX3B1dAoKKmlmNDhfZW5kOgoJcmV0c3ViCgovLyBzZXRSb3VuZHNQZXJEYXkoKTogdm9pZApzZXRSb3VuZHNQZXJEYXk6Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAyNgoJLy8gdGhpcy5yb3VuZHNQZXJEYXkudmFsdWUgPSBBVkdfUk9VTkRTX1BFUl9EQVkKCWJ5dGVjIDEwIC8vICAicm91bmRzUGVyRGF5IgoJcHVzaGludCAzMDg1NwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4NTllOTBhYTYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbih1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDMxNzJjYTlkIC8vIG1ldGhvZCAiZ2FzKCl2b2lkIgoJcHVzaGJ5dGVzIDB4NDdjZmNjMDQgLy8gbWV0aG9kICJpbml0U3RvcmFnZShwYXkpdm9pZCIKCXB1c2hieXRlcyAweGY5YzcwY2JkIC8vIG1ldGhvZCAiYWRkU3Rha2UocGF5LGFkZHJlc3MpdWludDY0IgoJcHVzaGJ5dGVzIDB4NDIxYjVhYmUgLy8gbWV0aG9kICJyZW1vdmVTdGFrZShhZGRyZXNzLHVpbnQ2NCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZjU4OTJkNTYgLy8gbWV0aG9kICJjbGFpbVRva2Vucygpdm9pZCIKCXB1c2hieXRlcyAweDVjZmJiMDU3IC8vIG1ldGhvZCAiZ2V0U3Rha2VySW5mbyhhZGRyZXNzKShhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkiCglwdXNoYnl0ZXMgMHg2M2YzZjI4YiAvLyBtZXRob2QgInBheVRva2VuUmV3YXJkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCl2b2lkIgoJcHVzaGJ5dGVzIDB4ODZhMzcyNWMgLy8gbWV0aG9kICJ1cGRhdGVBbGdvZFZlcihzdHJpbmcpdm9pZCIKCXB1c2hieXRlcyAweGVmYzI2MDhkIC8vIG1ldGhvZCAiZXBvY2hCYWxhbmNlVXBkYXRlKCl2b2lkIgoJcHVzaGJ5dGVzIDB4NDAwZTE0ZmIgLy8gbWV0aG9kICJnb09ubGluZShwYXksYnl0ZVtdLGJ5dGVbXSxieXRlW10sdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweDUxZWYzYjIxIC8vIG1ldGhvZCAiZ29PZmZsaW5lKCl2b2lkIgoJcHVzaGJ5dGVzIDB4YTI0ZTI3MTcgLy8gbWV0aG9kICJsaW5rVG9ORkQodWludDY0LHN0cmluZyl2b2lkIgoJYnl0ZWMgMjYgLy8gIG1ldGhvZCAicHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0WzI0XSx1aW50NjQpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9nYXMgKmFiaV9yb3V0ZV9pbml0U3RvcmFnZSAqYWJpX3JvdXRlX2FkZFN0YWtlICphYmlfcm91dGVfcmVtb3ZlU3Rha2UgKmFiaV9yb3V0ZV9jbGFpbVRva2VucyAqYWJpX3JvdXRlX2dldFN0YWtlckluZm8gKmFiaV9yb3V0ZV9wYXlUb2tlblJld2FyZCAqYWJpX3JvdXRlX3VwZGF0ZUFsZ29kVmVyICphYmlfcm91dGVfZXBvY2hCYWxhbmNlVXBkYXRlICphYmlfcm91dGVfZ29PbmxpbmUgKmFiaV9yb3V0ZV9nb09mZmxpbmUgKmFiaV9yb3V0ZV9saW5rVG9ORkQgKmFiaV9yb3V0ZV9wcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKmNhbGxfVXBkYXRlQXBwbGljYXRpb246CglwdXNoYnl0ZXMgMHg0NmY3NjUzMyAvLyBtZXRob2QgInVwZGF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91cGRhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIFVwZGF0ZUFwcGxpY2F0aW9uCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAwIDEgNiA2NCAzMiAxNiAxMjggMjAwIDUgMzAwIDEwMDAgNCAxXzAwMF8wMDAgMl8xMDBfMDAwIDggMTAwMDAwIDQwMCAyIDQwIDQ4IFRNUExfbmZkUmVnaXN0cnlBcHBJZApieXRlY2Jsb2NrIDB4IDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgMHg3Mzc0NjE2YjY1NzI3MyAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgMHg3MDZmNmY2YzQ5NjQgMHgwYTgxMDEgMHg3Mzc0NjE2YjY1NjQgMHg3Mzc0NjE2YjY1NDE2MzYzNzU2ZDc1NmM2MTc0NmY3MiAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGIDB4MDAwMDAwMDAwMDAwMDAwMCAweDcyNmY3NTZlNjQ3MzUwNjU3MjQ0NjE3OSAweDYyNjk2ZTUyNmY3NTZlNjQ1Mzc0NjE3Mjc0IDB4NzI2NTc3NjE3MjY0NDE2MzYzNzU2ZDc1NmM2MTc0NmY3MiAweDZlNzU2ZDUzNzQ2MTZiNjU3MjczIDB4NmM2MTczNzQ1MDYxNzk2Zjc1NzQgMHg3NWFmZjYxZCAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQgMHg2ZDY5NmU0NTZlNzQ3Mjc5NTM3NDYxNmI2NSAweDY1NzA2ZjYzNjg0ZTc1NmQ2MjY1NzIgMHg2NTc3NmQ2MSAweDE1MWY3Yzc1IDB4YTJkYzUxYjUgMHg1NzI3NjdkMSAweDRkZjhkODZlIDB4MGMyMjQ1ZTEgMHgwMCBUTVBMX2ZlZVNpbmtBZGRyCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNS4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnRjIDIgLy8gNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbiAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV91cGRhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgdXBkYXRlQXBwbGljYXRpb24KCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHVwZGF0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKdXBkYXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTQKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gQWRkcmVzcy5mcm9tQWRkcmVzcygnTFo0VjJJUlZMQ1hGSks0UkVKVjRUQUdFS0VZVEEyR01SNlRDMjM0NE9CM0wzQUYzTVdYWjZaQUZJUScpLAoJLy8gICAgICAgJ1RlbXBvcmFyeTogY29udHJhY3QgaXMgdXBncmFkZWFibGUgYnV0IG9ubHkgZHVyaW5nIHRlc3RpbmcgYW5kIG9ubHkgZnJvbSBhIGRldmVsb3BtZW50IGFjY291bnQnCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJcHVzaGJ5dGVzIDB4NWU3OTVkMjIzNTU4YWU1NGFiOTEyMjZiYzk4MGM0NTEzMTMwNjhjYzhmYTYyZDZmOWM3MDc2YmQ4MGJiNjVhZiAvLyBhZGRyICJMWjRWMklSVkxDWEZKSzRSRUpWNFRBR0VLRVlUQTJHTVI2VEMyMzQ0T0IzTDNBRjNNV1haNlpBRklRIgoJPT0KCgkvLyBUZW1wb3Jhcnk6IGNvbnRyYWN0IGlzIHVwZ3JhZGVhYmxlIGJ1dCBvbmx5IGR1cmluZyB0ZXN0aW5nIGFuZCBvbmx5IGZyb20gYSBkZXZlbG9wbWVudCBhY2NvdW50Cglhc3NlcnQKCXJldHN1YgoKLy8gY3JlYXRlQXBwbGljYXRpb24odWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCS8vIG1pbkVudHJ5U3Rha2U6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJYnRvaQoKCS8vIHBvb2xJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGNyZWF0aW5nQ29udHJhY3RJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBjcmVhdGVBcHBsaWNhdGlvbih1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBjcmVhdGVBcHBsaWNhdGlvbgoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gY3JlYXRlQXBwbGljYXRpb24oY3JlYXRpbmdDb250cmFjdElkOiB1aW50NjQsIHZhbGlkYXRvcklkOiB1aW50NjQsIHBvb2xJZDogdWludDY0LCBtaW5FbnRyeVN0YWtlOiB1aW50NjQpOiB2b2lkCi8vCi8vIEluaXRpYWxpemUgdGhlIHN0YWtpbmcgcG9vbCB3LyBvd25lciBhbmQgbWFuYWdlciwgYnV0IGNhbiBvbmx5IGJlIGNyZWF0ZWQgYnkgdGhlIHZhbGlkYXRvciBjb250cmFjdC4KLy8gQHBhcmFtIHt1aW50NjR9IGNyZWF0aW5nQ29udHJhY3RJZCAtIGlkIG9mIGNvbnRyYWN0IHRoYXQgY29uc3RydWN0ZWQgdXMgLSB0aGUgdmFsaWRhdG9yIGFwcGxpY2F0aW9uIChzaW5nbGUgZ2xvYmFsIGluc3RhbmNlKQovLyBAcGFyYW0ge3VpbnQ2NH0gdmFsaWRhdG9ySWQgLSBpZCBvZiB2YWxpZGF0b3Igd2UncmUgYSBzdGFraW5nIHBvb2wgb2YKLy8gQHBhcmFtIHt1aW50NjR9IHBvb2xJZCAtIHdoaWNoIHBvb2wgaWQgYXJlIHdlCi8vIEBwYXJhbSB7dWludDY0fSBtaW5FbnRyeVN0YWtlIC0gbWluaW11bSBhbW91bnQgdG8gYmUgaW4gcG9vbCwgYnV0IGFsc28gbWluaW11bSBhbW91bnQgYmFsYW5jZSBjYW4ndCBnbyBiZWxvdyAod2l0aG91dCByZW1vdmluZyBhbGwhKQpjcmVhdGVBcHBsaWNhdGlvbjoKCXByb3RvIDQgMAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTA4CgkvLyBjcmVhdGluZ0NvbnRyYWN0SWQgPT09IDAKCWZyYW1lX2RpZyAtMSAvLyBjcmVhdGluZ0NvbnRyYWN0SWQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglieiAqaWYwX2Vsc2UKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTAKCS8vIGFzc2VydCh2YWxpZGF0b3JJZCA9PT0gMCkKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpbnRjIDAgLy8gMAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTEKCS8vIGFzc2VydChwb29sSWQgPT09IDApCglmcmFtZV9kaWcgLTMgLy8gcG9vbElkOiB1aW50NjQKCWludGMgMCAvLyAwCgk9PQoJYXNzZXJ0CgliICppZjBfZW5kCgoqaWYwX2Vsc2U6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTEzCgkvLyBhc3NlcnQodmFsaWRhdG9ySWQgIT09IDApCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTE0CgkvLyBhc3NlcnQocG9vbElkICE9PSAwKQoJZnJhbWVfZGlnIC0zIC8vIHBvb2xJZDogdWludDY0CglpbnRjIDAgLy8gMAoJIT0KCWFzc2VydAoKKmlmMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTE2CgkvLyBhc3NlcnQobWluRW50cnlTdGFrZSA+PSBNSU5fQUxHT19TVEFLRV9QRVJfUE9PTCwgJ3N0YWtpbmcgcG9vbCBtdXN0IGhhdmUgbWluaW11bSBlbnRyeSBvZiAxIGFsZ28nKQoJZnJhbWVfZGlnIC00IC8vIG1pbkVudHJ5U3Rha2U6IHVpbnQ2NAoJcHVzaGludCAxMDAwMDAwCgk+PQoKCS8vIHN0YWtpbmcgcG9vbCBtdXN0IGhhdmUgbWluaW11bSBlbnRyeSBvZiAxIGFsZ28KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTcKCS8vIHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlID0gY3JlYXRpbmdDb250cmFjdElkCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWZyYW1lX2RpZyAtMSAvLyBjcmVhdGluZ0NvbnRyYWN0SWQ6IHVpbnQ2NAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTE4CgkvLyB0aGlzLnZhbGlkYXRvcklkLnZhbHVlID0gdmFsaWRhdG9ySWQKCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTkKCS8vIHRoaXMucG9vbElkLnZhbHVlID0gcG9vbElkCglieXRlYyA0IC8vICAicG9vbElkIgoJZnJhbWVfZGlnIC0zIC8vIHBvb2xJZDogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjAKCS8vIHRoaXMubnVtU3Rha2Vycy52YWx1ZSA9IDAKCWJ5dGVjIDEzIC8vICAibnVtU3Rha2VycyIKCWludGMgMCAvLyAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjEKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlID0gMAoJYnl0ZWMgNiAvLyAgInN0YWtlZCIKCWludGMgMCAvLyAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjIKCS8vIHRoaXMubWluRW50cnlTdGFrZS52YWx1ZSA9IG1pbkVudHJ5U3Rha2UKCWJ5dGVjIDE4IC8vICAibWluRW50cnlTdGFrZSIKCWZyYW1lX2RpZyAtNCAvLyBtaW5FbnRyeVN0YWtlOiB1aW50NjQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEyMwoJLy8gdGhpcy5sYXN0UGF5b3V0LnZhbHVlID0gZ2xvYmFscy5yb3VuZAoJYnl0ZWMgMTQgLy8gICJsYXN0UGF5b3V0IgoJZ2xvYmFsIFJvdW5kCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjQKCS8vIHRoaXMuZXBvY2hOdW1iZXIudmFsdWUgPSAwCglieXRlYyAxOSAvLyAgImVwb2NoTnVtYmVyIgoJaW50YyAwIC8vIDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEyNgoJLy8gdGhpcy5zZXRSb3VuZHNQZXJEYXkoKQoJY2FsbHN1YiBzZXRSb3VuZHNQZXJEYXkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTI3CgkvLyB0aGlzLmJpblJvdW5kU3RhcnQudmFsdWUgPSBnbG9iYWxzLnJvdW5kIC0gKGdsb2JhbHMucm91bmQgJSB0aGlzLnJvdW5kc1BlckRheS52YWx1ZSkKCWJ5dGVjIDExIC8vICAiYmluUm91bmRTdGFydCIKCWdsb2JhbCBSb3VuZAoJZ2xvYmFsIFJvdW5kCglieXRlYyAxMCAvLyAgInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CgklCgktCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjgKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSA9IDAgYXMgdWludDEyOAoJYnl0ZWMgNyAvLyAgInN0YWtlQWNjdW11bGF0b3IiCglieXRlYyAxNiAvLyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjkKCS8vIHRoaXMucmV3YXJkQWNjdW11bGF0b3IudmFsdWUgPSAwCglieXRlYyAxMiAvLyAgInJld2FyZEFjY3VtdWxhdG9yIgoJaW50YyAwIC8vIDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEzMAoJLy8gdGhpcy53ZWlnaHRlZE1vdmluZ0F2ZXJhZ2UudmFsdWUgPSAwIGFzIHVpbnQxMjgKCWJ5dGVjIDIwIC8vICAiZXdtYSIKCWJ5dGVjIDE2IC8vIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGdhcygpdm9pZAoqYWJpX3JvdXRlX2dhczoKCS8vIGV4ZWN1dGUgZ2FzKCl2b2lkCgljYWxsc3ViIGdhcwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2FzKCk6IHZvaWQKLy8KLy8gZ2FzIGlzIGEgZHVtbXkgbm8tb3AgY2FsbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHBvb2wtdXAgcmVzb3VyY2UgcmVmZXJlbmNlcyBhbmQgb3Bjb2RlIGNvc3QKZ2FzOgoJcHJvdG8gMCAwCglyZXRzdWIKCi8vIGNvc3RGb3JCb3hTdG9yYWdlKHRvdGFsTnVtQnl0ZXM6IHVpbnQ2NCk6IHVpbnQ2NApjb3N0Rm9yQm94U3RvcmFnZToKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNDIKCS8vIHJldHVybiBTQ0JPWF9QRVJCT1ggKyB0b3RhbE51bUJ5dGVzICogU0NCT1hfUEVSQllURTsKCXB1c2hpbnQgMjUwMAoJZnJhbWVfZGlnIC0xIC8vIHRvdGFsTnVtQnl0ZXM6IHVpbnQ2NAoJaW50YyAxNiAvLyA0MDAKCSoKCSsKCXJldHN1YgoKLy8gaW5pdFN0b3JhZ2UocGF5KXZvaWQKKmFiaV9yb3V0ZV9pbml0U3RvcmFnZToKCS8vIG1iclBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludGMgMSAvLyAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnRjIDEgLy8gIHBheQoJPT0KCgkvLyBhcmd1bWVudCAwIChtYnJQYXltZW50KSBmb3IgaW5pdFN0b3JhZ2UgbXVzdCBiZSBhIHBheSB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBpbml0U3RvcmFnZShwYXkpdm9pZAoJY2FsbHN1YiBpbml0U3RvcmFnZQoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gaW5pdFN0b3JhZ2UobWJyUGF5bWVudDogUGF5VHhuKTogdm9pZAovLwovLyBDYWxsZWQgYWZ0ZXIgd2UncmUgY3JlYXRlZCBhbmQgdGhlbiBmdW5kZWQsIHNvIHdlIGNhbiBjcmVhdGUgb3VyIGxhcmdlIHN0YWtlcnMgbGVkZ2VyIHN0b3JhZ2UKLy8gQ2FsbGVyIGhhcyB0byBnZXQgTUJSIGFtb3VudHMgZnJvbSBWYWxpZGF0b3JSZWdpc3RyeSB0byBrbm93IGhvdyBtdWNoIHRvIGZ1bmQgdXMgdG8gY292ZXIgdGhlIGJveCBzdG9yYWdlIGNvc3QKLy8gSWYgdGhpcyBpcyBwb29sIDEgQU5EIHRoZSB2YWxpZGF0b3IgaGFzIHNwZWNpZmllZCBhIHJld2FyZCB0b2tlbiwgb3B0LWluIHRvIHRoYXQgdG9rZW4KLy8gc28gdGhhdCB0aGUgdmFsaWRhdG9yIGNhbiBzZWVkIHRoZSBwb29sIHdpdGggZnV0dXJlIHJld2FyZHMgb2YgdGhhdCB0b2tlbi4KLy8gQHBhcmFtIG1iclBheW1lbnQgcGF5bWVudCBmcm9tIGNhbGxlciB3aGljaCBjb3ZlcnMgbWJyIGluY3JlYXNlIG9mIG5ldyBzdGFraW5nIHBvb2xzJyBzdG9yYWdlCmluaXRTdG9yYWdlOgoJcHJvdG8gMSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gMwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNTMKCS8vIGFzc2VydCghdGhpcy5zdGFrZXJzLmV4aXN0cywgJ3N0YWtpbmcgcG9vbCBhbHJlYWR5IGluaXRpYWxpemVkJykKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCgoJLy8gc3Rha2luZyBwb29sIGFscmVhZHkgaW5pdGlhbGl6ZWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNTYKCS8vIHZhbGlkYXRvckNvbmZpZyA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuZ2V0VmFsaWRhdG9yQ29uZmlnPih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAyIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlYyAxNSAvLyAgbWV0aG9kICJnZXRWYWxpZGF0b3JDb25maWcodWludDY0KSh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KSIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE1NwoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkKCWJ5dGVjIDEgLy8gICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNTgKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXQoJYnl0ZWMgMyAvLyAgInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnRjIDEgLy8gMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglmcmFtZV9idXJ5IDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTYwCgkvLyBpc1Rva2VuRWxpZ2libGUgPSB2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCAhPT0gMAoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTUzIDgKCWJ0b2kKCWludGMgMCAvLyAwCgkhPQoJZnJhbWVfYnVyeSAxIC8vIGlzVG9rZW5FbGlnaWJsZTogYm9vbAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNjEKCS8vIGV4dHJhTUJSID0gaXNUb2tlbkVsaWdpYmxlICYmIHRoaXMucG9vbElkLnZhbHVlID09PSAxID8gQVNTRVRfSE9MRElOR19GRUUgOiAwCglmcmFtZV9kaWcgMSAvLyBpc1Rva2VuRWxpZ2libGU6IGJvb2wKCWR1cAoJYnogKnNraXBfYW5kMAoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJPT0KCSYmCgoqc2tpcF9hbmQwOgoJYnogKnRlcm5hcnkwX2ZhbHNlCglpbnRjIDE1IC8vIDEwMDAwMAoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglpbnRjIDAgLy8gMAoKKnRlcm5hcnkwX2VuZDoKCWZyYW1lX2J1cnkgMiAvLyBleHRyYU1CUjogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE2MgoJLy8gUG9vbEluaXRNYnIgPQoJLy8gICAgICAgQUxHT1JBTkRfQUNDT1VOVF9NSU5fQkFMQU5DRSArCgkvLyAgICAgICBleHRyYU1CUiArCgkvLyAgICAgICB0aGlzLmNvc3RGb3JCb3hTdG9yYWdlKDcgLyogJ3N0YWtlcnMnIG5hbWUgKi8gKyBsZW48U3Rha2VkSW5mbz4oKSAqIE1BWF9TVEFLRVJTX1BFUl9QT09MKQoJaW50YyAxNSAvLyAxMDAwMDAKCWZyYW1lX2RpZyAyIC8vIGV4dHJhTUJSOiB1aW50NjQKCSsKCXB1c2hpbnQgMTI4MDcKCWNhbGxzdWIgY29zdEZvckJveFN0b3JhZ2UKCSsKCWZyYW1lX2J1cnkgMyAvLyBQb29sSW5pdE1icjogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE2OAoJLy8gdmVyaWZ5UGF5VHhuKG1iclBheW1lbnQsIHsgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsIGFtb3VudDogUG9vbEluaXRNYnIgfSkKCS8vIHZlcmlmeSByZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgUmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoibWJyUGF5bWVudCIsImZpZWxkIjoicmVjZWl2ZXIiLCJleHBlY3RlZCI6InRoaXMuYXBwLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9kaWcgMyAvLyBQb29sSW5pdE1icjogdWludDY0Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoibWJyUGF5bWVudCIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiJQb29sSW5pdE1iciJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTY5CgkvLyB0aGlzLnN0YWtlcnMuY3JlYXRlKCkKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJcHVzaGludCAxMjgwMAoJYm94X2NyZWF0ZQoJcG9wCgoJLy8gKmlmMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNzEKCS8vIGlzVG9rZW5FbGlnaWJsZSAmJiB0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMQoJZnJhbWVfZGlnIDEgLy8gaXNUb2tlbkVsaWdpYmxlOiBib29sCglkdXAKCWJ6ICpza2lwX2FuZDEKCWJ5dGVjIDQgLy8gICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaW50YyAxIC8vIDEKCT09CgkmJgoKKnNraXBfYW5kMToKCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTczCgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICAgIHhmZXJBc3NldDogQXNzZXRJRC5mcm9tVWludDY0KHZhbGlkYXRvckNvbmZpZy5yZXdhcmRUb2tlbklkKSwKCS8vICAgICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgICAgYXNzZXRBbW91bnQ6IDAsCgkvLyAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxMSAvLyAgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTc0CgkvLyB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCkKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE1MyA4CglidG9pCglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNzUKCS8vIGFzc2V0UmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTc2CgkvLyBhc3NldEFtb3VudDogMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoqaWYxX2VuZDoKCXJldHN1YgoKLy8gYWRkU3Rha2UocGF5LGFkZHJlc3MpdWludDY0CiphYmlfcm91dGVfYWRkU3Rha2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIxIC8vIDB4MTUxZjdjNzUKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoc3Rha2VyKSBmb3IgYWRkU3Rha2UgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludGMgMSAvLyAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnRjIDEgLy8gIHBheQoJPT0KCgkvLyBhcmd1bWVudCAxIChzdGFrZWRBbW91bnRQYXltZW50KSBmb3IgYWRkU3Rha2UgbXVzdCBiZSBhIHBheSB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhZGRTdGFrZShwYXksYWRkcmVzcyl1aW50NjQKCWNhbGxzdWIgYWRkU3Rha2UKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBhZGRTdGFrZShzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4sIHN0YWtlcjogQWRkcmVzcyk6IHVpbnQ2NAovLwovLyBBZGRzIHN0YWtlIHRvIHRoZSBnaXZlbiBhY2NvdW50LgovLyBDYW4gT05MWSBiZSBjYWxsZWQgYnkgdGhlIHZhbGlkYXRvciBjb250cmFjdCB0aGF0IGNyZWF0ZWQgdXMKLy8gTXVzdCByZWNlaXZlIHBheW1lbnQgZnJvbSB0aGUgdmFsaWRhdG9yIGNvbnRyYWN0IGZvciBhbW91bnQgYmVpbmcgc3Rha2VkLgovLwovLyBAcGFyYW0ge1BheVR4bn0gc3Rha2VkQW1vdW50UGF5bWVudCBwcmlvciBwYXltZW50IGNvbWluZyBmcm9tIHZhbGlkYXRvciBjb250cmFjdCB0byB1cyBvbiBiZWhhbGYgb2Ygc3Rha2VyLgovLyBAcGFyYW0ge0FkZHJlc3N9IHN0YWtlciAtIFRoZSBhY2NvdW50IGFkZGluZyBuZXcgc3Rha2UKLy8gQHRocm93cyB7RXJyb3J9IC0gVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBzdGFraW5nIHBvb2wgaXMgZnVsbC4KLy8gQHJldHVybnMge3VpbnQ2NH0gbmV3ICdlbnRyeSByb3VuZCcgcm91bmQgbnVtYmVyIG9mIHN0YWtlIGFkZAphZGRTdGFrZToKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXBuIDQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTkyCgkvLyBhc3NlcnQodGhpcy5zdGFrZXJzLmV4aXN0cywgJ3N0YWtpbmcgcG9vbCBtdXN0IGJlIGluaXRpYWxpemVkIGZpcnN0JykKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJYm94X2xlbgoJc3dhcAoJcG9wCgoJLy8gc3Rha2luZyBwb29sIG11c3QgYmUgaW5pdGlhbGl6ZWQgZmlyc3QKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxOTUKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkuYWRkcmVzcywKCS8vICAgICAgICdzdGFrZSBjYW4gb25seSBiZSBhZGRlZCB2aWEgdGhlIHZhbGlkYXRvciBjb250cmFjdCcKCS8vICAgICApCgl0eG4gU2VuZGVyCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCT09CgoJLy8gc3Rha2UgY2FuIG9ubHkgYmUgYWRkZWQgdmlhIHRoZSB2YWxpZGF0b3IgY29udHJhY3QKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxOTkKCS8vIGFzc2VydChzdGFrZXIgIT09IGdsb2JhbHMuemVyb0FkZHJlc3MpCglmcmFtZV9kaWcgLTIgLy8gc3Rha2VyOiBBZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjAyCgkvLyB0aGlzLmNoZWNrSWZCaW5DbG9zZWQoKQoJY2FsbHN1YiBjaGVja0lmQmluQ2xvc2VkCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIwNgoJLy8gdmVyaWZ5UGF5VHhuKHN0YWtlZEFtb3VudFBheW1lbnQsIHsKCS8vICAgICAgIHNlbmRlcjogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkuYWRkcmVzcywKCS8vICAgICAgIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgYW1vdW50OiBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzdGFrZWRBbW91bnRQYXltZW50IiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6IkFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzdGFrZWRBbW91bnRQYXltZW50IiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InN0YWtlZEFtb3VudFBheW1lbnQiLCJmaWVsZCI6ImFtb3VudCIsImV4cGVjdGVkIjoic3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIxNQoJLy8gZW50cnlSb3VuZCA9IGdsb2JhbHMucm91bmQgKyBBTEdPUkFORF9TVEFLSU5HX0JMT0NLX0RFTEFZCglnbG9iYWwgUm91bmQKCXB1c2hpbnQgMzIwCgkrCglmcmFtZV9idXJ5IDAgLy8gZW50cnlSb3VuZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIxNgoJLy8gZmlyc3RFbXB0eSA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDEgLy8gZmlyc3RFbXB0eTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIxOAoJLy8gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgKz0gc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQKCWJ5dGVjIDYgLy8gICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CgkrCglieXRlYyA2IC8vICAic3Rha2VkIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjIwCgkvLyByb3VuZHNMZWZ0SW5CaW4gPSB0aGlzLmJpblJvdW5kU3RhcnQudmFsdWUgKyB0aGlzLnJvdW5kc1BlckRheS52YWx1ZSAtIGdsb2JhbHMucm91bmQKCWJ5dGVjIDExIC8vICAiYmluUm91bmRTdGFydCIKCWFwcF9nbG9iYWxfZ2V0CglieXRlYyAxMCAvLyAgInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CgkrCglnbG9iYWwgUm91bmQKCS0KCWZyYW1lX2J1cnkgMiAvLyByb3VuZHNMZWZ0SW5CaW46IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMjEKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSA9CgkvLyAgICAgICB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgKyAoc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQgYXMgdWludDEyOCkgKiAocm91bmRzTGVmdEluQmluIGFzIHVpbnQxMjgpCglieXRlYyA3IC8vICAic3Rha2VBY2N1bXVsYXRvciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJaXRvYgoJZnJhbWVfZGlnIDIgLy8gcm91bmRzTGVmdEluQmluOiB1aW50NjQKCWl0b2IKCWIqCgliKwoJZHVwCgliaXRsZW4KCWludGMgNiAvLyAxMjgKCTw9CgoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlICsgKHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50IGFzIHVpbnQxMjgpICogKHJvdW5kc0xlZnRJbkJpbiBhcyB1aW50MTI4KSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGVjIDggLy8gMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludGMgNSAvLyAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjI1CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGg7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDMgLy8gaTogdWludDY0CgoqZm9yXzA6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjI1CgkvLyBpIDwgdGhpcy5zdGFrZXJzLnZhbHVlLmxlbmd0aAoJZnJhbWVfZGlnIDMgLy8gaTogdWludDY0CglpbnRjIDcgLy8gMjAwCgk8CglieiAqZm9yXzBfZW5kCgoJLy8gKmlmMl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMjYKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgMzAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglpbnRjIDkgLy8gMzAwCgk8CglieiAqaWYyX2VuZAoKCS8vICppZjJfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIyNwoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50YyAyIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGVjIDUgLy8gICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludGMgOCAvLyAgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjI5CgkvLyBjbXBTdGFrZXIgPSBjbG9uZSh0aGlzLnN0YWtlcnMudmFsdWVbaV0pCglmcmFtZV9kaWcgMyAvLyBpOiB1aW50NjQKCWludGMgMyAvLyA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDMgLy8gNjQKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWZyYW1lX2J1cnkgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyAqaWYzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIzMAoJLy8gY21wU3Rha2VyLmFjY291bnQgPT09IHN0YWtlcgoJZnJhbWVfZGlnIDQgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDAgMzIKCWZyYW1lX2RpZyAtMiAvLyBzdGFrZXI6IEFkZHJlc3MKCT09CglieiAqaWYzX2VuZAoKCS8vICppZjNfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIzMgoJLy8gY21wU3Rha2VyLmJhbGFuY2UgKz0gc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQKCWZyYW1lX2RpZyA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50YyA0IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CgkrCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMzMKCS8vIGNtcFN0YWtlci5lbnRyeVJvdW5kID0gZW50cnlSb3VuZAoJZnJhbWVfZGlnIDQgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglwdXNoaW50IDU2IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjM2CgkvLyB0aGlzLnN0YWtlcnMudmFsdWVbaV0gPSBjbXBTdGFrZXIKCWZyYW1lX2RpZyAzIC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWZyYW1lX2RpZyA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYnl0ZWMgMiAvLyAgInN0YWtlcnMiCgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMzgKCS8vIHJldHVybiBlbnRyeVJvdW5kOwoJZnJhbWVfZGlnIDAgLy8gZW50cnlSb3VuZDogdWludDY0CgliICphZGRTdGFrZSpyZXR1cm4KCippZjNfZW5kOgoJLy8gKmlmNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyNDAKCS8vIGZpcnN0RW1wdHkgPT09IDAgJiYgY21wU3Rha2VyLmFjY291bnQgPT09IGdsb2JhbHMuemVyb0FkZHJlc3MKCWZyYW1lX2RpZyAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglkdXAKCWJ6ICpza2lwX2FuZDIKCWZyYW1lX2RpZyA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAwIDMyCglnbG9iYWwgWmVyb0FkZHJlc3MKCT09CgkmJgoKKnNraXBfYW5kMjoKCWJ6ICppZjRfZW5kCgoJLy8gKmlmNF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjQxCgkvLyBmaXJzdEVtcHR5ID0gaSArIDEKCWZyYW1lX2RpZyAzIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCippZjRfZW5kOgoKKmZvcl8wX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIyNQoJLy8gaSArPSAxCglmcmFtZV9kaWcgMyAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDMgLy8gaTogdWludDY0CgliICpmb3JfMAoKKmZvcl8wX2VuZDoKCS8vICppZjVfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjQ1CgkvLyBmaXJzdEVtcHR5ID09PSAwCglmcmFtZV9kaWcgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmNV9lbmQKCgkvLyAqaWY1X2NvbnNlcXVlbnQKCS8vIFN0YWtpbmcgcG9vbCBmdWxsCgllcnIKCippZjVfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI1MgoJLy8gYXNzZXJ0KHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50ID49IHRoaXMubWluRW50cnlTdGFrZS52YWx1ZSwgJ211c3Qgc3Rha2UgYXQgbGVhc3QgdGhlIG1pbmltdW0gZm9yIHRoaXMgcG9vbCcpCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWJ5dGVjIDE4IC8vICAibWluRW50cnlTdGFrZSIKCWFwcF9nbG9iYWxfZ2V0Cgk+PQoKCS8vIG11c3Qgc3Rha2UgYXQgbGVhc3QgdGhlIG1pbmltdW0gZm9yIHRoaXMgcG9vbAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI1NAoJLy8gYXNzZXJ0KHRoaXMuc3Rha2Vycy52YWx1ZVtmaXJzdEVtcHR5IC0gMV0uYWNjb3VudCA9PT0gZ2xvYmFscy56ZXJvQWRkcmVzcykKCWZyYW1lX2RpZyAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCS0KCWludGMgMyAvLyA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDAgLy8gMAoJKwoJaW50YyA0IC8vIDMyCglieXRlYyAyIC8vICAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9leHRyYWN0CglnbG9iYWwgWmVyb0FkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjU1CgkvLyB0aGlzLnN0YWtlcnMudmFsdWVbZmlyc3RFbXB0eSAtIDFdID0gewoJLy8gICAgICAgYWNjb3VudDogc3Rha2VyLAoJLy8gICAgICAgYmFsYW5jZTogc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQsCgkvLyAgICAgICB0b3RhbFJld2FyZGVkOiAwLAoJLy8gICAgICAgcmV3YXJkVG9rZW5CYWxhbmNlOiAwLAoJLy8gICAgICAgZW50cnlSb3VuZDogZW50cnlSb3VuZCwKCS8vICAgICB9CglmcmFtZV9kaWcgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCWludGMgMSAvLyAxCgktCglpbnRjIDMgLy8gNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJZnJhbWVfZGlnIC0yIC8vIHN0YWtlcjogQWRkcmVzcwoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglpdG9iCgljb25jYXQKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWZyYW1lX2RpZyAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoJaXRvYgoJY29uY2F0CglieXRlYyAyIC8vICAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI2MgoJLy8gdGhpcy5udW1TdGFrZXJzLnZhbHVlICs9IDEKCWJ5dGVjIDEzIC8vICAibnVtU3Rha2VycyIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJKwoJYnl0ZWMgMTMgLy8gICJudW1TdGFrZXJzIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjYzCgkvLyByZXR1cm4gZW50cnlSb3VuZDsKCWZyYW1lX2RpZyAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoKKmFkZFN0YWtlKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDQKCXJldHN1YgoKLy8gcmVtb3ZlU3Rha2UoYWRkcmVzcyx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX3JlbW92ZVN0YWtlOgoJLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMSAoc3Rha2VyKSBmb3IgcmVtb3ZlU3Rha2UgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgcmVtb3ZlU3Rha2UoYWRkcmVzcyx1aW50NjQpdm9pZAoJY2FsbHN1YiByZW1vdmVTdGFrZQoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gcmVtb3ZlU3Rha2Uoc3Rha2VyOiBBZGRyZXNzLCBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gUmVtb3ZlcyBzdGFrZSBvbiBiZWhhbGYgb2YgY2FsbGVyIChyZW1vdmluZyBvd24gc3Rha2UpLiAgSWYgYW55IHRva2VuIHJld2FyZHMgZXhpc3QsIHRob3NlIGFyZSBhbHdheXMgc2VudCBpbgovLyBmdWxsLiBBbHNvIG5vdGlmaWVzIHRoZSB2YWxpZGF0b3IgY29udHJhY3QgZm9yIHRoaXMgcG9vbHMgdmFsaWRhdG9yIG9mIHRoZSBzdGFrZXIgLyBiYWxhbmNlIGNoYW5nZXMuCi8vCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyIC0gYWNjb3VudCB0byByZW1vdmUuICBub3JtYWxseSBzYW1lIGFzIHNlbmRlciwgYnV0IHRoZSB2YWxpZGF0b3Igb3duZXIgb3IgbWFuYWdlciBjYW4gYWxzbyBjYWxsCi8vIHRoaXMgdG8gcmVtb3ZlIHRoZSBzcGVjaWZpZWQgc3Rha2VyIGV4cGxpY2l0bHkuIFRoZSByZW1vdmVkIHN0YWtlIE1VU1Qgb25seSBnbyB0byB0aGUgc3Rha2VyIG9mIGNvdXJzZS4gIFRoaXMgaXMKLy8gc28gYSB2YWxpZGF0b3IgY2FuIHNodXQgZG93biBhIHBvb29sIGFuZCByZWZ1bmQgdGhlIHN0YWtlcnMuICBJdCBjYW4gYWxzbyBiZSB1c2VkIHRvIGtpY2sgb3V0IHN0YWtlcnMgd2hvIG5vIGxvbmdlcgovLyBtZWV0IHRoZSBnYXRpbmcgcmVxdWlyZW1lbnRzIChkZXRlcm1pbmVkIGJ5IHRoZSBub2RlIGRhZW1vbikuCi8vIEBwYXJhbSB7dWludDY0fSBhbW91bnRUb1Vuc3Rha2UgLSBUaGUgYW1vdW50IG9mIHN0YWtlIHRvIGJlIHJlbW92ZWQuICBTcGVjaWZ5IDAgdG8gcmVtb3ZlIGFsbCBzdGFrZS4KLy8gQHRocm93cyB7RXJyb3J9IElmIHRoZSBhY2NvdW50IGhhcyBpbnN1ZmZpY2llbnQgYmFsYW5jZSBvciBpZiB0aGUgYWNjb3VudCBpcyBub3QgZm91bmQuCnJlbW92ZVN0YWtlOgoJcHJvdG8gMiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gNgoKCS8vICppZjZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjgwCgkvLyBzdGFrZXIgIT09IHRoaXMudHhuLnNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJdHhuIFNlbmRlcgoJIT0KCWJ6ICppZjZfZW5kCgoJLy8gKmlmNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjgxCgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIHRoaXMuaXNPd25lck9yTWFuYWdlckNhbGxlcigpLAoJLy8gICAgICAgICAnSWYgc3Rha2VyIGlzIG5vdCBzZW5kZXIgaW4gcmVtb3ZlU3Rha2UgY2FsbCwgdGhlbiBzZW5kZXIgTVVTVCBiZSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcicKCS8vICAgICAgICkKCWNhbGxzdWIgaXNPd25lck9yTWFuYWdlckNhbGxlcgoKCS8vIElmIHN0YWtlciBpcyBub3Qgc2VuZGVyIGluIHJlbW92ZVN0YWtlIGNhbGwsIHRoZW4gc2VuZGVyIE1VU1QgYmUgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3IKCWFzc2VydAoKKmlmNl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Mjg3CgkvLyB0aGlzLmNoZWNrSWZCaW5DbG9zZWQoKQoJY2FsbHN1YiBjaGVja0lmQmluQ2xvc2VkCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI4OQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8xOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI4OQoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50YyA3IC8vIDIwMAoJPAoJYnogKmZvcl8xX2VuZAoKCS8vICppZjdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjkwCgkvLyBnbG9iYWxzLm9wY29kZUJ1ZGdldCA8IDMwMAoJZ2xvYmFsIE9wY29kZUJ1ZGdldAoJaW50YyA5IC8vIDMwMAoJPAoJYnogKmlmN19lbmQKCgkvLyAqaWY3X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyOTEKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyA1IC8vICAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnRjIDggLy8gIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjdfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI5MwoJLy8gY21wU3Rha2VyID0gY2xvbmUodGhpcy5zdGFrZXJzLnZhbHVlW2ldKQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnRjIDMgLy8gNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAzIC8vIDY0CglieXRlYyAyIC8vICAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gKmlmOF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyOTQKCS8vIGNtcFN0YWtlci5hY2NvdW50ID09PSBzdGFrZXIKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAwIDMyCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgk9PQoJYnogKmlmOF9lbmQKCgkvLyAqaWY4X2NvbnNlcXVlbnQKCS8vICppZjlfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Mjk1CgkvLyBhbW91bnRUb1Vuc3Rha2UgPT09IDAKCWZyYW1lX2RpZyAtMiAvLyBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglieiAqaWY5X2VuZAoKCS8vICppZjlfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI5NwoJLy8gYW1vdW50VG9VbnN0YWtlID0gY21wU3Rha2VyLmJhbGFuY2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9idXJ5IC0yIC8vIGFtb3VudFRvVW5zdGFrZTogdWludDY0CgoqaWY5X2VuZDoKCS8vICppZjEwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI5OQoJLy8gY21wU3Rha2VyLmJhbGFuY2UgPCBhbW91bnRUb1Vuc3Rha2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCTwKCWJ6ICppZjEwX2VuZAoKCS8vICppZjEwX2NvbnNlcXVlbnQKCS8vIEluc3VmZmljaWVudCBiYWxhbmNlCgllcnIKCippZjEwX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMDIKCS8vIGNtcFN0YWtlci5iYWxhbmNlIC09IGFtb3VudFRvVW5zdGFrZQoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglpbnRjIDQgLy8gIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCS0KCWl0b2IKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMwMwoJLy8gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgLT0gYW1vdW50VG9VbnN0YWtlCglieXRlYyA2IC8vICAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMiAvLyBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NAoJLQoJYnl0ZWMgNiAvLyAgInN0YWtlZCIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMwNQoJLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoKCS8vICppZjExX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMwNgoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSA+IDAKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglpbnRjIDAgLy8gMAoJPgoJYnogKmlmMTFfZW5kCgoJLy8gKmlmMTFfY29uc2VxdWVudAoJLy8gKmlmMTJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzA4CgkvLyB0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMQoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJPT0KCWJ6ICppZjEyX2Vsc2UKCgkvLyAqaWYxMl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzA5CgkvLyB2YWxpZGF0b3JDb25maWcgPSBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLmdldFZhbGlkYXRvckNvbmZpZz4oewoJLy8gICAgICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgICAgICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdLAoJLy8gICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZWMgMTUgLy8gIG1ldGhvZCAiZ2V0VmFsaWRhdG9yQ29uZmlnKHVpbnQ2NCkodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMTAKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzExCgkvLyBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50YyAxIC8vIDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJZnJhbWVfYnVyeSAzIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMxNwoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgICAgICAgICB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCksCgkvLyAgICAgICAgICAgICAgIGFzc2V0UmVjZWl2ZXI6IHN0YWtlciwKCS8vICAgICAgICAgICAgICAgYXNzZXRBbW91bnQ6IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UsCgkvLyAgICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxMSAvLyAgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzE4CgkvLyB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCkKCWZyYW1lX2RpZyAzIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE1MyA4CglidG9pCglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMTkKCS8vIGFzc2V0UmVjZWl2ZXI6IHN0YWtlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMyMAoJLy8gYXNzZXRBbW91bnQ6IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMjIKCS8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCA9IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglmcmFtZV9idXJ5IDIgLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzIzCgkvLyBjbXBTdGFrZXIucmV3YXJkVG9rZW5CYWxhbmNlID0gMAoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglieXRlYyA5IC8vIDB4MDAwMDAwMDAwMDAwMDAwMAoJcmVwbGFjZTIgNDgKCWZyYW1lX2J1cnkgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWIgKmlmMTJfZW5kCgoqaWYxMl9lbHNlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMyOAoJLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkID0gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZQoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWZyYW1lX2J1cnkgMiAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMjkKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPSAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0OAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKKmlmMTJfZW5kOgoKKmlmMTFfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMzNAoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgIGNtcFN0YWtlci5iYWxhbmNlID09PSAwIHx8IGNtcFN0YWtlci5iYWxhbmNlID49IHRoaXMubWluRW50cnlTdGFrZS52YWx1ZSwKCS8vICAgICAgICAgICAnY2Fubm90IHJlZHVjZSBiYWxhbmNlIGJlbG93IG1pbmltdW0gYWxsb3dlZCBzdGFrZSB1bmxlc3MgYWxsIGlzIHJlbW92ZWQnCgkvLyAgICAgICAgICkKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglpbnRjIDAgLy8gMAoJPT0KCWR1cAoJYm56ICpza2lwX29yMAoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWJ5dGVjIDE4IC8vICAibWluRW50cnlTdGFrZSIKCWFwcF9nbG9iYWxfZ2V0Cgk+PQoJfHwKCipza2lwX29yMDoKCS8vIGNhbm5vdCByZWR1Y2UgYmFsYW5jZSBiZWxvdyBtaW5pbXVtIGFsbG93ZWQgc3Rha2UgdW5sZXNzIGFsbCBpcyByZW1vdmVkCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQyCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICAgICAgYW1vdW50OiBhbW91bnRUb1Vuc3Rha2UsCgkvLyAgICAgICAgICAgcmVjZWl2ZXI6IHN0YWtlciwKCS8vICAgICAgICAgICBub3RlOiAndW5zdGFrZWQnLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxIC8vICBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQzCgkvLyBhbW91bnQ6IGFtb3VudFRvVW5zdGFrZQoJZnJhbWVfZGlnIC0yIC8vIGFtb3VudFRvVW5zdGFrZTogdWludDY0CglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNDQKCS8vIHJlY2VpdmVyOiBzdGFrZXIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQ1CgkvLyBub3RlOiAndW5zdGFrZWQnCglwdXNoYnl0ZXMgMHg3NTZlNzM3NDYxNmI2NTY0IC8vICJ1bnN0YWtlZCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQ3CgkvLyBzdGFrZXJSZW1vdmVkID0gZmFsc2UKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDQgLy8gc3Rha2VyUmVtb3ZlZDogYm9vbAoKCS8vICppZjEzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM0OAoJLy8gY21wU3Rha2VyLmJhbGFuY2UgPT09IDAKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppZjEzX2VuZAoKCS8vICppZjEzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTAKCS8vIHRoaXMubnVtU3Rha2Vycy52YWx1ZSAtPSAxCglieXRlYyAxMyAvLyAgIm51bVN0YWtlcnMiCglhcHBfZ2xvYmFsX2dldAoJaW50YyAxIC8vIDEKCS0KCWJ5dGVjIDEzIC8vICAibnVtU3Rha2VycyIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM1MQoJLy8gY21wU3Rha2VyLmFjY291bnQgPSBnbG9iYWxzLnplcm9BZGRyZXNzCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWludGMgMCAvLyAwCglnbG9iYWwgWmVyb0FkZHJlc3MKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM1MgoJLy8gY21wU3Rha2VyLnRvdGFsUmV3YXJkZWQgPSAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0MAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTMKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPSAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0OAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTQKCS8vIHN0YWtlclJlbW92ZWQgPSB0cnVlCglpbnRjIDEgLy8gMQoJZnJhbWVfYnVyeSA0IC8vIHN0YWtlclJlbW92ZWQ6IGJvb2wKCippZjEzX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTcKCS8vIHRoaXMuc3Rha2Vycy52YWx1ZVtpXSA9IGNtcFN0YWtlcgoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnRjIDMgLy8gNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglieXRlYyAyIC8vICAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM1OQoJLy8gcm91bmRzTGVmdEluQmluID0gdGhpcy5iaW5Sb3VuZFN0YXJ0LnZhbHVlICsgdGhpcy5yb3VuZHNQZXJEYXkudmFsdWUgLSBnbG9iYWxzLnJvdW5kCglieXRlYyAxMSAvLyAgImJpblJvdW5kU3RhcnQiCglhcHBfZ2xvYmFsX2dldAoJYnl0ZWMgMTAgLy8gICJyb3VuZHNQZXJEYXkiCglhcHBfZ2xvYmFsX2dldAoJKwoJZ2xvYmFsIFJvdW5kCgktCglmcmFtZV9idXJ5IDUgLy8gcm91bmRzTGVmdEluQmluOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzYwCgkvLyBzdWJ0cmFjdEFtb3VudDogdWludDEyOCA9IChhbW91bnRUb1Vuc3Rha2UgYXMgdWludDEyOCkgKiAocm91bmRzTGVmdEluQmluIGFzIHVpbnQxMjgpCglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyA1IC8vIHJvdW5kc0xlZnRJbkJpbjogdWludDY0CglpdG9iCgliKgoJZHVwCgliaXRsZW4KCWludGMgNiAvLyAxMjgKCTw9CgoJLy8gKGFtb3VudFRvVW5zdGFrZSBhcyB1aW50MTI4KSAqIChyb3VuZHNMZWZ0SW5CaW4gYXMgdWludDEyOCkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlYyA4IC8vIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnRjIDUgLy8gMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWZyYW1lX2J1cnkgNiAvLyBzdWJ0cmFjdEFtb3VudDogdWludDEyOAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNjEKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSA9IHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSAtIHN1YnRyYWN0QW1vdW50CglieXRlYyA3IC8vICAic3Rha2VBY2N1bXVsYXRvciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyA2IC8vIHN1YnRyYWN0QW1vdW50OiB1aW50MTI4CgliLQoJZHVwCgliaXRsZW4KCWludGMgNiAvLyAxMjgKCTw9CgoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlIC0gc3VidHJhY3RBbW91bnQgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlYyA4IC8vIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnRjIDUgLy8gMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM2NgoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5zdGFrZVJlbW92ZWQ+KHsKCS8vICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgICAgICBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgICAgICB7IGlkOiB0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCBwb29sSWQ6IHRoaXMucG9vbElkLnZhbHVlLCBwb29sQXBwSWQ6IHRoaXMuYXBwLmlkIH0sCgkvLyAgICAgICAgICAgICBzdGFrZXIsCgkvLyAgICAgICAgICAgICBhbW91bnRUb1Vuc3Rha2UsCgkvLyAgICAgICAgICAgICBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQsCgkvLyAgICAgICAgICAgICBzdGFrZXJSZW1vdmVkLAoJLy8gICAgICAgICAgIF0sCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWJ5dGVjIDIyIC8vICBtZXRob2QgInN0YWtlUmVtb3ZlZCgodWludDY0LHVpbnQ2NCx1aW50NjQpLGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNjcKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzY4CgkvLyBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgICAgICB7IGlkOiB0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCBwb29sSWQ6IHRoaXMucG9vbElkLnZhbHVlLCBwb29sQXBwSWQ6IHRoaXMuYXBwLmlkIH0sCgkvLyAgICAgICAgICAgICBzdGFrZXIsCgkvLyAgICAgICAgICAgICBhbW91bnRUb1Vuc3Rha2UsCgkvLyAgICAgICAgICAgICBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQsCgkvLyAgICAgICAgICAgICBzdGFrZXJSZW1vdmVkLAoJLy8gICAgICAgICAgIF0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglieXRlYyA0IC8vICAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWNvbmNhdAoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJY29uY2F0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMiAvLyBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAyIC8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDQgLy8gc3Rha2VyUmVtb3ZlZDogYm9vbAoJYnl0ZWMgMjYgLy8gMHgwMAoJaW50YyAwIC8vIDAKCXVuY292ZXIgMgoJc2V0Yml0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Mzc2CgkvLyByZXR1cm47CglyZXRzdWIKCippZjhfZW5kOgoKKmZvcl8xX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI4OQoJLy8gaSArPSAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgliICpmb3JfMQoKKmZvcl8xX2VuZDoKCS8vIGFjY291bnQgbm90IGZvdW5kCgllcnIKCXJldHN1YgoKLy8gY2xhaW1Ub2tlbnMoKXZvaWQKKmFiaV9yb3V0ZV9jbGFpbVRva2VuczoKCS8vIGV4ZWN1dGUgY2xhaW1Ub2tlbnMoKXZvaWQKCWNhbGxzdWIgY2xhaW1Ub2tlbnMKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGNsYWltVG9rZW5zKCk6IHZvaWQKLy8KLy8gQ2xhaW1zIGFsbCB0aGUgYXZhaWxhYmxlIHJld2FyZCB0b2tlbnMgYSBzdGFrZXIgaGFzIGF2YWlsYWJsZSwgc2VuZGluZyB0aGVpciBlbnRpcmUgYmFsYW5jZSB0byB0aGUgc3Rha2VyIGZyb20KLy8gcG9vbCAxIChlaXRoZXIgZGlyZWN0bHksIG9yIHZpYSB2YWxpZGF0b3ItPnBvb2wxIHRvIHBheSBpdCBvdXQpCi8vIEFsc28gbm90aWZpZXMgdGhlIHZhbGlkYXRvciBjb250cmFjdCBmb3IgdGhpcyBwb29scyB2YWxpZGF0b3Igb2YgdGhlIHN0YWtlciAvIGJhbGFuY2UgY2hhbmdlcy4KY2xhaW1Ub2tlbnM6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwbiA0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5MQoJLy8gc3Rha2VyID0gdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCglmcmFtZV9idXJ5IDAgLy8gc3Rha2VyOiBhZGRyZXNzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5MwoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoKKmZvcl8yOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5MwoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50YyA3IC8vIDIwMAoJPAoJYnogKmZvcl8yX2VuZAoKCS8vICppZjE0X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5NAoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAzMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludGMgOSAvLyAzMDAKCTwKCWJ6ICppZjE0X2VuZAoKCS8vICppZjE0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozOTUKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyA1IC8vICAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnRjIDggLy8gIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjE0X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozOTcKCS8vIGNtcFN0YWtlciA9IGNsb25lKHRoaXMuc3Rha2Vycy52YWx1ZVtpXSkKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMyAvLyA2NAoJYnl0ZWMgMiAvLyAgInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vICppZjE1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5OAoJLy8gY21wU3Rha2VyLmFjY291bnQgPT09IHN0YWtlcgoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDAgMzIKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJPT0KCWJ6ICppZjE1X2VuZAoKCS8vICppZjE1X2NvbnNlcXVlbnQKCS8vICppZjE2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5OQoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSA9PT0gMAoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmMTZfZW5kCgoJLy8gKmlmMTZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQwMAoJLy8gcmV0dXJuOwoJcmV0c3ViCgoqaWYxNl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDAyCgkvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQgPSAwCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAzIC8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZDogdWludDY0CgoJLy8gKmlmMTdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDA0CgkvLyB0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMQoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJPT0KCWJ6ICppZjE3X2Vsc2UKCgkvLyAqaWYxN19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDA1CgkvLyB2YWxpZGF0b3JDb25maWcgPSBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLmdldFZhbGlkYXRvckNvbmZpZz4oewoJLy8gICAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZWMgMTUgLy8gIG1ldGhvZCAiZ2V0VmFsaWRhdG9yQ29uZmlnKHVpbnQ2NCkodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MDYKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDA3CgkvLyBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50YyAxIC8vIDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJZnJhbWVfYnVyeSA0IC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQxMgoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgICAgICAgeGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLnJld2FyZFRva2VuSWQpLAoJLy8gICAgICAgICAgICAgYXNzZXRSZWNlaXZlcjogc3Rha2VyLAoJLy8gICAgICAgICAgICAgYXNzZXRBbW91bnQ6IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UsCgkvLyAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMTEgLy8gIGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQxMwoJLy8geGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLnJld2FyZFRva2VuSWQpCglmcmFtZV9kaWcgNCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNTMgOAoJYnRvaQoJaXR4bl9maWVsZCBYZmVyQXNzZXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDE0CgkvLyBhc3NldFJlY2VpdmVyOiBzdGFrZXIKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQxNQoJLy8gYXNzZXRBbW91bnQ6IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UKCWZyYW1lX2RpZyAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MTcKCS8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCA9IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UKCWZyYW1lX2RpZyAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglmcmFtZV9idXJ5IDMgLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDE4CgkvLyBjbXBTdGFrZXIucmV3YXJkVG9rZW5CYWxhbmNlID0gMAoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglieXRlYyA5IC8vIDB4MDAwMDAwMDAwMDAwMDAwMAoJcmVwbGFjZTIgNDgKCWZyYW1lX2J1cnkgMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWIgKmlmMTdfZW5kCgoqaWYxN19lbHNlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQyMwoJLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkID0gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZQoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MjQKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPSAwCglmcmFtZV9kaWcgMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0OAoJZnJhbWVfYnVyeSAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKKmlmMTdfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQyOAoJLy8gdGhpcy5zdGFrZXJzLnZhbHVlW2ldID0gY21wU3Rha2VyCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWludGMgMyAvLyA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglmcmFtZV9kaWcgMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDMzCgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLnN0YWtlUmVtb3ZlZD4oewoJLy8gICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgICAgIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgICAgIHsgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfSwKCS8vICAgICAgICAgICAgIHN0YWtlciwKCS8vICAgICAgICAgICAgIDAsIC8vIG5vIGFsZ28gcmVtb3ZlZAoJLy8gICAgICAgICAgICAgYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkLAoJLy8gICAgICAgICAgICAgZmFsc2UsIC8vIHN0YWtlciBpc24ndCBiZWluZyByZW1vdmVkLgoJLy8gICAgICAgICAgIF0sCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWJ5dGVjIDIyIC8vICBtZXRob2QgInN0YWtlUmVtb3ZlZCgodWludDY0LHVpbnQ2NCx1aW50NjQpLGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MzQKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDM1CgkvLyBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgICAgICB7IGlkOiB0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCBwb29sSWQ6IHRoaXMucG9vbElkLnZhbHVlLCBwb29sQXBwSWQ6IHRoaXMuYXBwLmlkIH0sCgkvLyAgICAgICAgICAgICBzdGFrZXIsCgkvLyAgICAgICAgICAgICAwLCAvLyBubyBhbGdvIHJlbW92ZWQKCS8vICAgICAgICAgICAgIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCwKCS8vICAgICAgICAgICAgIGZhbHNlLCAvLyBzdGFrZXIgaXNuJ3QgYmVpbmcgcmVtb3ZlZC4KCS8vICAgICAgICAgICBdCglieXRlYyAzIC8vICAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCgljb25jYXQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWNvbmNhdAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDMgLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglpbnRjIDAgLy8gMAoJYnl0ZWMgMjYgLy8gMHgwMAoJaW50YyAwIC8vIDAKCXVuY292ZXIgMgoJc2V0Yml0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDQzCgkvLyByZXR1cm47CglyZXRzdWIKCippZjE1X2VuZDoKCipmb3JfMl9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozOTMKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzIKCipmb3JfMl9lbmQ6CgkvLyBhY2NvdW50IG5vdCBmb3VuZAoJZXJyCglyZXRzdWIKCi8vIGdldFN0YWtlckluZm8oYWRkcmVzcykoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfZ2V0U3Rha2VySW5mbzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMjEgLy8gMHgxNTFmN2M3NQoKCS8vIHN0YWtlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChzdGFrZXIpIGZvciBnZXRTdGFrZXJJbmZvIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGdldFN0YWtlckluZm8oYWRkcmVzcykoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgljYWxsc3ViIGdldFN0YWtlckluZm8KCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnZXRTdGFrZXJJbmZvKHN0YWtlcjogQWRkcmVzcyk6IFN0YWtlZEluZm8KLy8KLy8gUmV0cmlldmVzIHRoZSBzdGFrZWQgaW5mb3JtYXRpb24gZm9yIGEgZ2l2ZW4gc3Rha2VyLgovLwovLyBAcGFyYW0ge0FkZHJlc3N9IHN0YWtlciAtIFRoZSBhZGRyZXNzIG9mIHRoZSBzdGFrZXIuCi8vIEByZXR1cm5zIHtTdGFrZWRJbmZvfSAtIFRoZSBzdGFrZWQgaW5mb3JtYXRpb24gZm9yIHRoZSBnaXZlbiBzdGFrZXIuCi8vIEB0aHJvd3Mge0Vycm9yfSAtIElmIHRoZSBzdGFrZXIncyBhY2NvdW50IGlzIG5vdCBmb3VuZC4KZ2V0U3Rha2VySW5mbzoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ1OAoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8zOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ1OAoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50YyA3IC8vIDIwMAoJPAoJYnogKmZvcl8zX2VuZAoKCS8vICppZjE4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ1OQoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAyMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludGMgNyAvLyAyMDAKCTwKCWJ6ICppZjE4X2VuZAoKCS8vICppZjE4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0NjAKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyA1IC8vICAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnRjIDggLy8gIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjE4X2VuZDoKCS8vICppZjE5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ2MgoJLy8gdGhpcy5zdGFrZXJzLnZhbHVlW2ldLmFjY291bnQgPT09IHN0YWtlcgoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnRjIDMgLy8gNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAwIC8vIDAKCSsKCWludGMgNCAvLyAzMgoJYnl0ZWMgMiAvLyAgInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJPT0KCWJ6ICppZjE5X2VuZAoKCS8vICppZjE5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0NjMKCS8vIHJldHVybiB0aGlzLnN0YWtlcnMudmFsdWVbaV07CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludGMgMyAvLyA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDMgLy8gNjQKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWIgKmdldFN0YWtlckluZm8qcmV0dXJuCgoqaWYxOV9lbmQ6CgoqZm9yXzNfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDU4CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKmZvcl8zCgoqZm9yXzNfZW5kOgoJLy8gYWNjb3VudCBub3QgZm91bmQKCWVycgoKKmdldFN0YWtlckluZm8qcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIHBheVRva2VuUmV3YXJkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfcGF5VG9rZW5SZXdhcmQ6CgkvLyBhbW91bnRUb1NlbmQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIHJld2FyZFRva2VuOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMiAoc3Rha2VyKSBmb3IgcGF5VG9rZW5SZXdhcmQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgcGF5VG9rZW5SZXdhcmQoYWRkcmVzcyx1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgcGF5VG9rZW5SZXdhcmQKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHBheVRva2VuUmV3YXJkKHN0YWtlcjogQWRkcmVzcywgcmV3YXJkVG9rZW46IHVpbnQ2NCwgYW1vdW50VG9TZW5kOiB1aW50NjQpOiB2b2lkCi8vCi8vIFtJbnRlcm5hbCBwcm90b2NvbCBtZXRob2RdIFJlbW92ZSBhIHNwZWNpZmllZCBhbW91bnQgb2YgJ2NvbW11bml0eSB0b2tlbicgcmV3YXJkcyBmb3IgYSBzdGFrZXIuCi8vIFRoaXMgY2FuIE9OTFkgYmUgY2FsbGVkIGJ5IG91ciB2YWxpZGF0b3IgYW5kIG9ubHkgaWYgd2UncmUgcG9vbCAxIC0gd2l0aCB0aGUgdG9rZW4uCi8vIE5vdGU6IHRoaXMgY2FuIGFsc28gYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBhcyBwYXJ0IG9mIE9XTkVSIHdhbnRpbmcgdG8gc2VuZCB0aGUgcmV3YXJkIHRva2VucwovLyBzb21ld2hlcmUgZWxzZSAoaWUgaWYgdGhleSdyZSBzdW5zZXR0aW5nIHRoZWlyIHZhbGlkYXRvciBhbmQgbmVlZCB0aGUgcmV3YXJkIHRva2VucyBiYWNrKS4KLy8gSXQncyB1cCB0byB0aGUgdmFsaWRhdG9yIHRvIGVuc3VyZSB0aGF0IHRoZSBiYWxhbmNlIGluIHJld2FyZFRva2VuSGVsZEJhY2sgaXMgaG9ub3JlZC4KLy8gQHBhcmFtIHN0YWtlciAtIHRoZSBzdGFrZXIgYWNjb3VudCB0byBzZW5kIHJld2FyZHMgdG8KLy8gQHBhcmFtIHJld2FyZFRva2VuIC0gaWQgb2YgcmV3YXJkIHRva2VuICh0byBhdm9pZCByZS1lbnRyYW5jeSBpbiBjYWxsaW5nIHZhbGlkYXRvciBiYWNrIHRvIGdldCBpZCkKLy8gQHBhcmFtIGFtb3VudFRvU2VuZCAtIGFtb3VudCB0byBzZW5kIHRoZSBzdGFrZXIgKHRoZXJlIGlzIHNpZ25pZmljYW50IHRydXN0IGhlcmUoISkgLSBhbHNvIHdoeSBvbmx5IHZhbGlkYXRvciBjYW4gY2FsbCB1cwpwYXlUb2tlblJld2FyZDoKCXByb3RvIDMgMAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0ODEKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkuYWRkcmVzcywKCS8vICAgICAgICd0aGlzIGNhbiBvbmx5IGJlIGNhbGxlZCB2aWEgdGhlIHZhbGlkYXRvciBjb250cmFjdCcKCS8vICAgICApCgl0eG4gU2VuZGVyCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCT09CgoJLy8gdGhpcyBjYW4gb25seSBiZSBjYWxsZWQgdmlhIHRoZSB2YWxpZGF0b3IgY29udHJhY3QKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0ODUKCS8vIGFzc2VydCh0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMSwgJ211c3QgYmUgcG9vbCAxIGluIG9yZGVyIHRvIGJlIGNhbGxlZCB0byBwYXkgb3V0IHRva2VuIHJld2FyZHMnKQoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJPT0KCgkvLyBtdXN0IGJlIHBvb2wgMSBpbiBvcmRlciB0byBiZSBjYWxsZWQgdG8gcGF5IG91dCB0b2tlbiByZXdhcmRzCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDg2CgkvLyBhc3NlcnQocmV3YXJkVG9rZW4gIT09IDAsICdjYW4gb25seSBjbGFpbSB0b2tlbiByZXdhcmRzIGZyb20gdmFsaWRhdG9yIHRoYXQgaGFzIHRoZW0nKQoJZnJhbWVfZGlnIC0yIC8vIHJld2FyZFRva2VuOiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoKCS8vIGNhbiBvbmx5IGNsYWltIHRva2VuIHJld2FyZHMgZnJvbSB2YWxpZGF0b3IgdGhhdCBoYXMgdGhlbQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ4OQoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgeGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQocmV3YXJkVG9rZW4pLAoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogc3Rha2VyLAoJLy8gICAgICAgYXNzZXRBbW91bnQ6IGFtb3VudFRvU2VuZCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxMSAvLyAgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDkwCgkvLyB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NChyZXdhcmRUb2tlbikKCWZyYW1lX2RpZyAtMiAvLyByZXdhcmRUb2tlbjogdWludDY0CglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0OTEKCS8vIGFzc2V0UmVjZWl2ZXI6IHN0YWtlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ5MgoJLy8gYXNzZXRBbW91bnQ6IGFtb3VudFRvU2VuZAoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFRvU2VuZDogdWludDY0CglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyB1cGRhdGVBbGdvZFZlcihzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX3VwZGF0ZUFsZ29kVmVyOgoJLy8gYWxnb2RWZXI6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHVwZGF0ZUFsZ29kVmVyKHN0cmluZyl2b2lkCgljYWxsc3ViIHVwZGF0ZUFsZ29kVmVyCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyB1cGRhdGVBbGdvZFZlcihhbGdvZFZlcjogc3RyaW5nKTogdm9pZAovLwovLyBVcGRhdGUgdGhlIChob25vciBzeXN0ZW0pIGFsZ29kIHZlcnNpb24gZm9yIHRoZSBub2RlIGFzc29jaWF0ZWQgdG8gdGhpcyBwb29sLiAgVGhlIG5vZGUgbWFuYWdlbWVudCBkYWVtb24KLy8gc2hvdWxkIGNvbXBhcmUgaXRzIGN1cnJlbnQgbm9kZXMgdmVyc2lvbiB0byB0aGUgdmVyc2lvbiBzdG9yZWQgaW4gZ2xvYmFsIHN0YXRlLCB1cGRhdGluZyB3aGVuIGRpZmZlcmVudC4KLy8gVGhlIHJldGkgbm9kZSBkYWVtb24gY29tcG9zZXMgaXRzIG93biB2ZXJzaW9uIHN0cmluZyB1c2luZyBmb3JtYXQ6Ci8vIHttYWpvcn0ue21pbm9yfS57YnVpbGR9IHticmFuY2h9IFt7Y29tbWl0IGhhc2h9XSwKLy8gaWU6IDMuMjIuMCByZWwvc3RhYmxlIFs2YjUwODk3NV0KLy8gWyBPTkxZIE9XTkVSIE9SIE1BTkFHRVIgQ0FOIENBTEwgXQovLyBAcGFyYW0ge3N0cmluZ30gYWxnb2RWZXIgLSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBhbGdvcmFuZCBub2RlIGRhZW1vbiB2ZXJzaW9uIChyZXRpIG5vZGUgZGFlbW9uIGNvbXBvc2VzIGl0cyBvd24gbWV0YSB2ZXJzaW9uKQp1cGRhdGVBbGdvZFZlcjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MDYKCS8vIGFzc2VydCh0aGlzLmlzT3duZXJPck1hbmFnZXJDYWxsZXIoKSwgJ2NhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcicpCgljYWxsc3ViIGlzT3duZXJPck1hbmFnZXJDYWxsZXIKCgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3IKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MDcKCS8vIHRoaXMuYWxnb2RWZXIudmFsdWUgPSBhbGdvZFZlcgoJcHVzaGJ5dGVzIDB4NjE2YzY3NmY2NDU2NjU3MiAvLyAiYWxnb2RWZXIiCglmcmFtZV9kaWcgLTEgLy8gYWxnb2RWZXI6IHN0cmluZwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gZXBvY2hCYWxhbmNlVXBkYXRlKCl2b2lkCiphYmlfcm91dGVfZXBvY2hCYWxhbmNlVXBkYXRlOgoJLy8gZXhlY3V0ZSBlcG9jaEJhbGFuY2VVcGRhdGUoKXZvaWQKCWNhbGxzdWIgZXBvY2hCYWxhbmNlVXBkYXRlCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBlcG9jaEJhbGFuY2VVcGRhdGUoKTogdm9pZAovLwovLyBVcGRhdGVzIHRoZSBiYWxhbmNlIG9mIHN0YWtlcnMgaW4gdGhlIHBvb2wgYmFzZWQgb24gdGhlIHJlY2VpdmVkICdyZXdhcmRzJyAoY3VycmVudCBiYWxhbmNlIHZzIGtub3duIHN0YWtlZCBiYWxhbmNlKQovLyBzdGFrZXJzIG91dHN0YW5kaW5nIGJhbGFuY2UgaXMgYWRqdXN0ZWQgYmFzZWQgb24gdGhlaXIgJSBvZiBzdGFrZSBhbmQgdGltZSBpbiB0aGUgY3VycmVudCBlcG9jaCAtIHNvIHRoYXQgYmFsYW5jZQovLyBjb21wb3VuZHMgb3ZlciB0aW1lIGFuZCBzdGFrZXIgY2FuIHJlbW92ZSB0aGF0IGFtb3VudCBhdCB3aWxsLgovLyBUaGUgdmFsaWRhdG9yIGlzIHBhaWQgdGhlaXIgcGVyY2VudGFnZSBlYWNoIGVwb2NoIHBheW91dC4KLy8KLy8gTm90ZTogQU5ZT05FIGNhbiBjYWxsIHRoaXMuCmVwb2NoQmFsYW5jZVVwZGF0ZToKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXBuIDM2CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUyMAoJLy8gdmFsaWRhdG9yQ29uZmlnID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5nZXRWYWxpZGF0b3JDb25maWc+KHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWJ5dGVjIDE1IC8vICBtZXRob2QgImdldFZhbGlkYXRvckNvbmZpZyh1aW50NjQpKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTIxCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZWMgMSAvLyAgImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUyMgoJLy8gbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdCglieXRlYyAzIC8vICAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludGMgMSAvLyAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MjkKCS8vIGVwb2NoUm91bmRMZW5ndGggPSB2YWxpZGF0b3JDb25maWcuZXBvY2hSb3VuZExlbmd0aCBhcyB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE2OSA0CglidG9pCglmcmFtZV9idXJ5IDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUzMAoJLy8gY3VyUm91bmQgPSBnbG9iYWxzLnJvdW5kCglnbG9iYWwgUm91bmQKCWZyYW1lX2J1cnkgMiAvLyBjdXJSb3VuZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUzMQoJLy8gdGhpc0Vwb2NoQmVnaW4gPSBjdXJSb3VuZCAtIChjdXJSb3VuZCAlIGVwb2NoUm91bmRMZW5ndGgpCglmcmFtZV9kaWcgMiAvLyBjdXJSb3VuZDogdWludDY0CglmcmFtZV9kaWcgMiAvLyBjdXJSb3VuZDogdWludDY0CglmcmFtZV9kaWcgMSAvLyBlcG9jaFJvdW5kTGVuZ3RoOiB1aW50NjQKCSUKCS0KCWZyYW1lX2J1cnkgMyAvLyB0aGlzRXBvY2hCZWdpbjogdWludDY0CgoJLy8gKmlmMjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTM0CgkvLyB0aGlzLmxhc3RQYXlvdXQuZXhpc3RzCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlYyAxNCAvLyAgImxhc3RQYXlvdXQiCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCglieiAqaWYyMF9lbmQKCgkvLyAqaWYyMF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTM1CgkvLyBsYXN0UGF5b3V0RXBvY2ggPSB0aGlzLmxhc3RQYXlvdXQudmFsdWUgLSAodGhpcy5sYXN0UGF5b3V0LnZhbHVlICUgZXBvY2hSb3VuZExlbmd0aCkKCWJ5dGVjIDE0IC8vICAibGFzdFBheW91dCIKCWFwcF9nbG9iYWxfZ2V0CglieXRlYyAxNCAvLyAgImxhc3RQYXlvdXQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0CgklCgktCglmcmFtZV9idXJ5IDQgLy8gbGFzdFBheW91dEVwb2NoOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTM5CgkvLyBhc3NlcnQobGFzdFBheW91dEVwb2NoICE9PSB0aGlzRXBvY2hCZWdpbiwgImNhbid0IGNhbGwgZXBvY2hCYWxhbmNlVXBkYXRlIGluIHNhbWUgZXBvY2ggYXMgcHJpb3IgY2FsbCIpCglmcmFtZV9kaWcgNCAvLyBsYXN0UGF5b3V0RXBvY2g6IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJIT0KCgkvLyBjYW4ndCBjYWxsIGVwb2NoQmFsYW5jZVVwZGF0ZSBpbiBzYW1lIGVwb2NoIGFzIHByaW9yIGNhbGwKCWFzc2VydAoKKmlmMjBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU0MgoJLy8gdGhpcy5jaGVja0lmQmluQ2xvc2VkKCkKCWNhbGxzdWIgY2hlY2tJZkJpbkNsb3NlZAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NDUKCS8vIHRoaXMubGFzdFBheW91dC52YWx1ZSA9IGN1clJvdW5kCglieXRlYyAxNCAvLyAgImxhc3RQYXlvdXQiCglmcmFtZV9kaWcgMiAvLyBjdXJSb3VuZDogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NDYKCS8vIHRoaXMuZXBvY2hOdW1iZXIudmFsdWUgKz0gMQoJYnl0ZWMgMTkgLy8gICJlcG9jaE51bWJlciIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJKwoJYnl0ZWMgMTkgLy8gICJlcG9jaE51bWJlciIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU1MQoJLy8gaXNUb2tlbkVsaWdpYmxlID0gdmFsaWRhdG9yQ29uZmlnLnJld2FyZFRva2VuSWQgIT09IDAKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE1MyA4CglidG9pCglpbnRjIDAgLy8gMAoJIT0KCWZyYW1lX2J1cnkgNSAvLyBpc1Rva2VuRWxpZ2libGU6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTUyCgkvLyBwb29sT25lQXBwSUQgPSB0aGlzLmFwcC5pZAoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJZnJhbWVfYnVyeSA2IC8vIHBvb2xPbmVBcHBJRDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU1MwoJLy8gcG9vbE9uZUFkZHJlc3MgPSB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfYnVyeSA3IC8vIHBvb2xPbmVBZGRyZXNzOiBhZGRyZXNzCgoJLy8gKmlmMjFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTU4CgkvLyBpc1Rva2VuRWxpZ2libGUKCWZyYW1lX2RpZyA1IC8vIGlzVG9rZW5FbGlnaWJsZTogYm9vbAoJYnogKmlmMjFfZW5kCgoJLy8gKmlmMjFfY29uc2VxdWVudAoJLy8gKmlmMjJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTU5CgkvLyB0aGlzLnBvb2xJZC52YWx1ZSAhPT0gMQoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJIT0KCWJ6ICppZjIyX2VuZAoKCS8vICppZjIyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NjEKCS8vIHBvb2xPbmVBcHBJRCA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuZ2V0UG9vbEFwcElkPih7CgkvLyAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWUsIDFdLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAyIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlYyAyMyAvLyAgbWV0aG9kICJnZXRQb29sQXBwSWQodWludDY0LHVpbnQ2NCl1aW50NjQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NjIKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTYzCgkvLyBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZSwgMV0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMQoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludGMgMSAvLyAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWJ0b2kKCWZyYW1lX2J1cnkgNiAvLyBwb29sT25lQXBwSUQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NjUKCS8vIHBvb2xPbmVBZGRyZXNzID0gQXBwSUQuZnJvbVVpbnQ2NChwb29sT25lQXBwSUQpLmFkZHJlc3MKCWZyYW1lX2RpZyA2IC8vIHBvb2xPbmVBcHBJRDogdWludDY0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCWZyYW1lX2J1cnkgNyAvLyBwb29sT25lQWRkcmVzczogYWRkcmVzcwoKKmlmMjJfZW5kOgoJLy8gKmlmMjNfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTcwCgkvLyB0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMQoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJPT0KCWJ6ICppZjIzX2Vsc2UKCgkvLyAqaWYyM19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTcxCgkvLyB0b2tlblBheW91dFJhdGlvID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5zZXRUb2tlblBheW91dFJhdGlvPih7CgkvLyAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAyIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlYyAyNCAvLyAgbWV0aG9kICJzZXRUb2tlblBheW91dFJhdGlvKHVpbnQ2NCkodWludDY0WzI0XSx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTcyCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZWMgMSAvLyAgImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU3MwoJLy8gbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdCglieXRlYyAzIC8vICAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludGMgMSAvLyAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgOCAvLyB0b2tlblBheW91dFJhdGlvOiBQb29sVG9rZW5QYXlvdXRSYXRpbwoJYiAqaWYyM19lbmQKCippZjIzX2Vsc2U6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTc3CgkvLyB0b2tlblBheW91dFJhdGlvID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFN0YWtpbmdQb29sLnByb3RvdHlwZS5wcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbz4oewoJLy8gICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQocG9vbE9uZUFwcElEKSwKCS8vICAgICAgICAgICBtZXRob2RBcmdzOiBbeyBpZDogdGhpcy52YWxpZGF0b3JJZC52YWx1ZSwgcG9vbElkOiB0aGlzLnBvb2xJZC52YWx1ZSwgcG9vbEFwcElkOiB0aGlzLmFwcC5pZCB9XSwKCS8vICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZWMgMjUgLy8gIG1ldGhvZCAicHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0WzI0XSx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTc4CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHBvb2xPbmVBcHBJRCkKCWZyYW1lX2RpZyA2IC8vIHBvb2xPbmVBcHBJRDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTc5CgkvLyBtZXRob2RBcmdzOiBbeyBpZDogdGhpcy52YWxpZGF0b3JJZC52YWx1ZSwgcG9vbElkOiB0aGlzLnBvb2xJZC52YWx1ZSwgcG9vbEFwcElkOiB0aGlzLmFwcC5pZCB9XQoJYnl0ZWMgMyAvLyAgInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWJ5dGVjIDQgLy8gICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJY29uY2F0Cgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCgljb25jYXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnRjIDEgLy8gMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglmcmFtZV9idXJ5IDggLy8gdG9rZW5QYXlvdXRSYXRpbzogUG9vbFRva2VuUGF5b3V0UmF0aW8KCippZjIzX2VuZDoKCippZjIxX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1ODYKCS8vIHZhbGlkYXRvclN0YXRlID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5nZXRWYWxpZGF0b3JTdGF0ZT4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJcHVzaGJ5dGVzIDB4MWYyZjAxMDkgLy8gbWV0aG9kICJnZXRWYWxpZGF0b3JTdGF0ZSh1aW50NjQpKHVpbnQxNix1aW50NjQsdWludDY0LHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1ODcKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTg4CgkvLyBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50YyAxIC8vIDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJZnJhbWVfYnVyeSA5IC8vIHZhbGlkYXRvclN0YXRlOiAodWludDE2LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1OTAKCS8vIHJld2FyZFRva2VuSGVsZEJhY2sgPSB2YWxpZGF0b3JTdGF0ZS5yZXdhcmRUb2tlbkhlbGRCYWNrCglmcmFtZV9kaWcgOSAvLyB2YWxpZGF0b3JTdGF0ZTogKHVpbnQxNix1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTggOAoJYnRvaQoJZnJhbWVfYnVyeSAxMCAvLyByZXdhcmRUb2tlbkhlbGRCYWNrOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTk2CgkvLyBhbGdvUmV3YXJkQXZhaWwgPSB0aGlzLmFwcC5hZGRyZXNzLmJhbGFuY2UgLSB0aGlzLnRvdGFsQWxnb1N0YWtlZC52YWx1ZSAtIHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQoJcG9wCglieXRlYyA2IC8vICAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCS0KCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJLQoJZnJhbWVfYnVyeSAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1OTcKCS8vIGlzUG9vbFNhdHVyYXRlZCA9IGZhbHNlCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAxMiAvLyBpc1Bvb2xTYXR1cmF0ZWQ6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTk4CgkvLyBhbGdvU2F0dXJhdGlvbkFtdCA9IHRoaXMuYWxnb1NhdHVyYXRpb25MZXZlbCgpCgljYWxsc3ViIGFsZ29TYXR1cmF0aW9uTGV2ZWwKCWZyYW1lX2J1cnkgMTMgLy8gYWxnb1NhdHVyYXRpb25BbXQ6IHVpbnQ2NAoKCS8vICppZjI0X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYwNgoJLy8gdmFsaWRhdG9yU3RhdGUudG90YWxBbGdvU3Rha2VkID4gYWxnb1NhdHVyYXRpb25BbXQKCWZyYW1lX2RpZyA5IC8vIHZhbGlkYXRvclN0YXRlOiAodWludDE2LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxMCA4CglidG9pCglmcmFtZV9kaWcgMTMgLy8gYWxnb1NhdHVyYXRpb25BbXQ6IHVpbnQ2NAoJPgoJYnogKmlmMjRfZW5kCgoJLy8gKmlmMjRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYwNwoJLy8gaXNQb29sU2F0dXJhdGVkID0gdHJ1ZQoJaW50YyAxIC8vIDEKCWZyYW1lX2J1cnkgMTIgLy8gaXNQb29sU2F0dXJhdGVkOiBib29sCgoqaWYyNF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjEzCgkvLyB0b2tlblJld2FyZEF2YWlsID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMTQgLy8gdG9rZW5SZXdhcmRBdmFpbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYxNAoJLy8gdG9rZW5SZXdhcmRQYWlkT3V0ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjE1CgkvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dCA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDE2IC8vIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0OiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjE2CgkvLyBleGNlc3NUb0ZlZVNpbmsgPSAwCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAxNyAvLyBleGNlc3NUb0ZlZVNpbms6IHVpbnQ2NAoKCS8vICppZjI1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYxNwoJLy8gaXNUb2tlbkVsaWdpYmxlCglmcmFtZV9kaWcgNSAvLyBpc1Rva2VuRWxpZ2libGU6IGJvb2wKCWJ6ICppZjI1X2VuZAoKCS8vICppZjI1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2MTgKCS8vIHRva2VuUmV3YXJkQmFsID0KCS8vICAgICAgICAgcG9vbE9uZUFkZHJlc3MuYXNzZXRCYWxhbmNlKEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCkpIC0gcmV3YXJkVG9rZW5IZWxkQmFjawoJZnJhbWVfZGlnIDcgLy8gcG9vbE9uZUFkZHJlc3M6IGFkZHJlc3MKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE1MyA4CglidG9pCglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIDEwIC8vIHJld2FyZFRva2VuSGVsZEJhY2s6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAxOCAvLyB0b2tlblJld2FyZEJhbDogdWludDY0CgoJLy8gKmlmMjZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjIzCgkvLyB0b2tlblJld2FyZEJhbCA+PSB2YWxpZGF0b3JDb25maWcucmV3YXJkUGVyUGF5b3V0CglmcmFtZV9kaWcgMTggLy8gdG9rZW5SZXdhcmRCYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTYxIDgKCWJ0b2kKCT49CglieiAqaWYyNl9lbmQKCgkvLyAqaWYyNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjI5CgkvLyBvdXJQb29sUGN0T2ZXaG9sZSA9IHRva2VuUGF5b3V0UmF0aW8ucG9vbFBjdE9mV2hvbGVbdGhpcy5wb29sSWQudmFsdWUgLSAxXQoJZnJhbWVfZGlnIDggLy8gdG9rZW5QYXlvdXRSYXRpbzogUG9vbFRva2VuUGF5b3V0UmF0aW8KCWludGMgMCAvLyAwCglieXRlYyA0IC8vICAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWludGMgMSAvLyAxCgktCglpbnRjIDE0IC8vIDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAxNCAvLyA4CglleHRyYWN0MwoJYnRvaQoJZnJhbWVfYnVyeSAxOSAvLyBvdXJQb29sUGN0T2ZXaG9sZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYzMgoJLy8gdG9rZW5SZXdhcmRBdmFpbCA9IHdpZGVSYXRpbyhbdmFsaWRhdG9yQ29uZmlnLnJld2FyZFBlclBheW91dCwgb3VyUG9vbFBjdE9mV2hvbGVdLCBbMV8wMDBfMDAwXSkKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE2MSA4CglidG9pCglmcmFtZV9kaWcgMTkgLy8gb3VyUG9vbFBjdE9mV2hvbGU6IHVpbnQ2NAoJbXVsdwoJaW50YyAwIC8vIDAKCWludGMgMTIgLy8gMV8wMDBfMDAwCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAxNCAvLyB0b2tlblJld2FyZEF2YWlsOiB1aW50NjQKCippZjI2X2VuZDoKCippZjI1X2VuZDoKCS8vICppZjI3X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYzNQoJLy8gdG9rZW5SZXdhcmRBdmFpbCA9PT0gMAoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglieiAqaWYyN19lbmQKCgkvLyAqaWYyN19jb25zZXF1ZW50CgkvLyAqaWYyOF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NDAKCS8vIGFsZ29SZXdhcmRBdmFpbCA8IDFfMDAwXzAwMAoJZnJhbWVfZGlnIDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CglpbnRjIDEyIC8vIDFfMDAwXzAwMAoJPAoJYnogKmlmMjhfZW5kCgoJLy8gKmlmMjhfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY0MQoJLy8gbG9nKCchdG9rZW4mJiFub2FsZ28gdG8gcGF5JykKCXB1c2hieXRlcyAweDIxNzQ2ZjZiNjU2ZTI2MjYyMTZlNmY2MTZjNjc2ZjIwNzQ2ZjIwNzA2MTc5IC8vICIhdG9rZW4mJiFub2FsZ28gdG8gcGF5IgoJbG9nCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY0MgoJLy8gcmV0dXJuOwoJcmV0c3ViCgoqaWYyOF9lbmQ6CgoqaWYyN19lbmQ6CgkvLyAqaWYyOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NDYKCS8vIGlzUG9vbFNhdHVyYXRlZAoJZnJhbWVfZGlnIDEyIC8vIGlzUG9vbFNhdHVyYXRlZDogYm9vbAoJYnogKmlmMjlfZWxzZWlmMV9jb25kaXRpb24KCgkvLyAqaWYyOV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjQ5CgkvLyBkaW1pbmlzaGVkUmV3YXJkID0gd2lkZVJhdGlvKFthbGdvUmV3YXJkQXZhaWwsIGFsZ29TYXR1cmF0aW9uQW10XSwgW3ZhbGlkYXRvclN0YXRlLnRvdGFsQWxnb1N0YWtlZF0pCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWZyYW1lX2RpZyAxMyAvLyBhbGdvU2F0dXJhdGlvbkFtdDogdWludDY0CgltdWx3CglpbnRjIDAgLy8gMAoJZnJhbWVfZGlnIDkgLy8gdmFsaWRhdG9yU3RhdGU6ICh1aW50MTYsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDEwIDgKCWJ0b2kKCWRpdm1vZHcKCXBvcAoJcG9wCglzd2FwCgkhCgoJLy8gd2lkZVJhdGlvIGZhaWxlZAoJYXNzZXJ0CglmcmFtZV9idXJ5IDIwIC8vIGRpbWluaXNoZWRSZXdhcmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NTEKCS8vIGV4Y2Vzc1RvRmVlU2luayA9IGFsZ29SZXdhcmRBdmFpbCAtIGRpbWluaXNoZWRSZXdhcmQKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJZnJhbWVfZGlnIDIwIC8vIGRpbWluaXNoZWRSZXdhcmQ6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAxNyAvLyBleGNlc3NUb0ZlZVNpbms6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NTIKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgICAgYW1vdW50OiBleGNlc3NUb0ZlZVNpbmssCgkvLyAgICAgICAgIHJlY2VpdmVyOiB0aGlzLmdldEZlZVNpbmsoKSwKCS8vICAgICAgICAgbm90ZTogJ3Bvb2wgc2F0dXJhdGVkLCBleGNlc3MgdG8gZmVlIHNpbmsnLAoJLy8gICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMSAvLyAgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY1MwoJLy8gYW1vdW50OiBleGNlc3NUb0ZlZVNpbmsKCWZyYW1lX2RpZyAxNyAvLyBleGNlc3NUb0ZlZVNpbms6IHVpbnQ2NAoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjU0CgkvLyByZWNlaXZlcjogdGhpcy5nZXRGZWVTaW5rKCkKCWNhbGxzdWIgZ2V0RmVlU2luawoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NTUKCS8vIG5vdGU6ICdwb29sIHNhdHVyYXRlZCwgZXhjZXNzIHRvIGZlZSBzaW5rJwoJcHVzaGJ5dGVzIDB4NzA2ZjZmNmMyMDczNjE3NDc1NzI2MTc0NjU2NDJjMjA2NTc4NjM2NTczNzMyMDc0NmYyMDY2NjU2NTIwNzM2OTZlNmIgLy8gInBvb2wgc2F0dXJhdGVkLCBleGNlc3MgdG8gZmVlIHNpbmsiCglpdHhuX2ZpZWxkIE5vdGUKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY1OAoJLy8gYWxnb1Jld2FyZEF2YWlsID0gZGltaW5pc2hlZFJld2FyZAoJZnJhbWVfZGlnIDIwIC8vIGRpbWluaXNoZWRSZXdhcmQ6IHVpbnQ2NAoJZnJhbWVfYnVyeSAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJYiAqaWYyOV9lbmQKCippZjI5X2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY1OQoJLy8gdmFsaWRhdG9yQ29uZmlnLnBlcmNlbnRUb1ZhbGlkYXRvciAhPT0gMAoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTczIDQKCWJ0b2kKCWludGMgMCAvLyAwCgkhPQoJYnogKmlmMjlfZW5kCgoJLy8gKmlmMjlfZWxzZWlmMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjYyCgkvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dCA9IHdpZGVSYXRpbygKCS8vICAgICAgICAgW2FsZ29SZXdhcmRBdmFpbCwgdmFsaWRhdG9yQ29uZmlnLnBlcmNlbnRUb1ZhbGlkYXRvciBhcyB1aW50NjRdLAoJLy8gICAgICAgICBbMV8wMDBfMDAwXQoJLy8gICAgICAgKQoJZnJhbWVfZGlnIDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNzMgNAoJYnRvaQoJbXVsdwoJaW50YyAwIC8vIDAKCWludGMgMTIgLy8gMV8wMDBfMDAwCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY2OAoJLy8gYWxnb1Jld2FyZEF2YWlsIC09IHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0CglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWZyYW1lX2RpZyAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CgktCglmcmFtZV9idXJ5IDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CgoJLy8gKmlmMzBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Njc1CgkvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dCA+IDAKCWZyYW1lX2RpZyAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CglpbnRjIDAgLy8gMAoJPgoJYnogKmlmMzBfZW5kCgoJLy8gKmlmMzBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY3OAoJLy8gbWFuYWdlclRvcE9mZiA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDIxIC8vIG1hbmFnZXJUb3BPZmY6IHVpbnQ2NAoKCS8vICppZjMxX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY4MAoJLy8gdmFsaWRhdG9yQ29uZmlnLm1hbmFnZXIgIT09IHZhbGlkYXRvckNvbmZpZy52YWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyAmJgoJLy8gICAgICAgICAgIHZhbGlkYXRvckNvbmZpZy5tYW5hZ2VyLmJhbGFuY2UgLSB2YWxpZGF0b3JDb25maWcubWFuYWdlci5taW5CYWxhbmNlIDwgMl8xMDBfMDAwCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0MCAzMgoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTc3IDMyCgkhPQoJZHVwCglieiAqc2tpcF9hbmQzCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0MCAzMgoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQwIDMyCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJLQoJaW50YyAxMyAvLyAyXzEwMF8wMDAKCTwKCSYmCgoqc2tpcF9hbmQzOgoJYnogKmlmMzFfZW5kCgoJLy8gKmlmMzFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY4MwoJLy8gbWFuYWdlclRvcE9mZiA9IHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0IDwgMl8xMDBfMDAwID8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQgOiAyXzEwMF8wMDAKCWZyYW1lX2RpZyAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CglpbnRjIDEzIC8vIDJfMTAwXzAwMAoJPAoJYnogKnRlcm5hcnkxX2ZhbHNlCglmcmFtZV9kaWcgMTYgLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQ6IHVpbnQ2NAoJYiAqdGVybmFyeTFfZW5kCgoqdGVybmFyeTFfZmFsc2U6CglpbnRjIDEzIC8vIDJfMTAwXzAwMAoKKnRlcm5hcnkxX2VuZDoKCWZyYW1lX2J1cnkgMjEgLy8gbWFuYWdlclRvcE9mZjogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY4NAoJLy8gc2VuZFBheW1lbnQoewoJLy8gICAgICAgICAgICAgYW1vdW50OiBtYW5hZ2VyVG9wT2ZmLAoJLy8gICAgICAgICAgICAgcmVjZWl2ZXI6IHZhbGlkYXRvckNvbmZpZy5tYW5hZ2VyLAoJLy8gICAgICAgICAgICAgbm90ZTogJ3ZhbGlkYXRvciByZXdhcmQgdG8gbWFuYWdlciBmb3IgZnVuZGluZyBlcG9jaCB1cGRhdGVzJywKCS8vICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxIC8vICBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Njg1CgkvLyBhbW91bnQ6IG1hbmFnZXJUb3BPZmYKCWZyYW1lX2RpZyAyMSAvLyBtYW5hZ2VyVG9wT2ZmOiB1aW50NjQKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY4NgoJLy8gcmVjZWl2ZXI6IHZhbGlkYXRvckNvbmZpZy5tYW5hZ2VyCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0MCAzMgoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2ODcKCS8vIG5vdGU6ICd2YWxpZGF0b3IgcmV3YXJkIHRvIG1hbmFnZXIgZm9yIGZ1bmRpbmcgZXBvY2ggdXBkYXRlcycKCXB1c2hieXRlcyAweDc2NjE2YzY5NjQ2MTc0NmY3MjIwNzI2NTc3NjE3MjY0MjA3NDZmMjA2ZDYxNmU2MTY3NjU3MjIwNjY2ZjcyMjA2Njc1NmU2NDY5NmU2NzIwNjU3MDZmNjM2ODIwNzU3MDY0NjE3NDY1NzMgLy8gInZhbGlkYXRvciByZXdhcmQgdG8gbWFuYWdlciBmb3IgZnVuZGluZyBlcG9jaCB1cGRhdGVzIgoJaXR4bl9maWVsZCBOb3RlCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMzFfZW5kOgoJLy8gKmlmMzJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjkwCgkvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dCAtIG1hbmFnZXJUb3BPZmYgPiAwCglmcmFtZV9kaWcgMTYgLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDIxIC8vIG1hbmFnZXJUb3BPZmY6IHVpbnQ2NAoJLQoJaW50YyAwIC8vIDAKCT4KCWJ6ICppZjMyX2VuZAoKCS8vICppZjMyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2OTEKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgICAgICAgIGFtb3VudDogdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQgLSBtYW5hZ2VyVG9wT2ZmLAoJLy8gICAgICAgICAgICAgcmVjZWl2ZXI6IHZhbGlkYXRvckNvbmZpZy52YWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcywKCS8vICAgICAgICAgICAgIG5vdGU6ICd2YWxpZGF0b3IgcmV3YXJkJywKCS8vICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxIC8vICBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjkyCgkvLyBhbW91bnQ6IHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0IC0gbWFuYWdlclRvcE9mZgoJZnJhbWVfZGlnIDE2IC8vIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0OiB1aW50NjQKCWZyYW1lX2RpZyAyMSAvLyBtYW5hZ2VyVG9wT2ZmOiB1aW50NjQKCS0KCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY5MwoJLy8gcmVjZWl2ZXI6IHZhbGlkYXRvckNvbmZpZy52YWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcwoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTc3IDMyCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY5NAoJLy8gbm90ZTogJ3ZhbGlkYXRvciByZXdhcmQnCglwdXNoYnl0ZXMgMHg3NjYxNmM2OTY0NjE3NDZmNzIyMDcyNjU3NzYxNzI2NCAvLyAidmFsaWRhdG9yIHJld2FyZCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCippZjMyX2VuZDoKCippZjMwX2VuZDoKCippZjI5X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MDYKCS8vIGluY3JlYXNlZFN0YWtlID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoKCS8vICppZjMzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczMAoJLy8gYWxnb1Jld2FyZEF2YWlsICE9PSAwIHx8IHRva2VuUmV3YXJkQXZhaWwgIT09IDAKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCSE9CglkdXAKCWJueiAqc2tpcF9vcjEKCWZyYW1lX2RpZyAxNCAvLyB0b2tlblJld2FyZEF2YWlsOiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoJfHwKCipza2lwX29yMToKCWJ6ICppZjMzX2VuZAoKCS8vICppZjMzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzEKCS8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMjMgLy8gcGFydGlhbFN0YWtlcnNUb3RhbFN0YWtlOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzMyCgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGg7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDI0IC8vIGk6IHVpbnQ2NAoKKmZvcl80OgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczMgoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAyNCAvLyBpOiB1aW50NjQKCWludGMgNyAvLyAyMDAKCTwKCWJ6ICpmb3JfNF9lbmQKCgkvLyAqaWYzNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzMKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgNDAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglpbnRjIDE2IC8vIDQwMAoJPAoJYnogKmlmMzRfZW5kCgoJLy8gKmlmMzRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczNAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50YyAyIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGVjIDUgLy8gICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludGMgOCAvLyAgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMzRfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczNgoJLy8gY21wU3Rha2VyID0gY2xvbmUodGhpcy5zdGFrZXJzLnZhbHVlW2ldKQoJZnJhbWVfZGlnIDI0IC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMyAvLyA2NAoJYnl0ZWMgMiAvLyAgInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyAqaWYzNV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzcKCS8vIGNtcFN0YWtlci5hY2NvdW50ICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzCglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDAgMzIKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCWJ6ICppZjM1X2VuZAoKCS8vICppZjM1X2NvbnNlcXVlbnQKCS8vICppZjM2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczOAoJLy8gY21wU3Rha2VyLmVudHJ5Um91bmQgPj0gdGhpc0Vwb2NoQmVnaW4KCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNTYgOAoJYnRvaQoJZnJhbWVfZGlnIDMgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJPj0KCWJ6ICppZjM2X2Vsc2UKCgkvLyAqaWYzNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzQxCgkvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2UgKz0gY21wU3Rha2VyLmJhbGFuY2UKCWZyYW1lX2RpZyAyMyAvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2U6IHVpbnQ2NAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCgkrCglmcmFtZV9idXJ5IDIzIC8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0CgliICppZjM2X2VuZAoKKmlmMzZfZWxzZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NDUKCS8vIHRpbWVJblBvb2wgPSB0aGlzRXBvY2hCZWdpbiAtIGNtcFN0YWtlci5lbnRyeVJvdW5kCglmcmFtZV9kaWcgMyAvLyB0aGlzRXBvY2hCZWdpbjogdWludDY0CglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDU2IDgKCWJ0b2kKCS0KCWZyYW1lX2J1cnkgMjYgLy8gdGltZUluUG9vbDogdWludDY0CgoJLy8gKmlmMzdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzQ5CgkvLyB0aW1lSW5Qb29sIDwgZXBvY2hSb3VuZExlbmd0aAoJZnJhbWVfZGlnIDI2IC8vIHRpbWVJblBvb2w6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0Cgk8CglieiAqaWYzN19lbmQKCgkvLyAqaWYzN19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzUwCgkvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2UgKz0gY21wU3Rha2VyLmJhbGFuY2UKCWZyYW1lX2RpZyAyMyAvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2U6IHVpbnQ2NAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCgkrCglmcmFtZV9idXJ5IDIzIC8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc1MQoJLy8gdGltZVBlcmNlbnRhZ2UgPSAodGltZUluUG9vbCAqIDEwMDApIC8gZXBvY2hSb3VuZExlbmd0aAoJZnJhbWVfZGlnIDI2IC8vIHRpbWVJblBvb2w6IHVpbnQ2NAoJaW50YyAxMCAvLyAxMDAwCgkqCglmcmFtZV9kaWcgMSAvLyBlcG9jaFJvdW5kTGVuZ3RoOiB1aW50NjQKCS8KCWZyYW1lX2J1cnkgMjcgLy8gdGltZVBlcmNlbnRhZ2U6IHVpbnQ2NAoKCS8vICppZjM4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc1MwoJLy8gdG9rZW5SZXdhcmRBdmFpbCA+IDAKCWZyYW1lX2RpZyAxNCAvLyB0b2tlblJld2FyZEF2YWlsOiB1aW50NjQKCWludGMgMCAvLyAwCgk+CglieiAqaWYzOF9lbmQKCgkvLyAqaWYzOF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzU1CgkvLyBzdGFrZXJUb2tlblJld2FyZCA9IHdpZGVSYXRpbygKCS8vICAgICAgICAgICAgICAgICAgIFtjbXBTdGFrZXIuYmFsYW5jZSwgdG9rZW5SZXdhcmRBdmFpbCwgdGltZVBlcmNlbnRhZ2VdLAoJLy8gICAgICAgICAgICAgICAgICAgW3RoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlLCAxMDAwXQoJLy8gICAgICAgICAgICAgICAgICkKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJbXVsdwoJZnJhbWVfZGlnIDI3IC8vIHRpbWVQZXJjZW50YWdlOiB1aW50NjQKCXVuY292ZXIgMgoJZGlnIDEKCSoKCWNvdmVyIDIKCW11bHcKCWNvdmVyIDIKCSsKCXN3YXAKCWJ5dGVjIDYgLy8gICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJaW50YyAxMCAvLyAxMDAwCgltdWx3CglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAyOCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc2MgoJLy8gdG9rZW5SZXdhcmRBdmFpbCAtPSBzdGFrZXJUb2tlblJld2FyZAoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJZnJhbWVfZGlnIDI4IC8vIHN0YWtlclRva2VuUmV3YXJkOiB1aW50NjQKCS0KCWZyYW1lX2J1cnkgMTQgLy8gdG9rZW5SZXdhcmRBdmFpbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc2MwoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSArPSBzdGFrZXJUb2tlblJld2FyZAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50YyAxOSAvLyAgaGVhZE9mZnNldAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglmcmFtZV9kaWcgMjggLy8gc3Rha2VyVG9rZW5SZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc2NAoJLy8gdG9rZW5SZXdhcmRQYWlkT3V0ICs9IHN0YWtlclRva2VuUmV3YXJkCglmcmFtZV9kaWcgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCWZyYW1lX2RpZyAyOCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgkrCglmcmFtZV9idXJ5IDE1IC8vIHRva2VuUmV3YXJkUGFpZE91dDogdWludDY0CgoqaWYzOF9lbmQ6CgkvLyAqaWYzOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NjYKCS8vIGFsZ29SZXdhcmRBdmFpbCA+IDAKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT4KCWJ6ICppZjM5X2VuZAoKCS8vICppZjM5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NjgKCS8vIHN0YWtlclJld2FyZCA9IHdpZGVSYXRpbygKCS8vICAgICAgICAgICAgICAgICAgIFtjbXBTdGFrZXIuYmFsYW5jZSwgYWxnb1Jld2FyZEF2YWlsLCB0aW1lUGVyY2VudGFnZV0sCgkvLyAgICAgICAgICAgICAgICAgICBbdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUsIDEwMDBdCgkvLyAgICAgICAgICAgICAgICAgKQoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCW11bHcKCWZyYW1lX2RpZyAyNyAvLyB0aW1lUGVyY2VudGFnZTogdWludDY0Cgl1bmNvdmVyIDIKCWRpZyAxCgkqCgljb3ZlciAyCgltdWx3Cgljb3ZlciAyCgkrCglzd2FwCglieXRlYyA2IC8vICAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCWludGMgMTAgLy8gMTAwMAoJbXVsdwoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMjkgLy8gc3Rha2VyUmV3YXJkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzc1CgkvLyBhbGdvUmV3YXJkQXZhaWwgLT0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWZyYW1lX2RpZyAyOSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NzgKCS8vIGNtcFN0YWtlci5iYWxhbmNlICs9IHN0YWtlclJld2FyZAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50YyA0IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAyOSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc3OQoJLy8gY21wU3Rha2VyLnRvdGFsUmV3YXJkZWQgKz0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglpbnRjIDE4IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQwIDgKCWJ0b2kKCWZyYW1lX2RpZyAyOSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc4MAoJLy8gaW5jcmVhc2VkU3Rha2UgKz0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoJZnJhbWVfZGlnIDI5IC8vIHN0YWtlclJld2FyZDogdWludDY0CgkrCglmcmFtZV9idXJ5IDIyIC8vIGluY3JlYXNlZFN0YWtlOiB1aW50NjQKCippZjM5X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3ODMKCS8vIHRoaXMuc3Rha2Vycy52YWx1ZVtpXSA9IGNtcFN0YWtlcgoJZnJhbWVfZGlnIDI0IC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X3JlcGxhY2UKCippZjM3X2VuZDoKCippZjM2X2VuZDoKCippZjM1X2VuZDoKCipmb3JfNF9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzIKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDI0IC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMjQgLy8gaTogdWludDY0CgliICpmb3JfNAoKKmZvcl80X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3OTEKCS8vIG5ld1Bvb2xUb3RhbFN0YWtlID0gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgLSBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2UKCWJ5dGVjIDYgLy8gICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDIzIC8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0CgktCglmcmFtZV9idXJ5IDMwIC8vIG5ld1Bvb2xUb3RhbFN0YWtlOiB1aW50NjQKCgkvLyAqaWY0MF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3OTUKCS8vIG5ld1Bvb2xUb3RhbFN0YWtlID4gMAoJZnJhbWVfZGlnIDMwIC8vIG5ld1Bvb2xUb3RhbFN0YWtlOiB1aW50NjQKCWludGMgMCAvLyAwCgk+CglieiAqaWY0MF9lbmQKCgkvLyAqaWY0MF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzk3CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGg7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDMxIC8vIGk6IHVpbnQ2NAoKKmZvcl81OgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc5NwoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAzMSAvLyBpOiB1aW50NjQKCWludGMgNyAvLyAyMDAKCTwKCWJ6ICpmb3JfNV9lbmQKCgkvLyAqaWY0MV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3OTgKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgMjAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglpbnRjIDcgLy8gMjAwCgk8CglieiAqaWY0MV9lbmQKCgkvLyAqaWY0MV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzk5CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZWMgNSAvLyAgI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50YyA4IC8vICBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoqaWY0MV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODAxCgkvLyBjbXBTdGFrZXIgPSBjbG9uZSh0aGlzLnN0YWtlcnMudmFsdWVbaV0pCglmcmFtZV9kaWcgMzEgLy8gaTogdWludDY0CglpbnRjIDMgLy8gNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAzIC8vIDY0CglieXRlYyAyIC8vICAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vICppZjQyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgwMgoJLy8gY21wU3Rha2VyLmFjY291bnQgIT09IGdsb2JhbHMuemVyb0FkZHJlc3MgJiYgY21wU3Rha2VyLmVudHJ5Um91bmQgPCB0aGlzRXBvY2hCZWdpbgoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAwIDMyCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9CglkdXAKCWJ6ICpza2lwX2FuZDQKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNTYgOAoJYnRvaQoJZnJhbWVfZGlnIDMgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJPAoJJiYKCipza2lwX2FuZDQ6CglieiAqaWY0Ml9lbmQKCgkvLyAqaWY0Ml9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODAzCgkvLyB0aW1lSW5Qb29sID0gdGhpc0Vwb2NoQmVnaW4gLSBjbXBTdGFrZXIuZW50cnlSb3VuZAoJZnJhbWVfZGlnIDMgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA1NiA4CglidG9pCgktCglmcmFtZV9idXJ5IDMzIC8vIHRpbWVJblBvb2w6IHVpbnQ2NAoKCS8vICppZjQzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgwNQoJLy8gdGltZUluUG9vbCA+PSBlcG9jaFJvdW5kTGVuZ3RoCglmcmFtZV9kaWcgMzMgLy8gdGltZUluUG9vbDogdWludDY0CglmcmFtZV9kaWcgMSAvLyBlcG9jaFJvdW5kTGVuZ3RoOiB1aW50NjQKCT49CglieiAqaWY0M19lbmQKCgkvLyAqaWY0M19jb25zZXF1ZW50CgkvLyAqaWY0NF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MTAKCS8vIHRva2VuUmV3YXJkQXZhaWwgPiAwCglmcmFtZV9kaWcgMTQgLy8gdG9rZW5SZXdhcmRBdmFpbDogdWludDY0CglpbnRjIDAgLy8gMAoJPgoJYnogKmlmNDRfZW5kCgoJLy8gKmlmNDRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgxMQoJLy8gc3Rha2VyVG9rZW5SZXdhcmQgPSB3aWRlUmF0aW8oW2NtcFN0YWtlci5iYWxhbmNlLCB0b2tlblJld2FyZEF2YWlsXSwgW25ld1Bvb2xUb3RhbFN0YWtlXSkKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJbXVsdwoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyAzMCAvLyBuZXdQb29sVG90YWxTdGFrZTogdWludDY0CglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAzNCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgxNAoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSArPSBzdGFrZXJUb2tlblJld2FyZAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50YyAxOSAvLyAgaGVhZE9mZnNldAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglmcmFtZV9kaWcgMzQgLy8gc3Rha2VyVG9rZW5SZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgxNQoJLy8gdG9rZW5SZXdhcmRQYWlkT3V0ICs9IHN0YWtlclRva2VuUmV3YXJkCglmcmFtZV9kaWcgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCWZyYW1lX2RpZyAzNCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgkrCglmcmFtZV9idXJ5IDE1IC8vIHRva2VuUmV3YXJkUGFpZE91dDogdWludDY0CgoqaWY0NF9lbmQ6CgkvLyAqaWY0NV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MTcKCS8vIGFsZ29SZXdhcmRBdmFpbCA+IDAKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT4KCWJ6ICppZjQ1X2VuZAoKCS8vICppZjQ1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MTgKCS8vIHN0YWtlclJld2FyZCA9IHdpZGVSYXRpbyhbY21wU3Rha2VyLmJhbGFuY2UsIGFsZ29SZXdhcmRBdmFpbF0sIFtuZXdQb29sVG90YWxTdGFrZV0pCglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJbXVsdwoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyAzMCAvLyBuZXdQb29sVG90YWxTdGFrZTogdWludDY0CglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAzNSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MjEKCS8vIGNtcFN0YWtlci5iYWxhbmNlICs9IHN0YWtlclJld2FyZAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50YyA0IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAzNSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgyMgoJLy8gY21wU3Rha2VyLnRvdGFsUmV3YXJkZWQgKz0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglpbnRjIDE4IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQwIDgKCWJ0b2kKCWZyYW1lX2RpZyAzNSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgyMwoJLy8gaW5jcmVhc2VkU3Rha2UgKz0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoJZnJhbWVfZGlnIDM1IC8vIHN0YWtlclJld2FyZDogdWludDY0CgkrCglmcmFtZV9idXJ5IDIyIC8vIGluY3JlYXNlZFN0YWtlOiB1aW50NjQKCippZjQ1X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MjcKCS8vIHRoaXMuc3Rha2Vycy52YWx1ZVtpXSA9IGNtcFN0YWtlcgoJZnJhbWVfZGlnIDMxIC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X3JlcGxhY2UKCippZjQzX2VuZDoKCippZjQyX2VuZDoKCipmb3JfNV9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3OTcKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDMxIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMzEgLy8gaTogdWludDY0CgliICpmb3JfNQoKKmZvcl81X2VuZDoKCippZjQwX2VuZDoKCippZjMzX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MzcKCS8vIHJvdW5kc0xlZnRJbkJpbiA9IHRoaXMuYmluUm91bmRTdGFydC52YWx1ZSArIHRoaXMucm91bmRzUGVyRGF5LnZhbHVlIC0gZ2xvYmFscy5yb3VuZAoJYnl0ZWMgMTEgLy8gICJiaW5Sb3VuZFN0YXJ0IgoJYXBwX2dsb2JhbF9nZXQKCWJ5dGVjIDEwIC8vICAicm91bmRzUGVyRGF5IgoJYXBwX2dsb2JhbF9nZXQKCSsKCWdsb2JhbCBSb3VuZAoJLQoJZnJhbWVfYnVyeSAzNiAvLyByb3VuZHNMZWZ0SW5CaW46IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MzgKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlICs9IGluY3JlYXNlZFN0YWtlCglieXRlYyA2IC8vICAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAyMiAvLyBpbmNyZWFzZWRTdGFrZTogdWludDY0CgkrCglieXRlYyA2IC8vICAic3Rha2VkIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODM5CgkvLyB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgPQoJLy8gICAgICAgdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlICsgKGluY3JlYXNlZFN0YWtlIGFzIHVpbnQxMjgpICogKHJvdW5kc0xlZnRJbkJpbiBhcyB1aW50MTI4KQoJYnl0ZWMgNyAvLyAgInN0YWtlQWNjdW11bGF0b3IiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfZGlnIDM2IC8vIHJvdW5kc0xlZnRJbkJpbjogdWludDY0CglpdG9iCgliKgoJYisKCWR1cAoJYml0bGVuCglpbnRjIDYgLy8gMTI4Cgk8PQoKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSArIChpbmNyZWFzZWRTdGFrZSBhcyB1aW50MTI4KSAqIChyb3VuZHNMZWZ0SW5CaW4gYXMgdWludDEyOCkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlYyA4IC8vIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnRjIDUgLy8gMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjg0MQoJLy8gdGhpcy5yZXdhcmRBY2N1bXVsYXRvci52YWx1ZSA9IHRoaXMucmV3YXJkQWNjdW11bGF0b3IudmFsdWUgKyBpbmNyZWFzZWRTdGFrZQoJYnl0ZWMgMTIgLy8gICJyZXdhcmRBY2N1bXVsYXRvciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAyMiAvLyBpbmNyZWFzZWRTdGFrZTogdWludDY0CgkrCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4NDcKCS8vIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuc3Rha2VVcGRhdGVkVmlhUmV3YXJkcz4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgIHsgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfSwKCS8vICAgICAgICAgaW5jcmVhc2VkU3Rha2UsCgkvLyAgICAgICAgIHRva2VuUmV3YXJkUGFpZE91dCwKCS8vICAgICAgICAgdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQsCgkvLyAgICAgICAgIGV4Y2Vzc1RvRmVlU2luaywKCS8vICAgICAgIF0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJcHVzaGJ5dGVzIDB4NDE4ZmNlZmMgLy8gbWV0aG9kICJzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzKCh1aW50NjQsdWludDY0LHVpbnQ2NCksdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4NDgKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODQ5CgkvLyBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgIHsgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfSwKCS8vICAgICAgICAgaW5jcmVhc2VkU3Rha2UsCgkvLyAgICAgICAgIHRva2VuUmV3YXJkUGFpZE91dCwKCS8vICAgICAgICAgdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQsCgkvLyAgICAgICAgIGV4Y2Vzc1RvRmVlU2luaywKCS8vICAgICAgIF0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglieXRlYyA0IC8vICAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWNvbmNhdAoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJY29uY2F0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDIyIC8vIGluY3JlYXNlZFN0YWtlOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMTYgLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAxNyAvLyBleGNlc3NUb0ZlZVNpbms6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGdvT25saW5lKHBheSxieXRlW10sYnl0ZVtdLGJ5dGVbXSx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfZ29PbmxpbmU6CgkvLyB2b3RlS2V5RGlsdXRpb246IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNgoJYnRvaQoKCS8vIHZvdGVMYXN0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDUKCWJ0b2kKCgkvLyB2b3RlRmlyc3Q6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJYnRvaQoKCS8vIHN0YXRlUHJvb2ZQSzogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglleHRyYWN0IDIgMAoKCS8vIHNlbGVjdGlvblBLOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWV4dHJhY3QgMiAwCgoJLy8gdm90ZVBLOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZmVlUGF5bWVudDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50YyAxIC8vIDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludGMgMSAvLyAgcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDYgKGZlZVBheW1lbnQpIGZvciBnb09ubGluZSBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGdvT25saW5lKHBheSxieXRlW10sYnl0ZVtdLGJ5dGVbXSx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGdvT25saW5lCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnb09ubGluZShmZWVQYXltZW50OiBQYXlUeG4sIHZvdGVQSzogYnl0ZXMsIHNlbGVjdGlvblBLOiBieXRlcywgc3RhdGVQcm9vZlBLOiBieXRlcywgdm90ZUZpcnN0OiB1aW50NjQsIHZvdGVMYXN0OiB1aW50NjQsIHZvdGVLZXlEaWx1dGlvbjogdWludDY0KTogdm9pZAovLwovLyBSZWdpc3RlcnMgYSBzdGFraW5nIHBvb2wga2V5IG9ubGluZSBhZ2FpbnN0IGEgcGFydGljaXBhdGlvbiBrZXkuCi8vIFsgT05MWSBPV05FUiBPUiBNQU5BR0VSIENBTiBDQUxMIF0KLy8KLy8gQHBhcmFtIHtQYXlUeG59IGZlZVBheW1lbnQgLSBwYXltZW50IHRvIGNvdmVyIGV4dHJhIGZlZSBvZiBnb2luZyBvbmxpbmUgaWYgb2ZmbGluZSAtIG9yIDAgaWYgbm90IHJlbmV3YWwKLy8gQHBhcmFtIHtieXRlc30gdm90ZVBLIC0gVGhlIHZvdGUgcHVibGljIGtleS4KLy8gQHBhcmFtIHtieXRlc30gc2VsZWN0aW9uUEsgLSBUaGUgc2VsZWN0aW9uIHB1YmxpYyBrZXkuCi8vIEBwYXJhbSB7Ynl0ZXN9IHN0YXRlUHJvb2ZQSyAtIFRoZSBzdGF0ZSBwcm9vZiBwdWJsaWMga2V5LgovLyBAcGFyYW0ge3VpbnQ2NH0gdm90ZUZpcnN0IC0gVGhlIGZpcnN0IHZvdGUgaW5kZXguCi8vIEBwYXJhbSB7dWludDY0fSB2b3RlTGFzdCAtIFRoZSBsYXN0IHZvdGUgaW5kZXguCi8vIEBwYXJhbSB7dWludDY0fSB2b3RlS2V5RGlsdXRpb24gLSBUaGUgdm90ZSBrZXkgZGlsdXRpb24gdmFsdWUuCi8vIEB0aHJvd3Mge0Vycm9yfSBXaWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSBjYWxsZXIgaXMgbm90IHRoZSBvd25lciBvciBhIG1hbmFnZXIuCmdvT25saW5lOgoJcHJvdG8gNyAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODgxCgkvLyBhc3NlcnQodGhpcy5pc093bmVyT3JNYW5hZ2VyQ2FsbGVyKCksICdjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3InKQoJY2FsbHN1YiBpc093bmVyT3JNYW5hZ2VyQ2FsbGVyCgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODgyCgkvLyBleHRyYUZlZSA9IHRoaXMuZ2V0R29PbmxpbmVGZWUoKQoJY2FsbHN1YiBnZXRHb09ubGluZUZlZQoJZnJhbWVfYnVyeSAwIC8vIGV4dHJhRmVlOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODgzCgkvLyB2ZXJpZnlQYXlUeG4oZmVlUGF5bWVudCwgeyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgYW1vdW50OiBleHRyYUZlZSB9KQoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gZmVlUGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJmZWVQYXltZW50IiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gZmVlUGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAwIC8vIGV4dHJhRmVlOiB1aW50NjQKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJmZWVQYXltZW50IiwiZmllbGQiOiJhbW91bnQiLCJleHBlY3RlZCI6ImV4dHJhRmVlIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4ODQKCS8vIHNlbmRPbmxpbmVLZXlSZWdpc3RyYXRpb24oewoJLy8gICAgICAgdm90ZVBLOiB2b3RlUEssCgkvLyAgICAgICBzZWxlY3Rpb25QSzogc2VsZWN0aW9uUEssCgkvLyAgICAgICBzdGF0ZVByb29mUEs6IHN0YXRlUHJvb2ZQSywKCS8vICAgICAgIHZvdGVGaXJzdDogdm90ZUZpcnN0LAoJLy8gICAgICAgdm90ZUxhc3Q6IHZvdGVMYXN0LAoJLy8gICAgICAgdm90ZUtleURpbHV0aW9uOiB2b3RlS2V5RGlsdXRpb24sCgkvLyAgICAgICBmZWU6IHRoaXMuZ2V0R29PbmxpbmVGZWUoKSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxNyAvLyAga2V5cmVnCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjg4NQoJLy8gdm90ZVBLOiB2b3RlUEsKCWZyYW1lX2RpZyAtMiAvLyB2b3RlUEs6IGJ5dGVzCglpdHhuX2ZpZWxkIFZvdGVQSwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4ODYKCS8vIHNlbGVjdGlvblBLOiBzZWxlY3Rpb25QSwoJZnJhbWVfZGlnIC0zIC8vIHNlbGVjdGlvblBLOiBieXRlcwoJaXR4bl9maWVsZCBTZWxlY3Rpb25QSwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4ODcKCS8vIHN0YXRlUHJvb2ZQSzogc3RhdGVQcm9vZlBLCglmcmFtZV9kaWcgLTQgLy8gc3RhdGVQcm9vZlBLOiBieXRlcwoJaXR4bl9maWVsZCBTdGF0ZVByb29mUEsKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODg4CgkvLyB2b3RlRmlyc3Q6IHZvdGVGaXJzdAoJZnJhbWVfZGlnIC01IC8vIHZvdGVGaXJzdDogdWludDY0CglpdHhuX2ZpZWxkIFZvdGVGaXJzdAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4ODkKCS8vIHZvdGVMYXN0OiB2b3RlTGFzdAoJZnJhbWVfZGlnIC02IC8vIHZvdGVMYXN0OiB1aW50NjQKCWl0eG5fZmllbGQgVm90ZUxhc3QKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODkwCgkvLyB2b3RlS2V5RGlsdXRpb246IHZvdGVLZXlEaWx1dGlvbgoJZnJhbWVfZGlnIC03IC8vIHZvdGVLZXlEaWx1dGlvbjogdWludDY0CglpdHhuX2ZpZWxkIFZvdGVLZXlEaWx1dGlvbgoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4OTEKCS8vIGZlZTogdGhpcy5nZXRHb09ubGluZUZlZSgpCgljYWxsc3ViIGdldEdvT25saW5lRmVlCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gZ29PZmZsaW5lKCl2b2lkCiphYmlfcm91dGVfZ29PZmZsaW5lOgoJLy8gZXhlY3V0ZSBnb09mZmxpbmUoKXZvaWQKCWNhbGxzdWIgZ29PZmZsaW5lCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnb09mZmxpbmUoKTogdm9pZAovLwovLyBNYXJrcyBhIHN0YWtpbmcgcG9vbCBrZXkgT0ZGTElORS4KLy8gWyBPTkxZIE9XTkVSIE9SIE1BTkFHRVIgQ0FOIENBTEwgXQpnb09mZmxpbmU6Cglwcm90byAwIDAKCgkvLyAqaWY0Nl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MDMKCS8vIHRoaXMudHhuLnNlbmRlciAhPT0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkuYWRkcmVzcwoJdHhuIFNlbmRlcgoJYnl0ZWMgMSAvLyAgImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgkhPQoJYnogKmlmNDZfZW5kCgoJLy8gKmlmNDZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkwNAoJLy8gYXNzZXJ0KHRoaXMuaXNPd25lck9yTWFuYWdlckNhbGxlcigpLCAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yJykKCWNhbGxzdWIgaXNPd25lck9yTWFuYWdlckNhbGxlcgoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcgoJYXNzZXJ0CgoqaWY0Nl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTA3CgkvLyBzZW5kT2ZmbGluZUtleVJlZ2lzdHJhdGlvbih7fSkKCWl0eG5fYmVnaW4KCWludGMgMTcgLy8gIGtleXJlZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gbGlua1RvTkZEKHVpbnQ2NCxzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX2xpbmtUb05GRDoKCS8vIG5mZE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBuZmRBcHBJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBsaW5rVG9ORkQodWludDY0LHN0cmluZyl2b2lkCgljYWxsc3ViIGxpbmtUb05GRAoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gbGlua1RvTkZEKG5mZEFwcElkOiB1aW50NjQsIG5mZE5hbWU6IHN0cmluZyk6IHZvaWQKbGlua1RvTkZEOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkxNAoJLy8gYXNzZXJ0KHRoaXMuaXNPd25lck9yTWFuYWdlckNhbGxlcigpLCAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yJykKCWNhbGxzdWIgaXNPd25lck9yTWFuYWdlckNhbGxlcgoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkxNgoJLy8gc2VuZEFwcENhbGwoewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpLAoJLy8gICAgICAgYXBwbGljYXRpb25BcmdzOiBbJ3ZlcmlmeV9uZmRfYWRkcicsIG5mZE5hbWUsIGl0b2IobmZkQXBwSWQpLCByYXdCeXRlcyh0aGlzLmFwcC5hZGRyZXNzKV0sCgkvLyAgICAgICBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MTcKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5uZmRSZWdpc3RyeUFwcElkKQoJaW50YyAyMCAvLyBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MTgKCS8vIGFwcGxpY2F0aW9uQXJnczogWyd2ZXJpZnlfbmZkX2FkZHInLCBuZmROYW1lLCBpdG9iKG5mZEFwcElkKSwgcmF3Qnl0ZXModGhpcy5hcHAuYWRkcmVzcyldCglwdXNoYnl0ZXMgMHg3NjY1NzI2OTY2Nzk1ZjZlNjY2NDVmNjE2NDY0NzIgLy8gInZlcmlmeV9uZmRfYWRkciIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTIgLy8gbmZkTmFtZTogc3RyaW5nCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0xIC8vIG5mZEFwcElkOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTE5CgkvLyBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKV0KCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJZDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9ucwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0WzI0XSx1aW50NjQpCiphYmlfcm91dGVfcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW86CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIxIC8vIDB4MTUxZjdjNzUKCgkvLyBwb29sS2V5OiAodWludDY0LHVpbnQ2NCx1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJcHVzaGludCAyNAoJPT0KCgkvLyBhcmd1bWVudCAwIChwb29sS2V5KSBmb3IgcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8gbXVzdCBiZSBhICh1aW50NjQsdWludDY0LHVpbnQ2NCkKCWFzc2VydAoKCS8vIGV4ZWN1dGUgcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0WzI0XSx1aW50NjQpCgljYWxsc3ViIHByb3hpZWRTZXRUb2tlblBheW91dFJhdGlvCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8ocG9vbEtleTogVmFsaWRhdG9yUG9vbEtleSk6IFBvb2xUb2tlblBheW91dFJhdGlvCi8vCi8vIHByb3hpZWRTZXRUb2tlblBheW91dFJhdGlvIGlzIG1lYW50IHRvIGJlIGNhbGxlZCBieSBwb29scyAhPSAxIC0gY2FsbGluZyBVUywgcG9vbCAjMQovLyBXZSBuZWVkIHRvIHZlcmlmeSB0aGF0IHdlIGFyZSBpbiBmYWN0IGJlaW5nIGNhbGxlZCBieSBhbm90aGVyIG9mIE9VUiBwb29scyAobm90IHVzKQovLyBhbmQgdGhlbiB3ZSdsbCBjYWxsIHRoZSB2YWxpZGF0b3Igb24gdGhlaXIgYmVoYWxmIHRvIHVwZGF0ZSB0aGUgdG9rZW4gcGF5b3V0cwovLyBAcGFyYW0gcG9vbEtleSAtIFZhbGlkYXRvclBvb2xLZXkgdHVwbGUKcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW86Cglwcm90byAxIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzAKCS8vIGFzc2VydCh0aGlzLnZhbGlkYXRvcklkLnZhbHVlID09PSBwb29sS2V5LmlkLCAnY2FsbGVyIG11c3QgYmUgcGFydCBvZiBzYW1lIHZhbGlkYXRvciBzZXQhJykKCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCT09CgoJLy8gY2FsbGVyIG11c3QgYmUgcGFydCBvZiBzYW1lIHZhbGlkYXRvciBzZXQhCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTMxCgkvLyBhc3NlcnQodGhpcy5wb29sSWQudmFsdWUgPT09IDEsICdjYWxsZWUgbXVzdCBiZSBwb29sIDEnKQoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJPT0KCgkvLyBjYWxsZWUgbXVzdCBiZSBwb29sIDEKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzIKCS8vIGFzc2VydChwb29sS2V5LnBvb2xJZCAhPT0gMSwgJ2NhbGxlciBtdXN0IE5PVCBiZSBwb29sIDEnKQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnRjIDEgLy8gMQoJIT0KCgkvLyBjYWxsZXIgbXVzdCBOT1QgYmUgcG9vbCAxCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTM0CgkvLyBjYWxsZXJQb29sQXBwSUQgPSBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLmdldFBvb2xBcHBJZD4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbcG9vbEtleS5pZCwgcG9vbEtleS5wb29sSWRdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWJ5dGVjIDIzIC8vICBtZXRob2QgImdldFBvb2xBcHBJZCh1aW50NjQsdWludDY0KXVpbnQ2NCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkzNQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkKCWJ5dGVjIDEgLy8gICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzYKCS8vIG1ldGhvZEFyZ3M6IFtwb29sS2V5LmlkLCBwb29sS2V5LnBvb2xJZF0KCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludGMgMSAvLyAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyBjYWxsZXJQb29sQXBwSUQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzgKCS8vIGFzc2VydChjYWxsZXJQb29sQXBwSUQgPT09IHBvb2xLZXkucG9vbEFwcElkKQoJZnJhbWVfZGlnIDAgLy8gY2FsbGVyUG9vbEFwcElEOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDE2IDgKCWJ0b2kKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTM5CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBBcHBJRC5mcm9tVWludDY0KHBvb2xLZXkucG9vbEFwcElkKS5hZGRyZXNzKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk0MQoJLy8gcmV0dXJuIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuc2V0VG9rZW5QYXlvdXRSYXRpbz4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgfSk7CglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWJ5dGVjIDI0IC8vICBtZXRob2QgInNldFRva2VuUGF5b3V0UmF0aW8odWludDY0KSh1aW50NjRbMjRdLHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NDIKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTQzCgkvLyBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50YyAxIC8vIDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBpc093bmVyT3JNYW5hZ2VyQ2FsbGVyKCk6IGJvb2xlYW4KaXNPd25lck9yTWFuYWdlckNhbGxlcjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk0OAoJLy8gT3duZXJBbmRNYW5hZ2VyID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5nZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXI+KHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCXB1c2hieXRlcyAweDJmYTIyYzRiIC8vIG1ldGhvZCAiZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyKHVpbnQ2NCkoYWRkcmVzcyxhZGRyZXNzKSIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk0OQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkKCWJ5dGVjIDEgLy8gICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NTAKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXQoJYnl0ZWMgMyAvLyAgInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnRjIDEgLy8gMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglmcmFtZV9idXJ5IDAgLy8gT3duZXJBbmRNYW5hZ2VyOiAoYWRkcmVzcyxhZGRyZXNzKQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NTIKCS8vIHJldHVybiB0aGlzLnR4bi5zZW5kZXIgPT09IE93bmVyQW5kTWFuYWdlclswXSB8fCB0aGlzLnR4bi5zZW5kZXIgPT09IE93bmVyQW5kTWFuYWdlclsxXTsKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAwIC8vIE93bmVyQW5kTWFuYWdlcjogKGFkZHJlc3MsYWRkcmVzcykKCWV4dHJhY3QgMCAzMgoJPT0KCWR1cAoJYm56ICpza2lwX29yMgoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIDAgLy8gT3duZXJBbmRNYW5hZ2VyOiAoYWRkcmVzcyxhZGRyZXNzKQoJZXh0cmFjdCAzMiAzMgoJPT0KCXx8Cgoqc2tpcF9vcjI6CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gZ2V0RmVlU2luaygpOiBBZGRyZXNzCmdldEZlZVNpbms6Cglwcm90byAwIDEKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTU2CgkvLyByZXR1cm4gdGhpcy5mZWVTaW5rQWRkcjsKCWJ5dGVjIDI3IC8vIFRNUExfZmVlU2lua0FkZHIKCXJldHN1YgoKLy8gYWxnb1NhdHVyYXRpb25MZXZlbCgpOiB1aW50NjQKLy8KLy8gUmV0dXJucyB0aGUgbWF4aW11bSBhbGxvd2VkIHN0YWtlIHBlciB2YWxpZGF0b3IgYmFzZWQgb24gYSBwZXJjZW50YWdlIG9mIGFsbCBjdXJyZW50IG9ubGluZSBzdGFrZSBiZWZvcmUKLy8gdGhlIHZhbGlkYXRvciBpcyBjb25zaWRlcmVkIHNhdHVyYXRlZCAtIHdoZXJlIHJld2FyZHMgYXJlIGRpbWluaXNoZWQuCmFsZ29TYXR1cmF0aW9uTGV2ZWw6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NjYKCS8vIG9ubGluZSA9IHRoaXMuZ2V0Q3VycmVudE9ubGluZVN0YWtlKCkKCWNhbGxzdWIgZ2V0Q3VycmVudE9ubGluZVN0YWtlCglmcmFtZV9idXJ5IDAgLy8gb25saW5lOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTY4CgkvLyByZXR1cm4gd2lkZVJhdGlvKFtvbmxpbmUsIE1BWF9WQUxJREFUT1JfU09GVF9QQ1RfT0ZfT05MSU5FXzFERUNJTUFMXSwgWzEwMDBdKTsKCWZyYW1lX2RpZyAwIC8vIG9ubGluZTogdWludDY0CglwdXNoaW50IDEwMAoJbXVsdwoJaW50YyAwIC8vIDAKCWludGMgMTAgLy8gMTAwMAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gZ2V0R29PbmxpbmVGZWUoKTogdWludDY0CmdldEdvT25saW5lRmVlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTc1CgkvLyBpc09ubGluZSA9IGZhbHNlCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAwIC8vIGlzT25saW5lOiBib29sCgoJLy8gKmlmNDdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTc2CgkvLyAhaXNPbmxpbmUKCWZyYW1lX2RpZyAwIC8vIGlzT25saW5lOiBib29sCgkhCglieiAqaWY0N19lbmQKCgkvLyAqaWY0N19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTc4CgkvLyByZXR1cm4gMl8wMDBfMDAwOwoJcHVzaGludCAyXzAwMF8wMDAKCWIgKmdldEdvT25saW5lRmVlKnJldHVybgoKKmlmNDdfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk4MAoJLy8gcmV0dXJuIDA7CglpbnRjIDAgLy8gMAoKKmdldEdvT25saW5lRmVlKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBnZXRDdXJyZW50T25saW5lU3Rha2UoKTogdWludDY0CmdldEN1cnJlbnRPbmxpbmVTdGFrZToKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5ODUKCS8vIHJldHVybiAyXzAwMF8wMDBfMDAwXzAwMF8wMDA7CglwdXNoaW50IDJfMDAwXzAwMF8wMDBfMDAwXzAwMAoJcmV0c3ViCgovLyBjaGVja0lmQmluQ2xvc2VkKCk6IHZvaWQKLy8KLy8gQ2hlY2tzIGlmIHRoZSBjdXJyZW50IHJvdW5kIGlzIGluIGEgJ25ldyBjYWxjdWxhdGlvbiBiaW4nIChhcHByb3hpbWF0ZWx5IGRhaWx5KQpjaGVja0lmQmluQ2xvc2VkOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gNAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5OTIKCS8vIGN1cnJlbnRCaW5TaXplID0gdGhpcy5yb3VuZHNQZXJEYXkudmFsdWUgYXMgdWludDEyOAoJYnl0ZWMgMTAgLy8gICJyb3VuZHNQZXJEYXkiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJZnJhbWVfYnVyeSAwIC8vIGN1cnJlbnRCaW5TaXplOiB1bnNhZmUgdWludDEyOAoKCS8vICppZjQ4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5MwoJLy8gZ2xvYmFscy5yb3VuZCA+PSB0aGlzLmJpblJvdW5kU3RhcnQudmFsdWUgKyAoY3VycmVudEJpblNpemUgYXMgdWludDY0KQoJZ2xvYmFsIFJvdW5kCglieXRlYyAxMSAvLyAgImJpblJvdW5kU3RhcnQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDAgLy8gY3VycmVudEJpblNpemU6IHVuc2FmZSB1aW50MTI4CglkdXAKCWJpdGxlbgoJaW50YyAzIC8vIDY0Cgk8PQoKCS8vIGN1cnJlbnRCaW5TaXplIGFzIHVpbnQ2NCBvdmVyZmxvd2VkIDY0IGJpdHMKCWFzc2VydAoJcHVzaGJ5dGVzIDB4RkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludGMgMTQgLy8gOAoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJYnRvaQoJKwoJPj0KCWJ6ICppZjQ4X2VuZAoKCS8vICppZjQ4X2NvbnNlcXVlbnQKCS8vICppZjQ5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5NAoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAzMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludGMgOSAvLyAzMDAKCTwKCWJ6ICppZjQ5X2VuZAoKCS8vICppZjQ5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5OTUKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyA1IC8vICAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnRjIDggLy8gIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjQ5X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5OTcKCS8vIGFwcHJveFJvdW5kc1BlclllYXI6IHVpbnQxMjggPSBjdXJyZW50QmluU2l6ZSAqICgzNjUgYXMgdWludDEyOCkKCWZyYW1lX2RpZyAwIC8vIGN1cnJlbnRCaW5TaXplOiB1bnNhZmUgdWludDEyOAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNmQKCWIqCglkdXAKCWJpdGxlbgoJaW50YyA2IC8vIDEyOAoJPD0KCgkvLyBjdXJyZW50QmluU2l6ZSAqICgzNjUgYXMgdWludDEyOCkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlYyA4IC8vIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnRjIDUgLy8gMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWZyYW1lX2J1cnkgMSAvLyBhcHByb3hSb3VuZHNQZXJZZWFyOiB1aW50MTI4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5OAoJLy8gYXZnU3Rha2U6IHVpbnQxMjggPSB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgLyBjdXJyZW50QmluU2l6ZQoJYnl0ZWMgNyAvLyAgInN0YWtlQWNjdW11bGF0b3IiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDAgLy8gY3VycmVudEJpblNpemU6IHVuc2FmZSB1aW50MTI4CgliLwoJZHVwCgliaXRsZW4KCWludGMgNiAvLyAxMjgKCTw9CgoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlIC8gY3VycmVudEJpblNpemUgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlYyA4IC8vIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnRjIDUgLy8gMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWZyYW1lX2J1cnkgMiAvLyBhdmdTdGFrZTogdWludDEyOAoKCS8vICppZjUwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5OQoJLy8gYXZnU3Rha2UgIT09IDAKCWZyYW1lX2RpZyAyIC8vIGF2Z1N0YWtlOiB1aW50MTI4CglieXRlYyAxNiAvLyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCgliIT0KCWJ6ICppZjUwX2VuZAoKCS8vICppZjUwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDAzCgkvLyBhcHI6IHVpbnQxMjggPQoJLy8gICAgICAgICAgICgoKHRoaXMucmV3YXJkQWNjdW11bGF0b3IudmFsdWUgYXMgdWludDEyOCkgKiAoMTAwMDAgYXMgdWludDEyOCkpIC8gYXZnU3Rha2UpICoKCS8vICAgICAgICAgICAoYXBwcm94Um91bmRzUGVyWWVhciAvIGN1cnJlbnRCaW5TaXplKQoJYnl0ZWMgMTIgLy8gICJyZXdhcmRBY2N1bXVsYXRvciIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjcxMAoJYioKCWZyYW1lX2RpZyAyIC8vIGF2Z1N0YWtlOiB1aW50MTI4CgliLwoJZnJhbWVfZGlnIDEgLy8gYXBwcm94Um91bmRzUGVyWWVhcjogdWludDEyOAoJZnJhbWVfZGlnIDAgLy8gY3VycmVudEJpblNpemU6IHVuc2FmZSB1aW50MTI4CgliLwoJYioKCWR1cAoJYml0bGVuCglpbnRjIDYgLy8gMTI4Cgk8PQoKCS8vICgoKHRoaXMucmV3YXJkQWNjdW11bGF0b3IudmFsdWUgYXMgdWludDEyOCkgKiAoMTAwMDAgYXMgdWludDEyOCkpIC8gYXZnU3Rha2UpICpcbiAgICAgICAgICAoYXBwcm94Um91bmRzUGVyWWVhciAvIGN1cnJlbnRCaW5TaXplKSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGVjIDggLy8gMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludGMgNSAvLyAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJZnJhbWVfYnVyeSAzIC8vIGFwcjogdWludDEyOAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDA3CgkvLyBhbHBoYTogdWludDEyOCA9IDEwIGFzIHVpbnQxMjgKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBhCglmcmFtZV9idXJ5IDQgLy8gYWxwaGE6IHVuc2FmZSB1aW50MTI4CgoJLy8gKmlmNTFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAwOQoJLy8gYXZnU3Rha2UgPiAzMDAwMDAwMDAwMDAKCWZyYW1lX2RpZyAyIC8vIGF2Z1N0YWtlOiB1aW50MTI4CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDVkOTY0YjgwMAoJYj4KCWJ6ICppZjUxX2VuZAoKCS8vICppZjUxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDEwCgkvLyBhbHBoYSA9IDkwIGFzIHVpbnQxMjgKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVhCglmcmFtZV9idXJ5IDQgLy8gYWxwaGE6IHVuc2FmZSB1aW50MTI4CgoqaWY1MV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAxMgoJLy8gdGhpcy53ZWlnaHRlZE1vdmluZ0F2ZXJhZ2UudmFsdWUgPQoJLy8gICAgICAgICAgICh0aGlzLndlaWdodGVkTW92aW5nQXZlcmFnZS52YWx1ZSAqICgoMTAwIGFzIHVpbnQxMjgpIC0gYWxwaGEpKSAvICgxMDAgYXMgdWludDEyOCkgKwoJLy8gICAgICAgICAgIChhcHIgKiBhbHBoYSkgLyAoMTAwIGFzIHVpbnQxMjgpCglieXRlYyAyMCAvLyAgImV3bWEiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglieXRlYyAxNyAvLyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY0CglmcmFtZV9kaWcgNCAvLyBhbHBoYTogdW5zYWZlIHVpbnQxMjgKCWItCgliKgoJYnl0ZWMgMTcgLy8gMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAoJYi8KCWZyYW1lX2RpZyAzIC8vIGFwcjogdWludDEyOAoJZnJhbWVfZGlnIDQgLy8gYWxwaGE6IHVuc2FmZSB1aW50MTI4CgliKgoJYnl0ZWMgMTcgLy8gMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAoJYi8KCWIrCglkdXAKCWJpdGxlbgoJaW50YyA2IC8vIDEyOAoJPD0KCgkvLyAodGhpcy53ZWlnaHRlZE1vdmluZ0F2ZXJhZ2UudmFsdWUgKiAoKDEwMCBhcyB1aW50MTI4KSAtIGFscGhhKSkgLyAoMTAwIGFzIHVpbnQxMjgpICtcbiAgICAgICAgICAoYXByICogYWxwaGEpIC8gKDEwMCBhcyB1aW50MTI4KSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGVjIDggLy8gMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludGMgNSAvLyAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJYXBwX2dsb2JhbF9wdXQKCippZjUwX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDE4CgkvLyB0aGlzLnNldFJvdW5kc1BlckRheSgpCgljYWxsc3ViIHNldFJvdW5kc1BlckRheQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDE5CgkvLyB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgPSAodGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgYXMgdWludDEyOCkgKiAodGhpcy5yb3VuZHNQZXJEYXkudmFsdWUgYXMgdWludDEyOCkKCWJ5dGVjIDcgLy8gICJzdGFrZUFjY3VtdWxhdG9yIgoJYnl0ZWMgNiAvLyAgInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglieXRlYyAxMCAvLyAgInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCgliKgoJZHVwCgliaXRsZW4KCWludGMgNiAvLyAxMjgKCTw9CgoJLy8gKHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlIGFzIHVpbnQxMjgpICogKHRoaXMucm91bmRzUGVyRGF5LnZhbHVlIGFzIHVpbnQxMjgpIG92ZXJmbG93ZWQgMTI4IGJpdHMKCWFzc2VydAoJYnl0ZWMgOCAvLyAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50YyA1IC8vIDE2CgktCglzd2FwCglzdWJzdHJpbmczCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDIwCgkvLyB0aGlzLnJld2FyZEFjY3VtdWxhdG9yLnZhbHVlID0gMAoJYnl0ZWMgMTIgLy8gICJyZXdhcmRBY2N1bXVsYXRvciIKCWludGMgMCAvLyAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDIxCgkvLyB0aGlzLmJpblJvdW5kU3RhcnQudmFsdWUgPSBnbG9iYWxzLnJvdW5kIC0gKGdsb2JhbHMucm91bmQgJSB0aGlzLnJvdW5kc1BlckRheS52YWx1ZSkKCWJ5dGVjIDExIC8vICAiYmluUm91bmRTdGFydCIKCWdsb2JhbCBSb3VuZAoJZ2xvYmFsIFJvdW5kCglieXRlYyAxMCAvLyAgInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CgklCgktCglhcHBfZ2xvYmFsX3B1dAoKKmlmNDhfZW5kOgoJcmV0c3ViCgovLyBzZXRSb3VuZHNQZXJEYXkoKTogdm9pZApzZXRSb3VuZHNQZXJEYXk6Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAyNgoJLy8gdGhpcy5yb3VuZHNQZXJEYXkudmFsdWUgPSBBVkdfUk9VTkRTX1BFUl9EQVkKCWJ5dGVjIDEwIC8vICAicm91bmRzUGVyRGF5IgoJcHVzaGludCAzMDg1NwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4NTllOTBhYTYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbih1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDMxNzJjYTlkIC8vIG1ldGhvZCAiZ2FzKCl2b2lkIgoJcHVzaGJ5dGVzIDB4NDdjZmNjMDQgLy8gbWV0aG9kICJpbml0U3RvcmFnZShwYXkpdm9pZCIKCXB1c2hieXRlcyAweGY5YzcwY2JkIC8vIG1ldGhvZCAiYWRkU3Rha2UocGF5LGFkZHJlc3MpdWludDY0IgoJcHVzaGJ5dGVzIDB4NDIxYjVhYmUgLy8gbWV0aG9kICJyZW1vdmVTdGFrZShhZGRyZXNzLHVpbnQ2NCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZjU4OTJkNTYgLy8gbWV0aG9kICJjbGFpbVRva2Vucygpdm9pZCIKCXB1c2hieXRlcyAweDVjZmJiMDU3IC8vIG1ldGhvZCAiZ2V0U3Rha2VySW5mbyhhZGRyZXNzKShhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkiCglwdXNoYnl0ZXMgMHg2M2YzZjI4YiAvLyBtZXRob2QgInBheVRva2VuUmV3YXJkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCl2b2lkIgoJcHVzaGJ5dGVzIDB4ODZhMzcyNWMgLy8gbWV0aG9kICJ1cGRhdGVBbGdvZFZlcihzdHJpbmcpdm9pZCIKCXB1c2hieXRlcyAweGVmYzI2MDhkIC8vIG1ldGhvZCAiZXBvY2hCYWxhbmNlVXBkYXRlKCl2b2lkIgoJcHVzaGJ5dGVzIDB4NDAwZTE0ZmIgLy8gbWV0aG9kICJnb09ubGluZShwYXksYnl0ZVtdLGJ5dGVbXSxieXRlW10sdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweDUxZWYzYjIxIC8vIG1ldGhvZCAiZ29PZmZsaW5lKCl2b2lkIgoJcHVzaGJ5dGVzIDB4YTI0ZTI3MTcgLy8gbWV0aG9kICJsaW5rVG9ORkQodWludDY0LHN0cmluZyl2b2lkIgoJYnl0ZWMgMjUgLy8gIG1ldGhvZCAicHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0WzI0XSx1aW50NjQpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9nYXMgKmFiaV9yb3V0ZV9pbml0U3RvcmFnZSAqYWJpX3JvdXRlX2FkZFN0YWtlICphYmlfcm91dGVfcmVtb3ZlU3Rha2UgKmFiaV9yb3V0ZV9jbGFpbVRva2VucyAqYWJpX3JvdXRlX2dldFN0YWtlckluZm8gKmFiaV9yb3V0ZV9wYXlUb2tlblJld2FyZCAqYWJpX3JvdXRlX3VwZGF0ZUFsZ29kVmVyICphYmlfcm91dGVfZXBvY2hCYWxhbmNlVXBkYXRlICphYmlfcm91dGVfZ29PbmxpbmUgKmFiaV9yb3V0ZV9nb09mZmxpbmUgKmFiaV9yb3V0ZV9saW5rVG9ORkQgKmFiaV9yb3V0ZV9wcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKmNhbGxfVXBkYXRlQXBwbGljYXRpb246CglwdXNoYnl0ZXMgMHg0NmY3NjUzMyAvLyBtZXRob2QgInVwZGF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91cGRhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIFVwZGF0ZUFwcGxpY2F0aW9uCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/reti/artifacts/StakingPool.arc56_draft.json b/examples/reti/artifacts/StakingPool.arc56_draft.json index 70690f28a..c9d66c36b 100644 --- a/examples/reti/artifacts/StakingPool.arc56_draft.json +++ b/examples/reti/artifacts/StakingPool.arc56_draft.json @@ -503,7 +503,7 @@ "approval": { "sourceInfo": [ { - "teal": 11, + "teal": 15, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ 1, @@ -511,61 +511,49 @@ ] }, { - "teal": 12, + "teal": 16, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 3, - 4 + 3 ] }, { - "teal": 19, + "teal": 17, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 5, - 6 + 4 ] }, { - "teal": 20, + "teal": 18, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 7 + 5 ] }, { - "teal": 21, + "teal": 19, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 8 + 6, + 7 ] }, { - "teal": 22, + "teal": 20, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 9 + 8 ] }, { - "teal": 23, + "teal": 21, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ + 9, 10, - 11 - ] - }, - { - "teal": 24, - "source": "examples/reti/stakingPool.algo.ts:38", - "pc": [ - 12 - ] - }, - { - "teal": 25, - "source": "examples/reti/stakingPool.algo.ts:38", - "pc": [ + 11, + 12, 13, 14, 15, @@ -587,65 +575,65 @@ 31, 32, 33, - 34, - 35, - 36, - 37, - 38 + 34 ] }, { - "teal": 29, + "teal": 25, "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": [ - 39 + 35 ] }, { - "teal": 34, + "teal": 30, "source": "examples/reti/stakingPool.algo.ts:93", "pc": [ - 40, - 41, - 42 + 36, + 37, + 38 ] }, { - "teal": 35, + "teal": 31, "source": "examples/reti/stakingPool.algo.ts:93", "pc": [ - 43 + 39 ] }, { - "teal": 36, + "teal": 32, "source": "examples/reti/stakingPool.algo.ts:93", "pc": [ - 44 + 40 ] }, { - "teal": 40, + "teal": 36, "source": "examples/reti/stakingPool.algo.ts:93", "pc": [ - 45, - 46, - 47 + 41, + 42, + 43 ] }, { - "teal": 47, + "teal": 43, "source": "examples/reti/stakingPool.algo.ts:95", "pc": [ - 48, - 49 + 44, + 45 ] }, { - "teal": 48, + "teal": 44, "source": "examples/reti/stakingPool.algo.ts:95", "pc": [ + 46, + 47, + 48, + 49, 50, 51, 52, @@ -675,31 +663,43 @@ 76, 77, 78, - 79, - 80, - 81, - 82, - 83 + 79 ] }, { - "teal": 49, + "teal": 45, "source": "examples/reti/stakingPool.algo.ts:95", "pc": [ - 84 + 80 ] }, { - "teal": 52, + "teal": 48, "source": "examples/reti/stakingPool.algo.ts:94", "errorMessage": "Temporary: contract is upgradeable but only during testing and only from a development account", "pc": [ - 85 + 81 ] }, { - "teal": 53, + "teal": 49, "source": "examples/reti/stakingPool.algo.ts:93", + "pc": [ + 82 + ] + }, + { + "teal": 54, + "source": "examples/reti/stakingPool.algo.ts:107", + "pc": [ + 83, + 84, + 85 + ] + }, + { + "teal": 55, + "source": "examples/reti/stakingPool.algo.ts:107", "pc": [ 86 ] @@ -769,720 +769,720 @@ ] }, { - "teal": 74, + "teal": 72, "source": "examples/reti/stakingPool.algo.ts:107", "pc": [ - 103, - 104, - 105 + 103 ] }, { - "teal": 75, + "teal": 82, "source": "examples/reti/stakingPool.algo.ts:107", "pc": [ + 104, + 105, 106 ] }, { - "teal": 76, - "source": "examples/reti/stakingPool.algo.ts:107", - "pc": [ - 107 - ] - }, - { - "teal": 86, - "source": "examples/reti/stakingPool.algo.ts:107", - "pc": [ - 108, - 109, - 110 - ] - }, - { - "teal": 91, + "teal": 87, "source": "examples/reti/stakingPool.algo.ts:108", "pc": [ - 111, - 112 + 107, + 108 ] }, { - "teal": 92, + "teal": 88, "source": "examples/reti/stakingPool.algo.ts:108", "pc": [ - 113 + 109 ] }, { - "teal": 93, + "teal": 89, "source": "examples/reti/stakingPool.algo.ts:108", "pc": [ - 114 + 110 ] }, { - "teal": 94, + "teal": 90, "source": "examples/reti/stakingPool.algo.ts:108", "pc": [ - 115, - 116, - 117 + 111, + 112, + 113 ] }, { - "teal": 99, + "teal": 95, "source": "examples/reti/stakingPool.algo.ts:110", "pc": [ - 118, - 119 + 114, + 115 ] }, { - "teal": 100, + "teal": 96, "source": "examples/reti/stakingPool.algo.ts:110", "pc": [ - 120 + 116 ] }, { - "teal": 101, + "teal": 97, "source": "examples/reti/stakingPool.algo.ts:110", "pc": [ - 121 + 117 ] }, { - "teal": 102, + "teal": 98, "source": "examples/reti/stakingPool.algo.ts:110", "pc": [ - 122 + 118 ] }, { - "teal": 106, + "teal": 102, "source": "examples/reti/stakingPool.algo.ts:111", "pc": [ - 123, - 124 + 119, + 120 ] }, { - "teal": 107, + "teal": 103, "source": "examples/reti/stakingPool.algo.ts:111", "pc": [ - 125 + 121 ] }, { - "teal": 108, + "teal": 104, "source": "examples/reti/stakingPool.algo.ts:111", "pc": [ - 126 + 122 ] }, { - "teal": 109, + "teal": 105, "source": "examples/reti/stakingPool.algo.ts:111", "pc": [ - 127 + 123 ] }, { - "teal": 110, + "teal": 106, "source": "examples/reti/stakingPool.algo.ts:108", "pc": [ - 128, - 129, - 130 + 124, + 125, + 126 ] }, { - "teal": 115, + "teal": 111, "source": "examples/reti/stakingPool.algo.ts:113", "pc": [ - 131, - 132 + 127, + 128 ] }, { - "teal": 116, + "teal": 112, "source": "examples/reti/stakingPool.algo.ts:113", "pc": [ - 133 + 129 ] }, { - "teal": 117, + "teal": 113, "source": "examples/reti/stakingPool.algo.ts:113", "pc": [ - 134 + 130 ] }, { - "teal": 118, + "teal": 114, "source": "examples/reti/stakingPool.algo.ts:113", "pc": [ - 135 + 131 ] }, { - "teal": 122, + "teal": 118, "source": "examples/reti/stakingPool.algo.ts:114", "pc": [ - 136, - 137 + 132, + 133 ] }, { - "teal": 123, + "teal": 119, "source": "examples/reti/stakingPool.algo.ts:114", "pc": [ - 138 + 134 ] }, { - "teal": 124, + "teal": 120, "source": "examples/reti/stakingPool.algo.ts:114", "pc": [ - 139 + 135 ] }, { - "teal": 125, + "teal": 121, "source": "examples/reti/stakingPool.algo.ts:114", "pc": [ - 140 + 136 ] }, { - "teal": 130, + "teal": 126, "source": "examples/reti/stakingPool.algo.ts:116", "pc": [ - 141, - 142 + 137, + 138 ] }, { - "teal": 131, + "teal": 127, "source": "examples/reti/stakingPool.algo.ts:116", "pc": [ - 143, - 144, - 145, - 146 + 139, + 140, + 141, + 142 ] }, { - "teal": 132, + "teal": 128, "source": "examples/reti/stakingPool.algo.ts:116", "pc": [ - 147 + 143 ] }, { - "teal": 135, + "teal": 131, "source": "examples/reti/stakingPool.algo.ts:116", "errorMessage": "staking pool must have minimum entry of 1 algo", "pc": [ - 148 + 144 ] }, { - "teal": 139, + "teal": 135, "source": "examples/reti/stakingPool.algo.ts:117", "pc": [ - 149 + 145 ] }, { - "teal": 140, + "teal": 136, "source": "examples/reti/stakingPool.algo.ts:117", "pc": [ - 150, - 151 + 146, + 147 ] }, { - "teal": 141, + "teal": 137, "source": "examples/reti/stakingPool.algo.ts:117", "pc": [ - 152 + 148 ] }, { - "teal": 145, + "teal": 141, "source": "examples/reti/stakingPool.algo.ts:118", "pc": [ - 153 + 149 ] }, { - "teal": 146, + "teal": 142, "source": "examples/reti/stakingPool.algo.ts:118", "pc": [ - 154, - 155 + 150, + 151 ] }, { - "teal": 147, + "teal": 143, "source": "examples/reti/stakingPool.algo.ts:118", "pc": [ - 156 + 152 ] }, { - "teal": 151, + "teal": 147, "source": "examples/reti/stakingPool.algo.ts:119", "pc": [ - 157, - 158 + 153, + 154 ] }, { - "teal": 152, + "teal": 148, "source": "examples/reti/stakingPool.algo.ts:119", "pc": [ - 159, - 160 + 155, + 156 ] }, { - "teal": 153, + "teal": 149, "source": "examples/reti/stakingPool.algo.ts:119", "pc": [ - 161 + 157 ] }, { - "teal": 157, + "teal": 153, "source": "examples/reti/stakingPool.algo.ts:120", "pc": [ - 162, - 163 + 158, + 159 ] }, { - "teal": 158, + "teal": 154, "source": "examples/reti/stakingPool.algo.ts:120", "pc": [ - 164 + 160 ] }, { - "teal": 159, + "teal": 155, "source": "examples/reti/stakingPool.algo.ts:120", "pc": [ - 165 + 161 ] }, { - "teal": 163, + "teal": 159, "source": "examples/reti/stakingPool.algo.ts:121", "pc": [ - 166, - 167 + 162, + 163 ] }, { - "teal": 164, + "teal": 160, "source": "examples/reti/stakingPool.algo.ts:121", "pc": [ - 168 + 164 ] }, { - "teal": 165, + "teal": 161, "source": "examples/reti/stakingPool.algo.ts:121", "pc": [ - 169 + 165 ] }, { - "teal": 169, + "teal": 165, "source": "examples/reti/stakingPool.algo.ts:122", "pc": [ - 170, - 171 + 166, + 167 ] }, { - "teal": 170, + "teal": 166, "source": "examples/reti/stakingPool.algo.ts:122", "pc": [ - 172, - 173 + 168, + 169 ] }, { - "teal": 171, + "teal": 167, "source": "examples/reti/stakingPool.algo.ts:122", "pc": [ - 174 + 170 ] }, { - "teal": 175, + "teal": 171, "source": "examples/reti/stakingPool.algo.ts:123", "pc": [ - 175, - 176 + 171, + 172 ] }, { - "teal": 176, + "teal": 172, "source": "examples/reti/stakingPool.algo.ts:123", "pc": [ - 177, - 178 + 173, + 174 ] }, { - "teal": 177, + "teal": 173, "source": "examples/reti/stakingPool.algo.ts:123", "pc": [ - 179 + 175 ] }, { - "teal": 181, + "teal": 177, "source": "examples/reti/stakingPool.algo.ts:124", "pc": [ - 180, - 181 + 176, + 177 ] }, { - "teal": 182, + "teal": 178, "source": "examples/reti/stakingPool.algo.ts:124", "pc": [ - 182 + 178 ] }, { - "teal": 183, + "teal": 179, "source": "examples/reti/stakingPool.algo.ts:124", "pc": [ - 183 + 179 ] }, { - "teal": 187, + "teal": 183, "source": "examples/reti/stakingPool.algo.ts:126", "pc": [ - 184, - 185, - 186 + 180, + 181, + 182 ] }, { - "teal": 191, + "teal": 187, "source": "examples/reti/stakingPool.algo.ts:127", "pc": [ - 187, - 188 + 183, + 184 ] }, { - "teal": 192, + "teal": 188, "source": "examples/reti/stakingPool.algo.ts:127", "pc": [ - 189, - 190 + 185, + 186 ] }, { - "teal": 193, + "teal": 189, "source": "examples/reti/stakingPool.algo.ts:127", "pc": [ - 191, - 192 + 187, + 188 ] }, { - "teal": 194, + "teal": 190, "source": "examples/reti/stakingPool.algo.ts:127", "pc": [ - 193, - 194 + 189, + 190 ] }, { - "teal": 195, + "teal": 191, "source": "examples/reti/stakingPool.algo.ts:127", "pc": [ - 195 + 191 ] }, { - "teal": 196, + "teal": 192, "source": "examples/reti/stakingPool.algo.ts:127", "pc": [ - 196 + 192 ] }, { - "teal": 197, + "teal": 193, "source": "examples/reti/stakingPool.algo.ts:127", "pc": [ - 197 + 193 ] }, { - "teal": 198, + "teal": 194, "source": "examples/reti/stakingPool.algo.ts:127", "pc": [ - 198 + 194 ] }, { - "teal": 202, + "teal": 198, "source": "examples/reti/stakingPool.algo.ts:128", "pc": [ - 199, - 200 + 195, + 196 ] }, { - "teal": 203, + "teal": 199, "source": "examples/reti/stakingPool.algo.ts:128", "pc": [ - 201, - 202 + 197, + 198 ] }, { - "teal": 204, + "teal": 200, "source": "examples/reti/stakingPool.algo.ts:128", "pc": [ - 203 + 199 ] }, { - "teal": 208, + "teal": 204, "source": "examples/reti/stakingPool.algo.ts:129", "pc": [ - 204, - 205 + 200, + 201 ] }, { - "teal": 209, + "teal": 205, "source": "examples/reti/stakingPool.algo.ts:129", "pc": [ - 206 + 202 ] }, { - "teal": 210, + "teal": 206, "source": "examples/reti/stakingPool.algo.ts:129", "pc": [ - 207 + 203 ] }, { - "teal": 214, + "teal": 210, "source": "examples/reti/stakingPool.algo.ts:130", "pc": [ - 208, - 209 + 204, + 205 ] }, { - "teal": 215, + "teal": 211, "source": "examples/reti/stakingPool.algo.ts:130", "pc": [ - 210, - 211 + 206, + 207 ] }, { - "teal": 216, + "teal": 212, "source": "examples/reti/stakingPool.algo.ts:130", "pc": [ - 212 + 208 ] }, { - "teal": 217, + "teal": 213, "source": "examples/reti/stakingPool.algo.ts:107", "pc": [ - 213 + 209 ] }, { - "teal": 222, + "teal": 218, "source": "examples/reti/stakingPool.algo.ts:136", "pc": [ - 214, - 215, - 216 + 210, + 211, + 212 ] }, { - "teal": 223, + "teal": 219, "source": "examples/reti/stakingPool.algo.ts:136", "pc": [ - 217 + 213 ] }, { - "teal": 224, + "teal": 220, "source": "examples/reti/stakingPool.algo.ts:136", "pc": [ - 218 + 214 ] }, { - "teal": 230, + "teal": 226, "source": "examples/reti/stakingPool.algo.ts:136", "pc": [ - 219, - 220, - 221 + 215, + 216, + 217 ] }, { - "teal": 231, + "teal": 227, "source": "examples/reti/stakingPool.algo.ts:136", "pc": [ - 222 + 218 ] }, { - "teal": 235, + "teal": 231, "source": "examples/reti/stakingPool.algo.ts:138", "pc": [ - 223, - 224, - 225 + 219, + 220, + 221 ] }, { - "teal": 239, + "teal": 235, "source": "examples/reti/stakingPool.algo.ts:142", "pc": [ - 226, - 227, - 228 + 222, + 223, + 224 ] }, { - "teal": 240, + "teal": 236, "source": "examples/reti/stakingPool.algo.ts:142", "pc": [ - 229, - 230 + 225, + 226 ] }, { - "teal": 241, + "teal": 237, "source": "examples/reti/stakingPool.algo.ts:142", "pc": [ - 231, - 232 + 227, + 228 ] }, { - "teal": 242, + "teal": 238, "source": "examples/reti/stakingPool.algo.ts:142", "pc": [ - 233 + 229 ] }, { - "teal": 243, + "teal": 239, "source": "examples/reti/stakingPool.algo.ts:142", "pc": [ - 234 + 230 ] }, { - "teal": 244, + "teal": 240, "source": "examples/reti/stakingPool.algo.ts:138", "pc": [ - 235 + 231 ] }, { - "teal": 249, + "teal": 245, "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 236, - 237 + 232, + 233 ] }, { - "teal": 250, + "teal": 246, "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 238 + 234 ] }, { - "teal": 251, + "teal": 247, "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 239 + 235 ] }, { - "teal": 252, + "teal": 248, "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 240 + 236 + ] + }, + { + "teal": 249, + "source": "examples/reti/stakingPool.algo.ts:152", + "pc": [ + 237, + 238 + ] + }, + { + "teal": 250, + "source": "examples/reti/stakingPool.algo.ts:152", + "pc": [ + 239 ] }, { - "teal": 253, + "teal": 251, "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 241, - 242 + 240 ] }, { "teal": 254, "source": "examples/reti/stakingPool.algo.ts:152", + "errorMessage": "argument 0 (mbrPayment) for initStorage must be a pay transaction", "pc": [ - 243 + 241 ] }, { - "teal": 255, + "teal": 257, "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ + 242, + 243, 244 ] }, { "teal": 258, "source": "examples/reti/stakingPool.algo.ts:152", - "errorMessage": "argument 0 (mbrPayment) for initStorage must be a pay transaction", "pc": [ 245 ] }, { - "teal": 261, + "teal": 259, "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 246, - 247, - 248 + 246 ] }, { - "teal": 262, + "teal": 269, "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ + 247, + 248, 249 ] }, { - "teal": 263, + "teal": 272, "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ 250 @@ -1493,84 +1493,84 @@ "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ 251, - 252, - 253 + 252 ] }, { - "teal": 276, - "source": "examples/reti/stakingPool.algo.ts:152", + "teal": 277, + "source": "examples/reti/stakingPool.algo.ts:153", "pc": [ - 254 + 253 ] }, { - "teal": 277, - "source": "examples/reti/stakingPool.algo.ts:152", + "teal": 278, + "source": "examples/reti/stakingPool.algo.ts:153", "pc": [ - 255, - 256 + 254 ] }, { - "teal": 281, + "teal": 279, "source": "examples/reti/stakingPool.algo.ts:153", "pc": [ - 257 + 255 ] }, { - "teal": 282, + "teal": 280, "source": "examples/reti/stakingPool.algo.ts:153", "pc": [ - 258 + 256 ] }, { - "teal": 283, + "teal": 281, "source": "examples/reti/stakingPool.algo.ts:153", "pc": [ - 259 + 257 ] }, { "teal": 284, "source": "examples/reti/stakingPool.algo.ts:153", + "errorMessage": "staking pool already initialized", "pc": [ - 260 + 258 ] }, { - "teal": 285, - "source": "examples/reti/stakingPool.algo.ts:153", + "teal": 291, + "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 261 + 259 ] }, { - "teal": 288, - "source": "examples/reti/stakingPool.algo.ts:153", - "errorMessage": "staking pool already initialized", + "teal": 292, + "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 262 + 260 ] }, { - "teal": 295, + "teal": 293, "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 263 + 261, + 262 ] }, { - "teal": 296, + "teal": 294, "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ + 263, 264 ] }, { - "teal": 297, + "teal": 295, "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ 265, @@ -1578,96 +1578,102 @@ ] }, { - "teal": 298, - "source": "examples/reti/stakingPool.algo.ts:156", + "teal": 299, + "source": "examples/reti/stakingPool.algo.ts:157", + "pc": [ + 267 + ] + }, + { + "teal": 300, + "source": "examples/reti/stakingPool.algo.ts:157", "pc": [ - 267, 268 ] }, { - "teal": 299, - "source": "examples/reti/stakingPool.algo.ts:156", + "teal": 301, + "source": "examples/reti/stakingPool.algo.ts:157", "pc": [ 269, 270 ] }, { - "teal": 303, - "source": "examples/reti/stakingPool.algo.ts:157", + "teal": 305, + "source": "examples/reti/stakingPool.algo.ts:158", "pc": [ 271 ] }, { - "teal": 304, - "source": "examples/reti/stakingPool.algo.ts:157", + "teal": 306, + "source": "examples/reti/stakingPool.algo.ts:158", "pc": [ 272 ] }, { - "teal": 305, - "source": "examples/reti/stakingPool.algo.ts:157", + "teal": 307, + "source": "examples/reti/stakingPool.algo.ts:158", "pc": [ - 273, - 274 + 273 ] }, { - "teal": 309, + "teal": 308, "source": "examples/reti/stakingPool.algo.ts:158", "pc": [ + 274, 275 ] }, { - "teal": 310, - "source": "examples/reti/stakingPool.algo.ts:158", + "teal": 311, + "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ 276 ] }, { - "teal": 311, - "source": "examples/reti/stakingPool.algo.ts:158", + "teal": 312, + "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 277 + 277, + 278 ] }, { - "teal": 312, - "source": "examples/reti/stakingPool.algo.ts:158", + "teal": 315, + "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 278, 279 ] }, { - "teal": 315, + "teal": 316, "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 280 + 280, + 281 ] }, { - "teal": 316, + "teal": 317, "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 281, 282 ] }, { - "teal": 319, + "teal": 318, "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ 283 ] }, { - "teal": 320, + "teal": 319, "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ 284, @@ -1675,140 +1681,134 @@ ] }, { - "teal": 321, - "source": "examples/reti/stakingPool.algo.ts:156", - "pc": [ - 286 - ] - }, - { - "teal": 322, + "teal": 320, "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 287 + 286, + 287, + 288 ] }, { - "teal": 323, + "teal": 321, "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 288, - 289 + 289, + 290 ] }, { - "teal": 324, - "source": "examples/reti/stakingPool.algo.ts:156", + "teal": 325, + "source": "examples/reti/stakingPool.algo.ts:160", "pc": [ - 290, 291, 292 ] }, { - "teal": 325, - "source": "examples/reti/stakingPool.algo.ts:156", + "teal": 326, + "source": "examples/reti/stakingPool.algo.ts:160", "pc": [ 293, - 294 + 294, + 295 ] }, { - "teal": 329, + "teal": 327, "source": "examples/reti/stakingPool.algo.ts:160", "pc": [ - 295, 296 ] }, { - "teal": 330, + "teal": 328, "source": "examples/reti/stakingPool.algo.ts:160", "pc": [ - 297, - 298, - 299 + 297 ] }, { - "teal": 331, + "teal": 329, "source": "examples/reti/stakingPool.algo.ts:160", "pc": [ - 300 + 298 ] }, { - "teal": 332, + "teal": 330, "source": "examples/reti/stakingPool.algo.ts:160", "pc": [ - 301 + 299, + 300 ] }, { - "teal": 333, - "source": "examples/reti/stakingPool.algo.ts:160", + "teal": 334, + "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ + 301, 302 ] }, { - "teal": 334, - "source": "examples/reti/stakingPool.algo.ts:160", + "teal": 335, + "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 303, - 304 + 303 ] }, { - "teal": 338, + "teal": 336, "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ + 304, 305, 306 ] }, { - "teal": 339, + "teal": 337, "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 307 + 307, + 308 ] }, { - "teal": 340, + "teal": 338, "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 308, - 309, - 310 + 309 ] }, { - "teal": 341, + "teal": 339, "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 311, - 312 + 310 ] }, { - "teal": 342, + "teal": 340, "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 313 + 311 ] }, { - "teal": 343, + "teal": 341, "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 314 + 312 ] }, { "teal": 344, "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ + 313, + 314, 315 ] }, @@ -1816,108 +1816,108 @@ "teal": 345, "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 316 + 316, + 317 ] }, { - "teal": 348, + "teal": 346, "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 317, 318, - 319 + 319, + 320 ] }, { "teal": 349, "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 320, 321 ] }, { - "teal": 350, + "teal": 352, "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ 322, - 323, - 324 + 323 ] }, { - "teal": 353, - "source": "examples/reti/stakingPool.algo.ts:161", + "teal": 359, + "source": "examples/reti/stakingPool.algo.ts:163", "pc": [ + 324, 325 ] }, { - "teal": 356, - "source": "examples/reti/stakingPool.algo.ts:161", + "teal": 360, + "source": "examples/reti/stakingPool.algo.ts:164", "pc": [ 326, 327 ] }, { - "teal": 363, + "teal": 361, "source": "examples/reti/stakingPool.algo.ts:163", "pc": [ - 328, - 329 + 328 ] }, { - "teal": 364, - "source": "examples/reti/stakingPool.algo.ts:164", + "teal": 362, + "source": "examples/reti/stakingPool.algo.ts:165", "pc": [ + 329, 330, 331 ] }, { - "teal": 365, - "source": "examples/reti/stakingPool.algo.ts:163", + "teal": 363, + "source": "examples/reti/stakingPool.algo.ts:165", "pc": [ - 332 + 332, + 333, + 334 ] }, { - "teal": 366, - "source": "examples/reti/stakingPool.algo.ts:165", + "teal": 364, + "source": "examples/reti/stakingPool.algo.ts:164", "pc": [ - 333, - 334, 335 ] }, { - "teal": 367, - "source": "examples/reti/stakingPool.algo.ts:165", + "teal": 365, + "source": "examples/reti/stakingPool.algo.ts:162", "pc": [ 336, - 337, - 338 + 337 ] }, { - "teal": 368, - "source": "examples/reti/stakingPool.algo.ts:164", + "teal": 370, + "source": "examples/reti/stakingPool.algo.ts:168", "pc": [ + 338, 339 ] }, { - "teal": 369, - "source": "examples/reti/stakingPool.algo.ts:162", + "teal": 371, + "source": "examples/reti/stakingPool.algo.ts:168", "pc": [ 340, 341 ] }, { - "teal": 374, + "teal": 372, "source": "examples/reti/stakingPool.algo.ts:168", "pc": [ 342, @@ -1925,38 +1925,38 @@ ] }, { - "teal": 375, + "teal": 373, "source": "examples/reti/stakingPool.algo.ts:168", "pc": [ - 344, - 345 + 344 ] }, { "teal": 376, "source": "examples/reti/stakingPool.algo.ts:168", + "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", "pc": [ - 346, - 347 + 345 ] }, { - "teal": 377, + "teal": 379, "source": "examples/reti/stakingPool.algo.ts:168", "pc": [ - 348 + 346, + 347 ] }, { "teal": 380, "source": "examples/reti/stakingPool.algo.ts:168", - "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", "pc": [ + 348, 349 ] }, { - "teal": 383, + "teal": 381, "source": "examples/reti/stakingPool.algo.ts:168", "pc": [ 350, @@ -1964,283 +1964,290 @@ ] }, { - "teal": 384, + "teal": 382, "source": "examples/reti/stakingPool.algo.ts:168", "pc": [ - 352, - 353 + 352 ] }, { "teal": 385, "source": "examples/reti/stakingPool.algo.ts:168", + "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"PoolInitMbr\"}", "pc": [ - 354, - 355 + 353 ] }, { - "teal": 386, - "source": "examples/reti/stakingPool.algo.ts:168", + "teal": 389, + "source": "examples/reti/stakingPool.algo.ts:169", "pc": [ - 356 + 354 ] }, { - "teal": 389, - "source": "examples/reti/stakingPool.algo.ts:168", - "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"PoolInitMbr\"}", + "teal": 390, + "source": "examples/reti/stakingPool.algo.ts:169", "pc": [ + 355, + 356, 357 ] }, { - "teal": 393, + "teal": 391, "source": "examples/reti/stakingPool.algo.ts:169", "pc": [ 358 ] }, { - "teal": 394, + "teal": 392, "source": "examples/reti/stakingPool.algo.ts:169", "pc": [ - 359, - 360, - 361 + 359 ] }, { - "teal": 395, - "source": "examples/reti/stakingPool.algo.ts:169", + "teal": 397, + "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ - 362 + 360, + 361 ] }, { - "teal": 396, - "source": "examples/reti/stakingPool.algo.ts:169", + "teal": 398, + "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ - 363 + 362 ] }, { - "teal": 401, + "teal": 399, "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ + 363, 364, 365 ] }, { - "teal": 402, + "teal": 400, "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ - 366 + 366, + 367 ] }, { - "teal": 403, + "teal": 401, "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ - 367, - 368, - 369 + 368 ] }, { - "teal": 404, + "teal": 402, "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ - 370, - 371 + 369 ] }, { - "teal": 405, + "teal": 403, "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ - 372 + 370 ] }, { - "teal": 406, + "teal": 404, "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ - 373 + 371 ] }, { "teal": 407, "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ + 372, + 373, 374 ] }, { - "teal": 408, - "source": "examples/reti/stakingPool.algo.ts:171", + "teal": 416, + "source": "examples/reti/stakingPool.algo.ts:173", "pc": [ 375 ] }, { - "teal": 411, - "source": "examples/reti/stakingPool.algo.ts:171", + "teal": 417, + "source": "examples/reti/stakingPool.algo.ts:173", "pc": [ 376, - 377, - 378 + 377 ] }, { - "teal": 420, + "teal": 418, "source": "examples/reti/stakingPool.algo.ts:173", "pc": [ + 378, 379 ] }, { - "teal": 421, - "source": "examples/reti/stakingPool.algo.ts:173", + "teal": 422, + "source": "examples/reti/stakingPool.algo.ts:174", "pc": [ 380, 381 ] }, { - "teal": 422, - "source": "examples/reti/stakingPool.algo.ts:173", + "teal": 423, + "source": "examples/reti/stakingPool.algo.ts:174", "pc": [ 382, - 383 + 383, + 384 ] }, { - "teal": 426, + "teal": 424, "source": "examples/reti/stakingPool.algo.ts:174", "pc": [ - 384, 385 ] }, { - "teal": 427, + "teal": 425, "source": "examples/reti/stakingPool.algo.ts:174", "pc": [ 386, - 387, - 388 + 387 ] }, { - "teal": 428, - "source": "examples/reti/stakingPool.algo.ts:174", + "teal": 429, + "source": "examples/reti/stakingPool.algo.ts:175", "pc": [ + 388, 389 ] }, { - "teal": 429, - "source": "examples/reti/stakingPool.algo.ts:174", + "teal": 430, + "source": "examples/reti/stakingPool.algo.ts:175", "pc": [ 390, 391 ] }, { - "teal": 433, - "source": "examples/reti/stakingPool.algo.ts:175", + "teal": 434, + "source": "examples/reti/stakingPool.algo.ts:176", "pc": [ - 392, - 393 + 392 ] }, { - "teal": 434, - "source": "examples/reti/stakingPool.algo.ts:175", + "teal": 435, + "source": "examples/reti/stakingPool.algo.ts:176", "pc": [ - 394, - 395 + 393, + 394 ] }, { "teal": 438, - "source": "examples/reti/stakingPool.algo.ts:176", + "source": "examples/reti/stakingPool.algo.ts:173", "pc": [ - 396 + 395 ] }, { "teal": 439, - "source": "examples/reti/stakingPool.algo.ts:176", + "source": "examples/reti/stakingPool.algo.ts:173", "pc": [ - 397, - 398 + 396, + 397 ] }, { "teal": 442, "source": "examples/reti/stakingPool.algo.ts:173", + "pc": [ + 398 + ] + }, + { + "teal": 445, + "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ 399 ] }, { - "teal": 443, - "source": "examples/reti/stakingPool.algo.ts:173", + "teal": 450, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ 400, 401 ] }, { - "teal": 446, - "source": "examples/reti/stakingPool.algo.ts:173", + "teal": 453, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 402 + 402, + 403, + 404 ] }, { - "teal": 449, - "source": "examples/reti/stakingPool.algo.ts:152", + "teal": 454, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 403 + 405 ] }, { - "teal": 454, + "teal": 455, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 404, - 405 + 406 ] }, { - "teal": 457, + "teal": 456, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 406, 407, 408 ] }, { - "teal": 458, + "teal": 457, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ 409 ] }, { - "teal": 459, + "teal": 460, "source": "examples/reti/stakingPool.algo.ts:191", + "errorMessage": "argument 0 (staker) for addStake must be a address", "pc": [ 410 ] }, { - "teal": 460, + "teal": 463, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ 411, @@ -2248,118 +2255,111 @@ ] }, { - "teal": 461, + "teal": 464, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ 413 ] }, { - "teal": 464, + "teal": 465, "source": "examples/reti/stakingPool.algo.ts:191", - "errorMessage": "argument 0 (staker) for addStake must be a address", "pc": [ 414 ] }, { - "teal": 467, + "teal": 466, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 415, - 416 + 415 ] }, { - "teal": 468, + "teal": 467, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ + 416, 417 ] }, { - "teal": 469, + "teal": 468, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ 418 ] }, { - "teal": 470, + "teal": 469, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ 419 ] }, { - "teal": 471, - "source": "examples/reti/stakingPool.algo.ts:191", - "pc": [ - 420, - 421 - ] - }, - { - "teal": 472, + "teal": 472, "source": "examples/reti/stakingPool.algo.ts:191", + "errorMessage": "argument 1 (stakedAmountPayment) for addStake must be a pay transaction", "pc": [ - 422 + 420 ] }, { - "teal": 473, + "teal": 475, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ + 421, + 422, 423 ] }, { "teal": 476, "source": "examples/reti/stakingPool.algo.ts:191", - "errorMessage": "argument 1 (stakedAmountPayment) for addStake must be a pay transaction", "pc": [ 424 ] }, { - "teal": 479, + "teal": 477, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 425, - 426, - 427 + 425 ] }, { - "teal": 480, + "teal": 478, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 428 + 426 ] }, { - "teal": 481, + "teal": 479, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 429 + 427 ] }, { - "teal": 482, + "teal": 480, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 430 + 428 ] }, { - "teal": 483, + "teal": 493, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ + 429, + 430, 431 ] }, { - "teal": 484, + "teal": 496, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ 432 @@ -2370,63 +2370,69 @@ "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ 433, - 434, - 435 + 434 ] }, { - "teal": 500, - "source": "examples/reti/stakingPool.algo.ts:191", + "teal": 501, + "source": "examples/reti/stakingPool.algo.ts:192", "pc": [ - 436 + 435 ] }, { - "teal": 501, - "source": "examples/reti/stakingPool.algo.ts:191", + "teal": 502, + "source": "examples/reti/stakingPool.algo.ts:192", "pc": [ - 437, - 438 + 436 ] }, { - "teal": 505, + "teal": 503, "source": "examples/reti/stakingPool.algo.ts:192", "pc": [ - 439 + 437 ] }, { - "teal": 506, + "teal": 504, "source": "examples/reti/stakingPool.algo.ts:192", "pc": [ - 440 + 438 ] }, { "teal": 507, "source": "examples/reti/stakingPool.algo.ts:192", + "errorMessage": "staking pool must be initialized first", + "pc": [ + 439 + ] + }, + { + "teal": 514, + "source": "examples/reti/stakingPool.algo.ts:196", "pc": [ + 440, 441 ] }, { - "teal": 508, - "source": "examples/reti/stakingPool.algo.ts:192", + "teal": 515, + "source": "examples/reti/stakingPool.algo.ts:196", "pc": [ 442 ] }, { - "teal": 511, - "source": "examples/reti/stakingPool.algo.ts:192", - "errorMessage": "staking pool must be initialized first", + "teal": 516, + "source": "examples/reti/stakingPool.algo.ts:196", "pc": [ 443 ] }, { - "teal": 518, + "teal": 517, "source": "examples/reti/stakingPool.algo.ts:196", "pc": [ 444, @@ -2434,98 +2440,98 @@ ] }, { - "teal": 519, + "teal": 518, "source": "examples/reti/stakingPool.algo.ts:196", "pc": [ 446 ] }, { - "teal": 520, + "teal": 519, "source": "examples/reti/stakingPool.algo.ts:196", "pc": [ 447 ] }, { - "teal": 521, - "source": "examples/reti/stakingPool.algo.ts:196", + "teal": 522, + "source": "examples/reti/stakingPool.algo.ts:195", + "errorMessage": "stake can only be added via the validator contract", "pc": [ - 448, - 449 + 448 ] }, { - "teal": 522, - "source": "examples/reti/stakingPool.algo.ts:196", + "teal": 526, + "source": "examples/reti/stakingPool.algo.ts:199", "pc": [ + 449, 450 ] }, { - "teal": 523, - "source": "examples/reti/stakingPool.algo.ts:196", + "teal": 527, + "source": "examples/reti/stakingPool.algo.ts:199", "pc": [ - 451 + 451, + 452 ] }, { - "teal": 526, - "source": "examples/reti/stakingPool.algo.ts:195", - "errorMessage": "stake can only be added via the validator contract", + "teal": 528, + "source": "examples/reti/stakingPool.algo.ts:199", "pc": [ - 452 + 453 ] }, { - "teal": 530, + "teal": 529, "source": "examples/reti/stakingPool.algo.ts:199", "pc": [ - 453, 454 ] }, { - "teal": 531, - "source": "examples/reti/stakingPool.algo.ts:199", + "teal": 533, + "source": "examples/reti/stakingPool.algo.ts:202", "pc": [ 455, - 456 + 456, + 457 ] }, { - "teal": 532, - "source": "examples/reti/stakingPool.algo.ts:199", + "teal": 542, + "source": "examples/reti/stakingPool.algo.ts:206", "pc": [ - 457 + 458, + 459 ] }, { - "teal": 533, - "source": "examples/reti/stakingPool.algo.ts:199", + "teal": 543, + "source": "examples/reti/stakingPool.algo.ts:207", "pc": [ - 458 + 460, + 461 ] }, { - "teal": 537, - "source": "examples/reti/stakingPool.algo.ts:202", + "teal": 544, + "source": "examples/reti/stakingPool.algo.ts:207", "pc": [ - 459, - 460, - 461 + 462 ] }, { - "teal": 546, - "source": "examples/reti/stakingPool.algo.ts:206", + "teal": 545, + "source": "examples/reti/stakingPool.algo.ts:207", "pc": [ - 462, 463 ] }, { - "teal": 547, + "teal": 546, "source": "examples/reti/stakingPool.algo.ts:207", "pc": [ 464, @@ -2533,98 +2539,92 @@ ] }, { - "teal": 548, + "teal": 547, "source": "examples/reti/stakingPool.algo.ts:207", "pc": [ 466 ] }, { - "teal": 549, + "teal": 548, "source": "examples/reti/stakingPool.algo.ts:207", "pc": [ 467 ] }, - { - "teal": 550, - "source": "examples/reti/stakingPool.algo.ts:207", - "pc": [ - 468, - 469 - ] - }, { "teal": 551, "source": "examples/reti/stakingPool.algo.ts:207", + "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"sender\",\"expected\":\"AppID.fromUint64(this.creatingValidatorContractAppId.value).address\"}", "pc": [ - 470 + 468 ] }, { - "teal": 552, - "source": "examples/reti/stakingPool.algo.ts:207", + "teal": 554, + "source": "examples/reti/stakingPool.algo.ts:206", "pc": [ - 471 + 469, + 470 ] }, { "teal": 555, - "source": "examples/reti/stakingPool.algo.ts:207", - "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"sender\",\"expected\":\"AppID.fromUint64(this.creatingValidatorContractAppId.value).address\"}", + "source": "examples/reti/stakingPool.algo.ts:208", "pc": [ + 471, 472 ] }, { - "teal": 558, - "source": "examples/reti/stakingPool.algo.ts:206", + "teal": 556, + "source": "examples/reti/stakingPool.algo.ts:208", "pc": [ 473, 474 ] }, { - "teal": 559, + "teal": 557, "source": "examples/reti/stakingPool.algo.ts:208", "pc": [ - 475, - 476 + 475 ] }, { "teal": 560, "source": "examples/reti/stakingPool.algo.ts:208", + "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", "pc": [ - 477, - 478 + 476 ] }, { - "teal": 561, - "source": "examples/reti/stakingPool.algo.ts:208", + "teal": 563, + "source": "examples/reti/stakingPool.algo.ts:206", "pc": [ - 479 + 477, + 478 ] }, { "teal": 564, - "source": "examples/reti/stakingPool.algo.ts:208", - "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", + "source": "examples/reti/stakingPool.algo.ts:209", "pc": [ + 479, 480 ] }, { - "teal": 567, - "source": "examples/reti/stakingPool.algo.ts:206", + "teal": 565, + "source": "examples/reti/stakingPool.algo.ts:209", "pc": [ 481, 482 ] }, { - "teal": 568, + "teal": 566, "source": "examples/reti/stakingPool.algo.ts:209", "pc": [ 483, @@ -2632,160 +2632,166 @@ ] }, { - "teal": 569, + "teal": 567, "source": "examples/reti/stakingPool.algo.ts:209", "pc": [ - 485, - 486 + 485 ] }, { "teal": 570, "source": "examples/reti/stakingPool.algo.ts:209", + "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"amount\",\"expected\":\"stakedAmountPayment.amount\"}", "pc": [ - 487, - 488 + 486 ] }, { - "teal": 571, - "source": "examples/reti/stakingPool.algo.ts:209", + "teal": 574, + "source": "examples/reti/stakingPool.algo.ts:215", "pc": [ - 489 + 487, + 488 ] }, { - "teal": 574, - "source": "examples/reti/stakingPool.algo.ts:209", - "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"amount\",\"expected\":\"stakedAmountPayment.amount\"}", + "teal": 575, + "source": "examples/reti/stakingPool.algo.ts:215", "pc": [ - 490 + 489, + 490, + 491 ] }, { - "teal": 578, + "teal": 576, "source": "examples/reti/stakingPool.algo.ts:215", "pc": [ - 491, 492 ] }, { - "teal": 579, + "teal": 577, "source": "examples/reti/stakingPool.algo.ts:215", "pc": [ 493, - 494, - 495 + 494 ] }, { - "teal": 580, - "source": "examples/reti/stakingPool.algo.ts:215", + "teal": 581, + "source": "examples/reti/stakingPool.algo.ts:216", "pc": [ - 496 + 495 ] }, { - "teal": 581, - "source": "examples/reti/stakingPool.algo.ts:215", + "teal": 582, + "source": "examples/reti/stakingPool.algo.ts:216", "pc": [ - 497, - 498 + 496, + 497 ] }, { - "teal": 585, - "source": "examples/reti/stakingPool.algo.ts:216", + "teal": 586, + "source": "examples/reti/stakingPool.algo.ts:218", "pc": [ + 498, 499 ] }, { - "teal": 586, - "source": "examples/reti/stakingPool.algo.ts:216", + "teal": 587, + "source": "examples/reti/stakingPool.algo.ts:218", "pc": [ - 500, - 501 + 500 ] }, { - "teal": 590, + "teal": 588, "source": "examples/reti/stakingPool.algo.ts:218", "pc": [ - 502, - 503 + 501, + 502 ] }, { - "teal": 591, + "teal": 589, "source": "examples/reti/stakingPool.algo.ts:218", "pc": [ + 503, 504 ] }, { - "teal": 592, + "teal": 590, "source": "examples/reti/stakingPool.algo.ts:218", "pc": [ - 505, - 506 + 505 ] }, { - "teal": 593, + "teal": 591, + "source": "examples/reti/stakingPool.algo.ts:218", + "pc": [ + 506, + 507 + ] + }, + { + "teal": 592, "source": "examples/reti/stakingPool.algo.ts:218", "pc": [ - 507, 508 ] }, { - "teal": 594, + "teal": 593, "source": "examples/reti/stakingPool.algo.ts:218", "pc": [ 509 ] }, { - "teal": 595, - "source": "examples/reti/stakingPool.algo.ts:218", + "teal": 597, + "source": "examples/reti/stakingPool.algo.ts:220", "pc": [ 510, 511 ] }, { - "teal": 596, - "source": "examples/reti/stakingPool.algo.ts:218", + "teal": 598, + "source": "examples/reti/stakingPool.algo.ts:220", "pc": [ 512 ] }, { - "teal": 597, - "source": "examples/reti/stakingPool.algo.ts:218", + "teal": 599, + "source": "examples/reti/stakingPool.algo.ts:220", "pc": [ - 513 + 513, + 514 ] }, { - "teal": 601, + "teal": 600, "source": "examples/reti/stakingPool.algo.ts:220", "pc": [ - 514, 515 ] }, { - "teal": 602, + "teal": 601, "source": "examples/reti/stakingPool.algo.ts:220", "pc": [ 516 ] }, { - "teal": 603, + "teal": 602, "source": "examples/reti/stakingPool.algo.ts:220", "pc": [ 517, @@ -2793,92 +2799,98 @@ ] }, { - "teal": 604, + "teal": 603, "source": "examples/reti/stakingPool.algo.ts:220", "pc": [ 519 ] }, { - "teal": 605, + "teal": 604, "source": "examples/reti/stakingPool.algo.ts:220", "pc": [ - 520 + 520, + 521 ] }, { - "teal": 606, - "source": "examples/reti/stakingPool.algo.ts:220", + "teal": 609, + "source": "examples/reti/stakingPool.algo.ts:221", "pc": [ - 521, - 522 + 522, + 523 ] }, { - "teal": 607, - "source": "examples/reti/stakingPool.algo.ts:220", + "teal": 610, + "source": "examples/reti/stakingPool.algo.ts:221", "pc": [ - 523 + 524 ] }, { - "teal": 608, - "source": "examples/reti/stakingPool.algo.ts:220", + "teal": 611, + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 524, 525 ] }, { - "teal": 613, - "source": "examples/reti/stakingPool.algo.ts:221", + "teal": 612, + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ 526, 527 ] }, + { + "teal": 613, + "source": "examples/reti/stakingPool.algo.ts:222", + "pc": [ + 528, + 529 + ] + }, { "teal": 614, - "source": "examples/reti/stakingPool.algo.ts:221", + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 528 + 530 ] }, { "teal": 615, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 529 + 531, + 532 ] }, { "teal": 616, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 530, - 531 + 533 ] }, { "teal": 617, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 532, - 533 + 534 ] }, { "teal": 618, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 534 + 535 ] }, { "teal": 619, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 535, 536 ] }, @@ -2893,32 +2905,27 @@ "teal": 621, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 538 - ] - }, - { - "teal": 622, - "source": "examples/reti/stakingPool.algo.ts:222", - "pc": [ + 538, 539 ] }, { - "teal": 623, + "teal": 622, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ 540 ] }, { - "teal": 624, + "teal": 625, "source": "examples/reti/stakingPool.algo.ts:222", + "errorMessage": "this.stakeAccumulator.value + (stakedAmountPayment.amount as uint128) * (roundsLeftInBin as uint128) overflowed 128 bits", "pc": [ 541 ] }, { - "teal": 625, + "teal": 626, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ 542, @@ -2926,25 +2933,30 @@ ] }, { - "teal": 626, + "teal": 627, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ 544 ] }, { - "teal": 629, + "teal": 628, "source": "examples/reti/stakingPool.algo.ts:222", - "errorMessage": "this.stakeAccumulator.value + (stakedAmountPayment.amount as uint128) * (roundsLeftInBin as uint128) overflowed 128 bits", "pc": [ 545 ] }, + { + "teal": 629, + "source": "examples/reti/stakingPool.algo.ts:222", + "pc": [ + 546 + ] + }, { "teal": 630, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 546, 547 ] }, @@ -2952,75 +2964,63 @@ "teal": 631, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 548 + 548, + 549 ] }, { "teal": 632, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 549 + 550 ] }, { "teal": 633, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 550 + 551 ] }, { "teal": 634, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 551 + 552 ] }, { "teal": 635, - "source": "examples/reti/stakingPool.algo.ts:222", + "source": "examples/reti/stakingPool.algo.ts:221", "pc": [ - 552, 553 ] }, { - "teal": 636, - "source": "examples/reti/stakingPool.algo.ts:222", + "teal": 639, + "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ 554 ] }, { - "teal": 637, - "source": "examples/reti/stakingPool.algo.ts:222", - "pc": [ - 555 - ] - }, - { - "teal": 638, - "source": "examples/reti/stakingPool.algo.ts:222", + "teal": 640, + "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ + 555, 556 ] }, { - "teal": 639, - "source": "examples/reti/stakingPool.algo.ts:221", - "pc": [ - 557 - ] - }, - { - "teal": 643, + "teal": 645, "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ + 557, 558 ] }, { - "teal": 644, + "teal": 646, "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ 559, @@ -3028,123 +3028,123 @@ ] }, { - "teal": 649, + "teal": 647, "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ - 561, - 562 + 561 ] }, { - "teal": 650, + "teal": 648, "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ + 562, 563, 564 ] }, { - "teal": 651, - "source": "examples/reti/stakingPool.algo.ts:225", + "teal": 653, + "source": "examples/reti/stakingPool.algo.ts:226", "pc": [ - 565 + 565, + 566 ] }, { - "teal": 652, - "source": "examples/reti/stakingPool.algo.ts:225", + "teal": 654, + "source": "examples/reti/stakingPool.algo.ts:226", "pc": [ - 566, 567, 568 ] }, { - "teal": 657, + "teal": 655, "source": "examples/reti/stakingPool.algo.ts:226", "pc": [ - 569, - 570 + 569 ] }, { - "teal": 658, + "teal": 656, "source": "examples/reti/stakingPool.algo.ts:226", "pc": [ + 570, 571, 572 ] }, { - "teal": 659, - "source": "examples/reti/stakingPool.algo.ts:226", + "teal": 661, + "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ 573 ] }, { - "teal": 660, - "source": "examples/reti/stakingPool.algo.ts:226", + "teal": 662, + "source": "examples/reti/stakingPool.algo.ts:227", + "pc": [ + 574 + ] + }, + { + "teal": 663, + "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ - 574, 575, 576 ] }, { - "teal": 665, + "teal": 664, "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ 577 ] }, { - "teal": 666, - "source": "examples/reti/stakingPool.algo.ts:227", - "pc": [ - 578 - ] - }, - { - "teal": 667, + "teal": 665, "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ - 579, - 580 + 578, + 579 ] }, { - "teal": 668, + "teal": 666, "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ + 580, 581 ] }, { - "teal": 669, + "teal": 667, "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ - 582, - 583 + 582 ] }, { - "teal": 670, + "teal": 668, "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ - 584, - 585 + 583, + 584 ] }, { - "teal": 671, + "teal": 669, "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ + 585, 586 ] }, { - "teal": 672, + "teal": 670, "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ 587, @@ -3152,7 +3152,7 @@ ] }, { - "teal": 673, + "teal": 671, "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ 589, @@ -3160,130 +3160,130 @@ ] }, { - "teal": 674, + "teal": 672, "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ - 591, - 592 + 591 ] }, { - "teal": 675, - "source": "examples/reti/stakingPool.algo.ts:227", + "teal": 677, + "source": "examples/reti/stakingPool.algo.ts:229", "pc": [ - 593, - 594 + 592, + 593 ] }, { - "teal": 676, - "source": "examples/reti/stakingPool.algo.ts:227", + "teal": 678, + "source": "examples/reti/stakingPool.algo.ts:229", "pc": [ - 595 + 594 ] }, { - "teal": 681, + "teal": 679, "source": "examples/reti/stakingPool.algo.ts:229", "pc": [ - 596, - 597 + 595 ] }, { - "teal": 682, + "teal": 680, "source": "examples/reti/stakingPool.algo.ts:229", "pc": [ - 598 + 596 ] }, { - "teal": 683, + "teal": 681, "source": "examples/reti/stakingPool.algo.ts:229", "pc": [ - 599 + 597 ] }, { - "teal": 684, + "teal": 682, "source": "examples/reti/stakingPool.algo.ts:229", "pc": [ - 600 + 598, + 599 ] }, { - "teal": 685, + "teal": 683, "source": "examples/reti/stakingPool.algo.ts:229", "pc": [ - 601 + 600 ] }, { - "teal": 686, + "teal": 684, "source": "examples/reti/stakingPool.algo.ts:229", "pc": [ - 602, - 603 + 601, + 602 ] }, { - "teal": 687, - "source": "examples/reti/stakingPool.algo.ts:229", + "teal": 689, + "source": "examples/reti/stakingPool.algo.ts:230", "pc": [ + 603, 604 ] }, { - "teal": 688, - "source": "examples/reti/stakingPool.algo.ts:229", + "teal": 690, + "source": "examples/reti/stakingPool.algo.ts:230", "pc": [ 605, - 606 + 606, + 607 ] }, { - "teal": 693, + "teal": 691, "source": "examples/reti/stakingPool.algo.ts:230", "pc": [ - 607, - 608 + 608, + 609 ] }, { - "teal": 694, + "teal": 692, "source": "examples/reti/stakingPool.algo.ts:230", "pc": [ - 609, - 610, - 611 + 610 ] }, { - "teal": 695, + "teal": 693, "source": "examples/reti/stakingPool.algo.ts:230", "pc": [ + 611, 612, 613 ] }, { - "teal": 696, - "source": "examples/reti/stakingPool.algo.ts:230", + "teal": 698, + "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ - 614 + 614, + 615 ] }, { - "teal": 697, - "source": "examples/reti/stakingPool.algo.ts:230", + "teal": 699, + "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ - 615, 616, 617 ] }, { - "teal": 702, + "teal": 700, "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ 618, @@ -3291,84 +3291,84 @@ ] }, { - "teal": 703, + "teal": 701, "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ 620, - 621 + 621, + 622 ] }, { - "teal": 704, + "teal": 702, "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ - 622, 623 ] }, { - "teal": 705, + "teal": 703, "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ 624, - 625, - 626 + 625 ] }, { - "teal": 706, + "teal": 704, "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ + 626, 627 ] }, { - "teal": 707, + "teal": 705, "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ - 628, - 629 + 628 ] }, { - "teal": 708, + "teal": 706, "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ - 630, - 631 + 629 ] }, { - "teal": 709, + "teal": 707, "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ - 632 + 630 ] }, { - "teal": 710, + "teal": 708, "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ - 633 + 631, + 632 ] }, { - "teal": 711, - "source": "examples/reti/stakingPool.algo.ts:232", + "teal": 712, + "source": "examples/reti/stakingPool.algo.ts:233", "pc": [ + 633, 634 ] }, { - "teal": 712, - "source": "examples/reti/stakingPool.algo.ts:232", + "teal": 713, + "source": "examples/reti/stakingPool.algo.ts:233", "pc": [ 635, 636 ] }, { - "teal": 716, + "teal": 714, "source": "examples/reti/stakingPool.algo.ts:233", "pc": [ 637, @@ -3376,15 +3376,21 @@ ] }, { - "teal": 717, + "teal": 715, + "source": "examples/reti/stakingPool.algo.ts:233", + "pc": [ + 639 + ] + }, + { + "teal": 716, "source": "examples/reti/stakingPool.algo.ts:233", "pc": [ - 639, 640 ] }, { - "teal": 718, + "teal": 717, "source": "examples/reti/stakingPool.algo.ts:233", "pc": [ 641, @@ -3392,29 +3398,29 @@ ] }, { - "teal": 719, - "source": "examples/reti/stakingPool.algo.ts:233", + "teal": 721, + "source": "examples/reti/stakingPool.algo.ts:236", "pc": [ - 643 + 643, + 644 ] }, { - "teal": 720, - "source": "examples/reti/stakingPool.algo.ts:233", + "teal": 722, + "source": "examples/reti/stakingPool.algo.ts:236", "pc": [ - 644 + 645 ] }, { - "teal": 721, - "source": "examples/reti/stakingPool.algo.ts:233", + "teal": 723, + "source": "examples/reti/stakingPool.algo.ts:236", "pc": [ - 645, 646 ] }, { - "teal": 725, + "teal": 724, "source": "examples/reti/stakingPool.algo.ts:236", "pc": [ 647, @@ -3422,154 +3428,154 @@ ] }, { - "teal": 726, + "teal": 725, "source": "examples/reti/stakingPool.algo.ts:236", "pc": [ 649 ] }, { - "teal": 727, + "teal": 726, "source": "examples/reti/stakingPool.algo.ts:236", "pc": [ - 650 + 650, + 651 ] }, { - "teal": 728, + "teal": 727, "source": "examples/reti/stakingPool.algo.ts:236", "pc": [ - 651, 652 ] }, { - "teal": 729, - "source": "examples/reti/stakingPool.algo.ts:236", + "teal": 731, + "source": "examples/reti/stakingPool.algo.ts:238", "pc": [ - 653 + 653, + 654 ] }, { - "teal": 730, - "source": "examples/reti/stakingPool.algo.ts:236", + "teal": 732, + "source": "examples/reti/stakingPool.algo.ts:238", "pc": [ - 654, - 655 + 655, + 656, + 657 ] }, { - "teal": 731, - "source": "examples/reti/stakingPool.algo.ts:236", + "teal": 738, + "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 656 + 658, + 659 ] }, { - "teal": 735, - "source": "examples/reti/stakingPool.algo.ts:238", + "teal": 739, + "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 657, - 658 + 660 ] }, { - "teal": 736, - "source": "examples/reti/stakingPool.algo.ts:238", + "teal": 740, + "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 659, - 660, 661 ] }, + { + "teal": 741, + "source": "examples/reti/stakingPool.algo.ts:240", + "pc": [ + 662 + ] + }, { "teal": 742, "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 662, - 663 + 663, + 664, + 665 ] }, { "teal": 743, "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 664 + 666, + 667 ] }, { "teal": 744, "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 665 + 668, + 669, + 670 ] }, { "teal": 745, "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 666 + 671, + 672 ] }, { "teal": 746, "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 667, - 668, - 669 + 673 ] }, { "teal": 747, "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 670, - 671 - ] - }, - { - "teal": 748, - "source": "examples/reti/stakingPool.algo.ts:240", - "pc": [ - 672, - 673, 674 ] }, { - "teal": 749, + "teal": 750, "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ 675, - 676 + 676, + 677 ] }, { - "teal": 750, - "source": "examples/reti/stakingPool.algo.ts:240", + "teal": 755, + "source": "examples/reti/stakingPool.algo.ts:241", "pc": [ - 677 + 678, + 679 ] }, { - "teal": 751, - "source": "examples/reti/stakingPool.algo.ts:240", + "teal": 756, + "source": "examples/reti/stakingPool.algo.ts:241", "pc": [ - 678 + 680 ] }, { - "teal": 754, - "source": "examples/reti/stakingPool.algo.ts:240", + "teal": 757, + "source": "examples/reti/stakingPool.algo.ts:241", "pc": [ - 679, - 680, 681 ] }, { - "teal": 759, + "teal": 758, "source": "examples/reti/stakingPool.algo.ts:241", "pc": [ 682, @@ -3577,29 +3583,29 @@ ] }, { - "teal": 760, - "source": "examples/reti/stakingPool.algo.ts:241", + "teal": 765, + "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ - 684 + 684, + 685 ] }, { - "teal": 761, - "source": "examples/reti/stakingPool.algo.ts:241", + "teal": 766, + "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ - 685 + 686 ] }, { - "teal": 762, - "source": "examples/reti/stakingPool.algo.ts:241", + "teal": 767, + "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ - 686, 687 ] }, { - "teal": 769, + "teal": 768, "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ 688, @@ -3607,77 +3613,71 @@ ] }, { - "teal": 770, + "teal": 769, "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ - 690 + 690, + 691, + 692 ] }, { - "teal": 771, - "source": "examples/reti/stakingPool.algo.ts:225", + "teal": 775, + "source": "examples/reti/stakingPool.algo.ts:245", "pc": [ - 691 + 693, + 694 ] }, { - "teal": 772, - "source": "examples/reti/stakingPool.algo.ts:225", + "teal": 776, + "source": "examples/reti/stakingPool.algo.ts:245", "pc": [ - 692, - 693 + 695 ] }, { - "teal": 773, - "source": "examples/reti/stakingPool.algo.ts:225", + "teal": 777, + "source": "examples/reti/stakingPool.algo.ts:245", "pc": [ - 694, - 695, 696 ] }, { - "teal": 779, + "teal": 778, "source": "examples/reti/stakingPool.algo.ts:245", "pc": [ 697, - 698 - ] - }, - { - "teal": 780, - "source": "examples/reti/stakingPool.algo.ts:245", - "pc": [ + 698, 699 ] }, { - "teal": 781, - "source": "examples/reti/stakingPool.algo.ts:245", + "teal": 782, + "source": "examples/reti/stakingPool.algo.ts:247", + "errorMessage": "Staking pool full", "pc": [ 700 ] }, { - "teal": 782, - "source": "examples/reti/stakingPool.algo.ts:245", + "teal": 787, + "source": "examples/reti/stakingPool.algo.ts:252", "pc": [ 701, - 702, - 703 + 702 ] }, { - "teal": 786, - "source": "examples/reti/stakingPool.algo.ts:247", - "errorMessage": "Staking pool full", + "teal": 788, + "source": "examples/reti/stakingPool.algo.ts:252", "pc": [ + 703, 704 ] }, { - "teal": 791, + "teal": 789, "source": "examples/reti/stakingPool.algo.ts:252", "pc": [ 705, @@ -3685,48 +3685,60 @@ ] }, { - "teal": 792, + "teal": 790, "source": "examples/reti/stakingPool.algo.ts:252", "pc": [ - 707, - 708 + 707 ] }, { - "teal": 793, + "teal": 791, "source": "examples/reti/stakingPool.algo.ts:252", "pc": [ - 709, - 710 + 708 ] }, { "teal": 794, "source": "examples/reti/stakingPool.algo.ts:252", + "errorMessage": "must stake at least the minimum for this pool", + "pc": [ + 709 + ] + }, + { + "teal": 798, + "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ + 710, 711 ] }, { - "teal": 795, - "source": "examples/reti/stakingPool.algo.ts:252", + "teal": 799, + "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ 712 ] }, { - "teal": 798, - "source": "examples/reti/stakingPool.algo.ts:252", - "errorMessage": "must stake at least the minimum for this pool", + "teal": 800, + "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ 713 ] }, + { + "teal": 801, + "source": "examples/reti/stakingPool.algo.ts:254", + "pc": [ + 714 + ] + }, { "teal": 802, "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 714, 715 ] }, @@ -3748,284 +3760,272 @@ "teal": 805, "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 718 + 718, + 719 ] }, { "teal": 806, "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 719 + 720 ] }, { "teal": 807, "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 720 + 721, + 722 ] }, { "teal": 808, "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 721 + 723 ] }, { "teal": 809, "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 722, - 723 + 724, + 725 ] }, { "teal": 810, "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 724 - ] - }, - { - "teal": 811, - "source": "examples/reti/stakingPool.algo.ts:254", - "pc": [ - 725, 726 ] }, { - "teal": 812, + "teal": 811, "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ 727 ] }, { - "teal": 813, - "source": "examples/reti/stakingPool.algo.ts:254", + "teal": 821, + "source": "examples/reti/stakingPool.algo.ts:255", "pc": [ 728, 729 ] }, { - "teal": 814, - "source": "examples/reti/stakingPool.algo.ts:254", + "teal": 822, + "source": "examples/reti/stakingPool.algo.ts:255", "pc": [ 730 ] }, { - "teal": 815, - "source": "examples/reti/stakingPool.algo.ts:254", + "teal": 823, + "source": "examples/reti/stakingPool.algo.ts:255", "pc": [ 731 ] }, + { + "teal": 824, + "source": "examples/reti/stakingPool.algo.ts:255", + "pc": [ + 732 + ] + }, { "teal": 825, "source": "examples/reti/stakingPool.algo.ts:255", "pc": [ - 732, 733 ] }, { "teal": 826, - "source": "examples/reti/stakingPool.algo.ts:255", + "source": "examples/reti/stakingPool.algo.ts:256", "pc": [ - 734 + 734, + 735 ] }, { "teal": 827, - "source": "examples/reti/stakingPool.algo.ts:255", + "source": "examples/reti/stakingPool.algo.ts:257", "pc": [ - 735 + 736, + 737 ] }, { "teal": 828, - "source": "examples/reti/stakingPool.algo.ts:255", + "source": "examples/reti/stakingPool.algo.ts:257", "pc": [ - 736 + 738, + 739 ] }, { "teal": 829, - "source": "examples/reti/stakingPool.algo.ts:255", + "source": "examples/reti/stakingPool.algo.ts:257", "pc": [ - 737 + 740 ] }, { "teal": 830, - "source": "examples/reti/stakingPool.algo.ts:256", + "source": "examples/reti/stakingPool.algo.ts:257", "pc": [ - 738, - 739 + 741 ] }, { "teal": 831, - "source": "examples/reti/stakingPool.algo.ts:257", + "source": "examples/reti/stakingPool.algo.ts:258", "pc": [ - 740, - 741 + 742, + 743 ] }, { "teal": 832, - "source": "examples/reti/stakingPool.algo.ts:257", + "source": "examples/reti/stakingPool.algo.ts:258", "pc": [ - 742, - 743 + 744 ] }, { "teal": 833, - "source": "examples/reti/stakingPool.algo.ts:257", + "source": "examples/reti/stakingPool.algo.ts:259", "pc": [ - 744 + 745, + 746 ] }, { "teal": 834, - "source": "examples/reti/stakingPool.algo.ts:257", + "source": "examples/reti/stakingPool.algo.ts:259", "pc": [ - 745 + 747 ] }, { "teal": 835, - "source": "examples/reti/stakingPool.algo.ts:258", + "source": "examples/reti/stakingPool.algo.ts:260", "pc": [ - 746, - 747 + 748, + 749 ] }, { "teal": 836, - "source": "examples/reti/stakingPool.algo.ts:258", + "source": "examples/reti/stakingPool.algo.ts:260", "pc": [ - 748 + 750 ] }, { "teal": 837, - "source": "examples/reti/stakingPool.algo.ts:259", + "source": "examples/reti/stakingPool.algo.ts:260", "pc": [ - 749, - 750 + 751 ] }, { "teal": 838, - "source": "examples/reti/stakingPool.algo.ts:259", + "source": "examples/reti/stakingPool.algo.ts:255", "pc": [ - 751 + 752 ] }, { "teal": 839, - "source": "examples/reti/stakingPool.algo.ts:260", - "pc": [ - 752, - 753 - ] - }, - { - "teal": 840, - "source": "examples/reti/stakingPool.algo.ts:260", + "source": "examples/reti/stakingPool.algo.ts:255", "pc": [ + 753, 754 ] }, { - "teal": 841, - "source": "examples/reti/stakingPool.algo.ts:260", + "teal": 840, + "source": "examples/reti/stakingPool.algo.ts:255", "pc": [ 755 ] }, { - "teal": 842, - "source": "examples/reti/stakingPool.algo.ts:255", + "teal": 844, + "source": "examples/reti/stakingPool.algo.ts:262", "pc": [ - 756 + 756, + 757 ] }, { - "teal": 843, - "source": "examples/reti/stakingPool.algo.ts:255", + "teal": 845, + "source": "examples/reti/stakingPool.algo.ts:262", "pc": [ - 757, 758 ] }, { - "teal": 844, - "source": "examples/reti/stakingPool.algo.ts:255", + "teal": 846, + "source": "examples/reti/stakingPool.algo.ts:262", "pc": [ 759 ] }, { - "teal": 848, + "teal": 847, "source": "examples/reti/stakingPool.algo.ts:262", "pc": [ - 760, - 761 + 760 ] }, { - "teal": 849, + "teal": 848, "source": "examples/reti/stakingPool.algo.ts:262", "pc": [ + 761, 762 ] }, { - "teal": 850, + "teal": 849, "source": "examples/reti/stakingPool.algo.ts:262", "pc": [ 763 ] }, { - "teal": 851, + "teal": 850, "source": "examples/reti/stakingPool.algo.ts:262", "pc": [ 764 ] }, { - "teal": 852, - "source": "examples/reti/stakingPool.algo.ts:262", + "teal": 854, + "source": "examples/reti/stakingPool.algo.ts:263", "pc": [ 765, 766 ] }, { - "teal": 853, - "source": "examples/reti/stakingPool.algo.ts:262", - "pc": [ - 767 - ] - }, - { - "teal": 854, - "source": "examples/reti/stakingPool.algo.ts:262", + "teal": 858, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ + 767, 768 ] }, { - "teal": 858, - "source": "examples/reti/stakingPool.algo.ts:263", + "teal": 861, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ 769, 770 @@ -4035,21 +4035,21 @@ "teal": 862, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 771, - 772 + 771 ] }, { - "teal": 865, - "source": "examples/reti/stakingPool.algo.ts:191", + "teal": 867, + "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ + 772, 773, 774 ] }, { - "teal": 866, - "source": "examples/reti/stakingPool.algo.ts:191", + "teal": 868, + "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ 775 ] @@ -4071,69 +4071,69 @@ ] }, { - "teal": 875, + "teal": 873, "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ - 780, - 781, - 782 + 780 ] }, { - "teal": 876, + "teal": 874, "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ - 783 + 781, + 782 ] }, { - "teal": 877, + "teal": 875, "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ - 784 + 783 ] }, { "teal": 878, "source": "examples/reti/stakingPool.algo.ts:277", + "errorMessage": "argument 1 (staker) for removeStake must be a address", "pc": [ - 785, - 786 + 784 ] }, { - "teal": 879, + "teal": 881, "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ + 785, + 786, 787 ] }, { "teal": 882, "source": "examples/reti/stakingPool.algo.ts:277", - "errorMessage": "argument 1 (staker) for removeStake must be a address", "pc": [ 788 ] }, { - "teal": 885, + "teal": 883, "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ - 789, - 790, - 791 + 789 ] }, { - "teal": 886, + "teal": 897, "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ + 790, + 791, 792 ] }, { - "teal": 887, + "teal": 900, "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ 793 @@ -4144,60 +4144,61 @@ "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ 794, - 795, - 796 + 795 ] }, { - "teal": 904, - "source": "examples/reti/stakingPool.algo.ts:277", + "teal": 906, + "source": "examples/reti/stakingPool.algo.ts:280", "pc": [ + 796, 797 ] }, { - "teal": 905, - "source": "examples/reti/stakingPool.algo.ts:277", + "teal": 907, + "source": "examples/reti/stakingPool.algo.ts:280", "pc": [ 798, 799 ] }, { - "teal": 910, + "teal": 908, "source": "examples/reti/stakingPool.algo.ts:280", "pc": [ - 800, - 801 + 800 ] }, { - "teal": 911, + "teal": 909, "source": "examples/reti/stakingPool.algo.ts:280", "pc": [ + 801, 802, 803 ] }, { - "teal": 912, - "source": "examples/reti/stakingPool.algo.ts:280", + "teal": 917, + "source": "examples/reti/stakingPool.algo.ts:282", "pc": [ - 804 + 804, + 805, + 806 ] }, { - "teal": 913, - "source": "examples/reti/stakingPool.algo.ts:280", + "teal": 920, + "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": [ - 805, - 806, 807 ] }, { - "teal": 921, - "source": "examples/reti/stakingPool.algo.ts:282", + "teal": 925, + "source": "examples/reti/stakingPool.algo.ts:287", "pc": [ 808, 809, @@ -4205,31 +4206,30 @@ ] }, { - "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", + "teal": 929, + "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ 811 ] }, { - "teal": 929, - "source": "examples/reti/stakingPool.algo.ts:287", + "teal": 930, + "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ 812, - 813, - 814 + 813 ] }, { - "teal": 933, + "teal": 935, "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ + 814, 815 ] }, { - "teal": 934, + "teal": 936, "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ 816, @@ -4237,123 +4237,123 @@ ] }, { - "teal": 939, + "teal": 937, "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ - 818, - 819 + 818 ] }, { - "teal": 940, + "teal": 938, "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ + 819, 820, 821 ] }, { - "teal": 941, - "source": "examples/reti/stakingPool.algo.ts:289", + "teal": 943, + "source": "examples/reti/stakingPool.algo.ts:290", "pc": [ - 822 + 822, + 823 ] }, { - "teal": 942, - "source": "examples/reti/stakingPool.algo.ts:289", + "teal": 944, + "source": "examples/reti/stakingPool.algo.ts:290", "pc": [ - 823, 824, 825 ] }, { - "teal": 947, + "teal": 945, "source": "examples/reti/stakingPool.algo.ts:290", "pc": [ - 826, - 827 + 826 ] }, { - "teal": 948, + "teal": 946, "source": "examples/reti/stakingPool.algo.ts:290", "pc": [ + 827, 828, 829 ] }, { - "teal": 949, - "source": "examples/reti/stakingPool.algo.ts:290", + "teal": 951, + "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ 830 ] }, { - "teal": 950, - "source": "examples/reti/stakingPool.algo.ts:290", + "teal": 952, + "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 831, - 832, - 833 + 831 ] }, { - "teal": 955, + "teal": 953, "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 834 + 832, + 833 ] }, { - "teal": 956, + "teal": 954, "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 835 + 834 ] }, { - "teal": 957, + "teal": 955, "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 836, - 837 + 835, + 836 ] }, { - "teal": 958, + "teal": 956, "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ + 837, 838 ] }, { - "teal": 959, + "teal": 957, "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 839, - 840 + 839 ] }, { - "teal": 960, + "teal": 958, "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 841, - 842 + 840, + 841 ] }, { - "teal": 961, + "teal": 959, "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ + 842, 843 ] }, { - "teal": 962, + "teal": 960, "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ 844, @@ -4361,7 +4361,7 @@ ] }, { - "teal": 963, + "teal": 961, "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ 846, @@ -4369,249 +4369,249 @@ ] }, { - "teal": 964, + "teal": 962, "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 848, - 849 + 848 ] }, { - "teal": 965, - "source": "examples/reti/stakingPool.algo.ts:291", + "teal": 967, + "source": "examples/reti/stakingPool.algo.ts:293", "pc": [ - 850, - 851 + 849, + 850 ] }, { - "teal": 966, - "source": "examples/reti/stakingPool.algo.ts:291", + "teal": 968, + "source": "examples/reti/stakingPool.algo.ts:293", "pc": [ - 852 + 851 ] }, { - "teal": 971, + "teal": 969, "source": "examples/reti/stakingPool.algo.ts:293", "pc": [ - 853, - 854 + 852 ] }, { - "teal": 972, + "teal": 970, "source": "examples/reti/stakingPool.algo.ts:293", "pc": [ - 855 + 853 ] }, { - "teal": 973, + "teal": 971, "source": "examples/reti/stakingPool.algo.ts:293", "pc": [ - 856 + 854 ] }, { - "teal": 974, + "teal": 972, "source": "examples/reti/stakingPool.algo.ts:293", "pc": [ - 857 + 855, + 856 ] }, { - "teal": 975, + "teal": 973, "source": "examples/reti/stakingPool.algo.ts:293", "pc": [ - 858 + 857 ] }, { - "teal": 976, + "teal": 974, "source": "examples/reti/stakingPool.algo.ts:293", "pc": [ - 859, - 860 + 858, + 859 ] }, { - "teal": 977, - "source": "examples/reti/stakingPool.algo.ts:293", + "teal": 979, + "source": "examples/reti/stakingPool.algo.ts:294", "pc": [ + 860, 861 ] }, { - "teal": 978, - "source": "examples/reti/stakingPool.algo.ts:293", + "teal": 980, + "source": "examples/reti/stakingPool.algo.ts:294", "pc": [ 862, - 863 + 863, + 864 ] }, { - "teal": 983, + "teal": 981, "source": "examples/reti/stakingPool.algo.ts:294", "pc": [ - 864, - 865 + 865, + 866 ] }, { - "teal": 984, + "teal": 982, "source": "examples/reti/stakingPool.algo.ts:294", "pc": [ - 866, - 867, - 868 + 867 ] }, { - "teal": 985, + "teal": 983, "source": "examples/reti/stakingPool.algo.ts:294", "pc": [ + 868, 869, 870 ] }, { - "teal": 986, - "source": "examples/reti/stakingPool.algo.ts:294", + "teal": 989, + "source": "examples/reti/stakingPool.algo.ts:295", "pc": [ - 871 + 871, + 872 ] }, { - "teal": 987, - "source": "examples/reti/stakingPool.algo.ts:294", + "teal": 990, + "source": "examples/reti/stakingPool.algo.ts:295", "pc": [ - 872, - 873, - 874 + 873 ] }, { - "teal": 993, + "teal": 991, "source": "examples/reti/stakingPool.algo.ts:295", "pc": [ - 875, - 876 + 874 ] }, { - "teal": 994, + "teal": 992, "source": "examples/reti/stakingPool.algo.ts:295", "pc": [ + 875, + 876, 877 ] }, { - "teal": 995, - "source": "examples/reti/stakingPool.algo.ts:295", + "teal": 997, + "source": "examples/reti/stakingPool.algo.ts:297", "pc": [ - 878 + 878, + 879 ] }, { - "teal": 996, - "source": "examples/reti/stakingPool.algo.ts:295", + "teal": 998, + "source": "examples/reti/stakingPool.algo.ts:297", "pc": [ - 879, 880, - 881 + 881, + 882 ] }, { - "teal": 1001, + "teal": 999, "source": "examples/reti/stakingPool.algo.ts:297", "pc": [ - 882, 883 ] }, { - "teal": 1002, + "teal": 1000, "source": "examples/reti/stakingPool.algo.ts:297", "pc": [ 884, - 885, - 886 + 885 ] }, { - "teal": 1003, - "source": "examples/reti/stakingPool.algo.ts:297", + "teal": 1006, + "source": "examples/reti/stakingPool.algo.ts:299", "pc": [ + 886, 887 ] }, { - "teal": 1004, - "source": "examples/reti/stakingPool.algo.ts:297", + "teal": 1007, + "source": "examples/reti/stakingPool.algo.ts:299", "pc": [ 888, - 889 + 889, + 890 ] }, { - "teal": 1010, + "teal": 1008, "source": "examples/reti/stakingPool.algo.ts:299", "pc": [ - 890, 891 ] }, { - "teal": 1011, + "teal": 1009, "source": "examples/reti/stakingPool.algo.ts:299", "pc": [ 892, - 893, - 894 + 893 ] }, { - "teal": 1012, + "teal": 1010, "source": "examples/reti/stakingPool.algo.ts:299", "pc": [ - 895 + 894 ] }, { - "teal": 1013, + "teal": 1011, "source": "examples/reti/stakingPool.algo.ts:299", "pc": [ + 895, 896, 897 ] }, { - "teal": 1014, - "source": "examples/reti/stakingPool.algo.ts:299", + "teal": 1015, + "source": "examples/reti/stakingPool.algo.ts:300", + "errorMessage": "Insufficient balance", "pc": [ 898 ] }, { - "teal": 1015, - "source": "examples/reti/stakingPool.algo.ts:299", + "teal": 1020, + "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ 899, - 900, - 901 + 900 ] }, { - "teal": 1019, - "source": "examples/reti/stakingPool.algo.ts:300", - "errorMessage": "Insufficient balance", + "teal": 1021, + "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ + 901, 902 ] }, { - "teal": 1024, + "teal": 1022, "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ 903, @@ -4619,242 +4619,242 @@ ] }, { - "teal": 1025, + "teal": 1023, "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ 905, - 906 + 906, + 907 ] }, { - "teal": 1026, + "teal": 1024, "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ - 907, 908 ] }, { - "teal": 1027, + "teal": 1025, "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ 909, - 910, - 911 + 910 ] }, { - "teal": 1028, + "teal": 1026, "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ - 912 + 911 ] }, { - "teal": 1029, + "teal": 1027, "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ - 913, - 914 + 912 ] }, { - "teal": 1030, + "teal": 1028, "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ - 915 + 913 ] }, { - "teal": 1031, + "teal": 1029, "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ - 916 + 914, + 915 ] }, { - "teal": 1032, - "source": "examples/reti/stakingPool.algo.ts:302", + "teal": 1033, + "source": "examples/reti/stakingPool.algo.ts:303", "pc": [ + 916, 917 ] }, { - "teal": 1033, - "source": "examples/reti/stakingPool.algo.ts:302", + "teal": 1034, + "source": "examples/reti/stakingPool.algo.ts:303", "pc": [ - 918, - 919 + 918 ] }, { - "teal": 1037, + "teal": 1035, "source": "examples/reti/stakingPool.algo.ts:303", "pc": [ - 920, - 921 + 919, + 920 ] }, { - "teal": 1038, + "teal": 1036, "source": "examples/reti/stakingPool.algo.ts:303", "pc": [ - 922 + 921 ] }, { - "teal": 1039, + "teal": 1037, "source": "examples/reti/stakingPool.algo.ts:303", "pc": [ - 923, - 924 + 922, + 923 ] }, { - "teal": 1040, + "teal": 1038, "source": "examples/reti/stakingPool.algo.ts:303", "pc": [ - 925 + 924 ] }, { - "teal": 1041, + "teal": 1039, "source": "examples/reti/stakingPool.algo.ts:303", "pc": [ - 926, - 927 + 925 ] }, { - "teal": 1042, - "source": "examples/reti/stakingPool.algo.ts:303", + "teal": 1043, + "source": "examples/reti/stakingPool.algo.ts:305", "pc": [ - 928 + 926 ] }, { - "teal": 1043, - "source": "examples/reti/stakingPool.algo.ts:303", + "teal": 1044, + "source": "examples/reti/stakingPool.algo.ts:305", "pc": [ - 929 + 927, + 928 ] }, { - "teal": 1047, - "source": "examples/reti/stakingPool.algo.ts:305", + "teal": 1049, + "source": "examples/reti/stakingPool.algo.ts:306", "pc": [ + 929, 930 ] }, { - "teal": 1048, - "source": "examples/reti/stakingPool.algo.ts:305", + "teal": 1050, + "source": "examples/reti/stakingPool.algo.ts:306", "pc": [ 931, - 932 + 932, + 933 ] }, { - "teal": 1053, + "teal": 1051, "source": "examples/reti/stakingPool.algo.ts:306", "pc": [ - 933, 934 ] }, { - "teal": 1054, + "teal": 1052, "source": "examples/reti/stakingPool.algo.ts:306", "pc": [ - 935, - 936, - 937 + 935 ] }, { - "teal": 1055, + "teal": 1053, "source": "examples/reti/stakingPool.algo.ts:306", "pc": [ - 938 + 936 ] }, { - "teal": 1056, + "teal": 1054, "source": "examples/reti/stakingPool.algo.ts:306", "pc": [ + 937, + 938, 939 ] }, { - "teal": 1057, - "source": "examples/reti/stakingPool.algo.ts:306", + "teal": 1060, + "source": "examples/reti/stakingPool.algo.ts:308", "pc": [ - 940 + 940, + 941 ] }, { - "teal": 1058, - "source": "examples/reti/stakingPool.algo.ts:306", + "teal": 1061, + "source": "examples/reti/stakingPool.algo.ts:308", "pc": [ - 941, - 942, - 943 + 942 ] }, { - "teal": 1064, + "teal": 1062, "source": "examples/reti/stakingPool.algo.ts:308", "pc": [ - 944, - 945 + 943 ] }, { - "teal": 1065, + "teal": 1063, "source": "examples/reti/stakingPool.algo.ts:308", "pc": [ - 946 + 944 ] }, { - "teal": 1066, + "teal": 1064, "source": "examples/reti/stakingPool.algo.ts:308", "pc": [ + 945, + 946, 947 ] }, { - "teal": 1067, - "source": "examples/reti/stakingPool.algo.ts:308", + "teal": 1072, + "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ 948 ] }, { - "teal": 1068, - "source": "examples/reti/stakingPool.algo.ts:308", + "teal": 1073, + "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 949, - 950, - 951 + 949 ] }, { - "teal": 1076, + "teal": 1074, "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 952 + 950, + 951 ] }, { - "teal": 1077, + "teal": 1075, "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ + 952, 953 ] }, { - "teal": 1078, + "teal": 1076, "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ 954, @@ -4862,300 +4862,300 @@ ] }, { - "teal": 1079, - "source": "examples/reti/stakingPool.algo.ts:309", + "teal": 1080, + "source": "examples/reti/stakingPool.algo.ts:310", "pc": [ - 956, - 957 + 956 ] }, { - "teal": 1080, - "source": "examples/reti/stakingPool.algo.ts:309", + "teal": 1081, + "source": "examples/reti/stakingPool.algo.ts:310", "pc": [ - 958, - 959 + 957 ] }, { - "teal": 1084, + "teal": 1082, "source": "examples/reti/stakingPool.algo.ts:310", "pc": [ - 960 + 958, + 959 ] }, { - "teal": 1085, - "source": "examples/reti/stakingPool.algo.ts:310", + "teal": 1086, + "source": "examples/reti/stakingPool.algo.ts:311", "pc": [ - 961 + 960 ] }, { - "teal": 1086, - "source": "examples/reti/stakingPool.algo.ts:310", + "teal": 1087, + "source": "examples/reti/stakingPool.algo.ts:311", "pc": [ - 962, - 963 + 961 ] }, { - "teal": 1090, + "teal": 1088, "source": "examples/reti/stakingPool.algo.ts:311", "pc": [ - 964 + 962 ] }, { - "teal": 1091, + "teal": 1089, "source": "examples/reti/stakingPool.algo.ts:311", "pc": [ - 965 + 963, + 964 ] }, { "teal": 1092, - "source": "examples/reti/stakingPool.algo.ts:311", + "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 966 + 965 ] }, { "teal": 1093, - "source": "examples/reti/stakingPool.algo.ts:311", + "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 967, - 968 + 966, + 967 ] }, { "teal": 1096, "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 969 + 968 ] }, { "teal": 1097, "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 970, - 971 + 969, + 970 ] }, { - "teal": 1100, + "teal": 1098, "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 972 + 971 ] }, { - "teal": 1101, + "teal": 1099, "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 973, - 974 + 972 ] }, { - "teal": 1102, + "teal": 1100, "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 975 + 973, + 974 ] }, { - "teal": 1103, + "teal": 1101, "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 976 + 975, + 976, + 977 ] }, { - "teal": 1104, + "teal": 1102, "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 977, - 978 + 978, + 979 ] }, { - "teal": 1105, - "source": "examples/reti/stakingPool.algo.ts:309", + "teal": 1110, + "source": "examples/reti/stakingPool.algo.ts:317", "pc": [ - 979, - 980, - 981 + 980 ] }, { - "teal": 1106, - "source": "examples/reti/stakingPool.algo.ts:309", + "teal": 1111, + "source": "examples/reti/stakingPool.algo.ts:317", "pc": [ - 982, - 983 + 981, + 982 ] }, { - "teal": 1114, + "teal": 1112, "source": "examples/reti/stakingPool.algo.ts:317", "pc": [ + 983, 984 ] }, { - "teal": 1115, - "source": "examples/reti/stakingPool.algo.ts:317", + "teal": 1116, + "source": "examples/reti/stakingPool.algo.ts:318", "pc": [ 985, 986 ] }, { - "teal": 1116, - "source": "examples/reti/stakingPool.algo.ts:317", + "teal": 1117, + "source": "examples/reti/stakingPool.algo.ts:318", "pc": [ 987, - 988 + 988, + 989 ] }, { - "teal": 1120, + "teal": 1118, "source": "examples/reti/stakingPool.algo.ts:318", "pc": [ - 989, 990 ] }, { - "teal": 1121, + "teal": 1119, "source": "examples/reti/stakingPool.algo.ts:318", "pc": [ 991, - 992, - 993 + 992 ] }, { - "teal": 1122, - "source": "examples/reti/stakingPool.algo.ts:318", + "teal": 1123, + "source": "examples/reti/stakingPool.algo.ts:319", "pc": [ + 993, 994 ] }, { - "teal": 1123, - "source": "examples/reti/stakingPool.algo.ts:318", + "teal": 1124, + "source": "examples/reti/stakingPool.algo.ts:319", "pc": [ 995, 996 ] }, { - "teal": 1127, - "source": "examples/reti/stakingPool.algo.ts:319", + "teal": 1128, + "source": "examples/reti/stakingPool.algo.ts:320", "pc": [ 997, 998 ] }, { - "teal": 1128, - "source": "examples/reti/stakingPool.algo.ts:319", + "teal": 1129, + "source": "examples/reti/stakingPool.algo.ts:320", "pc": [ 999, - 1000 + 1000, + 1001 ] }, { - "teal": 1132, + "teal": 1130, "source": "examples/reti/stakingPool.algo.ts:320", "pc": [ - 1001, 1002 ] }, { - "teal": 1133, + "teal": 1131, "source": "examples/reti/stakingPool.algo.ts:320", "pc": [ 1003, - 1004, - 1005 + 1004 ] }, { "teal": 1134, - "source": "examples/reti/stakingPool.algo.ts:320", + "source": "examples/reti/stakingPool.algo.ts:317", "pc": [ - 1006 + 1005 ] }, { "teal": 1135, - "source": "examples/reti/stakingPool.algo.ts:320", + "source": "examples/reti/stakingPool.algo.ts:317", "pc": [ - 1007, - 1008 + 1006, + 1007 ] }, { "teal": 1138, "source": "examples/reti/stakingPool.algo.ts:317", "pc": [ - 1009 + 1008 ] }, { - "teal": 1139, - "source": "examples/reti/stakingPool.algo.ts:317", + "teal": 1142, + "source": "examples/reti/stakingPool.algo.ts:322", "pc": [ - 1010, - 1011 + 1009, + 1010 ] }, { - "teal": 1142, - "source": "examples/reti/stakingPool.algo.ts:317", + "teal": 1143, + "source": "examples/reti/stakingPool.algo.ts:322", "pc": [ - 1012 + 1011, + 1012, + 1013 ] }, { - "teal": 1146, + "teal": 1144, "source": "examples/reti/stakingPool.algo.ts:322", "pc": [ - 1013, 1014 ] }, { - "teal": 1147, + "teal": 1145, "source": "examples/reti/stakingPool.algo.ts:322", "pc": [ 1015, - 1016, - 1017 + 1016 ] }, { - "teal": 1148, - "source": "examples/reti/stakingPool.algo.ts:322", + "teal": 1149, + "source": "examples/reti/stakingPool.algo.ts:323", "pc": [ + 1017, 1018 ] }, { - "teal": 1149, - "source": "examples/reti/stakingPool.algo.ts:322", + "teal": 1150, + "source": "examples/reti/stakingPool.algo.ts:323", "pc": [ 1019, 1020 ] }, { - "teal": 1153, + "teal": 1151, "source": "examples/reti/stakingPool.algo.ts:323", "pc": [ 1021, @@ -5163,7 +5163,7 @@ ] }, { - "teal": 1154, + "teal": 1152, "source": "examples/reti/stakingPool.algo.ts:323", "pc": [ 1023, @@ -5171,64 +5171,64 @@ ] }, { - "teal": 1155, - "source": "examples/reti/stakingPool.algo.ts:323", + "teal": 1153, + "source": "examples/reti/stakingPool.algo.ts:308", "pc": [ 1025, - 1026 + 1026, + 1027 ] }, { - "teal": 1156, - "source": "examples/reti/stakingPool.algo.ts:323", + "teal": 1158, + "source": "examples/reti/stakingPool.algo.ts:328", "pc": [ - 1027, - 1028 + 1028, + 1029 ] }, { - "teal": 1157, - "source": "examples/reti/stakingPool.algo.ts:308", + "teal": 1159, + "source": "examples/reti/stakingPool.algo.ts:328", "pc": [ - 1029, 1030, - 1031 + 1031, + 1032 ] }, { - "teal": 1162, + "teal": 1160, "source": "examples/reti/stakingPool.algo.ts:328", "pc": [ - 1032, 1033 ] }, { - "teal": 1163, + "teal": 1161, "source": "examples/reti/stakingPool.algo.ts:328", "pc": [ 1034, - 1035, - 1036 + 1035 ] }, { - "teal": 1164, - "source": "examples/reti/stakingPool.algo.ts:328", + "teal": 1165, + "source": "examples/reti/stakingPool.algo.ts:329", "pc": [ + 1036, 1037 ] }, { - "teal": 1165, - "source": "examples/reti/stakingPool.algo.ts:328", + "teal": 1166, + "source": "examples/reti/stakingPool.algo.ts:329", "pc": [ 1038, 1039 ] }, { - "teal": 1169, + "teal": 1167, "source": "examples/reti/stakingPool.algo.ts:329", "pc": [ 1040, @@ -5236,7 +5236,7 @@ ] }, { - "teal": 1170, + "teal": 1168, "source": "examples/reti/stakingPool.algo.ts:329", "pc": [ 1042, @@ -5244,389 +5244,389 @@ ] }, { - "teal": 1171, - "source": "examples/reti/stakingPool.algo.ts:329", + "teal": 1178, + "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ 1044, 1045 ] }, { - "teal": 1172, - "source": "examples/reti/stakingPool.algo.ts:329", + "teal": 1179, + "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ 1046, - 1047 + 1047, + 1048 ] }, { - "teal": 1182, + "teal": 1180, "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1048, 1049 ] }, { - "teal": 1183, + "teal": 1181, "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1050, - 1051, - 1052 + 1050 ] }, { - "teal": 1184, + "teal": 1182, "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1053 + 1051 ] }, { - "teal": 1185, + "teal": 1183, "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1054 + 1052 ] }, { - "teal": 1186, + "teal": 1184, "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ + 1053, + 1054, 1055 ] }, { - "teal": 1187, + "teal": 1185, "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1056 + 1056, + 1057 ] }, { - "teal": 1188, + "teal": 1186, "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1057, 1058, - 1059 + 1059, + 1060 ] }, { - "teal": 1189, + "teal": 1187, "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1060, 1061 ] }, { - "teal": 1190, + "teal": 1188, "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ 1062, - 1063, - 1064 - ] - }, - { - "teal": 1191, - "source": "examples/reti/stakingPool.algo.ts:335", - "pc": [ - 1065 + 1063 ] }, { - "teal": 1192, + "teal": 1189, "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1066, - 1067 + 1064 ] }, { - "teal": 1193, + "teal": 1190, "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1068 + 1065 ] }, { - "teal": 1194, + "teal": 1191, "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1069 + 1066 ] }, { "teal": 1195, - "source": "examples/reti/stakingPool.algo.ts:335", - "pc": [ - 1070 - ] - }, - { - "teal": 1199, "source": "examples/reti/stakingPool.algo.ts:334", "errorMessage": "cannot reduce balance below minimum allowed stake unless all is removed", "pc": [ - 1071 + 1067 ] }, { - "teal": 1207, + "teal": 1203, "source": "examples/reti/stakingPool.algo.ts:342", "pc": [ - 1072 + 1068 ] }, { - "teal": 1208, + "teal": 1204, "source": "examples/reti/stakingPool.algo.ts:342", "pc": [ - 1073 + 1069 ] }, { - "teal": 1209, + "teal": 1205, "source": "examples/reti/stakingPool.algo.ts:342", "pc": [ - 1074, - 1075 + 1070, + 1071 ] }, { - "teal": 1213, + "teal": 1209, "source": "examples/reti/stakingPool.algo.ts:343", "pc": [ - 1076, - 1077 + 1072, + 1073 ] }, { - "teal": 1214, + "teal": 1210, "source": "examples/reti/stakingPool.algo.ts:343", "pc": [ - 1078, - 1079 + 1074, + 1075 ] }, { - "teal": 1218, + "teal": 1214, "source": "examples/reti/stakingPool.algo.ts:344", "pc": [ - 1080, - 1081 + 1076, + 1077 ] }, { - "teal": 1219, + "teal": 1215, "source": "examples/reti/stakingPool.algo.ts:344", "pc": [ - 1082, - 1083 + 1078, + 1079 ] }, { - "teal": 1223, + "teal": 1219, "source": "examples/reti/stakingPool.algo.ts:345", "pc": [ + 1080, + 1081, + 1082, + 1083, 1084, 1085, 1086, 1087, 1088, - 1089, - 1090, - 1091, - 1092, - 1093 + 1089 ] }, { - "teal": 1224, + "teal": 1220, "source": "examples/reti/stakingPool.algo.ts:345", "pc": [ - 1094, - 1095 + 1090, + 1091 ] }, { - "teal": 1227, + "teal": 1223, "source": "examples/reti/stakingPool.algo.ts:342", "pc": [ - 1096 + 1092 ] }, { - "teal": 1228, + "teal": 1224, "source": "examples/reti/stakingPool.algo.ts:342", "pc": [ - 1097, - 1098 + 1093, + 1094 ] }, { - "teal": 1231, + "teal": 1227, "source": "examples/reti/stakingPool.algo.ts:342", "pc": [ - 1099 + 1095 ] }, { - "teal": 1235, + "teal": 1231, "source": "examples/reti/stakingPool.algo.ts:347", "pc": [ - 1100 + 1096 ] }, { - "teal": 1236, + "teal": 1232, "source": "examples/reti/stakingPool.algo.ts:347", "pc": [ - 1101, - 1102 + 1097, + 1098 ] }, { - "teal": 1241, + "teal": 1237, "source": "examples/reti/stakingPool.algo.ts:348", "pc": [ - 1103, - 1104 + 1099, + 1100 ] }, { - "teal": 1242, + "teal": 1238, "source": "examples/reti/stakingPool.algo.ts:348", "pc": [ - 1105, - 1106, - 1107 + 1101, + 1102, + 1103 ] }, { - "teal": 1243, + "teal": 1239, "source": "examples/reti/stakingPool.algo.ts:348", "pc": [ - 1108 + 1104 ] }, { - "teal": 1244, + "teal": 1240, "source": "examples/reti/stakingPool.algo.ts:348", "pc": [ - 1109 + 1105 ] }, { - "teal": 1245, + "teal": 1241, "source": "examples/reti/stakingPool.algo.ts:348", "pc": [ - 1110 + 1106 ] }, { - "teal": 1246, + "teal": 1242, "source": "examples/reti/stakingPool.algo.ts:348", "pc": [ - 1111, - 1112, - 1113 + 1107, + 1108, + 1109 ] }, { - "teal": 1251, + "teal": 1247, "source": "examples/reti/stakingPool.algo.ts:350", "pc": [ - 1114, - 1115 + 1110, + 1111 ] }, { - "teal": 1252, + "teal": 1248, "source": "examples/reti/stakingPool.algo.ts:350", "pc": [ - 1116 + 1112 ] }, { - "teal": 1253, + "teal": 1249, "source": "examples/reti/stakingPool.algo.ts:350", "pc": [ - 1117 + 1113 ] }, { - "teal": 1254, + "teal": 1250, "source": "examples/reti/stakingPool.algo.ts:350", "pc": [ - 1118 + 1114 ] }, { - "teal": 1255, + "teal": 1251, "source": "examples/reti/stakingPool.algo.ts:350", "pc": [ - 1119, - 1120 + 1115, + 1116 ] }, { - "teal": 1256, + "teal": 1252, "source": "examples/reti/stakingPool.algo.ts:350", "pc": [ - 1121 + 1117 ] }, { - "teal": 1257, + "teal": 1253, "source": "examples/reti/stakingPool.algo.ts:350", "pc": [ - 1122 + 1118 ] }, { - "teal": 1261, + "teal": 1257, "source": "examples/reti/stakingPool.algo.ts:351", "pc": [ - 1123, - 1124 + 1119, + 1120 ] }, { - "teal": 1262, + "teal": 1258, "source": "examples/reti/stakingPool.algo.ts:351", "pc": [ - 1125 + 1121 ] }, { - "teal": 1263, + "teal": 1259, "source": "examples/reti/stakingPool.algo.ts:351", "pc": [ - 1126, - 1127 + 1122, + 1123 ] }, { - "teal": 1264, + "teal": 1260, "source": "examples/reti/stakingPool.algo.ts:351", "pc": [ - 1128 + 1124 ] }, { - "teal": 1265, + "teal": 1261, "source": "examples/reti/stakingPool.algo.ts:351", + "pc": [ + 1125, + 1126 + ] + }, + { + "teal": 1265, + "source": "examples/reti/stakingPool.algo.ts:352", + "pc": [ + 1127, + 1128 + ] + }, + { + "teal": 1266, + "source": "examples/reti/stakingPool.algo.ts:352", "pc": [ 1129, 1130 ] }, { - "teal": 1269, + "teal": 1267, "source": "examples/reti/stakingPool.algo.ts:352", "pc": [ 1131, @@ -5634,7 +5634,7 @@ ] }, { - "teal": 1270, + "teal": 1268, "source": "examples/reti/stakingPool.algo.ts:352", "pc": [ 1133, @@ -5642,23 +5642,23 @@ ] }, { - "teal": 1271, - "source": "examples/reti/stakingPool.algo.ts:352", + "teal": 1272, + "source": "examples/reti/stakingPool.algo.ts:353", "pc": [ 1135, 1136 ] }, { - "teal": 1272, - "source": "examples/reti/stakingPool.algo.ts:352", + "teal": 1273, + "source": "examples/reti/stakingPool.algo.ts:353", "pc": [ 1137, 1138 ] }, { - "teal": 1276, + "teal": 1274, "source": "examples/reti/stakingPool.algo.ts:353", "pc": [ 1139, @@ -5666,7 +5666,7 @@ ] }, { - "teal": 1277, + "teal": 1275, "source": "examples/reti/stakingPool.algo.ts:353", "pc": [ 1141, @@ -5674,38 +5674,44 @@ ] }, { - "teal": 1278, - "source": "examples/reti/stakingPool.algo.ts:353", + "teal": 1279, + "source": "examples/reti/stakingPool.algo.ts:354", "pc": [ - 1143, - 1144 + 1143 ] }, { - "teal": 1279, - "source": "examples/reti/stakingPool.algo.ts:353", + "teal": 1280, + "source": "examples/reti/stakingPool.algo.ts:354", "pc": [ - 1145, - 1146 + 1144, + 1145 ] }, { - "teal": 1283, - "source": "examples/reti/stakingPool.algo.ts:354", + "teal": 1285, + "source": "examples/reti/stakingPool.algo.ts:357", "pc": [ + 1146, 1147 ] }, { - "teal": 1284, - "source": "examples/reti/stakingPool.algo.ts:354", + "teal": 1286, + "source": "examples/reti/stakingPool.algo.ts:357", + "pc": [ + 1148 + ] + }, + { + "teal": 1287, + "source": "examples/reti/stakingPool.algo.ts:357", "pc": [ - 1148, 1149 ] }, { - "teal": 1289, + "teal": 1288, "source": "examples/reti/stakingPool.algo.ts:357", "pc": [ 1150, @@ -5713,66 +5719,66 @@ ] }, { - "teal": 1290, + "teal": 1289, "source": "examples/reti/stakingPool.algo.ts:357", "pc": [ 1152 ] }, { - "teal": 1291, + "teal": 1290, "source": "examples/reti/stakingPool.algo.ts:357", "pc": [ - 1153 + 1153, + 1154 ] }, { - "teal": 1292, + "teal": 1291, "source": "examples/reti/stakingPool.algo.ts:357", "pc": [ - 1154, 1155 ] }, { - "teal": 1293, - "source": "examples/reti/stakingPool.algo.ts:357", + "teal": 1295, + "source": "examples/reti/stakingPool.algo.ts:359", "pc": [ - 1156 + 1156, + 1157 ] }, { - "teal": 1294, - "source": "examples/reti/stakingPool.algo.ts:357", + "teal": 1296, + "source": "examples/reti/stakingPool.algo.ts:359", "pc": [ - 1157, 1158 ] }, { - "teal": 1295, - "source": "examples/reti/stakingPool.algo.ts:357", + "teal": 1297, + "source": "examples/reti/stakingPool.algo.ts:359", "pc": [ - 1159 + 1159, + 1160 ] }, { - "teal": 1299, + "teal": 1298, "source": "examples/reti/stakingPool.algo.ts:359", "pc": [ - 1160, 1161 ] }, { - "teal": 1300, + "teal": 1299, "source": "examples/reti/stakingPool.algo.ts:359", "pc": [ 1162 ] }, { - "teal": 1301, + "teal": 1300, "source": "examples/reti/stakingPool.algo.ts:359", "pc": [ 1163, @@ -5780,95 +5786,96 @@ ] }, { - "teal": 1302, + "teal": 1301, "source": "examples/reti/stakingPool.algo.ts:359", "pc": [ 1165 ] }, { - "teal": 1303, + "teal": 1302, "source": "examples/reti/stakingPool.algo.ts:359", "pc": [ - 1166 + 1166, + 1167 ] }, { - "teal": 1304, - "source": "examples/reti/stakingPool.algo.ts:359", + "teal": 1306, + "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1167, - 1168 + 1168, + 1169 ] }, { - "teal": 1305, - "source": "examples/reti/stakingPool.algo.ts:359", + "teal": 1307, + "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1169 + 1170 ] }, { - "teal": 1306, - "source": "examples/reti/stakingPool.algo.ts:359", + "teal": 1308, + "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1170, - 1171 + 1171, + 1172 ] }, { - "teal": 1310, + "teal": 1309, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1172, 1173 ] }, { - "teal": 1311, + "teal": 1310, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ 1174 ] }, { - "teal": 1312, + "teal": 1311, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1175, - 1176 + 1175 ] }, { - "teal": 1313, + "teal": 1312, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1177 + 1176 ] }, { - "teal": 1314, + "teal": 1313, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ + 1177, 1178 ] }, { - "teal": 1315, + "teal": 1314, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ 1179 ] }, { - "teal": 1316, + "teal": 1317, "source": "examples/reti/stakingPool.algo.ts:360", + "errorMessage": "(amountToUnstake as uint128) * (roundsLeftInBin as uint128) overflowed 128 bits", "pc": [ 1180 ] }, { - "teal": 1317, + "teal": 1318, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ 1181, @@ -5876,95 +5883,94 @@ ] }, { - "teal": 1318, + "teal": 1319, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ 1183 ] }, { - "teal": 1321, + "teal": 1320, "source": "examples/reti/stakingPool.algo.ts:360", - "errorMessage": "(amountToUnstake as uint128) * (roundsLeftInBin as uint128) overflowed 128 bits", "pc": [ 1184 ] }, { - "teal": 1322, + "teal": 1321, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1185, - 1186 + 1185 ] }, { - "teal": 1323, + "teal": 1322, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1187 + 1186 ] }, { - "teal": 1324, + "teal": 1323, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ + 1187, 1188 ] }, { - "teal": 1325, + "teal": 1324, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ 1189 ] }, { - "teal": 1326, + "teal": 1325, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ 1190 ] }, { - "teal": 1327, + "teal": 1326, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1191, - 1192 + 1191 ] }, { - "teal": 1328, + "teal": 1327, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ + 1192, 1193 ] }, { - "teal": 1329, - "source": "examples/reti/stakingPool.algo.ts:360", + "teal": 1331, + "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1194 + 1194, + 1195 ] }, { - "teal": 1330, - "source": "examples/reti/stakingPool.algo.ts:360", + "teal": 1332, + "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1195 + 1196 ] }, { - "teal": 1331, - "source": "examples/reti/stakingPool.algo.ts:360", + "teal": 1333, + "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1196, 1197 ] }, { - "teal": 1335, + "teal": 1334, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ 1198, @@ -5972,50 +5978,51 @@ ] }, { - "teal": 1336, + "teal": 1335, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ 1200 ] }, { - "teal": 1337, + "teal": 1336, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ 1201 ] }, { - "teal": 1338, + "teal": 1337, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1202, - 1203 + 1202 ] }, { - "teal": 1339, + "teal": 1338, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ + 1203, 1204 ] }, { - "teal": 1340, + "teal": 1339, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ 1205 ] }, { - "teal": 1341, + "teal": 1342, "source": "examples/reti/stakingPool.algo.ts:361", + "errorMessage": "this.stakeAccumulator.value - subtractAmount overflowed 128 bits", "pc": [ 1206 ] }, { - "teal": 1342, + "teal": 1343, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ 1207, @@ -6023,25 +6030,30 @@ ] }, { - "teal": 1343, + "teal": 1344, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ 1209 ] }, { - "teal": 1346, + "teal": 1345, "source": "examples/reti/stakingPool.algo.ts:361", - "errorMessage": "this.stakeAccumulator.value - subtractAmount overflowed 128 bits", "pc": [ 1210 ] }, + { + "teal": 1346, + "source": "examples/reti/stakingPool.algo.ts:361", + "pc": [ + 1211 + ] + }, { "teal": 1347, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1211, 1212 ] }, @@ -6049,346 +6061,340 @@ "teal": 1348, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1213 + 1213, + 1214 ] }, { "teal": 1349, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1214 + 1215 ] }, { "teal": 1350, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1215 + 1216 ] }, { "teal": 1351, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1216 + 1217 ] }, { "teal": 1352, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1217, 1218 ] }, { - "teal": 1353, - "source": "examples/reti/stakingPool.algo.ts:361", + "teal": 1365, + "source": "examples/reti/stakingPool.algo.ts:366", "pc": [ 1219 ] }, { - "teal": 1354, - "source": "examples/reti/stakingPool.algo.ts:361", + "teal": 1366, + "source": "examples/reti/stakingPool.algo.ts:366", "pc": [ 1220 ] }, { - "teal": 1355, - "source": "examples/reti/stakingPool.algo.ts:361", - "pc": [ - 1221 - ] - }, - { - "teal": 1356, - "source": "examples/reti/stakingPool.algo.ts:361", + "teal": 1367, + "source": "examples/reti/stakingPool.algo.ts:366", "pc": [ + 1221, 1222 ] }, { - "teal": 1369, + "teal": 1368, "source": "examples/reti/stakingPool.algo.ts:366", "pc": [ - 1223 + 1223, + 1224 ] }, { - "teal": 1370, + "teal": 1369, "source": "examples/reti/stakingPool.algo.ts:366", "pc": [ - 1224 + 1225, + 1226 ] }, { - "teal": 1371, - "source": "examples/reti/stakingPool.algo.ts:366", + "teal": 1373, + "source": "examples/reti/stakingPool.algo.ts:367", "pc": [ - 1225, - 1226 + 1227 ] }, { - "teal": 1372, - "source": "examples/reti/stakingPool.algo.ts:366", + "teal": 1374, + "source": "examples/reti/stakingPool.algo.ts:367", "pc": [ - 1227, 1228 ] }, { - "teal": 1373, - "source": "examples/reti/stakingPool.algo.ts:366", + "teal": 1375, + "source": "examples/reti/stakingPool.algo.ts:367", "pc": [ 1229, 1230 ] }, { - "teal": 1377, - "source": "examples/reti/stakingPool.algo.ts:367", + "teal": 1385, + "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ 1231 ] }, { - "teal": 1378, - "source": "examples/reti/stakingPool.algo.ts:367", + "teal": 1386, + "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ 1232 ] }, { - "teal": 1379, - "source": "examples/reti/stakingPool.algo.ts:367", + "teal": 1387, + "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ - 1233, - 1234 + 1233 ] }, { - "teal": 1389, + "teal": 1388, "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ + 1234, 1235 ] }, { - "teal": 1390, + "teal": 1389, "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ 1236 ] }, { - "teal": 1391, + "teal": 1390, "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ 1237 ] }, { - "teal": 1392, - "source": "examples/reti/stakingPool.algo.ts:369", - "pc": [ - 1238, - 1239 - ] - }, - { - "teal": 1393, + "teal": 1391, "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ - 1240 + 1238 ] }, { - "teal": 1394, + "teal": 1392, "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ + 1239, + 1240, 1241 ] }, { - "teal": 1395, + "teal": 1393, "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ 1242 ] }, { - "teal": 1396, + "teal": 1394, "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ - 1243, - 1244, - 1245 + 1243 ] }, { - "teal": 1397, + "teal": 1395, "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ - 1246 + 1244, + 1245 ] }, { - "teal": 1398, - "source": "examples/reti/stakingPool.algo.ts:369", + "teal": 1396, + "source": "examples/reti/stakingPool.algo.ts:370", "pc": [ + 1246, 1247 ] }, { - "teal": 1399, - "source": "examples/reti/stakingPool.algo.ts:369", + "teal": 1397, + "source": "examples/reti/stakingPool.algo.ts:370", "pc": [ 1248, 1249 ] }, { - "teal": 1400, - "source": "examples/reti/stakingPool.algo.ts:370", + "teal": 1398, + "source": "examples/reti/stakingPool.algo.ts:371", "pc": [ 1250, 1251 ] }, { - "teal": 1401, - "source": "examples/reti/stakingPool.algo.ts:370", + "teal": 1399, + "source": "examples/reti/stakingPool.algo.ts:371", "pc": [ - 1252, - 1253 + 1252 ] }, { - "teal": 1402, + "teal": 1400, "source": "examples/reti/stakingPool.algo.ts:371", "pc": [ - 1254, - 1255 + 1253, + 1254 ] }, { - "teal": 1403, - "source": "examples/reti/stakingPool.algo.ts:371", + "teal": 1401, + "source": "examples/reti/stakingPool.algo.ts:372", "pc": [ + 1255, 1256 ] }, { - "teal": 1404, - "source": "examples/reti/stakingPool.algo.ts:371", + "teal": 1402, + "source": "examples/reti/stakingPool.algo.ts:372", "pc": [ - 1257, - 1258 + 1257 ] }, { - "teal": 1405, + "teal": 1403, "source": "examples/reti/stakingPool.algo.ts:372", "pc": [ - 1259, - 1260 + 1258, + 1259 ] }, { - "teal": 1406, - "source": "examples/reti/stakingPool.algo.ts:372", + "teal": 1404, + "source": "examples/reti/stakingPool.algo.ts:373", "pc": [ + 1260, 1261 ] }, { - "teal": 1407, - "source": "examples/reti/stakingPool.algo.ts:372", + "teal": 1405, + "source": "examples/reti/stakingPool.algo.ts:373", "pc": [ 1262, 1263 ] }, { - "teal": 1408, + "teal": 1406, "source": "examples/reti/stakingPool.algo.ts:373", "pc": [ - 1264, - 1265 + 1264 ] }, { - "teal": 1409, + "teal": 1407, "source": "examples/reti/stakingPool.algo.ts:373", "pc": [ - 1266, - 1267 + 1265, + 1266 ] }, { - "teal": 1410, + "teal": 1408, "source": "examples/reti/stakingPool.algo.ts:373", "pc": [ - 1268 + 1267 ] }, { - "teal": 1411, + "teal": 1409, "source": "examples/reti/stakingPool.algo.ts:373", "pc": [ - 1269, - 1270 + 1268, + 1269 ] }, { "teal": 1412, - "source": "examples/reti/stakingPool.algo.ts:373", + "source": "examples/reti/stakingPool.algo.ts:366", "pc": [ - 1271 + 1270 ] }, { "teal": 1413, - "source": "examples/reti/stakingPool.algo.ts:373", + "source": "examples/reti/stakingPool.algo.ts:366", "pc": [ - 1272, - 1273 + 1271, + 1272 ] }, { "teal": 1416, "source": "examples/reti/stakingPool.algo.ts:366", + "pc": [ + 1273 + ] + }, + { + "teal": 1420, + "source": "examples/reti/stakingPool.algo.ts:376", "pc": [ 1274 ] }, { - "teal": 1417, - "source": "examples/reti/stakingPool.algo.ts:366", + "teal": 1427, + "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ 1275, 1276 ] }, { - "teal": 1420, - "source": "examples/reti/stakingPool.algo.ts:366", + "teal": 1428, + "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ 1277 ] }, { - "teal": 1424, - "source": "examples/reti/stakingPool.algo.ts:376", + "teal": 1429, + "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ 1278 ] }, { - "teal": 1431, + "teal": 1430, "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ 1279, @@ -6396,69 +6402,63 @@ ] }, { - "teal": 1432, - "source": "examples/reti/stakingPool.algo.ts:289", - "pc": [ - 1281 - ] - }, - { - "teal": 1433, + "teal": 1431, "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ - 1282 + 1281, + 1282, + 1283 ] }, { - "teal": 1434, - "source": "examples/reti/stakingPool.algo.ts:289", + "teal": 1435, + "source": "examples/reti/stakingPool.algo.ts:379", + "errorMessage": "account not found", "pc": [ - 1283, 1284 ] }, { - "teal": 1435, - "source": "examples/reti/stakingPool.algo.ts:289", + "teal": 1436, + "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ - 1285, - 1286, - 1287 + 1285 ] }, { - "teal": 1439, - "source": "examples/reti/stakingPool.algo.ts:379", - "errorMessage": "account not found", + "teal": 1441, + "source": "examples/reti/stakingPool.algo.ts:387", "pc": [ + 1286, + 1287, 1288 ] }, { - "teal": 1440, - "source": "examples/reti/stakingPool.algo.ts:277", + "teal": 1442, + "source": "examples/reti/stakingPool.algo.ts:387", "pc": [ 1289 ] }, { - "teal": 1445, + "teal": 1443, "source": "examples/reti/stakingPool.algo.ts:387", "pc": [ - 1290, - 1291, - 1292 + 1290 ] }, { - "teal": 1446, + "teal": 1451, "source": "examples/reti/stakingPool.algo.ts:387", "pc": [ + 1291, + 1292, 1293 ] }, { - "teal": 1447, + "teal": 1454, "source": "examples/reti/stakingPool.algo.ts:387", "pc": [ 1294 @@ -6469,50 +6469,50 @@ "source": "examples/reti/stakingPool.algo.ts:387", "pc": [ 1295, - 1296, - 1297 + 1296 ] }, { - "teal": 1458, - "source": "examples/reti/stakingPool.algo.ts:387", + "teal": 1459, + "source": "examples/reti/stakingPool.algo.ts:391", "pc": [ + 1297, 1298 ] }, { - "teal": 1459, - "source": "examples/reti/stakingPool.algo.ts:387", + "teal": 1460, + "source": "examples/reti/stakingPool.algo.ts:391", "pc": [ 1299, 1300 ] }, { - "teal": 1463, - "source": "examples/reti/stakingPool.algo.ts:391", + "teal": 1464, + "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ - 1301, - 1302 + 1301 ] }, { - "teal": 1464, - "source": "examples/reti/stakingPool.algo.ts:391", + "teal": 1465, + "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ - 1303, - 1304 + 1302, + 1303 ] }, { - "teal": 1468, + "teal": 1470, "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ + 1304, 1305 ] }, { - "teal": 1469, + "teal": 1471, "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ 1306, @@ -6520,123 +6520,123 @@ ] }, { - "teal": 1474, + "teal": 1472, "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ - 1308, - 1309 + 1308 ] }, { - "teal": 1475, + "teal": 1473, "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ + 1309, 1310, 1311 ] }, { - "teal": 1476, - "source": "examples/reti/stakingPool.algo.ts:393", + "teal": 1478, + "source": "examples/reti/stakingPool.algo.ts:394", "pc": [ - 1312 + 1312, + 1313 ] }, { - "teal": 1477, - "source": "examples/reti/stakingPool.algo.ts:393", + "teal": 1479, + "source": "examples/reti/stakingPool.algo.ts:394", "pc": [ - 1313, 1314, 1315 ] }, { - "teal": 1482, + "teal": 1480, "source": "examples/reti/stakingPool.algo.ts:394", "pc": [ - 1316, - 1317 + 1316 ] }, { - "teal": 1483, + "teal": 1481, "source": "examples/reti/stakingPool.algo.ts:394", "pc": [ + 1317, 1318, 1319 ] }, { - "teal": 1484, - "source": "examples/reti/stakingPool.algo.ts:394", + "teal": 1486, + "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ 1320 ] }, { - "teal": 1485, - "source": "examples/reti/stakingPool.algo.ts:394", + "teal": 1487, + "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1321, - 1322, - 1323 + 1321 ] }, { - "teal": 1490, + "teal": 1488, "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1324 + 1322, + 1323 ] }, { - "teal": 1491, + "teal": 1489, "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1325 + 1324 ] }, { - "teal": 1492, + "teal": 1490, "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1326, - 1327 + 1325, + 1326 ] }, { - "teal": 1493, + "teal": 1491, "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ + 1327, 1328 ] }, { - "teal": 1494, + "teal": 1492, "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1329, - 1330 + 1329 ] }, { - "teal": 1495, + "teal": 1493, "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1331, - 1332 + 1330, + 1331 ] }, { - "teal": 1496, + "teal": 1494, "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ + 1332, 1333 ] }, { - "teal": 1497, + "teal": 1495, "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ 1334, @@ -6644,7 +6644,7 @@ ] }, { - "teal": 1498, + "teal": 1496, "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ 1336, @@ -6652,251 +6652,251 @@ ] }, { - "teal": 1499, + "teal": 1497, "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1338, - 1339 + 1338 ] }, { - "teal": 1500, - "source": "examples/reti/stakingPool.algo.ts:395", + "teal": 1502, + "source": "examples/reti/stakingPool.algo.ts:397", "pc": [ - 1340, - 1341 + 1339, + 1340 ] }, { - "teal": 1501, - "source": "examples/reti/stakingPool.algo.ts:395", + "teal": 1503, + "source": "examples/reti/stakingPool.algo.ts:397", "pc": [ - 1342 + 1341 ] }, { - "teal": 1506, + "teal": 1504, "source": "examples/reti/stakingPool.algo.ts:397", "pc": [ - 1343, - 1344 + 1342 ] }, { - "teal": 1507, + "teal": 1505, "source": "examples/reti/stakingPool.algo.ts:397", "pc": [ - 1345 + 1343 ] }, { - "teal": 1508, + "teal": 1506, "source": "examples/reti/stakingPool.algo.ts:397", "pc": [ - 1346 + 1344 ] }, { - "teal": 1509, + "teal": 1507, "source": "examples/reti/stakingPool.algo.ts:397", "pc": [ - 1347 + 1345, + 1346 ] }, { - "teal": 1510, + "teal": 1508, "source": "examples/reti/stakingPool.algo.ts:397", "pc": [ - 1348 + 1347 ] }, { - "teal": 1511, + "teal": 1509, "source": "examples/reti/stakingPool.algo.ts:397", "pc": [ - 1349, - 1350 + 1348, + 1349 ] }, { - "teal": 1512, - "source": "examples/reti/stakingPool.algo.ts:397", + "teal": 1514, + "source": "examples/reti/stakingPool.algo.ts:398", "pc": [ + 1350, 1351 ] }, { - "teal": 1513, - "source": "examples/reti/stakingPool.algo.ts:397", + "teal": 1515, + "source": "examples/reti/stakingPool.algo.ts:398", "pc": [ 1352, - 1353 + 1353, + 1354 ] }, { - "teal": 1518, + "teal": 1516, "source": "examples/reti/stakingPool.algo.ts:398", "pc": [ - 1354, - 1355 + 1355, + 1356 ] }, { - "teal": 1519, + "teal": 1517, "source": "examples/reti/stakingPool.algo.ts:398", "pc": [ - 1356, - 1357, - 1358 + 1357 ] }, { - "teal": 1520, + "teal": 1518, "source": "examples/reti/stakingPool.algo.ts:398", "pc": [ + 1358, 1359, 1360 ] }, { - "teal": 1521, - "source": "examples/reti/stakingPool.algo.ts:398", + "teal": 1524, + "source": "examples/reti/stakingPool.algo.ts:399", "pc": [ - 1361 + 1361, + 1362 ] }, { - "teal": 1522, - "source": "examples/reti/stakingPool.algo.ts:398", + "teal": 1525, + "source": "examples/reti/stakingPool.algo.ts:399", "pc": [ - 1362, 1363, - 1364 + 1364, + 1365 ] }, { - "teal": 1528, + "teal": 1526, "source": "examples/reti/stakingPool.algo.ts:399", "pc": [ - 1365, 1366 ] }, { - "teal": 1529, + "teal": 1527, "source": "examples/reti/stakingPool.algo.ts:399", "pc": [ - 1367, - 1368, - 1369 + 1367 ] }, { - "teal": 1530, + "teal": 1528, "source": "examples/reti/stakingPool.algo.ts:399", "pc": [ - 1370 + 1368 ] }, { - "teal": 1531, + "teal": 1529, "source": "examples/reti/stakingPool.algo.ts:399", "pc": [ + 1369, + 1370, 1371 ] }, { - "teal": 1532, - "source": "examples/reti/stakingPool.algo.ts:399", + "teal": 1534, + "source": "examples/reti/stakingPool.algo.ts:400", "pc": [ 1372 ] }, { - "teal": 1533, - "source": "examples/reti/stakingPool.algo.ts:399", + "teal": 1539, + "source": "examples/reti/stakingPool.algo.ts:402", "pc": [ - 1373, - 1374, - 1375 + 1373 ] }, { - "teal": 1538, - "source": "examples/reti/stakingPool.algo.ts:400", + "teal": 1540, + "source": "examples/reti/stakingPool.algo.ts:402", "pc": [ - 1376 + 1374, + 1375 ] }, { - "teal": 1543, - "source": "examples/reti/stakingPool.algo.ts:402", + "teal": 1545, + "source": "examples/reti/stakingPool.algo.ts:404", "pc": [ + 1376, 1377 ] }, { - "teal": 1544, - "source": "examples/reti/stakingPool.algo.ts:402", + "teal": 1546, + "source": "examples/reti/stakingPool.algo.ts:404", "pc": [ - 1378, - 1379 + 1378 ] }, { - "teal": 1549, + "teal": 1547, "source": "examples/reti/stakingPool.algo.ts:404", "pc": [ - 1380, - 1381 + 1379 ] }, { - "teal": 1550, + "teal": 1548, "source": "examples/reti/stakingPool.algo.ts:404", "pc": [ - 1382 + 1380 ] }, { - "teal": 1551, + "teal": 1549, "source": "examples/reti/stakingPool.algo.ts:404", "pc": [ + 1381, + 1382, 1383 ] }, { - "teal": 1552, - "source": "examples/reti/stakingPool.algo.ts:404", + "teal": 1557, + "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ 1384 ] }, { - "teal": 1553, - "source": "examples/reti/stakingPool.algo.ts:404", + "teal": 1558, + "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1385, - 1386, - 1387 + 1385 ] }, { - "teal": 1561, + "teal": 1559, "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1388 + 1386, + 1387 ] }, { - "teal": 1562, + "teal": 1560, "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ + 1388, 1389 ] }, { - "teal": 1563, + "teal": 1561, "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ 1390, @@ -6904,96 +6904,102 @@ ] }, { - "teal": 1564, - "source": "examples/reti/stakingPool.algo.ts:405", + "teal": 1565, + "source": "examples/reti/stakingPool.algo.ts:406", + "pc": [ + 1392 + ] + }, + { + "teal": 1566, + "source": "examples/reti/stakingPool.algo.ts:406", "pc": [ - 1392, 1393 ] }, { - "teal": 1565, - "source": "examples/reti/stakingPool.algo.ts:405", + "teal": 1567, + "source": "examples/reti/stakingPool.algo.ts:406", "pc": [ 1394, 1395 ] }, { - "teal": 1569, - "source": "examples/reti/stakingPool.algo.ts:406", + "teal": 1571, + "source": "examples/reti/stakingPool.algo.ts:407", "pc": [ 1396 ] }, { - "teal": 1570, - "source": "examples/reti/stakingPool.algo.ts:406", + "teal": 1572, + "source": "examples/reti/stakingPool.algo.ts:407", "pc": [ 1397 ] }, { - "teal": 1571, - "source": "examples/reti/stakingPool.algo.ts:406", + "teal": 1573, + "source": "examples/reti/stakingPool.algo.ts:407", "pc": [ - 1398, - 1399 + 1398 ] }, { - "teal": 1575, + "teal": 1574, "source": "examples/reti/stakingPool.algo.ts:407", "pc": [ + 1399, 1400 ] }, { - "teal": 1576, - "source": "examples/reti/stakingPool.algo.ts:407", + "teal": 1577, + "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ 1401 ] }, { - "teal": 1577, - "source": "examples/reti/stakingPool.algo.ts:407", + "teal": 1578, + "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1402 + 1402, + 1403 ] }, { - "teal": 1578, - "source": "examples/reti/stakingPool.algo.ts:407", + "teal": 1581, + "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1403, 1404 ] }, { - "teal": 1581, + "teal": 1582, "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1405 + 1405, + 1406 ] }, { - "teal": 1582, + "teal": 1583, "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1406, 1407 ] }, { - "teal": 1585, + "teal": 1584, "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ 1408 ] }, { - "teal": 1586, + "teal": 1585, "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ 1409, @@ -7001,203 +7007,197 @@ ] }, { - "teal": 1587, - "source": "examples/reti/stakingPool.algo.ts:405", - "pc": [ - 1411 - ] - }, - { - "teal": 1588, + "teal": 1586, "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1412 + 1411, + 1412, + 1413 ] }, { - "teal": 1589, + "teal": 1587, "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1413, - 1414 + 1414, + 1415 ] }, { - "teal": 1590, - "source": "examples/reti/stakingPool.algo.ts:405", + "teal": 1595, + "source": "examples/reti/stakingPool.algo.ts:412", "pc": [ - 1415, - 1416, - 1417 + 1416 ] }, { - "teal": 1591, - "source": "examples/reti/stakingPool.algo.ts:405", + "teal": 1596, + "source": "examples/reti/stakingPool.algo.ts:412", "pc": [ - 1418, - 1419 + 1417, + 1418 ] }, { - "teal": 1599, + "teal": 1597, "source": "examples/reti/stakingPool.algo.ts:412", "pc": [ + 1419, 1420 ] }, { - "teal": 1600, - "source": "examples/reti/stakingPool.algo.ts:412", + "teal": 1601, + "source": "examples/reti/stakingPool.algo.ts:413", "pc": [ 1421, 1422 ] }, { - "teal": 1601, - "source": "examples/reti/stakingPool.algo.ts:412", + "teal": 1602, + "source": "examples/reti/stakingPool.algo.ts:413", "pc": [ 1423, - 1424 + 1424, + 1425 ] }, { - "teal": 1605, + "teal": 1603, "source": "examples/reti/stakingPool.algo.ts:413", "pc": [ - 1425, 1426 ] }, { - "teal": 1606, + "teal": 1604, "source": "examples/reti/stakingPool.algo.ts:413", "pc": [ 1427, - 1428, - 1429 + 1428 ] }, { - "teal": 1607, - "source": "examples/reti/stakingPool.algo.ts:413", + "teal": 1608, + "source": "examples/reti/stakingPool.algo.ts:414", "pc": [ + 1429, 1430 ] }, { - "teal": 1608, - "source": "examples/reti/stakingPool.algo.ts:413", + "teal": 1609, + "source": "examples/reti/stakingPool.algo.ts:414", "pc": [ 1431, 1432 ] }, { - "teal": 1612, - "source": "examples/reti/stakingPool.algo.ts:414", + "teal": 1613, + "source": "examples/reti/stakingPool.algo.ts:415", "pc": [ 1433, 1434 ] }, { - "teal": 1613, - "source": "examples/reti/stakingPool.algo.ts:414", + "teal": 1614, + "source": "examples/reti/stakingPool.algo.ts:415", "pc": [ 1435, - 1436 + 1436, + 1437 ] }, { - "teal": 1617, + "teal": 1615, "source": "examples/reti/stakingPool.algo.ts:415", "pc": [ - 1437, 1438 ] }, { - "teal": 1618, + "teal": 1616, "source": "examples/reti/stakingPool.algo.ts:415", "pc": [ 1439, - 1440, - 1441 + 1440 ] }, { "teal": 1619, - "source": "examples/reti/stakingPool.algo.ts:415", + "source": "examples/reti/stakingPool.algo.ts:412", "pc": [ - 1442 + 1441 ] }, { "teal": 1620, - "source": "examples/reti/stakingPool.algo.ts:415", + "source": "examples/reti/stakingPool.algo.ts:412", "pc": [ - 1443, - 1444 + 1442, + 1443 ] }, { "teal": 1623, "source": "examples/reti/stakingPool.algo.ts:412", "pc": [ - 1445 + 1444 ] }, { - "teal": 1624, - "source": "examples/reti/stakingPool.algo.ts:412", + "teal": 1627, + "source": "examples/reti/stakingPool.algo.ts:417", "pc": [ - 1446, - 1447 + 1445, + 1446 ] }, { - "teal": 1627, - "source": "examples/reti/stakingPool.algo.ts:412", + "teal": 1628, + "source": "examples/reti/stakingPool.algo.ts:417", "pc": [ - 1448 + 1447, + 1448, + 1449 ] }, { - "teal": 1631, + "teal": 1629, "source": "examples/reti/stakingPool.algo.ts:417", "pc": [ - 1449, 1450 ] }, { - "teal": 1632, + "teal": 1630, "source": "examples/reti/stakingPool.algo.ts:417", "pc": [ 1451, - 1452, - 1453 + 1452 ] }, { - "teal": 1633, - "source": "examples/reti/stakingPool.algo.ts:417", + "teal": 1634, + "source": "examples/reti/stakingPool.algo.ts:418", "pc": [ + 1453, 1454 ] }, { - "teal": 1634, - "source": "examples/reti/stakingPool.algo.ts:417", + "teal": 1635, + "source": "examples/reti/stakingPool.algo.ts:418", "pc": [ 1455, 1456 ] }, { - "teal": 1638, + "teal": 1636, "source": "examples/reti/stakingPool.algo.ts:418", "pc": [ 1457, @@ -7205,7 +7205,7 @@ ] }, { - "teal": 1639, + "teal": 1637, "source": "examples/reti/stakingPool.algo.ts:418", "pc": [ 1459, @@ -7213,64 +7213,64 @@ ] }, { - "teal": 1640, - "source": "examples/reti/stakingPool.algo.ts:418", + "teal": 1638, + "source": "examples/reti/stakingPool.algo.ts:404", "pc": [ 1461, - 1462 + 1462, + 1463 ] }, { - "teal": 1641, - "source": "examples/reti/stakingPool.algo.ts:418", + "teal": 1643, + "source": "examples/reti/stakingPool.algo.ts:423", "pc": [ - 1463, - 1464 + 1464, + 1465 ] }, { - "teal": 1642, - "source": "examples/reti/stakingPool.algo.ts:404", + "teal": 1644, + "source": "examples/reti/stakingPool.algo.ts:423", "pc": [ - 1465, 1466, - 1467 + 1467, + 1468 ] }, { - "teal": 1647, + "teal": 1645, "source": "examples/reti/stakingPool.algo.ts:423", "pc": [ - 1468, 1469 ] }, { - "teal": 1648, + "teal": 1646, "source": "examples/reti/stakingPool.algo.ts:423", "pc": [ 1470, - 1471, - 1472 + 1471 ] }, { - "teal": 1649, - "source": "examples/reti/stakingPool.algo.ts:423", + "teal": 1650, + "source": "examples/reti/stakingPool.algo.ts:424", "pc": [ + 1472, 1473 ] }, { - "teal": 1650, - "source": "examples/reti/stakingPool.algo.ts:423", + "teal": 1651, + "source": "examples/reti/stakingPool.algo.ts:424", "pc": [ 1474, 1475 ] }, { - "teal": 1654, + "teal": 1652, "source": "examples/reti/stakingPool.algo.ts:424", "pc": [ 1476, @@ -7278,7 +7278,7 @@ ] }, { - "teal": 1655, + "teal": 1653, "source": "examples/reti/stakingPool.algo.ts:424", "pc": [ 1478, @@ -7286,23 +7286,29 @@ ] }, { - "teal": 1656, - "source": "examples/reti/stakingPool.algo.ts:424", + "teal": 1658, + "source": "examples/reti/stakingPool.algo.ts:428", "pc": [ 1480, 1481 ] }, { - "teal": 1657, - "source": "examples/reti/stakingPool.algo.ts:424", + "teal": 1659, + "source": "examples/reti/stakingPool.algo.ts:428", + "pc": [ + 1482 + ] + }, + { + "teal": 1660, + "source": "examples/reti/stakingPool.algo.ts:428", "pc": [ - 1482, 1483 ] }, { - "teal": 1662, + "teal": 1661, "source": "examples/reti/stakingPool.algo.ts:428", "pc": [ 1484, @@ -7310,321 +7316,321 @@ ] }, { - "teal": 1663, + "teal": 1662, "source": "examples/reti/stakingPool.algo.ts:428", "pc": [ 1486 ] }, { - "teal": 1664, + "teal": 1663, "source": "examples/reti/stakingPool.algo.ts:428", "pc": [ - 1487 + 1487, + 1488 ] }, { - "teal": 1665, + "teal": 1664, "source": "examples/reti/stakingPool.algo.ts:428", "pc": [ - 1488, 1489 ] }, { - "teal": 1666, - "source": "examples/reti/stakingPool.algo.ts:428", + "teal": 1677, + "source": "examples/reti/stakingPool.algo.ts:433", "pc": [ 1490 ] }, { - "teal": 1667, - "source": "examples/reti/stakingPool.algo.ts:428", + "teal": 1678, + "source": "examples/reti/stakingPool.algo.ts:433", "pc": [ - 1491, - 1492 + 1491 ] }, { - "teal": 1668, - "source": "examples/reti/stakingPool.algo.ts:428", + "teal": 1679, + "source": "examples/reti/stakingPool.algo.ts:433", "pc": [ + 1492, 1493 ] }, { - "teal": 1681, + "teal": 1680, "source": "examples/reti/stakingPool.algo.ts:433", "pc": [ - 1494 + 1494, + 1495 ] }, { - "teal": 1682, + "teal": 1681, "source": "examples/reti/stakingPool.algo.ts:433", "pc": [ - 1495 + 1496, + 1497 ] }, { - "teal": 1683, - "source": "examples/reti/stakingPool.algo.ts:433", + "teal": 1685, + "source": "examples/reti/stakingPool.algo.ts:434", "pc": [ - 1496, - 1497 + 1498 ] }, { - "teal": 1684, - "source": "examples/reti/stakingPool.algo.ts:433", + "teal": 1686, + "source": "examples/reti/stakingPool.algo.ts:434", "pc": [ - 1498, 1499 ] }, { - "teal": 1685, - "source": "examples/reti/stakingPool.algo.ts:433", + "teal": 1687, + "source": "examples/reti/stakingPool.algo.ts:434", "pc": [ 1500, 1501 ] }, { - "teal": 1689, - "source": "examples/reti/stakingPool.algo.ts:434", + "teal": 1697, + "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ 1502 ] }, { - "teal": 1690, - "source": "examples/reti/stakingPool.algo.ts:434", + "teal": 1698, + "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ 1503 ] }, { - "teal": 1691, - "source": "examples/reti/stakingPool.algo.ts:434", + "teal": 1699, + "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ - 1504, - 1505 + 1504 ] }, { - "teal": 1701, + "teal": 1700, "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ + 1505, 1506 ] }, { - "teal": 1702, + "teal": 1701, "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ 1507 ] }, { - "teal": 1703, + "teal": 1702, "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ 1508 ] }, + { + "teal": 1703, + "source": "examples/reti/stakingPool.algo.ts:436", + "pc": [ + 1509 + ] + }, { "teal": 1704, "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ - 1509, - 1510 + 1510, + 1511, + 1512 ] }, { "teal": 1705, "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ - 1511 + 1513 ] }, { "teal": 1706, "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ - 1512 + 1514 ] }, { "teal": 1707, "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ - 1513 + 1515, + 1516 ] }, { "teal": 1708, - "source": "examples/reti/stakingPool.algo.ts:436", + "source": "examples/reti/stakingPool.algo.ts:437", "pc": [ - 1514, - 1515, - 1516 + 1517, + 1518 ] }, { "teal": 1709, - "source": "examples/reti/stakingPool.algo.ts:436", + "source": "examples/reti/stakingPool.algo.ts:437", "pc": [ - 1517 + 1519, + 1520 ] }, { "teal": 1710, - "source": "examples/reti/stakingPool.algo.ts:436", + "source": "examples/reti/stakingPool.algo.ts:438", "pc": [ - 1518 + 1521, + 1522 ] }, { "teal": 1711, - "source": "examples/reti/stakingPool.algo.ts:436", + "source": "examples/reti/stakingPool.algo.ts:438", "pc": [ - 1519, - 1520 + 1523, + 1524 ] }, { "teal": 1712, - "source": "examples/reti/stakingPool.algo.ts:437", + "source": "examples/reti/stakingPool.algo.ts:439", "pc": [ - 1521, - 1522 + 1525, + 1526 ] }, { "teal": 1713, - "source": "examples/reti/stakingPool.algo.ts:437", + "source": "examples/reti/stakingPool.algo.ts:439", "pc": [ - 1523, - 1524 + 1527 ] }, { "teal": 1714, - "source": "examples/reti/stakingPool.algo.ts:438", + "source": "examples/reti/stakingPool.algo.ts:439", "pc": [ - 1525, - 1526 + 1528, + 1529 ] }, { "teal": 1715, - "source": "examples/reti/stakingPool.algo.ts:438", + "source": "examples/reti/stakingPool.algo.ts:440", "pc": [ - 1527, - 1528 + 1530 ] }, { "teal": 1716, - "source": "examples/reti/stakingPool.algo.ts:439", + "source": "examples/reti/stakingPool.algo.ts:440", "pc": [ - 1529, - 1530 + 1531, + 1532 ] }, { "teal": 1717, - "source": "examples/reti/stakingPool.algo.ts:439", - "pc": [ - 1531 - ] - }, - { - "teal": 1718, - "source": "examples/reti/stakingPool.algo.ts:439", + "source": "examples/reti/stakingPool.algo.ts:440", "pc": [ - 1532, 1533 ] }, { - "teal": 1719, + "teal": 1718, "source": "examples/reti/stakingPool.algo.ts:440", "pc": [ - 1534 + 1534, + 1535 ] }, { - "teal": 1720, + "teal": 1719, "source": "examples/reti/stakingPool.algo.ts:440", "pc": [ - 1535, 1536 ] }, { - "teal": 1721, + "teal": 1720, "source": "examples/reti/stakingPool.algo.ts:440", "pc": [ - 1537 + 1537, + 1538 ] }, { - "teal": 1722, - "source": "examples/reti/stakingPool.algo.ts:440", + "teal": 1723, + "source": "examples/reti/stakingPool.algo.ts:433", "pc": [ - 1538, 1539 ] }, { - "teal": 1723, - "source": "examples/reti/stakingPool.algo.ts:440", + "teal": 1724, + "source": "examples/reti/stakingPool.algo.ts:433", "pc": [ - 1540 + 1540, + 1541 ] }, { - "teal": 1724, - "source": "examples/reti/stakingPool.algo.ts:440", + "teal": 1727, + "source": "examples/reti/stakingPool.algo.ts:433", "pc": [ - 1541, 1542 ] }, { - "teal": 1727, - "source": "examples/reti/stakingPool.algo.ts:433", + "teal": 1731, + "source": "examples/reti/stakingPool.algo.ts:443", "pc": [ 1543 ] }, { - "teal": 1728, - "source": "examples/reti/stakingPool.algo.ts:433", + "teal": 1738, + "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ 1544, 1545 ] }, { - "teal": 1731, - "source": "examples/reti/stakingPool.algo.ts:433", + "teal": 1739, + "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ 1546 ] }, { - "teal": 1735, - "source": "examples/reti/stakingPool.algo.ts:443", + "teal": 1740, + "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ 1547 ] }, { - "teal": 1742, + "teal": 1741, "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ 1548, @@ -7632,167 +7638,161 @@ ] }, { - "teal": 1743, + "teal": 1742, "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ - 1550 + 1550, + 1551, + 1552 ] }, { - "teal": 1744, - "source": "examples/reti/stakingPool.algo.ts:393", + "teal": 1746, + "source": "examples/reti/stakingPool.algo.ts:446", + "errorMessage": "account not found", "pc": [ - 1551 + 1553 ] }, { - "teal": 1745, - "source": "examples/reti/stakingPool.algo.ts:393", + "teal": 1747, + "source": "examples/reti/stakingPool.algo.ts:387", "pc": [ - 1552, - 1553 + 1554 ] }, { - "teal": 1746, - "source": "examples/reti/stakingPool.algo.ts:393", + "teal": 1752, + "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1554, 1555, 1556 ] }, { - "teal": 1750, - "source": "examples/reti/stakingPool.algo.ts:446", - "errorMessage": "account not found", + "teal": 1755, + "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1557 + 1557, + 1558, + 1559 ] }, { - "teal": 1751, - "source": "examples/reti/stakingPool.algo.ts:387", + "teal": 1756, + "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1558 + 1560 ] }, { - "teal": 1756, + "teal": 1757, "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1559, - 1560 + 1561 ] }, { - "teal": 1759, + "teal": 1758, "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1561, 1562, 1563 ] }, { - "teal": 1760, + "teal": 1759, "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ 1564 ] }, { - "teal": 1761, + "teal": 1762, "source": "examples/reti/stakingPool.algo.ts:457", + "errorMessage": "argument 0 (staker) for getStakerInfo must be a address", "pc": [ 1565 ] }, { - "teal": 1762, + "teal": 1765, "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ 1566, - 1567 - ] - }, - { - "teal": 1763, - "source": "examples/reti/stakingPool.algo.ts:457", - "pc": [ + 1567, 1568 ] }, { "teal": 1766, "source": "examples/reti/stakingPool.algo.ts:457", - "errorMessage": "argument 0 (staker) for getStakerInfo must be a address", "pc": [ 1569 ] }, { - "teal": 1769, + "teal": 1767, "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1570, - 1571, - 1572 + 1570 ] }, { - "teal": 1770, + "teal": 1768, "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1573 + 1571 ] }, { - "teal": 1771, + "teal": 1769, "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1574 + 1572 ] }, { - "teal": 1772, + "teal": 1779, "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ + 1573, + 1574, 1575 ] }, { - "teal": 1773, + "teal": 1782, "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ 1576 ] }, { - "teal": 1783, - "source": "examples/reti/stakingPool.algo.ts:457", + "teal": 1786, + "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1577, - 1578, - 1579 + 1577 ] }, { - "teal": 1786, - "source": "examples/reti/stakingPool.algo.ts:457", + "teal": 1787, + "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1580 + 1578, + 1579 ] }, { - "teal": 1790, + "teal": 1792, "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ + 1580, 1581 ] }, { - "teal": 1791, + "teal": 1793, "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ 1582, @@ -7800,123 +7800,123 @@ ] }, { - "teal": 1796, + "teal": 1794, "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1584, - 1585 + 1584 ] }, { - "teal": 1797, + "teal": 1795, "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ + 1585, 1586, 1587 ] }, { - "teal": 1798, - "source": "examples/reti/stakingPool.algo.ts:458", + "teal": 1800, + "source": "examples/reti/stakingPool.algo.ts:459", "pc": [ - 1588 + 1588, + 1589 ] }, { - "teal": 1799, - "source": "examples/reti/stakingPool.algo.ts:458", + "teal": 1801, + "source": "examples/reti/stakingPool.algo.ts:459", "pc": [ - 1589, 1590, 1591 ] }, { - "teal": 1804, + "teal": 1802, "source": "examples/reti/stakingPool.algo.ts:459", "pc": [ - 1592, - 1593 + 1592 ] }, { - "teal": 1805, + "teal": 1803, "source": "examples/reti/stakingPool.algo.ts:459", "pc": [ + 1593, 1594, 1595 ] }, { - "teal": 1806, - "source": "examples/reti/stakingPool.algo.ts:459", + "teal": 1808, + "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ 1596 ] }, { - "teal": 1807, - "source": "examples/reti/stakingPool.algo.ts:459", + "teal": 1809, + "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1597, - 1598, - 1599 + 1597 ] }, { - "teal": 1812, + "teal": 1810, "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1600 + 1598, + 1599 ] }, { - "teal": 1813, + "teal": 1811, "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1601 + 1600 ] }, { - "teal": 1814, + "teal": 1812, "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1602, - 1603 + 1601, + 1602 ] }, { - "teal": 1815, + "teal": 1813, "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ + 1603, 1604 ] }, { - "teal": 1816, + "teal": 1814, "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1605, - 1606 + 1605 ] }, { - "teal": 1817, + "teal": 1815, "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1607, - 1608 + 1606, + 1607 ] }, { - "teal": 1818, + "teal": 1816, "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ + 1608, 1609 ] }, { - "teal": 1819, + "teal": 1817, "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ 1610, @@ -7924,7 +7924,7 @@ ] }, { - "teal": 1820, + "teal": 1818, "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ 1612, @@ -7932,33 +7932,45 @@ ] }, { - "teal": 1821, + "teal": 1819, "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1614, - 1615 + 1614 ] }, { - "teal": 1822, - "source": "examples/reti/stakingPool.algo.ts:460", + "teal": 1825, + "source": "examples/reti/stakingPool.algo.ts:462", + "pc": [ + 1615, + 1616 + ] + }, + { + "teal": 1826, + "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1616, 1617 ] }, { - "teal": 1823, - "source": "examples/reti/stakingPool.algo.ts:460", + "teal": 1827, + "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ 1618 ] }, + { + "teal": 1828, + "source": "examples/reti/stakingPool.algo.ts:462", + "pc": [ + 1619 + ] + }, { "teal": 1829, "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1619, 1620 ] }, @@ -7966,89 +7978,89 @@ "teal": 1830, "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1621 + 1621, + 1622 ] }, { "teal": 1831, "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1622 + 1623 ] }, { "teal": 1832, "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1623 + 1624, + 1625 ] }, { "teal": 1833, "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1624 + 1626 ] }, { "teal": 1834, "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1625, - 1626 + 1627, + 1628 ] }, { "teal": 1835, "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1627 + 1629 ] }, { "teal": 1836, "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1628, - 1629 + 1630, + 1631, + 1632 ] }, { - "teal": 1837, - "source": "examples/reti/stakingPool.algo.ts:462", + "teal": 1841, + "source": "examples/reti/stakingPool.algo.ts:463", "pc": [ - 1630 + 1633, + 1634 ] }, { - "teal": 1838, - "source": "examples/reti/stakingPool.algo.ts:462", + "teal": 1842, + "source": "examples/reti/stakingPool.algo.ts:463", "pc": [ - 1631, - 1632 + 1635 ] }, { - "teal": 1839, - "source": "examples/reti/stakingPool.algo.ts:462", + "teal": 1843, + "source": "examples/reti/stakingPool.algo.ts:463", "pc": [ - 1633 + 1636 ] }, { - "teal": 1840, - "source": "examples/reti/stakingPool.algo.ts:462", + "teal": 1844, + "source": "examples/reti/stakingPool.algo.ts:463", "pc": [ - 1634, - 1635, - 1636 + 1637 ] }, { "teal": 1845, "source": "examples/reti/stakingPool.algo.ts:463", "pc": [ - 1637, 1638 ] }, @@ -8056,112 +8068,100 @@ "teal": 1846, "source": "examples/reti/stakingPool.algo.ts:463", "pc": [ - 1639 - ] - }, - { - "teal": 1847, - "source": "examples/reti/stakingPool.algo.ts:463", - "pc": [ + 1639, 1640 ] }, { - "teal": 1848, + "teal": 1847, "source": "examples/reti/stakingPool.algo.ts:463", "pc": [ 1641 ] }, { - "teal": 1849, - "source": "examples/reti/stakingPool.algo.ts:463", - "pc": [ - 1642 - ] - }, - { - "teal": 1850, + "teal": 1848, "source": "examples/reti/stakingPool.algo.ts:463", "pc": [ + 1642, 1643, 1644 ] }, { - "teal": 1851, - "source": "examples/reti/stakingPool.algo.ts:463", + "teal": 1855, + "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1645 + 1645, + 1646 ] }, { - "teal": 1852, - "source": "examples/reti/stakingPool.algo.ts:463", + "teal": 1856, + "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1646, - 1647, - 1648 + 1647 ] }, { - "teal": 1859, + "teal": 1857, "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1649, - 1650 + 1648 ] }, { - "teal": 1860, + "teal": 1858, "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1651 + 1649, + 1650 ] }, { - "teal": 1861, + "teal": 1859, "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1652 + 1651, + 1652, + 1653 ] }, { - "teal": 1862, - "source": "examples/reti/stakingPool.algo.ts:458", + "teal": 1863, + "source": "examples/reti/stakingPool.algo.ts:466", + "errorMessage": "account not found", "pc": [ - 1653, 1654 ] }, { - "teal": 1863, - "source": "examples/reti/stakingPool.algo.ts:458", + "teal": 1867, + "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ 1655, - 1656, - 1657 + 1656 ] }, { - "teal": 1867, - "source": "examples/reti/stakingPool.algo.ts:466", - "errorMessage": "account not found", + "teal": 1868, + "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1658 + 1657 ] }, { - "teal": 1871, - "source": "examples/reti/stakingPool.algo.ts:457", + "teal": 1873, + "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ + 1658, 1659, 1660 ] }, { - "teal": 1872, - "source": "examples/reti/stakingPool.algo.ts:457", + "teal": 1874, + "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ 1661 ] @@ -8199,85 +8199,91 @@ ] }, { - "teal": 1885, + "teal": 1883, "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ - 1670, - 1671, - 1672 + 1670 ] }, { - "teal": 1886, + "teal": 1884, "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ - 1673 + 1671, + 1672 ] }, { - "teal": 1887, + "teal": 1885, "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ - 1674 + 1673 ] }, { "teal": 1888, "source": "examples/reti/stakingPool.algo.ts:479", + "errorMessage": "argument 2 (staker) for payTokenReward must be a address", "pc": [ - 1675, - 1676 + 1674 ] }, { - "teal": 1889, + "teal": 1891, "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ + 1675, + 1676, 1677 ] }, { "teal": 1892, "source": "examples/reti/stakingPool.algo.ts:479", - "errorMessage": "argument 2 (staker) for payTokenReward must be a address", "pc": [ 1678 ] }, { - "teal": 1895, + "teal": 1893, "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ - 1679, - 1680, - 1681 + 1679 ] }, { - "teal": 1896, + "teal": 1906, "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ + 1680, + 1681, 1682 ] }, { - "teal": 1897, - "source": "examples/reti/stakingPool.algo.ts:479", + "teal": 1913, + "source": "examples/reti/stakingPool.algo.ts:482", "pc": [ - 1683 + 1683, + 1684 ] }, { - "teal": 1910, - "source": "examples/reti/stakingPool.algo.ts:479", + "teal": 1914, + "source": "examples/reti/stakingPool.algo.ts:482", + "pc": [ + 1685 + ] + }, + { + "teal": 1915, + "source": "examples/reti/stakingPool.algo.ts:482", "pc": [ - 1684, - 1685, 1686 ] }, { - "teal": 1917, + "teal": 1916, "source": "examples/reti/stakingPool.algo.ts:482", "pc": [ 1687, @@ -8285,166 +8291,160 @@ ] }, { - "teal": 1918, + "teal": 1917, "source": "examples/reti/stakingPool.algo.ts:482", "pc": [ 1689 ] }, { - "teal": 1919, + "teal": 1918, "source": "examples/reti/stakingPool.algo.ts:482", "pc": [ 1690 ] }, { - "teal": 1920, - "source": "examples/reti/stakingPool.algo.ts:482", + "teal": 1921, + "source": "examples/reti/stakingPool.algo.ts:481", + "errorMessage": "this can only be called via the validator contract", "pc": [ - 1691, - 1692 + 1691 ] }, { - "teal": 1921, - "source": "examples/reti/stakingPool.algo.ts:482", + "teal": 1925, + "source": "examples/reti/stakingPool.algo.ts:485", "pc": [ + 1692, 1693 ] }, { - "teal": 1922, - "source": "examples/reti/stakingPool.algo.ts:482", + "teal": 1926, + "source": "examples/reti/stakingPool.algo.ts:485", "pc": [ 1694 ] }, { - "teal": 1925, - "source": "examples/reti/stakingPool.algo.ts:481", - "errorMessage": "this can only be called via the validator contract", + "teal": 1927, + "source": "examples/reti/stakingPool.algo.ts:485", "pc": [ 1695 ] }, { - "teal": 1929, + "teal": 1928, "source": "examples/reti/stakingPool.algo.ts:485", "pc": [ - 1696, - 1697 + 1696 ] }, { - "teal": 1930, + "teal": 1931, "source": "examples/reti/stakingPool.algo.ts:485", + "errorMessage": "must be pool 1 in order to be called to pay out token rewards", "pc": [ - 1698 + 1697 ] }, { - "teal": 1931, - "source": "examples/reti/stakingPool.algo.ts:485", + "teal": 1935, + "source": "examples/reti/stakingPool.algo.ts:486", "pc": [ + 1698, 1699 ] }, { - "teal": 1932, - "source": "examples/reti/stakingPool.algo.ts:485", + "teal": 1936, + "source": "examples/reti/stakingPool.algo.ts:486", "pc": [ 1700 ] }, { - "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": [ - 1701 - ] - }, - { - "teal": 1939, + "teal": 1937, "source": "examples/reti/stakingPool.algo.ts:486", "pc": [ - 1702, - 1703 + 1701 ] }, { "teal": 1940, "source": "examples/reti/stakingPool.algo.ts:486", + "errorMessage": "can only claim token rewards from validator that has them", "pc": [ - 1704 + 1702 ] }, { - "teal": 1941, - "source": "examples/reti/stakingPool.algo.ts:486", + "teal": 1948, + "source": "examples/reti/stakingPool.algo.ts:489", "pc": [ - 1705 + 1703 ] }, { - "teal": 1944, - "source": "examples/reti/stakingPool.algo.ts:486", - "errorMessage": "can only claim token rewards from validator that has them", + "teal": 1949, + "source": "examples/reti/stakingPool.algo.ts:489", "pc": [ - 1706 + 1704, + 1705 ] }, { - "teal": 1952, + "teal": 1950, "source": "examples/reti/stakingPool.algo.ts:489", "pc": [ + 1706, 1707 ] }, { - "teal": 1953, - "source": "examples/reti/stakingPool.algo.ts:489", + "teal": 1954, + "source": "examples/reti/stakingPool.algo.ts:490", "pc": [ 1708, 1709 ] }, { - "teal": 1954, - "source": "examples/reti/stakingPool.algo.ts:489", + "teal": 1955, + "source": "examples/reti/stakingPool.algo.ts:490", "pc": [ 1710, 1711 ] }, { - "teal": 1958, - "source": "examples/reti/stakingPool.algo.ts:490", + "teal": 1959, + "source": "examples/reti/stakingPool.algo.ts:491", "pc": [ 1712, 1713 ] }, { - "teal": 1959, - "source": "examples/reti/stakingPool.algo.ts:490", + "teal": 1960, + "source": "examples/reti/stakingPool.algo.ts:491", "pc": [ 1714, 1715 ] }, { - "teal": 1963, - "source": "examples/reti/stakingPool.algo.ts:491", + "teal": 1964, + "source": "examples/reti/stakingPool.algo.ts:492", "pc": [ 1716, 1717 ] }, { - "teal": 1964, - "source": "examples/reti/stakingPool.algo.ts:491", + "teal": 1965, + "source": "examples/reti/stakingPool.algo.ts:492", "pc": [ 1718, 1719 @@ -8452,172 +8452,172 @@ }, { "teal": 1968, - "source": "examples/reti/stakingPool.algo.ts:492", + "source": "examples/reti/stakingPool.algo.ts:489", "pc": [ - 1720, - 1721 + 1720 ] }, { "teal": 1969, - "source": "examples/reti/stakingPool.algo.ts:492", + "source": "examples/reti/stakingPool.algo.ts:489", "pc": [ - 1722, - 1723 + 1721, + 1722 ] }, { "teal": 1972, "source": "examples/reti/stakingPool.algo.ts:489", "pc": [ - 1724 + 1723 ] }, { "teal": 1973, - "source": "examples/reti/stakingPool.algo.ts:489", + "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ - 1725, - 1726 + 1724 ] }, { - "teal": 1976, - "source": "examples/reti/stakingPool.algo.ts:489", + "teal": 1978, + "source": "examples/reti/stakingPool.algo.ts:505", "pc": [ + 1725, + 1726, 1727 ] }, { - "teal": 1977, - "source": "examples/reti/stakingPool.algo.ts:479", + "teal": 1979, + "source": "examples/reti/stakingPool.algo.ts:505", "pc": [ - 1728 + 1728, + 1729, + 1730 ] }, { "teal": 1982, "source": "examples/reti/stakingPool.algo.ts:505", "pc": [ - 1729, - 1730, - 1731 + 1731, + 1732, + 1733 ] }, { "teal": 1983, "source": "examples/reti/stakingPool.algo.ts:505", "pc": [ - 1732, - 1733, 1734 ] }, { - "teal": 1986, + "teal": 1984, "source": "examples/reti/stakingPool.algo.ts:505", "pc": [ - 1735, - 1736, - 1737 + 1735 ] }, { - "teal": 1987, + "teal": 1996, "source": "examples/reti/stakingPool.algo.ts:505", "pc": [ + 1736, + 1737, 1738 ] }, - { - "teal": 1988, - "source": "examples/reti/stakingPool.algo.ts:505", - "pc": [ - 1739 - ] - }, { "teal": 2000, - "source": "examples/reti/stakingPool.algo.ts:505", - "pc": [ - 1740, - 1741, - 1742 - ] - }, - { - "teal": 2004, "source": "examples/reti/stakingPool.algo.ts:506", "pc": [ - 1743, - 1744, - 1745 + 1739, + 1740, + 1741 ] }, { - "teal": 2007, + "teal": 2003, "source": "examples/reti/stakingPool.algo.ts:506", "errorMessage": "can only be called by owner or manager of validator", "pc": [ - 1746 + 1742 ] }, { - "teal": 2011, + "teal": 2007, "source": "examples/reti/stakingPool.algo.ts:507", "pc": [ + 1743, + 1744, + 1745, + 1746, 1747, 1748, 1749, 1750, 1751, - 1752, - 1753, - 1754, - 1755, - 1756 + 1752 ] }, { - "teal": 2012, + "teal": 2008, "source": "examples/reti/stakingPool.algo.ts:507", "pc": [ - 1757, - 1758 + 1753, + 1754 ] }, { - "teal": 2013, + "teal": 2009, "source": "examples/reti/stakingPool.algo.ts:507", "pc": [ - 1759 + 1755 ] }, { - "teal": 2014, + "teal": 2010, "source": "examples/reti/stakingPool.algo.ts:505", + "pc": [ + 1756 + ] + }, + { + "teal": 2015, + "source": "examples/reti/stakingPool.algo.ts:518", + "pc": [ + 1757, + 1758, + 1759 + ] + }, + { + "teal": 2016, + "source": "examples/reti/stakingPool.algo.ts:518", "pc": [ 1760 ] }, { - "teal": 2019, + "teal": 2017, "source": "examples/reti/stakingPool.algo.ts:518", "pc": [ - 1761, - 1762, - 1763 + 1761 ] }, { - "teal": 2020, + "teal": 2028, "source": "examples/reti/stakingPool.algo.ts:518", "pc": [ + 1762, + 1763, 1764 ] }, { - "teal": 2021, + "teal": 2031, "source": "examples/reti/stakingPool.algo.ts:518", "pc": [ 1765 @@ -8628,41 +8628,41 @@ "source": "examples/reti/stakingPool.algo.ts:518", "pc": [ 1766, - 1767, - 1768 + 1767 ] }, { - "teal": 2035, - "source": "examples/reti/stakingPool.algo.ts:518", + "teal": 2039, + "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 1769 + 1768 ] }, { - "teal": 2036, - "source": "examples/reti/stakingPool.algo.ts:518", + "teal": 2040, + "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 1770, - 1771 + 1769 ] }, { - "teal": 2043, + "teal": 2041, "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 1772 + 1770, + 1771 ] }, { - "teal": 2044, + "teal": 2042, "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ + 1772, 1773 ] }, { - "teal": 2045, + "teal": 2043, "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ 1774, @@ -8670,96 +8670,102 @@ ] }, { - "teal": 2046, - "source": "examples/reti/stakingPool.algo.ts:520", + "teal": 2047, + "source": "examples/reti/stakingPool.algo.ts:521", + "pc": [ + 1776 + ] + }, + { + "teal": 2048, + "source": "examples/reti/stakingPool.algo.ts:521", "pc": [ - 1776, 1777 ] }, { - "teal": 2047, - "source": "examples/reti/stakingPool.algo.ts:520", + "teal": 2049, + "source": "examples/reti/stakingPool.algo.ts:521", "pc": [ 1778, 1779 ] }, { - "teal": 2051, - "source": "examples/reti/stakingPool.algo.ts:521", + "teal": 2053, + "source": "examples/reti/stakingPool.algo.ts:522", "pc": [ 1780 ] }, { - "teal": 2052, - "source": "examples/reti/stakingPool.algo.ts:521", + "teal": 2054, + "source": "examples/reti/stakingPool.algo.ts:522", "pc": [ 1781 ] }, { - "teal": 2053, - "source": "examples/reti/stakingPool.algo.ts:521", + "teal": 2055, + "source": "examples/reti/stakingPool.algo.ts:522", "pc": [ - 1782, - 1783 + 1782 ] }, { - "teal": 2057, + "teal": 2056, "source": "examples/reti/stakingPool.algo.ts:522", "pc": [ + 1783, 1784 ] }, { - "teal": 2058, - "source": "examples/reti/stakingPool.algo.ts:522", + "teal": 2059, + "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ 1785 ] }, { - "teal": 2059, - "source": "examples/reti/stakingPool.algo.ts:522", + "teal": 2060, + "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 1786 + 1786, + 1787 ] }, { - "teal": 2060, - "source": "examples/reti/stakingPool.algo.ts:522", + "teal": 2063, + "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 1787, 1788 ] }, { - "teal": 2063, + "teal": 2064, "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 1789 + 1789, + 1790 ] }, { - "teal": 2064, + "teal": 2065, "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 1790, 1791 ] }, { - "teal": 2067, + "teal": 2066, "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ 1792 ] }, { - "teal": 2068, + "teal": 2067, "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ 1793, @@ -8767,94 +8773,88 @@ ] }, { - "teal": 2069, - "source": "examples/reti/stakingPool.algo.ts:520", - "pc": [ - 1795 - ] - }, - { - "teal": 2070, + "teal": 2068, "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 1796 + 1795, + 1796, + 1797 ] }, { - "teal": 2071, + "teal": 2069, "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 1797, - 1798 + 1798, + 1799 ] }, { - "teal": 2072, - "source": "examples/reti/stakingPool.algo.ts:520", + "teal": 2073, + "source": "examples/reti/stakingPool.algo.ts:529", "pc": [ - 1799, 1800, 1801 ] }, { - "teal": 2073, - "source": "examples/reti/stakingPool.algo.ts:520", + "teal": 2074, + "source": "examples/reti/stakingPool.algo.ts:529", "pc": [ 1802, - 1803 + 1803, + 1804 ] }, { - "teal": 2077, + "teal": 2075, "source": "examples/reti/stakingPool.algo.ts:529", "pc": [ - 1804, 1805 ] }, { - "teal": 2078, + "teal": 2076, "source": "examples/reti/stakingPool.algo.ts:529", "pc": [ 1806, - 1807, - 1808 + 1807 ] }, { - "teal": 2079, - "source": "examples/reti/stakingPool.algo.ts:529", + "teal": 2080, + "source": "examples/reti/stakingPool.algo.ts:530", "pc": [ + 1808, 1809 ] }, { - "teal": 2080, - "source": "examples/reti/stakingPool.algo.ts:529", + "teal": 2081, + "source": "examples/reti/stakingPool.algo.ts:530", "pc": [ 1810, 1811 ] }, { - "teal": 2084, - "source": "examples/reti/stakingPool.algo.ts:530", + "teal": 2085, + "source": "examples/reti/stakingPool.algo.ts:531", "pc": [ 1812, 1813 ] }, { - "teal": 2085, - "source": "examples/reti/stakingPool.algo.ts:530", + "teal": 2086, + "source": "examples/reti/stakingPool.algo.ts:531", "pc": [ 1814, 1815 ] }, { - "teal": 2089, + "teal": 2087, "source": "examples/reti/stakingPool.algo.ts:531", "pc": [ 1816, @@ -8862,15 +8862,21 @@ ] }, { - "teal": 2090, + "teal": 2088, + "source": "examples/reti/stakingPool.algo.ts:531", + "pc": [ + 1818 + ] + }, + { + "teal": 2089, "source": "examples/reti/stakingPool.algo.ts:531", "pc": [ - 1818, 1819 ] }, { - "teal": 2091, + "teal": 2090, "source": "examples/reti/stakingPool.algo.ts:531", "pc": [ 1820, @@ -8878,106 +8884,106 @@ ] }, { - "teal": 2092, - "source": "examples/reti/stakingPool.algo.ts:531", + "teal": 2095, + "source": "examples/reti/stakingPool.algo.ts:534", "pc": [ - 1822 + 1822, + 1823, + 1824 ] }, { - "teal": 2093, - "source": "examples/reti/stakingPool.algo.ts:531", + "teal": 2096, + "source": "examples/reti/stakingPool.algo.ts:534", "pc": [ - 1823 + 1825, + 1826 ] }, { - "teal": 2094, - "source": "examples/reti/stakingPool.algo.ts:531", + "teal": 2097, + "source": "examples/reti/stakingPool.algo.ts:534", "pc": [ - 1824, - 1825 + 1827 ] }, { - "teal": 2099, + "teal": 2098, "source": "examples/reti/stakingPool.algo.ts:534", "pc": [ - 1826, - 1827, 1828 ] }, { - "teal": 2100, + "teal": 2099, "source": "examples/reti/stakingPool.algo.ts:534", "pc": [ - 1829, - 1830 + 1829 ] }, { - "teal": 2101, + "teal": 2100, "source": "examples/reti/stakingPool.algo.ts:534", "pc": [ - 1831 + 1830, + 1831, + 1832 ] }, { - "teal": 2102, - "source": "examples/reti/stakingPool.algo.ts:534", + "teal": 2105, + "source": "examples/reti/stakingPool.algo.ts:535", "pc": [ - 1832 + 1833, + 1834 ] }, { - "teal": 2103, - "source": "examples/reti/stakingPool.algo.ts:534", + "teal": 2106, + "source": "examples/reti/stakingPool.algo.ts:535", "pc": [ - 1833 + 1835 ] }, { - "teal": 2104, - "source": "examples/reti/stakingPool.algo.ts:534", + "teal": 2107, + "source": "examples/reti/stakingPool.algo.ts:535", "pc": [ - 1834, - 1835, - 1836 + 1836, + 1837 ] }, { - "teal": 2109, + "teal": 2108, "source": "examples/reti/stakingPool.algo.ts:535", "pc": [ - 1837, 1838 ] }, { - "teal": 2110, + "teal": 2109, "source": "examples/reti/stakingPool.algo.ts:535", "pc": [ - 1839 + 1839, + 1840 ] }, { - "teal": 2111, + "teal": 2110, "source": "examples/reti/stakingPool.algo.ts:535", "pc": [ - 1840, 1841 ] }, { - "teal": 2112, + "teal": 2111, "source": "examples/reti/stakingPool.algo.ts:535", "pc": [ 1842 ] }, { - "teal": 2113, + "teal": 2112, "source": "examples/reti/stakingPool.algo.ts:535", "pc": [ 1843, @@ -8985,549 +8991,543 @@ ] }, { - "teal": 2114, - "source": "examples/reti/stakingPool.algo.ts:535", - "pc": [ - 1845 - ] - }, - { - "teal": 2115, - "source": "examples/reti/stakingPool.algo.ts:535", + "teal": 2116, + "source": "examples/reti/stakingPool.algo.ts:539", "pc": [ + 1845, 1846 ] }, { - "teal": 2116, - "source": "examples/reti/stakingPool.algo.ts:535", + "teal": 2117, + "source": "examples/reti/stakingPool.algo.ts:539", "pc": [ 1847, 1848 ] }, { - "teal": 2120, + "teal": 2118, "source": "examples/reti/stakingPool.algo.ts:539", "pc": [ - 1849, - 1850 + 1849 ] }, { "teal": 2121, "source": "examples/reti/stakingPool.algo.ts:539", + "errorMessage": "can't call epochBalanceUpdate in same epoch as prior call", "pc": [ - 1851, - 1852 + 1850 ] }, { - "teal": 2122, - "source": "examples/reti/stakingPool.algo.ts:539", + "teal": 2126, + "source": "examples/reti/stakingPool.algo.ts:542", "pc": [ + 1851, + 1852, 1853 ] }, { - "teal": 2125, - "source": "examples/reti/stakingPool.algo.ts:539", - "errorMessage": "can't call epochBalanceUpdate in same epoch as prior call", + "teal": 2130, + "source": "examples/reti/stakingPool.algo.ts:545", "pc": [ - 1854 + 1854, + 1855 ] }, { - "teal": 2130, - "source": "examples/reti/stakingPool.algo.ts:542", + "teal": 2131, + "source": "examples/reti/stakingPool.algo.ts:545", "pc": [ - 1855, 1856, 1857 ] }, { - "teal": 2134, + "teal": 2132, "source": "examples/reti/stakingPool.algo.ts:545", "pc": [ - 1858, - 1859 + 1858 ] }, { - "teal": 2135, - "source": "examples/reti/stakingPool.algo.ts:545", + "teal": 2136, + "source": "examples/reti/stakingPool.algo.ts:546", + "pc": [ + 1859, + 1860 + ] + }, + { + "teal": 2137, + "source": "examples/reti/stakingPool.algo.ts:546", "pc": [ - 1860, 1861 ] }, { - "teal": 2136, - "source": "examples/reti/stakingPool.algo.ts:545", + "teal": 2138, + "source": "examples/reti/stakingPool.algo.ts:546", "pc": [ 1862 ] }, { - "teal": 2140, + "teal": 2139, "source": "examples/reti/stakingPool.algo.ts:546", "pc": [ - 1863, - 1864 + 1863 ] }, { - "teal": 2141, + "teal": 2140, "source": "examples/reti/stakingPool.algo.ts:546", "pc": [ + 1864, 1865 ] }, { - "teal": 2142, + "teal": 2141, "source": "examples/reti/stakingPool.algo.ts:546", "pc": [ 1866 ] }, { - "teal": 2143, + "teal": 2142, "source": "examples/reti/stakingPool.algo.ts:546", "pc": [ 1867 ] }, { - "teal": 2144, - "source": "examples/reti/stakingPool.algo.ts:546", + "teal": 2146, + "source": "examples/reti/stakingPool.algo.ts:551", "pc": [ 1868, 1869 ] }, { - "teal": 2145, - "source": "examples/reti/stakingPool.algo.ts:546", - "pc": [ - 1870 - ] - }, - { - "teal": 2146, - "source": "examples/reti/stakingPool.algo.ts:546", + "teal": 2147, + "source": "examples/reti/stakingPool.algo.ts:551", "pc": [ - 1871 + 1870, + 1871, + 1872 ] }, { - "teal": 2150, + "teal": 2148, "source": "examples/reti/stakingPool.algo.ts:551", "pc": [ - 1872, 1873 ] }, { - "teal": 2151, + "teal": 2149, "source": "examples/reti/stakingPool.algo.ts:551", "pc": [ - 1874, - 1875, - 1876 + 1874 ] }, { - "teal": 2152, + "teal": 2150, "source": "examples/reti/stakingPool.algo.ts:551", "pc": [ - 1877 + 1875 ] }, { - "teal": 2153, + "teal": 2151, "source": "examples/reti/stakingPool.algo.ts:551", "pc": [ - 1878 + 1876, + 1877 ] }, { - "teal": 2154, - "source": "examples/reti/stakingPool.algo.ts:551", + "teal": 2155, + "source": "examples/reti/stakingPool.algo.ts:552", "pc": [ - 1879 + 1878, + 1879, + 1880 ] }, { - "teal": 2155, - "source": "examples/reti/stakingPool.algo.ts:551", + "teal": 2156, + "source": "examples/reti/stakingPool.algo.ts:552", "pc": [ - 1880, - 1881 + 1881, + 1882 ] }, { - "teal": 2159, - "source": "examples/reti/stakingPool.algo.ts:552", + "teal": 2160, + "source": "examples/reti/stakingPool.algo.ts:553", "pc": [ - 1882, 1883, 1884 ] }, { - "teal": 2160, - "source": "examples/reti/stakingPool.algo.ts:552", + "teal": 2161, + "source": "examples/reti/stakingPool.algo.ts:553", "pc": [ 1885, 1886 ] }, { - "teal": 2164, - "source": "examples/reti/stakingPool.algo.ts:553", + "teal": 2166, + "source": "examples/reti/stakingPool.algo.ts:558", "pc": [ 1887, 1888 ] }, { - "teal": 2165, - "source": "examples/reti/stakingPool.algo.ts:553", + "teal": 2167, + "source": "examples/reti/stakingPool.algo.ts:558", "pc": [ 1889, - 1890 + 1890, + 1891 ] }, { - "teal": 2170, - "source": "examples/reti/stakingPool.algo.ts:558", + "teal": 2173, + "source": "examples/reti/stakingPool.algo.ts:559", "pc": [ - 1891, - 1892 + 1892, + 1893 ] }, { - "teal": 2171, - "source": "examples/reti/stakingPool.algo.ts:558", + "teal": 2174, + "source": "examples/reti/stakingPool.algo.ts:559", "pc": [ - 1893, - 1894, - 1895 + 1894 ] }, { - "teal": 2177, + "teal": 2175, "source": "examples/reti/stakingPool.algo.ts:559", "pc": [ - 1896, - 1897 + 1895 ] }, { - "teal": 2178, + "teal": 2176, "source": "examples/reti/stakingPool.algo.ts:559", "pc": [ - 1898 + 1896 ] }, { - "teal": 2179, + "teal": 2177, "source": "examples/reti/stakingPool.algo.ts:559", "pc": [ + 1897, + 1898, 1899 ] }, { - "teal": 2180, - "source": "examples/reti/stakingPool.algo.ts:559", + "teal": 2185, + "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ 1900 ] }, { - "teal": 2181, - "source": "examples/reti/stakingPool.algo.ts:559", + "teal": 2186, + "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 1901, - 1902, - 1903 + 1901 ] }, { - "teal": 2189, + "teal": 2187, "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 1904 + 1902, + 1903 ] }, { - "teal": 2190, + "teal": 2188, "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ + 1904, 1905 ] }, { - "teal": 2191, + "teal": 2189, "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ 1906, 1907 ] }, - { - "teal": 2192, - "source": "examples/reti/stakingPool.algo.ts:561", - "pc": [ - 1908, - 1909 - ] - }, { "teal": 2193, - "source": "examples/reti/stakingPool.algo.ts:561", - "pc": [ - 1910, - 1911 - ] - }, - { - "teal": 2197, "source": "examples/reti/stakingPool.algo.ts:562", "pc": [ - 1912 + 1908 ] }, { - "teal": 2198, + "teal": 2194, "source": "examples/reti/stakingPool.algo.ts:562", "pc": [ - 1913 + 1909 ] }, { - "teal": 2199, + "teal": 2195, "source": "examples/reti/stakingPool.algo.ts:562", "pc": [ - 1914, - 1915 + 1910, + 1911 ] }, { - "teal": 2203, + "teal": 2199, "source": "examples/reti/stakingPool.algo.ts:563", "pc": [ - 1916 + 1912 ] }, { - "teal": 2204, + "teal": 2200, "source": "examples/reti/stakingPool.algo.ts:563", "pc": [ - 1917 + 1913 ] }, { - "teal": 2205, + "teal": 2201, "source": "examples/reti/stakingPool.algo.ts:563", "pc": [ - 1918 + 1914 ] }, { - "teal": 2206, + "teal": 2202, "source": "examples/reti/stakingPool.algo.ts:563", "pc": [ - 1919, - 1920 + 1915, + 1916 ] }, { - "teal": 2207, + "teal": 2203, "source": "examples/reti/stakingPool.algo.ts:563", "pc": [ + 1917, + 1918, + 1919, + 1920, 1921, 1922, 1923, 1924, 1925, - 1926, + 1926 + ] + }, + { + "teal": 2204, + "source": "examples/reti/stakingPool.algo.ts:563", + "pc": [ 1927, - 1928, - 1929, - 1930 + 1928 + ] + }, + { + "teal": 2207, + "source": "examples/reti/stakingPool.algo.ts:561", + "pc": [ + 1929 ] }, { "teal": 2208, - "source": "examples/reti/stakingPool.algo.ts:563", + "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 1931, - 1932 + 1930, + 1931 ] }, { "teal": 2211, "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 1933 + 1932 ] }, { "teal": 2212, "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 1934, - 1935 + 1933, + 1934 ] }, { - "teal": 2215, + "teal": 2213, "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 1936 + 1935 ] }, { - "teal": 2216, + "teal": 2214, "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 1937, - 1938 + 1936 ] }, { - "teal": 2217, + "teal": 2215, "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 1939 + 1937, + 1938 ] }, { - "teal": 2218, + "teal": 2216, "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 1940 + 1939, + 1940, + 1941 ] }, { - "teal": 2219, + "teal": 2217, "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 1941, 1942 ] }, { - "teal": 2220, + "teal": 2218, "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ 1943, - 1944, - 1945 + 1944 ] }, { - "teal": 2221, - "source": "examples/reti/stakingPool.algo.ts:561", + "teal": 2222, + "source": "examples/reti/stakingPool.algo.ts:565", "pc": [ + 1945, 1946 ] }, { - "teal": 2222, - "source": "examples/reti/stakingPool.algo.ts:561", + "teal": 2223, + "source": "examples/reti/stakingPool.algo.ts:565", "pc": [ 1947, 1948 ] }, { - "teal": 2226, + "teal": 2224, "source": "examples/reti/stakingPool.algo.ts:565", "pc": [ - 1949, - 1950 + 1949 ] }, { - "teal": 2227, + "teal": 2225, "source": "examples/reti/stakingPool.algo.ts:565", "pc": [ - 1951, - 1952 + 1950, + 1951 ] }, { - "teal": 2228, - "source": "examples/reti/stakingPool.algo.ts:565", + "teal": 2231, + "source": "examples/reti/stakingPool.algo.ts:570", "pc": [ + 1952, 1953 ] }, { - "teal": 2229, - "source": "examples/reti/stakingPool.algo.ts:565", + "teal": 2232, + "source": "examples/reti/stakingPool.algo.ts:570", "pc": [ - 1954, - 1955 + 1954 ] }, { - "teal": 2235, + "teal": 2233, "source": "examples/reti/stakingPool.algo.ts:570", "pc": [ - 1956, - 1957 + 1955 ] }, { - "teal": 2236, + "teal": 2234, "source": "examples/reti/stakingPool.algo.ts:570", "pc": [ - 1958 + 1956 ] }, { - "teal": 2237, + "teal": 2235, "source": "examples/reti/stakingPool.algo.ts:570", "pc": [ + 1957, + 1958, 1959 ] }, { - "teal": 2238, - "source": "examples/reti/stakingPool.algo.ts:570", + "teal": 2243, + "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ 1960 ] }, { - "teal": 2239, - "source": "examples/reti/stakingPool.algo.ts:570", + "teal": 2244, + "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 1961, - 1962, - 1963 + 1961 ] }, { - "teal": 2247, + "teal": 2245, "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 1964 + 1962, + 1963 ] }, { - "teal": 2248, + "teal": 2246, "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ + 1964, 1965 ] }, { - "teal": 2249, + "teal": 2247, "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ 1966, @@ -9535,96 +9535,102 @@ ] }, { - "teal": 2250, - "source": "examples/reti/stakingPool.algo.ts:571", + "teal": 2251, + "source": "examples/reti/stakingPool.algo.ts:572", + "pc": [ + 1968 + ] + }, + { + "teal": 2252, + "source": "examples/reti/stakingPool.algo.ts:572", "pc": [ - 1968, 1969 ] }, { - "teal": 2251, - "source": "examples/reti/stakingPool.algo.ts:571", + "teal": 2253, + "source": "examples/reti/stakingPool.algo.ts:572", "pc": [ 1970, 1971 ] }, { - "teal": 2255, - "source": "examples/reti/stakingPool.algo.ts:572", + "teal": 2257, + "source": "examples/reti/stakingPool.algo.ts:573", "pc": [ 1972 ] }, { - "teal": 2256, - "source": "examples/reti/stakingPool.algo.ts:572", + "teal": 2258, + "source": "examples/reti/stakingPool.algo.ts:573", "pc": [ 1973 ] }, { - "teal": 2257, - "source": "examples/reti/stakingPool.algo.ts:572", + "teal": 2259, + "source": "examples/reti/stakingPool.algo.ts:573", "pc": [ - 1974, - 1975 + 1974 ] }, { - "teal": 2261, + "teal": 2260, "source": "examples/reti/stakingPool.algo.ts:573", "pc": [ + 1975, 1976 ] }, { - "teal": 2262, - "source": "examples/reti/stakingPool.algo.ts:573", + "teal": 2263, + "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ 1977 ] }, { - "teal": 2263, - "source": "examples/reti/stakingPool.algo.ts:573", + "teal": 2264, + "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 1978 + 1978, + 1979 ] }, { - "teal": 2264, - "source": "examples/reti/stakingPool.algo.ts:573", + "teal": 2267, + "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 1979, 1980 ] }, { - "teal": 2267, + "teal": 2268, "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 1981 + 1981, + 1982 ] }, { - "teal": 2268, + "teal": 2269, "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 1982, 1983 ] }, { - "teal": 2271, + "teal": 2270, "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ 1984 ] }, { - "teal": 2272, + "teal": 2271, "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ 1985, @@ -9632,69 +9638,63 @@ ] }, { - "teal": 2273, - "source": "examples/reti/stakingPool.algo.ts:571", - "pc": [ - 1987 - ] - }, - { - "teal": 2274, + "teal": 2272, "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 1988 + 1987, + 1988, + 1989 ] }, { - "teal": 2275, + "teal": 2273, "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 1989, - 1990 + 1990, + 1991 ] }, { - "teal": 2276, - "source": "examples/reti/stakingPool.algo.ts:571", + "teal": 2274, + "source": "examples/reti/stakingPool.algo.ts:570", "pc": [ - 1991, 1992, - 1993 + 1993, + 1994 ] }, { - "teal": 2277, - "source": "examples/reti/stakingPool.algo.ts:571", + "teal": 2282, + "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 1994, 1995 ] }, { - "teal": 2278, - "source": "examples/reti/stakingPool.algo.ts:570", + "teal": 2283, + "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 1996, - 1997, - 1998 + 1996 ] }, { - "teal": 2286, + "teal": 2284, "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 1999 + 1997, + 1998 ] }, { - "teal": 2287, + "teal": 2285, "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ + 1999, 2000 ] }, { - "teal": 2288, + "teal": 2286, "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ 2001, @@ -9702,142 +9702,148 @@ ] }, { - "teal": 2289, - "source": "examples/reti/stakingPool.algo.ts:577", + "teal": 2290, + "source": "examples/reti/stakingPool.algo.ts:578", "pc": [ 2003, 2004 ] }, { - "teal": 2290, - "source": "examples/reti/stakingPool.algo.ts:577", + "teal": 2291, + "source": "examples/reti/stakingPool.algo.ts:578", "pc": [ 2005, 2006 ] }, { - "teal": 2294, - "source": "examples/reti/stakingPool.algo.ts:578", + "teal": 2295, + "source": "examples/reti/stakingPool.algo.ts:579", + "pc": [ + 2007 + ] + }, + { + "teal": 2296, + "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ - 2007, 2008 ] }, { - "teal": 2295, - "source": "examples/reti/stakingPool.algo.ts:578", + "teal": 2297, + "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ - 2009, - 2010 + 2009 ] }, { - "teal": 2299, + "teal": 2298, "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ + 2010, 2011 ] }, { - "teal": 2300, + "teal": 2299, "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ 2012 ] }, { - "teal": 2301, + "teal": 2300, "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ 2013 ] }, { - "teal": 2302, + "teal": 2301, "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ - 2014, - 2015 + 2014 ] }, { - "teal": 2303, + "teal": 2302, "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ - 2016 + 2015, + 2016, + 2017 ] }, { - "teal": 2304, + "teal": 2303, "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ - 2017 + 2018 ] }, { - "teal": 2305, + "teal": 2304, "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ - 2018 + 2019 ] }, { - "teal": 2306, + "teal": 2305, "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ - 2019, 2020, 2021 ] }, { - "teal": 2307, - "source": "examples/reti/stakingPool.algo.ts:579", + "teal": 2308, + "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ 2022 ] }, { - "teal": 2308, - "source": "examples/reti/stakingPool.algo.ts:579", + "teal": 2309, + "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2023 + 2023, + 2024 ] }, { - "teal": 2309, - "source": "examples/reti/stakingPool.algo.ts:579", + "teal": 2312, + "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2024, 2025 ] }, { - "teal": 2312, + "teal": 2313, "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2026 + 2026, + 2027 ] }, { - "teal": 2313, + "teal": 2314, "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2027, 2028 ] }, { - "teal": 2316, + "teal": 2315, "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ 2029 ] }, { - "teal": 2317, + "teal": 2316, "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ 2030, @@ -9845,161 +9851,161 @@ ] }, { - "teal": 2318, + "teal": 2317, "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2032 + 2032, + 2033, + 2034 ] }, { - "teal": 2319, + "teal": 2318, "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2033 + 2035, + 2036 ] }, { - "teal": 2320, - "source": "examples/reti/stakingPool.algo.ts:577", + "teal": 2328, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2034, - 2035 + 2037 ] }, { - "teal": 2321, - "source": "examples/reti/stakingPool.algo.ts:577", + "teal": 2329, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2036, - 2037, 2038 ] }, { - "teal": 2322, - "source": "examples/reti/stakingPool.algo.ts:577", + "teal": 2330, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ 2039, 2040 ] }, { - "teal": 2332, + "teal": 2331, "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2041 + 2041, + 2042, + 2043, + 2044, + 2045, + 2046 ] }, { - "teal": 2333, + "teal": 2332, "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2042 + 2047, + 2048 ] }, { - "teal": 2334, - "source": "examples/reti/stakingPool.algo.ts:586", + "teal": 2336, + "source": "examples/reti/stakingPool.algo.ts:587", "pc": [ - 2043, - 2044 + 2049 ] }, { - "teal": 2335, - "source": "examples/reti/stakingPool.algo.ts:586", + "teal": 2337, + "source": "examples/reti/stakingPool.algo.ts:587", "pc": [ - 2045, - 2046, - 2047, - 2048, - 2049, 2050 ] }, { - "teal": 2336, - "source": "examples/reti/stakingPool.algo.ts:586", + "teal": 2338, + "source": "examples/reti/stakingPool.algo.ts:587", "pc": [ 2051, 2052 ] }, { - "teal": 2340, - "source": "examples/reti/stakingPool.algo.ts:587", + "teal": 2342, + "source": "examples/reti/stakingPool.algo.ts:588", "pc": [ 2053 ] }, { - "teal": 2341, - "source": "examples/reti/stakingPool.algo.ts:587", + "teal": 2343, + "source": "examples/reti/stakingPool.algo.ts:588", "pc": [ 2054 ] }, { - "teal": 2342, - "source": "examples/reti/stakingPool.algo.ts:587", + "teal": 2344, + "source": "examples/reti/stakingPool.algo.ts:588", "pc": [ - 2055, - 2056 + 2055 ] }, { - "teal": 2346, + "teal": 2345, "source": "examples/reti/stakingPool.algo.ts:588", "pc": [ + 2056, 2057 ] }, { - "teal": 2347, - "source": "examples/reti/stakingPool.algo.ts:588", + "teal": 2348, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ 2058 ] }, { - "teal": 2348, - "source": "examples/reti/stakingPool.algo.ts:588", + "teal": 2349, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2059 + 2059, + 2060 ] }, { - "teal": 2349, - "source": "examples/reti/stakingPool.algo.ts:588", + "teal": 2352, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2060, 2061 ] }, { - "teal": 2352, + "teal": 2353, "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2062 + 2062, + 2063 ] }, { - "teal": 2353, + "teal": 2354, "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2063, 2064 ] }, { - "teal": 2356, + "teal": 2355, "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ 2065 ] }, { - "teal": 2357, + "teal": 2356, "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ 2066, @@ -10007,495 +10013,495 @@ ] }, { - "teal": 2358, - "source": "examples/reti/stakingPool.algo.ts:586", - "pc": [ - 2068 - ] - }, - { - "teal": 2359, + "teal": 2357, "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2069 + 2068, + 2069, + 2070 ] }, { - "teal": 2360, + "teal": 2358, "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2070, - 2071 + 2071, + 2072 ] }, { - "teal": 2361, - "source": "examples/reti/stakingPool.algo.ts:586", + "teal": 2362, + "source": "examples/reti/stakingPool.algo.ts:590", "pc": [ - 2072, 2073, 2074 ] }, { - "teal": 2362, - "source": "examples/reti/stakingPool.algo.ts:586", + "teal": 2363, + "source": "examples/reti/stakingPool.algo.ts:590", "pc": [ 2075, - 2076 + 2076, + 2077 ] }, { - "teal": 2366, + "teal": 2364, "source": "examples/reti/stakingPool.algo.ts:590", "pc": [ - 2077, 2078 ] }, { - "teal": 2367, + "teal": 2365, "source": "examples/reti/stakingPool.algo.ts:590", "pc": [ 2079, - 2080, - 2081 + 2080 ] }, { - "teal": 2368, - "source": "examples/reti/stakingPool.algo.ts:590", + "teal": 2369, + "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ + 2081, 2082 ] }, { - "teal": 2369, - "source": "examples/reti/stakingPool.algo.ts:590", + "teal": 2370, + "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ 2083, 2084 ] }, { - "teal": 2373, + "teal": 2371, "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2085, - 2086 + 2085 ] }, { - "teal": 2374, + "teal": 2372, "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2087, - 2088 + 2086, + 2087 ] }, { - "teal": 2375, + "teal": 2373, "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2089 + 2088 ] }, { - "teal": 2376, + "teal": 2374, "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2090, - 2091 + 2089 ] }, { - "teal": 2377, + "teal": 2375, "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2092 + 2090, + 2091 ] }, { - "teal": 2378, + "teal": 2376, "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ + 2092, 2093 ] }, { - "teal": 2379, - "source": "examples/reti/stakingPool.algo.ts:596", - "pc": [ - 2094, - 2095 - ] - }, - { - "teal": 2380, + "teal": 2377, "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2096, - 2097 + 2094 ] }, { - "teal": 2381, + "teal": 2378, "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2098 + 2095 ] }, { - "teal": 2382, + "teal": 2379, "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2099 + 2096, + 2097 ] }, { "teal": 2383, - "source": "examples/reti/stakingPool.algo.ts:596", + "source": "examples/reti/stakingPool.algo.ts:597", "pc": [ - 2100, - 2101 + 2098 ] }, { - "teal": 2387, + "teal": 2384, "source": "examples/reti/stakingPool.algo.ts:597", "pc": [ - 2102 + 2099, + 2100 ] }, { "teal": 2388, - "source": "examples/reti/stakingPool.algo.ts:597", + "source": "examples/reti/stakingPool.algo.ts:598", "pc": [ - 2103, - 2104 + 2101, + 2102, + 2103 ] }, { - "teal": 2392, + "teal": 2389, "source": "examples/reti/stakingPool.algo.ts:598", "pc": [ - 2105, + 2104, + 2105 + ] + }, + { + "teal": 2394, + "source": "examples/reti/stakingPool.algo.ts:606", + "pc": [ 2106, 2107 ] }, { - "teal": 2393, - "source": "examples/reti/stakingPool.algo.ts:598", + "teal": 2395, + "source": "examples/reti/stakingPool.algo.ts:606", "pc": [ 2108, - 2109 + 2109, + 2110 ] }, { - "teal": 2398, + "teal": 2396, "source": "examples/reti/stakingPool.algo.ts:606", "pc": [ - 2110, 2111 ] }, { - "teal": 2399, + "teal": 2397, "source": "examples/reti/stakingPool.algo.ts:606", "pc": [ 2112, - 2113, - 2114 + 2113 ] }, { - "teal": 2400, + "teal": 2398, "source": "examples/reti/stakingPool.algo.ts:606", "pc": [ - 2115 + 2114 ] }, { - "teal": 2401, + "teal": 2399, "source": "examples/reti/stakingPool.algo.ts:606", "pc": [ + 2115, 2116, 2117 ] }, { - "teal": 2402, - "source": "examples/reti/stakingPool.algo.ts:606", + "teal": 2404, + "source": "examples/reti/stakingPool.algo.ts:607", "pc": [ 2118 ] }, { - "teal": 2403, - "source": "examples/reti/stakingPool.algo.ts:606", - "pc": [ - 2119, - 2120, - 2121 - ] - }, - { - "teal": 2408, + "teal": 2405, "source": "examples/reti/stakingPool.algo.ts:607", "pc": [ - 2122 + 2119, + 2120 ] }, { - "teal": 2409, - "source": "examples/reti/stakingPool.algo.ts:607", + "teal": 2410, + "source": "examples/reti/stakingPool.algo.ts:613", "pc": [ - 2123, - 2124 + 2121 ] }, { - "teal": 2414, + "teal": 2411, "source": "examples/reti/stakingPool.algo.ts:613", "pc": [ - 2125 + 2122, + 2123 ] }, { "teal": 2415, - "source": "examples/reti/stakingPool.algo.ts:613", + "source": "examples/reti/stakingPool.algo.ts:614", "pc": [ - 2126, - 2127 + 2124 ] }, { - "teal": 2419, + "teal": 2416, "source": "examples/reti/stakingPool.algo.ts:614", "pc": [ - 2128 + 2125, + 2126 ] }, { "teal": 2420, - "source": "examples/reti/stakingPool.algo.ts:614", + "source": "examples/reti/stakingPool.algo.ts:615", "pc": [ - 2129, - 2130 + 2127 ] }, { - "teal": 2424, + "teal": 2421, "source": "examples/reti/stakingPool.algo.ts:615", "pc": [ - 2131 + 2128, + 2129 ] }, { "teal": 2425, - "source": "examples/reti/stakingPool.algo.ts:615", + "source": "examples/reti/stakingPool.algo.ts:616", "pc": [ - 2132, - 2133 + 2130 ] }, { - "teal": 2429, + "teal": 2426, "source": "examples/reti/stakingPool.algo.ts:616", "pc": [ + 2131, + 2132 + ] + }, + { + "teal": 2431, + "source": "examples/reti/stakingPool.algo.ts:617", + "pc": [ + 2133, 2134 ] }, { - "teal": 2430, - "source": "examples/reti/stakingPool.algo.ts:616", + "teal": 2432, + "source": "examples/reti/stakingPool.algo.ts:617", "pc": [ 2135, - 2136 + 2136, + 2137 ] }, { - "teal": 2435, - "source": "examples/reti/stakingPool.algo.ts:617", + "teal": 2438, + "source": "examples/reti/stakingPool.algo.ts:619", "pc": [ - 2137, - 2138 + 2138, + 2139 ] }, { - "teal": 2436, - "source": "examples/reti/stakingPool.algo.ts:617", + "teal": 2439, + "source": "examples/reti/stakingPool.algo.ts:619", "pc": [ - 2139, 2140, 2141 ] }, { - "teal": 2442, + "teal": 2440, "source": "examples/reti/stakingPool.algo.ts:619", "pc": [ 2142, - 2143 + 2143, + 2144 ] }, { - "teal": 2443, + "teal": 2441, "source": "examples/reti/stakingPool.algo.ts:619", "pc": [ - 2144, 2145 ] }, { - "teal": 2444, + "teal": 2442, "source": "examples/reti/stakingPool.algo.ts:619", "pc": [ 2146, - 2147, - 2148 + 2147 ] }, { - "teal": 2445, + "teal": 2443, "source": "examples/reti/stakingPool.algo.ts:619", "pc": [ - 2149 + 2148 ] }, { - "teal": 2446, + "teal": 2444, "source": "examples/reti/stakingPool.algo.ts:619", "pc": [ - 2150, - 2151 + 2149, + 2150 ] }, { - "teal": 2447, + "teal": 2445, "source": "examples/reti/stakingPool.algo.ts:619", "pc": [ - 2152 + 2151 ] }, { - "teal": 2448, - "source": "examples/reti/stakingPool.algo.ts:619", + "teal": 2446, + "source": "examples/reti/stakingPool.algo.ts:618", "pc": [ - 2153, - 2154 + 2152, + 2153 ] }, { - "teal": 2449, - "source": "examples/reti/stakingPool.algo.ts:619", + "teal": 2451, + "source": "examples/reti/stakingPool.algo.ts:623", "pc": [ + 2154, 2155 ] }, { - "teal": 2450, - "source": "examples/reti/stakingPool.algo.ts:618", + "teal": 2452, + "source": "examples/reti/stakingPool.algo.ts:623", "pc": [ 2156, 2157 ] }, { - "teal": 2455, + "teal": 2453, "source": "examples/reti/stakingPool.algo.ts:623", "pc": [ 2158, - 2159 + 2159, + 2160 ] }, { - "teal": 2456, + "teal": 2454, "source": "examples/reti/stakingPool.algo.ts:623", "pc": [ - 2160, 2161 ] }, { - "teal": 2457, + "teal": 2455, "source": "examples/reti/stakingPool.algo.ts:623", "pc": [ - 2162, - 2163, - 2164 + 2162 ] }, { - "teal": 2458, + "teal": 2456, "source": "examples/reti/stakingPool.algo.ts:623", "pc": [ + 2163, + 2164, 2165 ] }, { - "teal": 2459, - "source": "examples/reti/stakingPool.algo.ts:623", + "teal": 2461, + "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ - 2166 + 2166, + 2167 ] }, { - "teal": 2460, - "source": "examples/reti/stakingPool.algo.ts:623", + "teal": 2462, + "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ - 2167, - 2168, - 2169 + 2168 ] }, { - "teal": 2465, + "teal": 2463, + "source": "examples/reti/stakingPool.algo.ts:629", + "pc": [ + 2169, + 2170 + ] + }, + { + "teal": 2464, "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ - 2170, 2171 ] }, { - "teal": 2466, + "teal": 2465, "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ 2172 ] }, { - "teal": 2467, + "teal": 2466, "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ - 2173, - 2174 + 2173 ] }, { - "teal": 2468, + "teal": 2467, "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ + 2174, 2175 ] }, { - "teal": 2469, + "teal": 2468, "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ 2176 ] }, { - "teal": 2470, + "teal": 2469, "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ 2177 ] }, { - "teal": 2471, + "teal": 2470, "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ 2178, @@ -10503,21 +10509,21 @@ ] }, { - "teal": 2472, + "teal": 2471, "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ 2180 ] }, { - "teal": 2473, + "teal": 2472, "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ 2181 ] }, { - "teal": 2474, + "teal": 2473, "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ 2182, @@ -10525,53 +10531,53 @@ ] }, { - "teal": 2475, - "source": "examples/reti/stakingPool.algo.ts:629", - "pc": [ - 2184 - ] - }, - { - "teal": 2476, - "source": "examples/reti/stakingPool.algo.ts:629", + "teal": 2477, + "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ + 2184, 2185 ] }, { - "teal": 2477, - "source": "examples/reti/stakingPool.algo.ts:629", + "teal": 2478, + "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ 2186, - 2187 + 2187, + 2188 ] }, { - "teal": 2481, + "teal": 2479, "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ - 2188, 2189 ] }, { - "teal": 2482, + "teal": 2480, "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ 2190, - 2191, + 2191 + ] + }, + { + "teal": 2481, + "source": "examples/reti/stakingPool.algo.ts:632", + "pc": [ 2192 ] }, { - "teal": 2483, + "teal": 2482, "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ 2193 ] }, { - "teal": 2484, + "teal": 2483, "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ 2194, @@ -10579,145 +10585,127 @@ ] }, { - "teal": 2485, + "teal": 2484, "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ 2196 ] }, { - "teal": 2486, + "teal": 2485, "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ 2197 ] }, { - "teal": 2487, - "source": "examples/reti/stakingPool.algo.ts:632", - "pc": [ - 2198, - 2199 - ] - }, - { - "teal": 2488, + "teal": 2486, "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ - 2200 + 2198 ] }, { - "teal": 2489, + "teal": 2487, "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ - 2201 + 2199 ] }, { - "teal": 2490, + "teal": 2488, "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ - 2202 + 2200 ] }, { "teal": 2491, "source": "examples/reti/stakingPool.algo.ts:632", + "errorMessage": "wideRatio failed", "pc": [ - 2203 + 2201 ] }, { "teal": 2492, "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ - 2204 + 2202, + 2203 ] }, { - "teal": 2495, - "source": "examples/reti/stakingPool.algo.ts:632", - "errorMessage": "wideRatio failed", + "teal": 2500, + "source": "examples/reti/stakingPool.algo.ts:635", "pc": [ + 2204, 2205 ] }, { - "teal": 2496, - "source": "examples/reti/stakingPool.algo.ts:632", + "teal": 2501, + "source": "examples/reti/stakingPool.algo.ts:635", "pc": [ - 2206, - 2207 + 2206 ] }, { - "teal": 2504, + "teal": 2502, "source": "examples/reti/stakingPool.algo.ts:635", "pc": [ - 2208, - 2209 + 2207 ] }, { - "teal": 2505, + "teal": 2503, "source": "examples/reti/stakingPool.algo.ts:635", "pc": [ + 2208, + 2209, 2210 ] }, { - "teal": 2506, - "source": "examples/reti/stakingPool.algo.ts:635", + "teal": 2509, + "source": "examples/reti/stakingPool.algo.ts:640", "pc": [ - 2211 + 2211, + 2212 ] }, { - "teal": 2507, - "source": "examples/reti/stakingPool.algo.ts:635", + "teal": 2510, + "source": "examples/reti/stakingPool.algo.ts:640", "pc": [ - 2212, 2213, 2214 ] }, { - "teal": 2513, + "teal": 2511, "source": "examples/reti/stakingPool.algo.ts:640", "pc": [ - 2215, - 2216 + 2215 ] }, { - "teal": 2514, + "teal": 2512, "source": "examples/reti/stakingPool.algo.ts:640", "pc": [ + 2216, 2217, 2218 ] }, { - "teal": 2515, - "source": "examples/reti/stakingPool.algo.ts:640", - "pc": [ - 2219 - ] - }, - { - "teal": 2516, - "source": "examples/reti/stakingPool.algo.ts:640", + "teal": 2517, + "source": "examples/reti/stakingPool.algo.ts:641", "pc": [ + 2219, 2220, 2221, - 2222 - ] - }, - { - "teal": 2521, - "source": "examples/reti/stakingPool.algo.ts:641", - "pc": [ + 2222, 2223, 2224, 2225, @@ -10737,239 +10725,239 @@ 2239, 2240, 2241, - 2242, - 2243, - 2244, - 2245, - 2246 + 2242 ] }, { - "teal": 2522, + "teal": 2518, "source": "examples/reti/stakingPool.algo.ts:641", "pc": [ - 2247 + 2243 ] }, { - "teal": 2526, + "teal": 2522, "source": "examples/reti/stakingPool.algo.ts:642", "pc": [ - 2248 + 2244 ] }, { - "teal": 2534, + "teal": 2530, "source": "examples/reti/stakingPool.algo.ts:646", "pc": [ - 2249, - 2250 + 2245, + 2246 ] }, { - "teal": 2535, + "teal": 2531, "source": "examples/reti/stakingPool.algo.ts:646", "pc": [ - 2251, - 2252, - 2253 + 2247, + 2248, + 2249 ] }, { - "teal": 2540, + "teal": 2536, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2254, - 2255 + 2250, + 2251 ] }, { - "teal": 2541, + "teal": 2537, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2256, - 2257 + 2252, + 2253 ] }, { - "teal": 2542, + "teal": 2538, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2258 + 2254 ] }, { - "teal": 2543, + "teal": 2539, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2259 + 2255 ] }, { - "teal": 2544, + "teal": 2540, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2260, - 2261 + 2256, + 2257 ] }, { - "teal": 2545, + "teal": 2541, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2262, - 2263, - 2264 + 2258, + 2259, + 2260 ] }, { - "teal": 2546, + "teal": 2542, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2265 + 2261 ] }, { - "teal": 2547, + "teal": 2543, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2266 + 2262 ] }, { - "teal": 2548, + "teal": 2544, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2267 + 2263 ] }, { - "teal": 2549, + "teal": 2545, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2268 + 2264 ] }, { - "teal": 2550, + "teal": 2546, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2269 + 2265 ] }, { - "teal": 2551, + "teal": 2547, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2270 + 2266 ] }, { - "teal": 2554, + "teal": 2550, "source": "examples/reti/stakingPool.algo.ts:649", "errorMessage": "wideRatio failed", "pc": [ - 2271 + 2267 ] }, { - "teal": 2555, + "teal": 2551, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2272, - 2273 + 2268, + 2269 ] }, { - "teal": 2559, + "teal": 2555, "source": "examples/reti/stakingPool.algo.ts:651", "pc": [ - 2274, - 2275 + 2270, + 2271 ] }, { - "teal": 2560, + "teal": 2556, "source": "examples/reti/stakingPool.algo.ts:651", "pc": [ - 2276, - 2277 + 2272, + 2273 ] }, { - "teal": 2561, + "teal": 2557, "source": "examples/reti/stakingPool.algo.ts:651", "pc": [ - 2278 + 2274 ] }, { - "teal": 2562, + "teal": 2558, "source": "examples/reti/stakingPool.algo.ts:651", "pc": [ - 2279, - 2280 + 2275, + 2276 ] }, { - "teal": 2570, + "teal": 2566, "source": "examples/reti/stakingPool.algo.ts:652", "pc": [ - 2281 + 2277 ] }, { - "teal": 2571, + "teal": 2567, "source": "examples/reti/stakingPool.algo.ts:652", "pc": [ - 2282 + 2278 ] }, { - "teal": 2572, + "teal": 2568, "source": "examples/reti/stakingPool.algo.ts:652", "pc": [ - 2283, - 2284 + 2279, + 2280 ] }, { - "teal": 2576, + "teal": 2572, "source": "examples/reti/stakingPool.algo.ts:653", "pc": [ - 2285, - 2286 + 2281, + 2282 ] }, { - "teal": 2577, + "teal": 2573, "source": "examples/reti/stakingPool.algo.ts:653", "pc": [ - 2287, - 2288 + 2283, + 2284 ] }, { - "teal": 2581, + "teal": 2577, "source": "examples/reti/stakingPool.algo.ts:654", "pc": [ - 2289, - 2290, - 2291 + 2285, + 2286, + 2287 ] }, { - "teal": 2582, + "teal": 2578, "source": "examples/reti/stakingPool.algo.ts:654", "pc": [ - 2292, - 2293 + 2288, + 2289 ] }, { - "teal": 2586, + "teal": 2582, "source": "examples/reti/stakingPool.algo.ts:655", "pc": [ + 2290, + 2291, + 2292, + 2293, 2294, 2295, 2296, @@ -11001,405 +10989,423 @@ 2322, 2323, 2324, - 2325, - 2326, - 2327, - 2328, - 2329 + 2325 ] }, { - "teal": 2587, + "teal": 2583, "source": "examples/reti/stakingPool.algo.ts:655", "pc": [ - 2330, - 2331 + 2326, + 2327 ] }, { - "teal": 2590, + "teal": 2586, "source": "examples/reti/stakingPool.algo.ts:652", "pc": [ - 2332 + 2328 ] }, { - "teal": 2591, + "teal": 2587, "source": "examples/reti/stakingPool.algo.ts:652", "pc": [ - 2333, - 2334 + 2329, + 2330 ] }, { - "teal": 2594, + "teal": 2590, "source": "examples/reti/stakingPool.algo.ts:652", "pc": [ - 2335 + 2331 ] }, { - "teal": 2598, + "teal": 2594, "source": "examples/reti/stakingPool.algo.ts:658", "pc": [ - 2336, - 2337 + 2332, + 2333 ] }, { - "teal": 2599, + "teal": 2595, "source": "examples/reti/stakingPool.algo.ts:658", "pc": [ - 2338, - 2339 + 2334, + 2335 ] }, { - "teal": 2600, + "teal": 2596, "source": "examples/reti/stakingPool.algo.ts:646", "pc": [ - 2340, + 2336, + 2337, + 2338 + ] + }, + { + "teal": 2601, + "source": "examples/reti/stakingPool.algo.ts:659", + "pc": [ + 2339, + 2340 + ] + }, + { + "teal": 2602, + "source": "examples/reti/stakingPool.algo.ts:659", + "pc": [ 2341, - 2342 + 2342, + 2343 ] }, { - "teal": 2605, + "teal": 2603, "source": "examples/reti/stakingPool.algo.ts:659", "pc": [ - 2343, 2344 ] }, { - "teal": 2606, + "teal": 2604, "source": "examples/reti/stakingPool.algo.ts:659", "pc": [ - 2345, - 2346, - 2347 + 2345 ] }, { - "teal": 2607, + "teal": 2605, "source": "examples/reti/stakingPool.algo.ts:659", "pc": [ - 2348 + 2346 ] }, { - "teal": 2608, + "teal": 2606, "source": "examples/reti/stakingPool.algo.ts:659", "pc": [ + 2347, + 2348, 2349 ] }, { - "teal": 2609, - "source": "examples/reti/stakingPool.algo.ts:659", + "teal": 2614, + "source": "examples/reti/stakingPool.algo.ts:663", "pc": [ - 2350 + 2350, + 2351 ] }, { - "teal": 2610, - "source": "examples/reti/stakingPool.algo.ts:659", + "teal": 2615, + "source": "examples/reti/stakingPool.algo.ts:663", "pc": [ - 2351, 2352, 2353 ] }, { - "teal": 2618, + "teal": 2616, "source": "examples/reti/stakingPool.algo.ts:663", "pc": [ 2354, - 2355 + 2355, + 2356 ] }, { - "teal": 2619, + "teal": 2617, "source": "examples/reti/stakingPool.algo.ts:663", "pc": [ - 2356, 2357 ] }, { - "teal": 2620, - "source": "examples/reti/stakingPool.algo.ts:663", + "teal": 2618, + "source": "examples/reti/stakingPool.algo.ts:662", "pc": [ - 2358, - 2359, - 2360 + 2358 ] }, { - "teal": 2621, - "source": "examples/reti/stakingPool.algo.ts:663", + "teal": 2619, + "source": "examples/reti/stakingPool.algo.ts:662", "pc": [ - 2361 + 2359 ] }, { - "teal": 2622, - "source": "examples/reti/stakingPool.algo.ts:662", + "teal": 2620, + "source": "examples/reti/stakingPool.algo.ts:664", "pc": [ - 2362 + 2360, + 2361 ] }, { - "teal": 2623, + "teal": 2621, "source": "examples/reti/stakingPool.algo.ts:662", "pc": [ - 2363 + 2362 ] }, { - "teal": 2624, - "source": "examples/reti/stakingPool.algo.ts:664", + "teal": 2622, + "source": "examples/reti/stakingPool.algo.ts:662", "pc": [ - 2364, - 2365 + 2363 ] }, { - "teal": 2625, + "teal": 2623, "source": "examples/reti/stakingPool.algo.ts:662", "pc": [ - 2366 + 2364 ] }, { - "teal": 2626, + "teal": 2624, "source": "examples/reti/stakingPool.algo.ts:662", "pc": [ - 2367 + 2365 ] }, { - "teal": 2627, + "teal": 2625, "source": "examples/reti/stakingPool.algo.ts:662", "pc": [ - 2368 + 2366 ] }, { "teal": 2628, "source": "examples/reti/stakingPool.algo.ts:662", + "errorMessage": "wideRatio failed", "pc": [ - 2369 + 2367 ] }, { "teal": 2629, "source": "examples/reti/stakingPool.algo.ts:662", "pc": [ - 2370 + 2368, + 2369 ] }, { - "teal": 2632, - "source": "examples/reti/stakingPool.algo.ts:662", - "errorMessage": "wideRatio failed", + "teal": 2633, + "source": "examples/reti/stakingPool.algo.ts:668", "pc": [ + 2370, 2371 ] }, { - "teal": 2633, - "source": "examples/reti/stakingPool.algo.ts:662", + "teal": 2634, + "source": "examples/reti/stakingPool.algo.ts:668", "pc": [ 2372, 2373 ] }, { - "teal": 2637, + "teal": 2635, "source": "examples/reti/stakingPool.algo.ts:668", "pc": [ - 2374, - 2375 + 2374 ] }, { - "teal": 2638, + "teal": 2636, "source": "examples/reti/stakingPool.algo.ts:668", "pc": [ - 2376, - 2377 + 2375, + 2376 ] }, { - "teal": 2639, - "source": "examples/reti/stakingPool.algo.ts:668", + "teal": 2641, + "source": "examples/reti/stakingPool.algo.ts:675", "pc": [ + 2377, 2378 ] }, { - "teal": 2640, - "source": "examples/reti/stakingPool.algo.ts:668", + "teal": 2642, + "source": "examples/reti/stakingPool.algo.ts:675", "pc": [ - 2379, - 2380 + 2379 ] }, { - "teal": 2645, + "teal": 2643, "source": "examples/reti/stakingPool.algo.ts:675", "pc": [ - 2381, - 2382 + 2380 ] }, { - "teal": 2646, + "teal": 2644, "source": "examples/reti/stakingPool.algo.ts:675", "pc": [ + 2381, + 2382, 2383 ] }, { - "teal": 2647, - "source": "examples/reti/stakingPool.algo.ts:675", + "teal": 2649, + "source": "examples/reti/stakingPool.algo.ts:678", "pc": [ 2384 ] }, { - "teal": 2648, - "source": "examples/reti/stakingPool.algo.ts:675", + "teal": 2650, + "source": "examples/reti/stakingPool.algo.ts:678", "pc": [ 2385, - 2386, - 2387 + 2386 ] }, { - "teal": 2653, - "source": "examples/reti/stakingPool.algo.ts:678", + "teal": 2656, + "source": "examples/reti/stakingPool.algo.ts:680", "pc": [ + 2387, 2388 ] }, { - "teal": 2654, - "source": "examples/reti/stakingPool.algo.ts:678", + "teal": 2657, + "source": "examples/reti/stakingPool.algo.ts:680", "pc": [ 2389, - 2390 + 2390, + 2391 ] }, { - "teal": 2660, + "teal": 2658, "source": "examples/reti/stakingPool.algo.ts:680", "pc": [ - 2391, - 2392 + 2392, + 2393 ] }, { - "teal": 2661, + "teal": 2659, "source": "examples/reti/stakingPool.algo.ts:680", "pc": [ - 2393, 2394, - 2395 + 2395, + 2396 ] }, { - "teal": 2662, + "teal": 2660, "source": "examples/reti/stakingPool.algo.ts:680", "pc": [ - 2396, 2397 ] }, { - "teal": 2663, + "teal": 2661, "source": "examples/reti/stakingPool.algo.ts:680", "pc": [ - 2398, - 2399, - 2400 + 2398 ] }, { - "teal": 2664, + "teal": 2662, "source": "examples/reti/stakingPool.algo.ts:680", "pc": [ + 2399, + 2400, 2401 ] }, + { + "teal": 2663, + "source": "examples/reti/stakingPool.algo.ts:681", + "pc": [ + 2402, + 2403 + ] + }, + { + "teal": 2664, + "source": "examples/reti/stakingPool.algo.ts:681", + "pc": [ + 2404, + 2405, + 2406 + ] + }, { "teal": 2665, - "source": "examples/reti/stakingPool.algo.ts:680", + "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ - 2402 + 2407, + 2408 ] }, { "teal": 2666, - "source": "examples/reti/stakingPool.algo.ts:680", + "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ - 2403, - 2404, - 2405 + 2409 ] }, { "teal": 2667, "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ - 2406, - 2407 + 2410, + 2411 ] }, { "teal": 2668, "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ - 2408, - 2409, - 2410 + 2412, + 2413, + 2414 ] }, { "teal": 2669, "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ - 2411, - 2412 + 2415, + 2416 ] }, { "teal": 2670, "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ - 2413 + 2417 ] }, { "teal": 2671, "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ - 2414, - 2415 - ] - }, - { - "teal": 2672, - "source": "examples/reti/stakingPool.algo.ts:681", - "pc": [ - 2416, - 2417, 2418 ] }, { - "teal": 2673, + "teal": 2672, "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ 2419, @@ -11407,182 +11413,164 @@ ] }, { - "teal": 2674, + "teal": 2673, "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ 2421 ] }, { - "teal": 2675, - "source": "examples/reti/stakingPool.algo.ts:681", + "teal": 2674, + "source": "examples/reti/stakingPool.algo.ts:680", "pc": [ 2422 ] }, - { - "teal": 2676, - "source": "examples/reti/stakingPool.algo.ts:681", - "pc": [ - 2423, - 2424 - ] - }, { "teal": 2677, - "source": "examples/reti/stakingPool.algo.ts:681", + "source": "examples/reti/stakingPool.algo.ts:679", "pc": [ + 2423, + 2424, 2425 ] }, { - "teal": 2678, - "source": "examples/reti/stakingPool.algo.ts:680", + "teal": 2682, + "source": "examples/reti/stakingPool.algo.ts:683", "pc": [ - 2426 + 2426, + 2427 ] }, { - "teal": 2681, - "source": "examples/reti/stakingPool.algo.ts:679", + "teal": 2683, + "source": "examples/reti/stakingPool.algo.ts:683", "pc": [ - 2427, 2428, 2429 ] }, { - "teal": 2686, + "teal": 2684, "source": "examples/reti/stakingPool.algo.ts:683", "pc": [ - 2430, - 2431 + 2430 ] }, { - "teal": 2687, + "teal": 2685, "source": "examples/reti/stakingPool.algo.ts:683", "pc": [ + 2431, 2432, 2433 ] }, { - "teal": 2688, + "teal": 2686, "source": "examples/reti/stakingPool.algo.ts:683", "pc": [ - 2434 + 2434, + 2435 ] }, { - "teal": 2689, + "teal": 2687, "source": "examples/reti/stakingPool.algo.ts:683", "pc": [ - 2435, 2436, - 2437 + 2437, + 2438 ] }, { "teal": 2690, "source": "examples/reti/stakingPool.algo.ts:683", "pc": [ - 2438, - 2439 + 2439, + 2440 ] }, { - "teal": 2691, + "teal": 2693, "source": "examples/reti/stakingPool.algo.ts:683", "pc": [ - 2440, 2441, 2442 ] }, { - "teal": 2694, - "source": "examples/reti/stakingPool.algo.ts:683", + "teal": 2701, + "source": "examples/reti/stakingPool.algo.ts:684", "pc": [ - 2443, - 2444 + 2443 ] }, { - "teal": 2697, - "source": "examples/reti/stakingPool.algo.ts:683", + "teal": 2702, + "source": "examples/reti/stakingPool.algo.ts:684", "pc": [ - 2445, - 2446 + 2444 ] }, { - "teal": 2705, + "teal": 2703, "source": "examples/reti/stakingPool.algo.ts:684", "pc": [ - 2447 + 2445, + 2446 ] }, { - "teal": 2706, - "source": "examples/reti/stakingPool.algo.ts:684", + "teal": 2707, + "source": "examples/reti/stakingPool.algo.ts:685", "pc": [ + 2447, 2448 ] }, { - "teal": 2707, - "source": "examples/reti/stakingPool.algo.ts:684", + "teal": 2708, + "source": "examples/reti/stakingPool.algo.ts:685", "pc": [ 2449, 2450 ] }, { - "teal": 2711, - "source": "examples/reti/stakingPool.algo.ts:685", + "teal": 2712, + "source": "examples/reti/stakingPool.algo.ts:686", "pc": [ 2451, 2452 ] }, { - "teal": 2712, - "source": "examples/reti/stakingPool.algo.ts:685", - "pc": [ - 2453, - 2454 - ] - }, - { - "teal": 2716, + "teal": 2713, "source": "examples/reti/stakingPool.algo.ts:686", "pc": [ - 2455, - 2456 + 2453, + 2454, + 2455 ] }, { - "teal": 2717, + "teal": 2714, "source": "examples/reti/stakingPool.algo.ts:686", "pc": [ - 2457, - 2458, - 2459 + 2456, + 2457 ] }, { "teal": 2718, - "source": "examples/reti/stakingPool.algo.ts:686", - "pc": [ - 2460, - 2461 - ] - }, - { - "teal": 2722, "source": "examples/reti/stakingPool.algo.ts:687", "pc": [ + 2458, + 2459, + 2460, + 2461, 2462, 2463, 2464, @@ -11633,171 +11621,171 @@ 2509, 2510, 2511, - 2512, - 2513, - 2514, - 2515, - 2516 + 2512 ] }, { - "teal": 2723, + "teal": 2719, "source": "examples/reti/stakingPool.algo.ts:687", "pc": [ - 2517, - 2518 + 2513, + 2514 ] }, { - "teal": 2726, + "teal": 2722, "source": "examples/reti/stakingPool.algo.ts:684", "pc": [ - 2519 + 2515 ] }, { - "teal": 2727, + "teal": 2723, "source": "examples/reti/stakingPool.algo.ts:684", "pc": [ - 2520, - 2521 + 2516, + 2517 ] }, { - "teal": 2730, + "teal": 2726, "source": "examples/reti/stakingPool.algo.ts:684", "pc": [ - 2522 + 2518 ] }, { - "teal": 2736, + "teal": 2732, "source": "examples/reti/stakingPool.algo.ts:690", "pc": [ - 2523, - 2524 + 2519, + 2520 ] }, { - "teal": 2737, + "teal": 2733, "source": "examples/reti/stakingPool.algo.ts:690", "pc": [ - 2525, - 2526 + 2521, + 2522 ] }, { - "teal": 2738, + "teal": 2734, "source": "examples/reti/stakingPool.algo.ts:690", "pc": [ - 2527 + 2523 ] }, { - "teal": 2739, + "teal": 2735, "source": "examples/reti/stakingPool.algo.ts:690", "pc": [ - 2528 + 2524 ] }, { - "teal": 2740, + "teal": 2736, "source": "examples/reti/stakingPool.algo.ts:690", "pc": [ - 2529 + 2525 ] }, { - "teal": 2741, + "teal": 2737, "source": "examples/reti/stakingPool.algo.ts:690", "pc": [ - 2530, - 2531, - 2532 + 2526, + 2527, + 2528 ] }, { - "teal": 2750, + "teal": 2746, "source": "examples/reti/stakingPool.algo.ts:691", "pc": [ - 2533 + 2529 ] }, { - "teal": 2751, + "teal": 2747, "source": "examples/reti/stakingPool.algo.ts:691", "pc": [ - 2534 + 2530 ] }, { - "teal": 2752, + "teal": 2748, "source": "examples/reti/stakingPool.algo.ts:691", "pc": [ - 2535, - 2536 + 2531, + 2532 ] }, { - "teal": 2756, + "teal": 2752, "source": "examples/reti/stakingPool.algo.ts:692", "pc": [ - 2537, - 2538 + 2533, + 2534 ] }, { - "teal": 2757, + "teal": 2753, "source": "examples/reti/stakingPool.algo.ts:692", "pc": [ - 2539, - 2540 + 2535, + 2536 ] }, { - "teal": 2758, + "teal": 2754, "source": "examples/reti/stakingPool.algo.ts:692", "pc": [ - 2541 + 2537 ] }, { - "teal": 2759, + "teal": 2755, "source": "examples/reti/stakingPool.algo.ts:692", "pc": [ - 2542, - 2543 + 2538, + 2539 ] }, { - "teal": 2763, + "teal": 2759, "source": "examples/reti/stakingPool.algo.ts:693", "pc": [ - 2544, - 2545 + 2540, + 2541 ] }, { - "teal": 2764, + "teal": 2760, "source": "examples/reti/stakingPool.algo.ts:693", "pc": [ - 2546, - 2547, - 2548 + 2542, + 2543, + 2544 ] }, { - "teal": 2765, + "teal": 2761, "source": "examples/reti/stakingPool.algo.ts:693", "pc": [ - 2549, - 2550 + 2545, + 2546 ] }, { - "teal": 2769, + "teal": 2765, "source": "examples/reti/stakingPool.algo.ts:694", "pc": [ + 2547, + 2548, + 2549, + 2550, 2551, 2552, 2553, @@ -11811,158 +11799,170 @@ 2561, 2562, 2563, - 2564, + 2564 + ] + }, + { + "teal": 2766, + "source": "examples/reti/stakingPool.algo.ts:694", + "pc": [ 2565, - 2566, - 2567, - 2568 + 2566 + ] + }, + { + "teal": 2769, + "source": "examples/reti/stakingPool.algo.ts:691", + "pc": [ + 2567 ] }, { "teal": 2770, - "source": "examples/reti/stakingPool.algo.ts:694", + "source": "examples/reti/stakingPool.algo.ts:691", "pc": [ - 2569, - 2570 + 2568, + 2569 ] }, { "teal": 2773, "source": "examples/reti/stakingPool.algo.ts:691", "pc": [ - 2571 + 2570 ] }, { - "teal": 2774, - "source": "examples/reti/stakingPool.algo.ts:691", + "teal": 2782, + "source": "examples/reti/stakingPool.algo.ts:706", "pc": [ - 2572, - 2573 + 2571 ] }, { - "teal": 2777, - "source": "examples/reti/stakingPool.algo.ts:691", + "teal": 2783, + "source": "examples/reti/stakingPool.algo.ts:706", "pc": [ - 2574 + 2572, + 2573 ] }, { - "teal": 2786, - "source": "examples/reti/stakingPool.algo.ts:706", + "teal": 2788, + "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ + 2574, 2575 ] }, { - "teal": 2787, - "source": "examples/reti/stakingPool.algo.ts:706", + "teal": 2789, + "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ - 2576, - 2577 + 2576 ] }, { - "teal": 2792, + "teal": 2790, "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ - 2578, - 2579 + 2577 ] }, { - "teal": 2793, + "teal": 2791, "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ - 2580 + 2578 ] }, { - "teal": 2794, + "teal": 2792, "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ + 2579, + 2580, 2581 ] }, { - "teal": 2795, + "teal": 2793, "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ - 2582 + 2582, + 2583 ] }, { - "teal": 2796, + "teal": 2794, "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ - 2583, - 2584, - 2585 + 2584 ] }, { - "teal": 2797, + "teal": 2795, "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ - 2586, - 2587 + 2585 ] }, { - "teal": 2798, + "teal": 2796, "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ - 2588 + 2586 ] }, { "teal": 2799, "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ + 2587, + 2588, 2589 ] }, { - "teal": 2800, - "source": "examples/reti/stakingPool.algo.ts:730", + "teal": 2804, + "source": "examples/reti/stakingPool.algo.ts:731", "pc": [ 2590 ] }, { - "teal": 2803, - "source": "examples/reti/stakingPool.algo.ts:730", + "teal": 2805, + "source": "examples/reti/stakingPool.algo.ts:731", "pc": [ 2591, - 2592, - 2593 + 2592 ] }, { - "teal": 2808, - "source": "examples/reti/stakingPool.algo.ts:731", + "teal": 2809, + "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ - 2594 + 2593 ] }, { - "teal": 2809, - "source": "examples/reti/stakingPool.algo.ts:731", + "teal": 2810, + "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ - 2595, - 2596 + 2594, + 2595 ] }, { - "teal": 2813, + "teal": 2815, "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ + 2596, 2597 ] }, { - "teal": 2814, + "teal": 2816, "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ 2598, @@ -11970,123 +11970,123 @@ ] }, { - "teal": 2819, + "teal": 2817, "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ - 2600, - 2601 + 2600 ] }, { - "teal": 2820, + "teal": 2818, "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ + 2601, 2602, 2603 ] }, { - "teal": 2821, - "source": "examples/reti/stakingPool.algo.ts:732", + "teal": 2823, + "source": "examples/reti/stakingPool.algo.ts:733", "pc": [ - 2604 + 2604, + 2605 ] }, { - "teal": 2822, - "source": "examples/reti/stakingPool.algo.ts:732", + "teal": 2824, + "source": "examples/reti/stakingPool.algo.ts:733", "pc": [ - 2605, 2606, 2607 ] }, { - "teal": 2827, + "teal": 2825, "source": "examples/reti/stakingPool.algo.ts:733", "pc": [ - 2608, - 2609 + 2608 ] }, { - "teal": 2828, + "teal": 2826, "source": "examples/reti/stakingPool.algo.ts:733", "pc": [ + 2609, 2610, 2611 ] }, { - "teal": 2829, - "source": "examples/reti/stakingPool.algo.ts:733", + "teal": 2831, + "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ 2612 ] }, { - "teal": 2830, - "source": "examples/reti/stakingPool.algo.ts:733", + "teal": 2832, + "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2613, - 2614, - 2615 + 2613 ] }, { - "teal": 2835, + "teal": 2833, "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2616 + 2614, + 2615 ] }, { - "teal": 2836, + "teal": 2834, "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2617 + 2616 ] }, { - "teal": 2837, + "teal": 2835, "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2618, - 2619 + 2617, + 2618 ] }, { - "teal": 2838, + "teal": 2836, "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ + 2619, 2620 ] }, { - "teal": 2839, + "teal": 2837, "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2621, - 2622 + 2621 ] }, { - "teal": 2840, + "teal": 2838, "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2623, - 2624 + 2622, + 2623 ] }, { - "teal": 2841, + "teal": 2839, "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ + 2624, 2625 ] }, { - "teal": 2842, + "teal": 2840, "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ 2626, @@ -12094,7 +12094,7 @@ ] }, { - "teal": 2843, + "teal": 2841, "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ 2628, @@ -12102,562 +12102,574 @@ ] }, { - "teal": 2844, + "teal": 2842, "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2630, - 2631 + 2630 ] }, { - "teal": 2845, - "source": "examples/reti/stakingPool.algo.ts:734", + "teal": 2847, + "source": "examples/reti/stakingPool.algo.ts:736", "pc": [ - 2632, - 2633 + 2631, + 2632 ] }, { - "teal": 2846, - "source": "examples/reti/stakingPool.algo.ts:734", + "teal": 2848, + "source": "examples/reti/stakingPool.algo.ts:736", "pc": [ - 2634 + 2633 ] }, { - "teal": 2851, + "teal": 2849, "source": "examples/reti/stakingPool.algo.ts:736", "pc": [ - 2635, - 2636 + 2634 ] }, { - "teal": 2852, + "teal": 2850, "source": "examples/reti/stakingPool.algo.ts:736", "pc": [ - 2637 + 2635 ] }, { - "teal": 2853, + "teal": 2851, "source": "examples/reti/stakingPool.algo.ts:736", "pc": [ - 2638 + 2636 ] }, { - "teal": 2854, + "teal": 2852, "source": "examples/reti/stakingPool.algo.ts:736", "pc": [ - 2639 + 2637, + 2638 ] }, { - "teal": 2855, + "teal": 2853, "source": "examples/reti/stakingPool.algo.ts:736", "pc": [ - 2640 + 2639 ] }, { - "teal": 2856, + "teal": 2854, "source": "examples/reti/stakingPool.algo.ts:736", "pc": [ - 2641, - 2642 + 2640, + 2641 ] }, { - "teal": 2857, - "source": "examples/reti/stakingPool.algo.ts:736", + "teal": 2859, + "source": "examples/reti/stakingPool.algo.ts:737", "pc": [ + 2642, 2643 ] }, { - "teal": 2858, - "source": "examples/reti/stakingPool.algo.ts:736", + "teal": 2860, + "source": "examples/reti/stakingPool.algo.ts:737", "pc": [ 2644, - 2645 + 2645, + 2646 ] }, { - "teal": 2863, + "teal": 2861, "source": "examples/reti/stakingPool.algo.ts:737", "pc": [ - 2646, - 2647 + 2647, + 2648 ] }, { - "teal": 2864, + "teal": 2862, "source": "examples/reti/stakingPool.algo.ts:737", "pc": [ - 2648, - 2649, - 2650 + 2649 ] }, { - "teal": 2865, + "teal": 2863, "source": "examples/reti/stakingPool.algo.ts:737", "pc": [ + 2650, 2651, 2652 ] }, { - "teal": 2866, - "source": "examples/reti/stakingPool.algo.ts:737", + "teal": 2869, + "source": "examples/reti/stakingPool.algo.ts:738", "pc": [ - 2653 + 2653, + 2654 ] }, { - "teal": 2867, - "source": "examples/reti/stakingPool.algo.ts:737", + "teal": 2870, + "source": "examples/reti/stakingPool.algo.ts:738", "pc": [ - 2654, 2655, - 2656 + 2656, + 2657 ] }, { - "teal": 2873, + "teal": 2871, "source": "examples/reti/stakingPool.algo.ts:738", "pc": [ - 2657, 2658 ] }, { - "teal": 2874, + "teal": 2872, "source": "examples/reti/stakingPool.algo.ts:738", "pc": [ 2659, - 2660, - 2661 + 2660 ] }, { - "teal": 2875, + "teal": 2873, "source": "examples/reti/stakingPool.algo.ts:738", "pc": [ - 2662 + 2661 ] }, { - "teal": 2876, + "teal": 2874, "source": "examples/reti/stakingPool.algo.ts:738", "pc": [ + 2662, 2663, 2664 ] }, { - "teal": 2877, - "source": "examples/reti/stakingPool.algo.ts:738", + "teal": 2879, + "source": "examples/reti/stakingPool.algo.ts:741", "pc": [ - 2665 + 2665, + 2666 ] }, { - "teal": 2878, - "source": "examples/reti/stakingPool.algo.ts:738", + "teal": 2880, + "source": "examples/reti/stakingPool.algo.ts:741", "pc": [ - 2666, 2667, 2668 ] }, { - "teal": 2883, + "teal": 2881, "source": "examples/reti/stakingPool.algo.ts:741", "pc": [ 2669, - 2670 + 2670, + 2671 ] }, { - "teal": 2884, + "teal": 2882, "source": "examples/reti/stakingPool.algo.ts:741", "pc": [ - 2671, 2672 ] }, { - "teal": 2885, + "teal": 2883, "source": "examples/reti/stakingPool.algo.ts:741", "pc": [ - 2673, - 2674, - 2675 + 2673 ] }, { - "teal": 2886, + "teal": 2884, "source": "examples/reti/stakingPool.algo.ts:741", "pc": [ - 2676 + 2674, + 2675 ] }, { - "teal": 2887, - "source": "examples/reti/stakingPool.algo.ts:741", + "teal": 2885, + "source": "examples/reti/stakingPool.algo.ts:738", "pc": [ - 2677 + 2676, + 2677, + 2678 ] }, { - "teal": 2888, - "source": "examples/reti/stakingPool.algo.ts:741", + "teal": 2890, + "source": "examples/reti/stakingPool.algo.ts:745", "pc": [ - 2678, - 2679 + 2679, + 2680 ] }, { - "teal": 2889, - "source": "examples/reti/stakingPool.algo.ts:738", + "teal": 2891, + "source": "examples/reti/stakingPool.algo.ts:745", "pc": [ - 2680, 2681, 2682 ] }, { - "teal": 2894, + "teal": 2892, "source": "examples/reti/stakingPool.algo.ts:745", "pc": [ 2683, - 2684 + 2684, + 2685 ] }, { - "teal": 2895, + "teal": 2893, "source": "examples/reti/stakingPool.algo.ts:745", "pc": [ - 2685, 2686 ] }, { - "teal": 2896, + "teal": 2894, "source": "examples/reti/stakingPool.algo.ts:745", "pc": [ - 2687, - 2688, - 2689 + 2687 ] }, { - "teal": 2897, + "teal": 2895, "source": "examples/reti/stakingPool.algo.ts:745", "pc": [ - 2690 + 2688, + 2689 ] }, { - "teal": 2898, - "source": "examples/reti/stakingPool.algo.ts:745", + "teal": 2900, + "source": "examples/reti/stakingPool.algo.ts:749", "pc": [ + 2690, 2691 ] }, { - "teal": 2899, - "source": "examples/reti/stakingPool.algo.ts:745", + "teal": 2901, + "source": "examples/reti/stakingPool.algo.ts:749", "pc": [ 2692, 2693 ] }, { - "teal": 2904, + "teal": 2902, "source": "examples/reti/stakingPool.algo.ts:749", "pc": [ - 2694, - 2695 + 2694 ] }, { - "teal": 2905, + "teal": 2903, "source": "examples/reti/stakingPool.algo.ts:749", "pc": [ + 2695, 2696, 2697 ] }, { - "teal": 2906, - "source": "examples/reti/stakingPool.algo.ts:749", + "teal": 2908, + "source": "examples/reti/stakingPool.algo.ts:750", "pc": [ - 2698 + 2698, + 2699 ] }, { - "teal": 2907, - "source": "examples/reti/stakingPool.algo.ts:749", + "teal": 2909, + "source": "examples/reti/stakingPool.algo.ts:750", "pc": [ - 2699, 2700, 2701 ] }, { - "teal": 2912, + "teal": 2910, "source": "examples/reti/stakingPool.algo.ts:750", "pc": [ 2702, - 2703 + 2703, + 2704 ] }, { - "teal": 2913, + "teal": 2911, "source": "examples/reti/stakingPool.algo.ts:750", "pc": [ - 2704, 2705 ] }, { - "teal": 2914, + "teal": 2912, "source": "examples/reti/stakingPool.algo.ts:750", "pc": [ - 2706, - 2707, - 2708 + 2706 ] }, { - "teal": 2915, + "teal": 2913, "source": "examples/reti/stakingPool.algo.ts:750", "pc": [ - 2709 + 2707, + 2708 ] }, { - "teal": 2916, - "source": "examples/reti/stakingPool.algo.ts:750", + "teal": 2917, + "source": "examples/reti/stakingPool.algo.ts:751", "pc": [ + 2709, 2710 ] }, { - "teal": 2917, - "source": "examples/reti/stakingPool.algo.ts:750", + "teal": 2918, + "source": "examples/reti/stakingPool.algo.ts:751", "pc": [ 2711, 2712 ] }, { - "teal": 2921, + "teal": 2919, "source": "examples/reti/stakingPool.algo.ts:751", "pc": [ - 2713, - 2714 + 2713 ] }, { - "teal": 2922, + "teal": 2920, "source": "examples/reti/stakingPool.algo.ts:751", "pc": [ - 2715, - 2716 + 2714, + 2715 ] }, { - "teal": 2923, + "teal": 2921, "source": "examples/reti/stakingPool.algo.ts:751", "pc": [ - 2717 + 2716 ] }, { - "teal": 2924, + "teal": 2922, "source": "examples/reti/stakingPool.algo.ts:751", "pc": [ - 2718, - 2719 + 2717, + 2718 ] }, { - "teal": 2925, - "source": "examples/reti/stakingPool.algo.ts:751", + "teal": 2927, + "source": "examples/reti/stakingPool.algo.ts:753", "pc": [ + 2719, 2720 ] }, { - "teal": 2926, - "source": "examples/reti/stakingPool.algo.ts:751", + "teal": 2928, + "source": "examples/reti/stakingPool.algo.ts:753", "pc": [ - 2721, - 2722 + 2721 ] }, { - "teal": 2931, + "teal": 2929, "source": "examples/reti/stakingPool.algo.ts:753", "pc": [ - 2723, - 2724 + 2722 ] }, { - "teal": 2932, + "teal": 2930, "source": "examples/reti/stakingPool.algo.ts:753", "pc": [ + 2723, + 2724, 2725 ] }, { - "teal": 2933, - "source": "examples/reti/stakingPool.algo.ts:753", + "teal": 2938, + "source": "examples/reti/stakingPool.algo.ts:756", "pc": [ - 2726 + 2726, + 2727 ] }, { - "teal": 2934, - "source": "examples/reti/stakingPool.algo.ts:753", + "teal": 2939, + "source": "examples/reti/stakingPool.algo.ts:756", "pc": [ - 2727, 2728, - 2729 + 2729, + 2730 ] }, { - "teal": 2942, + "teal": 2940, "source": "examples/reti/stakingPool.algo.ts:756", "pc": [ - 2730, 2731 ] }, { - "teal": 2943, + "teal": 2941, "source": "examples/reti/stakingPool.algo.ts:756", "pc": [ 2732, - 2733, + 2733 + ] + }, + { + "teal": 2942, + "source": "examples/reti/stakingPool.algo.ts:755", + "pc": [ 2734 ] }, { - "teal": 2944, + "teal": 2943, "source": "examples/reti/stakingPool.algo.ts:756", "pc": [ - 2735 + 2735, + 2736 + ] + }, + { + "teal": 2944, + "source": "examples/reti/stakingPool.algo.ts:755", + "pc": [ + 2737, + 2738 ] }, { "teal": 2945, - "source": "examples/reti/stakingPool.algo.ts:756", + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 2736, - 2737 + 2739, + 2740 ] }, { "teal": 2946, "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 2738 + 2741 ] }, { "teal": 2947, - "source": "examples/reti/stakingPool.algo.ts:756", + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 2739, - 2740 + 2742, + 2743 ] }, { "teal": 2948, "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 2741, - 2742 + 2744 ] }, { "teal": 2949, "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 2743, - 2744 + 2745, + 2746 ] }, { "teal": 2950, "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 2745 + 2747 ] }, { "teal": 2951, "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 2746, - 2747 + 2748 ] }, { "teal": 2952, - "source": "examples/reti/stakingPool.algo.ts:755", + "source": "examples/reti/stakingPool.algo.ts:757", "pc": [ - 2748 + 2749, + 2750 ] }, { "teal": 2953, - "source": "examples/reti/stakingPool.algo.ts:755", + "source": "examples/reti/stakingPool.algo.ts:757", "pc": [ - 2749, - 2750 + 2751 ] }, { "teal": 2954, - "source": "examples/reti/stakingPool.algo.ts:755", + "source": "examples/reti/stakingPool.algo.ts:757", "pc": [ - 2751 + 2752, + 2753 ] }, { "teal": 2955, "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 2752 + 2754 ] }, { "teal": 2956, - "source": "examples/reti/stakingPool.algo.ts:757", + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 2753, - 2754 + 2755 ] }, { "teal": 2957, - "source": "examples/reti/stakingPool.algo.ts:757", + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 2755 + 2756 ] }, { "teal": 2958, - "source": "examples/reti/stakingPool.algo.ts:757", + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 2756, 2757 ] }, @@ -12675,83 +12687,71 @@ 2759 ] }, - { - "teal": 2961, - "source": "examples/reti/stakingPool.algo.ts:755", - "pc": [ - 2760 - ] - }, - { - "teal": 2962, - "source": "examples/reti/stakingPool.algo.ts:755", - "pc": [ - 2761 - ] - }, { "teal": 2963, "source": "examples/reti/stakingPool.algo.ts:755", + "errorMessage": "wideRatio failed", "pc": [ - 2762 + 2760 ] }, { "teal": 2964, "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 2763 + 2761, + 2762 ] }, { - "teal": 2967, - "source": "examples/reti/stakingPool.algo.ts:755", - "errorMessage": "wideRatio failed", + "teal": 2968, + "source": "examples/reti/stakingPool.algo.ts:762", "pc": [ + 2763, 2764 ] }, { - "teal": 2968, - "source": "examples/reti/stakingPool.algo.ts:755", + "teal": 2969, + "source": "examples/reti/stakingPool.algo.ts:762", "pc": [ 2765, 2766 ] }, { - "teal": 2972, + "teal": 2970, "source": "examples/reti/stakingPool.algo.ts:762", "pc": [ - 2767, - 2768 + 2767 ] }, { - "teal": 2973, + "teal": 2971, "source": "examples/reti/stakingPool.algo.ts:762", "pc": [ - 2769, - 2770 + 2768, + 2769 ] }, { - "teal": 2974, - "source": "examples/reti/stakingPool.algo.ts:762", + "teal": 2975, + "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ + 2770, 2771 ] }, { - "teal": 2975, - "source": "examples/reti/stakingPool.algo.ts:762", + "teal": 2976, + "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ 2772, 2773 ] }, { - "teal": 2979, + "teal": 2977, "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ 2774, @@ -12759,263 +12759,275 @@ ] }, { - "teal": 2980, + "teal": 2978, "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ 2776, - 2777 + 2777, + 2778 ] }, { - "teal": 2981, + "teal": 2979, "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ - 2778, 2779 ] }, { - "teal": 2982, + "teal": 2980, "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ 2780, - 2781, - 2782 + 2781 ] }, { - "teal": 2983, + "teal": 2981, "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ - 2783 + 2782 ] }, { - "teal": 2984, + "teal": 2982, "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ - 2784, - 2785 + 2783 ] }, { - "teal": 2985, + "teal": 2983, "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ - 2786 + 2784 ] }, { - "teal": 2986, + "teal": 2984, "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ - 2787 + 2785, + 2786 ] }, { - "teal": 2987, - "source": "examples/reti/stakingPool.algo.ts:763", + "teal": 2988, + "source": "examples/reti/stakingPool.algo.ts:764", "pc": [ + 2787, 2788 ] }, { - "teal": 2988, - "source": "examples/reti/stakingPool.algo.ts:763", + "teal": 2989, + "source": "examples/reti/stakingPool.algo.ts:764", "pc": [ 2789, 2790 ] }, { - "teal": 2992, + "teal": 2990, "source": "examples/reti/stakingPool.algo.ts:764", "pc": [ - 2791, - 2792 + 2791 ] }, { - "teal": 2993, + "teal": 2991, "source": "examples/reti/stakingPool.algo.ts:764", "pc": [ - 2793, - 2794 + 2792, + 2793 ] }, { - "teal": 2994, - "source": "examples/reti/stakingPool.algo.ts:764", + "teal": 2997, + "source": "examples/reti/stakingPool.algo.ts:766", "pc": [ + 2794, 2795 ] }, { - "teal": 2995, - "source": "examples/reti/stakingPool.algo.ts:764", + "teal": 2998, + "source": "examples/reti/stakingPool.algo.ts:766", "pc": [ - 2796, - 2797 + 2796 ] }, { - "teal": 3001, + "teal": 2999, "source": "examples/reti/stakingPool.algo.ts:766", "pc": [ - 2798, - 2799 + 2797 ] }, { - "teal": 3002, + "teal": 3000, "source": "examples/reti/stakingPool.algo.ts:766", "pc": [ + 2798, + 2799, 2800 ] }, { - "teal": 3003, - "source": "examples/reti/stakingPool.algo.ts:766", + "teal": 3008, + "source": "examples/reti/stakingPool.algo.ts:769", "pc": [ - 2801 + 2801, + 2802 ] }, { - "teal": 3004, - "source": "examples/reti/stakingPool.algo.ts:766", + "teal": 3009, + "source": "examples/reti/stakingPool.algo.ts:769", "pc": [ - 2802, 2803, - 2804 + 2804, + 2805 ] }, { - "teal": 3012, + "teal": 3010, "source": "examples/reti/stakingPool.algo.ts:769", "pc": [ - 2805, 2806 ] }, { - "teal": 3013, + "teal": 3011, "source": "examples/reti/stakingPool.algo.ts:769", "pc": [ 2807, - 2808, + 2808 + ] + }, + { + "teal": 3012, + "source": "examples/reti/stakingPool.algo.ts:768", + "pc": [ 2809 ] }, { - "teal": 3014, + "teal": 3013, "source": "examples/reti/stakingPool.algo.ts:769", "pc": [ - 2810 + 2810, + 2811 + ] + }, + { + "teal": 3014, + "source": "examples/reti/stakingPool.algo.ts:768", + "pc": [ + 2812, + 2813 ] }, { "teal": 3015, - "source": "examples/reti/stakingPool.algo.ts:769", + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 2811, - 2812 + 2814, + 2815 ] }, { "teal": 3016, "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 2813 + 2816 ] }, { "teal": 3017, - "source": "examples/reti/stakingPool.algo.ts:769", + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 2814, - 2815 + 2817, + 2818 ] }, { "teal": 3018, "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 2816, - 2817 + 2819 ] }, { "teal": 3019, "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 2818, - 2819 + 2820, + 2821 ] }, { "teal": 3020, "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 2820 + 2822 ] }, { "teal": 3021, "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 2821, - 2822 + 2823 ] }, { "teal": 3022, - "source": "examples/reti/stakingPool.algo.ts:768", + "source": "examples/reti/stakingPool.algo.ts:770", "pc": [ - 2823 + 2824, + 2825 ] }, { "teal": 3023, - "source": "examples/reti/stakingPool.algo.ts:768", + "source": "examples/reti/stakingPool.algo.ts:770", "pc": [ - 2824, - 2825 + 2826 ] }, { "teal": 3024, - "source": "examples/reti/stakingPool.algo.ts:768", + "source": "examples/reti/stakingPool.algo.ts:770", "pc": [ - 2826 + 2827, + 2828 ] }, { "teal": 3025, "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 2827 + 2829 ] }, { "teal": 3026, - "source": "examples/reti/stakingPool.algo.ts:770", + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 2828, - 2829 + 2830 ] }, { "teal": 3027, - "source": "examples/reti/stakingPool.algo.ts:770", + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 2830 + 2831 ] }, { "teal": 3028, - "source": "examples/reti/stakingPool.algo.ts:770", + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 2831, 2832 ] }, @@ -13033,83 +13045,71 @@ 2834 ] }, - { - "teal": 3031, - "source": "examples/reti/stakingPool.algo.ts:768", - "pc": [ - 2835 - ] - }, - { - "teal": 3032, - "source": "examples/reti/stakingPool.algo.ts:768", - "pc": [ - 2836 - ] - }, { "teal": 3033, "source": "examples/reti/stakingPool.algo.ts:768", + "errorMessage": "wideRatio failed", "pc": [ - 2837 + 2835 ] }, { "teal": 3034, "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 2838 + 2836, + 2837 ] }, { - "teal": 3037, - "source": "examples/reti/stakingPool.algo.ts:768", - "errorMessage": "wideRatio failed", + "teal": 3038, + "source": "examples/reti/stakingPool.algo.ts:775", "pc": [ + 2838, 2839 ] }, { - "teal": 3038, - "source": "examples/reti/stakingPool.algo.ts:768", + "teal": 3039, + "source": "examples/reti/stakingPool.algo.ts:775", "pc": [ 2840, 2841 ] }, { - "teal": 3042, + "teal": 3040, "source": "examples/reti/stakingPool.algo.ts:775", "pc": [ - 2842, - 2843 + 2842 ] }, { - "teal": 3043, + "teal": 3041, "source": "examples/reti/stakingPool.algo.ts:775", "pc": [ - 2844, - 2845 + 2843, + 2844 ] }, { - "teal": 3044, - "source": "examples/reti/stakingPool.algo.ts:775", + "teal": 3045, + "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ + 2845, 2846 ] }, { - "teal": 3045, - "source": "examples/reti/stakingPool.algo.ts:775", + "teal": 3046, + "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ 2847, 2848 ] }, { - "teal": 3049, + "teal": 3047, "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ 2849, @@ -13117,76 +13117,76 @@ ] }, { - "teal": 3050, + "teal": 3048, "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ 2851, - 2852 + 2852, + 2853 ] }, { - "teal": 3051, + "teal": 3049, "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ - 2853, 2854 ] }, { - "teal": 3052, + "teal": 3050, "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ 2855, - 2856, - 2857 + 2856 ] }, { - "teal": 3053, + "teal": 3051, "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ - 2858 + 2857 ] }, { - "teal": 3054, + "teal": 3052, "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ - 2859, - 2860 + 2858 ] }, { - "teal": 3055, + "teal": 3053, "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ - 2861 + 2859 ] }, { - "teal": 3056, + "teal": 3054, "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ - 2862 + 2860, + 2861 ] }, { - "teal": 3057, - "source": "examples/reti/stakingPool.algo.ts:778", + "teal": 3058, + "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ + 2862, 2863 ] }, { - "teal": 3058, - "source": "examples/reti/stakingPool.algo.ts:778", + "teal": 3059, + "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ 2864, 2865 ] }, { - "teal": 3062, + "teal": 3060, "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ 2866, @@ -13194,107 +13194,113 @@ ] }, { - "teal": 3063, + "teal": 3061, "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ 2868, - 2869 + 2869, + 2870 ] }, { - "teal": 3064, + "teal": 3062, "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ - 2870, 2871 ] }, { - "teal": 3065, + "teal": 3063, "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ 2872, - 2873, - 2874 + 2873 ] }, { - "teal": 3066, + "teal": 3064, "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ - 2875 + 2874 ] }, { - "teal": 3067, + "teal": 3065, "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ - 2876, - 2877 + 2875 ] }, { - "teal": 3068, + "teal": 3066, "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ - 2878 + 2876 ] }, { - "teal": 3069, + "teal": 3067, "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ - 2879 + 2877, + 2878 ] }, { - "teal": 3070, - "source": "examples/reti/stakingPool.algo.ts:779", + "teal": 3071, + "source": "examples/reti/stakingPool.algo.ts:780", "pc": [ + 2879, 2880 ] }, { - "teal": 3071, - "source": "examples/reti/stakingPool.algo.ts:779", + "teal": 3072, + "source": "examples/reti/stakingPool.algo.ts:780", "pc": [ 2881, 2882 ] }, { - "teal": 3075, + "teal": 3073, "source": "examples/reti/stakingPool.algo.ts:780", "pc": [ - 2883, - 2884 + 2883 ] }, { - "teal": 3076, + "teal": 3074, "source": "examples/reti/stakingPool.algo.ts:780", "pc": [ - 2885, - 2886 + 2884, + 2885 ] }, { - "teal": 3077, - "source": "examples/reti/stakingPool.algo.ts:780", + "teal": 3079, + "source": "examples/reti/stakingPool.algo.ts:783", "pc": [ + 2886, 2887 ] }, { - "teal": 3078, - "source": "examples/reti/stakingPool.algo.ts:780", + "teal": 3080, + "source": "examples/reti/stakingPool.algo.ts:783", + "pc": [ + 2888 + ] + }, + { + "teal": 3081, + "source": "examples/reti/stakingPool.algo.ts:783", "pc": [ - 2888, 2889 ] }, { - "teal": 3083, + "teal": 3082, "source": "examples/reti/stakingPool.algo.ts:783", "pc": [ 2890, @@ -13302,51 +13308,51 @@ ] }, { - "teal": 3084, + "teal": 3083, "source": "examples/reti/stakingPool.algo.ts:783", "pc": [ 2892 ] }, { - "teal": 3085, + "teal": 3084, "source": "examples/reti/stakingPool.algo.ts:783", "pc": [ - 2893 + 2893, + 2894 ] }, { - "teal": 3086, + "teal": 3085, "source": "examples/reti/stakingPool.algo.ts:783", "pc": [ - 2894, 2895 ] }, { - "teal": 3087, - "source": "examples/reti/stakingPool.algo.ts:783", + "teal": 3096, + "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ - 2896 + 2896, + 2897 ] }, { - "teal": 3088, - "source": "examples/reti/stakingPool.algo.ts:783", + "teal": 3097, + "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ - 2897, 2898 ] }, { - "teal": 3089, - "source": "examples/reti/stakingPool.algo.ts:783", + "teal": 3098, + "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ 2899 ] }, { - "teal": 3100, + "teal": 3099, "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ 2900, @@ -13354,114 +13360,108 @@ ] }, { - "teal": 3101, - "source": "examples/reti/stakingPool.algo.ts:732", - "pc": [ - 2902 - ] - }, - { - "teal": 3102, + "teal": 3100, "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ - 2903 + 2902, + 2903, + 2904 ] }, { - "teal": 3103, - "source": "examples/reti/stakingPool.algo.ts:732", + "teal": 3105, + "source": "examples/reti/stakingPool.algo.ts:791", "pc": [ - 2904, - 2905 + 2905, + 2906 ] }, { - "teal": 3104, - "source": "examples/reti/stakingPool.algo.ts:732", + "teal": 3106, + "source": "examples/reti/stakingPool.algo.ts:791", "pc": [ - 2906, - 2907, - 2908 + 2907 ] }, { - "teal": 3109, + "teal": 3107, "source": "examples/reti/stakingPool.algo.ts:791", "pc": [ - 2909, - 2910 + 2908, + 2909 ] }, { - "teal": 3110, + "teal": 3108, "source": "examples/reti/stakingPool.algo.ts:791", "pc": [ - 2911 + 2910 ] }, { - "teal": 3111, + "teal": 3109, "source": "examples/reti/stakingPool.algo.ts:791", "pc": [ - 2912, - 2913 + 2911, + 2912 ] }, { - "teal": 3112, - "source": "examples/reti/stakingPool.algo.ts:791", + "teal": 3114, + "source": "examples/reti/stakingPool.algo.ts:795", "pc": [ + 2913, 2914 ] }, { - "teal": 3113, - "source": "examples/reti/stakingPool.algo.ts:791", + "teal": 3115, + "source": "examples/reti/stakingPool.algo.ts:795", "pc": [ - 2915, - 2916 + 2915 ] }, { - "teal": 3118, + "teal": 3116, "source": "examples/reti/stakingPool.algo.ts:795", "pc": [ - 2917, - 2918 + 2916 ] }, { - "teal": 3119, + "teal": 3117, "source": "examples/reti/stakingPool.algo.ts:795", "pc": [ + 2917, + 2918, 2919 ] }, { - "teal": 3120, - "source": "examples/reti/stakingPool.algo.ts:795", + "teal": 3122, + "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ 2920 ] }, { - "teal": 3121, - "source": "examples/reti/stakingPool.algo.ts:795", + "teal": 3123, + "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ 2921, - 2922, - 2923 + 2922 ] }, { - "teal": 3126, + "teal": 3128, "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ + 2923, 2924 ] }, { - "teal": 3127, + "teal": 3129, "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ 2925, @@ -13469,123 +13469,123 @@ ] }, { - "teal": 3132, + "teal": 3130, "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ - 2927, - 2928 + 2927 ] }, { - "teal": 3133, + "teal": 3131, "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ + 2928, 2929, 2930 ] }, { - "teal": 3134, - "source": "examples/reti/stakingPool.algo.ts:797", + "teal": 3136, + "source": "examples/reti/stakingPool.algo.ts:798", "pc": [ - 2931 + 2931, + 2932 ] }, { - "teal": 3135, - "source": "examples/reti/stakingPool.algo.ts:797", + "teal": 3137, + "source": "examples/reti/stakingPool.algo.ts:798", "pc": [ - 2932, 2933, 2934 ] }, { - "teal": 3140, + "teal": 3138, "source": "examples/reti/stakingPool.algo.ts:798", "pc": [ - 2935, - 2936 + 2935 ] }, { - "teal": 3141, + "teal": 3139, "source": "examples/reti/stakingPool.algo.ts:798", "pc": [ + 2936, 2937, 2938 ] }, { - "teal": 3142, - "source": "examples/reti/stakingPool.algo.ts:798", + "teal": 3144, + "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ 2939 ] }, { - "teal": 3143, - "source": "examples/reti/stakingPool.algo.ts:798", + "teal": 3145, + "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 2940, - 2941, - 2942 + 2940 ] }, { - "teal": 3148, + "teal": 3146, "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 2943 + 2941, + 2942 ] }, { - "teal": 3149, + "teal": 3147, "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 2944 + 2943 ] }, { - "teal": 3150, + "teal": 3148, "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 2945, - 2946 + 2944, + 2945 ] }, { - "teal": 3151, + "teal": 3149, "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ + 2946, 2947 ] }, { - "teal": 3152, + "teal": 3150, "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 2948, - 2949 + 2948 ] }, { - "teal": 3153, + "teal": 3151, "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 2950, - 2951 + 2949, + 2950 ] }, { - "teal": 3154, + "teal": 3152, "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ + 2951, 2952 ] }, { - "teal": 3155, + "teal": 3153, "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ 2953, @@ -13593,7 +13593,7 @@ ] }, { - "teal": 3156, + "teal": 3154, "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ 2955, @@ -13601,326 +13601,332 @@ ] }, { - "teal": 3157, + "teal": 3155, "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 2957, - 2958 + 2957 ] }, { - "teal": 3158, - "source": "examples/reti/stakingPool.algo.ts:799", + "teal": 3160, + "source": "examples/reti/stakingPool.algo.ts:801", "pc": [ - 2959, - 2960 + 2958, + 2959 ] }, { - "teal": 3159, - "source": "examples/reti/stakingPool.algo.ts:799", + "teal": 3161, + "source": "examples/reti/stakingPool.algo.ts:801", "pc": [ - 2961 + 2960 ] }, { - "teal": 3164, + "teal": 3162, "source": "examples/reti/stakingPool.algo.ts:801", "pc": [ - 2962, - 2963 + 2961 ] }, { - "teal": 3165, + "teal": 3163, "source": "examples/reti/stakingPool.algo.ts:801", "pc": [ - 2964 + 2962 ] }, { - "teal": 3166, + "teal": 3164, "source": "examples/reti/stakingPool.algo.ts:801", "pc": [ - 2965 + 2963 ] }, { - "teal": 3167, + "teal": 3165, "source": "examples/reti/stakingPool.algo.ts:801", "pc": [ - 2966 + 2964, + 2965 ] }, { - "teal": 3168, + "teal": 3166, "source": "examples/reti/stakingPool.algo.ts:801", "pc": [ - 2967 + 2966 ] }, { - "teal": 3169, + "teal": 3167, "source": "examples/reti/stakingPool.algo.ts:801", "pc": [ - 2968, - 2969 + 2967, + 2968 ] }, { - "teal": 3170, - "source": "examples/reti/stakingPool.algo.ts:801", + "teal": 3172, + "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ + 2969, 2970 ] }, { - "teal": 3171, - "source": "examples/reti/stakingPool.algo.ts:801", + "teal": 3173, + "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ 2971, - 2972 + 2972, + 2973 ] }, { - "teal": 3176, + "teal": 3174, "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 2973, - 2974 + 2974, + 2975 ] }, { - "teal": 3177, + "teal": 3175, "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 2975, - 2976, - 2977 + 2976 ] }, { - "teal": 3178, + "teal": 3176, "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 2978, - 2979 + 2977 ] }, { - "teal": 3179, + "teal": 3177, "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ + 2978, + 2979, 2980 ] }, { - "teal": 3180, + "teal": 3178, "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 2981 + 2981, + 2982 ] }, { - "teal": 3181, + "teal": 3179, "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 2982, 2983, - 2984 + 2984, + 2985 ] }, { - "teal": 3182, + "teal": 3180, "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 2985, 2986 ] }, { - "teal": 3183, + "teal": 3181, "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ 2987, - 2988, - 2989 + 2988 ] }, { - "teal": 3184, + "teal": 3182, "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 2990 + 2989 ] }, { - "teal": 3185, + "teal": 3183, "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 2991, - 2992 + 2990 ] }, { "teal": 3186, "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ + 2991, + 2992, 2993 ] }, { - "teal": 3187, - "source": "examples/reti/stakingPool.algo.ts:802", + "teal": 3191, + "source": "examples/reti/stakingPool.algo.ts:803", "pc": [ - 2994 + 2994, + 2995 ] }, { - "teal": 3190, - "source": "examples/reti/stakingPool.algo.ts:802", + "teal": 3192, + "source": "examples/reti/stakingPool.algo.ts:803", "pc": [ - 2995, 2996, 2997 ] }, { - "teal": 3195, + "teal": 3193, "source": "examples/reti/stakingPool.algo.ts:803", "pc": [ 2998, - 2999 + 2999, + 3000 ] }, { - "teal": 3196, + "teal": 3194, "source": "examples/reti/stakingPool.algo.ts:803", "pc": [ - 3000, 3001 ] }, { - "teal": 3197, + "teal": 3195, "source": "examples/reti/stakingPool.algo.ts:803", "pc": [ - 3002, - 3003, - 3004 + 3002 ] }, { - "teal": 3198, + "teal": 3196, "source": "examples/reti/stakingPool.algo.ts:803", "pc": [ - 3005 + 3003, + 3004 ] }, { - "teal": 3199, - "source": "examples/reti/stakingPool.algo.ts:803", + "teal": 3201, + "source": "examples/reti/stakingPool.algo.ts:805", "pc": [ + 3005, 3006 ] }, { - "teal": 3200, - "source": "examples/reti/stakingPool.algo.ts:803", + "teal": 3202, + "source": "examples/reti/stakingPool.algo.ts:805", "pc": [ 3007, 3008 ] }, { - "teal": 3205, + "teal": 3203, "source": "examples/reti/stakingPool.algo.ts:805", "pc": [ - 3009, - 3010 + 3009 ] }, { - "teal": 3206, + "teal": 3204, "source": "examples/reti/stakingPool.algo.ts:805", "pc": [ + 3010, 3011, 3012 ] }, { - "teal": 3207, - "source": "examples/reti/stakingPool.algo.ts:805", + "teal": 3210, + "source": "examples/reti/stakingPool.algo.ts:810", "pc": [ - 3013 + 3013, + 3014 ] }, { - "teal": 3208, - "source": "examples/reti/stakingPool.algo.ts:805", + "teal": 3211, + "source": "examples/reti/stakingPool.algo.ts:810", "pc": [ - 3014, - 3015, - 3016 + 3015 ] }, { - "teal": 3214, + "teal": 3212, "source": "examples/reti/stakingPool.algo.ts:810", "pc": [ - 3017, - 3018 + 3016 ] }, { - "teal": 3215, + "teal": 3213, "source": "examples/reti/stakingPool.algo.ts:810", "pc": [ + 3017, + 3018, 3019 ] }, { - "teal": 3216, - "source": "examples/reti/stakingPool.algo.ts:810", + "teal": 3218, + "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3020 + 3020, + 3021 ] }, { - "teal": 3217, - "source": "examples/reti/stakingPool.algo.ts:810", + "teal": 3219, + "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3021, 3022, - 3023 + 3023, + 3024 ] }, { - "teal": 3222, + "teal": 3220, "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3024, 3025 ] }, { - "teal": 3223, + "teal": 3221, "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ 3026, - 3027, + 3027 + ] + }, + { + "teal": 3222, + "source": "examples/reti/stakingPool.algo.ts:811", + "pc": [ 3028 ] }, { - "teal": 3224, + "teal": 3223, "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ 3029 ] }, { - "teal": 3225, + "teal": 3224, "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ 3030, @@ -13928,80 +13934,74 @@ ] }, { - "teal": 3226, + "teal": 3225, "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ 3032 ] }, { - "teal": 3227, + "teal": 3226, "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ 3033 ] }, { - "teal": 3228, - "source": "examples/reti/stakingPool.algo.ts:811", - "pc": [ - 3034, - 3035 - ] - }, - { - "teal": 3229, + "teal": 3227, "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3036 + 3034 ] }, { - "teal": 3230, + "teal": 3228, "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3037 + 3035 ] }, { - "teal": 3231, + "teal": 3229, "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3038 + 3036 ] }, { "teal": 3232, "source": "examples/reti/stakingPool.algo.ts:811", + "errorMessage": "wideRatio failed", "pc": [ - 3039 + 3037 ] }, { "teal": 3233, "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3040 + 3038, + 3039 ] }, { - "teal": 3236, - "source": "examples/reti/stakingPool.algo.ts:811", - "errorMessage": "wideRatio failed", + "teal": 3237, + "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ + 3040, 3041 ] }, { - "teal": 3237, - "source": "examples/reti/stakingPool.algo.ts:811", + "teal": 3238, + "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ 3042, 3043 ] }, { - "teal": 3241, + "teal": 3239, "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ 3044, @@ -14009,162 +14009,168 @@ ] }, { - "teal": 3242, + "teal": 3240, "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ 3046, - 3047 + 3047, + 3048 ] }, { - "teal": 3243, + "teal": 3241, "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ - 3048, 3049 ] }, { - "teal": 3244, + "teal": 3242, "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ 3050, - 3051, - 3052 + 3051 ] }, { - "teal": 3245, + "teal": 3243, "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ - 3053 + 3052 ] }, { - "teal": 3246, + "teal": 3244, "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ - 3054, - 3055 + 3053 ] }, { - "teal": 3247, + "teal": 3245, "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ - 3056 + 3054 ] }, { - "teal": 3248, + "teal": 3246, "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ - 3057 + 3055, + 3056 ] }, { - "teal": 3249, - "source": "examples/reti/stakingPool.algo.ts:814", + "teal": 3250, + "source": "examples/reti/stakingPool.algo.ts:815", "pc": [ + 3057, 3058 ] }, { - "teal": 3250, - "source": "examples/reti/stakingPool.algo.ts:814", + "teal": 3251, + "source": "examples/reti/stakingPool.algo.ts:815", "pc": [ 3059, 3060 ] }, { - "teal": 3254, + "teal": 3252, "source": "examples/reti/stakingPool.algo.ts:815", "pc": [ - 3061, - 3062 + 3061 ] }, { - "teal": 3255, + "teal": 3253, "source": "examples/reti/stakingPool.algo.ts:815", "pc": [ - 3063, - 3064 + 3062, + 3063 ] }, { - "teal": 3256, - "source": "examples/reti/stakingPool.algo.ts:815", + "teal": 3259, + "source": "examples/reti/stakingPool.algo.ts:817", "pc": [ + 3064, 3065 ] }, { - "teal": 3257, - "source": "examples/reti/stakingPool.algo.ts:815", + "teal": 3260, + "source": "examples/reti/stakingPool.algo.ts:817", "pc": [ - 3066, - 3067 + 3066 ] }, { - "teal": 3263, + "teal": 3261, "source": "examples/reti/stakingPool.algo.ts:817", "pc": [ - 3068, - 3069 + 3067 ] }, { - "teal": 3264, + "teal": 3262, "source": "examples/reti/stakingPool.algo.ts:817", "pc": [ + 3068, + 3069, 3070 ] }, { - "teal": 3265, - "source": "examples/reti/stakingPool.algo.ts:817", + "teal": 3267, + "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3071 + 3071, + 3072 ] }, { - "teal": 3266, - "source": "examples/reti/stakingPool.algo.ts:817", + "teal": 3268, + "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3072, 3073, - 3074 + 3074, + 3075 ] }, { - "teal": 3271, + "teal": 3269, "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3075, 3076 ] }, { - "teal": 3272, + "teal": 3270, "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ 3077, - 3078, + 3078 + ] + }, + { + "teal": 3271, + "source": "examples/reti/stakingPool.algo.ts:818", + "pc": [ 3079 ] }, { - "teal": 3273, + "teal": 3272, "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ 3080 ] }, { - "teal": 3274, + "teal": 3273, "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ 3081, @@ -14172,80 +14178,74 @@ ] }, { - "teal": 3275, + "teal": 3274, "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ 3083 ] }, { - "teal": 3276, + "teal": 3275, "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ 3084 ] }, { - "teal": 3277, - "source": "examples/reti/stakingPool.algo.ts:818", - "pc": [ - 3085, - 3086 - ] - }, - { - "teal": 3278, + "teal": 3276, "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3087 + 3085 ] }, { - "teal": 3279, + "teal": 3277, "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3088 + 3086 ] }, { - "teal": 3280, + "teal": 3278, "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3089 + 3087 ] }, { "teal": 3281, "source": "examples/reti/stakingPool.algo.ts:818", + "errorMessage": "wideRatio failed", "pc": [ - 3090 + 3088 ] }, { "teal": 3282, "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3091 + 3089, + 3090 ] }, { - "teal": 3285, - "source": "examples/reti/stakingPool.algo.ts:818", - "errorMessage": "wideRatio failed", + "teal": 3286, + "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ + 3091, 3092 ] }, { - "teal": 3286, - "source": "examples/reti/stakingPool.algo.ts:818", + "teal": 3287, + "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ 3093, 3094 ] }, { - "teal": 3290, + "teal": 3288, "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ 3095, @@ -14253,76 +14253,76 @@ ] }, { - "teal": 3291, + "teal": 3289, "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ 3097, - 3098 + 3098, + 3099 ] }, { - "teal": 3292, + "teal": 3290, "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ - 3099, 3100 ] }, { - "teal": 3293, + "teal": 3291, "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ 3101, - 3102, - 3103 + 3102 ] }, { - "teal": 3294, + "teal": 3292, "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ - 3104 + 3103 ] }, { - "teal": 3295, + "teal": 3293, "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ - 3105, - 3106 + 3104 ] }, { - "teal": 3296, + "teal": 3294, "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ - 3107 + 3105 ] }, { - "teal": 3297, + "teal": 3295, "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ - 3108 + 3106, + 3107 ] }, { - "teal": 3298, - "source": "examples/reti/stakingPool.algo.ts:821", + "teal": 3299, + "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ + 3108, 3109 ] }, { - "teal": 3299, - "source": "examples/reti/stakingPool.algo.ts:821", + "teal": 3300, + "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ 3110, 3111 ] }, { - "teal": 3303, + "teal": 3301, "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ 3112, @@ -14330,107 +14330,113 @@ ] }, { - "teal": 3304, + "teal": 3302, "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ 3114, - 3115 + 3115, + 3116 ] }, { - "teal": 3305, + "teal": 3303, "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ - 3116, 3117 ] }, { - "teal": 3306, + "teal": 3304, "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ 3118, - 3119, - 3120 + 3119 ] }, { - "teal": 3307, + "teal": 3305, "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ - 3121 + 3120 ] }, { - "teal": 3308, + "teal": 3306, "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ - 3122, - 3123 + 3121 ] }, { - "teal": 3309, + "teal": 3307, "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ - 3124 + 3122 ] }, { - "teal": 3310, + "teal": 3308, "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ - 3125 + 3123, + 3124 ] }, { - "teal": 3311, - "source": "examples/reti/stakingPool.algo.ts:822", + "teal": 3312, + "source": "examples/reti/stakingPool.algo.ts:823", "pc": [ + 3125, 3126 ] }, { - "teal": 3312, - "source": "examples/reti/stakingPool.algo.ts:822", + "teal": 3313, + "source": "examples/reti/stakingPool.algo.ts:823", "pc": [ 3127, 3128 ] }, { - "teal": 3316, + "teal": 3314, "source": "examples/reti/stakingPool.algo.ts:823", "pc": [ - 3129, - 3130 + 3129 ] }, { - "teal": 3317, + "teal": 3315, "source": "examples/reti/stakingPool.algo.ts:823", "pc": [ - 3131, - 3132 + 3130, + 3131 ] }, { - "teal": 3318, - "source": "examples/reti/stakingPool.algo.ts:823", + "teal": 3320, + "source": "examples/reti/stakingPool.algo.ts:827", "pc": [ + 3132, 3133 ] }, { - "teal": 3319, - "source": "examples/reti/stakingPool.algo.ts:823", + "teal": 3321, + "source": "examples/reti/stakingPool.algo.ts:827", + "pc": [ + 3134 + ] + }, + { + "teal": 3322, + "source": "examples/reti/stakingPool.algo.ts:827", "pc": [ - 3134, 3135 ] }, { - "teal": 3324, + "teal": 3323, "source": "examples/reti/stakingPool.algo.ts:827", "pc": [ 3136, @@ -14438,51 +14444,51 @@ ] }, { - "teal": 3325, + "teal": 3324, "source": "examples/reti/stakingPool.algo.ts:827", "pc": [ 3138 ] }, { - "teal": 3326, + "teal": 3325, "source": "examples/reti/stakingPool.algo.ts:827", "pc": [ - 3139 + 3139, + 3140 ] }, { - "teal": 3327, + "teal": 3326, "source": "examples/reti/stakingPool.algo.ts:827", "pc": [ - 3140, 3141 ] }, { - "teal": 3328, - "source": "examples/reti/stakingPool.algo.ts:827", + "teal": 3335, + "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ - 3142 + 3142, + 3143 ] }, { - "teal": 3329, - "source": "examples/reti/stakingPool.algo.ts:827", + "teal": 3336, + "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ - 3143, 3144 ] }, { - "teal": 3330, - "source": "examples/reti/stakingPool.algo.ts:827", + "teal": 3337, + "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ 3145 ] }, { - "teal": 3339, + "teal": 3338, "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ 3146, @@ -14490,53 +14496,53 @@ ] }, { - "teal": 3340, + "teal": 3339, "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ - 3148 + 3148, + 3149, + 3150 ] }, { - "teal": 3341, - "source": "examples/reti/stakingPool.algo.ts:797", + "teal": 3348, + "source": "examples/reti/stakingPool.algo.ts:837", "pc": [ - 3149 + 3151, + 3152 ] }, { - "teal": 3342, - "source": "examples/reti/stakingPool.algo.ts:797", + "teal": 3349, + "source": "examples/reti/stakingPool.algo.ts:837", "pc": [ - 3150, - 3151 + 3153 ] }, { - "teal": 3343, - "source": "examples/reti/stakingPool.algo.ts:797", + "teal": 3350, + "source": "examples/reti/stakingPool.algo.ts:837", "pc": [ - 3152, - 3153, - 3154 + 3154, + 3155 ] }, { - "teal": 3352, + "teal": 3351, "source": "examples/reti/stakingPool.algo.ts:837", "pc": [ - 3155, 3156 ] }, { - "teal": 3353, + "teal": 3352, "source": "examples/reti/stakingPool.algo.ts:837", "pc": [ 3157 ] }, { - "teal": 3354, + "teal": 3353, "source": "examples/reti/stakingPool.algo.ts:837", "pc": [ 3158, @@ -14544,136 +14550,142 @@ ] }, { - "teal": 3355, + "teal": 3354, "source": "examples/reti/stakingPool.algo.ts:837", "pc": [ 3160 ] }, { - "teal": 3356, + "teal": 3355, "source": "examples/reti/stakingPool.algo.ts:837", "pc": [ - 3161 + 3161, + 3162 ] }, { - "teal": 3357, - "source": "examples/reti/stakingPool.algo.ts:837", + "teal": 3359, + "source": "examples/reti/stakingPool.algo.ts:838", "pc": [ - 3162, - 3163 + 3163, + 3164 ] }, { - "teal": 3358, - "source": "examples/reti/stakingPool.algo.ts:837", + "teal": 3360, + "source": "examples/reti/stakingPool.algo.ts:838", "pc": [ - 3164 + 3165 ] }, { - "teal": 3359, - "source": "examples/reti/stakingPool.algo.ts:837", + "teal": 3361, + "source": "examples/reti/stakingPool.algo.ts:838", "pc": [ - 3165, - 3166 + 3166, + 3167 ] }, { - "teal": 3363, + "teal": 3362, "source": "examples/reti/stakingPool.algo.ts:838", "pc": [ - 3167, 3168 ] }, { - "teal": 3364, + "teal": 3363, "source": "examples/reti/stakingPool.algo.ts:838", "pc": [ - 3169 + 3169, + 3170 ] }, { - "teal": 3365, + "teal": 3364, "source": "examples/reti/stakingPool.algo.ts:838", "pc": [ - 3170, 3171 ] }, { - "teal": 3366, + "teal": 3365, "source": "examples/reti/stakingPool.algo.ts:838", "pc": [ 3172 ] }, { - "teal": 3367, - "source": "examples/reti/stakingPool.algo.ts:838", + "teal": 3370, + "source": "examples/reti/stakingPool.algo.ts:839", "pc": [ 3173, 3174 ] }, { - "teal": 3368, - "source": "examples/reti/stakingPool.algo.ts:838", + "teal": 3371, + "source": "examples/reti/stakingPool.algo.ts:839", "pc": [ 3175 ] }, { - "teal": 3369, - "source": "examples/reti/stakingPool.algo.ts:838", + "teal": 3372, + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ 3176 ] }, { - "teal": 3374, - "source": "examples/reti/stakingPool.algo.ts:839", + "teal": 3373, + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ 3177, 3178 ] }, { - "teal": 3375, - "source": "examples/reti/stakingPool.algo.ts:839", + "teal": 3374, + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ 3179 ] }, + { + "teal": 3375, + "source": "examples/reti/stakingPool.algo.ts:840", + "pc": [ + 3180, + 3181 + ] + }, { "teal": 3376, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3180 + 3182 ] }, { "teal": 3377, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3181, - 3182 + 3183 ] }, { "teal": 3378, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3183 + 3184 ] }, { "teal": 3379, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3184, 3185 ] }, @@ -14688,32 +14700,27 @@ "teal": 3381, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3187 - ] - }, - { - "teal": 3382, - "source": "examples/reti/stakingPool.algo.ts:840", - "pc": [ + 3187, 3188 ] }, { - "teal": 3383, + "teal": 3382, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ 3189 ] }, { - "teal": 3384, + "teal": 3385, "source": "examples/reti/stakingPool.algo.ts:840", + "errorMessage": "this.stakeAccumulator.value + (increasedStake as uint128) * (roundsLeftInBin as uint128) overflowed 128 bits", "pc": [ 3190 ] }, { - "teal": 3385, + "teal": 3386, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ 3191, @@ -14721,94 +14728,93 @@ ] }, { - "teal": 3386, + "teal": 3387, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ 3193 ] }, { - "teal": 3389, + "teal": 3388, "source": "examples/reti/stakingPool.algo.ts:840", - "errorMessage": "this.stakeAccumulator.value + (increasedStake as uint128) * (roundsLeftInBin as uint128) overflowed 128 bits", "pc": [ 3194 ] }, { - "teal": 3390, + "teal": 3389, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3195, - 3196 + 3195 ] }, { - "teal": 3391, + "teal": 3390, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3197 + 3196 ] }, { - "teal": 3392, + "teal": 3391, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ + 3197, 3198 ] }, { - "teal": 3393, + "teal": 3392, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ 3199 ] }, { - "teal": 3394, + "teal": 3393, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ 3200 ] }, { - "teal": 3395, + "teal": 3394, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3201, - 3202 + 3201 ] }, { - "teal": 3396, - "source": "examples/reti/stakingPool.algo.ts:840", + "teal": 3395, + "source": "examples/reti/stakingPool.algo.ts:839", "pc": [ - 3203 + 3202 ] }, { - "teal": 3397, - "source": "examples/reti/stakingPool.algo.ts:840", + "teal": 3399, + "source": "examples/reti/stakingPool.algo.ts:841", "pc": [ + 3203, 3204 ] }, { - "teal": 3398, - "source": "examples/reti/stakingPool.algo.ts:840", + "teal": 3400, + "source": "examples/reti/stakingPool.algo.ts:841", "pc": [ 3205 ] }, { - "teal": 3399, - "source": "examples/reti/stakingPool.algo.ts:839", + "teal": 3401, + "source": "examples/reti/stakingPool.algo.ts:841", "pc": [ 3206 ] }, { - "teal": 3403, + "teal": 3402, "source": "examples/reti/stakingPool.algo.ts:841", "pc": [ 3207, @@ -14816,310 +14822,304 @@ ] }, { - "teal": 3404, + "teal": 3403, "source": "examples/reti/stakingPool.algo.ts:841", "pc": [ 3209 ] }, { - "teal": 3405, + "teal": 3404, "source": "examples/reti/stakingPool.algo.ts:841", "pc": [ 3210 ] }, { - "teal": 3406, - "source": "examples/reti/stakingPool.algo.ts:841", + "teal": 3417, + "source": "examples/reti/stakingPool.algo.ts:847", "pc": [ - 3211, - 3212 + 3211 ] }, { - "teal": 3407, - "source": "examples/reti/stakingPool.algo.ts:841", + "teal": 3418, + "source": "examples/reti/stakingPool.algo.ts:847", "pc": [ - 3213 + 3212 ] }, { - "teal": 3408, - "source": "examples/reti/stakingPool.algo.ts:841", + "teal": 3419, + "source": "examples/reti/stakingPool.algo.ts:847", "pc": [ + 3213, 3214 ] }, { - "teal": 3421, + "teal": 3420, "source": "examples/reti/stakingPool.algo.ts:847", "pc": [ - 3215 + 3215, + 3216, + 3217, + 3218, + 3219, + 3220 ] }, { - "teal": 3422, + "teal": 3421, "source": "examples/reti/stakingPool.algo.ts:847", "pc": [ - 3216 + 3221, + 3222 ] }, { - "teal": 3423, - "source": "examples/reti/stakingPool.algo.ts:847", + "teal": 3425, + "source": "examples/reti/stakingPool.algo.ts:848", "pc": [ - 3217, - 3218 + 3223 ] }, { - "teal": 3424, - "source": "examples/reti/stakingPool.algo.ts:847", + "teal": 3426, + "source": "examples/reti/stakingPool.algo.ts:848", "pc": [ - 3219, - 3220, - 3221, - 3222, - 3223, 3224 ] }, { - "teal": 3425, - "source": "examples/reti/stakingPool.algo.ts:847", + "teal": 3427, + "source": "examples/reti/stakingPool.algo.ts:848", "pc": [ 3225, 3226 ] }, { - "teal": 3429, - "source": "examples/reti/stakingPool.algo.ts:848", + "teal": 3437, + "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ 3227 ] }, { - "teal": 3430, - "source": "examples/reti/stakingPool.algo.ts:848", + "teal": 3438, + "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ 3228 ] }, { - "teal": 3431, - "source": "examples/reti/stakingPool.algo.ts:848", + "teal": 3439, + "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ - 3229, - 3230 + 3229 ] }, { - "teal": 3441, + "teal": 3440, "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ + 3230, 3231 ] }, { - "teal": 3442, + "teal": 3441, "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ 3232 ] }, { - "teal": 3443, + "teal": 3442, "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ 3233 ] }, + { + "teal": 3443, + "source": "examples/reti/stakingPool.algo.ts:850", + "pc": [ + 3234 + ] + }, { "teal": 3444, "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ - 3234, - 3235 + 3235, + 3236, + 3237 ] }, { "teal": 3445, "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ - 3236 + 3238 ] }, { "teal": 3446, "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ - 3237 + 3239 ] }, { "teal": 3447, "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ - 3238 + 3240, + 3241 ] }, { "teal": 3448, - "source": "examples/reti/stakingPool.algo.ts:850", + "source": "examples/reti/stakingPool.algo.ts:851", "pc": [ - 3239, - 3240, - 3241 + 3242, + 3243 ] }, { "teal": 3449, - "source": "examples/reti/stakingPool.algo.ts:850", + "source": "examples/reti/stakingPool.algo.ts:851", "pc": [ - 3242 + 3244 ] }, { "teal": 3450, - "source": "examples/reti/stakingPool.algo.ts:850", + "source": "examples/reti/stakingPool.algo.ts:851", "pc": [ - 3243 + 3245, + 3246 ] }, { "teal": 3451, - "source": "examples/reti/stakingPool.algo.ts:850", + "source": "examples/reti/stakingPool.algo.ts:852", "pc": [ - 3244, - 3245 + 3247, + 3248 ] }, { "teal": 3452, - "source": "examples/reti/stakingPool.algo.ts:851", + "source": "examples/reti/stakingPool.algo.ts:852", "pc": [ - 3246, - 3247 + 3249 ] }, { "teal": 3453, - "source": "examples/reti/stakingPool.algo.ts:851", + "source": "examples/reti/stakingPool.algo.ts:852", "pc": [ - 3248 + 3250, + 3251 ] }, { "teal": 3454, - "source": "examples/reti/stakingPool.algo.ts:851", + "source": "examples/reti/stakingPool.algo.ts:853", "pc": [ - 3249, - 3250 + 3252, + 3253 ] }, { "teal": 3455, - "source": "examples/reti/stakingPool.algo.ts:852", + "source": "examples/reti/stakingPool.algo.ts:853", "pc": [ - 3251, - 3252 + 3254 ] }, { "teal": 3456, - "source": "examples/reti/stakingPool.algo.ts:852", + "source": "examples/reti/stakingPool.algo.ts:853", "pc": [ - 3253 + 3255, + 3256 ] }, { "teal": 3457, - "source": "examples/reti/stakingPool.algo.ts:852", + "source": "examples/reti/stakingPool.algo.ts:854", "pc": [ - 3254, - 3255 + 3257, + 3258 ] }, { "teal": 3458, - "source": "examples/reti/stakingPool.algo.ts:853", + "source": "examples/reti/stakingPool.algo.ts:854", "pc": [ - 3256, - 3257 + 3259 ] }, { "teal": 3459, - "source": "examples/reti/stakingPool.algo.ts:853", - "pc": [ - 3258 - ] - }, - { - "teal": 3460, - "source": "examples/reti/stakingPool.algo.ts:853", - "pc": [ - 3259, - 3260 - ] - }, - { - "teal": 3461, "source": "examples/reti/stakingPool.algo.ts:854", "pc": [ - 3261, - 3262 + 3260, + 3261 ] }, { "teal": 3462, - "source": "examples/reti/stakingPool.algo.ts:854", + "source": "examples/reti/stakingPool.algo.ts:847", "pc": [ - 3263 + 3262 ] }, { "teal": 3463, - "source": "examples/reti/stakingPool.algo.ts:854", + "source": "examples/reti/stakingPool.algo.ts:847", "pc": [ - 3264, - 3265 + 3263, + 3264 ] }, { "teal": 3466, "source": "examples/reti/stakingPool.algo.ts:847", "pc": [ - 3266 + 3265 ] }, { "teal": 3467, - "source": "examples/reti/stakingPool.algo.ts:847", + "source": "examples/reti/stakingPool.algo.ts:518", "pc": [ - 3267, - 3268 + 3266 ] }, { - "teal": 3470, - "source": "examples/reti/stakingPool.algo.ts:847", + "teal": 3472, + "source": "examples/reti/stakingPool.algo.ts:879", "pc": [ + 3267, + 3268, 3269 ] }, { - "teal": 3471, - "source": "examples/reti/stakingPool.algo.ts:518", + "teal": 3473, + "source": "examples/reti/stakingPool.algo.ts:879", "pc": [ 3270 ] }, { "teal": 3476, - "source": "examples/reti/stakingPool.algo.ts:879", + "source": "examples/reti/stakingPool.algo.ts:878", "pc": [ 3271, 3272, @@ -15128,14 +15128,14 @@ }, { "teal": 3477, - "source": "examples/reti/stakingPool.algo.ts:879", + "source": "examples/reti/stakingPool.algo.ts:878", "pc": [ 3274 ] }, { "teal": 3480, - "source": "examples/reti/stakingPool.algo.ts:878", + "source": "examples/reti/stakingPool.algo.ts:877", "pc": [ 3275, 3276, @@ -15144,14 +15144,14 @@ }, { "teal": 3481, - "source": "examples/reti/stakingPool.algo.ts:878", + "source": "examples/reti/stakingPool.algo.ts:877", "pc": [ 3278 ] }, { "teal": 3484, - "source": "examples/reti/stakingPool.algo.ts:877", + "source": "examples/reti/stakingPool.algo.ts:876", "pc": [ 3279, 3280, @@ -15160,150 +15160,150 @@ }, { "teal": 3485, - "source": "examples/reti/stakingPool.algo.ts:877", + "source": "examples/reti/stakingPool.algo.ts:876", "pc": [ - 3282 + 3282, + 3283, + 3284 ] }, { "teal": 3488, - "source": "examples/reti/stakingPool.algo.ts:876", + "source": "examples/reti/stakingPool.algo.ts:875", "pc": [ - 3283, - 3284, - 3285 + 3285, + 3286, + 3287 ] }, { "teal": 3489, - "source": "examples/reti/stakingPool.algo.ts:876", + "source": "examples/reti/stakingPool.algo.ts:875", "pc": [ - 3286, - 3287, - 3288 + 3288, + 3289, + 3290 ] }, { "teal": 3492, - "source": "examples/reti/stakingPool.algo.ts:875", + "source": "examples/reti/stakingPool.algo.ts:874", "pc": [ - 3289, - 3290, - 3291 + 3291, + 3292, + 3293 ] }, { "teal": 3493, - "source": "examples/reti/stakingPool.algo.ts:875", + "source": "examples/reti/stakingPool.algo.ts:874", "pc": [ - 3292, - 3293, - 3294 + 3294, + 3295, + 3296 ] }, { "teal": 3496, - "source": "examples/reti/stakingPool.algo.ts:874", + "source": "examples/reti/stakingPool.algo.ts:873", "pc": [ - 3295, - 3296, - 3297 + 3297, + 3298 ] }, { "teal": 3497, - "source": "examples/reti/stakingPool.algo.ts:874", + "source": "examples/reti/stakingPool.algo.ts:873", + "pc": [ + 3299 + ] + }, + { + "teal": 3498, + "source": "examples/reti/stakingPool.algo.ts:873", "pc": [ - 3298, - 3299, 3300 ] }, { - "teal": 3500, + "teal": 3499, "source": "examples/reti/stakingPool.algo.ts:873", "pc": [ - 3301, - 3302 + 3301 ] }, { - "teal": 3501, + "teal": 3500, "source": "examples/reti/stakingPool.algo.ts:873", "pc": [ + 3302, 3303 ] }, { - "teal": 3502, + "teal": 3501, "source": "examples/reti/stakingPool.algo.ts:873", "pc": [ 3304 ] }, { - "teal": 3503, + "teal": 3502, "source": "examples/reti/stakingPool.algo.ts:873", "pc": [ 3305 ] }, - { - "teal": 3504, - "source": "examples/reti/stakingPool.algo.ts:873", - "pc": [ - 3306, - 3307 - ] - }, { "teal": 3505, "source": "examples/reti/stakingPool.algo.ts:873", + "errorMessage": "argument 6 (feePayment) for goOnline must be a pay transaction", "pc": [ - 3308 + 3306 ] }, { - "teal": 3506, - "source": "examples/reti/stakingPool.algo.ts:873", + "teal": 3508, + "source": "examples/reti/stakingPool.algo.ts:872", "pc": [ + 3307, + 3308, 3309 ] }, { "teal": 3509, - "source": "examples/reti/stakingPool.algo.ts:873", - "errorMessage": "argument 6 (feePayment) for goOnline must be a pay transaction", + "source": "examples/reti/stakingPool.algo.ts:872", "pc": [ 3310 ] }, { - "teal": 3512, + "teal": 3510, "source": "examples/reti/stakingPool.algo.ts:872", "pc": [ - 3311, - 3312, - 3313 + 3311 ] }, { - "teal": 3513, + "teal": 3526, "source": "examples/reti/stakingPool.algo.ts:872", "pc": [ + 3312, + 3313, 3314 ] }, { - "teal": 3514, + "teal": 3529, "source": "examples/reti/stakingPool.algo.ts:872", "pc": [ 3315 ] }, { - "teal": 3530, - "source": "examples/reti/stakingPool.algo.ts:872", + "teal": 3533, + "source": "examples/reti/stakingPool.algo.ts:881", "pc": [ 3316, 3317, @@ -15311,15 +15311,16 @@ ] }, { - "teal": 3533, - "source": "examples/reti/stakingPool.algo.ts:872", + "teal": 3536, + "source": "examples/reti/stakingPool.algo.ts:881", + "errorMessage": "can only be called by owner or manager of validator", "pc": [ 3319 ] }, { - "teal": 3537, - "source": "examples/reti/stakingPool.algo.ts:881", + "teal": 3540, + "source": "examples/reti/stakingPool.algo.ts:882", "pc": [ 3320, 3321, @@ -15327,32 +15328,31 @@ ] }, { - "teal": 3540, - "source": "examples/reti/stakingPool.algo.ts:881", - "errorMessage": "can only be called by owner or manager of validator", + "teal": 3541, + "source": "examples/reti/stakingPool.algo.ts:882", "pc": [ - 3323 + 3323, + 3324 ] }, { - "teal": 3544, - "source": "examples/reti/stakingPool.algo.ts:882", + "teal": 3546, + "source": "examples/reti/stakingPool.algo.ts:883", "pc": [ - 3324, 3325, 3326 ] }, { - "teal": 3545, - "source": "examples/reti/stakingPool.algo.ts:882", + "teal": 3547, + "source": "examples/reti/stakingPool.algo.ts:883", "pc": [ 3327, 3328 ] }, { - "teal": 3550, + "teal": 3548, "source": "examples/reti/stakingPool.algo.ts:883", "pc": [ 3329, @@ -15360,38 +15360,38 @@ ] }, { - "teal": 3551, + "teal": 3549, "source": "examples/reti/stakingPool.algo.ts:883", "pc": [ - 3331, - 3332 + 3331 ] }, { "teal": 3552, "source": "examples/reti/stakingPool.algo.ts:883", + "errorMessage": "transaction verification failed: {\"txn\":\"feePayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", "pc": [ - 3333, - 3334 + 3332 ] }, { - "teal": 3553, + "teal": 3555, "source": "examples/reti/stakingPool.algo.ts:883", "pc": [ - 3335 + 3333, + 3334 ] }, { "teal": 3556, "source": "examples/reti/stakingPool.algo.ts:883", - "errorMessage": "transaction verification failed: {\"txn\":\"feePayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", "pc": [ + 3335, 3336 ] }, { - "teal": 3559, + "teal": 3557, "source": "examples/reti/stakingPool.algo.ts:883", "pc": [ 3337, @@ -15399,220 +15399,226 @@ ] }, { - "teal": 3560, + "teal": 3558, "source": "examples/reti/stakingPool.algo.ts:883", "pc": [ - 3339, - 3340 + 3339 ] }, { "teal": 3561, "source": "examples/reti/stakingPool.algo.ts:883", + "errorMessage": "transaction verification failed: {\"txn\":\"feePayment\",\"field\":\"amount\",\"expected\":\"extraFee\"}", "pc": [ - 3341, - 3342 + 3340 ] }, { - "teal": 3562, - "source": "examples/reti/stakingPool.algo.ts:883", + "teal": 3573, + "source": "examples/reti/stakingPool.algo.ts:884", "pc": [ - 3343 + 3341 ] }, { - "teal": 3565, - "source": "examples/reti/stakingPool.algo.ts:883", - "errorMessage": "transaction verification failed: {\"txn\":\"feePayment\",\"field\":\"amount\",\"expected\":\"extraFee\"}", + "teal": 3574, + "source": "examples/reti/stakingPool.algo.ts:884", "pc": [ - 3344 + 3342, + 3343 ] }, { - "teal": 3577, + "teal": 3575, "source": "examples/reti/stakingPool.algo.ts:884", "pc": [ + 3344, 3345 ] }, { - "teal": 3578, - "source": "examples/reti/stakingPool.algo.ts:884", + "teal": 3579, + "source": "examples/reti/stakingPool.algo.ts:885", "pc": [ 3346, 3347 ] }, { - "teal": 3579, - "source": "examples/reti/stakingPool.algo.ts:884", + "teal": 3580, + "source": "examples/reti/stakingPool.algo.ts:885", "pc": [ 3348, 3349 ] }, { - "teal": 3583, - "source": "examples/reti/stakingPool.algo.ts:885", + "teal": 3584, + "source": "examples/reti/stakingPool.algo.ts:886", "pc": [ 3350, 3351 ] }, { - "teal": 3584, - "source": "examples/reti/stakingPool.algo.ts:885", + "teal": 3585, + "source": "examples/reti/stakingPool.algo.ts:886", "pc": [ 3352, 3353 ] }, { - "teal": 3588, - "source": "examples/reti/stakingPool.algo.ts:886", + "teal": 3589, + "source": "examples/reti/stakingPool.algo.ts:887", "pc": [ 3354, 3355 ] }, { - "teal": 3589, - "source": "examples/reti/stakingPool.algo.ts:886", + "teal": 3590, + "source": "examples/reti/stakingPool.algo.ts:887", "pc": [ 3356, 3357 ] }, { - "teal": 3593, - "source": "examples/reti/stakingPool.algo.ts:887", + "teal": 3594, + "source": "examples/reti/stakingPool.algo.ts:888", "pc": [ 3358, 3359 ] }, { - "teal": 3594, - "source": "examples/reti/stakingPool.algo.ts:887", + "teal": 3595, + "source": "examples/reti/stakingPool.algo.ts:888", "pc": [ 3360, 3361 ] }, { - "teal": 3598, - "source": "examples/reti/stakingPool.algo.ts:888", + "teal": 3599, + "source": "examples/reti/stakingPool.algo.ts:889", "pc": [ 3362, 3363 ] }, { - "teal": 3599, - "source": "examples/reti/stakingPool.algo.ts:888", + "teal": 3600, + "source": "examples/reti/stakingPool.algo.ts:889", "pc": [ 3364, 3365 ] }, { - "teal": 3603, - "source": "examples/reti/stakingPool.algo.ts:889", + "teal": 3604, + "source": "examples/reti/stakingPool.algo.ts:890", "pc": [ 3366, 3367 ] }, { - "teal": 3604, - "source": "examples/reti/stakingPool.algo.ts:889", + "teal": 3605, + "source": "examples/reti/stakingPool.algo.ts:890", "pc": [ 3368, 3369 ] }, { - "teal": 3608, - "source": "examples/reti/stakingPool.algo.ts:890", + "teal": 3609, + "source": "examples/reti/stakingPool.algo.ts:891", "pc": [ 3370, - 3371 + 3371, + 3372 ] }, { - "teal": 3609, - "source": "examples/reti/stakingPool.algo.ts:890", + "teal": 3610, + "source": "examples/reti/stakingPool.algo.ts:891", "pc": [ - 3372, - 3373 + 3373, + 3374 ] }, { "teal": 3613, - "source": "examples/reti/stakingPool.algo.ts:891", + "source": "examples/reti/stakingPool.algo.ts:884", "pc": [ - 3374, - 3375, - 3376 + 3375 ] }, { "teal": 3614, - "source": "examples/reti/stakingPool.algo.ts:891", + "source": "examples/reti/stakingPool.algo.ts:872", "pc": [ - 3377, - 3378 + 3376 ] }, { - "teal": 3617, - "source": "examples/reti/stakingPool.algo.ts:884", + "teal": 3619, + "source": "examples/reti/stakingPool.algo.ts:900", "pc": [ + 3377, + 3378, 3379 ] }, { - "teal": 3618, - "source": "examples/reti/stakingPool.algo.ts:872", + "teal": 3620, + "source": "examples/reti/stakingPool.algo.ts:900", "pc": [ 3380 ] }, { - "teal": 3623, + "teal": 3621, "source": "examples/reti/stakingPool.algo.ts:900", "pc": [ - 3381, - 3382, - 3383 + 3381 ] }, { - "teal": 3624, + "teal": 3628, "source": "examples/reti/stakingPool.algo.ts:900", "pc": [ + 3382, + 3383, 3384 ] }, { - "teal": 3625, - "source": "examples/reti/stakingPool.algo.ts:900", + "teal": 3633, + "source": "examples/reti/stakingPool.algo.ts:903", "pc": [ - 3385 + 3385, + 3386 ] }, { - "teal": 3632, - "source": "examples/reti/stakingPool.algo.ts:900", + "teal": 3634, + "source": "examples/reti/stakingPool.algo.ts:903", + "pc": [ + 3387 + ] + }, + { + "teal": 3635, + "source": "examples/reti/stakingPool.algo.ts:903", "pc": [ - 3386, - 3387, 3388 ] }, { - "teal": 3637, + "teal": 3636, "source": "examples/reti/stakingPool.algo.ts:903", "pc": [ 3389, @@ -15620,71 +15626,65 @@ ] }, { - "teal": 3638, + "teal": 3637, "source": "examples/reti/stakingPool.algo.ts:903", "pc": [ 3391 ] }, { - "teal": 3639, + "teal": 3638, "source": "examples/reti/stakingPool.algo.ts:903", "pc": [ 3392 ] }, { - "teal": 3640, + "teal": 3639, "source": "examples/reti/stakingPool.algo.ts:903", "pc": [ 3393, - 3394 - ] - }, - { - "teal": 3641, - "source": "examples/reti/stakingPool.algo.ts:903", - "pc": [ + 3394, 3395 ] }, { - "teal": 3642, - "source": "examples/reti/stakingPool.algo.ts:903", + "teal": 3644, + "source": "examples/reti/stakingPool.algo.ts:904", "pc": [ - 3396 + 3396, + 3397, + 3398 ] }, { - "teal": 3643, - "source": "examples/reti/stakingPool.algo.ts:903", + "teal": 3647, + "source": "examples/reti/stakingPool.algo.ts:904", + "errorMessage": "can only be called by owner or manager of validator", "pc": [ - 3397, - 3398, 3399 ] }, { - "teal": 3648, - "source": "examples/reti/stakingPool.algo.ts:904", + "teal": 3652, + "source": "examples/reti/stakingPool.algo.ts:907", "pc": [ - 3400, - 3401, - 3402 + 3400 ] }, { - "teal": 3651, - "source": "examples/reti/stakingPool.algo.ts:904", - "errorMessage": "can only be called by owner or manager of validator", + "teal": 3653, + "source": "examples/reti/stakingPool.algo.ts:907", "pc": [ - 3403 + 3401, + 3402 ] }, { - "teal": 3656, + "teal": 3654, "source": "examples/reti/stakingPool.algo.ts:907", "pc": [ + 3403, 3404 ] }, @@ -15692,62 +15692,62 @@ "teal": 3657, "source": "examples/reti/stakingPool.algo.ts:907", "pc": [ - 3405, - 3406 + 3405 ] }, { "teal": 3658, "source": "examples/reti/stakingPool.algo.ts:907", "pc": [ - 3407, - 3408 + 3406, + 3407 ] }, { "teal": 3661, "source": "examples/reti/stakingPool.algo.ts:907", "pc": [ - 3409 + 3408 ] }, { "teal": 3662, - "source": "examples/reti/stakingPool.algo.ts:907", + "source": "examples/reti/stakingPool.algo.ts:900", "pc": [ - 3410, - 3411 + 3409 ] }, { - "teal": 3665, - "source": "examples/reti/stakingPool.algo.ts:907", + "teal": 3667, + "source": "examples/reti/stakingPool.algo.ts:913", "pc": [ + 3410, + 3411, 3412 ] }, { - "teal": 3666, - "source": "examples/reti/stakingPool.algo.ts:900", + "teal": 3668, + "source": "examples/reti/stakingPool.algo.ts:913", "pc": [ - 3413 + 3413, + 3414, + 3415 ] }, { "teal": 3671, "source": "examples/reti/stakingPool.algo.ts:913", "pc": [ - 3414, - 3415, - 3416 + 3416, + 3417, + 3418 ] }, { "teal": 3672, "source": "examples/reti/stakingPool.algo.ts:913", "pc": [ - 3417, - 3418, 3419 ] }, @@ -15768,96 +15768,84 @@ ] }, { - "teal": 3679, + "teal": 3677, "source": "examples/reti/stakingPool.algo.ts:913", "pc": [ - 3424, - 3425, - 3426 - ] - }, - { - "teal": 3680, - "source": "examples/reti/stakingPool.algo.ts:913", - "pc": [ - 3427 + 3424 ] }, { "teal": 3681, "source": "examples/reti/stakingPool.algo.ts:913", "pc": [ - 3428 + 3425, + 3426, + 3427 ] }, { "teal": 3685, - "source": "examples/reti/stakingPool.algo.ts:913", - "pc": [ - 3429, - 3430, - 3431 - ] - }, - { - "teal": 3689, "source": "examples/reti/stakingPool.algo.ts:914", "pc": [ - 3432, - 3433, - 3434 + 3428, + 3429, + 3430 ] }, { - "teal": 3692, + "teal": 3688, "source": "examples/reti/stakingPool.algo.ts:914", "errorMessage": "can only be called by owner or manager of validator", "pc": [ - 3435 + 3431 ] }, { - "teal": 3700, + "teal": 3696, "source": "examples/reti/stakingPool.algo.ts:916", "pc": [ - 3436 + 3432 ] }, { - "teal": 3701, + "teal": 3697, "source": "examples/reti/stakingPool.algo.ts:916", "pc": [ - 3437 + 3433 ] }, { - "teal": 3702, + "teal": 3698, "source": "examples/reti/stakingPool.algo.ts:916", "pc": [ - 3438, - 3439 + 3434, + 3435 ] }, { - "teal": 3706, + "teal": 3702, "source": "examples/reti/stakingPool.algo.ts:917", "pc": [ - 3440, - 3441 + 3436, + 3437 ] }, { - "teal": 3707, + "teal": 3703, "source": "examples/reti/stakingPool.algo.ts:917", "pc": [ - 3442, - 3443 + 3438, + 3439 ] }, { - "teal": 3711, + "teal": 3707, "source": "examples/reti/stakingPool.algo.ts:918", "pc": [ + 3440, + 3441, + 3442, + 3443, 3444, 3445, 3446, @@ -15870,15 +15858,27 @@ 3453, 3454, 3455, - 3456, + 3456 + ] + }, + { + "teal": 3708, + "source": "examples/reti/stakingPool.algo.ts:918", + "pc": [ 3457, - 3458, + 3458 + ] + }, + { + "teal": 3709, + "source": "examples/reti/stakingPool.algo.ts:918", + "pc": [ 3459, 3460 ] }, { - "teal": 3712, + "teal": 3710, "source": "examples/reti/stakingPool.algo.ts:918", "pc": [ 3461, @@ -15886,7 +15886,7 @@ ] }, { - "teal": 3713, + "teal": 3711, "source": "examples/reti/stakingPool.algo.ts:918", "pc": [ 3463, @@ -15894,30 +15894,30 @@ ] }, { - "teal": 3714, + "teal": 3712, "source": "examples/reti/stakingPool.algo.ts:918", "pc": [ - 3465, - 3466 + 3465 ] }, { - "teal": 3715, + "teal": 3713, "source": "examples/reti/stakingPool.algo.ts:918", "pc": [ - 3467, - 3468 + 3466, + 3467 ] }, { - "teal": 3716, + "teal": 3714, "source": "examples/reti/stakingPool.algo.ts:918", "pc": [ + 3468, 3469 ] }, { - "teal": 3717, + "teal": 3715, "source": "examples/reti/stakingPool.algo.ts:918", "pc": [ 3470, @@ -15925,16 +15925,16 @@ ] }, { - "teal": 3718, - "source": "examples/reti/stakingPool.algo.ts:918", + "teal": 3719, + "source": "examples/reti/stakingPool.algo.ts:919", "pc": [ 3472, 3473 ] }, { - "teal": 3719, - "source": "examples/reti/stakingPool.algo.ts:918", + "teal": 3720, + "source": "examples/reti/stakingPool.algo.ts:919", "pc": [ 3474, 3475 @@ -15942,308 +15942,308 @@ }, { "teal": 3723, - "source": "examples/reti/stakingPool.algo.ts:919", + "source": "examples/reti/stakingPool.algo.ts:916", "pc": [ - 3476, - 3477 + 3476 ] }, { "teal": 3724, - "source": "examples/reti/stakingPool.algo.ts:919", + "source": "examples/reti/stakingPool.algo.ts:916", "pc": [ - 3478, - 3479 + 3477, + 3478 ] }, { "teal": 3727, "source": "examples/reti/stakingPool.algo.ts:916", "pc": [ - 3480 + 3479 ] }, { "teal": 3728, - "source": "examples/reti/stakingPool.algo.ts:916", + "source": "examples/reti/stakingPool.algo.ts:913", "pc": [ - 3481, - 3482 + 3480 ] }, { - "teal": 3731, - "source": "examples/reti/stakingPool.algo.ts:916", + "teal": 3733, + "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3483 + 3481, + 3482 ] }, { - "teal": 3732, - "source": "examples/reti/stakingPool.algo.ts:913", + "teal": 3736, + "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3484 + 3483, + 3484, + 3485 ] }, { "teal": 3737, "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3485, 3486 ] }, { - "teal": 3740, + "teal": 3738, "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3487, - 3488, - 3489 + 3487 ] }, { - "teal": 3741, + "teal": 3739, "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3490 + 3488, + 3489 ] }, { - "teal": 3742, + "teal": 3740, "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3491 + 3490 ] }, { "teal": 3743, "source": "examples/reti/stakingPool.algo.ts:929", + "errorMessage": "argument 0 (poolKey) for proxiedSetTokenPayoutRatio must be a (uint64,uint64,uint64)", "pc": [ - 3492, - 3493 + 3491 ] }, { - "teal": 3744, + "teal": 3746, "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ + 3492, + 3493, 3494 ] }, { "teal": 3747, "source": "examples/reti/stakingPool.algo.ts:929", - "errorMessage": "argument 0 (poolKey) for proxiedSetTokenPayoutRatio must be a (uint64,uint64,uint64)", "pc": [ 3495 ] }, { - "teal": 3750, + "teal": 3748, "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3496, - 3497, - 3498 + 3496 ] }, { - "teal": 3751, + "teal": 3749, "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3499 + 3497 ] }, { - "teal": 3752, + "teal": 3750, "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3500 + 3498 ] }, { - "teal": 3753, + "teal": 3759, "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ + 3499, + 3500, 3501 ] }, { - "teal": 3754, + "teal": 3762, "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ 3502 ] }, { - "teal": 3763, - "source": "examples/reti/stakingPool.algo.ts:929", + "teal": 3766, + "source": "examples/reti/stakingPool.algo.ts:930", "pc": [ - 3503, - 3504, - 3505 + 3503 ] }, { - "teal": 3766, - "source": "examples/reti/stakingPool.algo.ts:929", + "teal": 3767, + "source": "examples/reti/stakingPool.algo.ts:930", "pc": [ - 3506 + 3504 ] }, { - "teal": 3770, + "teal": 3768, "source": "examples/reti/stakingPool.algo.ts:930", "pc": [ - 3507 + 3505, + 3506 ] }, { - "teal": 3771, + "teal": 3769, "source": "examples/reti/stakingPool.algo.ts:930", "pc": [ - 3508 + 3507, + 3508, + 3509 ] }, { - "teal": 3772, + "teal": 3770, "source": "examples/reti/stakingPool.algo.ts:930", "pc": [ - 3509, 3510 ] }, { - "teal": 3773, + "teal": 3771, "source": "examples/reti/stakingPool.algo.ts:930", "pc": [ - 3511, - 3512, - 3513 + 3511 ] }, { "teal": 3774, "source": "examples/reti/stakingPool.algo.ts:930", + "errorMessage": "caller must be part of same validator set!", "pc": [ - 3514 + 3512 ] }, { - "teal": 3775, - "source": "examples/reti/stakingPool.algo.ts:930", + "teal": 3778, + "source": "examples/reti/stakingPool.algo.ts:931", "pc": [ - 3515 + 3513, + 3514 ] }, { - "teal": 3778, - "source": "examples/reti/stakingPool.algo.ts:930", - "errorMessage": "caller must be part of same validator set!", + "teal": 3779, + "source": "examples/reti/stakingPool.algo.ts:931", "pc": [ - 3516 + 3515 ] }, { - "teal": 3782, + "teal": 3780, "source": "examples/reti/stakingPool.algo.ts:931", "pc": [ - 3517, - 3518 + 3516 ] }, { - "teal": 3783, + "teal": 3781, "source": "examples/reti/stakingPool.algo.ts:931", "pc": [ - 3519 + 3517 ] }, { "teal": 3784, "source": "examples/reti/stakingPool.algo.ts:931", + "errorMessage": "callee must be pool 1", "pc": [ - 3520 + 3518 ] }, { - "teal": 3785, - "source": "examples/reti/stakingPool.algo.ts:931", + "teal": 3788, + "source": "examples/reti/stakingPool.algo.ts:932", "pc": [ - 3521 + 3519, + 3520 ] }, { - "teal": 3788, - "source": "examples/reti/stakingPool.algo.ts:931", - "errorMessage": "callee must be pool 1", + "teal": 3789, + "source": "examples/reti/stakingPool.algo.ts:932", "pc": [ - 3522 + 3521, + 3522, + 3523 ] }, { - "teal": 3792, + "teal": 3790, "source": "examples/reti/stakingPool.algo.ts:932", "pc": [ - 3523, 3524 ] }, { - "teal": 3793, + "teal": 3791, "source": "examples/reti/stakingPool.algo.ts:932", "pc": [ - 3525, - 3526, - 3527 + 3525 ] }, { - "teal": 3794, + "teal": 3792, "source": "examples/reti/stakingPool.algo.ts:932", "pc": [ - 3528 + 3526 ] }, { "teal": 3795, "source": "examples/reti/stakingPool.algo.ts:932", + "errorMessage": "caller must NOT be pool 1", "pc": [ - 3529 + 3527 ] }, { - "teal": 3796, - "source": "examples/reti/stakingPool.algo.ts:932", + "teal": 3802, + "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3530 + 3528 ] }, { - "teal": 3799, - "source": "examples/reti/stakingPool.algo.ts:932", - "errorMessage": "caller must NOT be pool 1", + "teal": 3803, + "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3531 + 3529 ] }, { - "teal": 3806, + "teal": 3804, "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3532 + 3530, + 3531 ] }, { - "teal": 3807, + "teal": 3805, "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ + 3532, 3533 ] }, { - "teal": 3808, + "teal": 3806, "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ 3534, @@ -16251,320 +16251,320 @@ ] }, { - "teal": 3809, - "source": "examples/reti/stakingPool.algo.ts:934", + "teal": 3810, + "source": "examples/reti/stakingPool.algo.ts:935", "pc": [ - 3536, - 3537 + 3536 ] }, { - "teal": 3810, - "source": "examples/reti/stakingPool.algo.ts:934", + "teal": 3811, + "source": "examples/reti/stakingPool.algo.ts:935", "pc": [ - 3538, - 3539 + 3537 ] }, { - "teal": 3814, + "teal": 3812, "source": "examples/reti/stakingPool.algo.ts:935", "pc": [ - 3540 + 3538, + 3539 ] }, { - "teal": 3815, - "source": "examples/reti/stakingPool.algo.ts:935", + "teal": 3816, + "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ + 3540, 3541 ] }, { - "teal": 3816, - "source": "examples/reti/stakingPool.algo.ts:935", + "teal": 3817, + "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ 3542, - 3543 + 3543, + 3544 ] }, { - "teal": 3820, + "teal": 3818, "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ - 3544, 3545 ] }, { - "teal": 3821, + "teal": 3819, "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ - 3546, - 3547, - 3548 + 3546 ] }, { - "teal": 3822, + "teal": 3820, "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ - 3549 + 3547, + 3548 ] }, { - "teal": 3823, + "teal": 3821, "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ + 3549, 3550 ] }, { - "teal": 3824, + "teal": 3822, "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ 3551, - 3552 + 3552, + 3553 ] }, { - "teal": 3825, + "teal": 3823, "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ - 3553, 3554 ] }, { - "teal": 3826, + "teal": 3824, "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ - 3555, - 3556, - 3557 + 3555 ] }, { - "teal": 3827, + "teal": 3825, "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ - 3558 + 3556, + 3557 ] }, { "teal": 3828, - "source": "examples/reti/stakingPool.algo.ts:936", + "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3559 + 3558 ] }, { "teal": 3829, - "source": "examples/reti/stakingPool.algo.ts:936", + "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3560, - 3561 + 3559, + 3560 ] }, { "teal": 3832, "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3562 + 3561 ] }, { "teal": 3833, "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3563, - 3564 + 3562, + 3563 ] }, { - "teal": 3836, + "teal": 3834, "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3565 + 3564 ] }, { - "teal": 3837, + "teal": 3835, "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3566, - 3567 + 3565 ] }, { - "teal": 3838, + "teal": 3836, "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3568 + 3566, + 3567 ] }, { - "teal": 3839, + "teal": 3837, "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3569 + 3568, + 3569, + 3570 ] }, { - "teal": 3840, + "teal": 3838, "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3570, 3571 ] }, { - "teal": 3841, + "teal": 3839, "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ 3572, - 3573, - 3574 + 3573 ] }, { - "teal": 3842, - "source": "examples/reti/stakingPool.algo.ts:934", + "teal": 3843, + "source": "examples/reti/stakingPool.algo.ts:938", "pc": [ + 3574, 3575 ] }, { - "teal": 3843, - "source": "examples/reti/stakingPool.algo.ts:934", + "teal": 3844, + "source": "examples/reti/stakingPool.algo.ts:938", "pc": [ 3576, 3577 ] }, { - "teal": 3847, + "teal": 3845, "source": "examples/reti/stakingPool.algo.ts:938", "pc": [ 3578, - 3579 + 3579, + 3580 ] }, { - "teal": 3848, + "teal": 3846, "source": "examples/reti/stakingPool.algo.ts:938", "pc": [ - 3580, 3581 ] }, { - "teal": 3849, + "teal": 3847, "source": "examples/reti/stakingPool.algo.ts:938", "pc": [ - 3582, - 3583, - 3584 + 3582 ] }, { - "teal": 3850, + "teal": 3848, "source": "examples/reti/stakingPool.algo.ts:938", "pc": [ - 3585 + 3583 ] }, { - "teal": 3851, - "source": "examples/reti/stakingPool.algo.ts:938", + "teal": 3852, + "source": "examples/reti/stakingPool.algo.ts:939", "pc": [ - 3586 + 3584, + 3585 ] }, { - "teal": 3852, - "source": "examples/reti/stakingPool.algo.ts:938", + "teal": 3853, + "source": "examples/reti/stakingPool.algo.ts:939", "pc": [ + 3586, 3587 ] }, { - "teal": 3856, + "teal": 3854, "source": "examples/reti/stakingPool.algo.ts:939", "pc": [ 3588, - 3589 + 3589, + 3590 ] }, { - "teal": 3857, + "teal": 3855, "source": "examples/reti/stakingPool.algo.ts:939", "pc": [ - 3590, 3591 ] }, { - "teal": 3858, + "teal": 3856, "source": "examples/reti/stakingPool.algo.ts:939", "pc": [ 3592, - 3593, - 3594 + 3593 ] }, { - "teal": 3859, + "teal": 3857, "source": "examples/reti/stakingPool.algo.ts:939", "pc": [ - 3595 + 3594 ] }, { - "teal": 3860, + "teal": 3858, "source": "examples/reti/stakingPool.algo.ts:939", "pc": [ - 3596, - 3597 + 3595 ] }, { - "teal": 3861, + "teal": 3859, "source": "examples/reti/stakingPool.algo.ts:939", "pc": [ - 3598 + 3596 ] }, { - "teal": 3862, - "source": "examples/reti/stakingPool.algo.ts:939", + "teal": 3866, + "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3599 + 3597 ] }, { - "teal": 3863, - "source": "examples/reti/stakingPool.algo.ts:939", + "teal": 3867, + "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3600 + 3598 ] }, { - "teal": 3870, + "teal": 3868, "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3601 + 3599, + 3600 ] }, { - "teal": 3871, + "teal": 3869, "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ + 3601, 3602 ] }, { - "teal": 3872, + "teal": 3870, "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ 3603, @@ -16572,96 +16572,102 @@ ] }, { - "teal": 3873, - "source": "examples/reti/stakingPool.algo.ts:941", + "teal": 3874, + "source": "examples/reti/stakingPool.algo.ts:942", + "pc": [ + 3605 + ] + }, + { + "teal": 3875, + "source": "examples/reti/stakingPool.algo.ts:942", "pc": [ - 3605, 3606 ] }, { - "teal": 3874, - "source": "examples/reti/stakingPool.algo.ts:941", + "teal": 3876, + "source": "examples/reti/stakingPool.algo.ts:942", "pc": [ 3607, 3608 ] }, { - "teal": 3878, - "source": "examples/reti/stakingPool.algo.ts:942", + "teal": 3880, + "source": "examples/reti/stakingPool.algo.ts:943", "pc": [ 3609 ] }, { - "teal": 3879, - "source": "examples/reti/stakingPool.algo.ts:942", + "teal": 3881, + "source": "examples/reti/stakingPool.algo.ts:943", "pc": [ 3610 ] }, { - "teal": 3880, - "source": "examples/reti/stakingPool.algo.ts:942", + "teal": 3882, + "source": "examples/reti/stakingPool.algo.ts:943", "pc": [ - 3611, - 3612 + 3611 ] }, { - "teal": 3884, + "teal": 3883, "source": "examples/reti/stakingPool.algo.ts:943", "pc": [ + 3612, 3613 ] }, { - "teal": 3885, - "source": "examples/reti/stakingPool.algo.ts:943", + "teal": 3886, + "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ 3614 ] }, { - "teal": 3886, - "source": "examples/reti/stakingPool.algo.ts:943", + "teal": 3887, + "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3615 + 3615, + 3616 ] }, { - "teal": 3887, - "source": "examples/reti/stakingPool.algo.ts:943", + "teal": 3890, + "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3616, 3617 ] }, { - "teal": 3890, + "teal": 3891, "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3618 + 3618, + 3619 ] }, { - "teal": 3891, + "teal": 3892, "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3619, 3620 ] }, { - "teal": 3894, + "teal": 3893, "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ 3621 ] }, { - "teal": 3895, + "teal": 3894, "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ 3622, @@ -16669,184 +16675,184 @@ ] }, { - "teal": 3896, - "source": "examples/reti/stakingPool.algo.ts:941", - "pc": [ - 3624 - ] - }, - { - "teal": 3897, + "teal": 3895, "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3625 + 3624, + 3625, + 3626 ] }, { "teal": 3898, - "source": "examples/reti/stakingPool.algo.ts:941", + "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3626, - 3627 + 3627, + 3628 ] }, { "teal": 3899, - "source": "examples/reti/stakingPool.algo.ts:941", + "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3628, - 3629, - 3630 + 3629 ] }, { - "teal": 3902, - "source": "examples/reti/stakingPool.algo.ts:929", + "teal": 3903, + "source": "examples/reti/stakingPool.algo.ts:947", "pc": [ + 3630, 3631, 3632 ] }, { - "teal": 3903, - "source": "examples/reti/stakingPool.algo.ts:929", + "teal": 3906, + "source": "examples/reti/stakingPool.algo.ts:947", "pc": [ 3633 ] }, { - "teal": 3907, - "source": "examples/reti/stakingPool.algo.ts:947", + "teal": 3913, + "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3634, - 3635, - 3636 + 3634 ] }, { - "teal": 3910, - "source": "examples/reti/stakingPool.algo.ts:947", + "teal": 3914, + "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3637 + 3635 ] }, { - "teal": 3917, + "teal": 3915, "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3638 + 3636, + 3637 ] }, { - "teal": 3918, + "teal": 3916, "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3639 + 3638, + 3639, + 3640, + 3641, + 3642, + 3643 ] }, { - "teal": 3919, + "teal": 3917, "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3640, - 3641 + 3644, + 3645 ] }, { - "teal": 3920, - "source": "examples/reti/stakingPool.algo.ts:948", + "teal": 3921, + "source": "examples/reti/stakingPool.algo.ts:949", + "pc": [ + 3646 + ] + }, + { + "teal": 3922, + "source": "examples/reti/stakingPool.algo.ts:949", "pc": [ - 3642, - 3643, - 3644, - 3645, - 3646, 3647 ] }, { - "teal": 3921, - "source": "examples/reti/stakingPool.algo.ts:948", + "teal": 3923, + "source": "examples/reti/stakingPool.algo.ts:949", "pc": [ 3648, 3649 ] }, { - "teal": 3925, - "source": "examples/reti/stakingPool.algo.ts:949", + "teal": 3927, + "source": "examples/reti/stakingPool.algo.ts:950", "pc": [ 3650 ] }, { - "teal": 3926, - "source": "examples/reti/stakingPool.algo.ts:949", + "teal": 3928, + "source": "examples/reti/stakingPool.algo.ts:950", "pc": [ 3651 ] }, { - "teal": 3927, - "source": "examples/reti/stakingPool.algo.ts:949", + "teal": 3929, + "source": "examples/reti/stakingPool.algo.ts:950", "pc": [ - 3652, - 3653 + 3652 ] }, { - "teal": 3931, + "teal": 3930, "source": "examples/reti/stakingPool.algo.ts:950", "pc": [ + 3653, 3654 ] }, { - "teal": 3932, - "source": "examples/reti/stakingPool.algo.ts:950", + "teal": 3933, + "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ 3655 ] }, { - "teal": 3933, - "source": "examples/reti/stakingPool.algo.ts:950", + "teal": 3934, + "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3656 + 3656, + 3657 ] }, { - "teal": 3934, - "source": "examples/reti/stakingPool.algo.ts:950", + "teal": 3937, + "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3657, 3658 ] }, { - "teal": 3937, + "teal": 3938, "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3659 + 3659, + 3660 ] }, { - "teal": 3938, + "teal": 3939, "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3660, 3661 ] }, { - "teal": 3941, + "teal": 3940, "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ 3662 ] }, { - "teal": 3942, + "teal": 3941, "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ 3663, @@ -16854,173 +16860,167 @@ ] }, { - "teal": 3943, - "source": "examples/reti/stakingPool.algo.ts:948", - "pc": [ - 3665 - ] - }, - { - "teal": 3944, + "teal": 3942, "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3666 + 3665, + 3666, + 3667 ] }, { - "teal": 3945, + "teal": 3943, "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3667, - 3668 + 3668, + 3669 ] }, { - "teal": 3946, - "source": "examples/reti/stakingPool.algo.ts:948", + "teal": 3947, + "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ - 3669, 3670, 3671 ] }, { - "teal": 3947, - "source": "examples/reti/stakingPool.algo.ts:948", + "teal": 3948, + "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ 3672, 3673 ] }, { - "teal": 3951, + "teal": 3949, "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ 3674, - 3675 + 3675, + 3676 ] }, { - "teal": 3952, + "teal": 3950, "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ - 3676, 3677 ] }, { - "teal": 3953, + "teal": 3951, "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ - 3678, - 3679, - 3680 + 3678 ] }, { - "teal": 3954, + "teal": 3952, "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ + 3679, + 3680, 3681 ] }, { - "teal": 3955, + "teal": 3953, "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ - 3682 + 3682, + 3683 ] }, { - "teal": 3956, + "teal": 3954, "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ - 3683, 3684, 3685 ] }, { - "teal": 3957, + "teal": 3955, "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ 3686, - 3687 + 3687, + 3688 ] }, { - "teal": 3958, + "teal": 3956, "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ - 3688, 3689 ] }, { - "teal": 3959, + "teal": 3957, "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ - 3690, - 3691, - 3692 + 3690 ] }, { - "teal": 3960, - "source": "examples/reti/stakingPool.algo.ts:952", + "teal": 3961, + "source": "examples/reti/stakingPool.algo.ts:947", "pc": [ - 3693 + 3691, + 3692 ] }, { - "teal": 3961, - "source": "examples/reti/stakingPool.algo.ts:952", + "teal": 3962, + "source": "examples/reti/stakingPool.algo.ts:947", "pc": [ - 3694 + 3693 ] }, { - "teal": 3965, - "source": "examples/reti/stakingPool.algo.ts:947", + "teal": 3966, + "source": "examples/reti/stakingPool.algo.ts:955", "pc": [ + 3694, 3695, 3696 ] }, { - "teal": 3966, - "source": "examples/reti/stakingPool.algo.ts:947", + "teal": 3970, + "source": "examples/reti/stakingPool.algo.ts:956", "pc": [ - 3697 + 3697, + 3698 ] }, { - "teal": 3970, + "teal": 3971, "source": "examples/reti/stakingPool.algo.ts:955", "pc": [ - 3698, - 3699, - 3700 + 3699 ] }, { - "teal": 3974, - "source": "examples/reti/stakingPool.algo.ts:956", + "teal": 3978, + "source": "examples/reti/stakingPool.algo.ts:965", "pc": [ + 3700, 3701, 3702 ] }, { - "teal": 3975, - "source": "examples/reti/stakingPool.algo.ts:955", + "teal": 3981, + "source": "examples/reti/stakingPool.algo.ts:965", "pc": [ 3703 ] }, { - "teal": 3982, - "source": "examples/reti/stakingPool.algo.ts:965", + "teal": 3985, + "source": "examples/reti/stakingPool.algo.ts:966", "pc": [ 3704, 3705, @@ -17028,248 +17028,248 @@ ] }, { - "teal": 3985, - "source": "examples/reti/stakingPool.algo.ts:965", + "teal": 3986, + "source": "examples/reti/stakingPool.algo.ts:966", "pc": [ - 3707 + 3707, + 3708 ] }, { - "teal": 3989, - "source": "examples/reti/stakingPool.algo.ts:966", + "teal": 3990, + "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 3708, 3709, 3710 ] }, { - "teal": 3990, - "source": "examples/reti/stakingPool.algo.ts:966", + "teal": 3991, + "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ 3711, 3712 ] }, { - "teal": 3994, + "teal": 3992, "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 3713, - 3714 + 3713 ] }, { - "teal": 3995, + "teal": 3993, "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 3715, - 3716 + 3714 ] }, { - "teal": 3996, + "teal": 3994, "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 3717 + 3715, + 3716 ] }, { - "teal": 3997, + "teal": 3995, "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 3718 + 3717 ] }, { - "teal": 3998, + "teal": 3996, "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 3719, - 3720 + 3718 ] }, { - "teal": 3999, + "teal": 3997, "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 3721 + 3719 ] }, { - "teal": 4000, + "teal": 3998, "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 3722 + 3720 ] }, { - "teal": 4001, + "teal": 3999, "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 3723 + 3721 ] }, { "teal": 4002, "source": "examples/reti/stakingPool.algo.ts:968", + "errorMessage": "wideRatio failed", "pc": [ - 3724 + 3722 ] }, { - "teal": 4003, - "source": "examples/reti/stakingPool.algo.ts:968", + "teal": 4005, + "source": "examples/reti/stakingPool.algo.ts:965", "pc": [ - 3725 + 3723, + 3724 ] }, { "teal": 4006, - "source": "examples/reti/stakingPool.algo.ts:968", - "errorMessage": "wideRatio failed", - "pc": [ - 3726 - ] - }, - { - "teal": 4009, "source": "examples/reti/stakingPool.algo.ts:965", "pc": [ - 3727, - 3728 + 3725 ] }, { "teal": 4010, - "source": "examples/reti/stakingPool.algo.ts:965", + "source": "examples/reti/stakingPool.algo.ts:971", "pc": [ - 3729 + 3726, + 3727, + 3728 ] }, { - "teal": 4014, + "teal": 4013, "source": "examples/reti/stakingPool.algo.ts:971", "pc": [ - 3730, - 3731, - 3732 + 3729 ] }, { "teal": 4017, - "source": "examples/reti/stakingPool.algo.ts:971", + "source": "examples/reti/stakingPool.algo.ts:975", "pc": [ - 3733 + 3730 ] }, { - "teal": 4021, + "teal": 4018, "source": "examples/reti/stakingPool.algo.ts:975", "pc": [ - 3734 + 3731, + 3732 ] }, { - "teal": 4022, - "source": "examples/reti/stakingPool.algo.ts:975", + "teal": 4023, + "source": "examples/reti/stakingPool.algo.ts:976", "pc": [ - 3735, - 3736 + 3733, + 3734 ] }, { - "teal": 4027, + "teal": 4024, "source": "examples/reti/stakingPool.algo.ts:976", "pc": [ - 3737, - 3738 + 3735 ] }, { - "teal": 4028, + "teal": 4025, "source": "examples/reti/stakingPool.algo.ts:976", "pc": [ - 3739 + 3736, + 3737, + 3738 ] }, { - "teal": 4029, - "source": "examples/reti/stakingPool.algo.ts:976", + "teal": 4030, + "source": "examples/reti/stakingPool.algo.ts:978", "pc": [ + 3739, 3740, 3741, 3742 ] }, { - "teal": 4034, + "teal": 4031, "source": "examples/reti/stakingPool.algo.ts:978", "pc": [ 3743, 3744, - 3745, - 3746 + 3745 ] }, { - "teal": 4035, - "source": "examples/reti/stakingPool.algo.ts:978", + "teal": 4036, + "source": "examples/reti/stakingPool.algo.ts:980", "pc": [ - 3747, - 3748, - 3749 + 3746 ] }, { "teal": 4040, - "source": "examples/reti/stakingPool.algo.ts:980", + "source": "examples/reti/stakingPool.algo.ts:971", "pc": [ - 3750 + 3747, + 3748 ] }, { - "teal": 4044, + "teal": 4041, "source": "examples/reti/stakingPool.algo.ts:971", "pc": [ - 3751, - 3752 + 3749 ] }, { "teal": 4045, - "source": "examples/reti/stakingPool.algo.ts:971", + "source": "examples/reti/stakingPool.algo.ts:983", "pc": [ - 3753 + 3750, + 3751, + 3752 ] }, { "teal": 4049, - "source": "examples/reti/stakingPool.algo.ts:983", + "source": "examples/reti/stakingPool.algo.ts:985", "pc": [ + 3753, 3754, 3755, - 3756 - ] - }, - { - "teal": 4053, - "source": "examples/reti/stakingPool.algo.ts:985", - "pc": [ + 3756, 3757, 3758, 3759, 3760, - 3761, - 3762, + 3761 + ] + }, + { + "teal": 4050, + "source": "examples/reti/stakingPool.algo.ts:983", + "pc": [ + 3762 + ] + }, + { + "teal": 4056, + "source": "examples/reti/stakingPool.algo.ts:991", + "pc": [ 3763, 3764, 3765 ] }, { - "teal": 4054, - "source": "examples/reti/stakingPool.algo.ts:983", + "teal": 4059, + "source": "examples/reti/stakingPool.algo.ts:991", "pc": [ 3766 ] @@ -17279,135 +17279,147 @@ "source": "examples/reti/stakingPool.algo.ts:991", "pc": [ 3767, - 3768, - 3769 + 3768 ] }, { - "teal": 4063, - "source": "examples/reti/stakingPool.algo.ts:991", + "teal": 4064, + "source": "examples/reti/stakingPool.algo.ts:992", "pc": [ + 3769, 3770 ] }, { - "teal": 4064, - "source": "examples/reti/stakingPool.algo.ts:991", + "teal": 4065, + "source": "examples/reti/stakingPool.algo.ts:992", "pc": [ - 3771, - 3772 + 3771 ] }, { - "teal": 4068, + "teal": 4066, "source": "examples/reti/stakingPool.algo.ts:992", "pc": [ - 3773, - 3774 + 3772 ] }, { - "teal": 4069, + "teal": 4067, "source": "examples/reti/stakingPool.algo.ts:992", "pc": [ - 3775 + 3773, + 3774 ] }, { - "teal": 4070, - "source": "examples/reti/stakingPool.algo.ts:992", + "teal": 4072, + "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ + 3775, 3776 ] }, { - "teal": 4071, - "source": "examples/reti/stakingPool.algo.ts:992", + "teal": 4073, + "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ 3777, 3778 ] }, + { + "teal": 4074, + "source": "examples/reti/stakingPool.algo.ts:993", + "pc": [ + 3779 + ] + }, + { + "teal": 4075, + "source": "examples/reti/stakingPool.algo.ts:993", + "pc": [ + 3780, + 3781 + ] + }, { "teal": 4076, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3779, - 3780 + 3782 ] }, { "teal": 4077, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3781, - 3782 + 3783 ] }, { "teal": 4078, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3783 + 3784 ] }, { "teal": 4079, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3784, 3785 ] }, { - "teal": 4080, + "teal": 4082, "source": "examples/reti/stakingPool.algo.ts:993", + "errorMessage": "currentBinSize as uint64 overflowed 64 bits", "pc": [ 3786 ] }, { - "teal": 4081, + "teal": 4083, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3787 + 3787, + 3788, + 3789, + 3790, + 3791, + 3792, + 3793, + 3794, + 3795, + 3796 ] }, { - "teal": 4082, + "teal": 4084, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3788 + 3797 ] }, { - "teal": 4083, + "teal": 4085, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3789 + 3798 ] }, { "teal": 4086, "source": "examples/reti/stakingPool.algo.ts:993", - "errorMessage": "currentBinSize as uint64 overflowed 64 bits", "pc": [ - 3790 + 3799 ] }, { "teal": 4087, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3791, - 3792, - 3793, - 3794, - 3795, - 3796, - 3797, - 3798, - 3799, 3800 ] }, @@ -17415,35 +17427,35 @@ "teal": 4088, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3801 + 3801, + 3802 ] }, { "teal": 4089, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3802 + 3803 ] }, { "teal": 4090, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3803 + 3804 ] }, { "teal": 4091, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3804 + 3805 ] }, { "teal": 4092, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3805, 3806 ] }, @@ -17465,125 +17477,113 @@ "teal": 4095, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3809 - ] - }, - { - "teal": 4096, - "source": "examples/reti/stakingPool.algo.ts:993", - "pc": [ - 3810 - ] - }, - { - "teal": 4097, - "source": "examples/reti/stakingPool.algo.ts:993", - "pc": [ + 3809, + 3810, 3811 ] }, { - "teal": 4098, - "source": "examples/reti/stakingPool.algo.ts:993", + "teal": 4101, + "source": "examples/reti/stakingPool.algo.ts:994", "pc": [ - 3812 + 3812, + 3813 ] }, { - "teal": 4099, - "source": "examples/reti/stakingPool.algo.ts:993", + "teal": 4102, + "source": "examples/reti/stakingPool.algo.ts:994", "pc": [ - 3813, 3814, 3815 ] }, { - "teal": 4105, + "teal": 4103, "source": "examples/reti/stakingPool.algo.ts:994", "pc": [ - 3816, - 3817 + 3816 ] }, { - "teal": 4106, + "teal": 4104, "source": "examples/reti/stakingPool.algo.ts:994", "pc": [ + 3817, 3818, 3819 ] }, { - "teal": 4107, - "source": "examples/reti/stakingPool.algo.ts:994", + "teal": 4109, + "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ 3820 ] }, { - "teal": 4108, - "source": "examples/reti/stakingPool.algo.ts:994", + "teal": 4110, + "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 3821, - 3822, - 3823 + 3821 ] }, { - "teal": 4113, + "teal": 4111, "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 3824 + 3822, + 3823 ] }, { - "teal": 4114, + "teal": 4112, "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 3825 + 3824 ] }, { - "teal": 4115, + "teal": 4113, "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 3826, - 3827 + 3825, + 3826 ] }, { - "teal": 4116, + "teal": 4114, "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ + 3827, 3828 ] }, { - "teal": 4117, + "teal": 4115, "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 3829, - 3830 + 3829 ] }, { - "teal": 4118, + "teal": 4116, "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 3831, - 3832 + 3830, + 3831 ] }, { - "teal": 4119, + "teal": 4117, "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ + 3832, 3833 ] }, { - "teal": 4120, + "teal": 4118, "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ 3834, @@ -17591,7 +17591,7 @@ ] }, { - "teal": 4121, + "teal": 4119, "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ 3836, @@ -17599,40 +17599,28 @@ ] }, { - "teal": 4122, - "source": "examples/reti/stakingPool.algo.ts:995", - "pc": [ - 3838, - 3839 - ] - }, - { - "teal": 4123, - "source": "examples/reti/stakingPool.algo.ts:995", - "pc": [ - 3840, - 3841 - ] - }, - { - "teal": 4124, + "teal": 4120, "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 3842 + 3838 ] }, { - "teal": 4129, + "teal": 4125, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ - 3843, - 3844 + 3839, + 3840 ] }, { - "teal": 4130, + "teal": 4126, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ + 3841, + 3842, + 3843, + 3844, 3845, 3846, 3847, @@ -17646,36 +17634,55 @@ 3855, 3856, 3857, - 3858, - 3859, - 3860, - 3861, - 3862 + 3858 ] }, { - "teal": 4131, + "teal": 4127, + "source": "examples/reti/stakingPool.algo.ts:997", + "pc": [ + 3859 + ] + }, + { + "teal": 4128, + "source": "examples/reti/stakingPool.algo.ts:997", + "pc": [ + 3860 + ] + }, + { + "teal": 4129, + "source": "examples/reti/stakingPool.algo.ts:997", + "pc": [ + 3861 + ] + }, + { + "teal": 4130, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ + 3862, 3863 ] }, { - "teal": 4132, + "teal": 4131, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ 3864 ] }, { - "teal": 4133, + "teal": 4134, "source": "examples/reti/stakingPool.algo.ts:997", + "errorMessage": "currentBinSize * (365 as uint128) overflowed 128 bits", "pc": [ 3865 ] }, { - "teal": 4134, + "teal": 4135, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ 3866, @@ -17683,139 +17690,139 @@ ] }, { - "teal": 4135, + "teal": 4136, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ 3868 ] }, { - "teal": 4138, + "teal": 4137, "source": "examples/reti/stakingPool.algo.ts:997", - "errorMessage": "currentBinSize * (365 as uint128) overflowed 128 bits", "pc": [ 3869 ] }, { - "teal": 4139, + "teal": 4138, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ - 3870, - 3871 + 3870 ] }, { - "teal": 4140, + "teal": 4139, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ - 3872 + 3871 ] }, { - "teal": 4141, + "teal": 4140, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ + 3872, 3873 ] }, { - "teal": 4142, + "teal": 4141, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ 3874 ] }, { - "teal": 4143, + "teal": 4142, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ 3875 ] }, { - "teal": 4144, + "teal": 4143, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ - 3876, - 3877 + 3876 ] }, { - "teal": 4145, + "teal": 4144, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ + 3877, 3878 ] }, { - "teal": 4146, - "source": "examples/reti/stakingPool.algo.ts:997", + "teal": 4148, + "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 3879 + 3879, + 3880 ] }, { - "teal": 4147, - "source": "examples/reti/stakingPool.algo.ts:997", + "teal": 4149, + "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 3880 + 3881 ] }, { - "teal": 4148, - "source": "examples/reti/stakingPool.algo.ts:997", + "teal": 4150, + "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 3881, - 3882 + 3882, + 3883 ] }, { - "teal": 4152, + "teal": 4151, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 3883, 3884 ] }, { - "teal": 4153, + "teal": 4152, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ 3885 ] }, { - "teal": 4154, + "teal": 4153, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 3886, - 3887 + 3886 ] }, { - "teal": 4155, + "teal": 4154, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ + 3887, 3888 ] }, { - "teal": 4156, + "teal": 4155, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ 3889 ] }, { - "teal": 4157, + "teal": 4158, "source": "examples/reti/stakingPool.algo.ts:998", + "errorMessage": "this.stakeAccumulator.value / currentBinSize overflowed 128 bits", "pc": [ 3890 ] }, { - "teal": 4158, + "teal": 4159, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ 3891, @@ -17823,151 +17830,132 @@ ] }, { - "teal": 4159, + "teal": 4160, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ 3893 ] }, { - "teal": 4162, + "teal": 4161, "source": "examples/reti/stakingPool.algo.ts:998", - "errorMessage": "this.stakeAccumulator.value / currentBinSize overflowed 128 bits", "pc": [ 3894 ] }, { - "teal": 4163, + "teal": 4162, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 3895, - 3896 + 3895 ] }, { - "teal": 4164, + "teal": 4163, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 3897 + 3896 ] }, { - "teal": 4165, + "teal": 4164, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ + 3897, 3898 ] }, { - "teal": 4166, + "teal": 4165, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ 3899 ] }, { - "teal": 4167, + "teal": 4166, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ 3900 ] }, { - "teal": 4168, + "teal": 4167, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 3901, - 3902 + 3901 ] }, { - "teal": 4169, + "teal": 4168, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ + 3902, 3903 ] }, { - "teal": 4170, - "source": "examples/reti/stakingPool.algo.ts:998", - "pc": [ - 3904 - ] - }, - { - "teal": 4171, - "source": "examples/reti/stakingPool.algo.ts:998", + "teal": 4173, + "source": "examples/reti/stakingPool.algo.ts:999", "pc": [ + 3904, 3905 ] }, { - "teal": 4172, - "source": "examples/reti/stakingPool.algo.ts:998", + "teal": 4174, + "source": "examples/reti/stakingPool.algo.ts:999", "pc": [ 3906, 3907 ] }, { - "teal": 4177, + "teal": 4175, "source": "examples/reti/stakingPool.algo.ts:999", "pc": [ - 3908, - 3909 + 3908 ] }, { - "teal": 4178, + "teal": 4176, "source": "examples/reti/stakingPool.algo.ts:999", "pc": [ + 3909, 3910, 3911 ] }, { - "teal": 4179, - "source": "examples/reti/stakingPool.algo.ts:999", - "pc": [ - 3912 - ] - }, - { - "teal": 4180, - "source": "examples/reti/stakingPool.algo.ts:999", - "pc": [ - 3913, - 3914, - 3915 - ] - }, - { - "teal": 4187, + "teal": 4183, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3916, - 3917 + 3912, + 3913 ] }, { - "teal": 4188, + "teal": 4184, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3918 + 3914 ] }, { - "teal": 4189, + "teal": 4185, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3919 + 3915 ] }, { - "teal": 4190, + "teal": 4186, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ + 3916, + 3917, + 3918, + 3919, 3920, 3921, 3922, @@ -17981,179 +17969,179 @@ 3930, 3931, 3932, - 3933, - 3934, - 3935, - 3936, - 3937 + 3933 ] }, { - "teal": 4191, + "teal": 4187, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3938 + 3934 ] }, { - "teal": 4192, + "teal": 4188, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3939, - 3940 + 3935, + 3936 ] }, { - "teal": 4193, + "teal": 4189, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3941 + 3937 ] }, { - "teal": 4194, + "teal": 4190, "source": "examples/reti/stakingPool.algo.ts:1005", "pc": [ - 3942, - 3943 + 3938, + 3939 ] }, { - "teal": 4195, + "teal": 4191, "source": "examples/reti/stakingPool.algo.ts:1005", "pc": [ - 3944, - 3945 + 3940, + 3941 ] }, { - "teal": 4196, + "teal": 4192, "source": "examples/reti/stakingPool.algo.ts:1005", "pc": [ - 3946 + 3942 ] }, { - "teal": 4197, + "teal": 4193, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3947 + 3943 ] }, { - "teal": 4198, + "teal": 4194, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3948 + 3944 ] }, { - "teal": 4199, + "teal": 4195, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3949 + 3945 ] }, { - "teal": 4200, + "teal": 4196, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3950, - 3951 + 3946, + 3947 ] }, { - "teal": 4201, + "teal": 4197, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3952 + 3948 ] }, { - "teal": 4204, + "teal": 4200, "source": "examples/reti/stakingPool.algo.ts:1004", "errorMessage": "(((this.rewardAccumulator.value as uint128) * (10000 as uint128)) / avgStake) *\\n (approxRoundsPerYear / currentBinSize) overflowed 128 bits", "pc": [ - 3953 + 3949 ] }, { - "teal": 4205, + "teal": 4201, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3954, - 3955 + 3950, + 3951 ] }, { - "teal": 4206, + "teal": 4202, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3956 + 3952 ] }, { - "teal": 4207, + "teal": 4203, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3957 + 3953 ] }, { - "teal": 4208, + "teal": 4204, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3958 + 3954 ] }, { - "teal": 4209, + "teal": 4205, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3959 + 3955 ] }, { - "teal": 4210, + "teal": 4206, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3960, - 3961 + 3956, + 3957 ] }, { - "teal": 4211, + "teal": 4207, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3962 + 3958 ] }, { - "teal": 4212, + "teal": 4208, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3963 + 3959 ] }, { - "teal": 4213, + "teal": 4209, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3964 + 3960 ] }, { - "teal": 4214, + "teal": 4210, "source": "examples/reti/stakingPool.algo.ts:1003", "pc": [ - 3965, - 3966 + 3961, + 3962 ] }, { - "teal": 4218, + "teal": 4214, "source": "examples/reti/stakingPool.algo.ts:1007", "pc": [ + 3963, + 3964, + 3965, + 3966, 3967, 3968, 3969, @@ -18167,33 +18155,33 @@ 3977, 3978, 3979, - 3980, - 3981, - 3982, - 3983, - 3984 + 3980 ] }, { - "teal": 4219, + "teal": 4215, "source": "examples/reti/stakingPool.algo.ts:1007", "pc": [ - 3985, - 3986 + 3981, + 3982 ] }, { - "teal": 4224, + "teal": 4220, "source": "examples/reti/stakingPool.algo.ts:1009", "pc": [ - 3987, - 3988 + 3983, + 3984 ] }, { - "teal": 4225, + "teal": 4221, "source": "examples/reti/stakingPool.algo.ts:1009", "pc": [ + 3985, + 3986, + 3987, + 3988, 3989, 3990, 3991, @@ -18207,33 +18195,33 @@ 3999, 4000, 4001, - 4002, - 4003, - 4004, - 4005, - 4006 + 4002 ] }, { - "teal": 4226, + "teal": 4222, "source": "examples/reti/stakingPool.algo.ts:1009", "pc": [ - 4007 + 4003 ] }, { - "teal": 4227, + "teal": 4223, "source": "examples/reti/stakingPool.algo.ts:1009", "pc": [ - 4008, - 4009, - 4010 + 4004, + 4005, + 4006 ] }, { - "teal": 4232, + "teal": 4228, "source": "examples/reti/stakingPool.algo.ts:1010", "pc": [ + 4007, + 4008, + 4009, + 4010, 4011, 4012, 4013, @@ -18247,149 +18235,168 @@ 4021, 4022, 4023, - 4024, + 4024 + ] + }, + { + "teal": 4229, + "source": "examples/reti/stakingPool.algo.ts:1010", + "pc": [ 4025, - 4026, + 4026 + ] + }, + { + "teal": 4236, + "source": "examples/reti/stakingPool.algo.ts:1012", + "pc": [ 4027, 4028 ] }, { - "teal": 4233, - "source": "examples/reti/stakingPool.algo.ts:1010", + "teal": 4237, + "source": "examples/reti/stakingPool.algo.ts:1012", + "pc": [ + 4029 + ] + }, + { + "teal": 4238, + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4029, 4030 ] }, { - "teal": 4240, - "source": "examples/reti/stakingPool.algo.ts:1012", + "teal": 4239, + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ 4031, 4032 ] }, + { + "teal": 4240, + "source": "examples/reti/stakingPool.algo.ts:1013", + "pc": [ + 4033, + 4034 + ] + }, { "teal": 4241, - "source": "examples/reti/stakingPool.algo.ts:1012", + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4033 + 4035 ] }, { "teal": 4242, "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4034 + 4036 ] }, { "teal": 4243, "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4035, - 4036 + 4037, + 4038 ] }, { "teal": 4244, "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4037, - 4038 + 4039 ] }, { "teal": 4245, - "source": "examples/reti/stakingPool.algo.ts:1013", + "source": "examples/reti/stakingPool.algo.ts:1014", "pc": [ - 4039 + 4040, + 4041 ] }, { "teal": 4246, - "source": "examples/reti/stakingPool.algo.ts:1013", + "source": "examples/reti/stakingPool.algo.ts:1014", "pc": [ - 4040 + 4042, + 4043 ] }, { "teal": 4247, - "source": "examples/reti/stakingPool.algo.ts:1013", + "source": "examples/reti/stakingPool.algo.ts:1014", "pc": [ - 4041, - 4042 + 4044 ] }, { "teal": 4248, - "source": "examples/reti/stakingPool.algo.ts:1013", + "source": "examples/reti/stakingPool.algo.ts:1014", "pc": [ - 4043 + 4045, + 4046 ] }, { "teal": 4249, "source": "examples/reti/stakingPool.algo.ts:1014", "pc": [ - 4044, - 4045 + 4047 ] }, { "teal": 4250, - "source": "examples/reti/stakingPool.algo.ts:1014", + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4046, - 4047 + 4048 ] }, { "teal": 4251, - "source": "examples/reti/stakingPool.algo.ts:1014", + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4048 + 4049 ] }, { "teal": 4252, - "source": "examples/reti/stakingPool.algo.ts:1014", + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4049, 4050 ] }, { "teal": 4253, - "source": "examples/reti/stakingPool.algo.ts:1014", - "pc": [ - 4051 - ] - }, - { - "teal": 4254, "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ + 4051, 4052 ] }, { - "teal": 4255, + "teal": 4254, "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ 4053 ] }, { - "teal": 4256, + "teal": 4257, "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": [ 4054 ] }, { - "teal": 4257, + "teal": 4258, "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ 4055, @@ -18397,25 +18404,30 @@ ] }, { - "teal": 4258, + "teal": 4259, "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ 4057 ] }, { - "teal": 4261, + "teal": 4260, "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": [ 4058 ] }, + { + "teal": 4261, + "source": "examples/reti/stakingPool.algo.ts:1013", + "pc": [ + 4059 + ] + }, { "teal": 4262, "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4059, 4060 ] }, @@ -18423,110 +18435,110 @@ "teal": 4263, "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4061 + 4061, + 4062 ] }, { "teal": 4264, "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4062 + 4063 ] }, { "teal": 4265, "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4063 + 4064 ] }, { "teal": 4266, "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4064 + 4065 ] }, { "teal": 4267, - "source": "examples/reti/stakingPool.algo.ts:1013", + "source": "examples/reti/stakingPool.algo.ts:1012", "pc": [ - 4065, 4066 ] }, { - "teal": 4268, - "source": "examples/reti/stakingPool.algo.ts:1013", + "teal": 4272, + "source": "examples/reti/stakingPool.algo.ts:1018", "pc": [ - 4067 + 4067, + 4068, + 4069 ] }, { - "teal": 4269, - "source": "examples/reti/stakingPool.algo.ts:1013", + "teal": 4276, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4068 + 4070, + 4071 ] }, { - "teal": 4270, - "source": "examples/reti/stakingPool.algo.ts:1013", + "teal": 4277, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4069 + 4072, + 4073 ] }, { - "teal": 4271, - "source": "examples/reti/stakingPool.algo.ts:1012", + "teal": 4278, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4070 + 4074 ] }, { - "teal": 4276, - "source": "examples/reti/stakingPool.algo.ts:1018", + "teal": 4279, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4071, - 4072, - 4073 + 4075 ] }, { "teal": 4280, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4074, - 4075 + 4076, + 4077 ] }, { "teal": 4281, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4076, - 4077 + 4078 ] }, { "teal": 4282, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4078 + 4079 ] }, { "teal": 4283, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4079 + 4080 ] }, { "teal": 4284, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4080, 4081 ] }, @@ -18541,32 +18553,27 @@ "teal": 4286, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4083 - ] - }, - { - "teal": 4287, - "source": "examples/reti/stakingPool.algo.ts:1019", - "pc": [ + 4083, 4084 ] }, { - "teal": 4288, + "teal": 4287, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ 4085 ] }, { - "teal": 4289, + "teal": 4290, "source": "examples/reti/stakingPool.algo.ts:1019", + "errorMessage": "(this.totalAlgoStaked.value as uint128) * (this.roundsPerDay.value as uint128) overflowed 128 bits", "pc": [ 4086 ] }, { - "teal": 4290, + "teal": 4291, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ 4087, @@ -18574,116 +18581,109 @@ ] }, { - "teal": 4291, + "teal": 4292, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ 4089 ] }, { - "teal": 4294, + "teal": 4293, "source": "examples/reti/stakingPool.algo.ts:1019", - "errorMessage": "(this.totalAlgoStaked.value as uint128) * (this.roundsPerDay.value as uint128) overflowed 128 bits", "pc": [ 4090 ] }, { - "teal": 4295, + "teal": 4294, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4091, - 4092 + 4091 ] }, { - "teal": 4296, + "teal": 4295, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4093 + 4092 ] }, { - "teal": 4297, + "teal": 4296, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ + 4093, 4094 ] }, { - "teal": 4298, + "teal": 4297, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ 4095 ] }, { - "teal": 4299, + "teal": 4298, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ 4096 ] }, { - "teal": 4300, + "teal": 4299, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4097, - 4098 + 4097 ] }, { - "teal": 4301, + "teal": 4300, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4099 + 4098 ] }, { - "teal": 4302, - "source": "examples/reti/stakingPool.algo.ts:1019", + "teal": 4304, + "source": "examples/reti/stakingPool.algo.ts:1020", "pc": [ + 4099, 4100 ] }, { - "teal": 4303, - "source": "examples/reti/stakingPool.algo.ts:1019", + "teal": 4305, + "source": "examples/reti/stakingPool.algo.ts:1020", "pc": [ 4101 ] }, { - "teal": 4304, - "source": "examples/reti/stakingPool.algo.ts:1019", + "teal": 4306, + "source": "examples/reti/stakingPool.algo.ts:1020", "pc": [ 4102 ] }, { - "teal": 4308, - "source": "examples/reti/stakingPool.algo.ts:1020", + "teal": 4310, + "source": "examples/reti/stakingPool.algo.ts:1021", "pc": [ 4103, 4104 ] }, { - "teal": 4309, - "source": "examples/reti/stakingPool.algo.ts:1020", - "pc": [ - 4105 - ] - }, - { - "teal": 4310, - "source": "examples/reti/stakingPool.algo.ts:1020", + "teal": 4311, + "source": "examples/reti/stakingPool.algo.ts:1021", "pc": [ + 4105, 4106 ] }, { - "teal": 4314, + "teal": 4312, "source": "examples/reti/stakingPool.algo.ts:1021", "pc": [ 4107, @@ -18691,7 +18691,7 @@ ] }, { - "teal": 4315, + "teal": 4313, "source": "examples/reti/stakingPool.algo.ts:1021", "pc": [ 4109, @@ -18699,301 +18699,289 @@ ] }, { - "teal": 4316, + "teal": 4314, "source": "examples/reti/stakingPool.algo.ts:1021", "pc": [ - 4111, - 4112 + 4111 ] }, { - "teal": 4317, + "teal": 4315, "source": "examples/reti/stakingPool.algo.ts:1021", "pc": [ - 4113, - 4114 + 4112 ] }, { - "teal": 4318, + "teal": 4316, "source": "examples/reti/stakingPool.algo.ts:1021", "pc": [ - 4115 + 4113 ] }, { - "teal": 4319, + "teal": 4317, "source": "examples/reti/stakingPool.algo.ts:1021", "pc": [ - 4116 + 4114 ] }, { "teal": 4320, - "source": "examples/reti/stakingPool.algo.ts:1021", - "pc": [ - 4117 - ] - }, - { - "teal": 4321, - "source": "examples/reti/stakingPool.algo.ts:1021", + "source": "examples/reti/stakingPool.algo.ts:991", "pc": [ - 4118 + 4115 ] }, { "teal": 4324, - "source": "examples/reti/stakingPool.algo.ts:991", + "source": "examples/reti/stakingPool.algo.ts:1025", "pc": [ - 4119 + 4116, + 4117, + 4118 ] }, { "teal": 4328, - "source": "examples/reti/stakingPool.algo.ts:1025", + "source": "examples/reti/stakingPool.algo.ts:1026", "pc": [ - 4120, - 4121, - 4122 + 4119, + 4120 ] }, { - "teal": 4332, + "teal": 4329, "source": "examples/reti/stakingPool.algo.ts:1026", "pc": [ + 4121, + 4122, 4123, 4124 ] }, { - "teal": 4333, + "teal": 4330, "source": "examples/reti/stakingPool.algo.ts:1026", "pc": [ - 4125, - 4126, - 4127, - 4128 + 4125 ] }, { - "teal": 4334, - "source": "examples/reti/stakingPool.algo.ts:1026", + "teal": 4331, + "source": "examples/reti/stakingPool.algo.ts:1025", "pc": [ - 4129 + 4126 ] }, { - "teal": 4335, - "source": "examples/reti/stakingPool.algo.ts:1025", + "teal": 4334, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4130 + 4127, + 4128, + 4129, + 4130, + 4131, + 4132 ] }, { - "teal": 4338, + "teal": 4335, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4131, - 4132, 4133, 4134, - 4135, - 4136 + 4135 ] }, { - "teal": 4339, + "teal": 4336, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ + 4136, 4137, 4138, 4139 ] }, { - "teal": 4340, + "teal": 4339, "source": "examples/reti/stakingPool.algo.ts:38", + "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ - 4140, - 4141, - 4142, - 4143 + 4140 ] }, { - "teal": 4343, + "teal": 4342, "source": "examples/reti/stakingPool.algo.ts:38", - "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ - 4144 + 4141, + 4142, + 4143, + 4144, + 4145, + 4146 ] }, { - "teal": 4346, + "teal": 4343, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4145, - 4146, 4147, 4148, 4149, - 4150 + 4150, + 4151, + 4152 ] }, { - "teal": 4347, + "teal": 4344, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4151, - 4152, 4153, 4154, 4155, - 4156 + 4156, + 4157, + 4158 ] }, { - "teal": 4348, + "teal": 4345, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4157, - 4158, 4159, 4160, 4161, - 4162 + 4162, + 4163, + 4164 ] }, { - "teal": 4349, + "teal": 4346, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4163, - 4164, 4165, 4166, 4167, - 4168 + 4168, + 4169, + 4170 ] }, { - "teal": 4350, + "teal": 4347, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4169, - 4170, 4171, 4172, 4173, - 4174 + 4174, + 4175, + 4176 ] }, { - "teal": 4351, + "teal": 4348, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4175, - 4176, 4177, 4178, 4179, - 4180 + 4180, + 4181, + 4182 ] }, { - "teal": 4352, + "teal": 4349, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4181, - 4182, 4183, 4184, 4185, - 4186 + 4186, + 4187, + 4188 ] }, { - "teal": 4353, + "teal": 4350, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4187, - 4188, 4189, 4190, 4191, - 4192 + 4192, + 4193, + 4194 ] }, { - "teal": 4354, + "teal": 4351, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4193, - 4194, 4195, 4196, 4197, - 4198 + 4198, + 4199, + 4200 ] }, { - "teal": 4355, + "teal": 4352, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4199, - 4200, 4201, 4202, 4203, - 4204 + 4204, + 4205, + 4206 ] }, { - "teal": 4356, + "teal": 4353, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4205, - 4206, 4207, 4208, 4209, - 4210 + 4210, + 4211, + 4212 ] }, { - "teal": 4357, + "teal": 4354, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4211, - 4212, 4213, - 4214, - 4215, - 4216 + 4214 ] }, { - "teal": 4358, + "teal": 4355, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4217, - 4218 + 4215, + 4216, + 4217 ] }, { - "teal": 4359, + "teal": 4356, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ + 4218, 4219, 4220, - 4221 - ] - }, - { - "teal": 4360, - "source": "examples/reti/stakingPool.algo.ts:38", - "pc": [ + 4221, 4222, 4223, 4224, @@ -19017,58 +19005,54 @@ 4242, 4243, 4244, - 4245, - 4246, - 4247, - 4248, - 4249 + 4245 ] }, { - "teal": 4363, + "teal": 4359, "source": "examples/reti/stakingPool.algo.ts:38", "errorMessage": "this contract does not implement the given ABI method for call NoOp", "pc": [ - 4250 + 4246 ] }, { - "teal": 4366, + "teal": 4362, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ + 4247, + 4248, + 4249, + 4250, 4251, - 4252, - 4253, - 4254, - 4255, - 4256 + 4252 ] }, { - "teal": 4367, + "teal": 4363, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4257, - 4258, - 4259 + 4253, + 4254, + 4255 ] }, { - "teal": 4368, + "teal": 4364, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4260, - 4261, - 4262, - 4263 + 4256, + 4257, + 4258, + 4259 ] }, { - "teal": 4371, + "teal": 4367, "source": "examples/reti/stakingPool.algo.ts:38", "errorMessage": "this contract does not implement the given ABI method for call UpdateApplication", "pc": [ - 4264 + 4260 ] } ], @@ -19080,7 +19064,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAwIDEgNiA2NCAzMiAxNiAxMjggMjAwIDUgMzAwIDEwMDAgNCAxXzAwMF8wMDAgMl8xMDBfMDAwIDggVE1QTF9uZmRSZWdpc3RyeUFwcElkIDEwMDAwMCA0MDAgMiA0MCA0OApieXRlY2Jsb2NrIDB4IDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgMHg3Mzc0NjE2YjY1NzI3MyAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgMHg3MDZmNmY2YzQ5NjQgMHgwYTgxMDEgMHg3Mzc0NjE2YjY1NjQgMHg3Mzc0NjE2YjY1NDE2MzYzNzU2ZDc1NmM2MTc0NmY3MiAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGIDB4MDAwMDAwMDAwMDAwMDAwMCAweDcyNmY3NTZlNjQ3MzUwNjU3MjQ0NjE3OSAweDYyNjk2ZTUyNmY3NTZlNjQ1Mzc0NjE3Mjc0IDB4NzI2NTc3NjE3MjY0NDE2MzYzNzU2ZDc1NmM2MTc0NmY3MiAweDZlNzU2ZDUzNzQ2MTZiNjU3MjczIDB4NmM2MTczNzQ1MDYxNzk2Zjc1NzQgMHg3NWFmZjYxZCAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQgMHg2ZDY5NmU0NTZlNzQ3Mjc5NTM3NDYxNmI2NSAweDY1NzA2ZjYzNjg0ZTc1NmQ2MjY1NzIgMHg2NTc3NmQ2MSAweDE1MWY3Yzc1IFRNUExfZmVlU2lua0FkZHIgMHhhMmRjNTFiNSAweDU3Mjc2N2QxIDB4NGRmOGQ4NmUgMHgwYzIyNDVlMSAweDAwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNS4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIGxpbmVzIG9mIFRFQUwgYXJlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0ZW1wbGF0ZSB2YXJpYWJsZXMgaW4gc2NyYXRjaCBzbG90cwpieXRlYyAyMiAvLyBUTVBMX2ZlZVNpbmtBZGRyCmludGMgMTUgLy8gVE1QTF9uZmRSZWdpc3RyeUFwcElkCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnRjIDIgLy8gNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbiAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV91cGRhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgdXBkYXRlQXBwbGljYXRpb24KCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHVwZGF0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKdXBkYXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTQKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gQWRkcmVzcy5mcm9tQWRkcmVzcygnTFo0VjJJUlZMQ1hGSks0UkVKVjRUQUdFS0VZVEEyR01SNlRDMjM0NE9CM0wzQUYzTVdYWjZaQUZJUScpLAoJLy8gICAgICAgJ1RlbXBvcmFyeTogY29udHJhY3QgaXMgdXBncmFkZWFibGUgYnV0IG9ubHkgZHVyaW5nIHRlc3RpbmcgYW5kIG9ubHkgZnJvbSBhIGRldmVsb3BtZW50IGFjY291bnQnCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJcHVzaGJ5dGVzIDB4NWU3OTVkMjIzNTU4YWU1NGFiOTEyMjZiYzk4MGM0NTEzMTMwNjhjYzhmYTYyZDZmOWM3MDc2YmQ4MGJiNjVhZiAvLyBhZGRyICJMWjRWMklSVkxDWEZKSzRSRUpWNFRBR0VLRVlUQTJHTVI2VEMyMzQ0T0IzTDNBRjNNV1haNlpBRklRIgoJPT0KCgkvLyBUZW1wb3Jhcnk6IGNvbnRyYWN0IGlzIHVwZ3JhZGVhYmxlIGJ1dCBvbmx5IGR1cmluZyB0ZXN0aW5nIGFuZCBvbmx5IGZyb20gYSBkZXZlbG9wbWVudCBhY2NvdW50Cglhc3NlcnQKCXJldHN1YgoKLy8gY3JlYXRlQXBwbGljYXRpb24odWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCS8vIG1pbkVudHJ5U3Rha2U6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJYnRvaQoKCS8vIHBvb2xJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGNyZWF0aW5nQ29udHJhY3RJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBjcmVhdGVBcHBsaWNhdGlvbih1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBjcmVhdGVBcHBsaWNhdGlvbgoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gY3JlYXRlQXBwbGljYXRpb24oY3JlYXRpbmdDb250cmFjdElkOiB1aW50NjQsIHZhbGlkYXRvcklkOiB1aW50NjQsIHBvb2xJZDogdWludDY0LCBtaW5FbnRyeVN0YWtlOiB1aW50NjQpOiB2b2lkCi8vCi8vIEluaXRpYWxpemUgdGhlIHN0YWtpbmcgcG9vbCB3LyBvd25lciBhbmQgbWFuYWdlciwgYnV0IGNhbiBvbmx5IGJlIGNyZWF0ZWQgYnkgdGhlIHZhbGlkYXRvciBjb250cmFjdC4KLy8gQHBhcmFtIHt1aW50NjR9IGNyZWF0aW5nQ29udHJhY3RJZCAtIGlkIG9mIGNvbnRyYWN0IHRoYXQgY29uc3RydWN0ZWQgdXMgLSB0aGUgdmFsaWRhdG9yIGFwcGxpY2F0aW9uIChzaW5nbGUgZ2xvYmFsIGluc3RhbmNlKQovLyBAcGFyYW0ge3VpbnQ2NH0gdmFsaWRhdG9ySWQgLSBpZCBvZiB2YWxpZGF0b3Igd2UncmUgYSBzdGFraW5nIHBvb2wgb2YKLy8gQHBhcmFtIHt1aW50NjR9IHBvb2xJZCAtIHdoaWNoIHBvb2wgaWQgYXJlIHdlCi8vIEBwYXJhbSB7dWludDY0fSBtaW5FbnRyeVN0YWtlIC0gbWluaW11bSBhbW91bnQgdG8gYmUgaW4gcG9vbCwgYnV0IGFsc28gbWluaW11bSBhbW91bnQgYmFsYW5jZSBjYW4ndCBnbyBiZWxvdyAod2l0aG91dCByZW1vdmluZyBhbGwhKQpjcmVhdGVBcHBsaWNhdGlvbjoKCXByb3RvIDQgMAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTA4CgkvLyBjcmVhdGluZ0NvbnRyYWN0SWQgPT09IDAKCWZyYW1lX2RpZyAtMSAvLyBjcmVhdGluZ0NvbnRyYWN0SWQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglieiAqaWYwX2Vsc2UKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTAKCS8vIGFzc2VydCh2YWxpZGF0b3JJZCA9PT0gMCkKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpbnRjIDAgLy8gMAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTEKCS8vIGFzc2VydChwb29sSWQgPT09IDApCglmcmFtZV9kaWcgLTMgLy8gcG9vbElkOiB1aW50NjQKCWludGMgMCAvLyAwCgk9PQoJYXNzZXJ0CgliICppZjBfZW5kCgoqaWYwX2Vsc2U6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTEzCgkvLyBhc3NlcnQodmFsaWRhdG9ySWQgIT09IDApCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTE0CgkvLyBhc3NlcnQocG9vbElkICE9PSAwKQoJZnJhbWVfZGlnIC0zIC8vIHBvb2xJZDogdWludDY0CglpbnRjIDAgLy8gMAoJIT0KCWFzc2VydAoKKmlmMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTE2CgkvLyBhc3NlcnQobWluRW50cnlTdGFrZSA+PSBNSU5fQUxHT19TVEFLRV9QRVJfUE9PTCwgJ3N0YWtpbmcgcG9vbCBtdXN0IGhhdmUgbWluaW11bSBlbnRyeSBvZiAxIGFsZ28nKQoJZnJhbWVfZGlnIC00IC8vIG1pbkVudHJ5U3Rha2U6IHVpbnQ2NAoJcHVzaGludCAxMDAwMDAwCgk+PQoKCS8vIHN0YWtpbmcgcG9vbCBtdXN0IGhhdmUgbWluaW11bSBlbnRyeSBvZiAxIGFsZ28KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTcKCS8vIHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlID0gY3JlYXRpbmdDb250cmFjdElkCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWZyYW1lX2RpZyAtMSAvLyBjcmVhdGluZ0NvbnRyYWN0SWQ6IHVpbnQ2NAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTE4CgkvLyB0aGlzLnZhbGlkYXRvcklkLnZhbHVlID0gdmFsaWRhdG9ySWQKCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTkKCS8vIHRoaXMucG9vbElkLnZhbHVlID0gcG9vbElkCglieXRlYyA0IC8vICAicG9vbElkIgoJZnJhbWVfZGlnIC0zIC8vIHBvb2xJZDogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjAKCS8vIHRoaXMubnVtU3Rha2Vycy52YWx1ZSA9IDAKCWJ5dGVjIDEzIC8vICAibnVtU3Rha2VycyIKCWludGMgMCAvLyAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjEKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlID0gMAoJYnl0ZWMgNiAvLyAgInN0YWtlZCIKCWludGMgMCAvLyAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjIKCS8vIHRoaXMubWluRW50cnlTdGFrZS52YWx1ZSA9IG1pbkVudHJ5U3Rha2UKCWJ5dGVjIDE4IC8vICAibWluRW50cnlTdGFrZSIKCWZyYW1lX2RpZyAtNCAvLyBtaW5FbnRyeVN0YWtlOiB1aW50NjQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEyMwoJLy8gdGhpcy5sYXN0UGF5b3V0LnZhbHVlID0gZ2xvYmFscy5yb3VuZAoJYnl0ZWMgMTQgLy8gICJsYXN0UGF5b3V0IgoJZ2xvYmFsIFJvdW5kCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjQKCS8vIHRoaXMuZXBvY2hOdW1iZXIudmFsdWUgPSAwCglieXRlYyAxOSAvLyAgImVwb2NoTnVtYmVyIgoJaW50YyAwIC8vIDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEyNgoJLy8gdGhpcy5zZXRSb3VuZHNQZXJEYXkoKQoJY2FsbHN1YiBzZXRSb3VuZHNQZXJEYXkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTI3CgkvLyB0aGlzLmJpblJvdW5kU3RhcnQudmFsdWUgPSBnbG9iYWxzLnJvdW5kIC0gKGdsb2JhbHMucm91bmQgJSB0aGlzLnJvdW5kc1BlckRheS52YWx1ZSkKCWJ5dGVjIDExIC8vICAiYmluUm91bmRTdGFydCIKCWdsb2JhbCBSb3VuZAoJZ2xvYmFsIFJvdW5kCglieXRlYyAxMCAvLyAgInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CgklCgktCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjgKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSA9IDAgYXMgdWludDEyOAoJYnl0ZWMgNyAvLyAgInN0YWtlQWNjdW11bGF0b3IiCglieXRlYyAxNiAvLyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjkKCS8vIHRoaXMucmV3YXJkQWNjdW11bGF0b3IudmFsdWUgPSAwCglieXRlYyAxMiAvLyAgInJld2FyZEFjY3VtdWxhdG9yIgoJaW50YyAwIC8vIDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEzMAoJLy8gdGhpcy53ZWlnaHRlZE1vdmluZ0F2ZXJhZ2UudmFsdWUgPSAwIGFzIHVpbnQxMjgKCWJ5dGVjIDIwIC8vICAiZXdtYSIKCWJ5dGVjIDE2IC8vIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGdhcygpdm9pZAoqYWJpX3JvdXRlX2dhczoKCS8vIGV4ZWN1dGUgZ2FzKCl2b2lkCgljYWxsc3ViIGdhcwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2FzKCk6IHZvaWQKLy8KLy8gZ2FzIGlzIGEgZHVtbXkgbm8tb3AgY2FsbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHBvb2wtdXAgcmVzb3VyY2UgcmVmZXJlbmNlcyBhbmQgb3Bjb2RlIGNvc3QKZ2FzOgoJcHJvdG8gMCAwCglyZXRzdWIKCi8vIGNvc3RGb3JCb3hTdG9yYWdlKHRvdGFsTnVtQnl0ZXM6IHVpbnQ2NCk6IHVpbnQ2NApjb3N0Rm9yQm94U3RvcmFnZToKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNDIKCS8vIHJldHVybiBTQ0JPWF9QRVJCT1ggKyB0b3RhbE51bUJ5dGVzICogU0NCT1hfUEVSQllURTsKCXB1c2hpbnQgMjUwMAoJZnJhbWVfZGlnIC0xIC8vIHRvdGFsTnVtQnl0ZXM6IHVpbnQ2NAoJaW50YyAxNyAvLyA0MDAKCSoKCSsKCXJldHN1YgoKLy8gaW5pdFN0b3JhZ2UocGF5KXZvaWQKKmFiaV9yb3V0ZV9pbml0U3RvcmFnZToKCS8vIG1iclBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludGMgMSAvLyAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnRjIDEgLy8gIHBheQoJPT0KCgkvLyBhcmd1bWVudCAwIChtYnJQYXltZW50KSBmb3IgaW5pdFN0b3JhZ2UgbXVzdCBiZSBhIHBheSB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBpbml0U3RvcmFnZShwYXkpdm9pZAoJY2FsbHN1YiBpbml0U3RvcmFnZQoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gaW5pdFN0b3JhZ2UobWJyUGF5bWVudDogUGF5VHhuKTogdm9pZAovLwovLyBDYWxsZWQgYWZ0ZXIgd2UncmUgY3JlYXRlZCBhbmQgdGhlbiBmdW5kZWQsIHNvIHdlIGNhbiBjcmVhdGUgb3VyIGxhcmdlIHN0YWtlcnMgbGVkZ2VyIHN0b3JhZ2UKLy8gQ2FsbGVyIGhhcyB0byBnZXQgTUJSIGFtb3VudHMgZnJvbSBWYWxpZGF0b3JSZWdpc3RyeSB0byBrbm93IGhvdyBtdWNoIHRvIGZ1bmQgdXMgdG8gY292ZXIgdGhlIGJveCBzdG9yYWdlIGNvc3QKLy8gSWYgdGhpcyBpcyBwb29sIDEgQU5EIHRoZSB2YWxpZGF0b3IgaGFzIHNwZWNpZmllZCBhIHJld2FyZCB0b2tlbiwgb3B0LWluIHRvIHRoYXQgdG9rZW4KLy8gc28gdGhhdCB0aGUgdmFsaWRhdG9yIGNhbiBzZWVkIHRoZSBwb29sIHdpdGggZnV0dXJlIHJld2FyZHMgb2YgdGhhdCB0b2tlbi4KLy8gQHBhcmFtIG1iclBheW1lbnQgcGF5bWVudCBmcm9tIGNhbGxlciB3aGljaCBjb3ZlcnMgbWJyIGluY3JlYXNlIG9mIG5ldyBzdGFraW5nIHBvb2xzJyBzdG9yYWdlCmluaXRTdG9yYWdlOgoJcHJvdG8gMSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gMwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNTMKCS8vIGFzc2VydCghdGhpcy5zdGFrZXJzLmV4aXN0cywgJ3N0YWtpbmcgcG9vbCBhbHJlYWR5IGluaXRpYWxpemVkJykKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCgoJLy8gc3Rha2luZyBwb29sIGFscmVhZHkgaW5pdGlhbGl6ZWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNTYKCS8vIHZhbGlkYXRvckNvbmZpZyA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuZ2V0VmFsaWRhdG9yQ29uZmlnPih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAyIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlYyAxNSAvLyAgbWV0aG9kICJnZXRWYWxpZGF0b3JDb25maWcodWludDY0KSh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KSIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE1NwoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkKCWJ5dGVjIDEgLy8gICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNTgKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXQoJYnl0ZWMgMyAvLyAgInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnRjIDEgLy8gMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglmcmFtZV9idXJ5IDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTYwCgkvLyBpc1Rva2VuRWxpZ2libGUgPSB2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCAhPT0gMAoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTUzIDgKCWJ0b2kKCWludGMgMCAvLyAwCgkhPQoJZnJhbWVfYnVyeSAxIC8vIGlzVG9rZW5FbGlnaWJsZTogYm9vbAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNjEKCS8vIGV4dHJhTUJSID0gaXNUb2tlbkVsaWdpYmxlICYmIHRoaXMucG9vbElkLnZhbHVlID09PSAxID8gQVNTRVRfSE9MRElOR19GRUUgOiAwCglmcmFtZV9kaWcgMSAvLyBpc1Rva2VuRWxpZ2libGU6IGJvb2wKCWR1cAoJYnogKnNraXBfYW5kMAoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJPT0KCSYmCgoqc2tpcF9hbmQwOgoJYnogKnRlcm5hcnkwX2ZhbHNlCglpbnRjIDE2IC8vIDEwMDAwMAoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglpbnRjIDAgLy8gMAoKKnRlcm5hcnkwX2VuZDoKCWZyYW1lX2J1cnkgMiAvLyBleHRyYU1CUjogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE2MgoJLy8gUG9vbEluaXRNYnIgPQoJLy8gICAgICAgQUxHT1JBTkRfQUNDT1VOVF9NSU5fQkFMQU5DRSArCgkvLyAgICAgICBleHRyYU1CUiArCgkvLyAgICAgICB0aGlzLmNvc3RGb3JCb3hTdG9yYWdlKDcgLyogJ3N0YWtlcnMnIG5hbWUgKi8gKyBsZW48U3Rha2VkSW5mbz4oKSAqIE1BWF9TVEFLRVJTX1BFUl9QT09MKQoJaW50YyAxNiAvLyAxMDAwMDAKCWZyYW1lX2RpZyAyIC8vIGV4dHJhTUJSOiB1aW50NjQKCSsKCXB1c2hpbnQgMTI4MDcKCWNhbGxzdWIgY29zdEZvckJveFN0b3JhZ2UKCSsKCWZyYW1lX2J1cnkgMyAvLyBQb29sSW5pdE1icjogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE2OAoJLy8gdmVyaWZ5UGF5VHhuKG1iclBheW1lbnQsIHsgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsIGFtb3VudDogUG9vbEluaXRNYnIgfSkKCS8vIHZlcmlmeSByZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgUmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoibWJyUGF5bWVudCIsImZpZWxkIjoicmVjZWl2ZXIiLCJleHBlY3RlZCI6InRoaXMuYXBwLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9kaWcgMyAvLyBQb29sSW5pdE1icjogdWludDY0Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoibWJyUGF5bWVudCIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiJQb29sSW5pdE1iciJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTY5CgkvLyB0aGlzLnN0YWtlcnMuY3JlYXRlKCkKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJcHVzaGludCAxMjgwMAoJYm94X2NyZWF0ZQoJcG9wCgoJLy8gKmlmMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNzEKCS8vIGlzVG9rZW5FbGlnaWJsZSAmJiB0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMQoJZnJhbWVfZGlnIDEgLy8gaXNUb2tlbkVsaWdpYmxlOiBib29sCglkdXAKCWJ6ICpza2lwX2FuZDEKCWJ5dGVjIDQgLy8gICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaW50YyAxIC8vIDEKCT09CgkmJgoKKnNraXBfYW5kMToKCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTczCgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICAgIHhmZXJBc3NldDogQXNzZXRJRC5mcm9tVWludDY0KHZhbGlkYXRvckNvbmZpZy5yZXdhcmRUb2tlbklkKSwKCS8vICAgICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgICAgYXNzZXRBbW91bnQ6IDAsCgkvLyAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxMSAvLyAgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTc0CgkvLyB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCkKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE1MyA4CglidG9pCglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNzUKCS8vIGFzc2V0UmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTc2CgkvLyBhc3NldEFtb3VudDogMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoqaWYxX2VuZDoKCXJldHN1YgoKLy8gYWRkU3Rha2UocGF5LGFkZHJlc3MpdWludDY0CiphYmlfcm91dGVfYWRkU3Rha2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIxIC8vIDB4MTUxZjdjNzUKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoc3Rha2VyKSBmb3IgYWRkU3Rha2UgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludGMgMSAvLyAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnRjIDEgLy8gIHBheQoJPT0KCgkvLyBhcmd1bWVudCAxIChzdGFrZWRBbW91bnRQYXltZW50KSBmb3IgYWRkU3Rha2UgbXVzdCBiZSBhIHBheSB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhZGRTdGFrZShwYXksYWRkcmVzcyl1aW50NjQKCWNhbGxzdWIgYWRkU3Rha2UKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBhZGRTdGFrZShzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4sIHN0YWtlcjogQWRkcmVzcyk6IHVpbnQ2NAovLwovLyBBZGRzIHN0YWtlIHRvIHRoZSBnaXZlbiBhY2NvdW50LgovLyBDYW4gT05MWSBiZSBjYWxsZWQgYnkgdGhlIHZhbGlkYXRvciBjb250cmFjdCB0aGF0IGNyZWF0ZWQgdXMKLy8gTXVzdCByZWNlaXZlIHBheW1lbnQgZnJvbSB0aGUgdmFsaWRhdG9yIGNvbnRyYWN0IGZvciBhbW91bnQgYmVpbmcgc3Rha2VkLgovLwovLyBAcGFyYW0ge1BheVR4bn0gc3Rha2VkQW1vdW50UGF5bWVudCBwcmlvciBwYXltZW50IGNvbWluZyBmcm9tIHZhbGlkYXRvciBjb250cmFjdCB0byB1cyBvbiBiZWhhbGYgb2Ygc3Rha2VyLgovLyBAcGFyYW0ge0FkZHJlc3N9IHN0YWtlciAtIFRoZSBhY2NvdW50IGFkZGluZyBuZXcgc3Rha2UKLy8gQHRocm93cyB7RXJyb3J9IC0gVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBzdGFraW5nIHBvb2wgaXMgZnVsbC4KLy8gQHJldHVybnMge3VpbnQ2NH0gbmV3ICdlbnRyeSByb3VuZCcgcm91bmQgbnVtYmVyIG9mIHN0YWtlIGFkZAphZGRTdGFrZToKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXBuIDQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTkyCgkvLyBhc3NlcnQodGhpcy5zdGFrZXJzLmV4aXN0cywgJ3N0YWtpbmcgcG9vbCBtdXN0IGJlIGluaXRpYWxpemVkIGZpcnN0JykKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJYm94X2xlbgoJc3dhcAoJcG9wCgoJLy8gc3Rha2luZyBwb29sIG11c3QgYmUgaW5pdGlhbGl6ZWQgZmlyc3QKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxOTUKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkuYWRkcmVzcywKCS8vICAgICAgICdzdGFrZSBjYW4gb25seSBiZSBhZGRlZCB2aWEgdGhlIHZhbGlkYXRvciBjb250cmFjdCcKCS8vICAgICApCgl0eG4gU2VuZGVyCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCT09CgoJLy8gc3Rha2UgY2FuIG9ubHkgYmUgYWRkZWQgdmlhIHRoZSB2YWxpZGF0b3IgY29udHJhY3QKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxOTkKCS8vIGFzc2VydChzdGFrZXIgIT09IGdsb2JhbHMuemVyb0FkZHJlc3MpCglmcmFtZV9kaWcgLTIgLy8gc3Rha2VyOiBBZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjAyCgkvLyB0aGlzLmNoZWNrSWZCaW5DbG9zZWQoKQoJY2FsbHN1YiBjaGVja0lmQmluQ2xvc2VkCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIwNgoJLy8gdmVyaWZ5UGF5VHhuKHN0YWtlZEFtb3VudFBheW1lbnQsIHsKCS8vICAgICAgIHNlbmRlcjogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkuYWRkcmVzcywKCS8vICAgICAgIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgYW1vdW50OiBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzdGFrZWRBbW91bnRQYXltZW50IiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6IkFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzdGFrZWRBbW91bnRQYXltZW50IiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InN0YWtlZEFtb3VudFBheW1lbnQiLCJmaWVsZCI6ImFtb3VudCIsImV4cGVjdGVkIjoic3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIxNQoJLy8gZW50cnlSb3VuZCA9IGdsb2JhbHMucm91bmQgKyBBTEdPUkFORF9TVEFLSU5HX0JMT0NLX0RFTEFZCglnbG9iYWwgUm91bmQKCXB1c2hpbnQgMzIwCgkrCglmcmFtZV9idXJ5IDAgLy8gZW50cnlSb3VuZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIxNgoJLy8gZmlyc3RFbXB0eSA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDEgLy8gZmlyc3RFbXB0eTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIxOAoJLy8gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgKz0gc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQKCWJ5dGVjIDYgLy8gICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CgkrCglieXRlYyA2IC8vICAic3Rha2VkIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjIwCgkvLyByb3VuZHNMZWZ0SW5CaW4gPSB0aGlzLmJpblJvdW5kU3RhcnQudmFsdWUgKyB0aGlzLnJvdW5kc1BlckRheS52YWx1ZSAtIGdsb2JhbHMucm91bmQKCWJ5dGVjIDExIC8vICAiYmluUm91bmRTdGFydCIKCWFwcF9nbG9iYWxfZ2V0CglieXRlYyAxMCAvLyAgInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CgkrCglnbG9iYWwgUm91bmQKCS0KCWZyYW1lX2J1cnkgMiAvLyByb3VuZHNMZWZ0SW5CaW46IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMjEKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSA9CgkvLyAgICAgICB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgKyAoc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQgYXMgdWludDEyOCkgKiAocm91bmRzTGVmdEluQmluIGFzIHVpbnQxMjgpCglieXRlYyA3IC8vICAic3Rha2VBY2N1bXVsYXRvciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJaXRvYgoJZnJhbWVfZGlnIDIgLy8gcm91bmRzTGVmdEluQmluOiB1aW50NjQKCWl0b2IKCWIqCgliKwoJZHVwCgliaXRsZW4KCWludGMgNiAvLyAxMjgKCTw9CgoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlICsgKHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50IGFzIHVpbnQxMjgpICogKHJvdW5kc0xlZnRJbkJpbiBhcyB1aW50MTI4KSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGVjIDggLy8gMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludGMgNSAvLyAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjI1CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGg7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDMgLy8gaTogdWludDY0CgoqZm9yXzA6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjI1CgkvLyBpIDwgdGhpcy5zdGFrZXJzLnZhbHVlLmxlbmd0aAoJZnJhbWVfZGlnIDMgLy8gaTogdWludDY0CglpbnRjIDcgLy8gMjAwCgk8CglieiAqZm9yXzBfZW5kCgoJLy8gKmlmMl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMjYKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgMzAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglpbnRjIDkgLy8gMzAwCgk8CglieiAqaWYyX2VuZAoKCS8vICppZjJfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIyNwoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50YyAyIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGVjIDUgLy8gICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludGMgOCAvLyAgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjI5CgkvLyBjbXBTdGFrZXIgPSBjbG9uZSh0aGlzLnN0YWtlcnMudmFsdWVbaV0pCglmcmFtZV9kaWcgMyAvLyBpOiB1aW50NjQKCWludGMgMyAvLyA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDMgLy8gNjQKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWZyYW1lX2J1cnkgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyAqaWYzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIzMAoJLy8gY21wU3Rha2VyLmFjY291bnQgPT09IHN0YWtlcgoJZnJhbWVfZGlnIDQgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDAgMzIKCWZyYW1lX2RpZyAtMiAvLyBzdGFrZXI6IEFkZHJlc3MKCT09CglieiAqaWYzX2VuZAoKCS8vICppZjNfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIzMgoJLy8gY21wU3Rha2VyLmJhbGFuY2UgKz0gc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQKCWZyYW1lX2RpZyA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50YyA0IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CgkrCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMzMKCS8vIGNtcFN0YWtlci5lbnRyeVJvdW5kID0gZW50cnlSb3VuZAoJZnJhbWVfZGlnIDQgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglwdXNoaW50IDU2IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjM2CgkvLyB0aGlzLnN0YWtlcnMudmFsdWVbaV0gPSBjbXBTdGFrZXIKCWZyYW1lX2RpZyAzIC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWZyYW1lX2RpZyA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYnl0ZWMgMiAvLyAgInN0YWtlcnMiCgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMzgKCS8vIHJldHVybiBlbnRyeVJvdW5kOwoJZnJhbWVfZGlnIDAgLy8gZW50cnlSb3VuZDogdWludDY0CgliICphZGRTdGFrZSpyZXR1cm4KCippZjNfZW5kOgoJLy8gKmlmNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyNDAKCS8vIGZpcnN0RW1wdHkgPT09IDAgJiYgY21wU3Rha2VyLmFjY291bnQgPT09IGdsb2JhbHMuemVyb0FkZHJlc3MKCWZyYW1lX2RpZyAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglkdXAKCWJ6ICpza2lwX2FuZDIKCWZyYW1lX2RpZyA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAwIDMyCglnbG9iYWwgWmVyb0FkZHJlc3MKCT09CgkmJgoKKnNraXBfYW5kMjoKCWJ6ICppZjRfZW5kCgoJLy8gKmlmNF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjQxCgkvLyBmaXJzdEVtcHR5ID0gaSArIDEKCWZyYW1lX2RpZyAzIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCippZjRfZW5kOgoKKmZvcl8wX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIyNQoJLy8gaSArPSAxCglmcmFtZV9kaWcgMyAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDMgLy8gaTogdWludDY0CgliICpmb3JfMAoKKmZvcl8wX2VuZDoKCS8vICppZjVfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjQ1CgkvLyBmaXJzdEVtcHR5ID09PSAwCglmcmFtZV9kaWcgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmNV9lbmQKCgkvLyAqaWY1X2NvbnNlcXVlbnQKCS8vIFN0YWtpbmcgcG9vbCBmdWxsCgllcnIKCippZjVfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI1MgoJLy8gYXNzZXJ0KHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50ID49IHRoaXMubWluRW50cnlTdGFrZS52YWx1ZSwgJ211c3Qgc3Rha2UgYXQgbGVhc3QgdGhlIG1pbmltdW0gZm9yIHRoaXMgcG9vbCcpCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWJ5dGVjIDE4IC8vICAibWluRW50cnlTdGFrZSIKCWFwcF9nbG9iYWxfZ2V0Cgk+PQoKCS8vIG11c3Qgc3Rha2UgYXQgbGVhc3QgdGhlIG1pbmltdW0gZm9yIHRoaXMgcG9vbAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI1NAoJLy8gYXNzZXJ0KHRoaXMuc3Rha2Vycy52YWx1ZVtmaXJzdEVtcHR5IC0gMV0uYWNjb3VudCA9PT0gZ2xvYmFscy56ZXJvQWRkcmVzcykKCWZyYW1lX2RpZyAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCS0KCWludGMgMyAvLyA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDAgLy8gMAoJKwoJaW50YyA0IC8vIDMyCglieXRlYyAyIC8vICAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9leHRyYWN0CglnbG9iYWwgWmVyb0FkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjU1CgkvLyB0aGlzLnN0YWtlcnMudmFsdWVbZmlyc3RFbXB0eSAtIDFdID0gewoJLy8gICAgICAgYWNjb3VudDogc3Rha2VyLAoJLy8gICAgICAgYmFsYW5jZTogc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQsCgkvLyAgICAgICB0b3RhbFJld2FyZGVkOiAwLAoJLy8gICAgICAgcmV3YXJkVG9rZW5CYWxhbmNlOiAwLAoJLy8gICAgICAgZW50cnlSb3VuZDogZW50cnlSb3VuZCwKCS8vICAgICB9CglmcmFtZV9kaWcgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCWludGMgMSAvLyAxCgktCglpbnRjIDMgLy8gNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJZnJhbWVfZGlnIC0yIC8vIHN0YWtlcjogQWRkcmVzcwoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglpdG9iCgljb25jYXQKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWZyYW1lX2RpZyAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoJaXRvYgoJY29uY2F0CglieXRlYyAyIC8vICAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI2MgoJLy8gdGhpcy5udW1TdGFrZXJzLnZhbHVlICs9IDEKCWJ5dGVjIDEzIC8vICAibnVtU3Rha2VycyIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJKwoJYnl0ZWMgMTMgLy8gICJudW1TdGFrZXJzIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjYzCgkvLyByZXR1cm4gZW50cnlSb3VuZDsKCWZyYW1lX2RpZyAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoKKmFkZFN0YWtlKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDQKCXJldHN1YgoKLy8gcmVtb3ZlU3Rha2UoYWRkcmVzcyx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX3JlbW92ZVN0YWtlOgoJLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMSAoc3Rha2VyKSBmb3IgcmVtb3ZlU3Rha2UgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgcmVtb3ZlU3Rha2UoYWRkcmVzcyx1aW50NjQpdm9pZAoJY2FsbHN1YiByZW1vdmVTdGFrZQoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gcmVtb3ZlU3Rha2Uoc3Rha2VyOiBBZGRyZXNzLCBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gUmVtb3ZlcyBzdGFrZSBvbiBiZWhhbGYgb2YgY2FsbGVyIChyZW1vdmluZyBvd24gc3Rha2UpLiAgSWYgYW55IHRva2VuIHJld2FyZHMgZXhpc3QsIHRob3NlIGFyZSBhbHdheXMgc2VudCBpbgovLyBmdWxsLiBBbHNvIG5vdGlmaWVzIHRoZSB2YWxpZGF0b3IgY29udHJhY3QgZm9yIHRoaXMgcG9vbHMgdmFsaWRhdG9yIG9mIHRoZSBzdGFrZXIgLyBiYWxhbmNlIGNoYW5nZXMuCi8vCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyIC0gYWNjb3VudCB0byByZW1vdmUuICBub3JtYWxseSBzYW1lIGFzIHNlbmRlciwgYnV0IHRoZSB2YWxpZGF0b3Igb3duZXIgb3IgbWFuYWdlciBjYW4gYWxzbyBjYWxsCi8vIHRoaXMgdG8gcmVtb3ZlIHRoZSBzcGVjaWZpZWQgc3Rha2VyIGV4cGxpY2l0bHkuIFRoZSByZW1vdmVkIHN0YWtlIE1VU1Qgb25seSBnbyB0byB0aGUgc3Rha2VyIG9mIGNvdXJzZS4gIFRoaXMgaXMKLy8gc28gYSB2YWxpZGF0b3IgY2FuIHNodXQgZG93biBhIHBvb29sIGFuZCByZWZ1bmQgdGhlIHN0YWtlcnMuICBJdCBjYW4gYWxzbyBiZSB1c2VkIHRvIGtpY2sgb3V0IHN0YWtlcnMgd2hvIG5vIGxvbmdlcgovLyBtZWV0IHRoZSBnYXRpbmcgcmVxdWlyZW1lbnRzIChkZXRlcm1pbmVkIGJ5IHRoZSBub2RlIGRhZW1vbikuCi8vIEBwYXJhbSB7dWludDY0fSBhbW91bnRUb1Vuc3Rha2UgLSBUaGUgYW1vdW50IG9mIHN0YWtlIHRvIGJlIHJlbW92ZWQuICBTcGVjaWZ5IDAgdG8gcmVtb3ZlIGFsbCBzdGFrZS4KLy8gQHRocm93cyB7RXJyb3J9IElmIHRoZSBhY2NvdW50IGhhcyBpbnN1ZmZpY2llbnQgYmFsYW5jZSBvciBpZiB0aGUgYWNjb3VudCBpcyBub3QgZm91bmQuCnJlbW92ZVN0YWtlOgoJcHJvdG8gMiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gNgoKCS8vICppZjZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjgwCgkvLyBzdGFrZXIgIT09IHRoaXMudHhuLnNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJdHhuIFNlbmRlcgoJIT0KCWJ6ICppZjZfZW5kCgoJLy8gKmlmNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjgxCgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIHRoaXMuaXNPd25lck9yTWFuYWdlckNhbGxlcigpLAoJLy8gICAgICAgICAnSWYgc3Rha2VyIGlzIG5vdCBzZW5kZXIgaW4gcmVtb3ZlU3Rha2UgY2FsbCwgdGhlbiBzZW5kZXIgTVVTVCBiZSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcicKCS8vICAgICAgICkKCWNhbGxzdWIgaXNPd25lck9yTWFuYWdlckNhbGxlcgoKCS8vIElmIHN0YWtlciBpcyBub3Qgc2VuZGVyIGluIHJlbW92ZVN0YWtlIGNhbGwsIHRoZW4gc2VuZGVyIE1VU1QgYmUgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3IKCWFzc2VydAoKKmlmNl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Mjg3CgkvLyB0aGlzLmNoZWNrSWZCaW5DbG9zZWQoKQoJY2FsbHN1YiBjaGVja0lmQmluQ2xvc2VkCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI4OQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8xOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI4OQoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50YyA3IC8vIDIwMAoJPAoJYnogKmZvcl8xX2VuZAoKCS8vICppZjdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjkwCgkvLyBnbG9iYWxzLm9wY29kZUJ1ZGdldCA8IDMwMAoJZ2xvYmFsIE9wY29kZUJ1ZGdldAoJaW50YyA5IC8vIDMwMAoJPAoJYnogKmlmN19lbmQKCgkvLyAqaWY3X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyOTEKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyA1IC8vICAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnRjIDggLy8gIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjdfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI5MwoJLy8gY21wU3Rha2VyID0gY2xvbmUodGhpcy5zdGFrZXJzLnZhbHVlW2ldKQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnRjIDMgLy8gNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAzIC8vIDY0CglieXRlYyAyIC8vICAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gKmlmOF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyOTQKCS8vIGNtcFN0YWtlci5hY2NvdW50ID09PSBzdGFrZXIKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAwIDMyCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgk9PQoJYnogKmlmOF9lbmQKCgkvLyAqaWY4X2NvbnNlcXVlbnQKCS8vICppZjlfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Mjk1CgkvLyBhbW91bnRUb1Vuc3Rha2UgPT09IDAKCWZyYW1lX2RpZyAtMiAvLyBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglieiAqaWY5X2VuZAoKCS8vICppZjlfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI5NwoJLy8gYW1vdW50VG9VbnN0YWtlID0gY21wU3Rha2VyLmJhbGFuY2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9idXJ5IC0yIC8vIGFtb3VudFRvVW5zdGFrZTogdWludDY0CgoqaWY5X2VuZDoKCS8vICppZjEwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI5OQoJLy8gY21wU3Rha2VyLmJhbGFuY2UgPCBhbW91bnRUb1Vuc3Rha2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCTwKCWJ6ICppZjEwX2VuZAoKCS8vICppZjEwX2NvbnNlcXVlbnQKCS8vIEluc3VmZmljaWVudCBiYWxhbmNlCgllcnIKCippZjEwX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMDIKCS8vIGNtcFN0YWtlci5iYWxhbmNlIC09IGFtb3VudFRvVW5zdGFrZQoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglpbnRjIDQgLy8gIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCS0KCWl0b2IKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMwMwoJLy8gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgLT0gYW1vdW50VG9VbnN0YWtlCglieXRlYyA2IC8vICAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMiAvLyBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NAoJLQoJYnl0ZWMgNiAvLyAgInN0YWtlZCIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMwNQoJLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoKCS8vICppZjExX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMwNgoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSA+IDAKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglpbnRjIDAgLy8gMAoJPgoJYnogKmlmMTFfZW5kCgoJLy8gKmlmMTFfY29uc2VxdWVudAoJLy8gKmlmMTJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzA4CgkvLyB0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMQoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJPT0KCWJ6ICppZjEyX2Vsc2UKCgkvLyAqaWYxMl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzA5CgkvLyB2YWxpZGF0b3JDb25maWcgPSBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLmdldFZhbGlkYXRvckNvbmZpZz4oewoJLy8gICAgICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgICAgICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdLAoJLy8gICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZWMgMTUgLy8gIG1ldGhvZCAiZ2V0VmFsaWRhdG9yQ29uZmlnKHVpbnQ2NCkodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMTAKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzExCgkvLyBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50YyAxIC8vIDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJZnJhbWVfYnVyeSAzIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMxNwoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgICAgICAgICB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCksCgkvLyAgICAgICAgICAgICAgIGFzc2V0UmVjZWl2ZXI6IHN0YWtlciwKCS8vICAgICAgICAgICAgICAgYXNzZXRBbW91bnQ6IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UsCgkvLyAgICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxMSAvLyAgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzE4CgkvLyB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCkKCWZyYW1lX2RpZyAzIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE1MyA4CglidG9pCglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMTkKCS8vIGFzc2V0UmVjZWl2ZXI6IHN0YWtlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMyMAoJLy8gYXNzZXRBbW91bnQ6IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMjIKCS8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCA9IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglmcmFtZV9idXJ5IDIgLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzIzCgkvLyBjbXBTdGFrZXIucmV3YXJkVG9rZW5CYWxhbmNlID0gMAoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglieXRlYyA5IC8vIDB4MDAwMDAwMDAwMDAwMDAwMAoJcmVwbGFjZTIgNDgKCWZyYW1lX2J1cnkgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWIgKmlmMTJfZW5kCgoqaWYxMl9lbHNlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMyOAoJLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkID0gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZQoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWZyYW1lX2J1cnkgMiAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMjkKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPSAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0OAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKKmlmMTJfZW5kOgoKKmlmMTFfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMzNAoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgIGNtcFN0YWtlci5iYWxhbmNlID09PSAwIHx8IGNtcFN0YWtlci5iYWxhbmNlID49IHRoaXMubWluRW50cnlTdGFrZS52YWx1ZSwKCS8vICAgICAgICAgICAnY2Fubm90IHJlZHVjZSBiYWxhbmNlIGJlbG93IG1pbmltdW0gYWxsb3dlZCBzdGFrZSB1bmxlc3MgYWxsIGlzIHJlbW92ZWQnCgkvLyAgICAgICAgICkKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglpbnRjIDAgLy8gMAoJPT0KCWR1cAoJYm56ICpza2lwX29yMAoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWJ5dGVjIDE4IC8vICAibWluRW50cnlTdGFrZSIKCWFwcF9nbG9iYWxfZ2V0Cgk+PQoJfHwKCipza2lwX29yMDoKCS8vIGNhbm5vdCByZWR1Y2UgYmFsYW5jZSBiZWxvdyBtaW5pbXVtIGFsbG93ZWQgc3Rha2UgdW5sZXNzIGFsbCBpcyByZW1vdmVkCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQyCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICAgICAgYW1vdW50OiBhbW91bnRUb1Vuc3Rha2UsCgkvLyAgICAgICAgICAgcmVjZWl2ZXI6IHN0YWtlciwKCS8vICAgICAgICAgICBub3RlOiAndW5zdGFrZWQnLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxIC8vICBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQzCgkvLyBhbW91bnQ6IGFtb3VudFRvVW5zdGFrZQoJZnJhbWVfZGlnIC0yIC8vIGFtb3VudFRvVW5zdGFrZTogdWludDY0CglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNDQKCS8vIHJlY2VpdmVyOiBzdGFrZXIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQ1CgkvLyBub3RlOiAndW5zdGFrZWQnCglwdXNoYnl0ZXMgMHg3NTZlNzM3NDYxNmI2NTY0IC8vICJ1bnN0YWtlZCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQ3CgkvLyBzdGFrZXJSZW1vdmVkID0gZmFsc2UKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDQgLy8gc3Rha2VyUmVtb3ZlZDogYm9vbAoKCS8vICppZjEzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM0OAoJLy8gY21wU3Rha2VyLmJhbGFuY2UgPT09IDAKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppZjEzX2VuZAoKCS8vICppZjEzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTAKCS8vIHRoaXMubnVtU3Rha2Vycy52YWx1ZSAtPSAxCglieXRlYyAxMyAvLyAgIm51bVN0YWtlcnMiCglhcHBfZ2xvYmFsX2dldAoJaW50YyAxIC8vIDEKCS0KCWJ5dGVjIDEzIC8vICAibnVtU3Rha2VycyIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM1MQoJLy8gY21wU3Rha2VyLmFjY291bnQgPSBnbG9iYWxzLnplcm9BZGRyZXNzCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWludGMgMCAvLyAwCglnbG9iYWwgWmVyb0FkZHJlc3MKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM1MgoJLy8gY21wU3Rha2VyLnRvdGFsUmV3YXJkZWQgPSAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0MAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTMKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPSAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0OAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTQKCS8vIHN0YWtlclJlbW92ZWQgPSB0cnVlCglpbnRjIDEgLy8gMQoJZnJhbWVfYnVyeSA0IC8vIHN0YWtlclJlbW92ZWQ6IGJvb2wKCippZjEzX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTcKCS8vIHRoaXMuc3Rha2Vycy52YWx1ZVtpXSA9IGNtcFN0YWtlcgoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnRjIDMgLy8gNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglieXRlYyAyIC8vICAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM1OQoJLy8gcm91bmRzTGVmdEluQmluID0gdGhpcy5iaW5Sb3VuZFN0YXJ0LnZhbHVlICsgdGhpcy5yb3VuZHNQZXJEYXkudmFsdWUgLSBnbG9iYWxzLnJvdW5kCglieXRlYyAxMSAvLyAgImJpblJvdW5kU3RhcnQiCglhcHBfZ2xvYmFsX2dldAoJYnl0ZWMgMTAgLy8gICJyb3VuZHNQZXJEYXkiCglhcHBfZ2xvYmFsX2dldAoJKwoJZ2xvYmFsIFJvdW5kCgktCglmcmFtZV9idXJ5IDUgLy8gcm91bmRzTGVmdEluQmluOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzYwCgkvLyBzdWJ0cmFjdEFtb3VudDogdWludDEyOCA9IChhbW91bnRUb1Vuc3Rha2UgYXMgdWludDEyOCkgKiAocm91bmRzTGVmdEluQmluIGFzIHVpbnQxMjgpCglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyA1IC8vIHJvdW5kc0xlZnRJbkJpbjogdWludDY0CglpdG9iCgliKgoJZHVwCgliaXRsZW4KCWludGMgNiAvLyAxMjgKCTw9CgoJLy8gKGFtb3VudFRvVW5zdGFrZSBhcyB1aW50MTI4KSAqIChyb3VuZHNMZWZ0SW5CaW4gYXMgdWludDEyOCkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlYyA4IC8vIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnRjIDUgLy8gMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWZyYW1lX2J1cnkgNiAvLyBzdWJ0cmFjdEFtb3VudDogdWludDEyOAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNjEKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSA9IHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSAtIHN1YnRyYWN0QW1vdW50CglieXRlYyA3IC8vICAic3Rha2VBY2N1bXVsYXRvciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyA2IC8vIHN1YnRyYWN0QW1vdW50OiB1aW50MTI4CgliLQoJZHVwCgliaXRsZW4KCWludGMgNiAvLyAxMjgKCTw9CgoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlIC0gc3VidHJhY3RBbW91bnQgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlYyA4IC8vIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnRjIDUgLy8gMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM2NgoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5zdGFrZVJlbW92ZWQ+KHsKCS8vICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgICAgICBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgICAgICB7IGlkOiB0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCBwb29sSWQ6IHRoaXMucG9vbElkLnZhbHVlLCBwb29sQXBwSWQ6IHRoaXMuYXBwLmlkIH0sCgkvLyAgICAgICAgICAgICBzdGFrZXIsCgkvLyAgICAgICAgICAgICBhbW91bnRUb1Vuc3Rha2UsCgkvLyAgICAgICAgICAgICBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQsCgkvLyAgICAgICAgICAgICBzdGFrZXJSZW1vdmVkLAoJLy8gICAgICAgICAgIF0sCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWJ5dGVjIDIzIC8vICBtZXRob2QgInN0YWtlUmVtb3ZlZCgodWludDY0LHVpbnQ2NCx1aW50NjQpLGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNjcKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzY4CgkvLyBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgICAgICB7IGlkOiB0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCBwb29sSWQ6IHRoaXMucG9vbElkLnZhbHVlLCBwb29sQXBwSWQ6IHRoaXMuYXBwLmlkIH0sCgkvLyAgICAgICAgICAgICBzdGFrZXIsCgkvLyAgICAgICAgICAgICBhbW91bnRUb1Vuc3Rha2UsCgkvLyAgICAgICAgICAgICBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQsCgkvLyAgICAgICAgICAgICBzdGFrZXJSZW1vdmVkLAoJLy8gICAgICAgICAgIF0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglieXRlYyA0IC8vICAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWNvbmNhdAoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJY29uY2F0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMiAvLyBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAyIC8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDQgLy8gc3Rha2VyUmVtb3ZlZDogYm9vbAoJYnl0ZWMgMjcgLy8gMHgwMAoJaW50YyAwIC8vIDAKCXVuY292ZXIgMgoJc2V0Yml0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Mzc2CgkvLyByZXR1cm47CglyZXRzdWIKCippZjhfZW5kOgoKKmZvcl8xX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI4OQoJLy8gaSArPSAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgliICpmb3JfMQoKKmZvcl8xX2VuZDoKCS8vIGFjY291bnQgbm90IGZvdW5kCgllcnIKCXJldHN1YgoKLy8gY2xhaW1Ub2tlbnMoKXZvaWQKKmFiaV9yb3V0ZV9jbGFpbVRva2VuczoKCS8vIGV4ZWN1dGUgY2xhaW1Ub2tlbnMoKXZvaWQKCWNhbGxzdWIgY2xhaW1Ub2tlbnMKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGNsYWltVG9rZW5zKCk6IHZvaWQKLy8KLy8gQ2xhaW1zIGFsbCB0aGUgYXZhaWxhYmxlIHJld2FyZCB0b2tlbnMgYSBzdGFrZXIgaGFzIGF2YWlsYWJsZSwgc2VuZGluZyB0aGVpciBlbnRpcmUgYmFsYW5jZSB0byB0aGUgc3Rha2VyIGZyb20KLy8gcG9vbCAxIChlaXRoZXIgZGlyZWN0bHksIG9yIHZpYSB2YWxpZGF0b3ItPnBvb2wxIHRvIHBheSBpdCBvdXQpCi8vIEFsc28gbm90aWZpZXMgdGhlIHZhbGlkYXRvciBjb250cmFjdCBmb3IgdGhpcyBwb29scyB2YWxpZGF0b3Igb2YgdGhlIHN0YWtlciAvIGJhbGFuY2UgY2hhbmdlcy4KY2xhaW1Ub2tlbnM6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwbiA0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5MQoJLy8gc3Rha2VyID0gdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCglmcmFtZV9idXJ5IDAgLy8gc3Rha2VyOiBhZGRyZXNzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5MwoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoKKmZvcl8yOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5MwoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50YyA3IC8vIDIwMAoJPAoJYnogKmZvcl8yX2VuZAoKCS8vICppZjE0X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5NAoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAzMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludGMgOSAvLyAzMDAKCTwKCWJ6ICppZjE0X2VuZAoKCS8vICppZjE0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozOTUKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyA1IC8vICAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnRjIDggLy8gIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjE0X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozOTcKCS8vIGNtcFN0YWtlciA9IGNsb25lKHRoaXMuc3Rha2Vycy52YWx1ZVtpXSkKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMyAvLyA2NAoJYnl0ZWMgMiAvLyAgInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vICppZjE1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5OAoJLy8gY21wU3Rha2VyLmFjY291bnQgPT09IHN0YWtlcgoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDAgMzIKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJPT0KCWJ6ICppZjE1X2VuZAoKCS8vICppZjE1X2NvbnNlcXVlbnQKCS8vICppZjE2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5OQoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSA9PT0gMAoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmMTZfZW5kCgoJLy8gKmlmMTZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQwMAoJLy8gcmV0dXJuOwoJcmV0c3ViCgoqaWYxNl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDAyCgkvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQgPSAwCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAzIC8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZDogdWludDY0CgoJLy8gKmlmMTdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDA0CgkvLyB0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMQoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJPT0KCWJ6ICppZjE3X2Vsc2UKCgkvLyAqaWYxN19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDA1CgkvLyB2YWxpZGF0b3JDb25maWcgPSBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLmdldFZhbGlkYXRvckNvbmZpZz4oewoJLy8gICAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZWMgMTUgLy8gIG1ldGhvZCAiZ2V0VmFsaWRhdG9yQ29uZmlnKHVpbnQ2NCkodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MDYKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDA3CgkvLyBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50YyAxIC8vIDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJZnJhbWVfYnVyeSA0IC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQxMgoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgICAgICAgeGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLnJld2FyZFRva2VuSWQpLAoJLy8gICAgICAgICAgICAgYXNzZXRSZWNlaXZlcjogc3Rha2VyLAoJLy8gICAgICAgICAgICAgYXNzZXRBbW91bnQ6IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UsCgkvLyAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMTEgLy8gIGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQxMwoJLy8geGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLnJld2FyZFRva2VuSWQpCglmcmFtZV9kaWcgNCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNTMgOAoJYnRvaQoJaXR4bl9maWVsZCBYZmVyQXNzZXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDE0CgkvLyBhc3NldFJlY2VpdmVyOiBzdGFrZXIKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQxNQoJLy8gYXNzZXRBbW91bnQ6IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UKCWZyYW1lX2RpZyAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MTcKCS8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCA9IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UKCWZyYW1lX2RpZyAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglmcmFtZV9idXJ5IDMgLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDE4CgkvLyBjbXBTdGFrZXIucmV3YXJkVG9rZW5CYWxhbmNlID0gMAoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglieXRlYyA5IC8vIDB4MDAwMDAwMDAwMDAwMDAwMAoJcmVwbGFjZTIgNDgKCWZyYW1lX2J1cnkgMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWIgKmlmMTdfZW5kCgoqaWYxN19lbHNlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQyMwoJLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkID0gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZQoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MjQKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPSAwCglmcmFtZV9kaWcgMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0OAoJZnJhbWVfYnVyeSAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKKmlmMTdfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQyOAoJLy8gdGhpcy5zdGFrZXJzLnZhbHVlW2ldID0gY21wU3Rha2VyCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWludGMgMyAvLyA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglmcmFtZV9kaWcgMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDMzCgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLnN0YWtlUmVtb3ZlZD4oewoJLy8gICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgICAgIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgICAgIHsgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfSwKCS8vICAgICAgICAgICAgIHN0YWtlciwKCS8vICAgICAgICAgICAgIDAsIC8vIG5vIGFsZ28gcmVtb3ZlZAoJLy8gICAgICAgICAgICAgYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkLAoJLy8gICAgICAgICAgICAgZmFsc2UsIC8vIHN0YWtlciBpc24ndCBiZWluZyByZW1vdmVkLgoJLy8gICAgICAgICAgIF0sCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWJ5dGVjIDIzIC8vICBtZXRob2QgInN0YWtlUmVtb3ZlZCgodWludDY0LHVpbnQ2NCx1aW50NjQpLGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MzQKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDM1CgkvLyBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgICAgICB7IGlkOiB0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCBwb29sSWQ6IHRoaXMucG9vbElkLnZhbHVlLCBwb29sQXBwSWQ6IHRoaXMuYXBwLmlkIH0sCgkvLyAgICAgICAgICAgICBzdGFrZXIsCgkvLyAgICAgICAgICAgICAwLCAvLyBubyBhbGdvIHJlbW92ZWQKCS8vICAgICAgICAgICAgIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCwKCS8vICAgICAgICAgICAgIGZhbHNlLCAvLyBzdGFrZXIgaXNuJ3QgYmVpbmcgcmVtb3ZlZC4KCS8vICAgICAgICAgICBdCglieXRlYyAzIC8vICAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCgljb25jYXQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWNvbmNhdAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDMgLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglpbnRjIDAgLy8gMAoJYnl0ZWMgMjcgLy8gMHgwMAoJaW50YyAwIC8vIDAKCXVuY292ZXIgMgoJc2V0Yml0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDQzCgkvLyByZXR1cm47CglyZXRzdWIKCippZjE1X2VuZDoKCipmb3JfMl9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozOTMKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzIKCipmb3JfMl9lbmQ6CgkvLyBhY2NvdW50IG5vdCBmb3VuZAoJZXJyCglyZXRzdWIKCi8vIGdldFN0YWtlckluZm8oYWRkcmVzcykoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfZ2V0U3Rha2VySW5mbzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMjEgLy8gMHgxNTFmN2M3NQoKCS8vIHN0YWtlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChzdGFrZXIpIGZvciBnZXRTdGFrZXJJbmZvIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGdldFN0YWtlckluZm8oYWRkcmVzcykoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgljYWxsc3ViIGdldFN0YWtlckluZm8KCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnZXRTdGFrZXJJbmZvKHN0YWtlcjogQWRkcmVzcyk6IFN0YWtlZEluZm8KLy8KLy8gUmV0cmlldmVzIHRoZSBzdGFrZWQgaW5mb3JtYXRpb24gZm9yIGEgZ2l2ZW4gc3Rha2VyLgovLwovLyBAcGFyYW0ge0FkZHJlc3N9IHN0YWtlciAtIFRoZSBhZGRyZXNzIG9mIHRoZSBzdGFrZXIuCi8vIEByZXR1cm5zIHtTdGFrZWRJbmZvfSAtIFRoZSBzdGFrZWQgaW5mb3JtYXRpb24gZm9yIHRoZSBnaXZlbiBzdGFrZXIuCi8vIEB0aHJvd3Mge0Vycm9yfSAtIElmIHRoZSBzdGFrZXIncyBhY2NvdW50IGlzIG5vdCBmb3VuZC4KZ2V0U3Rha2VySW5mbzoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ1OAoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8zOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ1OAoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50YyA3IC8vIDIwMAoJPAoJYnogKmZvcl8zX2VuZAoKCS8vICppZjE4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ1OQoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAyMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludGMgNyAvLyAyMDAKCTwKCWJ6ICppZjE4X2VuZAoKCS8vICppZjE4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0NjAKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyA1IC8vICAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnRjIDggLy8gIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjE4X2VuZDoKCS8vICppZjE5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ2MgoJLy8gdGhpcy5zdGFrZXJzLnZhbHVlW2ldLmFjY291bnQgPT09IHN0YWtlcgoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnRjIDMgLy8gNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAwIC8vIDAKCSsKCWludGMgNCAvLyAzMgoJYnl0ZWMgMiAvLyAgInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJPT0KCWJ6ICppZjE5X2VuZAoKCS8vICppZjE5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0NjMKCS8vIHJldHVybiB0aGlzLnN0YWtlcnMudmFsdWVbaV07CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludGMgMyAvLyA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDMgLy8gNjQKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWIgKmdldFN0YWtlckluZm8qcmV0dXJuCgoqaWYxOV9lbmQ6CgoqZm9yXzNfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDU4CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKmZvcl8zCgoqZm9yXzNfZW5kOgoJLy8gYWNjb3VudCBub3QgZm91bmQKCWVycgoKKmdldFN0YWtlckluZm8qcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIHBheVRva2VuUmV3YXJkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfcGF5VG9rZW5SZXdhcmQ6CgkvLyBhbW91bnRUb1NlbmQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIHJld2FyZFRva2VuOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMiAoc3Rha2VyKSBmb3IgcGF5VG9rZW5SZXdhcmQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgcGF5VG9rZW5SZXdhcmQoYWRkcmVzcyx1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgcGF5VG9rZW5SZXdhcmQKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHBheVRva2VuUmV3YXJkKHN0YWtlcjogQWRkcmVzcywgcmV3YXJkVG9rZW46IHVpbnQ2NCwgYW1vdW50VG9TZW5kOiB1aW50NjQpOiB2b2lkCi8vCi8vIFtJbnRlcm5hbCBwcm90b2NvbCBtZXRob2RdIFJlbW92ZSBhIHNwZWNpZmllZCBhbW91bnQgb2YgJ2NvbW11bml0eSB0b2tlbicgcmV3YXJkcyBmb3IgYSBzdGFrZXIuCi8vIFRoaXMgY2FuIE9OTFkgYmUgY2FsbGVkIGJ5IG91ciB2YWxpZGF0b3IgYW5kIG9ubHkgaWYgd2UncmUgcG9vbCAxIC0gd2l0aCB0aGUgdG9rZW4uCi8vIE5vdGU6IHRoaXMgY2FuIGFsc28gYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBhcyBwYXJ0IG9mIE9XTkVSIHdhbnRpbmcgdG8gc2VuZCB0aGUgcmV3YXJkIHRva2VucwovLyBzb21ld2hlcmUgZWxzZSAoaWUgaWYgdGhleSdyZSBzdW5zZXR0aW5nIHRoZWlyIHZhbGlkYXRvciBhbmQgbmVlZCB0aGUgcmV3YXJkIHRva2VucyBiYWNrKS4KLy8gSXQncyB1cCB0byB0aGUgdmFsaWRhdG9yIHRvIGVuc3VyZSB0aGF0IHRoZSBiYWxhbmNlIGluIHJld2FyZFRva2VuSGVsZEJhY2sgaXMgaG9ub3JlZC4KLy8gQHBhcmFtIHN0YWtlciAtIHRoZSBzdGFrZXIgYWNjb3VudCB0byBzZW5kIHJld2FyZHMgdG8KLy8gQHBhcmFtIHJld2FyZFRva2VuIC0gaWQgb2YgcmV3YXJkIHRva2VuICh0byBhdm9pZCByZS1lbnRyYW5jeSBpbiBjYWxsaW5nIHZhbGlkYXRvciBiYWNrIHRvIGdldCBpZCkKLy8gQHBhcmFtIGFtb3VudFRvU2VuZCAtIGFtb3VudCB0byBzZW5kIHRoZSBzdGFrZXIgKHRoZXJlIGlzIHNpZ25pZmljYW50IHRydXN0IGhlcmUoISkgLSBhbHNvIHdoeSBvbmx5IHZhbGlkYXRvciBjYW4gY2FsbCB1cwpwYXlUb2tlblJld2FyZDoKCXByb3RvIDMgMAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0ODEKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkuYWRkcmVzcywKCS8vICAgICAgICd0aGlzIGNhbiBvbmx5IGJlIGNhbGxlZCB2aWEgdGhlIHZhbGlkYXRvciBjb250cmFjdCcKCS8vICAgICApCgl0eG4gU2VuZGVyCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCT09CgoJLy8gdGhpcyBjYW4gb25seSBiZSBjYWxsZWQgdmlhIHRoZSB2YWxpZGF0b3IgY29udHJhY3QKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0ODUKCS8vIGFzc2VydCh0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMSwgJ211c3QgYmUgcG9vbCAxIGluIG9yZGVyIHRvIGJlIGNhbGxlZCB0byBwYXkgb3V0IHRva2VuIHJld2FyZHMnKQoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJPT0KCgkvLyBtdXN0IGJlIHBvb2wgMSBpbiBvcmRlciB0byBiZSBjYWxsZWQgdG8gcGF5IG91dCB0b2tlbiByZXdhcmRzCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDg2CgkvLyBhc3NlcnQocmV3YXJkVG9rZW4gIT09IDAsICdjYW4gb25seSBjbGFpbSB0b2tlbiByZXdhcmRzIGZyb20gdmFsaWRhdG9yIHRoYXQgaGFzIHRoZW0nKQoJZnJhbWVfZGlnIC0yIC8vIHJld2FyZFRva2VuOiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoKCS8vIGNhbiBvbmx5IGNsYWltIHRva2VuIHJld2FyZHMgZnJvbSB2YWxpZGF0b3IgdGhhdCBoYXMgdGhlbQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ4OQoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgeGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQocmV3YXJkVG9rZW4pLAoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogc3Rha2VyLAoJLy8gICAgICAgYXNzZXRBbW91bnQ6IGFtb3VudFRvU2VuZCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxMSAvLyAgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDkwCgkvLyB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NChyZXdhcmRUb2tlbikKCWZyYW1lX2RpZyAtMiAvLyByZXdhcmRUb2tlbjogdWludDY0CglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0OTEKCS8vIGFzc2V0UmVjZWl2ZXI6IHN0YWtlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ5MgoJLy8gYXNzZXRBbW91bnQ6IGFtb3VudFRvU2VuZAoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFRvU2VuZDogdWludDY0CglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyB1cGRhdGVBbGdvZFZlcihzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX3VwZGF0ZUFsZ29kVmVyOgoJLy8gYWxnb2RWZXI6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHVwZGF0ZUFsZ29kVmVyKHN0cmluZyl2b2lkCgljYWxsc3ViIHVwZGF0ZUFsZ29kVmVyCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyB1cGRhdGVBbGdvZFZlcihhbGdvZFZlcjogc3RyaW5nKTogdm9pZAovLwovLyBVcGRhdGUgdGhlIChob25vciBzeXN0ZW0pIGFsZ29kIHZlcnNpb24gZm9yIHRoZSBub2RlIGFzc29jaWF0ZWQgdG8gdGhpcyBwb29sLiAgVGhlIG5vZGUgbWFuYWdlbWVudCBkYWVtb24KLy8gc2hvdWxkIGNvbXBhcmUgaXRzIGN1cnJlbnQgbm9kZXMgdmVyc2lvbiB0byB0aGUgdmVyc2lvbiBzdG9yZWQgaW4gZ2xvYmFsIHN0YXRlLCB1cGRhdGluZyB3aGVuIGRpZmZlcmVudC4KLy8gVGhlIHJldGkgbm9kZSBkYWVtb24gY29tcG9zZXMgaXRzIG93biB2ZXJzaW9uIHN0cmluZyB1c2luZyBmb3JtYXQ6Ci8vIHttYWpvcn0ue21pbm9yfS57YnVpbGR9IHticmFuY2h9IFt7Y29tbWl0IGhhc2h9XSwKLy8gaWU6IDMuMjIuMCByZWwvc3RhYmxlIFs2YjUwODk3NV0KLy8gWyBPTkxZIE9XTkVSIE9SIE1BTkFHRVIgQ0FOIENBTEwgXQovLyBAcGFyYW0ge3N0cmluZ30gYWxnb2RWZXIgLSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBhbGdvcmFuZCBub2RlIGRhZW1vbiB2ZXJzaW9uIChyZXRpIG5vZGUgZGFlbW9uIGNvbXBvc2VzIGl0cyBvd24gbWV0YSB2ZXJzaW9uKQp1cGRhdGVBbGdvZFZlcjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MDYKCS8vIGFzc2VydCh0aGlzLmlzT3duZXJPck1hbmFnZXJDYWxsZXIoKSwgJ2NhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcicpCgljYWxsc3ViIGlzT3duZXJPck1hbmFnZXJDYWxsZXIKCgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3IKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MDcKCS8vIHRoaXMuYWxnb2RWZXIudmFsdWUgPSBhbGdvZFZlcgoJcHVzaGJ5dGVzIDB4NjE2YzY3NmY2NDU2NjU3MiAvLyAiYWxnb2RWZXIiCglmcmFtZV9kaWcgLTEgLy8gYWxnb2RWZXI6IHN0cmluZwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gZXBvY2hCYWxhbmNlVXBkYXRlKCl2b2lkCiphYmlfcm91dGVfZXBvY2hCYWxhbmNlVXBkYXRlOgoJLy8gZXhlY3V0ZSBlcG9jaEJhbGFuY2VVcGRhdGUoKXZvaWQKCWNhbGxzdWIgZXBvY2hCYWxhbmNlVXBkYXRlCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBlcG9jaEJhbGFuY2VVcGRhdGUoKTogdm9pZAovLwovLyBVcGRhdGVzIHRoZSBiYWxhbmNlIG9mIHN0YWtlcnMgaW4gdGhlIHBvb2wgYmFzZWQgb24gdGhlIHJlY2VpdmVkICdyZXdhcmRzJyAoY3VycmVudCBiYWxhbmNlIHZzIGtub3duIHN0YWtlZCBiYWxhbmNlKQovLyBzdGFrZXJzIG91dHN0YW5kaW5nIGJhbGFuY2UgaXMgYWRqdXN0ZWQgYmFzZWQgb24gdGhlaXIgJSBvZiBzdGFrZSBhbmQgdGltZSBpbiB0aGUgY3VycmVudCBlcG9jaCAtIHNvIHRoYXQgYmFsYW5jZQovLyBjb21wb3VuZHMgb3ZlciB0aW1lIGFuZCBzdGFrZXIgY2FuIHJlbW92ZSB0aGF0IGFtb3VudCBhdCB3aWxsLgovLyBUaGUgdmFsaWRhdG9yIGlzIHBhaWQgdGhlaXIgcGVyY2VudGFnZSBlYWNoIGVwb2NoIHBheW91dC4KLy8KLy8gTm90ZTogQU5ZT05FIGNhbiBjYWxsIHRoaXMuCmVwb2NoQmFsYW5jZVVwZGF0ZToKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXBuIDM2CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUyMAoJLy8gdmFsaWRhdG9yQ29uZmlnID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5nZXRWYWxpZGF0b3JDb25maWc+KHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWJ5dGVjIDE1IC8vICBtZXRob2QgImdldFZhbGlkYXRvckNvbmZpZyh1aW50NjQpKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTIxCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZWMgMSAvLyAgImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUyMgoJLy8gbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdCglieXRlYyAzIC8vICAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludGMgMSAvLyAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MjkKCS8vIGVwb2NoUm91bmRMZW5ndGggPSB2YWxpZGF0b3JDb25maWcuZXBvY2hSb3VuZExlbmd0aCBhcyB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE2OSA0CglidG9pCglmcmFtZV9idXJ5IDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUzMAoJLy8gY3VyUm91bmQgPSBnbG9iYWxzLnJvdW5kCglnbG9iYWwgUm91bmQKCWZyYW1lX2J1cnkgMiAvLyBjdXJSb3VuZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUzMQoJLy8gdGhpc0Vwb2NoQmVnaW4gPSBjdXJSb3VuZCAtIChjdXJSb3VuZCAlIGVwb2NoUm91bmRMZW5ndGgpCglmcmFtZV9kaWcgMiAvLyBjdXJSb3VuZDogdWludDY0CglmcmFtZV9kaWcgMiAvLyBjdXJSb3VuZDogdWludDY0CglmcmFtZV9kaWcgMSAvLyBlcG9jaFJvdW5kTGVuZ3RoOiB1aW50NjQKCSUKCS0KCWZyYW1lX2J1cnkgMyAvLyB0aGlzRXBvY2hCZWdpbjogdWludDY0CgoJLy8gKmlmMjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTM0CgkvLyB0aGlzLmxhc3RQYXlvdXQuZXhpc3RzCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlYyAxNCAvLyAgImxhc3RQYXlvdXQiCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCglieiAqaWYyMF9lbmQKCgkvLyAqaWYyMF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTM1CgkvLyBsYXN0UGF5b3V0RXBvY2ggPSB0aGlzLmxhc3RQYXlvdXQudmFsdWUgLSAodGhpcy5sYXN0UGF5b3V0LnZhbHVlICUgZXBvY2hSb3VuZExlbmd0aCkKCWJ5dGVjIDE0IC8vICAibGFzdFBheW91dCIKCWFwcF9nbG9iYWxfZ2V0CglieXRlYyAxNCAvLyAgImxhc3RQYXlvdXQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0CgklCgktCglmcmFtZV9idXJ5IDQgLy8gbGFzdFBheW91dEVwb2NoOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTM5CgkvLyBhc3NlcnQobGFzdFBheW91dEVwb2NoICE9PSB0aGlzRXBvY2hCZWdpbiwgImNhbid0IGNhbGwgZXBvY2hCYWxhbmNlVXBkYXRlIGluIHNhbWUgZXBvY2ggYXMgcHJpb3IgY2FsbCIpCglmcmFtZV9kaWcgNCAvLyBsYXN0UGF5b3V0RXBvY2g6IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJIT0KCgkvLyBjYW4ndCBjYWxsIGVwb2NoQmFsYW5jZVVwZGF0ZSBpbiBzYW1lIGVwb2NoIGFzIHByaW9yIGNhbGwKCWFzc2VydAoKKmlmMjBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU0MgoJLy8gdGhpcy5jaGVja0lmQmluQ2xvc2VkKCkKCWNhbGxzdWIgY2hlY2tJZkJpbkNsb3NlZAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NDUKCS8vIHRoaXMubGFzdFBheW91dC52YWx1ZSA9IGN1clJvdW5kCglieXRlYyAxNCAvLyAgImxhc3RQYXlvdXQiCglmcmFtZV9kaWcgMiAvLyBjdXJSb3VuZDogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NDYKCS8vIHRoaXMuZXBvY2hOdW1iZXIudmFsdWUgKz0gMQoJYnl0ZWMgMTkgLy8gICJlcG9jaE51bWJlciIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJKwoJYnl0ZWMgMTkgLy8gICJlcG9jaE51bWJlciIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU1MQoJLy8gaXNUb2tlbkVsaWdpYmxlID0gdmFsaWRhdG9yQ29uZmlnLnJld2FyZFRva2VuSWQgIT09IDAKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE1MyA4CglidG9pCglpbnRjIDAgLy8gMAoJIT0KCWZyYW1lX2J1cnkgNSAvLyBpc1Rva2VuRWxpZ2libGU6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTUyCgkvLyBwb29sT25lQXBwSUQgPSB0aGlzLmFwcC5pZAoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJZnJhbWVfYnVyeSA2IC8vIHBvb2xPbmVBcHBJRDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU1MwoJLy8gcG9vbE9uZUFkZHJlc3MgPSB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfYnVyeSA3IC8vIHBvb2xPbmVBZGRyZXNzOiBhZGRyZXNzCgoJLy8gKmlmMjFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTU4CgkvLyBpc1Rva2VuRWxpZ2libGUKCWZyYW1lX2RpZyA1IC8vIGlzVG9rZW5FbGlnaWJsZTogYm9vbAoJYnogKmlmMjFfZW5kCgoJLy8gKmlmMjFfY29uc2VxdWVudAoJLy8gKmlmMjJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTU5CgkvLyB0aGlzLnBvb2xJZC52YWx1ZSAhPT0gMQoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJIT0KCWJ6ICppZjIyX2VuZAoKCS8vICppZjIyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NjEKCS8vIHBvb2xPbmVBcHBJRCA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuZ2V0UG9vbEFwcElkPih7CgkvLyAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWUsIDFdLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAyIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlYyAyNCAvLyAgbWV0aG9kICJnZXRQb29sQXBwSWQodWludDY0LHVpbnQ2NCl1aW50NjQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NjIKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTYzCgkvLyBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZSwgMV0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMQoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludGMgMSAvLyAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWJ0b2kKCWZyYW1lX2J1cnkgNiAvLyBwb29sT25lQXBwSUQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NjUKCS8vIHBvb2xPbmVBZGRyZXNzID0gQXBwSUQuZnJvbVVpbnQ2NChwb29sT25lQXBwSUQpLmFkZHJlc3MKCWZyYW1lX2RpZyA2IC8vIHBvb2xPbmVBcHBJRDogdWludDY0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCWZyYW1lX2J1cnkgNyAvLyBwb29sT25lQWRkcmVzczogYWRkcmVzcwoKKmlmMjJfZW5kOgoJLy8gKmlmMjNfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTcwCgkvLyB0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMQoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJPT0KCWJ6ICppZjIzX2Vsc2UKCgkvLyAqaWYyM19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTcxCgkvLyB0b2tlblBheW91dFJhdGlvID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5zZXRUb2tlblBheW91dFJhdGlvPih7CgkvLyAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAyIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlYyAyNSAvLyAgbWV0aG9kICJzZXRUb2tlblBheW91dFJhdGlvKHVpbnQ2NCkodWludDY0WzI0XSx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTcyCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZWMgMSAvLyAgImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU3MwoJLy8gbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdCglieXRlYyAzIC8vICAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludGMgMSAvLyAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgOCAvLyB0b2tlblBheW91dFJhdGlvOiBQb29sVG9rZW5QYXlvdXRSYXRpbwoJYiAqaWYyM19lbmQKCippZjIzX2Vsc2U6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTc3CgkvLyB0b2tlblBheW91dFJhdGlvID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFN0YWtpbmdQb29sLnByb3RvdHlwZS5wcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbz4oewoJLy8gICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQocG9vbE9uZUFwcElEKSwKCS8vICAgICAgICAgICBtZXRob2RBcmdzOiBbeyBpZDogdGhpcy52YWxpZGF0b3JJZC52YWx1ZSwgcG9vbElkOiB0aGlzLnBvb2xJZC52YWx1ZSwgcG9vbEFwcElkOiB0aGlzLmFwcC5pZCB9XSwKCS8vICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZWMgMjYgLy8gIG1ldGhvZCAicHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0WzI0XSx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTc4CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHBvb2xPbmVBcHBJRCkKCWZyYW1lX2RpZyA2IC8vIHBvb2xPbmVBcHBJRDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTc5CgkvLyBtZXRob2RBcmdzOiBbeyBpZDogdGhpcy52YWxpZGF0b3JJZC52YWx1ZSwgcG9vbElkOiB0aGlzLnBvb2xJZC52YWx1ZSwgcG9vbEFwcElkOiB0aGlzLmFwcC5pZCB9XQoJYnl0ZWMgMyAvLyAgInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWJ5dGVjIDQgLy8gICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJY29uY2F0Cgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCgljb25jYXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnRjIDEgLy8gMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglmcmFtZV9idXJ5IDggLy8gdG9rZW5QYXlvdXRSYXRpbzogUG9vbFRva2VuUGF5b3V0UmF0aW8KCippZjIzX2VuZDoKCippZjIxX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1ODYKCS8vIHZhbGlkYXRvclN0YXRlID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5nZXRWYWxpZGF0b3JTdGF0ZT4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJcHVzaGJ5dGVzIDB4MWYyZjAxMDkgLy8gbWV0aG9kICJnZXRWYWxpZGF0b3JTdGF0ZSh1aW50NjQpKHVpbnQxNix1aW50NjQsdWludDY0LHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1ODcKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTg4CgkvLyBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50YyAxIC8vIDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJZnJhbWVfYnVyeSA5IC8vIHZhbGlkYXRvclN0YXRlOiAodWludDE2LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1OTAKCS8vIHJld2FyZFRva2VuSGVsZEJhY2sgPSB2YWxpZGF0b3JTdGF0ZS5yZXdhcmRUb2tlbkhlbGRCYWNrCglmcmFtZV9kaWcgOSAvLyB2YWxpZGF0b3JTdGF0ZTogKHVpbnQxNix1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTggOAoJYnRvaQoJZnJhbWVfYnVyeSAxMCAvLyByZXdhcmRUb2tlbkhlbGRCYWNrOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTk2CgkvLyBhbGdvUmV3YXJkQXZhaWwgPSB0aGlzLmFwcC5hZGRyZXNzLmJhbGFuY2UgLSB0aGlzLnRvdGFsQWxnb1N0YWtlZC52YWx1ZSAtIHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQoJcG9wCglieXRlYyA2IC8vICAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCS0KCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJLQoJZnJhbWVfYnVyeSAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1OTcKCS8vIGlzUG9vbFNhdHVyYXRlZCA9IGZhbHNlCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAxMiAvLyBpc1Bvb2xTYXR1cmF0ZWQ6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTk4CgkvLyBhbGdvU2F0dXJhdGlvbkFtdCA9IHRoaXMuYWxnb1NhdHVyYXRpb25MZXZlbCgpCgljYWxsc3ViIGFsZ29TYXR1cmF0aW9uTGV2ZWwKCWZyYW1lX2J1cnkgMTMgLy8gYWxnb1NhdHVyYXRpb25BbXQ6IHVpbnQ2NAoKCS8vICppZjI0X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYwNgoJLy8gdmFsaWRhdG9yU3RhdGUudG90YWxBbGdvU3Rha2VkID4gYWxnb1NhdHVyYXRpb25BbXQKCWZyYW1lX2RpZyA5IC8vIHZhbGlkYXRvclN0YXRlOiAodWludDE2LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxMCA4CglidG9pCglmcmFtZV9kaWcgMTMgLy8gYWxnb1NhdHVyYXRpb25BbXQ6IHVpbnQ2NAoJPgoJYnogKmlmMjRfZW5kCgoJLy8gKmlmMjRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYwNwoJLy8gaXNQb29sU2F0dXJhdGVkID0gdHJ1ZQoJaW50YyAxIC8vIDEKCWZyYW1lX2J1cnkgMTIgLy8gaXNQb29sU2F0dXJhdGVkOiBib29sCgoqaWYyNF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjEzCgkvLyB0b2tlblJld2FyZEF2YWlsID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMTQgLy8gdG9rZW5SZXdhcmRBdmFpbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYxNAoJLy8gdG9rZW5SZXdhcmRQYWlkT3V0ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjE1CgkvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dCA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDE2IC8vIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0OiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjE2CgkvLyBleGNlc3NUb0ZlZVNpbmsgPSAwCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAxNyAvLyBleGNlc3NUb0ZlZVNpbms6IHVpbnQ2NAoKCS8vICppZjI1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYxNwoJLy8gaXNUb2tlbkVsaWdpYmxlCglmcmFtZV9kaWcgNSAvLyBpc1Rva2VuRWxpZ2libGU6IGJvb2wKCWJ6ICppZjI1X2VuZAoKCS8vICppZjI1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2MTgKCS8vIHRva2VuUmV3YXJkQmFsID0KCS8vICAgICAgICAgcG9vbE9uZUFkZHJlc3MuYXNzZXRCYWxhbmNlKEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCkpIC0gcmV3YXJkVG9rZW5IZWxkQmFjawoJZnJhbWVfZGlnIDcgLy8gcG9vbE9uZUFkZHJlc3M6IGFkZHJlc3MKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE1MyA4CglidG9pCglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIDEwIC8vIHJld2FyZFRva2VuSGVsZEJhY2s6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAxOCAvLyB0b2tlblJld2FyZEJhbDogdWludDY0CgoJLy8gKmlmMjZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjIzCgkvLyB0b2tlblJld2FyZEJhbCA+PSB2YWxpZGF0b3JDb25maWcucmV3YXJkUGVyUGF5b3V0CglmcmFtZV9kaWcgMTggLy8gdG9rZW5SZXdhcmRCYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTYxIDgKCWJ0b2kKCT49CglieiAqaWYyNl9lbmQKCgkvLyAqaWYyNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjI5CgkvLyBvdXJQb29sUGN0T2ZXaG9sZSA9IHRva2VuUGF5b3V0UmF0aW8ucG9vbFBjdE9mV2hvbGVbdGhpcy5wb29sSWQudmFsdWUgLSAxXQoJZnJhbWVfZGlnIDggLy8gdG9rZW5QYXlvdXRSYXRpbzogUG9vbFRva2VuUGF5b3V0UmF0aW8KCWludGMgMCAvLyAwCglieXRlYyA0IC8vICAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWludGMgMSAvLyAxCgktCglpbnRjIDE0IC8vIDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAxNCAvLyA4CglleHRyYWN0MwoJYnRvaQoJZnJhbWVfYnVyeSAxOSAvLyBvdXJQb29sUGN0T2ZXaG9sZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYzMgoJLy8gdG9rZW5SZXdhcmRBdmFpbCA9IHdpZGVSYXRpbyhbdmFsaWRhdG9yQ29uZmlnLnJld2FyZFBlclBheW91dCwgb3VyUG9vbFBjdE9mV2hvbGVdLCBbMV8wMDBfMDAwXSkKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE2MSA4CglidG9pCglmcmFtZV9kaWcgMTkgLy8gb3VyUG9vbFBjdE9mV2hvbGU6IHVpbnQ2NAoJbXVsdwoJaW50YyAwIC8vIDAKCWludGMgMTIgLy8gMV8wMDBfMDAwCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAxNCAvLyB0b2tlblJld2FyZEF2YWlsOiB1aW50NjQKCippZjI2X2VuZDoKCippZjI1X2VuZDoKCS8vICppZjI3X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYzNQoJLy8gdG9rZW5SZXdhcmRBdmFpbCA9PT0gMAoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglieiAqaWYyN19lbmQKCgkvLyAqaWYyN19jb25zZXF1ZW50CgkvLyAqaWYyOF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NDAKCS8vIGFsZ29SZXdhcmRBdmFpbCA8IDFfMDAwXzAwMAoJZnJhbWVfZGlnIDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CglpbnRjIDEyIC8vIDFfMDAwXzAwMAoJPAoJYnogKmlmMjhfZW5kCgoJLy8gKmlmMjhfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY0MQoJLy8gbG9nKCchdG9rZW4mJiFub2FsZ28gdG8gcGF5JykKCXB1c2hieXRlcyAweDIxNzQ2ZjZiNjU2ZTI2MjYyMTZlNmY2MTZjNjc2ZjIwNzQ2ZjIwNzA2MTc5IC8vICIhdG9rZW4mJiFub2FsZ28gdG8gcGF5IgoJbG9nCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY0MgoJLy8gcmV0dXJuOwoJcmV0c3ViCgoqaWYyOF9lbmQ6CgoqaWYyN19lbmQ6CgkvLyAqaWYyOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NDYKCS8vIGlzUG9vbFNhdHVyYXRlZAoJZnJhbWVfZGlnIDEyIC8vIGlzUG9vbFNhdHVyYXRlZDogYm9vbAoJYnogKmlmMjlfZWxzZWlmMV9jb25kaXRpb24KCgkvLyAqaWYyOV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjQ5CgkvLyBkaW1pbmlzaGVkUmV3YXJkID0gd2lkZVJhdGlvKFthbGdvUmV3YXJkQXZhaWwsIGFsZ29TYXR1cmF0aW9uQW10XSwgW3ZhbGlkYXRvclN0YXRlLnRvdGFsQWxnb1N0YWtlZF0pCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWZyYW1lX2RpZyAxMyAvLyBhbGdvU2F0dXJhdGlvbkFtdDogdWludDY0CgltdWx3CglpbnRjIDAgLy8gMAoJZnJhbWVfZGlnIDkgLy8gdmFsaWRhdG9yU3RhdGU6ICh1aW50MTYsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDEwIDgKCWJ0b2kKCWRpdm1vZHcKCXBvcAoJcG9wCglzd2FwCgkhCgoJLy8gd2lkZVJhdGlvIGZhaWxlZAoJYXNzZXJ0CglmcmFtZV9idXJ5IDIwIC8vIGRpbWluaXNoZWRSZXdhcmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NTEKCS8vIGV4Y2Vzc1RvRmVlU2luayA9IGFsZ29SZXdhcmRBdmFpbCAtIGRpbWluaXNoZWRSZXdhcmQKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJZnJhbWVfZGlnIDIwIC8vIGRpbWluaXNoZWRSZXdhcmQ6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAxNyAvLyBleGNlc3NUb0ZlZVNpbms6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NTIKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgICAgYW1vdW50OiBleGNlc3NUb0ZlZVNpbmssCgkvLyAgICAgICAgIHJlY2VpdmVyOiB0aGlzLmdldEZlZVNpbmsoKSwKCS8vICAgICAgICAgbm90ZTogJ3Bvb2wgc2F0dXJhdGVkLCBleGNlc3MgdG8gZmVlIHNpbmsnLAoJLy8gICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMSAvLyAgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY1MwoJLy8gYW1vdW50OiBleGNlc3NUb0ZlZVNpbmsKCWZyYW1lX2RpZyAxNyAvLyBleGNlc3NUb0ZlZVNpbms6IHVpbnQ2NAoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjU0CgkvLyByZWNlaXZlcjogdGhpcy5nZXRGZWVTaW5rKCkKCWNhbGxzdWIgZ2V0RmVlU2luawoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NTUKCS8vIG5vdGU6ICdwb29sIHNhdHVyYXRlZCwgZXhjZXNzIHRvIGZlZSBzaW5rJwoJcHVzaGJ5dGVzIDB4NzA2ZjZmNmMyMDczNjE3NDc1NzI2MTc0NjU2NDJjMjA2NTc4NjM2NTczNzMyMDc0NmYyMDY2NjU2NTIwNzM2OTZlNmIgLy8gInBvb2wgc2F0dXJhdGVkLCBleGNlc3MgdG8gZmVlIHNpbmsiCglpdHhuX2ZpZWxkIE5vdGUKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY1OAoJLy8gYWxnb1Jld2FyZEF2YWlsID0gZGltaW5pc2hlZFJld2FyZAoJZnJhbWVfZGlnIDIwIC8vIGRpbWluaXNoZWRSZXdhcmQ6IHVpbnQ2NAoJZnJhbWVfYnVyeSAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJYiAqaWYyOV9lbmQKCippZjI5X2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY1OQoJLy8gdmFsaWRhdG9yQ29uZmlnLnBlcmNlbnRUb1ZhbGlkYXRvciAhPT0gMAoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTczIDQKCWJ0b2kKCWludGMgMCAvLyAwCgkhPQoJYnogKmlmMjlfZW5kCgoJLy8gKmlmMjlfZWxzZWlmMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjYyCgkvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dCA9IHdpZGVSYXRpbygKCS8vICAgICAgICAgW2FsZ29SZXdhcmRBdmFpbCwgdmFsaWRhdG9yQ29uZmlnLnBlcmNlbnRUb1ZhbGlkYXRvciBhcyB1aW50NjRdLAoJLy8gICAgICAgICBbMV8wMDBfMDAwXQoJLy8gICAgICAgKQoJZnJhbWVfZGlnIDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNzMgNAoJYnRvaQoJbXVsdwoJaW50YyAwIC8vIDAKCWludGMgMTIgLy8gMV8wMDBfMDAwCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY2OAoJLy8gYWxnb1Jld2FyZEF2YWlsIC09IHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0CglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWZyYW1lX2RpZyAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CgktCglmcmFtZV9idXJ5IDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CgoJLy8gKmlmMzBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Njc1CgkvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dCA+IDAKCWZyYW1lX2RpZyAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CglpbnRjIDAgLy8gMAoJPgoJYnogKmlmMzBfZW5kCgoJLy8gKmlmMzBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY3OAoJLy8gbWFuYWdlclRvcE9mZiA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDIxIC8vIG1hbmFnZXJUb3BPZmY6IHVpbnQ2NAoKCS8vICppZjMxX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY4MAoJLy8gdmFsaWRhdG9yQ29uZmlnLm1hbmFnZXIgIT09IHZhbGlkYXRvckNvbmZpZy52YWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyAmJgoJLy8gICAgICAgICAgIHZhbGlkYXRvckNvbmZpZy5tYW5hZ2VyLmJhbGFuY2UgLSB2YWxpZGF0b3JDb25maWcubWFuYWdlci5taW5CYWxhbmNlIDwgMl8xMDBfMDAwCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0MCAzMgoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTc3IDMyCgkhPQoJZHVwCglieiAqc2tpcF9hbmQzCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0MCAzMgoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQwIDMyCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJLQoJaW50YyAxMyAvLyAyXzEwMF8wMDAKCTwKCSYmCgoqc2tpcF9hbmQzOgoJYnogKmlmMzFfZW5kCgoJLy8gKmlmMzFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY4MwoJLy8gbWFuYWdlclRvcE9mZiA9IHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0IDwgMl8xMDBfMDAwID8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQgOiAyXzEwMF8wMDAKCWZyYW1lX2RpZyAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CglpbnRjIDEzIC8vIDJfMTAwXzAwMAoJPAoJYnogKnRlcm5hcnkxX2ZhbHNlCglmcmFtZV9kaWcgMTYgLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQ6IHVpbnQ2NAoJYiAqdGVybmFyeTFfZW5kCgoqdGVybmFyeTFfZmFsc2U6CglpbnRjIDEzIC8vIDJfMTAwXzAwMAoKKnRlcm5hcnkxX2VuZDoKCWZyYW1lX2J1cnkgMjEgLy8gbWFuYWdlclRvcE9mZjogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY4NAoJLy8gc2VuZFBheW1lbnQoewoJLy8gICAgICAgICAgICAgYW1vdW50OiBtYW5hZ2VyVG9wT2ZmLAoJLy8gICAgICAgICAgICAgcmVjZWl2ZXI6IHZhbGlkYXRvckNvbmZpZy5tYW5hZ2VyLAoJLy8gICAgICAgICAgICAgbm90ZTogJ3ZhbGlkYXRvciByZXdhcmQgdG8gbWFuYWdlciBmb3IgZnVuZGluZyBlcG9jaCB1cGRhdGVzJywKCS8vICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxIC8vICBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Njg1CgkvLyBhbW91bnQ6IG1hbmFnZXJUb3BPZmYKCWZyYW1lX2RpZyAyMSAvLyBtYW5hZ2VyVG9wT2ZmOiB1aW50NjQKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY4NgoJLy8gcmVjZWl2ZXI6IHZhbGlkYXRvckNvbmZpZy5tYW5hZ2VyCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0MCAzMgoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2ODcKCS8vIG5vdGU6ICd2YWxpZGF0b3IgcmV3YXJkIHRvIG1hbmFnZXIgZm9yIGZ1bmRpbmcgZXBvY2ggdXBkYXRlcycKCXB1c2hieXRlcyAweDc2NjE2YzY5NjQ2MTc0NmY3MjIwNzI2NTc3NjE3MjY0MjA3NDZmMjA2ZDYxNmU2MTY3NjU3MjIwNjY2ZjcyMjA2Njc1NmU2NDY5NmU2NzIwNjU3MDZmNjM2ODIwNzU3MDY0NjE3NDY1NzMgLy8gInZhbGlkYXRvciByZXdhcmQgdG8gbWFuYWdlciBmb3IgZnVuZGluZyBlcG9jaCB1cGRhdGVzIgoJaXR4bl9maWVsZCBOb3RlCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMzFfZW5kOgoJLy8gKmlmMzJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjkwCgkvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dCAtIG1hbmFnZXJUb3BPZmYgPiAwCglmcmFtZV9kaWcgMTYgLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDIxIC8vIG1hbmFnZXJUb3BPZmY6IHVpbnQ2NAoJLQoJaW50YyAwIC8vIDAKCT4KCWJ6ICppZjMyX2VuZAoKCS8vICppZjMyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2OTEKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgICAgICAgIGFtb3VudDogdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQgLSBtYW5hZ2VyVG9wT2ZmLAoJLy8gICAgICAgICAgICAgcmVjZWl2ZXI6IHZhbGlkYXRvckNvbmZpZy52YWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcywKCS8vICAgICAgICAgICAgIG5vdGU6ICd2YWxpZGF0b3IgcmV3YXJkJywKCS8vICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxIC8vICBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjkyCgkvLyBhbW91bnQ6IHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0IC0gbWFuYWdlclRvcE9mZgoJZnJhbWVfZGlnIDE2IC8vIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0OiB1aW50NjQKCWZyYW1lX2RpZyAyMSAvLyBtYW5hZ2VyVG9wT2ZmOiB1aW50NjQKCS0KCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY5MwoJLy8gcmVjZWl2ZXI6IHZhbGlkYXRvckNvbmZpZy52YWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcwoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTc3IDMyCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY5NAoJLy8gbm90ZTogJ3ZhbGlkYXRvciByZXdhcmQnCglwdXNoYnl0ZXMgMHg3NjYxNmM2OTY0NjE3NDZmNzIyMDcyNjU3NzYxNzI2NCAvLyAidmFsaWRhdG9yIHJld2FyZCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCippZjMyX2VuZDoKCippZjMwX2VuZDoKCippZjI5X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MDYKCS8vIGluY3JlYXNlZFN0YWtlID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoKCS8vICppZjMzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczMAoJLy8gYWxnb1Jld2FyZEF2YWlsICE9PSAwIHx8IHRva2VuUmV3YXJkQXZhaWwgIT09IDAKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCSE9CglkdXAKCWJueiAqc2tpcF9vcjEKCWZyYW1lX2RpZyAxNCAvLyB0b2tlblJld2FyZEF2YWlsOiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoJfHwKCipza2lwX29yMToKCWJ6ICppZjMzX2VuZAoKCS8vICppZjMzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzEKCS8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMjMgLy8gcGFydGlhbFN0YWtlcnNUb3RhbFN0YWtlOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzMyCgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGg7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDI0IC8vIGk6IHVpbnQ2NAoKKmZvcl80OgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczMgoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAyNCAvLyBpOiB1aW50NjQKCWludGMgNyAvLyAyMDAKCTwKCWJ6ICpmb3JfNF9lbmQKCgkvLyAqaWYzNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzMKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgNDAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglpbnRjIDE3IC8vIDQwMAoJPAoJYnogKmlmMzRfZW5kCgoJLy8gKmlmMzRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczNAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50YyAyIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGVjIDUgLy8gICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludGMgOCAvLyAgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMzRfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczNgoJLy8gY21wU3Rha2VyID0gY2xvbmUodGhpcy5zdGFrZXJzLnZhbHVlW2ldKQoJZnJhbWVfZGlnIDI0IC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMyAvLyA2NAoJYnl0ZWMgMiAvLyAgInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyAqaWYzNV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzcKCS8vIGNtcFN0YWtlci5hY2NvdW50ICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzCglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDAgMzIKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCWJ6ICppZjM1X2VuZAoKCS8vICppZjM1X2NvbnNlcXVlbnQKCS8vICppZjM2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczOAoJLy8gY21wU3Rha2VyLmVudHJ5Um91bmQgPj0gdGhpc0Vwb2NoQmVnaW4KCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNTYgOAoJYnRvaQoJZnJhbWVfZGlnIDMgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJPj0KCWJ6ICppZjM2X2Vsc2UKCgkvLyAqaWYzNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzQxCgkvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2UgKz0gY21wU3Rha2VyLmJhbGFuY2UKCWZyYW1lX2RpZyAyMyAvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2U6IHVpbnQ2NAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCgkrCglmcmFtZV9idXJ5IDIzIC8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0CgliICppZjM2X2VuZAoKKmlmMzZfZWxzZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NDUKCS8vIHRpbWVJblBvb2wgPSB0aGlzRXBvY2hCZWdpbiAtIGNtcFN0YWtlci5lbnRyeVJvdW5kCglmcmFtZV9kaWcgMyAvLyB0aGlzRXBvY2hCZWdpbjogdWludDY0CglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDU2IDgKCWJ0b2kKCS0KCWZyYW1lX2J1cnkgMjYgLy8gdGltZUluUG9vbDogdWludDY0CgoJLy8gKmlmMzdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzQ5CgkvLyB0aW1lSW5Qb29sIDwgZXBvY2hSb3VuZExlbmd0aAoJZnJhbWVfZGlnIDI2IC8vIHRpbWVJblBvb2w6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0Cgk8CglieiAqaWYzN19lbmQKCgkvLyAqaWYzN19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzUwCgkvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2UgKz0gY21wU3Rha2VyLmJhbGFuY2UKCWZyYW1lX2RpZyAyMyAvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2U6IHVpbnQ2NAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCgkrCglmcmFtZV9idXJ5IDIzIC8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc1MQoJLy8gdGltZVBlcmNlbnRhZ2UgPSAodGltZUluUG9vbCAqIDEwMDApIC8gZXBvY2hSb3VuZExlbmd0aAoJZnJhbWVfZGlnIDI2IC8vIHRpbWVJblBvb2w6IHVpbnQ2NAoJaW50YyAxMCAvLyAxMDAwCgkqCglmcmFtZV9kaWcgMSAvLyBlcG9jaFJvdW5kTGVuZ3RoOiB1aW50NjQKCS8KCWZyYW1lX2J1cnkgMjcgLy8gdGltZVBlcmNlbnRhZ2U6IHVpbnQ2NAoKCS8vICppZjM4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc1MwoJLy8gdG9rZW5SZXdhcmRBdmFpbCA+IDAKCWZyYW1lX2RpZyAxNCAvLyB0b2tlblJld2FyZEF2YWlsOiB1aW50NjQKCWludGMgMCAvLyAwCgk+CglieiAqaWYzOF9lbmQKCgkvLyAqaWYzOF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzU1CgkvLyBzdGFrZXJUb2tlblJld2FyZCA9IHdpZGVSYXRpbygKCS8vICAgICAgICAgICAgICAgICAgIFtjbXBTdGFrZXIuYmFsYW5jZSwgdG9rZW5SZXdhcmRBdmFpbCwgdGltZVBlcmNlbnRhZ2VdLAoJLy8gICAgICAgICAgICAgICAgICAgW3RoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlLCAxMDAwXQoJLy8gICAgICAgICAgICAgICAgICkKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJbXVsdwoJZnJhbWVfZGlnIDI3IC8vIHRpbWVQZXJjZW50YWdlOiB1aW50NjQKCXVuY292ZXIgMgoJZGlnIDEKCSoKCWNvdmVyIDIKCW11bHcKCWNvdmVyIDIKCSsKCXN3YXAKCWJ5dGVjIDYgLy8gICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJaW50YyAxMCAvLyAxMDAwCgltdWx3CglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAyOCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc2MgoJLy8gdG9rZW5SZXdhcmRBdmFpbCAtPSBzdGFrZXJUb2tlblJld2FyZAoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJZnJhbWVfZGlnIDI4IC8vIHN0YWtlclRva2VuUmV3YXJkOiB1aW50NjQKCS0KCWZyYW1lX2J1cnkgMTQgLy8gdG9rZW5SZXdhcmRBdmFpbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc2MwoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSArPSBzdGFrZXJUb2tlblJld2FyZAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50YyAyMCAvLyAgaGVhZE9mZnNldAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglmcmFtZV9kaWcgMjggLy8gc3Rha2VyVG9rZW5SZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc2NAoJLy8gdG9rZW5SZXdhcmRQYWlkT3V0ICs9IHN0YWtlclRva2VuUmV3YXJkCglmcmFtZV9kaWcgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCWZyYW1lX2RpZyAyOCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgkrCglmcmFtZV9idXJ5IDE1IC8vIHRva2VuUmV3YXJkUGFpZE91dDogdWludDY0CgoqaWYzOF9lbmQ6CgkvLyAqaWYzOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NjYKCS8vIGFsZ29SZXdhcmRBdmFpbCA+IDAKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT4KCWJ6ICppZjM5X2VuZAoKCS8vICppZjM5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NjgKCS8vIHN0YWtlclJld2FyZCA9IHdpZGVSYXRpbygKCS8vICAgICAgICAgICAgICAgICAgIFtjbXBTdGFrZXIuYmFsYW5jZSwgYWxnb1Jld2FyZEF2YWlsLCB0aW1lUGVyY2VudGFnZV0sCgkvLyAgICAgICAgICAgICAgICAgICBbdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUsIDEwMDBdCgkvLyAgICAgICAgICAgICAgICAgKQoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCW11bHcKCWZyYW1lX2RpZyAyNyAvLyB0aW1lUGVyY2VudGFnZTogdWludDY0Cgl1bmNvdmVyIDIKCWRpZyAxCgkqCgljb3ZlciAyCgltdWx3Cgljb3ZlciAyCgkrCglzd2FwCglieXRlYyA2IC8vICAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCWludGMgMTAgLy8gMTAwMAoJbXVsdwoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMjkgLy8gc3Rha2VyUmV3YXJkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzc1CgkvLyBhbGdvUmV3YXJkQXZhaWwgLT0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWZyYW1lX2RpZyAyOSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NzgKCS8vIGNtcFN0YWtlci5iYWxhbmNlICs9IHN0YWtlclJld2FyZAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50YyA0IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAyOSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc3OQoJLy8gY21wU3Rha2VyLnRvdGFsUmV3YXJkZWQgKz0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglpbnRjIDE5IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQwIDgKCWJ0b2kKCWZyYW1lX2RpZyAyOSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc4MAoJLy8gaW5jcmVhc2VkU3Rha2UgKz0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoJZnJhbWVfZGlnIDI5IC8vIHN0YWtlclJld2FyZDogdWludDY0CgkrCglmcmFtZV9idXJ5IDIyIC8vIGluY3JlYXNlZFN0YWtlOiB1aW50NjQKCippZjM5X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3ODMKCS8vIHRoaXMuc3Rha2Vycy52YWx1ZVtpXSA9IGNtcFN0YWtlcgoJZnJhbWVfZGlnIDI0IC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X3JlcGxhY2UKCippZjM3X2VuZDoKCippZjM2X2VuZDoKCippZjM1X2VuZDoKCipmb3JfNF9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzIKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDI0IC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMjQgLy8gaTogdWludDY0CgliICpmb3JfNAoKKmZvcl80X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3OTEKCS8vIG5ld1Bvb2xUb3RhbFN0YWtlID0gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgLSBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2UKCWJ5dGVjIDYgLy8gICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDIzIC8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0CgktCglmcmFtZV9idXJ5IDMwIC8vIG5ld1Bvb2xUb3RhbFN0YWtlOiB1aW50NjQKCgkvLyAqaWY0MF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3OTUKCS8vIG5ld1Bvb2xUb3RhbFN0YWtlID4gMAoJZnJhbWVfZGlnIDMwIC8vIG5ld1Bvb2xUb3RhbFN0YWtlOiB1aW50NjQKCWludGMgMCAvLyAwCgk+CglieiAqaWY0MF9lbmQKCgkvLyAqaWY0MF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzk3CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGg7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDMxIC8vIGk6IHVpbnQ2NAoKKmZvcl81OgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc5NwoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAzMSAvLyBpOiB1aW50NjQKCWludGMgNyAvLyAyMDAKCTwKCWJ6ICpmb3JfNV9lbmQKCgkvLyAqaWY0MV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3OTgKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgMjAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglpbnRjIDcgLy8gMjAwCgk8CglieiAqaWY0MV9lbmQKCgkvLyAqaWY0MV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzk5CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZWMgNSAvLyAgI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50YyA4IC8vICBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoqaWY0MV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODAxCgkvLyBjbXBTdGFrZXIgPSBjbG9uZSh0aGlzLnN0YWtlcnMudmFsdWVbaV0pCglmcmFtZV9kaWcgMzEgLy8gaTogdWludDY0CglpbnRjIDMgLy8gNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAzIC8vIDY0CglieXRlYyAyIC8vICAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vICppZjQyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgwMgoJLy8gY21wU3Rha2VyLmFjY291bnQgIT09IGdsb2JhbHMuemVyb0FkZHJlc3MgJiYgY21wU3Rha2VyLmVudHJ5Um91bmQgPCB0aGlzRXBvY2hCZWdpbgoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAwIDMyCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9CglkdXAKCWJ6ICpza2lwX2FuZDQKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNTYgOAoJYnRvaQoJZnJhbWVfZGlnIDMgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJPAoJJiYKCipza2lwX2FuZDQ6CglieiAqaWY0Ml9lbmQKCgkvLyAqaWY0Ml9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODAzCgkvLyB0aW1lSW5Qb29sID0gdGhpc0Vwb2NoQmVnaW4gLSBjbXBTdGFrZXIuZW50cnlSb3VuZAoJZnJhbWVfZGlnIDMgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA1NiA4CglidG9pCgktCglmcmFtZV9idXJ5IDMzIC8vIHRpbWVJblBvb2w6IHVpbnQ2NAoKCS8vICppZjQzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgwNQoJLy8gdGltZUluUG9vbCA+PSBlcG9jaFJvdW5kTGVuZ3RoCglmcmFtZV9kaWcgMzMgLy8gdGltZUluUG9vbDogdWludDY0CglmcmFtZV9kaWcgMSAvLyBlcG9jaFJvdW5kTGVuZ3RoOiB1aW50NjQKCT49CglieiAqaWY0M19lbmQKCgkvLyAqaWY0M19jb25zZXF1ZW50CgkvLyAqaWY0NF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MTAKCS8vIHRva2VuUmV3YXJkQXZhaWwgPiAwCglmcmFtZV9kaWcgMTQgLy8gdG9rZW5SZXdhcmRBdmFpbDogdWludDY0CglpbnRjIDAgLy8gMAoJPgoJYnogKmlmNDRfZW5kCgoJLy8gKmlmNDRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgxMQoJLy8gc3Rha2VyVG9rZW5SZXdhcmQgPSB3aWRlUmF0aW8oW2NtcFN0YWtlci5iYWxhbmNlLCB0b2tlblJld2FyZEF2YWlsXSwgW25ld1Bvb2xUb3RhbFN0YWtlXSkKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJbXVsdwoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyAzMCAvLyBuZXdQb29sVG90YWxTdGFrZTogdWludDY0CglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAzNCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgxNAoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSArPSBzdGFrZXJUb2tlblJld2FyZAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50YyAyMCAvLyAgaGVhZE9mZnNldAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglmcmFtZV9kaWcgMzQgLy8gc3Rha2VyVG9rZW5SZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgxNQoJLy8gdG9rZW5SZXdhcmRQYWlkT3V0ICs9IHN0YWtlclRva2VuUmV3YXJkCglmcmFtZV9kaWcgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCWZyYW1lX2RpZyAzNCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgkrCglmcmFtZV9idXJ5IDE1IC8vIHRva2VuUmV3YXJkUGFpZE91dDogdWludDY0CgoqaWY0NF9lbmQ6CgkvLyAqaWY0NV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MTcKCS8vIGFsZ29SZXdhcmRBdmFpbCA+IDAKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT4KCWJ6ICppZjQ1X2VuZAoKCS8vICppZjQ1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MTgKCS8vIHN0YWtlclJld2FyZCA9IHdpZGVSYXRpbyhbY21wU3Rha2VyLmJhbGFuY2UsIGFsZ29SZXdhcmRBdmFpbF0sIFtuZXdQb29sVG90YWxTdGFrZV0pCglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJbXVsdwoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyAzMCAvLyBuZXdQb29sVG90YWxTdGFrZTogdWludDY0CglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAzNSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MjEKCS8vIGNtcFN0YWtlci5iYWxhbmNlICs9IHN0YWtlclJld2FyZAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50YyA0IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAzNSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgyMgoJLy8gY21wU3Rha2VyLnRvdGFsUmV3YXJkZWQgKz0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglpbnRjIDE5IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQwIDgKCWJ0b2kKCWZyYW1lX2RpZyAzNSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgyMwoJLy8gaW5jcmVhc2VkU3Rha2UgKz0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoJZnJhbWVfZGlnIDM1IC8vIHN0YWtlclJld2FyZDogdWludDY0CgkrCglmcmFtZV9idXJ5IDIyIC8vIGluY3JlYXNlZFN0YWtlOiB1aW50NjQKCippZjQ1X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MjcKCS8vIHRoaXMuc3Rha2Vycy52YWx1ZVtpXSA9IGNtcFN0YWtlcgoJZnJhbWVfZGlnIDMxIC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X3JlcGxhY2UKCippZjQzX2VuZDoKCippZjQyX2VuZDoKCipmb3JfNV9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3OTcKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDMxIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMzEgLy8gaTogdWludDY0CgliICpmb3JfNQoKKmZvcl81X2VuZDoKCippZjQwX2VuZDoKCippZjMzX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MzcKCS8vIHJvdW5kc0xlZnRJbkJpbiA9IHRoaXMuYmluUm91bmRTdGFydC52YWx1ZSArIHRoaXMucm91bmRzUGVyRGF5LnZhbHVlIC0gZ2xvYmFscy5yb3VuZAoJYnl0ZWMgMTEgLy8gICJiaW5Sb3VuZFN0YXJ0IgoJYXBwX2dsb2JhbF9nZXQKCWJ5dGVjIDEwIC8vICAicm91bmRzUGVyRGF5IgoJYXBwX2dsb2JhbF9nZXQKCSsKCWdsb2JhbCBSb3VuZAoJLQoJZnJhbWVfYnVyeSAzNiAvLyByb3VuZHNMZWZ0SW5CaW46IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MzgKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlICs9IGluY3JlYXNlZFN0YWtlCglieXRlYyA2IC8vICAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAyMiAvLyBpbmNyZWFzZWRTdGFrZTogdWludDY0CgkrCglieXRlYyA2IC8vICAic3Rha2VkIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODM5CgkvLyB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgPQoJLy8gICAgICAgdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlICsgKGluY3JlYXNlZFN0YWtlIGFzIHVpbnQxMjgpICogKHJvdW5kc0xlZnRJbkJpbiBhcyB1aW50MTI4KQoJYnl0ZWMgNyAvLyAgInN0YWtlQWNjdW11bGF0b3IiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfZGlnIDM2IC8vIHJvdW5kc0xlZnRJbkJpbjogdWludDY0CglpdG9iCgliKgoJYisKCWR1cAoJYml0bGVuCglpbnRjIDYgLy8gMTI4Cgk8PQoKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSArIChpbmNyZWFzZWRTdGFrZSBhcyB1aW50MTI4KSAqIChyb3VuZHNMZWZ0SW5CaW4gYXMgdWludDEyOCkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlYyA4IC8vIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnRjIDUgLy8gMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjg0MQoJLy8gdGhpcy5yZXdhcmRBY2N1bXVsYXRvci52YWx1ZSA9IHRoaXMucmV3YXJkQWNjdW11bGF0b3IudmFsdWUgKyBpbmNyZWFzZWRTdGFrZQoJYnl0ZWMgMTIgLy8gICJyZXdhcmRBY2N1bXVsYXRvciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAyMiAvLyBpbmNyZWFzZWRTdGFrZTogdWludDY0CgkrCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4NDcKCS8vIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuc3Rha2VVcGRhdGVkVmlhUmV3YXJkcz4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgIHsgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfSwKCS8vICAgICAgICAgaW5jcmVhc2VkU3Rha2UsCgkvLyAgICAgICAgIHRva2VuUmV3YXJkUGFpZE91dCwKCS8vICAgICAgICAgdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQsCgkvLyAgICAgICAgIGV4Y2Vzc1RvRmVlU2luaywKCS8vICAgICAgIF0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJcHVzaGJ5dGVzIDB4NDE4ZmNlZmMgLy8gbWV0aG9kICJzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzKCh1aW50NjQsdWludDY0LHVpbnQ2NCksdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4NDgKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODQ5CgkvLyBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgIHsgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfSwKCS8vICAgICAgICAgaW5jcmVhc2VkU3Rha2UsCgkvLyAgICAgICAgIHRva2VuUmV3YXJkUGFpZE91dCwKCS8vICAgICAgICAgdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQsCgkvLyAgICAgICAgIGV4Y2Vzc1RvRmVlU2luaywKCS8vICAgICAgIF0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglieXRlYyA0IC8vICAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWNvbmNhdAoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJY29uY2F0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDIyIC8vIGluY3JlYXNlZFN0YWtlOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMTYgLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAxNyAvLyBleGNlc3NUb0ZlZVNpbms6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGdvT25saW5lKHBheSxieXRlW10sYnl0ZVtdLGJ5dGVbXSx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfZ29PbmxpbmU6CgkvLyB2b3RlS2V5RGlsdXRpb246IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNgoJYnRvaQoKCS8vIHZvdGVMYXN0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDUKCWJ0b2kKCgkvLyB2b3RlRmlyc3Q6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJYnRvaQoKCS8vIHN0YXRlUHJvb2ZQSzogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglleHRyYWN0IDIgMAoKCS8vIHNlbGVjdGlvblBLOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWV4dHJhY3QgMiAwCgoJLy8gdm90ZVBLOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZmVlUGF5bWVudDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50YyAxIC8vIDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludGMgMSAvLyAgcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDYgKGZlZVBheW1lbnQpIGZvciBnb09ubGluZSBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGdvT25saW5lKHBheSxieXRlW10sYnl0ZVtdLGJ5dGVbXSx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGdvT25saW5lCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnb09ubGluZShmZWVQYXltZW50OiBQYXlUeG4sIHZvdGVQSzogYnl0ZXMsIHNlbGVjdGlvblBLOiBieXRlcywgc3RhdGVQcm9vZlBLOiBieXRlcywgdm90ZUZpcnN0OiB1aW50NjQsIHZvdGVMYXN0OiB1aW50NjQsIHZvdGVLZXlEaWx1dGlvbjogdWludDY0KTogdm9pZAovLwovLyBSZWdpc3RlcnMgYSBzdGFraW5nIHBvb2wga2V5IG9ubGluZSBhZ2FpbnN0IGEgcGFydGljaXBhdGlvbiBrZXkuCi8vIFsgT05MWSBPV05FUiBPUiBNQU5BR0VSIENBTiBDQUxMIF0KLy8KLy8gQHBhcmFtIHtQYXlUeG59IGZlZVBheW1lbnQgLSBwYXltZW50IHRvIGNvdmVyIGV4dHJhIGZlZSBvZiBnb2luZyBvbmxpbmUgaWYgb2ZmbGluZSAtIG9yIDAgaWYgbm90IHJlbmV3YWwKLy8gQHBhcmFtIHtieXRlc30gdm90ZVBLIC0gVGhlIHZvdGUgcHVibGljIGtleS4KLy8gQHBhcmFtIHtieXRlc30gc2VsZWN0aW9uUEsgLSBUaGUgc2VsZWN0aW9uIHB1YmxpYyBrZXkuCi8vIEBwYXJhbSB7Ynl0ZXN9IHN0YXRlUHJvb2ZQSyAtIFRoZSBzdGF0ZSBwcm9vZiBwdWJsaWMga2V5LgovLyBAcGFyYW0ge3VpbnQ2NH0gdm90ZUZpcnN0IC0gVGhlIGZpcnN0IHZvdGUgaW5kZXguCi8vIEBwYXJhbSB7dWludDY0fSB2b3RlTGFzdCAtIFRoZSBsYXN0IHZvdGUgaW5kZXguCi8vIEBwYXJhbSB7dWludDY0fSB2b3RlS2V5RGlsdXRpb24gLSBUaGUgdm90ZSBrZXkgZGlsdXRpb24gdmFsdWUuCi8vIEB0aHJvd3Mge0Vycm9yfSBXaWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSBjYWxsZXIgaXMgbm90IHRoZSBvd25lciBvciBhIG1hbmFnZXIuCmdvT25saW5lOgoJcHJvdG8gNyAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODgxCgkvLyBhc3NlcnQodGhpcy5pc093bmVyT3JNYW5hZ2VyQ2FsbGVyKCksICdjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3InKQoJY2FsbHN1YiBpc093bmVyT3JNYW5hZ2VyQ2FsbGVyCgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODgyCgkvLyBleHRyYUZlZSA9IHRoaXMuZ2V0R29PbmxpbmVGZWUoKQoJY2FsbHN1YiBnZXRHb09ubGluZUZlZQoJZnJhbWVfYnVyeSAwIC8vIGV4dHJhRmVlOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODgzCgkvLyB2ZXJpZnlQYXlUeG4oZmVlUGF5bWVudCwgeyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgYW1vdW50OiBleHRyYUZlZSB9KQoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gZmVlUGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJmZWVQYXltZW50IiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gZmVlUGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAwIC8vIGV4dHJhRmVlOiB1aW50NjQKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJmZWVQYXltZW50IiwiZmllbGQiOiJhbW91bnQiLCJleHBlY3RlZCI6ImV4dHJhRmVlIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4ODQKCS8vIHNlbmRPbmxpbmVLZXlSZWdpc3RyYXRpb24oewoJLy8gICAgICAgdm90ZVBLOiB2b3RlUEssCgkvLyAgICAgICBzZWxlY3Rpb25QSzogc2VsZWN0aW9uUEssCgkvLyAgICAgICBzdGF0ZVByb29mUEs6IHN0YXRlUHJvb2ZQSywKCS8vICAgICAgIHZvdGVGaXJzdDogdm90ZUZpcnN0LAoJLy8gICAgICAgdm90ZUxhc3Q6IHZvdGVMYXN0LAoJLy8gICAgICAgdm90ZUtleURpbHV0aW9uOiB2b3RlS2V5RGlsdXRpb24sCgkvLyAgICAgICBmZWU6IHRoaXMuZ2V0R29PbmxpbmVGZWUoKSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxOCAvLyAga2V5cmVnCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjg4NQoJLy8gdm90ZVBLOiB2b3RlUEsKCWZyYW1lX2RpZyAtMiAvLyB2b3RlUEs6IGJ5dGVzCglpdHhuX2ZpZWxkIFZvdGVQSwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4ODYKCS8vIHNlbGVjdGlvblBLOiBzZWxlY3Rpb25QSwoJZnJhbWVfZGlnIC0zIC8vIHNlbGVjdGlvblBLOiBieXRlcwoJaXR4bl9maWVsZCBTZWxlY3Rpb25QSwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4ODcKCS8vIHN0YXRlUHJvb2ZQSzogc3RhdGVQcm9vZlBLCglmcmFtZV9kaWcgLTQgLy8gc3RhdGVQcm9vZlBLOiBieXRlcwoJaXR4bl9maWVsZCBTdGF0ZVByb29mUEsKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODg4CgkvLyB2b3RlRmlyc3Q6IHZvdGVGaXJzdAoJZnJhbWVfZGlnIC01IC8vIHZvdGVGaXJzdDogdWludDY0CglpdHhuX2ZpZWxkIFZvdGVGaXJzdAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4ODkKCS8vIHZvdGVMYXN0OiB2b3RlTGFzdAoJZnJhbWVfZGlnIC02IC8vIHZvdGVMYXN0OiB1aW50NjQKCWl0eG5fZmllbGQgVm90ZUxhc3QKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODkwCgkvLyB2b3RlS2V5RGlsdXRpb246IHZvdGVLZXlEaWx1dGlvbgoJZnJhbWVfZGlnIC03IC8vIHZvdGVLZXlEaWx1dGlvbjogdWludDY0CglpdHhuX2ZpZWxkIFZvdGVLZXlEaWx1dGlvbgoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4OTEKCS8vIGZlZTogdGhpcy5nZXRHb09ubGluZUZlZSgpCgljYWxsc3ViIGdldEdvT25saW5lRmVlCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gZ29PZmZsaW5lKCl2b2lkCiphYmlfcm91dGVfZ29PZmZsaW5lOgoJLy8gZXhlY3V0ZSBnb09mZmxpbmUoKXZvaWQKCWNhbGxzdWIgZ29PZmZsaW5lCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnb09mZmxpbmUoKTogdm9pZAovLwovLyBNYXJrcyBhIHN0YWtpbmcgcG9vbCBrZXkgT0ZGTElORS4KLy8gWyBPTkxZIE9XTkVSIE9SIE1BTkFHRVIgQ0FOIENBTEwgXQpnb09mZmxpbmU6Cglwcm90byAwIDAKCgkvLyAqaWY0Nl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MDMKCS8vIHRoaXMudHhuLnNlbmRlciAhPT0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkuYWRkcmVzcwoJdHhuIFNlbmRlcgoJYnl0ZWMgMSAvLyAgImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgkhPQoJYnogKmlmNDZfZW5kCgoJLy8gKmlmNDZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkwNAoJLy8gYXNzZXJ0KHRoaXMuaXNPd25lck9yTWFuYWdlckNhbGxlcigpLCAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yJykKCWNhbGxzdWIgaXNPd25lck9yTWFuYWdlckNhbGxlcgoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcgoJYXNzZXJ0CgoqaWY0Nl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTA3CgkvLyBzZW5kT2ZmbGluZUtleVJlZ2lzdHJhdGlvbih7fSkKCWl0eG5fYmVnaW4KCWludGMgMTggLy8gIGtleXJlZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gbGlua1RvTkZEKHVpbnQ2NCxzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX2xpbmtUb05GRDoKCS8vIG5mZE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBuZmRBcHBJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBsaW5rVG9ORkQodWludDY0LHN0cmluZyl2b2lkCgljYWxsc3ViIGxpbmtUb05GRAoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gbGlua1RvTkZEKG5mZEFwcElkOiB1aW50NjQsIG5mZE5hbWU6IHN0cmluZyk6IHZvaWQKbGlua1RvTkZEOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkxNAoJLy8gYXNzZXJ0KHRoaXMuaXNPd25lck9yTWFuYWdlckNhbGxlcigpLCAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yJykKCWNhbGxzdWIgaXNPd25lck9yTWFuYWdlckNhbGxlcgoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkxNgoJLy8gc2VuZEFwcENhbGwoewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpLAoJLy8gICAgICAgYXBwbGljYXRpb25BcmdzOiBbJ3ZlcmlmeV9uZmRfYWRkcicsIG5mZE5hbWUsIGl0b2IobmZkQXBwSWQpLCByYXdCeXRlcyh0aGlzLmFwcC5hZGRyZXNzKV0sCgkvLyAgICAgICBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MTcKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5uZmRSZWdpc3RyeUFwcElkKQoJaW50YyAxNSAvLyBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MTgKCS8vIGFwcGxpY2F0aW9uQXJnczogWyd2ZXJpZnlfbmZkX2FkZHInLCBuZmROYW1lLCBpdG9iKG5mZEFwcElkKSwgcmF3Qnl0ZXModGhpcy5hcHAuYWRkcmVzcyldCglwdXNoYnl0ZXMgMHg3NjY1NzI2OTY2Nzk1ZjZlNjY2NDVmNjE2NDY0NzIgLy8gInZlcmlmeV9uZmRfYWRkciIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTIgLy8gbmZkTmFtZTogc3RyaW5nCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0xIC8vIG5mZEFwcElkOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTE5CgkvLyBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKV0KCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJZDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9ucwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0WzI0XSx1aW50NjQpCiphYmlfcm91dGVfcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW86CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIxIC8vIDB4MTUxZjdjNzUKCgkvLyBwb29sS2V5OiAodWludDY0LHVpbnQ2NCx1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJcHVzaGludCAyNAoJPT0KCgkvLyBhcmd1bWVudCAwIChwb29sS2V5KSBmb3IgcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8gbXVzdCBiZSBhICh1aW50NjQsdWludDY0LHVpbnQ2NCkKCWFzc2VydAoKCS8vIGV4ZWN1dGUgcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0WzI0XSx1aW50NjQpCgljYWxsc3ViIHByb3hpZWRTZXRUb2tlblBheW91dFJhdGlvCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8ocG9vbEtleTogVmFsaWRhdG9yUG9vbEtleSk6IFBvb2xUb2tlblBheW91dFJhdGlvCi8vCi8vIHByb3hpZWRTZXRUb2tlblBheW91dFJhdGlvIGlzIG1lYW50IHRvIGJlIGNhbGxlZCBieSBwb29scyAhPSAxIC0gY2FsbGluZyBVUywgcG9vbCAjMQovLyBXZSBuZWVkIHRvIHZlcmlmeSB0aGF0IHdlIGFyZSBpbiBmYWN0IGJlaW5nIGNhbGxlZCBieSBhbm90aGVyIG9mIE9VUiBwb29scyAobm90IHVzKQovLyBhbmQgdGhlbiB3ZSdsbCBjYWxsIHRoZSB2YWxpZGF0b3Igb24gdGhlaXIgYmVoYWxmIHRvIHVwZGF0ZSB0aGUgdG9rZW4gcGF5b3V0cwovLyBAcGFyYW0gcG9vbEtleSAtIFZhbGlkYXRvclBvb2xLZXkgdHVwbGUKcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW86Cglwcm90byAxIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzAKCS8vIGFzc2VydCh0aGlzLnZhbGlkYXRvcklkLnZhbHVlID09PSBwb29sS2V5LmlkLCAnY2FsbGVyIG11c3QgYmUgcGFydCBvZiBzYW1lIHZhbGlkYXRvciBzZXQhJykKCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCT09CgoJLy8gY2FsbGVyIG11c3QgYmUgcGFydCBvZiBzYW1lIHZhbGlkYXRvciBzZXQhCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTMxCgkvLyBhc3NlcnQodGhpcy5wb29sSWQudmFsdWUgPT09IDEsICdjYWxsZWUgbXVzdCBiZSBwb29sIDEnKQoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJPT0KCgkvLyBjYWxsZWUgbXVzdCBiZSBwb29sIDEKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzIKCS8vIGFzc2VydChwb29sS2V5LnBvb2xJZCAhPT0gMSwgJ2NhbGxlciBtdXN0IE5PVCBiZSBwb29sIDEnKQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnRjIDEgLy8gMQoJIT0KCgkvLyBjYWxsZXIgbXVzdCBOT1QgYmUgcG9vbCAxCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTM0CgkvLyBjYWxsZXJQb29sQXBwSUQgPSBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLmdldFBvb2xBcHBJZD4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbcG9vbEtleS5pZCwgcG9vbEtleS5wb29sSWRdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWJ5dGVjIDI0IC8vICBtZXRob2QgImdldFBvb2xBcHBJZCh1aW50NjQsdWludDY0KXVpbnQ2NCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkzNQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkKCWJ5dGVjIDEgLy8gICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzYKCS8vIG1ldGhvZEFyZ3M6IFtwb29sS2V5LmlkLCBwb29sS2V5LnBvb2xJZF0KCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludGMgMSAvLyAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyBjYWxsZXJQb29sQXBwSUQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzgKCS8vIGFzc2VydChjYWxsZXJQb29sQXBwSUQgPT09IHBvb2xLZXkucG9vbEFwcElkKQoJZnJhbWVfZGlnIDAgLy8gY2FsbGVyUG9vbEFwcElEOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDE2IDgKCWJ0b2kKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTM5CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBBcHBJRC5mcm9tVWludDY0KHBvb2xLZXkucG9vbEFwcElkKS5hZGRyZXNzKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk0MQoJLy8gcmV0dXJuIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuc2V0VG9rZW5QYXlvdXRSYXRpbz4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgfSk7CglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWJ5dGVjIDI1IC8vICBtZXRob2QgInNldFRva2VuUGF5b3V0UmF0aW8odWludDY0KSh1aW50NjRbMjRdLHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NDIKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTQzCgkvLyBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50YyAxIC8vIDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBpc093bmVyT3JNYW5hZ2VyQ2FsbGVyKCk6IGJvb2xlYW4KaXNPd25lck9yTWFuYWdlckNhbGxlcjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk0OAoJLy8gT3duZXJBbmRNYW5hZ2VyID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5nZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXI+KHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCXB1c2hieXRlcyAweDJmYTIyYzRiIC8vIG1ldGhvZCAiZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyKHVpbnQ2NCkoYWRkcmVzcyxhZGRyZXNzKSIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk0OQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkKCWJ5dGVjIDEgLy8gICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NTAKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXQoJYnl0ZWMgMyAvLyAgInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnRjIDEgLy8gMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglmcmFtZV9idXJ5IDAgLy8gT3duZXJBbmRNYW5hZ2VyOiAoYWRkcmVzcyxhZGRyZXNzKQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NTIKCS8vIHJldHVybiB0aGlzLnR4bi5zZW5kZXIgPT09IE93bmVyQW5kTWFuYWdlclswXSB8fCB0aGlzLnR4bi5zZW5kZXIgPT09IE93bmVyQW5kTWFuYWdlclsxXTsKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAwIC8vIE93bmVyQW5kTWFuYWdlcjogKGFkZHJlc3MsYWRkcmVzcykKCWV4dHJhY3QgMCAzMgoJPT0KCWR1cAoJYm56ICpza2lwX29yMgoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIDAgLy8gT3duZXJBbmRNYW5hZ2VyOiAoYWRkcmVzcyxhZGRyZXNzKQoJZXh0cmFjdCAzMiAzMgoJPT0KCXx8Cgoqc2tpcF9vcjI6CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gZ2V0RmVlU2luaygpOiBBZGRyZXNzCmdldEZlZVNpbms6Cglwcm90byAwIDEKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTU2CgkvLyByZXR1cm4gdGhpcy5mZWVTaW5rQWRkcjsKCWJ5dGVjIDIyIC8vIFRNUExfZmVlU2lua0FkZHIKCXJldHN1YgoKLy8gYWxnb1NhdHVyYXRpb25MZXZlbCgpOiB1aW50NjQKLy8KLy8gUmV0dXJucyB0aGUgbWF4aW11bSBhbGxvd2VkIHN0YWtlIHBlciB2YWxpZGF0b3IgYmFzZWQgb24gYSBwZXJjZW50YWdlIG9mIGFsbCBjdXJyZW50IG9ubGluZSBzdGFrZSBiZWZvcmUKLy8gdGhlIHZhbGlkYXRvciBpcyBjb25zaWRlcmVkIHNhdHVyYXRlZCAtIHdoZXJlIHJld2FyZHMgYXJlIGRpbWluaXNoZWQuCmFsZ29TYXR1cmF0aW9uTGV2ZWw6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NjYKCS8vIG9ubGluZSA9IHRoaXMuZ2V0Q3VycmVudE9ubGluZVN0YWtlKCkKCWNhbGxzdWIgZ2V0Q3VycmVudE9ubGluZVN0YWtlCglmcmFtZV9idXJ5IDAgLy8gb25saW5lOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTY4CgkvLyByZXR1cm4gd2lkZVJhdGlvKFtvbmxpbmUsIE1BWF9WQUxJREFUT1JfU09GVF9QQ1RfT0ZfT05MSU5FXzFERUNJTUFMXSwgWzEwMDBdKTsKCWZyYW1lX2RpZyAwIC8vIG9ubGluZTogdWludDY0CglwdXNoaW50IDEwMAoJbXVsdwoJaW50YyAwIC8vIDAKCWludGMgMTAgLy8gMTAwMAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gZ2V0R29PbmxpbmVGZWUoKTogdWludDY0CmdldEdvT25saW5lRmVlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTc1CgkvLyBpc09ubGluZSA9IGZhbHNlCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAwIC8vIGlzT25saW5lOiBib29sCgoJLy8gKmlmNDdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTc2CgkvLyAhaXNPbmxpbmUKCWZyYW1lX2RpZyAwIC8vIGlzT25saW5lOiBib29sCgkhCglieiAqaWY0N19lbmQKCgkvLyAqaWY0N19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTc4CgkvLyByZXR1cm4gMl8wMDBfMDAwOwoJcHVzaGludCAyXzAwMF8wMDAKCWIgKmdldEdvT25saW5lRmVlKnJldHVybgoKKmlmNDdfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk4MAoJLy8gcmV0dXJuIDA7CglpbnRjIDAgLy8gMAoKKmdldEdvT25saW5lRmVlKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBnZXRDdXJyZW50T25saW5lU3Rha2UoKTogdWludDY0CmdldEN1cnJlbnRPbmxpbmVTdGFrZToKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5ODUKCS8vIHJldHVybiAyXzAwMF8wMDBfMDAwXzAwMF8wMDA7CglwdXNoaW50IDJfMDAwXzAwMF8wMDBfMDAwXzAwMAoJcmV0c3ViCgovLyBjaGVja0lmQmluQ2xvc2VkKCk6IHZvaWQKLy8KLy8gQ2hlY2tzIGlmIHRoZSBjdXJyZW50IHJvdW5kIGlzIGluIGEgJ25ldyBjYWxjdWxhdGlvbiBiaW4nIChhcHByb3hpbWF0ZWx5IGRhaWx5KQpjaGVja0lmQmluQ2xvc2VkOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gNAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5OTIKCS8vIGN1cnJlbnRCaW5TaXplID0gdGhpcy5yb3VuZHNQZXJEYXkudmFsdWUgYXMgdWludDEyOAoJYnl0ZWMgMTAgLy8gICJyb3VuZHNQZXJEYXkiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJZnJhbWVfYnVyeSAwIC8vIGN1cnJlbnRCaW5TaXplOiB1bnNhZmUgdWludDEyOAoKCS8vICppZjQ4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5MwoJLy8gZ2xvYmFscy5yb3VuZCA+PSB0aGlzLmJpblJvdW5kU3RhcnQudmFsdWUgKyAoY3VycmVudEJpblNpemUgYXMgdWludDY0KQoJZ2xvYmFsIFJvdW5kCglieXRlYyAxMSAvLyAgImJpblJvdW5kU3RhcnQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDAgLy8gY3VycmVudEJpblNpemU6IHVuc2FmZSB1aW50MTI4CglkdXAKCWJpdGxlbgoJaW50YyAzIC8vIDY0Cgk8PQoKCS8vIGN1cnJlbnRCaW5TaXplIGFzIHVpbnQ2NCBvdmVyZmxvd2VkIDY0IGJpdHMKCWFzc2VydAoJcHVzaGJ5dGVzIDB4RkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludGMgMTQgLy8gOAoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJYnRvaQoJKwoJPj0KCWJ6ICppZjQ4X2VuZAoKCS8vICppZjQ4X2NvbnNlcXVlbnQKCS8vICppZjQ5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5NAoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAzMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludGMgOSAvLyAzMDAKCTwKCWJ6ICppZjQ5X2VuZAoKCS8vICppZjQ5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5OTUKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyA1IC8vICAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnRjIDggLy8gIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjQ5X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5OTcKCS8vIGFwcHJveFJvdW5kc1BlclllYXI6IHVpbnQxMjggPSBjdXJyZW50QmluU2l6ZSAqICgzNjUgYXMgdWludDEyOCkKCWZyYW1lX2RpZyAwIC8vIGN1cnJlbnRCaW5TaXplOiB1bnNhZmUgdWludDEyOAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNmQKCWIqCglkdXAKCWJpdGxlbgoJaW50YyA2IC8vIDEyOAoJPD0KCgkvLyBjdXJyZW50QmluU2l6ZSAqICgzNjUgYXMgdWludDEyOCkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlYyA4IC8vIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnRjIDUgLy8gMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWZyYW1lX2J1cnkgMSAvLyBhcHByb3hSb3VuZHNQZXJZZWFyOiB1aW50MTI4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5OAoJLy8gYXZnU3Rha2U6IHVpbnQxMjggPSB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgLyBjdXJyZW50QmluU2l6ZQoJYnl0ZWMgNyAvLyAgInN0YWtlQWNjdW11bGF0b3IiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDAgLy8gY3VycmVudEJpblNpemU6IHVuc2FmZSB1aW50MTI4CgliLwoJZHVwCgliaXRsZW4KCWludGMgNiAvLyAxMjgKCTw9CgoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlIC8gY3VycmVudEJpblNpemUgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlYyA4IC8vIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnRjIDUgLy8gMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWZyYW1lX2J1cnkgMiAvLyBhdmdTdGFrZTogdWludDEyOAoKCS8vICppZjUwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5OQoJLy8gYXZnU3Rha2UgIT09IDAKCWZyYW1lX2RpZyAyIC8vIGF2Z1N0YWtlOiB1aW50MTI4CglieXRlYyAxNiAvLyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCgliIT0KCWJ6ICppZjUwX2VuZAoKCS8vICppZjUwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDAzCgkvLyBhcHI6IHVpbnQxMjggPQoJLy8gICAgICAgICAgICgoKHRoaXMucmV3YXJkQWNjdW11bGF0b3IudmFsdWUgYXMgdWludDEyOCkgKiAoMTAwMDAgYXMgdWludDEyOCkpIC8gYXZnU3Rha2UpICoKCS8vICAgICAgICAgICAoYXBwcm94Um91bmRzUGVyWWVhciAvIGN1cnJlbnRCaW5TaXplKQoJYnl0ZWMgMTIgLy8gICJyZXdhcmRBY2N1bXVsYXRvciIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjcxMAoJYioKCWZyYW1lX2RpZyAyIC8vIGF2Z1N0YWtlOiB1aW50MTI4CgliLwoJZnJhbWVfZGlnIDEgLy8gYXBwcm94Um91bmRzUGVyWWVhcjogdWludDEyOAoJZnJhbWVfZGlnIDAgLy8gY3VycmVudEJpblNpemU6IHVuc2FmZSB1aW50MTI4CgliLwoJYioKCWR1cAoJYml0bGVuCglpbnRjIDYgLy8gMTI4Cgk8PQoKCS8vICgoKHRoaXMucmV3YXJkQWNjdW11bGF0b3IudmFsdWUgYXMgdWludDEyOCkgKiAoMTAwMDAgYXMgdWludDEyOCkpIC8gYXZnU3Rha2UpICpcbiAgICAgICAgICAoYXBwcm94Um91bmRzUGVyWWVhciAvIGN1cnJlbnRCaW5TaXplKSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGVjIDggLy8gMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludGMgNSAvLyAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJZnJhbWVfYnVyeSAzIC8vIGFwcjogdWludDEyOAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDA3CgkvLyBhbHBoYTogdWludDEyOCA9IDEwIGFzIHVpbnQxMjgKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBhCglmcmFtZV9idXJ5IDQgLy8gYWxwaGE6IHVuc2FmZSB1aW50MTI4CgoJLy8gKmlmNTFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAwOQoJLy8gYXZnU3Rha2UgPiAzMDAwMDAwMDAwMDAKCWZyYW1lX2RpZyAyIC8vIGF2Z1N0YWtlOiB1aW50MTI4CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDVkOTY0YjgwMAoJYj4KCWJ6ICppZjUxX2VuZAoKCS8vICppZjUxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDEwCgkvLyBhbHBoYSA9IDkwIGFzIHVpbnQxMjgKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVhCglmcmFtZV9idXJ5IDQgLy8gYWxwaGE6IHVuc2FmZSB1aW50MTI4CgoqaWY1MV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAxMgoJLy8gdGhpcy53ZWlnaHRlZE1vdmluZ0F2ZXJhZ2UudmFsdWUgPQoJLy8gICAgICAgICAgICh0aGlzLndlaWdodGVkTW92aW5nQXZlcmFnZS52YWx1ZSAqICgoMTAwIGFzIHVpbnQxMjgpIC0gYWxwaGEpKSAvICgxMDAgYXMgdWludDEyOCkgKwoJLy8gICAgICAgICAgIChhcHIgKiBhbHBoYSkgLyAoMTAwIGFzIHVpbnQxMjgpCglieXRlYyAyMCAvLyAgImV3bWEiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglieXRlYyAxNyAvLyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY0CglmcmFtZV9kaWcgNCAvLyBhbHBoYTogdW5zYWZlIHVpbnQxMjgKCWItCgliKgoJYnl0ZWMgMTcgLy8gMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAoJYi8KCWZyYW1lX2RpZyAzIC8vIGFwcjogdWludDEyOAoJZnJhbWVfZGlnIDQgLy8gYWxwaGE6IHVuc2FmZSB1aW50MTI4CgliKgoJYnl0ZWMgMTcgLy8gMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAoJYi8KCWIrCglkdXAKCWJpdGxlbgoJaW50YyA2IC8vIDEyOAoJPD0KCgkvLyAodGhpcy53ZWlnaHRlZE1vdmluZ0F2ZXJhZ2UudmFsdWUgKiAoKDEwMCBhcyB1aW50MTI4KSAtIGFscGhhKSkgLyAoMTAwIGFzIHVpbnQxMjgpICtcbiAgICAgICAgICAoYXByICogYWxwaGEpIC8gKDEwMCBhcyB1aW50MTI4KSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGVjIDggLy8gMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludGMgNSAvLyAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJYXBwX2dsb2JhbF9wdXQKCippZjUwX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDE4CgkvLyB0aGlzLnNldFJvdW5kc1BlckRheSgpCgljYWxsc3ViIHNldFJvdW5kc1BlckRheQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDE5CgkvLyB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgPSAodGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgYXMgdWludDEyOCkgKiAodGhpcy5yb3VuZHNQZXJEYXkudmFsdWUgYXMgdWludDEyOCkKCWJ5dGVjIDcgLy8gICJzdGFrZUFjY3VtdWxhdG9yIgoJYnl0ZWMgNiAvLyAgInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglieXRlYyAxMCAvLyAgInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCgliKgoJZHVwCgliaXRsZW4KCWludGMgNiAvLyAxMjgKCTw9CgoJLy8gKHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlIGFzIHVpbnQxMjgpICogKHRoaXMucm91bmRzUGVyRGF5LnZhbHVlIGFzIHVpbnQxMjgpIG92ZXJmbG93ZWQgMTI4IGJpdHMKCWFzc2VydAoJYnl0ZWMgOCAvLyAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50YyA1IC8vIDE2CgktCglzd2FwCglzdWJzdHJpbmczCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDIwCgkvLyB0aGlzLnJld2FyZEFjY3VtdWxhdG9yLnZhbHVlID0gMAoJYnl0ZWMgMTIgLy8gICJyZXdhcmRBY2N1bXVsYXRvciIKCWludGMgMCAvLyAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDIxCgkvLyB0aGlzLmJpblJvdW5kU3RhcnQudmFsdWUgPSBnbG9iYWxzLnJvdW5kIC0gKGdsb2JhbHMucm91bmQgJSB0aGlzLnJvdW5kc1BlckRheS52YWx1ZSkKCWJ5dGVjIDExIC8vICAiYmluUm91bmRTdGFydCIKCWdsb2JhbCBSb3VuZAoJZ2xvYmFsIFJvdW5kCglieXRlYyAxMCAvLyAgInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CgklCgktCglhcHBfZ2xvYmFsX3B1dAoKKmlmNDhfZW5kOgoJcmV0c3ViCgovLyBzZXRSb3VuZHNQZXJEYXkoKTogdm9pZApzZXRSb3VuZHNQZXJEYXk6Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAyNgoJLy8gdGhpcy5yb3VuZHNQZXJEYXkudmFsdWUgPSBBVkdfUk9VTkRTX1BFUl9EQVkKCWJ5dGVjIDEwIC8vICAicm91bmRzUGVyRGF5IgoJcHVzaGludCAzMDg1NwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4NTllOTBhYTYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbih1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDMxNzJjYTlkIC8vIG1ldGhvZCAiZ2FzKCl2b2lkIgoJcHVzaGJ5dGVzIDB4NDdjZmNjMDQgLy8gbWV0aG9kICJpbml0U3RvcmFnZShwYXkpdm9pZCIKCXB1c2hieXRlcyAweGY5YzcwY2JkIC8vIG1ldGhvZCAiYWRkU3Rha2UocGF5LGFkZHJlc3MpdWludDY0IgoJcHVzaGJ5dGVzIDB4NDIxYjVhYmUgLy8gbWV0aG9kICJyZW1vdmVTdGFrZShhZGRyZXNzLHVpbnQ2NCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZjU4OTJkNTYgLy8gbWV0aG9kICJjbGFpbVRva2Vucygpdm9pZCIKCXB1c2hieXRlcyAweDVjZmJiMDU3IC8vIG1ldGhvZCAiZ2V0U3Rha2VySW5mbyhhZGRyZXNzKShhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkiCglwdXNoYnl0ZXMgMHg2M2YzZjI4YiAvLyBtZXRob2QgInBheVRva2VuUmV3YXJkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCl2b2lkIgoJcHVzaGJ5dGVzIDB4ODZhMzcyNWMgLy8gbWV0aG9kICJ1cGRhdGVBbGdvZFZlcihzdHJpbmcpdm9pZCIKCXB1c2hieXRlcyAweGVmYzI2MDhkIC8vIG1ldGhvZCAiZXBvY2hCYWxhbmNlVXBkYXRlKCl2b2lkIgoJcHVzaGJ5dGVzIDB4NDAwZTE0ZmIgLy8gbWV0aG9kICJnb09ubGluZShwYXksYnl0ZVtdLGJ5dGVbXSxieXRlW10sdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweDUxZWYzYjIxIC8vIG1ldGhvZCAiZ29PZmZsaW5lKCl2b2lkIgoJcHVzaGJ5dGVzIDB4YTI0ZTI3MTcgLy8gbWV0aG9kICJsaW5rVG9ORkQodWludDY0LHN0cmluZyl2b2lkIgoJYnl0ZWMgMjYgLy8gIG1ldGhvZCAicHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0WzI0XSx1aW50NjQpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9nYXMgKmFiaV9yb3V0ZV9pbml0U3RvcmFnZSAqYWJpX3JvdXRlX2FkZFN0YWtlICphYmlfcm91dGVfcmVtb3ZlU3Rha2UgKmFiaV9yb3V0ZV9jbGFpbVRva2VucyAqYWJpX3JvdXRlX2dldFN0YWtlckluZm8gKmFiaV9yb3V0ZV9wYXlUb2tlblJld2FyZCAqYWJpX3JvdXRlX3VwZGF0ZUFsZ29kVmVyICphYmlfcm91dGVfZXBvY2hCYWxhbmNlVXBkYXRlICphYmlfcm91dGVfZ29PbmxpbmUgKmFiaV9yb3V0ZV9nb09mZmxpbmUgKmFiaV9yb3V0ZV9saW5rVG9ORkQgKmFiaV9yb3V0ZV9wcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKmNhbGxfVXBkYXRlQXBwbGljYXRpb246CglwdXNoYnl0ZXMgMHg0NmY3NjUzMyAvLyBtZXRob2QgInVwZGF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91cGRhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIFVwZGF0ZUFwcGxpY2F0aW9uCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAwIDEgNiA2NCAzMiAxNiAxMjggMjAwIDUgMzAwIDEwMDAgNCAxXzAwMF8wMDAgMl8xMDBfMDAwIDggMTAwMDAwIDQwMCAyIDQwIDQ4IFRNUExfbmZkUmVnaXN0cnlBcHBJZApieXRlY2Jsb2NrIDB4IDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgMHg3Mzc0NjE2YjY1NzI3MyAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgMHg3MDZmNmY2YzQ5NjQgMHgwYTgxMDEgMHg3Mzc0NjE2YjY1NjQgMHg3Mzc0NjE2YjY1NDE2MzYzNzU2ZDc1NmM2MTc0NmY3MiAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGIDB4MDAwMDAwMDAwMDAwMDAwMCAweDcyNmY3NTZlNjQ3MzUwNjU3MjQ0NjE3OSAweDYyNjk2ZTUyNmY3NTZlNjQ1Mzc0NjE3Mjc0IDB4NzI2NTc3NjE3MjY0NDE2MzYzNzU2ZDc1NmM2MTc0NmY3MiAweDZlNzU2ZDUzNzQ2MTZiNjU3MjczIDB4NmM2MTczNzQ1MDYxNzk2Zjc1NzQgMHg3NWFmZjYxZCAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQgMHg2ZDY5NmU0NTZlNzQ3Mjc5NTM3NDYxNmI2NSAweDY1NzA2ZjYzNjg0ZTc1NmQ2MjY1NzIgMHg2NTc3NmQ2MSAweDE1MWY3Yzc1IDB4YTJkYzUxYjUgMHg1NzI3NjdkMSAweDRkZjhkODZlIDB4MGMyMjQ1ZTEgMHgwMCBUTVBMX2ZlZVNpbmtBZGRyCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNS4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnRjIDIgLy8gNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbiAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV91cGRhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgdXBkYXRlQXBwbGljYXRpb24KCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHVwZGF0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKdXBkYXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTQKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gQWRkcmVzcy5mcm9tQWRkcmVzcygnTFo0VjJJUlZMQ1hGSks0UkVKVjRUQUdFS0VZVEEyR01SNlRDMjM0NE9CM0wzQUYzTVdYWjZaQUZJUScpLAoJLy8gICAgICAgJ1RlbXBvcmFyeTogY29udHJhY3QgaXMgdXBncmFkZWFibGUgYnV0IG9ubHkgZHVyaW5nIHRlc3RpbmcgYW5kIG9ubHkgZnJvbSBhIGRldmVsb3BtZW50IGFjY291bnQnCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJcHVzaGJ5dGVzIDB4NWU3OTVkMjIzNTU4YWU1NGFiOTEyMjZiYzk4MGM0NTEzMTMwNjhjYzhmYTYyZDZmOWM3MDc2YmQ4MGJiNjVhZiAvLyBhZGRyICJMWjRWMklSVkxDWEZKSzRSRUpWNFRBR0VLRVlUQTJHTVI2VEMyMzQ0T0IzTDNBRjNNV1haNlpBRklRIgoJPT0KCgkvLyBUZW1wb3Jhcnk6IGNvbnRyYWN0IGlzIHVwZ3JhZGVhYmxlIGJ1dCBvbmx5IGR1cmluZyB0ZXN0aW5nIGFuZCBvbmx5IGZyb20gYSBkZXZlbG9wbWVudCBhY2NvdW50Cglhc3NlcnQKCXJldHN1YgoKLy8gY3JlYXRlQXBwbGljYXRpb24odWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCS8vIG1pbkVudHJ5U3Rha2U6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJYnRvaQoKCS8vIHBvb2xJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGNyZWF0aW5nQ29udHJhY3RJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBjcmVhdGVBcHBsaWNhdGlvbih1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBjcmVhdGVBcHBsaWNhdGlvbgoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gY3JlYXRlQXBwbGljYXRpb24oY3JlYXRpbmdDb250cmFjdElkOiB1aW50NjQsIHZhbGlkYXRvcklkOiB1aW50NjQsIHBvb2xJZDogdWludDY0LCBtaW5FbnRyeVN0YWtlOiB1aW50NjQpOiB2b2lkCi8vCi8vIEluaXRpYWxpemUgdGhlIHN0YWtpbmcgcG9vbCB3LyBvd25lciBhbmQgbWFuYWdlciwgYnV0IGNhbiBvbmx5IGJlIGNyZWF0ZWQgYnkgdGhlIHZhbGlkYXRvciBjb250cmFjdC4KLy8gQHBhcmFtIHt1aW50NjR9IGNyZWF0aW5nQ29udHJhY3RJZCAtIGlkIG9mIGNvbnRyYWN0IHRoYXQgY29uc3RydWN0ZWQgdXMgLSB0aGUgdmFsaWRhdG9yIGFwcGxpY2F0aW9uIChzaW5nbGUgZ2xvYmFsIGluc3RhbmNlKQovLyBAcGFyYW0ge3VpbnQ2NH0gdmFsaWRhdG9ySWQgLSBpZCBvZiB2YWxpZGF0b3Igd2UncmUgYSBzdGFraW5nIHBvb2wgb2YKLy8gQHBhcmFtIHt1aW50NjR9IHBvb2xJZCAtIHdoaWNoIHBvb2wgaWQgYXJlIHdlCi8vIEBwYXJhbSB7dWludDY0fSBtaW5FbnRyeVN0YWtlIC0gbWluaW11bSBhbW91bnQgdG8gYmUgaW4gcG9vbCwgYnV0IGFsc28gbWluaW11bSBhbW91bnQgYmFsYW5jZSBjYW4ndCBnbyBiZWxvdyAod2l0aG91dCByZW1vdmluZyBhbGwhKQpjcmVhdGVBcHBsaWNhdGlvbjoKCXByb3RvIDQgMAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTA4CgkvLyBjcmVhdGluZ0NvbnRyYWN0SWQgPT09IDAKCWZyYW1lX2RpZyAtMSAvLyBjcmVhdGluZ0NvbnRyYWN0SWQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglieiAqaWYwX2Vsc2UKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTAKCS8vIGFzc2VydCh2YWxpZGF0b3JJZCA9PT0gMCkKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpbnRjIDAgLy8gMAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTEKCS8vIGFzc2VydChwb29sSWQgPT09IDApCglmcmFtZV9kaWcgLTMgLy8gcG9vbElkOiB1aW50NjQKCWludGMgMCAvLyAwCgk9PQoJYXNzZXJ0CgliICppZjBfZW5kCgoqaWYwX2Vsc2U6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTEzCgkvLyBhc3NlcnQodmFsaWRhdG9ySWQgIT09IDApCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTE0CgkvLyBhc3NlcnQocG9vbElkICE9PSAwKQoJZnJhbWVfZGlnIC0zIC8vIHBvb2xJZDogdWludDY0CglpbnRjIDAgLy8gMAoJIT0KCWFzc2VydAoKKmlmMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTE2CgkvLyBhc3NlcnQobWluRW50cnlTdGFrZSA+PSBNSU5fQUxHT19TVEFLRV9QRVJfUE9PTCwgJ3N0YWtpbmcgcG9vbCBtdXN0IGhhdmUgbWluaW11bSBlbnRyeSBvZiAxIGFsZ28nKQoJZnJhbWVfZGlnIC00IC8vIG1pbkVudHJ5U3Rha2U6IHVpbnQ2NAoJcHVzaGludCAxMDAwMDAwCgk+PQoKCS8vIHN0YWtpbmcgcG9vbCBtdXN0IGhhdmUgbWluaW11bSBlbnRyeSBvZiAxIGFsZ28KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTcKCS8vIHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlID0gY3JlYXRpbmdDb250cmFjdElkCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWZyYW1lX2RpZyAtMSAvLyBjcmVhdGluZ0NvbnRyYWN0SWQ6IHVpbnQ2NAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTE4CgkvLyB0aGlzLnZhbGlkYXRvcklkLnZhbHVlID0gdmFsaWRhdG9ySWQKCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTkKCS8vIHRoaXMucG9vbElkLnZhbHVlID0gcG9vbElkCglieXRlYyA0IC8vICAicG9vbElkIgoJZnJhbWVfZGlnIC0zIC8vIHBvb2xJZDogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjAKCS8vIHRoaXMubnVtU3Rha2Vycy52YWx1ZSA9IDAKCWJ5dGVjIDEzIC8vICAibnVtU3Rha2VycyIKCWludGMgMCAvLyAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjEKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlID0gMAoJYnl0ZWMgNiAvLyAgInN0YWtlZCIKCWludGMgMCAvLyAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjIKCS8vIHRoaXMubWluRW50cnlTdGFrZS52YWx1ZSA9IG1pbkVudHJ5U3Rha2UKCWJ5dGVjIDE4IC8vICAibWluRW50cnlTdGFrZSIKCWZyYW1lX2RpZyAtNCAvLyBtaW5FbnRyeVN0YWtlOiB1aW50NjQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEyMwoJLy8gdGhpcy5sYXN0UGF5b3V0LnZhbHVlID0gZ2xvYmFscy5yb3VuZAoJYnl0ZWMgMTQgLy8gICJsYXN0UGF5b3V0IgoJZ2xvYmFsIFJvdW5kCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjQKCS8vIHRoaXMuZXBvY2hOdW1iZXIudmFsdWUgPSAwCglieXRlYyAxOSAvLyAgImVwb2NoTnVtYmVyIgoJaW50YyAwIC8vIDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEyNgoJLy8gdGhpcy5zZXRSb3VuZHNQZXJEYXkoKQoJY2FsbHN1YiBzZXRSb3VuZHNQZXJEYXkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTI3CgkvLyB0aGlzLmJpblJvdW5kU3RhcnQudmFsdWUgPSBnbG9iYWxzLnJvdW5kIC0gKGdsb2JhbHMucm91bmQgJSB0aGlzLnJvdW5kc1BlckRheS52YWx1ZSkKCWJ5dGVjIDExIC8vICAiYmluUm91bmRTdGFydCIKCWdsb2JhbCBSb3VuZAoJZ2xvYmFsIFJvdW5kCglieXRlYyAxMCAvLyAgInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CgklCgktCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjgKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSA9IDAgYXMgdWludDEyOAoJYnl0ZWMgNyAvLyAgInN0YWtlQWNjdW11bGF0b3IiCglieXRlYyAxNiAvLyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjkKCS8vIHRoaXMucmV3YXJkQWNjdW11bGF0b3IudmFsdWUgPSAwCglieXRlYyAxMiAvLyAgInJld2FyZEFjY3VtdWxhdG9yIgoJaW50YyAwIC8vIDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEzMAoJLy8gdGhpcy53ZWlnaHRlZE1vdmluZ0F2ZXJhZ2UudmFsdWUgPSAwIGFzIHVpbnQxMjgKCWJ5dGVjIDIwIC8vICAiZXdtYSIKCWJ5dGVjIDE2IC8vIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGdhcygpdm9pZAoqYWJpX3JvdXRlX2dhczoKCS8vIGV4ZWN1dGUgZ2FzKCl2b2lkCgljYWxsc3ViIGdhcwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2FzKCk6IHZvaWQKLy8KLy8gZ2FzIGlzIGEgZHVtbXkgbm8tb3AgY2FsbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHBvb2wtdXAgcmVzb3VyY2UgcmVmZXJlbmNlcyBhbmQgb3Bjb2RlIGNvc3QKZ2FzOgoJcHJvdG8gMCAwCglyZXRzdWIKCi8vIGNvc3RGb3JCb3hTdG9yYWdlKHRvdGFsTnVtQnl0ZXM6IHVpbnQ2NCk6IHVpbnQ2NApjb3N0Rm9yQm94U3RvcmFnZToKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNDIKCS8vIHJldHVybiBTQ0JPWF9QRVJCT1ggKyB0b3RhbE51bUJ5dGVzICogU0NCT1hfUEVSQllURTsKCXB1c2hpbnQgMjUwMAoJZnJhbWVfZGlnIC0xIC8vIHRvdGFsTnVtQnl0ZXM6IHVpbnQ2NAoJaW50YyAxNiAvLyA0MDAKCSoKCSsKCXJldHN1YgoKLy8gaW5pdFN0b3JhZ2UocGF5KXZvaWQKKmFiaV9yb3V0ZV9pbml0U3RvcmFnZToKCS8vIG1iclBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludGMgMSAvLyAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnRjIDEgLy8gIHBheQoJPT0KCgkvLyBhcmd1bWVudCAwIChtYnJQYXltZW50KSBmb3IgaW5pdFN0b3JhZ2UgbXVzdCBiZSBhIHBheSB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBpbml0U3RvcmFnZShwYXkpdm9pZAoJY2FsbHN1YiBpbml0U3RvcmFnZQoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gaW5pdFN0b3JhZ2UobWJyUGF5bWVudDogUGF5VHhuKTogdm9pZAovLwovLyBDYWxsZWQgYWZ0ZXIgd2UncmUgY3JlYXRlZCBhbmQgdGhlbiBmdW5kZWQsIHNvIHdlIGNhbiBjcmVhdGUgb3VyIGxhcmdlIHN0YWtlcnMgbGVkZ2VyIHN0b3JhZ2UKLy8gQ2FsbGVyIGhhcyB0byBnZXQgTUJSIGFtb3VudHMgZnJvbSBWYWxpZGF0b3JSZWdpc3RyeSB0byBrbm93IGhvdyBtdWNoIHRvIGZ1bmQgdXMgdG8gY292ZXIgdGhlIGJveCBzdG9yYWdlIGNvc3QKLy8gSWYgdGhpcyBpcyBwb29sIDEgQU5EIHRoZSB2YWxpZGF0b3IgaGFzIHNwZWNpZmllZCBhIHJld2FyZCB0b2tlbiwgb3B0LWluIHRvIHRoYXQgdG9rZW4KLy8gc28gdGhhdCB0aGUgdmFsaWRhdG9yIGNhbiBzZWVkIHRoZSBwb29sIHdpdGggZnV0dXJlIHJld2FyZHMgb2YgdGhhdCB0b2tlbi4KLy8gQHBhcmFtIG1iclBheW1lbnQgcGF5bWVudCBmcm9tIGNhbGxlciB3aGljaCBjb3ZlcnMgbWJyIGluY3JlYXNlIG9mIG5ldyBzdGFraW5nIHBvb2xzJyBzdG9yYWdlCmluaXRTdG9yYWdlOgoJcHJvdG8gMSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gMwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNTMKCS8vIGFzc2VydCghdGhpcy5zdGFrZXJzLmV4aXN0cywgJ3N0YWtpbmcgcG9vbCBhbHJlYWR5IGluaXRpYWxpemVkJykKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCgoJLy8gc3Rha2luZyBwb29sIGFscmVhZHkgaW5pdGlhbGl6ZWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNTYKCS8vIHZhbGlkYXRvckNvbmZpZyA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuZ2V0VmFsaWRhdG9yQ29uZmlnPih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAyIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlYyAxNSAvLyAgbWV0aG9kICJnZXRWYWxpZGF0b3JDb25maWcodWludDY0KSh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KSIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE1NwoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkKCWJ5dGVjIDEgLy8gICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNTgKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXQoJYnl0ZWMgMyAvLyAgInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnRjIDEgLy8gMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglmcmFtZV9idXJ5IDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTYwCgkvLyBpc1Rva2VuRWxpZ2libGUgPSB2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCAhPT0gMAoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTUzIDgKCWJ0b2kKCWludGMgMCAvLyAwCgkhPQoJZnJhbWVfYnVyeSAxIC8vIGlzVG9rZW5FbGlnaWJsZTogYm9vbAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNjEKCS8vIGV4dHJhTUJSID0gaXNUb2tlbkVsaWdpYmxlICYmIHRoaXMucG9vbElkLnZhbHVlID09PSAxID8gQVNTRVRfSE9MRElOR19GRUUgOiAwCglmcmFtZV9kaWcgMSAvLyBpc1Rva2VuRWxpZ2libGU6IGJvb2wKCWR1cAoJYnogKnNraXBfYW5kMAoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJPT0KCSYmCgoqc2tpcF9hbmQwOgoJYnogKnRlcm5hcnkwX2ZhbHNlCglpbnRjIDE1IC8vIDEwMDAwMAoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglpbnRjIDAgLy8gMAoKKnRlcm5hcnkwX2VuZDoKCWZyYW1lX2J1cnkgMiAvLyBleHRyYU1CUjogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE2MgoJLy8gUG9vbEluaXRNYnIgPQoJLy8gICAgICAgQUxHT1JBTkRfQUNDT1VOVF9NSU5fQkFMQU5DRSArCgkvLyAgICAgICBleHRyYU1CUiArCgkvLyAgICAgICB0aGlzLmNvc3RGb3JCb3hTdG9yYWdlKDcgLyogJ3N0YWtlcnMnIG5hbWUgKi8gKyBsZW48U3Rha2VkSW5mbz4oKSAqIE1BWF9TVEFLRVJTX1BFUl9QT09MKQoJaW50YyAxNSAvLyAxMDAwMDAKCWZyYW1lX2RpZyAyIC8vIGV4dHJhTUJSOiB1aW50NjQKCSsKCXB1c2hpbnQgMTI4MDcKCWNhbGxzdWIgY29zdEZvckJveFN0b3JhZ2UKCSsKCWZyYW1lX2J1cnkgMyAvLyBQb29sSW5pdE1icjogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE2OAoJLy8gdmVyaWZ5UGF5VHhuKG1iclBheW1lbnQsIHsgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsIGFtb3VudDogUG9vbEluaXRNYnIgfSkKCS8vIHZlcmlmeSByZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgUmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoibWJyUGF5bWVudCIsImZpZWxkIjoicmVjZWl2ZXIiLCJleHBlY3RlZCI6InRoaXMuYXBwLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9kaWcgMyAvLyBQb29sSW5pdE1icjogdWludDY0Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoibWJyUGF5bWVudCIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiJQb29sSW5pdE1iciJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTY5CgkvLyB0aGlzLnN0YWtlcnMuY3JlYXRlKCkKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJcHVzaGludCAxMjgwMAoJYm94X2NyZWF0ZQoJcG9wCgoJLy8gKmlmMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNzEKCS8vIGlzVG9rZW5FbGlnaWJsZSAmJiB0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMQoJZnJhbWVfZGlnIDEgLy8gaXNUb2tlbkVsaWdpYmxlOiBib29sCglkdXAKCWJ6ICpza2lwX2FuZDEKCWJ5dGVjIDQgLy8gICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaW50YyAxIC8vIDEKCT09CgkmJgoKKnNraXBfYW5kMToKCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTczCgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICAgIHhmZXJBc3NldDogQXNzZXRJRC5mcm9tVWludDY0KHZhbGlkYXRvckNvbmZpZy5yZXdhcmRUb2tlbklkKSwKCS8vICAgICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgICAgYXNzZXRBbW91bnQ6IDAsCgkvLyAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxMSAvLyAgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTc0CgkvLyB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCkKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE1MyA4CglidG9pCglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNzUKCS8vIGFzc2V0UmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTc2CgkvLyBhc3NldEFtb3VudDogMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoqaWYxX2VuZDoKCXJldHN1YgoKLy8gYWRkU3Rha2UocGF5LGFkZHJlc3MpdWludDY0CiphYmlfcm91dGVfYWRkU3Rha2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIxIC8vIDB4MTUxZjdjNzUKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoc3Rha2VyKSBmb3IgYWRkU3Rha2UgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludGMgMSAvLyAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnRjIDEgLy8gIHBheQoJPT0KCgkvLyBhcmd1bWVudCAxIChzdGFrZWRBbW91bnRQYXltZW50KSBmb3IgYWRkU3Rha2UgbXVzdCBiZSBhIHBheSB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhZGRTdGFrZShwYXksYWRkcmVzcyl1aW50NjQKCWNhbGxzdWIgYWRkU3Rha2UKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBhZGRTdGFrZShzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4sIHN0YWtlcjogQWRkcmVzcyk6IHVpbnQ2NAovLwovLyBBZGRzIHN0YWtlIHRvIHRoZSBnaXZlbiBhY2NvdW50LgovLyBDYW4gT05MWSBiZSBjYWxsZWQgYnkgdGhlIHZhbGlkYXRvciBjb250cmFjdCB0aGF0IGNyZWF0ZWQgdXMKLy8gTXVzdCByZWNlaXZlIHBheW1lbnQgZnJvbSB0aGUgdmFsaWRhdG9yIGNvbnRyYWN0IGZvciBhbW91bnQgYmVpbmcgc3Rha2VkLgovLwovLyBAcGFyYW0ge1BheVR4bn0gc3Rha2VkQW1vdW50UGF5bWVudCBwcmlvciBwYXltZW50IGNvbWluZyBmcm9tIHZhbGlkYXRvciBjb250cmFjdCB0byB1cyBvbiBiZWhhbGYgb2Ygc3Rha2VyLgovLyBAcGFyYW0ge0FkZHJlc3N9IHN0YWtlciAtIFRoZSBhY2NvdW50IGFkZGluZyBuZXcgc3Rha2UKLy8gQHRocm93cyB7RXJyb3J9IC0gVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBzdGFraW5nIHBvb2wgaXMgZnVsbC4KLy8gQHJldHVybnMge3VpbnQ2NH0gbmV3ICdlbnRyeSByb3VuZCcgcm91bmQgbnVtYmVyIG9mIHN0YWtlIGFkZAphZGRTdGFrZToKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXBuIDQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTkyCgkvLyBhc3NlcnQodGhpcy5zdGFrZXJzLmV4aXN0cywgJ3N0YWtpbmcgcG9vbCBtdXN0IGJlIGluaXRpYWxpemVkIGZpcnN0JykKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJYm94X2xlbgoJc3dhcAoJcG9wCgoJLy8gc3Rha2luZyBwb29sIG11c3QgYmUgaW5pdGlhbGl6ZWQgZmlyc3QKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxOTUKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkuYWRkcmVzcywKCS8vICAgICAgICdzdGFrZSBjYW4gb25seSBiZSBhZGRlZCB2aWEgdGhlIHZhbGlkYXRvciBjb250cmFjdCcKCS8vICAgICApCgl0eG4gU2VuZGVyCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCT09CgoJLy8gc3Rha2UgY2FuIG9ubHkgYmUgYWRkZWQgdmlhIHRoZSB2YWxpZGF0b3IgY29udHJhY3QKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxOTkKCS8vIGFzc2VydChzdGFrZXIgIT09IGdsb2JhbHMuemVyb0FkZHJlc3MpCglmcmFtZV9kaWcgLTIgLy8gc3Rha2VyOiBBZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjAyCgkvLyB0aGlzLmNoZWNrSWZCaW5DbG9zZWQoKQoJY2FsbHN1YiBjaGVja0lmQmluQ2xvc2VkCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIwNgoJLy8gdmVyaWZ5UGF5VHhuKHN0YWtlZEFtb3VudFBheW1lbnQsIHsKCS8vICAgICAgIHNlbmRlcjogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkuYWRkcmVzcywKCS8vICAgICAgIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgYW1vdW50OiBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzdGFrZWRBbW91bnRQYXltZW50IiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6IkFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzdGFrZWRBbW91bnRQYXltZW50IiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InN0YWtlZEFtb3VudFBheW1lbnQiLCJmaWVsZCI6ImFtb3VudCIsImV4cGVjdGVkIjoic3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIxNQoJLy8gZW50cnlSb3VuZCA9IGdsb2JhbHMucm91bmQgKyBBTEdPUkFORF9TVEFLSU5HX0JMT0NLX0RFTEFZCglnbG9iYWwgUm91bmQKCXB1c2hpbnQgMzIwCgkrCglmcmFtZV9idXJ5IDAgLy8gZW50cnlSb3VuZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIxNgoJLy8gZmlyc3RFbXB0eSA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDEgLy8gZmlyc3RFbXB0eTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIxOAoJLy8gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgKz0gc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQKCWJ5dGVjIDYgLy8gICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CgkrCglieXRlYyA2IC8vICAic3Rha2VkIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjIwCgkvLyByb3VuZHNMZWZ0SW5CaW4gPSB0aGlzLmJpblJvdW5kU3RhcnQudmFsdWUgKyB0aGlzLnJvdW5kc1BlckRheS52YWx1ZSAtIGdsb2JhbHMucm91bmQKCWJ5dGVjIDExIC8vICAiYmluUm91bmRTdGFydCIKCWFwcF9nbG9iYWxfZ2V0CglieXRlYyAxMCAvLyAgInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CgkrCglnbG9iYWwgUm91bmQKCS0KCWZyYW1lX2J1cnkgMiAvLyByb3VuZHNMZWZ0SW5CaW46IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMjEKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSA9CgkvLyAgICAgICB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgKyAoc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQgYXMgdWludDEyOCkgKiAocm91bmRzTGVmdEluQmluIGFzIHVpbnQxMjgpCglieXRlYyA3IC8vICAic3Rha2VBY2N1bXVsYXRvciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJaXRvYgoJZnJhbWVfZGlnIDIgLy8gcm91bmRzTGVmdEluQmluOiB1aW50NjQKCWl0b2IKCWIqCgliKwoJZHVwCgliaXRsZW4KCWludGMgNiAvLyAxMjgKCTw9CgoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlICsgKHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50IGFzIHVpbnQxMjgpICogKHJvdW5kc0xlZnRJbkJpbiBhcyB1aW50MTI4KSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGVjIDggLy8gMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludGMgNSAvLyAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjI1CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGg7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDMgLy8gaTogdWludDY0CgoqZm9yXzA6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjI1CgkvLyBpIDwgdGhpcy5zdGFrZXJzLnZhbHVlLmxlbmd0aAoJZnJhbWVfZGlnIDMgLy8gaTogdWludDY0CglpbnRjIDcgLy8gMjAwCgk8CglieiAqZm9yXzBfZW5kCgoJLy8gKmlmMl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMjYKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgMzAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglpbnRjIDkgLy8gMzAwCgk8CglieiAqaWYyX2VuZAoKCS8vICppZjJfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIyNwoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50YyAyIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGVjIDUgLy8gICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludGMgOCAvLyAgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjI5CgkvLyBjbXBTdGFrZXIgPSBjbG9uZSh0aGlzLnN0YWtlcnMudmFsdWVbaV0pCglmcmFtZV9kaWcgMyAvLyBpOiB1aW50NjQKCWludGMgMyAvLyA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDMgLy8gNjQKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWZyYW1lX2J1cnkgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyAqaWYzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIzMAoJLy8gY21wU3Rha2VyLmFjY291bnQgPT09IHN0YWtlcgoJZnJhbWVfZGlnIDQgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDAgMzIKCWZyYW1lX2RpZyAtMiAvLyBzdGFrZXI6IEFkZHJlc3MKCT09CglieiAqaWYzX2VuZAoKCS8vICppZjNfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIzMgoJLy8gY21wU3Rha2VyLmJhbGFuY2UgKz0gc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQKCWZyYW1lX2RpZyA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50YyA0IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CgkrCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMzMKCS8vIGNtcFN0YWtlci5lbnRyeVJvdW5kID0gZW50cnlSb3VuZAoJZnJhbWVfZGlnIDQgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglwdXNoaW50IDU2IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjM2CgkvLyB0aGlzLnN0YWtlcnMudmFsdWVbaV0gPSBjbXBTdGFrZXIKCWZyYW1lX2RpZyAzIC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWZyYW1lX2RpZyA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYnl0ZWMgMiAvLyAgInN0YWtlcnMiCgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMzgKCS8vIHJldHVybiBlbnRyeVJvdW5kOwoJZnJhbWVfZGlnIDAgLy8gZW50cnlSb3VuZDogdWludDY0CgliICphZGRTdGFrZSpyZXR1cm4KCippZjNfZW5kOgoJLy8gKmlmNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyNDAKCS8vIGZpcnN0RW1wdHkgPT09IDAgJiYgY21wU3Rha2VyLmFjY291bnQgPT09IGdsb2JhbHMuemVyb0FkZHJlc3MKCWZyYW1lX2RpZyAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglkdXAKCWJ6ICpza2lwX2FuZDIKCWZyYW1lX2RpZyA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAwIDMyCglnbG9iYWwgWmVyb0FkZHJlc3MKCT09CgkmJgoKKnNraXBfYW5kMjoKCWJ6ICppZjRfZW5kCgoJLy8gKmlmNF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjQxCgkvLyBmaXJzdEVtcHR5ID0gaSArIDEKCWZyYW1lX2RpZyAzIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCippZjRfZW5kOgoKKmZvcl8wX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIyNQoJLy8gaSArPSAxCglmcmFtZV9kaWcgMyAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDMgLy8gaTogdWludDY0CgliICpmb3JfMAoKKmZvcl8wX2VuZDoKCS8vICppZjVfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjQ1CgkvLyBmaXJzdEVtcHR5ID09PSAwCglmcmFtZV9kaWcgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmNV9lbmQKCgkvLyAqaWY1X2NvbnNlcXVlbnQKCS8vIFN0YWtpbmcgcG9vbCBmdWxsCgllcnIKCippZjVfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI1MgoJLy8gYXNzZXJ0KHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50ID49IHRoaXMubWluRW50cnlTdGFrZS52YWx1ZSwgJ211c3Qgc3Rha2UgYXQgbGVhc3QgdGhlIG1pbmltdW0gZm9yIHRoaXMgcG9vbCcpCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWJ5dGVjIDE4IC8vICAibWluRW50cnlTdGFrZSIKCWFwcF9nbG9iYWxfZ2V0Cgk+PQoKCS8vIG11c3Qgc3Rha2UgYXQgbGVhc3QgdGhlIG1pbmltdW0gZm9yIHRoaXMgcG9vbAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI1NAoJLy8gYXNzZXJ0KHRoaXMuc3Rha2Vycy52YWx1ZVtmaXJzdEVtcHR5IC0gMV0uYWNjb3VudCA9PT0gZ2xvYmFscy56ZXJvQWRkcmVzcykKCWZyYW1lX2RpZyAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCS0KCWludGMgMyAvLyA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDAgLy8gMAoJKwoJaW50YyA0IC8vIDMyCglieXRlYyAyIC8vICAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9leHRyYWN0CglnbG9iYWwgWmVyb0FkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjU1CgkvLyB0aGlzLnN0YWtlcnMudmFsdWVbZmlyc3RFbXB0eSAtIDFdID0gewoJLy8gICAgICAgYWNjb3VudDogc3Rha2VyLAoJLy8gICAgICAgYmFsYW5jZTogc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQsCgkvLyAgICAgICB0b3RhbFJld2FyZGVkOiAwLAoJLy8gICAgICAgcmV3YXJkVG9rZW5CYWxhbmNlOiAwLAoJLy8gICAgICAgZW50cnlSb3VuZDogZW50cnlSb3VuZCwKCS8vICAgICB9CglmcmFtZV9kaWcgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCWludGMgMSAvLyAxCgktCglpbnRjIDMgLy8gNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJZnJhbWVfZGlnIC0yIC8vIHN0YWtlcjogQWRkcmVzcwoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglpdG9iCgljb25jYXQKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWZyYW1lX2RpZyAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoJaXRvYgoJY29uY2F0CglieXRlYyAyIC8vICAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI2MgoJLy8gdGhpcy5udW1TdGFrZXJzLnZhbHVlICs9IDEKCWJ5dGVjIDEzIC8vICAibnVtU3Rha2VycyIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJKwoJYnl0ZWMgMTMgLy8gICJudW1TdGFrZXJzIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjYzCgkvLyByZXR1cm4gZW50cnlSb3VuZDsKCWZyYW1lX2RpZyAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoKKmFkZFN0YWtlKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDQKCXJldHN1YgoKLy8gcmVtb3ZlU3Rha2UoYWRkcmVzcyx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX3JlbW92ZVN0YWtlOgoJLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMSAoc3Rha2VyKSBmb3IgcmVtb3ZlU3Rha2UgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgcmVtb3ZlU3Rha2UoYWRkcmVzcyx1aW50NjQpdm9pZAoJY2FsbHN1YiByZW1vdmVTdGFrZQoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gcmVtb3ZlU3Rha2Uoc3Rha2VyOiBBZGRyZXNzLCBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gUmVtb3ZlcyBzdGFrZSBvbiBiZWhhbGYgb2YgY2FsbGVyIChyZW1vdmluZyBvd24gc3Rha2UpLiAgSWYgYW55IHRva2VuIHJld2FyZHMgZXhpc3QsIHRob3NlIGFyZSBhbHdheXMgc2VudCBpbgovLyBmdWxsLiBBbHNvIG5vdGlmaWVzIHRoZSB2YWxpZGF0b3IgY29udHJhY3QgZm9yIHRoaXMgcG9vbHMgdmFsaWRhdG9yIG9mIHRoZSBzdGFrZXIgLyBiYWxhbmNlIGNoYW5nZXMuCi8vCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyIC0gYWNjb3VudCB0byByZW1vdmUuICBub3JtYWxseSBzYW1lIGFzIHNlbmRlciwgYnV0IHRoZSB2YWxpZGF0b3Igb3duZXIgb3IgbWFuYWdlciBjYW4gYWxzbyBjYWxsCi8vIHRoaXMgdG8gcmVtb3ZlIHRoZSBzcGVjaWZpZWQgc3Rha2VyIGV4cGxpY2l0bHkuIFRoZSByZW1vdmVkIHN0YWtlIE1VU1Qgb25seSBnbyB0byB0aGUgc3Rha2VyIG9mIGNvdXJzZS4gIFRoaXMgaXMKLy8gc28gYSB2YWxpZGF0b3IgY2FuIHNodXQgZG93biBhIHBvb29sIGFuZCByZWZ1bmQgdGhlIHN0YWtlcnMuICBJdCBjYW4gYWxzbyBiZSB1c2VkIHRvIGtpY2sgb3V0IHN0YWtlcnMgd2hvIG5vIGxvbmdlcgovLyBtZWV0IHRoZSBnYXRpbmcgcmVxdWlyZW1lbnRzIChkZXRlcm1pbmVkIGJ5IHRoZSBub2RlIGRhZW1vbikuCi8vIEBwYXJhbSB7dWludDY0fSBhbW91bnRUb1Vuc3Rha2UgLSBUaGUgYW1vdW50IG9mIHN0YWtlIHRvIGJlIHJlbW92ZWQuICBTcGVjaWZ5IDAgdG8gcmVtb3ZlIGFsbCBzdGFrZS4KLy8gQHRocm93cyB7RXJyb3J9IElmIHRoZSBhY2NvdW50IGhhcyBpbnN1ZmZpY2llbnQgYmFsYW5jZSBvciBpZiB0aGUgYWNjb3VudCBpcyBub3QgZm91bmQuCnJlbW92ZVN0YWtlOgoJcHJvdG8gMiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gNgoKCS8vICppZjZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjgwCgkvLyBzdGFrZXIgIT09IHRoaXMudHhuLnNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJdHhuIFNlbmRlcgoJIT0KCWJ6ICppZjZfZW5kCgoJLy8gKmlmNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjgxCgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIHRoaXMuaXNPd25lck9yTWFuYWdlckNhbGxlcigpLAoJLy8gICAgICAgICAnSWYgc3Rha2VyIGlzIG5vdCBzZW5kZXIgaW4gcmVtb3ZlU3Rha2UgY2FsbCwgdGhlbiBzZW5kZXIgTVVTVCBiZSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcicKCS8vICAgICAgICkKCWNhbGxzdWIgaXNPd25lck9yTWFuYWdlckNhbGxlcgoKCS8vIElmIHN0YWtlciBpcyBub3Qgc2VuZGVyIGluIHJlbW92ZVN0YWtlIGNhbGwsIHRoZW4gc2VuZGVyIE1VU1QgYmUgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3IKCWFzc2VydAoKKmlmNl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Mjg3CgkvLyB0aGlzLmNoZWNrSWZCaW5DbG9zZWQoKQoJY2FsbHN1YiBjaGVja0lmQmluQ2xvc2VkCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI4OQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8xOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI4OQoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50YyA3IC8vIDIwMAoJPAoJYnogKmZvcl8xX2VuZAoKCS8vICppZjdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjkwCgkvLyBnbG9iYWxzLm9wY29kZUJ1ZGdldCA8IDMwMAoJZ2xvYmFsIE9wY29kZUJ1ZGdldAoJaW50YyA5IC8vIDMwMAoJPAoJYnogKmlmN19lbmQKCgkvLyAqaWY3X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyOTEKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyA1IC8vICAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnRjIDggLy8gIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjdfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI5MwoJLy8gY21wU3Rha2VyID0gY2xvbmUodGhpcy5zdGFrZXJzLnZhbHVlW2ldKQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnRjIDMgLy8gNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAzIC8vIDY0CglieXRlYyAyIC8vICAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gKmlmOF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyOTQKCS8vIGNtcFN0YWtlci5hY2NvdW50ID09PSBzdGFrZXIKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAwIDMyCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgk9PQoJYnogKmlmOF9lbmQKCgkvLyAqaWY4X2NvbnNlcXVlbnQKCS8vICppZjlfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Mjk1CgkvLyBhbW91bnRUb1Vuc3Rha2UgPT09IDAKCWZyYW1lX2RpZyAtMiAvLyBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglieiAqaWY5X2VuZAoKCS8vICppZjlfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI5NwoJLy8gYW1vdW50VG9VbnN0YWtlID0gY21wU3Rha2VyLmJhbGFuY2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9idXJ5IC0yIC8vIGFtb3VudFRvVW5zdGFrZTogdWludDY0CgoqaWY5X2VuZDoKCS8vICppZjEwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI5OQoJLy8gY21wU3Rha2VyLmJhbGFuY2UgPCBhbW91bnRUb1Vuc3Rha2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCTwKCWJ6ICppZjEwX2VuZAoKCS8vICppZjEwX2NvbnNlcXVlbnQKCS8vIEluc3VmZmljaWVudCBiYWxhbmNlCgllcnIKCippZjEwX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMDIKCS8vIGNtcFN0YWtlci5iYWxhbmNlIC09IGFtb3VudFRvVW5zdGFrZQoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglpbnRjIDQgLy8gIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCS0KCWl0b2IKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMwMwoJLy8gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgLT0gYW1vdW50VG9VbnN0YWtlCglieXRlYyA2IC8vICAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMiAvLyBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NAoJLQoJYnl0ZWMgNiAvLyAgInN0YWtlZCIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMwNQoJLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoKCS8vICppZjExX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMwNgoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSA+IDAKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglpbnRjIDAgLy8gMAoJPgoJYnogKmlmMTFfZW5kCgoJLy8gKmlmMTFfY29uc2VxdWVudAoJLy8gKmlmMTJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzA4CgkvLyB0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMQoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJPT0KCWJ6ICppZjEyX2Vsc2UKCgkvLyAqaWYxMl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzA5CgkvLyB2YWxpZGF0b3JDb25maWcgPSBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLmdldFZhbGlkYXRvckNvbmZpZz4oewoJLy8gICAgICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgICAgICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdLAoJLy8gICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZWMgMTUgLy8gIG1ldGhvZCAiZ2V0VmFsaWRhdG9yQ29uZmlnKHVpbnQ2NCkodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMTAKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzExCgkvLyBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50YyAxIC8vIDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJZnJhbWVfYnVyeSAzIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMxNwoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgICAgICAgICB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCksCgkvLyAgICAgICAgICAgICAgIGFzc2V0UmVjZWl2ZXI6IHN0YWtlciwKCS8vICAgICAgICAgICAgICAgYXNzZXRBbW91bnQ6IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UsCgkvLyAgICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxMSAvLyAgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzE4CgkvLyB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCkKCWZyYW1lX2RpZyAzIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE1MyA4CglidG9pCglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMTkKCS8vIGFzc2V0UmVjZWl2ZXI6IHN0YWtlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMyMAoJLy8gYXNzZXRBbW91bnQ6IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMjIKCS8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCA9IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglmcmFtZV9idXJ5IDIgLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzIzCgkvLyBjbXBTdGFrZXIucmV3YXJkVG9rZW5CYWxhbmNlID0gMAoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglieXRlYyA5IC8vIDB4MDAwMDAwMDAwMDAwMDAwMAoJcmVwbGFjZTIgNDgKCWZyYW1lX2J1cnkgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWIgKmlmMTJfZW5kCgoqaWYxMl9lbHNlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMyOAoJLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkID0gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZQoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWZyYW1lX2J1cnkgMiAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMjkKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPSAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0OAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKKmlmMTJfZW5kOgoKKmlmMTFfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMzNAoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgIGNtcFN0YWtlci5iYWxhbmNlID09PSAwIHx8IGNtcFN0YWtlci5iYWxhbmNlID49IHRoaXMubWluRW50cnlTdGFrZS52YWx1ZSwKCS8vICAgICAgICAgICAnY2Fubm90IHJlZHVjZSBiYWxhbmNlIGJlbG93IG1pbmltdW0gYWxsb3dlZCBzdGFrZSB1bmxlc3MgYWxsIGlzIHJlbW92ZWQnCgkvLyAgICAgICAgICkKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglpbnRjIDAgLy8gMAoJPT0KCWR1cAoJYm56ICpza2lwX29yMAoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWJ5dGVjIDE4IC8vICAibWluRW50cnlTdGFrZSIKCWFwcF9nbG9iYWxfZ2V0Cgk+PQoJfHwKCipza2lwX29yMDoKCS8vIGNhbm5vdCByZWR1Y2UgYmFsYW5jZSBiZWxvdyBtaW5pbXVtIGFsbG93ZWQgc3Rha2UgdW5sZXNzIGFsbCBpcyByZW1vdmVkCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQyCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICAgICAgYW1vdW50OiBhbW91bnRUb1Vuc3Rha2UsCgkvLyAgICAgICAgICAgcmVjZWl2ZXI6IHN0YWtlciwKCS8vICAgICAgICAgICBub3RlOiAndW5zdGFrZWQnLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxIC8vICBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQzCgkvLyBhbW91bnQ6IGFtb3VudFRvVW5zdGFrZQoJZnJhbWVfZGlnIC0yIC8vIGFtb3VudFRvVW5zdGFrZTogdWludDY0CglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNDQKCS8vIHJlY2VpdmVyOiBzdGFrZXIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQ1CgkvLyBub3RlOiAndW5zdGFrZWQnCglwdXNoYnl0ZXMgMHg3NTZlNzM3NDYxNmI2NTY0IC8vICJ1bnN0YWtlZCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQ3CgkvLyBzdGFrZXJSZW1vdmVkID0gZmFsc2UKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDQgLy8gc3Rha2VyUmVtb3ZlZDogYm9vbAoKCS8vICppZjEzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM0OAoJLy8gY21wU3Rha2VyLmJhbGFuY2UgPT09IDAKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppZjEzX2VuZAoKCS8vICppZjEzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTAKCS8vIHRoaXMubnVtU3Rha2Vycy52YWx1ZSAtPSAxCglieXRlYyAxMyAvLyAgIm51bVN0YWtlcnMiCglhcHBfZ2xvYmFsX2dldAoJaW50YyAxIC8vIDEKCS0KCWJ5dGVjIDEzIC8vICAibnVtU3Rha2VycyIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM1MQoJLy8gY21wU3Rha2VyLmFjY291bnQgPSBnbG9iYWxzLnplcm9BZGRyZXNzCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWludGMgMCAvLyAwCglnbG9iYWwgWmVyb0FkZHJlc3MKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM1MgoJLy8gY21wU3Rha2VyLnRvdGFsUmV3YXJkZWQgPSAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0MAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTMKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPSAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0OAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTQKCS8vIHN0YWtlclJlbW92ZWQgPSB0cnVlCglpbnRjIDEgLy8gMQoJZnJhbWVfYnVyeSA0IC8vIHN0YWtlclJlbW92ZWQ6IGJvb2wKCippZjEzX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTcKCS8vIHRoaXMuc3Rha2Vycy52YWx1ZVtpXSA9IGNtcFN0YWtlcgoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnRjIDMgLy8gNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglieXRlYyAyIC8vICAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM1OQoJLy8gcm91bmRzTGVmdEluQmluID0gdGhpcy5iaW5Sb3VuZFN0YXJ0LnZhbHVlICsgdGhpcy5yb3VuZHNQZXJEYXkudmFsdWUgLSBnbG9iYWxzLnJvdW5kCglieXRlYyAxMSAvLyAgImJpblJvdW5kU3RhcnQiCglhcHBfZ2xvYmFsX2dldAoJYnl0ZWMgMTAgLy8gICJyb3VuZHNQZXJEYXkiCglhcHBfZ2xvYmFsX2dldAoJKwoJZ2xvYmFsIFJvdW5kCgktCglmcmFtZV9idXJ5IDUgLy8gcm91bmRzTGVmdEluQmluOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzYwCgkvLyBzdWJ0cmFjdEFtb3VudDogdWludDEyOCA9IChhbW91bnRUb1Vuc3Rha2UgYXMgdWludDEyOCkgKiAocm91bmRzTGVmdEluQmluIGFzIHVpbnQxMjgpCglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyA1IC8vIHJvdW5kc0xlZnRJbkJpbjogdWludDY0CglpdG9iCgliKgoJZHVwCgliaXRsZW4KCWludGMgNiAvLyAxMjgKCTw9CgoJLy8gKGFtb3VudFRvVW5zdGFrZSBhcyB1aW50MTI4KSAqIChyb3VuZHNMZWZ0SW5CaW4gYXMgdWludDEyOCkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlYyA4IC8vIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnRjIDUgLy8gMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWZyYW1lX2J1cnkgNiAvLyBzdWJ0cmFjdEFtb3VudDogdWludDEyOAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNjEKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSA9IHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSAtIHN1YnRyYWN0QW1vdW50CglieXRlYyA3IC8vICAic3Rha2VBY2N1bXVsYXRvciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyA2IC8vIHN1YnRyYWN0QW1vdW50OiB1aW50MTI4CgliLQoJZHVwCgliaXRsZW4KCWludGMgNiAvLyAxMjgKCTw9CgoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlIC0gc3VidHJhY3RBbW91bnQgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlYyA4IC8vIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnRjIDUgLy8gMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM2NgoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5zdGFrZVJlbW92ZWQ+KHsKCS8vICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgICAgICBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgICAgICB7IGlkOiB0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCBwb29sSWQ6IHRoaXMucG9vbElkLnZhbHVlLCBwb29sQXBwSWQ6IHRoaXMuYXBwLmlkIH0sCgkvLyAgICAgICAgICAgICBzdGFrZXIsCgkvLyAgICAgICAgICAgICBhbW91bnRUb1Vuc3Rha2UsCgkvLyAgICAgICAgICAgICBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQsCgkvLyAgICAgICAgICAgICBzdGFrZXJSZW1vdmVkLAoJLy8gICAgICAgICAgIF0sCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWJ5dGVjIDIyIC8vICBtZXRob2QgInN0YWtlUmVtb3ZlZCgodWludDY0LHVpbnQ2NCx1aW50NjQpLGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNjcKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzY4CgkvLyBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgICAgICB7IGlkOiB0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCBwb29sSWQ6IHRoaXMucG9vbElkLnZhbHVlLCBwb29sQXBwSWQ6IHRoaXMuYXBwLmlkIH0sCgkvLyAgICAgICAgICAgICBzdGFrZXIsCgkvLyAgICAgICAgICAgICBhbW91bnRUb1Vuc3Rha2UsCgkvLyAgICAgICAgICAgICBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQsCgkvLyAgICAgICAgICAgICBzdGFrZXJSZW1vdmVkLAoJLy8gICAgICAgICAgIF0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglieXRlYyA0IC8vICAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWNvbmNhdAoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJY29uY2F0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMiAvLyBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAyIC8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDQgLy8gc3Rha2VyUmVtb3ZlZDogYm9vbAoJYnl0ZWMgMjYgLy8gMHgwMAoJaW50YyAwIC8vIDAKCXVuY292ZXIgMgoJc2V0Yml0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Mzc2CgkvLyByZXR1cm47CglyZXRzdWIKCippZjhfZW5kOgoKKmZvcl8xX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI4OQoJLy8gaSArPSAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgliICpmb3JfMQoKKmZvcl8xX2VuZDoKCS8vIGFjY291bnQgbm90IGZvdW5kCgllcnIKCXJldHN1YgoKLy8gY2xhaW1Ub2tlbnMoKXZvaWQKKmFiaV9yb3V0ZV9jbGFpbVRva2VuczoKCS8vIGV4ZWN1dGUgY2xhaW1Ub2tlbnMoKXZvaWQKCWNhbGxzdWIgY2xhaW1Ub2tlbnMKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGNsYWltVG9rZW5zKCk6IHZvaWQKLy8KLy8gQ2xhaW1zIGFsbCB0aGUgYXZhaWxhYmxlIHJld2FyZCB0b2tlbnMgYSBzdGFrZXIgaGFzIGF2YWlsYWJsZSwgc2VuZGluZyB0aGVpciBlbnRpcmUgYmFsYW5jZSB0byB0aGUgc3Rha2VyIGZyb20KLy8gcG9vbCAxIChlaXRoZXIgZGlyZWN0bHksIG9yIHZpYSB2YWxpZGF0b3ItPnBvb2wxIHRvIHBheSBpdCBvdXQpCi8vIEFsc28gbm90aWZpZXMgdGhlIHZhbGlkYXRvciBjb250cmFjdCBmb3IgdGhpcyBwb29scyB2YWxpZGF0b3Igb2YgdGhlIHN0YWtlciAvIGJhbGFuY2UgY2hhbmdlcy4KY2xhaW1Ub2tlbnM6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwbiA0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5MQoJLy8gc3Rha2VyID0gdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCglmcmFtZV9idXJ5IDAgLy8gc3Rha2VyOiBhZGRyZXNzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5MwoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoKKmZvcl8yOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5MwoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50YyA3IC8vIDIwMAoJPAoJYnogKmZvcl8yX2VuZAoKCS8vICppZjE0X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5NAoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAzMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludGMgOSAvLyAzMDAKCTwKCWJ6ICppZjE0X2VuZAoKCS8vICppZjE0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozOTUKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyA1IC8vICAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnRjIDggLy8gIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjE0X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozOTcKCS8vIGNtcFN0YWtlciA9IGNsb25lKHRoaXMuc3Rha2Vycy52YWx1ZVtpXSkKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMyAvLyA2NAoJYnl0ZWMgMiAvLyAgInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vICppZjE1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5OAoJLy8gY21wU3Rha2VyLmFjY291bnQgPT09IHN0YWtlcgoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDAgMzIKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJPT0KCWJ6ICppZjE1X2VuZAoKCS8vICppZjE1X2NvbnNlcXVlbnQKCS8vICppZjE2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5OQoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSA9PT0gMAoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmMTZfZW5kCgoJLy8gKmlmMTZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQwMAoJLy8gcmV0dXJuOwoJcmV0c3ViCgoqaWYxNl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDAyCgkvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQgPSAwCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAzIC8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZDogdWludDY0CgoJLy8gKmlmMTdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDA0CgkvLyB0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMQoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJPT0KCWJ6ICppZjE3X2Vsc2UKCgkvLyAqaWYxN19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDA1CgkvLyB2YWxpZGF0b3JDb25maWcgPSBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLmdldFZhbGlkYXRvckNvbmZpZz4oewoJLy8gICAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZWMgMTUgLy8gIG1ldGhvZCAiZ2V0VmFsaWRhdG9yQ29uZmlnKHVpbnQ2NCkodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MDYKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDA3CgkvLyBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50YyAxIC8vIDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJZnJhbWVfYnVyeSA0IC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQxMgoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgICAgICAgeGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLnJld2FyZFRva2VuSWQpLAoJLy8gICAgICAgICAgICAgYXNzZXRSZWNlaXZlcjogc3Rha2VyLAoJLy8gICAgICAgICAgICAgYXNzZXRBbW91bnQ6IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UsCgkvLyAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMTEgLy8gIGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQxMwoJLy8geGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLnJld2FyZFRva2VuSWQpCglmcmFtZV9kaWcgNCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNTMgOAoJYnRvaQoJaXR4bl9maWVsZCBYZmVyQXNzZXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDE0CgkvLyBhc3NldFJlY2VpdmVyOiBzdGFrZXIKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQxNQoJLy8gYXNzZXRBbW91bnQ6IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UKCWZyYW1lX2RpZyAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MTcKCS8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCA9IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UKCWZyYW1lX2RpZyAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglmcmFtZV9idXJ5IDMgLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDE4CgkvLyBjbXBTdGFrZXIucmV3YXJkVG9rZW5CYWxhbmNlID0gMAoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglieXRlYyA5IC8vIDB4MDAwMDAwMDAwMDAwMDAwMAoJcmVwbGFjZTIgNDgKCWZyYW1lX2J1cnkgMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWIgKmlmMTdfZW5kCgoqaWYxN19lbHNlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQyMwoJLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkID0gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZQoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MjQKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPSAwCglmcmFtZV9kaWcgMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0OAoJZnJhbWVfYnVyeSAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKKmlmMTdfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQyOAoJLy8gdGhpcy5zdGFrZXJzLnZhbHVlW2ldID0gY21wU3Rha2VyCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWludGMgMyAvLyA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglmcmFtZV9kaWcgMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDMzCgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLnN0YWtlUmVtb3ZlZD4oewoJLy8gICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgICAgIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgICAgIHsgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfSwKCS8vICAgICAgICAgICAgIHN0YWtlciwKCS8vICAgICAgICAgICAgIDAsIC8vIG5vIGFsZ28gcmVtb3ZlZAoJLy8gICAgICAgICAgICAgYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkLAoJLy8gICAgICAgICAgICAgZmFsc2UsIC8vIHN0YWtlciBpc24ndCBiZWluZyByZW1vdmVkLgoJLy8gICAgICAgICAgIF0sCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWJ5dGVjIDIyIC8vICBtZXRob2QgInN0YWtlUmVtb3ZlZCgodWludDY0LHVpbnQ2NCx1aW50NjQpLGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MzQKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDM1CgkvLyBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgICAgICB7IGlkOiB0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCBwb29sSWQ6IHRoaXMucG9vbElkLnZhbHVlLCBwb29sQXBwSWQ6IHRoaXMuYXBwLmlkIH0sCgkvLyAgICAgICAgICAgICBzdGFrZXIsCgkvLyAgICAgICAgICAgICAwLCAvLyBubyBhbGdvIHJlbW92ZWQKCS8vICAgICAgICAgICAgIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCwKCS8vICAgICAgICAgICAgIGZhbHNlLCAvLyBzdGFrZXIgaXNuJ3QgYmVpbmcgcmVtb3ZlZC4KCS8vICAgICAgICAgICBdCglieXRlYyAzIC8vICAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCgljb25jYXQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWNvbmNhdAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWJ5dGVjIDkgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDMgLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglpbnRjIDAgLy8gMAoJYnl0ZWMgMjYgLy8gMHgwMAoJaW50YyAwIC8vIDAKCXVuY292ZXIgMgoJc2V0Yml0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDQzCgkvLyByZXR1cm47CglyZXRzdWIKCippZjE1X2VuZDoKCipmb3JfMl9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozOTMKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzIKCipmb3JfMl9lbmQ6CgkvLyBhY2NvdW50IG5vdCBmb3VuZAoJZXJyCglyZXRzdWIKCi8vIGdldFN0YWtlckluZm8oYWRkcmVzcykoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfZ2V0U3Rha2VySW5mbzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMjEgLy8gMHgxNTFmN2M3NQoKCS8vIHN0YWtlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChzdGFrZXIpIGZvciBnZXRTdGFrZXJJbmZvIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGdldFN0YWtlckluZm8oYWRkcmVzcykoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgljYWxsc3ViIGdldFN0YWtlckluZm8KCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnZXRTdGFrZXJJbmZvKHN0YWtlcjogQWRkcmVzcyk6IFN0YWtlZEluZm8KLy8KLy8gUmV0cmlldmVzIHRoZSBzdGFrZWQgaW5mb3JtYXRpb24gZm9yIGEgZ2l2ZW4gc3Rha2VyLgovLwovLyBAcGFyYW0ge0FkZHJlc3N9IHN0YWtlciAtIFRoZSBhZGRyZXNzIG9mIHRoZSBzdGFrZXIuCi8vIEByZXR1cm5zIHtTdGFrZWRJbmZvfSAtIFRoZSBzdGFrZWQgaW5mb3JtYXRpb24gZm9yIHRoZSBnaXZlbiBzdGFrZXIuCi8vIEB0aHJvd3Mge0Vycm9yfSAtIElmIHRoZSBzdGFrZXIncyBhY2NvdW50IGlzIG5vdCBmb3VuZC4KZ2V0U3Rha2VySW5mbzoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ1OAoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8zOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ1OAoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50YyA3IC8vIDIwMAoJPAoJYnogKmZvcl8zX2VuZAoKCS8vICppZjE4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ1OQoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAyMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludGMgNyAvLyAyMDAKCTwKCWJ6ICppZjE4X2VuZAoKCS8vICppZjE4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0NjAKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyA1IC8vICAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnRjIDggLy8gIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjE4X2VuZDoKCS8vICppZjE5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ2MgoJLy8gdGhpcy5zdGFrZXJzLnZhbHVlW2ldLmFjY291bnQgPT09IHN0YWtlcgoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnRjIDMgLy8gNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAwIC8vIDAKCSsKCWludGMgNCAvLyAzMgoJYnl0ZWMgMiAvLyAgInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJPT0KCWJ6ICppZjE5X2VuZAoKCS8vICppZjE5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0NjMKCS8vIHJldHVybiB0aGlzLnN0YWtlcnMudmFsdWVbaV07CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludGMgMyAvLyA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDMgLy8gNjQKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWIgKmdldFN0YWtlckluZm8qcmV0dXJuCgoqaWYxOV9lbmQ6CgoqZm9yXzNfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDU4CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKmZvcl8zCgoqZm9yXzNfZW5kOgoJLy8gYWNjb3VudCBub3QgZm91bmQKCWVycgoKKmdldFN0YWtlckluZm8qcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIHBheVRva2VuUmV3YXJkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfcGF5VG9rZW5SZXdhcmQ6CgkvLyBhbW91bnRUb1NlbmQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIHJld2FyZFRva2VuOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMiAoc3Rha2VyKSBmb3IgcGF5VG9rZW5SZXdhcmQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgcGF5VG9rZW5SZXdhcmQoYWRkcmVzcyx1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgcGF5VG9rZW5SZXdhcmQKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHBheVRva2VuUmV3YXJkKHN0YWtlcjogQWRkcmVzcywgcmV3YXJkVG9rZW46IHVpbnQ2NCwgYW1vdW50VG9TZW5kOiB1aW50NjQpOiB2b2lkCi8vCi8vIFtJbnRlcm5hbCBwcm90b2NvbCBtZXRob2RdIFJlbW92ZSBhIHNwZWNpZmllZCBhbW91bnQgb2YgJ2NvbW11bml0eSB0b2tlbicgcmV3YXJkcyBmb3IgYSBzdGFrZXIuCi8vIFRoaXMgY2FuIE9OTFkgYmUgY2FsbGVkIGJ5IG91ciB2YWxpZGF0b3IgYW5kIG9ubHkgaWYgd2UncmUgcG9vbCAxIC0gd2l0aCB0aGUgdG9rZW4uCi8vIE5vdGU6IHRoaXMgY2FuIGFsc28gYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBhcyBwYXJ0IG9mIE9XTkVSIHdhbnRpbmcgdG8gc2VuZCB0aGUgcmV3YXJkIHRva2VucwovLyBzb21ld2hlcmUgZWxzZSAoaWUgaWYgdGhleSdyZSBzdW5zZXR0aW5nIHRoZWlyIHZhbGlkYXRvciBhbmQgbmVlZCB0aGUgcmV3YXJkIHRva2VucyBiYWNrKS4KLy8gSXQncyB1cCB0byB0aGUgdmFsaWRhdG9yIHRvIGVuc3VyZSB0aGF0IHRoZSBiYWxhbmNlIGluIHJld2FyZFRva2VuSGVsZEJhY2sgaXMgaG9ub3JlZC4KLy8gQHBhcmFtIHN0YWtlciAtIHRoZSBzdGFrZXIgYWNjb3VudCB0byBzZW5kIHJld2FyZHMgdG8KLy8gQHBhcmFtIHJld2FyZFRva2VuIC0gaWQgb2YgcmV3YXJkIHRva2VuICh0byBhdm9pZCByZS1lbnRyYW5jeSBpbiBjYWxsaW5nIHZhbGlkYXRvciBiYWNrIHRvIGdldCBpZCkKLy8gQHBhcmFtIGFtb3VudFRvU2VuZCAtIGFtb3VudCB0byBzZW5kIHRoZSBzdGFrZXIgKHRoZXJlIGlzIHNpZ25pZmljYW50IHRydXN0IGhlcmUoISkgLSBhbHNvIHdoeSBvbmx5IHZhbGlkYXRvciBjYW4gY2FsbCB1cwpwYXlUb2tlblJld2FyZDoKCXByb3RvIDMgMAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0ODEKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkuYWRkcmVzcywKCS8vICAgICAgICd0aGlzIGNhbiBvbmx5IGJlIGNhbGxlZCB2aWEgdGhlIHZhbGlkYXRvciBjb250cmFjdCcKCS8vICAgICApCgl0eG4gU2VuZGVyCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCT09CgoJLy8gdGhpcyBjYW4gb25seSBiZSBjYWxsZWQgdmlhIHRoZSB2YWxpZGF0b3IgY29udHJhY3QKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0ODUKCS8vIGFzc2VydCh0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMSwgJ211c3QgYmUgcG9vbCAxIGluIG9yZGVyIHRvIGJlIGNhbGxlZCB0byBwYXkgb3V0IHRva2VuIHJld2FyZHMnKQoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJPT0KCgkvLyBtdXN0IGJlIHBvb2wgMSBpbiBvcmRlciB0byBiZSBjYWxsZWQgdG8gcGF5IG91dCB0b2tlbiByZXdhcmRzCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDg2CgkvLyBhc3NlcnQocmV3YXJkVG9rZW4gIT09IDAsICdjYW4gb25seSBjbGFpbSB0b2tlbiByZXdhcmRzIGZyb20gdmFsaWRhdG9yIHRoYXQgaGFzIHRoZW0nKQoJZnJhbWVfZGlnIC0yIC8vIHJld2FyZFRva2VuOiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoKCS8vIGNhbiBvbmx5IGNsYWltIHRva2VuIHJld2FyZHMgZnJvbSB2YWxpZGF0b3IgdGhhdCBoYXMgdGhlbQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ4OQoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgeGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQocmV3YXJkVG9rZW4pLAoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogc3Rha2VyLAoJLy8gICAgICAgYXNzZXRBbW91bnQ6IGFtb3VudFRvU2VuZCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxMSAvLyAgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDkwCgkvLyB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NChyZXdhcmRUb2tlbikKCWZyYW1lX2RpZyAtMiAvLyByZXdhcmRUb2tlbjogdWludDY0CglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0OTEKCS8vIGFzc2V0UmVjZWl2ZXI6IHN0YWtlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ5MgoJLy8gYXNzZXRBbW91bnQ6IGFtb3VudFRvU2VuZAoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFRvU2VuZDogdWludDY0CglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyB1cGRhdGVBbGdvZFZlcihzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX3VwZGF0ZUFsZ29kVmVyOgoJLy8gYWxnb2RWZXI6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHVwZGF0ZUFsZ29kVmVyKHN0cmluZyl2b2lkCgljYWxsc3ViIHVwZGF0ZUFsZ29kVmVyCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyB1cGRhdGVBbGdvZFZlcihhbGdvZFZlcjogc3RyaW5nKTogdm9pZAovLwovLyBVcGRhdGUgdGhlIChob25vciBzeXN0ZW0pIGFsZ29kIHZlcnNpb24gZm9yIHRoZSBub2RlIGFzc29jaWF0ZWQgdG8gdGhpcyBwb29sLiAgVGhlIG5vZGUgbWFuYWdlbWVudCBkYWVtb24KLy8gc2hvdWxkIGNvbXBhcmUgaXRzIGN1cnJlbnQgbm9kZXMgdmVyc2lvbiB0byB0aGUgdmVyc2lvbiBzdG9yZWQgaW4gZ2xvYmFsIHN0YXRlLCB1cGRhdGluZyB3aGVuIGRpZmZlcmVudC4KLy8gVGhlIHJldGkgbm9kZSBkYWVtb24gY29tcG9zZXMgaXRzIG93biB2ZXJzaW9uIHN0cmluZyB1c2luZyBmb3JtYXQ6Ci8vIHttYWpvcn0ue21pbm9yfS57YnVpbGR9IHticmFuY2h9IFt7Y29tbWl0IGhhc2h9XSwKLy8gaWU6IDMuMjIuMCByZWwvc3RhYmxlIFs2YjUwODk3NV0KLy8gWyBPTkxZIE9XTkVSIE9SIE1BTkFHRVIgQ0FOIENBTEwgXQovLyBAcGFyYW0ge3N0cmluZ30gYWxnb2RWZXIgLSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBhbGdvcmFuZCBub2RlIGRhZW1vbiB2ZXJzaW9uIChyZXRpIG5vZGUgZGFlbW9uIGNvbXBvc2VzIGl0cyBvd24gbWV0YSB2ZXJzaW9uKQp1cGRhdGVBbGdvZFZlcjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MDYKCS8vIGFzc2VydCh0aGlzLmlzT3duZXJPck1hbmFnZXJDYWxsZXIoKSwgJ2NhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcicpCgljYWxsc3ViIGlzT3duZXJPck1hbmFnZXJDYWxsZXIKCgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3IKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MDcKCS8vIHRoaXMuYWxnb2RWZXIudmFsdWUgPSBhbGdvZFZlcgoJcHVzaGJ5dGVzIDB4NjE2YzY3NmY2NDU2NjU3MiAvLyAiYWxnb2RWZXIiCglmcmFtZV9kaWcgLTEgLy8gYWxnb2RWZXI6IHN0cmluZwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gZXBvY2hCYWxhbmNlVXBkYXRlKCl2b2lkCiphYmlfcm91dGVfZXBvY2hCYWxhbmNlVXBkYXRlOgoJLy8gZXhlY3V0ZSBlcG9jaEJhbGFuY2VVcGRhdGUoKXZvaWQKCWNhbGxzdWIgZXBvY2hCYWxhbmNlVXBkYXRlCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBlcG9jaEJhbGFuY2VVcGRhdGUoKTogdm9pZAovLwovLyBVcGRhdGVzIHRoZSBiYWxhbmNlIG9mIHN0YWtlcnMgaW4gdGhlIHBvb2wgYmFzZWQgb24gdGhlIHJlY2VpdmVkICdyZXdhcmRzJyAoY3VycmVudCBiYWxhbmNlIHZzIGtub3duIHN0YWtlZCBiYWxhbmNlKQovLyBzdGFrZXJzIG91dHN0YW5kaW5nIGJhbGFuY2UgaXMgYWRqdXN0ZWQgYmFzZWQgb24gdGhlaXIgJSBvZiBzdGFrZSBhbmQgdGltZSBpbiB0aGUgY3VycmVudCBlcG9jaCAtIHNvIHRoYXQgYmFsYW5jZQovLyBjb21wb3VuZHMgb3ZlciB0aW1lIGFuZCBzdGFrZXIgY2FuIHJlbW92ZSB0aGF0IGFtb3VudCBhdCB3aWxsLgovLyBUaGUgdmFsaWRhdG9yIGlzIHBhaWQgdGhlaXIgcGVyY2VudGFnZSBlYWNoIGVwb2NoIHBheW91dC4KLy8KLy8gTm90ZTogQU5ZT05FIGNhbiBjYWxsIHRoaXMuCmVwb2NoQmFsYW5jZVVwZGF0ZToKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXBuIDM2CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUyMAoJLy8gdmFsaWRhdG9yQ29uZmlnID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5nZXRWYWxpZGF0b3JDb25maWc+KHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWJ5dGVjIDE1IC8vICBtZXRob2QgImdldFZhbGlkYXRvckNvbmZpZyh1aW50NjQpKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTIxCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZWMgMSAvLyAgImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUyMgoJLy8gbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdCglieXRlYyAzIC8vICAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludGMgMSAvLyAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MjkKCS8vIGVwb2NoUm91bmRMZW5ndGggPSB2YWxpZGF0b3JDb25maWcuZXBvY2hSb3VuZExlbmd0aCBhcyB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE2OSA0CglidG9pCglmcmFtZV9idXJ5IDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUzMAoJLy8gY3VyUm91bmQgPSBnbG9iYWxzLnJvdW5kCglnbG9iYWwgUm91bmQKCWZyYW1lX2J1cnkgMiAvLyBjdXJSb3VuZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUzMQoJLy8gdGhpc0Vwb2NoQmVnaW4gPSBjdXJSb3VuZCAtIChjdXJSb3VuZCAlIGVwb2NoUm91bmRMZW5ndGgpCglmcmFtZV9kaWcgMiAvLyBjdXJSb3VuZDogdWludDY0CglmcmFtZV9kaWcgMiAvLyBjdXJSb3VuZDogdWludDY0CglmcmFtZV9kaWcgMSAvLyBlcG9jaFJvdW5kTGVuZ3RoOiB1aW50NjQKCSUKCS0KCWZyYW1lX2J1cnkgMyAvLyB0aGlzRXBvY2hCZWdpbjogdWludDY0CgoJLy8gKmlmMjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTM0CgkvLyB0aGlzLmxhc3RQYXlvdXQuZXhpc3RzCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlYyAxNCAvLyAgImxhc3RQYXlvdXQiCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCglieiAqaWYyMF9lbmQKCgkvLyAqaWYyMF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTM1CgkvLyBsYXN0UGF5b3V0RXBvY2ggPSB0aGlzLmxhc3RQYXlvdXQudmFsdWUgLSAodGhpcy5sYXN0UGF5b3V0LnZhbHVlICUgZXBvY2hSb3VuZExlbmd0aCkKCWJ5dGVjIDE0IC8vICAibGFzdFBheW91dCIKCWFwcF9nbG9iYWxfZ2V0CglieXRlYyAxNCAvLyAgImxhc3RQYXlvdXQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0CgklCgktCglmcmFtZV9idXJ5IDQgLy8gbGFzdFBheW91dEVwb2NoOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTM5CgkvLyBhc3NlcnQobGFzdFBheW91dEVwb2NoICE9PSB0aGlzRXBvY2hCZWdpbiwgImNhbid0IGNhbGwgZXBvY2hCYWxhbmNlVXBkYXRlIGluIHNhbWUgZXBvY2ggYXMgcHJpb3IgY2FsbCIpCglmcmFtZV9kaWcgNCAvLyBsYXN0UGF5b3V0RXBvY2g6IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJIT0KCgkvLyBjYW4ndCBjYWxsIGVwb2NoQmFsYW5jZVVwZGF0ZSBpbiBzYW1lIGVwb2NoIGFzIHByaW9yIGNhbGwKCWFzc2VydAoKKmlmMjBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU0MgoJLy8gdGhpcy5jaGVja0lmQmluQ2xvc2VkKCkKCWNhbGxzdWIgY2hlY2tJZkJpbkNsb3NlZAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NDUKCS8vIHRoaXMubGFzdFBheW91dC52YWx1ZSA9IGN1clJvdW5kCglieXRlYyAxNCAvLyAgImxhc3RQYXlvdXQiCglmcmFtZV9kaWcgMiAvLyBjdXJSb3VuZDogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NDYKCS8vIHRoaXMuZXBvY2hOdW1iZXIudmFsdWUgKz0gMQoJYnl0ZWMgMTkgLy8gICJlcG9jaE51bWJlciIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJKwoJYnl0ZWMgMTkgLy8gICJlcG9jaE51bWJlciIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU1MQoJLy8gaXNUb2tlbkVsaWdpYmxlID0gdmFsaWRhdG9yQ29uZmlnLnJld2FyZFRva2VuSWQgIT09IDAKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE1MyA4CglidG9pCglpbnRjIDAgLy8gMAoJIT0KCWZyYW1lX2J1cnkgNSAvLyBpc1Rva2VuRWxpZ2libGU6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTUyCgkvLyBwb29sT25lQXBwSUQgPSB0aGlzLmFwcC5pZAoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJZnJhbWVfYnVyeSA2IC8vIHBvb2xPbmVBcHBJRDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU1MwoJLy8gcG9vbE9uZUFkZHJlc3MgPSB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfYnVyeSA3IC8vIHBvb2xPbmVBZGRyZXNzOiBhZGRyZXNzCgoJLy8gKmlmMjFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTU4CgkvLyBpc1Rva2VuRWxpZ2libGUKCWZyYW1lX2RpZyA1IC8vIGlzVG9rZW5FbGlnaWJsZTogYm9vbAoJYnogKmlmMjFfZW5kCgoJLy8gKmlmMjFfY29uc2VxdWVudAoJLy8gKmlmMjJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTU5CgkvLyB0aGlzLnBvb2xJZC52YWx1ZSAhPT0gMQoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJIT0KCWJ6ICppZjIyX2VuZAoKCS8vICppZjIyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NjEKCS8vIHBvb2xPbmVBcHBJRCA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuZ2V0UG9vbEFwcElkPih7CgkvLyAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWUsIDFdLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAyIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlYyAyMyAvLyAgbWV0aG9kICJnZXRQb29sQXBwSWQodWludDY0LHVpbnQ2NCl1aW50NjQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NjIKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTYzCgkvLyBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZSwgMV0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMQoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludGMgMSAvLyAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWJ0b2kKCWZyYW1lX2J1cnkgNiAvLyBwb29sT25lQXBwSUQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NjUKCS8vIHBvb2xPbmVBZGRyZXNzID0gQXBwSUQuZnJvbVVpbnQ2NChwb29sT25lQXBwSUQpLmFkZHJlc3MKCWZyYW1lX2RpZyA2IC8vIHBvb2xPbmVBcHBJRDogdWludDY0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCWZyYW1lX2J1cnkgNyAvLyBwb29sT25lQWRkcmVzczogYWRkcmVzcwoKKmlmMjJfZW5kOgoJLy8gKmlmMjNfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTcwCgkvLyB0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMQoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJPT0KCWJ6ICppZjIzX2Vsc2UKCgkvLyAqaWYyM19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTcxCgkvLyB0b2tlblBheW91dFJhdGlvID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5zZXRUb2tlblBheW91dFJhdGlvPih7CgkvLyAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAyIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlYyAyNCAvLyAgbWV0aG9kICJzZXRUb2tlblBheW91dFJhdGlvKHVpbnQ2NCkodWludDY0WzI0XSx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTcyCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZWMgMSAvLyAgImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU3MwoJLy8gbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdCglieXRlYyAzIC8vICAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludGMgMSAvLyAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgOCAvLyB0b2tlblBheW91dFJhdGlvOiBQb29sVG9rZW5QYXlvdXRSYXRpbwoJYiAqaWYyM19lbmQKCippZjIzX2Vsc2U6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTc3CgkvLyB0b2tlblBheW91dFJhdGlvID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFN0YWtpbmdQb29sLnByb3RvdHlwZS5wcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbz4oewoJLy8gICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQocG9vbE9uZUFwcElEKSwKCS8vICAgICAgICAgICBtZXRob2RBcmdzOiBbeyBpZDogdGhpcy52YWxpZGF0b3JJZC52YWx1ZSwgcG9vbElkOiB0aGlzLnBvb2xJZC52YWx1ZSwgcG9vbEFwcElkOiB0aGlzLmFwcC5pZCB9XSwKCS8vICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZWMgMjUgLy8gIG1ldGhvZCAicHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0WzI0XSx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTc4CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHBvb2xPbmVBcHBJRCkKCWZyYW1lX2RpZyA2IC8vIHBvb2xPbmVBcHBJRDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTc5CgkvLyBtZXRob2RBcmdzOiBbeyBpZDogdGhpcy52YWxpZGF0b3JJZC52YWx1ZSwgcG9vbElkOiB0aGlzLnBvb2xJZC52YWx1ZSwgcG9vbEFwcElkOiB0aGlzLmFwcC5pZCB9XQoJYnl0ZWMgMyAvLyAgInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWJ5dGVjIDQgLy8gICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJY29uY2F0Cgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCgljb25jYXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnRjIDEgLy8gMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglmcmFtZV9idXJ5IDggLy8gdG9rZW5QYXlvdXRSYXRpbzogUG9vbFRva2VuUGF5b3V0UmF0aW8KCippZjIzX2VuZDoKCippZjIxX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1ODYKCS8vIHZhbGlkYXRvclN0YXRlID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5nZXRWYWxpZGF0b3JTdGF0ZT4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJcHVzaGJ5dGVzIDB4MWYyZjAxMDkgLy8gbWV0aG9kICJnZXRWYWxpZGF0b3JTdGF0ZSh1aW50NjQpKHVpbnQxNix1aW50NjQsdWludDY0LHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1ODcKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTg4CgkvLyBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50YyAxIC8vIDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJZnJhbWVfYnVyeSA5IC8vIHZhbGlkYXRvclN0YXRlOiAodWludDE2LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1OTAKCS8vIHJld2FyZFRva2VuSGVsZEJhY2sgPSB2YWxpZGF0b3JTdGF0ZS5yZXdhcmRUb2tlbkhlbGRCYWNrCglmcmFtZV9kaWcgOSAvLyB2YWxpZGF0b3JTdGF0ZTogKHVpbnQxNix1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTggOAoJYnRvaQoJZnJhbWVfYnVyeSAxMCAvLyByZXdhcmRUb2tlbkhlbGRCYWNrOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTk2CgkvLyBhbGdvUmV3YXJkQXZhaWwgPSB0aGlzLmFwcC5hZGRyZXNzLmJhbGFuY2UgLSB0aGlzLnRvdGFsQWxnb1N0YWtlZC52YWx1ZSAtIHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQoJcG9wCglieXRlYyA2IC8vICAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCS0KCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJLQoJZnJhbWVfYnVyeSAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1OTcKCS8vIGlzUG9vbFNhdHVyYXRlZCA9IGZhbHNlCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAxMiAvLyBpc1Bvb2xTYXR1cmF0ZWQ6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTk4CgkvLyBhbGdvU2F0dXJhdGlvbkFtdCA9IHRoaXMuYWxnb1NhdHVyYXRpb25MZXZlbCgpCgljYWxsc3ViIGFsZ29TYXR1cmF0aW9uTGV2ZWwKCWZyYW1lX2J1cnkgMTMgLy8gYWxnb1NhdHVyYXRpb25BbXQ6IHVpbnQ2NAoKCS8vICppZjI0X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYwNgoJLy8gdmFsaWRhdG9yU3RhdGUudG90YWxBbGdvU3Rha2VkID4gYWxnb1NhdHVyYXRpb25BbXQKCWZyYW1lX2RpZyA5IC8vIHZhbGlkYXRvclN0YXRlOiAodWludDE2LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxMCA4CglidG9pCglmcmFtZV9kaWcgMTMgLy8gYWxnb1NhdHVyYXRpb25BbXQ6IHVpbnQ2NAoJPgoJYnogKmlmMjRfZW5kCgoJLy8gKmlmMjRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYwNwoJLy8gaXNQb29sU2F0dXJhdGVkID0gdHJ1ZQoJaW50YyAxIC8vIDEKCWZyYW1lX2J1cnkgMTIgLy8gaXNQb29sU2F0dXJhdGVkOiBib29sCgoqaWYyNF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjEzCgkvLyB0b2tlblJld2FyZEF2YWlsID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMTQgLy8gdG9rZW5SZXdhcmRBdmFpbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYxNAoJLy8gdG9rZW5SZXdhcmRQYWlkT3V0ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjE1CgkvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dCA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDE2IC8vIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0OiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjE2CgkvLyBleGNlc3NUb0ZlZVNpbmsgPSAwCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAxNyAvLyBleGNlc3NUb0ZlZVNpbms6IHVpbnQ2NAoKCS8vICppZjI1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYxNwoJLy8gaXNUb2tlbkVsaWdpYmxlCglmcmFtZV9kaWcgNSAvLyBpc1Rva2VuRWxpZ2libGU6IGJvb2wKCWJ6ICppZjI1X2VuZAoKCS8vICppZjI1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2MTgKCS8vIHRva2VuUmV3YXJkQmFsID0KCS8vICAgICAgICAgcG9vbE9uZUFkZHJlc3MuYXNzZXRCYWxhbmNlKEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCkpIC0gcmV3YXJkVG9rZW5IZWxkQmFjawoJZnJhbWVfZGlnIDcgLy8gcG9vbE9uZUFkZHJlc3M6IGFkZHJlc3MKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE1MyA4CglidG9pCglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIDEwIC8vIHJld2FyZFRva2VuSGVsZEJhY2s6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAxOCAvLyB0b2tlblJld2FyZEJhbDogdWludDY0CgoJLy8gKmlmMjZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjIzCgkvLyB0b2tlblJld2FyZEJhbCA+PSB2YWxpZGF0b3JDb25maWcucmV3YXJkUGVyUGF5b3V0CglmcmFtZV9kaWcgMTggLy8gdG9rZW5SZXdhcmRCYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTYxIDgKCWJ0b2kKCT49CglieiAqaWYyNl9lbmQKCgkvLyAqaWYyNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjI5CgkvLyBvdXJQb29sUGN0T2ZXaG9sZSA9IHRva2VuUGF5b3V0UmF0aW8ucG9vbFBjdE9mV2hvbGVbdGhpcy5wb29sSWQudmFsdWUgLSAxXQoJZnJhbWVfZGlnIDggLy8gdG9rZW5QYXlvdXRSYXRpbzogUG9vbFRva2VuUGF5b3V0UmF0aW8KCWludGMgMCAvLyAwCglieXRlYyA0IC8vICAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWludGMgMSAvLyAxCgktCglpbnRjIDE0IC8vIDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAxNCAvLyA4CglleHRyYWN0MwoJYnRvaQoJZnJhbWVfYnVyeSAxOSAvLyBvdXJQb29sUGN0T2ZXaG9sZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYzMgoJLy8gdG9rZW5SZXdhcmRBdmFpbCA9IHdpZGVSYXRpbyhbdmFsaWRhdG9yQ29uZmlnLnJld2FyZFBlclBheW91dCwgb3VyUG9vbFBjdE9mV2hvbGVdLCBbMV8wMDBfMDAwXSkKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE2MSA4CglidG9pCglmcmFtZV9kaWcgMTkgLy8gb3VyUG9vbFBjdE9mV2hvbGU6IHVpbnQ2NAoJbXVsdwoJaW50YyAwIC8vIDAKCWludGMgMTIgLy8gMV8wMDBfMDAwCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAxNCAvLyB0b2tlblJld2FyZEF2YWlsOiB1aW50NjQKCippZjI2X2VuZDoKCippZjI1X2VuZDoKCS8vICppZjI3X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYzNQoJLy8gdG9rZW5SZXdhcmRBdmFpbCA9PT0gMAoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglieiAqaWYyN19lbmQKCgkvLyAqaWYyN19jb25zZXF1ZW50CgkvLyAqaWYyOF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NDAKCS8vIGFsZ29SZXdhcmRBdmFpbCA8IDFfMDAwXzAwMAoJZnJhbWVfZGlnIDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CglpbnRjIDEyIC8vIDFfMDAwXzAwMAoJPAoJYnogKmlmMjhfZW5kCgoJLy8gKmlmMjhfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY0MQoJLy8gbG9nKCchdG9rZW4mJiFub2FsZ28gdG8gcGF5JykKCXB1c2hieXRlcyAweDIxNzQ2ZjZiNjU2ZTI2MjYyMTZlNmY2MTZjNjc2ZjIwNzQ2ZjIwNzA2MTc5IC8vICIhdG9rZW4mJiFub2FsZ28gdG8gcGF5IgoJbG9nCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY0MgoJLy8gcmV0dXJuOwoJcmV0c3ViCgoqaWYyOF9lbmQ6CgoqaWYyN19lbmQ6CgkvLyAqaWYyOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NDYKCS8vIGlzUG9vbFNhdHVyYXRlZAoJZnJhbWVfZGlnIDEyIC8vIGlzUG9vbFNhdHVyYXRlZDogYm9vbAoJYnogKmlmMjlfZWxzZWlmMV9jb25kaXRpb24KCgkvLyAqaWYyOV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjQ5CgkvLyBkaW1pbmlzaGVkUmV3YXJkID0gd2lkZVJhdGlvKFthbGdvUmV3YXJkQXZhaWwsIGFsZ29TYXR1cmF0aW9uQW10XSwgW3ZhbGlkYXRvclN0YXRlLnRvdGFsQWxnb1N0YWtlZF0pCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWZyYW1lX2RpZyAxMyAvLyBhbGdvU2F0dXJhdGlvbkFtdDogdWludDY0CgltdWx3CglpbnRjIDAgLy8gMAoJZnJhbWVfZGlnIDkgLy8gdmFsaWRhdG9yU3RhdGU6ICh1aW50MTYsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDEwIDgKCWJ0b2kKCWRpdm1vZHcKCXBvcAoJcG9wCglzd2FwCgkhCgoJLy8gd2lkZVJhdGlvIGZhaWxlZAoJYXNzZXJ0CglmcmFtZV9idXJ5IDIwIC8vIGRpbWluaXNoZWRSZXdhcmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NTEKCS8vIGV4Y2Vzc1RvRmVlU2luayA9IGFsZ29SZXdhcmRBdmFpbCAtIGRpbWluaXNoZWRSZXdhcmQKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJZnJhbWVfZGlnIDIwIC8vIGRpbWluaXNoZWRSZXdhcmQ6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAxNyAvLyBleGNlc3NUb0ZlZVNpbms6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NTIKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgICAgYW1vdW50OiBleGNlc3NUb0ZlZVNpbmssCgkvLyAgICAgICAgIHJlY2VpdmVyOiB0aGlzLmdldEZlZVNpbmsoKSwKCS8vICAgICAgICAgbm90ZTogJ3Bvb2wgc2F0dXJhdGVkLCBleGNlc3MgdG8gZmVlIHNpbmsnLAoJLy8gICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMSAvLyAgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY1MwoJLy8gYW1vdW50OiBleGNlc3NUb0ZlZVNpbmsKCWZyYW1lX2RpZyAxNyAvLyBleGNlc3NUb0ZlZVNpbms6IHVpbnQ2NAoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjU0CgkvLyByZWNlaXZlcjogdGhpcy5nZXRGZWVTaW5rKCkKCWNhbGxzdWIgZ2V0RmVlU2luawoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NTUKCS8vIG5vdGU6ICdwb29sIHNhdHVyYXRlZCwgZXhjZXNzIHRvIGZlZSBzaW5rJwoJcHVzaGJ5dGVzIDB4NzA2ZjZmNmMyMDczNjE3NDc1NzI2MTc0NjU2NDJjMjA2NTc4NjM2NTczNzMyMDc0NmYyMDY2NjU2NTIwNzM2OTZlNmIgLy8gInBvb2wgc2F0dXJhdGVkLCBleGNlc3MgdG8gZmVlIHNpbmsiCglpdHhuX2ZpZWxkIE5vdGUKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY1OAoJLy8gYWxnb1Jld2FyZEF2YWlsID0gZGltaW5pc2hlZFJld2FyZAoJZnJhbWVfZGlnIDIwIC8vIGRpbWluaXNoZWRSZXdhcmQ6IHVpbnQ2NAoJZnJhbWVfYnVyeSAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJYiAqaWYyOV9lbmQKCippZjI5X2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY1OQoJLy8gdmFsaWRhdG9yQ29uZmlnLnBlcmNlbnRUb1ZhbGlkYXRvciAhPT0gMAoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTczIDQKCWJ0b2kKCWludGMgMCAvLyAwCgkhPQoJYnogKmlmMjlfZW5kCgoJLy8gKmlmMjlfZWxzZWlmMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjYyCgkvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dCA9IHdpZGVSYXRpbygKCS8vICAgICAgICAgW2FsZ29SZXdhcmRBdmFpbCwgdmFsaWRhdG9yQ29uZmlnLnBlcmNlbnRUb1ZhbGlkYXRvciBhcyB1aW50NjRdLAoJLy8gICAgICAgICBbMV8wMDBfMDAwXQoJLy8gICAgICAgKQoJZnJhbWVfZGlnIDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNzMgNAoJYnRvaQoJbXVsdwoJaW50YyAwIC8vIDAKCWludGMgMTIgLy8gMV8wMDBfMDAwCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY2OAoJLy8gYWxnb1Jld2FyZEF2YWlsIC09IHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0CglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWZyYW1lX2RpZyAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CgktCglmcmFtZV9idXJ5IDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CgoJLy8gKmlmMzBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Njc1CgkvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dCA+IDAKCWZyYW1lX2RpZyAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CglpbnRjIDAgLy8gMAoJPgoJYnogKmlmMzBfZW5kCgoJLy8gKmlmMzBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY3OAoJLy8gbWFuYWdlclRvcE9mZiA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDIxIC8vIG1hbmFnZXJUb3BPZmY6IHVpbnQ2NAoKCS8vICppZjMxX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY4MAoJLy8gdmFsaWRhdG9yQ29uZmlnLm1hbmFnZXIgIT09IHZhbGlkYXRvckNvbmZpZy52YWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyAmJgoJLy8gICAgICAgICAgIHZhbGlkYXRvckNvbmZpZy5tYW5hZ2VyLmJhbGFuY2UgLSB2YWxpZGF0b3JDb25maWcubWFuYWdlci5taW5CYWxhbmNlIDwgMl8xMDBfMDAwCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0MCAzMgoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTc3IDMyCgkhPQoJZHVwCglieiAqc2tpcF9hbmQzCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0MCAzMgoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQwIDMyCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJLQoJaW50YyAxMyAvLyAyXzEwMF8wMDAKCTwKCSYmCgoqc2tpcF9hbmQzOgoJYnogKmlmMzFfZW5kCgoJLy8gKmlmMzFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY4MwoJLy8gbWFuYWdlclRvcE9mZiA9IHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0IDwgMl8xMDBfMDAwID8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQgOiAyXzEwMF8wMDAKCWZyYW1lX2RpZyAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CglpbnRjIDEzIC8vIDJfMTAwXzAwMAoJPAoJYnogKnRlcm5hcnkxX2ZhbHNlCglmcmFtZV9kaWcgMTYgLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQ6IHVpbnQ2NAoJYiAqdGVybmFyeTFfZW5kCgoqdGVybmFyeTFfZmFsc2U6CglpbnRjIDEzIC8vIDJfMTAwXzAwMAoKKnRlcm5hcnkxX2VuZDoKCWZyYW1lX2J1cnkgMjEgLy8gbWFuYWdlclRvcE9mZjogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY4NAoJLy8gc2VuZFBheW1lbnQoewoJLy8gICAgICAgICAgICAgYW1vdW50OiBtYW5hZ2VyVG9wT2ZmLAoJLy8gICAgICAgICAgICAgcmVjZWl2ZXI6IHZhbGlkYXRvckNvbmZpZy5tYW5hZ2VyLAoJLy8gICAgICAgICAgICAgbm90ZTogJ3ZhbGlkYXRvciByZXdhcmQgdG8gbWFuYWdlciBmb3IgZnVuZGluZyBlcG9jaCB1cGRhdGVzJywKCS8vICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxIC8vICBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Njg1CgkvLyBhbW91bnQ6IG1hbmFnZXJUb3BPZmYKCWZyYW1lX2RpZyAyMSAvLyBtYW5hZ2VyVG9wT2ZmOiB1aW50NjQKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY4NgoJLy8gcmVjZWl2ZXI6IHZhbGlkYXRvckNvbmZpZy5tYW5hZ2VyCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0MCAzMgoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2ODcKCS8vIG5vdGU6ICd2YWxpZGF0b3IgcmV3YXJkIHRvIG1hbmFnZXIgZm9yIGZ1bmRpbmcgZXBvY2ggdXBkYXRlcycKCXB1c2hieXRlcyAweDc2NjE2YzY5NjQ2MTc0NmY3MjIwNzI2NTc3NjE3MjY0MjA3NDZmMjA2ZDYxNmU2MTY3NjU3MjIwNjY2ZjcyMjA2Njc1NmU2NDY5NmU2NzIwNjU3MDZmNjM2ODIwNzU3MDY0NjE3NDY1NzMgLy8gInZhbGlkYXRvciByZXdhcmQgdG8gbWFuYWdlciBmb3IgZnVuZGluZyBlcG9jaCB1cGRhdGVzIgoJaXR4bl9maWVsZCBOb3RlCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMzFfZW5kOgoJLy8gKmlmMzJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjkwCgkvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dCAtIG1hbmFnZXJUb3BPZmYgPiAwCglmcmFtZV9kaWcgMTYgLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDIxIC8vIG1hbmFnZXJUb3BPZmY6IHVpbnQ2NAoJLQoJaW50YyAwIC8vIDAKCT4KCWJ6ICppZjMyX2VuZAoKCS8vICppZjMyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2OTEKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgICAgICAgIGFtb3VudDogdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQgLSBtYW5hZ2VyVG9wT2ZmLAoJLy8gICAgICAgICAgICAgcmVjZWl2ZXI6IHZhbGlkYXRvckNvbmZpZy52YWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcywKCS8vICAgICAgICAgICAgIG5vdGU6ICd2YWxpZGF0b3IgcmV3YXJkJywKCS8vICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxIC8vICBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjkyCgkvLyBhbW91bnQ6IHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0IC0gbWFuYWdlclRvcE9mZgoJZnJhbWVfZGlnIDE2IC8vIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0OiB1aW50NjQKCWZyYW1lX2RpZyAyMSAvLyBtYW5hZ2VyVG9wT2ZmOiB1aW50NjQKCS0KCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY5MwoJLy8gcmVjZWl2ZXI6IHZhbGlkYXRvckNvbmZpZy52YWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcwoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTc3IDMyCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY5NAoJLy8gbm90ZTogJ3ZhbGlkYXRvciByZXdhcmQnCglwdXNoYnl0ZXMgMHg3NjYxNmM2OTY0NjE3NDZmNzIyMDcyNjU3NzYxNzI2NCAvLyAidmFsaWRhdG9yIHJld2FyZCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCippZjMyX2VuZDoKCippZjMwX2VuZDoKCippZjI5X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MDYKCS8vIGluY3JlYXNlZFN0YWtlID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoKCS8vICppZjMzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczMAoJLy8gYWxnb1Jld2FyZEF2YWlsICE9PSAwIHx8IHRva2VuUmV3YXJkQXZhaWwgIT09IDAKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCSE9CglkdXAKCWJueiAqc2tpcF9vcjEKCWZyYW1lX2RpZyAxNCAvLyB0b2tlblJld2FyZEF2YWlsOiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoJfHwKCipza2lwX29yMToKCWJ6ICppZjMzX2VuZAoKCS8vICppZjMzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzEKCS8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMjMgLy8gcGFydGlhbFN0YWtlcnNUb3RhbFN0YWtlOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzMyCgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGg7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDI0IC8vIGk6IHVpbnQ2NAoKKmZvcl80OgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczMgoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAyNCAvLyBpOiB1aW50NjQKCWludGMgNyAvLyAyMDAKCTwKCWJ6ICpmb3JfNF9lbmQKCgkvLyAqaWYzNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzMKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgNDAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglpbnRjIDE2IC8vIDQwMAoJPAoJYnogKmlmMzRfZW5kCgoJLy8gKmlmMzRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczNAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50YyAyIC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGVjIDUgLy8gICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludGMgOCAvLyAgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMzRfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczNgoJLy8gY21wU3Rha2VyID0gY2xvbmUodGhpcy5zdGFrZXJzLnZhbHVlW2ldKQoJZnJhbWVfZGlnIDI0IC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMyAvLyA2NAoJYnl0ZWMgMiAvLyAgInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyAqaWYzNV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzcKCS8vIGNtcFN0YWtlci5hY2NvdW50ICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzCglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDAgMzIKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCWJ6ICppZjM1X2VuZAoKCS8vICppZjM1X2NvbnNlcXVlbnQKCS8vICppZjM2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczOAoJLy8gY21wU3Rha2VyLmVudHJ5Um91bmQgPj0gdGhpc0Vwb2NoQmVnaW4KCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNTYgOAoJYnRvaQoJZnJhbWVfZGlnIDMgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJPj0KCWJ6ICppZjM2X2Vsc2UKCgkvLyAqaWYzNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzQxCgkvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2UgKz0gY21wU3Rha2VyLmJhbGFuY2UKCWZyYW1lX2RpZyAyMyAvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2U6IHVpbnQ2NAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCgkrCglmcmFtZV9idXJ5IDIzIC8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0CgliICppZjM2X2VuZAoKKmlmMzZfZWxzZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NDUKCS8vIHRpbWVJblBvb2wgPSB0aGlzRXBvY2hCZWdpbiAtIGNtcFN0YWtlci5lbnRyeVJvdW5kCglmcmFtZV9kaWcgMyAvLyB0aGlzRXBvY2hCZWdpbjogdWludDY0CglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDU2IDgKCWJ0b2kKCS0KCWZyYW1lX2J1cnkgMjYgLy8gdGltZUluUG9vbDogdWludDY0CgoJLy8gKmlmMzdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzQ5CgkvLyB0aW1lSW5Qb29sIDwgZXBvY2hSb3VuZExlbmd0aAoJZnJhbWVfZGlnIDI2IC8vIHRpbWVJblBvb2w6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0Cgk8CglieiAqaWYzN19lbmQKCgkvLyAqaWYzN19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzUwCgkvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2UgKz0gY21wU3Rha2VyLmJhbGFuY2UKCWZyYW1lX2RpZyAyMyAvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2U6IHVpbnQ2NAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCgkrCglmcmFtZV9idXJ5IDIzIC8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc1MQoJLy8gdGltZVBlcmNlbnRhZ2UgPSAodGltZUluUG9vbCAqIDEwMDApIC8gZXBvY2hSb3VuZExlbmd0aAoJZnJhbWVfZGlnIDI2IC8vIHRpbWVJblBvb2w6IHVpbnQ2NAoJaW50YyAxMCAvLyAxMDAwCgkqCglmcmFtZV9kaWcgMSAvLyBlcG9jaFJvdW5kTGVuZ3RoOiB1aW50NjQKCS8KCWZyYW1lX2J1cnkgMjcgLy8gdGltZVBlcmNlbnRhZ2U6IHVpbnQ2NAoKCS8vICppZjM4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc1MwoJLy8gdG9rZW5SZXdhcmRBdmFpbCA+IDAKCWZyYW1lX2RpZyAxNCAvLyB0b2tlblJld2FyZEF2YWlsOiB1aW50NjQKCWludGMgMCAvLyAwCgk+CglieiAqaWYzOF9lbmQKCgkvLyAqaWYzOF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzU1CgkvLyBzdGFrZXJUb2tlblJld2FyZCA9IHdpZGVSYXRpbygKCS8vICAgICAgICAgICAgICAgICAgIFtjbXBTdGFrZXIuYmFsYW5jZSwgdG9rZW5SZXdhcmRBdmFpbCwgdGltZVBlcmNlbnRhZ2VdLAoJLy8gICAgICAgICAgICAgICAgICAgW3RoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlLCAxMDAwXQoJLy8gICAgICAgICAgICAgICAgICkKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJbXVsdwoJZnJhbWVfZGlnIDI3IC8vIHRpbWVQZXJjZW50YWdlOiB1aW50NjQKCXVuY292ZXIgMgoJZGlnIDEKCSoKCWNvdmVyIDIKCW11bHcKCWNvdmVyIDIKCSsKCXN3YXAKCWJ5dGVjIDYgLy8gICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJaW50YyAxMCAvLyAxMDAwCgltdWx3CglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAyOCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc2MgoJLy8gdG9rZW5SZXdhcmRBdmFpbCAtPSBzdGFrZXJUb2tlblJld2FyZAoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJZnJhbWVfZGlnIDI4IC8vIHN0YWtlclRva2VuUmV3YXJkOiB1aW50NjQKCS0KCWZyYW1lX2J1cnkgMTQgLy8gdG9rZW5SZXdhcmRBdmFpbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc2MwoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSArPSBzdGFrZXJUb2tlblJld2FyZAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50YyAxOSAvLyAgaGVhZE9mZnNldAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglmcmFtZV9kaWcgMjggLy8gc3Rha2VyVG9rZW5SZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc2NAoJLy8gdG9rZW5SZXdhcmRQYWlkT3V0ICs9IHN0YWtlclRva2VuUmV3YXJkCglmcmFtZV9kaWcgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCWZyYW1lX2RpZyAyOCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgkrCglmcmFtZV9idXJ5IDE1IC8vIHRva2VuUmV3YXJkUGFpZE91dDogdWludDY0CgoqaWYzOF9lbmQ6CgkvLyAqaWYzOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NjYKCS8vIGFsZ29SZXdhcmRBdmFpbCA+IDAKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT4KCWJ6ICppZjM5X2VuZAoKCS8vICppZjM5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NjgKCS8vIHN0YWtlclJld2FyZCA9IHdpZGVSYXRpbygKCS8vICAgICAgICAgICAgICAgICAgIFtjbXBTdGFrZXIuYmFsYW5jZSwgYWxnb1Jld2FyZEF2YWlsLCB0aW1lUGVyY2VudGFnZV0sCgkvLyAgICAgICAgICAgICAgICAgICBbdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUsIDEwMDBdCgkvLyAgICAgICAgICAgICAgICAgKQoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCW11bHcKCWZyYW1lX2RpZyAyNyAvLyB0aW1lUGVyY2VudGFnZTogdWludDY0Cgl1bmNvdmVyIDIKCWRpZyAxCgkqCgljb3ZlciAyCgltdWx3Cgljb3ZlciAyCgkrCglzd2FwCglieXRlYyA2IC8vICAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCWludGMgMTAgLy8gMTAwMAoJbXVsdwoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMjkgLy8gc3Rha2VyUmV3YXJkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzc1CgkvLyBhbGdvUmV3YXJkQXZhaWwgLT0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWZyYW1lX2RpZyAyOSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NzgKCS8vIGNtcFN0YWtlci5iYWxhbmNlICs9IHN0YWtlclJld2FyZAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50YyA0IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAyOSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc3OQoJLy8gY21wU3Rha2VyLnRvdGFsUmV3YXJkZWQgKz0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglpbnRjIDE4IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQwIDgKCWJ0b2kKCWZyYW1lX2RpZyAyOSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc4MAoJLy8gaW5jcmVhc2VkU3Rha2UgKz0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoJZnJhbWVfZGlnIDI5IC8vIHN0YWtlclJld2FyZDogdWludDY0CgkrCglmcmFtZV9idXJ5IDIyIC8vIGluY3JlYXNlZFN0YWtlOiB1aW50NjQKCippZjM5X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3ODMKCS8vIHRoaXMuc3Rha2Vycy52YWx1ZVtpXSA9IGNtcFN0YWtlcgoJZnJhbWVfZGlnIDI0IC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X3JlcGxhY2UKCippZjM3X2VuZDoKCippZjM2X2VuZDoKCippZjM1X2VuZDoKCipmb3JfNF9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzIKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDI0IC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMjQgLy8gaTogdWludDY0CgliICpmb3JfNAoKKmZvcl80X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3OTEKCS8vIG5ld1Bvb2xUb3RhbFN0YWtlID0gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgLSBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2UKCWJ5dGVjIDYgLy8gICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDIzIC8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0CgktCglmcmFtZV9idXJ5IDMwIC8vIG5ld1Bvb2xUb3RhbFN0YWtlOiB1aW50NjQKCgkvLyAqaWY0MF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3OTUKCS8vIG5ld1Bvb2xUb3RhbFN0YWtlID4gMAoJZnJhbWVfZGlnIDMwIC8vIG5ld1Bvb2xUb3RhbFN0YWtlOiB1aW50NjQKCWludGMgMCAvLyAwCgk+CglieiAqaWY0MF9lbmQKCgkvLyAqaWY0MF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzk3CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGg7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDMxIC8vIGk6IHVpbnQ2NAoKKmZvcl81OgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc5NwoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAzMSAvLyBpOiB1aW50NjQKCWludGMgNyAvLyAyMDAKCTwKCWJ6ICpmb3JfNV9lbmQKCgkvLyAqaWY0MV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3OTgKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgMjAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglpbnRjIDcgLy8gMjAwCgk8CglieiAqaWY0MV9lbmQKCgkvLyAqaWY0MV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzk5CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZWMgNSAvLyAgI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50YyA4IC8vICBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoqaWY0MV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODAxCgkvLyBjbXBTdGFrZXIgPSBjbG9uZSh0aGlzLnN0YWtlcnMudmFsdWVbaV0pCglmcmFtZV9kaWcgMzEgLy8gaTogdWludDY0CglpbnRjIDMgLy8gNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAzIC8vIDY0CglieXRlYyAyIC8vICAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vICppZjQyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgwMgoJLy8gY21wU3Rha2VyLmFjY291bnQgIT09IGdsb2JhbHMuemVyb0FkZHJlc3MgJiYgY21wU3Rha2VyLmVudHJ5Um91bmQgPCB0aGlzRXBvY2hCZWdpbgoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAwIDMyCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9CglkdXAKCWJ6ICpza2lwX2FuZDQKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNTYgOAoJYnRvaQoJZnJhbWVfZGlnIDMgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJPAoJJiYKCipza2lwX2FuZDQ6CglieiAqaWY0Ml9lbmQKCgkvLyAqaWY0Ml9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODAzCgkvLyB0aW1lSW5Qb29sID0gdGhpc0Vwb2NoQmVnaW4gLSBjbXBTdGFrZXIuZW50cnlSb3VuZAoJZnJhbWVfZGlnIDMgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA1NiA4CglidG9pCgktCglmcmFtZV9idXJ5IDMzIC8vIHRpbWVJblBvb2w6IHVpbnQ2NAoKCS8vICppZjQzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgwNQoJLy8gdGltZUluUG9vbCA+PSBlcG9jaFJvdW5kTGVuZ3RoCglmcmFtZV9kaWcgMzMgLy8gdGltZUluUG9vbDogdWludDY0CglmcmFtZV9kaWcgMSAvLyBlcG9jaFJvdW5kTGVuZ3RoOiB1aW50NjQKCT49CglieiAqaWY0M19lbmQKCgkvLyAqaWY0M19jb25zZXF1ZW50CgkvLyAqaWY0NF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MTAKCS8vIHRva2VuUmV3YXJkQXZhaWwgPiAwCglmcmFtZV9kaWcgMTQgLy8gdG9rZW5SZXdhcmRBdmFpbDogdWludDY0CglpbnRjIDAgLy8gMAoJPgoJYnogKmlmNDRfZW5kCgoJLy8gKmlmNDRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgxMQoJLy8gc3Rha2VyVG9rZW5SZXdhcmQgPSB3aWRlUmF0aW8oW2NtcFN0YWtlci5iYWxhbmNlLCB0b2tlblJld2FyZEF2YWlsXSwgW25ld1Bvb2xUb3RhbFN0YWtlXSkKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJbXVsdwoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyAzMCAvLyBuZXdQb29sVG90YWxTdGFrZTogdWludDY0CglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAzNCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgxNAoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSArPSBzdGFrZXJUb2tlblJld2FyZAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50YyAxOSAvLyAgaGVhZE9mZnNldAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglmcmFtZV9kaWcgMzQgLy8gc3Rha2VyVG9rZW5SZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgxNQoJLy8gdG9rZW5SZXdhcmRQYWlkT3V0ICs9IHN0YWtlclRva2VuUmV3YXJkCglmcmFtZV9kaWcgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCWZyYW1lX2RpZyAzNCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgkrCglmcmFtZV9idXJ5IDE1IC8vIHRva2VuUmV3YXJkUGFpZE91dDogdWludDY0CgoqaWY0NF9lbmQ6CgkvLyAqaWY0NV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MTcKCS8vIGFsZ29SZXdhcmRBdmFpbCA+IDAKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT4KCWJ6ICppZjQ1X2VuZAoKCS8vICppZjQ1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MTgKCS8vIHN0YWtlclJld2FyZCA9IHdpZGVSYXRpbyhbY21wU3Rha2VyLmJhbGFuY2UsIGFsZ29SZXdhcmRBdmFpbF0sIFtuZXdQb29sVG90YWxTdGFrZV0pCglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJbXVsdwoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyAzMCAvLyBuZXdQb29sVG90YWxTdGFrZTogdWludDY0CglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAzNSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MjEKCS8vIGNtcFN0YWtlci5iYWxhbmNlICs9IHN0YWtlclJld2FyZAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50YyA0IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAzNSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgyMgoJLy8gY21wU3Rha2VyLnRvdGFsUmV3YXJkZWQgKz0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglpbnRjIDE4IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQwIDgKCWJ0b2kKCWZyYW1lX2RpZyAzNSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgyMwoJLy8gaW5jcmVhc2VkU3Rha2UgKz0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoJZnJhbWVfZGlnIDM1IC8vIHN0YWtlclJld2FyZDogdWludDY0CgkrCglmcmFtZV9idXJ5IDIyIC8vIGluY3JlYXNlZFN0YWtlOiB1aW50NjQKCippZjQ1X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MjcKCS8vIHRoaXMuc3Rha2Vycy52YWx1ZVtpXSA9IGNtcFN0YWtlcgoJZnJhbWVfZGlnIDMxIC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGVjIDIgLy8gICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X3JlcGxhY2UKCippZjQzX2VuZDoKCippZjQyX2VuZDoKCipmb3JfNV9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3OTcKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDMxIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMzEgLy8gaTogdWludDY0CgliICpmb3JfNQoKKmZvcl81X2VuZDoKCippZjQwX2VuZDoKCippZjMzX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MzcKCS8vIHJvdW5kc0xlZnRJbkJpbiA9IHRoaXMuYmluUm91bmRTdGFydC52YWx1ZSArIHRoaXMucm91bmRzUGVyRGF5LnZhbHVlIC0gZ2xvYmFscy5yb3VuZAoJYnl0ZWMgMTEgLy8gICJiaW5Sb3VuZFN0YXJ0IgoJYXBwX2dsb2JhbF9nZXQKCWJ5dGVjIDEwIC8vICAicm91bmRzUGVyRGF5IgoJYXBwX2dsb2JhbF9nZXQKCSsKCWdsb2JhbCBSb3VuZAoJLQoJZnJhbWVfYnVyeSAzNiAvLyByb3VuZHNMZWZ0SW5CaW46IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MzgKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlICs9IGluY3JlYXNlZFN0YWtlCglieXRlYyA2IC8vICAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAyMiAvLyBpbmNyZWFzZWRTdGFrZTogdWludDY0CgkrCglieXRlYyA2IC8vICAic3Rha2VkIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODM5CgkvLyB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgPQoJLy8gICAgICAgdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlICsgKGluY3JlYXNlZFN0YWtlIGFzIHVpbnQxMjgpICogKHJvdW5kc0xlZnRJbkJpbiBhcyB1aW50MTI4KQoJYnl0ZWMgNyAvLyAgInN0YWtlQWNjdW11bGF0b3IiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfZGlnIDM2IC8vIHJvdW5kc0xlZnRJbkJpbjogdWludDY0CglpdG9iCgliKgoJYisKCWR1cAoJYml0bGVuCglpbnRjIDYgLy8gMTI4Cgk8PQoKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSArIChpbmNyZWFzZWRTdGFrZSBhcyB1aW50MTI4KSAqIChyb3VuZHNMZWZ0SW5CaW4gYXMgdWludDEyOCkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlYyA4IC8vIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnRjIDUgLy8gMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjg0MQoJLy8gdGhpcy5yZXdhcmRBY2N1bXVsYXRvci52YWx1ZSA9IHRoaXMucmV3YXJkQWNjdW11bGF0b3IudmFsdWUgKyBpbmNyZWFzZWRTdGFrZQoJYnl0ZWMgMTIgLy8gICJyZXdhcmRBY2N1bXVsYXRvciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAyMiAvLyBpbmNyZWFzZWRTdGFrZTogdWludDY0CgkrCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4NDcKCS8vIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuc3Rha2VVcGRhdGVkVmlhUmV3YXJkcz4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgIHsgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfSwKCS8vICAgICAgICAgaW5jcmVhc2VkU3Rha2UsCgkvLyAgICAgICAgIHRva2VuUmV3YXJkUGFpZE91dCwKCS8vICAgICAgICAgdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQsCgkvLyAgICAgICAgIGV4Y2Vzc1RvRmVlU2luaywKCS8vICAgICAgIF0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJcHVzaGJ5dGVzIDB4NDE4ZmNlZmMgLy8gbWV0aG9kICJzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzKCh1aW50NjQsdWludDY0LHVpbnQ2NCksdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4NDgKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODQ5CgkvLyBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgIHsgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfSwKCS8vICAgICAgICAgaW5jcmVhc2VkU3Rha2UsCgkvLyAgICAgICAgIHRva2VuUmV3YXJkUGFpZE91dCwKCS8vICAgICAgICAgdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQsCgkvLyAgICAgICAgIGV4Y2Vzc1RvRmVlU2luaywKCS8vICAgICAgIF0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglieXRlYyA0IC8vICAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWNvbmNhdAoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJY29uY2F0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDIyIC8vIGluY3JlYXNlZFN0YWtlOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMTYgLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAxNyAvLyBleGNlc3NUb0ZlZVNpbms6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGdvT25saW5lKHBheSxieXRlW10sYnl0ZVtdLGJ5dGVbXSx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfZ29PbmxpbmU6CgkvLyB2b3RlS2V5RGlsdXRpb246IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNgoJYnRvaQoKCS8vIHZvdGVMYXN0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDUKCWJ0b2kKCgkvLyB2b3RlRmlyc3Q6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJYnRvaQoKCS8vIHN0YXRlUHJvb2ZQSzogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglleHRyYWN0IDIgMAoKCS8vIHNlbGVjdGlvblBLOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWV4dHJhY3QgMiAwCgoJLy8gdm90ZVBLOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZmVlUGF5bWVudDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50YyAxIC8vIDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludGMgMSAvLyAgcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDYgKGZlZVBheW1lbnQpIGZvciBnb09ubGluZSBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGdvT25saW5lKHBheSxieXRlW10sYnl0ZVtdLGJ5dGVbXSx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGdvT25saW5lCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnb09ubGluZShmZWVQYXltZW50OiBQYXlUeG4sIHZvdGVQSzogYnl0ZXMsIHNlbGVjdGlvblBLOiBieXRlcywgc3RhdGVQcm9vZlBLOiBieXRlcywgdm90ZUZpcnN0OiB1aW50NjQsIHZvdGVMYXN0OiB1aW50NjQsIHZvdGVLZXlEaWx1dGlvbjogdWludDY0KTogdm9pZAovLwovLyBSZWdpc3RlcnMgYSBzdGFraW5nIHBvb2wga2V5IG9ubGluZSBhZ2FpbnN0IGEgcGFydGljaXBhdGlvbiBrZXkuCi8vIFsgT05MWSBPV05FUiBPUiBNQU5BR0VSIENBTiBDQUxMIF0KLy8KLy8gQHBhcmFtIHtQYXlUeG59IGZlZVBheW1lbnQgLSBwYXltZW50IHRvIGNvdmVyIGV4dHJhIGZlZSBvZiBnb2luZyBvbmxpbmUgaWYgb2ZmbGluZSAtIG9yIDAgaWYgbm90IHJlbmV3YWwKLy8gQHBhcmFtIHtieXRlc30gdm90ZVBLIC0gVGhlIHZvdGUgcHVibGljIGtleS4KLy8gQHBhcmFtIHtieXRlc30gc2VsZWN0aW9uUEsgLSBUaGUgc2VsZWN0aW9uIHB1YmxpYyBrZXkuCi8vIEBwYXJhbSB7Ynl0ZXN9IHN0YXRlUHJvb2ZQSyAtIFRoZSBzdGF0ZSBwcm9vZiBwdWJsaWMga2V5LgovLyBAcGFyYW0ge3VpbnQ2NH0gdm90ZUZpcnN0IC0gVGhlIGZpcnN0IHZvdGUgaW5kZXguCi8vIEBwYXJhbSB7dWludDY0fSB2b3RlTGFzdCAtIFRoZSBsYXN0IHZvdGUgaW5kZXguCi8vIEBwYXJhbSB7dWludDY0fSB2b3RlS2V5RGlsdXRpb24gLSBUaGUgdm90ZSBrZXkgZGlsdXRpb24gdmFsdWUuCi8vIEB0aHJvd3Mge0Vycm9yfSBXaWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSBjYWxsZXIgaXMgbm90IHRoZSBvd25lciBvciBhIG1hbmFnZXIuCmdvT25saW5lOgoJcHJvdG8gNyAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODgxCgkvLyBhc3NlcnQodGhpcy5pc093bmVyT3JNYW5hZ2VyQ2FsbGVyKCksICdjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3InKQoJY2FsbHN1YiBpc093bmVyT3JNYW5hZ2VyQ2FsbGVyCgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODgyCgkvLyBleHRyYUZlZSA9IHRoaXMuZ2V0R29PbmxpbmVGZWUoKQoJY2FsbHN1YiBnZXRHb09ubGluZUZlZQoJZnJhbWVfYnVyeSAwIC8vIGV4dHJhRmVlOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODgzCgkvLyB2ZXJpZnlQYXlUeG4oZmVlUGF5bWVudCwgeyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgYW1vdW50OiBleHRyYUZlZSB9KQoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gZmVlUGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJmZWVQYXltZW50IiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gZmVlUGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAwIC8vIGV4dHJhRmVlOiB1aW50NjQKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJmZWVQYXltZW50IiwiZmllbGQiOiJhbW91bnQiLCJleHBlY3RlZCI6ImV4dHJhRmVlIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4ODQKCS8vIHNlbmRPbmxpbmVLZXlSZWdpc3RyYXRpb24oewoJLy8gICAgICAgdm90ZVBLOiB2b3RlUEssCgkvLyAgICAgICBzZWxlY3Rpb25QSzogc2VsZWN0aW9uUEssCgkvLyAgICAgICBzdGF0ZVByb29mUEs6IHN0YXRlUHJvb2ZQSywKCS8vICAgICAgIHZvdGVGaXJzdDogdm90ZUZpcnN0LAoJLy8gICAgICAgdm90ZUxhc3Q6IHZvdGVMYXN0LAoJLy8gICAgICAgdm90ZUtleURpbHV0aW9uOiB2b3RlS2V5RGlsdXRpb24sCgkvLyAgICAgICBmZWU6IHRoaXMuZ2V0R29PbmxpbmVGZWUoKSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxNyAvLyAga2V5cmVnCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjg4NQoJLy8gdm90ZVBLOiB2b3RlUEsKCWZyYW1lX2RpZyAtMiAvLyB2b3RlUEs6IGJ5dGVzCglpdHhuX2ZpZWxkIFZvdGVQSwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4ODYKCS8vIHNlbGVjdGlvblBLOiBzZWxlY3Rpb25QSwoJZnJhbWVfZGlnIC0zIC8vIHNlbGVjdGlvblBLOiBieXRlcwoJaXR4bl9maWVsZCBTZWxlY3Rpb25QSwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4ODcKCS8vIHN0YXRlUHJvb2ZQSzogc3RhdGVQcm9vZlBLCglmcmFtZV9kaWcgLTQgLy8gc3RhdGVQcm9vZlBLOiBieXRlcwoJaXR4bl9maWVsZCBTdGF0ZVByb29mUEsKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODg4CgkvLyB2b3RlRmlyc3Q6IHZvdGVGaXJzdAoJZnJhbWVfZGlnIC01IC8vIHZvdGVGaXJzdDogdWludDY0CglpdHhuX2ZpZWxkIFZvdGVGaXJzdAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4ODkKCS8vIHZvdGVMYXN0OiB2b3RlTGFzdAoJZnJhbWVfZGlnIC02IC8vIHZvdGVMYXN0OiB1aW50NjQKCWl0eG5fZmllbGQgVm90ZUxhc3QKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODkwCgkvLyB2b3RlS2V5RGlsdXRpb246IHZvdGVLZXlEaWx1dGlvbgoJZnJhbWVfZGlnIC03IC8vIHZvdGVLZXlEaWx1dGlvbjogdWludDY0CglpdHhuX2ZpZWxkIFZvdGVLZXlEaWx1dGlvbgoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4OTEKCS8vIGZlZTogdGhpcy5nZXRHb09ubGluZUZlZSgpCgljYWxsc3ViIGdldEdvT25saW5lRmVlCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gZ29PZmZsaW5lKCl2b2lkCiphYmlfcm91dGVfZ29PZmZsaW5lOgoJLy8gZXhlY3V0ZSBnb09mZmxpbmUoKXZvaWQKCWNhbGxzdWIgZ29PZmZsaW5lCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnb09mZmxpbmUoKTogdm9pZAovLwovLyBNYXJrcyBhIHN0YWtpbmcgcG9vbCBrZXkgT0ZGTElORS4KLy8gWyBPTkxZIE9XTkVSIE9SIE1BTkFHRVIgQ0FOIENBTEwgXQpnb09mZmxpbmU6Cglwcm90byAwIDAKCgkvLyAqaWY0Nl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MDMKCS8vIHRoaXMudHhuLnNlbmRlciAhPT0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkuYWRkcmVzcwoJdHhuIFNlbmRlcgoJYnl0ZWMgMSAvLyAgImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgkhPQoJYnogKmlmNDZfZW5kCgoJLy8gKmlmNDZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkwNAoJLy8gYXNzZXJ0KHRoaXMuaXNPd25lck9yTWFuYWdlckNhbGxlcigpLCAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yJykKCWNhbGxzdWIgaXNPd25lck9yTWFuYWdlckNhbGxlcgoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcgoJYXNzZXJ0CgoqaWY0Nl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTA3CgkvLyBzZW5kT2ZmbGluZUtleVJlZ2lzdHJhdGlvbih7fSkKCWl0eG5fYmVnaW4KCWludGMgMTcgLy8gIGtleXJlZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gbGlua1RvTkZEKHVpbnQ2NCxzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX2xpbmtUb05GRDoKCS8vIG5mZE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBuZmRBcHBJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBsaW5rVG9ORkQodWludDY0LHN0cmluZyl2b2lkCgljYWxsc3ViIGxpbmtUb05GRAoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gbGlua1RvTkZEKG5mZEFwcElkOiB1aW50NjQsIG5mZE5hbWU6IHN0cmluZyk6IHZvaWQKbGlua1RvTkZEOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkxNAoJLy8gYXNzZXJ0KHRoaXMuaXNPd25lck9yTWFuYWdlckNhbGxlcigpLCAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yJykKCWNhbGxzdWIgaXNPd25lck9yTWFuYWdlckNhbGxlcgoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkxNgoJLy8gc2VuZEFwcENhbGwoewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpLAoJLy8gICAgICAgYXBwbGljYXRpb25BcmdzOiBbJ3ZlcmlmeV9uZmRfYWRkcicsIG5mZE5hbWUsIGl0b2IobmZkQXBwSWQpLCByYXdCeXRlcyh0aGlzLmFwcC5hZGRyZXNzKV0sCgkvLyAgICAgICBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MTcKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5uZmRSZWdpc3RyeUFwcElkKQoJaW50YyAyMCAvLyBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MTgKCS8vIGFwcGxpY2F0aW9uQXJnczogWyd2ZXJpZnlfbmZkX2FkZHInLCBuZmROYW1lLCBpdG9iKG5mZEFwcElkKSwgcmF3Qnl0ZXModGhpcy5hcHAuYWRkcmVzcyldCglwdXNoYnl0ZXMgMHg3NjY1NzI2OTY2Nzk1ZjZlNjY2NDVmNjE2NDY0NzIgLy8gInZlcmlmeV9uZmRfYWRkciIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTIgLy8gbmZkTmFtZTogc3RyaW5nCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0xIC8vIG5mZEFwcElkOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTE5CgkvLyBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKV0KCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJZDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9ucwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0WzI0XSx1aW50NjQpCiphYmlfcm91dGVfcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW86CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIxIC8vIDB4MTUxZjdjNzUKCgkvLyBwb29sS2V5OiAodWludDY0LHVpbnQ2NCx1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJcHVzaGludCAyNAoJPT0KCgkvLyBhcmd1bWVudCAwIChwb29sS2V5KSBmb3IgcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8gbXVzdCBiZSBhICh1aW50NjQsdWludDY0LHVpbnQ2NCkKCWFzc2VydAoKCS8vIGV4ZWN1dGUgcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0WzI0XSx1aW50NjQpCgljYWxsc3ViIHByb3hpZWRTZXRUb2tlblBheW91dFJhdGlvCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8ocG9vbEtleTogVmFsaWRhdG9yUG9vbEtleSk6IFBvb2xUb2tlblBheW91dFJhdGlvCi8vCi8vIHByb3hpZWRTZXRUb2tlblBheW91dFJhdGlvIGlzIG1lYW50IHRvIGJlIGNhbGxlZCBieSBwb29scyAhPSAxIC0gY2FsbGluZyBVUywgcG9vbCAjMQovLyBXZSBuZWVkIHRvIHZlcmlmeSB0aGF0IHdlIGFyZSBpbiBmYWN0IGJlaW5nIGNhbGxlZCBieSBhbm90aGVyIG9mIE9VUiBwb29scyAobm90IHVzKQovLyBhbmQgdGhlbiB3ZSdsbCBjYWxsIHRoZSB2YWxpZGF0b3Igb24gdGhlaXIgYmVoYWxmIHRvIHVwZGF0ZSB0aGUgdG9rZW4gcGF5b3V0cwovLyBAcGFyYW0gcG9vbEtleSAtIFZhbGlkYXRvclBvb2xLZXkgdHVwbGUKcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW86Cglwcm90byAxIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzAKCS8vIGFzc2VydCh0aGlzLnZhbGlkYXRvcklkLnZhbHVlID09PSBwb29sS2V5LmlkLCAnY2FsbGVyIG11c3QgYmUgcGFydCBvZiBzYW1lIHZhbGlkYXRvciBzZXQhJykKCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCT09CgoJLy8gY2FsbGVyIG11c3QgYmUgcGFydCBvZiBzYW1lIHZhbGlkYXRvciBzZXQhCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTMxCgkvLyBhc3NlcnQodGhpcy5wb29sSWQudmFsdWUgPT09IDEsICdjYWxsZWUgbXVzdCBiZSBwb29sIDEnKQoJYnl0ZWMgNCAvLyAgInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJPT0KCgkvLyBjYWxsZWUgbXVzdCBiZSBwb29sIDEKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzIKCS8vIGFzc2VydChwb29sS2V5LnBvb2xJZCAhPT0gMSwgJ2NhbGxlciBtdXN0IE5PVCBiZSBwb29sIDEnKQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnRjIDEgLy8gMQoJIT0KCgkvLyBjYWxsZXIgbXVzdCBOT1QgYmUgcG9vbCAxCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTM0CgkvLyBjYWxsZXJQb29sQXBwSUQgPSBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLmdldFBvb2xBcHBJZD4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbcG9vbEtleS5pZCwgcG9vbEtleS5wb29sSWRdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWJ5dGVjIDIzIC8vICBtZXRob2QgImdldFBvb2xBcHBJZCh1aW50NjQsdWludDY0KXVpbnQ2NCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkzNQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkKCWJ5dGVjIDEgLy8gICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzYKCS8vIG1ldGhvZEFyZ3M6IFtwb29sS2V5LmlkLCBwb29sS2V5LnBvb2xJZF0KCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludGMgMSAvLyAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyBjYWxsZXJQb29sQXBwSUQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzgKCS8vIGFzc2VydChjYWxsZXJQb29sQXBwSUQgPT09IHBvb2xLZXkucG9vbEFwcElkKQoJZnJhbWVfZGlnIDAgLy8gY2FsbGVyUG9vbEFwcElEOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDE2IDgKCWJ0b2kKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTM5CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBBcHBJRC5mcm9tVWludDY0KHBvb2xLZXkucG9vbEFwcElkKS5hZGRyZXNzKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk0MQoJLy8gcmV0dXJuIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuc2V0VG9rZW5QYXlvdXRSYXRpbz4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgfSk7CglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWJ5dGVjIDI0IC8vICBtZXRob2QgInNldFRva2VuUGF5b3V0UmF0aW8odWludDY0KSh1aW50NjRbMjRdLHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NDIKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlYyAxIC8vICAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTQzCgkvLyBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0KCWJ5dGVjIDMgLy8gICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50YyAxIC8vIDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBpc093bmVyT3JNYW5hZ2VyQ2FsbGVyKCk6IGJvb2xlYW4KaXNPd25lck9yTWFuYWdlckNhbGxlcjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk0OAoJLy8gT3duZXJBbmRNYW5hZ2VyID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5nZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXI+KHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDIgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCXB1c2hieXRlcyAweDJmYTIyYzRiIC8vIG1ldGhvZCAiZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyKHVpbnQ2NCkoYWRkcmVzcyxhZGRyZXNzKSIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk0OQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkKCWJ5dGVjIDEgLy8gICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NTAKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXQoJYnl0ZWMgMyAvLyAgInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnRjIDEgLy8gMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglmcmFtZV9idXJ5IDAgLy8gT3duZXJBbmRNYW5hZ2VyOiAoYWRkcmVzcyxhZGRyZXNzKQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NTIKCS8vIHJldHVybiB0aGlzLnR4bi5zZW5kZXIgPT09IE93bmVyQW5kTWFuYWdlclswXSB8fCB0aGlzLnR4bi5zZW5kZXIgPT09IE93bmVyQW5kTWFuYWdlclsxXTsKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAwIC8vIE93bmVyQW5kTWFuYWdlcjogKGFkZHJlc3MsYWRkcmVzcykKCWV4dHJhY3QgMCAzMgoJPT0KCWR1cAoJYm56ICpza2lwX29yMgoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIDAgLy8gT3duZXJBbmRNYW5hZ2VyOiAoYWRkcmVzcyxhZGRyZXNzKQoJZXh0cmFjdCAzMiAzMgoJPT0KCXx8Cgoqc2tpcF9vcjI6CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gZ2V0RmVlU2luaygpOiBBZGRyZXNzCmdldEZlZVNpbms6Cglwcm90byAwIDEKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTU2CgkvLyByZXR1cm4gdGhpcy5mZWVTaW5rQWRkcjsKCWJ5dGVjIDI3IC8vIFRNUExfZmVlU2lua0FkZHIKCXJldHN1YgoKLy8gYWxnb1NhdHVyYXRpb25MZXZlbCgpOiB1aW50NjQKLy8KLy8gUmV0dXJucyB0aGUgbWF4aW11bSBhbGxvd2VkIHN0YWtlIHBlciB2YWxpZGF0b3IgYmFzZWQgb24gYSBwZXJjZW50YWdlIG9mIGFsbCBjdXJyZW50IG9ubGluZSBzdGFrZSBiZWZvcmUKLy8gdGhlIHZhbGlkYXRvciBpcyBjb25zaWRlcmVkIHNhdHVyYXRlZCAtIHdoZXJlIHJld2FyZHMgYXJlIGRpbWluaXNoZWQuCmFsZ29TYXR1cmF0aW9uTGV2ZWw6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NjYKCS8vIG9ubGluZSA9IHRoaXMuZ2V0Q3VycmVudE9ubGluZVN0YWtlKCkKCWNhbGxzdWIgZ2V0Q3VycmVudE9ubGluZVN0YWtlCglmcmFtZV9idXJ5IDAgLy8gb25saW5lOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTY4CgkvLyByZXR1cm4gd2lkZVJhdGlvKFtvbmxpbmUsIE1BWF9WQUxJREFUT1JfU09GVF9QQ1RfT0ZfT05MSU5FXzFERUNJTUFMXSwgWzEwMDBdKTsKCWZyYW1lX2RpZyAwIC8vIG9ubGluZTogdWludDY0CglwdXNoaW50IDEwMAoJbXVsdwoJaW50YyAwIC8vIDAKCWludGMgMTAgLy8gMTAwMAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gZ2V0R29PbmxpbmVGZWUoKTogdWludDY0CmdldEdvT25saW5lRmVlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTc1CgkvLyBpc09ubGluZSA9IGZhbHNlCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAwIC8vIGlzT25saW5lOiBib29sCgoJLy8gKmlmNDdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTc2CgkvLyAhaXNPbmxpbmUKCWZyYW1lX2RpZyAwIC8vIGlzT25saW5lOiBib29sCgkhCglieiAqaWY0N19lbmQKCgkvLyAqaWY0N19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTc4CgkvLyByZXR1cm4gMl8wMDBfMDAwOwoJcHVzaGludCAyXzAwMF8wMDAKCWIgKmdldEdvT25saW5lRmVlKnJldHVybgoKKmlmNDdfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk4MAoJLy8gcmV0dXJuIDA7CglpbnRjIDAgLy8gMAoKKmdldEdvT25saW5lRmVlKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBnZXRDdXJyZW50T25saW5lU3Rha2UoKTogdWludDY0CmdldEN1cnJlbnRPbmxpbmVTdGFrZToKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5ODUKCS8vIHJldHVybiAyXzAwMF8wMDBfMDAwXzAwMF8wMDA7CglwdXNoaW50IDJfMDAwXzAwMF8wMDBfMDAwXzAwMAoJcmV0c3ViCgovLyBjaGVja0lmQmluQ2xvc2VkKCk6IHZvaWQKLy8KLy8gQ2hlY2tzIGlmIHRoZSBjdXJyZW50IHJvdW5kIGlzIGluIGEgJ25ldyBjYWxjdWxhdGlvbiBiaW4nIChhcHByb3hpbWF0ZWx5IGRhaWx5KQpjaGVja0lmQmluQ2xvc2VkOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gNAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5OTIKCS8vIGN1cnJlbnRCaW5TaXplID0gdGhpcy5yb3VuZHNQZXJEYXkudmFsdWUgYXMgdWludDEyOAoJYnl0ZWMgMTAgLy8gICJyb3VuZHNQZXJEYXkiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJZnJhbWVfYnVyeSAwIC8vIGN1cnJlbnRCaW5TaXplOiB1bnNhZmUgdWludDEyOAoKCS8vICppZjQ4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5MwoJLy8gZ2xvYmFscy5yb3VuZCA+PSB0aGlzLmJpblJvdW5kU3RhcnQudmFsdWUgKyAoY3VycmVudEJpblNpemUgYXMgdWludDY0KQoJZ2xvYmFsIFJvdW5kCglieXRlYyAxMSAvLyAgImJpblJvdW5kU3RhcnQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDAgLy8gY3VycmVudEJpblNpemU6IHVuc2FmZSB1aW50MTI4CglkdXAKCWJpdGxlbgoJaW50YyAzIC8vIDY0Cgk8PQoKCS8vIGN1cnJlbnRCaW5TaXplIGFzIHVpbnQ2NCBvdmVyZmxvd2VkIDY0IGJpdHMKCWFzc2VydAoJcHVzaGJ5dGVzIDB4RkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludGMgMTQgLy8gOAoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJYnRvaQoJKwoJPj0KCWJ6ICppZjQ4X2VuZAoKCS8vICppZjQ4X2NvbnNlcXVlbnQKCS8vICppZjQ5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5NAoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAzMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludGMgOSAvLyAzMDAKCTwKCWJ6ICppZjQ5X2VuZAoKCS8vICppZjQ5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5OTUKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgMiAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyA1IC8vICAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnRjIDggLy8gIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjQ5X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5OTcKCS8vIGFwcHJveFJvdW5kc1BlclllYXI6IHVpbnQxMjggPSBjdXJyZW50QmluU2l6ZSAqICgzNjUgYXMgdWludDEyOCkKCWZyYW1lX2RpZyAwIC8vIGN1cnJlbnRCaW5TaXplOiB1bnNhZmUgdWludDEyOAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNmQKCWIqCglkdXAKCWJpdGxlbgoJaW50YyA2IC8vIDEyOAoJPD0KCgkvLyBjdXJyZW50QmluU2l6ZSAqICgzNjUgYXMgdWludDEyOCkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlYyA4IC8vIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnRjIDUgLy8gMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWZyYW1lX2J1cnkgMSAvLyBhcHByb3hSb3VuZHNQZXJZZWFyOiB1aW50MTI4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5OAoJLy8gYXZnU3Rha2U6IHVpbnQxMjggPSB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgLyBjdXJyZW50QmluU2l6ZQoJYnl0ZWMgNyAvLyAgInN0YWtlQWNjdW11bGF0b3IiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDAgLy8gY3VycmVudEJpblNpemU6IHVuc2FmZSB1aW50MTI4CgliLwoJZHVwCgliaXRsZW4KCWludGMgNiAvLyAxMjgKCTw9CgoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlIC8gY3VycmVudEJpblNpemUgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlYyA4IC8vIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnRjIDUgLy8gMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWZyYW1lX2J1cnkgMiAvLyBhdmdTdGFrZTogdWludDEyOAoKCS8vICppZjUwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5OQoJLy8gYXZnU3Rha2UgIT09IDAKCWZyYW1lX2RpZyAyIC8vIGF2Z1N0YWtlOiB1aW50MTI4CglieXRlYyAxNiAvLyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCgliIT0KCWJ6ICppZjUwX2VuZAoKCS8vICppZjUwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDAzCgkvLyBhcHI6IHVpbnQxMjggPQoJLy8gICAgICAgICAgICgoKHRoaXMucmV3YXJkQWNjdW11bGF0b3IudmFsdWUgYXMgdWludDEyOCkgKiAoMTAwMDAgYXMgdWludDEyOCkpIC8gYXZnU3Rha2UpICoKCS8vICAgICAgICAgICAoYXBwcm94Um91bmRzUGVyWWVhciAvIGN1cnJlbnRCaW5TaXplKQoJYnl0ZWMgMTIgLy8gICJyZXdhcmRBY2N1bXVsYXRvciIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjcxMAoJYioKCWZyYW1lX2RpZyAyIC8vIGF2Z1N0YWtlOiB1aW50MTI4CgliLwoJZnJhbWVfZGlnIDEgLy8gYXBwcm94Um91bmRzUGVyWWVhcjogdWludDEyOAoJZnJhbWVfZGlnIDAgLy8gY3VycmVudEJpblNpemU6IHVuc2FmZSB1aW50MTI4CgliLwoJYioKCWR1cAoJYml0bGVuCglpbnRjIDYgLy8gMTI4Cgk8PQoKCS8vICgoKHRoaXMucmV3YXJkQWNjdW11bGF0b3IudmFsdWUgYXMgdWludDEyOCkgKiAoMTAwMDAgYXMgdWludDEyOCkpIC8gYXZnU3Rha2UpICpcbiAgICAgICAgICAoYXBwcm94Um91bmRzUGVyWWVhciAvIGN1cnJlbnRCaW5TaXplKSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGVjIDggLy8gMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludGMgNSAvLyAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJZnJhbWVfYnVyeSAzIC8vIGFwcjogdWludDEyOAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDA3CgkvLyBhbHBoYTogdWludDEyOCA9IDEwIGFzIHVpbnQxMjgKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBhCglmcmFtZV9idXJ5IDQgLy8gYWxwaGE6IHVuc2FmZSB1aW50MTI4CgoJLy8gKmlmNTFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAwOQoJLy8gYXZnU3Rha2UgPiAzMDAwMDAwMDAwMDAKCWZyYW1lX2RpZyAyIC8vIGF2Z1N0YWtlOiB1aW50MTI4CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDVkOTY0YjgwMAoJYj4KCWJ6ICppZjUxX2VuZAoKCS8vICppZjUxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDEwCgkvLyBhbHBoYSA9IDkwIGFzIHVpbnQxMjgKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVhCglmcmFtZV9idXJ5IDQgLy8gYWxwaGE6IHVuc2FmZSB1aW50MTI4CgoqaWY1MV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAxMgoJLy8gdGhpcy53ZWlnaHRlZE1vdmluZ0F2ZXJhZ2UudmFsdWUgPQoJLy8gICAgICAgICAgICh0aGlzLndlaWdodGVkTW92aW5nQXZlcmFnZS52YWx1ZSAqICgoMTAwIGFzIHVpbnQxMjgpIC0gYWxwaGEpKSAvICgxMDAgYXMgdWludDEyOCkgKwoJLy8gICAgICAgICAgIChhcHIgKiBhbHBoYSkgLyAoMTAwIGFzIHVpbnQxMjgpCglieXRlYyAyMCAvLyAgImV3bWEiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglieXRlYyAxNyAvLyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY0CglmcmFtZV9kaWcgNCAvLyBhbHBoYTogdW5zYWZlIHVpbnQxMjgKCWItCgliKgoJYnl0ZWMgMTcgLy8gMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAoJYi8KCWZyYW1lX2RpZyAzIC8vIGFwcjogdWludDEyOAoJZnJhbWVfZGlnIDQgLy8gYWxwaGE6IHVuc2FmZSB1aW50MTI4CgliKgoJYnl0ZWMgMTcgLy8gMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAoJYi8KCWIrCglkdXAKCWJpdGxlbgoJaW50YyA2IC8vIDEyOAoJPD0KCgkvLyAodGhpcy53ZWlnaHRlZE1vdmluZ0F2ZXJhZ2UudmFsdWUgKiAoKDEwMCBhcyB1aW50MTI4KSAtIGFscGhhKSkgLyAoMTAwIGFzIHVpbnQxMjgpICtcbiAgICAgICAgICAoYXByICogYWxwaGEpIC8gKDEwMCBhcyB1aW50MTI4KSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGVjIDggLy8gMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludGMgNSAvLyAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJYXBwX2dsb2JhbF9wdXQKCippZjUwX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDE4CgkvLyB0aGlzLnNldFJvdW5kc1BlckRheSgpCgljYWxsc3ViIHNldFJvdW5kc1BlckRheQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDE5CgkvLyB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgPSAodGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgYXMgdWludDEyOCkgKiAodGhpcy5yb3VuZHNQZXJEYXkudmFsdWUgYXMgdWludDEyOCkKCWJ5dGVjIDcgLy8gICJzdGFrZUFjY3VtdWxhdG9yIgoJYnl0ZWMgNiAvLyAgInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglieXRlYyAxMCAvLyAgInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCgliKgoJZHVwCgliaXRsZW4KCWludGMgNiAvLyAxMjgKCTw9CgoJLy8gKHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlIGFzIHVpbnQxMjgpICogKHRoaXMucm91bmRzUGVyRGF5LnZhbHVlIGFzIHVpbnQxMjgpIG92ZXJmbG93ZWQgMTI4IGJpdHMKCWFzc2VydAoJYnl0ZWMgOCAvLyAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50YyA1IC8vIDE2CgktCglzd2FwCglzdWJzdHJpbmczCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDIwCgkvLyB0aGlzLnJld2FyZEFjY3VtdWxhdG9yLnZhbHVlID0gMAoJYnl0ZWMgMTIgLy8gICJyZXdhcmRBY2N1bXVsYXRvciIKCWludGMgMCAvLyAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDIxCgkvLyB0aGlzLmJpblJvdW5kU3RhcnQudmFsdWUgPSBnbG9iYWxzLnJvdW5kIC0gKGdsb2JhbHMucm91bmQgJSB0aGlzLnJvdW5kc1BlckRheS52YWx1ZSkKCWJ5dGVjIDExIC8vICAiYmluUm91bmRTdGFydCIKCWdsb2JhbCBSb3VuZAoJZ2xvYmFsIFJvdW5kCglieXRlYyAxMCAvLyAgInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CgklCgktCglhcHBfZ2xvYmFsX3B1dAoKKmlmNDhfZW5kOgoJcmV0c3ViCgovLyBzZXRSb3VuZHNQZXJEYXkoKTogdm9pZApzZXRSb3VuZHNQZXJEYXk6Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAyNgoJLy8gdGhpcy5yb3VuZHNQZXJEYXkudmFsdWUgPSBBVkdfUk9VTkRTX1BFUl9EQVkKCWJ5dGVjIDEwIC8vICAicm91bmRzUGVyRGF5IgoJcHVzaGludCAzMDg1NwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4NTllOTBhYTYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbih1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDMxNzJjYTlkIC8vIG1ldGhvZCAiZ2FzKCl2b2lkIgoJcHVzaGJ5dGVzIDB4NDdjZmNjMDQgLy8gbWV0aG9kICJpbml0U3RvcmFnZShwYXkpdm9pZCIKCXB1c2hieXRlcyAweGY5YzcwY2JkIC8vIG1ldGhvZCAiYWRkU3Rha2UocGF5LGFkZHJlc3MpdWludDY0IgoJcHVzaGJ5dGVzIDB4NDIxYjVhYmUgLy8gbWV0aG9kICJyZW1vdmVTdGFrZShhZGRyZXNzLHVpbnQ2NCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZjU4OTJkNTYgLy8gbWV0aG9kICJjbGFpbVRva2Vucygpdm9pZCIKCXB1c2hieXRlcyAweDVjZmJiMDU3IC8vIG1ldGhvZCAiZ2V0U3Rha2VySW5mbyhhZGRyZXNzKShhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkiCglwdXNoYnl0ZXMgMHg2M2YzZjI4YiAvLyBtZXRob2QgInBheVRva2VuUmV3YXJkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCl2b2lkIgoJcHVzaGJ5dGVzIDB4ODZhMzcyNWMgLy8gbWV0aG9kICJ1cGRhdGVBbGdvZFZlcihzdHJpbmcpdm9pZCIKCXB1c2hieXRlcyAweGVmYzI2MDhkIC8vIG1ldGhvZCAiZXBvY2hCYWxhbmNlVXBkYXRlKCl2b2lkIgoJcHVzaGJ5dGVzIDB4NDAwZTE0ZmIgLy8gbWV0aG9kICJnb09ubGluZShwYXksYnl0ZVtdLGJ5dGVbXSxieXRlW10sdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweDUxZWYzYjIxIC8vIG1ldGhvZCAiZ29PZmZsaW5lKCl2b2lkIgoJcHVzaGJ5dGVzIDB4YTI0ZTI3MTcgLy8gbWV0aG9kICJsaW5rVG9ORkQodWludDY0LHN0cmluZyl2b2lkIgoJYnl0ZWMgMjUgLy8gIG1ldGhvZCAicHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0WzI0XSx1aW50NjQpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9nYXMgKmFiaV9yb3V0ZV9pbml0U3RvcmFnZSAqYWJpX3JvdXRlX2FkZFN0YWtlICphYmlfcm91dGVfcmVtb3ZlU3Rha2UgKmFiaV9yb3V0ZV9jbGFpbVRva2VucyAqYWJpX3JvdXRlX2dldFN0YWtlckluZm8gKmFiaV9yb3V0ZV9wYXlUb2tlblJld2FyZCAqYWJpX3JvdXRlX3VwZGF0ZUFsZ29kVmVyICphYmlfcm91dGVfZXBvY2hCYWxhbmNlVXBkYXRlICphYmlfcm91dGVfZ29PbmxpbmUgKmFiaV9yb3V0ZV9nb09mZmxpbmUgKmFiaV9yb3V0ZV9saW5rVG9ORkQgKmFiaV9yb3V0ZV9wcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKmNhbGxfVXBkYXRlQXBwbGljYXRpb246CglwdXNoYnl0ZXMgMHg0NmY3NjUzMyAvLyBtZXRob2QgInVwZGF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91cGRhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIFVwZGF0ZUFwcGxpY2F0aW9uCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "templateVariables": { diff --git a/examples/reti/artifacts/StakingPool.src_map.json b/examples/reti/artifacts/StakingPool.src_map.json index 935afa81c..3abb82df3 100644 --- a/examples/reti/artifacts/StakingPool.src_map.json +++ b/examples/reti/artifacts/StakingPool.src_map.json @@ -12,7 +12,7 @@ "source": "examples/reti/stakingPool.algo.ts:38" }, { - "teal": 11, + "teal": 15, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ 1, @@ -20,61 +20,49 @@ ] }, { - "teal": 12, + "teal": 16, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 3, - 4 + 3 ] }, { - "teal": 19, + "teal": 17, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 5, - 6 + 4 ] }, { - "teal": 20, + "teal": 18, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 7 + 5 ] }, { - "teal": 21, + "teal": 19, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 8 + 6, + 7 ] }, { - "teal": 22, + "teal": 20, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 9 + 8 ] }, { - "teal": 23, + "teal": 21, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ + 9, 10, - 11 - ] - }, - { - "teal": 24, - "source": "examples/reti/stakingPool.algo.ts:38", - "pc": [ - 12 - ] - }, - { - "teal": 25, - "source": "examples/reti/stakingPool.algo.ts:38", - "pc": [ + 11, + 12, 13, 14, 15, @@ -96,65 +84,65 @@ 31, 32, 33, - 34, - 35, - 36, - 37, - 38 + 34 ] }, { - "teal": 29, + "teal": 25, "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": [ - 39 + 35 ] }, { - "teal": 34, + "teal": 30, "source": "examples/reti/stakingPool.algo.ts:93", "pc": [ - 40, - 41, - 42 + 36, + 37, + 38 ] }, { - "teal": 35, + "teal": 31, "source": "examples/reti/stakingPool.algo.ts:93", "pc": [ - 43 + 39 ] }, { - "teal": 36, + "teal": 32, "source": "examples/reti/stakingPool.algo.ts:93", "pc": [ - 44 + 40 ] }, { - "teal": 40, + "teal": 36, "source": "examples/reti/stakingPool.algo.ts:93", "pc": [ - 45, - 46, - 47 + 41, + 42, + 43 ] }, { - "teal": 47, + "teal": 43, "source": "examples/reti/stakingPool.algo.ts:95", "pc": [ - 48, - 49 + 44, + 45 ] }, { - "teal": 48, + "teal": 44, "source": "examples/reti/stakingPool.algo.ts:95", "pc": [ + 46, + 47, + 48, + 49, 50, 51, 52, @@ -184,31 +172,43 @@ 76, 77, 78, - 79, - 80, - 81, - 82, - 83 + 79 ] }, { - "teal": 49, + "teal": 45, "source": "examples/reti/stakingPool.algo.ts:95", "pc": [ - 84 + 80 ] }, { - "teal": 52, + "teal": 48, "source": "examples/reti/stakingPool.algo.ts:94", "errorMessage": "Temporary: contract is upgradeable but only during testing and only from a development account", "pc": [ - 85 + 81 ] }, { - "teal": 53, + "teal": 49, "source": "examples/reti/stakingPool.algo.ts:93", + "pc": [ + 82 + ] + }, + { + "teal": 54, + "source": "examples/reti/stakingPool.algo.ts:107", + "pc": [ + 83, + 84, + 85 + ] + }, + { + "teal": 55, + "source": "examples/reti/stakingPool.algo.ts:107", "pc": [ 86 ] @@ -278,720 +278,720 @@ ] }, { - "teal": 74, + "teal": 72, "source": "examples/reti/stakingPool.algo.ts:107", "pc": [ - 103, - 104, - 105 + 103 ] }, { - "teal": 75, + "teal": 82, "source": "examples/reti/stakingPool.algo.ts:107", "pc": [ + 104, + 105, 106 ] }, { - "teal": 76, - "source": "examples/reti/stakingPool.algo.ts:107", - "pc": [ - 107 - ] - }, - { - "teal": 86, - "source": "examples/reti/stakingPool.algo.ts:107", - "pc": [ - 108, - 109, - 110 - ] - }, - { - "teal": 91, + "teal": 87, "source": "examples/reti/stakingPool.algo.ts:108", "pc": [ - 111, - 112 + 107, + 108 ] }, { - "teal": 92, + "teal": 88, "source": "examples/reti/stakingPool.algo.ts:108", "pc": [ - 113 + 109 ] }, { - "teal": 93, + "teal": 89, "source": "examples/reti/stakingPool.algo.ts:108", "pc": [ - 114 + 110 ] }, { - "teal": 94, + "teal": 90, "source": "examples/reti/stakingPool.algo.ts:108", "pc": [ - 115, - 116, - 117 + 111, + 112, + 113 ] }, { - "teal": 99, + "teal": 95, "source": "examples/reti/stakingPool.algo.ts:110", "pc": [ - 118, - 119 + 114, + 115 ] }, { - "teal": 100, + "teal": 96, "source": "examples/reti/stakingPool.algo.ts:110", "pc": [ - 120 + 116 ] }, { - "teal": 101, + "teal": 97, "source": "examples/reti/stakingPool.algo.ts:110", "pc": [ - 121 + 117 ] }, { - "teal": 102, + "teal": 98, "source": "examples/reti/stakingPool.algo.ts:110", "pc": [ - 122 + 118 ] }, { - "teal": 106, + "teal": 102, "source": "examples/reti/stakingPool.algo.ts:111", "pc": [ - 123, - 124 + 119, + 120 ] }, { - "teal": 107, + "teal": 103, "source": "examples/reti/stakingPool.algo.ts:111", "pc": [ - 125 + 121 ] }, { - "teal": 108, + "teal": 104, "source": "examples/reti/stakingPool.algo.ts:111", "pc": [ - 126 + 122 ] }, { - "teal": 109, + "teal": 105, "source": "examples/reti/stakingPool.algo.ts:111", "pc": [ - 127 + 123 ] }, { - "teal": 110, + "teal": 106, "source": "examples/reti/stakingPool.algo.ts:108", "pc": [ - 128, - 129, - 130 + 124, + 125, + 126 ] }, { - "teal": 115, + "teal": 111, "source": "examples/reti/stakingPool.algo.ts:113", "pc": [ - 131, - 132 + 127, + 128 ] }, { - "teal": 116, + "teal": 112, "source": "examples/reti/stakingPool.algo.ts:113", "pc": [ - 133 + 129 ] }, { - "teal": 117, + "teal": 113, "source": "examples/reti/stakingPool.algo.ts:113", "pc": [ - 134 + 130 ] }, { - "teal": 118, + "teal": 114, "source": "examples/reti/stakingPool.algo.ts:113", "pc": [ - 135 + 131 ] }, { - "teal": 122, + "teal": 118, "source": "examples/reti/stakingPool.algo.ts:114", "pc": [ - 136, - 137 + 132, + 133 ] }, { - "teal": 123, + "teal": 119, "source": "examples/reti/stakingPool.algo.ts:114", "pc": [ - 138 + 134 ] }, { - "teal": 124, + "teal": 120, "source": "examples/reti/stakingPool.algo.ts:114", "pc": [ - 139 + 135 ] }, { - "teal": 125, + "teal": 121, "source": "examples/reti/stakingPool.algo.ts:114", "pc": [ - 140 + 136 ] }, { - "teal": 130, + "teal": 126, "source": "examples/reti/stakingPool.algo.ts:116", "pc": [ - 141, - 142 + 137, + 138 ] }, { - "teal": 131, + "teal": 127, "source": "examples/reti/stakingPool.algo.ts:116", "pc": [ - 143, - 144, - 145, - 146 + 139, + 140, + 141, + 142 ] }, { - "teal": 132, + "teal": 128, "source": "examples/reti/stakingPool.algo.ts:116", "pc": [ - 147 + 143 ] }, { - "teal": 135, + "teal": 131, "source": "examples/reti/stakingPool.algo.ts:116", "errorMessage": "staking pool must have minimum entry of 1 algo", "pc": [ - 148 + 144 ] }, { - "teal": 139, + "teal": 135, "source": "examples/reti/stakingPool.algo.ts:117", "pc": [ - 149 + 145 ] }, { - "teal": 140, + "teal": 136, "source": "examples/reti/stakingPool.algo.ts:117", "pc": [ - 150, - 151 + 146, + 147 ] }, { - "teal": 141, + "teal": 137, "source": "examples/reti/stakingPool.algo.ts:117", "pc": [ - 152 + 148 ] }, { - "teal": 145, + "teal": 141, "source": "examples/reti/stakingPool.algo.ts:118", "pc": [ - 153 + 149 ] }, { - "teal": 146, + "teal": 142, "source": "examples/reti/stakingPool.algo.ts:118", "pc": [ - 154, - 155 + 150, + 151 ] }, { - "teal": 147, + "teal": 143, "source": "examples/reti/stakingPool.algo.ts:118", "pc": [ - 156 + 152 ] }, { - "teal": 151, + "teal": 147, "source": "examples/reti/stakingPool.algo.ts:119", "pc": [ - 157, - 158 + 153, + 154 ] }, { - "teal": 152, + "teal": 148, "source": "examples/reti/stakingPool.algo.ts:119", "pc": [ - 159, - 160 + 155, + 156 ] }, { - "teal": 153, + "teal": 149, "source": "examples/reti/stakingPool.algo.ts:119", "pc": [ - 161 + 157 ] }, { - "teal": 157, + "teal": 153, "source": "examples/reti/stakingPool.algo.ts:120", "pc": [ - 162, - 163 + 158, + 159 ] }, { - "teal": 158, + "teal": 154, "source": "examples/reti/stakingPool.algo.ts:120", "pc": [ - 164 + 160 ] }, { - "teal": 159, + "teal": 155, "source": "examples/reti/stakingPool.algo.ts:120", "pc": [ - 165 + 161 ] }, { - "teal": 163, + "teal": 159, "source": "examples/reti/stakingPool.algo.ts:121", "pc": [ - 166, - 167 + 162, + 163 ] }, { - "teal": 164, + "teal": 160, "source": "examples/reti/stakingPool.algo.ts:121", "pc": [ - 168 + 164 ] }, { - "teal": 165, + "teal": 161, "source": "examples/reti/stakingPool.algo.ts:121", "pc": [ - 169 + 165 ] }, { - "teal": 169, + "teal": 165, "source": "examples/reti/stakingPool.algo.ts:122", "pc": [ - 170, - 171 + 166, + 167 ] }, { - "teal": 170, + "teal": 166, "source": "examples/reti/stakingPool.algo.ts:122", "pc": [ - 172, - 173 + 168, + 169 ] }, { - "teal": 171, + "teal": 167, "source": "examples/reti/stakingPool.algo.ts:122", "pc": [ - 174 + 170 ] }, { - "teal": 175, + "teal": 171, "source": "examples/reti/stakingPool.algo.ts:123", "pc": [ - 175, - 176 + 171, + 172 ] }, { - "teal": 176, + "teal": 172, "source": "examples/reti/stakingPool.algo.ts:123", "pc": [ - 177, - 178 + 173, + 174 ] }, { - "teal": 177, + "teal": 173, "source": "examples/reti/stakingPool.algo.ts:123", "pc": [ - 179 + 175 ] }, { - "teal": 181, + "teal": 177, "source": "examples/reti/stakingPool.algo.ts:124", "pc": [ - 180, - 181 + 176, + 177 ] }, { - "teal": 182, + "teal": 178, "source": "examples/reti/stakingPool.algo.ts:124", "pc": [ - 182 + 178 ] }, { - "teal": 183, + "teal": 179, "source": "examples/reti/stakingPool.algo.ts:124", "pc": [ - 183 + 179 ] }, { - "teal": 187, + "teal": 183, "source": "examples/reti/stakingPool.algo.ts:126", "pc": [ - 184, - 185, - 186 + 180, + 181, + 182 ] }, { - "teal": 191, + "teal": 187, "source": "examples/reti/stakingPool.algo.ts:127", "pc": [ - 187, - 188 + 183, + 184 ] }, { - "teal": 192, + "teal": 188, "source": "examples/reti/stakingPool.algo.ts:127", "pc": [ - 189, - 190 + 185, + 186 ] }, { - "teal": 193, + "teal": 189, "source": "examples/reti/stakingPool.algo.ts:127", "pc": [ - 191, - 192 + 187, + 188 ] }, { - "teal": 194, + "teal": 190, "source": "examples/reti/stakingPool.algo.ts:127", "pc": [ - 193, - 194 + 189, + 190 ] }, { - "teal": 195, + "teal": 191, "source": "examples/reti/stakingPool.algo.ts:127", "pc": [ - 195 + 191 ] }, { - "teal": 196, + "teal": 192, "source": "examples/reti/stakingPool.algo.ts:127", "pc": [ - 196 + 192 ] }, { - "teal": 197, + "teal": 193, "source": "examples/reti/stakingPool.algo.ts:127", "pc": [ - 197 + 193 ] }, { - "teal": 198, + "teal": 194, "source": "examples/reti/stakingPool.algo.ts:127", "pc": [ - 198 + 194 ] }, { - "teal": 202, + "teal": 198, "source": "examples/reti/stakingPool.algo.ts:128", "pc": [ - 199, - 200 + 195, + 196 ] }, { - "teal": 203, + "teal": 199, "source": "examples/reti/stakingPool.algo.ts:128", "pc": [ - 201, - 202 + 197, + 198 ] }, { - "teal": 204, + "teal": 200, "source": "examples/reti/stakingPool.algo.ts:128", "pc": [ - 203 + 199 ] }, { - "teal": 208, + "teal": 204, "source": "examples/reti/stakingPool.algo.ts:129", "pc": [ - 204, - 205 + 200, + 201 ] }, { - "teal": 209, + "teal": 205, "source": "examples/reti/stakingPool.algo.ts:129", "pc": [ - 206 + 202 ] }, { - "teal": 210, + "teal": 206, "source": "examples/reti/stakingPool.algo.ts:129", "pc": [ - 207 + 203 ] }, { - "teal": 214, + "teal": 210, "source": "examples/reti/stakingPool.algo.ts:130", "pc": [ - 208, - 209 + 204, + 205 ] }, { - "teal": 215, + "teal": 211, "source": "examples/reti/stakingPool.algo.ts:130", "pc": [ - 210, - 211 + 206, + 207 ] }, { - "teal": 216, + "teal": 212, "source": "examples/reti/stakingPool.algo.ts:130", "pc": [ - 212 + 208 ] }, { - "teal": 217, + "teal": 213, "source": "examples/reti/stakingPool.algo.ts:107", "pc": [ - 213 + 209 ] }, { - "teal": 222, + "teal": 218, "source": "examples/reti/stakingPool.algo.ts:136", "pc": [ - 214, - 215, - 216 + 210, + 211, + 212 ] }, { - "teal": 223, + "teal": 219, "source": "examples/reti/stakingPool.algo.ts:136", "pc": [ - 217 + 213 ] }, { - "teal": 224, + "teal": 220, "source": "examples/reti/stakingPool.algo.ts:136", "pc": [ - 218 + 214 ] }, { - "teal": 230, + "teal": 226, "source": "examples/reti/stakingPool.algo.ts:136", "pc": [ - 219, - 220, - 221 + 215, + 216, + 217 ] }, { - "teal": 231, + "teal": 227, "source": "examples/reti/stakingPool.algo.ts:136", "pc": [ - 222 + 218 ] }, { - "teal": 235, + "teal": 231, "source": "examples/reti/stakingPool.algo.ts:138", "pc": [ - 223, - 224, - 225 + 219, + 220, + 221 ] }, { - "teal": 239, + "teal": 235, "source": "examples/reti/stakingPool.algo.ts:142", "pc": [ - 226, - 227, - 228 + 222, + 223, + 224 ] }, { - "teal": 240, + "teal": 236, "source": "examples/reti/stakingPool.algo.ts:142", "pc": [ - 229, - 230 + 225, + 226 ] }, { - "teal": 241, + "teal": 237, "source": "examples/reti/stakingPool.algo.ts:142", "pc": [ - 231, - 232 + 227, + 228 ] }, { - "teal": 242, + "teal": 238, "source": "examples/reti/stakingPool.algo.ts:142", "pc": [ - 233 + 229 ] }, { - "teal": 243, + "teal": 239, "source": "examples/reti/stakingPool.algo.ts:142", "pc": [ - 234 + 230 ] }, { - "teal": 244, + "teal": 240, "source": "examples/reti/stakingPool.algo.ts:138", "pc": [ - 235 + 231 ] }, { - "teal": 249, + "teal": 245, "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 236, - 237 + 232, + 233 ] }, { - "teal": 250, + "teal": 246, "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 238 + 234 ] }, { - "teal": 251, + "teal": 247, "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 239 + 235 ] }, { - "teal": 252, + "teal": 248, "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 240 + 236 + ] + }, + { + "teal": 249, + "source": "examples/reti/stakingPool.algo.ts:152", + "pc": [ + 237, + 238 + ] + }, + { + "teal": 250, + "source": "examples/reti/stakingPool.algo.ts:152", + "pc": [ + 239 ] }, { - "teal": 253, + "teal": 251, "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 241, - 242 + 240 ] }, { "teal": 254, "source": "examples/reti/stakingPool.algo.ts:152", + "errorMessage": "argument 0 (mbrPayment) for initStorage must be a pay transaction", "pc": [ - 243 + 241 ] }, { - "teal": 255, + "teal": 257, "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ + 242, + 243, 244 ] }, { "teal": 258, "source": "examples/reti/stakingPool.algo.ts:152", - "errorMessage": "argument 0 (mbrPayment) for initStorage must be a pay transaction", "pc": [ 245 ] }, { - "teal": 261, + "teal": 259, "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 246, - 247, - 248 + 246 ] }, { - "teal": 262, + "teal": 269, "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ + 247, + 248, 249 ] }, { - "teal": 263, + "teal": 272, "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ 250 @@ -1002,84 +1002,84 @@ "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ 251, - 252, - 253 + 252 ] }, { - "teal": 276, - "source": "examples/reti/stakingPool.algo.ts:152", + "teal": 277, + "source": "examples/reti/stakingPool.algo.ts:153", "pc": [ - 254 + 253 ] }, { - "teal": 277, - "source": "examples/reti/stakingPool.algo.ts:152", + "teal": 278, + "source": "examples/reti/stakingPool.algo.ts:153", "pc": [ - 255, - 256 + 254 ] }, { - "teal": 281, + "teal": 279, "source": "examples/reti/stakingPool.algo.ts:153", "pc": [ - 257 + 255 ] }, { - "teal": 282, + "teal": 280, "source": "examples/reti/stakingPool.algo.ts:153", "pc": [ - 258 + 256 ] }, { - "teal": 283, + "teal": 281, "source": "examples/reti/stakingPool.algo.ts:153", "pc": [ - 259 + 257 ] }, { "teal": 284, "source": "examples/reti/stakingPool.algo.ts:153", + "errorMessage": "staking pool already initialized", "pc": [ - 260 + 258 ] }, { - "teal": 285, - "source": "examples/reti/stakingPool.algo.ts:153", + "teal": 291, + "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 261 + 259 ] }, { - "teal": 288, - "source": "examples/reti/stakingPool.algo.ts:153", - "errorMessage": "staking pool already initialized", + "teal": 292, + "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 262 + 260 ] }, { - "teal": 295, + "teal": 293, "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 263 + 261, + 262 ] }, { - "teal": 296, + "teal": 294, "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ + 263, 264 ] }, { - "teal": 297, + "teal": 295, "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ 265, @@ -1087,96 +1087,102 @@ ] }, { - "teal": 298, - "source": "examples/reti/stakingPool.algo.ts:156", + "teal": 299, + "source": "examples/reti/stakingPool.algo.ts:157", + "pc": [ + 267 + ] + }, + { + "teal": 300, + "source": "examples/reti/stakingPool.algo.ts:157", "pc": [ - 267, 268 ] }, { - "teal": 299, - "source": "examples/reti/stakingPool.algo.ts:156", + "teal": 301, + "source": "examples/reti/stakingPool.algo.ts:157", "pc": [ 269, 270 ] }, { - "teal": 303, - "source": "examples/reti/stakingPool.algo.ts:157", + "teal": 305, + "source": "examples/reti/stakingPool.algo.ts:158", "pc": [ 271 ] }, { - "teal": 304, - "source": "examples/reti/stakingPool.algo.ts:157", + "teal": 306, + "source": "examples/reti/stakingPool.algo.ts:158", "pc": [ 272 ] }, { - "teal": 305, - "source": "examples/reti/stakingPool.algo.ts:157", + "teal": 307, + "source": "examples/reti/stakingPool.algo.ts:158", "pc": [ - 273, - 274 + 273 ] }, { - "teal": 309, + "teal": 308, "source": "examples/reti/stakingPool.algo.ts:158", "pc": [ + 274, 275 ] }, { - "teal": 310, - "source": "examples/reti/stakingPool.algo.ts:158", + "teal": 311, + "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ 276 ] }, { - "teal": 311, - "source": "examples/reti/stakingPool.algo.ts:158", + "teal": 312, + "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 277 + 277, + 278 ] }, { - "teal": 312, - "source": "examples/reti/stakingPool.algo.ts:158", + "teal": 315, + "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 278, 279 ] }, { - "teal": 315, + "teal": 316, "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 280 + 280, + 281 ] }, { - "teal": 316, + "teal": 317, "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 281, 282 ] }, { - "teal": 319, + "teal": 318, "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ 283 ] }, { - "teal": 320, + "teal": 319, "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ 284, @@ -1184,140 +1190,134 @@ ] }, { - "teal": 321, - "source": "examples/reti/stakingPool.algo.ts:156", - "pc": [ - 286 - ] - }, - { - "teal": 322, + "teal": 320, "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 287 + 286, + 287, + 288 ] }, { - "teal": 323, + "teal": 321, "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 288, - 289 + 289, + 290 ] }, { - "teal": 324, - "source": "examples/reti/stakingPool.algo.ts:156", + "teal": 325, + "source": "examples/reti/stakingPool.algo.ts:160", "pc": [ - 290, 291, 292 ] }, { - "teal": 325, - "source": "examples/reti/stakingPool.algo.ts:156", + "teal": 326, + "source": "examples/reti/stakingPool.algo.ts:160", "pc": [ 293, - 294 + 294, + 295 ] }, { - "teal": 329, + "teal": 327, "source": "examples/reti/stakingPool.algo.ts:160", "pc": [ - 295, 296 ] }, { - "teal": 330, + "teal": 328, "source": "examples/reti/stakingPool.algo.ts:160", "pc": [ - 297, - 298, - 299 + 297 ] }, { - "teal": 331, + "teal": 329, "source": "examples/reti/stakingPool.algo.ts:160", "pc": [ - 300 + 298 ] }, { - "teal": 332, + "teal": 330, "source": "examples/reti/stakingPool.algo.ts:160", "pc": [ - 301 + 299, + 300 ] }, { - "teal": 333, - "source": "examples/reti/stakingPool.algo.ts:160", + "teal": 334, + "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ + 301, 302 ] }, { - "teal": 334, - "source": "examples/reti/stakingPool.algo.ts:160", + "teal": 335, + "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 303, - 304 + 303 ] }, { - "teal": 338, + "teal": 336, "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ + 304, 305, 306 ] }, { - "teal": 339, + "teal": 337, "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 307 + 307, + 308 ] }, { - "teal": 340, + "teal": 338, "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 308, - 309, - 310 + 309 ] }, { - "teal": 341, + "teal": 339, "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 311, - 312 + 310 ] }, { - "teal": 342, + "teal": 340, "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 313 + 311 ] }, { - "teal": 343, + "teal": 341, "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 314 + 312 ] }, { "teal": 344, "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ + 313, + 314, 315 ] }, @@ -1325,108 +1325,108 @@ "teal": 345, "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 316 + 316, + 317 ] }, { - "teal": 348, + "teal": 346, "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 317, 318, - 319 + 319, + 320 ] }, { "teal": 349, "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 320, 321 ] }, { - "teal": 350, + "teal": 352, "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ 322, - 323, - 324 + 323 ] }, { - "teal": 353, - "source": "examples/reti/stakingPool.algo.ts:161", + "teal": 359, + "source": "examples/reti/stakingPool.algo.ts:163", "pc": [ + 324, 325 ] }, { - "teal": 356, - "source": "examples/reti/stakingPool.algo.ts:161", + "teal": 360, + "source": "examples/reti/stakingPool.algo.ts:164", "pc": [ 326, 327 ] }, { - "teal": 363, + "teal": 361, "source": "examples/reti/stakingPool.algo.ts:163", "pc": [ - 328, - 329 + 328 ] }, { - "teal": 364, - "source": "examples/reti/stakingPool.algo.ts:164", + "teal": 362, + "source": "examples/reti/stakingPool.algo.ts:165", "pc": [ + 329, 330, 331 ] }, { - "teal": 365, - "source": "examples/reti/stakingPool.algo.ts:163", + "teal": 363, + "source": "examples/reti/stakingPool.algo.ts:165", "pc": [ - 332 + 332, + 333, + 334 ] }, { - "teal": 366, - "source": "examples/reti/stakingPool.algo.ts:165", + "teal": 364, + "source": "examples/reti/stakingPool.algo.ts:164", "pc": [ - 333, - 334, 335 ] }, { - "teal": 367, - "source": "examples/reti/stakingPool.algo.ts:165", + "teal": 365, + "source": "examples/reti/stakingPool.algo.ts:162", "pc": [ 336, - 337, - 338 + 337 ] }, { - "teal": 368, - "source": "examples/reti/stakingPool.algo.ts:164", + "teal": 370, + "source": "examples/reti/stakingPool.algo.ts:168", "pc": [ + 338, 339 ] }, { - "teal": 369, - "source": "examples/reti/stakingPool.algo.ts:162", + "teal": 371, + "source": "examples/reti/stakingPool.algo.ts:168", "pc": [ 340, 341 ] }, { - "teal": 374, + "teal": 372, "source": "examples/reti/stakingPool.algo.ts:168", "pc": [ 342, @@ -1434,38 +1434,38 @@ ] }, { - "teal": 375, + "teal": 373, "source": "examples/reti/stakingPool.algo.ts:168", "pc": [ - 344, - 345 + 344 ] }, { "teal": 376, "source": "examples/reti/stakingPool.algo.ts:168", + "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", "pc": [ - 346, - 347 + 345 ] }, { - "teal": 377, + "teal": 379, "source": "examples/reti/stakingPool.algo.ts:168", "pc": [ - 348 + 346, + 347 ] }, { "teal": 380, "source": "examples/reti/stakingPool.algo.ts:168", - "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", "pc": [ + 348, 349 ] }, { - "teal": 383, + "teal": 381, "source": "examples/reti/stakingPool.algo.ts:168", "pc": [ 350, @@ -1473,283 +1473,290 @@ ] }, { - "teal": 384, + "teal": 382, "source": "examples/reti/stakingPool.algo.ts:168", "pc": [ - 352, - 353 + 352 ] }, { "teal": 385, "source": "examples/reti/stakingPool.algo.ts:168", + "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"PoolInitMbr\"}", "pc": [ - 354, - 355 + 353 ] }, { - "teal": 386, - "source": "examples/reti/stakingPool.algo.ts:168", + "teal": 389, + "source": "examples/reti/stakingPool.algo.ts:169", "pc": [ - 356 + 354 ] }, { - "teal": 389, - "source": "examples/reti/stakingPool.algo.ts:168", - "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"PoolInitMbr\"}", + "teal": 390, + "source": "examples/reti/stakingPool.algo.ts:169", "pc": [ + 355, + 356, 357 ] }, { - "teal": 393, + "teal": 391, "source": "examples/reti/stakingPool.algo.ts:169", "pc": [ 358 ] }, { - "teal": 394, + "teal": 392, "source": "examples/reti/stakingPool.algo.ts:169", "pc": [ - 359, - 360, - 361 + 359 ] }, { - "teal": 395, - "source": "examples/reti/stakingPool.algo.ts:169", + "teal": 397, + "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ - 362 + 360, + 361 ] }, { - "teal": 396, - "source": "examples/reti/stakingPool.algo.ts:169", + "teal": 398, + "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ - 363 + 362 ] }, { - "teal": 401, + "teal": 399, "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ + 363, 364, 365 ] }, { - "teal": 402, + "teal": 400, "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ - 366 + 366, + 367 ] }, { - "teal": 403, + "teal": 401, "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ - 367, - 368, - 369 + 368 ] }, { - "teal": 404, + "teal": 402, "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ - 370, - 371 + 369 ] }, { - "teal": 405, + "teal": 403, "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ - 372 + 370 ] }, { - "teal": 406, + "teal": 404, "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ - 373 + 371 ] }, { "teal": 407, "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ + 372, + 373, 374 ] }, { - "teal": 408, - "source": "examples/reti/stakingPool.algo.ts:171", + "teal": 416, + "source": "examples/reti/stakingPool.algo.ts:173", "pc": [ 375 ] }, { - "teal": 411, - "source": "examples/reti/stakingPool.algo.ts:171", + "teal": 417, + "source": "examples/reti/stakingPool.algo.ts:173", "pc": [ 376, - 377, - 378 + 377 ] }, { - "teal": 420, + "teal": 418, "source": "examples/reti/stakingPool.algo.ts:173", "pc": [ + 378, 379 ] }, { - "teal": 421, - "source": "examples/reti/stakingPool.algo.ts:173", + "teal": 422, + "source": "examples/reti/stakingPool.algo.ts:174", "pc": [ 380, 381 ] }, { - "teal": 422, - "source": "examples/reti/stakingPool.algo.ts:173", + "teal": 423, + "source": "examples/reti/stakingPool.algo.ts:174", "pc": [ 382, - 383 + 383, + 384 ] }, { - "teal": 426, + "teal": 424, "source": "examples/reti/stakingPool.algo.ts:174", "pc": [ - 384, 385 ] }, { - "teal": 427, + "teal": 425, "source": "examples/reti/stakingPool.algo.ts:174", "pc": [ 386, - 387, - 388 + 387 ] }, { - "teal": 428, - "source": "examples/reti/stakingPool.algo.ts:174", + "teal": 429, + "source": "examples/reti/stakingPool.algo.ts:175", "pc": [ + 388, 389 ] }, { - "teal": 429, - "source": "examples/reti/stakingPool.algo.ts:174", + "teal": 430, + "source": "examples/reti/stakingPool.algo.ts:175", "pc": [ 390, 391 ] }, { - "teal": 433, - "source": "examples/reti/stakingPool.algo.ts:175", + "teal": 434, + "source": "examples/reti/stakingPool.algo.ts:176", "pc": [ - 392, - 393 + 392 ] }, { - "teal": 434, - "source": "examples/reti/stakingPool.algo.ts:175", + "teal": 435, + "source": "examples/reti/stakingPool.algo.ts:176", "pc": [ - 394, - 395 + 393, + 394 ] }, { "teal": 438, - "source": "examples/reti/stakingPool.algo.ts:176", + "source": "examples/reti/stakingPool.algo.ts:173", "pc": [ - 396 + 395 ] }, { "teal": 439, - "source": "examples/reti/stakingPool.algo.ts:176", + "source": "examples/reti/stakingPool.algo.ts:173", "pc": [ - 397, - 398 + 396, + 397 ] }, { "teal": 442, "source": "examples/reti/stakingPool.algo.ts:173", + "pc": [ + 398 + ] + }, + { + "teal": 445, + "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ 399 ] }, { - "teal": 443, - "source": "examples/reti/stakingPool.algo.ts:173", + "teal": 450, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ 400, 401 ] }, { - "teal": 446, - "source": "examples/reti/stakingPool.algo.ts:173", + "teal": 453, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 402 + 402, + 403, + 404 ] }, { - "teal": 449, - "source": "examples/reti/stakingPool.algo.ts:152", + "teal": 454, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 403 + 405 ] }, { - "teal": 454, + "teal": 455, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 404, - 405 + 406 ] }, { - "teal": 457, + "teal": 456, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 406, 407, 408 ] }, { - "teal": 458, + "teal": 457, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ 409 ] }, { - "teal": 459, + "teal": 460, "source": "examples/reti/stakingPool.algo.ts:191", + "errorMessage": "argument 0 (staker) for addStake must be a address", "pc": [ 410 ] }, { - "teal": 460, + "teal": 463, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ 411, @@ -1757,118 +1764,111 @@ ] }, { - "teal": 461, + "teal": 464, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ 413 ] }, { - "teal": 464, + "teal": 465, "source": "examples/reti/stakingPool.algo.ts:191", - "errorMessage": "argument 0 (staker) for addStake must be a address", "pc": [ 414 ] }, { - "teal": 467, + "teal": 466, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 415, - 416 + 415 ] }, { - "teal": 468, + "teal": 467, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ + 416, 417 ] }, { - "teal": 469, + "teal": 468, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ 418 ] }, { - "teal": 470, + "teal": 469, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ 419 ] }, { - "teal": 471, - "source": "examples/reti/stakingPool.algo.ts:191", - "pc": [ - 420, - 421 - ] - }, - { - "teal": 472, + "teal": 472, "source": "examples/reti/stakingPool.algo.ts:191", + "errorMessage": "argument 1 (stakedAmountPayment) for addStake must be a pay transaction", "pc": [ - 422 + 420 ] }, { - "teal": 473, + "teal": 475, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ + 421, + 422, 423 ] }, { "teal": 476, "source": "examples/reti/stakingPool.algo.ts:191", - "errorMessage": "argument 1 (stakedAmountPayment) for addStake must be a pay transaction", "pc": [ 424 ] }, { - "teal": 479, + "teal": 477, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 425, - 426, - 427 + 425 ] }, { - "teal": 480, + "teal": 478, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 428 + 426 ] }, { - "teal": 481, + "teal": 479, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 429 + 427 ] }, { - "teal": 482, + "teal": 480, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 430 + 428 ] }, { - "teal": 483, + "teal": 493, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ + 429, + 430, 431 ] }, { - "teal": 484, + "teal": 496, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ 432 @@ -1879,63 +1879,69 @@ "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ 433, - 434, - 435 + 434 ] }, { - "teal": 500, - "source": "examples/reti/stakingPool.algo.ts:191", + "teal": 501, + "source": "examples/reti/stakingPool.algo.ts:192", "pc": [ - 436 + 435 ] }, { - "teal": 501, - "source": "examples/reti/stakingPool.algo.ts:191", + "teal": 502, + "source": "examples/reti/stakingPool.algo.ts:192", "pc": [ - 437, - 438 + 436 ] }, { - "teal": 505, + "teal": 503, "source": "examples/reti/stakingPool.algo.ts:192", "pc": [ - 439 + 437 ] }, { - "teal": 506, + "teal": 504, "source": "examples/reti/stakingPool.algo.ts:192", "pc": [ - 440 + 438 ] }, { "teal": 507, "source": "examples/reti/stakingPool.algo.ts:192", + "errorMessage": "staking pool must be initialized first", + "pc": [ + 439 + ] + }, + { + "teal": 514, + "source": "examples/reti/stakingPool.algo.ts:196", "pc": [ + 440, 441 ] }, { - "teal": 508, - "source": "examples/reti/stakingPool.algo.ts:192", + "teal": 515, + "source": "examples/reti/stakingPool.algo.ts:196", "pc": [ 442 ] }, { - "teal": 511, - "source": "examples/reti/stakingPool.algo.ts:192", - "errorMessage": "staking pool must be initialized first", + "teal": 516, + "source": "examples/reti/stakingPool.algo.ts:196", "pc": [ 443 ] }, { - "teal": 518, + "teal": 517, "source": "examples/reti/stakingPool.algo.ts:196", "pc": [ 444, @@ -1943,98 +1949,98 @@ ] }, { - "teal": 519, + "teal": 518, "source": "examples/reti/stakingPool.algo.ts:196", "pc": [ 446 ] }, { - "teal": 520, + "teal": 519, "source": "examples/reti/stakingPool.algo.ts:196", "pc": [ 447 ] }, { - "teal": 521, - "source": "examples/reti/stakingPool.algo.ts:196", + "teal": 522, + "source": "examples/reti/stakingPool.algo.ts:195", + "errorMessage": "stake can only be added via the validator contract", "pc": [ - 448, - 449 + 448 ] }, { - "teal": 522, - "source": "examples/reti/stakingPool.algo.ts:196", + "teal": 526, + "source": "examples/reti/stakingPool.algo.ts:199", "pc": [ + 449, 450 ] }, { - "teal": 523, - "source": "examples/reti/stakingPool.algo.ts:196", + "teal": 527, + "source": "examples/reti/stakingPool.algo.ts:199", "pc": [ - 451 + 451, + 452 ] }, { - "teal": 526, - "source": "examples/reti/stakingPool.algo.ts:195", - "errorMessage": "stake can only be added via the validator contract", + "teal": 528, + "source": "examples/reti/stakingPool.algo.ts:199", "pc": [ - 452 + 453 ] }, { - "teal": 530, + "teal": 529, "source": "examples/reti/stakingPool.algo.ts:199", "pc": [ - 453, 454 ] }, { - "teal": 531, - "source": "examples/reti/stakingPool.algo.ts:199", + "teal": 533, + "source": "examples/reti/stakingPool.algo.ts:202", "pc": [ 455, - 456 + 456, + 457 ] }, { - "teal": 532, - "source": "examples/reti/stakingPool.algo.ts:199", + "teal": 542, + "source": "examples/reti/stakingPool.algo.ts:206", "pc": [ - 457 + 458, + 459 ] }, { - "teal": 533, - "source": "examples/reti/stakingPool.algo.ts:199", + "teal": 543, + "source": "examples/reti/stakingPool.algo.ts:207", "pc": [ - 458 + 460, + 461 ] }, { - "teal": 537, - "source": "examples/reti/stakingPool.algo.ts:202", + "teal": 544, + "source": "examples/reti/stakingPool.algo.ts:207", "pc": [ - 459, - 460, - 461 + 462 ] }, { - "teal": 546, - "source": "examples/reti/stakingPool.algo.ts:206", + "teal": 545, + "source": "examples/reti/stakingPool.algo.ts:207", "pc": [ - 462, 463 ] }, { - "teal": 547, + "teal": 546, "source": "examples/reti/stakingPool.algo.ts:207", "pc": [ 464, @@ -2042,98 +2048,92 @@ ] }, { - "teal": 548, + "teal": 547, "source": "examples/reti/stakingPool.algo.ts:207", "pc": [ 466 ] }, { - "teal": 549, + "teal": 548, "source": "examples/reti/stakingPool.algo.ts:207", "pc": [ 467 ] }, - { - "teal": 550, - "source": "examples/reti/stakingPool.algo.ts:207", - "pc": [ - 468, - 469 - ] - }, { "teal": 551, "source": "examples/reti/stakingPool.algo.ts:207", + "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"sender\",\"expected\":\"AppID.fromUint64(this.creatingValidatorContractAppId.value).address\"}", "pc": [ - 470 + 468 ] }, { - "teal": 552, - "source": "examples/reti/stakingPool.algo.ts:207", + "teal": 554, + "source": "examples/reti/stakingPool.algo.ts:206", "pc": [ - 471 + 469, + 470 ] }, { "teal": 555, - "source": "examples/reti/stakingPool.algo.ts:207", - "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"sender\",\"expected\":\"AppID.fromUint64(this.creatingValidatorContractAppId.value).address\"}", + "source": "examples/reti/stakingPool.algo.ts:208", "pc": [ + 471, 472 ] }, { - "teal": 558, - "source": "examples/reti/stakingPool.algo.ts:206", + "teal": 556, + "source": "examples/reti/stakingPool.algo.ts:208", "pc": [ 473, 474 ] }, { - "teal": 559, + "teal": 557, "source": "examples/reti/stakingPool.algo.ts:208", "pc": [ - 475, - 476 + 475 ] }, { "teal": 560, "source": "examples/reti/stakingPool.algo.ts:208", + "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", "pc": [ - 477, - 478 + 476 ] }, { - "teal": 561, - "source": "examples/reti/stakingPool.algo.ts:208", + "teal": 563, + "source": "examples/reti/stakingPool.algo.ts:206", "pc": [ - 479 + 477, + 478 ] }, { "teal": 564, - "source": "examples/reti/stakingPool.algo.ts:208", - "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", + "source": "examples/reti/stakingPool.algo.ts:209", "pc": [ + 479, 480 ] }, { - "teal": 567, - "source": "examples/reti/stakingPool.algo.ts:206", + "teal": 565, + "source": "examples/reti/stakingPool.algo.ts:209", "pc": [ 481, 482 ] }, { - "teal": 568, + "teal": 566, "source": "examples/reti/stakingPool.algo.ts:209", "pc": [ 483, @@ -2141,160 +2141,166 @@ ] }, { - "teal": 569, + "teal": 567, "source": "examples/reti/stakingPool.algo.ts:209", "pc": [ - 485, - 486 + 485 ] }, { "teal": 570, "source": "examples/reti/stakingPool.algo.ts:209", + "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"amount\",\"expected\":\"stakedAmountPayment.amount\"}", "pc": [ - 487, - 488 + 486 ] }, { - "teal": 571, - "source": "examples/reti/stakingPool.algo.ts:209", + "teal": 574, + "source": "examples/reti/stakingPool.algo.ts:215", "pc": [ - 489 + 487, + 488 ] }, { - "teal": 574, - "source": "examples/reti/stakingPool.algo.ts:209", - "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"amount\",\"expected\":\"stakedAmountPayment.amount\"}", + "teal": 575, + "source": "examples/reti/stakingPool.algo.ts:215", "pc": [ - 490 + 489, + 490, + 491 ] }, { - "teal": 578, + "teal": 576, "source": "examples/reti/stakingPool.algo.ts:215", "pc": [ - 491, 492 ] }, { - "teal": 579, + "teal": 577, "source": "examples/reti/stakingPool.algo.ts:215", "pc": [ 493, - 494, - 495 + 494 ] }, { - "teal": 580, - "source": "examples/reti/stakingPool.algo.ts:215", + "teal": 581, + "source": "examples/reti/stakingPool.algo.ts:216", "pc": [ - 496 + 495 ] }, { - "teal": 581, - "source": "examples/reti/stakingPool.algo.ts:215", + "teal": 582, + "source": "examples/reti/stakingPool.algo.ts:216", "pc": [ - 497, - 498 + 496, + 497 ] }, { - "teal": 585, - "source": "examples/reti/stakingPool.algo.ts:216", + "teal": 586, + "source": "examples/reti/stakingPool.algo.ts:218", "pc": [ + 498, 499 ] }, { - "teal": 586, - "source": "examples/reti/stakingPool.algo.ts:216", + "teal": 587, + "source": "examples/reti/stakingPool.algo.ts:218", "pc": [ - 500, - 501 + 500 ] }, { - "teal": 590, + "teal": 588, "source": "examples/reti/stakingPool.algo.ts:218", "pc": [ - 502, - 503 + 501, + 502 ] }, { - "teal": 591, + "teal": 589, "source": "examples/reti/stakingPool.algo.ts:218", "pc": [ + 503, 504 ] }, { - "teal": 592, + "teal": 590, "source": "examples/reti/stakingPool.algo.ts:218", "pc": [ - 505, - 506 + 505 ] }, { - "teal": 593, + "teal": 591, + "source": "examples/reti/stakingPool.algo.ts:218", + "pc": [ + 506, + 507 + ] + }, + { + "teal": 592, "source": "examples/reti/stakingPool.algo.ts:218", "pc": [ - 507, 508 ] }, { - "teal": 594, + "teal": 593, "source": "examples/reti/stakingPool.algo.ts:218", "pc": [ 509 ] }, { - "teal": 595, - "source": "examples/reti/stakingPool.algo.ts:218", + "teal": 597, + "source": "examples/reti/stakingPool.algo.ts:220", "pc": [ 510, 511 ] }, { - "teal": 596, - "source": "examples/reti/stakingPool.algo.ts:218", + "teal": 598, + "source": "examples/reti/stakingPool.algo.ts:220", "pc": [ 512 ] }, { - "teal": 597, - "source": "examples/reti/stakingPool.algo.ts:218", + "teal": 599, + "source": "examples/reti/stakingPool.algo.ts:220", "pc": [ - 513 + 513, + 514 ] }, { - "teal": 601, + "teal": 600, "source": "examples/reti/stakingPool.algo.ts:220", "pc": [ - 514, 515 ] }, { - "teal": 602, + "teal": 601, "source": "examples/reti/stakingPool.algo.ts:220", "pc": [ 516 ] }, { - "teal": 603, + "teal": 602, "source": "examples/reti/stakingPool.algo.ts:220", "pc": [ 517, @@ -2302,92 +2308,98 @@ ] }, { - "teal": 604, + "teal": 603, "source": "examples/reti/stakingPool.algo.ts:220", "pc": [ 519 ] }, { - "teal": 605, + "teal": 604, "source": "examples/reti/stakingPool.algo.ts:220", "pc": [ - 520 + 520, + 521 ] }, { - "teal": 606, - "source": "examples/reti/stakingPool.algo.ts:220", + "teal": 609, + "source": "examples/reti/stakingPool.algo.ts:221", "pc": [ - 521, - 522 + 522, + 523 ] }, { - "teal": 607, - "source": "examples/reti/stakingPool.algo.ts:220", + "teal": 610, + "source": "examples/reti/stakingPool.algo.ts:221", "pc": [ - 523 + 524 ] }, { - "teal": 608, - "source": "examples/reti/stakingPool.algo.ts:220", + "teal": 611, + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 524, 525 ] }, { - "teal": 613, - "source": "examples/reti/stakingPool.algo.ts:221", + "teal": 612, + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ 526, 527 ] }, + { + "teal": 613, + "source": "examples/reti/stakingPool.algo.ts:222", + "pc": [ + 528, + 529 + ] + }, { "teal": 614, - "source": "examples/reti/stakingPool.algo.ts:221", + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 528 + 530 ] }, { "teal": 615, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 529 + 531, + 532 ] }, { "teal": 616, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 530, - 531 + 533 ] }, { "teal": 617, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 532, - 533 + 534 ] }, { "teal": 618, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 534 + 535 ] }, { "teal": 619, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 535, 536 ] }, @@ -2402,32 +2414,27 @@ "teal": 621, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 538 - ] - }, - { - "teal": 622, - "source": "examples/reti/stakingPool.algo.ts:222", - "pc": [ + 538, 539 ] }, { - "teal": 623, + "teal": 622, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ 540 ] }, { - "teal": 624, + "teal": 625, "source": "examples/reti/stakingPool.algo.ts:222", + "errorMessage": "this.stakeAccumulator.value + (stakedAmountPayment.amount as uint128) * (roundsLeftInBin as uint128) overflowed 128 bits", "pc": [ 541 ] }, { - "teal": 625, + "teal": 626, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ 542, @@ -2435,25 +2442,30 @@ ] }, { - "teal": 626, + "teal": 627, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ 544 ] }, { - "teal": 629, + "teal": 628, "source": "examples/reti/stakingPool.algo.ts:222", - "errorMessage": "this.stakeAccumulator.value + (stakedAmountPayment.amount as uint128) * (roundsLeftInBin as uint128) overflowed 128 bits", "pc": [ 545 ] }, + { + "teal": 629, + "source": "examples/reti/stakingPool.algo.ts:222", + "pc": [ + 546 + ] + }, { "teal": 630, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 546, 547 ] }, @@ -2461,75 +2473,63 @@ "teal": 631, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 548 + 548, + 549 ] }, { "teal": 632, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 549 + 550 ] }, { "teal": 633, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 550 + 551 ] }, { "teal": 634, "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 551 + 552 ] }, { "teal": 635, - "source": "examples/reti/stakingPool.algo.ts:222", + "source": "examples/reti/stakingPool.algo.ts:221", "pc": [ - 552, 553 ] }, { - "teal": 636, - "source": "examples/reti/stakingPool.algo.ts:222", + "teal": 639, + "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ 554 ] }, { - "teal": 637, - "source": "examples/reti/stakingPool.algo.ts:222", - "pc": [ - 555 - ] - }, - { - "teal": 638, - "source": "examples/reti/stakingPool.algo.ts:222", + "teal": 640, + "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ + 555, 556 ] }, { - "teal": 639, - "source": "examples/reti/stakingPool.algo.ts:221", - "pc": [ - 557 - ] - }, - { - "teal": 643, + "teal": 645, "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ + 557, 558 ] }, { - "teal": 644, + "teal": 646, "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ 559, @@ -2537,123 +2537,123 @@ ] }, { - "teal": 649, + "teal": 647, "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ - 561, - 562 + 561 ] }, { - "teal": 650, + "teal": 648, "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ + 562, 563, 564 ] }, { - "teal": 651, - "source": "examples/reti/stakingPool.algo.ts:225", + "teal": 653, + "source": "examples/reti/stakingPool.algo.ts:226", "pc": [ - 565 + 565, + 566 ] }, { - "teal": 652, - "source": "examples/reti/stakingPool.algo.ts:225", + "teal": 654, + "source": "examples/reti/stakingPool.algo.ts:226", "pc": [ - 566, 567, 568 ] }, { - "teal": 657, + "teal": 655, "source": "examples/reti/stakingPool.algo.ts:226", "pc": [ - 569, - 570 + 569 ] }, { - "teal": 658, + "teal": 656, "source": "examples/reti/stakingPool.algo.ts:226", "pc": [ + 570, 571, 572 ] }, { - "teal": 659, - "source": "examples/reti/stakingPool.algo.ts:226", + "teal": 661, + "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ 573 ] }, { - "teal": 660, - "source": "examples/reti/stakingPool.algo.ts:226", + "teal": 662, + "source": "examples/reti/stakingPool.algo.ts:227", + "pc": [ + 574 + ] + }, + { + "teal": 663, + "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ - 574, 575, 576 ] }, { - "teal": 665, + "teal": 664, "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ 577 ] }, { - "teal": 666, - "source": "examples/reti/stakingPool.algo.ts:227", - "pc": [ - 578 - ] - }, - { - "teal": 667, + "teal": 665, "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ - 579, - 580 + 578, + 579 ] }, { - "teal": 668, + "teal": 666, "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ + 580, 581 ] }, { - "teal": 669, + "teal": 667, "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ - 582, - 583 + 582 ] }, { - "teal": 670, + "teal": 668, "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ - 584, - 585 + 583, + 584 ] }, { - "teal": 671, + "teal": 669, "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ + 585, 586 ] }, { - "teal": 672, + "teal": 670, "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ 587, @@ -2661,7 +2661,7 @@ ] }, { - "teal": 673, + "teal": 671, "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ 589, @@ -2669,130 +2669,130 @@ ] }, { - "teal": 674, + "teal": 672, "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ - 591, - 592 + 591 ] }, { - "teal": 675, - "source": "examples/reti/stakingPool.algo.ts:227", + "teal": 677, + "source": "examples/reti/stakingPool.algo.ts:229", "pc": [ - 593, - 594 + 592, + 593 ] }, { - "teal": 676, - "source": "examples/reti/stakingPool.algo.ts:227", + "teal": 678, + "source": "examples/reti/stakingPool.algo.ts:229", "pc": [ - 595 + 594 ] }, { - "teal": 681, + "teal": 679, "source": "examples/reti/stakingPool.algo.ts:229", "pc": [ - 596, - 597 + 595 ] }, { - "teal": 682, + "teal": 680, "source": "examples/reti/stakingPool.algo.ts:229", "pc": [ - 598 + 596 ] }, { - "teal": 683, + "teal": 681, "source": "examples/reti/stakingPool.algo.ts:229", "pc": [ - 599 + 597 ] }, { - "teal": 684, + "teal": 682, "source": "examples/reti/stakingPool.algo.ts:229", "pc": [ - 600 + 598, + 599 ] }, { - "teal": 685, + "teal": 683, "source": "examples/reti/stakingPool.algo.ts:229", "pc": [ - 601 + 600 ] }, { - "teal": 686, + "teal": 684, "source": "examples/reti/stakingPool.algo.ts:229", "pc": [ - 602, - 603 + 601, + 602 ] }, { - "teal": 687, - "source": "examples/reti/stakingPool.algo.ts:229", + "teal": 689, + "source": "examples/reti/stakingPool.algo.ts:230", "pc": [ + 603, 604 ] }, { - "teal": 688, - "source": "examples/reti/stakingPool.algo.ts:229", + "teal": 690, + "source": "examples/reti/stakingPool.algo.ts:230", "pc": [ 605, - 606 + 606, + 607 ] }, { - "teal": 693, + "teal": 691, "source": "examples/reti/stakingPool.algo.ts:230", "pc": [ - 607, - 608 + 608, + 609 ] }, { - "teal": 694, + "teal": 692, "source": "examples/reti/stakingPool.algo.ts:230", "pc": [ - 609, - 610, - 611 + 610 ] }, { - "teal": 695, + "teal": 693, "source": "examples/reti/stakingPool.algo.ts:230", "pc": [ + 611, 612, 613 ] }, { - "teal": 696, - "source": "examples/reti/stakingPool.algo.ts:230", + "teal": 698, + "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ - 614 + 614, + 615 ] }, { - "teal": 697, - "source": "examples/reti/stakingPool.algo.ts:230", + "teal": 699, + "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ - 615, 616, 617 ] }, { - "teal": 702, + "teal": 700, "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ 618, @@ -2800,84 +2800,84 @@ ] }, { - "teal": 703, + "teal": 701, "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ 620, - 621 + 621, + 622 ] }, { - "teal": 704, + "teal": 702, "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ - 622, 623 ] }, { - "teal": 705, + "teal": 703, "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ 624, - 625, - 626 + 625 ] }, { - "teal": 706, + "teal": 704, "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ + 626, 627 ] }, { - "teal": 707, + "teal": 705, "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ - 628, - 629 + 628 ] }, { - "teal": 708, + "teal": 706, "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ - 630, - 631 + 629 ] }, { - "teal": 709, + "teal": 707, "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ - 632 + 630 ] }, { - "teal": 710, + "teal": 708, "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ - 633 + 631, + 632 ] }, { - "teal": 711, - "source": "examples/reti/stakingPool.algo.ts:232", + "teal": 712, + "source": "examples/reti/stakingPool.algo.ts:233", "pc": [ + 633, 634 ] }, { - "teal": 712, - "source": "examples/reti/stakingPool.algo.ts:232", + "teal": 713, + "source": "examples/reti/stakingPool.algo.ts:233", "pc": [ 635, 636 ] }, { - "teal": 716, + "teal": 714, "source": "examples/reti/stakingPool.algo.ts:233", "pc": [ 637, @@ -2885,15 +2885,21 @@ ] }, { - "teal": 717, + "teal": 715, + "source": "examples/reti/stakingPool.algo.ts:233", + "pc": [ + 639 + ] + }, + { + "teal": 716, "source": "examples/reti/stakingPool.algo.ts:233", "pc": [ - 639, 640 ] }, { - "teal": 718, + "teal": 717, "source": "examples/reti/stakingPool.algo.ts:233", "pc": [ 641, @@ -2901,29 +2907,29 @@ ] }, { - "teal": 719, - "source": "examples/reti/stakingPool.algo.ts:233", + "teal": 721, + "source": "examples/reti/stakingPool.algo.ts:236", "pc": [ - 643 + 643, + 644 ] }, { - "teal": 720, - "source": "examples/reti/stakingPool.algo.ts:233", + "teal": 722, + "source": "examples/reti/stakingPool.algo.ts:236", "pc": [ - 644 + 645 ] }, { - "teal": 721, - "source": "examples/reti/stakingPool.algo.ts:233", + "teal": 723, + "source": "examples/reti/stakingPool.algo.ts:236", "pc": [ - 645, 646 ] }, { - "teal": 725, + "teal": 724, "source": "examples/reti/stakingPool.algo.ts:236", "pc": [ 647, @@ -2931,154 +2937,154 @@ ] }, { - "teal": 726, + "teal": 725, "source": "examples/reti/stakingPool.algo.ts:236", "pc": [ 649 ] }, { - "teal": 727, + "teal": 726, "source": "examples/reti/stakingPool.algo.ts:236", "pc": [ - 650 + 650, + 651 ] }, { - "teal": 728, + "teal": 727, "source": "examples/reti/stakingPool.algo.ts:236", "pc": [ - 651, 652 ] }, { - "teal": 729, - "source": "examples/reti/stakingPool.algo.ts:236", + "teal": 731, + "source": "examples/reti/stakingPool.algo.ts:238", "pc": [ - 653 + 653, + 654 ] }, { - "teal": 730, - "source": "examples/reti/stakingPool.algo.ts:236", + "teal": 732, + "source": "examples/reti/stakingPool.algo.ts:238", "pc": [ - 654, - 655 + 655, + 656, + 657 ] }, { - "teal": 731, - "source": "examples/reti/stakingPool.algo.ts:236", + "teal": 738, + "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 656 + 658, + 659 ] }, { - "teal": 735, - "source": "examples/reti/stakingPool.algo.ts:238", + "teal": 739, + "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 657, - 658 + 660 ] }, { - "teal": 736, - "source": "examples/reti/stakingPool.algo.ts:238", + "teal": 740, + "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 659, - 660, 661 ] }, + { + "teal": 741, + "source": "examples/reti/stakingPool.algo.ts:240", + "pc": [ + 662 + ] + }, { "teal": 742, "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 662, - 663 + 663, + 664, + 665 ] }, { "teal": 743, "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 664 + 666, + 667 ] }, { "teal": 744, "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 665 + 668, + 669, + 670 ] }, { "teal": 745, "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 666 + 671, + 672 ] }, { "teal": 746, "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 667, - 668, - 669 + 673 ] }, { "teal": 747, "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 670, - 671 - ] - }, - { - "teal": 748, - "source": "examples/reti/stakingPool.algo.ts:240", - "pc": [ - 672, - 673, 674 ] }, { - "teal": 749, + "teal": 750, "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ 675, - 676 + 676, + 677 ] }, { - "teal": 750, - "source": "examples/reti/stakingPool.algo.ts:240", + "teal": 755, + "source": "examples/reti/stakingPool.algo.ts:241", "pc": [ - 677 + 678, + 679 ] }, { - "teal": 751, - "source": "examples/reti/stakingPool.algo.ts:240", + "teal": 756, + "source": "examples/reti/stakingPool.algo.ts:241", "pc": [ - 678 + 680 ] }, { - "teal": 754, - "source": "examples/reti/stakingPool.algo.ts:240", + "teal": 757, + "source": "examples/reti/stakingPool.algo.ts:241", "pc": [ - 679, - 680, 681 ] }, { - "teal": 759, + "teal": 758, "source": "examples/reti/stakingPool.algo.ts:241", "pc": [ 682, @@ -3086,29 +3092,29 @@ ] }, { - "teal": 760, - "source": "examples/reti/stakingPool.algo.ts:241", + "teal": 765, + "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ - 684 + 684, + 685 ] }, { - "teal": 761, - "source": "examples/reti/stakingPool.algo.ts:241", + "teal": 766, + "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ - 685 + 686 ] }, { - "teal": 762, - "source": "examples/reti/stakingPool.algo.ts:241", + "teal": 767, + "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ - 686, 687 ] }, { - "teal": 769, + "teal": 768, "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ 688, @@ -3116,77 +3122,71 @@ ] }, { - "teal": 770, + "teal": 769, "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ - 690 + 690, + 691, + 692 ] }, { - "teal": 771, - "source": "examples/reti/stakingPool.algo.ts:225", + "teal": 775, + "source": "examples/reti/stakingPool.algo.ts:245", "pc": [ - 691 + 693, + 694 ] }, { - "teal": 772, - "source": "examples/reti/stakingPool.algo.ts:225", + "teal": 776, + "source": "examples/reti/stakingPool.algo.ts:245", "pc": [ - 692, - 693 + 695 ] }, { - "teal": 773, - "source": "examples/reti/stakingPool.algo.ts:225", + "teal": 777, + "source": "examples/reti/stakingPool.algo.ts:245", "pc": [ - 694, - 695, 696 ] }, { - "teal": 779, + "teal": 778, "source": "examples/reti/stakingPool.algo.ts:245", "pc": [ 697, - 698 - ] - }, - { - "teal": 780, - "source": "examples/reti/stakingPool.algo.ts:245", - "pc": [ + 698, 699 ] }, { - "teal": 781, - "source": "examples/reti/stakingPool.algo.ts:245", + "teal": 782, + "source": "examples/reti/stakingPool.algo.ts:247", + "errorMessage": "Staking pool full", "pc": [ 700 ] }, { - "teal": 782, - "source": "examples/reti/stakingPool.algo.ts:245", + "teal": 787, + "source": "examples/reti/stakingPool.algo.ts:252", "pc": [ 701, - 702, - 703 + 702 ] }, { - "teal": 786, - "source": "examples/reti/stakingPool.algo.ts:247", - "errorMessage": "Staking pool full", + "teal": 788, + "source": "examples/reti/stakingPool.algo.ts:252", "pc": [ + 703, 704 ] }, { - "teal": 791, + "teal": 789, "source": "examples/reti/stakingPool.algo.ts:252", "pc": [ 705, @@ -3194,48 +3194,60 @@ ] }, { - "teal": 792, + "teal": 790, "source": "examples/reti/stakingPool.algo.ts:252", "pc": [ - 707, - 708 + 707 ] }, { - "teal": 793, + "teal": 791, "source": "examples/reti/stakingPool.algo.ts:252", "pc": [ - 709, - 710 + 708 ] }, { "teal": 794, "source": "examples/reti/stakingPool.algo.ts:252", + "errorMessage": "must stake at least the minimum for this pool", + "pc": [ + 709 + ] + }, + { + "teal": 798, + "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ + 710, 711 ] }, { - "teal": 795, - "source": "examples/reti/stakingPool.algo.ts:252", + "teal": 799, + "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ 712 ] }, { - "teal": 798, - "source": "examples/reti/stakingPool.algo.ts:252", - "errorMessage": "must stake at least the minimum for this pool", + "teal": 800, + "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ 713 ] }, + { + "teal": 801, + "source": "examples/reti/stakingPool.algo.ts:254", + "pc": [ + 714 + ] + }, { "teal": 802, "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 714, 715 ] }, @@ -3257,284 +3269,272 @@ "teal": 805, "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 718 + 718, + 719 ] }, { "teal": 806, "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 719 + 720 ] }, { "teal": 807, "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 720 + 721, + 722 ] }, { "teal": 808, "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 721 + 723 ] }, { "teal": 809, "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 722, - 723 + 724, + 725 ] }, { "teal": 810, "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 724 - ] - }, - { - "teal": 811, - "source": "examples/reti/stakingPool.algo.ts:254", - "pc": [ - 725, 726 ] }, { - "teal": 812, + "teal": 811, "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ 727 ] }, { - "teal": 813, - "source": "examples/reti/stakingPool.algo.ts:254", + "teal": 821, + "source": "examples/reti/stakingPool.algo.ts:255", "pc": [ 728, 729 ] }, { - "teal": 814, - "source": "examples/reti/stakingPool.algo.ts:254", + "teal": 822, + "source": "examples/reti/stakingPool.algo.ts:255", "pc": [ 730 ] }, { - "teal": 815, - "source": "examples/reti/stakingPool.algo.ts:254", + "teal": 823, + "source": "examples/reti/stakingPool.algo.ts:255", "pc": [ 731 ] }, + { + "teal": 824, + "source": "examples/reti/stakingPool.algo.ts:255", + "pc": [ + 732 + ] + }, { "teal": 825, "source": "examples/reti/stakingPool.algo.ts:255", "pc": [ - 732, 733 ] }, { "teal": 826, - "source": "examples/reti/stakingPool.algo.ts:255", + "source": "examples/reti/stakingPool.algo.ts:256", "pc": [ - 734 + 734, + 735 ] }, { "teal": 827, - "source": "examples/reti/stakingPool.algo.ts:255", + "source": "examples/reti/stakingPool.algo.ts:257", "pc": [ - 735 + 736, + 737 ] }, { "teal": 828, - "source": "examples/reti/stakingPool.algo.ts:255", + "source": "examples/reti/stakingPool.algo.ts:257", "pc": [ - 736 + 738, + 739 ] }, { "teal": 829, - "source": "examples/reti/stakingPool.algo.ts:255", + "source": "examples/reti/stakingPool.algo.ts:257", "pc": [ - 737 + 740 ] }, { "teal": 830, - "source": "examples/reti/stakingPool.algo.ts:256", + "source": "examples/reti/stakingPool.algo.ts:257", "pc": [ - 738, - 739 + 741 ] }, { "teal": 831, - "source": "examples/reti/stakingPool.algo.ts:257", + "source": "examples/reti/stakingPool.algo.ts:258", "pc": [ - 740, - 741 + 742, + 743 ] }, { "teal": 832, - "source": "examples/reti/stakingPool.algo.ts:257", + "source": "examples/reti/stakingPool.algo.ts:258", "pc": [ - 742, - 743 + 744 ] }, { "teal": 833, - "source": "examples/reti/stakingPool.algo.ts:257", + "source": "examples/reti/stakingPool.algo.ts:259", "pc": [ - 744 + 745, + 746 ] }, { "teal": 834, - "source": "examples/reti/stakingPool.algo.ts:257", + "source": "examples/reti/stakingPool.algo.ts:259", "pc": [ - 745 + 747 ] }, { "teal": 835, - "source": "examples/reti/stakingPool.algo.ts:258", + "source": "examples/reti/stakingPool.algo.ts:260", "pc": [ - 746, - 747 + 748, + 749 ] }, { "teal": 836, - "source": "examples/reti/stakingPool.algo.ts:258", + "source": "examples/reti/stakingPool.algo.ts:260", "pc": [ - 748 + 750 ] }, { "teal": 837, - "source": "examples/reti/stakingPool.algo.ts:259", + "source": "examples/reti/stakingPool.algo.ts:260", "pc": [ - 749, - 750 + 751 ] }, { "teal": 838, - "source": "examples/reti/stakingPool.algo.ts:259", + "source": "examples/reti/stakingPool.algo.ts:255", "pc": [ - 751 + 752 ] }, { "teal": 839, - "source": "examples/reti/stakingPool.algo.ts:260", - "pc": [ - 752, - 753 - ] - }, - { - "teal": 840, - "source": "examples/reti/stakingPool.algo.ts:260", + "source": "examples/reti/stakingPool.algo.ts:255", "pc": [ + 753, 754 ] }, { - "teal": 841, - "source": "examples/reti/stakingPool.algo.ts:260", + "teal": 840, + "source": "examples/reti/stakingPool.algo.ts:255", "pc": [ 755 ] }, { - "teal": 842, - "source": "examples/reti/stakingPool.algo.ts:255", + "teal": 844, + "source": "examples/reti/stakingPool.algo.ts:262", "pc": [ - 756 + 756, + 757 ] }, { - "teal": 843, - "source": "examples/reti/stakingPool.algo.ts:255", + "teal": 845, + "source": "examples/reti/stakingPool.algo.ts:262", "pc": [ - 757, 758 ] }, { - "teal": 844, - "source": "examples/reti/stakingPool.algo.ts:255", + "teal": 846, + "source": "examples/reti/stakingPool.algo.ts:262", "pc": [ 759 ] }, { - "teal": 848, + "teal": 847, "source": "examples/reti/stakingPool.algo.ts:262", "pc": [ - 760, - 761 + 760 ] }, { - "teal": 849, + "teal": 848, "source": "examples/reti/stakingPool.algo.ts:262", "pc": [ + 761, 762 ] }, { - "teal": 850, + "teal": 849, "source": "examples/reti/stakingPool.algo.ts:262", "pc": [ 763 ] }, { - "teal": 851, + "teal": 850, "source": "examples/reti/stakingPool.algo.ts:262", "pc": [ 764 ] }, { - "teal": 852, - "source": "examples/reti/stakingPool.algo.ts:262", + "teal": 854, + "source": "examples/reti/stakingPool.algo.ts:263", "pc": [ 765, 766 ] }, { - "teal": 853, - "source": "examples/reti/stakingPool.algo.ts:262", - "pc": [ - 767 - ] - }, - { - "teal": 854, - "source": "examples/reti/stakingPool.algo.ts:262", + "teal": 858, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ + 767, 768 ] }, { - "teal": 858, - "source": "examples/reti/stakingPool.algo.ts:263", + "teal": 861, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ 769, 770 @@ -3544,21 +3544,21 @@ "teal": 862, "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 771, - 772 + 771 ] }, { - "teal": 865, - "source": "examples/reti/stakingPool.algo.ts:191", + "teal": 867, + "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ + 772, 773, 774 ] }, { - "teal": 866, - "source": "examples/reti/stakingPool.algo.ts:191", + "teal": 868, + "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ 775 ] @@ -3580,69 +3580,69 @@ ] }, { - "teal": 875, + "teal": 873, "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ - 780, - 781, - 782 + 780 ] }, { - "teal": 876, + "teal": 874, "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ - 783 + 781, + 782 ] }, { - "teal": 877, + "teal": 875, "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ - 784 + 783 ] }, { "teal": 878, "source": "examples/reti/stakingPool.algo.ts:277", + "errorMessage": "argument 1 (staker) for removeStake must be a address", "pc": [ - 785, - 786 + 784 ] }, { - "teal": 879, + "teal": 881, "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ + 785, + 786, 787 ] }, { "teal": 882, "source": "examples/reti/stakingPool.algo.ts:277", - "errorMessage": "argument 1 (staker) for removeStake must be a address", "pc": [ 788 ] }, { - "teal": 885, + "teal": 883, "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ - 789, - 790, - 791 + 789 ] }, { - "teal": 886, + "teal": 897, "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ + 790, + 791, 792 ] }, { - "teal": 887, + "teal": 900, "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ 793 @@ -3653,60 +3653,61 @@ "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ 794, - 795, - 796 + 795 ] }, { - "teal": 904, - "source": "examples/reti/stakingPool.algo.ts:277", + "teal": 906, + "source": "examples/reti/stakingPool.algo.ts:280", "pc": [ + 796, 797 ] }, { - "teal": 905, - "source": "examples/reti/stakingPool.algo.ts:277", + "teal": 907, + "source": "examples/reti/stakingPool.algo.ts:280", "pc": [ 798, 799 ] }, { - "teal": 910, + "teal": 908, "source": "examples/reti/stakingPool.algo.ts:280", "pc": [ - 800, - 801 + 800 ] }, { - "teal": 911, + "teal": 909, "source": "examples/reti/stakingPool.algo.ts:280", "pc": [ + 801, 802, 803 ] }, { - "teal": 912, - "source": "examples/reti/stakingPool.algo.ts:280", + "teal": 917, + "source": "examples/reti/stakingPool.algo.ts:282", "pc": [ - 804 + 804, + 805, + 806 ] }, { - "teal": 913, - "source": "examples/reti/stakingPool.algo.ts:280", + "teal": 920, + "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": [ - 805, - 806, 807 ] }, { - "teal": 921, - "source": "examples/reti/stakingPool.algo.ts:282", + "teal": 925, + "source": "examples/reti/stakingPool.algo.ts:287", "pc": [ 808, 809, @@ -3714,31 +3715,30 @@ ] }, { - "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", + "teal": 929, + "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ 811 ] }, { - "teal": 929, - "source": "examples/reti/stakingPool.algo.ts:287", + "teal": 930, + "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ 812, - 813, - 814 + 813 ] }, { - "teal": 933, + "teal": 935, "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ + 814, 815 ] }, { - "teal": 934, + "teal": 936, "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ 816, @@ -3746,123 +3746,123 @@ ] }, { - "teal": 939, + "teal": 937, "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ - 818, - 819 + 818 ] }, { - "teal": 940, + "teal": 938, "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ + 819, 820, 821 ] }, { - "teal": 941, - "source": "examples/reti/stakingPool.algo.ts:289", + "teal": 943, + "source": "examples/reti/stakingPool.algo.ts:290", "pc": [ - 822 + 822, + 823 ] }, { - "teal": 942, - "source": "examples/reti/stakingPool.algo.ts:289", + "teal": 944, + "source": "examples/reti/stakingPool.algo.ts:290", "pc": [ - 823, 824, 825 ] }, { - "teal": 947, + "teal": 945, "source": "examples/reti/stakingPool.algo.ts:290", "pc": [ - 826, - 827 + 826 ] }, { - "teal": 948, + "teal": 946, "source": "examples/reti/stakingPool.algo.ts:290", "pc": [ + 827, 828, 829 ] }, { - "teal": 949, - "source": "examples/reti/stakingPool.algo.ts:290", + "teal": 951, + "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ 830 ] }, { - "teal": 950, - "source": "examples/reti/stakingPool.algo.ts:290", + "teal": 952, + "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 831, - 832, - 833 + 831 ] }, { - "teal": 955, + "teal": 953, "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 834 + 832, + 833 ] }, { - "teal": 956, + "teal": 954, "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 835 + 834 ] }, { - "teal": 957, + "teal": 955, "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 836, - 837 + 835, + 836 ] }, { - "teal": 958, + "teal": 956, "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ + 837, 838 ] }, { - "teal": 959, + "teal": 957, "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 839, - 840 + 839 ] }, { - "teal": 960, + "teal": 958, "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 841, - 842 + 840, + 841 ] }, { - "teal": 961, + "teal": 959, "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ + 842, 843 ] }, { - "teal": 962, + "teal": 960, "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ 844, @@ -3870,7 +3870,7 @@ ] }, { - "teal": 963, + "teal": 961, "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ 846, @@ -3878,249 +3878,249 @@ ] }, { - "teal": 964, + "teal": 962, "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 848, - 849 + 848 ] }, { - "teal": 965, - "source": "examples/reti/stakingPool.algo.ts:291", + "teal": 967, + "source": "examples/reti/stakingPool.algo.ts:293", "pc": [ - 850, - 851 + 849, + 850 ] }, { - "teal": 966, - "source": "examples/reti/stakingPool.algo.ts:291", + "teal": 968, + "source": "examples/reti/stakingPool.algo.ts:293", "pc": [ - 852 + 851 ] }, { - "teal": 971, + "teal": 969, "source": "examples/reti/stakingPool.algo.ts:293", "pc": [ - 853, - 854 + 852 ] }, { - "teal": 972, + "teal": 970, "source": "examples/reti/stakingPool.algo.ts:293", "pc": [ - 855 + 853 ] }, { - "teal": 973, + "teal": 971, "source": "examples/reti/stakingPool.algo.ts:293", "pc": [ - 856 + 854 ] }, { - "teal": 974, + "teal": 972, "source": "examples/reti/stakingPool.algo.ts:293", "pc": [ - 857 + 855, + 856 ] }, { - "teal": 975, + "teal": 973, "source": "examples/reti/stakingPool.algo.ts:293", "pc": [ - 858 + 857 ] }, { - "teal": 976, + "teal": 974, "source": "examples/reti/stakingPool.algo.ts:293", "pc": [ - 859, - 860 + 858, + 859 ] }, { - "teal": 977, - "source": "examples/reti/stakingPool.algo.ts:293", + "teal": 979, + "source": "examples/reti/stakingPool.algo.ts:294", "pc": [ + 860, 861 ] }, { - "teal": 978, - "source": "examples/reti/stakingPool.algo.ts:293", + "teal": 980, + "source": "examples/reti/stakingPool.algo.ts:294", "pc": [ 862, - 863 + 863, + 864 ] }, { - "teal": 983, + "teal": 981, "source": "examples/reti/stakingPool.algo.ts:294", "pc": [ - 864, - 865 + 865, + 866 ] }, { - "teal": 984, + "teal": 982, "source": "examples/reti/stakingPool.algo.ts:294", "pc": [ - 866, - 867, - 868 + 867 ] }, { - "teal": 985, + "teal": 983, "source": "examples/reti/stakingPool.algo.ts:294", "pc": [ + 868, 869, 870 ] }, { - "teal": 986, - "source": "examples/reti/stakingPool.algo.ts:294", + "teal": 989, + "source": "examples/reti/stakingPool.algo.ts:295", "pc": [ - 871 + 871, + 872 ] }, { - "teal": 987, - "source": "examples/reti/stakingPool.algo.ts:294", + "teal": 990, + "source": "examples/reti/stakingPool.algo.ts:295", "pc": [ - 872, - 873, - 874 + 873 ] }, { - "teal": 993, + "teal": 991, "source": "examples/reti/stakingPool.algo.ts:295", "pc": [ - 875, - 876 + 874 ] }, { - "teal": 994, + "teal": 992, "source": "examples/reti/stakingPool.algo.ts:295", "pc": [ + 875, + 876, 877 ] }, { - "teal": 995, - "source": "examples/reti/stakingPool.algo.ts:295", + "teal": 997, + "source": "examples/reti/stakingPool.algo.ts:297", "pc": [ - 878 + 878, + 879 ] }, { - "teal": 996, - "source": "examples/reti/stakingPool.algo.ts:295", + "teal": 998, + "source": "examples/reti/stakingPool.algo.ts:297", "pc": [ - 879, 880, - 881 + 881, + 882 ] }, { - "teal": 1001, + "teal": 999, "source": "examples/reti/stakingPool.algo.ts:297", "pc": [ - 882, 883 ] }, { - "teal": 1002, + "teal": 1000, "source": "examples/reti/stakingPool.algo.ts:297", "pc": [ 884, - 885, - 886 + 885 ] }, { - "teal": 1003, - "source": "examples/reti/stakingPool.algo.ts:297", + "teal": 1006, + "source": "examples/reti/stakingPool.algo.ts:299", "pc": [ + 886, 887 ] }, { - "teal": 1004, - "source": "examples/reti/stakingPool.algo.ts:297", + "teal": 1007, + "source": "examples/reti/stakingPool.algo.ts:299", "pc": [ 888, - 889 + 889, + 890 ] }, { - "teal": 1010, + "teal": 1008, "source": "examples/reti/stakingPool.algo.ts:299", "pc": [ - 890, 891 ] }, { - "teal": 1011, + "teal": 1009, "source": "examples/reti/stakingPool.algo.ts:299", "pc": [ 892, - 893, - 894 + 893 ] }, { - "teal": 1012, + "teal": 1010, "source": "examples/reti/stakingPool.algo.ts:299", "pc": [ - 895 + 894 ] }, { - "teal": 1013, + "teal": 1011, "source": "examples/reti/stakingPool.algo.ts:299", "pc": [ + 895, 896, 897 ] }, { - "teal": 1014, - "source": "examples/reti/stakingPool.algo.ts:299", + "teal": 1015, + "source": "examples/reti/stakingPool.algo.ts:300", + "errorMessage": "Insufficient balance", "pc": [ 898 ] }, { - "teal": 1015, - "source": "examples/reti/stakingPool.algo.ts:299", + "teal": 1020, + "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ 899, - 900, - 901 + 900 ] }, { - "teal": 1019, - "source": "examples/reti/stakingPool.algo.ts:300", - "errorMessage": "Insufficient balance", + "teal": 1021, + "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ + 901, 902 ] }, { - "teal": 1024, + "teal": 1022, "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ 903, @@ -4128,242 +4128,242 @@ ] }, { - "teal": 1025, + "teal": 1023, "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ 905, - 906 + 906, + 907 ] }, { - "teal": 1026, + "teal": 1024, "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ - 907, 908 ] }, { - "teal": 1027, + "teal": 1025, "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ 909, - 910, - 911 + 910 ] }, { - "teal": 1028, + "teal": 1026, "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ - 912 + 911 ] }, { - "teal": 1029, + "teal": 1027, "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ - 913, - 914 + 912 ] }, { - "teal": 1030, + "teal": 1028, "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ - 915 + 913 ] }, { - "teal": 1031, + "teal": 1029, "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ - 916 + 914, + 915 ] }, { - "teal": 1032, - "source": "examples/reti/stakingPool.algo.ts:302", + "teal": 1033, + "source": "examples/reti/stakingPool.algo.ts:303", "pc": [ + 916, 917 ] }, { - "teal": 1033, - "source": "examples/reti/stakingPool.algo.ts:302", + "teal": 1034, + "source": "examples/reti/stakingPool.algo.ts:303", "pc": [ - 918, - 919 + 918 ] }, { - "teal": 1037, + "teal": 1035, "source": "examples/reti/stakingPool.algo.ts:303", "pc": [ - 920, - 921 + 919, + 920 ] }, { - "teal": 1038, + "teal": 1036, "source": "examples/reti/stakingPool.algo.ts:303", "pc": [ - 922 + 921 ] }, { - "teal": 1039, + "teal": 1037, "source": "examples/reti/stakingPool.algo.ts:303", "pc": [ - 923, - 924 + 922, + 923 ] }, { - "teal": 1040, + "teal": 1038, "source": "examples/reti/stakingPool.algo.ts:303", "pc": [ - 925 + 924 ] }, { - "teal": 1041, + "teal": 1039, "source": "examples/reti/stakingPool.algo.ts:303", "pc": [ - 926, - 927 + 925 ] }, { - "teal": 1042, - "source": "examples/reti/stakingPool.algo.ts:303", + "teal": 1043, + "source": "examples/reti/stakingPool.algo.ts:305", "pc": [ - 928 + 926 ] }, { - "teal": 1043, - "source": "examples/reti/stakingPool.algo.ts:303", + "teal": 1044, + "source": "examples/reti/stakingPool.algo.ts:305", "pc": [ - 929 + 927, + 928 ] }, { - "teal": 1047, - "source": "examples/reti/stakingPool.algo.ts:305", + "teal": 1049, + "source": "examples/reti/stakingPool.algo.ts:306", "pc": [ + 929, 930 ] }, { - "teal": 1048, - "source": "examples/reti/stakingPool.algo.ts:305", + "teal": 1050, + "source": "examples/reti/stakingPool.algo.ts:306", "pc": [ 931, - 932 + 932, + 933 ] }, { - "teal": 1053, + "teal": 1051, "source": "examples/reti/stakingPool.algo.ts:306", "pc": [ - 933, 934 ] }, { - "teal": 1054, + "teal": 1052, "source": "examples/reti/stakingPool.algo.ts:306", "pc": [ - 935, - 936, - 937 + 935 ] }, { - "teal": 1055, + "teal": 1053, "source": "examples/reti/stakingPool.algo.ts:306", "pc": [ - 938 + 936 ] }, { - "teal": 1056, + "teal": 1054, "source": "examples/reti/stakingPool.algo.ts:306", "pc": [ + 937, + 938, 939 ] }, { - "teal": 1057, - "source": "examples/reti/stakingPool.algo.ts:306", + "teal": 1060, + "source": "examples/reti/stakingPool.algo.ts:308", "pc": [ - 940 + 940, + 941 ] }, { - "teal": 1058, - "source": "examples/reti/stakingPool.algo.ts:306", + "teal": 1061, + "source": "examples/reti/stakingPool.algo.ts:308", "pc": [ - 941, - 942, - 943 + 942 ] }, { - "teal": 1064, + "teal": 1062, "source": "examples/reti/stakingPool.algo.ts:308", "pc": [ - 944, - 945 + 943 ] }, { - "teal": 1065, + "teal": 1063, "source": "examples/reti/stakingPool.algo.ts:308", "pc": [ - 946 + 944 ] }, { - "teal": 1066, + "teal": 1064, "source": "examples/reti/stakingPool.algo.ts:308", "pc": [ + 945, + 946, 947 ] }, { - "teal": 1067, - "source": "examples/reti/stakingPool.algo.ts:308", + "teal": 1072, + "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ 948 ] }, { - "teal": 1068, - "source": "examples/reti/stakingPool.algo.ts:308", + "teal": 1073, + "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 949, - 950, - 951 + 949 ] }, { - "teal": 1076, + "teal": 1074, "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 952 + 950, + 951 ] }, { - "teal": 1077, + "teal": 1075, "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ + 952, 953 ] }, { - "teal": 1078, + "teal": 1076, "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ 954, @@ -4371,300 +4371,300 @@ ] }, { - "teal": 1079, - "source": "examples/reti/stakingPool.algo.ts:309", + "teal": 1080, + "source": "examples/reti/stakingPool.algo.ts:310", "pc": [ - 956, - 957 + 956 ] }, { - "teal": 1080, - "source": "examples/reti/stakingPool.algo.ts:309", + "teal": 1081, + "source": "examples/reti/stakingPool.algo.ts:310", "pc": [ - 958, - 959 + 957 ] }, { - "teal": 1084, + "teal": 1082, "source": "examples/reti/stakingPool.algo.ts:310", "pc": [ - 960 + 958, + 959 ] }, { - "teal": 1085, - "source": "examples/reti/stakingPool.algo.ts:310", + "teal": 1086, + "source": "examples/reti/stakingPool.algo.ts:311", "pc": [ - 961 + 960 ] }, { - "teal": 1086, - "source": "examples/reti/stakingPool.algo.ts:310", + "teal": 1087, + "source": "examples/reti/stakingPool.algo.ts:311", "pc": [ - 962, - 963 + 961 ] }, { - "teal": 1090, + "teal": 1088, "source": "examples/reti/stakingPool.algo.ts:311", "pc": [ - 964 + 962 ] }, { - "teal": 1091, + "teal": 1089, "source": "examples/reti/stakingPool.algo.ts:311", "pc": [ - 965 + 963, + 964 ] }, { "teal": 1092, - "source": "examples/reti/stakingPool.algo.ts:311", + "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 966 + 965 ] }, { "teal": 1093, - "source": "examples/reti/stakingPool.algo.ts:311", + "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 967, - 968 + 966, + 967 ] }, { "teal": 1096, "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 969 + 968 ] }, { "teal": 1097, "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 970, - 971 + 969, + 970 ] }, { - "teal": 1100, + "teal": 1098, "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 972 + 971 ] }, { - "teal": 1101, + "teal": 1099, "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 973, - 974 + 972 ] }, { - "teal": 1102, + "teal": 1100, "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 975 + 973, + 974 ] }, { - "teal": 1103, + "teal": 1101, "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 976 + 975, + 976, + 977 ] }, { - "teal": 1104, + "teal": 1102, "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 977, - 978 + 978, + 979 ] }, { - "teal": 1105, - "source": "examples/reti/stakingPool.algo.ts:309", + "teal": 1110, + "source": "examples/reti/stakingPool.algo.ts:317", "pc": [ - 979, - 980, - 981 + 980 ] }, { - "teal": 1106, - "source": "examples/reti/stakingPool.algo.ts:309", + "teal": 1111, + "source": "examples/reti/stakingPool.algo.ts:317", "pc": [ - 982, - 983 + 981, + 982 ] }, { - "teal": 1114, + "teal": 1112, "source": "examples/reti/stakingPool.algo.ts:317", "pc": [ + 983, 984 ] }, { - "teal": 1115, - "source": "examples/reti/stakingPool.algo.ts:317", + "teal": 1116, + "source": "examples/reti/stakingPool.algo.ts:318", "pc": [ 985, 986 ] }, { - "teal": 1116, - "source": "examples/reti/stakingPool.algo.ts:317", + "teal": 1117, + "source": "examples/reti/stakingPool.algo.ts:318", "pc": [ 987, - 988 + 988, + 989 ] }, { - "teal": 1120, + "teal": 1118, "source": "examples/reti/stakingPool.algo.ts:318", "pc": [ - 989, 990 ] }, { - "teal": 1121, + "teal": 1119, "source": "examples/reti/stakingPool.algo.ts:318", "pc": [ 991, - 992, - 993 + 992 ] }, { - "teal": 1122, - "source": "examples/reti/stakingPool.algo.ts:318", + "teal": 1123, + "source": "examples/reti/stakingPool.algo.ts:319", "pc": [ + 993, 994 ] }, { - "teal": 1123, - "source": "examples/reti/stakingPool.algo.ts:318", + "teal": 1124, + "source": "examples/reti/stakingPool.algo.ts:319", "pc": [ 995, 996 ] }, { - "teal": 1127, - "source": "examples/reti/stakingPool.algo.ts:319", + "teal": 1128, + "source": "examples/reti/stakingPool.algo.ts:320", "pc": [ 997, 998 ] }, { - "teal": 1128, - "source": "examples/reti/stakingPool.algo.ts:319", + "teal": 1129, + "source": "examples/reti/stakingPool.algo.ts:320", "pc": [ 999, - 1000 + 1000, + 1001 ] }, { - "teal": 1132, + "teal": 1130, "source": "examples/reti/stakingPool.algo.ts:320", "pc": [ - 1001, 1002 ] }, { - "teal": 1133, + "teal": 1131, "source": "examples/reti/stakingPool.algo.ts:320", "pc": [ 1003, - 1004, - 1005 + 1004 ] }, { "teal": 1134, - "source": "examples/reti/stakingPool.algo.ts:320", + "source": "examples/reti/stakingPool.algo.ts:317", "pc": [ - 1006 + 1005 ] }, { "teal": 1135, - "source": "examples/reti/stakingPool.algo.ts:320", + "source": "examples/reti/stakingPool.algo.ts:317", "pc": [ - 1007, - 1008 + 1006, + 1007 ] }, { "teal": 1138, "source": "examples/reti/stakingPool.algo.ts:317", "pc": [ - 1009 + 1008 ] }, { - "teal": 1139, - "source": "examples/reti/stakingPool.algo.ts:317", + "teal": 1142, + "source": "examples/reti/stakingPool.algo.ts:322", "pc": [ - 1010, - 1011 + 1009, + 1010 ] }, { - "teal": 1142, - "source": "examples/reti/stakingPool.algo.ts:317", + "teal": 1143, + "source": "examples/reti/stakingPool.algo.ts:322", "pc": [ - 1012 + 1011, + 1012, + 1013 ] }, { - "teal": 1146, + "teal": 1144, "source": "examples/reti/stakingPool.algo.ts:322", "pc": [ - 1013, 1014 ] }, { - "teal": 1147, + "teal": 1145, "source": "examples/reti/stakingPool.algo.ts:322", "pc": [ 1015, - 1016, - 1017 + 1016 ] }, { - "teal": 1148, - "source": "examples/reti/stakingPool.algo.ts:322", + "teal": 1149, + "source": "examples/reti/stakingPool.algo.ts:323", "pc": [ + 1017, 1018 ] }, { - "teal": 1149, - "source": "examples/reti/stakingPool.algo.ts:322", + "teal": 1150, + "source": "examples/reti/stakingPool.algo.ts:323", "pc": [ 1019, 1020 ] }, { - "teal": 1153, + "teal": 1151, "source": "examples/reti/stakingPool.algo.ts:323", "pc": [ 1021, @@ -4672,7 +4672,7 @@ ] }, { - "teal": 1154, + "teal": 1152, "source": "examples/reti/stakingPool.algo.ts:323", "pc": [ 1023, @@ -4680,64 +4680,64 @@ ] }, { - "teal": 1155, - "source": "examples/reti/stakingPool.algo.ts:323", + "teal": 1153, + "source": "examples/reti/stakingPool.algo.ts:308", "pc": [ 1025, - 1026 + 1026, + 1027 ] }, { - "teal": 1156, - "source": "examples/reti/stakingPool.algo.ts:323", + "teal": 1158, + "source": "examples/reti/stakingPool.algo.ts:328", "pc": [ - 1027, - 1028 + 1028, + 1029 ] }, { - "teal": 1157, - "source": "examples/reti/stakingPool.algo.ts:308", + "teal": 1159, + "source": "examples/reti/stakingPool.algo.ts:328", "pc": [ - 1029, 1030, - 1031 + 1031, + 1032 ] }, { - "teal": 1162, + "teal": 1160, "source": "examples/reti/stakingPool.algo.ts:328", "pc": [ - 1032, 1033 ] }, { - "teal": 1163, + "teal": 1161, "source": "examples/reti/stakingPool.algo.ts:328", "pc": [ 1034, - 1035, - 1036 + 1035 ] }, { - "teal": 1164, - "source": "examples/reti/stakingPool.algo.ts:328", + "teal": 1165, + "source": "examples/reti/stakingPool.algo.ts:329", "pc": [ + 1036, 1037 ] }, { - "teal": 1165, - "source": "examples/reti/stakingPool.algo.ts:328", + "teal": 1166, + "source": "examples/reti/stakingPool.algo.ts:329", "pc": [ 1038, 1039 ] }, { - "teal": 1169, + "teal": 1167, "source": "examples/reti/stakingPool.algo.ts:329", "pc": [ 1040, @@ -4745,7 +4745,7 @@ ] }, { - "teal": 1170, + "teal": 1168, "source": "examples/reti/stakingPool.algo.ts:329", "pc": [ 1042, @@ -4753,389 +4753,389 @@ ] }, { - "teal": 1171, - "source": "examples/reti/stakingPool.algo.ts:329", + "teal": 1178, + "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ 1044, 1045 ] }, { - "teal": 1172, - "source": "examples/reti/stakingPool.algo.ts:329", + "teal": 1179, + "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ 1046, - 1047 + 1047, + 1048 ] }, { - "teal": 1182, + "teal": 1180, "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1048, 1049 ] }, { - "teal": 1183, + "teal": 1181, "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1050, - 1051, - 1052 + 1050 ] }, { - "teal": 1184, + "teal": 1182, "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1053 + 1051 ] }, { - "teal": 1185, + "teal": 1183, "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1054 + 1052 ] }, { - "teal": 1186, + "teal": 1184, "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ + 1053, + 1054, 1055 ] }, { - "teal": 1187, + "teal": 1185, "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1056 + 1056, + 1057 ] }, { - "teal": 1188, + "teal": 1186, "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1057, 1058, - 1059 + 1059, + 1060 ] }, { - "teal": 1189, + "teal": 1187, "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1060, 1061 ] }, { - "teal": 1190, + "teal": 1188, "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ 1062, - 1063, - 1064 - ] - }, - { - "teal": 1191, - "source": "examples/reti/stakingPool.algo.ts:335", - "pc": [ - 1065 + 1063 ] }, { - "teal": 1192, + "teal": 1189, "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1066, - 1067 + 1064 ] }, { - "teal": 1193, + "teal": 1190, "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1068 + 1065 ] }, { - "teal": 1194, + "teal": 1191, "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1069 + 1066 ] }, { "teal": 1195, - "source": "examples/reti/stakingPool.algo.ts:335", - "pc": [ - 1070 - ] - }, - { - "teal": 1199, "source": "examples/reti/stakingPool.algo.ts:334", "errorMessage": "cannot reduce balance below minimum allowed stake unless all is removed", "pc": [ - 1071 + 1067 ] }, { - "teal": 1207, + "teal": 1203, "source": "examples/reti/stakingPool.algo.ts:342", "pc": [ - 1072 + 1068 ] }, { - "teal": 1208, + "teal": 1204, "source": "examples/reti/stakingPool.algo.ts:342", "pc": [ - 1073 + 1069 ] }, { - "teal": 1209, + "teal": 1205, "source": "examples/reti/stakingPool.algo.ts:342", "pc": [ - 1074, - 1075 + 1070, + 1071 ] }, { - "teal": 1213, + "teal": 1209, "source": "examples/reti/stakingPool.algo.ts:343", "pc": [ - 1076, - 1077 + 1072, + 1073 ] }, { - "teal": 1214, + "teal": 1210, "source": "examples/reti/stakingPool.algo.ts:343", "pc": [ - 1078, - 1079 + 1074, + 1075 ] }, { - "teal": 1218, + "teal": 1214, "source": "examples/reti/stakingPool.algo.ts:344", "pc": [ - 1080, - 1081 + 1076, + 1077 ] }, { - "teal": 1219, + "teal": 1215, "source": "examples/reti/stakingPool.algo.ts:344", "pc": [ - 1082, - 1083 + 1078, + 1079 ] }, { - "teal": 1223, + "teal": 1219, "source": "examples/reti/stakingPool.algo.ts:345", "pc": [ + 1080, + 1081, + 1082, + 1083, 1084, 1085, 1086, 1087, 1088, - 1089, - 1090, - 1091, - 1092, - 1093 + 1089 ] }, { - "teal": 1224, + "teal": 1220, "source": "examples/reti/stakingPool.algo.ts:345", "pc": [ - 1094, - 1095 + 1090, + 1091 ] }, { - "teal": 1227, + "teal": 1223, "source": "examples/reti/stakingPool.algo.ts:342", "pc": [ - 1096 + 1092 ] }, { - "teal": 1228, + "teal": 1224, "source": "examples/reti/stakingPool.algo.ts:342", "pc": [ - 1097, - 1098 + 1093, + 1094 ] }, { - "teal": 1231, + "teal": 1227, "source": "examples/reti/stakingPool.algo.ts:342", "pc": [ - 1099 + 1095 ] }, { - "teal": 1235, + "teal": 1231, "source": "examples/reti/stakingPool.algo.ts:347", "pc": [ - 1100 + 1096 ] }, { - "teal": 1236, + "teal": 1232, "source": "examples/reti/stakingPool.algo.ts:347", "pc": [ - 1101, - 1102 + 1097, + 1098 ] }, { - "teal": 1241, + "teal": 1237, "source": "examples/reti/stakingPool.algo.ts:348", "pc": [ - 1103, - 1104 + 1099, + 1100 ] }, { - "teal": 1242, + "teal": 1238, "source": "examples/reti/stakingPool.algo.ts:348", "pc": [ - 1105, - 1106, - 1107 + 1101, + 1102, + 1103 ] }, { - "teal": 1243, + "teal": 1239, "source": "examples/reti/stakingPool.algo.ts:348", "pc": [ - 1108 + 1104 ] }, { - "teal": 1244, + "teal": 1240, "source": "examples/reti/stakingPool.algo.ts:348", "pc": [ - 1109 + 1105 ] }, { - "teal": 1245, + "teal": 1241, "source": "examples/reti/stakingPool.algo.ts:348", "pc": [ - 1110 + 1106 ] }, { - "teal": 1246, + "teal": 1242, "source": "examples/reti/stakingPool.algo.ts:348", "pc": [ - 1111, - 1112, - 1113 + 1107, + 1108, + 1109 ] }, { - "teal": 1251, + "teal": 1247, "source": "examples/reti/stakingPool.algo.ts:350", "pc": [ - 1114, - 1115 + 1110, + 1111 ] }, { - "teal": 1252, + "teal": 1248, "source": "examples/reti/stakingPool.algo.ts:350", "pc": [ - 1116 + 1112 ] }, { - "teal": 1253, + "teal": 1249, "source": "examples/reti/stakingPool.algo.ts:350", "pc": [ - 1117 + 1113 ] }, { - "teal": 1254, + "teal": 1250, "source": "examples/reti/stakingPool.algo.ts:350", "pc": [ - 1118 + 1114 ] }, { - "teal": 1255, + "teal": 1251, "source": "examples/reti/stakingPool.algo.ts:350", "pc": [ - 1119, - 1120 + 1115, + 1116 ] }, { - "teal": 1256, + "teal": 1252, "source": "examples/reti/stakingPool.algo.ts:350", "pc": [ - 1121 + 1117 ] }, { - "teal": 1257, + "teal": 1253, "source": "examples/reti/stakingPool.algo.ts:350", "pc": [ - 1122 + 1118 ] }, { - "teal": 1261, + "teal": 1257, "source": "examples/reti/stakingPool.algo.ts:351", "pc": [ - 1123, - 1124 + 1119, + 1120 ] }, { - "teal": 1262, + "teal": 1258, "source": "examples/reti/stakingPool.algo.ts:351", "pc": [ - 1125 + 1121 ] }, { - "teal": 1263, + "teal": 1259, "source": "examples/reti/stakingPool.algo.ts:351", "pc": [ - 1126, - 1127 + 1122, + 1123 ] }, { - "teal": 1264, + "teal": 1260, "source": "examples/reti/stakingPool.algo.ts:351", "pc": [ - 1128 + 1124 ] }, { - "teal": 1265, + "teal": 1261, "source": "examples/reti/stakingPool.algo.ts:351", + "pc": [ + 1125, + 1126 + ] + }, + { + "teal": 1265, + "source": "examples/reti/stakingPool.algo.ts:352", + "pc": [ + 1127, + 1128 + ] + }, + { + "teal": 1266, + "source": "examples/reti/stakingPool.algo.ts:352", "pc": [ 1129, 1130 ] }, { - "teal": 1269, + "teal": 1267, "source": "examples/reti/stakingPool.algo.ts:352", "pc": [ 1131, @@ -5143,7 +5143,7 @@ ] }, { - "teal": 1270, + "teal": 1268, "source": "examples/reti/stakingPool.algo.ts:352", "pc": [ 1133, @@ -5151,23 +5151,23 @@ ] }, { - "teal": 1271, - "source": "examples/reti/stakingPool.algo.ts:352", + "teal": 1272, + "source": "examples/reti/stakingPool.algo.ts:353", "pc": [ 1135, 1136 ] }, { - "teal": 1272, - "source": "examples/reti/stakingPool.algo.ts:352", + "teal": 1273, + "source": "examples/reti/stakingPool.algo.ts:353", "pc": [ 1137, 1138 ] }, { - "teal": 1276, + "teal": 1274, "source": "examples/reti/stakingPool.algo.ts:353", "pc": [ 1139, @@ -5175,7 +5175,7 @@ ] }, { - "teal": 1277, + "teal": 1275, "source": "examples/reti/stakingPool.algo.ts:353", "pc": [ 1141, @@ -5183,38 +5183,44 @@ ] }, { - "teal": 1278, - "source": "examples/reti/stakingPool.algo.ts:353", + "teal": 1279, + "source": "examples/reti/stakingPool.algo.ts:354", "pc": [ - 1143, - 1144 + 1143 ] }, { - "teal": 1279, - "source": "examples/reti/stakingPool.algo.ts:353", + "teal": 1280, + "source": "examples/reti/stakingPool.algo.ts:354", "pc": [ - 1145, - 1146 + 1144, + 1145 ] }, { - "teal": 1283, - "source": "examples/reti/stakingPool.algo.ts:354", + "teal": 1285, + "source": "examples/reti/stakingPool.algo.ts:357", "pc": [ + 1146, 1147 ] }, { - "teal": 1284, - "source": "examples/reti/stakingPool.algo.ts:354", + "teal": 1286, + "source": "examples/reti/stakingPool.algo.ts:357", + "pc": [ + 1148 + ] + }, + { + "teal": 1287, + "source": "examples/reti/stakingPool.algo.ts:357", "pc": [ - 1148, 1149 ] }, { - "teal": 1289, + "teal": 1288, "source": "examples/reti/stakingPool.algo.ts:357", "pc": [ 1150, @@ -5222,66 +5228,66 @@ ] }, { - "teal": 1290, + "teal": 1289, "source": "examples/reti/stakingPool.algo.ts:357", "pc": [ 1152 ] }, { - "teal": 1291, + "teal": 1290, "source": "examples/reti/stakingPool.algo.ts:357", "pc": [ - 1153 + 1153, + 1154 ] }, { - "teal": 1292, + "teal": 1291, "source": "examples/reti/stakingPool.algo.ts:357", "pc": [ - 1154, 1155 ] }, { - "teal": 1293, - "source": "examples/reti/stakingPool.algo.ts:357", + "teal": 1295, + "source": "examples/reti/stakingPool.algo.ts:359", "pc": [ - 1156 + 1156, + 1157 ] }, { - "teal": 1294, - "source": "examples/reti/stakingPool.algo.ts:357", + "teal": 1296, + "source": "examples/reti/stakingPool.algo.ts:359", "pc": [ - 1157, 1158 ] }, { - "teal": 1295, - "source": "examples/reti/stakingPool.algo.ts:357", + "teal": 1297, + "source": "examples/reti/stakingPool.algo.ts:359", "pc": [ - 1159 + 1159, + 1160 ] }, { - "teal": 1299, + "teal": 1298, "source": "examples/reti/stakingPool.algo.ts:359", "pc": [ - 1160, 1161 ] }, { - "teal": 1300, + "teal": 1299, "source": "examples/reti/stakingPool.algo.ts:359", "pc": [ 1162 ] }, { - "teal": 1301, + "teal": 1300, "source": "examples/reti/stakingPool.algo.ts:359", "pc": [ 1163, @@ -5289,95 +5295,96 @@ ] }, { - "teal": 1302, + "teal": 1301, "source": "examples/reti/stakingPool.algo.ts:359", "pc": [ 1165 ] }, { - "teal": 1303, + "teal": 1302, "source": "examples/reti/stakingPool.algo.ts:359", "pc": [ - 1166 + 1166, + 1167 ] }, { - "teal": 1304, - "source": "examples/reti/stakingPool.algo.ts:359", + "teal": 1306, + "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1167, - 1168 + 1168, + 1169 ] }, { - "teal": 1305, - "source": "examples/reti/stakingPool.algo.ts:359", + "teal": 1307, + "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1169 + 1170 ] }, { - "teal": 1306, - "source": "examples/reti/stakingPool.algo.ts:359", + "teal": 1308, + "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1170, - 1171 + 1171, + 1172 ] }, { - "teal": 1310, + "teal": 1309, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1172, 1173 ] }, { - "teal": 1311, + "teal": 1310, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ 1174 ] }, { - "teal": 1312, + "teal": 1311, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1175, - 1176 + 1175 ] }, { - "teal": 1313, + "teal": 1312, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1177 + 1176 ] }, { - "teal": 1314, + "teal": 1313, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ + 1177, 1178 ] }, { - "teal": 1315, + "teal": 1314, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ 1179 ] }, { - "teal": 1316, + "teal": 1317, "source": "examples/reti/stakingPool.algo.ts:360", + "errorMessage": "(amountToUnstake as uint128) * (roundsLeftInBin as uint128) overflowed 128 bits", "pc": [ 1180 ] }, { - "teal": 1317, + "teal": 1318, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ 1181, @@ -5385,95 +5392,94 @@ ] }, { - "teal": 1318, + "teal": 1319, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ 1183 ] }, { - "teal": 1321, + "teal": 1320, "source": "examples/reti/stakingPool.algo.ts:360", - "errorMessage": "(amountToUnstake as uint128) * (roundsLeftInBin as uint128) overflowed 128 bits", "pc": [ 1184 ] }, { - "teal": 1322, + "teal": 1321, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1185, - 1186 + 1185 ] }, { - "teal": 1323, + "teal": 1322, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1187 + 1186 ] }, { - "teal": 1324, + "teal": 1323, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ + 1187, 1188 ] }, { - "teal": 1325, + "teal": 1324, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ 1189 ] }, { - "teal": 1326, + "teal": 1325, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ 1190 ] }, { - "teal": 1327, + "teal": 1326, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1191, - 1192 + 1191 ] }, { - "teal": 1328, + "teal": 1327, "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ + 1192, 1193 ] }, { - "teal": 1329, - "source": "examples/reti/stakingPool.algo.ts:360", + "teal": 1331, + "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1194 + 1194, + 1195 ] }, { - "teal": 1330, - "source": "examples/reti/stakingPool.algo.ts:360", + "teal": 1332, + "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1195 + 1196 ] }, { - "teal": 1331, - "source": "examples/reti/stakingPool.algo.ts:360", + "teal": 1333, + "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1196, 1197 ] }, { - "teal": 1335, + "teal": 1334, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ 1198, @@ -5481,50 +5487,51 @@ ] }, { - "teal": 1336, + "teal": 1335, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ 1200 ] }, { - "teal": 1337, + "teal": 1336, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ 1201 ] }, { - "teal": 1338, + "teal": 1337, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1202, - 1203 + 1202 ] }, { - "teal": 1339, + "teal": 1338, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ + 1203, 1204 ] }, { - "teal": 1340, + "teal": 1339, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ 1205 ] }, { - "teal": 1341, + "teal": 1342, "source": "examples/reti/stakingPool.algo.ts:361", + "errorMessage": "this.stakeAccumulator.value - subtractAmount overflowed 128 bits", "pc": [ 1206 ] }, { - "teal": 1342, + "teal": 1343, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ 1207, @@ -5532,25 +5539,30 @@ ] }, { - "teal": 1343, + "teal": 1344, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ 1209 ] }, { - "teal": 1346, + "teal": 1345, "source": "examples/reti/stakingPool.algo.ts:361", - "errorMessage": "this.stakeAccumulator.value - subtractAmount overflowed 128 bits", "pc": [ 1210 ] }, + { + "teal": 1346, + "source": "examples/reti/stakingPool.algo.ts:361", + "pc": [ + 1211 + ] + }, { "teal": 1347, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1211, 1212 ] }, @@ -5558,346 +5570,340 @@ "teal": 1348, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1213 + 1213, + 1214 ] }, { "teal": 1349, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1214 + 1215 ] }, { "teal": 1350, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1215 + 1216 ] }, { "teal": 1351, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1216 + 1217 ] }, { "teal": 1352, "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1217, 1218 ] }, { - "teal": 1353, - "source": "examples/reti/stakingPool.algo.ts:361", + "teal": 1365, + "source": "examples/reti/stakingPool.algo.ts:366", "pc": [ 1219 ] }, { - "teal": 1354, - "source": "examples/reti/stakingPool.algo.ts:361", + "teal": 1366, + "source": "examples/reti/stakingPool.algo.ts:366", "pc": [ 1220 ] }, { - "teal": 1355, - "source": "examples/reti/stakingPool.algo.ts:361", - "pc": [ - 1221 - ] - }, - { - "teal": 1356, - "source": "examples/reti/stakingPool.algo.ts:361", + "teal": 1367, + "source": "examples/reti/stakingPool.algo.ts:366", "pc": [ + 1221, 1222 ] }, { - "teal": 1369, + "teal": 1368, "source": "examples/reti/stakingPool.algo.ts:366", "pc": [ - 1223 + 1223, + 1224 ] }, { - "teal": 1370, + "teal": 1369, "source": "examples/reti/stakingPool.algo.ts:366", "pc": [ - 1224 + 1225, + 1226 ] }, { - "teal": 1371, - "source": "examples/reti/stakingPool.algo.ts:366", + "teal": 1373, + "source": "examples/reti/stakingPool.algo.ts:367", "pc": [ - 1225, - 1226 + 1227 ] }, { - "teal": 1372, - "source": "examples/reti/stakingPool.algo.ts:366", + "teal": 1374, + "source": "examples/reti/stakingPool.algo.ts:367", "pc": [ - 1227, 1228 ] }, { - "teal": 1373, - "source": "examples/reti/stakingPool.algo.ts:366", + "teal": 1375, + "source": "examples/reti/stakingPool.algo.ts:367", "pc": [ 1229, 1230 ] }, { - "teal": 1377, - "source": "examples/reti/stakingPool.algo.ts:367", + "teal": 1385, + "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ 1231 ] }, { - "teal": 1378, - "source": "examples/reti/stakingPool.algo.ts:367", + "teal": 1386, + "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ 1232 ] }, { - "teal": 1379, - "source": "examples/reti/stakingPool.algo.ts:367", + "teal": 1387, + "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ - 1233, - 1234 + 1233 ] }, { - "teal": 1389, + "teal": 1388, "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ + 1234, 1235 ] }, { - "teal": 1390, + "teal": 1389, "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ 1236 ] }, { - "teal": 1391, + "teal": 1390, "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ 1237 ] }, { - "teal": 1392, - "source": "examples/reti/stakingPool.algo.ts:369", - "pc": [ - 1238, - 1239 - ] - }, - { - "teal": 1393, + "teal": 1391, "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ - 1240 + 1238 ] }, { - "teal": 1394, + "teal": 1392, "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ + 1239, + 1240, 1241 ] }, { - "teal": 1395, + "teal": 1393, "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ 1242 ] }, { - "teal": 1396, + "teal": 1394, "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ - 1243, - 1244, - 1245 + 1243 ] }, { - "teal": 1397, + "teal": 1395, "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ - 1246 + 1244, + 1245 ] }, { - "teal": 1398, - "source": "examples/reti/stakingPool.algo.ts:369", + "teal": 1396, + "source": "examples/reti/stakingPool.algo.ts:370", "pc": [ + 1246, 1247 ] }, { - "teal": 1399, - "source": "examples/reti/stakingPool.algo.ts:369", + "teal": 1397, + "source": "examples/reti/stakingPool.algo.ts:370", "pc": [ 1248, 1249 ] }, { - "teal": 1400, - "source": "examples/reti/stakingPool.algo.ts:370", + "teal": 1398, + "source": "examples/reti/stakingPool.algo.ts:371", "pc": [ 1250, 1251 ] }, { - "teal": 1401, - "source": "examples/reti/stakingPool.algo.ts:370", + "teal": 1399, + "source": "examples/reti/stakingPool.algo.ts:371", "pc": [ - 1252, - 1253 + 1252 ] }, { - "teal": 1402, + "teal": 1400, "source": "examples/reti/stakingPool.algo.ts:371", "pc": [ - 1254, - 1255 + 1253, + 1254 ] }, { - "teal": 1403, - "source": "examples/reti/stakingPool.algo.ts:371", + "teal": 1401, + "source": "examples/reti/stakingPool.algo.ts:372", "pc": [ + 1255, 1256 ] }, { - "teal": 1404, - "source": "examples/reti/stakingPool.algo.ts:371", + "teal": 1402, + "source": "examples/reti/stakingPool.algo.ts:372", "pc": [ - 1257, - 1258 + 1257 ] }, { - "teal": 1405, + "teal": 1403, "source": "examples/reti/stakingPool.algo.ts:372", "pc": [ - 1259, - 1260 + 1258, + 1259 ] }, { - "teal": 1406, - "source": "examples/reti/stakingPool.algo.ts:372", + "teal": 1404, + "source": "examples/reti/stakingPool.algo.ts:373", "pc": [ + 1260, 1261 ] }, { - "teal": 1407, - "source": "examples/reti/stakingPool.algo.ts:372", + "teal": 1405, + "source": "examples/reti/stakingPool.algo.ts:373", "pc": [ 1262, 1263 ] }, { - "teal": 1408, + "teal": 1406, "source": "examples/reti/stakingPool.algo.ts:373", "pc": [ - 1264, - 1265 + 1264 ] }, { - "teal": 1409, + "teal": 1407, "source": "examples/reti/stakingPool.algo.ts:373", "pc": [ - 1266, - 1267 + 1265, + 1266 ] }, { - "teal": 1410, + "teal": 1408, "source": "examples/reti/stakingPool.algo.ts:373", "pc": [ - 1268 + 1267 ] }, { - "teal": 1411, + "teal": 1409, "source": "examples/reti/stakingPool.algo.ts:373", "pc": [ - 1269, - 1270 + 1268, + 1269 ] }, { "teal": 1412, - "source": "examples/reti/stakingPool.algo.ts:373", + "source": "examples/reti/stakingPool.algo.ts:366", "pc": [ - 1271 + 1270 ] }, { "teal": 1413, - "source": "examples/reti/stakingPool.algo.ts:373", + "source": "examples/reti/stakingPool.algo.ts:366", "pc": [ - 1272, - 1273 + 1271, + 1272 ] }, { "teal": 1416, "source": "examples/reti/stakingPool.algo.ts:366", + "pc": [ + 1273 + ] + }, + { + "teal": 1420, + "source": "examples/reti/stakingPool.algo.ts:376", "pc": [ 1274 ] }, { - "teal": 1417, - "source": "examples/reti/stakingPool.algo.ts:366", + "teal": 1427, + "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ 1275, 1276 ] }, { - "teal": 1420, - "source": "examples/reti/stakingPool.algo.ts:366", + "teal": 1428, + "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ 1277 ] }, { - "teal": 1424, - "source": "examples/reti/stakingPool.algo.ts:376", + "teal": 1429, + "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ 1278 ] }, { - "teal": 1431, + "teal": 1430, "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ 1279, @@ -5905,69 +5911,63 @@ ] }, { - "teal": 1432, - "source": "examples/reti/stakingPool.algo.ts:289", - "pc": [ - 1281 - ] - }, - { - "teal": 1433, + "teal": 1431, "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ - 1282 + 1281, + 1282, + 1283 ] }, { - "teal": 1434, - "source": "examples/reti/stakingPool.algo.ts:289", + "teal": 1435, + "source": "examples/reti/stakingPool.algo.ts:379", + "errorMessage": "account not found", "pc": [ - 1283, 1284 ] }, { - "teal": 1435, - "source": "examples/reti/stakingPool.algo.ts:289", + "teal": 1436, + "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ - 1285, - 1286, - 1287 + 1285 ] }, { - "teal": 1439, - "source": "examples/reti/stakingPool.algo.ts:379", - "errorMessage": "account not found", + "teal": 1441, + "source": "examples/reti/stakingPool.algo.ts:387", "pc": [ + 1286, + 1287, 1288 ] }, { - "teal": 1440, - "source": "examples/reti/stakingPool.algo.ts:277", + "teal": 1442, + "source": "examples/reti/stakingPool.algo.ts:387", "pc": [ 1289 ] }, { - "teal": 1445, + "teal": 1443, "source": "examples/reti/stakingPool.algo.ts:387", "pc": [ - 1290, - 1291, - 1292 + 1290 ] }, { - "teal": 1446, + "teal": 1451, "source": "examples/reti/stakingPool.algo.ts:387", "pc": [ + 1291, + 1292, 1293 ] }, { - "teal": 1447, + "teal": 1454, "source": "examples/reti/stakingPool.algo.ts:387", "pc": [ 1294 @@ -5978,50 +5978,50 @@ "source": "examples/reti/stakingPool.algo.ts:387", "pc": [ 1295, - 1296, - 1297 + 1296 ] }, { - "teal": 1458, - "source": "examples/reti/stakingPool.algo.ts:387", + "teal": 1459, + "source": "examples/reti/stakingPool.algo.ts:391", "pc": [ + 1297, 1298 ] }, { - "teal": 1459, - "source": "examples/reti/stakingPool.algo.ts:387", + "teal": 1460, + "source": "examples/reti/stakingPool.algo.ts:391", "pc": [ 1299, 1300 ] }, { - "teal": 1463, - "source": "examples/reti/stakingPool.algo.ts:391", + "teal": 1464, + "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ - 1301, - 1302 + 1301 ] }, { - "teal": 1464, - "source": "examples/reti/stakingPool.algo.ts:391", + "teal": 1465, + "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ - 1303, - 1304 + 1302, + 1303 ] }, { - "teal": 1468, + "teal": 1470, "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ + 1304, 1305 ] }, { - "teal": 1469, + "teal": 1471, "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ 1306, @@ -6029,123 +6029,123 @@ ] }, { - "teal": 1474, + "teal": 1472, "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ - 1308, - 1309 + 1308 ] }, { - "teal": 1475, + "teal": 1473, "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ + 1309, 1310, 1311 ] }, { - "teal": 1476, - "source": "examples/reti/stakingPool.algo.ts:393", + "teal": 1478, + "source": "examples/reti/stakingPool.algo.ts:394", "pc": [ - 1312 + 1312, + 1313 ] }, { - "teal": 1477, - "source": "examples/reti/stakingPool.algo.ts:393", + "teal": 1479, + "source": "examples/reti/stakingPool.algo.ts:394", "pc": [ - 1313, 1314, 1315 ] }, { - "teal": 1482, + "teal": 1480, "source": "examples/reti/stakingPool.algo.ts:394", "pc": [ - 1316, - 1317 + 1316 ] }, { - "teal": 1483, + "teal": 1481, "source": "examples/reti/stakingPool.algo.ts:394", "pc": [ + 1317, 1318, 1319 ] }, { - "teal": 1484, - "source": "examples/reti/stakingPool.algo.ts:394", + "teal": 1486, + "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ 1320 ] }, { - "teal": 1485, - "source": "examples/reti/stakingPool.algo.ts:394", + "teal": 1487, + "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1321, - 1322, - 1323 + 1321 ] }, { - "teal": 1490, + "teal": 1488, "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1324 + 1322, + 1323 ] }, { - "teal": 1491, + "teal": 1489, "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1325 + 1324 ] }, { - "teal": 1492, + "teal": 1490, "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1326, - 1327 + 1325, + 1326 ] }, { - "teal": 1493, + "teal": 1491, "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ + 1327, 1328 ] }, { - "teal": 1494, + "teal": 1492, "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1329, - 1330 + 1329 ] }, { - "teal": 1495, + "teal": 1493, "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1331, - 1332 + 1330, + 1331 ] }, { - "teal": 1496, + "teal": 1494, "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ + 1332, 1333 ] }, { - "teal": 1497, + "teal": 1495, "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ 1334, @@ -6153,7 +6153,7 @@ ] }, { - "teal": 1498, + "teal": 1496, "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ 1336, @@ -6161,251 +6161,251 @@ ] }, { - "teal": 1499, + "teal": 1497, "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1338, - 1339 + 1338 ] }, { - "teal": 1500, - "source": "examples/reti/stakingPool.algo.ts:395", + "teal": 1502, + "source": "examples/reti/stakingPool.algo.ts:397", "pc": [ - 1340, - 1341 + 1339, + 1340 ] }, { - "teal": 1501, - "source": "examples/reti/stakingPool.algo.ts:395", + "teal": 1503, + "source": "examples/reti/stakingPool.algo.ts:397", "pc": [ - 1342 + 1341 ] }, { - "teal": 1506, + "teal": 1504, "source": "examples/reti/stakingPool.algo.ts:397", "pc": [ - 1343, - 1344 + 1342 ] }, { - "teal": 1507, + "teal": 1505, "source": "examples/reti/stakingPool.algo.ts:397", "pc": [ - 1345 + 1343 ] }, { - "teal": 1508, + "teal": 1506, "source": "examples/reti/stakingPool.algo.ts:397", "pc": [ - 1346 + 1344 ] }, { - "teal": 1509, + "teal": 1507, "source": "examples/reti/stakingPool.algo.ts:397", "pc": [ - 1347 + 1345, + 1346 ] }, { - "teal": 1510, + "teal": 1508, "source": "examples/reti/stakingPool.algo.ts:397", "pc": [ - 1348 + 1347 ] }, { - "teal": 1511, + "teal": 1509, "source": "examples/reti/stakingPool.algo.ts:397", "pc": [ - 1349, - 1350 + 1348, + 1349 ] }, { - "teal": 1512, - "source": "examples/reti/stakingPool.algo.ts:397", + "teal": 1514, + "source": "examples/reti/stakingPool.algo.ts:398", "pc": [ + 1350, 1351 ] }, { - "teal": 1513, - "source": "examples/reti/stakingPool.algo.ts:397", + "teal": 1515, + "source": "examples/reti/stakingPool.algo.ts:398", "pc": [ 1352, - 1353 + 1353, + 1354 ] }, { - "teal": 1518, + "teal": 1516, "source": "examples/reti/stakingPool.algo.ts:398", "pc": [ - 1354, - 1355 + 1355, + 1356 ] }, { - "teal": 1519, + "teal": 1517, "source": "examples/reti/stakingPool.algo.ts:398", "pc": [ - 1356, - 1357, - 1358 + 1357 ] }, { - "teal": 1520, + "teal": 1518, "source": "examples/reti/stakingPool.algo.ts:398", "pc": [ + 1358, 1359, 1360 ] }, { - "teal": 1521, - "source": "examples/reti/stakingPool.algo.ts:398", + "teal": 1524, + "source": "examples/reti/stakingPool.algo.ts:399", "pc": [ - 1361 + 1361, + 1362 ] }, { - "teal": 1522, - "source": "examples/reti/stakingPool.algo.ts:398", + "teal": 1525, + "source": "examples/reti/stakingPool.algo.ts:399", "pc": [ - 1362, 1363, - 1364 + 1364, + 1365 ] }, { - "teal": 1528, + "teal": 1526, "source": "examples/reti/stakingPool.algo.ts:399", "pc": [ - 1365, 1366 ] }, { - "teal": 1529, + "teal": 1527, "source": "examples/reti/stakingPool.algo.ts:399", "pc": [ - 1367, - 1368, - 1369 + 1367 ] }, { - "teal": 1530, + "teal": 1528, "source": "examples/reti/stakingPool.algo.ts:399", "pc": [ - 1370 + 1368 ] }, { - "teal": 1531, + "teal": 1529, "source": "examples/reti/stakingPool.algo.ts:399", "pc": [ + 1369, + 1370, 1371 ] }, { - "teal": 1532, - "source": "examples/reti/stakingPool.algo.ts:399", + "teal": 1534, + "source": "examples/reti/stakingPool.algo.ts:400", "pc": [ 1372 ] }, { - "teal": 1533, - "source": "examples/reti/stakingPool.algo.ts:399", + "teal": 1539, + "source": "examples/reti/stakingPool.algo.ts:402", "pc": [ - 1373, - 1374, - 1375 + 1373 ] }, { - "teal": 1538, - "source": "examples/reti/stakingPool.algo.ts:400", + "teal": 1540, + "source": "examples/reti/stakingPool.algo.ts:402", "pc": [ - 1376 + 1374, + 1375 ] }, { - "teal": 1543, - "source": "examples/reti/stakingPool.algo.ts:402", + "teal": 1545, + "source": "examples/reti/stakingPool.algo.ts:404", "pc": [ + 1376, 1377 ] }, { - "teal": 1544, - "source": "examples/reti/stakingPool.algo.ts:402", + "teal": 1546, + "source": "examples/reti/stakingPool.algo.ts:404", "pc": [ - 1378, - 1379 + 1378 ] }, { - "teal": 1549, + "teal": 1547, "source": "examples/reti/stakingPool.algo.ts:404", "pc": [ - 1380, - 1381 + 1379 ] }, { - "teal": 1550, + "teal": 1548, "source": "examples/reti/stakingPool.algo.ts:404", "pc": [ - 1382 + 1380 ] }, { - "teal": 1551, + "teal": 1549, "source": "examples/reti/stakingPool.algo.ts:404", "pc": [ + 1381, + 1382, 1383 ] }, { - "teal": 1552, - "source": "examples/reti/stakingPool.algo.ts:404", + "teal": 1557, + "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ 1384 ] }, { - "teal": 1553, - "source": "examples/reti/stakingPool.algo.ts:404", + "teal": 1558, + "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1385, - 1386, - 1387 + 1385 ] }, { - "teal": 1561, + "teal": 1559, "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1388 + 1386, + 1387 ] }, { - "teal": 1562, + "teal": 1560, "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ + 1388, 1389 ] }, { - "teal": 1563, + "teal": 1561, "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ 1390, @@ -6413,96 +6413,102 @@ ] }, { - "teal": 1564, - "source": "examples/reti/stakingPool.algo.ts:405", + "teal": 1565, + "source": "examples/reti/stakingPool.algo.ts:406", + "pc": [ + 1392 + ] + }, + { + "teal": 1566, + "source": "examples/reti/stakingPool.algo.ts:406", "pc": [ - 1392, 1393 ] }, { - "teal": 1565, - "source": "examples/reti/stakingPool.algo.ts:405", + "teal": 1567, + "source": "examples/reti/stakingPool.algo.ts:406", "pc": [ 1394, 1395 ] }, { - "teal": 1569, - "source": "examples/reti/stakingPool.algo.ts:406", + "teal": 1571, + "source": "examples/reti/stakingPool.algo.ts:407", "pc": [ 1396 ] }, { - "teal": 1570, - "source": "examples/reti/stakingPool.algo.ts:406", + "teal": 1572, + "source": "examples/reti/stakingPool.algo.ts:407", "pc": [ 1397 ] }, { - "teal": 1571, - "source": "examples/reti/stakingPool.algo.ts:406", + "teal": 1573, + "source": "examples/reti/stakingPool.algo.ts:407", "pc": [ - 1398, - 1399 + 1398 ] }, { - "teal": 1575, + "teal": 1574, "source": "examples/reti/stakingPool.algo.ts:407", "pc": [ + 1399, 1400 ] }, { - "teal": 1576, - "source": "examples/reti/stakingPool.algo.ts:407", + "teal": 1577, + "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ 1401 ] }, { - "teal": 1577, - "source": "examples/reti/stakingPool.algo.ts:407", + "teal": 1578, + "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1402 + 1402, + 1403 ] }, { - "teal": 1578, - "source": "examples/reti/stakingPool.algo.ts:407", + "teal": 1581, + "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1403, 1404 ] }, { - "teal": 1581, + "teal": 1582, "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1405 + 1405, + 1406 ] }, { - "teal": 1582, + "teal": 1583, "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1406, 1407 ] }, { - "teal": 1585, + "teal": 1584, "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ 1408 ] }, { - "teal": 1586, + "teal": 1585, "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ 1409, @@ -6510,203 +6516,197 @@ ] }, { - "teal": 1587, - "source": "examples/reti/stakingPool.algo.ts:405", - "pc": [ - 1411 - ] - }, - { - "teal": 1588, + "teal": 1586, "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1412 + 1411, + 1412, + 1413 ] }, { - "teal": 1589, + "teal": 1587, "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1413, - 1414 + 1414, + 1415 ] }, { - "teal": 1590, - "source": "examples/reti/stakingPool.algo.ts:405", + "teal": 1595, + "source": "examples/reti/stakingPool.algo.ts:412", "pc": [ - 1415, - 1416, - 1417 + 1416 ] }, { - "teal": 1591, - "source": "examples/reti/stakingPool.algo.ts:405", + "teal": 1596, + "source": "examples/reti/stakingPool.algo.ts:412", "pc": [ - 1418, - 1419 + 1417, + 1418 ] }, { - "teal": 1599, + "teal": 1597, "source": "examples/reti/stakingPool.algo.ts:412", "pc": [ + 1419, 1420 ] }, { - "teal": 1600, - "source": "examples/reti/stakingPool.algo.ts:412", + "teal": 1601, + "source": "examples/reti/stakingPool.algo.ts:413", "pc": [ 1421, 1422 ] }, { - "teal": 1601, - "source": "examples/reti/stakingPool.algo.ts:412", + "teal": 1602, + "source": "examples/reti/stakingPool.algo.ts:413", "pc": [ 1423, - 1424 + 1424, + 1425 ] }, { - "teal": 1605, + "teal": 1603, "source": "examples/reti/stakingPool.algo.ts:413", "pc": [ - 1425, 1426 ] }, { - "teal": 1606, + "teal": 1604, "source": "examples/reti/stakingPool.algo.ts:413", "pc": [ 1427, - 1428, - 1429 + 1428 ] }, { - "teal": 1607, - "source": "examples/reti/stakingPool.algo.ts:413", + "teal": 1608, + "source": "examples/reti/stakingPool.algo.ts:414", "pc": [ + 1429, 1430 ] }, { - "teal": 1608, - "source": "examples/reti/stakingPool.algo.ts:413", + "teal": 1609, + "source": "examples/reti/stakingPool.algo.ts:414", "pc": [ 1431, 1432 ] }, { - "teal": 1612, - "source": "examples/reti/stakingPool.algo.ts:414", + "teal": 1613, + "source": "examples/reti/stakingPool.algo.ts:415", "pc": [ 1433, 1434 ] }, { - "teal": 1613, - "source": "examples/reti/stakingPool.algo.ts:414", + "teal": 1614, + "source": "examples/reti/stakingPool.algo.ts:415", "pc": [ 1435, - 1436 + 1436, + 1437 ] }, { - "teal": 1617, + "teal": 1615, "source": "examples/reti/stakingPool.algo.ts:415", "pc": [ - 1437, 1438 ] }, { - "teal": 1618, + "teal": 1616, "source": "examples/reti/stakingPool.algo.ts:415", "pc": [ 1439, - 1440, - 1441 + 1440 ] }, { "teal": 1619, - "source": "examples/reti/stakingPool.algo.ts:415", + "source": "examples/reti/stakingPool.algo.ts:412", "pc": [ - 1442 + 1441 ] }, { "teal": 1620, - "source": "examples/reti/stakingPool.algo.ts:415", + "source": "examples/reti/stakingPool.algo.ts:412", "pc": [ - 1443, - 1444 + 1442, + 1443 ] }, { "teal": 1623, "source": "examples/reti/stakingPool.algo.ts:412", "pc": [ - 1445 + 1444 ] }, { - "teal": 1624, - "source": "examples/reti/stakingPool.algo.ts:412", + "teal": 1627, + "source": "examples/reti/stakingPool.algo.ts:417", "pc": [ - 1446, - 1447 + 1445, + 1446 ] }, { - "teal": 1627, - "source": "examples/reti/stakingPool.algo.ts:412", + "teal": 1628, + "source": "examples/reti/stakingPool.algo.ts:417", "pc": [ - 1448 + 1447, + 1448, + 1449 ] }, { - "teal": 1631, + "teal": 1629, "source": "examples/reti/stakingPool.algo.ts:417", "pc": [ - 1449, 1450 ] }, { - "teal": 1632, + "teal": 1630, "source": "examples/reti/stakingPool.algo.ts:417", "pc": [ 1451, - 1452, - 1453 + 1452 ] }, { - "teal": 1633, - "source": "examples/reti/stakingPool.algo.ts:417", + "teal": 1634, + "source": "examples/reti/stakingPool.algo.ts:418", "pc": [ + 1453, 1454 ] }, { - "teal": 1634, - "source": "examples/reti/stakingPool.algo.ts:417", + "teal": 1635, + "source": "examples/reti/stakingPool.algo.ts:418", "pc": [ 1455, 1456 ] }, { - "teal": 1638, + "teal": 1636, "source": "examples/reti/stakingPool.algo.ts:418", "pc": [ 1457, @@ -6714,7 +6714,7 @@ ] }, { - "teal": 1639, + "teal": 1637, "source": "examples/reti/stakingPool.algo.ts:418", "pc": [ 1459, @@ -6722,64 +6722,64 @@ ] }, { - "teal": 1640, - "source": "examples/reti/stakingPool.algo.ts:418", + "teal": 1638, + "source": "examples/reti/stakingPool.algo.ts:404", "pc": [ 1461, - 1462 + 1462, + 1463 ] }, { - "teal": 1641, - "source": "examples/reti/stakingPool.algo.ts:418", + "teal": 1643, + "source": "examples/reti/stakingPool.algo.ts:423", "pc": [ - 1463, - 1464 + 1464, + 1465 ] }, { - "teal": 1642, - "source": "examples/reti/stakingPool.algo.ts:404", + "teal": 1644, + "source": "examples/reti/stakingPool.algo.ts:423", "pc": [ - 1465, 1466, - 1467 + 1467, + 1468 ] }, { - "teal": 1647, + "teal": 1645, "source": "examples/reti/stakingPool.algo.ts:423", "pc": [ - 1468, 1469 ] }, { - "teal": 1648, + "teal": 1646, "source": "examples/reti/stakingPool.algo.ts:423", "pc": [ 1470, - 1471, - 1472 + 1471 ] }, { - "teal": 1649, - "source": "examples/reti/stakingPool.algo.ts:423", + "teal": 1650, + "source": "examples/reti/stakingPool.algo.ts:424", "pc": [ + 1472, 1473 ] }, { - "teal": 1650, - "source": "examples/reti/stakingPool.algo.ts:423", + "teal": 1651, + "source": "examples/reti/stakingPool.algo.ts:424", "pc": [ 1474, 1475 ] }, { - "teal": 1654, + "teal": 1652, "source": "examples/reti/stakingPool.algo.ts:424", "pc": [ 1476, @@ -6787,7 +6787,7 @@ ] }, { - "teal": 1655, + "teal": 1653, "source": "examples/reti/stakingPool.algo.ts:424", "pc": [ 1478, @@ -6795,23 +6795,29 @@ ] }, { - "teal": 1656, - "source": "examples/reti/stakingPool.algo.ts:424", + "teal": 1658, + "source": "examples/reti/stakingPool.algo.ts:428", "pc": [ 1480, 1481 ] }, { - "teal": 1657, - "source": "examples/reti/stakingPool.algo.ts:424", + "teal": 1659, + "source": "examples/reti/stakingPool.algo.ts:428", + "pc": [ + 1482 + ] + }, + { + "teal": 1660, + "source": "examples/reti/stakingPool.algo.ts:428", "pc": [ - 1482, 1483 ] }, { - "teal": 1662, + "teal": 1661, "source": "examples/reti/stakingPool.algo.ts:428", "pc": [ 1484, @@ -6819,321 +6825,321 @@ ] }, { - "teal": 1663, + "teal": 1662, "source": "examples/reti/stakingPool.algo.ts:428", "pc": [ 1486 ] }, { - "teal": 1664, + "teal": 1663, "source": "examples/reti/stakingPool.algo.ts:428", "pc": [ - 1487 + 1487, + 1488 ] }, { - "teal": 1665, + "teal": 1664, "source": "examples/reti/stakingPool.algo.ts:428", "pc": [ - 1488, 1489 ] }, { - "teal": 1666, - "source": "examples/reti/stakingPool.algo.ts:428", + "teal": 1677, + "source": "examples/reti/stakingPool.algo.ts:433", "pc": [ 1490 ] }, { - "teal": 1667, - "source": "examples/reti/stakingPool.algo.ts:428", + "teal": 1678, + "source": "examples/reti/stakingPool.algo.ts:433", "pc": [ - 1491, - 1492 + 1491 ] }, { - "teal": 1668, - "source": "examples/reti/stakingPool.algo.ts:428", + "teal": 1679, + "source": "examples/reti/stakingPool.algo.ts:433", "pc": [ + 1492, 1493 ] }, { - "teal": 1681, + "teal": 1680, "source": "examples/reti/stakingPool.algo.ts:433", "pc": [ - 1494 + 1494, + 1495 ] }, { - "teal": 1682, + "teal": 1681, "source": "examples/reti/stakingPool.algo.ts:433", "pc": [ - 1495 + 1496, + 1497 ] }, { - "teal": 1683, - "source": "examples/reti/stakingPool.algo.ts:433", + "teal": 1685, + "source": "examples/reti/stakingPool.algo.ts:434", "pc": [ - 1496, - 1497 + 1498 ] }, { - "teal": 1684, - "source": "examples/reti/stakingPool.algo.ts:433", + "teal": 1686, + "source": "examples/reti/stakingPool.algo.ts:434", "pc": [ - 1498, 1499 ] }, { - "teal": 1685, - "source": "examples/reti/stakingPool.algo.ts:433", + "teal": 1687, + "source": "examples/reti/stakingPool.algo.ts:434", "pc": [ 1500, 1501 ] }, { - "teal": 1689, - "source": "examples/reti/stakingPool.algo.ts:434", + "teal": 1697, + "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ 1502 ] }, { - "teal": 1690, - "source": "examples/reti/stakingPool.algo.ts:434", + "teal": 1698, + "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ 1503 ] }, { - "teal": 1691, - "source": "examples/reti/stakingPool.algo.ts:434", + "teal": 1699, + "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ - 1504, - 1505 + 1504 ] }, { - "teal": 1701, + "teal": 1700, "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ + 1505, 1506 ] }, { - "teal": 1702, + "teal": 1701, "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ 1507 ] }, { - "teal": 1703, + "teal": 1702, "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ 1508 ] }, + { + "teal": 1703, + "source": "examples/reti/stakingPool.algo.ts:436", + "pc": [ + 1509 + ] + }, { "teal": 1704, "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ - 1509, - 1510 + 1510, + 1511, + 1512 ] }, { "teal": 1705, "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ - 1511 + 1513 ] }, { "teal": 1706, "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ - 1512 + 1514 ] }, { "teal": 1707, "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ - 1513 + 1515, + 1516 ] }, { "teal": 1708, - "source": "examples/reti/stakingPool.algo.ts:436", + "source": "examples/reti/stakingPool.algo.ts:437", "pc": [ - 1514, - 1515, - 1516 + 1517, + 1518 ] }, { "teal": 1709, - "source": "examples/reti/stakingPool.algo.ts:436", + "source": "examples/reti/stakingPool.algo.ts:437", "pc": [ - 1517 + 1519, + 1520 ] }, { "teal": 1710, - "source": "examples/reti/stakingPool.algo.ts:436", + "source": "examples/reti/stakingPool.algo.ts:438", "pc": [ - 1518 + 1521, + 1522 ] }, { "teal": 1711, - "source": "examples/reti/stakingPool.algo.ts:436", + "source": "examples/reti/stakingPool.algo.ts:438", "pc": [ - 1519, - 1520 + 1523, + 1524 ] }, { "teal": 1712, - "source": "examples/reti/stakingPool.algo.ts:437", + "source": "examples/reti/stakingPool.algo.ts:439", "pc": [ - 1521, - 1522 + 1525, + 1526 ] }, { "teal": 1713, - "source": "examples/reti/stakingPool.algo.ts:437", + "source": "examples/reti/stakingPool.algo.ts:439", "pc": [ - 1523, - 1524 + 1527 ] }, { "teal": 1714, - "source": "examples/reti/stakingPool.algo.ts:438", + "source": "examples/reti/stakingPool.algo.ts:439", "pc": [ - 1525, - 1526 + 1528, + 1529 ] }, { "teal": 1715, - "source": "examples/reti/stakingPool.algo.ts:438", + "source": "examples/reti/stakingPool.algo.ts:440", "pc": [ - 1527, - 1528 + 1530 ] }, { "teal": 1716, - "source": "examples/reti/stakingPool.algo.ts:439", + "source": "examples/reti/stakingPool.algo.ts:440", "pc": [ - 1529, - 1530 + 1531, + 1532 ] }, { "teal": 1717, - "source": "examples/reti/stakingPool.algo.ts:439", - "pc": [ - 1531 - ] - }, - { - "teal": 1718, - "source": "examples/reti/stakingPool.algo.ts:439", + "source": "examples/reti/stakingPool.algo.ts:440", "pc": [ - 1532, 1533 ] }, { - "teal": 1719, + "teal": 1718, "source": "examples/reti/stakingPool.algo.ts:440", "pc": [ - 1534 + 1534, + 1535 ] }, { - "teal": 1720, + "teal": 1719, "source": "examples/reti/stakingPool.algo.ts:440", "pc": [ - 1535, 1536 ] }, { - "teal": 1721, + "teal": 1720, "source": "examples/reti/stakingPool.algo.ts:440", "pc": [ - 1537 + 1537, + 1538 ] }, { - "teal": 1722, - "source": "examples/reti/stakingPool.algo.ts:440", + "teal": 1723, + "source": "examples/reti/stakingPool.algo.ts:433", "pc": [ - 1538, 1539 ] }, { - "teal": 1723, - "source": "examples/reti/stakingPool.algo.ts:440", + "teal": 1724, + "source": "examples/reti/stakingPool.algo.ts:433", "pc": [ - 1540 + 1540, + 1541 ] }, { - "teal": 1724, - "source": "examples/reti/stakingPool.algo.ts:440", + "teal": 1727, + "source": "examples/reti/stakingPool.algo.ts:433", "pc": [ - 1541, 1542 ] }, { - "teal": 1727, - "source": "examples/reti/stakingPool.algo.ts:433", + "teal": 1731, + "source": "examples/reti/stakingPool.algo.ts:443", "pc": [ 1543 ] }, { - "teal": 1728, - "source": "examples/reti/stakingPool.algo.ts:433", + "teal": 1738, + "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ 1544, 1545 ] }, { - "teal": 1731, - "source": "examples/reti/stakingPool.algo.ts:433", + "teal": 1739, + "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ 1546 ] }, { - "teal": 1735, - "source": "examples/reti/stakingPool.algo.ts:443", + "teal": 1740, + "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ 1547 ] }, { - "teal": 1742, + "teal": 1741, "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ 1548, @@ -7141,167 +7147,161 @@ ] }, { - "teal": 1743, + "teal": 1742, "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ - 1550 + 1550, + 1551, + 1552 ] }, { - "teal": 1744, - "source": "examples/reti/stakingPool.algo.ts:393", + "teal": 1746, + "source": "examples/reti/stakingPool.algo.ts:446", + "errorMessage": "account not found", "pc": [ - 1551 + 1553 ] }, { - "teal": 1745, - "source": "examples/reti/stakingPool.algo.ts:393", + "teal": 1747, + "source": "examples/reti/stakingPool.algo.ts:387", "pc": [ - 1552, - 1553 + 1554 ] }, { - "teal": 1746, - "source": "examples/reti/stakingPool.algo.ts:393", + "teal": 1752, + "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1554, 1555, 1556 ] }, { - "teal": 1750, - "source": "examples/reti/stakingPool.algo.ts:446", - "errorMessage": "account not found", + "teal": 1755, + "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1557 + 1557, + 1558, + 1559 ] }, { - "teal": 1751, - "source": "examples/reti/stakingPool.algo.ts:387", + "teal": 1756, + "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1558 + 1560 ] }, { - "teal": 1756, + "teal": 1757, "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1559, - 1560 + 1561 ] }, { - "teal": 1759, + "teal": 1758, "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1561, 1562, 1563 ] }, { - "teal": 1760, + "teal": 1759, "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ 1564 ] }, { - "teal": 1761, + "teal": 1762, "source": "examples/reti/stakingPool.algo.ts:457", + "errorMessage": "argument 0 (staker) for getStakerInfo must be a address", "pc": [ 1565 ] }, { - "teal": 1762, + "teal": 1765, "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ 1566, - 1567 - ] - }, - { - "teal": 1763, - "source": "examples/reti/stakingPool.algo.ts:457", - "pc": [ + 1567, 1568 ] }, { "teal": 1766, "source": "examples/reti/stakingPool.algo.ts:457", - "errorMessage": "argument 0 (staker) for getStakerInfo must be a address", "pc": [ 1569 ] }, { - "teal": 1769, + "teal": 1767, "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1570, - 1571, - 1572 + 1570 ] }, { - "teal": 1770, + "teal": 1768, "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1573 + 1571 ] }, { - "teal": 1771, + "teal": 1769, "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1574 + 1572 ] }, { - "teal": 1772, + "teal": 1779, "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ + 1573, + 1574, 1575 ] }, { - "teal": 1773, + "teal": 1782, "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ 1576 ] }, { - "teal": 1783, - "source": "examples/reti/stakingPool.algo.ts:457", + "teal": 1786, + "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1577, - 1578, - 1579 + 1577 ] }, { - "teal": 1786, - "source": "examples/reti/stakingPool.algo.ts:457", + "teal": 1787, + "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1580 + 1578, + 1579 ] }, { - "teal": 1790, + "teal": 1792, "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ + 1580, 1581 ] }, { - "teal": 1791, + "teal": 1793, "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ 1582, @@ -7309,123 +7309,123 @@ ] }, { - "teal": 1796, + "teal": 1794, "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1584, - 1585 + 1584 ] }, { - "teal": 1797, + "teal": 1795, "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ + 1585, 1586, 1587 ] }, { - "teal": 1798, - "source": "examples/reti/stakingPool.algo.ts:458", + "teal": 1800, + "source": "examples/reti/stakingPool.algo.ts:459", "pc": [ - 1588 + 1588, + 1589 ] }, { - "teal": 1799, - "source": "examples/reti/stakingPool.algo.ts:458", + "teal": 1801, + "source": "examples/reti/stakingPool.algo.ts:459", "pc": [ - 1589, 1590, 1591 ] }, { - "teal": 1804, + "teal": 1802, "source": "examples/reti/stakingPool.algo.ts:459", "pc": [ - 1592, - 1593 + 1592 ] }, { - "teal": 1805, + "teal": 1803, "source": "examples/reti/stakingPool.algo.ts:459", "pc": [ + 1593, 1594, 1595 ] }, { - "teal": 1806, - "source": "examples/reti/stakingPool.algo.ts:459", + "teal": 1808, + "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ 1596 ] }, { - "teal": 1807, - "source": "examples/reti/stakingPool.algo.ts:459", + "teal": 1809, + "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1597, - 1598, - 1599 + 1597 ] }, { - "teal": 1812, + "teal": 1810, "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1600 + 1598, + 1599 ] }, { - "teal": 1813, + "teal": 1811, "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1601 + 1600 ] }, { - "teal": 1814, + "teal": 1812, "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1602, - 1603 + 1601, + 1602 ] }, { - "teal": 1815, + "teal": 1813, "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ + 1603, 1604 ] }, { - "teal": 1816, + "teal": 1814, "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1605, - 1606 + 1605 ] }, { - "teal": 1817, + "teal": 1815, "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1607, - 1608 + 1606, + 1607 ] }, { - "teal": 1818, + "teal": 1816, "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ + 1608, 1609 ] }, { - "teal": 1819, + "teal": 1817, "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ 1610, @@ -7433,7 +7433,7 @@ ] }, { - "teal": 1820, + "teal": 1818, "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ 1612, @@ -7441,33 +7441,45 @@ ] }, { - "teal": 1821, + "teal": 1819, "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1614, - 1615 + 1614 ] }, { - "teal": 1822, - "source": "examples/reti/stakingPool.algo.ts:460", + "teal": 1825, + "source": "examples/reti/stakingPool.algo.ts:462", + "pc": [ + 1615, + 1616 + ] + }, + { + "teal": 1826, + "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1616, 1617 ] }, { - "teal": 1823, - "source": "examples/reti/stakingPool.algo.ts:460", + "teal": 1827, + "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ 1618 ] }, + { + "teal": 1828, + "source": "examples/reti/stakingPool.algo.ts:462", + "pc": [ + 1619 + ] + }, { "teal": 1829, "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1619, 1620 ] }, @@ -7475,89 +7487,89 @@ "teal": 1830, "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1621 + 1621, + 1622 ] }, { "teal": 1831, "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1622 + 1623 ] }, { "teal": 1832, "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1623 + 1624, + 1625 ] }, { "teal": 1833, "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1624 + 1626 ] }, { "teal": 1834, "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1625, - 1626 + 1627, + 1628 ] }, { "teal": 1835, "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1627 + 1629 ] }, { "teal": 1836, "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1628, - 1629 + 1630, + 1631, + 1632 ] }, { - "teal": 1837, - "source": "examples/reti/stakingPool.algo.ts:462", + "teal": 1841, + "source": "examples/reti/stakingPool.algo.ts:463", "pc": [ - 1630 + 1633, + 1634 ] }, { - "teal": 1838, - "source": "examples/reti/stakingPool.algo.ts:462", + "teal": 1842, + "source": "examples/reti/stakingPool.algo.ts:463", "pc": [ - 1631, - 1632 + 1635 ] }, { - "teal": 1839, - "source": "examples/reti/stakingPool.algo.ts:462", + "teal": 1843, + "source": "examples/reti/stakingPool.algo.ts:463", "pc": [ - 1633 + 1636 ] }, { - "teal": 1840, - "source": "examples/reti/stakingPool.algo.ts:462", + "teal": 1844, + "source": "examples/reti/stakingPool.algo.ts:463", "pc": [ - 1634, - 1635, - 1636 + 1637 ] }, { "teal": 1845, "source": "examples/reti/stakingPool.algo.ts:463", "pc": [ - 1637, 1638 ] }, @@ -7565,112 +7577,100 @@ "teal": 1846, "source": "examples/reti/stakingPool.algo.ts:463", "pc": [ - 1639 - ] - }, - { - "teal": 1847, - "source": "examples/reti/stakingPool.algo.ts:463", - "pc": [ + 1639, 1640 ] }, { - "teal": 1848, + "teal": 1847, "source": "examples/reti/stakingPool.algo.ts:463", "pc": [ 1641 ] }, { - "teal": 1849, - "source": "examples/reti/stakingPool.algo.ts:463", - "pc": [ - 1642 - ] - }, - { - "teal": 1850, + "teal": 1848, "source": "examples/reti/stakingPool.algo.ts:463", "pc": [ + 1642, 1643, 1644 ] }, { - "teal": 1851, - "source": "examples/reti/stakingPool.algo.ts:463", + "teal": 1855, + "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1645 + 1645, + 1646 ] }, { - "teal": 1852, - "source": "examples/reti/stakingPool.algo.ts:463", + "teal": 1856, + "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1646, - 1647, - 1648 + 1647 ] }, { - "teal": 1859, + "teal": 1857, "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1649, - 1650 + 1648 ] }, { - "teal": 1860, + "teal": 1858, "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1651 + 1649, + 1650 ] }, { - "teal": 1861, + "teal": 1859, "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1652 + 1651, + 1652, + 1653 ] }, { - "teal": 1862, - "source": "examples/reti/stakingPool.algo.ts:458", + "teal": 1863, + "source": "examples/reti/stakingPool.algo.ts:466", + "errorMessage": "account not found", "pc": [ - 1653, 1654 ] }, { - "teal": 1863, - "source": "examples/reti/stakingPool.algo.ts:458", + "teal": 1867, + "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ 1655, - 1656, - 1657 + 1656 ] }, { - "teal": 1867, - "source": "examples/reti/stakingPool.algo.ts:466", - "errorMessage": "account not found", + "teal": 1868, + "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1658 + 1657 ] }, { - "teal": 1871, - "source": "examples/reti/stakingPool.algo.ts:457", + "teal": 1873, + "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ + 1658, 1659, 1660 ] }, { - "teal": 1872, - "source": "examples/reti/stakingPool.algo.ts:457", + "teal": 1874, + "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ 1661 ] @@ -7708,85 +7708,91 @@ ] }, { - "teal": 1885, + "teal": 1883, "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ - 1670, - 1671, - 1672 + 1670 ] }, { - "teal": 1886, + "teal": 1884, "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ - 1673 + 1671, + 1672 ] }, { - "teal": 1887, + "teal": 1885, "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ - 1674 + 1673 ] }, { "teal": 1888, "source": "examples/reti/stakingPool.algo.ts:479", + "errorMessage": "argument 2 (staker) for payTokenReward must be a address", "pc": [ - 1675, - 1676 + 1674 ] }, { - "teal": 1889, + "teal": 1891, "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ + 1675, + 1676, 1677 ] }, { "teal": 1892, "source": "examples/reti/stakingPool.algo.ts:479", - "errorMessage": "argument 2 (staker) for payTokenReward must be a address", "pc": [ 1678 ] }, { - "teal": 1895, + "teal": 1893, "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ - 1679, - 1680, - 1681 + 1679 ] }, { - "teal": 1896, + "teal": 1906, "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ + 1680, + 1681, 1682 ] }, { - "teal": 1897, - "source": "examples/reti/stakingPool.algo.ts:479", + "teal": 1913, + "source": "examples/reti/stakingPool.algo.ts:482", "pc": [ - 1683 + 1683, + 1684 ] }, { - "teal": 1910, - "source": "examples/reti/stakingPool.algo.ts:479", + "teal": 1914, + "source": "examples/reti/stakingPool.algo.ts:482", + "pc": [ + 1685 + ] + }, + { + "teal": 1915, + "source": "examples/reti/stakingPool.algo.ts:482", "pc": [ - 1684, - 1685, 1686 ] }, { - "teal": 1917, + "teal": 1916, "source": "examples/reti/stakingPool.algo.ts:482", "pc": [ 1687, @@ -7794,166 +7800,160 @@ ] }, { - "teal": 1918, + "teal": 1917, "source": "examples/reti/stakingPool.algo.ts:482", "pc": [ 1689 ] }, { - "teal": 1919, + "teal": 1918, "source": "examples/reti/stakingPool.algo.ts:482", "pc": [ 1690 ] }, { - "teal": 1920, - "source": "examples/reti/stakingPool.algo.ts:482", + "teal": 1921, + "source": "examples/reti/stakingPool.algo.ts:481", + "errorMessage": "this can only be called via the validator contract", "pc": [ - 1691, - 1692 + 1691 ] }, { - "teal": 1921, - "source": "examples/reti/stakingPool.algo.ts:482", + "teal": 1925, + "source": "examples/reti/stakingPool.algo.ts:485", "pc": [ + 1692, 1693 ] }, { - "teal": 1922, - "source": "examples/reti/stakingPool.algo.ts:482", + "teal": 1926, + "source": "examples/reti/stakingPool.algo.ts:485", "pc": [ 1694 ] }, { - "teal": 1925, - "source": "examples/reti/stakingPool.algo.ts:481", - "errorMessage": "this can only be called via the validator contract", + "teal": 1927, + "source": "examples/reti/stakingPool.algo.ts:485", "pc": [ 1695 ] }, { - "teal": 1929, + "teal": 1928, "source": "examples/reti/stakingPool.algo.ts:485", "pc": [ - 1696, - 1697 + 1696 ] }, { - "teal": 1930, + "teal": 1931, "source": "examples/reti/stakingPool.algo.ts:485", + "errorMessage": "must be pool 1 in order to be called to pay out token rewards", "pc": [ - 1698 + 1697 ] }, { - "teal": 1931, - "source": "examples/reti/stakingPool.algo.ts:485", + "teal": 1935, + "source": "examples/reti/stakingPool.algo.ts:486", "pc": [ + 1698, 1699 ] }, { - "teal": 1932, - "source": "examples/reti/stakingPool.algo.ts:485", + "teal": 1936, + "source": "examples/reti/stakingPool.algo.ts:486", "pc": [ 1700 ] }, { - "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": [ - 1701 - ] - }, - { - "teal": 1939, + "teal": 1937, "source": "examples/reti/stakingPool.algo.ts:486", "pc": [ - 1702, - 1703 + 1701 ] }, { "teal": 1940, "source": "examples/reti/stakingPool.algo.ts:486", + "errorMessage": "can only claim token rewards from validator that has them", "pc": [ - 1704 + 1702 ] }, { - "teal": 1941, - "source": "examples/reti/stakingPool.algo.ts:486", + "teal": 1948, + "source": "examples/reti/stakingPool.algo.ts:489", "pc": [ - 1705 + 1703 ] }, { - "teal": 1944, - "source": "examples/reti/stakingPool.algo.ts:486", - "errorMessage": "can only claim token rewards from validator that has them", + "teal": 1949, + "source": "examples/reti/stakingPool.algo.ts:489", "pc": [ - 1706 + 1704, + 1705 ] }, { - "teal": 1952, + "teal": 1950, "source": "examples/reti/stakingPool.algo.ts:489", "pc": [ + 1706, 1707 ] }, { - "teal": 1953, - "source": "examples/reti/stakingPool.algo.ts:489", + "teal": 1954, + "source": "examples/reti/stakingPool.algo.ts:490", "pc": [ 1708, 1709 ] }, { - "teal": 1954, - "source": "examples/reti/stakingPool.algo.ts:489", + "teal": 1955, + "source": "examples/reti/stakingPool.algo.ts:490", "pc": [ 1710, 1711 ] }, { - "teal": 1958, - "source": "examples/reti/stakingPool.algo.ts:490", + "teal": 1959, + "source": "examples/reti/stakingPool.algo.ts:491", "pc": [ 1712, 1713 ] }, { - "teal": 1959, - "source": "examples/reti/stakingPool.algo.ts:490", + "teal": 1960, + "source": "examples/reti/stakingPool.algo.ts:491", "pc": [ 1714, 1715 ] }, { - "teal": 1963, - "source": "examples/reti/stakingPool.algo.ts:491", + "teal": 1964, + "source": "examples/reti/stakingPool.algo.ts:492", "pc": [ 1716, 1717 ] }, { - "teal": 1964, - "source": "examples/reti/stakingPool.algo.ts:491", + "teal": 1965, + "source": "examples/reti/stakingPool.algo.ts:492", "pc": [ 1718, 1719 @@ -7961,172 +7961,172 @@ }, { "teal": 1968, - "source": "examples/reti/stakingPool.algo.ts:492", + "source": "examples/reti/stakingPool.algo.ts:489", "pc": [ - 1720, - 1721 + 1720 ] }, { "teal": 1969, - "source": "examples/reti/stakingPool.algo.ts:492", + "source": "examples/reti/stakingPool.algo.ts:489", "pc": [ - 1722, - 1723 + 1721, + 1722 ] }, { "teal": 1972, "source": "examples/reti/stakingPool.algo.ts:489", "pc": [ - 1724 + 1723 ] }, { "teal": 1973, - "source": "examples/reti/stakingPool.algo.ts:489", + "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ - 1725, - 1726 + 1724 ] }, { - "teal": 1976, - "source": "examples/reti/stakingPool.algo.ts:489", + "teal": 1978, + "source": "examples/reti/stakingPool.algo.ts:505", "pc": [ + 1725, + 1726, 1727 ] }, { - "teal": 1977, - "source": "examples/reti/stakingPool.algo.ts:479", + "teal": 1979, + "source": "examples/reti/stakingPool.algo.ts:505", "pc": [ - 1728 + 1728, + 1729, + 1730 ] }, { "teal": 1982, "source": "examples/reti/stakingPool.algo.ts:505", "pc": [ - 1729, - 1730, - 1731 + 1731, + 1732, + 1733 ] }, { "teal": 1983, "source": "examples/reti/stakingPool.algo.ts:505", "pc": [ - 1732, - 1733, 1734 ] }, { - "teal": 1986, + "teal": 1984, "source": "examples/reti/stakingPool.algo.ts:505", "pc": [ - 1735, - 1736, - 1737 + 1735 ] }, { - "teal": 1987, + "teal": 1996, "source": "examples/reti/stakingPool.algo.ts:505", "pc": [ + 1736, + 1737, 1738 ] }, - { - "teal": 1988, - "source": "examples/reti/stakingPool.algo.ts:505", - "pc": [ - 1739 - ] - }, { "teal": 2000, - "source": "examples/reti/stakingPool.algo.ts:505", - "pc": [ - 1740, - 1741, - 1742 - ] - }, - { - "teal": 2004, "source": "examples/reti/stakingPool.algo.ts:506", "pc": [ - 1743, - 1744, - 1745 + 1739, + 1740, + 1741 ] }, { - "teal": 2007, + "teal": 2003, "source": "examples/reti/stakingPool.algo.ts:506", "errorMessage": "can only be called by owner or manager of validator", "pc": [ - 1746 + 1742 ] }, { - "teal": 2011, + "teal": 2007, "source": "examples/reti/stakingPool.algo.ts:507", "pc": [ + 1743, + 1744, + 1745, + 1746, 1747, 1748, 1749, 1750, 1751, - 1752, - 1753, - 1754, - 1755, - 1756 + 1752 ] }, { - "teal": 2012, + "teal": 2008, "source": "examples/reti/stakingPool.algo.ts:507", "pc": [ - 1757, - 1758 + 1753, + 1754 ] }, { - "teal": 2013, + "teal": 2009, "source": "examples/reti/stakingPool.algo.ts:507", "pc": [ - 1759 + 1755 ] }, { - "teal": 2014, + "teal": 2010, "source": "examples/reti/stakingPool.algo.ts:505", + "pc": [ + 1756 + ] + }, + { + "teal": 2015, + "source": "examples/reti/stakingPool.algo.ts:518", + "pc": [ + 1757, + 1758, + 1759 + ] + }, + { + "teal": 2016, + "source": "examples/reti/stakingPool.algo.ts:518", "pc": [ 1760 ] }, { - "teal": 2019, + "teal": 2017, "source": "examples/reti/stakingPool.algo.ts:518", "pc": [ - 1761, - 1762, - 1763 + 1761 ] }, { - "teal": 2020, + "teal": 2028, "source": "examples/reti/stakingPool.algo.ts:518", "pc": [ + 1762, + 1763, 1764 ] }, { - "teal": 2021, + "teal": 2031, "source": "examples/reti/stakingPool.algo.ts:518", "pc": [ 1765 @@ -8137,41 +8137,41 @@ "source": "examples/reti/stakingPool.algo.ts:518", "pc": [ 1766, - 1767, - 1768 + 1767 ] }, { - "teal": 2035, - "source": "examples/reti/stakingPool.algo.ts:518", + "teal": 2039, + "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 1769 + 1768 ] }, { - "teal": 2036, - "source": "examples/reti/stakingPool.algo.ts:518", + "teal": 2040, + "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 1770, - 1771 + 1769 ] }, { - "teal": 2043, + "teal": 2041, "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 1772 + 1770, + 1771 ] }, { - "teal": 2044, + "teal": 2042, "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ + 1772, 1773 ] }, { - "teal": 2045, + "teal": 2043, "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ 1774, @@ -8179,96 +8179,102 @@ ] }, { - "teal": 2046, - "source": "examples/reti/stakingPool.algo.ts:520", + "teal": 2047, + "source": "examples/reti/stakingPool.algo.ts:521", + "pc": [ + 1776 + ] + }, + { + "teal": 2048, + "source": "examples/reti/stakingPool.algo.ts:521", "pc": [ - 1776, 1777 ] }, { - "teal": 2047, - "source": "examples/reti/stakingPool.algo.ts:520", + "teal": 2049, + "source": "examples/reti/stakingPool.algo.ts:521", "pc": [ 1778, 1779 ] }, { - "teal": 2051, - "source": "examples/reti/stakingPool.algo.ts:521", + "teal": 2053, + "source": "examples/reti/stakingPool.algo.ts:522", "pc": [ 1780 ] }, { - "teal": 2052, - "source": "examples/reti/stakingPool.algo.ts:521", + "teal": 2054, + "source": "examples/reti/stakingPool.algo.ts:522", "pc": [ 1781 ] }, { - "teal": 2053, - "source": "examples/reti/stakingPool.algo.ts:521", + "teal": 2055, + "source": "examples/reti/stakingPool.algo.ts:522", "pc": [ - 1782, - 1783 + 1782 ] }, { - "teal": 2057, + "teal": 2056, "source": "examples/reti/stakingPool.algo.ts:522", "pc": [ + 1783, 1784 ] }, { - "teal": 2058, - "source": "examples/reti/stakingPool.algo.ts:522", + "teal": 2059, + "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ 1785 ] }, { - "teal": 2059, - "source": "examples/reti/stakingPool.algo.ts:522", + "teal": 2060, + "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 1786 + 1786, + 1787 ] }, { - "teal": 2060, - "source": "examples/reti/stakingPool.algo.ts:522", + "teal": 2063, + "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 1787, 1788 ] }, { - "teal": 2063, + "teal": 2064, "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 1789 + 1789, + 1790 ] }, { - "teal": 2064, + "teal": 2065, "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 1790, 1791 ] }, { - "teal": 2067, + "teal": 2066, "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ 1792 ] }, { - "teal": 2068, + "teal": 2067, "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ 1793, @@ -8276,94 +8282,88 @@ ] }, { - "teal": 2069, - "source": "examples/reti/stakingPool.algo.ts:520", - "pc": [ - 1795 - ] - }, - { - "teal": 2070, + "teal": 2068, "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 1796 + 1795, + 1796, + 1797 ] }, { - "teal": 2071, + "teal": 2069, "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 1797, - 1798 + 1798, + 1799 ] }, { - "teal": 2072, - "source": "examples/reti/stakingPool.algo.ts:520", + "teal": 2073, + "source": "examples/reti/stakingPool.algo.ts:529", "pc": [ - 1799, 1800, 1801 ] }, { - "teal": 2073, - "source": "examples/reti/stakingPool.algo.ts:520", + "teal": 2074, + "source": "examples/reti/stakingPool.algo.ts:529", "pc": [ 1802, - 1803 + 1803, + 1804 ] }, { - "teal": 2077, + "teal": 2075, "source": "examples/reti/stakingPool.algo.ts:529", "pc": [ - 1804, 1805 ] }, { - "teal": 2078, + "teal": 2076, "source": "examples/reti/stakingPool.algo.ts:529", "pc": [ 1806, - 1807, - 1808 + 1807 ] }, { - "teal": 2079, - "source": "examples/reti/stakingPool.algo.ts:529", + "teal": 2080, + "source": "examples/reti/stakingPool.algo.ts:530", "pc": [ + 1808, 1809 ] }, { - "teal": 2080, - "source": "examples/reti/stakingPool.algo.ts:529", + "teal": 2081, + "source": "examples/reti/stakingPool.algo.ts:530", "pc": [ 1810, 1811 ] }, { - "teal": 2084, - "source": "examples/reti/stakingPool.algo.ts:530", + "teal": 2085, + "source": "examples/reti/stakingPool.algo.ts:531", "pc": [ 1812, 1813 ] }, { - "teal": 2085, - "source": "examples/reti/stakingPool.algo.ts:530", + "teal": 2086, + "source": "examples/reti/stakingPool.algo.ts:531", "pc": [ 1814, 1815 ] }, { - "teal": 2089, + "teal": 2087, "source": "examples/reti/stakingPool.algo.ts:531", "pc": [ 1816, @@ -8371,15 +8371,21 @@ ] }, { - "teal": 2090, + "teal": 2088, + "source": "examples/reti/stakingPool.algo.ts:531", + "pc": [ + 1818 + ] + }, + { + "teal": 2089, "source": "examples/reti/stakingPool.algo.ts:531", "pc": [ - 1818, 1819 ] }, { - "teal": 2091, + "teal": 2090, "source": "examples/reti/stakingPool.algo.ts:531", "pc": [ 1820, @@ -8387,106 +8393,106 @@ ] }, { - "teal": 2092, - "source": "examples/reti/stakingPool.algo.ts:531", + "teal": 2095, + "source": "examples/reti/stakingPool.algo.ts:534", "pc": [ - 1822 + 1822, + 1823, + 1824 ] }, { - "teal": 2093, - "source": "examples/reti/stakingPool.algo.ts:531", + "teal": 2096, + "source": "examples/reti/stakingPool.algo.ts:534", "pc": [ - 1823 + 1825, + 1826 ] }, { - "teal": 2094, - "source": "examples/reti/stakingPool.algo.ts:531", + "teal": 2097, + "source": "examples/reti/stakingPool.algo.ts:534", "pc": [ - 1824, - 1825 + 1827 ] }, { - "teal": 2099, + "teal": 2098, "source": "examples/reti/stakingPool.algo.ts:534", "pc": [ - 1826, - 1827, 1828 ] }, { - "teal": 2100, + "teal": 2099, "source": "examples/reti/stakingPool.algo.ts:534", "pc": [ - 1829, - 1830 + 1829 ] }, { - "teal": 2101, + "teal": 2100, "source": "examples/reti/stakingPool.algo.ts:534", "pc": [ - 1831 + 1830, + 1831, + 1832 ] }, { - "teal": 2102, - "source": "examples/reti/stakingPool.algo.ts:534", + "teal": 2105, + "source": "examples/reti/stakingPool.algo.ts:535", "pc": [ - 1832 + 1833, + 1834 ] }, { - "teal": 2103, - "source": "examples/reti/stakingPool.algo.ts:534", + "teal": 2106, + "source": "examples/reti/stakingPool.algo.ts:535", "pc": [ - 1833 + 1835 ] }, { - "teal": 2104, - "source": "examples/reti/stakingPool.algo.ts:534", + "teal": 2107, + "source": "examples/reti/stakingPool.algo.ts:535", "pc": [ - 1834, - 1835, - 1836 + 1836, + 1837 ] }, { - "teal": 2109, + "teal": 2108, "source": "examples/reti/stakingPool.algo.ts:535", "pc": [ - 1837, 1838 ] }, { - "teal": 2110, + "teal": 2109, "source": "examples/reti/stakingPool.algo.ts:535", "pc": [ - 1839 + 1839, + 1840 ] }, { - "teal": 2111, + "teal": 2110, "source": "examples/reti/stakingPool.algo.ts:535", "pc": [ - 1840, 1841 ] }, { - "teal": 2112, + "teal": 2111, "source": "examples/reti/stakingPool.algo.ts:535", "pc": [ 1842 ] }, { - "teal": 2113, + "teal": 2112, "source": "examples/reti/stakingPool.algo.ts:535", "pc": [ 1843, @@ -8494,549 +8500,543 @@ ] }, { - "teal": 2114, - "source": "examples/reti/stakingPool.algo.ts:535", - "pc": [ - 1845 - ] - }, - { - "teal": 2115, - "source": "examples/reti/stakingPool.algo.ts:535", + "teal": 2116, + "source": "examples/reti/stakingPool.algo.ts:539", "pc": [ + 1845, 1846 ] }, { - "teal": 2116, - "source": "examples/reti/stakingPool.algo.ts:535", + "teal": 2117, + "source": "examples/reti/stakingPool.algo.ts:539", "pc": [ 1847, 1848 ] }, { - "teal": 2120, + "teal": 2118, "source": "examples/reti/stakingPool.algo.ts:539", "pc": [ - 1849, - 1850 + 1849 ] }, { "teal": 2121, "source": "examples/reti/stakingPool.algo.ts:539", + "errorMessage": "can't call epochBalanceUpdate in same epoch as prior call", "pc": [ - 1851, - 1852 + 1850 ] }, { - "teal": 2122, - "source": "examples/reti/stakingPool.algo.ts:539", + "teal": 2126, + "source": "examples/reti/stakingPool.algo.ts:542", "pc": [ + 1851, + 1852, 1853 ] }, { - "teal": 2125, - "source": "examples/reti/stakingPool.algo.ts:539", - "errorMessage": "can't call epochBalanceUpdate in same epoch as prior call", + "teal": 2130, + "source": "examples/reti/stakingPool.algo.ts:545", "pc": [ - 1854 + 1854, + 1855 ] }, { - "teal": 2130, - "source": "examples/reti/stakingPool.algo.ts:542", + "teal": 2131, + "source": "examples/reti/stakingPool.algo.ts:545", "pc": [ - 1855, 1856, 1857 ] }, { - "teal": 2134, + "teal": 2132, "source": "examples/reti/stakingPool.algo.ts:545", "pc": [ - 1858, - 1859 + 1858 ] }, { - "teal": 2135, - "source": "examples/reti/stakingPool.algo.ts:545", + "teal": 2136, + "source": "examples/reti/stakingPool.algo.ts:546", + "pc": [ + 1859, + 1860 + ] + }, + { + "teal": 2137, + "source": "examples/reti/stakingPool.algo.ts:546", "pc": [ - 1860, 1861 ] }, { - "teal": 2136, - "source": "examples/reti/stakingPool.algo.ts:545", + "teal": 2138, + "source": "examples/reti/stakingPool.algo.ts:546", "pc": [ 1862 ] }, { - "teal": 2140, + "teal": 2139, "source": "examples/reti/stakingPool.algo.ts:546", "pc": [ - 1863, - 1864 + 1863 ] }, { - "teal": 2141, + "teal": 2140, "source": "examples/reti/stakingPool.algo.ts:546", "pc": [ + 1864, 1865 ] }, { - "teal": 2142, + "teal": 2141, "source": "examples/reti/stakingPool.algo.ts:546", "pc": [ 1866 ] }, { - "teal": 2143, + "teal": 2142, "source": "examples/reti/stakingPool.algo.ts:546", "pc": [ 1867 ] }, { - "teal": 2144, - "source": "examples/reti/stakingPool.algo.ts:546", + "teal": 2146, + "source": "examples/reti/stakingPool.algo.ts:551", "pc": [ 1868, 1869 ] }, { - "teal": 2145, - "source": "examples/reti/stakingPool.algo.ts:546", - "pc": [ - 1870 - ] - }, - { - "teal": 2146, - "source": "examples/reti/stakingPool.algo.ts:546", + "teal": 2147, + "source": "examples/reti/stakingPool.algo.ts:551", "pc": [ - 1871 + 1870, + 1871, + 1872 ] }, { - "teal": 2150, + "teal": 2148, "source": "examples/reti/stakingPool.algo.ts:551", "pc": [ - 1872, 1873 ] }, { - "teal": 2151, + "teal": 2149, "source": "examples/reti/stakingPool.algo.ts:551", "pc": [ - 1874, - 1875, - 1876 + 1874 ] }, { - "teal": 2152, + "teal": 2150, "source": "examples/reti/stakingPool.algo.ts:551", "pc": [ - 1877 + 1875 ] }, { - "teal": 2153, + "teal": 2151, "source": "examples/reti/stakingPool.algo.ts:551", "pc": [ - 1878 + 1876, + 1877 ] }, { - "teal": 2154, - "source": "examples/reti/stakingPool.algo.ts:551", + "teal": 2155, + "source": "examples/reti/stakingPool.algo.ts:552", "pc": [ - 1879 + 1878, + 1879, + 1880 ] }, { - "teal": 2155, - "source": "examples/reti/stakingPool.algo.ts:551", + "teal": 2156, + "source": "examples/reti/stakingPool.algo.ts:552", "pc": [ - 1880, - 1881 + 1881, + 1882 ] }, { - "teal": 2159, - "source": "examples/reti/stakingPool.algo.ts:552", + "teal": 2160, + "source": "examples/reti/stakingPool.algo.ts:553", "pc": [ - 1882, 1883, 1884 ] }, { - "teal": 2160, - "source": "examples/reti/stakingPool.algo.ts:552", + "teal": 2161, + "source": "examples/reti/stakingPool.algo.ts:553", "pc": [ 1885, 1886 ] }, { - "teal": 2164, - "source": "examples/reti/stakingPool.algo.ts:553", + "teal": 2166, + "source": "examples/reti/stakingPool.algo.ts:558", "pc": [ 1887, 1888 ] }, { - "teal": 2165, - "source": "examples/reti/stakingPool.algo.ts:553", + "teal": 2167, + "source": "examples/reti/stakingPool.algo.ts:558", "pc": [ 1889, - 1890 + 1890, + 1891 ] }, { - "teal": 2170, - "source": "examples/reti/stakingPool.algo.ts:558", + "teal": 2173, + "source": "examples/reti/stakingPool.algo.ts:559", "pc": [ - 1891, - 1892 + 1892, + 1893 ] }, { - "teal": 2171, - "source": "examples/reti/stakingPool.algo.ts:558", + "teal": 2174, + "source": "examples/reti/stakingPool.algo.ts:559", "pc": [ - 1893, - 1894, - 1895 + 1894 ] }, { - "teal": 2177, + "teal": 2175, "source": "examples/reti/stakingPool.algo.ts:559", "pc": [ - 1896, - 1897 + 1895 ] }, { - "teal": 2178, + "teal": 2176, "source": "examples/reti/stakingPool.algo.ts:559", "pc": [ - 1898 + 1896 ] }, { - "teal": 2179, + "teal": 2177, "source": "examples/reti/stakingPool.algo.ts:559", "pc": [ + 1897, + 1898, 1899 ] }, { - "teal": 2180, - "source": "examples/reti/stakingPool.algo.ts:559", + "teal": 2185, + "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ 1900 ] }, { - "teal": 2181, - "source": "examples/reti/stakingPool.algo.ts:559", + "teal": 2186, + "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 1901, - 1902, - 1903 + 1901 ] }, { - "teal": 2189, + "teal": 2187, "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 1904 + 1902, + 1903 ] }, { - "teal": 2190, + "teal": 2188, "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ + 1904, 1905 ] }, { - "teal": 2191, + "teal": 2189, "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ 1906, 1907 ] }, - { - "teal": 2192, - "source": "examples/reti/stakingPool.algo.ts:561", - "pc": [ - 1908, - 1909 - ] - }, { "teal": 2193, - "source": "examples/reti/stakingPool.algo.ts:561", - "pc": [ - 1910, - 1911 - ] - }, - { - "teal": 2197, "source": "examples/reti/stakingPool.algo.ts:562", "pc": [ - 1912 + 1908 ] }, { - "teal": 2198, + "teal": 2194, "source": "examples/reti/stakingPool.algo.ts:562", "pc": [ - 1913 + 1909 ] }, { - "teal": 2199, + "teal": 2195, "source": "examples/reti/stakingPool.algo.ts:562", "pc": [ - 1914, - 1915 + 1910, + 1911 ] }, { - "teal": 2203, + "teal": 2199, "source": "examples/reti/stakingPool.algo.ts:563", "pc": [ - 1916 + 1912 ] }, { - "teal": 2204, + "teal": 2200, "source": "examples/reti/stakingPool.algo.ts:563", "pc": [ - 1917 + 1913 ] }, { - "teal": 2205, + "teal": 2201, "source": "examples/reti/stakingPool.algo.ts:563", "pc": [ - 1918 + 1914 ] }, { - "teal": 2206, + "teal": 2202, "source": "examples/reti/stakingPool.algo.ts:563", "pc": [ - 1919, - 1920 + 1915, + 1916 ] }, { - "teal": 2207, + "teal": 2203, "source": "examples/reti/stakingPool.algo.ts:563", "pc": [ + 1917, + 1918, + 1919, + 1920, 1921, 1922, 1923, 1924, 1925, - 1926, + 1926 + ] + }, + { + "teal": 2204, + "source": "examples/reti/stakingPool.algo.ts:563", + "pc": [ 1927, - 1928, - 1929, - 1930 + 1928 + ] + }, + { + "teal": 2207, + "source": "examples/reti/stakingPool.algo.ts:561", + "pc": [ + 1929 ] }, { "teal": 2208, - "source": "examples/reti/stakingPool.algo.ts:563", + "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 1931, - 1932 + 1930, + 1931 ] }, { "teal": 2211, "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 1933 + 1932 ] }, { "teal": 2212, "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 1934, - 1935 + 1933, + 1934 ] }, { - "teal": 2215, + "teal": 2213, "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 1936 + 1935 ] }, { - "teal": 2216, + "teal": 2214, "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 1937, - 1938 + 1936 ] }, { - "teal": 2217, + "teal": 2215, "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 1939 + 1937, + 1938 ] }, { - "teal": 2218, + "teal": 2216, "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 1940 + 1939, + 1940, + 1941 ] }, { - "teal": 2219, + "teal": 2217, "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 1941, 1942 ] }, { - "teal": 2220, + "teal": 2218, "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ 1943, - 1944, - 1945 + 1944 ] }, { - "teal": 2221, - "source": "examples/reti/stakingPool.algo.ts:561", + "teal": 2222, + "source": "examples/reti/stakingPool.algo.ts:565", "pc": [ + 1945, 1946 ] }, { - "teal": 2222, - "source": "examples/reti/stakingPool.algo.ts:561", + "teal": 2223, + "source": "examples/reti/stakingPool.algo.ts:565", "pc": [ 1947, 1948 ] }, { - "teal": 2226, + "teal": 2224, "source": "examples/reti/stakingPool.algo.ts:565", "pc": [ - 1949, - 1950 + 1949 ] }, { - "teal": 2227, + "teal": 2225, "source": "examples/reti/stakingPool.algo.ts:565", "pc": [ - 1951, - 1952 + 1950, + 1951 ] }, { - "teal": 2228, - "source": "examples/reti/stakingPool.algo.ts:565", + "teal": 2231, + "source": "examples/reti/stakingPool.algo.ts:570", "pc": [ + 1952, 1953 ] }, { - "teal": 2229, - "source": "examples/reti/stakingPool.algo.ts:565", + "teal": 2232, + "source": "examples/reti/stakingPool.algo.ts:570", "pc": [ - 1954, - 1955 + 1954 ] }, { - "teal": 2235, + "teal": 2233, "source": "examples/reti/stakingPool.algo.ts:570", "pc": [ - 1956, - 1957 + 1955 ] }, { - "teal": 2236, + "teal": 2234, "source": "examples/reti/stakingPool.algo.ts:570", "pc": [ - 1958 + 1956 ] }, { - "teal": 2237, + "teal": 2235, "source": "examples/reti/stakingPool.algo.ts:570", "pc": [ + 1957, + 1958, 1959 ] }, { - "teal": 2238, - "source": "examples/reti/stakingPool.algo.ts:570", + "teal": 2243, + "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ 1960 ] }, { - "teal": 2239, - "source": "examples/reti/stakingPool.algo.ts:570", + "teal": 2244, + "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 1961, - 1962, - 1963 + 1961 ] }, { - "teal": 2247, + "teal": 2245, "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 1964 + 1962, + 1963 ] }, { - "teal": 2248, + "teal": 2246, "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ + 1964, 1965 ] }, { - "teal": 2249, + "teal": 2247, "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ 1966, @@ -9044,96 +9044,102 @@ ] }, { - "teal": 2250, - "source": "examples/reti/stakingPool.algo.ts:571", + "teal": 2251, + "source": "examples/reti/stakingPool.algo.ts:572", + "pc": [ + 1968 + ] + }, + { + "teal": 2252, + "source": "examples/reti/stakingPool.algo.ts:572", "pc": [ - 1968, 1969 ] }, { - "teal": 2251, - "source": "examples/reti/stakingPool.algo.ts:571", + "teal": 2253, + "source": "examples/reti/stakingPool.algo.ts:572", "pc": [ 1970, 1971 ] }, { - "teal": 2255, - "source": "examples/reti/stakingPool.algo.ts:572", + "teal": 2257, + "source": "examples/reti/stakingPool.algo.ts:573", "pc": [ 1972 ] }, { - "teal": 2256, - "source": "examples/reti/stakingPool.algo.ts:572", + "teal": 2258, + "source": "examples/reti/stakingPool.algo.ts:573", "pc": [ 1973 ] }, { - "teal": 2257, - "source": "examples/reti/stakingPool.algo.ts:572", + "teal": 2259, + "source": "examples/reti/stakingPool.algo.ts:573", "pc": [ - 1974, - 1975 + 1974 ] }, { - "teal": 2261, + "teal": 2260, "source": "examples/reti/stakingPool.algo.ts:573", "pc": [ + 1975, 1976 ] }, { - "teal": 2262, - "source": "examples/reti/stakingPool.algo.ts:573", + "teal": 2263, + "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ 1977 ] }, { - "teal": 2263, - "source": "examples/reti/stakingPool.algo.ts:573", + "teal": 2264, + "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 1978 + 1978, + 1979 ] }, { - "teal": 2264, - "source": "examples/reti/stakingPool.algo.ts:573", + "teal": 2267, + "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 1979, 1980 ] }, { - "teal": 2267, + "teal": 2268, "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 1981 + 1981, + 1982 ] }, { - "teal": 2268, + "teal": 2269, "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 1982, 1983 ] }, { - "teal": 2271, + "teal": 2270, "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ 1984 ] }, { - "teal": 2272, + "teal": 2271, "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ 1985, @@ -9141,69 +9147,63 @@ ] }, { - "teal": 2273, - "source": "examples/reti/stakingPool.algo.ts:571", - "pc": [ - 1987 - ] - }, - { - "teal": 2274, + "teal": 2272, "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 1988 + 1987, + 1988, + 1989 ] }, { - "teal": 2275, + "teal": 2273, "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 1989, - 1990 + 1990, + 1991 ] }, { - "teal": 2276, - "source": "examples/reti/stakingPool.algo.ts:571", + "teal": 2274, + "source": "examples/reti/stakingPool.algo.ts:570", "pc": [ - 1991, 1992, - 1993 + 1993, + 1994 ] }, { - "teal": 2277, - "source": "examples/reti/stakingPool.algo.ts:571", + "teal": 2282, + "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 1994, 1995 ] }, { - "teal": 2278, - "source": "examples/reti/stakingPool.algo.ts:570", + "teal": 2283, + "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 1996, - 1997, - 1998 + 1996 ] }, { - "teal": 2286, + "teal": 2284, "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 1999 + 1997, + 1998 ] }, { - "teal": 2287, + "teal": 2285, "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ + 1999, 2000 ] }, { - "teal": 2288, + "teal": 2286, "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ 2001, @@ -9211,142 +9211,148 @@ ] }, { - "teal": 2289, - "source": "examples/reti/stakingPool.algo.ts:577", + "teal": 2290, + "source": "examples/reti/stakingPool.algo.ts:578", "pc": [ 2003, 2004 ] }, { - "teal": 2290, - "source": "examples/reti/stakingPool.algo.ts:577", + "teal": 2291, + "source": "examples/reti/stakingPool.algo.ts:578", "pc": [ 2005, 2006 ] }, { - "teal": 2294, - "source": "examples/reti/stakingPool.algo.ts:578", + "teal": 2295, + "source": "examples/reti/stakingPool.algo.ts:579", + "pc": [ + 2007 + ] + }, + { + "teal": 2296, + "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ - 2007, 2008 ] }, { - "teal": 2295, - "source": "examples/reti/stakingPool.algo.ts:578", + "teal": 2297, + "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ - 2009, - 2010 + 2009 ] }, { - "teal": 2299, + "teal": 2298, "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ + 2010, 2011 ] }, { - "teal": 2300, + "teal": 2299, "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ 2012 ] }, { - "teal": 2301, + "teal": 2300, "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ 2013 ] }, { - "teal": 2302, + "teal": 2301, "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ - 2014, - 2015 + 2014 ] }, { - "teal": 2303, + "teal": 2302, "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ - 2016 + 2015, + 2016, + 2017 ] }, { - "teal": 2304, + "teal": 2303, "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ - 2017 + 2018 ] }, { - "teal": 2305, + "teal": 2304, "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ - 2018 + 2019 ] }, { - "teal": 2306, + "teal": 2305, "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ - 2019, 2020, 2021 ] }, { - "teal": 2307, - "source": "examples/reti/stakingPool.algo.ts:579", + "teal": 2308, + "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ 2022 ] }, { - "teal": 2308, - "source": "examples/reti/stakingPool.algo.ts:579", + "teal": 2309, + "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2023 + 2023, + 2024 ] }, { - "teal": 2309, - "source": "examples/reti/stakingPool.algo.ts:579", + "teal": 2312, + "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2024, 2025 ] }, { - "teal": 2312, + "teal": 2313, "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2026 + 2026, + 2027 ] }, { - "teal": 2313, + "teal": 2314, "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2027, 2028 ] }, { - "teal": 2316, + "teal": 2315, "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ 2029 ] }, { - "teal": 2317, + "teal": 2316, "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ 2030, @@ -9354,161 +9360,161 @@ ] }, { - "teal": 2318, + "teal": 2317, "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2032 + 2032, + 2033, + 2034 ] }, { - "teal": 2319, + "teal": 2318, "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2033 + 2035, + 2036 ] }, { - "teal": 2320, - "source": "examples/reti/stakingPool.algo.ts:577", + "teal": 2328, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2034, - 2035 + 2037 ] }, { - "teal": 2321, - "source": "examples/reti/stakingPool.algo.ts:577", + "teal": 2329, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2036, - 2037, 2038 ] }, { - "teal": 2322, - "source": "examples/reti/stakingPool.algo.ts:577", + "teal": 2330, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ 2039, 2040 ] }, { - "teal": 2332, + "teal": 2331, "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2041 + 2041, + 2042, + 2043, + 2044, + 2045, + 2046 ] }, { - "teal": 2333, + "teal": 2332, "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2042 + 2047, + 2048 ] }, { - "teal": 2334, - "source": "examples/reti/stakingPool.algo.ts:586", + "teal": 2336, + "source": "examples/reti/stakingPool.algo.ts:587", "pc": [ - 2043, - 2044 + 2049 ] }, { - "teal": 2335, - "source": "examples/reti/stakingPool.algo.ts:586", + "teal": 2337, + "source": "examples/reti/stakingPool.algo.ts:587", "pc": [ - 2045, - 2046, - 2047, - 2048, - 2049, 2050 ] }, { - "teal": 2336, - "source": "examples/reti/stakingPool.algo.ts:586", + "teal": 2338, + "source": "examples/reti/stakingPool.algo.ts:587", "pc": [ 2051, 2052 ] }, { - "teal": 2340, - "source": "examples/reti/stakingPool.algo.ts:587", + "teal": 2342, + "source": "examples/reti/stakingPool.algo.ts:588", "pc": [ 2053 ] }, { - "teal": 2341, - "source": "examples/reti/stakingPool.algo.ts:587", + "teal": 2343, + "source": "examples/reti/stakingPool.algo.ts:588", "pc": [ 2054 ] }, { - "teal": 2342, - "source": "examples/reti/stakingPool.algo.ts:587", + "teal": 2344, + "source": "examples/reti/stakingPool.algo.ts:588", "pc": [ - 2055, - 2056 + 2055 ] }, { - "teal": 2346, + "teal": 2345, "source": "examples/reti/stakingPool.algo.ts:588", "pc": [ + 2056, 2057 ] }, { - "teal": 2347, - "source": "examples/reti/stakingPool.algo.ts:588", + "teal": 2348, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ 2058 ] }, { - "teal": 2348, - "source": "examples/reti/stakingPool.algo.ts:588", + "teal": 2349, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2059 + 2059, + 2060 ] }, { - "teal": 2349, - "source": "examples/reti/stakingPool.algo.ts:588", + "teal": 2352, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2060, 2061 ] }, { - "teal": 2352, + "teal": 2353, "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2062 + 2062, + 2063 ] }, { - "teal": 2353, + "teal": 2354, "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2063, 2064 ] }, { - "teal": 2356, + "teal": 2355, "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ 2065 ] }, { - "teal": 2357, + "teal": 2356, "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ 2066, @@ -9516,495 +9522,495 @@ ] }, { - "teal": 2358, - "source": "examples/reti/stakingPool.algo.ts:586", - "pc": [ - 2068 - ] - }, - { - "teal": 2359, + "teal": 2357, "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2069 + 2068, + 2069, + 2070 ] }, { - "teal": 2360, + "teal": 2358, "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2070, - 2071 + 2071, + 2072 ] }, { - "teal": 2361, - "source": "examples/reti/stakingPool.algo.ts:586", + "teal": 2362, + "source": "examples/reti/stakingPool.algo.ts:590", "pc": [ - 2072, 2073, 2074 ] }, { - "teal": 2362, - "source": "examples/reti/stakingPool.algo.ts:586", + "teal": 2363, + "source": "examples/reti/stakingPool.algo.ts:590", "pc": [ 2075, - 2076 + 2076, + 2077 ] }, { - "teal": 2366, + "teal": 2364, "source": "examples/reti/stakingPool.algo.ts:590", "pc": [ - 2077, 2078 ] }, { - "teal": 2367, + "teal": 2365, "source": "examples/reti/stakingPool.algo.ts:590", "pc": [ 2079, - 2080, - 2081 + 2080 ] }, { - "teal": 2368, - "source": "examples/reti/stakingPool.algo.ts:590", + "teal": 2369, + "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ + 2081, 2082 ] }, { - "teal": 2369, - "source": "examples/reti/stakingPool.algo.ts:590", + "teal": 2370, + "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ 2083, 2084 ] }, { - "teal": 2373, + "teal": 2371, "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2085, - 2086 + 2085 ] }, { - "teal": 2374, + "teal": 2372, "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2087, - 2088 + 2086, + 2087 ] }, { - "teal": 2375, + "teal": 2373, "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2089 + 2088 ] }, { - "teal": 2376, + "teal": 2374, "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2090, - 2091 + 2089 ] }, { - "teal": 2377, + "teal": 2375, "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2092 + 2090, + 2091 ] }, { - "teal": 2378, + "teal": 2376, "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ + 2092, 2093 ] }, { - "teal": 2379, - "source": "examples/reti/stakingPool.algo.ts:596", - "pc": [ - 2094, - 2095 - ] - }, - { - "teal": 2380, + "teal": 2377, "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2096, - 2097 + 2094 ] }, { - "teal": 2381, + "teal": 2378, "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2098 + 2095 ] }, { - "teal": 2382, + "teal": 2379, "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2099 + 2096, + 2097 ] }, { "teal": 2383, - "source": "examples/reti/stakingPool.algo.ts:596", + "source": "examples/reti/stakingPool.algo.ts:597", "pc": [ - 2100, - 2101 + 2098 ] }, { - "teal": 2387, + "teal": 2384, "source": "examples/reti/stakingPool.algo.ts:597", "pc": [ - 2102 + 2099, + 2100 ] }, { "teal": 2388, - "source": "examples/reti/stakingPool.algo.ts:597", + "source": "examples/reti/stakingPool.algo.ts:598", "pc": [ - 2103, - 2104 + 2101, + 2102, + 2103 ] }, { - "teal": 2392, + "teal": 2389, "source": "examples/reti/stakingPool.algo.ts:598", "pc": [ - 2105, + 2104, + 2105 + ] + }, + { + "teal": 2394, + "source": "examples/reti/stakingPool.algo.ts:606", + "pc": [ 2106, 2107 ] }, { - "teal": 2393, - "source": "examples/reti/stakingPool.algo.ts:598", + "teal": 2395, + "source": "examples/reti/stakingPool.algo.ts:606", "pc": [ 2108, - 2109 + 2109, + 2110 ] }, { - "teal": 2398, + "teal": 2396, "source": "examples/reti/stakingPool.algo.ts:606", "pc": [ - 2110, 2111 ] }, { - "teal": 2399, + "teal": 2397, "source": "examples/reti/stakingPool.algo.ts:606", "pc": [ 2112, - 2113, - 2114 + 2113 ] }, { - "teal": 2400, + "teal": 2398, "source": "examples/reti/stakingPool.algo.ts:606", "pc": [ - 2115 + 2114 ] }, { - "teal": 2401, + "teal": 2399, "source": "examples/reti/stakingPool.algo.ts:606", "pc": [ + 2115, 2116, 2117 ] }, { - "teal": 2402, - "source": "examples/reti/stakingPool.algo.ts:606", + "teal": 2404, + "source": "examples/reti/stakingPool.algo.ts:607", "pc": [ 2118 ] }, { - "teal": 2403, - "source": "examples/reti/stakingPool.algo.ts:606", - "pc": [ - 2119, - 2120, - 2121 - ] - }, - { - "teal": 2408, + "teal": 2405, "source": "examples/reti/stakingPool.algo.ts:607", "pc": [ - 2122 + 2119, + 2120 ] }, { - "teal": 2409, - "source": "examples/reti/stakingPool.algo.ts:607", + "teal": 2410, + "source": "examples/reti/stakingPool.algo.ts:613", "pc": [ - 2123, - 2124 + 2121 ] }, { - "teal": 2414, + "teal": 2411, "source": "examples/reti/stakingPool.algo.ts:613", "pc": [ - 2125 + 2122, + 2123 ] }, { "teal": 2415, - "source": "examples/reti/stakingPool.algo.ts:613", + "source": "examples/reti/stakingPool.algo.ts:614", "pc": [ - 2126, - 2127 + 2124 ] }, { - "teal": 2419, + "teal": 2416, "source": "examples/reti/stakingPool.algo.ts:614", "pc": [ - 2128 + 2125, + 2126 ] }, { "teal": 2420, - "source": "examples/reti/stakingPool.algo.ts:614", + "source": "examples/reti/stakingPool.algo.ts:615", "pc": [ - 2129, - 2130 + 2127 ] }, { - "teal": 2424, + "teal": 2421, "source": "examples/reti/stakingPool.algo.ts:615", "pc": [ - 2131 + 2128, + 2129 ] }, { "teal": 2425, - "source": "examples/reti/stakingPool.algo.ts:615", + "source": "examples/reti/stakingPool.algo.ts:616", "pc": [ - 2132, - 2133 + 2130 ] }, { - "teal": 2429, + "teal": 2426, "source": "examples/reti/stakingPool.algo.ts:616", "pc": [ + 2131, + 2132 + ] + }, + { + "teal": 2431, + "source": "examples/reti/stakingPool.algo.ts:617", + "pc": [ + 2133, 2134 ] }, { - "teal": 2430, - "source": "examples/reti/stakingPool.algo.ts:616", + "teal": 2432, + "source": "examples/reti/stakingPool.algo.ts:617", "pc": [ 2135, - 2136 + 2136, + 2137 ] }, { - "teal": 2435, - "source": "examples/reti/stakingPool.algo.ts:617", + "teal": 2438, + "source": "examples/reti/stakingPool.algo.ts:619", "pc": [ - 2137, - 2138 + 2138, + 2139 ] }, { - "teal": 2436, - "source": "examples/reti/stakingPool.algo.ts:617", + "teal": 2439, + "source": "examples/reti/stakingPool.algo.ts:619", "pc": [ - 2139, 2140, 2141 ] }, { - "teal": 2442, + "teal": 2440, "source": "examples/reti/stakingPool.algo.ts:619", "pc": [ 2142, - 2143 + 2143, + 2144 ] }, { - "teal": 2443, + "teal": 2441, "source": "examples/reti/stakingPool.algo.ts:619", "pc": [ - 2144, 2145 ] }, { - "teal": 2444, + "teal": 2442, "source": "examples/reti/stakingPool.algo.ts:619", "pc": [ 2146, - 2147, - 2148 + 2147 ] }, { - "teal": 2445, + "teal": 2443, "source": "examples/reti/stakingPool.algo.ts:619", "pc": [ - 2149 + 2148 ] }, { - "teal": 2446, + "teal": 2444, "source": "examples/reti/stakingPool.algo.ts:619", "pc": [ - 2150, - 2151 + 2149, + 2150 ] }, { - "teal": 2447, + "teal": 2445, "source": "examples/reti/stakingPool.algo.ts:619", "pc": [ - 2152 + 2151 ] }, { - "teal": 2448, - "source": "examples/reti/stakingPool.algo.ts:619", + "teal": 2446, + "source": "examples/reti/stakingPool.algo.ts:618", "pc": [ - 2153, - 2154 + 2152, + 2153 ] }, { - "teal": 2449, - "source": "examples/reti/stakingPool.algo.ts:619", + "teal": 2451, + "source": "examples/reti/stakingPool.algo.ts:623", "pc": [ + 2154, 2155 ] }, { - "teal": 2450, - "source": "examples/reti/stakingPool.algo.ts:618", + "teal": 2452, + "source": "examples/reti/stakingPool.algo.ts:623", "pc": [ 2156, 2157 ] }, { - "teal": 2455, + "teal": 2453, "source": "examples/reti/stakingPool.algo.ts:623", "pc": [ 2158, - 2159 + 2159, + 2160 ] }, { - "teal": 2456, + "teal": 2454, "source": "examples/reti/stakingPool.algo.ts:623", "pc": [ - 2160, 2161 ] }, { - "teal": 2457, + "teal": 2455, "source": "examples/reti/stakingPool.algo.ts:623", "pc": [ - 2162, - 2163, - 2164 + 2162 ] }, { - "teal": 2458, + "teal": 2456, "source": "examples/reti/stakingPool.algo.ts:623", "pc": [ + 2163, + 2164, 2165 ] }, { - "teal": 2459, - "source": "examples/reti/stakingPool.algo.ts:623", + "teal": 2461, + "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ - 2166 + 2166, + 2167 ] }, { - "teal": 2460, - "source": "examples/reti/stakingPool.algo.ts:623", + "teal": 2462, + "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ - 2167, - 2168, - 2169 + 2168 ] }, { - "teal": 2465, + "teal": 2463, + "source": "examples/reti/stakingPool.algo.ts:629", + "pc": [ + 2169, + 2170 + ] + }, + { + "teal": 2464, "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ - 2170, 2171 ] }, { - "teal": 2466, + "teal": 2465, "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ 2172 ] }, { - "teal": 2467, + "teal": 2466, "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ - 2173, - 2174 + 2173 ] }, { - "teal": 2468, + "teal": 2467, "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ + 2174, 2175 ] }, { - "teal": 2469, + "teal": 2468, "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ 2176 ] }, { - "teal": 2470, + "teal": 2469, "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ 2177 ] }, { - "teal": 2471, + "teal": 2470, "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ 2178, @@ -10012,21 +10018,21 @@ ] }, { - "teal": 2472, + "teal": 2471, "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ 2180 ] }, { - "teal": 2473, + "teal": 2472, "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ 2181 ] }, { - "teal": 2474, + "teal": 2473, "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ 2182, @@ -10034,53 +10040,53 @@ ] }, { - "teal": 2475, - "source": "examples/reti/stakingPool.algo.ts:629", - "pc": [ - 2184 - ] - }, - { - "teal": 2476, - "source": "examples/reti/stakingPool.algo.ts:629", + "teal": 2477, + "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ + 2184, 2185 ] }, { - "teal": 2477, - "source": "examples/reti/stakingPool.algo.ts:629", + "teal": 2478, + "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ 2186, - 2187 + 2187, + 2188 ] }, { - "teal": 2481, + "teal": 2479, "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ - 2188, 2189 ] }, { - "teal": 2482, + "teal": 2480, "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ 2190, - 2191, + 2191 + ] + }, + { + "teal": 2481, + "source": "examples/reti/stakingPool.algo.ts:632", + "pc": [ 2192 ] }, { - "teal": 2483, + "teal": 2482, "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ 2193 ] }, { - "teal": 2484, + "teal": 2483, "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ 2194, @@ -10088,145 +10094,127 @@ ] }, { - "teal": 2485, + "teal": 2484, "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ 2196 ] }, { - "teal": 2486, + "teal": 2485, "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ 2197 ] }, { - "teal": 2487, - "source": "examples/reti/stakingPool.algo.ts:632", - "pc": [ - 2198, - 2199 - ] - }, - { - "teal": 2488, + "teal": 2486, "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ - 2200 + 2198 ] }, { - "teal": 2489, + "teal": 2487, "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ - 2201 + 2199 ] }, { - "teal": 2490, + "teal": 2488, "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ - 2202 + 2200 ] }, { "teal": 2491, "source": "examples/reti/stakingPool.algo.ts:632", + "errorMessage": "wideRatio failed", "pc": [ - 2203 + 2201 ] }, { "teal": 2492, "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ - 2204 + 2202, + 2203 ] }, { - "teal": 2495, - "source": "examples/reti/stakingPool.algo.ts:632", - "errorMessage": "wideRatio failed", + "teal": 2500, + "source": "examples/reti/stakingPool.algo.ts:635", "pc": [ + 2204, 2205 ] }, { - "teal": 2496, - "source": "examples/reti/stakingPool.algo.ts:632", + "teal": 2501, + "source": "examples/reti/stakingPool.algo.ts:635", "pc": [ - 2206, - 2207 + 2206 ] }, { - "teal": 2504, + "teal": 2502, "source": "examples/reti/stakingPool.algo.ts:635", "pc": [ - 2208, - 2209 + 2207 ] }, { - "teal": 2505, + "teal": 2503, "source": "examples/reti/stakingPool.algo.ts:635", "pc": [ + 2208, + 2209, 2210 ] }, { - "teal": 2506, - "source": "examples/reti/stakingPool.algo.ts:635", + "teal": 2509, + "source": "examples/reti/stakingPool.algo.ts:640", "pc": [ - 2211 + 2211, + 2212 ] }, { - "teal": 2507, - "source": "examples/reti/stakingPool.algo.ts:635", + "teal": 2510, + "source": "examples/reti/stakingPool.algo.ts:640", "pc": [ - 2212, 2213, 2214 ] }, { - "teal": 2513, + "teal": 2511, "source": "examples/reti/stakingPool.algo.ts:640", "pc": [ - 2215, - 2216 + 2215 ] }, { - "teal": 2514, + "teal": 2512, "source": "examples/reti/stakingPool.algo.ts:640", "pc": [ + 2216, 2217, 2218 ] }, { - "teal": 2515, - "source": "examples/reti/stakingPool.algo.ts:640", - "pc": [ - 2219 - ] - }, - { - "teal": 2516, - "source": "examples/reti/stakingPool.algo.ts:640", + "teal": 2517, + "source": "examples/reti/stakingPool.algo.ts:641", "pc": [ + 2219, 2220, 2221, - 2222 - ] - }, - { - "teal": 2521, - "source": "examples/reti/stakingPool.algo.ts:641", - "pc": [ + 2222, 2223, 2224, 2225, @@ -10246,239 +10234,239 @@ 2239, 2240, 2241, - 2242, - 2243, - 2244, - 2245, - 2246 + 2242 ] }, { - "teal": 2522, + "teal": 2518, "source": "examples/reti/stakingPool.algo.ts:641", "pc": [ - 2247 + 2243 ] }, { - "teal": 2526, + "teal": 2522, "source": "examples/reti/stakingPool.algo.ts:642", "pc": [ - 2248 + 2244 ] }, { - "teal": 2534, + "teal": 2530, "source": "examples/reti/stakingPool.algo.ts:646", "pc": [ - 2249, - 2250 + 2245, + 2246 ] }, { - "teal": 2535, + "teal": 2531, "source": "examples/reti/stakingPool.algo.ts:646", "pc": [ - 2251, - 2252, - 2253 + 2247, + 2248, + 2249 ] }, { - "teal": 2540, + "teal": 2536, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2254, - 2255 + 2250, + 2251 ] }, { - "teal": 2541, + "teal": 2537, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2256, - 2257 + 2252, + 2253 ] }, { - "teal": 2542, + "teal": 2538, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2258 + 2254 ] }, { - "teal": 2543, + "teal": 2539, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2259 + 2255 ] }, { - "teal": 2544, + "teal": 2540, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2260, - 2261 + 2256, + 2257 ] }, { - "teal": 2545, + "teal": 2541, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2262, - 2263, - 2264 + 2258, + 2259, + 2260 ] }, { - "teal": 2546, + "teal": 2542, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2265 + 2261 ] }, { - "teal": 2547, + "teal": 2543, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2266 + 2262 ] }, { - "teal": 2548, + "teal": 2544, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2267 + 2263 ] }, { - "teal": 2549, + "teal": 2545, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2268 + 2264 ] }, { - "teal": 2550, + "teal": 2546, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2269 + 2265 ] }, { - "teal": 2551, + "teal": 2547, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2270 + 2266 ] }, { - "teal": 2554, + "teal": 2550, "source": "examples/reti/stakingPool.algo.ts:649", "errorMessage": "wideRatio failed", "pc": [ - 2271 + 2267 ] }, { - "teal": 2555, + "teal": 2551, "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2272, - 2273 + 2268, + 2269 ] }, { - "teal": 2559, + "teal": 2555, "source": "examples/reti/stakingPool.algo.ts:651", "pc": [ - 2274, - 2275 + 2270, + 2271 ] }, { - "teal": 2560, + "teal": 2556, "source": "examples/reti/stakingPool.algo.ts:651", "pc": [ - 2276, - 2277 + 2272, + 2273 ] }, { - "teal": 2561, + "teal": 2557, "source": "examples/reti/stakingPool.algo.ts:651", "pc": [ - 2278 + 2274 ] }, { - "teal": 2562, + "teal": 2558, "source": "examples/reti/stakingPool.algo.ts:651", "pc": [ - 2279, - 2280 + 2275, + 2276 ] }, { - "teal": 2570, + "teal": 2566, "source": "examples/reti/stakingPool.algo.ts:652", "pc": [ - 2281 + 2277 ] }, { - "teal": 2571, + "teal": 2567, "source": "examples/reti/stakingPool.algo.ts:652", "pc": [ - 2282 + 2278 ] }, { - "teal": 2572, + "teal": 2568, "source": "examples/reti/stakingPool.algo.ts:652", "pc": [ - 2283, - 2284 + 2279, + 2280 ] }, { - "teal": 2576, + "teal": 2572, "source": "examples/reti/stakingPool.algo.ts:653", "pc": [ - 2285, - 2286 + 2281, + 2282 ] }, { - "teal": 2577, + "teal": 2573, "source": "examples/reti/stakingPool.algo.ts:653", "pc": [ - 2287, - 2288 + 2283, + 2284 ] }, { - "teal": 2581, + "teal": 2577, "source": "examples/reti/stakingPool.algo.ts:654", "pc": [ - 2289, - 2290, - 2291 + 2285, + 2286, + 2287 ] }, { - "teal": 2582, + "teal": 2578, "source": "examples/reti/stakingPool.algo.ts:654", "pc": [ - 2292, - 2293 + 2288, + 2289 ] }, { - "teal": 2586, + "teal": 2582, "source": "examples/reti/stakingPool.algo.ts:655", "pc": [ + 2290, + 2291, + 2292, + 2293, 2294, 2295, 2296, @@ -10510,405 +10498,423 @@ 2322, 2323, 2324, - 2325, - 2326, - 2327, - 2328, - 2329 + 2325 ] }, { - "teal": 2587, + "teal": 2583, "source": "examples/reti/stakingPool.algo.ts:655", "pc": [ - 2330, - 2331 + 2326, + 2327 ] }, { - "teal": 2590, + "teal": 2586, "source": "examples/reti/stakingPool.algo.ts:652", "pc": [ - 2332 + 2328 ] }, { - "teal": 2591, + "teal": 2587, "source": "examples/reti/stakingPool.algo.ts:652", "pc": [ - 2333, - 2334 + 2329, + 2330 ] }, { - "teal": 2594, + "teal": 2590, "source": "examples/reti/stakingPool.algo.ts:652", "pc": [ - 2335 + 2331 ] }, { - "teal": 2598, + "teal": 2594, "source": "examples/reti/stakingPool.algo.ts:658", "pc": [ - 2336, - 2337 + 2332, + 2333 ] }, { - "teal": 2599, + "teal": 2595, "source": "examples/reti/stakingPool.algo.ts:658", "pc": [ - 2338, - 2339 + 2334, + 2335 ] }, { - "teal": 2600, + "teal": 2596, "source": "examples/reti/stakingPool.algo.ts:646", "pc": [ - 2340, + 2336, + 2337, + 2338 + ] + }, + { + "teal": 2601, + "source": "examples/reti/stakingPool.algo.ts:659", + "pc": [ + 2339, + 2340 + ] + }, + { + "teal": 2602, + "source": "examples/reti/stakingPool.algo.ts:659", + "pc": [ 2341, - 2342 + 2342, + 2343 ] }, { - "teal": 2605, + "teal": 2603, "source": "examples/reti/stakingPool.algo.ts:659", "pc": [ - 2343, 2344 ] }, { - "teal": 2606, + "teal": 2604, "source": "examples/reti/stakingPool.algo.ts:659", "pc": [ - 2345, - 2346, - 2347 + 2345 ] }, { - "teal": 2607, + "teal": 2605, "source": "examples/reti/stakingPool.algo.ts:659", "pc": [ - 2348 + 2346 ] }, { - "teal": 2608, + "teal": 2606, "source": "examples/reti/stakingPool.algo.ts:659", "pc": [ + 2347, + 2348, 2349 ] }, { - "teal": 2609, - "source": "examples/reti/stakingPool.algo.ts:659", + "teal": 2614, + "source": "examples/reti/stakingPool.algo.ts:663", "pc": [ - 2350 + 2350, + 2351 ] }, { - "teal": 2610, - "source": "examples/reti/stakingPool.algo.ts:659", + "teal": 2615, + "source": "examples/reti/stakingPool.algo.ts:663", "pc": [ - 2351, 2352, 2353 ] }, { - "teal": 2618, + "teal": 2616, "source": "examples/reti/stakingPool.algo.ts:663", "pc": [ 2354, - 2355 + 2355, + 2356 ] }, { - "teal": 2619, + "teal": 2617, "source": "examples/reti/stakingPool.algo.ts:663", "pc": [ - 2356, 2357 ] }, { - "teal": 2620, - "source": "examples/reti/stakingPool.algo.ts:663", + "teal": 2618, + "source": "examples/reti/stakingPool.algo.ts:662", "pc": [ - 2358, - 2359, - 2360 + 2358 ] }, { - "teal": 2621, - "source": "examples/reti/stakingPool.algo.ts:663", + "teal": 2619, + "source": "examples/reti/stakingPool.algo.ts:662", "pc": [ - 2361 + 2359 ] }, { - "teal": 2622, - "source": "examples/reti/stakingPool.algo.ts:662", + "teal": 2620, + "source": "examples/reti/stakingPool.algo.ts:664", "pc": [ - 2362 + 2360, + 2361 ] }, { - "teal": 2623, + "teal": 2621, "source": "examples/reti/stakingPool.algo.ts:662", "pc": [ - 2363 + 2362 ] }, { - "teal": 2624, - "source": "examples/reti/stakingPool.algo.ts:664", + "teal": 2622, + "source": "examples/reti/stakingPool.algo.ts:662", "pc": [ - 2364, - 2365 + 2363 ] }, { - "teal": 2625, + "teal": 2623, "source": "examples/reti/stakingPool.algo.ts:662", "pc": [ - 2366 + 2364 ] }, { - "teal": 2626, + "teal": 2624, "source": "examples/reti/stakingPool.algo.ts:662", "pc": [ - 2367 + 2365 ] }, { - "teal": 2627, + "teal": 2625, "source": "examples/reti/stakingPool.algo.ts:662", "pc": [ - 2368 + 2366 ] }, { "teal": 2628, "source": "examples/reti/stakingPool.algo.ts:662", + "errorMessage": "wideRatio failed", "pc": [ - 2369 + 2367 ] }, { "teal": 2629, "source": "examples/reti/stakingPool.algo.ts:662", "pc": [ - 2370 + 2368, + 2369 ] }, { - "teal": 2632, - "source": "examples/reti/stakingPool.algo.ts:662", - "errorMessage": "wideRatio failed", + "teal": 2633, + "source": "examples/reti/stakingPool.algo.ts:668", "pc": [ + 2370, 2371 ] }, { - "teal": 2633, - "source": "examples/reti/stakingPool.algo.ts:662", + "teal": 2634, + "source": "examples/reti/stakingPool.algo.ts:668", "pc": [ 2372, 2373 ] }, { - "teal": 2637, + "teal": 2635, "source": "examples/reti/stakingPool.algo.ts:668", "pc": [ - 2374, - 2375 + 2374 ] }, { - "teal": 2638, + "teal": 2636, "source": "examples/reti/stakingPool.algo.ts:668", "pc": [ - 2376, - 2377 + 2375, + 2376 ] }, { - "teal": 2639, - "source": "examples/reti/stakingPool.algo.ts:668", + "teal": 2641, + "source": "examples/reti/stakingPool.algo.ts:675", "pc": [ + 2377, 2378 ] }, { - "teal": 2640, - "source": "examples/reti/stakingPool.algo.ts:668", + "teal": 2642, + "source": "examples/reti/stakingPool.algo.ts:675", "pc": [ - 2379, - 2380 + 2379 ] }, { - "teal": 2645, + "teal": 2643, "source": "examples/reti/stakingPool.algo.ts:675", "pc": [ - 2381, - 2382 + 2380 ] }, { - "teal": 2646, + "teal": 2644, "source": "examples/reti/stakingPool.algo.ts:675", "pc": [ + 2381, + 2382, 2383 ] }, { - "teal": 2647, - "source": "examples/reti/stakingPool.algo.ts:675", + "teal": 2649, + "source": "examples/reti/stakingPool.algo.ts:678", "pc": [ 2384 ] }, { - "teal": 2648, - "source": "examples/reti/stakingPool.algo.ts:675", + "teal": 2650, + "source": "examples/reti/stakingPool.algo.ts:678", "pc": [ 2385, - 2386, - 2387 + 2386 ] }, { - "teal": 2653, - "source": "examples/reti/stakingPool.algo.ts:678", + "teal": 2656, + "source": "examples/reti/stakingPool.algo.ts:680", "pc": [ + 2387, 2388 ] }, { - "teal": 2654, - "source": "examples/reti/stakingPool.algo.ts:678", + "teal": 2657, + "source": "examples/reti/stakingPool.algo.ts:680", "pc": [ 2389, - 2390 + 2390, + 2391 ] }, { - "teal": 2660, + "teal": 2658, "source": "examples/reti/stakingPool.algo.ts:680", "pc": [ - 2391, - 2392 + 2392, + 2393 ] }, { - "teal": 2661, + "teal": 2659, "source": "examples/reti/stakingPool.algo.ts:680", "pc": [ - 2393, 2394, - 2395 + 2395, + 2396 ] }, { - "teal": 2662, + "teal": 2660, "source": "examples/reti/stakingPool.algo.ts:680", "pc": [ - 2396, 2397 ] }, { - "teal": 2663, + "teal": 2661, "source": "examples/reti/stakingPool.algo.ts:680", "pc": [ - 2398, - 2399, - 2400 + 2398 ] }, { - "teal": 2664, + "teal": 2662, "source": "examples/reti/stakingPool.algo.ts:680", "pc": [ + 2399, + 2400, 2401 ] }, + { + "teal": 2663, + "source": "examples/reti/stakingPool.algo.ts:681", + "pc": [ + 2402, + 2403 + ] + }, + { + "teal": 2664, + "source": "examples/reti/stakingPool.algo.ts:681", + "pc": [ + 2404, + 2405, + 2406 + ] + }, { "teal": 2665, - "source": "examples/reti/stakingPool.algo.ts:680", + "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ - 2402 + 2407, + 2408 ] }, { "teal": 2666, - "source": "examples/reti/stakingPool.algo.ts:680", + "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ - 2403, - 2404, - 2405 + 2409 ] }, { "teal": 2667, "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ - 2406, - 2407 + 2410, + 2411 ] }, { "teal": 2668, "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ - 2408, - 2409, - 2410 + 2412, + 2413, + 2414 ] }, { "teal": 2669, "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ - 2411, - 2412 + 2415, + 2416 ] }, { "teal": 2670, "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ - 2413 + 2417 ] }, { "teal": 2671, "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ - 2414, - 2415 - ] - }, - { - "teal": 2672, - "source": "examples/reti/stakingPool.algo.ts:681", - "pc": [ - 2416, - 2417, 2418 ] }, { - "teal": 2673, + "teal": 2672, "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ 2419, @@ -10916,182 +10922,164 @@ ] }, { - "teal": 2674, + "teal": 2673, "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ 2421 ] }, { - "teal": 2675, - "source": "examples/reti/stakingPool.algo.ts:681", + "teal": 2674, + "source": "examples/reti/stakingPool.algo.ts:680", "pc": [ 2422 ] }, - { - "teal": 2676, - "source": "examples/reti/stakingPool.algo.ts:681", - "pc": [ - 2423, - 2424 - ] - }, { "teal": 2677, - "source": "examples/reti/stakingPool.algo.ts:681", + "source": "examples/reti/stakingPool.algo.ts:679", "pc": [ + 2423, + 2424, 2425 ] }, { - "teal": 2678, - "source": "examples/reti/stakingPool.algo.ts:680", + "teal": 2682, + "source": "examples/reti/stakingPool.algo.ts:683", "pc": [ - 2426 + 2426, + 2427 ] }, { - "teal": 2681, - "source": "examples/reti/stakingPool.algo.ts:679", + "teal": 2683, + "source": "examples/reti/stakingPool.algo.ts:683", "pc": [ - 2427, 2428, 2429 ] }, { - "teal": 2686, + "teal": 2684, "source": "examples/reti/stakingPool.algo.ts:683", "pc": [ - 2430, - 2431 + 2430 ] }, { - "teal": 2687, + "teal": 2685, "source": "examples/reti/stakingPool.algo.ts:683", "pc": [ + 2431, 2432, 2433 ] }, { - "teal": 2688, + "teal": 2686, "source": "examples/reti/stakingPool.algo.ts:683", "pc": [ - 2434 + 2434, + 2435 ] }, { - "teal": 2689, + "teal": 2687, "source": "examples/reti/stakingPool.algo.ts:683", "pc": [ - 2435, 2436, - 2437 + 2437, + 2438 ] }, { "teal": 2690, "source": "examples/reti/stakingPool.algo.ts:683", "pc": [ - 2438, - 2439 + 2439, + 2440 ] }, { - "teal": 2691, + "teal": 2693, "source": "examples/reti/stakingPool.algo.ts:683", "pc": [ - 2440, 2441, 2442 ] }, { - "teal": 2694, - "source": "examples/reti/stakingPool.algo.ts:683", + "teal": 2701, + "source": "examples/reti/stakingPool.algo.ts:684", "pc": [ - 2443, - 2444 + 2443 ] }, { - "teal": 2697, - "source": "examples/reti/stakingPool.algo.ts:683", + "teal": 2702, + "source": "examples/reti/stakingPool.algo.ts:684", "pc": [ - 2445, - 2446 + 2444 ] }, { - "teal": 2705, + "teal": 2703, "source": "examples/reti/stakingPool.algo.ts:684", "pc": [ - 2447 + 2445, + 2446 ] }, { - "teal": 2706, - "source": "examples/reti/stakingPool.algo.ts:684", + "teal": 2707, + "source": "examples/reti/stakingPool.algo.ts:685", "pc": [ + 2447, 2448 ] }, { - "teal": 2707, - "source": "examples/reti/stakingPool.algo.ts:684", + "teal": 2708, + "source": "examples/reti/stakingPool.algo.ts:685", "pc": [ 2449, 2450 ] }, { - "teal": 2711, - "source": "examples/reti/stakingPool.algo.ts:685", + "teal": 2712, + "source": "examples/reti/stakingPool.algo.ts:686", "pc": [ 2451, 2452 ] }, { - "teal": 2712, - "source": "examples/reti/stakingPool.algo.ts:685", - "pc": [ - 2453, - 2454 - ] - }, - { - "teal": 2716, + "teal": 2713, "source": "examples/reti/stakingPool.algo.ts:686", "pc": [ - 2455, - 2456 + 2453, + 2454, + 2455 ] }, { - "teal": 2717, + "teal": 2714, "source": "examples/reti/stakingPool.algo.ts:686", "pc": [ - 2457, - 2458, - 2459 + 2456, + 2457 ] }, { "teal": 2718, - "source": "examples/reti/stakingPool.algo.ts:686", - "pc": [ - 2460, - 2461 - ] - }, - { - "teal": 2722, "source": "examples/reti/stakingPool.algo.ts:687", "pc": [ + 2458, + 2459, + 2460, + 2461, 2462, 2463, 2464, @@ -11142,171 +11130,171 @@ 2509, 2510, 2511, - 2512, - 2513, - 2514, - 2515, - 2516 + 2512 ] }, { - "teal": 2723, + "teal": 2719, "source": "examples/reti/stakingPool.algo.ts:687", "pc": [ - 2517, - 2518 + 2513, + 2514 ] }, { - "teal": 2726, + "teal": 2722, "source": "examples/reti/stakingPool.algo.ts:684", "pc": [ - 2519 + 2515 ] }, { - "teal": 2727, + "teal": 2723, "source": "examples/reti/stakingPool.algo.ts:684", "pc": [ - 2520, - 2521 + 2516, + 2517 ] }, { - "teal": 2730, + "teal": 2726, "source": "examples/reti/stakingPool.algo.ts:684", "pc": [ - 2522 + 2518 ] }, { - "teal": 2736, + "teal": 2732, "source": "examples/reti/stakingPool.algo.ts:690", "pc": [ - 2523, - 2524 + 2519, + 2520 ] }, { - "teal": 2737, + "teal": 2733, "source": "examples/reti/stakingPool.algo.ts:690", "pc": [ - 2525, - 2526 + 2521, + 2522 ] }, { - "teal": 2738, + "teal": 2734, "source": "examples/reti/stakingPool.algo.ts:690", "pc": [ - 2527 + 2523 ] }, { - "teal": 2739, + "teal": 2735, "source": "examples/reti/stakingPool.algo.ts:690", "pc": [ - 2528 + 2524 ] }, { - "teal": 2740, + "teal": 2736, "source": "examples/reti/stakingPool.algo.ts:690", "pc": [ - 2529 + 2525 ] }, { - "teal": 2741, + "teal": 2737, "source": "examples/reti/stakingPool.algo.ts:690", "pc": [ - 2530, - 2531, - 2532 + 2526, + 2527, + 2528 ] }, { - "teal": 2750, + "teal": 2746, "source": "examples/reti/stakingPool.algo.ts:691", "pc": [ - 2533 + 2529 ] }, { - "teal": 2751, + "teal": 2747, "source": "examples/reti/stakingPool.algo.ts:691", "pc": [ - 2534 + 2530 ] }, { - "teal": 2752, + "teal": 2748, "source": "examples/reti/stakingPool.algo.ts:691", "pc": [ - 2535, - 2536 + 2531, + 2532 ] }, { - "teal": 2756, + "teal": 2752, "source": "examples/reti/stakingPool.algo.ts:692", "pc": [ - 2537, - 2538 + 2533, + 2534 ] }, { - "teal": 2757, + "teal": 2753, "source": "examples/reti/stakingPool.algo.ts:692", "pc": [ - 2539, - 2540 + 2535, + 2536 ] }, { - "teal": 2758, + "teal": 2754, "source": "examples/reti/stakingPool.algo.ts:692", "pc": [ - 2541 + 2537 ] }, { - "teal": 2759, + "teal": 2755, "source": "examples/reti/stakingPool.algo.ts:692", "pc": [ - 2542, - 2543 + 2538, + 2539 ] }, { - "teal": 2763, + "teal": 2759, "source": "examples/reti/stakingPool.algo.ts:693", "pc": [ - 2544, - 2545 + 2540, + 2541 ] }, { - "teal": 2764, + "teal": 2760, "source": "examples/reti/stakingPool.algo.ts:693", "pc": [ - 2546, - 2547, - 2548 + 2542, + 2543, + 2544 ] }, { - "teal": 2765, + "teal": 2761, "source": "examples/reti/stakingPool.algo.ts:693", "pc": [ - 2549, - 2550 + 2545, + 2546 ] }, { - "teal": 2769, + "teal": 2765, "source": "examples/reti/stakingPool.algo.ts:694", "pc": [ + 2547, + 2548, + 2549, + 2550, 2551, 2552, 2553, @@ -11320,158 +11308,170 @@ 2561, 2562, 2563, - 2564, + 2564 + ] + }, + { + "teal": 2766, + "source": "examples/reti/stakingPool.algo.ts:694", + "pc": [ 2565, - 2566, - 2567, - 2568 + 2566 + ] + }, + { + "teal": 2769, + "source": "examples/reti/stakingPool.algo.ts:691", + "pc": [ + 2567 ] }, { "teal": 2770, - "source": "examples/reti/stakingPool.algo.ts:694", + "source": "examples/reti/stakingPool.algo.ts:691", "pc": [ - 2569, - 2570 + 2568, + 2569 ] }, { "teal": 2773, "source": "examples/reti/stakingPool.algo.ts:691", "pc": [ - 2571 + 2570 ] }, { - "teal": 2774, - "source": "examples/reti/stakingPool.algo.ts:691", + "teal": 2782, + "source": "examples/reti/stakingPool.algo.ts:706", "pc": [ - 2572, - 2573 + 2571 ] }, { - "teal": 2777, - "source": "examples/reti/stakingPool.algo.ts:691", + "teal": 2783, + "source": "examples/reti/stakingPool.algo.ts:706", "pc": [ - 2574 + 2572, + 2573 ] }, { - "teal": 2786, - "source": "examples/reti/stakingPool.algo.ts:706", + "teal": 2788, + "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ + 2574, 2575 ] }, { - "teal": 2787, - "source": "examples/reti/stakingPool.algo.ts:706", + "teal": 2789, + "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ - 2576, - 2577 + 2576 ] }, { - "teal": 2792, + "teal": 2790, "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ - 2578, - 2579 + 2577 ] }, { - "teal": 2793, + "teal": 2791, "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ - 2580 + 2578 ] }, { - "teal": 2794, + "teal": 2792, "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ + 2579, + 2580, 2581 ] }, { - "teal": 2795, + "teal": 2793, "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ - 2582 + 2582, + 2583 ] }, { - "teal": 2796, + "teal": 2794, "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ - 2583, - 2584, - 2585 + 2584 ] }, { - "teal": 2797, + "teal": 2795, "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ - 2586, - 2587 + 2585 ] }, { - "teal": 2798, + "teal": 2796, "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ - 2588 + 2586 ] }, { "teal": 2799, "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ + 2587, + 2588, 2589 ] }, { - "teal": 2800, - "source": "examples/reti/stakingPool.algo.ts:730", + "teal": 2804, + "source": "examples/reti/stakingPool.algo.ts:731", "pc": [ 2590 ] }, { - "teal": 2803, - "source": "examples/reti/stakingPool.algo.ts:730", + "teal": 2805, + "source": "examples/reti/stakingPool.algo.ts:731", "pc": [ 2591, - 2592, - 2593 + 2592 ] }, { - "teal": 2808, - "source": "examples/reti/stakingPool.algo.ts:731", + "teal": 2809, + "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ - 2594 + 2593 ] }, { - "teal": 2809, - "source": "examples/reti/stakingPool.algo.ts:731", + "teal": 2810, + "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ - 2595, - 2596 + 2594, + 2595 ] }, { - "teal": 2813, + "teal": 2815, "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ + 2596, 2597 ] }, { - "teal": 2814, + "teal": 2816, "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ 2598, @@ -11479,123 +11479,123 @@ ] }, { - "teal": 2819, + "teal": 2817, "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ - 2600, - 2601 + 2600 ] }, { - "teal": 2820, + "teal": 2818, "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ + 2601, 2602, 2603 ] }, { - "teal": 2821, - "source": "examples/reti/stakingPool.algo.ts:732", + "teal": 2823, + "source": "examples/reti/stakingPool.algo.ts:733", "pc": [ - 2604 + 2604, + 2605 ] }, { - "teal": 2822, - "source": "examples/reti/stakingPool.algo.ts:732", + "teal": 2824, + "source": "examples/reti/stakingPool.algo.ts:733", "pc": [ - 2605, 2606, 2607 ] }, { - "teal": 2827, + "teal": 2825, "source": "examples/reti/stakingPool.algo.ts:733", "pc": [ - 2608, - 2609 + 2608 ] }, { - "teal": 2828, + "teal": 2826, "source": "examples/reti/stakingPool.algo.ts:733", "pc": [ + 2609, 2610, 2611 ] }, { - "teal": 2829, - "source": "examples/reti/stakingPool.algo.ts:733", + "teal": 2831, + "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ 2612 ] }, { - "teal": 2830, - "source": "examples/reti/stakingPool.algo.ts:733", + "teal": 2832, + "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2613, - 2614, - 2615 + 2613 ] }, { - "teal": 2835, + "teal": 2833, "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2616 + 2614, + 2615 ] }, { - "teal": 2836, + "teal": 2834, "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2617 + 2616 ] }, { - "teal": 2837, + "teal": 2835, "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2618, - 2619 + 2617, + 2618 ] }, { - "teal": 2838, + "teal": 2836, "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ + 2619, 2620 ] }, { - "teal": 2839, + "teal": 2837, "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2621, - 2622 + 2621 ] }, { - "teal": 2840, + "teal": 2838, "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2623, - 2624 + 2622, + 2623 ] }, { - "teal": 2841, + "teal": 2839, "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ + 2624, 2625 ] }, { - "teal": 2842, + "teal": 2840, "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ 2626, @@ -11603,7 +11603,7 @@ ] }, { - "teal": 2843, + "teal": 2841, "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ 2628, @@ -11611,562 +11611,574 @@ ] }, { - "teal": 2844, + "teal": 2842, "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2630, - 2631 + 2630 ] }, { - "teal": 2845, - "source": "examples/reti/stakingPool.algo.ts:734", + "teal": 2847, + "source": "examples/reti/stakingPool.algo.ts:736", "pc": [ - 2632, - 2633 + 2631, + 2632 ] }, { - "teal": 2846, - "source": "examples/reti/stakingPool.algo.ts:734", + "teal": 2848, + "source": "examples/reti/stakingPool.algo.ts:736", "pc": [ - 2634 + 2633 ] }, { - "teal": 2851, + "teal": 2849, "source": "examples/reti/stakingPool.algo.ts:736", "pc": [ - 2635, - 2636 + 2634 ] }, { - "teal": 2852, + "teal": 2850, "source": "examples/reti/stakingPool.algo.ts:736", "pc": [ - 2637 + 2635 ] }, { - "teal": 2853, + "teal": 2851, "source": "examples/reti/stakingPool.algo.ts:736", "pc": [ - 2638 + 2636 ] }, { - "teal": 2854, + "teal": 2852, "source": "examples/reti/stakingPool.algo.ts:736", "pc": [ - 2639 + 2637, + 2638 ] }, { - "teal": 2855, + "teal": 2853, "source": "examples/reti/stakingPool.algo.ts:736", "pc": [ - 2640 + 2639 ] }, { - "teal": 2856, + "teal": 2854, "source": "examples/reti/stakingPool.algo.ts:736", "pc": [ - 2641, - 2642 + 2640, + 2641 ] }, { - "teal": 2857, - "source": "examples/reti/stakingPool.algo.ts:736", + "teal": 2859, + "source": "examples/reti/stakingPool.algo.ts:737", "pc": [ + 2642, 2643 ] }, { - "teal": 2858, - "source": "examples/reti/stakingPool.algo.ts:736", + "teal": 2860, + "source": "examples/reti/stakingPool.algo.ts:737", "pc": [ 2644, - 2645 + 2645, + 2646 ] }, { - "teal": 2863, + "teal": 2861, "source": "examples/reti/stakingPool.algo.ts:737", "pc": [ - 2646, - 2647 + 2647, + 2648 ] }, { - "teal": 2864, + "teal": 2862, "source": "examples/reti/stakingPool.algo.ts:737", "pc": [ - 2648, - 2649, - 2650 + 2649 ] }, { - "teal": 2865, + "teal": 2863, "source": "examples/reti/stakingPool.algo.ts:737", "pc": [ + 2650, 2651, 2652 ] }, { - "teal": 2866, - "source": "examples/reti/stakingPool.algo.ts:737", + "teal": 2869, + "source": "examples/reti/stakingPool.algo.ts:738", "pc": [ - 2653 + 2653, + 2654 ] }, { - "teal": 2867, - "source": "examples/reti/stakingPool.algo.ts:737", + "teal": 2870, + "source": "examples/reti/stakingPool.algo.ts:738", "pc": [ - 2654, 2655, - 2656 + 2656, + 2657 ] }, { - "teal": 2873, + "teal": 2871, "source": "examples/reti/stakingPool.algo.ts:738", "pc": [ - 2657, 2658 ] }, { - "teal": 2874, + "teal": 2872, "source": "examples/reti/stakingPool.algo.ts:738", "pc": [ 2659, - 2660, - 2661 + 2660 ] }, { - "teal": 2875, + "teal": 2873, "source": "examples/reti/stakingPool.algo.ts:738", "pc": [ - 2662 + 2661 ] }, { - "teal": 2876, + "teal": 2874, "source": "examples/reti/stakingPool.algo.ts:738", "pc": [ + 2662, 2663, 2664 ] }, { - "teal": 2877, - "source": "examples/reti/stakingPool.algo.ts:738", + "teal": 2879, + "source": "examples/reti/stakingPool.algo.ts:741", "pc": [ - 2665 + 2665, + 2666 ] }, { - "teal": 2878, - "source": "examples/reti/stakingPool.algo.ts:738", + "teal": 2880, + "source": "examples/reti/stakingPool.algo.ts:741", "pc": [ - 2666, 2667, 2668 ] }, { - "teal": 2883, + "teal": 2881, "source": "examples/reti/stakingPool.algo.ts:741", "pc": [ 2669, - 2670 + 2670, + 2671 ] }, { - "teal": 2884, + "teal": 2882, "source": "examples/reti/stakingPool.algo.ts:741", "pc": [ - 2671, 2672 ] }, { - "teal": 2885, + "teal": 2883, "source": "examples/reti/stakingPool.algo.ts:741", "pc": [ - 2673, - 2674, - 2675 + 2673 ] }, { - "teal": 2886, + "teal": 2884, "source": "examples/reti/stakingPool.algo.ts:741", "pc": [ - 2676 + 2674, + 2675 ] }, { - "teal": 2887, - "source": "examples/reti/stakingPool.algo.ts:741", + "teal": 2885, + "source": "examples/reti/stakingPool.algo.ts:738", "pc": [ - 2677 + 2676, + 2677, + 2678 ] }, { - "teal": 2888, - "source": "examples/reti/stakingPool.algo.ts:741", + "teal": 2890, + "source": "examples/reti/stakingPool.algo.ts:745", "pc": [ - 2678, - 2679 + 2679, + 2680 ] }, { - "teal": 2889, - "source": "examples/reti/stakingPool.algo.ts:738", + "teal": 2891, + "source": "examples/reti/stakingPool.algo.ts:745", "pc": [ - 2680, 2681, 2682 ] }, { - "teal": 2894, + "teal": 2892, "source": "examples/reti/stakingPool.algo.ts:745", "pc": [ 2683, - 2684 + 2684, + 2685 ] }, { - "teal": 2895, + "teal": 2893, "source": "examples/reti/stakingPool.algo.ts:745", "pc": [ - 2685, 2686 ] }, { - "teal": 2896, + "teal": 2894, "source": "examples/reti/stakingPool.algo.ts:745", "pc": [ - 2687, - 2688, - 2689 + 2687 ] }, { - "teal": 2897, + "teal": 2895, "source": "examples/reti/stakingPool.algo.ts:745", "pc": [ - 2690 + 2688, + 2689 ] }, { - "teal": 2898, - "source": "examples/reti/stakingPool.algo.ts:745", + "teal": 2900, + "source": "examples/reti/stakingPool.algo.ts:749", "pc": [ + 2690, 2691 ] }, { - "teal": 2899, - "source": "examples/reti/stakingPool.algo.ts:745", + "teal": 2901, + "source": "examples/reti/stakingPool.algo.ts:749", "pc": [ 2692, 2693 ] }, { - "teal": 2904, + "teal": 2902, "source": "examples/reti/stakingPool.algo.ts:749", "pc": [ - 2694, - 2695 + 2694 ] }, { - "teal": 2905, + "teal": 2903, "source": "examples/reti/stakingPool.algo.ts:749", "pc": [ + 2695, 2696, 2697 ] }, { - "teal": 2906, - "source": "examples/reti/stakingPool.algo.ts:749", + "teal": 2908, + "source": "examples/reti/stakingPool.algo.ts:750", "pc": [ - 2698 + 2698, + 2699 ] }, { - "teal": 2907, - "source": "examples/reti/stakingPool.algo.ts:749", + "teal": 2909, + "source": "examples/reti/stakingPool.algo.ts:750", "pc": [ - 2699, 2700, 2701 ] }, { - "teal": 2912, + "teal": 2910, "source": "examples/reti/stakingPool.algo.ts:750", "pc": [ 2702, - 2703 + 2703, + 2704 ] }, { - "teal": 2913, + "teal": 2911, "source": "examples/reti/stakingPool.algo.ts:750", "pc": [ - 2704, 2705 ] }, { - "teal": 2914, + "teal": 2912, "source": "examples/reti/stakingPool.algo.ts:750", "pc": [ - 2706, - 2707, - 2708 + 2706 ] }, { - "teal": 2915, + "teal": 2913, "source": "examples/reti/stakingPool.algo.ts:750", "pc": [ - 2709 + 2707, + 2708 ] }, { - "teal": 2916, - "source": "examples/reti/stakingPool.algo.ts:750", + "teal": 2917, + "source": "examples/reti/stakingPool.algo.ts:751", "pc": [ + 2709, 2710 ] }, { - "teal": 2917, - "source": "examples/reti/stakingPool.algo.ts:750", + "teal": 2918, + "source": "examples/reti/stakingPool.algo.ts:751", "pc": [ 2711, 2712 ] }, { - "teal": 2921, + "teal": 2919, "source": "examples/reti/stakingPool.algo.ts:751", "pc": [ - 2713, - 2714 + 2713 ] }, { - "teal": 2922, + "teal": 2920, "source": "examples/reti/stakingPool.algo.ts:751", "pc": [ - 2715, - 2716 + 2714, + 2715 ] }, { - "teal": 2923, + "teal": 2921, "source": "examples/reti/stakingPool.algo.ts:751", "pc": [ - 2717 + 2716 ] }, { - "teal": 2924, + "teal": 2922, "source": "examples/reti/stakingPool.algo.ts:751", "pc": [ - 2718, - 2719 + 2717, + 2718 ] }, { - "teal": 2925, - "source": "examples/reti/stakingPool.algo.ts:751", + "teal": 2927, + "source": "examples/reti/stakingPool.algo.ts:753", "pc": [ + 2719, 2720 ] }, { - "teal": 2926, - "source": "examples/reti/stakingPool.algo.ts:751", + "teal": 2928, + "source": "examples/reti/stakingPool.algo.ts:753", "pc": [ - 2721, - 2722 + 2721 ] }, { - "teal": 2931, + "teal": 2929, "source": "examples/reti/stakingPool.algo.ts:753", "pc": [ - 2723, - 2724 + 2722 ] }, { - "teal": 2932, + "teal": 2930, "source": "examples/reti/stakingPool.algo.ts:753", "pc": [ + 2723, + 2724, 2725 ] }, { - "teal": 2933, - "source": "examples/reti/stakingPool.algo.ts:753", + "teal": 2938, + "source": "examples/reti/stakingPool.algo.ts:756", "pc": [ - 2726 + 2726, + 2727 ] }, { - "teal": 2934, - "source": "examples/reti/stakingPool.algo.ts:753", + "teal": 2939, + "source": "examples/reti/stakingPool.algo.ts:756", "pc": [ - 2727, 2728, - 2729 + 2729, + 2730 ] }, { - "teal": 2942, + "teal": 2940, "source": "examples/reti/stakingPool.algo.ts:756", "pc": [ - 2730, 2731 ] }, { - "teal": 2943, + "teal": 2941, "source": "examples/reti/stakingPool.algo.ts:756", "pc": [ 2732, - 2733, + 2733 + ] + }, + { + "teal": 2942, + "source": "examples/reti/stakingPool.algo.ts:755", + "pc": [ 2734 ] }, { - "teal": 2944, + "teal": 2943, "source": "examples/reti/stakingPool.algo.ts:756", "pc": [ - 2735 + 2735, + 2736 + ] + }, + { + "teal": 2944, + "source": "examples/reti/stakingPool.algo.ts:755", + "pc": [ + 2737, + 2738 ] }, { "teal": 2945, - "source": "examples/reti/stakingPool.algo.ts:756", + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 2736, - 2737 + 2739, + 2740 ] }, { "teal": 2946, "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 2738 + 2741 ] }, { "teal": 2947, - "source": "examples/reti/stakingPool.algo.ts:756", + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 2739, - 2740 + 2742, + 2743 ] }, { "teal": 2948, "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 2741, - 2742 + 2744 ] }, { "teal": 2949, "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 2743, - 2744 + 2745, + 2746 ] }, { "teal": 2950, "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 2745 + 2747 ] }, { "teal": 2951, "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 2746, - 2747 + 2748 ] }, { "teal": 2952, - "source": "examples/reti/stakingPool.algo.ts:755", + "source": "examples/reti/stakingPool.algo.ts:757", "pc": [ - 2748 + 2749, + 2750 ] }, { "teal": 2953, - "source": "examples/reti/stakingPool.algo.ts:755", + "source": "examples/reti/stakingPool.algo.ts:757", "pc": [ - 2749, - 2750 + 2751 ] }, { "teal": 2954, - "source": "examples/reti/stakingPool.algo.ts:755", + "source": "examples/reti/stakingPool.algo.ts:757", "pc": [ - 2751 + 2752, + 2753 ] }, { "teal": 2955, "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 2752 + 2754 ] }, { "teal": 2956, - "source": "examples/reti/stakingPool.algo.ts:757", + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 2753, - 2754 + 2755 ] }, { "teal": 2957, - "source": "examples/reti/stakingPool.algo.ts:757", + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 2755 + 2756 ] }, { "teal": 2958, - "source": "examples/reti/stakingPool.algo.ts:757", + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 2756, 2757 ] }, @@ -12184,83 +12196,71 @@ 2759 ] }, - { - "teal": 2961, - "source": "examples/reti/stakingPool.algo.ts:755", - "pc": [ - 2760 - ] - }, - { - "teal": 2962, - "source": "examples/reti/stakingPool.algo.ts:755", - "pc": [ - 2761 - ] - }, { "teal": 2963, "source": "examples/reti/stakingPool.algo.ts:755", + "errorMessage": "wideRatio failed", "pc": [ - 2762 + 2760 ] }, { "teal": 2964, "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 2763 + 2761, + 2762 ] }, { - "teal": 2967, - "source": "examples/reti/stakingPool.algo.ts:755", - "errorMessage": "wideRatio failed", + "teal": 2968, + "source": "examples/reti/stakingPool.algo.ts:762", "pc": [ + 2763, 2764 ] }, { - "teal": 2968, - "source": "examples/reti/stakingPool.algo.ts:755", + "teal": 2969, + "source": "examples/reti/stakingPool.algo.ts:762", "pc": [ 2765, 2766 ] }, { - "teal": 2972, + "teal": 2970, "source": "examples/reti/stakingPool.algo.ts:762", "pc": [ - 2767, - 2768 + 2767 ] }, { - "teal": 2973, + "teal": 2971, "source": "examples/reti/stakingPool.algo.ts:762", "pc": [ - 2769, - 2770 + 2768, + 2769 ] }, { - "teal": 2974, - "source": "examples/reti/stakingPool.algo.ts:762", + "teal": 2975, + "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ + 2770, 2771 ] }, { - "teal": 2975, - "source": "examples/reti/stakingPool.algo.ts:762", + "teal": 2976, + "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ 2772, 2773 ] }, { - "teal": 2979, + "teal": 2977, "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ 2774, @@ -12268,263 +12268,275 @@ ] }, { - "teal": 2980, + "teal": 2978, "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ 2776, - 2777 + 2777, + 2778 ] }, { - "teal": 2981, + "teal": 2979, "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ - 2778, 2779 ] }, { - "teal": 2982, + "teal": 2980, "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ 2780, - 2781, - 2782 + 2781 ] }, { - "teal": 2983, + "teal": 2981, "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ - 2783 + 2782 ] }, { - "teal": 2984, + "teal": 2982, "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ - 2784, - 2785 + 2783 ] }, { - "teal": 2985, + "teal": 2983, "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ - 2786 + 2784 ] }, { - "teal": 2986, + "teal": 2984, "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ - 2787 + 2785, + 2786 ] }, { - "teal": 2987, - "source": "examples/reti/stakingPool.algo.ts:763", + "teal": 2988, + "source": "examples/reti/stakingPool.algo.ts:764", "pc": [ + 2787, 2788 ] }, { - "teal": 2988, - "source": "examples/reti/stakingPool.algo.ts:763", + "teal": 2989, + "source": "examples/reti/stakingPool.algo.ts:764", "pc": [ 2789, 2790 ] }, { - "teal": 2992, + "teal": 2990, "source": "examples/reti/stakingPool.algo.ts:764", "pc": [ - 2791, - 2792 + 2791 ] }, { - "teal": 2993, + "teal": 2991, "source": "examples/reti/stakingPool.algo.ts:764", "pc": [ - 2793, - 2794 + 2792, + 2793 ] }, { - "teal": 2994, - "source": "examples/reti/stakingPool.algo.ts:764", + "teal": 2997, + "source": "examples/reti/stakingPool.algo.ts:766", "pc": [ + 2794, 2795 ] }, { - "teal": 2995, - "source": "examples/reti/stakingPool.algo.ts:764", + "teal": 2998, + "source": "examples/reti/stakingPool.algo.ts:766", "pc": [ - 2796, - 2797 + 2796 ] }, { - "teal": 3001, + "teal": 2999, "source": "examples/reti/stakingPool.algo.ts:766", "pc": [ - 2798, - 2799 + 2797 ] }, { - "teal": 3002, + "teal": 3000, "source": "examples/reti/stakingPool.algo.ts:766", "pc": [ + 2798, + 2799, 2800 ] }, { - "teal": 3003, - "source": "examples/reti/stakingPool.algo.ts:766", + "teal": 3008, + "source": "examples/reti/stakingPool.algo.ts:769", "pc": [ - 2801 + 2801, + 2802 ] }, { - "teal": 3004, - "source": "examples/reti/stakingPool.algo.ts:766", + "teal": 3009, + "source": "examples/reti/stakingPool.algo.ts:769", "pc": [ - 2802, 2803, - 2804 + 2804, + 2805 ] }, { - "teal": 3012, + "teal": 3010, "source": "examples/reti/stakingPool.algo.ts:769", "pc": [ - 2805, 2806 ] }, { - "teal": 3013, + "teal": 3011, "source": "examples/reti/stakingPool.algo.ts:769", "pc": [ 2807, - 2808, + 2808 + ] + }, + { + "teal": 3012, + "source": "examples/reti/stakingPool.algo.ts:768", + "pc": [ 2809 ] }, { - "teal": 3014, + "teal": 3013, "source": "examples/reti/stakingPool.algo.ts:769", "pc": [ - 2810 + 2810, + 2811 + ] + }, + { + "teal": 3014, + "source": "examples/reti/stakingPool.algo.ts:768", + "pc": [ + 2812, + 2813 ] }, { "teal": 3015, - "source": "examples/reti/stakingPool.algo.ts:769", + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 2811, - 2812 + 2814, + 2815 ] }, { "teal": 3016, "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 2813 + 2816 ] }, { "teal": 3017, - "source": "examples/reti/stakingPool.algo.ts:769", + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 2814, - 2815 + 2817, + 2818 ] }, { "teal": 3018, "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 2816, - 2817 + 2819 ] }, { "teal": 3019, "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 2818, - 2819 + 2820, + 2821 ] }, { "teal": 3020, "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 2820 + 2822 ] }, { "teal": 3021, "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 2821, - 2822 + 2823 ] }, { "teal": 3022, - "source": "examples/reti/stakingPool.algo.ts:768", + "source": "examples/reti/stakingPool.algo.ts:770", "pc": [ - 2823 + 2824, + 2825 ] }, { "teal": 3023, - "source": "examples/reti/stakingPool.algo.ts:768", + "source": "examples/reti/stakingPool.algo.ts:770", "pc": [ - 2824, - 2825 + 2826 ] }, { "teal": 3024, - "source": "examples/reti/stakingPool.algo.ts:768", + "source": "examples/reti/stakingPool.algo.ts:770", "pc": [ - 2826 + 2827, + 2828 ] }, { "teal": 3025, "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 2827 + 2829 ] }, { "teal": 3026, - "source": "examples/reti/stakingPool.algo.ts:770", + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 2828, - 2829 + 2830 ] }, { "teal": 3027, - "source": "examples/reti/stakingPool.algo.ts:770", + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 2830 + 2831 ] }, { "teal": 3028, - "source": "examples/reti/stakingPool.algo.ts:770", + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 2831, 2832 ] }, @@ -12542,83 +12554,71 @@ 2834 ] }, - { - "teal": 3031, - "source": "examples/reti/stakingPool.algo.ts:768", - "pc": [ - 2835 - ] - }, - { - "teal": 3032, - "source": "examples/reti/stakingPool.algo.ts:768", - "pc": [ - 2836 - ] - }, { "teal": 3033, "source": "examples/reti/stakingPool.algo.ts:768", + "errorMessage": "wideRatio failed", "pc": [ - 2837 + 2835 ] }, { "teal": 3034, "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 2838 + 2836, + 2837 ] }, { - "teal": 3037, - "source": "examples/reti/stakingPool.algo.ts:768", - "errorMessage": "wideRatio failed", + "teal": 3038, + "source": "examples/reti/stakingPool.algo.ts:775", "pc": [ + 2838, 2839 ] }, { - "teal": 3038, - "source": "examples/reti/stakingPool.algo.ts:768", + "teal": 3039, + "source": "examples/reti/stakingPool.algo.ts:775", "pc": [ 2840, 2841 ] }, { - "teal": 3042, + "teal": 3040, "source": "examples/reti/stakingPool.algo.ts:775", "pc": [ - 2842, - 2843 + 2842 ] }, { - "teal": 3043, + "teal": 3041, "source": "examples/reti/stakingPool.algo.ts:775", "pc": [ - 2844, - 2845 + 2843, + 2844 ] }, { - "teal": 3044, - "source": "examples/reti/stakingPool.algo.ts:775", + "teal": 3045, + "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ + 2845, 2846 ] }, { - "teal": 3045, - "source": "examples/reti/stakingPool.algo.ts:775", + "teal": 3046, + "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ 2847, 2848 ] }, { - "teal": 3049, + "teal": 3047, "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ 2849, @@ -12626,76 +12626,76 @@ ] }, { - "teal": 3050, + "teal": 3048, "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ 2851, - 2852 + 2852, + 2853 ] }, { - "teal": 3051, + "teal": 3049, "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ - 2853, 2854 ] }, { - "teal": 3052, + "teal": 3050, "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ 2855, - 2856, - 2857 + 2856 ] }, { - "teal": 3053, + "teal": 3051, "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ - 2858 + 2857 ] }, { - "teal": 3054, + "teal": 3052, "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ - 2859, - 2860 + 2858 ] }, { - "teal": 3055, + "teal": 3053, "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ - 2861 + 2859 ] }, { - "teal": 3056, + "teal": 3054, "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ - 2862 + 2860, + 2861 ] }, { - "teal": 3057, - "source": "examples/reti/stakingPool.algo.ts:778", + "teal": 3058, + "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ + 2862, 2863 ] }, { - "teal": 3058, - "source": "examples/reti/stakingPool.algo.ts:778", + "teal": 3059, + "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ 2864, 2865 ] }, { - "teal": 3062, + "teal": 3060, "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ 2866, @@ -12703,107 +12703,113 @@ ] }, { - "teal": 3063, + "teal": 3061, "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ 2868, - 2869 + 2869, + 2870 ] }, { - "teal": 3064, + "teal": 3062, "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ - 2870, 2871 ] }, { - "teal": 3065, + "teal": 3063, "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ 2872, - 2873, - 2874 + 2873 ] }, { - "teal": 3066, + "teal": 3064, "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ - 2875 + 2874 ] }, { - "teal": 3067, + "teal": 3065, "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ - 2876, - 2877 + 2875 ] }, { - "teal": 3068, + "teal": 3066, "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ - 2878 + 2876 ] }, { - "teal": 3069, + "teal": 3067, "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ - 2879 + 2877, + 2878 ] }, { - "teal": 3070, - "source": "examples/reti/stakingPool.algo.ts:779", + "teal": 3071, + "source": "examples/reti/stakingPool.algo.ts:780", "pc": [ + 2879, 2880 ] }, { - "teal": 3071, - "source": "examples/reti/stakingPool.algo.ts:779", + "teal": 3072, + "source": "examples/reti/stakingPool.algo.ts:780", "pc": [ 2881, 2882 ] }, { - "teal": 3075, + "teal": 3073, "source": "examples/reti/stakingPool.algo.ts:780", "pc": [ - 2883, - 2884 + 2883 ] }, { - "teal": 3076, + "teal": 3074, "source": "examples/reti/stakingPool.algo.ts:780", "pc": [ - 2885, - 2886 + 2884, + 2885 ] }, { - "teal": 3077, - "source": "examples/reti/stakingPool.algo.ts:780", + "teal": 3079, + "source": "examples/reti/stakingPool.algo.ts:783", "pc": [ + 2886, 2887 ] }, { - "teal": 3078, - "source": "examples/reti/stakingPool.algo.ts:780", + "teal": 3080, + "source": "examples/reti/stakingPool.algo.ts:783", + "pc": [ + 2888 + ] + }, + { + "teal": 3081, + "source": "examples/reti/stakingPool.algo.ts:783", "pc": [ - 2888, 2889 ] }, { - "teal": 3083, + "teal": 3082, "source": "examples/reti/stakingPool.algo.ts:783", "pc": [ 2890, @@ -12811,51 +12817,51 @@ ] }, { - "teal": 3084, + "teal": 3083, "source": "examples/reti/stakingPool.algo.ts:783", "pc": [ 2892 ] }, { - "teal": 3085, + "teal": 3084, "source": "examples/reti/stakingPool.algo.ts:783", "pc": [ - 2893 + 2893, + 2894 ] }, { - "teal": 3086, + "teal": 3085, "source": "examples/reti/stakingPool.algo.ts:783", "pc": [ - 2894, 2895 ] }, { - "teal": 3087, - "source": "examples/reti/stakingPool.algo.ts:783", + "teal": 3096, + "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ - 2896 + 2896, + 2897 ] }, { - "teal": 3088, - "source": "examples/reti/stakingPool.algo.ts:783", + "teal": 3097, + "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ - 2897, 2898 ] }, { - "teal": 3089, - "source": "examples/reti/stakingPool.algo.ts:783", + "teal": 3098, + "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ 2899 ] }, { - "teal": 3100, + "teal": 3099, "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ 2900, @@ -12863,114 +12869,108 @@ ] }, { - "teal": 3101, - "source": "examples/reti/stakingPool.algo.ts:732", - "pc": [ - 2902 - ] - }, - { - "teal": 3102, + "teal": 3100, "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ - 2903 + 2902, + 2903, + 2904 ] }, { - "teal": 3103, - "source": "examples/reti/stakingPool.algo.ts:732", + "teal": 3105, + "source": "examples/reti/stakingPool.algo.ts:791", "pc": [ - 2904, - 2905 + 2905, + 2906 ] }, { - "teal": 3104, - "source": "examples/reti/stakingPool.algo.ts:732", + "teal": 3106, + "source": "examples/reti/stakingPool.algo.ts:791", "pc": [ - 2906, - 2907, - 2908 + 2907 ] }, { - "teal": 3109, + "teal": 3107, "source": "examples/reti/stakingPool.algo.ts:791", "pc": [ - 2909, - 2910 + 2908, + 2909 ] }, { - "teal": 3110, + "teal": 3108, "source": "examples/reti/stakingPool.algo.ts:791", "pc": [ - 2911 + 2910 ] }, { - "teal": 3111, + "teal": 3109, "source": "examples/reti/stakingPool.algo.ts:791", "pc": [ - 2912, - 2913 + 2911, + 2912 ] }, { - "teal": 3112, - "source": "examples/reti/stakingPool.algo.ts:791", + "teal": 3114, + "source": "examples/reti/stakingPool.algo.ts:795", "pc": [ + 2913, 2914 ] }, { - "teal": 3113, - "source": "examples/reti/stakingPool.algo.ts:791", + "teal": 3115, + "source": "examples/reti/stakingPool.algo.ts:795", "pc": [ - 2915, - 2916 + 2915 ] }, { - "teal": 3118, + "teal": 3116, "source": "examples/reti/stakingPool.algo.ts:795", "pc": [ - 2917, - 2918 + 2916 ] }, { - "teal": 3119, + "teal": 3117, "source": "examples/reti/stakingPool.algo.ts:795", "pc": [ + 2917, + 2918, 2919 ] }, { - "teal": 3120, - "source": "examples/reti/stakingPool.algo.ts:795", + "teal": 3122, + "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ 2920 ] }, { - "teal": 3121, - "source": "examples/reti/stakingPool.algo.ts:795", + "teal": 3123, + "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ 2921, - 2922, - 2923 + 2922 ] }, { - "teal": 3126, + "teal": 3128, "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ + 2923, 2924 ] }, { - "teal": 3127, + "teal": 3129, "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ 2925, @@ -12978,123 +12978,123 @@ ] }, { - "teal": 3132, + "teal": 3130, "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ - 2927, - 2928 + 2927 ] }, { - "teal": 3133, + "teal": 3131, "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ + 2928, 2929, 2930 ] }, { - "teal": 3134, - "source": "examples/reti/stakingPool.algo.ts:797", + "teal": 3136, + "source": "examples/reti/stakingPool.algo.ts:798", "pc": [ - 2931 + 2931, + 2932 ] }, { - "teal": 3135, - "source": "examples/reti/stakingPool.algo.ts:797", + "teal": 3137, + "source": "examples/reti/stakingPool.algo.ts:798", "pc": [ - 2932, 2933, 2934 ] }, { - "teal": 3140, + "teal": 3138, "source": "examples/reti/stakingPool.algo.ts:798", "pc": [ - 2935, - 2936 + 2935 ] }, { - "teal": 3141, + "teal": 3139, "source": "examples/reti/stakingPool.algo.ts:798", "pc": [ + 2936, 2937, 2938 ] }, { - "teal": 3142, - "source": "examples/reti/stakingPool.algo.ts:798", + "teal": 3144, + "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ 2939 ] }, { - "teal": 3143, - "source": "examples/reti/stakingPool.algo.ts:798", + "teal": 3145, + "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 2940, - 2941, - 2942 + 2940 ] }, { - "teal": 3148, + "teal": 3146, "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 2943 + 2941, + 2942 ] }, { - "teal": 3149, + "teal": 3147, "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 2944 + 2943 ] }, { - "teal": 3150, + "teal": 3148, "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 2945, - 2946 + 2944, + 2945 ] }, { - "teal": 3151, + "teal": 3149, "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ + 2946, 2947 ] }, { - "teal": 3152, + "teal": 3150, "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 2948, - 2949 + 2948 ] }, { - "teal": 3153, + "teal": 3151, "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 2950, - 2951 + 2949, + 2950 ] }, { - "teal": 3154, + "teal": 3152, "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ + 2951, 2952 ] }, { - "teal": 3155, + "teal": 3153, "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ 2953, @@ -13102,7 +13102,7 @@ ] }, { - "teal": 3156, + "teal": 3154, "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ 2955, @@ -13110,326 +13110,332 @@ ] }, { - "teal": 3157, + "teal": 3155, "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 2957, - 2958 + 2957 ] }, { - "teal": 3158, - "source": "examples/reti/stakingPool.algo.ts:799", + "teal": 3160, + "source": "examples/reti/stakingPool.algo.ts:801", "pc": [ - 2959, - 2960 + 2958, + 2959 ] }, { - "teal": 3159, - "source": "examples/reti/stakingPool.algo.ts:799", + "teal": 3161, + "source": "examples/reti/stakingPool.algo.ts:801", "pc": [ - 2961 + 2960 ] }, { - "teal": 3164, + "teal": 3162, "source": "examples/reti/stakingPool.algo.ts:801", "pc": [ - 2962, - 2963 + 2961 ] }, { - "teal": 3165, + "teal": 3163, "source": "examples/reti/stakingPool.algo.ts:801", "pc": [ - 2964 + 2962 ] }, { - "teal": 3166, + "teal": 3164, "source": "examples/reti/stakingPool.algo.ts:801", "pc": [ - 2965 + 2963 ] }, { - "teal": 3167, + "teal": 3165, "source": "examples/reti/stakingPool.algo.ts:801", "pc": [ - 2966 + 2964, + 2965 ] }, { - "teal": 3168, + "teal": 3166, "source": "examples/reti/stakingPool.algo.ts:801", "pc": [ - 2967 + 2966 ] }, { - "teal": 3169, + "teal": 3167, "source": "examples/reti/stakingPool.algo.ts:801", "pc": [ - 2968, - 2969 + 2967, + 2968 ] }, { - "teal": 3170, - "source": "examples/reti/stakingPool.algo.ts:801", + "teal": 3172, + "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ + 2969, 2970 ] }, { - "teal": 3171, - "source": "examples/reti/stakingPool.algo.ts:801", + "teal": 3173, + "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ 2971, - 2972 + 2972, + 2973 ] }, { - "teal": 3176, + "teal": 3174, "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 2973, - 2974 + 2974, + 2975 ] }, { - "teal": 3177, + "teal": 3175, "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 2975, - 2976, - 2977 + 2976 ] }, { - "teal": 3178, + "teal": 3176, "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 2978, - 2979 + 2977 ] }, { - "teal": 3179, + "teal": 3177, "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ + 2978, + 2979, 2980 ] }, { - "teal": 3180, + "teal": 3178, "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 2981 + 2981, + 2982 ] }, { - "teal": 3181, + "teal": 3179, "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 2982, 2983, - 2984 + 2984, + 2985 ] }, { - "teal": 3182, + "teal": 3180, "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 2985, 2986 ] }, { - "teal": 3183, + "teal": 3181, "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ 2987, - 2988, - 2989 + 2988 ] }, { - "teal": 3184, + "teal": 3182, "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 2990 + 2989 ] }, { - "teal": 3185, + "teal": 3183, "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 2991, - 2992 + 2990 ] }, { "teal": 3186, "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ + 2991, + 2992, 2993 ] }, { - "teal": 3187, - "source": "examples/reti/stakingPool.algo.ts:802", + "teal": 3191, + "source": "examples/reti/stakingPool.algo.ts:803", "pc": [ - 2994 + 2994, + 2995 ] }, { - "teal": 3190, - "source": "examples/reti/stakingPool.algo.ts:802", + "teal": 3192, + "source": "examples/reti/stakingPool.algo.ts:803", "pc": [ - 2995, 2996, 2997 ] }, { - "teal": 3195, + "teal": 3193, "source": "examples/reti/stakingPool.algo.ts:803", "pc": [ 2998, - 2999 + 2999, + 3000 ] }, { - "teal": 3196, + "teal": 3194, "source": "examples/reti/stakingPool.algo.ts:803", "pc": [ - 3000, 3001 ] }, { - "teal": 3197, + "teal": 3195, "source": "examples/reti/stakingPool.algo.ts:803", "pc": [ - 3002, - 3003, - 3004 + 3002 ] }, { - "teal": 3198, + "teal": 3196, "source": "examples/reti/stakingPool.algo.ts:803", "pc": [ - 3005 + 3003, + 3004 ] }, { - "teal": 3199, - "source": "examples/reti/stakingPool.algo.ts:803", + "teal": 3201, + "source": "examples/reti/stakingPool.algo.ts:805", "pc": [ + 3005, 3006 ] }, { - "teal": 3200, - "source": "examples/reti/stakingPool.algo.ts:803", + "teal": 3202, + "source": "examples/reti/stakingPool.algo.ts:805", "pc": [ 3007, 3008 ] }, { - "teal": 3205, + "teal": 3203, "source": "examples/reti/stakingPool.algo.ts:805", "pc": [ - 3009, - 3010 + 3009 ] }, { - "teal": 3206, + "teal": 3204, "source": "examples/reti/stakingPool.algo.ts:805", "pc": [ + 3010, 3011, 3012 ] }, { - "teal": 3207, - "source": "examples/reti/stakingPool.algo.ts:805", + "teal": 3210, + "source": "examples/reti/stakingPool.algo.ts:810", "pc": [ - 3013 + 3013, + 3014 ] }, { - "teal": 3208, - "source": "examples/reti/stakingPool.algo.ts:805", + "teal": 3211, + "source": "examples/reti/stakingPool.algo.ts:810", "pc": [ - 3014, - 3015, - 3016 + 3015 ] }, { - "teal": 3214, + "teal": 3212, "source": "examples/reti/stakingPool.algo.ts:810", "pc": [ - 3017, - 3018 + 3016 ] }, { - "teal": 3215, + "teal": 3213, "source": "examples/reti/stakingPool.algo.ts:810", "pc": [ + 3017, + 3018, 3019 ] }, { - "teal": 3216, - "source": "examples/reti/stakingPool.algo.ts:810", + "teal": 3218, + "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3020 + 3020, + 3021 ] }, { - "teal": 3217, - "source": "examples/reti/stakingPool.algo.ts:810", + "teal": 3219, + "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3021, 3022, - 3023 + 3023, + 3024 ] }, { - "teal": 3222, + "teal": 3220, "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3024, 3025 ] }, { - "teal": 3223, + "teal": 3221, "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ 3026, - 3027, + 3027 + ] + }, + { + "teal": 3222, + "source": "examples/reti/stakingPool.algo.ts:811", + "pc": [ 3028 ] }, { - "teal": 3224, + "teal": 3223, "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ 3029 ] }, { - "teal": 3225, + "teal": 3224, "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ 3030, @@ -13437,80 +13443,74 @@ ] }, { - "teal": 3226, + "teal": 3225, "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ 3032 ] }, { - "teal": 3227, + "teal": 3226, "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ 3033 ] }, { - "teal": 3228, - "source": "examples/reti/stakingPool.algo.ts:811", - "pc": [ - 3034, - 3035 - ] - }, - { - "teal": 3229, + "teal": 3227, "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3036 + 3034 ] }, { - "teal": 3230, + "teal": 3228, "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3037 + 3035 ] }, { - "teal": 3231, + "teal": 3229, "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3038 + 3036 ] }, { "teal": 3232, "source": "examples/reti/stakingPool.algo.ts:811", + "errorMessage": "wideRatio failed", "pc": [ - 3039 + 3037 ] }, { "teal": 3233, "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3040 + 3038, + 3039 ] }, { - "teal": 3236, - "source": "examples/reti/stakingPool.algo.ts:811", - "errorMessage": "wideRatio failed", + "teal": 3237, + "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ + 3040, 3041 ] }, { - "teal": 3237, - "source": "examples/reti/stakingPool.algo.ts:811", + "teal": 3238, + "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ 3042, 3043 ] }, { - "teal": 3241, + "teal": 3239, "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ 3044, @@ -13518,162 +13518,168 @@ ] }, { - "teal": 3242, + "teal": 3240, "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ 3046, - 3047 + 3047, + 3048 ] }, { - "teal": 3243, + "teal": 3241, "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ - 3048, 3049 ] }, { - "teal": 3244, + "teal": 3242, "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ 3050, - 3051, - 3052 + 3051 ] }, { - "teal": 3245, + "teal": 3243, "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ - 3053 + 3052 ] }, { - "teal": 3246, + "teal": 3244, "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ - 3054, - 3055 + 3053 ] }, { - "teal": 3247, + "teal": 3245, "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ - 3056 + 3054 ] }, { - "teal": 3248, + "teal": 3246, "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ - 3057 + 3055, + 3056 ] }, { - "teal": 3249, - "source": "examples/reti/stakingPool.algo.ts:814", + "teal": 3250, + "source": "examples/reti/stakingPool.algo.ts:815", "pc": [ + 3057, 3058 ] }, { - "teal": 3250, - "source": "examples/reti/stakingPool.algo.ts:814", + "teal": 3251, + "source": "examples/reti/stakingPool.algo.ts:815", "pc": [ 3059, 3060 ] }, { - "teal": 3254, + "teal": 3252, "source": "examples/reti/stakingPool.algo.ts:815", "pc": [ - 3061, - 3062 + 3061 ] }, { - "teal": 3255, + "teal": 3253, "source": "examples/reti/stakingPool.algo.ts:815", "pc": [ - 3063, - 3064 + 3062, + 3063 ] }, { - "teal": 3256, - "source": "examples/reti/stakingPool.algo.ts:815", + "teal": 3259, + "source": "examples/reti/stakingPool.algo.ts:817", "pc": [ + 3064, 3065 ] }, { - "teal": 3257, - "source": "examples/reti/stakingPool.algo.ts:815", + "teal": 3260, + "source": "examples/reti/stakingPool.algo.ts:817", "pc": [ - 3066, - 3067 + 3066 ] }, { - "teal": 3263, + "teal": 3261, "source": "examples/reti/stakingPool.algo.ts:817", "pc": [ - 3068, - 3069 + 3067 ] }, { - "teal": 3264, + "teal": 3262, "source": "examples/reti/stakingPool.algo.ts:817", "pc": [ + 3068, + 3069, 3070 ] }, { - "teal": 3265, - "source": "examples/reti/stakingPool.algo.ts:817", + "teal": 3267, + "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3071 + 3071, + 3072 ] }, { - "teal": 3266, - "source": "examples/reti/stakingPool.algo.ts:817", + "teal": 3268, + "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3072, 3073, - 3074 + 3074, + 3075 ] }, { - "teal": 3271, + "teal": 3269, "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3075, 3076 ] }, { - "teal": 3272, + "teal": 3270, "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ 3077, - 3078, + 3078 + ] + }, + { + "teal": 3271, + "source": "examples/reti/stakingPool.algo.ts:818", + "pc": [ 3079 ] }, { - "teal": 3273, + "teal": 3272, "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ 3080 ] }, { - "teal": 3274, + "teal": 3273, "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ 3081, @@ -13681,80 +13687,74 @@ ] }, { - "teal": 3275, + "teal": 3274, "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ 3083 ] }, { - "teal": 3276, + "teal": 3275, "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ 3084 ] }, { - "teal": 3277, - "source": "examples/reti/stakingPool.algo.ts:818", - "pc": [ - 3085, - 3086 - ] - }, - { - "teal": 3278, + "teal": 3276, "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3087 + 3085 ] }, { - "teal": 3279, + "teal": 3277, "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3088 + 3086 ] }, { - "teal": 3280, + "teal": 3278, "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3089 + 3087 ] }, { "teal": 3281, "source": "examples/reti/stakingPool.algo.ts:818", + "errorMessage": "wideRatio failed", "pc": [ - 3090 + 3088 ] }, { "teal": 3282, "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3091 + 3089, + 3090 ] }, { - "teal": 3285, - "source": "examples/reti/stakingPool.algo.ts:818", - "errorMessage": "wideRatio failed", + "teal": 3286, + "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ + 3091, 3092 ] }, { - "teal": 3286, - "source": "examples/reti/stakingPool.algo.ts:818", + "teal": 3287, + "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ 3093, 3094 ] }, { - "teal": 3290, + "teal": 3288, "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ 3095, @@ -13762,76 +13762,76 @@ ] }, { - "teal": 3291, + "teal": 3289, "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ 3097, - 3098 + 3098, + 3099 ] }, { - "teal": 3292, + "teal": 3290, "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ - 3099, 3100 ] }, { - "teal": 3293, + "teal": 3291, "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ 3101, - 3102, - 3103 + 3102 ] }, { - "teal": 3294, + "teal": 3292, "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ - 3104 + 3103 ] }, { - "teal": 3295, + "teal": 3293, "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ - 3105, - 3106 + 3104 ] }, { - "teal": 3296, + "teal": 3294, "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ - 3107 + 3105 ] }, { - "teal": 3297, + "teal": 3295, "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ - 3108 + 3106, + 3107 ] }, { - "teal": 3298, - "source": "examples/reti/stakingPool.algo.ts:821", + "teal": 3299, + "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ + 3108, 3109 ] }, { - "teal": 3299, - "source": "examples/reti/stakingPool.algo.ts:821", + "teal": 3300, + "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ 3110, 3111 ] }, { - "teal": 3303, + "teal": 3301, "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ 3112, @@ -13839,107 +13839,113 @@ ] }, { - "teal": 3304, + "teal": 3302, "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ 3114, - 3115 + 3115, + 3116 ] }, { - "teal": 3305, + "teal": 3303, "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ - 3116, 3117 ] }, { - "teal": 3306, + "teal": 3304, "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ 3118, - 3119, - 3120 + 3119 ] }, { - "teal": 3307, + "teal": 3305, "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ - 3121 + 3120 ] }, { - "teal": 3308, + "teal": 3306, "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ - 3122, - 3123 + 3121 ] }, { - "teal": 3309, + "teal": 3307, "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ - 3124 + 3122 ] }, { - "teal": 3310, + "teal": 3308, "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ - 3125 + 3123, + 3124 ] }, { - "teal": 3311, - "source": "examples/reti/stakingPool.algo.ts:822", + "teal": 3312, + "source": "examples/reti/stakingPool.algo.ts:823", "pc": [ + 3125, 3126 ] }, { - "teal": 3312, - "source": "examples/reti/stakingPool.algo.ts:822", + "teal": 3313, + "source": "examples/reti/stakingPool.algo.ts:823", "pc": [ 3127, 3128 ] }, { - "teal": 3316, + "teal": 3314, "source": "examples/reti/stakingPool.algo.ts:823", "pc": [ - 3129, - 3130 + 3129 ] }, { - "teal": 3317, + "teal": 3315, "source": "examples/reti/stakingPool.algo.ts:823", "pc": [ - 3131, - 3132 + 3130, + 3131 ] }, { - "teal": 3318, - "source": "examples/reti/stakingPool.algo.ts:823", + "teal": 3320, + "source": "examples/reti/stakingPool.algo.ts:827", "pc": [ + 3132, 3133 ] }, { - "teal": 3319, - "source": "examples/reti/stakingPool.algo.ts:823", + "teal": 3321, + "source": "examples/reti/stakingPool.algo.ts:827", + "pc": [ + 3134 + ] + }, + { + "teal": 3322, + "source": "examples/reti/stakingPool.algo.ts:827", "pc": [ - 3134, 3135 ] }, { - "teal": 3324, + "teal": 3323, "source": "examples/reti/stakingPool.algo.ts:827", "pc": [ 3136, @@ -13947,51 +13953,51 @@ ] }, { - "teal": 3325, + "teal": 3324, "source": "examples/reti/stakingPool.algo.ts:827", "pc": [ 3138 ] }, { - "teal": 3326, + "teal": 3325, "source": "examples/reti/stakingPool.algo.ts:827", "pc": [ - 3139 + 3139, + 3140 ] }, { - "teal": 3327, + "teal": 3326, "source": "examples/reti/stakingPool.algo.ts:827", "pc": [ - 3140, 3141 ] }, { - "teal": 3328, - "source": "examples/reti/stakingPool.algo.ts:827", + "teal": 3335, + "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ - 3142 + 3142, + 3143 ] }, { - "teal": 3329, - "source": "examples/reti/stakingPool.algo.ts:827", + "teal": 3336, + "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ - 3143, 3144 ] }, { - "teal": 3330, - "source": "examples/reti/stakingPool.algo.ts:827", + "teal": 3337, + "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ 3145 ] }, { - "teal": 3339, + "teal": 3338, "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ 3146, @@ -13999,53 +14005,53 @@ ] }, { - "teal": 3340, + "teal": 3339, "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ - 3148 + 3148, + 3149, + 3150 ] }, { - "teal": 3341, - "source": "examples/reti/stakingPool.algo.ts:797", + "teal": 3348, + "source": "examples/reti/stakingPool.algo.ts:837", "pc": [ - 3149 + 3151, + 3152 ] }, { - "teal": 3342, - "source": "examples/reti/stakingPool.algo.ts:797", + "teal": 3349, + "source": "examples/reti/stakingPool.algo.ts:837", "pc": [ - 3150, - 3151 + 3153 ] }, { - "teal": 3343, - "source": "examples/reti/stakingPool.algo.ts:797", + "teal": 3350, + "source": "examples/reti/stakingPool.algo.ts:837", "pc": [ - 3152, - 3153, - 3154 + 3154, + 3155 ] }, { - "teal": 3352, + "teal": 3351, "source": "examples/reti/stakingPool.algo.ts:837", "pc": [ - 3155, 3156 ] }, { - "teal": 3353, + "teal": 3352, "source": "examples/reti/stakingPool.algo.ts:837", "pc": [ 3157 ] }, { - "teal": 3354, + "teal": 3353, "source": "examples/reti/stakingPool.algo.ts:837", "pc": [ 3158, @@ -14053,136 +14059,142 @@ ] }, { - "teal": 3355, + "teal": 3354, "source": "examples/reti/stakingPool.algo.ts:837", "pc": [ 3160 ] }, { - "teal": 3356, + "teal": 3355, "source": "examples/reti/stakingPool.algo.ts:837", "pc": [ - 3161 + 3161, + 3162 ] }, { - "teal": 3357, - "source": "examples/reti/stakingPool.algo.ts:837", + "teal": 3359, + "source": "examples/reti/stakingPool.algo.ts:838", "pc": [ - 3162, - 3163 + 3163, + 3164 ] }, { - "teal": 3358, - "source": "examples/reti/stakingPool.algo.ts:837", + "teal": 3360, + "source": "examples/reti/stakingPool.algo.ts:838", "pc": [ - 3164 + 3165 ] }, { - "teal": 3359, - "source": "examples/reti/stakingPool.algo.ts:837", + "teal": 3361, + "source": "examples/reti/stakingPool.algo.ts:838", "pc": [ - 3165, - 3166 + 3166, + 3167 ] }, { - "teal": 3363, + "teal": 3362, "source": "examples/reti/stakingPool.algo.ts:838", "pc": [ - 3167, 3168 ] }, { - "teal": 3364, + "teal": 3363, "source": "examples/reti/stakingPool.algo.ts:838", "pc": [ - 3169 + 3169, + 3170 ] }, { - "teal": 3365, + "teal": 3364, "source": "examples/reti/stakingPool.algo.ts:838", "pc": [ - 3170, 3171 ] }, { - "teal": 3366, + "teal": 3365, "source": "examples/reti/stakingPool.algo.ts:838", "pc": [ 3172 ] }, { - "teal": 3367, - "source": "examples/reti/stakingPool.algo.ts:838", + "teal": 3370, + "source": "examples/reti/stakingPool.algo.ts:839", "pc": [ 3173, 3174 ] }, { - "teal": 3368, - "source": "examples/reti/stakingPool.algo.ts:838", + "teal": 3371, + "source": "examples/reti/stakingPool.algo.ts:839", "pc": [ 3175 ] }, { - "teal": 3369, - "source": "examples/reti/stakingPool.algo.ts:838", + "teal": 3372, + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ 3176 ] }, { - "teal": 3374, - "source": "examples/reti/stakingPool.algo.ts:839", + "teal": 3373, + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ 3177, 3178 ] }, { - "teal": 3375, - "source": "examples/reti/stakingPool.algo.ts:839", + "teal": 3374, + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ 3179 ] }, + { + "teal": 3375, + "source": "examples/reti/stakingPool.algo.ts:840", + "pc": [ + 3180, + 3181 + ] + }, { "teal": 3376, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3180 + 3182 ] }, { "teal": 3377, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3181, - 3182 + 3183 ] }, { "teal": 3378, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3183 + 3184 ] }, { "teal": 3379, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3184, 3185 ] }, @@ -14197,32 +14209,27 @@ "teal": 3381, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3187 - ] - }, - { - "teal": 3382, - "source": "examples/reti/stakingPool.algo.ts:840", - "pc": [ + 3187, 3188 ] }, { - "teal": 3383, + "teal": 3382, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ 3189 ] }, { - "teal": 3384, + "teal": 3385, "source": "examples/reti/stakingPool.algo.ts:840", + "errorMessage": "this.stakeAccumulator.value + (increasedStake as uint128) * (roundsLeftInBin as uint128) overflowed 128 bits", "pc": [ 3190 ] }, { - "teal": 3385, + "teal": 3386, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ 3191, @@ -14230,94 +14237,93 @@ ] }, { - "teal": 3386, + "teal": 3387, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ 3193 ] }, { - "teal": 3389, + "teal": 3388, "source": "examples/reti/stakingPool.algo.ts:840", - "errorMessage": "this.stakeAccumulator.value + (increasedStake as uint128) * (roundsLeftInBin as uint128) overflowed 128 bits", "pc": [ 3194 ] }, { - "teal": 3390, + "teal": 3389, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3195, - 3196 + 3195 ] }, { - "teal": 3391, + "teal": 3390, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3197 + 3196 ] }, { - "teal": 3392, + "teal": 3391, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ + 3197, 3198 ] }, { - "teal": 3393, + "teal": 3392, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ 3199 ] }, { - "teal": 3394, + "teal": 3393, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ 3200 ] }, { - "teal": 3395, + "teal": 3394, "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3201, - 3202 + 3201 ] }, { - "teal": 3396, - "source": "examples/reti/stakingPool.algo.ts:840", + "teal": 3395, + "source": "examples/reti/stakingPool.algo.ts:839", "pc": [ - 3203 + 3202 ] }, { - "teal": 3397, - "source": "examples/reti/stakingPool.algo.ts:840", + "teal": 3399, + "source": "examples/reti/stakingPool.algo.ts:841", "pc": [ + 3203, 3204 ] }, { - "teal": 3398, - "source": "examples/reti/stakingPool.algo.ts:840", + "teal": 3400, + "source": "examples/reti/stakingPool.algo.ts:841", "pc": [ 3205 ] }, { - "teal": 3399, - "source": "examples/reti/stakingPool.algo.ts:839", + "teal": 3401, + "source": "examples/reti/stakingPool.algo.ts:841", "pc": [ 3206 ] }, { - "teal": 3403, + "teal": 3402, "source": "examples/reti/stakingPool.algo.ts:841", "pc": [ 3207, @@ -14325,310 +14331,304 @@ ] }, { - "teal": 3404, + "teal": 3403, "source": "examples/reti/stakingPool.algo.ts:841", "pc": [ 3209 ] }, { - "teal": 3405, + "teal": 3404, "source": "examples/reti/stakingPool.algo.ts:841", "pc": [ 3210 ] }, { - "teal": 3406, - "source": "examples/reti/stakingPool.algo.ts:841", + "teal": 3417, + "source": "examples/reti/stakingPool.algo.ts:847", "pc": [ - 3211, - 3212 + 3211 ] }, { - "teal": 3407, - "source": "examples/reti/stakingPool.algo.ts:841", + "teal": 3418, + "source": "examples/reti/stakingPool.algo.ts:847", "pc": [ - 3213 + 3212 ] }, { - "teal": 3408, - "source": "examples/reti/stakingPool.algo.ts:841", + "teal": 3419, + "source": "examples/reti/stakingPool.algo.ts:847", "pc": [ + 3213, 3214 ] }, { - "teal": 3421, + "teal": 3420, "source": "examples/reti/stakingPool.algo.ts:847", "pc": [ - 3215 + 3215, + 3216, + 3217, + 3218, + 3219, + 3220 ] }, { - "teal": 3422, + "teal": 3421, "source": "examples/reti/stakingPool.algo.ts:847", "pc": [ - 3216 + 3221, + 3222 ] }, { - "teal": 3423, - "source": "examples/reti/stakingPool.algo.ts:847", + "teal": 3425, + "source": "examples/reti/stakingPool.algo.ts:848", "pc": [ - 3217, - 3218 + 3223 ] }, { - "teal": 3424, - "source": "examples/reti/stakingPool.algo.ts:847", + "teal": 3426, + "source": "examples/reti/stakingPool.algo.ts:848", "pc": [ - 3219, - 3220, - 3221, - 3222, - 3223, 3224 ] }, { - "teal": 3425, - "source": "examples/reti/stakingPool.algo.ts:847", + "teal": 3427, + "source": "examples/reti/stakingPool.algo.ts:848", "pc": [ 3225, 3226 ] }, { - "teal": 3429, - "source": "examples/reti/stakingPool.algo.ts:848", + "teal": 3437, + "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ 3227 ] }, { - "teal": 3430, - "source": "examples/reti/stakingPool.algo.ts:848", + "teal": 3438, + "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ 3228 ] }, { - "teal": 3431, - "source": "examples/reti/stakingPool.algo.ts:848", + "teal": 3439, + "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ - 3229, - 3230 + 3229 ] }, { - "teal": 3441, + "teal": 3440, "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ + 3230, 3231 ] }, { - "teal": 3442, + "teal": 3441, "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ 3232 ] }, { - "teal": 3443, + "teal": 3442, "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ 3233 ] }, + { + "teal": 3443, + "source": "examples/reti/stakingPool.algo.ts:850", + "pc": [ + 3234 + ] + }, { "teal": 3444, "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ - 3234, - 3235 + 3235, + 3236, + 3237 ] }, { "teal": 3445, "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ - 3236 + 3238 ] }, { "teal": 3446, "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ - 3237 + 3239 ] }, { "teal": 3447, "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ - 3238 + 3240, + 3241 ] }, { "teal": 3448, - "source": "examples/reti/stakingPool.algo.ts:850", + "source": "examples/reti/stakingPool.algo.ts:851", "pc": [ - 3239, - 3240, - 3241 + 3242, + 3243 ] }, { "teal": 3449, - "source": "examples/reti/stakingPool.algo.ts:850", + "source": "examples/reti/stakingPool.algo.ts:851", "pc": [ - 3242 + 3244 ] }, { "teal": 3450, - "source": "examples/reti/stakingPool.algo.ts:850", + "source": "examples/reti/stakingPool.algo.ts:851", "pc": [ - 3243 + 3245, + 3246 ] }, { "teal": 3451, - "source": "examples/reti/stakingPool.algo.ts:850", + "source": "examples/reti/stakingPool.algo.ts:852", "pc": [ - 3244, - 3245 + 3247, + 3248 ] }, { "teal": 3452, - "source": "examples/reti/stakingPool.algo.ts:851", + "source": "examples/reti/stakingPool.algo.ts:852", "pc": [ - 3246, - 3247 + 3249 ] }, { "teal": 3453, - "source": "examples/reti/stakingPool.algo.ts:851", + "source": "examples/reti/stakingPool.algo.ts:852", "pc": [ - 3248 + 3250, + 3251 ] }, { "teal": 3454, - "source": "examples/reti/stakingPool.algo.ts:851", + "source": "examples/reti/stakingPool.algo.ts:853", "pc": [ - 3249, - 3250 + 3252, + 3253 ] }, { "teal": 3455, - "source": "examples/reti/stakingPool.algo.ts:852", + "source": "examples/reti/stakingPool.algo.ts:853", "pc": [ - 3251, - 3252 + 3254 ] }, { "teal": 3456, - "source": "examples/reti/stakingPool.algo.ts:852", + "source": "examples/reti/stakingPool.algo.ts:853", "pc": [ - 3253 + 3255, + 3256 ] }, { "teal": 3457, - "source": "examples/reti/stakingPool.algo.ts:852", + "source": "examples/reti/stakingPool.algo.ts:854", "pc": [ - 3254, - 3255 + 3257, + 3258 ] }, { "teal": 3458, - "source": "examples/reti/stakingPool.algo.ts:853", + "source": "examples/reti/stakingPool.algo.ts:854", "pc": [ - 3256, - 3257 + 3259 ] }, { "teal": 3459, - "source": "examples/reti/stakingPool.algo.ts:853", - "pc": [ - 3258 - ] - }, - { - "teal": 3460, - "source": "examples/reti/stakingPool.algo.ts:853", - "pc": [ - 3259, - 3260 - ] - }, - { - "teal": 3461, "source": "examples/reti/stakingPool.algo.ts:854", "pc": [ - 3261, - 3262 + 3260, + 3261 ] }, { "teal": 3462, - "source": "examples/reti/stakingPool.algo.ts:854", + "source": "examples/reti/stakingPool.algo.ts:847", "pc": [ - 3263 + 3262 ] }, { "teal": 3463, - "source": "examples/reti/stakingPool.algo.ts:854", + "source": "examples/reti/stakingPool.algo.ts:847", "pc": [ - 3264, - 3265 + 3263, + 3264 ] }, { "teal": 3466, "source": "examples/reti/stakingPool.algo.ts:847", "pc": [ - 3266 + 3265 ] }, { "teal": 3467, - "source": "examples/reti/stakingPool.algo.ts:847", + "source": "examples/reti/stakingPool.algo.ts:518", "pc": [ - 3267, - 3268 + 3266 ] }, { - "teal": 3470, - "source": "examples/reti/stakingPool.algo.ts:847", + "teal": 3472, + "source": "examples/reti/stakingPool.algo.ts:879", "pc": [ + 3267, + 3268, 3269 ] }, { - "teal": 3471, - "source": "examples/reti/stakingPool.algo.ts:518", + "teal": 3473, + "source": "examples/reti/stakingPool.algo.ts:879", "pc": [ 3270 ] }, { "teal": 3476, - "source": "examples/reti/stakingPool.algo.ts:879", + "source": "examples/reti/stakingPool.algo.ts:878", "pc": [ 3271, 3272, @@ -14637,14 +14637,14 @@ }, { "teal": 3477, - "source": "examples/reti/stakingPool.algo.ts:879", + "source": "examples/reti/stakingPool.algo.ts:878", "pc": [ 3274 ] }, { "teal": 3480, - "source": "examples/reti/stakingPool.algo.ts:878", + "source": "examples/reti/stakingPool.algo.ts:877", "pc": [ 3275, 3276, @@ -14653,14 +14653,14 @@ }, { "teal": 3481, - "source": "examples/reti/stakingPool.algo.ts:878", + "source": "examples/reti/stakingPool.algo.ts:877", "pc": [ 3278 ] }, { "teal": 3484, - "source": "examples/reti/stakingPool.algo.ts:877", + "source": "examples/reti/stakingPool.algo.ts:876", "pc": [ 3279, 3280, @@ -14669,150 +14669,150 @@ }, { "teal": 3485, - "source": "examples/reti/stakingPool.algo.ts:877", + "source": "examples/reti/stakingPool.algo.ts:876", "pc": [ - 3282 + 3282, + 3283, + 3284 ] }, { "teal": 3488, - "source": "examples/reti/stakingPool.algo.ts:876", + "source": "examples/reti/stakingPool.algo.ts:875", "pc": [ - 3283, - 3284, - 3285 + 3285, + 3286, + 3287 ] }, { "teal": 3489, - "source": "examples/reti/stakingPool.algo.ts:876", + "source": "examples/reti/stakingPool.algo.ts:875", "pc": [ - 3286, - 3287, - 3288 + 3288, + 3289, + 3290 ] }, { "teal": 3492, - "source": "examples/reti/stakingPool.algo.ts:875", + "source": "examples/reti/stakingPool.algo.ts:874", "pc": [ - 3289, - 3290, - 3291 + 3291, + 3292, + 3293 ] }, { "teal": 3493, - "source": "examples/reti/stakingPool.algo.ts:875", + "source": "examples/reti/stakingPool.algo.ts:874", "pc": [ - 3292, - 3293, - 3294 + 3294, + 3295, + 3296 ] }, { "teal": 3496, - "source": "examples/reti/stakingPool.algo.ts:874", + "source": "examples/reti/stakingPool.algo.ts:873", "pc": [ - 3295, - 3296, - 3297 + 3297, + 3298 ] }, { "teal": 3497, - "source": "examples/reti/stakingPool.algo.ts:874", + "source": "examples/reti/stakingPool.algo.ts:873", + "pc": [ + 3299 + ] + }, + { + "teal": 3498, + "source": "examples/reti/stakingPool.algo.ts:873", "pc": [ - 3298, - 3299, 3300 ] }, { - "teal": 3500, + "teal": 3499, "source": "examples/reti/stakingPool.algo.ts:873", "pc": [ - 3301, - 3302 + 3301 ] }, { - "teal": 3501, + "teal": 3500, "source": "examples/reti/stakingPool.algo.ts:873", "pc": [ + 3302, 3303 ] }, { - "teal": 3502, + "teal": 3501, "source": "examples/reti/stakingPool.algo.ts:873", "pc": [ 3304 ] }, { - "teal": 3503, + "teal": 3502, "source": "examples/reti/stakingPool.algo.ts:873", "pc": [ 3305 ] }, - { - "teal": 3504, - "source": "examples/reti/stakingPool.algo.ts:873", - "pc": [ - 3306, - 3307 - ] - }, { "teal": 3505, "source": "examples/reti/stakingPool.algo.ts:873", + "errorMessage": "argument 6 (feePayment) for goOnline must be a pay transaction", "pc": [ - 3308 + 3306 ] }, { - "teal": 3506, - "source": "examples/reti/stakingPool.algo.ts:873", + "teal": 3508, + "source": "examples/reti/stakingPool.algo.ts:872", "pc": [ + 3307, + 3308, 3309 ] }, { "teal": 3509, - "source": "examples/reti/stakingPool.algo.ts:873", - "errorMessage": "argument 6 (feePayment) for goOnline must be a pay transaction", + "source": "examples/reti/stakingPool.algo.ts:872", "pc": [ 3310 ] }, { - "teal": 3512, + "teal": 3510, "source": "examples/reti/stakingPool.algo.ts:872", "pc": [ - 3311, - 3312, - 3313 + 3311 ] }, { - "teal": 3513, + "teal": 3526, "source": "examples/reti/stakingPool.algo.ts:872", "pc": [ + 3312, + 3313, 3314 ] }, { - "teal": 3514, + "teal": 3529, "source": "examples/reti/stakingPool.algo.ts:872", "pc": [ 3315 ] }, { - "teal": 3530, - "source": "examples/reti/stakingPool.algo.ts:872", + "teal": 3533, + "source": "examples/reti/stakingPool.algo.ts:881", "pc": [ 3316, 3317, @@ -14820,15 +14820,16 @@ ] }, { - "teal": 3533, - "source": "examples/reti/stakingPool.algo.ts:872", + "teal": 3536, + "source": "examples/reti/stakingPool.algo.ts:881", + "errorMessage": "can only be called by owner or manager of validator", "pc": [ 3319 ] }, { - "teal": 3537, - "source": "examples/reti/stakingPool.algo.ts:881", + "teal": 3540, + "source": "examples/reti/stakingPool.algo.ts:882", "pc": [ 3320, 3321, @@ -14836,32 +14837,31 @@ ] }, { - "teal": 3540, - "source": "examples/reti/stakingPool.algo.ts:881", - "errorMessage": "can only be called by owner or manager of validator", + "teal": 3541, + "source": "examples/reti/stakingPool.algo.ts:882", "pc": [ - 3323 + 3323, + 3324 ] }, { - "teal": 3544, - "source": "examples/reti/stakingPool.algo.ts:882", + "teal": 3546, + "source": "examples/reti/stakingPool.algo.ts:883", "pc": [ - 3324, 3325, 3326 ] }, { - "teal": 3545, - "source": "examples/reti/stakingPool.algo.ts:882", + "teal": 3547, + "source": "examples/reti/stakingPool.algo.ts:883", "pc": [ 3327, 3328 ] }, { - "teal": 3550, + "teal": 3548, "source": "examples/reti/stakingPool.algo.ts:883", "pc": [ 3329, @@ -14869,38 +14869,38 @@ ] }, { - "teal": 3551, + "teal": 3549, "source": "examples/reti/stakingPool.algo.ts:883", "pc": [ - 3331, - 3332 + 3331 ] }, { "teal": 3552, "source": "examples/reti/stakingPool.algo.ts:883", + "errorMessage": "transaction verification failed: {\"txn\":\"feePayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", "pc": [ - 3333, - 3334 + 3332 ] }, { - "teal": 3553, + "teal": 3555, "source": "examples/reti/stakingPool.algo.ts:883", "pc": [ - 3335 + 3333, + 3334 ] }, { "teal": 3556, "source": "examples/reti/stakingPool.algo.ts:883", - "errorMessage": "transaction verification failed: {\"txn\":\"feePayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", "pc": [ + 3335, 3336 ] }, { - "teal": 3559, + "teal": 3557, "source": "examples/reti/stakingPool.algo.ts:883", "pc": [ 3337, @@ -14908,220 +14908,226 @@ ] }, { - "teal": 3560, + "teal": 3558, "source": "examples/reti/stakingPool.algo.ts:883", "pc": [ - 3339, - 3340 + 3339 ] }, { "teal": 3561, "source": "examples/reti/stakingPool.algo.ts:883", + "errorMessage": "transaction verification failed: {\"txn\":\"feePayment\",\"field\":\"amount\",\"expected\":\"extraFee\"}", "pc": [ - 3341, - 3342 + 3340 ] }, { - "teal": 3562, - "source": "examples/reti/stakingPool.algo.ts:883", + "teal": 3573, + "source": "examples/reti/stakingPool.algo.ts:884", "pc": [ - 3343 + 3341 ] }, { - "teal": 3565, - "source": "examples/reti/stakingPool.algo.ts:883", - "errorMessage": "transaction verification failed: {\"txn\":\"feePayment\",\"field\":\"amount\",\"expected\":\"extraFee\"}", + "teal": 3574, + "source": "examples/reti/stakingPool.algo.ts:884", "pc": [ - 3344 + 3342, + 3343 ] }, { - "teal": 3577, + "teal": 3575, "source": "examples/reti/stakingPool.algo.ts:884", "pc": [ + 3344, 3345 ] }, { - "teal": 3578, - "source": "examples/reti/stakingPool.algo.ts:884", + "teal": 3579, + "source": "examples/reti/stakingPool.algo.ts:885", "pc": [ 3346, 3347 ] }, { - "teal": 3579, - "source": "examples/reti/stakingPool.algo.ts:884", + "teal": 3580, + "source": "examples/reti/stakingPool.algo.ts:885", "pc": [ 3348, 3349 ] }, { - "teal": 3583, - "source": "examples/reti/stakingPool.algo.ts:885", + "teal": 3584, + "source": "examples/reti/stakingPool.algo.ts:886", "pc": [ 3350, 3351 ] }, { - "teal": 3584, - "source": "examples/reti/stakingPool.algo.ts:885", + "teal": 3585, + "source": "examples/reti/stakingPool.algo.ts:886", "pc": [ 3352, 3353 ] }, { - "teal": 3588, - "source": "examples/reti/stakingPool.algo.ts:886", + "teal": 3589, + "source": "examples/reti/stakingPool.algo.ts:887", "pc": [ 3354, 3355 ] }, { - "teal": 3589, - "source": "examples/reti/stakingPool.algo.ts:886", + "teal": 3590, + "source": "examples/reti/stakingPool.algo.ts:887", "pc": [ 3356, 3357 ] }, { - "teal": 3593, - "source": "examples/reti/stakingPool.algo.ts:887", + "teal": 3594, + "source": "examples/reti/stakingPool.algo.ts:888", "pc": [ 3358, 3359 ] }, { - "teal": 3594, - "source": "examples/reti/stakingPool.algo.ts:887", + "teal": 3595, + "source": "examples/reti/stakingPool.algo.ts:888", "pc": [ 3360, 3361 ] }, { - "teal": 3598, - "source": "examples/reti/stakingPool.algo.ts:888", + "teal": 3599, + "source": "examples/reti/stakingPool.algo.ts:889", "pc": [ 3362, 3363 ] }, { - "teal": 3599, - "source": "examples/reti/stakingPool.algo.ts:888", + "teal": 3600, + "source": "examples/reti/stakingPool.algo.ts:889", "pc": [ 3364, 3365 ] }, { - "teal": 3603, - "source": "examples/reti/stakingPool.algo.ts:889", + "teal": 3604, + "source": "examples/reti/stakingPool.algo.ts:890", "pc": [ 3366, 3367 ] }, { - "teal": 3604, - "source": "examples/reti/stakingPool.algo.ts:889", + "teal": 3605, + "source": "examples/reti/stakingPool.algo.ts:890", "pc": [ 3368, 3369 ] }, { - "teal": 3608, - "source": "examples/reti/stakingPool.algo.ts:890", + "teal": 3609, + "source": "examples/reti/stakingPool.algo.ts:891", "pc": [ 3370, - 3371 + 3371, + 3372 ] }, { - "teal": 3609, - "source": "examples/reti/stakingPool.algo.ts:890", + "teal": 3610, + "source": "examples/reti/stakingPool.algo.ts:891", "pc": [ - 3372, - 3373 + 3373, + 3374 ] }, { "teal": 3613, - "source": "examples/reti/stakingPool.algo.ts:891", + "source": "examples/reti/stakingPool.algo.ts:884", "pc": [ - 3374, - 3375, - 3376 + 3375 ] }, { "teal": 3614, - "source": "examples/reti/stakingPool.algo.ts:891", + "source": "examples/reti/stakingPool.algo.ts:872", "pc": [ - 3377, - 3378 + 3376 ] }, { - "teal": 3617, - "source": "examples/reti/stakingPool.algo.ts:884", + "teal": 3619, + "source": "examples/reti/stakingPool.algo.ts:900", "pc": [ + 3377, + 3378, 3379 ] }, { - "teal": 3618, - "source": "examples/reti/stakingPool.algo.ts:872", + "teal": 3620, + "source": "examples/reti/stakingPool.algo.ts:900", "pc": [ 3380 ] }, { - "teal": 3623, + "teal": 3621, "source": "examples/reti/stakingPool.algo.ts:900", "pc": [ - 3381, - 3382, - 3383 + 3381 ] }, { - "teal": 3624, + "teal": 3628, "source": "examples/reti/stakingPool.algo.ts:900", "pc": [ + 3382, + 3383, 3384 ] }, { - "teal": 3625, - "source": "examples/reti/stakingPool.algo.ts:900", + "teal": 3633, + "source": "examples/reti/stakingPool.algo.ts:903", "pc": [ - 3385 + 3385, + 3386 ] }, { - "teal": 3632, - "source": "examples/reti/stakingPool.algo.ts:900", + "teal": 3634, + "source": "examples/reti/stakingPool.algo.ts:903", + "pc": [ + 3387 + ] + }, + { + "teal": 3635, + "source": "examples/reti/stakingPool.algo.ts:903", "pc": [ - 3386, - 3387, 3388 ] }, { - "teal": 3637, + "teal": 3636, "source": "examples/reti/stakingPool.algo.ts:903", "pc": [ 3389, @@ -15129,71 +15135,65 @@ ] }, { - "teal": 3638, + "teal": 3637, "source": "examples/reti/stakingPool.algo.ts:903", "pc": [ 3391 ] }, { - "teal": 3639, + "teal": 3638, "source": "examples/reti/stakingPool.algo.ts:903", "pc": [ 3392 ] }, { - "teal": 3640, + "teal": 3639, "source": "examples/reti/stakingPool.algo.ts:903", "pc": [ 3393, - 3394 - ] - }, - { - "teal": 3641, - "source": "examples/reti/stakingPool.algo.ts:903", - "pc": [ + 3394, 3395 ] }, { - "teal": 3642, - "source": "examples/reti/stakingPool.algo.ts:903", + "teal": 3644, + "source": "examples/reti/stakingPool.algo.ts:904", "pc": [ - 3396 + 3396, + 3397, + 3398 ] }, { - "teal": 3643, - "source": "examples/reti/stakingPool.algo.ts:903", + "teal": 3647, + "source": "examples/reti/stakingPool.algo.ts:904", + "errorMessage": "can only be called by owner or manager of validator", "pc": [ - 3397, - 3398, 3399 ] }, { - "teal": 3648, - "source": "examples/reti/stakingPool.algo.ts:904", + "teal": 3652, + "source": "examples/reti/stakingPool.algo.ts:907", "pc": [ - 3400, - 3401, - 3402 + 3400 ] }, { - "teal": 3651, - "source": "examples/reti/stakingPool.algo.ts:904", - "errorMessage": "can only be called by owner or manager of validator", + "teal": 3653, + "source": "examples/reti/stakingPool.algo.ts:907", "pc": [ - 3403 + 3401, + 3402 ] }, { - "teal": 3656, + "teal": 3654, "source": "examples/reti/stakingPool.algo.ts:907", "pc": [ + 3403, 3404 ] }, @@ -15201,62 +15201,62 @@ "teal": 3657, "source": "examples/reti/stakingPool.algo.ts:907", "pc": [ - 3405, - 3406 + 3405 ] }, { "teal": 3658, "source": "examples/reti/stakingPool.algo.ts:907", "pc": [ - 3407, - 3408 + 3406, + 3407 ] }, { "teal": 3661, "source": "examples/reti/stakingPool.algo.ts:907", "pc": [ - 3409 + 3408 ] }, { "teal": 3662, - "source": "examples/reti/stakingPool.algo.ts:907", + "source": "examples/reti/stakingPool.algo.ts:900", "pc": [ - 3410, - 3411 + 3409 ] }, { - "teal": 3665, - "source": "examples/reti/stakingPool.algo.ts:907", + "teal": 3667, + "source": "examples/reti/stakingPool.algo.ts:913", "pc": [ + 3410, + 3411, 3412 ] }, { - "teal": 3666, - "source": "examples/reti/stakingPool.algo.ts:900", + "teal": 3668, + "source": "examples/reti/stakingPool.algo.ts:913", "pc": [ - 3413 + 3413, + 3414, + 3415 ] }, { "teal": 3671, "source": "examples/reti/stakingPool.algo.ts:913", "pc": [ - 3414, - 3415, - 3416 + 3416, + 3417, + 3418 ] }, { "teal": 3672, "source": "examples/reti/stakingPool.algo.ts:913", "pc": [ - 3417, - 3418, 3419 ] }, @@ -15277,96 +15277,84 @@ ] }, { - "teal": 3679, + "teal": 3677, "source": "examples/reti/stakingPool.algo.ts:913", "pc": [ - 3424, - 3425, - 3426 - ] - }, - { - "teal": 3680, - "source": "examples/reti/stakingPool.algo.ts:913", - "pc": [ - 3427 + 3424 ] }, { "teal": 3681, "source": "examples/reti/stakingPool.algo.ts:913", "pc": [ - 3428 + 3425, + 3426, + 3427 ] }, { "teal": 3685, - "source": "examples/reti/stakingPool.algo.ts:913", - "pc": [ - 3429, - 3430, - 3431 - ] - }, - { - "teal": 3689, "source": "examples/reti/stakingPool.algo.ts:914", "pc": [ - 3432, - 3433, - 3434 + 3428, + 3429, + 3430 ] }, { - "teal": 3692, + "teal": 3688, "source": "examples/reti/stakingPool.algo.ts:914", "errorMessage": "can only be called by owner or manager of validator", "pc": [ - 3435 + 3431 ] }, { - "teal": 3700, + "teal": 3696, "source": "examples/reti/stakingPool.algo.ts:916", "pc": [ - 3436 + 3432 ] }, { - "teal": 3701, + "teal": 3697, "source": "examples/reti/stakingPool.algo.ts:916", "pc": [ - 3437 + 3433 ] }, { - "teal": 3702, + "teal": 3698, "source": "examples/reti/stakingPool.algo.ts:916", "pc": [ - 3438, - 3439 + 3434, + 3435 ] }, { - "teal": 3706, + "teal": 3702, "source": "examples/reti/stakingPool.algo.ts:917", "pc": [ - 3440, - 3441 + 3436, + 3437 ] }, { - "teal": 3707, + "teal": 3703, "source": "examples/reti/stakingPool.algo.ts:917", "pc": [ - 3442, - 3443 + 3438, + 3439 ] }, { - "teal": 3711, + "teal": 3707, "source": "examples/reti/stakingPool.algo.ts:918", "pc": [ + 3440, + 3441, + 3442, + 3443, 3444, 3445, 3446, @@ -15379,15 +15367,27 @@ 3453, 3454, 3455, - 3456, + 3456 + ] + }, + { + "teal": 3708, + "source": "examples/reti/stakingPool.algo.ts:918", + "pc": [ 3457, - 3458, + 3458 + ] + }, + { + "teal": 3709, + "source": "examples/reti/stakingPool.algo.ts:918", + "pc": [ 3459, 3460 ] }, { - "teal": 3712, + "teal": 3710, "source": "examples/reti/stakingPool.algo.ts:918", "pc": [ 3461, @@ -15395,7 +15395,7 @@ ] }, { - "teal": 3713, + "teal": 3711, "source": "examples/reti/stakingPool.algo.ts:918", "pc": [ 3463, @@ -15403,30 +15403,30 @@ ] }, { - "teal": 3714, + "teal": 3712, "source": "examples/reti/stakingPool.algo.ts:918", "pc": [ - 3465, - 3466 + 3465 ] }, { - "teal": 3715, + "teal": 3713, "source": "examples/reti/stakingPool.algo.ts:918", "pc": [ - 3467, - 3468 + 3466, + 3467 ] }, { - "teal": 3716, + "teal": 3714, "source": "examples/reti/stakingPool.algo.ts:918", "pc": [ + 3468, 3469 ] }, { - "teal": 3717, + "teal": 3715, "source": "examples/reti/stakingPool.algo.ts:918", "pc": [ 3470, @@ -15434,16 +15434,16 @@ ] }, { - "teal": 3718, - "source": "examples/reti/stakingPool.algo.ts:918", + "teal": 3719, + "source": "examples/reti/stakingPool.algo.ts:919", "pc": [ 3472, 3473 ] }, { - "teal": 3719, - "source": "examples/reti/stakingPool.algo.ts:918", + "teal": 3720, + "source": "examples/reti/stakingPool.algo.ts:919", "pc": [ 3474, 3475 @@ -15451,308 +15451,308 @@ }, { "teal": 3723, - "source": "examples/reti/stakingPool.algo.ts:919", + "source": "examples/reti/stakingPool.algo.ts:916", "pc": [ - 3476, - 3477 + 3476 ] }, { "teal": 3724, - "source": "examples/reti/stakingPool.algo.ts:919", + "source": "examples/reti/stakingPool.algo.ts:916", "pc": [ - 3478, - 3479 + 3477, + 3478 ] }, { "teal": 3727, "source": "examples/reti/stakingPool.algo.ts:916", "pc": [ - 3480 + 3479 ] }, { "teal": 3728, - "source": "examples/reti/stakingPool.algo.ts:916", + "source": "examples/reti/stakingPool.algo.ts:913", "pc": [ - 3481, - 3482 + 3480 ] }, { - "teal": 3731, - "source": "examples/reti/stakingPool.algo.ts:916", + "teal": 3733, + "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3483 + 3481, + 3482 ] }, { - "teal": 3732, - "source": "examples/reti/stakingPool.algo.ts:913", + "teal": 3736, + "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3484 + 3483, + 3484, + 3485 ] }, { "teal": 3737, "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3485, 3486 ] }, { - "teal": 3740, + "teal": 3738, "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3487, - 3488, - 3489 + 3487 ] }, { - "teal": 3741, + "teal": 3739, "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3490 + 3488, + 3489 ] }, { - "teal": 3742, + "teal": 3740, "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3491 + 3490 ] }, { "teal": 3743, "source": "examples/reti/stakingPool.algo.ts:929", + "errorMessage": "argument 0 (poolKey) for proxiedSetTokenPayoutRatio must be a (uint64,uint64,uint64)", "pc": [ - 3492, - 3493 + 3491 ] }, { - "teal": 3744, + "teal": 3746, "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ + 3492, + 3493, 3494 ] }, { "teal": 3747, "source": "examples/reti/stakingPool.algo.ts:929", - "errorMessage": "argument 0 (poolKey) for proxiedSetTokenPayoutRatio must be a (uint64,uint64,uint64)", "pc": [ 3495 ] }, { - "teal": 3750, + "teal": 3748, "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3496, - 3497, - 3498 + 3496 ] }, { - "teal": 3751, + "teal": 3749, "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3499 + 3497 ] }, { - "teal": 3752, + "teal": 3750, "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3500 + 3498 ] }, { - "teal": 3753, + "teal": 3759, "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ + 3499, + 3500, 3501 ] }, { - "teal": 3754, + "teal": 3762, "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ 3502 ] }, { - "teal": 3763, - "source": "examples/reti/stakingPool.algo.ts:929", + "teal": 3766, + "source": "examples/reti/stakingPool.algo.ts:930", "pc": [ - 3503, - 3504, - 3505 + 3503 ] }, { - "teal": 3766, - "source": "examples/reti/stakingPool.algo.ts:929", + "teal": 3767, + "source": "examples/reti/stakingPool.algo.ts:930", "pc": [ - 3506 + 3504 ] }, { - "teal": 3770, + "teal": 3768, "source": "examples/reti/stakingPool.algo.ts:930", "pc": [ - 3507 + 3505, + 3506 ] }, { - "teal": 3771, + "teal": 3769, "source": "examples/reti/stakingPool.algo.ts:930", "pc": [ - 3508 + 3507, + 3508, + 3509 ] }, { - "teal": 3772, + "teal": 3770, "source": "examples/reti/stakingPool.algo.ts:930", "pc": [ - 3509, 3510 ] }, { - "teal": 3773, + "teal": 3771, "source": "examples/reti/stakingPool.algo.ts:930", "pc": [ - 3511, - 3512, - 3513 + 3511 ] }, { "teal": 3774, "source": "examples/reti/stakingPool.algo.ts:930", + "errorMessage": "caller must be part of same validator set!", "pc": [ - 3514 + 3512 ] }, { - "teal": 3775, - "source": "examples/reti/stakingPool.algo.ts:930", + "teal": 3778, + "source": "examples/reti/stakingPool.algo.ts:931", "pc": [ - 3515 + 3513, + 3514 ] }, { - "teal": 3778, - "source": "examples/reti/stakingPool.algo.ts:930", - "errorMessage": "caller must be part of same validator set!", + "teal": 3779, + "source": "examples/reti/stakingPool.algo.ts:931", "pc": [ - 3516 + 3515 ] }, { - "teal": 3782, + "teal": 3780, "source": "examples/reti/stakingPool.algo.ts:931", "pc": [ - 3517, - 3518 + 3516 ] }, { - "teal": 3783, + "teal": 3781, "source": "examples/reti/stakingPool.algo.ts:931", "pc": [ - 3519 + 3517 ] }, { "teal": 3784, "source": "examples/reti/stakingPool.algo.ts:931", + "errorMessage": "callee must be pool 1", "pc": [ - 3520 + 3518 ] }, { - "teal": 3785, - "source": "examples/reti/stakingPool.algo.ts:931", + "teal": 3788, + "source": "examples/reti/stakingPool.algo.ts:932", "pc": [ - 3521 + 3519, + 3520 ] }, { - "teal": 3788, - "source": "examples/reti/stakingPool.algo.ts:931", - "errorMessage": "callee must be pool 1", + "teal": 3789, + "source": "examples/reti/stakingPool.algo.ts:932", "pc": [ - 3522 + 3521, + 3522, + 3523 ] }, { - "teal": 3792, + "teal": 3790, "source": "examples/reti/stakingPool.algo.ts:932", "pc": [ - 3523, 3524 ] }, { - "teal": 3793, + "teal": 3791, "source": "examples/reti/stakingPool.algo.ts:932", "pc": [ - 3525, - 3526, - 3527 + 3525 ] }, { - "teal": 3794, + "teal": 3792, "source": "examples/reti/stakingPool.algo.ts:932", "pc": [ - 3528 + 3526 ] }, { "teal": 3795, "source": "examples/reti/stakingPool.algo.ts:932", + "errorMessage": "caller must NOT be pool 1", "pc": [ - 3529 + 3527 ] }, { - "teal": 3796, - "source": "examples/reti/stakingPool.algo.ts:932", + "teal": 3802, + "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3530 + 3528 ] }, { - "teal": 3799, - "source": "examples/reti/stakingPool.algo.ts:932", - "errorMessage": "caller must NOT be pool 1", + "teal": 3803, + "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3531 + 3529 ] }, { - "teal": 3806, + "teal": 3804, "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3532 + 3530, + 3531 ] }, { - "teal": 3807, + "teal": 3805, "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ + 3532, 3533 ] }, { - "teal": 3808, + "teal": 3806, "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ 3534, @@ -15760,320 +15760,320 @@ ] }, { - "teal": 3809, - "source": "examples/reti/stakingPool.algo.ts:934", + "teal": 3810, + "source": "examples/reti/stakingPool.algo.ts:935", "pc": [ - 3536, - 3537 + 3536 ] }, { - "teal": 3810, - "source": "examples/reti/stakingPool.algo.ts:934", + "teal": 3811, + "source": "examples/reti/stakingPool.algo.ts:935", "pc": [ - 3538, - 3539 + 3537 ] }, { - "teal": 3814, + "teal": 3812, "source": "examples/reti/stakingPool.algo.ts:935", "pc": [ - 3540 + 3538, + 3539 ] }, { - "teal": 3815, - "source": "examples/reti/stakingPool.algo.ts:935", + "teal": 3816, + "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ + 3540, 3541 ] }, { - "teal": 3816, - "source": "examples/reti/stakingPool.algo.ts:935", + "teal": 3817, + "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ 3542, - 3543 + 3543, + 3544 ] }, { - "teal": 3820, + "teal": 3818, "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ - 3544, 3545 ] }, { - "teal": 3821, + "teal": 3819, "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ - 3546, - 3547, - 3548 + 3546 ] }, { - "teal": 3822, + "teal": 3820, "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ - 3549 + 3547, + 3548 ] }, { - "teal": 3823, + "teal": 3821, "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ + 3549, 3550 ] }, { - "teal": 3824, + "teal": 3822, "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ 3551, - 3552 + 3552, + 3553 ] }, { - "teal": 3825, + "teal": 3823, "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ - 3553, 3554 ] }, { - "teal": 3826, + "teal": 3824, "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ - 3555, - 3556, - 3557 + 3555 ] }, { - "teal": 3827, + "teal": 3825, "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ - 3558 + 3556, + 3557 ] }, { "teal": 3828, - "source": "examples/reti/stakingPool.algo.ts:936", + "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3559 + 3558 ] }, { "teal": 3829, - "source": "examples/reti/stakingPool.algo.ts:936", + "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3560, - 3561 + 3559, + 3560 ] }, { "teal": 3832, "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3562 + 3561 ] }, { "teal": 3833, "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3563, - 3564 + 3562, + 3563 ] }, { - "teal": 3836, + "teal": 3834, "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3565 + 3564 ] }, { - "teal": 3837, + "teal": 3835, "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3566, - 3567 + 3565 ] }, { - "teal": 3838, + "teal": 3836, "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3568 + 3566, + 3567 ] }, { - "teal": 3839, + "teal": 3837, "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3569 + 3568, + 3569, + 3570 ] }, { - "teal": 3840, + "teal": 3838, "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3570, 3571 ] }, { - "teal": 3841, + "teal": 3839, "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ 3572, - 3573, - 3574 + 3573 ] }, { - "teal": 3842, - "source": "examples/reti/stakingPool.algo.ts:934", + "teal": 3843, + "source": "examples/reti/stakingPool.algo.ts:938", "pc": [ + 3574, 3575 ] }, { - "teal": 3843, - "source": "examples/reti/stakingPool.algo.ts:934", + "teal": 3844, + "source": "examples/reti/stakingPool.algo.ts:938", "pc": [ 3576, 3577 ] }, { - "teal": 3847, + "teal": 3845, "source": "examples/reti/stakingPool.algo.ts:938", "pc": [ 3578, - 3579 + 3579, + 3580 ] }, { - "teal": 3848, + "teal": 3846, "source": "examples/reti/stakingPool.algo.ts:938", "pc": [ - 3580, 3581 ] }, { - "teal": 3849, + "teal": 3847, "source": "examples/reti/stakingPool.algo.ts:938", "pc": [ - 3582, - 3583, - 3584 + 3582 ] }, { - "teal": 3850, + "teal": 3848, "source": "examples/reti/stakingPool.algo.ts:938", "pc": [ - 3585 + 3583 ] }, { - "teal": 3851, - "source": "examples/reti/stakingPool.algo.ts:938", + "teal": 3852, + "source": "examples/reti/stakingPool.algo.ts:939", "pc": [ - 3586 + 3584, + 3585 ] }, { - "teal": 3852, - "source": "examples/reti/stakingPool.algo.ts:938", + "teal": 3853, + "source": "examples/reti/stakingPool.algo.ts:939", "pc": [ + 3586, 3587 ] }, { - "teal": 3856, + "teal": 3854, "source": "examples/reti/stakingPool.algo.ts:939", "pc": [ 3588, - 3589 + 3589, + 3590 ] }, { - "teal": 3857, + "teal": 3855, "source": "examples/reti/stakingPool.algo.ts:939", "pc": [ - 3590, 3591 ] }, { - "teal": 3858, + "teal": 3856, "source": "examples/reti/stakingPool.algo.ts:939", "pc": [ 3592, - 3593, - 3594 + 3593 ] }, { - "teal": 3859, + "teal": 3857, "source": "examples/reti/stakingPool.algo.ts:939", "pc": [ - 3595 + 3594 ] }, { - "teal": 3860, + "teal": 3858, "source": "examples/reti/stakingPool.algo.ts:939", "pc": [ - 3596, - 3597 + 3595 ] }, { - "teal": 3861, + "teal": 3859, "source": "examples/reti/stakingPool.algo.ts:939", "pc": [ - 3598 + 3596 ] }, { - "teal": 3862, - "source": "examples/reti/stakingPool.algo.ts:939", + "teal": 3866, + "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3599 + 3597 ] }, { - "teal": 3863, - "source": "examples/reti/stakingPool.algo.ts:939", + "teal": 3867, + "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3600 + 3598 ] }, { - "teal": 3870, + "teal": 3868, "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3601 + 3599, + 3600 ] }, { - "teal": 3871, + "teal": 3869, "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ + 3601, 3602 ] }, { - "teal": 3872, + "teal": 3870, "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ 3603, @@ -16081,96 +16081,102 @@ ] }, { - "teal": 3873, - "source": "examples/reti/stakingPool.algo.ts:941", + "teal": 3874, + "source": "examples/reti/stakingPool.algo.ts:942", + "pc": [ + 3605 + ] + }, + { + "teal": 3875, + "source": "examples/reti/stakingPool.algo.ts:942", "pc": [ - 3605, 3606 ] }, { - "teal": 3874, - "source": "examples/reti/stakingPool.algo.ts:941", + "teal": 3876, + "source": "examples/reti/stakingPool.algo.ts:942", "pc": [ 3607, 3608 ] }, { - "teal": 3878, - "source": "examples/reti/stakingPool.algo.ts:942", + "teal": 3880, + "source": "examples/reti/stakingPool.algo.ts:943", "pc": [ 3609 ] }, { - "teal": 3879, - "source": "examples/reti/stakingPool.algo.ts:942", + "teal": 3881, + "source": "examples/reti/stakingPool.algo.ts:943", "pc": [ 3610 ] }, { - "teal": 3880, - "source": "examples/reti/stakingPool.algo.ts:942", + "teal": 3882, + "source": "examples/reti/stakingPool.algo.ts:943", "pc": [ - 3611, - 3612 + 3611 ] }, { - "teal": 3884, + "teal": 3883, "source": "examples/reti/stakingPool.algo.ts:943", "pc": [ + 3612, 3613 ] }, { - "teal": 3885, - "source": "examples/reti/stakingPool.algo.ts:943", + "teal": 3886, + "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ 3614 ] }, { - "teal": 3886, - "source": "examples/reti/stakingPool.algo.ts:943", + "teal": 3887, + "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3615 + 3615, + 3616 ] }, { - "teal": 3887, - "source": "examples/reti/stakingPool.algo.ts:943", + "teal": 3890, + "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3616, 3617 ] }, { - "teal": 3890, + "teal": 3891, "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3618 + 3618, + 3619 ] }, { - "teal": 3891, + "teal": 3892, "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3619, 3620 ] }, { - "teal": 3894, + "teal": 3893, "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ 3621 ] }, { - "teal": 3895, + "teal": 3894, "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ 3622, @@ -16178,184 +16184,184 @@ ] }, { - "teal": 3896, - "source": "examples/reti/stakingPool.algo.ts:941", - "pc": [ - 3624 - ] - }, - { - "teal": 3897, + "teal": 3895, "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3625 + 3624, + 3625, + 3626 ] }, { "teal": 3898, - "source": "examples/reti/stakingPool.algo.ts:941", + "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3626, - 3627 + 3627, + 3628 ] }, { "teal": 3899, - "source": "examples/reti/stakingPool.algo.ts:941", + "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3628, - 3629, - 3630 + 3629 ] }, { - "teal": 3902, - "source": "examples/reti/stakingPool.algo.ts:929", + "teal": 3903, + "source": "examples/reti/stakingPool.algo.ts:947", "pc": [ + 3630, 3631, 3632 ] }, { - "teal": 3903, - "source": "examples/reti/stakingPool.algo.ts:929", + "teal": 3906, + "source": "examples/reti/stakingPool.algo.ts:947", "pc": [ 3633 ] }, { - "teal": 3907, - "source": "examples/reti/stakingPool.algo.ts:947", + "teal": 3913, + "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3634, - 3635, - 3636 + 3634 ] }, { - "teal": 3910, - "source": "examples/reti/stakingPool.algo.ts:947", + "teal": 3914, + "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3637 + 3635 ] }, { - "teal": 3917, + "teal": 3915, "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3638 + 3636, + 3637 ] }, { - "teal": 3918, + "teal": 3916, "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3639 + 3638, + 3639, + 3640, + 3641, + 3642, + 3643 ] }, { - "teal": 3919, + "teal": 3917, "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3640, - 3641 + 3644, + 3645 ] }, { - "teal": 3920, - "source": "examples/reti/stakingPool.algo.ts:948", + "teal": 3921, + "source": "examples/reti/stakingPool.algo.ts:949", + "pc": [ + 3646 + ] + }, + { + "teal": 3922, + "source": "examples/reti/stakingPool.algo.ts:949", "pc": [ - 3642, - 3643, - 3644, - 3645, - 3646, 3647 ] }, { - "teal": 3921, - "source": "examples/reti/stakingPool.algo.ts:948", + "teal": 3923, + "source": "examples/reti/stakingPool.algo.ts:949", "pc": [ 3648, 3649 ] }, { - "teal": 3925, - "source": "examples/reti/stakingPool.algo.ts:949", + "teal": 3927, + "source": "examples/reti/stakingPool.algo.ts:950", "pc": [ 3650 ] }, { - "teal": 3926, - "source": "examples/reti/stakingPool.algo.ts:949", + "teal": 3928, + "source": "examples/reti/stakingPool.algo.ts:950", "pc": [ 3651 ] }, { - "teal": 3927, - "source": "examples/reti/stakingPool.algo.ts:949", + "teal": 3929, + "source": "examples/reti/stakingPool.algo.ts:950", "pc": [ - 3652, - 3653 + 3652 ] }, { - "teal": 3931, + "teal": 3930, "source": "examples/reti/stakingPool.algo.ts:950", "pc": [ + 3653, 3654 ] }, { - "teal": 3932, - "source": "examples/reti/stakingPool.algo.ts:950", + "teal": 3933, + "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ 3655 ] }, { - "teal": 3933, - "source": "examples/reti/stakingPool.algo.ts:950", + "teal": 3934, + "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3656 + 3656, + 3657 ] }, { - "teal": 3934, - "source": "examples/reti/stakingPool.algo.ts:950", + "teal": 3937, + "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3657, 3658 ] }, { - "teal": 3937, + "teal": 3938, "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3659 + 3659, + 3660 ] }, { - "teal": 3938, + "teal": 3939, "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3660, 3661 ] }, { - "teal": 3941, + "teal": 3940, "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ 3662 ] }, { - "teal": 3942, + "teal": 3941, "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ 3663, @@ -16363,173 +16369,167 @@ ] }, { - "teal": 3943, - "source": "examples/reti/stakingPool.algo.ts:948", - "pc": [ - 3665 - ] - }, - { - "teal": 3944, + "teal": 3942, "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3666 + 3665, + 3666, + 3667 ] }, { - "teal": 3945, + "teal": 3943, "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3667, - 3668 + 3668, + 3669 ] }, { - "teal": 3946, - "source": "examples/reti/stakingPool.algo.ts:948", + "teal": 3947, + "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ - 3669, 3670, 3671 ] }, { - "teal": 3947, - "source": "examples/reti/stakingPool.algo.ts:948", + "teal": 3948, + "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ 3672, 3673 ] }, { - "teal": 3951, + "teal": 3949, "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ 3674, - 3675 + 3675, + 3676 ] }, { - "teal": 3952, + "teal": 3950, "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ - 3676, 3677 ] }, { - "teal": 3953, + "teal": 3951, "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ - 3678, - 3679, - 3680 + 3678 ] }, { - "teal": 3954, + "teal": 3952, "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ + 3679, + 3680, 3681 ] }, { - "teal": 3955, + "teal": 3953, "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ - 3682 + 3682, + 3683 ] }, { - "teal": 3956, + "teal": 3954, "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ - 3683, 3684, 3685 ] }, { - "teal": 3957, + "teal": 3955, "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ 3686, - 3687 + 3687, + 3688 ] }, { - "teal": 3958, + "teal": 3956, "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ - 3688, 3689 ] }, { - "teal": 3959, + "teal": 3957, "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ - 3690, - 3691, - 3692 + 3690 ] }, { - "teal": 3960, - "source": "examples/reti/stakingPool.algo.ts:952", + "teal": 3961, + "source": "examples/reti/stakingPool.algo.ts:947", "pc": [ - 3693 + 3691, + 3692 ] }, { - "teal": 3961, - "source": "examples/reti/stakingPool.algo.ts:952", + "teal": 3962, + "source": "examples/reti/stakingPool.algo.ts:947", "pc": [ - 3694 + 3693 ] }, { - "teal": 3965, - "source": "examples/reti/stakingPool.algo.ts:947", + "teal": 3966, + "source": "examples/reti/stakingPool.algo.ts:955", "pc": [ + 3694, 3695, 3696 ] }, { - "teal": 3966, - "source": "examples/reti/stakingPool.algo.ts:947", + "teal": 3970, + "source": "examples/reti/stakingPool.algo.ts:956", "pc": [ - 3697 + 3697, + 3698 ] }, { - "teal": 3970, + "teal": 3971, "source": "examples/reti/stakingPool.algo.ts:955", "pc": [ - 3698, - 3699, - 3700 + 3699 ] }, { - "teal": 3974, - "source": "examples/reti/stakingPool.algo.ts:956", + "teal": 3978, + "source": "examples/reti/stakingPool.algo.ts:965", "pc": [ + 3700, 3701, 3702 ] }, { - "teal": 3975, - "source": "examples/reti/stakingPool.algo.ts:955", + "teal": 3981, + "source": "examples/reti/stakingPool.algo.ts:965", "pc": [ 3703 ] }, { - "teal": 3982, - "source": "examples/reti/stakingPool.algo.ts:965", + "teal": 3985, + "source": "examples/reti/stakingPool.algo.ts:966", "pc": [ 3704, 3705, @@ -16537,248 +16537,248 @@ ] }, { - "teal": 3985, - "source": "examples/reti/stakingPool.algo.ts:965", + "teal": 3986, + "source": "examples/reti/stakingPool.algo.ts:966", "pc": [ - 3707 + 3707, + 3708 ] }, { - "teal": 3989, - "source": "examples/reti/stakingPool.algo.ts:966", + "teal": 3990, + "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 3708, 3709, 3710 ] }, { - "teal": 3990, - "source": "examples/reti/stakingPool.algo.ts:966", + "teal": 3991, + "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ 3711, 3712 ] }, { - "teal": 3994, + "teal": 3992, "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 3713, - 3714 + 3713 ] }, { - "teal": 3995, + "teal": 3993, "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 3715, - 3716 + 3714 ] }, { - "teal": 3996, + "teal": 3994, "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 3717 + 3715, + 3716 ] }, { - "teal": 3997, + "teal": 3995, "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 3718 + 3717 ] }, { - "teal": 3998, + "teal": 3996, "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 3719, - 3720 + 3718 ] }, { - "teal": 3999, + "teal": 3997, "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 3721 + 3719 ] }, { - "teal": 4000, + "teal": 3998, "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 3722 + 3720 ] }, { - "teal": 4001, + "teal": 3999, "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 3723 + 3721 ] }, { "teal": 4002, "source": "examples/reti/stakingPool.algo.ts:968", + "errorMessage": "wideRatio failed", "pc": [ - 3724 + 3722 ] }, { - "teal": 4003, - "source": "examples/reti/stakingPool.algo.ts:968", + "teal": 4005, + "source": "examples/reti/stakingPool.algo.ts:965", "pc": [ - 3725 + 3723, + 3724 ] }, { "teal": 4006, - "source": "examples/reti/stakingPool.algo.ts:968", - "errorMessage": "wideRatio failed", - "pc": [ - 3726 - ] - }, - { - "teal": 4009, "source": "examples/reti/stakingPool.algo.ts:965", "pc": [ - 3727, - 3728 + 3725 ] }, { "teal": 4010, - "source": "examples/reti/stakingPool.algo.ts:965", + "source": "examples/reti/stakingPool.algo.ts:971", "pc": [ - 3729 + 3726, + 3727, + 3728 ] }, { - "teal": 4014, + "teal": 4013, "source": "examples/reti/stakingPool.algo.ts:971", "pc": [ - 3730, - 3731, - 3732 + 3729 ] }, { "teal": 4017, - "source": "examples/reti/stakingPool.algo.ts:971", + "source": "examples/reti/stakingPool.algo.ts:975", "pc": [ - 3733 + 3730 ] }, { - "teal": 4021, + "teal": 4018, "source": "examples/reti/stakingPool.algo.ts:975", "pc": [ - 3734 + 3731, + 3732 ] }, { - "teal": 4022, - "source": "examples/reti/stakingPool.algo.ts:975", + "teal": 4023, + "source": "examples/reti/stakingPool.algo.ts:976", "pc": [ - 3735, - 3736 + 3733, + 3734 ] }, { - "teal": 4027, + "teal": 4024, "source": "examples/reti/stakingPool.algo.ts:976", "pc": [ - 3737, - 3738 + 3735 ] }, { - "teal": 4028, + "teal": 4025, "source": "examples/reti/stakingPool.algo.ts:976", "pc": [ - 3739 + 3736, + 3737, + 3738 ] }, { - "teal": 4029, - "source": "examples/reti/stakingPool.algo.ts:976", + "teal": 4030, + "source": "examples/reti/stakingPool.algo.ts:978", "pc": [ + 3739, 3740, 3741, 3742 ] }, { - "teal": 4034, + "teal": 4031, "source": "examples/reti/stakingPool.algo.ts:978", "pc": [ 3743, 3744, - 3745, - 3746 + 3745 ] }, { - "teal": 4035, - "source": "examples/reti/stakingPool.algo.ts:978", + "teal": 4036, + "source": "examples/reti/stakingPool.algo.ts:980", "pc": [ - 3747, - 3748, - 3749 + 3746 ] }, { "teal": 4040, - "source": "examples/reti/stakingPool.algo.ts:980", + "source": "examples/reti/stakingPool.algo.ts:971", "pc": [ - 3750 + 3747, + 3748 ] }, { - "teal": 4044, + "teal": 4041, "source": "examples/reti/stakingPool.algo.ts:971", "pc": [ - 3751, - 3752 + 3749 ] }, { "teal": 4045, - "source": "examples/reti/stakingPool.algo.ts:971", + "source": "examples/reti/stakingPool.algo.ts:983", "pc": [ - 3753 + 3750, + 3751, + 3752 ] }, { "teal": 4049, - "source": "examples/reti/stakingPool.algo.ts:983", + "source": "examples/reti/stakingPool.algo.ts:985", "pc": [ + 3753, 3754, 3755, - 3756 - ] - }, - { - "teal": 4053, - "source": "examples/reti/stakingPool.algo.ts:985", - "pc": [ + 3756, 3757, 3758, 3759, 3760, - 3761, - 3762, + 3761 + ] + }, + { + "teal": 4050, + "source": "examples/reti/stakingPool.algo.ts:983", + "pc": [ + 3762 + ] + }, + { + "teal": 4056, + "source": "examples/reti/stakingPool.algo.ts:991", + "pc": [ 3763, 3764, 3765 ] }, { - "teal": 4054, - "source": "examples/reti/stakingPool.algo.ts:983", + "teal": 4059, + "source": "examples/reti/stakingPool.algo.ts:991", "pc": [ 3766 ] @@ -16788,135 +16788,147 @@ "source": "examples/reti/stakingPool.algo.ts:991", "pc": [ 3767, - 3768, - 3769 + 3768 ] }, { - "teal": 4063, - "source": "examples/reti/stakingPool.algo.ts:991", + "teal": 4064, + "source": "examples/reti/stakingPool.algo.ts:992", "pc": [ + 3769, 3770 ] }, { - "teal": 4064, - "source": "examples/reti/stakingPool.algo.ts:991", + "teal": 4065, + "source": "examples/reti/stakingPool.algo.ts:992", "pc": [ - 3771, - 3772 + 3771 ] }, { - "teal": 4068, + "teal": 4066, "source": "examples/reti/stakingPool.algo.ts:992", "pc": [ - 3773, - 3774 + 3772 ] }, { - "teal": 4069, + "teal": 4067, "source": "examples/reti/stakingPool.algo.ts:992", "pc": [ - 3775 + 3773, + 3774 ] }, { - "teal": 4070, - "source": "examples/reti/stakingPool.algo.ts:992", + "teal": 4072, + "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ + 3775, 3776 ] }, { - "teal": 4071, - "source": "examples/reti/stakingPool.algo.ts:992", + "teal": 4073, + "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ 3777, 3778 ] }, + { + "teal": 4074, + "source": "examples/reti/stakingPool.algo.ts:993", + "pc": [ + 3779 + ] + }, + { + "teal": 4075, + "source": "examples/reti/stakingPool.algo.ts:993", + "pc": [ + 3780, + 3781 + ] + }, { "teal": 4076, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3779, - 3780 + 3782 ] }, { "teal": 4077, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3781, - 3782 + 3783 ] }, { "teal": 4078, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3783 + 3784 ] }, { "teal": 4079, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3784, 3785 ] }, { - "teal": 4080, + "teal": 4082, "source": "examples/reti/stakingPool.algo.ts:993", + "errorMessage": "currentBinSize as uint64 overflowed 64 bits", "pc": [ 3786 ] }, { - "teal": 4081, + "teal": 4083, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3787 + 3787, + 3788, + 3789, + 3790, + 3791, + 3792, + 3793, + 3794, + 3795, + 3796 ] }, { - "teal": 4082, + "teal": 4084, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3788 + 3797 ] }, { - "teal": 4083, + "teal": 4085, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3789 + 3798 ] }, { "teal": 4086, "source": "examples/reti/stakingPool.algo.ts:993", - "errorMessage": "currentBinSize as uint64 overflowed 64 bits", "pc": [ - 3790 + 3799 ] }, { "teal": 4087, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3791, - 3792, - 3793, - 3794, - 3795, - 3796, - 3797, - 3798, - 3799, 3800 ] }, @@ -16924,35 +16936,35 @@ "teal": 4088, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3801 + 3801, + 3802 ] }, { "teal": 4089, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3802 + 3803 ] }, { "teal": 4090, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3803 + 3804 ] }, { "teal": 4091, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3804 + 3805 ] }, { "teal": 4092, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3805, 3806 ] }, @@ -16974,125 +16986,113 @@ "teal": 4095, "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 3809 - ] - }, - { - "teal": 4096, - "source": "examples/reti/stakingPool.algo.ts:993", - "pc": [ - 3810 - ] - }, - { - "teal": 4097, - "source": "examples/reti/stakingPool.algo.ts:993", - "pc": [ + 3809, + 3810, 3811 ] }, { - "teal": 4098, - "source": "examples/reti/stakingPool.algo.ts:993", + "teal": 4101, + "source": "examples/reti/stakingPool.algo.ts:994", "pc": [ - 3812 + 3812, + 3813 ] }, { - "teal": 4099, - "source": "examples/reti/stakingPool.algo.ts:993", + "teal": 4102, + "source": "examples/reti/stakingPool.algo.ts:994", "pc": [ - 3813, 3814, 3815 ] }, { - "teal": 4105, + "teal": 4103, "source": "examples/reti/stakingPool.algo.ts:994", "pc": [ - 3816, - 3817 + 3816 ] }, { - "teal": 4106, + "teal": 4104, "source": "examples/reti/stakingPool.algo.ts:994", "pc": [ + 3817, 3818, 3819 ] }, { - "teal": 4107, - "source": "examples/reti/stakingPool.algo.ts:994", + "teal": 4109, + "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ 3820 ] }, { - "teal": 4108, - "source": "examples/reti/stakingPool.algo.ts:994", + "teal": 4110, + "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 3821, - 3822, - 3823 + 3821 ] }, { - "teal": 4113, + "teal": 4111, "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 3824 + 3822, + 3823 ] }, { - "teal": 4114, + "teal": 4112, "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 3825 + 3824 ] }, { - "teal": 4115, + "teal": 4113, "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 3826, - 3827 + 3825, + 3826 ] }, { - "teal": 4116, + "teal": 4114, "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ + 3827, 3828 ] }, { - "teal": 4117, + "teal": 4115, "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 3829, - 3830 + 3829 ] }, { - "teal": 4118, + "teal": 4116, "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 3831, - 3832 + 3830, + 3831 ] }, { - "teal": 4119, + "teal": 4117, "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ + 3832, 3833 ] }, { - "teal": 4120, + "teal": 4118, "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ 3834, @@ -17100,7 +17100,7 @@ ] }, { - "teal": 4121, + "teal": 4119, "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ 3836, @@ -17108,40 +17108,28 @@ ] }, { - "teal": 4122, - "source": "examples/reti/stakingPool.algo.ts:995", - "pc": [ - 3838, - 3839 - ] - }, - { - "teal": 4123, - "source": "examples/reti/stakingPool.algo.ts:995", - "pc": [ - 3840, - 3841 - ] - }, - { - "teal": 4124, + "teal": 4120, "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 3842 + 3838 ] }, { - "teal": 4129, + "teal": 4125, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ - 3843, - 3844 + 3839, + 3840 ] }, { - "teal": 4130, + "teal": 4126, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ + 3841, + 3842, + 3843, + 3844, 3845, 3846, 3847, @@ -17155,36 +17143,55 @@ 3855, 3856, 3857, - 3858, - 3859, - 3860, - 3861, - 3862 + 3858 ] }, { - "teal": 4131, + "teal": 4127, + "source": "examples/reti/stakingPool.algo.ts:997", + "pc": [ + 3859 + ] + }, + { + "teal": 4128, + "source": "examples/reti/stakingPool.algo.ts:997", + "pc": [ + 3860 + ] + }, + { + "teal": 4129, + "source": "examples/reti/stakingPool.algo.ts:997", + "pc": [ + 3861 + ] + }, + { + "teal": 4130, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ + 3862, 3863 ] }, { - "teal": 4132, + "teal": 4131, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ 3864 ] }, { - "teal": 4133, + "teal": 4134, "source": "examples/reti/stakingPool.algo.ts:997", + "errorMessage": "currentBinSize * (365 as uint128) overflowed 128 bits", "pc": [ 3865 ] }, { - "teal": 4134, + "teal": 4135, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ 3866, @@ -17192,139 +17199,139 @@ ] }, { - "teal": 4135, + "teal": 4136, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ 3868 ] }, { - "teal": 4138, + "teal": 4137, "source": "examples/reti/stakingPool.algo.ts:997", - "errorMessage": "currentBinSize * (365 as uint128) overflowed 128 bits", "pc": [ 3869 ] }, { - "teal": 4139, + "teal": 4138, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ - 3870, - 3871 + 3870 ] }, { - "teal": 4140, + "teal": 4139, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ - 3872 + 3871 ] }, { - "teal": 4141, + "teal": 4140, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ + 3872, 3873 ] }, { - "teal": 4142, + "teal": 4141, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ 3874 ] }, { - "teal": 4143, + "teal": 4142, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ 3875 ] }, { - "teal": 4144, + "teal": 4143, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ - 3876, - 3877 + 3876 ] }, { - "teal": 4145, + "teal": 4144, "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ + 3877, 3878 ] }, { - "teal": 4146, - "source": "examples/reti/stakingPool.algo.ts:997", + "teal": 4148, + "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 3879 + 3879, + 3880 ] }, { - "teal": 4147, - "source": "examples/reti/stakingPool.algo.ts:997", + "teal": 4149, + "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 3880 + 3881 ] }, { - "teal": 4148, - "source": "examples/reti/stakingPool.algo.ts:997", + "teal": 4150, + "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 3881, - 3882 + 3882, + 3883 ] }, { - "teal": 4152, + "teal": 4151, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 3883, 3884 ] }, { - "teal": 4153, + "teal": 4152, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ 3885 ] }, { - "teal": 4154, + "teal": 4153, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 3886, - 3887 + 3886 ] }, { - "teal": 4155, + "teal": 4154, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ + 3887, 3888 ] }, { - "teal": 4156, + "teal": 4155, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ 3889 ] }, { - "teal": 4157, + "teal": 4158, "source": "examples/reti/stakingPool.algo.ts:998", + "errorMessage": "this.stakeAccumulator.value / currentBinSize overflowed 128 bits", "pc": [ 3890 ] }, { - "teal": 4158, + "teal": 4159, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ 3891, @@ -17332,151 +17339,132 @@ ] }, { - "teal": 4159, + "teal": 4160, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ 3893 ] }, { - "teal": 4162, + "teal": 4161, "source": "examples/reti/stakingPool.algo.ts:998", - "errorMessage": "this.stakeAccumulator.value / currentBinSize overflowed 128 bits", "pc": [ 3894 ] }, { - "teal": 4163, + "teal": 4162, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 3895, - 3896 + 3895 ] }, { - "teal": 4164, + "teal": 4163, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 3897 + 3896 ] }, { - "teal": 4165, + "teal": 4164, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ + 3897, 3898 ] }, { - "teal": 4166, + "teal": 4165, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ 3899 ] }, { - "teal": 4167, + "teal": 4166, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ 3900 ] }, { - "teal": 4168, + "teal": 4167, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 3901, - 3902 + 3901 ] }, { - "teal": 4169, + "teal": 4168, "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ + 3902, 3903 ] }, { - "teal": 4170, - "source": "examples/reti/stakingPool.algo.ts:998", - "pc": [ - 3904 - ] - }, - { - "teal": 4171, - "source": "examples/reti/stakingPool.algo.ts:998", + "teal": 4173, + "source": "examples/reti/stakingPool.algo.ts:999", "pc": [ + 3904, 3905 ] }, { - "teal": 4172, - "source": "examples/reti/stakingPool.algo.ts:998", + "teal": 4174, + "source": "examples/reti/stakingPool.algo.ts:999", "pc": [ 3906, 3907 ] }, { - "teal": 4177, + "teal": 4175, "source": "examples/reti/stakingPool.algo.ts:999", "pc": [ - 3908, - 3909 + 3908 ] }, { - "teal": 4178, + "teal": 4176, "source": "examples/reti/stakingPool.algo.ts:999", "pc": [ + 3909, 3910, 3911 ] }, { - "teal": 4179, - "source": "examples/reti/stakingPool.algo.ts:999", - "pc": [ - 3912 - ] - }, - { - "teal": 4180, - "source": "examples/reti/stakingPool.algo.ts:999", - "pc": [ - 3913, - 3914, - 3915 - ] - }, - { - "teal": 4187, + "teal": 4183, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3916, - 3917 + 3912, + 3913 ] }, { - "teal": 4188, + "teal": 4184, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3918 + 3914 ] }, { - "teal": 4189, + "teal": 4185, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3919 + 3915 ] }, { - "teal": 4190, + "teal": 4186, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ + 3916, + 3917, + 3918, + 3919, 3920, 3921, 3922, @@ -17490,179 +17478,179 @@ 3930, 3931, 3932, - 3933, - 3934, - 3935, - 3936, - 3937 + 3933 ] }, { - "teal": 4191, + "teal": 4187, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3938 + 3934 ] }, { - "teal": 4192, + "teal": 4188, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3939, - 3940 + 3935, + 3936 ] }, { - "teal": 4193, + "teal": 4189, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3941 + 3937 ] }, { - "teal": 4194, + "teal": 4190, "source": "examples/reti/stakingPool.algo.ts:1005", "pc": [ - 3942, - 3943 + 3938, + 3939 ] }, { - "teal": 4195, + "teal": 4191, "source": "examples/reti/stakingPool.algo.ts:1005", "pc": [ - 3944, - 3945 + 3940, + 3941 ] }, { - "teal": 4196, + "teal": 4192, "source": "examples/reti/stakingPool.algo.ts:1005", "pc": [ - 3946 + 3942 ] }, { - "teal": 4197, + "teal": 4193, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3947 + 3943 ] }, { - "teal": 4198, + "teal": 4194, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3948 + 3944 ] }, { - "teal": 4199, + "teal": 4195, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3949 + 3945 ] }, { - "teal": 4200, + "teal": 4196, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3950, - 3951 + 3946, + 3947 ] }, { - "teal": 4201, + "teal": 4197, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3952 + 3948 ] }, { - "teal": 4204, + "teal": 4200, "source": "examples/reti/stakingPool.algo.ts:1004", "errorMessage": "(((this.rewardAccumulator.value as uint128) * (10000 as uint128)) / avgStake) *\\n (approxRoundsPerYear / currentBinSize) overflowed 128 bits", "pc": [ - 3953 + 3949 ] }, { - "teal": 4205, + "teal": 4201, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3954, - 3955 + 3950, + 3951 ] }, { - "teal": 4206, + "teal": 4202, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3956 + 3952 ] }, { - "teal": 4207, + "teal": 4203, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3957 + 3953 ] }, { - "teal": 4208, + "teal": 4204, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3958 + 3954 ] }, { - "teal": 4209, + "teal": 4205, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3959 + 3955 ] }, { - "teal": 4210, + "teal": 4206, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3960, - 3961 + 3956, + 3957 ] }, { - "teal": 4211, + "teal": 4207, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3962 + 3958 ] }, { - "teal": 4212, + "teal": 4208, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3963 + 3959 ] }, { - "teal": 4213, + "teal": 4209, "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 3964 + 3960 ] }, { - "teal": 4214, + "teal": 4210, "source": "examples/reti/stakingPool.algo.ts:1003", "pc": [ - 3965, - 3966 + 3961, + 3962 ] }, { - "teal": 4218, + "teal": 4214, "source": "examples/reti/stakingPool.algo.ts:1007", "pc": [ + 3963, + 3964, + 3965, + 3966, 3967, 3968, 3969, @@ -17676,33 +17664,33 @@ 3977, 3978, 3979, - 3980, - 3981, - 3982, - 3983, - 3984 + 3980 ] }, { - "teal": 4219, + "teal": 4215, "source": "examples/reti/stakingPool.algo.ts:1007", "pc": [ - 3985, - 3986 + 3981, + 3982 ] }, { - "teal": 4224, + "teal": 4220, "source": "examples/reti/stakingPool.algo.ts:1009", "pc": [ - 3987, - 3988 + 3983, + 3984 ] }, { - "teal": 4225, + "teal": 4221, "source": "examples/reti/stakingPool.algo.ts:1009", "pc": [ + 3985, + 3986, + 3987, + 3988, 3989, 3990, 3991, @@ -17716,33 +17704,33 @@ 3999, 4000, 4001, - 4002, - 4003, - 4004, - 4005, - 4006 + 4002 ] }, { - "teal": 4226, + "teal": 4222, "source": "examples/reti/stakingPool.algo.ts:1009", "pc": [ - 4007 + 4003 ] }, { - "teal": 4227, + "teal": 4223, "source": "examples/reti/stakingPool.algo.ts:1009", "pc": [ - 4008, - 4009, - 4010 + 4004, + 4005, + 4006 ] }, { - "teal": 4232, + "teal": 4228, "source": "examples/reti/stakingPool.algo.ts:1010", "pc": [ + 4007, + 4008, + 4009, + 4010, 4011, 4012, 4013, @@ -17756,149 +17744,168 @@ 4021, 4022, 4023, - 4024, + 4024 + ] + }, + { + "teal": 4229, + "source": "examples/reti/stakingPool.algo.ts:1010", + "pc": [ 4025, - 4026, + 4026 + ] + }, + { + "teal": 4236, + "source": "examples/reti/stakingPool.algo.ts:1012", + "pc": [ 4027, 4028 ] }, { - "teal": 4233, - "source": "examples/reti/stakingPool.algo.ts:1010", + "teal": 4237, + "source": "examples/reti/stakingPool.algo.ts:1012", + "pc": [ + 4029 + ] + }, + { + "teal": 4238, + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4029, 4030 ] }, { - "teal": 4240, - "source": "examples/reti/stakingPool.algo.ts:1012", + "teal": 4239, + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ 4031, 4032 ] }, + { + "teal": 4240, + "source": "examples/reti/stakingPool.algo.ts:1013", + "pc": [ + 4033, + 4034 + ] + }, { "teal": 4241, - "source": "examples/reti/stakingPool.algo.ts:1012", + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4033 + 4035 ] }, { "teal": 4242, "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4034 + 4036 ] }, { "teal": 4243, "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4035, - 4036 + 4037, + 4038 ] }, { "teal": 4244, "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4037, - 4038 + 4039 ] }, { "teal": 4245, - "source": "examples/reti/stakingPool.algo.ts:1013", + "source": "examples/reti/stakingPool.algo.ts:1014", "pc": [ - 4039 + 4040, + 4041 ] }, { "teal": 4246, - "source": "examples/reti/stakingPool.algo.ts:1013", + "source": "examples/reti/stakingPool.algo.ts:1014", "pc": [ - 4040 + 4042, + 4043 ] }, { "teal": 4247, - "source": "examples/reti/stakingPool.algo.ts:1013", + "source": "examples/reti/stakingPool.algo.ts:1014", "pc": [ - 4041, - 4042 + 4044 ] }, { "teal": 4248, - "source": "examples/reti/stakingPool.algo.ts:1013", + "source": "examples/reti/stakingPool.algo.ts:1014", "pc": [ - 4043 + 4045, + 4046 ] }, { "teal": 4249, "source": "examples/reti/stakingPool.algo.ts:1014", "pc": [ - 4044, - 4045 + 4047 ] }, { "teal": 4250, - "source": "examples/reti/stakingPool.algo.ts:1014", + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4046, - 4047 + 4048 ] }, { "teal": 4251, - "source": "examples/reti/stakingPool.algo.ts:1014", + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4048 + 4049 ] }, { "teal": 4252, - "source": "examples/reti/stakingPool.algo.ts:1014", + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4049, 4050 ] }, { "teal": 4253, - "source": "examples/reti/stakingPool.algo.ts:1014", - "pc": [ - 4051 - ] - }, - { - "teal": 4254, "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ + 4051, 4052 ] }, { - "teal": 4255, + "teal": 4254, "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ 4053 ] }, { - "teal": 4256, + "teal": 4257, "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": [ 4054 ] }, { - "teal": 4257, + "teal": 4258, "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ 4055, @@ -17906,25 +17913,30 @@ ] }, { - "teal": 4258, + "teal": 4259, "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ 4057 ] }, { - "teal": 4261, + "teal": 4260, "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": [ 4058 ] }, + { + "teal": 4261, + "source": "examples/reti/stakingPool.algo.ts:1013", + "pc": [ + 4059 + ] + }, { "teal": 4262, "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4059, 4060 ] }, @@ -17932,110 +17944,110 @@ "teal": 4263, "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4061 + 4061, + 4062 ] }, { "teal": 4264, "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4062 + 4063 ] }, { "teal": 4265, "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4063 + 4064 ] }, { "teal": 4266, "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4064 + 4065 ] }, { "teal": 4267, - "source": "examples/reti/stakingPool.algo.ts:1013", + "source": "examples/reti/stakingPool.algo.ts:1012", "pc": [ - 4065, 4066 ] }, { - "teal": 4268, - "source": "examples/reti/stakingPool.algo.ts:1013", + "teal": 4272, + "source": "examples/reti/stakingPool.algo.ts:1018", "pc": [ - 4067 + 4067, + 4068, + 4069 ] }, { - "teal": 4269, - "source": "examples/reti/stakingPool.algo.ts:1013", + "teal": 4276, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4068 + 4070, + 4071 ] }, { - "teal": 4270, - "source": "examples/reti/stakingPool.algo.ts:1013", + "teal": 4277, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4069 + 4072, + 4073 ] }, { - "teal": 4271, - "source": "examples/reti/stakingPool.algo.ts:1012", + "teal": 4278, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4070 + 4074 ] }, { - "teal": 4276, - "source": "examples/reti/stakingPool.algo.ts:1018", + "teal": 4279, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4071, - 4072, - 4073 + 4075 ] }, { "teal": 4280, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4074, - 4075 + 4076, + 4077 ] }, { "teal": 4281, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4076, - 4077 + 4078 ] }, { "teal": 4282, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4078 + 4079 ] }, { "teal": 4283, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4079 + 4080 ] }, { "teal": 4284, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4080, 4081 ] }, @@ -18050,32 +18062,27 @@ "teal": 4286, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4083 - ] - }, - { - "teal": 4287, - "source": "examples/reti/stakingPool.algo.ts:1019", - "pc": [ + 4083, 4084 ] }, { - "teal": 4288, + "teal": 4287, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ 4085 ] }, { - "teal": 4289, + "teal": 4290, "source": "examples/reti/stakingPool.algo.ts:1019", + "errorMessage": "(this.totalAlgoStaked.value as uint128) * (this.roundsPerDay.value as uint128) overflowed 128 bits", "pc": [ 4086 ] }, { - "teal": 4290, + "teal": 4291, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ 4087, @@ -18083,116 +18090,109 @@ ] }, { - "teal": 4291, + "teal": 4292, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ 4089 ] }, { - "teal": 4294, + "teal": 4293, "source": "examples/reti/stakingPool.algo.ts:1019", - "errorMessage": "(this.totalAlgoStaked.value as uint128) * (this.roundsPerDay.value as uint128) overflowed 128 bits", "pc": [ 4090 ] }, { - "teal": 4295, + "teal": 4294, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4091, - 4092 + 4091 ] }, { - "teal": 4296, + "teal": 4295, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4093 + 4092 ] }, { - "teal": 4297, + "teal": 4296, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ + 4093, 4094 ] }, { - "teal": 4298, + "teal": 4297, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ 4095 ] }, { - "teal": 4299, + "teal": 4298, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ 4096 ] }, { - "teal": 4300, + "teal": 4299, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4097, - 4098 + 4097 ] }, { - "teal": 4301, + "teal": 4300, "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4099 + 4098 ] }, { - "teal": 4302, - "source": "examples/reti/stakingPool.algo.ts:1019", + "teal": 4304, + "source": "examples/reti/stakingPool.algo.ts:1020", "pc": [ + 4099, 4100 ] }, { - "teal": 4303, - "source": "examples/reti/stakingPool.algo.ts:1019", + "teal": 4305, + "source": "examples/reti/stakingPool.algo.ts:1020", "pc": [ 4101 ] }, { - "teal": 4304, - "source": "examples/reti/stakingPool.algo.ts:1019", + "teal": 4306, + "source": "examples/reti/stakingPool.algo.ts:1020", "pc": [ 4102 ] }, { - "teal": 4308, - "source": "examples/reti/stakingPool.algo.ts:1020", + "teal": 4310, + "source": "examples/reti/stakingPool.algo.ts:1021", "pc": [ 4103, 4104 ] }, { - "teal": 4309, - "source": "examples/reti/stakingPool.algo.ts:1020", - "pc": [ - 4105 - ] - }, - { - "teal": 4310, - "source": "examples/reti/stakingPool.algo.ts:1020", + "teal": 4311, + "source": "examples/reti/stakingPool.algo.ts:1021", "pc": [ + 4105, 4106 ] }, { - "teal": 4314, + "teal": 4312, "source": "examples/reti/stakingPool.algo.ts:1021", "pc": [ 4107, @@ -18200,7 +18200,7 @@ ] }, { - "teal": 4315, + "teal": 4313, "source": "examples/reti/stakingPool.algo.ts:1021", "pc": [ 4109, @@ -18208,301 +18208,289 @@ ] }, { - "teal": 4316, + "teal": 4314, "source": "examples/reti/stakingPool.algo.ts:1021", "pc": [ - 4111, - 4112 + 4111 ] }, { - "teal": 4317, + "teal": 4315, "source": "examples/reti/stakingPool.algo.ts:1021", "pc": [ - 4113, - 4114 + 4112 ] }, { - "teal": 4318, + "teal": 4316, "source": "examples/reti/stakingPool.algo.ts:1021", "pc": [ - 4115 + 4113 ] }, { - "teal": 4319, + "teal": 4317, "source": "examples/reti/stakingPool.algo.ts:1021", "pc": [ - 4116 + 4114 ] }, { "teal": 4320, - "source": "examples/reti/stakingPool.algo.ts:1021", - "pc": [ - 4117 - ] - }, - { - "teal": 4321, - "source": "examples/reti/stakingPool.algo.ts:1021", + "source": "examples/reti/stakingPool.algo.ts:991", "pc": [ - 4118 + 4115 ] }, { "teal": 4324, - "source": "examples/reti/stakingPool.algo.ts:991", + "source": "examples/reti/stakingPool.algo.ts:1025", "pc": [ - 4119 + 4116, + 4117, + 4118 ] }, { "teal": 4328, - "source": "examples/reti/stakingPool.algo.ts:1025", + "source": "examples/reti/stakingPool.algo.ts:1026", "pc": [ - 4120, - 4121, - 4122 + 4119, + 4120 ] }, { - "teal": 4332, + "teal": 4329, "source": "examples/reti/stakingPool.algo.ts:1026", "pc": [ + 4121, + 4122, 4123, 4124 ] }, { - "teal": 4333, + "teal": 4330, "source": "examples/reti/stakingPool.algo.ts:1026", "pc": [ - 4125, - 4126, - 4127, - 4128 + 4125 ] }, { - "teal": 4334, - "source": "examples/reti/stakingPool.algo.ts:1026", + "teal": 4331, + "source": "examples/reti/stakingPool.algo.ts:1025", "pc": [ - 4129 + 4126 ] }, { - "teal": 4335, - "source": "examples/reti/stakingPool.algo.ts:1025", + "teal": 4334, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4130 + 4127, + 4128, + 4129, + 4130, + 4131, + 4132 ] }, { - "teal": 4338, + "teal": 4335, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4131, - 4132, 4133, 4134, - 4135, - 4136 + 4135 ] }, { - "teal": 4339, + "teal": 4336, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ + 4136, 4137, 4138, 4139 ] }, { - "teal": 4340, + "teal": 4339, "source": "examples/reti/stakingPool.algo.ts:38", + "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ - 4140, - 4141, - 4142, - 4143 + 4140 ] }, { - "teal": 4343, + "teal": 4342, "source": "examples/reti/stakingPool.algo.ts:38", - "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ - 4144 + 4141, + 4142, + 4143, + 4144, + 4145, + 4146 ] }, { - "teal": 4346, + "teal": 4343, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4145, - 4146, 4147, 4148, 4149, - 4150 + 4150, + 4151, + 4152 ] }, { - "teal": 4347, + "teal": 4344, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4151, - 4152, 4153, 4154, 4155, - 4156 + 4156, + 4157, + 4158 ] }, { - "teal": 4348, + "teal": 4345, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4157, - 4158, 4159, 4160, 4161, - 4162 + 4162, + 4163, + 4164 ] }, { - "teal": 4349, + "teal": 4346, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4163, - 4164, 4165, 4166, 4167, - 4168 + 4168, + 4169, + 4170 ] }, { - "teal": 4350, + "teal": 4347, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4169, - 4170, 4171, 4172, 4173, - 4174 + 4174, + 4175, + 4176 ] }, { - "teal": 4351, + "teal": 4348, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4175, - 4176, 4177, 4178, 4179, - 4180 + 4180, + 4181, + 4182 ] }, { - "teal": 4352, + "teal": 4349, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4181, - 4182, 4183, 4184, 4185, - 4186 + 4186, + 4187, + 4188 ] }, { - "teal": 4353, + "teal": 4350, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4187, - 4188, 4189, 4190, 4191, - 4192 + 4192, + 4193, + 4194 ] }, { - "teal": 4354, + "teal": 4351, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4193, - 4194, 4195, 4196, 4197, - 4198 + 4198, + 4199, + 4200 ] }, { - "teal": 4355, + "teal": 4352, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4199, - 4200, 4201, 4202, 4203, - 4204 + 4204, + 4205, + 4206 ] }, { - "teal": 4356, + "teal": 4353, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4205, - 4206, 4207, 4208, 4209, - 4210 + 4210, + 4211, + 4212 ] }, { - "teal": 4357, + "teal": 4354, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4211, - 4212, 4213, - 4214, - 4215, - 4216 + 4214 ] }, { - "teal": 4358, + "teal": 4355, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4217, - 4218 + 4215, + 4216, + 4217 ] }, { - "teal": 4359, + "teal": 4356, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ + 4218, 4219, 4220, - 4221 - ] - }, - { - "teal": 4360, - "source": "examples/reti/stakingPool.algo.ts:38", - "pc": [ + 4221, 4222, 4223, 4224, @@ -18526,58 +18514,54 @@ 4242, 4243, 4244, - 4245, - 4246, - 4247, - 4248, - 4249 + 4245 ] }, { - "teal": 4363, + "teal": 4359, "source": "examples/reti/stakingPool.algo.ts:38", "errorMessage": "this contract does not implement the given ABI method for call NoOp", "pc": [ - 4250 + 4246 ] }, { - "teal": 4366, + "teal": 4362, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ + 4247, + 4248, + 4249, + 4250, 4251, - 4252, - 4253, - 4254, - 4255, - 4256 + 4252 ] }, { - "teal": 4367, + "teal": 4363, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4257, - 4258, - 4259 + 4253, + 4254, + 4255 ] }, { - "teal": 4368, + "teal": 4364, "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4260, - 4261, - 4262, - 4263 + 4256, + 4257, + 4258, + 4259 ] }, { - "teal": 4371, + "teal": 4367, "source": "examples/reti/stakingPool.algo.ts:38", "errorMessage": "this contract does not implement the given ABI method for call UpdateApplication", "pc": [ - 4264 + 4260 ] } ] \ No newline at end of file diff --git a/examples/reti/artifacts/ValidatorRegistry.approval.teal b/examples/reti/artifacts/ValidatorRegistry.approval.teal index 887adb3c9..8b9884a28 100644 --- a/examples/reti/artifacts/ValidatorRegistry.approval.teal +++ b/examples/reti/artifacts/ValidatorRegistry.approval.teal @@ -1,5 +1,5 @@ #pragma version 10 -intcblock 0 1 8 24 32 18 268 6 242 3 2 10 252 260 700 TMPL_nfdRegistryAppId 100000 900 40 200 4 72 192 244 1000000 4096 5 226 300 432 892 1000 28500 50000 11 80 145 153 209 +intcblock 0 1 8 24 32 18 268 6 242 3 2 10 252 260 700 100000 900 40 200 TMPL_nfdRegistryAppId 4 72 192 244 1000000 4096 5 226 300 432 892 1000 28500 50000 11 80 145 153 209 bytecblock 0x76 0x 0x151f7c75 0x737073 0x7374616b6564 0x00 0x706f6f6c54656d706c617465417070726f76616c4279746573 0x6e756d5374616b657273 0x0a8101 0x692e6f776e65722e61 0x0000000000000000 0x696e6974 0x6e756d56 0x69735f76616c69645f6e66645f6170706964 0x63f3f28b // This TEAL was generated by TEALScript v0.105.2 @@ -7,9 +7,6 @@ bytecblock 0x76 0x 0x151f7c75 0x737073 0x7374616b6564 0x00 0x706f6f6c54656d706c6 // 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 -intc 15 // 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 // Here, action refers to the OnComplete in combination with whether the app is being created or called @@ -253,7 +250,7 @@ getMbrAmounts: callsub minBalanceForAccount itob concat - intc 16 // 100000 + intc 15 // 100000 pushint 12807 callsub costForBoxStorage + @@ -434,7 +431,7 @@ getValidatorOwnerAndManager: concat cover 2 box_extract - intc 18 // 40 + intc 17 // 40 intc 4 // 32 bytec 0 // "v" frame_dig -1 // validatorId: ValidatorIdType @@ -1000,7 +997,7 @@ getTokenPayoutRatio: // examples/reti/validatorRegistry.algo.ts:405 // return this.validatorList(validatorId).value.tokenPayoutRatio; intc 14 // headOffset - intc 19 // 200 + intc 18 // 200 bytec 0 // "v" frame_dig -1 // validatorId: ValidatorIdType itob @@ -1044,7 +1041,7 @@ getNodePoolAssignments: // examples/reti/validatorRegistry.algo.ts:412 // return this.validatorList(validatorId).value.nodePoolAssignments; - intc 17 // headOffset + intc 16 // headOffset intc 22 // 192 bytec 0 // "v" frame_dig -1 // validatorId: uint64 @@ -1073,7 +1070,7 @@ getNFDRegistryID: // examples/reti/validatorRegistry.algo.ts:416 // return this.nfdRegistryAppId; - intc 15 // TMPL_nfdRegistryAppId + intc 19 // 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 @@ -1254,7 +1251,7 @@ addValidator: // examples/reti/validatorRegistry.algo.ts:449 // applicationID: AppID.fromUint64(this.nfdRegistryAppId) - intc 15 // TMPL_nfdRegistryAppId + intc 19 // TMPL_nfdRegistryAppId itxn_field ApplicationID // examples/reti/validatorRegistry.algo.ts:450 @@ -1406,7 +1403,7 @@ changeValidatorManager: // examples/reti/validatorRegistry.algo.ts:483 // this.validatorList(validatorId).value.config.manager = manager - intc 18 // 40 + intc 17 // 40 frame_dig -2 // manager: Address bytec 0 // "v" frame_dig -1 // validatorId: ValidatorIdType @@ -1551,7 +1548,7 @@ changeValidatorNFD: // examples/reti/validatorRegistry.algo.ts:519 // applicationID: AppID.fromUint64(this.nfdRegistryAppId) - intc 15 // TMPL_nfdRegistryAppId + intc 19 // TMPL_nfdRegistryAppId itxn_field ApplicationID // examples/reti/validatorRegistry.algo.ts:520 @@ -1876,7 +1873,7 @@ addPool: dup bnz *skip_or1 txn Sender - intc 18 // 40 + intc 17 // 40 intc 4 // 32 bytec 0 // "v" frame_dig -2 // validatorId: ValidatorIdType @@ -2491,7 +2488,7 @@ setTokenPayoutRatio: // examples/reti/validatorRegistry.algo.ts:738 // return this.validatorList(validatorId).value.tokenPayoutRatio; intc 14 // headOffset - intc 19 // 200 + intc 18 // 200 bytec 0 // "v" frame_dig -1 // validatorId: ValidatorIdType itob @@ -2545,7 +2542,7 @@ setTokenPayoutRatio: // examples/reti/validatorRegistry.algo.ts:749 // return this.validatorList(validatorId).value.tokenPayoutRatio; intc 14 // headOffset - intc 19 // 200 + intc 18 // 200 bytec 0 // "v" frame_dig -1 // validatorId: ValidatorIdType itob @@ -2593,7 +2590,7 @@ setTokenPayoutRatio: // examples/reti/validatorRegistry.algo.ts:755 // return this.validatorList(validatorId).value.tokenPayoutRatio; intc 14 // headOffset - intc 19 // 200 + intc 18 // 200 bytec 0 // "v" frame_dig -1 // validatorId: ValidatorIdType itob @@ -2719,7 +2716,7 @@ setTokenPayoutRatio: // examples/reti/validatorRegistry.algo.ts:773 // return this.validatorList(validatorId).value.tokenPayoutRatio; intc 14 // headOffset - intc 19 // 200 + intc 18 // 200 bytec 0 // "v" frame_dig -1 // validatorId: ValidatorIdType itob @@ -3844,7 +3841,7 @@ movePoolToNode: dup bnz *skip_or3 txn Sender - intc 18 // 40 + intc 17 // 40 intc 4 // 32 bytec 0 // "v" frame_dig -1 // validatorId: ValidatorIdType @@ -3861,7 +3858,7 @@ movePoolToNode: // examples/reti/validatorRegistry.algo.ts:1007 // nodePoolAssignments = clone(this.validatorList(validatorId).value.nodePoolAssignments) - intc 17 // headOffset + intc 16 // headOffset intc 22 // 192 bytec 0 // "v" frame_dig -1 // validatorId: ValidatorIdType @@ -3949,7 +3946,7 @@ movePoolToNode: // examples/reti/validatorRegistry.algo.ts:1015 // this.validatorList(validatorId).value.nodePoolAssignments.nodes[srcNodeIdx].poolAppIds[i] = 0 - intc 17 // 900 + intc 16 // 900 frame_dig 1 // srcNodeIdx: uint64 intc 3 // 24 * // acc * typeLength @@ -4433,7 +4430,7 @@ reverifyNFDOwnership: != dup bz *skip_and3 - intc 18 // 40 + intc 17 // 40 intc 4 // 32 bytec 0 // "v" frame_dig -1 // validatorId: ValidatorIdType @@ -5258,7 +5255,7 @@ addPoolToNode: // examples/reti/validatorRegistry.algo.ts:1342 // nodePoolAssignments = clone(this.validatorList(validatorId).value.nodePoolAssignments) - intc 17 // headOffset + intc 16 // headOffset intc 22 // 192 bytec 0 // "v" frame_dig -1 // validatorId: ValidatorIdType @@ -5337,7 +5334,7 @@ addPoolToNode: // *if42_consequent // examples/reti/validatorRegistry.algo.ts:1350 // this.validatorList(validatorId).value.nodePoolAssignments.nodes[nodeNum - 1].poolAppIds[i] = poolAppId - intc 17 // 900 + intc 16 // 900 frame_dig -3 // nodeNum: uint64 intc 1 // 1 - @@ -5752,7 +5749,7 @@ isNFDAppIDValid: // examples/reti/validatorRegistry.algo.ts:1448 // applicationID: AppID.fromUint64(this.nfdRegistryAppId) - intc 15 // TMPL_nfdRegistryAppId + intc 19 // TMPL_nfdRegistryAppId itxn_field ApplicationID // examples/reti/validatorRegistry.algo.ts:1449 @@ -6004,14 +6001,14 @@ minBalanceForAccount: // examples/reti/validatorRegistry.algo.ts:1521 // minBal = ALGORAND_ACCOUNT_MIN_BALANCE - intc 16 // 100000 + intc 15 // 100000 frame_bury 0 // minBal: uint64 // examples/reti/validatorRegistry.algo.ts:1522 // minBal += contracts * APPLICATION_BASE_FEE frame_dig 0 // minBal: uint64 frame_dig -1 // contracts: uint64 - intc 16 // 100000 + intc 15 // 100000 * + frame_bury 0 // minBal: uint64 @@ -6020,7 +6017,7 @@ minBalanceForAccount: // minBal += extraPages * APPLICATION_BASE_FEE frame_dig 0 // minBal: uint64 frame_dig -2 // extraPages: uint64 - intc 16 // 100000 + intc 15 // 100000 * + frame_bury 0 // minBal: uint64 @@ -6029,7 +6026,7 @@ minBalanceForAccount: // minBal += assets * ASSET_HOLDING_FEE frame_dig 0 // minBal: uint64 frame_dig -3 // assets: uint64 - intc 16 // 100000 + intc 15 // 100000 * + frame_bury 0 // minBal: uint64 diff --git a/examples/reti/artifacts/ValidatorRegistry.arc32.json b/examples/reti/artifacts/ValidatorRegistry.arc32.json index 3e7d5c9d6..9d9b04ede 100644 --- a/examples/reti/artifacts/ValidatorRegistry.arc32.json +++ b/examples/reti/artifacts/ValidatorRegistry.arc32.json @@ -221,7 +221,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAwIDEgOCAyNCAzMiAxOCAyNjggNiAyNDIgMyAyIDEwIDI1MiAyNjAgNzAwIFRNUExfbmZkUmVnaXN0cnlBcHBJZCAxMDAwMDAgOTAwIDQwIDIwMCA0IDcyIDE5MiAyNDQgMTAwMDAwMCA0MDk2IDUgMjI2IDMwMCA0MzIgODkyIDEwMDAgMjg1MDAgNTAwMDAgMTEgODAgMTQ1IDE1MyAyMDkKYnl0ZWNibG9jayAweDc2IDB4IDB4MTUxZjdjNzUgMHg3MzcwNzMgMHg3Mzc0NjE2YjY1NjQgMHgwMCAweDcwNmY2ZjZjNTQ2NTZkNzA2YzYxNzQ2NTQxNzA3MDcyNmY3NjYxNmM0Mjc5NzQ2NTczIDB4NmU3NTZkNTM3NDYxNmI2NTcyNzMgMHgwYTgxMDEgMHg2OTJlNmY3NzZlNjU3MjJlNjEgMHgwMDAwMDAwMDAwMDAwMDAwIDB4Njk2ZTY5NzQgMHg2ZTc1NmQ1NiAweDY5NzM1Zjc2NjE2YzY5NjQ1ZjZlNjY2NDVmNjE3MDcwNjk2NCAweDYzZjNmMjhiCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNS4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIGxpbmVzIG9mIFRFQUwgYXJlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0ZW1wbGF0ZSB2YXJpYWJsZXMgaW4gc2NyYXRjaCBzbG90cwppbnRjIDE1IC8vIFRNUExfbmZkUmVnaXN0cnlBcHBJZAoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKaW50YyA3IC8vIDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNhbGxfVXBkYXRlQXBwbGljYXRpb24gKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHVwZGF0ZUFwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfdXBkYXRlQXBwbGljYXRpb246CgkvLyBleGVjdXRlIHVwZGF0ZUFwcGxpY2F0aW9uKCl2b2lkCgljYWxsc3ViIHVwZGF0ZUFwcGxpY2F0aW9uCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyB1cGRhdGVBcHBsaWNhdGlvbigpOiB2b2lkCnVwZGF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIwMgoJLy8gYXNzZXJ0KHRoaXMudHhuLnNlbmRlciA9PT0gQWRkcmVzcy5mcm9tQWRkcmVzcygnTFo0VjJJUlZMQ1hGSks0UkVKVjRUQUdFS0VZVEEyR01SNlRDMjM0NE9CM0wzQUYzTVdYWjZaQUZJUScpKQoJdHhuIFNlbmRlcgoJcHVzaGJ5dGVzIDB4NWU3OTVkMjIzNTU4YWU1NGFiOTEyMjZiYzk4MGM0NTEzMTMwNjhjYzhmYTYyZDZmOWM3MDc2YmQ4MGJiNjVhZiAvLyBhZGRyICJMWjRWMklSVkxDWEZKSzRSRUpWNFRBR0VLRVlUQTJHTVI2VEMyMzQ0T0IzTDNBRjNNV1haNlpBRklRIgoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMDQKCS8vIHRoaXMuc3Rha2luZ1Bvb2xBcHByb3ZhbFByb2dyYW0uZGVsZXRlKCkKCWJ5dGVjIDYgLy8gICJwb29sVGVtcGxhdGVBcHByb3ZhbEJ5dGVzIgoJYm94X2RlbAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMDUKCS8vIHRoaXMuc3Rha2luZ1Bvb2xJbml0aWFsaXplZC52YWx1ZSA9IGZhbHNlCglieXRlYyAxMSAvLyAgImluaXQiCglpbnRjIDAgLy8gMAoJYnl0ZWMgNSAvLyAweDAwCglpbnRjIDAgLy8gMAoJdW5jb3ZlciAyCglzZXRiaXQKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CgkvLyBleGVjdXRlIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCgljYWxsc3ViIGNyZWF0ZUFwcGxpY2F0aW9uCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpOiB2b2lkCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIwOQoJLy8gdGhpcy5zdGFraW5nUG9vbEluaXRpYWxpemVkLnZhbHVlID0gZmFsc2UKCWJ5dGVjIDExIC8vICAiaW5pdCIKCWludGMgMCAvLyAwCglieXRlYyA1IC8vIDB4MDAKCWludGMgMCAvLyAwCgl1bmNvdmVyIDIKCXNldGJpdAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjEwCgkvLyB0aGlzLm51bVZhbGlkYXRvcnMudmFsdWUgPSAwCglieXRlYyAxMiAvLyAgIm51bVYiCglpbnRjIDAgLy8gMAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjExCgkvLyB0aGlzLm51bVN0YWtlcnMudmFsdWUgPSAwCglieXRlYyA3IC8vICAibnVtU3Rha2VycyIKCWludGMgMCAvLyAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMTIKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlID0gMAoJYnl0ZWMgNCAvLyAgInN0YWtlZCIKCWludGMgMCAvLyAwCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBpbml0U3Rha2luZ0NvbnRyYWN0KHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfaW5pdFN0YWtpbmdDb250cmFjdDoKCS8vIGFwcHJvdmFsUHJvZ3JhbVNpemU6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgaW5pdFN0YWtpbmdDb250cmFjdCh1aW50NjQpdm9pZAoJY2FsbHN1YiBpbml0U3Rha2luZ0NvbnRyYWN0CglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBpbml0U3Rha2luZ0NvbnRyYWN0KGFwcHJvdmFsUHJvZ3JhbVNpemU6IHVpbnQ2NCk6IHZvaWQKaW5pdFN0YWtpbmdDb250cmFjdDoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMTcKCS8vIHRoaXMuc3Rha2luZ1Bvb2xBcHByb3ZhbFByb2dyYW0uY3JlYXRlKGFwcHJvdmFsUHJvZ3JhbVNpemUpCglieXRlYyA2IC8vICAicG9vbFRlbXBsYXRlQXBwcm92YWxCeXRlcyIKCWZyYW1lX2RpZyAtMSAvLyBhcHByb3ZhbFByb2dyYW1TaXplOiB1aW50NjQKCWJveF9jcmVhdGUKCXBvcAoJcmV0c3ViCgovLyBsb2FkU3Rha2luZ0NvbnRyYWN0RGF0YSh1aW50NjQsYnl0ZVtdKXZvaWQKKmFiaV9yb3V0ZV9sb2FkU3Rha2luZ0NvbnRyYWN0RGF0YToKCS8vIGRhdGE6IGJ5dGVbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBvZmZzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgbG9hZFN0YWtpbmdDb250cmFjdERhdGEodWludDY0LGJ5dGVbXSl2b2lkCgljYWxsc3ViIGxvYWRTdGFraW5nQ29udHJhY3REYXRhCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBsb2FkU3Rha2luZ0NvbnRyYWN0RGF0YShvZmZzZXQ6IHVpbnQ2NCwgZGF0YTogYnl0ZXMpOiB2b2lkCmxvYWRTdGFraW5nQ29udHJhY3REYXRhOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIyMQoJLy8gYXNzZXJ0KCF0aGlzLnN0YWtpbmdQb29sSW5pdGlhbGl6ZWQudmFsdWUpCglieXRlYyAxMSAvLyAgImluaXQiCglhcHBfZ2xvYmFsX2dldAoJaW50YyAwIC8vIDAKCWdldGJpdAoJIQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIyMgoJLy8gdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5yZXBsYWNlKG9mZnNldCwgZGF0YSkKCWJ5dGVjIDYgLy8gICJwb29sVGVtcGxhdGVBcHByb3ZhbEJ5dGVzIgoJZnJhbWVfZGlnIC0xIC8vIG9mZnNldDogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gZGF0YTogYnl0ZXMKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIGZpbmFsaXplU3Rha2luZ0NvbnRyYWN0KCl2b2lkCiphYmlfcm91dGVfZmluYWxpemVTdGFraW5nQ29udHJhY3Q6CgkvLyBleGVjdXRlIGZpbmFsaXplU3Rha2luZ0NvbnRyYWN0KCl2b2lkCgljYWxsc3ViIGZpbmFsaXplU3Rha2luZ0NvbnRyYWN0CglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBmaW5hbGl6ZVN0YWtpbmdDb250cmFjdCgpOiB2b2lkCmZpbmFsaXplU3Rha2luZ0NvbnRyYWN0OgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIyNgoJLy8gdGhpcy5zdGFraW5nUG9vbEluaXRpYWxpemVkLnZhbHVlID0gdHJ1ZQoJYnl0ZWMgMTEgLy8gICJpbml0IgoJaW50YyAxIC8vIDEKCWJ5dGVjIDUgLy8gMHgwMAoJaW50YyAwIC8vIDAKCXVuY292ZXIgMgoJc2V0Yml0CglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBnYXMoKXZvaWQKKmFiaV9yb3V0ZV9nYXM6CgkvLyBleGVjdXRlIGdhcygpdm9pZAoJY2FsbHN1YiBnYXMKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdhcygpOiB2b2lkCi8vCi8vIGdhcyBpcyBhIGR1bW15IG5vLW9wIGNhbGwgdGhhdCBjYW4gYmUgdXNlZCB0byBwb29sLXVwIHJlc291cmNlIHJlZmVyZW5jZXMgYW5kIG9wY29kZSBjb3N0CmdhczoKCXByb3RvIDAgMAoJcmV0c3ViCgovLyBnZXRNYnJBbW91bnRzKCkodWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2dldE1ickFtb3VudHM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZ2V0TWJyQW1vdW50cygpKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgZ2V0TWJyQW1vdW50cwoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldE1ickFtb3VudHMoKTogTWJyQW1vdW50cwovLwovLyBSZXR1cm5zIHRoZSBNQlIgYW1vdW50cyBuZWVkZWQgZm9yIHZhcmlvdXMgYWN0aW9uczoKLy8gWwovLyBhZGRWYWxpZGF0b3JNYnI6IHVpbnQ2NCAtIG1iciBuZWVkZWQgdG8gYWRkIGEgbmV3IHZhbGlkYXRvciAtIHBhaWQgdG8gdmFsaWRhdG9yIGNvbnRyYWN0Ci8vIGFkZFBvb2xNYnI6IHVpbnQ2NCAtIG1iciBuZWVkZWQgdG8gYWRkIGEgbmV3IHBvb2wgLSBwYWlkIHRvIHZhbGlkYXRvcgovLyBwb29sSW5pdE1icjogdWludDY0IC0gbWJyIG5lZWRlZCB0byBpbml0U3RvcmFnZSgpIG9mIHBvb2wgLSBwYWlkIHRvIHBvb2wgaXRzZWxmCi8vIGFkZFN0YWtlck1icjogdWludDY0IC0gbWJyIHN0YWtlciBuZWVkcyB0byBhZGQgdG8gZmlyc3Qgc3Rha2luZyBwYXltZW50IChzdGF5cyB3LyB2YWxpZGF0b3IpCi8vIF0KZ2V0TWJyQW1vdW50czoKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyNDYKCS8vIHJldHVybiB7CgkvLyAgICAgICBhZGRWYWxpZGF0b3JNYnI6IHRoaXMuY29zdEZvckJveFN0b3JhZ2UoMSAvKiB2IHByZWZpeCAqLyArIGxlbjxWYWxpZGF0b3JJZFR5cGU+KCkgKyBsZW48VmFsaWRhdG9ySW5mbz4oKSksCgkvLyAgICAgICBhZGRQb29sTWJyOiB0aGlzLm1pbkJhbGFuY2VGb3JBY2NvdW50KAoJLy8gICAgICAgICAxLAoJLy8gICAgICAgICAvLyB3ZSBjb3VsZCBjYWxjdWxhdGUgdGhpcyBkaXJlY3RseSBieSByZWZlcmVuY2luZyB0aGUgc2l6ZSBvZiBzdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbSBidXQgaXQgd291bGQKCS8vICAgICAgICAgLy8gbWVhbiBvdXIgY2FsbGVycyB3b3VsZCBoYXZlIHRvIHJlZmVyZW5jZSB0aGUgYm94IEFORCBidXkgdXAgaS9vIC0gc28ganVzdCBnbyBtYXggb24gZXh0cmEgcGFnZXMKCS8vICAgICAgICAgMywKCS8vICAgICAgICAgMCwKCS8vICAgICAgICAgMCwKCS8vICAgICAgICAgMCwKCS8vICAgICAgICAgU3Rha2luZ1Bvb2wuc2NoZW1hLmdsb2JhbC5udW1VaW50LAoJLy8gICAgICAgICBTdGFraW5nUG9vbC5zY2hlbWEuZ2xvYmFsLm51bUJ5dGVTbGljZQoJLy8gICAgICAgKSwKCS8vICAgICAgIHBvb2xJbml0TWJyOgoJLy8gICAgICAgICBBTEdPUkFORF9BQ0NPVU5UX01JTl9CQUxBTkNFICsKCS8vICAgICAgICAgdGhpcy5jb3N0Rm9yQm94U3RvcmFnZSg3IC8qICdzdGFrZXJzJyBuYW1lICovICsgbGVuPFN0YWtlZEluZm8+KCkgKiBNQVhfU1RBS0VSU19QRVJfUE9PTCksCgkvLyAgICAgICBhZGRTdGFrZXJNYnI6CgkvLyAgICAgICAgIC8vIGhvdyBtdWNoIHRvIGNoYXJnZSBmb3IgZmlyc3QgdGltZSBhIHN0YWtlciBhZGRzIHN0YWtlIC0gc2luY2Ugd2UgYWRkIGEgdHJhY2tpbmcgYm94IHBlciBzdGFrZXIKCS8vICAgICAgICAgdGhpcy5jb3N0Rm9yQm94U3RvcmFnZSgzIC8qICdzcHMnIHByZWZpeCAqLyArIGxlbjxBZGRyZXNzPigpICsgbGVuPFZhbGlkYXRvclBvb2xLZXk+KCkgKiBNQVhfUE9PTFNfUEVSX1NUQUtFUiksIC8vIHNpemUgb2Yga2V5ICsgYWxsIHZhbHVlcwoJLy8gICAgIH07CglwdXNoaW50IDExMDEKCWNhbGxzdWIgY29zdEZvckJveFN0b3JhZ2UKCWl0b2IKCWludGMgOSAvLyAzCglpbnRjIDM0IC8vIDExCglpbnRjIDAgLy8gMAoJZHVwbiAyCglpbnRjIDkgLy8gMwoJaW50YyAxIC8vIDEKCWNhbGxzdWIgbWluQmFsYW5jZUZvckFjY291bnQKCWl0b2IKCWNvbmNhdAoJaW50YyAxNiAvLyAxMDAwMDAKCXB1c2hpbnQgMTI4MDcKCWNhbGxzdWIgY29zdEZvckJveFN0b3JhZ2UKCSsKCWl0b2IKCWNvbmNhdAoJcHVzaGludCAxNzkKCWNhbGxzdWIgY29zdEZvckJveFN0b3JhZ2UKCWl0b2IKCWNvbmNhdAoJcmV0c3ViCgovLyBnZXRQcm90b2NvbENvbnN0cmFpbnRzKCkodWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKKmFiaV9yb3V0ZV9nZXRQcm90b2NvbENvbnN0cmFpbnRzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGdldFByb3RvY29sQ29uc3RyYWludHMoKSh1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJY2FsbHN1YiBnZXRQcm90b2NvbENvbnN0cmFpbnRzCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2V0UHJvdG9jb2xDb25zdHJhaW50cygpOiBDb25zdHJhaW50cwovLwovLyBSZXR1cm5zIHRoZSBwcm90b2NvbCBjb25zdHJhaW50cyBzbyB0aGF0IFVJcyBjYW4gbGltaXQgd2hhdCB1c2VycyBzcGVjaWZ5IGZvciB2YWxpZGF0b3IgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzLgpnZXRQcm90b2NvbENvbnN0cmFpbnRzOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjI3MgoJLy8gcmV0dXJuIHsKCS8vICAgICAgIGVwb2NoUGF5b3V0Um91bmRzTWluOiBNSU5fRVBPQ0hfTEVOR1RILAoJLy8gICAgICAgZXBvY2hQYXlvdXRSb3VuZHNNYXg6IE1BWF9FUE9DSF9MRU5HVEgsCgkvLyAgICAgICBtaW5QY3RUb1ZhbGlkYXRvcldGb3VyRGVjaW1hbHM6IE1JTl9QQ1RfVE9fVkFMSURBVE9SLAoJLy8gICAgICAgbWF4UGN0VG9WYWxpZGF0b3JXRm91ckRlY2ltYWxzOiBNQVhfUENUX1RPX1ZBTElEQVRPUiwKCS8vICAgICAgIG1pbkVudHJ5U3Rha2U6IE1JTl9BTEdPX1NUQUtFX1BFUl9QT09MLAoJLy8gICAgICAgbWF4QWxnb1BlclBvb2w6IHRoaXMubWF4QWxnb0FsbG93ZWRQZXJQb29sKCksCgkvLyAgICAgICBtYXhBbGdvUGVyVmFsaWRhdG9yOiB0aGlzLm1heEFsbG93ZWRTdGFrZSgpLAoJLy8gICAgICAgYW10Q29uc2lkZXJlZFNhdHVyYXRlZDogdGhpcy5hbGdvU2F0dXJhdGlvbkxldmVsKCksCgkvLyAgICAgICBtYXhOb2RlczogTUFYX05PREVTLAoJLy8gICAgICAgbWF4UG9vbHNQZXJOb2RlOiBNQVhfUE9PTFNfUEVSX05PREUsCgkvLyAgICAgICBtYXhTdGFrZXJzUGVyUG9vbDogTUFYX1NUQUtFUlNfUEVSX1BPT0wsCgkvLyAgICAgfTsKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMGY0MjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZjQyNDAwMDAwMDAwMDAwMGY0MjQwCgljYWxsc3ViIG1heEFsZ29BbGxvd2VkUGVyUG9vbAoJaXRvYgoJY29uY2F0CgljYWxsc3ViIG1heEFsbG93ZWRTdGFrZQoJaXRvYgoJY29uY2F0CgljYWxsc3ViIGFsZ29TYXR1cmF0aW9uTGV2ZWwKCWl0b2IKCWNvbmNhdAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwOAoJY29uY2F0CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAzCgljb25jYXQKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwYzgKCWNvbmNhdAoJcmV0c3ViCgovLyBnZXROdW1WYWxpZGF0b3JzKCl1aW50NjQKKmFiaV9yb3V0ZV9nZXROdW1WYWxpZGF0b3JzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGdldE51bVZhbGlkYXRvcnMoKXVpbnQ2NAoJY2FsbHN1YiBnZXROdW1WYWxpZGF0b3JzCglpdG9iCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2V0TnVtVmFsaWRhdG9ycygpOiB1aW50NjQKLy8KLy8gUmV0dXJucyB0aGUgY3VycmVudCBudW1iZXIgb2YgdmFsaWRhdG9ycwpnZXROdW1WYWxpZGF0b3JzOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjI5MgoJLy8gcmV0dXJuIHRoaXMubnVtVmFsaWRhdG9ycy52YWx1ZTsKCWJ5dGVjIDEyIC8vICAibnVtViIKCWFwcF9nbG9iYWxfZ2V0CglyZXRzdWIKCi8vIGdldFZhbGlkYXRvckNvbmZpZyh1aW50NjQpKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfZ2V0VmFsaWRhdG9yQ29uZmlnOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBnZXRWYWxpZGF0b3JDb25maWcodWludDY0KSh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJY2FsbHN1YiBnZXRWYWxpZGF0b3JDb25maWcKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnZXRWYWxpZGF0b3JDb25maWcodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IFZhbGlkYXRvckNvbmZpZwpnZXRWYWxpZGF0b3JDb25maWc6Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Mjk3CgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWc7CglpbnRjIDAgLy8gMAoJaW50YyA4IC8vIDI0MgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJcmV0c3ViCgovLyBnZXRWYWxpZGF0b3JTdGF0ZSh1aW50NjQpKHVpbnQxNix1aW50NjQsdWludDY0LHVpbnQ2NCkKKmFiaV9yb3V0ZV9nZXRWYWxpZGF0b3JTdGF0ZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMiAvLyAweDE1MWY3Yzc1CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZ2V0VmFsaWRhdG9yU3RhdGUodWludDY0KSh1aW50MTYsdWludDY0LHVpbnQ2NCx1aW50NjQpCgljYWxsc3ViIGdldFZhbGlkYXRvclN0YXRlCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2V0VmFsaWRhdG9yU3RhdGUodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IFZhbGlkYXRvckN1clN0YXRlCmdldFZhbGlkYXRvclN0YXRlOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMwMgoJLy8gcmV0dXJuIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGU7CglpbnRjIDggLy8gIGhlYWRPZmZzZXQKCXB1c2hpbnQgMjYKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyKHVpbnQ2NCkoYWRkcmVzcyxhZGRyZXNzKQoqYWJpX3JvdXRlX2dldFZhbGlkYXRvck93bmVyQW5kTWFuYWdlcjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMiAvLyAweDE1MWY3Yzc1CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyKHVpbnQ2NCkoYWRkcmVzcyxhZGRyZXNzKQoJY2FsbHN1YiBnZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXIKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXIodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IFtBZGRyZXNzLCBBZGRyZXNzXQpnZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXI6Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzA3CgkvLyByZXR1cm4gW3RoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm93bmVyLCB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5tYW5hZ2VyXTsKCWludGMgMiAvLyA4CglpbnRjIDQgLy8gMzIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWludGMgMTggLy8gNDAKCWludGMgNCAvLyAzMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJY29uY2F0CglyZXRzdWIKCi8vIGdldFBvb2xzKHVpbnQ2NCkodWludDY0LHVpbnQxNix1aW50NjQpW10KKmFiaV9yb3V0ZV9nZXRQb29sczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMiAvLyAweDE1MWY3Yzc1CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZ2V0UG9vbHModWludDY0KSh1aW50NjQsdWludDE2LHVpbnQ2NClbXQoJY2FsbHN1YiBnZXRQb29scwoJZHVwCglsZW4KCWludGMgNSAvLyAxOAoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldFBvb2xzKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUpOiBQb29sSW5mb1tdCi8vCi8vIFJldHVybiBsaXN0IG9mIGFsbCBwb29scyBmb3IgdGhpcyB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7dWludDY0fSB2YWxpZGF0b3JJZAovLyBAcmV0dXJuIHtQb29sSW5mb1tdfSAtIGFycmF5IG9mIHBvb2xzCi8vIE5vdCBjYWxsYWJsZSBmcm9tIG90aGVyIGNvbnRyYWN0cyBiZWNhdXNlID4xSyByZXR1cm4gYnV0IGNhbiBiZSBjYWxsZWQgdy8gc2ltdWxhdGUgd2hpY2ggYnVtcHMgbG9nIHJldHVybnMKZ2V0UG9vbHM6Cglwcm90byAxIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMxOAoJLy8gcmV0RGF0YTogUG9vbEluZm9bXSA9IFtdCglieXRlYyAxIC8vIDB4CglmcmFtZV9idXJ5IDAgLy8gcmV0RGF0YTogUG9vbEluZm9bXQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozMTkKCS8vIHBvb2xTZXQgPSBjbG9uZSh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzKQoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglpbnRjIDI5IC8vIDQzMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAxIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDE2LHVpbnQ2NClbMjRdCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMyMAoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBwb29sU2V0Lmxlbmd0aDsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCipmb3JfMDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozMjAKCS8vIGkgPCBwb29sU2V0Lmxlbmd0aAoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMjQKCTwKCWJ6ICpmb3JfMF9lbmQKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMyMQoJLy8gcG9vbFNldFtpXS5wb29sQXBwSWQgPT09IDAKCWZyYW1lX2RpZyAxIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDE2LHVpbnQ2NClbMjRdCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgNSAvLyAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDAgLy8gMAoJKwoJaW50YyAyIC8vIDgKCWV4dHJhY3QzCglidG9pCglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppZjBfZW5kCgoJLy8gKmlmMF9jb25zZXF1ZW50CgliICpmb3JfMF9lbmQKCippZjBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMyNQoJLy8gcmV0RGF0YS5wdXNoKHBvb2xTZXRbaV0pCglmcmFtZV9kaWcgMCAvLyByZXREYXRhOiBQb29sSW5mb1tdCglmcmFtZV9kaWcgMSAvLyBwb29sU2V0OiAodWludDY0LHVpbnQxNix1aW50NjQpWzI0XQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyA1IC8vIDE4CglleHRyYWN0MwoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gcmV0RGF0YTogUG9vbEluZm9bXQoKKmZvcl8wX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMyMAoJLy8gaSArPSAxCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDIgLy8gaTogdWludDY0CgliICpmb3JfMAoKKmZvcl8wX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozMjcKCS8vIHJldHVybiByZXREYXRhOwoJZnJhbWVfZGlnIDAgLy8gcmV0RGF0YTogUG9vbEluZm9bXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDIKCXJldHN1YgoKLy8gZ2V0UG9vbEFwcElkKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfZ2V0UG9vbEFwcElkOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyBwb29sSWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGdldFBvb2xBcHBJZCh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBnZXRQb29sQXBwSWQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnZXRQb29sQXBwSWQodmFsaWRhdG9ySWQ6IHVpbnQ2NCwgcG9vbElkOiB1aW50NjQpOiB1aW50NjQKZ2V0UG9vbEFwcElkOgoJcHJvdG8gMiAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMzNQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgcG9vbElkICE9PSAwICYmIHBvb2xJZCA8PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzLmxlbmd0aCwKCS8vICAgICAgICdwb29sIGlkIG11c3QgYmUgYmV0d2VlbiAxIGFuZCBudW1iZXIgb2YgcG9vbHMgZm9yIHRoaXMgdmFsaWRhdG9yJwoJLy8gICAgICkKCWZyYW1lX2RpZyAtMiAvLyBwb29sSWQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCSE9CglkdXAKCWJ6ICpza2lwX2FuZDAKCWZyYW1lX2RpZyAtMiAvLyBwb29sSWQ6IHVpbnQ2NAoJaW50YyAzIC8vIDI0Cgk8PQoJJiYKCipza2lwX2FuZDA6CgkvLyBwb29sIGlkIG11c3QgYmUgYmV0d2VlbiAxIGFuZCBudW1iZXIgb2YgcG9vbHMgZm9yIHRoaXMgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzM5CgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5wb29sc1twb29sSWQgLSAxXS5wb29sQXBwSWQ7CglpbnRjIDYgLy8gIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMiAvLyBwb29sSWQ6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCS0KCWludGMgNSAvLyAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDAgLy8gMAoJKwoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCXJldHN1YgoKLy8gZ2V0UG9vbEluZm8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0LHVpbnQxNix1aW50NjQpCiphYmlfcm91dGVfZ2V0UG9vbEluZm86CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIHBvb2xLZXk6ICh1aW50NjQsdWludDY0LHVpbnQ2NCkKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDMgLy8gMjQKCT09CgoJLy8gYXJndW1lbnQgMCAocG9vbEtleSkgZm9yIGdldFBvb2xJbmZvIG11c3QgYmUgYSAodWludDY0LHVpbnQ2NCx1aW50NjQpCglhc3NlcnQKCgkvLyBleGVjdXRlIGdldFBvb2xJbmZvKCh1aW50NjQsdWludDY0LHVpbnQ2NCkpKHVpbnQ2NCx1aW50MTYsdWludDY0KQoJY2FsbHN1YiBnZXRQb29sSW5mbwoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldFBvb2xJbmZvKHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkpOiBQb29sSW5mbwpnZXRQb29sSW5mbzoKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNDQKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXTsKCWludGMgNiAvLyAgaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnRjIDEgLy8gMQoJLQoJaW50YyA1IC8vIDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludGMgNSAvLyAxOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gZ2V0Q3VyTWF4U3Rha2VQZXJQb29sKHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9nZXRDdXJNYXhTdGFrZVBlclBvb2w6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGdldEN1ck1heFN0YWtlUGVyUG9vbCh1aW50NjQpdWludDY0CgljYWxsc3ViIGdldEN1ck1heFN0YWtlUGVyUG9vbAoJaXRvYgoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldEN1ck1heFN0YWtlUGVyUG9vbCh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlKTogdWludDY0Ci8vCi8vIENhbGN1bGF0ZSB0aGUgbWF4aW11bSBzdGFrZSBwZXIgcG9vbCBmb3IgYSBnaXZlbiB2YWxpZGF0b3IuCi8vIE5vcm1hbGx5IHRoaXMgd291bGQgYmUgbWF4QWxnb1BlclBvb2wsIGJ1dCBpdCBzaG91bGQgYWxzbyBuZXZlciBnbyBhYm92ZSBNYXhBbGxvd2VkU3Rha2UgLyBudW1Qb29scyBzbwovLyBhcyBwb29scyBhcmUgYWRkZWQgdGhlIG1heCBhbGxvd2VkIHBlciBwb29sIGNhbiByZWR1Y2UuCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yLgpnZXRDdXJNYXhTdGFrZVBlclBvb2w6Cglwcm90byAxIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM1NQoJLy8gbnVtUG9vbHMgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnN0YXRlLm51bVBvb2xzIGFzIHVpbnQ2NAoJaW50YyA4IC8vIDI0MgoJaW50YyAxMCAvLyAyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDAgLy8gbnVtUG9vbHM6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNTYKCS8vIGhhcmRNYXhEaXZpZGVkQmV0d2VlblBvb2xzID0gdGhpcy5tYXhBbGxvd2VkU3Rha2UoKSAvIG51bVBvb2xzCgljYWxsc3ViIG1heEFsbG93ZWRTdGFrZQoJZnJhbWVfZGlnIDAgLy8gbnVtUG9vbHM6IHVpbnQ2NAoJLwoJZnJhbWVfYnVyeSAxIC8vIGhhcmRNYXhEaXZpZGVkQmV0d2VlblBvb2xzOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzU3CgkvLyBtYXhQZXJQb29sOiB1aW50NjQgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5tYXhBbGdvUGVyUG9vbAoJcHVzaGludCAyMTcKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDIgLy8gbWF4UGVyUG9vbDogdWludDY0CgoJLy8gKmlmMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNTgKCS8vIG1heFBlclBvb2wgPT09IDAKCWZyYW1lX2RpZyAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglieiAqaWYxX2VuZAoKCS8vICppZjFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM1OQoJLy8gbWF4UGVyUG9vbCA9IHRoaXMubWF4QWxnb0FsbG93ZWRQZXJQb29sKCkKCWNhbGxzdWIgbWF4QWxnb0FsbG93ZWRQZXJQb29sCglmcmFtZV9idXJ5IDIgLy8gbWF4UGVyUG9vbDogdWludDY0CgoqaWYxX2VuZDoKCS8vICppZjJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzYxCgkvLyBoYXJkTWF4RGl2aWRlZEJldHdlZW5Qb29scyA8IG1heFBlclBvb2wKCWZyYW1lX2RpZyAxIC8vIGhhcmRNYXhEaXZpZGVkQmV0d2VlblBvb2xzOiB1aW50NjQKCWZyYW1lX2RpZyAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoJPAoJYnogKmlmMl9lbmQKCgkvLyAqaWYyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNjIKCS8vIG1heFBlclBvb2wgPSBoYXJkTWF4RGl2aWRlZEJldHdlZW5Qb29scwoJZnJhbWVfZGlnIDEgLy8gaGFyZE1heERpdmlkZWRCZXR3ZWVuUG9vbHM6IHVpbnQ2NAoJZnJhbWVfYnVyeSAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoKKmlmMl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzY0CgkvLyByZXR1cm4gbWF4UGVyUG9vbDsKCWZyYW1lX2RpZyAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDIKCXJldHN1YgoKLy8gZG9lc1N0YWtlck5lZWRUb1BheU1CUihhZGRyZXNzKWJvb2wKKmFiaV9yb3V0ZV9kb2VzU3Rha2VyTmVlZFRvUGF5TUJSOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoc3Rha2VyKSBmb3IgZG9lc1N0YWtlck5lZWRUb1BheU1CUiBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBkb2VzU3Rha2VyTmVlZFRvUGF5TUJSKGFkZHJlc3MpYm9vbAoJY2FsbHN1YiBkb2VzU3Rha2VyTmVlZFRvUGF5TUJSCglieXRlYyA1IC8vIDB4MDAKCWludGMgMCAvLyAwCgl1bmNvdmVyIDIKCXNldGJpdAoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGRvZXNTdGFrZXJOZWVkVG9QYXlNQlIoc3Rha2VyOiBBZGRyZXNzKTogYm9vbGVhbgovLwovLyBIZWxwZXIgY2FsbGVycyBjYW4gY2FsbCB3LyBzaW11bGF0ZSB0byBkZXRlcm1pbmUgaWYgJ0FkZFN0YWtlcicgTUJSIHNob3VsZCBiZSBpbmNsdWRlZCB3LyBzdGFraW5nIGFtb3VudAovLyBAcGFyYW0gc3Rha2VyCmRvZXNTdGFrZXJOZWVkVG9QYXlNQlI6Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzczCgkvLyByZXR1cm4gIXRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLmV4aXN0czsKCWJ5dGVjIDMgLy8gICJzcHMiCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWJveF9sZW4KCXN3YXAKCXBvcAoJIQoJcmV0c3ViCgovLyBnZXRTdGFrZWRQb29sc0ZvckFjY291bnQoYWRkcmVzcykodWludDY0LHVpbnQ2NCx1aW50NjQpW10KKmFiaV9yb3V0ZV9nZXRTdGFrZWRQb29sc0ZvckFjY291bnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIHN0YWtlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChzdGFrZXIpIGZvciBnZXRTdGFrZWRQb29sc0ZvckFjY291bnQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgZ2V0U3Rha2VkUG9vbHNGb3JBY2NvdW50KGFkZHJlc3MpKHVpbnQ2NCx1aW50NjQsdWludDY0KVtdCgljYWxsc3ViIGdldFN0YWtlZFBvb2xzRm9yQWNjb3VudAoJZHVwCglsZW4KCWludGMgMyAvLyAyNAoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldFN0YWtlZFBvb2xzRm9yQWNjb3VudChzdGFrZXI6IEFkZHJlc3MpOiBWYWxpZGF0b3JQb29sS2V5W10KLy8KLy8gUmV0cmlldmVzIHRoZSBzdGFrZWQgcG9vbHMgZm9yIGFuIGFjY291bnQuCi8vCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyIC0gVGhlIGFjY291bnQgdG8gcmV0cmlldmUgc3Rha2VkIHBvb2xzIGZvci4KLy8gQHJldHVybiB7VmFsaWRhdG9yUG9vbEtleVtdfSAtIFRoZSBhcnJheSBvZiBzdGFrZWQgcG9vbHMgZm9yIHRoZSBhY2NvdW50LgpnZXRTdGFrZWRQb29sc0ZvckFjY291bnQ6Cglwcm90byAxIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwbiAyCgoJLy8gKmlmM19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozODMKCS8vICF0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS5leGlzdHMKCWJ5dGVjIDMgLy8gICJzcHMiCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWJveF9sZW4KCXN3YXAKCXBvcAoJIQoJYnogKmlmM19lbmQKCgkvLyAqaWYzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozODQKCS8vIHJldHVybiBbXTsKCWJ5dGVjIDEgLy8gMHgKCWIgKmdldFN0YWtlZFBvb2xzRm9yQWNjb3VudCpyZXR1cm4KCippZjNfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM4NgoJLy8gcmV0RGF0YTogVmFsaWRhdG9yUG9vbEtleVtdID0gW10KCWJ5dGVjIDEgLy8gMHgKCWZyYW1lX2J1cnkgMCAvLyByZXREYXRhOiBWYWxpZGF0b3JQb29sS2V5W10KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Mzg3CgkvLyBwb29sU2V0ID0gY2xvbmUodGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUpCglieXRlYyAzIC8vICAic3BzIgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJY29uY2F0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZQoJYXNzZXJ0CglmcmFtZV9idXJ5IDEgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozODgKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgcG9vbFNldC5sZW5ndGg7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDIgLy8gaTogdWludDY0CgoqZm9yXzE6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Mzg4CgkvLyBpIDwgcG9vbFNldC5sZW5ndGgKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyA3IC8vIDYKCTwKCWJ6ICpmb3JfMV9lbmQKCgkvLyAqaWY0X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM4OQoJLy8gcG9vbFNldFtpXS5pZCAhPT0gMAoJZnJhbWVfZGlnIDEgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAwIC8vIDAKCSsKCWludGMgMiAvLyA4CglleHRyYWN0MwoJYnRvaQoJaW50YyAwIC8vIDAKCSE9CglieiAqaWY0X2VuZAoKCS8vICppZjRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM5MAoJLy8gcmV0RGF0YS5wdXNoKHBvb2xTZXRbaV0pCglmcmFtZV9kaWcgMCAvLyByZXREYXRhOiBWYWxpZGF0b3JQb29sS2V5W10KCWZyYW1lX2RpZyAxIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMyAvLyAyNAoJZXh0cmFjdDMKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIHJldERhdGE6IFZhbGlkYXRvclBvb2xLZXlbXQoKKmlmNF9lbmQ6CgoqZm9yXzFfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Mzg4CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl8xCgoqZm9yXzFfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM5MwoJLy8gcmV0dXJuIHJldERhdGE7CglmcmFtZV9kaWcgMCAvLyByZXREYXRhOiBWYWxpZGF0b3JQb29sS2V5W10KCipnZXRTdGFrZWRQb29sc0ZvckFjY291bnQqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMgoJcmV0c3ViCgovLyBnZXRUb2tlblBheW91dFJhdGlvKHVpbnQ2NCkodWludDY0WzI0XSx1aW50NjQpCiphYmlfcm91dGVfZ2V0VG9rZW5QYXlvdXRSYXRpbzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMiAvLyAweDE1MWY3Yzc1CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZ2V0VG9rZW5QYXlvdXRSYXRpbyh1aW50NjQpKHVpbnQ2NFsyNF0sdWludDY0KQoJY2FsbHN1YiBnZXRUb2tlblBheW91dFJhdGlvCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2V0VG9rZW5QYXlvdXRSYXRpbyh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlKTogUG9vbFRva2VuUGF5b3V0UmF0aW8KLy8KLy8gUmV0cmlldmVzIHRoZSB0b2tlbiBwYXlvdXQgcmF0aW8gZm9yIGEgZ2l2ZW4gdmFsaWRhdG9yIC0gcmV0dXJuaW5nIHRoZSBwb29sIHJhdGlvcyBvZiB3aG9sZSBzbyB0aGF0IHRva2VuCi8vIHBheW91dHMgYWNyb3NzIHBvb2xzIGNhbiBiZSBiYXNlZCBvbiBhIHN0YWJsZSBzbmFwaG9zdCBvZiBzdGFrZS4KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCi8vIEByZXR1cm4ge1Bvb2xUb2tlblBheW91dFJhdGlvfSAtIFRoZSB0b2tlbiBwYXlvdXQgcmF0aW8gZm9yIHRoZSB2YWxpZGF0b3IuCmdldFRva2VuUGF5b3V0UmF0aW86Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDA1CgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvOwoJaW50YyAxNCAvLyAgaGVhZE9mZnNldAoJaW50YyAxOSAvLyAyMDAKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gZ2V0Tm9kZVBvb2xBc3NpZ25tZW50cyh1aW50NjQpKCh1aW50NjRbM10pWzhdKQoqYWJpX3JvdXRlX2dldE5vZGVQb29sQXNzaWdubWVudHM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGdldE5vZGVQb29sQXNzaWdubWVudHModWludDY0KSgodWludDY0WzNdKVs4XSkKCWNhbGxzdWIgZ2V0Tm9kZVBvb2xBc3NpZ25tZW50cwoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldE5vZGVQb29sQXNzaWdubWVudHModmFsaWRhdG9ySWQ6IHVpbnQ2NCk6IE5vZGVQb29sQXNzaWdubWVudENvbmZpZwpnZXROb2RlUG9vbEFzc2lnbm1lbnRzOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQxMAoJLy8gYXNzZXJ0KHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkuZXhpc3RzLCAidGhlIHNwZWNpZmllZCB2YWxpZGF0b3IgaWQgZG9lc24ndCBleGlzdCIpCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpdG9iCgljb25jYXQKCWJveF9sZW4KCXN3YXAKCXBvcAoKCS8vIHRoZSBzcGVjaWZpZWQgdmFsaWRhdG9yIGlkIGRvZXNuJ3QgZXhpc3QKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MTIKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLm5vZGVQb29sQXNzaWdubWVudHM7CglpbnRjIDE3IC8vICBoZWFkT2Zmc2V0CglpbnRjIDIyIC8vIDE5MgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJcmV0c3ViCgovLyBnZXRORkRSZWdpc3RyeUlEKCl1aW50NjQKKmFiaV9yb3V0ZV9nZXRORkRSZWdpc3RyeUlEOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGdldE5GRFJlZ2lzdHJ5SUQoKXVpbnQ2NAoJY2FsbHN1YiBnZXRORkRSZWdpc3RyeUlECglpdG9iCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2V0TkZEUmVnaXN0cnlJRCgpOiB1aW50NjQKZ2V0TkZEUmVnaXN0cnlJRDoKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MTYKCS8vIHJldHVybiB0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQ7CglpbnRjIDE1IC8vIFRNUExfbmZkUmVnaXN0cnlBcHBJZAoJcmV0c3ViCgovLyBhZGRWYWxpZGF0b3IocGF5LHN0cmluZywodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkpdWludDY0CiphYmlfcm91dGVfYWRkVmFsaWRhdG9yOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyBjb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludGMgOCAvLyAyNDIKCT09CgoJLy8gYXJndW1lbnQgMCAoY29uZmlnKSBmb3IgYWRkVmFsaWRhdG9yIG11c3QgYmUgYSAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWFzc2VydAoKCS8vIG5mZE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBtYnJQYXltZW50OiBwYXkKCXR4biBHcm91cEluZGV4CglpbnRjIDEgLy8gMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50YyAxIC8vICBwYXkKCT09CgoJLy8gYXJndW1lbnQgMiAobWJyUGF5bWVudCkgZm9yIGFkZFZhbGlkYXRvciBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGFkZFZhbGlkYXRvcihwYXksc3RyaW5nLCh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KSl1aW50NjQKCWNhbGxzdWIgYWRkVmFsaWRhdG9yCglpdG9iCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gYWRkVmFsaWRhdG9yKG1iclBheW1lbnQ6IFBheVR4biwgbmZkTmFtZTogc3RyaW5nLCBjb25maWc6IFZhbGlkYXRvckNvbmZpZyk6IHVpbnQ2NAovLwovLyBBZGRzIGEgbmV3IHZhbGlkYXRvcgovLyBSZXF1aXJlcyBhdCBsZWFzdCAxMCBBTEdPIGFzIHRoZSAnZmVlJyBmb3IgdGhlIHRyYW5zYWN0aW9uIHRvIGhlbHAgZGlzc3VhZGUgc3BhbW1lZCB2YWxpZGF0b3IgYWRkcy4KLy8KLy8gQHBhcmFtIHtQYXlUeG59IG1iclBheW1lbnQgcGF5bWVudCBmcm9tIGNhbGxlciB3aGljaCBjb3ZlcnMgbWJyIGluY3JlYXNlIG9mIG5ldyB2YWxpZGF0b3Igc3RvcmFnZQovLyBAcGFyYW0ge3N0cmluZ30gbmZkTmFtZSAoT3B0aW9uYWwpIE5hbWUgb2YgbmZkICh1c2VkIGFzIGRvdWJsZS1jaGVjayBhZ2FpbnN0IGlkIHNwZWNpZmllZCBpbiBjb25maWcpCi8vIEBwYXJhbSB7VmFsaWRhdG9yQ29uZmlnfSBjb25maWcgVmFsaWRhdG9yQ29uZmlnIHN0cnVjdAovLyBAcmV0dXJucyB7dWludDY0fSB2YWxpZGF0b3IgaWQKYWRkVmFsaWRhdG9yOgoJcHJvdG8gMyAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDI4CgkvLyB0aGlzLnZhbGlkYXRlQ29uZmlnKGNvbmZpZykKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJY2FsbHN1YiB2YWxpZGF0ZUNvbmZpZwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MjkKCS8vIGFzc2VydChjb25maWcub3duZXIgIT09IEFkZHJlc3MuemVyb0FkZHJlc3MpCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgOCAzMgoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQzMAoJLy8gYXNzZXJ0KGNvbmZpZy5tYW5hZ2VyICE9PSBBZGRyZXNzLnplcm9BZGRyZXNzKQoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDQwIDMyCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDMxCgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBjb25maWcub3duZXIsICdzZW5kZXIgbXVzdCBiZSBvd25lciB0byBhZGQgbmV3IHZhbGlkYXRvcicpCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgOCAzMgoJPT0KCgkvLyBzZW5kZXIgbXVzdCBiZSBvd25lciB0byBhZGQgbmV3IHZhbGlkYXRvcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQzMwoJLy8gdmVyaWZ5UGF5VHhuKG1iclBheW1lbnQsIHsgYW1vdW50OiB0aGlzLmdldE1ickFtb3VudHMoKS5hZGRWYWxpZGF0b3JNYnIgfSkKCS8vIHZlcmlmeSBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJY2FsbHN1YiBnZXRNYnJBbW91bnRzCglleHRyYWN0IDAgOAoJYnRvaQoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6Im1iclBheW1lbnQiLCJmaWVsZCI6ImFtb3VudCIsImV4cGVjdGVkIjoidGhpcy5nZXRNYnJBbW91bnRzKCkuYWRkVmFsaWRhdG9yTWJyIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MzUKCS8vIGFzc2VydChtYnJQYXltZW50LmZlZSA+IDEwICogMTAwMDAwMCwgJ2ZlZSBtdXN0IGJlIDEwIEFMR08gb3IgbW9yZSB0byBwcmV2ZW50IHNwYW1taW5nIG9mIHZhbGlkYXRvcnMnKQoJZnJhbWVfZGlnIC0xIC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgRmVlCglwdXNoaW50IDEwMDAwMDAwCgk+CgoJLy8gZmVlIG11c3QgYmUgMTAgQUxHTyBvciBtb3JlIHRvIHByZXZlbnQgc3BhbW1pbmcgb2YgdmFsaWRhdG9ycwoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQzOAoJLy8gdmFsaWRhdG9ySWQgPSB0aGlzLm51bVZhbGlkYXRvcnMudmFsdWUgKyAxCglieXRlYyAxMiAvLyAgIm51bVYiCglhcHBfZ2xvYmFsX2dldAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMCAvLyB2YWxpZGF0b3JJZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQzOQoJLy8gdGhpcy5udW1WYWxpZGF0b3JzLnZhbHVlID0gdmFsaWRhdG9ySWQKCWJ5dGVjIDEyIC8vICAibnVtViIKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ0MQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS5jcmVhdGUoKQoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpdG9iCgljb25jYXQKCXB1c2hpbnQgMTA5MgoJYm94X2NyZWF0ZQoJcG9wCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ0MgoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcgPSBjb25maWcKCWludGMgMCAvLyAwCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NDMKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLmlkID0gdmFsaWRhdG9ySWQKCWludGMgMCAvLyAwCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpdG9iCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyAqaWY1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ0NgoJLy8gY29uZmlnLm5mZEZvckluZm8gIT09IDAKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA3MiA4CglidG9pCglpbnRjIDAgLy8gMAoJIT0KCWJ6ICppZjVfZW5kCgoJLy8gKmlmNV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDQ4CgkvLyBzZW5kQXBwQ2FsbCh7CgkvLyAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5uZmRSZWdpc3RyeUFwcElkKSwKCS8vICAgICAgICAgYXBwbGljYXRpb25BcmdzOiBbJ2lzX3ZhbGlkX25mZF9hcHBpZCcsIG5mZE5hbWUsIGl0b2IoY29uZmlnLm5mZEZvckluZm8pXSwKCS8vICAgICAgICAgYXBwbGljYXRpb25zOiBbQXBwSUQuZnJvbVVpbnQ2NChjb25maWcubmZkRm9ySW5mbyldLAoJLy8gICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NDkKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5uZmRSZWdpc3RyeUFwcElkKQoJaW50YyAxNSAvLyBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NTAKCS8vIGFwcGxpY2F0aW9uQXJnczogWydpc192YWxpZF9uZmRfYXBwaWQnLCBuZmROYW1lLCBpdG9iKGNvbmZpZy5uZmRGb3JJbmZvKV0KCWJ5dGVjIDEzIC8vICAiaXNfdmFsaWRfbmZkX2FwcGlkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMiAvLyBuZmROYW1lOiBzdHJpbmcKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgNzIgOAoJYnRvaQoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDUxCgkvLyBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KGNvbmZpZy5uZmRGb3JJbmZvKV0KCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA3MiA4CglidG9pCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9ucwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDUzCgkvLyBhc3NlcnQoYnRvaSh0aGlzLml0eG4ubGFzdExvZykgPT09IDEsICJwcm92aWRlZCBORkQgaXNuJ3QgdmFsaWQiKQoJaXR4biBMYXN0TG9nCglidG9pCglpbnRjIDEgLy8gMQoJPT0KCgkvLyBwcm92aWRlZCBORkQgaXNuJ3QgdmFsaWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NTUKCS8vIGFzc2VydCgKCS8vICAgICAgICAgdGhpcy50eG4uc2VuZGVyID09PSAoQXBwSUQuZnJvbVVpbnQ2NChjb25maWcubmZkRm9ySW5mbykuZ2xvYmFsU3RhdGUoJ2kub3duZXIuYScpIGFzIEFkZHJlc3MpLAoJLy8gICAgICAgICAnSWYgc3BlY2lmeWluZyBORkQsIGFjY291bnQgYWRkaW5nIHZhbGlkYXRvciBtdXN0IGJlIG93bmVyJwoJLy8gICAgICAgKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDcyIDgKCWJ0b2kKCWJ5dGVjIDkgLy8gICJpLm93bmVyLmEiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChjb25maWcubmZkRm9ySW5mbykuZ2xvYmFsU3RhdGUoJ2kub3duZXIuYScpCglhc3NlcnQKCT09CgoJLy8gSWYgc3BlY2lmeWluZyBORkQsIGFjY291bnQgYWRkaW5nIHZhbGlkYXRvciBtdXN0IGJlIG93bmVyCglhc3NlcnQKCippZjVfZW5kOgoJLy8gKmlmNl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NjEKCS8vIGNvbmZpZy5lbnRyeUdhdGluZ1R5cGUgPT09IEdBVElOR19UWVBFX0NSRUFURURfQllfTkZEX0FERFJFU1NFUyB8fAoJLy8gICAgICAgY29uZmlnLmVudHJ5R2F0aW5nVHlwZSA9PT0gR0FUSU5HX1RZUEVfU0VHTUVOVF9PRl9ORkQKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA4MCAxCglidG9pCglpbnRjIDkgLy8gMwoJPT0KCWR1cAoJYm56ICpza2lwX29yMAoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDgwIDEKCWJ0b2kKCWludGMgMjAgLy8gNAoJPT0KCXx8Cgoqc2tpcF9vcjA6CglieiAqaWY2X2VuZAoKCS8vICppZjZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ2NQoJLy8gYXNzZXJ0KHRoaXMuaXNORkRBcHBJRFZhbGlkKGNvbmZpZy5lbnRyeUdhdGluZ0Fzc2V0c1swXSksICdwcm92aWRlZCBORkQgQXBwIGlkIGZvciBnYXRpbmcgbXVzdCBiZSB2YWxpZCBORkQnKQoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDExMyA4CglidG9pCgljYWxsc3ViIGlzTkZEQXBwSURWYWxpZAoKCS8vIHByb3ZpZGVkIE5GRCBBcHAgaWQgZm9yIGdhdGluZyBtdXN0IGJlIHZhbGlkIE5GRAoJYXNzZXJ0CgoqaWY2X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NjgKCS8vIHJldHVybiB2YWxpZGF0b3JJZDsKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gY2hhbmdlVmFsaWRhdG9yTWFuYWdlcih1aW50NjQsYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yTWFuYWdlcjoKCS8vIG1hbmFnZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMCAobWFuYWdlcikgZm9yIGNoYW5nZVZhbGlkYXRvck1hbmFnZXIgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNoYW5nZVZhbGlkYXRvck1hbmFnZXIodWludDY0LGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBjaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBjaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIG1hbmFnZXI6IEFkZHJlc3MpOiB2b2lkCi8vCi8vIENoYW5nZXMgdGhlIFZhbGlkYXRvciBtYW5hZ2VyIGZvciBhIHNwZWNpZmljIFZhbGlkYXRvciBpZC4KLy8gWyBPTkxZIE9XTkVSIENBTiBDSEFOR0UgXQovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvciB0byBjaGFuZ2UgdGhlIG1hbmFnZXIgZm9yLgovLyBAcGFyYW0ge0FkZHJlc3N9IG1hbmFnZXIgLSBUaGUgbmV3IG1hbmFnZXIgYWRkcmVzcy4KY2hhbmdlVmFsaWRhdG9yTWFuYWdlcjoKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NzkKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnRjIDIgLy8gOAoJaW50YyA0IC8vIDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXIKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0ODMKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm1hbmFnZXIgPSBtYW5hZ2VyCglpbnRjIDE4IC8vIDQwCglmcmFtZV9kaWcgLTIgLy8gbWFuYWdlcjogQWRkcmVzcwoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBjaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvKHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvOgoJLy8gc3Vuc2V0dGluZ1RvOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBzdW5zZXR0aW5nT246IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNoYW5nZVZhbGlkYXRvclN1bnNldEluZm8odWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBjaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBjaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIHN1bnNldHRpbmdPbjogdWludDY0LCBzdW5zZXR0aW5nVG86IFZhbGlkYXRvcklkVHlwZSk6IHZvaWQKLy8KLy8gVXBkYXRlcyB0aGUgc3Vuc2V0IGluZm9ybWF0aW9uIGZvciBhIGdpdmVuIHZhbGlkYXRvci4KLy8gWyBPTkxZIE9XTkVSIENBTiBDSEFOR0UgXQovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvciB0byB1cGRhdGUuCi8vIEBwYXJhbSB7dWludDY0fSBzdW5zZXR0aW5nT24gLSBUaGUgbmV3IHN1bnNldCB0aW1lc3RhbXAuCi8vIEBwYXJhbSB7dWludDY0fSBzdW5zZXR0aW5nVG8gLSBUaGUgbmV3IHN1bnNldCB0byB2YWxpZGF0b3IgaWQuCmNoYW5nZVZhbGlkYXRvclN1bnNldEluZm86Cglwcm90byAzIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDk1CgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm93bmVyLAoJLy8gICAgICAgJ2NhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXInCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJaW50YyAyIC8vIDgKCWludGMgNCAvLyAzMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDk5CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5zdW5zZXR0aW5nT24gPSBzdW5zZXR0aW5nT24KCWludGMgMjcgLy8gMjI2CglmcmFtZV9kaWcgLTIgLy8gc3Vuc2V0dGluZ09uOiB1aW50NjQKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTAwCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5zdW5zZXR0aW5nVG8gPSBzdW5zZXR0aW5nVG8KCXB1c2hpbnQgMjM0CglmcmFtZV9kaWcgLTMgLy8gc3Vuc2V0dGluZ1RvOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gY2hhbmdlVmFsaWRhdG9yTkZEKHVpbnQ2NCx1aW50NjQsc3RyaW5nKXZvaWQKKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JORkQ6CgkvLyBuZmROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWV4dHJhY3QgMiAwCgoJLy8gbmZkQXBwSUQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNoYW5nZVZhbGlkYXRvck5GRCh1aW50NjQsdWludDY0LHN0cmluZyl2b2lkCgljYWxsc3ViIGNoYW5nZVZhbGlkYXRvck5GRAoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gY2hhbmdlVmFsaWRhdG9yTkZEKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIG5mZEFwcElEOiB1aW50NjQsIG5mZE5hbWU6IHN0cmluZyk6IHZvaWQKLy8KLy8gQ2hhbmdlcyB0aGUgTkZEIGZvciBhIHZhbGlkYXRvciBpbiB0aGUgdmFsaWRhdG9yTGlzdCBjb250cmFjdC4KLy8gWyBPTkxZIE9XTkVSIENBTiBDSEFOR0UgXQovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvciB0byB1cGRhdGUuCi8vIEBwYXJhbSB7dWludDY0fSBuZmRBcHBJRCAtIFRoZSBhcHBsaWNhdGlvbiBpZCBvZiB0aGUgTkZEIHRvIGFzc2lnbiB0byB0aGUgdmFsaWRhdG9yLgovLyBAcGFyYW0ge3N0cmluZ30gbmZkTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBORkQgKHdoaWNoIG11c3QgbWF0Y2gpCmNoYW5nZVZhbGlkYXRvck5GRDoKCXByb3RvIDMgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MTMKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnRjIDIgLy8gOAoJaW50YyA0IC8vIDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXIKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MTgKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5uZmRSZWdpc3RyeUFwcElkKSwKCS8vICAgICAgIGFwcGxpY2F0aW9uQXJnczogWydpc192YWxpZF9uZmRfYXBwaWQnLCBuZmROYW1lLCBpdG9iKG5mZEFwcElEKV0sCgkvLyAgICAgICBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MTkKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5uZmRSZWdpc3RyeUFwcElkKQoJaW50YyAxNSAvLyBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MjAKCS8vIGFwcGxpY2F0aW9uQXJnczogWydpc192YWxpZF9uZmRfYXBwaWQnLCBuZmROYW1lLCBpdG9iKG5mZEFwcElEKV0KCWJ5dGVjIDEzIC8vICAiaXNfdmFsaWRfbmZkX2FwcGlkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMyAvLyBuZmROYW1lOiBzdHJpbmcKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTIgLy8gbmZkQXBwSUQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTIxCgkvLyBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKV0KCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJRDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9ucwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTI0CgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IChBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKS5nbG9iYWxTdGF0ZSgnaS5vd25lci5hJykgYXMgQWRkcmVzcyksCgkvLyAgICAgICAnSWYgc3BlY2lmeWluZyBORkQsIGFjY291bnQgYWRkaW5nIHZhbGlkYXRvciBtdXN0IGJlIG93bmVyJwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJRDogdWludDY0CglieXRlYyA5IC8vICAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQobmZkQXBwSUQpLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKQoJYXNzZXJ0Cgk9PQoKCS8vIElmIHNwZWNpZnlpbmcgTkZELCBhY2NvdW50IGFkZGluZyB2YWxpZGF0b3IgbXVzdCBiZSBvd25lcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUyOAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubmZkRm9ySW5mbyA9IG5mZEFwcElECglpbnRjIDIxIC8vIDcyCglmcmFtZV9kaWcgLTIgLy8gbmZkQXBwSUQ6IHVpbnQ2NAoJaXRvYgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBjaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyh1aW50NjQsYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3M6CgkvLyBjb21taXNzaW9uQWRkcmVzczogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChjb21taXNzaW9uQWRkcmVzcykgZm9yIGNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBjaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyh1aW50NjQsYWRkcmVzcyl2b2lkCgljYWxsc3ViIGNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBjaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCBjb21taXNzaW9uQWRkcmVzczogQWRkcmVzcyk6IHZvaWQKLy8KLy8gQ2hhbmdlIHRoZSBjb21taXNzaW9uIGFkZHJlc3MgdGhhdCB2YWxpZGF0b3IgcmV3YXJkcyBhcmUgc2VudCB0by4KLy8gWyBPTkxZIE9XTkVSIENBTiBDSEFOR0UgXQpjaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzczoKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MzYKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnRjIDIgLy8gOAoJaW50YyA0IC8vIDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXIKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1NDAKCS8vIGFzc2VydChjb21taXNzaW9uQWRkcmVzcyAhPT0gQWRkcmVzcy56ZXJvQWRkcmVzcykKCWZyYW1lX2RpZyAtMiAvLyBjb21taXNzaW9uQWRkcmVzczogQWRkcmVzcwoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU0MQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcudmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MgPSBjb21taXNzaW9uQWRkcmVzcwoJcHVzaGludCAxNzcKCWZyYW1lX2RpZyAtMiAvLyBjb21taXNzaW9uQWRkcmVzczogQWRkcmVzcwoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBjaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvKHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvOgoJLy8gUmV3YXJkUGVyUGF5b3V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDYKCWJ0b2kKCgkvLyBHYXRpbmdBc3NldE1pbkJhbGFuY2U6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNQoJYnRvaQoKCS8vIEVudHJ5R2F0aW5nQXNzZXRzOiB1aW50NjRbNF0KCXR4bmEgQXBwbGljYXRpb25BcmdzIDQKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMiAoRW50cnlHYXRpbmdBc3NldHMpIGZvciBjaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvIG11c3QgYmUgYSB1aW50NjRbNF0KCWFzc2VydAoKCS8vIEVudHJ5R2F0aW5nQWRkcmVzczogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAzIChFbnRyeUdhdGluZ0FkZHJlc3MpIGZvciBjaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBFbnRyeUdhdGluZ1R5cGU6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50YyAxIC8vIDEKCT09CgoJLy8gYXJndW1lbnQgNCAoRW50cnlHYXRpbmdUeXBlKSBmb3IgY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyBtdXN0IGJlIGEgdWludDgKCWFzc2VydAoJYnRvaQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNoYW5nZVZhbGlkYXRvclJld2FyZEluZm8odWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBjaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBjaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIEVudHJ5R2F0aW5nVHlwZTogdWludDgsIEVudHJ5R2F0aW5nQWRkcmVzczogQWRkcmVzcywgRW50cnlHYXRpbmdBc3NldHM6IFN0YXRpY0FycmF5PHVpbnQ2NCwgND4sIEdhdGluZ0Fzc2V0TWluQmFsYW5jZTogdWludDY0LCBSZXdhcmRQZXJQYXlvdXQ6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gQWxsb3cgdGhlIGFkZGl0aW9uYWwgcmV3YXJkcyAoZ2F0aW5nIGVudHJ5LCBhZGRpdGlvbmFsIHRva2VuIHJld2FyZHMpIGluZm9ybWF0aW9uIGJlIGNoYW5nZWQgYXQgd2lsbC4KLy8gWyBPTkxZIE9XTkVSIENBTiBDSEFOR0UgXQpjaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvOgoJcHJvdG8gNiAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU1NgoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5vd25lciwKCS8vICAgICAgICdjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyJwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWludGMgMiAvLyA4CglpbnRjIDQgLy8gMzIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09CgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU2MQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuZW50cnlHYXRpbmdUeXBlID0gRW50cnlHYXRpbmdUeXBlCglpbnRjIDM1IC8vIDgwCglmcmFtZV9kaWcgLTIgLy8gRW50cnlHYXRpbmdUeXBlOiB1aW50OAoJaXRvYgoJZXh0cmFjdCA3IDEKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTYyCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5lbnRyeUdhdGluZ0FkZHJlc3MgPSBFbnRyeUdhdGluZ0FkZHJlc3MKCXB1c2hpbnQgODEKCWZyYW1lX2RpZyAtMyAvLyBFbnRyeUdhdGluZ0FkZHJlc3M6IEFkZHJlc3MKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTYzCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5lbnRyeUdhdGluZ0Fzc2V0cyA9IEVudHJ5R2F0aW5nQXNzZXRzCglwdXNoaW50IDExMwoJZnJhbWVfZGlnIC00IC8vIEVudHJ5R2F0aW5nQXNzZXRzOiBTdGF0aWNBcnJheTx1aW50NjQsIDQ+CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU2NAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuZ2F0aW5nQXNzZXRNaW5CYWxhbmNlID0gR2F0aW5nQXNzZXRNaW5CYWxhbmNlCglpbnRjIDM2IC8vIDE0NQoJZnJhbWVfZGlnIC01IC8vIEdhdGluZ0Fzc2V0TWluQmFsYW5jZTogdWludDY0CglpdG9iCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU2NQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcucmV3YXJkUGVyUGF5b3V0ID0gUmV3YXJkUGVyUGF5b3V0CglwdXNoaW50IDE2MQoJZnJhbWVfZGlnIC02IC8vIFJld2FyZFBlclBheW91dDogdWludDY0CglpdG9iCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIGFkZFBvb2wocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2FkZFBvb2w6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIG5vZGVOdW06IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBtYnJQYXltZW50OiBwYXkKCXR4biBHcm91cEluZGV4CglpbnRjIDEgLy8gMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50YyAxIC8vICBwYXkKCT09CgoJLy8gYXJndW1lbnQgMiAobWJyUGF5bWVudCkgZm9yIGFkZFBvb2wgbXVzdCBiZSBhIHBheSB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhZGRQb29sKHBheSx1aW50NjQsdWludDY0KSh1aW50NjQsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgYWRkUG9vbAoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGFkZFBvb2wobWJyUGF5bWVudDogUGF5VHhuLCB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCBub2RlTnVtOiB1aW50NjQpOiBWYWxpZGF0b3JQb29sS2V5Ci8vCi8vIEFkZHMgYSBuZXcgcG9vbCB0byBhIHZhbGlkYXRvcidzIHBvb2wgc2V0LCByZXR1cm5pbmcgdGhlICdrZXknIHRvIHJlZmVyZW5jZSB0aGUgcG9vbCBpbiB0aGUgZnV0dXJlIGZvciBzdGFraW5nLCBldGMuCi8vIFRoZSBjYWxsZXIgbXVzdCBwYXkgdGhlIGNvc3Qgb2YgdGhlIHZhbGlkYXRvcnMgTUJSIGluY3JlYXNlIGFzIHdlbGwgYXMgdGhlIE1CUiB0aGF0IHdpbGwgYmUgbmVlZGVkIGZvciB0aGUgcG9vbCBpdHNlbGYuCi8vCi8vIFsgT05MWSBPV05FUiBPUiBNQU5BR0VSIENBTiBjYWxsIF0KLy8gQHBhcmFtIHtQYXlUeG59IG1iclBheW1lbnQgcGF5bWVudCBmcm9tIGNhbGxlciB3aGljaCBjb3ZlcnMgbWJyIGluY3JlYXNlIG9mIGFkZGluZyBhIG5ldyBwb29sCi8vIEBwYXJhbSB7dWludDY0fSB2YWxpZGF0b3JJZCBpcyBpZCBvZiB2YWxpZGF0b3IgdG8gcG9vbCB0byAobXVzdCBiZSBvd25lciBvciBtYW5hZ2VyKQovLyBAcGFyYW0ge3VpbnQ2NH0gbm9kZU51bSBpcyBub2RlIG51bWJlciB0byBhZGQgdG8KLy8gQHJldHVybnMge1ZhbGlkYXRvclBvb2xLZXl9IHBvb2wga2V5IHRvIGNyZWF0ZWQgcG9vbAphZGRQb29sOgoJcHJvdG8gMyAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1ODEKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIgfHwKCS8vICAgICAgICAgdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5tYW5hZ2VyLAoJLy8gICAgICAgJ2NhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnRjIDIgLy8gOAoJaW50YyA0IC8vIDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoJZHVwCglibnogKnNraXBfb3IxCgl0eG4gU2VuZGVyCglpbnRjIDE4IC8vIDQwCglpbnRjIDQgLy8gMzIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09Cgl8fAoKKnNraXBfb3IxOgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTg4CgkvLyB2ZXJpZnlQYXlUeG4obWJyUGF5bWVudCwgeyBhbW91bnQ6IHRoaXMuZ2V0TWJyQW1vdW50cygpLmFkZFBvb2xNYnIsIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzIH0pCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gbWJyUGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWNhbGxzdWIgZ2V0TWJyQW1vdW50cwoJZXh0cmFjdCA4IDgKCWJ0b2kKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJtYnJQYXltZW50IiwiZmllbGQiOiJhbW91bnQiLCJleHBlY3RlZCI6InRoaXMuZ2V0TWJyQW1vdW50cygpLmFkZFBvb2xNYnIifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gbWJyUGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJtYnJQYXltZW50IiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTkwCgkvLyBhc3NlcnQodGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS5leGlzdHMsICJzcGVjaWZpZWQgdmFsaWRhdG9yIGlkIGlzbid0IHZhbGlkIikKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCgoJLy8gc3BlY2lmaWVkIHZhbGlkYXRvciBpZCBpc24ndCB2YWxpZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU5MgoJLy8gbnVtUG9vbHM6IHVpbnQ2NCA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUubnVtUG9vbHMgYXMgdWludDY0CglpbnRjIDggLy8gMjQyCglpbnRjIDEwIC8vIDIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyBudW1Qb29sczogdWludDY0CgoJLy8gKmlmN19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1OTMKCS8vIChudW1Qb29scyBhcyB1aW50NjQpID49IE1BWF9QT09MUwoJZnJhbWVfZGlnIDAgLy8gbnVtUG9vbHM6IHVpbnQ2NAoJaW50YyAzIC8vIDI0Cgk+PQoJYnogKmlmN19lbmQKCgkvLyAqaWY3X2NvbnNlcXVlbnQKCS8vIGFscmVhZHkgYXQgbWF4IHBvb2wgc2l6ZQoJZXJyCgoqaWY3X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1OTYKCS8vIG51bVBvb2xzICs9IDEKCWZyYW1lX2RpZyAwIC8vIG51bVBvb2xzOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDAgLy8gbnVtUG9vbHM6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1OTkKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0aW9uLk5vT3AsCgkvLyAgICAgICBhcHByb3ZhbFByb2dyYW06IFsKCS8vICAgICAgICAgdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5leHRyYWN0KDAsIDQwOTYpLAoJLy8gICAgICAgICB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLmV4dHJhY3QoNDA5NiwgdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5zaXplIC0gNDA5NiksCgkvLyAgICAgICBdLAoJLy8gICAgICAgY2xlYXJTdGF0ZVByb2dyYW06IFN0YWtpbmdQb29sLmNsZWFyUHJvZ3JhbSgpLAoJLy8gICAgICAgZ2xvYmFsTnVtVWludDogU3Rha2luZ1Bvb2wuc2NoZW1hLmdsb2JhbC5udW1VaW50LAoJLy8gICAgICAgZ2xvYmFsTnVtQnl0ZVNsaWNlOiBTdGFraW5nUG9vbC5zY2hlbWEuZ2xvYmFsLm51bUJ5dGVTbGljZSwKCS8vICAgICAgIGV4dHJhUHJvZ3JhbVBhZ2VzOiAzLAoJLy8gICAgICAgYXBwbGljYXRpb25BcmdzOiBbCgkvLyAgICAgICAgIC8vIGNyZWF0aW5nQ29udHJhY3RJRCwgdmFsaWRhdG9ySWQsIHBvb2xJZCwgbWluRW50cnlTdGFrZQoJLy8gICAgICAgICBtZXRob2QoJ2NyZWF0ZUFwcGxpY2F0aW9uKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkJyksCgkvLyAgICAgICAgIGl0b2IodGhpcy5hcHAuaWQpLAoJLy8gICAgICAgICBpdG9iKHZhbGlkYXRvcklkKSwKCS8vICAgICAgICAgaXRvYihudW1Qb29scyBhcyB1aW50NjQpLAoJLy8gICAgICAgICBpdG9iKHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm1pbkVudHJ5U3Rha2UpLAoJLy8gICAgICAgXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYwMAoJLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRpb24uTm9PcAoJaW50YyAwIC8vICBOb09wCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MDEKCS8vIGFwcHJvdmFsUHJvZ3JhbTogWwoJLy8gICAgICAgICB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLmV4dHJhY3QoMCwgNDA5NiksCgkvLyAgICAgICAgIHRoaXMuc3Rha2luZ1Bvb2xBcHByb3ZhbFByb2dyYW0uZXh0cmFjdCg0MDk2LCB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLnNpemUgLSA0MDk2KSwKCS8vICAgICAgIF0KCWJ5dGVjIDYgLy8gICJwb29sVGVtcGxhdGVBcHByb3ZhbEJ5dGVzIgoJaW50YyAwIC8vIDAKCWludGMgMjUgLy8gNDA5NgoJYm94X2V4dHJhY3QKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKCWJ5dGVjIDYgLy8gICJwb29sVGVtcGxhdGVBcHByb3ZhbEJ5dGVzIgoJaW50YyAyNSAvLyA0MDk2CglieXRlYyA2IC8vICAicG9vbFRlbXBsYXRlQXBwcm92YWxCeXRlcyIKCWJveF9sZW4KCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuc3Rha2luZ1Bvb2xBcHByb3ZhbFByb2dyYW0uc2l6ZQoJYXNzZXJ0CglpbnRjIDI1IC8vIDQwOTYKCS0KCWJveF9leHRyYWN0CglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYwNQoJLy8gY2xlYXJTdGF0ZVByb2dyYW06IFN0YWtpbmdQb29sLmNsZWFyUHJvZ3JhbSgpCglwdXNoYnl0ZXMgMHgwYQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MDYKCS8vIGdsb2JhbE51bVVpbnQ6IFN0YWtpbmdQb29sLnNjaGVtYS5nbG9iYWwubnVtVWludAoJaW50YyAzNCAvLyAxMQoJaXR4bl9maWVsZCBHbG9iYWxOdW1VaW50CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYwNwoJLy8gZ2xvYmFsTnVtQnl0ZVNsaWNlOiBTdGFraW5nUG9vbC5zY2hlbWEuZ2xvYmFsLm51bUJ5dGVTbGljZQoJaW50YyA5IC8vIDMKCWl0eG5fZmllbGQgR2xvYmFsTnVtQnl0ZVNsaWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYwOAoJLy8gZXh0cmFQcm9ncmFtUGFnZXM6IDMKCWludGMgOSAvLyAzCglpdHhuX2ZpZWxkIEV4dHJhUHJvZ3JhbVBhZ2VzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYwOQoJLy8gYXBwbGljYXRpb25BcmdzOiBbCgkvLyAgICAgICAgIC8vIGNyZWF0aW5nQ29udHJhY3RJRCwgdmFsaWRhdG9ySWQsIHBvb2xJZCwgbWluRW50cnlTdGFrZQoJLy8gICAgICAgICBtZXRob2QoJ2NyZWF0ZUFwcGxpY2F0aW9uKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkJyksCgkvLyAgICAgICAgIGl0b2IodGhpcy5hcHAuaWQpLAoJLy8gICAgICAgICBpdG9iKHZhbGlkYXRvcklkKSwKCS8vICAgICAgICAgaXRvYihudW1Qb29scyBhcyB1aW50NjQpLAoJLy8gICAgICAgICBpdG9iKHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm1pbkVudHJ5U3Rha2UpLAoJLy8gICAgICAgXQoJcHVzaGJ5dGVzIDB4NTllOTBhYTYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbih1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMCAvLyBudW1Qb29sczogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJaW50YyAzOCAvLyAyMDkKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjE5CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnN0YXRlLm51bVBvb2xzID0gbnVtUG9vbHMgYXMgdWludDE2CglpbnRjIDggLy8gMjQyCglmcmFtZV9kaWcgMCAvLyBudW1Qb29sczogdWludDY0CglpdG9iCglleHRyYWN0IDYgMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MjIKCS8vIHBvb2xBcHBJZCA9IHRoaXMuaXR4bi5jcmVhdGVkQXBwbGljYXRpb25JRC5pZAoJaXR4biBDcmVhdGVkQXBwbGljYXRpb25JRAoJZnJhbWVfYnVyeSAxIC8vIHBvb2xBcHBJZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYyMwoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5wb29sc1tudW1Qb29scyAtIDFdLnBvb2xBcHBJZCA9IHBvb2xBcHBJZAoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMCAvLyBudW1Qb29sczogdWludDY0CglpbnRjIDEgLy8gMQoJLQoJaW50YyA1IC8vIDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludGMgMCAvLyAwCgkrCglmcmFtZV9kaWcgMSAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoJaXRvYgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MjQKCS8vIHRoaXMuYWRkUG9vbFRvTm9kZSh2YWxpZGF0b3JJZCwgcG9vbEFwcElkLCBub2RlTnVtKQoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gcG9vbEFwcElkOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCgljYWxsc3ViIGFkZFBvb2xUb05vZGUKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjMyCgkvLyByZXR1cm4geyBpZDogdmFsaWRhdG9ySWQsIHBvb2xJZDogbnVtUG9vbHMgYXMgdWludDY0LCBwb29sQXBwSWQ6IHRoaXMuaXR4biEuY3JlYXRlZEFwcGxpY2F0aW9uSUQuaWQgfTsKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCglmcmFtZV9kaWcgMCAvLyBudW1Qb29sczogdWludDY0CglpdG9iCgljb25jYXQKCWl0eG4gQ3JlYXRlZEFwcGxpY2F0aW9uSUQKCWl0b2IKCWNvbmNhdAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gYWRkU3Rha2UocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2FkZFN0YWtlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyB2YWx1ZVRvVmVyaWZ5OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gc3Rha2VkQW1vdW50UGF5bWVudDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50YyAxIC8vIDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludGMgMSAvLyAgcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDIgKHN0YWtlZEFtb3VudFBheW1lbnQpIGZvciBhZGRTdGFrZSBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGFkZFN0YWtlKHBheSx1aW50NjQsdWludDY0KSh1aW50NjQsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgYWRkU3Rha2UKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBhZGRTdGFrZShzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4sIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NCk6IFZhbGlkYXRvclBvb2xLZXkKLy8KLy8gQWRkcyBzdGFrZSB0byBhIHZhbGlkYXRvciBwb29sLgovLwovLyBAcGFyYW0ge1BheVR4bn0gc3Rha2VkQW1vdW50UGF5bWVudCAtIHBheW1lbnQgY29taW5nIGZyb20gc3Rha2VyIHRvIHBsYWNlIGludG8gYSBwb29sCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yLgovLyBAcGFyYW0ge3VpbnQ2NH0gdmFsdWVUb1ZlcmlmeSAtIG9ubHkgaWYgdmFsaWRhdG9yIGhhcyBnYXRpbmcgdG8gZW50ZXIgLSB0aGlzIGlzIGFzc2V0IGlkIG9yIG5mZCBpZCB0aGF0IGNvcnJlc3BvbmRzIHRvIGdhdGluZy4KLy8gVHhuIHNlbmRlciBpcyBmYWN0b3JlZCBpbiBhcyB3ZWxsIGlmIHRoYXQgaXMgcGFydCBvZiBnYXRpbmcuCi8vICogQHJldHVybnMge1ZhbGlkYXRvclBvb2xLZXl9IC0gVGhlIGtleSBvZiB0aGUgdmFsaWRhdG9yIHBvb2wuCmFkZFN0YWtlOgoJcHJvdG8gMyAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cG4gNQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NDUKCS8vIGFzc2VydCh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLmV4aXN0cywgInNwZWNpZmllZCB2YWxpZGF0b3IgaWQgaXNuJ3QgdmFsaWQiKQoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCgkvLyBzcGVjaWZpZWQgdmFsaWRhdG9yIGlkIGlzbid0IHZhbGlkCglhc3NlcnQKCgkvLyAqaWY4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY0OAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuc3Vuc2V0dGluZ09uID4gMAoJaW50YyAyNyAvLyAyMjYKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglpbnRjIDAgLy8gMAoJPgoJYnogKmlmOF9lbmQKCgkvLyAqaWY4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NDkKCS8vIGFzc2VydCgKCS8vICAgICAgICAgdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuc3Vuc2V0dGluZ09uIDwgZ2xvYmFscy5sYXRlc3RUaW1lc3RhbXAsCgkvLyAgICAgICAgICJjYW4ndCBzdGFrZSB3aXRoIGEgdmFsaWRhdG9yIHRoYXQgaXMgcGFzdCBpdHMgc3Vuc2V0dGluZyB0aW1lIgoJLy8gICAgICAgKQoJaW50YyAyNyAvLyAyMjYKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCgk8CgoJLy8gY2FuJ3Qgc3Rha2Ugd2l0aCBhIHZhbGlkYXRvciB0aGF0IGlzIHBhc3QgaXRzIHN1bnNldHRpbmcgdGltZQoJYXNzZXJ0CgoqaWY4X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NTUKCS8vIHN0YWtlciA9IHRoaXMudHhuLnNlbmRlcgoJdHhuIFNlbmRlcgoJZnJhbWVfYnVyeSAwIC8vIHN0YWtlcjogYWRkcmVzcwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NTkKCS8vIHZlcmlmeVBheVR4bihzdGFrZWRBbW91bnRQYXltZW50LCB7CgkvLyAgICAgICBzZW5kZXI6IHN0YWtlciwKCS8vICAgICAgIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBTZW5kZXIKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InN0YWtlZEFtb3VudFBheW1lbnQiLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoic3Rha2VyIn0KCWFzc2VydAoKCS8vIHZlcmlmeSByZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgUmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoic3Rha2VkQW1vdW50UGF5bWVudCIsImZpZWxkIjoicmVjZWl2ZXIiLCJleHBlY3RlZCI6InRoaXMuYXBwLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY2NgoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZS50b3RhbEFsZ29TdGFrZWQgPCB0aGlzLm1heEFsbG93ZWRTdGFrZSgpLAoJLy8gICAgICAgJ3RvdGFsIHN0YWtlZCBmb3IgYWxsIG9mIGEgdmFsaWRhdG9ycyBwb29scyBtYXkgbm90IGV4Y2VlZCBoYXJkIGNhcCcKCS8vICAgICApCglpbnRjIDEyIC8vIDI1MgoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWNhbGxzdWIgbWF4QWxsb3dlZFN0YWtlCgk8CgoJLy8gdG90YWwgc3Rha2VkIGZvciBhbGwgb2YgYSB2YWxpZGF0b3JzIHBvb2xzIG1heSBub3QgZXhjZWVkIGhhcmQgY2FwCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjczCgkvLyB0aGlzLmRvZXNTdGFrZXJNZWV0R2F0aW5nKHZhbGlkYXRvcklkLCB2YWx1ZVRvVmVyaWZ5KQoJZnJhbWVfZGlnIC0zIC8vIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWNhbGxzdWIgZG9lc1N0YWtlck1lZXRHYXRpbmcKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Njc1CgkvLyByZWFsQW1vdW50ID0gc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfYnVyeSAxIC8vIHJlYWxBbW91bnQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NzYKCS8vIG1ickFtdExlZnRCZWhpbmQ6IHVpbnQ2NCA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDIgLy8gbWJyQW10TGVmdEJlaGluZDogdWludDY0CgoJLy8gKmlmOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NzgKCS8vICF0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS5leGlzdHMKCWJ5dGVjIDMgLy8gICJzcHMiCglmcmFtZV9kaWcgMCAvLyBzdGFrZXI6IGFkZHJlc3MKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCglieiAqaWY5X2VuZAoKCS8vICppZjlfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY4MQoJLy8gbWJyQW10TGVmdEJlaGluZCA9IHRoaXMuZ2V0TWJyQW1vdW50cygpLmFkZFN0YWtlck1icgoJY2FsbHN1YiBnZXRNYnJBbW91bnRzCglleHRyYWN0IDI0IDgKCWJ0b2kKCWZyYW1lX2J1cnkgMiAvLyBtYnJBbXRMZWZ0QmVoaW5kOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjgyCgkvLyByZWFsQW1vdW50IC09IG1ickFtdExlZnRCZWhpbmQKCWZyYW1lX2RpZyAxIC8vIHJlYWxBbW91bnQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDIgLy8gbWJyQW10TGVmdEJlaGluZDogdWludDY0CgktCglmcmFtZV9idXJ5IDEgLy8gcmVhbEFtb3VudDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY4MwoJLy8gdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikuY3JlYXRlKCkKCWJ5dGVjIDMgLy8gICJzcHMiCglmcmFtZV9kaWcgMCAvLyBzdGFrZXI6IGFkZHJlc3MKCWNvbmNhdAoJcHVzaGludCAxNDQKCWJveF9jcmVhdGUKCXBvcAoKKmlmOV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Njg3CgkvLyBmaW5kUmV0ID0gdGhpcy5maW5kUG9vbEZvclN0YWtlcih2YWxpZGF0b3JJZCwgc3Rha2VyLCByZWFsQW1vdW50KQoJZnJhbWVfZGlnIDEgLy8gcmVhbEFtb3VudDogdWludDY0CglmcmFtZV9kaWcgMCAvLyBzdGFrZXI6IGFkZHJlc3MKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCgljYWxsc3ViIGZpbmRQb29sRm9yU3Rha2VyCglmcmFtZV9idXJ5IDMgLy8gZmluZFJldDogKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2ODgKCS8vIHBvb2xLZXkgPSBmaW5kUmV0WzBdCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Njg5CgkvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yID0gZmluZFJldFsxXQoJZnJhbWVfZGlnIDMgLy8gZmluZFJldDogKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludGMgMjIgLy8gMTkyCglnZXRiaXQKCWZyYW1lX2J1cnkgNCAvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY5MAoJLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sID0gZmluZFJldFsyXQoJZnJhbWVfZGlnIDMgLy8gZmluZFJldDogKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMTkzCglnZXRiaXQKCWZyYW1lX2J1cnkgNSAvLyBpc05ld1N0YWtlclRvUHJvdG9jb2w6IGJvb2wKCgkvLyAqaWYxMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2OTEKCS8vIHBvb2xLZXkucG9vbElkID09PSAwCglmcmFtZV9kaWcgMyAvLyBmaW5kUmV0OiAoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmMTBfZW5kCgoJLy8gKmlmMTBfY29uc2VxdWVudAoJLy8gTm8gcG9vbCBhdmFpbGFibGUgd2l0aCBmcmVlIHN0YWtlLiAgVmFsaWRhdG9yIG5lZWRzIHRvIGFkZCBhbm90aGVyIHBvb2wKCWVycgoKKmlmMTBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY5NgoJLy8gdGhpcy51cGRhdGVTdGFrZXJQb29sU2V0KHN0YWtlciwgcG9vbEtleSkKCWZyYW1lX2RpZyAzIC8vIGZpbmRSZXQ6ICgodWludDY0LHVpbnQ2NCx1aW50NjQpLGJvb2wsYm9vbCkKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDAgMjQKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJY2FsbHN1YiB1cGRhdGVTdGFrZXJQb29sU2V0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY5OQoJLy8gdGhpcy5jYWxsUG9vbEFkZFN0YWtlKAoJLy8gICAgICAgc3Rha2VkQW1vdW50UGF5bWVudCwKCS8vICAgICAgIHBvb2xLZXksCgkvLyAgICAgICBtYnJBbXRMZWZ0QmVoaW5kLAoJLy8gICAgICAgaXNOZXdTdGFrZXJUb1ZhbGlkYXRvciwKCS8vICAgICAgIGlzTmV3U3Rha2VyVG9Qcm90b2NvbAoJLy8gICAgICkKCWZyYW1lX2RpZyA1IC8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbAoJZnJhbWVfZGlnIDQgLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbAoJZnJhbWVfZGlnIDIgLy8gbWJyQW10TGVmdEJlaGluZDogdWludDY0CglmcmFtZV9kaWcgMyAvLyBmaW5kUmV0OiAoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAwIDI0CglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCgljYWxsc3ViIGNhbGxQb29sQWRkU3Rha2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzE0CgkvLyByZXR1cm4gcG9vbEtleTsKCWZyYW1lX2RpZyAzIC8vIGZpbmRSZXQ6ICgodWludDY0LHVpbnQ2NCx1aW50NjQpLGJvb2wsYm9vbCkKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDAgMjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA1CglyZXRzdWIKCi8vIHNldFRva2VuUGF5b3V0UmF0aW8odWludDY0KSh1aW50NjRbMjRdLHVpbnQ2NCkKKmFiaV9yb3V0ZV9zZXRUb2tlblBheW91dFJhdGlvOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBzZXRUb2tlblBheW91dFJhdGlvKHVpbnQ2NCkodWludDY0WzI0XSx1aW50NjQpCgljYWxsc3ViIHNldFRva2VuUGF5b3V0UmF0aW8KCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBzZXRUb2tlblBheW91dFJhdGlvKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUpOiBQb29sVG9rZW5QYXlvdXRSYXRpbwovLwovLyBzZXRUb2tlblBheW91dFJhdGlvIGlzIGNhbGxlZCBieSBTdGFraW5nIFBvb2wgIyAxIChPTkxZKSB0byBhc2sgdGhlIHZhbGlkYXRvciAodXMpIHRvIGNhbGN1bGF0ZSB0aGUgcmF0aW9zCi8vIG9mIHN0YWtlIGluIHRoZSBwb29scyBmb3Igc3Vic2VxdWVudCB0b2tlbiBwYXlvdXRzIChpZTogMiBwb29scywgJzEwMCcgYWxnbyB0b3RhbCBzdGFrZWQsIDYwIGluIHBvb2wgMSwgYW5kIDQwCi8vIGluIHBvb2wgMikgIFRoaXMgaXMgZG9uZSBzbyB3ZSBoYXZlIGEgc3RhYmxlIHNuYXBzaG90IG9mIHN0YWtlIC0gdGFrZW4gb25jZSBwZXIgZXBvY2ggLSBvbmx5IHRyaWdnZXJlZCBieQovLyBwb29sIDEgZG9pbmcgcGF5b3V0LiAgcG9vbHMgb3RoZXIgdGhhbiAxIGRvaW5nIHBheW91dCBjYWxsIHBvb2wgMSB0byBhc2sgaXQgZG8gaXQgZmlyc3QuCi8vIEl0IHdvdWxkIGJlIDYwLzQwJSBpbiB0aGUgcG9vbFBjdE9mV2hvbGUgdmFsdWVzLiAgVGhlIHRva2VuIHJld2FyZCBwYXlvdXRzIHRoZW4gdXNlIHRoZXNlIHZhbHVlcyBpbnN0ZWFkIG9mCi8vIHRoZWlyICdjdXJyZW50JyBzdGFrZSB3aGljaCBjaGFuZ2VzIGFzIHBhcnQgb2YgdGhlIHBheW91dHMgdGhlbXNlbHZlcyAoYW5kIHBlb3BsZSBjb3VsZCBiZSBjaGFuZ2luZyBzdGFrZQovLyBkdXJpbmcgdGhlIGVwb2NoIHVwZGF0ZXMgYWNyb3NzIHBvb2xzKQovLwovLyBNdWx0aXBsZSBwb29scyB3aWxsIGNhbGwgdXMgdmlhIHBvb2wgMSAocG9vbDItPnBvb2wxLT52YWxpZGF0b3IsIGV0Yy4pIHNvIGRvbid0IGFzc2VydCBvbiBwb29sMSBjYWxsaW5nIG11bHRpcGxlCi8vIHRpbWVzIGluIHNhbWUgZXBvY2guICBKdXN0IHJldHVybi4KLy8KLy8gQHBhcmFtIHZhbGlkYXRvcklkIC0gdmFsaWRhdG9yIGlkIChhbmQgdGh1cyBwb29sKSBjYWxsaW5nIHVzLiAgVmVyaWZpZWQgc28gdGhhdCBzZW5kZXIgTVVTVCBiZSBwb29sIDEgb2YgdGhpcyB2YWxpZGF0b3IuCi8vIEByZXR1cm5zIFBvb2xUb2tlblBheW91dFJhdGlvIC0gdGhlIGZpbmlzaGVkIHJhdGlvIGRhdGEKc2V0VG9rZW5QYXlvdXRSYXRpbzoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAxIC8vIDB4CglkdXBuIDgKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzM0CgkvLyBwb29sMUFwcElEID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5wb29sc1swXS5wb29sQXBwSWQKCWludGMgNiAvLyAyNjgKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDAgLy8gcG9vbDFBcHBJRDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjczNQoJLy8gYXNzZXJ0KHBvb2wxQXBwSUQgIT09IDApCglmcmFtZV9kaWcgMCAvLyBwb29sMUFwcElEOiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoJYXNzZXJ0CgoJLy8gKmlmMTFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzM3CgkvLyB0aGlzLnR4bi5zZW5kZXIgIT09IEFwcElELmZyb21VaW50NjQocG9vbDFBcHBJRCkuYWRkcmVzcwoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIDAgLy8gcG9vbDFBcHBJRDogdWludDY0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCSE9CglieiAqaWYxMV9lbmQKCgkvLyAqaWYxMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzM4CgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvOwoJaW50YyAxNCAvLyAgaGVhZE9mZnNldAoJaW50YyAxOSAvLyAyMDAKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWIgKnNldFRva2VuUGF5b3V0UmF0aW8qcmV0dXJuCgoqaWYxMV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzQ0CgkvLyBjdXJSb3VuZCA9IGdsb2JhbHMucm91bmQKCWdsb2JhbCBSb3VuZAoJZnJhbWVfYnVyeSAxIC8vIGN1clJvdW5kOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzQ1CgkvLyBsYXN0UGF5b3V0VXBkYXRlID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvLnVwZGF0ZWRGb3JQYXlvdXQKCWludGMgMzAgLy8gODkyCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAyIC8vIGxhc3RQYXlvdXRVcGRhdGU6IHVpbnQ2NAoKCS8vICppZjEyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc0NgoJLy8gbGFzdFBheW91dFVwZGF0ZSAhPT0gMAoJZnJhbWVfZGlnIDIgLy8gbGFzdFBheW91dFVwZGF0ZTogdWludDY0CglpbnRjIDAgLy8gMAoJIT0KCWJ6ICppZjEyX2VuZAoKCS8vICppZjEyX2NvbnNlcXVlbnQKCS8vICppZjEzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc0OAoJLy8gKEFwcElELmZyb21VaW50NjQocG9vbDFBcHBJRCkuZ2xvYmFsU3RhdGUoJ2xhc3RQYXlvdXQnKSBhcyB1aW50NjQpID09PSBsYXN0UGF5b3V0VXBkYXRlCglmcmFtZV9kaWcgMCAvLyBwb29sMUFwcElEOiB1aW50NjQKCXB1c2hieXRlcyAweDZjNjE3Mzc0NTA2MTc5NmY3NTc0IC8vICJsYXN0UGF5b3V0IgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQocG9vbDFBcHBJRCkuZ2xvYmFsU3RhdGUoJ2xhc3RQYXlvdXQnKQoJYXNzZXJ0CglmcmFtZV9kaWcgMiAvLyBsYXN0UGF5b3V0VXBkYXRlOiB1aW50NjQKCT09CglieiAqaWYxM19lbmQKCgkvLyAqaWYxM19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzQ5CgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvOwoJaW50YyAxNCAvLyAgaGVhZE9mZnNldAoJaW50YyAxOSAvLyAyMDAKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWIgKnNldFRva2VuUGF5b3V0UmF0aW8qcmV0dXJuCgoqaWYxM19lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzUxCgkvLyBlcG9jaFJvdW5kTGVuZ3RoID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuZXBvY2hSb3VuZExlbmd0aCBhcyB1aW50NjQKCXB1c2hpbnQgMTY5CglpbnRjIDIwIC8vIDQKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyBlcG9jaFJvdW5kTGVuZ3RoOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzUyCgkvLyB0aGlzRXBvY2hCZWdpbiA9IGN1clJvdW5kIC0gKGN1clJvdW5kICUgZXBvY2hSb3VuZExlbmd0aCkKCWZyYW1lX2RpZyAxIC8vIGN1clJvdW5kOiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIGN1clJvdW5kOiB1aW50NjQKCWZyYW1lX2RpZyAzIC8vIGVwb2NoUm91bmRMZW5ndGg6IHVpbnQ2NAoJJQoJLQoJZnJhbWVfYnVyeSA0IC8vIHRoaXNFcG9jaEJlZ2luOiB1aW50NjQKCgkvLyAqaWYxNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NTQKCS8vIGxhc3RQYXlvdXRVcGRhdGUgLSAobGFzdFBheW91dFVwZGF0ZSAlIGVwb2NoUm91bmRMZW5ndGgpID09PSB0aGlzRXBvY2hCZWdpbgoJZnJhbWVfZGlnIDIgLy8gbGFzdFBheW91dFVwZGF0ZTogdWludDY0CglmcmFtZV9kaWcgMiAvLyBsYXN0UGF5b3V0VXBkYXRlOiB1aW50NjQKCWZyYW1lX2RpZyAzIC8vIGVwb2NoUm91bmRMZW5ndGg6IHVpbnQ2NAoJJQoJLQoJZnJhbWVfZGlnIDQgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJPT0KCWJ6ICppZjE0X2VuZAoKCS8vICppZjE0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NTUKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnRva2VuUGF5b3V0UmF0aW87CglpbnRjIDE0IC8vICBoZWFkT2Zmc2V0CglpbnRjIDE5IC8vIDIwMAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYiAqc2V0VG9rZW5QYXlvdXRSYXRpbypyZXR1cm4KCippZjE0X2VuZDoKCippZjEyX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NTgKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUudG9rZW5QYXlvdXRSYXRpby51cGRhdGVkRm9yUGF5b3V0ID0gY3VyUm91bmQKCWludGMgMzAgLy8gODkyCglmcmFtZV9kaWcgMSAvLyBjdXJSb3VuZDogdWludDY0CglpdG9iCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc2MAoJLy8gY3VyTnVtUG9vbHMgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnN0YXRlLm51bVBvb2xzIGFzIHVpbnQ2NAoJaW50YyA4IC8vIDI0MgoJaW50YyAxMCAvLyAyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDUgLy8gY3VyTnVtUG9vbHM6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NjEKCS8vIHRvdGFsU3Rha2VGb3JWYWxpZGF0b3IgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnN0YXRlLnRvdGFsQWxnb1N0YWtlZAoJaW50YyAxMiAvLyAyNTIKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDYgLy8gdG90YWxTdGFrZUZvclZhbGlkYXRvcjogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc2MgoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBjdXJOdW1Qb29sczsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgNyAvLyBpOiB1aW50NjQKCipmb3JfMjoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NjIKCS8vIGkgPCBjdXJOdW1Qb29scwoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglmcmFtZV9kaWcgNSAvLyBjdXJOdW1Qb29sczogdWludDY0Cgk8CglieiAqZm9yXzJfZW5kCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc2NwoJLy8gb3VyUG9vbFBjdE9mV2hvbGUgPSB3aWRlUmF0aW8oCgkvLyAgICAgICAgIFt0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzW2ldLnRvdGFsQWxnb1N0YWtlZCwgMV8wMDBfMDAwXSwKCS8vICAgICAgICAgW3RvdGFsU3Rha2VGb3JWYWxpZGF0b3JdCgkvLyAgICAgICApCglpbnRjIDYgLy8gIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyA3IC8vIGk6IHVpbnQ2NAoJaW50YyA1IC8vIDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludGMgMTEgLy8gIGhlYWRPZmZzZXQKCSsKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglwdXNoaW50IDFfMDAwXzAwMAoJbXVsdwoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyA2IC8vIHRvdGFsU3Rha2VGb3JWYWxpZGF0b3I6IHVpbnQ2NAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgOCAvLyBvdXJQb29sUGN0T2ZXaG9sZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc3MQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvLnBvb2xQY3RPZldob2xlW2ldID0gb3VyUG9vbFBjdE9mV2hvbGUKCWludGMgMTQgLy8gNzAwCglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWludGMgMiAvLyA4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWZyYW1lX2RpZyA4IC8vIG91clBvb2xQY3RPZldob2xlOiB1aW50NjQKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCipmb3JfMl9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NjIKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSA3IC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzIKCipmb3JfMl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzczCgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvOwoJaW50YyAxNCAvLyAgaGVhZE9mZnNldAoJaW50YyAxOSAvLyAyMDAKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCipzZXRUb2tlblBheW91dFJhdGlvKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDgKCXJldHN1YgoKLy8gc3Rha2VVcGRhdGVkVmlhUmV3YXJkcygodWludDY0LHVpbnQ2NCx1aW50NjQpLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfc3Rha2VVcGRhdGVkVmlhUmV3YXJkczoKCS8vIHNhdHVyYXRlZEJ1cm5Ub0ZlZVNpbms6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNQoJYnRvaQoKCS8vIHZhbGlkYXRvckNvbW1pc3Npb246IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJYnRvaQoKCS8vIHJld2FyZFRva2VuQW1vdW50UmVzZXJ2ZWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIGFsZ29Ub0FkZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gcG9vbEtleTogKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludGMgMyAvLyAyNAoJPT0KCgkvLyBhcmd1bWVudCA0IChwb29sS2V5KSBmb3Igc3Rha2VVcGRhdGVkVmlhUmV3YXJkcyBtdXN0IGJlIGEgKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzKCh1aW50NjQsdWludDY0LHVpbnQ2NCksdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgc3Rha2VVcGRhdGVkVmlhUmV3YXJkcwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gc3Rha2VVcGRhdGVkVmlhUmV3YXJkcyhwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5LCBhbGdvVG9BZGQ6IHVpbnQ2NCwgcmV3YXJkVG9rZW5BbW91bnRSZXNlcnZlZDogdWludDY0LCB2YWxpZGF0b3JDb21taXNzaW9uOiB1aW50NjQsIHNhdHVyYXRlZEJ1cm5Ub0ZlZVNpbms6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gc3Rha2VVcGRhdGVkVmlhUmV3YXJkcyBpcyBjYWxsZWQgYnkgU3Rha2luZyBwb29scyB0byBpbmZvcm0gdGhlIHZhbGlkYXRvciAodXMpIHRoYXQgYSBwYXJ0aWN1bGFyIGFtb3VudCBvZiB0b3RhbAovLyBzdGFrZSBoYXMgYmVlbiBhZGRlZCB0byB0aGUgc3BlY2lmaWVkIHBvb2wuICBUaGlzIGlzIHVzZWQgdG8gdXBkYXRlIHRoZSBzdGF0cyB3ZSBoYXZlIGluIG91ciBQb29sSW5mbyBzdG9yYWdlLgovLyBUaGUgY2FsbGluZyBBcHAgaWQgaXMgdmFsaWRhdGVkIGFnYWluc3Qgb3VyIHBvb2wgbGlzdCBhcyB3ZWxsLgovLyBAcGFyYW0ge1ZhbGlkYXRvclBvb2xLZXl9IHBvb2xLZXkgLSBWYWxpZGF0b3JQb29sS2V5IHR5cGUKLy8gQHBhcmFtIHt1aW50NjR9IGFsZ29Ub0FkZCAtIGFtb3VudCB0aGlzIHZhbGlkYXRvcidzIHRvdGFsIHN0YWtlIGluY3JlYXNlZCB2aWEgcmV3YXJkcwovLyBAcGFyYW0ge3VpbnQ2NH0gcmV3YXJkVG9rZW5BbW91bnRSZXNlcnZlZCAtIGFtb3VudCB0aGlzIHZhbGlkYXRvcidzIHRvdGFsIHN0YWtlIGluY3JlYXNlZCB2aWEgcmV3YXJkcyAodGhhdCBzaG91bGQgYmUKLy8gQHBhcmFtIHt1aW50NjR9IHZhbGlkYXRvckNvbW1pc3Npb24gLSB0aGUgY29tbWlzc2lvbiBhbW91bnQgdGhlIHZhbGlkYXRvciB3YXMgcGFpZCwgaWYgYW55Ci8vIEBwYXJhbSB7dWludDY0fSBzYXR1cmF0ZWRCdXJuVG9GZWVTaW5rIC0gaWYgdGhlIHBvb2wgd2FzIGluIHNhdHVyYXRlZCBzdGF0ZSwgdGhlIGFtb3VudCBzZW50IGJhY2sgdG8gdGhlIGZlZSBzaW5rLgovLyBzZWVuIGFzICdhY2NvdW50ZWQgZm9yL3BlbmRpbmcgc3BlbnQnKQpzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzOgoJcHJvdG8gNSAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc5NAoJLy8gdGhpcy52ZXJpZnlQb29sS2V5Q2FsbGVyKHBvb2xLZXkpCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJY2FsbHN1YiB2ZXJpZnlQb29sS2V5Q2FsbGVyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc5NwoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzW3Bvb2xLZXkucG9vbElkIC0gMV0udG90YWxBbGdvU3Rha2VkICs9IGFsZ29Ub0FkZAoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAxMSAvLyAgaGVhZE9mZnNldAoJKwoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAxMSAvLyAgaGVhZE9mZnNldAoJKwoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTIgLy8gYWxnb1RvQWRkOiB1aW50NjQKCSsKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc5OAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnRvdGFsQWxnb1N0YWtlZCArPSBhbGdvVG9BZGQKCWludGMgMTIgLy8gMjUyCglkdXAKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC0yIC8vIGFsZ29Ub0FkZDogdWludDY0CgkrCglpdG9iCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3OTkKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5zdGF0ZS5yZXdhcmRUb2tlbkhlbGRCYWNrICs9IHJld2FyZFRva2VuQW1vdW50UmVzZXJ2ZWQKCWludGMgMTMgLy8gMjYwCglkdXAKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC0zIC8vIHJld2FyZFRva2VuQW1vdW50UmVzZXJ2ZWQ6IHVpbnQ2NAoJKwoJaXRvYgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODAxCgkvLyB0aGlzLnRvdGFsQWxnb1N0YWtlZC52YWx1ZSArPSBhbGdvVG9BZGQKCWJ5dGVjIDQgLy8gICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0yIC8vIGFsZ29Ub0FkZDogdWludDY0CgkrCglieXRlYyA0IC8vICAic3Rha2VkIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODA0CgkvLyB0aGlzLnJldmVyaWZ5TkZET3duZXJzaGlwKHBvb2xLZXkuaWQpCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWNhbGxzdWIgcmV2ZXJpZnlORkRPd25lcnNoaXAKCXJldHN1YgoKLy8gc3Rha2VSZW1vdmVkKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYWRkcmVzcyx1aW50NjQsdWludDY0LGJvb2wpdm9pZAoqYWJpX3JvdXRlX3N0YWtlUmVtb3ZlZDoKCS8vIHN0YWtlclJlbW92ZWQ6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDUKCWR1cAoJbGVuCglpbnRjIDEgLy8gMQoJPT0KCgkvLyBhcmd1bWVudCAwIChzdGFrZXJSZW1vdmVkKSBmb3Igc3Rha2VSZW1vdmVkIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludGMgMCAvLyAwCglnZXRiaXQKCgkvLyByZXdhcmRSZW1vdmVkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDQKCWJ0b2kKCgkvLyBhbW91bnRSZW1vdmVkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMyAoc3Rha2VyKSBmb3Igc3Rha2VSZW1vdmVkIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBwb29sS2V5OiAodWludDY0LHVpbnQ2NCx1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50YyAzIC8vIDI0Cgk9PQoKCS8vIGFyZ3VtZW50IDQgKHBvb2xLZXkpIGZvciBzdGFrZVJlbW92ZWQgbXVzdCBiZSBhICh1aW50NjQsdWludDY0LHVpbnQ2NCkKCWFzc2VydAoKCS8vIGV4ZWN1dGUgc3Rha2VSZW1vdmVkKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYWRkcmVzcyx1aW50NjQsdWludDY0LGJvb2wpdm9pZAoJY2FsbHN1YiBzdGFrZVJlbW92ZWQKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHN0YWtlUmVtb3ZlZChwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5LCBzdGFrZXI6IEFkZHJlc3MsIGFtb3VudFJlbW92ZWQ6IHVpbnQ2NCwgcmV3YXJkUmVtb3ZlZDogdWludDY0LCBzdGFrZXJSZW1vdmVkOiBib29sZWFuKTogdm9pZAovLwovLyBzdGFrZVJlbW92ZWQgaXMgY2FsbGVkIGJ5IFN0YWtpbmcgcG9vbHMgdG8gaW5mb3JtIHRoZSB2YWxpZGF0b3IgKHVzKSB0aGF0IGEgcGFydGljdWxhciBhbW91bnQgb2YgdG90YWwgc3Rha2UgaGFzIGJlZW4gcmVtb3ZlZAovLyBmcm9tIHRoZSBzcGVjaWZpZWQgcG9vbC4gIFRoaXMgaXMgdXNlZCB0byB1cGRhdGUgdGhlIHN0YXRzIHdlIGhhdmUgaW4gb3VyIFBvb2xJbmZvIHN0b3JhZ2UuCi8vIElmIGFueSBhbW91bnQgb2YgcmV3YXJkUmVtb3ZlZCBpcyBzcGVjaWZpZWQsIHRoZW4gdGhhdCBhbW91bnQgb2YgcmV3YXJkIGlzIHNlbnQgdG8gdGhlIHVzZQovLyBUaGUgY2FsbGluZyBBcHAgaWQgaXMgdmFsaWRhdGVkIGFnYWluc3Qgb3VyIHBvb2wgbGlzdCBhcyB3ZWxsLgovLwovLyBAcGFyYW0ge1ZhbGlkYXRvclBvb2xLZXl9IHBvb2xLZXkgY2FsbGluZyB1cyBmcm9tIHdoaWNoIHN0YWtlIHdhcyByZW1vdmVkCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyCi8vIEBwYXJhbSB7dWludDY0fSBhbW91bnRSZW1vdmVkIC0gYWxnbyBhbW91bnQgcmVtb3ZlZAovLyBAcGFyYW0ge3VpbnQ2NH0gcmV3YXJkUmVtb3ZlZCAtIGlmIGFwcGxpY2FibGUsIGFtb3VudCBvZiB0b2tlbiByZXdhcmQgcmVtb3ZlZCAoYnkgcG9vbCAxIGNhbGxlcikgb3IgVE8gcmVtb3ZlIGFuZCBwYXkgb3V0ICh2aWEgcG9vbCAxIGZyb20gZGlmZmVyZW50IHBvb2wgY2FsbGVyKQovLyBAcGFyYW0ge2Jvb2xlYW59IHN0YWtlclJlbW92ZWQKc3Rha2VSZW1vdmVkOgoJcHJvdG8gNSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cG4gMwoKCS8vICppZjE1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjgzNgoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAzMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludGMgMjggLy8gMzAwCgk8CglieiAqaWYxNV9lbmQKCgkvLyAqaWYxNV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODM3CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnRjIDcgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZWMgOCAvLyAgI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50YyAyNiAvLyAgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMTVfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjgzOQoJLy8gdGhpcy52ZXJpZnlQb29sS2V5Q2FsbGVyKHBvb2xLZXkpCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJY2FsbHN1YiB2ZXJpZnlQb29sS2V5Q2FsbGVyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg0MwoJLy8gYXNzZXJ0KGFtb3VudFJlbW92ZWQgPiAwIHx8IHJld2FyZFJlbW92ZWQgPiAwLCAnc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGlmIGFsZ28gb3IgcmV3YXJkIHdhcyByZW1vdmVkJykKCWZyYW1lX2RpZyAtMyAvLyBhbW91bnRSZW1vdmVkOiB1aW50NjQKCWludGMgMCAvLyAwCgk+CglkdXAKCWJueiAqc2tpcF9vcjIKCWZyYW1lX2RpZyAtNCAvLyByZXdhcmRSZW1vdmVkOiB1aW50NjQKCWludGMgMCAvLyAwCgk+Cgl8fAoKKnNraXBfb3IyOgoJLy8gc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGlmIGFsZ28gb3IgcmV3YXJkIHdhcyByZW1vdmVkCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODQ2CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXS50b3RhbEFsZ29TdGFrZWQgLT0gYW1vdW50UmVtb3ZlZAoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAxMSAvLyAgaGVhZE9mZnNldAoJKwoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAxMSAvLyAgaGVhZE9mZnNldAoJKwoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTMgLy8gYW1vdW50UmVtb3ZlZDogdWludDY0CgktCglpdG9iCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NDcKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5zdGF0ZS50b3RhbEFsZ29TdGFrZWQgLT0gYW1vdW50UmVtb3ZlZAoJaW50YyAxMiAvLyAyNTIKCWR1cAoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTMgLy8gYW1vdW50UmVtb3ZlZDogdWludDY0CgktCglpdG9iCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NDgKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlIC09IGFtb3VudFJlbW92ZWQKCWJ5dGVjIDQgLy8gICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFJlbW92ZWQ6IHVpbnQ2NAoJLQoJYnl0ZWMgNCAvLyAgInN0YWtlZCIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gKmlmMTZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODUwCgkvLyByZXdhcmRSZW1vdmVkID4gMAoJZnJhbWVfZGlnIC00IC8vIHJld2FyZFJlbW92ZWQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT4KCWJ6ICppZjE2X2Vsc2UKCgkvLyAqaWYxNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODUxCgkvLyByZXdhcmRUb2tlbklEID0gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLmNvbmZpZy5yZXdhcmRUb2tlbklkCglpbnRjIDM3IC8vIDE1MwoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDAgLy8gcmV3YXJkVG9rZW5JRDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg1MgoJLy8gYXNzZXJ0KHJld2FyZFRva2VuSUQgIT09IDAsICJyZXdhcmRSZW1vdmVkIGNhbid0IGJlIHNldCBpZiB2YWxpZGF0b3IgZG9lc24ndCBoYXZlIHJld2FyZCB0b2tlbiEiKQoJZnJhbWVfZGlnIDAgLy8gcmV3YXJkVG9rZW5JRDogdWludDY0CglpbnRjIDAgLy8gMAoJIT0KCgkvLyByZXdhcmRSZW1vdmVkIGNhbid0IGJlIHNldCBpZiB2YWxpZGF0b3IgZG9lc24ndCBoYXZlIHJld2FyZCB0b2tlbiEKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NTMKCS8vIGFzc2VydCgKCS8vICAgICAgICAgdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnJld2FyZFRva2VuSGVsZEJhY2sgPj0gcmV3YXJkUmVtb3ZlZCwKCS8vICAgICAgICAgJ3Jld2FyZCBiZWluZyByZW1vdmVkIG11c3QgYmUgY292ZXJlZCBieSBob2xkIGJhY2sgYW1vdW50JwoJLy8gICAgICAgKQoJaW50YyAxMyAvLyAyNjAKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC00IC8vIHJld2FyZFJlbW92ZWQ6IHVpbnQ2NAoJPj0KCgkvLyByZXdhcmQgYmVpbmcgcmVtb3ZlZCBtdXN0IGJlIGNvdmVyZWQgYnkgaG9sZCBiYWNrIGFtb3VudAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg1OQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnJld2FyZFRva2VuSGVsZEJhY2sgLT0gcmV3YXJkUmVtb3ZlZAoJaW50YyAxMyAvLyAyNjAKCWR1cAoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTQgLy8gcmV3YXJkUmVtb3ZlZDogdWludDY0CgktCglpdG9iCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vICppZjE3X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg2NAoJLy8gcG9vbEtleS5wb29sSWQgIT09IDEKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50YyAxIC8vIDEKCSE9CglieiAqaWYxN19lbmQKCgkvLyAqaWYxN19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODY1CgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgU3Rha2luZ1Bvb2wucHJvdG90eXBlLnBheVRva2VuUmV3YXJkPih7CgkvLyAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbMF0ucG9vbEFwcElkKSwKCS8vICAgICAgICAgICBtZXRob2RBcmdzOiBbc3Rha2VyLCByZXdhcmRUb2tlbklELCByZXdhcmRSZW1vdmVkXSwKCS8vICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZWMgMTQgLy8gIG1ldGhvZCAicGF5VG9rZW5SZXdhcmQoYWRkcmVzcyx1aW50NjQsdWludDY0KXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NjYKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzWzBdLnBvb2xBcHBJZCkKCWludGMgNiAvLyAyNjgKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg2NwoJLy8gbWV0aG9kQXJnczogW3N0YWtlciwgcmV3YXJkVG9rZW5JRCwgcmV3YXJkUmVtb3ZlZF0KCWZyYW1lX2RpZyAtMiAvLyBzdGFrZXI6IEFkZHJlc3MKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMCAvLyByZXdhcmRUb2tlbklEOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTQgLy8gcmV3YXJkUmVtb3ZlZDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCippZjE3X2VuZDoKCWIgKmlmMTZfZW5kCgoqaWYxNl9lbHNlOgoKKmlmMTZfZW5kOgoJLy8gKmlmMThfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODkyCgkvLyBzdGFrZXJSZW1vdmVkCglmcmFtZV9kaWcgLTUgLy8gc3Rha2VyUmVtb3ZlZDogYm9vbGVhbgoJYnogKmlmMThfZW5kCgoJLy8gKmlmMThfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg5NAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzW3Bvb2xLZXkucG9vbElkIC0gMV0udG90YWxTdGFrZXJzIC09IDEKCWludGMgNiAvLyAgaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnRjIDEgLy8gMQoJLQoJaW50YyA1IC8vIDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludGMgMiAvLyAgaGVhZE9mZnNldAoJKwoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAyIC8vICBoZWFkT2Zmc2V0CgkrCglpbnRjIDEwIC8vIDIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglpbnRjIDEgLy8gMQoJLQoJaXRvYgoJZXh0cmFjdCA2IDIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg5NgoJLy8gcmVtb3ZlUmV0ID0gdGhpcy5yZW1vdmVGcm9tU3Rha2VyUG9vbFNldChzdGFrZXIsIDxWYWxpZGF0b3JQb29sS2V5PnsKCS8vICAgICAgICAgaWQ6IHBvb2xLZXkuaWQsCgkvLyAgICAgICAgIHBvb2xJZDogcG9vbEtleS5wb29sSWQsCgkvLyAgICAgICAgIHBvb2xBcHBJZDogcG9vbEtleS5wb29sQXBwSWQsCgkvLyAgICAgICB9KQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJaXRvYgoJY29uY2F0CglmcmFtZV9kaWcgLTIgLy8gc3Rha2VyOiBBZGRyZXNzCgljYWxsc3ViIHJlbW92ZUZyb21TdGFrZXJQb29sU2V0CglmcmFtZV9idXJ5IDEgLy8gcmVtb3ZlUmV0OiAoYm9vbCxib29sKQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5MDEKCS8vIHN0YWtlck91dE9mVGhpc1ZhbGlkYXRvciA9IHJlbW92ZVJldFswXQoJZnJhbWVfZGlnIDEgLy8gcmVtb3ZlUmV0OiAoYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludGMgMCAvLyAwCglnZXRiaXQKCWZyYW1lX2J1cnkgMiAvLyBzdGFrZXJPdXRPZlRoaXNWYWxpZGF0b3I6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTAyCgkvLyBzdGFrZXJPdXRPZlByb3RvY29sID0gcmVtb3ZlUmV0WzFdCglmcmFtZV9kaWcgMSAvLyByZW1vdmVSZXQ6IChib29sLGJvb2wpCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50YyAxIC8vIDEKCWdldGJpdAoJZnJhbWVfYnVyeSAzIC8vIHN0YWtlck91dE9mUHJvdG9jb2w6IGJvb2wKCgkvLyAqaWYxOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5MDQKCS8vIHN0YWtlck91dE9mVGhpc1ZhbGlkYXRvcgoJZnJhbWVfZGlnIDIgLy8gc3Rha2VyT3V0T2ZUaGlzVmFsaWRhdG9yOiBib29sCglieiAqaWYxOV9lbmQKCgkvLyAqaWYxOV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTA1CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUuc3RhdGUudG90YWxTdGFrZXJzIC09IDEKCWludGMgMjMgLy8gMjQ0CglkdXAKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJaW50YyAxIC8vIDEKCS0KCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoqaWYxOV9lbmQ6CgkvLyAqaWYyMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5MDgKCS8vIHN0YWtlck91dE9mUHJvdG9jb2wKCWZyYW1lX2RpZyAzIC8vIHN0YWtlck91dE9mUHJvdG9jb2w6IGJvb2wKCWJ6ICppZjIwX2VuZAoKCS8vICppZjIwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5MDkKCS8vIHRoaXMubnVtU3Rha2Vycy52YWx1ZSAtPSAxCglieXRlYyA3IC8vICAibnVtU3Rha2VycyIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJLQoJYnl0ZWMgNyAvLyAgIm51bVN0YWtlcnMiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKKmlmMjBfZW5kOgoKKmlmMThfZW5kOgoJcmV0c3ViCgovLyBmaW5kUG9vbEZvclN0YWtlcih1aW50NjQsYWRkcmVzcyx1aW50NjQpKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoqYWJpX3JvdXRlX2ZpbmRQb29sRm9yU3Rha2VyOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyBhbW91bnRUb1N0YWtlOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMSAoc3Rha2VyKSBmb3IgZmluZFBvb2xGb3JTdGFrZXIgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGZpbmRQb29sRm9yU3Rha2VyKHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCkoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCgljYWxsc3ViIGZpbmRQb29sRm9yU3Rha2VyCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZmluZFBvb2xGb3JTdGFrZXIodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgc3Rha2VyOiBBZGRyZXNzLCBhbW91bnRUb1N0YWtlOiB1aW50NjQpOiBbVmFsaWRhdG9yUG9vbEtleSwgYm9vbGVhbiwgYm9vbGVhbl0KLy8KLy8gRmluZHMgdGhlIHBvb2wgZm9yIGEgc3Rha2VyIGJhc2VkIG9uIHRoZSBwcm92aWRlZCB2YWxpZGF0b3IgaWQsIHN0YWtlciBhZGRyZXNzLCBhbmQgYW1vdW50IHRvIHN0YWtlLgovLyBGaXJzdCBjaGVja3MgdGhlIHN0YWtlcnMgJ2FscmVhZHkgc3Rha2VkIGxpc3QnIGZvciB0aGUgdmFsaWRhdG9yIHByZWZlcnJpbmcgdGhvc2UgKGFkZGluZyBpZiBwb3NzaWJsZSkgdGhlbiBhZGRzCi8vIHRvIG5ldyBwb29sIGlmIG5lY2Vzc2FyeS4KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHN0YWtlci4KLy8gQHBhcmFtIHt1aW50NjR9IGFtb3VudFRvU3Rha2UgLSBUaGUgYW1vdW50IHRvIHN0YWtlLgovLyBAcmV0dXJucyB7VmFsaWRhdG9yUG9vbEtleSwgYm9vbGVhbiwgYm9vbGVhbn0gLSBUaGUgcG9vbCBmb3IgdGhlIHN0YWtlciwgdHJ1ZS9mYWxzZSBvbiB3aGV0aGVyIHRoZSBzdGFrZXIgaXMgJ25ldycKLy8gdG8gdGhpcyBWQUxJREFUT1IsIGFuZCB0cnVlL2ZhbHNlIGlmIHN0YWtlciBpcyBuZXcgdG8gdGhlIHByb3RvY29sLgpmaW5kUG9vbEZvclN0YWtlcjoKCXByb3RvIDMgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAxIC8vIDB4CglkdXBuIDcKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTMwCgkvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yID0gdHJ1ZQoJaW50YyAxIC8vIDEKCWZyYW1lX2J1cnkgMCAvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjkzMQoJLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sID0gdHJ1ZQoJaW50YyAxIC8vIDEKCWZyYW1lX2J1cnkgMSAvLyBpc05ld1N0YWtlclRvUHJvdG9jb2w6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTM5CgkvLyBtYXhQZXJQb29sID0gdGhpcy5nZXRDdXJNYXhTdGFrZVBlclBvb2wodmFsaWRhdG9ySWQpCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJY2FsbHN1YiBnZXRDdXJNYXhTdGFrZVBlclBvb2wKCWZyYW1lX2J1cnkgMiAvLyBtYXhQZXJQb29sOiB1aW50NjQKCgkvLyAqaWYyMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NDIKCS8vIHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLmV4aXN0cwoJYnl0ZWMgMyAvLyAgInNwcyIKCWZyYW1lX2RpZyAtMiAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCglieiAqaWYyMV9lbmQKCgkvLyAqaWYyMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTQzCgkvLyBwb29sU2V0ID0gY2xvbmUodGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUpCglieXRlYyAzIC8vICAic3BzIgoJZnJhbWVfZGlnIC0yIC8vIHN0YWtlcjogQWRkcmVzcwoJY29uY2F0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZQoJYXNzZXJ0CglmcmFtZV9idXJ5IDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NDQKCS8vIGFzc2VydCh2YWxpZGF0b3JJZCAhPT0gMCkKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpbnRjIDAgLy8gMAoJIT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NDUKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgcG9vbFNldC5sZW5ndGg7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDQgLy8gaTogdWludDY0CgoqZm9yXzM6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTQ1CgkvLyBpIDwgcG9vbFNldC5sZW5ndGgKCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50YyA3IC8vIDYKCTwKCWJ6ICpmb3JfM19lbmQKCgkvLyAqaWYyMl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NDYKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgMzAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglpbnRjIDI4IC8vIDMwMAoJPAoJYnogKmlmMjJfZW5kCgoJLy8gKmlmMjJfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0NwoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGVjIDggLy8gICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludGMgMjYgLy8gIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjIyX2VuZDoKCS8vICppZjIzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0OQoJLy8gcG9vbFNldFtpXS5pZCA9PT0gMAoJZnJhbWVfZGlnIDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAwIC8vIDAKCSsKCWludGMgMiAvLyA4CglleHRyYWN0MwoJYnRvaQoJaW50YyAwIC8vIDAKCT09CglieiAqaWYyM19lbmQKCgkvLyAqaWYyM19jb25zZXF1ZW50CgliICpmb3JfM19jb250aW51ZQoKKmlmMjNfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk1MgoJLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sID0gZmFsc2UKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDEgLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sOiBib29sCgoJLy8gKmlmMjRfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTUzCgkvLyBwb29sU2V0W2ldLmlkID09PSB2YWxpZGF0b3JJZAoJZnJhbWVfZGlnIDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAwIC8vIDAKCSsKCWludGMgMiAvLyA4CglleHRyYWN0MwoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCT09CglieiAqaWYyNF9lbmQKCgkvLyAqaWYyNF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTU1CgkvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yID0gZmFsc2UKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDAgLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbAoKCS8vICppZjI1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk1NwoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5wb29sc1twb29sU2V0W2ldLnBvb2xJZCAtIDFdLnRvdGFsQWxnb1N0YWtlZCArIGFtb3VudFRvU3Rha2UgPD0KCS8vICAgICAgICAgICAgIG1heFBlclBvb2wKCWludGMgNiAvLyAgaGVhZE9mZnNldAoJZnJhbWVfZGlnIDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAyIC8vICBoZWFkT2Zmc2V0CgkrCglpbnRjIDIgLy8gOAoJZXh0cmFjdDMKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAxMSAvLyAgaGVhZE9mZnNldAoJKwoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMyAvLyBhbW91bnRUb1N0YWtlOiB1aW50NjQKCSsKCWZyYW1lX2RpZyAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoJPD0KCWJ6ICppZjI1X2VuZAoKCS8vICppZjI1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NjAKCS8vIHJldHVybiBbcG9vbFNldFtpXSwgaXNOZXdTdGFrZXJUb1ZhbGlkYXRvciwgaXNOZXdTdGFrZXJUb1Byb3RvY29sXTsKCWZyYW1lX2RpZyAzIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMyAvLyAyNAoJZXh0cmFjdDMKCWJ5dGVjIDUgLy8gMHgwMAoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyAwIC8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2wKCXNldGJpdAoJaW50YyAxIC8vIDEKCWZyYW1lX2RpZyAxIC8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbAoJc2V0Yml0Cgljb25jYXQKCWIgKmZpbmRQb29sRm9yU3Rha2VyKnJldHVybgoKKmlmMjVfZW5kOgoKKmlmMjRfZW5kOgoKKmZvcl8zX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0NQoJLy8gaSArPSAxCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDQgLy8gaTogdWludDY0CgliICpmb3JfMwoKKmZvcl8zX2VuZDoKCippZjIxX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NjcKCS8vIGFzc2VydCgKCS8vICAgICAgIGFtb3VudFRvU3Rha2UgPj0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubWluRW50cnlTdGFrZSwKCS8vICAgICAgICdtdXN0IHN0YWtlIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGZvciB0aGlzIHBvb2wnCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFRvU3Rha2U6IHVpbnQ2NAoJaW50YyAzOCAvLyAyMDkKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCgk+PQoKCS8vIG11c3Qgc3Rha2UgYXQgbGVhc3QgdGhlIG1pbmltdW0gZm9yIHRoaXMgcG9vbAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk3MwoJLy8gcG9vbHMgPSBjbG9uZSh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzKQoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglpbnRjIDI5IC8vIDQzMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSA1IC8vIHBvb2xzOiAodWludDY0LHVpbnQxNix1aW50NjQpWzI0XQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NzQKCS8vIGN1ck51bVBvb2xzID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZS5udW1Qb29scyBhcyB1aW50NjQKCWludGMgOCAvLyAyNDIKCWludGMgMTAgLy8gMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSA2IC8vIGN1ck51bVBvb2xzOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTc1CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IGN1ck51bVBvb2xzOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSA3IC8vIGk6IHVpbnQ2NAoKKmZvcl80OgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk3NQoJLy8gaSA8IGN1ck51bVBvb2xzCglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyA2IC8vIGN1ck51bVBvb2xzOiB1aW50NjQKCTwKCWJ6ICpmb3JfNF9lbmQKCgkvLyAqaWYyNl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NzYKCS8vIHBvb2xzW2ldLnRvdGFsQWxnb1N0YWtlZCArIGFtb3VudFRvU3Rha2UgPD0gbWF4UGVyUG9vbAoJZnJhbWVfZGlnIDUgLy8gcG9vbHM6ICh1aW50NjQsdWludDE2LHVpbnQ2NClbMjRdCglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWludGMgNSAvLyAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDExIC8vICBoZWFkT2Zmc2V0CgkrCglpbnRjIDIgLy8gOAoJZXh0cmFjdDMKCWJ0b2kKCWZyYW1lX2RpZyAtMyAvLyBhbW91bnRUb1N0YWtlOiB1aW50NjQKCSsKCWZyYW1lX2RpZyAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoJPD0KCWJ6ICppZjI2X2VuZAoKCS8vICppZjI2X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NzcKCS8vIHJldHVybiBbCgkvLyAgICAgICAgICAgeyBpZDogdmFsaWRhdG9ySWQsIHBvb2xJZDogaSArIDEsIHBvb2xBcHBJZDogcG9vbHNbaV0ucG9vbEFwcElkIH0sCgkvLyAgICAgICAgICAgaXNOZXdTdGFrZXJUb1ZhbGlkYXRvciwKCS8vICAgICAgICAgICBpc05ld1N0YWtlclRvUHJvdG9jb2wsCgkvLyAgICAgICAgIF07CglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJaXRvYgoJY29uY2F0CglmcmFtZV9kaWcgNSAvLyBwb29sczogKHVpbnQ2NCx1aW50MTYsdWludDY0KVsyNF0KCWZyYW1lX2RpZyA3IC8vIGk6IHVpbnQ2NAoJaW50YyA1IC8vIDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMCAvLyAwCgkrCglpbnRjIDIgLy8gOAoJZXh0cmFjdDMKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJYnl0ZWMgNSAvLyAweDAwCglpbnRjIDAgLy8gMAoJZnJhbWVfZGlnIDAgLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbAoJc2V0Yml0CglpbnRjIDEgLy8gMQoJZnJhbWVfZGlnIDEgLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sOiBib29sCglzZXRiaXQKCWNvbmNhdAoJYiAqZmluZFBvb2xGb3JTdGFrZXIqcmV0dXJuCgoqaWYyNl9lbmQ6CgoqZm9yXzRfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTc1CgkvLyBpICs9IDEKCWZyYW1lX2RpZyA3IC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgNyAvLyBpOiB1aW50NjQKCWIgKmZvcl80CgoqZm9yXzRfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk4NQoJLy8gcmV0dXJuIFt7IGlkOiB2YWxpZGF0b3JJZCwgcG9vbElkOiAwLCBwb29sQXBwSWQ6IDAgfSwgaXNOZXdTdGFrZXJUb1ZhbGlkYXRvciwgaXNOZXdTdGFrZXJUb1Byb3RvY29sXTsKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCglieXRlYyAxMCAvLyAweDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJYnl0ZWMgMTAgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWJ5dGVjIDUgLy8gMHgwMAoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyAwIC8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2wKCXNldGJpdAoJaW50YyAxIC8vIDEKCWZyYW1lX2RpZyAxIC8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbAoJc2V0Yml0Cgljb25jYXQKCipmaW5kUG9vbEZvclN0YWtlcipyZXR1cm46CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA3CglyZXRzdWIKCi8vIG1vdmVQb29sVG9Ob2RlKHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9tb3ZlUG9vbFRvTm9kZToKCS8vIG5vZGVOdW06IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIHBvb2xBcHBJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgbW92ZVBvb2xUb05vZGUodWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBtb3ZlUG9vbFRvTm9kZQoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gbW92ZVBvb2xUb05vZGUodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgcG9vbEFwcElkOiB1aW50NjQsIG5vZGVOdW06IHVpbnQ2NCk6IHZvaWQKLy8KLy8gRmluZCB0aGUgc3BlY2lmaWVkIHBvb2wgKGluIGFueSBub2RlIG51bWJlcikgYW5kIG1vdmUgaXQgdG8gdGhlIHNwZWNpZmllZCBub2RlLgovLyBUaGUgcG9vbCBhY2NvdW50IGlzIGZvcmNlZCBvZmZsaW5lIGlmIG1vdmVkIHNvIHByaW9yIG5vZGUgd2lsbCBzdGlsbCBydW4gZm9yIDMyMCByb3VuZHMgYnV0Ci8vIG5ldyBrZXkgZ29lcyBvbmxpbmUgb24gbmV3IG5vZGUgc29vbiBhZnRlciAoMzIwIHJvdW5kcyBhZnRlciBpdCBnb2VzIG9ubGluZSkKLy8gTm8tb3AgaWYgc3VjY2VzcywgYXNzZXJ0cyBpZiBub3QgZm91bmQgb3IgY2FuJ3QgbW92ZSAgKG5vIHNwYWNlIGluIHRhcmdldCkKLy8gWyBPTkxZIE9XTkVSIE9SIE1BTkFHRVIgQ0FOIENIQU5HRSBdCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yLgovLyBAcGFyYW0ge3VpbnQ2NH0gcG9vbEFwcElkCi8vIEBwYXJhbSB7dWludDY0fSBub2RlTnVtCm1vdmVQb29sVG9Ob2RlOgoJcHJvdG8gMyAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDAxCgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm93bmVyIHx8CgkvLyAgICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubWFuYWdlciwKCS8vICAgICAgICdjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3InCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJaW50YyAyIC8vIDgKCWludGMgNCAvLyAzMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCWR1cAoJYm56ICpza2lwX29yMwoJdHhuIFNlbmRlcgoJaW50YyAxOCAvLyA0MAoJaW50YyA0IC8vIDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoJfHwKCipza2lwX29yMzoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMDcKCS8vIG5vZGVQb29sQXNzaWdubWVudHMgPSBjbG9uZSh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLm5vZGVQb29sQXNzaWdubWVudHMpCglpbnRjIDE3IC8vICBoZWFkT2Zmc2V0CglpbnRjIDIyIC8vIDE5MgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAwIC8vIG5vZGVQb29sQXNzaWdubWVudHM6ICgodWludDY0WzNdKVs4XSkKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTAwOAoJLy8gYXNzZXJ0KG5vZGVOdW0gPj0gMSAmJiBub2RlTnVtIDw9IE1BWF9OT0RFUywgJ25vZGUgbnVtYmVyIG91dCBvZiBhbGxvd2FibGUgcmFuZ2UnKQoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJaW50YyAxIC8vIDEKCT49CglkdXAKCWJ6ICpza2lwX2FuZDEKCWZyYW1lX2RpZyAtMyAvLyBub2RlTnVtOiB1aW50NjQKCWludGMgMiAvLyA4Cgk8PQoJJiYKCipza2lwX2FuZDE6CgkvLyBub2RlIG51bWJlciBvdXQgb2YgYWxsb3dhYmxlIHJhbmdlCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTAxMAoJLy8gZm9yIChsZXQgc3JjTm9kZUlkeCA9IDA7IHNyY05vZGVJZHggPCBNQVhfTk9ERVM7IHNyY05vZGVJZHggKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDEgLy8gc3JjTm9kZUlkeDogdWludDY0CgoqZm9yXzU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTAxMAoJLy8gc3JjTm9kZUlkeCA8IE1BWF9OT0RFUwoJZnJhbWVfZGlnIDEgLy8gc3JjTm9kZUlkeDogdWludDY0CglpbnRjIDIgLy8gOAoJPAoJYnogKmZvcl81X2VuZAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDExCgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IE1BWF9QT09MU19QRVJfTk9ERTsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCipmb3JfNjoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDExCgkvLyBpIDwgTUFYX1BPT0xTX1BFUl9OT0RFCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgOSAvLyAzCgk8CglieiAqZm9yXzZfZW5kCgoJLy8gKmlmMjdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTAxMgoJLy8gbm9kZVBvb2xBc3NpZ25tZW50cy5ub2Rlc1tzcmNOb2RlSWR4XS5wb29sQXBwSWRzW2ldID09PSBwb29sQXBwSWQKCWZyYW1lX2RpZyAwIC8vIG5vZGVQb29sQXNzaWdubWVudHM6ICgodWludDY0WzNdKVs4XSkKCWludGMgMCAvLyAwCglmcmFtZV9kaWcgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDAgLy8gMAoJKwoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDIgLy8gOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDIgLy8gOAoJZXh0cmFjdDMKCWJ0b2kKCWZyYW1lX2RpZyAtMiAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoJPT0KCWJ6ICppZjI3X2VuZAoKCS8vICppZjI3X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDEzCgkvLyBhc3NlcnQobm9kZU51bSAtIDEgIT09IHNyY05vZGVJZHgsICJjYW4ndCBtb3ZlIHRvIHNhbWUgbm9kZSIpCglmcmFtZV9kaWcgLTMgLy8gbm9kZU51bTogdWludDY0CglpbnRjIDEgLy8gMQoJLQoJZnJhbWVfZGlnIDEgLy8gc3JjTm9kZUlkeDogdWludDY0CgkhPQoKCS8vIGNhbid0IG1vdmUgdG8gc2FtZSBub2RlCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTAxNQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5ub2RlUG9vbEFzc2lnbm1lbnRzLm5vZGVzW3NyY05vZGVJZHhdLnBvb2xBcHBJZHNbaV0gPSAwCglpbnRjIDE3IC8vIDkwMAoJZnJhbWVfZGlnIDEgLy8gc3JjTm9kZUlkeDogdWludDY0CglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAwIC8vIDAKCSsKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAyIC8vIDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJYnl0ZWMgMTAgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTgKCS8vIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBTdGFraW5nUG9vbC5wcm90b3R5cGUuZ29PZmZsaW5lPih7CgkvLyAgICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCksCgkvLyAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJcHVzaGJ5dGVzIDB4NTFlZjNiMjEgLy8gbWV0aG9kICJnb09mZmxpbmUoKXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDE5CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkKCWZyYW1lX2RpZyAtMiAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDIzCgkvLyB0aGlzLmFkZFBvb2xUb05vZGUodmFsaWRhdG9ySWQsIHBvb2xBcHBJZCwgbm9kZU51bSkKCWZyYW1lX2RpZyAtMyAvLyBub2RlTnVtOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWNhbGxzdWIgYWRkUG9vbFRvTm9kZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDI0CgkvLyByZXR1cm47CglyZXRzdWIKCippZjI3X2VuZDoKCipmb3JfNl9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDExCgkvLyBpICs9IDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl82CgoqZm9yXzZfZW5kOgoKKmZvcl81X2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTAKCS8vIHNyY05vZGVJZHggKz0gMQoJZnJhbWVfZGlnIDEgLy8gc3JjTm9kZUlkeDogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAxIC8vIHNyY05vZGVJZHg6IHVpbnQ2NAoJYiAqZm9yXzUKCipmb3JfNV9lbmQ6CgkvLyBjb3VsZG4ndCBmaW5kIHBvb2wgYXBwIGlkIGluIG5vZGVzIHRvIG1vdmUKCWVycgoJcmV0c3ViCgovLyBlbXB0eVRva2VuUmV3YXJkcyh1aW50NjQsYWRkcmVzcyl1aW50NjQKKmFiaV9yb3V0ZV9lbXB0eVRva2VuUmV3YXJkczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMiAvLyAweDE1MWY3Yzc1CgoJLy8gcmVjZWl2ZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMCAocmVjZWl2ZXIpIGZvciBlbXB0eVRva2VuUmV3YXJkcyBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZW1wdHlUb2tlblJld2FyZHModWludDY0LGFkZHJlc3MpdWludDY0CgljYWxsc3ViIGVtcHR5VG9rZW5SZXdhcmRzCglpdG9iCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZW1wdHlUb2tlblJld2FyZHModmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgcmVjZWl2ZXI6IEFkZHJlc3MpOiB1aW50NjQKLy8KLy8gU2VuZHMgdGhlIHJld2FyZCB0b2tlbnMgaGVsZCBpbiBwb29sIDEgdG8gc3BlY2lmaWVkIHJlY2VpdmVyLgovLyBUaGlzIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgYnkgdGhlIG93bmVyIHdoZW4gdGhleSB3YW50IHRvIGdldCByZXdhcmQgdG9rZW5zICdiYWNrJyB3aGljaCB0aGV5IHNlbnQgdG8KLy8gdGhlIGZpcnN0IHBvb2wgKGxpa2VseSBiZWNhdXNlIHZhbGlkYXRvciBpcyBzdW5zZXR0aW5nLiAgQW55IHRva2VucyBjdXJyZW50bHkgJ3Jlc2VydmVkJyBmb3Igc3Rha2VycyB0byBjbGFpbSB3aWxsCi8vIE5PVCBiZSBzZW50IGFzIHRoZXkgbXVzdCBiZSBoZWxkIGJhY2sgZm9yIHN0YWtlcnMgdG8gbGF0ZXIgY2xhaW0uCi8vIFsgT05MWSBPV05FUiBDQU4gQ0FMTF0KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7QWRkcmVzc30gcmVjZWl2ZXIgLSB0aGUgYWNjb3VudCB0byBzZW5kIHRoZSB0b2tlbnMgdG8gKG11c3QgYWxyZWFkeSBiZSBvcHRlZC1pbiB0byB0aGUgcmV3YXJkIHRva2VuKQovLyBAcmV0dXJucyB7dWludDY0fSB0aGUgYW1vdW50IG9mIHJld2FyZCB0b2tlbiBzZW50CmVtcHR5VG9rZW5SZXdhcmRzOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cG4gMwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDQzCgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm93bmVyLAoJLy8gICAgICAgJ2NhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXInCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJaW50YyAyIC8vIDgKCWludGMgNCAvLyAzMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTA0NwoJLy8gcmV3YXJkVG9rZW5JZCA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLnJld2FyZFRva2VuSWQKCWludGMgMzcgLy8gMTUzCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAwIC8vIHJld2FyZFRva2VuSWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDQ4CgkvLyByZXdhcmRUb2tlbkhlbGRCYWNrID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZS5yZXdhcmRUb2tlbkhlbGRCYWNrCglpbnRjIDEzIC8vIDI2MAoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMSAvLyByZXdhcmRUb2tlbkhlbGRCYWNrOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTA0OQoJLy8gYXNzZXJ0KHJld2FyZFRva2VuSWQgIT09IDAsICJ0aGlzIHZhbGlkYXRvciBkb2Vzbid0IGhhdmUgYSByZXdhcmQgdG9rZW4gZGVmaW5lZCIpCglmcmFtZV9kaWcgMCAvLyByZXdhcmRUb2tlbklkOiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoKCS8vIHRoaXMgdmFsaWRhdG9yIGRvZXNuJ3QgaGF2ZSBhIHJld2FyZCB0b2tlbiBkZWZpbmVkCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTA1MAoJLy8gcG9vbE9uZUFwcElkID0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzWzBdLnBvb2xBcHBJZCkKCWludGMgNiAvLyAyNjgKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDIgLy8gcG9vbE9uZUFwcElkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTA1MgoJLy8gdG9rZW5SZXdhcmRCYWwgPSBwb29sT25lQXBwSWQuYWRkcmVzcy5hc3NldEJhbGFuY2UoQXNzZXRJRC5mcm9tVWludDY0KHJld2FyZFRva2VuSWQpKSAtIHJld2FyZFRva2VuSGVsZEJhY2sKCWZyYW1lX2RpZyAyIC8vIHBvb2xPbmVBcHBJZDogdWludDY0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCWZyYW1lX2RpZyAwIC8vIHJld2FyZFRva2VuSWQ6IHVpbnQ2NAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAxIC8vIHJld2FyZFRva2VuSGVsZEJhY2s6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAzIC8vIHRva2VuUmV3YXJkQmFsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTA1NQoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFN0YWtpbmdQb29sLnByb3RvdHlwZS5wYXlUb2tlblJld2FyZD4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogcG9vbE9uZUFwcElkLAoJLy8gICAgICAgbWV0aG9kQXJnczogW3JlY2VpdmVyLCByZXdhcmRUb2tlbklkLCB0b2tlblJld2FyZEJhbF0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZWMgMTQgLy8gIG1ldGhvZCAicGF5VG9rZW5SZXdhcmQoYWRkcmVzcyx1aW50NjQsdWludDY0KXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDU2CgkvLyBhcHBsaWNhdGlvbklEOiBwb29sT25lQXBwSWQKCWZyYW1lX2RpZyAyIC8vIHBvb2xPbmVBcHBJZDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTA1NwoJLy8gbWV0aG9kQXJnczogW3JlY2VpdmVyLCByZXdhcmRUb2tlbklkLCB0b2tlblJld2FyZEJhbF0KCWZyYW1lX2RpZyAtMiAvLyByZWNlaXZlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAwIC8vIHJld2FyZFRva2VuSWQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAzIC8vIHRva2VuUmV3YXJkQmFsOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDU5CgkvLyBhc3NlcnQoCgkvLyAgICAgICBwb29sT25lQXBwSWQuYWRkcmVzcy5hc3NldEJhbGFuY2UoQXNzZXRJRC5mcm9tVWludDY0KHJld2FyZFRva2VuSWQpKSA9PT0gcmV3YXJkVG9rZW5IZWxkQmFjaywKCS8vICAgICAgICdiYWxhbmNlIG9mIHJlbWFpbmluZyByZXdhcmQgdG9rZW5zIHNob3VsZCBtYXRjaCB0aGUgaGVsZCBiYWNrIGFtb3VudCcKCS8vICAgICApCglmcmFtZV9kaWcgMiAvLyBwb29sT25lQXBwSWQ6IHVpbnQ2NAoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCglmcmFtZV9kaWcgMCAvLyByZXdhcmRUb2tlbklkOiB1aW50NjQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgMSAvLyByZXdhcmRUb2tlbkhlbGRCYWNrOiB1aW50NjQKCT09CgoJLy8gYmFsYW5jZSBvZiByZW1haW5pbmcgcmV3YXJkIHRva2VucyBzaG91bGQgbWF0Y2ggdGhlIGhlbGQgYmFjayBhbW91bnQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDYzCgkvLyByZXR1cm4gdG9rZW5SZXdhcmRCYWw7CglmcmFtZV9kaWcgMyAvLyB0b2tlblJld2FyZEJhbDogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMwoJcmV0c3ViCgovLyB2ZXJpZnlQb29sS2V5Q2FsbGVyKHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkpOiB2b2lkCi8vCi8vIExvZ3MgdGhlIGFkZGl0aW9uIG9mIGEgbmV3IHZhbGlkYXRvciB0byB0aGUgc3lzdGVtLCBpdHMgaW5pdGlhbCBvd25lciBhbmQgbWFuYWdlcgovLwovLwovLyB2ZXJpZnlQb29sS2V5Q2FsbGVyIHZlcmlmaWVzIHRoZSBwYXNzZWQgaW4ga2V5IChmcm9tIGEgc3Rha2luZyBwb29sIGNhbGxpbmcgdXMgdG8gdXBkYXRlIG1ldHJpY3MpIGlzIHZhbGlkCi8vIGFuZCBtYXRjaGVzIHRoZSBpbmZvcm1hdGlvbiB3ZSBoYXZlIGluIG91ciBzdGF0ZS4gICdGYWtlJyBwb29scyBjb3VsZCBjYWxsIHVzIHRvIHVwZGF0ZSBvdXIgZGF0YSwgYnV0IHRoZXkKLy8gY2FuJ3QgZmFrZSB0aGUgaWRzIGFuZCBtb3N0IGltcG9ydGFudGx5IGFwcGxpY2F0aW9uIGlkKCEpIG9mIHRoZSBjYWxsZXIgdGhhdCBoYXMgdG8gbWF0Y2guCnZlcmlmeVBvb2xLZXlDYWxsZXI6Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE2MQoJLy8gYXNzZXJ0KHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS5leGlzdHMsICJ0aGUgc3BlY2lmaWVkIHZhbGlkYXRvciBpZCBpc24ndCB2YWxpZCIpCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCgkvLyB0aGUgc3BlY2lmaWVkIHZhbGlkYXRvciBpZCBpc24ndCB2YWxpZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExNjIKCS8vIGFzc2VydChwb29sS2V5LnBvb2xJZCA8PSBNQVhfUE9PTFMsICdwb29sIGlkIG5vdCBpbiB2YWxpZCByYW5nZScpCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMyAvLyAyNAoJPD0KCgkvLyBwb29sIGlkIG5vdCBpbiB2YWxpZCByYW5nZQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExNjMKCS8vIGFzc2VydCgKCS8vICAgICAgIHBvb2xLZXkucG9vbElkID4gMCAmJiAocG9vbEtleS5wb29sSWQgYXMgdWludDE2KSA8PSB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUuc3RhdGUubnVtUG9vbHMsCgkvLyAgICAgICAncG9vbCBpZCBvdXRzaWRlIG9mIHJhbmdlIG9mIHBvb2xzIGNyZWF0ZWQgZm9yIHRoaXMgdmFsaWRhdG9yJwoJLy8gICAgICkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50YyAwIC8vIDAKCT4KCWR1cAoJYnogKnNraXBfYW5kMgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnRjIDggLy8gMjQyCglpbnRjIDEwIC8vIDIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCgk8PQoJJiYKCipza2lwX2FuZDI6CgkvLyBwb29sIGlkIG91dHNpZGUgb2YgcmFuZ2Ugb2YgcG9vbHMgY3JlYXRlZCBmb3IgdGhpcyB2YWxpZGF0b3IKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTY5CgkvLyBhc3NlcnQoCgkvLyAgICAgICBwb29sS2V5LnBvb2xBcHBJZCA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzW3Bvb2xLZXkucG9vbElkIC0gMV0ucG9vbEFwcElkLAoJLy8gICAgICAgIlRoZSBwYXNzZWQgaW4gYXBwIGlkIGRvZXNuJ3QgbWF0Y2ggdGhlIHBhc3NlZCBpbiBpZHMiCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAwIC8vIDAKCSsKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJPT0KCgkvLyBUaGUgcGFzc2VkIGluIGFwcCBpZCBkb2Vzbid0IG1hdGNoIHRoZSBwYXNzZWQgaW4gaWRzCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE3NAoJLy8gYXNzZXJ0KHRoaXMudHhuLnNlbmRlciA9PT0gQXBwSUQuZnJvbVVpbnQ2NChwb29sS2V5LnBvb2xBcHBJZCkuYWRkcmVzcykKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDE2IDgKCWJ0b2kKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTc2CgkvLyBhc3NlcnQocG9vbEtleS5pZCA9PT0gKEFwcElELmZyb21VaW50NjQocG9vbEtleS5wb29sQXBwSWQpLmdsb2JhbFN0YXRlKCd2YWxpZGF0b3JJZCcpIGFzIHVpbnQ2NCkpCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDE2IDgKCWJ0b2kKCXB1c2hieXRlcyAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQocG9vbEtleS5wb29sQXBwSWQpLmdsb2JhbFN0YXRlKCd2YWxpZGF0b3JJZCcpCglhc3NlcnQKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE3NwoJLy8gYXNzZXJ0KHBvb2xLZXkucG9vbElkID09PSAoQXBwSUQuZnJvbVVpbnQ2NChwb29sS2V5LnBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ3Bvb2xJZCcpIGFzIHVpbnQ2NCkpCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDE2IDgKCWJ0b2kKCXB1c2hieXRlcyAweDcwNmY2ZjZjNDk2NCAvLyAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQocG9vbEtleS5wb29sQXBwSWQpLmdsb2JhbFN0YXRlKCdwb29sSWQnKQoJYXNzZXJ0Cgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIHJldmVyaWZ5TkZET3duZXJzaGlwKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUpOiB2b2lkCi8vCi8vIFRoaXMgbWV0aG9kIHZlcmlmaWVzIHRoZSBvd25lcnNoaXAgb2YgTkZEIChOYW1lZCBGdW5jdGlvbiBEYXRhKSBieSBhIHZhbGlkYXRvci4KLy8gSWYgdGhlIG93bmVyc2hpcCBpcyBubyBsb25nZXIgdmFsaWQsIGl0IHJlbW92ZXMgdGhlIE5GRCBmcm9tIHRoZSB2YWxpZGF0b3IncyBjb25maWd1cmF0aW9uLgovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvciB3aG9zZSBkYXRhIHNob3VsZCBiZSByZS1ldmFsdWF0ZWQuCnJldmVyaWZ5TkZET3duZXJzaGlwOgoJcHJvdG8gMSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTg3CgkvLyB2YWxpZGF0b3JDb25maWcgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZwoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gc3RvcmFnZSBrZXkvL3ZhbGlkYXRvckNvbmZpZwoKCS8vICppZjI4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExODgKCS8vIHZhbGlkYXRvckNvbmZpZy5uZmRGb3JJbmZvICE9PSAwCglpbnRjIDIxIC8vIDcyCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJaW50YyAwIC8vIDAKCSE9CglieiAqaWYyOF9lbmQKCgkvLyAqaWYyOF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE5MQoJLy8gbmZkT3duZXIgPSBBcHBJRC5mcm9tVWludDY0KHZhbGlkYXRvckNvbmZpZy5uZmRGb3JJbmZvKS5nbG9iYWxTdGF0ZSgnaS5vd25lci5hJykgYXMgQWRkcmVzcwoJaW50YyAyMSAvLyA3MgoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWJ5dGVjIDkgLy8gICJpLm93bmVyLmEiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcubmZkRm9ySW5mbykuZ2xvYmFsU3RhdGUoJ2kub3duZXIuYScpCglhc3NlcnQKCWZyYW1lX2J1cnkgMSAvLyBuZmRPd25lcjogYWRkcmVzcwoKCS8vICppZjI5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExOTMKCS8vIHZhbGlkYXRvckNvbmZpZy5vd25lciAhPT0gbmZkT3duZXIgJiYgdmFsaWRhdG9yQ29uZmlnLm1hbmFnZXIgIT09IG5mZE93bmVyCglpbnRjIDIgLy8gOAoJaW50YyA0IC8vIDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9kaWcgMSAvLyBuZmRPd25lcjogYWRkcmVzcwoJIT0KCWR1cAoJYnogKnNraXBfYW5kMwoJaW50YyAxOCAvLyA0MAoJaW50YyA0IC8vIDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9kaWcgMSAvLyBuZmRPd25lcjogYWRkcmVzcwoJIT0KCSYmCgoqc2tpcF9hbmQzOgoJYnogKmlmMjlfZW5kCgoJLy8gKmlmMjlfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExOTUKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm5mZEZvckluZm8gPSAwCglpbnRjIDIxIC8vIDcyCglieXRlYyAxMCAvLyAweDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCippZjI5X2VuZDoKCippZjI4X2VuZDoKCXJldHN1YgoKLy8gdmFsaWRhdGVDb25maWcoY29uZmlnOiBWYWxpZGF0b3JDb25maWcpOiB2b2lkCnZhbGlkYXRlQ29uZmlnOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyMDIKCS8vIGFzc2VydCgKCS8vICAgICAgIGNvbmZpZy5lbnRyeUdhdGluZ1R5cGUgPj0gR0FUSU5HX1RZUEVfTk9ORSAmJiBjb25maWcuZW50cnlHYXRpbmdUeXBlIDw9IEdBVElOR19UWVBFX0NPTlNUX01BWCwKCS8vICAgICAgICdnYXRpbmcgdHlwZSBub3QgdmFsaWQnCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDgwIDEKCWJ0b2kKCWludGMgMCAvLyAwCgk+PQoJZHVwCglieiAqc2tpcF9hbmQ0CglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgODAgMQoJYnRvaQoJaW50YyAyMCAvLyA0Cgk8PQoJJiYKCipza2lwX2FuZDQ6CgkvLyBnYXRpbmcgdHlwZSBub3QgdmFsaWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjA2CgkvLyBhc3NlcnQoCgkvLyAgICAgICBjb25maWcuZXBvY2hSb3VuZExlbmd0aCA+PSBNSU5fRVBPQ0hfTEVOR1RIICYmIGNvbmZpZy5lcG9jaFJvdW5kTGVuZ3RoIDw9IE1BWF9FUE9DSF9MRU5HVEgsCgkvLyAgICAgICAnZXBvY2ggbGVuZ3RoIG5vdCBpbiBhbGxvd2FibGUgcmFuZ2UnCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDE2OSA0CglidG9pCglpbnRjIDEgLy8gMQoJPj0KCWR1cAoJYnogKnNraXBfYW5kNQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDE2OSA0CglidG9pCglpbnRjIDI0IC8vIDEwMDAwMDAKCTw9CgkmJgoKKnNraXBfYW5kNToKCS8vIGVwb2NoIGxlbmd0aCBub3QgaW4gYWxsb3dhYmxlIHJhbmdlCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTIxMAoJLy8gYXNzZXJ0KAoJLy8gICAgICAgY29uZmlnLnBlcmNlbnRUb1ZhbGlkYXRvciA+PSBNSU5fUENUX1RPX1ZBTElEQVRPUiAmJiBjb25maWcucGVyY2VudFRvVmFsaWRhdG9yIDw9IE1BWF9QQ1RfVE9fVkFMSURBVE9SLAoJLy8gICAgICAgJ2NvbW1pc3Npb24gcGVyY2VudGFnZSBub3QgdmFsaWQnCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDE3MyA0CglidG9pCglpbnRjIDAgLy8gMAoJPj0KCWR1cAoJYnogKnNraXBfYW5kNgoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDE3MyA0CglidG9pCglpbnRjIDI0IC8vIDEwMDAwMDAKCTw9CgkmJgoKKnNraXBfYW5kNjoKCS8vIGNvbW1pc3Npb24gcGVyY2VudGFnZSBub3QgdmFsaWQKCWFzc2VydAoKCS8vICppZjMwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyMTQKCS8vIGNvbmZpZy5wZXJjZW50VG9WYWxpZGF0b3IgIT09IDAKCWZyYW1lX2RpZyAtMSAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCAxNzMgNAoJYnRvaQoJaW50YyAwIC8vIDAKCSE9CglieiAqaWYzMF9lbmQKCgkvLyAqaWYzMF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTIxNQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICBjb25maWcudmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MgIT09IEFkZHJlc3MuemVyb0FkZHJlc3MsCgkvLyAgICAgICAgICd2YWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyBtdXN0IGJlIHNldCBpZiBwZXJjZW50IHRvIHZhbGlkYXRvciBpcyBub3QgMCcKCS8vICAgICAgICkKCWZyYW1lX2RpZyAtMSAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCAxNzcgMzIKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCgkvLyB2YWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyBtdXN0IGJlIHNldCBpZiBwZXJjZW50IHRvIHZhbGlkYXRvciBpcyBub3QgMAoJYXNzZXJ0CgoqaWYzMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTIyMAoJLy8gYXNzZXJ0KGNvbmZpZy5taW5FbnRyeVN0YWtlID49IE1JTl9BTEdPX1NUQUtFX1BFUl9QT09MLCAnc3Rha2luZyBwb29sIG11c3QgaGF2ZSBtaW5pbXVtIGVudHJ5IG9mIDEgYWxnbycpCglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMjA5IDgKCWJ0b2kKCWludGMgMjQgLy8gMTAwMDAwMAoJPj0KCgkvLyBzdGFraW5nIHBvb2wgbXVzdCBoYXZlIG1pbmltdW0gZW50cnkgb2YgMSBhbGdvCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTIyMgoJLy8gYXNzZXJ0KAoJLy8gICAgICAgY29uZmlnLnBvb2xzUGVyTm9kZSA+IDAgJiYgY29uZmlnLnBvb2xzUGVyTm9kZSA8PSBNQVhfUE9PTFNfUEVSX05PREUsCgkvLyAgICAgICAnbnVtYmVyIG9mIHBvb2xzIHBlciBub2RlIGV4Y2VlZHMgYWxsb3dlZCBudW1iZXInCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDIyNSAxCglidG9pCglpbnRjIDAgLy8gMAoJPgoJZHVwCglieiAqc2tpcF9hbmQ3CglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMjI1IDEKCWJ0b2kKCWludGMgOSAvLyAzCgk8PQoJJiYKCipza2lwX2FuZDc6CgkvLyBudW1iZXIgb2YgcG9vbHMgcGVyIG5vZGUgZXhjZWVkcyBhbGxvd2VkIG51bWJlcgoJYXNzZXJ0CgoJLy8gKmlmMzFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTIyNgoJLy8gY29uZmlnLnN1bnNldHRpbmdPbiAhPT0gMAoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDIyNiA4CglidG9pCglpbnRjIDAgLy8gMAoJIT0KCWJ6ICppZjMxX2VuZAoKCS8vICppZjMxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjI3CgkvLyBhc3NlcnQoY29uZmlnLnN1bnNldHRpbmdPbiA+IGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wLCAnc3Vuc2V0dGluZ09uIG11c3QgYmUgbGF0ZXIgdGhhbiBub3cgaWYgc2V0JykKCWZyYW1lX2RpZyAtMSAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCAyMjYgOAoJYnRvaQoJZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAoJPgoKCS8vIHN1bnNldHRpbmdPbiBtdXN0IGJlIGxhdGVyIHRoYW4gbm93IGlmIHNldAoJYXNzZXJ0CgoqaWYzMV9lbmQ6CglyZXRzdWIKCi8vIGNhbGxQb29sQWRkU3Rha2Uoc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuLCBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5LCBtYnJBbXRQYWlkOiB1aW50NjQsIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2xlYW4sIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbGVhbik6IHZvaWQKLy8KLy8gQWRkcyBhIHN0YWtlcnMgYW1vdW50IG9mIGFsZ28gdG8gYSB2YWxpZGF0b3IgcG9vbCwgdHJhbnNmZXJyaW5nIHRoZSBhbGdvIHdlIHJlY2VpdmVkIGZyb20gdGhlbSAoYWxyZWFkeSB2ZXJpZmllZAovLyBieSBvdXIgY2FsbGVyKSB0byB0aGUgc3Rha2luZyBwb29sIGFjY291bnQsIGFuZCB0aGVuIHRlbGxpbmcgaXQgYWJvdXQgdGhlIGFtb3VudCBiZWluZyBhZGRlZCBmb3IgdGhlIHNwZWNpZmllZAovLyBzdGFrZXIuCi8vCi8vIEBwYXJhbSB7UGF5VHhufSBzdGFrZWRBbW91bnRQYXltZW50IC0gcGF5bWVudCBjb21pbmcgZnJvbSBzdGFrZXIgdG8gcGxhY2UgaW50byBhIHBvb2wKLy8gQHBhcmFtIHtWYWxpZGF0b3JQb29sS2V5fSBwb29sS2V5IC0gVGhlIGtleSBvZiB0aGUgdmFsaWRhdG9yIHBvb2wuCi8vIEBwYXJhbSB7dWludDY0fSBtYnJBbXRQYWlkIC0gQW1vdW50IHRoZSB1c2VyIGlzIGxlYXZpbmcgYmVoaW5kIGluIHRoZSB2YWxpZGF0b3IgdG8gcGF5IGZvciB0aGVpciBzdGFrZXIgTUJSIGNvc3QKLy8gQHBhcmFtIHtib29sZWFufSBpc05ld1N0YWtlclRvVmFsaWRhdG9yIC0gaWYgdGhpcyBpcyBhIG5ldywgZmlyc3QtdGltZSBzdGFrZXIgdG8gdGhlIHZhbGlkYXRvcgovLyBAcGFyYW0ge2Jvb2xlYW59IGlzTmV3U3Rha2VyVG9Qcm90b2NvbCAtIGlmIHRoaXMgaXMgYSBuZXcsIGZpcnN0LXRpbWUgc3Rha2VyIHRvIHRoZSBwcm90b2NvbApjYWxsUG9vbEFkZFN0YWtlOgoJcHJvdG8gNSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjQ5CgkvLyBwb29sQXBwSWQgPSB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXS5wb29sQXBwSWQKCWludGMgNiAvLyAgaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnRjIDEgLy8gMQoJLQoJaW50YyA1IC8vIDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludGMgMCAvLyAwCgkrCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjUzCgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgU3Rha2luZ1Bvb2wucHJvdG90eXBlLmFkZFN0YWtlLCB1aW50NjQ+KHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKSwKCS8vICAgICAgIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgLy8gPT09PT09PQoJLy8gICAgICAgICAvLyBUSElTIElTIEEgU0VORCBvZiB0aGUgYW1vdW50IHJlY2VpdmVkIHJpZ2h0IGJhY2sgb3V0IGFuZCBpbnRvIHRoZSBzdGFraW5nIHBvb2wgY29udHJhY3QgYWNjb3VudC4KCS8vICAgICAgICAgeyBhbW91bnQ6IHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50IC0gbWJyQW10UGFpZCwgcmVjZWl2ZXI6IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKS5hZGRyZXNzIH0sCgkvLyAgICAgICAgIC8vID09PT09PT0KCS8vICAgICAgICAgc3Rha2VkQW1vdW50UGF5bWVudC5zZW5kZXIsCgkvLyAgICAgICBdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDEgLy8gIHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjU4CgkvLyBhbW91bnQ6IHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50IC0gbWJyQW10UGFpZAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9kaWcgLTMgLy8gbWJyQW10UGFpZDogdWludDY0CgktCglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjU4CgkvLyByZWNlaXZlcjogQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpLmFkZHJlc3MKCWZyYW1lX2RpZyAwIC8vIHBvb2xBcHBJZDogdWludDY0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCWl0eG5fbmV4dAoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglwdXNoYnl0ZXMgMHhmOWM3MGNiZCAvLyBtZXRob2QgImFkZFN0YWtlKHBheSxhZGRyZXNzKXVpbnQ2NCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNTQKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKQoJZnJhbWVfZGlnIDAgLy8gcG9vbEFwcElkOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjU1CgkvLyBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgIC8vID09PT09PT0KCS8vICAgICAgICAgLy8gVEhJUyBJUyBBIFNFTkQgb2YgdGhlIGFtb3VudCByZWNlaXZlZCByaWdodCBiYWNrIG91dCBhbmQgaW50byB0aGUgc3Rha2luZyBwb29sIGNvbnRyYWN0IGFjY291bnQuCgkvLyAgICAgICAgIHsgYW1vdW50OiBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCAtIG1ickFtdFBhaWQsIHJlY2VpdmVyOiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkuYWRkcmVzcyB9LAoJLy8gICAgICAgICAvLyA9PT09PT09CgkvLyAgICAgICAgIHN0YWtlZEFtb3VudFBheW1lbnQuc2VuZGVyLAoJLy8gICAgICAgXQoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50YyAxIC8vIDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJYnRvaQoKCS8vICppZjMyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNjMKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgNTAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglwdXNoaW50IDUwMAoJPAoJYnogKmlmMzJfZW5kCgoJLy8gKmlmMzJfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNjQKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyA4IC8vICAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnRjIDI2IC8vICBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoqaWYzMl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI2OAoJLy8gcG9vbE51bVN0YWtlcnMgPSBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ251bVN0YWtlcnMnKSBhcyB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHBvb2xBcHBJZDogdWludDY0CglieXRlYyA3IC8vICAibnVtU3Rha2VycyIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ251bVN0YWtlcnMnKQoJYXNzZXJ0CglmcmFtZV9idXJ5IDEgLy8gcG9vbE51bVN0YWtlcnM6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjY5CgkvLyBwb29sQWxnb1N0YWtlZCA9IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKS5nbG9iYWxTdGF0ZSgnc3Rha2VkJykgYXMgdWludDY0CglmcmFtZV9kaWcgMCAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoJYnl0ZWMgNCAvLyAgInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ3N0YWtlZCcpCglhc3NlcnQKCWZyYW1lX2J1cnkgMiAvLyBwb29sQWxnb1N0YWtlZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNzAKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5wb29sc1twb29sS2V5LnBvb2xJZCAtIDFdLnRvdGFsU3Rha2VycyA9IHBvb2xOdW1TdGFrZXJzIGFzIHVpbnQxNgoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAyIC8vICBoZWFkT2Zmc2V0CgkrCglmcmFtZV9kaWcgMSAvLyBwb29sTnVtU3Rha2VyczogdWludDY0CglpdG9iCglleHRyYWN0IDYgMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI3MQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzW3Bvb2xLZXkucG9vbElkIC0gMV0udG90YWxBbGdvU3Rha2VkID0gcG9vbEFsZ29TdGFrZWQKCWludGMgNiAvLyAgaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnRjIDEgLy8gMQoJLQoJaW50YyA1IC8vIDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludGMgMTEgLy8gIGhlYWRPZmZzZXQKCSsKCWZyYW1lX2RpZyAyIC8vIHBvb2xBbGdvU3Rha2VkOiB1aW50NjQKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gKmlmMzNfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI3NAoJLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcgoJZnJhbWVfZGlnIC00IC8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2xlYW4KCWJ6ICppZjMzX2VuZAoKCS8vICppZjMzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjc1CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUuc3RhdGUudG90YWxTdGFrZXJzICs9IDEKCWludGMgMjMgLy8gMjQ0CglkdXAKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJaW50YyAxIC8vIDEKCSsKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoqaWYzM19lbmQ6CgkvLyAqaWYzNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjc3CgkvLyBpc05ld1N0YWtlclRvUHJvdG9jb2wKCWZyYW1lX2RpZyAtNSAvLyBpc05ld1N0YWtlclRvUHJvdG9jb2w6IGJvb2xlYW4KCWJ6ICppZjM0X2VuZAoKCS8vICppZjM0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjc4CgkvLyB0aGlzLm51bVN0YWtlcnMudmFsdWUgKz0gMQoJYnl0ZWMgNyAvLyAgIm51bVN0YWtlcnMiCglhcHBfZ2xvYmFsX2dldAoJaW50YyAxIC8vIDEKCSsKCWJ5dGVjIDcgLy8gICJudW1TdGFrZXJzIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCippZjM0X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjgwCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUuc3RhdGUudG90YWxBbGdvU3Rha2VkICs9IHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50IC0gbWJyQW10UGFpZAoJaW50YyAxMiAvLyAyNTIKCWR1cAoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAtMyAvLyBtYnJBbXRQYWlkOiB1aW50NjQKCS0KCSsKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODEKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlICs9IHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50IC0gbWJyQW10UGFpZAoJYnl0ZWMgNCAvLyAgInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAtMyAvLyBtYnJBbXRQYWlkOiB1aW50NjQKCS0KCSsKCWJ5dGVjIDQgLy8gICJzdGFrZWQiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyB1cGRhdGVTdGFrZXJQb29sU2V0KHN0YWtlcjogQWRkcmVzcywgcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleSk6IHZvaWQKdXBkYXRlU3Rha2VyUG9vbFNldDoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAxIC8vIDB4CglkdXBuIDIKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI4NQoJLy8gYXNzZXJ0KHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLmV4aXN0cykKCWJ5dGVjIDMgLy8gICJzcHMiCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWJveF9sZW4KCXN3YXAKCXBvcAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODcKCS8vIHBvb2xTZXQgPSBjbG9uZSh0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZSkKCWJ5dGVjIDMgLy8gICJzcHMiCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlCglhc3NlcnQKCWZyYW1lX2J1cnkgMCAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODgKCS8vIGZpcnN0RW1wdHkgPSAwCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjg5CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlLmxlbmd0aDsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCipmb3JfNzoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjg5CgkvLyBpIDwgdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUubGVuZ3RoCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgNyAvLyA2Cgk8CglieiAqZm9yXzdfZW5kCgoJLy8gKmlmMzVfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI5MAoJLy8gcG9vbFNldFtpXSA9PT0gcG9vbEtleQoJZnJhbWVfZGlnIDAgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAzIC8vIDI0CglleHRyYWN0MwoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCT09CglieiAqaWYzNV9lbmQKCgkvLyAqaWYzNV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI5MgoJLy8gcmV0dXJuOwoJcmV0c3ViCgoqaWYzNV9lbmQ6CgkvLyAqaWYzNl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjk0CgkvLyBmaXJzdEVtcHR5ID09PSAwICYmIHBvb2xTZXRbaV0uaWQgPT09IDAKCWZyYW1lX2RpZyAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglkdXAKCWJ6ICpza2lwX2FuZDgKCWZyYW1lX2RpZyAwIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMCAvLyAwCgkrCglpbnRjIDIgLy8gOAoJZXh0cmFjdDMKCWJ0b2kKCWludGMgMCAvLyAwCgk9PQoJJiYKCipza2lwX2FuZDg6CglieiAqaWYzNl9lbmQKCgkvLyAqaWYzNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI5NQoJLy8gZmlyc3RFbXB0eSA9IGkgKyAxCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDEgLy8gZmlyc3RFbXB0eTogdWludDY0CgoqaWYzNl9lbmQ6CgoqZm9yXzdfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI4OQoJLy8gaSArPSAxCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDIgLy8gaTogdWludDY0CgliICpmb3JfNwoKKmZvcl83X2VuZDoKCS8vICppZjM3X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyOTgKCS8vIGZpcnN0RW1wdHkgPT09IDAKCWZyYW1lX2RpZyAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglieiAqaWYzN19lbmQKCgkvLyAqaWYzN19jb25zZXF1ZW50CgkvLyBObyBlbXB0eSBzbG90IGF2YWlsYWJsZSBpbiB0aGUgc3Rha2VyIHBvb2wgc2V0CgllcnIKCippZjM3X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzAxCgkvLyB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZVtmaXJzdEVtcHR5IC0gMV0gPSBwb29sS2V5CglmcmFtZV9kaWcgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCWludGMgMSAvLyAxCgktCglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWJ5dGVjIDMgLy8gICJzcHMiCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIHJlbW92ZUZyb21TdGFrZXJQb29sU2V0KHN0YWtlcjogQWRkcmVzcywgcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleSk6IFtib29sZWFuLCBib29sZWFuXQovLwovLyBSZW1vdmVzIGEgcG9vbCBrZXkgZnJvbSB0aGUgc3Rha2VyJ3MgYWN0aXZlIHBvb2wgc2V0IC0gZmFpbHMgaWYgbm90IGZvdW5kICghKQovLwovLyBAcGFyYW0ge0FkZHJlc3N9IHN0YWtlciAtIFRoZSBhZGRyZXNzIG9mIHRoZSBzdGFrZXIuCi8vIEBwYXJhbSB7VmFsaWRhdG9yUG9vbEtleX0gcG9vbEtleSAtIFRoZSBwb29sIGtleSB0aGV5IHNob3VsZCBiZSBzdG9yZWQgaW4KLy8KLy8gQHJldHVybiBbYm9vbGVhbiwgYm9vbGVhbl0gW2lzIHRoZSBzdGFrZXIgZ29uZSBmcm9tIEFMTCBwb29scyBvZiB0aGUgZ2l2ZW4gVkFMSURBVE9SLCBhbmQgaXMgc3Rha2VyIGdvbmUgZnJvbSBBTEwgcG9vbHNdCnJlbW92ZUZyb21TdGFrZXJQb29sU2V0OgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cG4gNAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzE0CgkvLyBpblNhbWVWYWxpZGF0b3JQb29sQ291bnQgPSAwCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAwIC8vIGluU2FtZVZhbGlkYXRvclBvb2xDb3VudDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMTUKCS8vIGluQW55UG9vbENvdW50ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMSAvLyBpbkFueVBvb2xDb3VudDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMTYKCS8vIGZvdW5kID0gZmFsc2UKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDIgLy8gZm91bmQ6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMxOAoJLy8gcG9vbFNldCA9IGNsb25lKHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlKQoJYnl0ZWMgMyAvLyAgInNwcyIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSAzIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMxOQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZS5sZW5ndGg7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDQgLy8gaTogdWludDY0CgoqZm9yXzg6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMxOQoJLy8gaSA8IHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlLmxlbmd0aAoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnRjIDcgLy8gNgoJPAoJYnogKmZvcl84X2VuZAoKCS8vICppZjM4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMjAKCS8vIHBvb2xTZXRbaV0uaWQgPT09IDAKCWZyYW1lX2RpZyAzIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMCAvLyAwCgkrCglpbnRjIDIgLy8gOAoJZXh0cmFjdDMKCWJ0b2kKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmMzhfZW5kCgoJLy8gKmlmMzhfY29uc2VxdWVudAoJYiAqZm9yXzhfY29udGludWUKCippZjM4X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzIzCgkvLyBpbkFueVBvb2xDb3VudCArPSAxCglmcmFtZV9kaWcgMSAvLyBpbkFueVBvb2xDb3VudDogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAxIC8vIGluQW55UG9vbENvdW50OiB1aW50NjQKCgkvLyAqaWYzOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzI0CgkvLyBwb29sU2V0W2ldLmlkID09PSBwb29sS2V5LmlkCglmcmFtZV9kaWcgMyAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDAgLy8gMAoJKwoJaW50YyAyIC8vIDgKCWV4dHJhY3QzCglidG9pCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCT09CglieiAqaWYzOV9lbmQKCgkvLyAqaWYzOV9jb25zZXF1ZW50CgkvLyAqaWY0MF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzI1CgkvLyBwb29sU2V0W2ldID09PSBwb29sS2V5CglmcmFtZV9kaWcgMyAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDMgLy8gMjQKCWV4dHJhY3QzCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJPT0KCWJ6ICppZjQwX2Vsc2UKCgkvLyAqaWY0MF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMyNgoJLy8gZm91bmQgPSB0cnVlCglpbnRjIDEgLy8gMQoJZnJhbWVfYnVyeSAyIC8vIGZvdW5kOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMjgKCS8vIHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlW2ldID0geyBpZDogMCwgcG9vbElkOiAwLCBwb29sQXBwSWQ6IDAgfQoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglieXRlYyAzIC8vICAic3BzIgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoJYiAqaWY0MF9lbmQKCippZjQwX2Vsc2U6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMzMAoJLy8gaW5TYW1lVmFsaWRhdG9yUG9vbENvdW50ICs9IDEKCWZyYW1lX2RpZyAwIC8vIGluU2FtZVZhbGlkYXRvclBvb2xDb3VudDogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGluU2FtZVZhbGlkYXRvclBvb2xDb3VudDogdWludDY0CgoqaWY0MF9lbmQ6CgoqaWYzOV9lbmQ6CgoqZm9yXzhfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMxOQoJLy8gaSArPSAxCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDQgLy8gaTogdWludDY0CgliICpmb3JfOAoKKmZvcl84X2VuZDoKCS8vICppZjQxX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMzQKCS8vICFmb3VuZAoJZnJhbWVfZGlnIDIgLy8gZm91bmQ6IGJvb2wKCSEKCWJ6ICppZjQxX2VuZAoKCS8vICppZjQxX2NvbnNlcXVlbnQKCS8vIE5vIG1hdGNoaW5nIHNsb3QgZm91bmQgd2hlbiB0b2xkIHRvIHJlbW92ZSBhIHBvb2wgZnJvbSB0aGUgc3Rha2VycyBzZXQKCWVycgoKKmlmNDFfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMzgKCS8vIHJldHVybiBbaW5TYW1lVmFsaWRhdG9yUG9vbENvdW50ID09PSAwLCBpbkFueVBvb2xDb3VudCA9PT0gMF07CglieXRlYyA1IC8vIDB4MDAKCWludGMgMCAvLyAwCglmcmFtZV9kaWcgMCAvLyBpblNhbWVWYWxpZGF0b3JQb29sQ291bnQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglzZXRiaXQKCWludGMgMSAvLyAxCglmcmFtZV9kaWcgMSAvLyBpbkFueVBvb2xDb3VudDogdWludDY0CglpbnRjIDAgLy8gMAoJPT0KCXNldGJpdAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDQKCXJldHN1YgoKLy8gYWRkUG9vbFRvTm9kZSh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCBwb29sQXBwSWQ6IHVpbnQ2NCwgbm9kZU51bTogdWludDY0KTogdm9pZAphZGRQb29sVG9Ob2RlOgoJcHJvdG8gMyAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzQyCgkvLyBub2RlUG9vbEFzc2lnbm1lbnRzID0gY2xvbmUodGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5ub2RlUG9vbEFzc2lnbm1lbnRzKQoJaW50YyAxNyAvLyAgaGVhZE9mZnNldAoJaW50YyAyMiAvLyAxOTIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWZyYW1lX2J1cnkgMCAvLyBub2RlUG9vbEFzc2lnbm1lbnRzOiAoKHVpbnQ2NFszXSlbOF0pCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNDMKCS8vIG1heFBvb2xzUGVyTm9kZUZvclRoaXNWYWxpZGF0b3IgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5wb29sc1Blck5vZGUgYXMgdWludDY0CglwdXNoaW50IDIyNQoJaW50YyAxIC8vIDEKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMSAvLyBtYXhQb29sc1Blck5vZGVGb3JUaGlzVmFsaWRhdG9yOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM0NQoJLy8gYXNzZXJ0KG5vZGVOdW0gPj0gMSAmJiBub2RlTnVtIDw9IE1BWF9OT0RFUywgJ25vZGUgbnVtYmVyIG5vdCBpbiB2YWxpZCByYW5nZScpCglmcmFtZV9kaWcgLTMgLy8gbm9kZU51bTogdWludDY0CglpbnRjIDEgLy8gMQoJPj0KCWR1cAoJYnogKnNraXBfYW5kOQoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJaW50YyAyIC8vIDgKCTw9CgkmJgoKKnNraXBfYW5kOToKCS8vIG5vZGUgbnVtYmVyIG5vdCBpbiB2YWxpZCByYW5nZQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNDcKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgbWF4UG9vbHNQZXJOb2RlRm9yVGhpc1ZhbGlkYXRvcjsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCipmb3JfOToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzQ3CgkvLyBpIDwgbWF4UG9vbHNQZXJOb2RlRm9yVGhpc1ZhbGlkYXRvcgoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglmcmFtZV9kaWcgMSAvLyBtYXhQb29sc1Blck5vZGVGb3JUaGlzVmFsaWRhdG9yOiB1aW50NjQKCTwKCWJ6ICpmb3JfOV9lbmQKCgkvLyAqaWY0Ml9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzQ4CgkvLyBub2RlUG9vbEFzc2lnbm1lbnRzLm5vZGVzW25vZGVOdW0gLSAxXS5wb29sQXBwSWRzW2ldID09PSAwCglmcmFtZV9kaWcgMCAvLyBub2RlUG9vbEFzc2lnbm1lbnRzOiAoKHVpbnQ2NFszXSlbOF0pCglpbnRjIDAgLy8gMAoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJaW50YyAxIC8vIDEKCS0KCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDAgLy8gMAoJKwoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDIgLy8gOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDIgLy8gOAoJZXh0cmFjdDMKCWJ0b2kKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmNDJfZW5kCgoJLy8gKmlmNDJfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNTAKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUubm9kZVBvb2xBc3NpZ25tZW50cy5ub2Rlc1tub2RlTnVtIC0gMV0ucG9vbEFwcElkc1tpXSA9IHBvb2xBcHBJZAoJaW50YyAxNyAvLyA5MDAKCWZyYW1lX2RpZyAtMyAvLyBub2RlTnVtOiB1aW50NjQKCWludGMgMSAvLyAxCgktCglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAwIC8vIDAKCSsKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAyIC8vIDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBcHBJZDogdWludDY0CglpdG9iCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNTEKCS8vIHJldHVybjsKCXJldHN1YgoKKmlmNDJfZW5kOgoKKmZvcl85X2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNDcKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzkKCipmb3JfOV9lbmQ6CgkvLyBubyBhdmFpbGFibGUgc3BhY2UgaW4gc3BlY2lmaWVkIG5vZGUgZm9yIHRoaXMgcG9vbAoJZXJyCglyZXRzdWIKCi8vIGRvZXNTdGFrZXJNZWV0R2F0aW5nKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gQ2hlY2tzIGlmIGEgc3Rha2VyIG1lZXRzIHRoZSBnYXRpbmcgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGUgdmFsaWRhdG9yLgovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvci4KLy8gQHBhcmFtIHt1aW50NjR9IHZhbHVlVG9WZXJpZnkgLSBUaGUgdmFsdWUgdG8gdmVyaWZ5IGFnYWluc3QgdGhlIGdhdGluZyByZXF1aXJlbWVudHMuCi8vIEByZXR1cm5zIHt2b2lkfSBvciBhc3NlcnRzIGlmIHJlcXVpcmVtZW50cyBub3QgbWV0Lgpkb2VzU3Rha2VyTWVldEdhdGluZzoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAxIC8vIDB4CglkdXBuIDgKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM2NQoJLy8gdHlwZSA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLmVudHJ5R2F0aW5nVHlwZQoJaW50YyAzNSAvLyA4MAoJaW50YyAxIC8vIDEKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyB0eXBlOiB1aW50OAoKCS8vICppZjQzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNjYKCS8vIHR5cGUgPT09IEdBVElOR19UWVBFX05PTkUKCWZyYW1lX2RpZyAwIC8vIHR5cGU6IHVpbnQ4CglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppZjQzX2VuZAoKCS8vICppZjQzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzY3CgkvLyByZXR1cm47CglyZXRzdWIKCippZjQzX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzY5CgkvLyBzdGFrZXIgPSB0aGlzLnR4bi5zZW5kZXIKCXR4biBTZW5kZXIKCWZyYW1lX2J1cnkgMSAvLyBzdGFrZXI6IGFkZHJlc3MKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM3MAoJLy8gY29uZmlnID0gY2xvbmUodGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcpCglpbnRjIDAgLy8gMAoJaW50YyA4IC8vIDI0MgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAyIC8vIGNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCgoJLy8gKmlmNDRfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM3NAoJLy8gdHlwZSA9PT0gR0FUSU5HX1RZUEVfQVNTRVRTX0NSRUFURURfQlkgfHwKCS8vICAgICAgIHR5cGUgPT09IEdBVElOR19UWVBFX0FTU0VUX0lEIHx8CgkvLyAgICAgICB0eXBlID09PSBHQVRJTkdfVFlQRV9DUkVBVEVEX0JZX05GRF9BRERSRVNTRVMKCWZyYW1lX2RpZyAwIC8vIHR5cGU6IHVpbnQ4CglpbnRjIDEgLy8gMQoJPT0KCWR1cAoJYm56ICpza2lwX29yNAoJZnJhbWVfZGlnIDAgLy8gdHlwZTogdWludDgKCWludGMgMTAgLy8gMgoJPT0KCXx8Cgoqc2tpcF9vcjQ6CglkdXAKCWJueiAqc2tpcF9vcjUKCWZyYW1lX2RpZyAwIC8vIHR5cGU6IHVpbnQ4CglpbnRjIDkgLy8gMwoJPT0KCXx8Cgoqc2tpcF9vcjU6CglieiAqaWY0NF9lbmQKCgkvLyAqaWY0NF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM3OAoJLy8gYXNzZXJ0KHZhbHVlVG9WZXJpZnkgIT09IDApCglmcmFtZV9kaWcgLTIgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0CglpbnRjIDAgLy8gMAoJIT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzc5CgkvLyBiYWxSZXF1aXJlZCA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLmdhdGluZ0Fzc2V0TWluQmFsYW5jZQoJaW50YyAzNiAvLyAxNDUKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDMgLy8gYmFsUmVxdWlyZWQ6IHVpbnQ2NAoKCS8vICppZjQ1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzODAKCS8vIGJhbFJlcXVpcmVkID09PSAwCglmcmFtZV9kaWcgMyAvLyBiYWxSZXF1aXJlZDogdWludDY0CglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppZjQ1X2VuZAoKCS8vICppZjQ1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzgxCgkvLyBiYWxSZXF1aXJlZCA9IDEKCWludGMgMSAvLyAxCglmcmFtZV9idXJ5IDMgLy8gYmFsUmVxdWlyZWQ6IHVpbnQ2NAoKKmlmNDVfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzODMKCS8vIGFzc2VydCgKCS8vICAgICAgICAgc3Rha2VyLmFzc2V0QmFsYW5jZShBc3NldElELmZyb21VaW50NjQodmFsdWVUb1ZlcmlmeSkpID49IGJhbFJlcXVpcmVkLAoJLy8gICAgICAgICAnbXVzdCBoYXZlIHJlcXVpcmVkIG1pbmltdW0gYmFsYW5jZSBvZiB2YWxpZGF0b3IgZGVmaW5lZCB0b2tlbiB0byBhZGQgc3Rha2UnCgkvLyAgICAgICApCglmcmFtZV9kaWcgMSAvLyBzdGFrZXI6IGFkZHJlc3MKCWZyYW1lX2RpZyAtMiAvLyB2YWx1ZVRvVmVyaWZ5OiB1aW50NjQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgMyAvLyBiYWxSZXF1aXJlZDogdWludDY0Cgk+PQoKCS8vIG11c3QgaGF2ZSByZXF1aXJlZCBtaW5pbXVtIGJhbGFuY2Ugb2YgdmFsaWRhdG9yIGRlZmluZWQgdG9rZW4gdG8gYWRkIHN0YWtlCglhc3NlcnQKCippZjQ0X2VuZDoKCS8vICppZjQ2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzODgKCS8vIHR5cGUgPT09IEdBVElOR19UWVBFX0FTU0VUU19DUkVBVEVEX0JZCglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJaW50YyAxIC8vIDEKCT09CglieiAqaWY0Nl9lbmQKCgkvLyAqaWY0Nl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM4OQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICBBc3NldElELmZyb21VaW50NjQodmFsdWVUb1ZlcmlmeSkuY3JlYXRvciA9PT0gY29uZmlnLmVudHJ5R2F0aW5nQWRkcmVzcywKCS8vICAgICAgICAgJ3NwZWNpZmllZCBhc3NldCBtdXN0IGJlIGNyZWF0ZWQgYnkgY3JlYXRvciB0aGF0IHRoZSB2YWxpZGF0b3IgZGVmaW5lZCBhcyBhIHJlcXVpcmVtZW50IHRvIHN0YWtlJwoJLy8gICAgICAgKQoJZnJhbWVfZGlnIC0yIC8vIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NAoJYXNzZXRfcGFyYW1zX2dldCBBc3NldENyZWF0b3IKCXBvcAoJZnJhbWVfZGlnIDIgLy8gY29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgODEgMzIKCT09CgoJLy8gc3BlY2lmaWVkIGFzc2V0IG11c3QgYmUgY3JlYXRlZCBieSBjcmVhdG9yIHRoYXQgdGhlIHZhbGlkYXRvciBkZWZpbmVkIGFzIGEgcmVxdWlyZW1lbnQgdG8gc3Rha2UKCWFzc2VydAoKKmlmNDZfZW5kOgoJLy8gKmlmNDdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM5NAoJLy8gdHlwZSA9PT0gR0FUSU5HX1RZUEVfQVNTRVRfSUQKCWZyYW1lX2RpZyAwIC8vIHR5cGU6IHVpbnQ4CglpbnRjIDEwIC8vIDIKCT09CglieiAqaWY0N19lbmQKCgkvLyAqaWY0N19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM5NQoJLy8gYXNzZXJ0KHZhbHVlVG9WZXJpZnkgIT09IDApCglmcmFtZV9kaWcgLTIgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0CglpbnRjIDAgLy8gMAoJIT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzk2CgkvLyBmb3VuZCA9IGZhbHNlCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSA0IC8vIGZvdW5kOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzOTcKCS8vIGNvbmZpZy5lbnRyeUdhdGluZ0Fzc2V0cwoJZnJhbWVfZGlnIDIgLy8gY29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTEzIDMyCglkdXAKCWZyYW1lX2J1cnkgNSAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWV4dHJhY3QgMCA4CglidG9pCglmcmFtZV9idXJ5IDYgLy8gYXNzZXRJZDogdWludDY0CglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSA3IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCgoqZm9yT2ZfMDoKCS8vICppZjQ4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzOTgKCS8vIHZhbHVlVG9WZXJpZnkgPT09IGFzc2V0SWQKCWZyYW1lX2RpZyAtMiAvLyB2YWx1ZVRvVmVyaWZ5OiB1aW50NjQKCWZyYW1lX2RpZyA2IC8vIGFzc2V0SWQ6IHVpbnQ2NAoJPT0KCWJ6ICppZjQ4X2VuZAoKCS8vICppZjQ4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzk5CgkvLyBmb3VuZCA9IHRydWUKCWludGMgMSAvLyAxCglmcmFtZV9idXJ5IDQgLy8gZm91bmQ6IGJvb2wKCWIgKmZvck9mXzBfZW5kCgoqaWY0OF9lbmQ6CgoqZm9yT2ZfMF9jb250aW51ZToKCS8vIGluY3JlbWVudCBvZmZzZXQgYW5kIGxvb3AgaWYgbm90IG91dCBvZiBib3VuZHMKCWZyYW1lX2RpZyA3IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnRjIDIgLy8gOAoJKwoJZHVwCglpbnRjIDQgLy8gIG9mZnNldCBvZiBsYXN0IGVsZW1lbnQKCTwKCWJ6ICpmb3JPZl8wX2VuZAoJZnJhbWVfYnVyeSA3IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglmcmFtZV9kaWcgNSAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyA3IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnRjIDIgLy8gOAoJZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSA2IC8vIGFzc2V0SWQ6IHVpbnQ2NAoJYiAqZm9yT2ZfMAoKKmZvck9mXzBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0MDMKCS8vIGFzc2VydChmb3VuZCwgJ3NwZWNpZmllZCBhc3NldCBtdXN0IGJlIGlkZW50aWNhbCB0byB0aGUgYXNzZXQgaWQgZGVmaW5lZCBhcyBhIHJlcXVpcmVtZW50IHRvIHN0YWtlJykKCWZyYW1lX2RpZyA0IC8vIGZvdW5kOiBib29sCgoJLy8gc3BlY2lmaWVkIGFzc2V0IG11c3QgYmUgaWRlbnRpY2FsIHRvIHRoZSBhc3NldCBpZCBkZWZpbmVkIGFzIGEgcmVxdWlyZW1lbnQgdG8gc3Rha2UKCWFzc2VydAoKKmlmNDdfZW5kOgoJLy8gKmlmNDlfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQwNQoJLy8gdHlwZSA9PT0gR0FUSU5HX1RZUEVfQ1JFQVRFRF9CWV9ORkRfQUREUkVTU0VTCglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJaW50YyA5IC8vIDMKCT09CglieiAqaWY0OV9lbmQKCgkvLyAqaWY0OV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQwOAoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICB0aGlzLmlzQWRkcmVzc0luTkZEQ0FBbGdvTGlzdChjb25maWcuZW50cnlHYXRpbmdBc3NldHNbMF0sIEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWx1ZVRvVmVyaWZ5KS5jcmVhdG9yKSwKCS8vICAgICAgICAgJ3NwZWNpZmllZCBhc3NldCBtdXN0IGJlIGNyZWF0ZWQgYnkgY3JlYXRvciB0aGF0IGlzIG9uZSBvZiB0aGUgbGlua2VkIGFkZHJlc3NlcyBpbiBhbiBuZmQnCgkvLyAgICAgICApCglmcmFtZV9kaWcgLTIgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0Cglhc3NldF9wYXJhbXNfZ2V0IEFzc2V0Q3JlYXRvcgoJcG9wCglmcmFtZV9kaWcgMiAvLyBjb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxMTMgOAoJYnRvaQoJY2FsbHN1YiBpc0FkZHJlc3NJbk5GRENBQWxnb0xpc3QKCgkvLyBzcGVjaWZpZWQgYXNzZXQgbXVzdCBiZSBjcmVhdGVkIGJ5IGNyZWF0b3IgdGhhdCBpcyBvbmUgb2YgdGhlIGxpbmtlZCBhZGRyZXNzZXMgaW4gYW4gbmZkCglhc3NlcnQKCippZjQ5X2VuZDoKCS8vICppZjUwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0MTMKCS8vIHR5cGUgPT09IEdBVElOR19UWVBFX1NFR01FTlRfT0ZfTkZECglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJaW50YyAyMCAvLyA0Cgk9PQoJYnogKmlmNTBfZW5kCgoJLy8gKmlmNTBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0MTUKCS8vIHVzZXJPZmZlcmVkTkZEQXBwSUQgPSB2YWx1ZVRvVmVyaWZ5CglmcmFtZV9kaWcgLTIgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0CglmcmFtZV9idXJ5IDggLy8gdXNlck9mZmVyZWRORkRBcHBJRDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0MTYKCS8vIGFzc2VydCh0aGlzLmlzTkZEQXBwSURWYWxpZCh1c2VyT2ZmZXJlZE5GREFwcElEKSwgJ3Byb3ZpZGVkIE5GRCBtdXN0IGJlIHZhbGlkJykKCWZyYW1lX2RpZyA4IC8vIHVzZXJPZmZlcmVkTkZEQXBwSUQ6IHVpbnQ2NAoJY2FsbHN1YiBpc05GREFwcElEVmFsaWQKCgkvLyBwcm92aWRlZCBORkQgbXVzdCBiZSB2YWxpZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0MTkKCS8vIGFzc2VydCgKCS8vICAgICAgICAgcmF3Qnl0ZXMoQXBwSUQuZnJvbVVpbnQ2NCh1c2VyT2ZmZXJlZE5GREFwcElEKS5nbG9iYWxTdGF0ZSgnaS5vd25lci5hJykgYXMgQWRkcmVzcykgPT09IHJhd0J5dGVzKHN0YWtlcikgfHwKCS8vICAgICAgICAgICB0aGlzLmlzQWRkcmVzc0luTkZEQ0FBbGdvTGlzdCh1c2VyT2ZmZXJlZE5GREFwcElELCBzdGFrZXIpLAoJLy8gICAgICAgICAicHJvdmlkZWQgbmZkIGZvciBlbnRyeSBpc24ndCBvd25lZCBvciBsaW5rZWQgdG8gdGhlIHN0YWtlciIKCS8vICAgICAgICkKCWZyYW1lX2RpZyA4IC8vIHVzZXJPZmZlcmVkTkZEQXBwSUQ6IHVpbnQ2NAoJYnl0ZWMgOSAvLyAgImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KHVzZXJPZmZlcmVkTkZEQXBwSUQpLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKQoJYXNzZXJ0CglmcmFtZV9kaWcgMSAvLyBzdGFrZXI6IGFkZHJlc3MKCT09CglkdXAKCWJueiAqc2tpcF9vcjYKCWZyYW1lX2RpZyAxIC8vIHN0YWtlcjogYWRkcmVzcwoJZnJhbWVfZGlnIDggLy8gdXNlck9mZmVyZWRORkRBcHBJRDogdWludDY0CgljYWxsc3ViIGlzQWRkcmVzc0luTkZEQ0FBbGdvTGlzdAoJfHwKCipza2lwX29yNjoKCS8vIHByb3ZpZGVkIG5mZCBmb3IgZW50cnkgaXNuJ3Qgb3duZWQgb3IgbGlua2VkIHRvIHRoZSBzdGFrZXIKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDI2CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIGJ0b2koQXBwSUQuZnJvbVVpbnQ2NCh1c2VyT2ZmZXJlZE5GREFwcElEKS5nbG9iYWxTdGF0ZSgnaS5wYXJlbnRBcHBJRCcpIGFzIGJ5dGVzKSA9PT0KCS8vICAgICAgICAgICBjb25maWcuZW50cnlHYXRpbmdBc3NldHNbMF0sCgkvLyAgICAgICAgICdzcGVjaWZpZWQgbmZkIG11c3QgYmUgYSBzZWdtZW50IG9mIHRoZSBuZmQgdGhlIHZhbGlkYXRvciBzcGVjaWZpZWQgYXMgYSByZXF1aXJlbWVudCcKCS8vICAgICAgICkKCWZyYW1lX2RpZyA4IC8vIHVzZXJPZmZlcmVkTkZEQXBwSUQ6IHVpbnQ2NAoJcHVzaGJ5dGVzIDB4NjkyZTcwNjE3MjY1NmU3NDQxNzA3MDQ5NDQgLy8gImkucGFyZW50QXBwSUQiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NCh1c2VyT2ZmZXJlZE5GREFwcElEKS5nbG9iYWxTdGF0ZSgnaS5wYXJlbnRBcHBJRCcpCglhc3NlcnQKCWJ0b2kKCWZyYW1lX2RpZyAyIC8vIGNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDExMyA4CglidG9pCgk9PQoKCS8vIHNwZWNpZmllZCBuZmQgbXVzdCBiZSBhIHNlZ21lbnQgb2YgdGhlIG5mZCB0aGUgdmFsaWRhdG9yIHNwZWNpZmllZCBhcyBhIHJlcXVpcmVtZW50Cglhc3NlcnQKCippZjUwX2VuZDoKCXJldHN1YgoKLy8gaXNORkRBcHBJRFZhbGlkKG5mZEFwcElEOiB1aW50NjQpOiBib29sZWFuCi8vCi8vIENoZWNrcyBpZiB0aGUgZ2l2ZW4gTkZEIEFwcCBpZCBpcyB2YWxpZC4gIFVzaW5nIG9ubHkgdGhlIEFwcCBpZCB0aGVyZSdzIG5vIHZhbGlkYXRpb24gYWdhaW5zdCB0aGUgbmFtZSAoaWU6IHRoYXQgbmZkIFggaXMgbmFtZSBZKQovLyBTbyBpdCdzIGFzc3VtZWQgZm9yIHRoZSBjYWxsZXIsIHRoZSBhcHAgaWQgYWxvbmUgaXMgZmluZS4gIFRoZSBuYW1lIGlzIGZldGNoZWQgZnJvbSB0aGUgc3BlY2lmaWVkIGFwcCBpZCBhbmQgdGhlIHR3bwovLyB0b2dldGhlciBhcmUgdXNlZCBmb3IgdmFsaWRpdHkgY2hlY2sgY2FsbCB0byB0aGUgbmZkIHJlZ2lzdHJ5LgovLwovLyBAcGFyYW0ge3VpbnQ2NH0gbmZkQXBwSUQgLSBUaGUgTkZEIEFwcCBpZCB0byB2ZXJpZnkuCi8vCi8vIEByZXR1cm5zIHtib29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgTkZEIEFwcCBpZCBpcyB2YWxpZCwgb3RoZXJ3aXNlIGZhbHNlLgppc05GREFwcElEVmFsaWQ6Cglwcm90byAxIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDQ1CgkvLyB1c2VyT2ZmZXJlZE5GRE5hbWUgPSBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKS5nbG9iYWxTdGF0ZSgnaS5uYW1lJykgYXMgc3RyaW5nCglmcmFtZV9kaWcgLTEgLy8gbmZkQXBwSUQ6IHVpbnQ2NAoJcHVzaGJ5dGVzIDB4NjkyZTZlNjE2ZDY1IC8vICJpLm5hbWUiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJRCkuZ2xvYmFsU3RhdGUoJ2kubmFtZScpCglhc3NlcnQKCWZyYW1lX2J1cnkgMCAvLyB1c2VyT2ZmZXJlZE5GRE5hbWU6IHN0cmluZwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDQ3CgkvLyBzZW5kQXBwQ2FsbCh7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMubmZkUmVnaXN0cnlBcHBJZCksCgkvLyAgICAgICBhcHBsaWNhdGlvbkFyZ3M6IFsnaXNfdmFsaWRfbmZkX2FwcGlkJywgdXNlck9mZmVyZWRORkROYW1lLCBpdG9iKG5mZEFwcElEKV0sCgkvLyAgICAgICBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDQ4CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMubmZkUmVnaXN0cnlBcHBJZCkKCWludGMgMTUgLy8gVE1QTF9uZmRSZWdpc3RyeUFwcElkCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ0OQoJLy8gYXBwbGljYXRpb25BcmdzOiBbJ2lzX3ZhbGlkX25mZF9hcHBpZCcsIHVzZXJPZmZlcmVkTkZETmFtZSwgaXRvYihuZmRBcHBJRCldCglieXRlYyAxMyAvLyAgImlzX3ZhbGlkX25mZF9hcHBpZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMCAvLyB1c2VyT2ZmZXJlZE5GRE5hbWU6IHN0cmluZwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJRDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDUwCgkvLyBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKV0KCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJRDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9ucwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ1MgoJLy8gcmV0dXJuIGJ0b2kodGhpcy5pdHhuLmxhc3RMb2cpID09PSAxOwoJaXR4biBMYXN0TG9nCglidG9pCglpbnRjIDEgLy8gMQoJPT0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gaXNBZGRyZXNzSW5ORkRDQUFsZ29MaXN0KG5mZEFwcElEOiB1aW50NjQsIGFkZHJUb0ZpbmQ6IEFkZHJlc3MpOiBib29sZWFuCi8vCi8vIENoZWNrcyBpZiB0aGUgc3BlY2lmaWVkIGFkZHJlc3MgaXMgcHJlc2VudCBpbiBhbiBORkRzIGxpc3Qgb2YgdmVyaWZpZWQgYWRkcmVzc2VzLgovLyBUaGUgTkZEIGlzIGFzc3VtZWQgdG8gaGF2ZSBhbHJlYWR5IGJlZW4gdmFsaWRhdGVkIGFzIG9mZmljaWFsLgovLwovLyBAcGFyYW0ge3VpbnQ2NH0gbmZkQXBwSUQgLSBUaGUgTkZEIGFwcGxpY2F0aW9uIGlkLgovLyBAcGFyYW0ge0FkZHJlc3N9IGFkZHJUb0ZpbmQgLSBUaGUgYWRkcmVzcyB0byBmaW5kIGluIHRoZSB2LmNhQWxnby4wLmFzIHByb3BlcnR5Ci8vIEByZXR1cm4ge2Jvb2xlYW59IC0gYHRydWVgIGlmIHRoZSBhZGRyZXNzIGlzIHByZXNlbnQsIGBmYWxzZWAgb3RoZXJ3aXNlLgppc0FkZHJlc3NJbk5GRENBQWxnb0xpc3Q6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NjQKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQobmZkQXBwSUQpLAoJLy8gICAgICAgYXBwbGljYXRpb25BcmdzOiBbJ3JlYWRfcHJvcGVydHknLCAndi5jYUFsZ28uMC5hcyddLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDcgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ2NQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJRCkKCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJRDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ2NgoJLy8gYXBwbGljYXRpb25BcmdzOiBbJ3JlYWRfcHJvcGVydHknLCAndi5jYUFsZ28uMC5hcyddCglwdXNoYnl0ZXMgMHg3MjY1NjE2NDVmNzA3MjZmNzA2NTcyNzQ3OSAvLyAicmVhZF9wcm9wZXJ0eSIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglwdXNoYnl0ZXMgMHg3NjJlNjM2MTQxNmM2NzZmMmUzMDJlNjE3MyAvLyAidi5jYUFsZ28uMC5hcyIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDY4CgkvLyBjYUFsZ29EYXRhID0gdGhpcy5pdHhuLmxhc3RMb2cKCWl0eG4gTGFzdExvZwoJZnJhbWVfYnVyeSAwIC8vIGNhQWxnb0RhdGE6IGJ5dGVbXQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDY5CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IGNhQWxnb0RhdGEubGVuZ3RoOyBpICs9IDMyKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCipmb3JfMTA6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ2OQoJLy8gaSA8IGNhQWxnb0RhdGEubGVuZ3RoCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIGNhQWxnb0RhdGE6IGJ5dGVbXQoJbGVuCgk8CglieiAqZm9yXzEwX2VuZAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDcwCgkvLyBhZGRyID0gZXh0cmFjdDMoY2FBbGdvRGF0YSwgaSwgMzIpCglmcmFtZV9kaWcgMCAvLyBjYUFsZ29EYXRhOiBieXRlW10KCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50YyA0IC8vIDMyCglleHRyYWN0MwoJZnJhbWVfYnVyeSAyIC8vIGFkZHI6IGJ5dGVbXQoKCS8vICppZjUxX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NzEKCS8vIGFkZHIgIT09IHJhd0J5dGVzKGdsb2JhbHMuemVyb0FkZHJlc3MpICYmIGFkZHIgPT09IHJhd0J5dGVzKGFkZHJUb0ZpbmQpCglmcmFtZV9kaWcgMiAvLyBhZGRyOiBieXRlW10KCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCWR1cAoJYnogKnNraXBfYW5kMTAKCWZyYW1lX2RpZyAyIC8vIGFkZHI6IGJ5dGVbXQoJZnJhbWVfZGlnIC0yIC8vIGFkZHJUb0ZpbmQ6IEFkZHJlc3MKCT09CgkmJgoKKnNraXBfYW5kMTA6CglieiAqaWY1MV9lbmQKCgkvLyAqaWY1MV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ3MgoJLy8gcmV0dXJuIHRydWU7CglpbnRjIDEgLy8gMQoJYiAqaXNBZGRyZXNzSW5ORkRDQUFsZ29MaXN0KnJldHVybgoKKmlmNTFfZW5kOgoKKmZvcl8xMF9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDY5CgkvLyBpICs9IDMyCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWludGMgNCAvLyAzMgoJKwoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzEwCgoqZm9yXzEwX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDc1CgkvLyByZXR1cm4gZmFsc2U7CglpbnRjIDAgLy8gMAoKKmlzQWRkcmVzc0luTkZEQ0FBbGdvTGlzdCpyZXR1cm46CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAyCglyZXRzdWIKCi8vIGFsZ29TYXR1cmF0aW9uTGV2ZWwoKTogdWludDY0Ci8vCi8vIFJldHVybnMgdGhlIG1heGltdW0gYWxsb3dlZCBzdGFrZSBwZXIgdmFsaWRhdG9yIGJhc2VkIG9uIGEgcGVyY2VudGFnZSBvZiBhbGwgY3VycmVudCBvbmxpbmUgc3Rha2UgYmVmb3JlCi8vIHRoZSB2YWxpZGF0b3IgaXMgY29uc2lkZXJlZCBzYXR1cmF0ZWQgLSB3aGVyZSByZXdhcmRzIGFyZSBkaW1pbmlzaGVkLgovLyBOT1RFOiB0aGlzIGZ1bmN0aW9uIGlzIGRlZmluZWQgdHdpY2UgLSBoZXJlIGFuZCBpbiBzdGFraW5nIHBvb2wgY29udHJhY3QuICBCb3RoIG11c3QgYmUgaWRlbnRpY2FsLgphbGdvU2F0dXJhdGlvbkxldmVsOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ4NAoJLy8gb25saW5lID0gdGhpcy5nZXRDdXJyZW50T25saW5lU3Rha2UoKQoJY2FsbHN1YiBnZXRDdXJyZW50T25saW5lU3Rha2UKCWZyYW1lX2J1cnkgMCAvLyBvbmxpbmU6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDg2CgkvLyByZXR1cm4gd2lkZVJhdGlvKFtvbmxpbmUsIE1BWF9WQUxJREFUT1JfU09GVF9QQ1RfT0ZfT05MSU5FXzFERUNJTUFMXSwgWzEwMDBdKTsKCWZyYW1lX2RpZyAwIC8vIG9ubGluZTogdWludDY0CglwdXNoaW50IDEwMAoJbXVsdwoJaW50YyAwIC8vIDAKCWludGMgMzEgLy8gMTAwMAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gbWF4QWxsb3dlZFN0YWtlKCk6IHVpbnQ2NAovLwovLyBSZXR1cm5zIHRoZSBNQVhJTVVNIGFsbG93ZWQgc3Rha2UgcGVyIHZhbGlkYXRvciBiYXNlZCBvbiBhIHBlcmNlbnRhZ2Ugb2YgYWxsIGN1cnJlbnQgb25saW5lIHN0YWtlLgovLyBBZGRpbmcgc3Rha2UgaXMgY29tcGxldGVseSBibG9ja2VkIGF0IHRoaXMgYW1vdW50LgptYXhBbGxvd2VkU3Rha2U6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDk0CgkvLyBvbmxpbmUgPSB0aGlzLmdldEN1cnJlbnRPbmxpbmVTdGFrZSgpCgljYWxsc3ViIGdldEN1cnJlbnRPbmxpbmVTdGFrZQoJZnJhbWVfYnVyeSAwIC8vIG9ubGluZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0OTYKCS8vIHJldHVybiB3aWRlUmF0aW8oW29ubGluZSwgTUFYX1ZBTElEQVRPUl9IQVJEX1BDVF9PRl9PTkxJTkVfMURFQ0lNQUxdLCBbMTAwMF0pOwoJZnJhbWVfZGlnIDAgLy8gb25saW5lOiB1aW50NjQKCXB1c2hpbnQgMTUwCgltdWx3CglpbnRjIDAgLy8gMAoJaW50YyAzMSAvLyAxMDAwCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBtYXhBbGdvQWxsb3dlZFBlclBvb2woKTogdWludDY0Ci8vCi8vIFJldHVybnMgdGhlIE1BWElNVU0gYWxsb3dlZCBzdGFrZSBwZXIgcG9vbCBhbmQgc3RpbGwgcmVjZWl2ZSBpbmNlbnRpdmVzIC0gd2UnbGwgdHJlYXQgdGhpcyBhcyB0aGUgJ21heCBwZXIgcG9vbCcKbWF4QWxnb0FsbG93ZWRQZXJQb29sOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MDQKCS8vIHJldHVybiA3MF8wMDBfMDAwXzAwMF8wMDA7CglwdXNoaW50IDcwXzAwMF8wMDBfMDAwXzAwMAoJcmV0c3ViCgovLyBnZXRDdXJyZW50T25saW5lU3Rha2UoKTogdWludDY0CmdldEN1cnJlbnRPbmxpbmVTdGFrZToKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTA5CgkvLyByZXR1cm4gMl8wMDBfMDAwXzAwMF8wMDBfMDAwOwoJcHVzaGludCAyXzAwMF8wMDBfMDAwXzAwMF8wMDAKCXJldHN1YgoKLy8gbWluQmFsYW5jZUZvckFjY291bnQoY29udHJhY3RzOiB1aW50NjQsIGV4dHJhUGFnZXM6IHVpbnQ2NCwgYXNzZXRzOiB1aW50NjQsIGxvY2FsSW50czogdWludDY0LCBsb2NhbEJ5dGVzOiB1aW50NjQsIGdsb2JhbEludHM6IHVpbnQ2NCwgZ2xvYmFsQnl0ZXM6IHVpbnQ2NCk6IHVpbnQ2NAptaW5CYWxhbmNlRm9yQWNjb3VudDoKCXByb3RvIDcgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAxIC8vIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MjEKCS8vIG1pbkJhbCA9IEFMR09SQU5EX0FDQ09VTlRfTUlOX0JBTEFOQ0UKCWludGMgMTYgLy8gMTAwMDAwCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUyMgoJLy8gbWluQmFsICs9IGNvbnRyYWN0cyAqIEFQUExJQ0FUSU9OX0JBU0VfRkVFCglmcmFtZV9kaWcgMCAvLyBtaW5CYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIGNvbnRyYWN0czogdWludDY0CglpbnRjIDE2IC8vIDEwMDAwMAoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MjMKCS8vIG1pbkJhbCArPSBleHRyYVBhZ2VzICogQVBQTElDQVRJT05fQkFTRV9GRUUKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gZXh0cmFQYWdlczogdWludDY0CglpbnRjIDE2IC8vIDEwMDAwMAoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MjQKCS8vIG1pbkJhbCArPSBhc3NldHMgKiBBU1NFVF9IT0xESU5HX0ZFRQoJZnJhbWVfZGlnIDAgLy8gbWluQmFsOiB1aW50NjQKCWZyYW1lX2RpZyAtMyAvLyBhc3NldHM6IHVpbnQ2NAoJaW50YyAxNiAvLyAxMDAwMDAKCSoKCSsKCWZyYW1lX2J1cnkgMCAvLyBtaW5CYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTI1CgkvLyBtaW5CYWwgKz0gbG9jYWxJbnRzICogU1NDX1ZBTFVFX1VJTlQKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CglmcmFtZV9kaWcgLTQgLy8gbG9jYWxJbnRzOiB1aW50NjQKCWludGMgMzIgLy8gMjg1MDAKCSoKCSsKCWZyYW1lX2J1cnkgMCAvLyBtaW5CYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTI2CgkvLyBtaW5CYWwgKz0gZ2xvYmFsSW50cyAqIFNTQ19WQUxVRV9VSU5UCglmcmFtZV9kaWcgMCAvLyBtaW5CYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIC02IC8vIGdsb2JhbEludHM6IHVpbnQ2NAoJaW50YyAzMiAvLyAyODUwMAoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MjcKCS8vIG1pbkJhbCArPSBsb2NhbEJ5dGVzICogU1NDX1ZBTFVFX0JZVEVTCglmcmFtZV9kaWcgMCAvLyBtaW5CYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIC01IC8vIGxvY2FsQnl0ZXM6IHVpbnQ2NAoJaW50YyAzMyAvLyA1MDAwMAoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MjgKCS8vIG1pbkJhbCArPSBnbG9iYWxCeXRlcyAqIFNTQ19WQUxVRV9CWVRFUwoJZnJhbWVfZGlnIDAgLy8gbWluQmFsOiB1aW50NjQKCWZyYW1lX2RpZyAtNyAvLyBnbG9iYWxCeXRlczogdWludDY0CglpbnRjIDMzIC8vIDUwMDAwCgkqCgkrCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUyOQoJLy8gcmV0dXJuIG1pbkJhbDsKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGNvc3RGb3JCb3hTdG9yYWdlKHRvdGFsTnVtQnl0ZXM6IHVpbnQ2NCk6IHVpbnQ2NApjb3N0Rm9yQm94U3RvcmFnZToKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTM2CgkvLyByZXR1cm4gU0NCT1hfUEVSQk9YICsgdG90YWxOdW1CeXRlcyAqIFNDQk9YX1BFUkJZVEU7CglwdXNoaW50IDI1MDAKCWZyYW1lX2RpZyAtMSAvLyB0b3RhbE51bUJ5dGVzOiB1aW50NjQKCXB1c2hpbnQgNDAwCgkqCgkrCglyZXRzdWIKCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgxYjVlODJjNiAvLyBtZXRob2QgImluaXRTdGFraW5nQ29udHJhY3QodWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHg3OTQ3MmQ4MyAvLyBtZXRob2QgImxvYWRTdGFraW5nQ29udHJhY3REYXRhKHVpbnQ2NCxieXRlW10pdm9pZCIKCXB1c2hieXRlcyAweDVmN2FjZmQ5IC8vIG1ldGhvZCAiZmluYWxpemVTdGFraW5nQ29udHJhY3QoKXZvaWQiCglwdXNoYnl0ZXMgMHgzMTcyY2E5ZCAvLyBtZXRob2QgImdhcygpdm9pZCIKCXB1c2hieXRlcyAweDhhODcxNDJkIC8vIG1ldGhvZCAiZ2V0TWJyQW1vdW50cygpKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkiCglwdXNoYnl0ZXMgMHhkMTM2NmNjMyAvLyBtZXRob2QgImdldFByb3RvY29sQ29uc3RyYWludHMoKSh1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KSIKCXB1c2hieXRlcyAweDNiMDQ1YzVjIC8vIG1ldGhvZCAiZ2V0TnVtVmFsaWRhdG9ycygpdWludDY0IgoJcHVzaGJ5dGVzIDB4NzVhZmY2MWQgLy8gbWV0aG9kICJnZXRWYWxpZGF0b3JDb25maWcodWludDY0KSh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KSIKCXB1c2hieXRlcyAweDFmMmYwMTA5IC8vIG1ldGhvZCAiZ2V0VmFsaWRhdG9yU3RhdGUodWludDY0KSh1aW50MTYsdWludDY0LHVpbnQ2NCx1aW50NjQpIgoJcHVzaGJ5dGVzIDB4MmZhMjJjNGIgLy8gbWV0aG9kICJnZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXIodWludDY0KShhZGRyZXNzLGFkZHJlc3MpIgoJcHVzaGJ5dGVzIDB4OTEwZTk0YWMgLy8gbWV0aG9kICJnZXRQb29scyh1aW50NjQpKHVpbnQ2NCx1aW50MTYsdWludDY0KVtdIgoJcHVzaGJ5dGVzIDB4NTcyNzY3ZDEgLy8gbWV0aG9kICJnZXRQb29sQXBwSWQodWludDY0LHVpbnQ2NCl1aW50NjQiCglwdXNoYnl0ZXMgMHg5YjUwNGFhZiAvLyBtZXRob2QgImdldFBvb2xJbmZvKCh1aW50NjQsdWludDY0LHVpbnQ2NCkpKHVpbnQ2NCx1aW50MTYsdWludDY0KSIKCXB1c2hieXRlcyAweGZiYzYzMTc4IC8vIG1ldGhvZCAiZ2V0Q3VyTWF4U3Rha2VQZXJQb29sKHVpbnQ2NCl1aW50NjQiCglwdXNoYnl0ZXMgMHgyNDQ5OGNmNCAvLyBtZXRob2QgImRvZXNTdGFrZXJOZWVkVG9QYXlNQlIoYWRkcmVzcylib29sIgoJcHVzaGJ5dGVzIDB4Zjg0NmRkN2EgLy8gbWV0aG9kICJnZXRTdGFrZWRQb29sc0ZvckFjY291bnQoYWRkcmVzcykodWludDY0LHVpbnQ2NCx1aW50NjQpW10iCglwdXNoYnl0ZXMgMHg4MzA1MDUwMSAvLyBtZXRob2QgImdldFRva2VuUGF5b3V0UmF0aW8odWludDY0KSh1aW50NjRbMjRdLHVpbnQ2NCkiCglwdXNoYnl0ZXMgMHg3YmJiNmM4ZCAvLyBtZXRob2QgImdldE5vZGVQb29sQXNzaWdubWVudHModWludDY0KSgodWludDY0WzNdKVs4XSkiCglwdXNoYnl0ZXMgMHhmODM5NDE0YSAvLyBtZXRob2QgImdldE5GRFJlZ2lzdHJ5SUQoKXVpbnQ2NCIKCXB1c2hieXRlcyAweDBjMzE3Y2ZiIC8vIG1ldGhvZCAiYWRkVmFsaWRhdG9yKHBheSxzdHJpbmcsKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpKXVpbnQ2NCIKCXB1c2hieXRlcyAweDNlMjg4OTcyIC8vIG1ldGhvZCAiY2hhbmdlVmFsaWRhdG9yTWFuYWdlcih1aW50NjQsYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4ZGQ1ZmFhZGEgLy8gbWV0aG9kICJjaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvKHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHgxOGFhYzdhNyAvLyBtZXRob2QgImNoYW5nZVZhbGlkYXRvck5GRCh1aW50NjQsdWludDY0LHN0cmluZyl2b2lkIgoJcHVzaGJ5dGVzIDB4Zjk5ZWY1NGQgLy8gbWV0aG9kICJjaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyh1aW50NjQsYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4MTA4MDlkNGQgLy8gbWV0aG9kICJjaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvKHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHhlNzc4ZGQ1YSAvLyBtZXRob2QgImFkZFBvb2wocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KSIKCXB1c2hieXRlcyAweGJmNTI1OWQwIC8vIG1ldGhvZCAiYWRkU3Rha2UocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KSIKCXB1c2hieXRlcyAweDRkZjhkODZlIC8vIG1ldGhvZCAic2V0VG9rZW5QYXlvdXRSYXRpbyh1aW50NjQpKHVpbnQ2NFsyNF0sdWludDY0KSIKCXB1c2hieXRlcyAweDQxOGZjZWZjIC8vIG1ldGhvZCAic3Rha2VVcGRhdGVkVmlhUmV3YXJkcygodWludDY0LHVpbnQ2NCx1aW50NjQpLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkIgoJcHVzaGJ5dGVzIDB4YTJkYzUxYjUgLy8gbWV0aG9kICJzdGFrZVJlbW92ZWQoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYm9vbCl2b2lkIgoJcHVzaGJ5dGVzIDB4Mjg3M2Y1MDQgLy8gbWV0aG9kICJmaW5kUG9vbEZvclN0YWtlcih1aW50NjQsYWRkcmVzcyx1aW50NjQpKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKSIKCXB1c2hieXRlcyAweDA1NDdmNGZlIC8vIG1ldGhvZCAibW92ZVBvb2xUb05vZGUodWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweGNiNjY4MzU4IC8vIG1ldGhvZCAiZW1wdHlUb2tlblJld2FyZHModWludDY0LGFkZHJlc3MpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9pbml0U3Rha2luZ0NvbnRyYWN0ICphYmlfcm91dGVfbG9hZFN0YWtpbmdDb250cmFjdERhdGEgKmFiaV9yb3V0ZV9maW5hbGl6ZVN0YWtpbmdDb250cmFjdCAqYWJpX3JvdXRlX2dhcyAqYWJpX3JvdXRlX2dldE1ickFtb3VudHMgKmFiaV9yb3V0ZV9nZXRQcm90b2NvbENvbnN0cmFpbnRzICphYmlfcm91dGVfZ2V0TnVtVmFsaWRhdG9ycyAqYWJpX3JvdXRlX2dldFZhbGlkYXRvckNvbmZpZyAqYWJpX3JvdXRlX2dldFZhbGlkYXRvclN0YXRlICphYmlfcm91dGVfZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyICphYmlfcm91dGVfZ2V0UG9vbHMgKmFiaV9yb3V0ZV9nZXRQb29sQXBwSWQgKmFiaV9yb3V0ZV9nZXRQb29sSW5mbyAqYWJpX3JvdXRlX2dldEN1ck1heFN0YWtlUGVyUG9vbCAqYWJpX3JvdXRlX2RvZXNTdGFrZXJOZWVkVG9QYXlNQlIgKmFiaV9yb3V0ZV9nZXRTdGFrZWRQb29sc0ZvckFjY291bnQgKmFiaV9yb3V0ZV9nZXRUb2tlblBheW91dFJhdGlvICphYmlfcm91dGVfZ2V0Tm9kZVBvb2xBc3NpZ25tZW50cyAqYWJpX3JvdXRlX2dldE5GRFJlZ2lzdHJ5SUQgKmFiaV9yb3V0ZV9hZGRWYWxpZGF0b3IgKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyICphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yU3Vuc2V0SW5mbyAqYWJpX3JvdXRlX2NoYW5nZVZhbGlkYXRvck5GRCAqYWJpX3JvdXRlX2NoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzICphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyAqYWJpX3JvdXRlX2FkZFBvb2wgKmFiaV9yb3V0ZV9hZGRTdGFrZSAqYWJpX3JvdXRlX3NldFRva2VuUGF5b3V0UmF0aW8gKmFiaV9yb3V0ZV9zdGFrZVVwZGF0ZWRWaWFSZXdhcmRzICphYmlfcm91dGVfc3Rha2VSZW1vdmVkICphYmlfcm91dGVfZmluZFBvb2xGb3JTdGFrZXIgKmFiaV9yb3V0ZV9tb3ZlUG9vbFRvTm9kZSAqYWJpX3JvdXRlX2VtcHR5VG9rZW5SZXdhcmRzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbjoKCXB1c2hieXRlcyAweDQ2Zjc2NTMzIC8vIG1ldGhvZCAidXBkYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgVXBkYXRlQXBwbGljYXRpb24KCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAwIDEgOCAyNCAzMiAxOCAyNjggNiAyNDIgMyAyIDEwIDI1MiAyNjAgNzAwIDEwMDAwMCA5MDAgNDAgMjAwIFRNUExfbmZkUmVnaXN0cnlBcHBJZCA0IDcyIDE5MiAyNDQgMTAwMDAwMCA0MDk2IDUgMjI2IDMwMCA0MzIgODkyIDEwMDAgMjg1MDAgNTAwMDAgMTEgODAgMTQ1IDE1MyAyMDkKYnl0ZWNibG9jayAweDc2IDB4IDB4MTUxZjdjNzUgMHg3MzcwNzMgMHg3Mzc0NjE2YjY1NjQgMHgwMCAweDcwNmY2ZjZjNTQ2NTZkNzA2YzYxNzQ2NTQxNzA3MDcyNmY3NjYxNmM0Mjc5NzQ2NTczIDB4NmU3NTZkNTM3NDYxNmI2NTcyNzMgMHgwYTgxMDEgMHg2OTJlNmY3NzZlNjU3MjJlNjEgMHgwMDAwMDAwMDAwMDAwMDAwIDB4Njk2ZTY5NzQgMHg2ZTc1NmQ1NiAweDY5NzM1Zjc2NjE2YzY5NjQ1ZjZlNjY2NDVmNjE3MDcwNjk2NCAweDYzZjNmMjhiCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNS4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnRjIDcgLy8gNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbiAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV91cGRhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgdXBkYXRlQXBwbGljYXRpb24KCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHVwZGF0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKdXBkYXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjAyCgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBBZGRyZXNzLmZyb21BZGRyZXNzKCdMWjRWMklSVkxDWEZKSzRSRUpWNFRBR0VLRVlUQTJHTVI2VEMyMzQ0T0IzTDNBRjNNV1haNlpBRklRJykpCgl0eG4gU2VuZGVyCglwdXNoYnl0ZXMgMHg1ZTc5NWQyMjM1NThhZTU0YWI5MTIyNmJjOTgwYzQ1MTMxMzA2OGNjOGZhNjJkNmY5YzcwNzZiZDgwYmI2NWFmIC8vIGFkZHIgIkxaNFYySVJWTENYRkpLNFJFSlY0VEFHRUtFWVRBMkdNUjZUQzIzNDRPQjNMM0FGM01XWFo2WkFGSVEiCgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIwNAoJLy8gdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5kZWxldGUoKQoJYnl0ZWMgNiAvLyAgInBvb2xUZW1wbGF0ZUFwcHJvdmFsQnl0ZXMiCglib3hfZGVsCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIwNQoJLy8gdGhpcy5zdGFraW5nUG9vbEluaXRpYWxpemVkLnZhbHVlID0gZmFsc2UKCWJ5dGVjIDExIC8vICAiaW5pdCIKCWludGMgMCAvLyAwCglieXRlYyA1IC8vIDB4MDAKCWludGMgMCAvLyAwCgl1bmNvdmVyIDIKCXNldGJpdAoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gY3JlYXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgY3JlYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgY3JlYXRlQXBwbGljYXRpb24KCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKY3JlYXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjA5CgkvLyB0aGlzLnN0YWtpbmdQb29sSW5pdGlhbGl6ZWQudmFsdWUgPSBmYWxzZQoJYnl0ZWMgMTEgLy8gICJpbml0IgoJaW50YyAwIC8vIDAKCWJ5dGVjIDUgLy8gMHgwMAoJaW50YyAwIC8vIDAKCXVuY292ZXIgMgoJc2V0Yml0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMTAKCS8vIHRoaXMubnVtVmFsaWRhdG9ycy52YWx1ZSA9IDAKCWJ5dGVjIDEyIC8vICAibnVtViIKCWludGMgMCAvLyAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMTEKCS8vIHRoaXMubnVtU3Rha2Vycy52YWx1ZSA9IDAKCWJ5dGVjIDcgLy8gICJudW1TdGFrZXJzIgoJaW50YyAwIC8vIDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIxMgoJLy8gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgPSAwCglieXRlYyA0IC8vICAic3Rha2VkIgoJaW50YyAwIC8vIDAKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGluaXRTdGFraW5nQ29udHJhY3QodWludDY0KXZvaWQKKmFiaV9yb3V0ZV9pbml0U3Rha2luZ0NvbnRyYWN0OgoJLy8gYXBwcm92YWxQcm9ncmFtU2l6ZTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBpbml0U3Rha2luZ0NvbnRyYWN0KHVpbnQ2NCl2b2lkCgljYWxsc3ViIGluaXRTdGFraW5nQ29udHJhY3QKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGluaXRTdGFraW5nQ29udHJhY3QoYXBwcm92YWxQcm9ncmFtU2l6ZTogdWludDY0KTogdm9pZAppbml0U3Rha2luZ0NvbnRyYWN0OgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIxNwoJLy8gdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5jcmVhdGUoYXBwcm92YWxQcm9ncmFtU2l6ZSkKCWJ5dGVjIDYgLy8gICJwb29sVGVtcGxhdGVBcHByb3ZhbEJ5dGVzIgoJZnJhbWVfZGlnIC0xIC8vIGFwcHJvdmFsUHJvZ3JhbVNpemU6IHVpbnQ2NAoJYm94X2NyZWF0ZQoJcG9wCglyZXRzdWIKCi8vIGxvYWRTdGFraW5nQ29udHJhY3REYXRhKHVpbnQ2NCxieXRlW10pdm9pZAoqYWJpX3JvdXRlX2xvYWRTdGFraW5nQ29udHJhY3REYXRhOgoJLy8gZGF0YTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglleHRyYWN0IDIgMAoKCS8vIG9mZnNldDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBsb2FkU3Rha2luZ0NvbnRyYWN0RGF0YSh1aW50NjQsYnl0ZVtdKXZvaWQKCWNhbGxzdWIgbG9hZFN0YWtpbmdDb250cmFjdERhdGEKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGxvYWRTdGFraW5nQ29udHJhY3REYXRhKG9mZnNldDogdWludDY0LCBkYXRhOiBieXRlcyk6IHZvaWQKbG9hZFN0YWtpbmdDb250cmFjdERhdGE6Cglwcm90byAyIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjIxCgkvLyBhc3NlcnQoIXRoaXMuc3Rha2luZ1Bvb2xJbml0aWFsaXplZC52YWx1ZSkKCWJ5dGVjIDExIC8vICAiaW5pdCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDAgLy8gMAoJZ2V0Yml0CgkhCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjIyCgkvLyB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLnJlcGxhY2Uob2Zmc2V0LCBkYXRhKQoJYnl0ZWMgNiAvLyAgInBvb2xUZW1wbGF0ZUFwcHJvdmFsQnl0ZXMiCglmcmFtZV9kaWcgLTEgLy8gb2Zmc2V0OiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBkYXRhOiBieXRlcwoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gZmluYWxpemVTdGFraW5nQ29udHJhY3QoKXZvaWQKKmFiaV9yb3V0ZV9maW5hbGl6ZVN0YWtpbmdDb250cmFjdDoKCS8vIGV4ZWN1dGUgZmluYWxpemVTdGFraW5nQ29udHJhY3QoKXZvaWQKCWNhbGxzdWIgZmluYWxpemVTdGFraW5nQ29udHJhY3QKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGZpbmFsaXplU3Rha2luZ0NvbnRyYWN0KCk6IHZvaWQKZmluYWxpemVTdGFraW5nQ29udHJhY3Q6Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjI2CgkvLyB0aGlzLnN0YWtpbmdQb29sSW5pdGlhbGl6ZWQudmFsdWUgPSB0cnVlCglieXRlYyAxMSAvLyAgImluaXQiCglpbnRjIDEgLy8gMQoJYnl0ZWMgNSAvLyAweDAwCglpbnRjIDAgLy8gMAoJdW5jb3ZlciAyCglzZXRiaXQKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGdhcygpdm9pZAoqYWJpX3JvdXRlX2dhczoKCS8vIGV4ZWN1dGUgZ2FzKCl2b2lkCgljYWxsc3ViIGdhcwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2FzKCk6IHZvaWQKLy8KLy8gZ2FzIGlzIGEgZHVtbXkgbm8tb3AgY2FsbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHBvb2wtdXAgcmVzb3VyY2UgcmVmZXJlbmNlcyBhbmQgb3Bjb2RlIGNvc3QKZ2FzOgoJcHJvdG8gMCAwCglyZXRzdWIKCi8vIGdldE1ickFtb3VudHMoKSh1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfZ2V0TWJyQW1vdW50czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMiAvLyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBnZXRNYnJBbW91bnRzKCkodWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJY2FsbHN1YiBnZXRNYnJBbW91bnRzCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2V0TWJyQW1vdW50cygpOiBNYnJBbW91bnRzCi8vCi8vIFJldHVybnMgdGhlIE1CUiBhbW91bnRzIG5lZWRlZCBmb3IgdmFyaW91cyBhY3Rpb25zOgovLyBbCi8vIGFkZFZhbGlkYXRvck1icjogdWludDY0IC0gbWJyIG5lZWRlZCB0byBhZGQgYSBuZXcgdmFsaWRhdG9yIC0gcGFpZCB0byB2YWxpZGF0b3IgY29udHJhY3QKLy8gYWRkUG9vbE1icjogdWludDY0IC0gbWJyIG5lZWRlZCB0byBhZGQgYSBuZXcgcG9vbCAtIHBhaWQgdG8gdmFsaWRhdG9yCi8vIHBvb2xJbml0TWJyOiB1aW50NjQgLSBtYnIgbmVlZGVkIHRvIGluaXRTdG9yYWdlKCkgb2YgcG9vbCAtIHBhaWQgdG8gcG9vbCBpdHNlbGYKLy8gYWRkU3Rha2VyTWJyOiB1aW50NjQgLSBtYnIgc3Rha2VyIG5lZWRzIHRvIGFkZCB0byBmaXJzdCBzdGFraW5nIHBheW1lbnQgKHN0YXlzIHcvIHZhbGlkYXRvcikKLy8gXQpnZXRNYnJBbW91bnRzOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjI0NgoJLy8gcmV0dXJuIHsKCS8vICAgICAgIGFkZFZhbGlkYXRvck1icjogdGhpcy5jb3N0Rm9yQm94U3RvcmFnZSgxIC8qIHYgcHJlZml4ICovICsgbGVuPFZhbGlkYXRvcklkVHlwZT4oKSArIGxlbjxWYWxpZGF0b3JJbmZvPigpKSwKCS8vICAgICAgIGFkZFBvb2xNYnI6IHRoaXMubWluQmFsYW5jZUZvckFjY291bnQoCgkvLyAgICAgICAgIDEsCgkvLyAgICAgICAgIC8vIHdlIGNvdWxkIGNhbGN1bGF0ZSB0aGlzIGRpcmVjdGx5IGJ5IHJlZmVyZW5jaW5nIHRoZSBzaXplIG9mIHN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtIGJ1dCBpdCB3b3VsZAoJLy8gICAgICAgICAvLyBtZWFuIG91ciBjYWxsZXJzIHdvdWxkIGhhdmUgdG8gcmVmZXJlbmNlIHRoZSBib3ggQU5EIGJ1eSB1cCBpL28gLSBzbyBqdXN0IGdvIG1heCBvbiBleHRyYSBwYWdlcwoJLy8gICAgICAgICAzLAoJLy8gICAgICAgICAwLAoJLy8gICAgICAgICAwLAoJLy8gICAgICAgICAwLAoJLy8gICAgICAgICBTdGFraW5nUG9vbC5zY2hlbWEuZ2xvYmFsLm51bVVpbnQsCgkvLyAgICAgICAgIFN0YWtpbmdQb29sLnNjaGVtYS5nbG9iYWwubnVtQnl0ZVNsaWNlCgkvLyAgICAgICApLAoJLy8gICAgICAgcG9vbEluaXRNYnI6CgkvLyAgICAgICAgIEFMR09SQU5EX0FDQ09VTlRfTUlOX0JBTEFOQ0UgKwoJLy8gICAgICAgICB0aGlzLmNvc3RGb3JCb3hTdG9yYWdlKDcgLyogJ3N0YWtlcnMnIG5hbWUgKi8gKyBsZW48U3Rha2VkSW5mbz4oKSAqIE1BWF9TVEFLRVJTX1BFUl9QT09MKSwKCS8vICAgICAgIGFkZFN0YWtlck1icjoKCS8vICAgICAgICAgLy8gaG93IG11Y2ggdG8gY2hhcmdlIGZvciBmaXJzdCB0aW1lIGEgc3Rha2VyIGFkZHMgc3Rha2UgLSBzaW5jZSB3ZSBhZGQgYSB0cmFja2luZyBib3ggcGVyIHN0YWtlcgoJLy8gICAgICAgICB0aGlzLmNvc3RGb3JCb3hTdG9yYWdlKDMgLyogJ3NwcycgcHJlZml4ICovICsgbGVuPEFkZHJlc3M+KCkgKyBsZW48VmFsaWRhdG9yUG9vbEtleT4oKSAqIE1BWF9QT09MU19QRVJfU1RBS0VSKSwgLy8gc2l6ZSBvZiBrZXkgKyBhbGwgdmFsdWVzCgkvLyAgICAgfTsKCXB1c2hpbnQgMTEwMQoJY2FsbHN1YiBjb3N0Rm9yQm94U3RvcmFnZQoJaXRvYgoJaW50YyA5IC8vIDMKCWludGMgMzQgLy8gMTEKCWludGMgMCAvLyAwCglkdXBuIDIKCWludGMgOSAvLyAzCglpbnRjIDEgLy8gMQoJY2FsbHN1YiBtaW5CYWxhbmNlRm9yQWNjb3VudAoJaXRvYgoJY29uY2F0CglpbnRjIDE1IC8vIDEwMDAwMAoJcHVzaGludCAxMjgwNwoJY2FsbHN1YiBjb3N0Rm9yQm94U3RvcmFnZQoJKwoJaXRvYgoJY29uY2F0CglwdXNoaW50IDE3OQoJY2FsbHN1YiBjb3N0Rm9yQm94U3RvcmFnZQoJaXRvYgoJY29uY2F0CglyZXRzdWIKCi8vIGdldFByb3RvY29sQ29uc3RyYWludHMoKSh1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2dldFByb3RvY29sQ29uc3RyYWludHM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZ2V0UHJvdG9jb2xDb25zdHJhaW50cygpKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgljYWxsc3ViIGdldFByb3RvY29sQ29uc3RyYWludHMKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnZXRQcm90b2NvbENvbnN0cmFpbnRzKCk6IENvbnN0cmFpbnRzCi8vCi8vIFJldHVybnMgdGhlIHByb3RvY29sIGNvbnN0cmFpbnRzIHNvIHRoYXQgVUlzIGNhbiBsaW1pdCB3aGF0IHVzZXJzIHNwZWNpZnkgZm9yIHZhbGlkYXRvciBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMuCmdldFByb3RvY29sQ29uc3RyYWludHM6Cglwcm90byAwIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjcyCgkvLyByZXR1cm4gewoJLy8gICAgICAgZXBvY2hQYXlvdXRSb3VuZHNNaW46IE1JTl9FUE9DSF9MRU5HVEgsCgkvLyAgICAgICBlcG9jaFBheW91dFJvdW5kc01heDogTUFYX0VQT0NIX0xFTkdUSCwKCS8vICAgICAgIG1pblBjdFRvVmFsaWRhdG9yV0ZvdXJEZWNpbWFsczogTUlOX1BDVF9UT19WQUxJREFUT1IsCgkvLyAgICAgICBtYXhQY3RUb1ZhbGlkYXRvcldGb3VyRGVjaW1hbHM6IE1BWF9QQ1RfVE9fVkFMSURBVE9SLAoJLy8gICAgICAgbWluRW50cnlTdGFrZTogTUlOX0FMR09fU1RBS0VfUEVSX1BPT0wsCgkvLyAgICAgICBtYXhBbGdvUGVyUG9vbDogdGhpcy5tYXhBbGdvQWxsb3dlZFBlclBvb2woKSwKCS8vICAgICAgIG1heEFsZ29QZXJWYWxpZGF0b3I6IHRoaXMubWF4QWxsb3dlZFN0YWtlKCksCgkvLyAgICAgICBhbXRDb25zaWRlcmVkU2F0dXJhdGVkOiB0aGlzLmFsZ29TYXR1cmF0aW9uTGV2ZWwoKSwKCS8vICAgICAgIG1heE5vZGVzOiBNQVhfTk9ERVMsCgkvLyAgICAgICBtYXhQb29sc1Blck5vZGU6IE1BWF9QT09MU19QRVJfTk9ERSwKCS8vICAgICAgIG1heFN0YWtlcnNQZXJQb29sOiBNQVhfU1RBS0VSU19QRVJfUE9PTCwKCS8vICAgICB9OwoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwZjQyNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBmNDI0MDAwMDAwMDAwMDAwZjQyNDAKCWNhbGxzdWIgbWF4QWxnb0FsbG93ZWRQZXJQb29sCglpdG9iCgljb25jYXQKCWNhbGxzdWIgbWF4QWxsb3dlZFN0YWtlCglpdG9iCgljb25jYXQKCWNhbGxzdWIgYWxnb1NhdHVyYXRpb25MZXZlbAoJaXRvYgoJY29uY2F0CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDA4Cgljb25jYXQKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDMKCWNvbmNhdAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDBjOAoJY29uY2F0CglyZXRzdWIKCi8vIGdldE51bVZhbGlkYXRvcnMoKXVpbnQ2NAoqYWJpX3JvdXRlX2dldE51bVZhbGlkYXRvcnM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZ2V0TnVtVmFsaWRhdG9ycygpdWludDY0CgljYWxsc3ViIGdldE51bVZhbGlkYXRvcnMKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnZXROdW1WYWxpZGF0b3JzKCk6IHVpbnQ2NAovLwovLyBSZXR1cm5zIHRoZSBjdXJyZW50IG51bWJlciBvZiB2YWxpZGF0b3JzCmdldE51bVZhbGlkYXRvcnM6Cglwcm90byAwIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjkyCgkvLyByZXR1cm4gdGhpcy5udW1WYWxpZGF0b3JzLnZhbHVlOwoJYnl0ZWMgMTIgLy8gICJudW1WIgoJYXBwX2dsb2JhbF9nZXQKCXJldHN1YgoKLy8gZ2V0VmFsaWRhdG9yQ29uZmlnKHVpbnQ2NCkodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKKmFiaV9yb3V0ZV9nZXRWYWxpZGF0b3JDb25maWc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGdldFZhbGlkYXRvckNvbmZpZyh1aW50NjQpKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCgljYWxsc3ViIGdldFZhbGlkYXRvckNvbmZpZwoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldFZhbGlkYXRvckNvbmZpZyh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlKTogVmFsaWRhdG9yQ29uZmlnCmdldFZhbGlkYXRvckNvbmZpZzoKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyOTcKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZzsKCWludGMgMCAvLyAwCglpbnRjIDggLy8gMjQyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglyZXRzdWIKCi8vIGdldFZhbGlkYXRvclN0YXRlKHVpbnQ2NCkodWludDE2LHVpbnQ2NCx1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2dldFZhbGlkYXRvclN0YXRlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBnZXRWYWxpZGF0b3JTdGF0ZSh1aW50NjQpKHVpbnQxNix1aW50NjQsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgZ2V0VmFsaWRhdG9yU3RhdGUKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnZXRWYWxpZGF0b3JTdGF0ZSh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlKTogVmFsaWRhdG9yQ3VyU3RhdGUKZ2V0VmFsaWRhdG9yU3RhdGU6Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzAyCgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZTsKCWludGMgOCAvLyAgaGVhZE9mZnNldAoJcHVzaGludCAyNgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJcmV0c3ViCgovLyBnZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXIodWludDY0KShhZGRyZXNzLGFkZHJlc3MpCiphYmlfcm91dGVfZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBnZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXIodWludDY0KShhZGRyZXNzLGFkZHJlc3MpCgljYWxsc3ViIGdldFZhbGlkYXRvck93bmVyQW5kTWFuYWdlcgoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldFZhbGlkYXRvck93bmVyQW5kTWFuYWdlcih2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlKTogW0FkZHJlc3MsIEFkZHJlc3NdCmdldFZhbGlkYXRvck93bmVyQW5kTWFuYWdlcjoKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozMDcKCS8vIHJldHVybiBbdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIsIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm1hbmFnZXJdOwoJaW50YyAyIC8vIDgKCWludGMgNCAvLyAzMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJaW50YyAxNyAvLyA0MAoJaW50YyA0IC8vIDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgljb25jYXQKCXJldHN1YgoKLy8gZ2V0UG9vbHModWludDY0KSh1aW50NjQsdWludDE2LHVpbnQ2NClbXQoqYWJpX3JvdXRlX2dldFBvb2xzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBnZXRQb29scyh1aW50NjQpKHVpbnQ2NCx1aW50MTYsdWludDY0KVtdCgljYWxsc3ViIGdldFBvb2xzCglkdXAKCWxlbgoJaW50YyA1IC8vIDE4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2V0UG9vbHModmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IFBvb2xJbmZvW10KLy8KLy8gUmV0dXJuIGxpc3Qgb2YgYWxsIHBvb2xzIGZvciB0aGlzIHZhbGlkYXRvci4KLy8gQHBhcmFtIHt1aW50NjR9IHZhbGlkYXRvcklkCi8vIEByZXR1cm4ge1Bvb2xJbmZvW119IC0gYXJyYXkgb2YgcG9vbHMKLy8gTm90IGNhbGxhYmxlIGZyb20gb3RoZXIgY29udHJhY3RzIGJlY2F1c2UgPjFLIHJldHVybiBidXQgY2FuIGJlIGNhbGxlZCB3LyBzaW11bGF0ZSB3aGljaCBidW1wcyBsb2cgcmV0dXJucwpnZXRQb29sczoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAxIC8vIDB4CglkdXBuIDIKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzE4CgkvLyByZXREYXRhOiBQb29sSW5mb1tdID0gW10KCWJ5dGVjIDEgLy8gMHgKCWZyYW1lX2J1cnkgMCAvLyByZXREYXRhOiBQb29sSW5mb1tdCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMxOQoJLy8gcG9vbFNldCA9IGNsb25lKHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUucG9vbHMpCglpbnRjIDYgLy8gIGhlYWRPZmZzZXQKCWludGMgMjkgLy8gNDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDEgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50MTYsdWludDY0KVsyNF0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzIwCgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHBvb2xTZXQubGVuZ3RoOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoKKmZvcl8wOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMyMAoJLy8gaSA8IHBvb2xTZXQubGVuZ3RoCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMyAvLyAyNAoJPAoJYnogKmZvcl8wX2VuZAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzIxCgkvLyBwb29sU2V0W2ldLnBvb2xBcHBJZCA9PT0gMAoJZnJhbWVfZGlnIDEgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50MTYsdWludDY0KVsyNF0KCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyA1IC8vIDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMCAvLyAwCgkrCglpbnRjIDIgLy8gOAoJZXh0cmFjdDMKCWJ0b2kKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCWIgKmZvcl8wX2VuZAoKKmlmMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzI1CgkvLyByZXREYXRhLnB1c2gocG9vbFNldFtpXSkKCWZyYW1lX2RpZyAwIC8vIHJldERhdGE6IFBvb2xJbmZvW10KCWZyYW1lX2RpZyAxIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDE2LHVpbnQ2NClbMjRdCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgNSAvLyAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDUgLy8gMTgKCWV4dHJhY3QzCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyByZXREYXRhOiBQb29sSW5mb1tdCgoqZm9yXzBfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzIwCgkvLyBpICs9IDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl8wCgoqZm9yXzBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMyNwoJLy8gcmV0dXJuIHJldERhdGE7CglmcmFtZV9kaWcgMCAvLyByZXREYXRhOiBQb29sSW5mb1tdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMgoJcmV0c3ViCgovLyBnZXRQb29sQXBwSWQodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9nZXRQb29sQXBwSWQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIHBvb2xJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZ2V0UG9vbEFwcElkKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGdldFBvb2xBcHBJZAoJaXRvYgoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldFBvb2xBcHBJZCh2YWxpZGF0b3JJZDogdWludDY0LCBwb29sSWQ6IHVpbnQ2NCk6IHVpbnQ2NApnZXRQb29sQXBwSWQ6Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzM1CgkvLyBhc3NlcnQoCgkvLyAgICAgICBwb29sSWQgIT09IDAgJiYgcG9vbElkIDw9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUucG9vbHMubGVuZ3RoLAoJLy8gICAgICAgJ3Bvb2wgaWQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIG51bWJlciBvZiBwb29scyBmb3IgdGhpcyB2YWxpZGF0b3InCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0yIC8vIHBvb2xJZDogdWludDY0CglpbnRjIDAgLy8gMAoJIT0KCWR1cAoJYnogKnNraXBfYW5kMAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xJZDogdWludDY0CglpbnRjIDMgLy8gMjQKCTw9CgkmJgoKKnNraXBfYW5kMDoKCS8vIHBvb2wgaWQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIG51bWJlciBvZiBwb29scyBmb3IgdGhpcyB2YWxpZGF0b3IKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozMzkKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzW3Bvb2xJZCAtIDFdLnBvb2xBcHBJZDsKCWludGMgNiAvLyAgaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xJZDogdWludDY0CglpbnRjIDEgLy8gMQoJLQoJaW50YyA1IC8vIDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludGMgMCAvLyAwCgkrCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJcmV0c3ViCgovLyBnZXRQb29sSW5mbygodWludDY0LHVpbnQ2NCx1aW50NjQpKSh1aW50NjQsdWludDE2LHVpbnQ2NCkKKmFiaV9yb3V0ZV9nZXRQb29sSW5mbzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMiAvLyAweDE1MWY3Yzc1CgoJLy8gcG9vbEtleTogKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludGMgMyAvLyAyNAoJPT0KCgkvLyBhcmd1bWVudCAwIChwb29sS2V5KSBmb3IgZ2V0UG9vbEluZm8gbXVzdCBiZSBhICh1aW50NjQsdWludDY0LHVpbnQ2NCkKCWFzc2VydAoKCS8vIGV4ZWN1dGUgZ2V0UG9vbEluZm8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0LHVpbnQxNix1aW50NjQpCgljYWxsc3ViIGdldFBvb2xJbmZvCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2V0UG9vbEluZm8ocG9vbEtleTogVmFsaWRhdG9yUG9vbEtleSk6IFBvb2xJbmZvCmdldFBvb2xJbmZvOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM0NAoJLy8gcmV0dXJuIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5wb29sc1twb29sS2V5LnBvb2xJZCAtIDFdOwoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyA1IC8vIDE4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJcmV0c3ViCgovLyBnZXRDdXJNYXhTdGFrZVBlclBvb2wodWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX2dldEN1ck1heFN0YWtlUGVyUG9vbDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMiAvLyAweDE1MWY3Yzc1CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZ2V0Q3VyTWF4U3Rha2VQZXJQb29sKHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgZ2V0Q3VyTWF4U3Rha2VQZXJQb29sCglpdG9iCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2V0Q3VyTWF4U3Rha2VQZXJQb29sKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUpOiB1aW50NjQKLy8KLy8gQ2FsY3VsYXRlIHRoZSBtYXhpbXVtIHN0YWtlIHBlciBwb29sIGZvciBhIGdpdmVuIHZhbGlkYXRvci4KLy8gTm9ybWFsbHkgdGhpcyB3b3VsZCBiZSBtYXhBbGdvUGVyUG9vbCwgYnV0IGl0IHNob3VsZCBhbHNvIG5ldmVyIGdvIGFib3ZlIE1heEFsbG93ZWRTdGFrZSAvIG51bVBvb2xzIHNvCi8vIGFzIHBvb2xzIGFyZSBhZGRlZCB0aGUgbWF4IGFsbG93ZWQgcGVyIHBvb2wgY2FuIHJlZHVjZS4KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCmdldEN1ck1heFN0YWtlUGVyUG9vbDoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAxIC8vIDB4CglkdXBuIDIKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzU1CgkvLyBudW1Qb29scyA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUubnVtUG9vbHMgYXMgdWludDY0CglpbnRjIDggLy8gMjQyCglpbnRjIDEwIC8vIDIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyBudW1Qb29sczogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM1NgoJLy8gaGFyZE1heERpdmlkZWRCZXR3ZWVuUG9vbHMgPSB0aGlzLm1heEFsbG93ZWRTdGFrZSgpIC8gbnVtUG9vbHMKCWNhbGxzdWIgbWF4QWxsb3dlZFN0YWtlCglmcmFtZV9kaWcgMCAvLyBudW1Qb29sczogdWludDY0CgkvCglmcmFtZV9idXJ5IDEgLy8gaGFyZE1heERpdmlkZWRCZXR3ZWVuUG9vbHM6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNTcKCS8vIG1heFBlclBvb2w6IHVpbnQ2NCA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm1heEFsZ29QZXJQb29sCglwdXNoaW50IDIxNwoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMiAvLyBtYXhQZXJQb29sOiB1aW50NjQKCgkvLyAqaWYxX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM1OAoJLy8gbWF4UGVyUG9vbCA9PT0gMAoJZnJhbWVfZGlnIDIgLy8gbWF4UGVyUG9vbDogdWludDY0CglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzU5CgkvLyBtYXhQZXJQb29sID0gdGhpcy5tYXhBbGdvQWxsb3dlZFBlclBvb2woKQoJY2FsbHN1YiBtYXhBbGdvQWxsb3dlZFBlclBvb2wKCWZyYW1lX2J1cnkgMiAvLyBtYXhQZXJQb29sOiB1aW50NjQKCippZjFfZW5kOgoJLy8gKmlmMl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNjEKCS8vIGhhcmRNYXhEaXZpZGVkQmV0d2VlblBvb2xzIDwgbWF4UGVyUG9vbAoJZnJhbWVfZGlnIDEgLy8gaGFyZE1heERpdmlkZWRCZXR3ZWVuUG9vbHM6IHVpbnQ2NAoJZnJhbWVfZGlnIDIgLy8gbWF4UGVyUG9vbDogdWludDY0Cgk8CglieiAqaWYyX2VuZAoKCS8vICppZjJfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM2MgoJLy8gbWF4UGVyUG9vbCA9IGhhcmRNYXhEaXZpZGVkQmV0d2VlblBvb2xzCglmcmFtZV9kaWcgMSAvLyBoYXJkTWF4RGl2aWRlZEJldHdlZW5Qb29sczogdWludDY0CglmcmFtZV9idXJ5IDIgLy8gbWF4UGVyUG9vbDogdWludDY0CgoqaWYyX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNjQKCS8vIHJldHVybiBtYXhQZXJQb29sOwoJZnJhbWVfZGlnIDIgLy8gbWF4UGVyUG9vbDogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMgoJcmV0c3ViCgovLyBkb2VzU3Rha2VyTmVlZFRvUGF5TUJSKGFkZHJlc3MpYm9vbAoqYWJpX3JvdXRlX2RvZXNTdGFrZXJOZWVkVG9QYXlNQlI6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIHN0YWtlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChzdGFrZXIpIGZvciBkb2VzU3Rha2VyTmVlZFRvUGF5TUJSIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGRvZXNTdGFrZXJOZWVkVG9QYXlNQlIoYWRkcmVzcylib29sCgljYWxsc3ViIGRvZXNTdGFrZXJOZWVkVG9QYXlNQlIKCWJ5dGVjIDUgLy8gMHgwMAoJaW50YyAwIC8vIDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZG9lc1N0YWtlck5lZWRUb1BheU1CUihzdGFrZXI6IEFkZHJlc3MpOiBib29sZWFuCi8vCi8vIEhlbHBlciBjYWxsZXJzIGNhbiBjYWxsIHcvIHNpbXVsYXRlIHRvIGRldGVybWluZSBpZiAnQWRkU3Rha2VyJyBNQlIgc2hvdWxkIGJlIGluY2x1ZGVkIHcvIHN0YWtpbmcgYW1vdW50Ci8vIEBwYXJhbSBzdGFrZXIKZG9lc1N0YWtlck5lZWRUb1BheU1CUjoKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNzMKCS8vIHJldHVybiAhdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikuZXhpc3RzOwoJYnl0ZWMgMyAvLyAgInNwcyIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCglyZXRzdWIKCi8vIGdldFN0YWtlZFBvb2xzRm9yQWNjb3VudChhZGRyZXNzKSh1aW50NjQsdWludDY0LHVpbnQ2NClbXQoqYWJpX3JvdXRlX2dldFN0YWtlZFBvb2xzRm9yQWNjb3VudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMiAvLyAweDE1MWY3Yzc1CgoJLy8gc3Rha2VyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50YyA0IC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHN0YWtlcikgZm9yIGdldFN0YWtlZFBvb2xzRm9yQWNjb3VudCBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBnZXRTdGFrZWRQb29sc0ZvckFjY291bnQoYWRkcmVzcykodWludDY0LHVpbnQ2NCx1aW50NjQpW10KCWNhbGxzdWIgZ2V0U3Rha2VkUG9vbHNGb3JBY2NvdW50CglkdXAKCWxlbgoJaW50YyAzIC8vIDI0CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2V0U3Rha2VkUG9vbHNGb3JBY2NvdW50KHN0YWtlcjogQWRkcmVzcyk6IFZhbGlkYXRvclBvb2xLZXlbXQovLwovLyBSZXRyaWV2ZXMgdGhlIHN0YWtlZCBwb29scyBmb3IgYW4gYWNjb3VudC4KLy8KLy8gQHBhcmFtIHtBZGRyZXNzfSBzdGFrZXIgLSBUaGUgYWNjb3VudCB0byByZXRyaWV2ZSBzdGFrZWQgcG9vbHMgZm9yLgovLyBAcmV0dXJuIHtWYWxpZGF0b3JQb29sS2V5W119IC0gVGhlIGFycmF5IG9mIHN0YWtlZCBwb29scyBmb3IgdGhlIGFjY291bnQuCmdldFN0YWtlZFBvb2xzRm9yQWNjb3VudDoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAxIC8vIDB4CglkdXBuIDIKCgkvLyAqaWYzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM4MwoJLy8gIXRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLmV4aXN0cwoJYnl0ZWMgMyAvLyAgInNwcyIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCglieiAqaWYzX2VuZAoKCS8vICppZjNfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM4NAoJLy8gcmV0dXJuIFtdOwoJYnl0ZWMgMSAvLyAweAoJYiAqZ2V0U3Rha2VkUG9vbHNGb3JBY2NvdW50KnJldHVybgoKKmlmM19lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Mzg2CgkvLyByZXREYXRhOiBWYWxpZGF0b3JQb29sS2V5W10gPSBbXQoJYnl0ZWMgMSAvLyAweAoJZnJhbWVfYnVyeSAwIC8vIHJldERhdGE6IFZhbGlkYXRvclBvb2xLZXlbXQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozODcKCS8vIHBvb2xTZXQgPSBjbG9uZSh0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZSkKCWJ5dGVjIDMgLy8gICJzcHMiCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlCglhc3NlcnQKCWZyYW1lX2J1cnkgMSAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM4OAoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBwb29sU2V0Lmxlbmd0aDsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCipmb3JfMToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozODgKCS8vIGkgPCBwb29sU2V0Lmxlbmd0aAoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDcgLy8gNgoJPAoJYnogKmZvcl8xX2VuZAoKCS8vICppZjRfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Mzg5CgkvLyBwb29sU2V0W2ldLmlkICE9PSAwCglmcmFtZV9kaWcgMSAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDAgLy8gMAoJKwoJaW50YyAyIC8vIDgKCWV4dHJhY3QzCglidG9pCglpbnRjIDAgLy8gMAoJIT0KCWJ6ICppZjRfZW5kCgoJLy8gKmlmNF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzkwCgkvLyByZXREYXRhLnB1c2gocG9vbFNldFtpXSkKCWZyYW1lX2RpZyAwIC8vIHJldERhdGE6IFZhbGlkYXRvclBvb2xLZXlbXQoJZnJhbWVfZGlnIDEgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAzIC8vIDI0CglleHRyYWN0MwoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gcmV0RGF0YTogVmFsaWRhdG9yUG9vbEtleVtdCgoqaWY0X2VuZDoKCipmb3JfMV9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozODgKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzEKCipmb3JfMV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzkzCgkvLyByZXR1cm4gcmV0RGF0YTsKCWZyYW1lX2RpZyAwIC8vIHJldERhdGE6IFZhbGlkYXRvclBvb2xLZXlbXQoKKmdldFN0YWtlZFBvb2xzRm9yQWNjb3VudCpyZXR1cm46CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAyCglyZXRzdWIKCi8vIGdldFRva2VuUGF5b3V0UmF0aW8odWludDY0KSh1aW50NjRbMjRdLHVpbnQ2NCkKKmFiaV9yb3V0ZV9nZXRUb2tlblBheW91dFJhdGlvOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBnZXRUb2tlblBheW91dFJhdGlvKHVpbnQ2NCkodWludDY0WzI0XSx1aW50NjQpCgljYWxsc3ViIGdldFRva2VuUGF5b3V0UmF0aW8KCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnZXRUb2tlblBheW91dFJhdGlvKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUpOiBQb29sVG9rZW5QYXlvdXRSYXRpbwovLwovLyBSZXRyaWV2ZXMgdGhlIHRva2VuIHBheW91dCByYXRpbyBmb3IgYSBnaXZlbiB2YWxpZGF0b3IgLSByZXR1cm5pbmcgdGhlIHBvb2wgcmF0aW9zIG9mIHdob2xlIHNvIHRoYXQgdG9rZW4KLy8gcGF5b3V0cyBhY3Jvc3MgcG9vbHMgY2FuIGJlIGJhc2VkIG9uIGEgc3RhYmxlIHNuYXBob3N0IG9mIHN0YWtlLgovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvci4KLy8gQHJldHVybiB7UG9vbFRva2VuUGF5b3V0UmF0aW99IC0gVGhlIHRva2VuIHBheW91dCByYXRpbyBmb3IgdGhlIHZhbGlkYXRvci4KZ2V0VG9rZW5QYXlvdXRSYXRpbzoKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MDUKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnRva2VuUGF5b3V0UmF0aW87CglpbnRjIDE0IC8vICBoZWFkT2Zmc2V0CglpbnRjIDE4IC8vIDIwMAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJcmV0c3ViCgovLyBnZXROb2RlUG9vbEFzc2lnbm1lbnRzKHVpbnQ2NCkoKHVpbnQ2NFszXSlbOF0pCiphYmlfcm91dGVfZ2V0Tm9kZVBvb2xBc3NpZ25tZW50czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMiAvLyAweDE1MWY3Yzc1CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZ2V0Tm9kZVBvb2xBc3NpZ25tZW50cyh1aW50NjQpKCh1aW50NjRbM10pWzhdKQoJY2FsbHN1YiBnZXROb2RlUG9vbEFzc2lnbm1lbnRzCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2V0Tm9kZVBvb2xBc3NpZ25tZW50cyh2YWxpZGF0b3JJZDogdWludDY0KTogTm9kZVBvb2xBc3NpZ25tZW50Q29uZmlnCmdldE5vZGVQb29sQXNzaWdubWVudHM6Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDEwCgkvLyBhc3NlcnQodGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS5leGlzdHMsICJ0aGUgc3BlY2lmaWVkIHZhbGlkYXRvciBpZCBkb2Vzbid0IGV4aXN0IikKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCgoJLy8gdGhlIHNwZWNpZmllZCB2YWxpZGF0b3IgaWQgZG9lc24ndCBleGlzdAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQxMgoJLy8gcmV0dXJuIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUubm9kZVBvb2xBc3NpZ25tZW50czsKCWludGMgMTYgLy8gIGhlYWRPZmZzZXQKCWludGMgMjIgLy8gMTkyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglyZXRzdWIKCi8vIGdldE5GRFJlZ2lzdHJ5SUQoKXVpbnQ2NAoqYWJpX3JvdXRlX2dldE5GRFJlZ2lzdHJ5SUQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZ2V0TkZEUmVnaXN0cnlJRCgpdWludDY0CgljYWxsc3ViIGdldE5GRFJlZ2lzdHJ5SUQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnZXRORkRSZWdpc3RyeUlEKCk6IHVpbnQ2NApnZXRORkRSZWdpc3RyeUlEOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQxNgoJLy8gcmV0dXJuIHRoaXMubmZkUmVnaXN0cnlBcHBJZDsKCWludGMgMTkgLy8gVE1QTF9uZmRSZWdpc3RyeUFwcElkCglyZXRzdWIKCi8vIGFkZFZhbGlkYXRvcihwYXksc3RyaW5nLCh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KSl1aW50NjQKKmFiaV9yb3V0ZV9hZGRWYWxpZGF0b3I6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIGNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50YyA4IC8vIDI0MgoJPT0KCgkvLyBhcmd1bWVudCAwIChjb25maWcpIGZvciBhZGRWYWxpZGF0b3IgbXVzdCBiZSBhICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJYXNzZXJ0CgoJLy8gbmZkTmFtZTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIG1iclBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludGMgMSAvLyAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnRjIDEgLy8gIHBheQoJPT0KCgkvLyBhcmd1bWVudCAyIChtYnJQYXltZW50KSBmb3IgYWRkVmFsaWRhdG9yIG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYWRkVmFsaWRhdG9yKHBheSxzdHJpbmcsKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpKXVpbnQ2NAoJY2FsbHN1YiBhZGRWYWxpZGF0b3IKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBhZGRWYWxpZGF0b3IobWJyUGF5bWVudDogUGF5VHhuLCBuZmROYW1lOiBzdHJpbmcsIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnKTogdWludDY0Ci8vCi8vIEFkZHMgYSBuZXcgdmFsaWRhdG9yCi8vIFJlcXVpcmVzIGF0IGxlYXN0IDEwIEFMR08gYXMgdGhlICdmZWUnIGZvciB0aGUgdHJhbnNhY3Rpb24gdG8gaGVscCBkaXNzdWFkZSBzcGFtbWVkIHZhbGlkYXRvciBhZGRzLgovLwovLyBAcGFyYW0ge1BheVR4bn0gbWJyUGF5bWVudCBwYXltZW50IGZyb20gY2FsbGVyIHdoaWNoIGNvdmVycyBtYnIgaW5jcmVhc2Ugb2YgbmV3IHZhbGlkYXRvciBzdG9yYWdlCi8vIEBwYXJhbSB7c3RyaW5nfSBuZmROYW1lIChPcHRpb25hbCkgTmFtZSBvZiBuZmQgKHVzZWQgYXMgZG91YmxlLWNoZWNrIGFnYWluc3QgaWQgc3BlY2lmaWVkIGluIGNvbmZpZykKLy8gQHBhcmFtIHtWYWxpZGF0b3JDb25maWd9IGNvbmZpZyBWYWxpZGF0b3JDb25maWcgc3RydWN0Ci8vIEByZXR1cm5zIHt1aW50NjR9IHZhbGlkYXRvciBpZAphZGRWYWxpZGF0b3I6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MjgKCS8vIHRoaXMudmFsaWRhdGVDb25maWcoY29uZmlnKQoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCgljYWxsc3ViIHZhbGlkYXRlQ29uZmlnCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQyOQoJLy8gYXNzZXJ0KGNvbmZpZy5vd25lciAhPT0gQWRkcmVzcy56ZXJvQWRkcmVzcykKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA4IDMyCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDMwCgkvLyBhc3NlcnQoY29uZmlnLm1hbmFnZXIgIT09IEFkZHJlc3MuemVyb0FkZHJlc3MpCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgNDAgMzIKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MzEKCS8vIGFzc2VydCh0aGlzLnR4bi5zZW5kZXIgPT09IGNvbmZpZy5vd25lciwgJ3NlbmRlciBtdXN0IGJlIG93bmVyIHRvIGFkZCBuZXcgdmFsaWRhdG9yJykKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA4IDMyCgk9PQoKCS8vIHNlbmRlciBtdXN0IGJlIG93bmVyIHRvIGFkZCBuZXcgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDMzCgkvLyB2ZXJpZnlQYXlUeG4obWJyUGF5bWVudCwgeyBhbW91bnQ6IHRoaXMuZ2V0TWJyQW1vdW50cygpLmFkZFZhbGlkYXRvck1iciB9KQoJLy8gdmVyaWZ5IGFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CgljYWxsc3ViIGdldE1ickFtb3VudHMKCWV4dHJhY3QgMCA4CglidG9pCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoibWJyUGF5bWVudCIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiJ0aGlzLmdldE1ickFtb3VudHMoKS5hZGRWYWxpZGF0b3JNYnIifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQzNQoJLy8gYXNzZXJ0KG1iclBheW1lbnQuZmVlID4gMTAgKiAxMDAwMDAwLCAnZmVlIG11c3QgYmUgMTAgQUxHTyBvciBtb3JlIHRvIHByZXZlbnQgc3BhbW1pbmcgb2YgdmFsaWRhdG9ycycpCglmcmFtZV9kaWcgLTEgLy8gbWJyUGF5bWVudDogUGF5VHhuCglndHhucyBGZWUKCXB1c2hpbnQgMTAwMDAwMDAKCT4KCgkvLyBmZWUgbXVzdCBiZSAxMCBBTEdPIG9yIG1vcmUgdG8gcHJldmVudCBzcGFtbWluZyBvZiB2YWxpZGF0b3JzCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDM4CgkvLyB2YWxpZGF0b3JJZCA9IHRoaXMubnVtVmFsaWRhdG9ycy52YWx1ZSArIDEKCWJ5dGVjIDEyIC8vICAibnVtViIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAwIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDM5CgkvLyB0aGlzLm51bVZhbGlkYXRvcnMudmFsdWUgPSB2YWxpZGF0b3JJZAoJYnl0ZWMgMTIgLy8gICJudW1WIgoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDQxCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLmNyZWF0ZSgpCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJcHVzaGludCAxMDkyCglib3hfY3JlYXRlCglwb3AKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDQyCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZyA9IGNvbmZpZwoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ0MwoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuaWQgPSB2YWxpZGF0b3JJZAoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vICppZjVfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDQ2CgkvLyBjb25maWcubmZkRm9ySW5mbyAhPT0gMAoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDcyIDgKCWJ0b2kKCWludGMgMCAvLyAwCgkhPQoJYnogKmlmNV9lbmQKCgkvLyAqaWY1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NDgKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpLAoJLy8gICAgICAgICBhcHBsaWNhdGlvbkFyZ3M6IFsnaXNfdmFsaWRfbmZkX2FwcGlkJywgbmZkTmFtZSwgaXRvYihjb25maWcubmZkRm9ySW5mbyldLAoJLy8gICAgICAgICBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KGNvbmZpZy5uZmRGb3JJbmZvKV0sCgkvLyAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ0OQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpCglpbnRjIDE5IC8vIFRNUExfbmZkUmVnaXN0cnlBcHBJZAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ1MAoJLy8gYXBwbGljYXRpb25BcmdzOiBbJ2lzX3ZhbGlkX25mZF9hcHBpZCcsIG5mZE5hbWUsIGl0b2IoY29uZmlnLm5mZEZvckluZm8pXQoJYnl0ZWMgMTMgLy8gICJpc192YWxpZF9uZmRfYXBwaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0yIC8vIG5mZE5hbWU6IHN0cmluZwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA3MiA4CglidG9pCglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NTEKCS8vIGFwcGxpY2F0aW9uczogW0FwcElELmZyb21VaW50NjQoY29uZmlnLm5mZEZvckluZm8pXQoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDcyIDgKCWJ0b2kKCWl0eG5fZmllbGQgQXBwbGljYXRpb25zCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NTMKCS8vIGFzc2VydChidG9pKHRoaXMuaXR4bi5sYXN0TG9nKSA9PT0gMSwgInByb3ZpZGVkIE5GRCBpc24ndCB2YWxpZCIpCglpdHhuIExhc3RMb2cKCWJ0b2kKCWludGMgMSAvLyAxCgk9PQoKCS8vIHByb3ZpZGVkIE5GRCBpc24ndCB2YWxpZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ1NQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IChBcHBJRC5mcm9tVWludDY0KGNvbmZpZy5uZmRGb3JJbmZvKS5nbG9iYWxTdGF0ZSgnaS5vd25lci5hJykgYXMgQWRkcmVzcyksCgkvLyAgICAgICAgICdJZiBzcGVjaWZ5aW5nIE5GRCwgYWNjb3VudCBhZGRpbmcgdmFsaWRhdG9yIG11c3QgYmUgb3duZXInCgkvLyAgICAgICApCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgNzIgOAoJYnRvaQoJYnl0ZWMgOSAvLyAgImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KGNvbmZpZy5uZmRGb3JJbmZvKS5nbG9iYWxTdGF0ZSgnaS5vd25lci5hJykKCWFzc2VydAoJPT0KCgkvLyBJZiBzcGVjaWZ5aW5nIE5GRCwgYWNjb3VudCBhZGRpbmcgdmFsaWRhdG9yIG11c3QgYmUgb3duZXIKCWFzc2VydAoKKmlmNV9lbmQ6CgkvLyAqaWY2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ2MQoJLy8gY29uZmlnLmVudHJ5R2F0aW5nVHlwZSA9PT0gR0FUSU5HX1RZUEVfQ1JFQVRFRF9CWV9ORkRfQUREUkVTU0VTIHx8CgkvLyAgICAgICBjb25maWcuZW50cnlHYXRpbmdUeXBlID09PSBHQVRJTkdfVFlQRV9TRUdNRU5UX09GX05GRAoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDgwIDEKCWJ0b2kKCWludGMgOSAvLyAzCgk9PQoJZHVwCglibnogKnNraXBfb3IwCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgODAgMQoJYnRvaQoJaW50YyAyMCAvLyA0Cgk9PQoJfHwKCipza2lwX29yMDoKCWJ6ICppZjZfZW5kCgoJLy8gKmlmNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDY1CgkvLyBhc3NlcnQodGhpcy5pc05GREFwcElEVmFsaWQoY29uZmlnLmVudHJ5R2F0aW5nQXNzZXRzWzBdKSwgJ3Byb3ZpZGVkIE5GRCBBcHAgaWQgZm9yIGdhdGluZyBtdXN0IGJlIHZhbGlkIE5GRCcpCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTEzIDgKCWJ0b2kKCWNhbGxzdWIgaXNORkRBcHBJRFZhbGlkCgoJLy8gcHJvdmlkZWQgTkZEIEFwcCBpZCBmb3IgZ2F0aW5nIG11c3QgYmUgdmFsaWQgTkZECglhc3NlcnQKCippZjZfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ2OAoJLy8gcmV0dXJuIHZhbGlkYXRvcklkOwoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBjaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyKHVpbnQ2NCxhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyOgoJLy8gbWFuYWdlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChtYW5hZ2VyKSBmb3IgY2hhbmdlVmFsaWRhdG9yTWFuYWdlciBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY2hhbmdlVmFsaWRhdG9yTWFuYWdlcih1aW50NjQsYWRkcmVzcyl2b2lkCgljYWxsc3ViIGNoYW5nZVZhbGlkYXRvck1hbmFnZXIKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGNoYW5nZVZhbGlkYXRvck1hbmFnZXIodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgbWFuYWdlcjogQWRkcmVzcyk6IHZvaWQKLy8KLy8gQ2hhbmdlcyB0aGUgVmFsaWRhdG9yIG1hbmFnZXIgZm9yIGEgc3BlY2lmaWMgVmFsaWRhdG9yIGlkLgovLyBbIE9OTFkgT1dORVIgQ0FOIENIQU5HRSBdCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yIHRvIGNoYW5nZSB0aGUgbWFuYWdlciBmb3IuCi8vIEBwYXJhbSB7QWRkcmVzc30gbWFuYWdlciAtIFRoZSBuZXcgbWFuYWdlciBhZGRyZXNzLgpjaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ3OQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5vd25lciwKCS8vICAgICAgICdjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyJwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWludGMgMiAvLyA4CglpbnRjIDQgLy8gMzIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09CgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ4MwoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubWFuYWdlciA9IG1hbmFnZXIKCWludGMgMTcgLy8gNDAKCWZyYW1lX2RpZyAtMiAvLyBtYW5hZ2VyOiBBZGRyZXNzCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIGNoYW5nZVZhbGlkYXRvclN1bnNldEluZm8odWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2NoYW5nZVZhbGlkYXRvclN1bnNldEluZm86CgkvLyBzdW5zZXR0aW5nVG86IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIHN1bnNldHRpbmdPbjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY2hhbmdlVmFsaWRhdG9yU3Vuc2V0SW5mbyh1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGNoYW5nZVZhbGlkYXRvclN1bnNldEluZm8KCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGNoYW5nZVZhbGlkYXRvclN1bnNldEluZm8odmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgc3Vuc2V0dGluZ09uOiB1aW50NjQsIHN1bnNldHRpbmdUbzogVmFsaWRhdG9ySWRUeXBlKTogdm9pZAovLwovLyBVcGRhdGVzIHRoZSBzdW5zZXQgaW5mb3JtYXRpb24gZm9yIGEgZ2l2ZW4gdmFsaWRhdG9yLgovLyBbIE9OTFkgT1dORVIgQ0FOIENIQU5HRSBdCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yIHRvIHVwZGF0ZS4KLy8gQHBhcmFtIHt1aW50NjR9IHN1bnNldHRpbmdPbiAtIFRoZSBuZXcgc3Vuc2V0IHRpbWVzdGFtcC4KLy8gQHBhcmFtIHt1aW50NjR9IHN1bnNldHRpbmdUbyAtIFRoZSBuZXcgc3Vuc2V0IHRvIHZhbGlkYXRvciBpZC4KY2hhbmdlVmFsaWRhdG9yU3Vuc2V0SW5mbzoKCXByb3RvIDMgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0OTUKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnRjIDIgLy8gOAoJaW50YyA0IC8vIDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXIKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0OTkKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLnN1bnNldHRpbmdPbiA9IHN1bnNldHRpbmdPbgoJaW50YyAyNyAvLyAyMjYKCWZyYW1lX2RpZyAtMiAvLyBzdW5zZXR0aW5nT246IHVpbnQ2NAoJaXRvYgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MDAKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLnN1bnNldHRpbmdUbyA9IHN1bnNldHRpbmdUbwoJcHVzaGludCAyMzQKCWZyYW1lX2RpZyAtMyAvLyBzdW5zZXR0aW5nVG86IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBjaGFuZ2VWYWxpZGF0b3JORkQodWludDY0LHVpbnQ2NCxzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX2NoYW5nZVZhbGlkYXRvck5GRDoKCS8vIG5mZE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZXh0cmFjdCAyIDAKCgkvLyBuZmRBcHBJRDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY2hhbmdlVmFsaWRhdG9yTkZEKHVpbnQ2NCx1aW50NjQsc3RyaW5nKXZvaWQKCWNhbGxzdWIgY2hhbmdlVmFsaWRhdG9yTkZECglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBjaGFuZ2VWYWxpZGF0b3JORkQodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgbmZkQXBwSUQ6IHVpbnQ2NCwgbmZkTmFtZTogc3RyaW5nKTogdm9pZAovLwovLyBDaGFuZ2VzIHRoZSBORkQgZm9yIGEgdmFsaWRhdG9yIGluIHRoZSB2YWxpZGF0b3JMaXN0IGNvbnRyYWN0LgovLyBbIE9OTFkgT1dORVIgQ0FOIENIQU5HRSBdCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yIHRvIHVwZGF0ZS4KLy8gQHBhcmFtIHt1aW50NjR9IG5mZEFwcElEIC0gVGhlIGFwcGxpY2F0aW9uIGlkIG9mIHRoZSBORkQgdG8gYXNzaWduIHRvIHRoZSB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7c3RyaW5nfSBuZmROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIE5GRCAod2hpY2ggbXVzdCBtYXRjaCkKY2hhbmdlVmFsaWRhdG9yTkZEOgoJcHJvdG8gMyAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUxMwoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5vd25lciwKCS8vICAgICAgICdjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyJwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWludGMgMiAvLyA4CglpbnRjIDQgLy8gMzIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09CgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUxOAoJLy8gc2VuZEFwcENhbGwoewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpLAoJLy8gICAgICAgYXBwbGljYXRpb25BcmdzOiBbJ2lzX3ZhbGlkX25mZF9hcHBpZCcsIG5mZE5hbWUsIGl0b2IobmZkQXBwSUQpXSwKCS8vICAgICAgIGFwcGxpY2F0aW9uczogW0FwcElELmZyb21VaW50NjQobmZkQXBwSUQpXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUxOQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpCglpbnRjIDE5IC8vIFRNUExfbmZkUmVnaXN0cnlBcHBJZAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUyMAoJLy8gYXBwbGljYXRpb25BcmdzOiBbJ2lzX3ZhbGlkX25mZF9hcHBpZCcsIG5mZE5hbWUsIGl0b2IobmZkQXBwSUQpXQoJYnl0ZWMgMTMgLy8gICJpc192YWxpZF9uZmRfYXBwaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0zIC8vIG5mZE5hbWU6IHN0cmluZwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJRDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MjEKCS8vIGFwcGxpY2F0aW9uczogW0FwcElELmZyb21VaW50NjQobmZkQXBwSUQpXQoJZnJhbWVfZGlnIC0yIC8vIG5mZEFwcElEOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25zCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MjQKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gKEFwcElELmZyb21VaW50NjQobmZkQXBwSUQpLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKSBhcyBBZGRyZXNzKSwKCS8vICAgICAgICdJZiBzcGVjaWZ5aW5nIE5GRCwgYWNjb3VudCBhZGRpbmcgdmFsaWRhdG9yIG11c3QgYmUgb3duZXInCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0yIC8vIG5mZEFwcElEOiB1aW50NjQKCWJ5dGVjIDkgLy8gICJpLm93bmVyLmEiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJRCkuZ2xvYmFsU3RhdGUoJ2kub3duZXIuYScpCglhc3NlcnQKCT09CgoJLy8gSWYgc3BlY2lmeWluZyBORkQsIGFjY291bnQgYWRkaW5nIHZhbGlkYXRvciBtdXN0IGJlIG93bmVyCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTI4CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5uZmRGb3JJbmZvID0gbmZkQXBwSUQKCWludGMgMjEgLy8gNzIKCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJRDogdWludDY0CglpdG9iCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIGNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzKHVpbnQ2NCxhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzczoKCS8vIGNvbW1pc3Npb25BZGRyZXNzOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50YyA0IC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGNvbW1pc3Npb25BZGRyZXNzKSBmb3IgY2hhbmdlVmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzKHVpbnQ2NCxhZGRyZXNzKXZvaWQKCWNhbGxzdWIgY2hhbmdlVmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIGNvbW1pc3Npb25BZGRyZXNzOiBBZGRyZXNzKTogdm9pZAovLwovLyBDaGFuZ2UgdGhlIGNvbW1pc3Npb24gYWRkcmVzcyB0aGF0IHZhbGlkYXRvciByZXdhcmRzIGFyZSBzZW50IHRvLgovLyBbIE9OTFkgT1dORVIgQ0FOIENIQU5HRSBdCmNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUzNgoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5vd25lciwKCS8vICAgICAgICdjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyJwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWludGMgMiAvLyA4CglpbnRjIDQgLy8gMzIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09CgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU0MAoJLy8gYXNzZXJ0KGNvbW1pc3Npb25BZGRyZXNzICE9PSBBZGRyZXNzLnplcm9BZGRyZXNzKQoJZnJhbWVfZGlnIC0yIC8vIGNvbW1pc3Npb25BZGRyZXNzOiBBZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTQxCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy52YWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyA9IGNvbW1pc3Npb25BZGRyZXNzCglwdXNoaW50IDE3NwoJZnJhbWVfZGlnIC0yIC8vIGNvbW1pc3Npb25BZGRyZXNzOiBBZGRyZXNzCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIGNoYW5nZVZhbGlkYXRvclJld2FyZEluZm8odWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2NoYW5nZVZhbGlkYXRvclJld2FyZEluZm86CgkvLyBSZXdhcmRQZXJQYXlvdXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNgoJYnRvaQoKCS8vIEdhdGluZ0Fzc2V0TWluQmFsYW5jZTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA1CglidG9pCgoJLy8gRW50cnlHYXRpbmdBc3NldHM6IHVpbnQ2NFs0XQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAyIChFbnRyeUdhdGluZ0Fzc2V0cykgZm9yIGNoYW5nZVZhbGlkYXRvclJld2FyZEluZm8gbXVzdCBiZSBhIHVpbnQ2NFs0XQoJYXNzZXJ0CgoJLy8gRW50cnlHYXRpbmdBZGRyZXNzOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglkdXAKCWxlbgoJaW50YyA0IC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDMgKEVudHJ5R2F0aW5nQWRkcmVzcykgZm9yIGNoYW5nZVZhbGlkYXRvclJld2FyZEluZm8gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIEVudHJ5R2F0aW5nVHlwZTogdWludDgKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnRjIDEgLy8gMQoJPT0KCgkvLyBhcmd1bWVudCA0IChFbnRyeUdhdGluZ1R5cGUpIGZvciBjaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvIG11c3QgYmUgYSB1aW50OAoJYXNzZXJ0CglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyh1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGNoYW5nZVZhbGlkYXRvclJld2FyZEluZm8KCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGNoYW5nZVZhbGlkYXRvclJld2FyZEluZm8odmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgRW50cnlHYXRpbmdUeXBlOiB1aW50OCwgRW50cnlHYXRpbmdBZGRyZXNzOiBBZGRyZXNzLCBFbnRyeUdhdGluZ0Fzc2V0czogU3RhdGljQXJyYXk8dWludDY0LCA0PiwgR2F0aW5nQXNzZXRNaW5CYWxhbmNlOiB1aW50NjQsIFJld2FyZFBlclBheW91dDogdWludDY0KTogdm9pZAovLwovLyBBbGxvdyB0aGUgYWRkaXRpb25hbCByZXdhcmRzIChnYXRpbmcgZW50cnksIGFkZGl0aW9uYWwgdG9rZW4gcmV3YXJkcykgaW5mb3JtYXRpb24gYmUgY2hhbmdlZCBhdCB3aWxsLgovLyBbIE9OTFkgT1dORVIgQ0FOIENIQU5HRSBdCmNoYW5nZVZhbGlkYXRvclJld2FyZEluZm86Cglwcm90byA2IDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTU2CgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm93bmVyLAoJLy8gICAgICAgJ2NhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXInCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJaW50YyAyIC8vIDgKCWludGMgNCAvLyAzMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTYxCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5lbnRyeUdhdGluZ1R5cGUgPSBFbnRyeUdhdGluZ1R5cGUKCWludGMgMzUgLy8gODAKCWZyYW1lX2RpZyAtMiAvLyBFbnRyeUdhdGluZ1R5cGU6IHVpbnQ4CglpdG9iCglleHRyYWN0IDcgMQoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1NjIKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLmVudHJ5R2F0aW5nQWRkcmVzcyA9IEVudHJ5R2F0aW5nQWRkcmVzcwoJcHVzaGludCA4MQoJZnJhbWVfZGlnIC0zIC8vIEVudHJ5R2F0aW5nQWRkcmVzczogQWRkcmVzcwoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1NjMKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLmVudHJ5R2F0aW5nQXNzZXRzID0gRW50cnlHYXRpbmdBc3NldHMKCXB1c2hpbnQgMTEzCglmcmFtZV9kaWcgLTQgLy8gRW50cnlHYXRpbmdBc3NldHM6IFN0YXRpY0FycmF5PHVpbnQ2NCwgND4KCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTY0CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5nYXRpbmdBc3NldE1pbkJhbGFuY2UgPSBHYXRpbmdBc3NldE1pbkJhbGFuY2UKCWludGMgMzYgLy8gMTQ1CglmcmFtZV9kaWcgLTUgLy8gR2F0aW5nQXNzZXRNaW5CYWxhbmNlOiB1aW50NjQKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTY1CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5yZXdhcmRQZXJQYXlvdXQgPSBSZXdhcmRQZXJQYXlvdXQKCXB1c2hpbnQgMTYxCglmcmFtZV9kaWcgLTYgLy8gUmV3YXJkUGVyUGF5b3V0OiB1aW50NjQKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gYWRkUG9vbChwYXksdWludDY0LHVpbnQ2NCkodWludDY0LHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfYWRkUG9vbDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMiAvLyAweDE1MWY3Yzc1CgoJLy8gbm9kZU51bTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIG1iclBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludGMgMSAvLyAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnRjIDEgLy8gIHBheQoJPT0KCgkvLyBhcmd1bWVudCAyIChtYnJQYXltZW50KSBmb3IgYWRkUG9vbCBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGFkZFBvb2wocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJY2FsbHN1YiBhZGRQb29sCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gYWRkUG9vbChtYnJQYXltZW50OiBQYXlUeG4sIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIG5vZGVOdW06IHVpbnQ2NCk6IFZhbGlkYXRvclBvb2xLZXkKLy8KLy8gQWRkcyBhIG5ldyBwb29sIHRvIGEgdmFsaWRhdG9yJ3MgcG9vbCBzZXQsIHJldHVybmluZyB0aGUgJ2tleScgdG8gcmVmZXJlbmNlIHRoZSBwb29sIGluIHRoZSBmdXR1cmUgZm9yIHN0YWtpbmcsIGV0Yy4KLy8gVGhlIGNhbGxlciBtdXN0IHBheSB0aGUgY29zdCBvZiB0aGUgdmFsaWRhdG9ycyBNQlIgaW5jcmVhc2UgYXMgd2VsbCBhcyB0aGUgTUJSIHRoYXQgd2lsbCBiZSBuZWVkZWQgZm9yIHRoZSBwb29sIGl0c2VsZi4KLy8KLy8gWyBPTkxZIE9XTkVSIE9SIE1BTkFHRVIgQ0FOIGNhbGwgXQovLyBAcGFyYW0ge1BheVR4bn0gbWJyUGF5bWVudCBwYXltZW50IGZyb20gY2FsbGVyIHdoaWNoIGNvdmVycyBtYnIgaW5jcmVhc2Ugb2YgYWRkaW5nIGEgbmV3IHBvb2wKLy8gQHBhcmFtIHt1aW50NjR9IHZhbGlkYXRvcklkIGlzIGlkIG9mIHZhbGlkYXRvciB0byBwb29sIHRvIChtdXN0IGJlIG93bmVyIG9yIG1hbmFnZXIpCi8vIEBwYXJhbSB7dWludDY0fSBub2RlTnVtIGlzIG5vZGUgbnVtYmVyIHRvIGFkZCB0bwovLyBAcmV0dXJucyB7VmFsaWRhdG9yUG9vbEtleX0gcG9vbCBrZXkgdG8gY3JlYXRlZCBwb29sCmFkZFBvb2w6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU4MQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5vd25lciB8fAoJLy8gICAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm1hbmFnZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yJwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWludGMgMiAvLyA4CglpbnRjIDQgLy8gMzIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09CglkdXAKCWJueiAqc2tpcF9vcjEKCXR4biBTZW5kZXIKCWludGMgMTcgLy8gNDAKCWludGMgNCAvLyAzMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCXx8Cgoqc2tpcF9vcjE6CgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3IKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1ODgKCS8vIHZlcmlmeVBheVR4bihtYnJQYXltZW50LCB7IGFtb3VudDogdGhpcy5nZXRNYnJBbW91bnRzKCkuYWRkUG9vbE1iciwgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MgfSkKCS8vIHZlcmlmeSBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJY2FsbHN1YiBnZXRNYnJBbW91bnRzCglleHRyYWN0IDggOAoJYnRvaQoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6Im1iclBheW1lbnQiLCJmaWVsZCI6ImFtb3VudCIsImV4cGVjdGVkIjoidGhpcy5nZXRNYnJBbW91bnRzKCkuYWRkUG9vbE1iciJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6Im1iclBheW1lbnQiLCJmaWVsZCI6InJlY2VpdmVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFwcC5hZGRyZXNzIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1OTAKCS8vIGFzc2VydCh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLmV4aXN0cywgInNwZWNpZmllZCB2YWxpZGF0b3IgaWQgaXNuJ3QgdmFsaWQiKQoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCgkvLyBzcGVjaWZpZWQgdmFsaWRhdG9yIGlkIGlzbid0IHZhbGlkCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTkyCgkvLyBudW1Qb29sczogdWludDY0ID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZS5udW1Qb29scyBhcyB1aW50NjQKCWludGMgOCAvLyAyNDIKCWludGMgMTAgLy8gMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAwIC8vIG51bVBvb2xzOiB1aW50NjQKCgkvLyAqaWY3X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU5MwoJLy8gKG51bVBvb2xzIGFzIHVpbnQ2NCkgPj0gTUFYX1BPT0xTCglmcmFtZV9kaWcgMCAvLyBudW1Qb29sczogdWludDY0CglpbnRjIDMgLy8gMjQKCT49CglieiAqaWY3X2VuZAoKCS8vICppZjdfY29uc2VxdWVudAoJLy8gYWxyZWFkeSBhdCBtYXggcG9vbCBzaXplCgllcnIKCippZjdfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU5NgoJLy8gbnVtUG9vbHMgKz0gMQoJZnJhbWVfZGlnIDAgLy8gbnVtUG9vbHM6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBudW1Qb29sczogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU5OQoJLy8gc2VuZEFwcENhbGwoewoJLy8gICAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRpb24uTm9PcCwKCS8vICAgICAgIGFwcHJvdmFsUHJvZ3JhbTogWwoJLy8gICAgICAgICB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLmV4dHJhY3QoMCwgNDA5NiksCgkvLyAgICAgICAgIHRoaXMuc3Rha2luZ1Bvb2xBcHByb3ZhbFByb2dyYW0uZXh0cmFjdCg0MDk2LCB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLnNpemUgLSA0MDk2KSwKCS8vICAgICAgIF0sCgkvLyAgICAgICBjbGVhclN0YXRlUHJvZ3JhbTogU3Rha2luZ1Bvb2wuY2xlYXJQcm9ncmFtKCksCgkvLyAgICAgICBnbG9iYWxOdW1VaW50OiBTdGFraW5nUG9vbC5zY2hlbWEuZ2xvYmFsLm51bVVpbnQsCgkvLyAgICAgICBnbG9iYWxOdW1CeXRlU2xpY2U6IFN0YWtpbmdQb29sLnNjaGVtYS5nbG9iYWwubnVtQnl0ZVNsaWNlLAoJLy8gICAgICAgZXh0cmFQcm9ncmFtUGFnZXM6IDMsCgkvLyAgICAgICBhcHBsaWNhdGlvbkFyZ3M6IFsKCS8vICAgICAgICAgLy8gY3JlYXRpbmdDb250cmFjdElELCB2YWxpZGF0b3JJZCwgcG9vbElkLCBtaW5FbnRyeVN0YWtlCgkvLyAgICAgICAgIG1ldGhvZCgnY3JlYXRlQXBwbGljYXRpb24odWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQnKSwKCS8vICAgICAgICAgaXRvYih0aGlzLmFwcC5pZCksCgkvLyAgICAgICAgIGl0b2IodmFsaWRhdG9ySWQpLAoJLy8gICAgICAgICBpdG9iKG51bVBvb2xzIGFzIHVpbnQ2NCksCgkvLyAgICAgICAgIGl0b2IodGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubWluRW50cnlTdGFrZSksCgkvLyAgICAgICBdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDcgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjAwCgkvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGlvbi5Ob09wCglpbnRjIDAgLy8gIE5vT3AKCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYwMQoJLy8gYXBwcm92YWxQcm9ncmFtOiBbCgkvLyAgICAgICAgIHRoaXMuc3Rha2luZ1Bvb2xBcHByb3ZhbFByb2dyYW0uZXh0cmFjdCgwLCA0MDk2KSwKCS8vICAgICAgICAgdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5leHRyYWN0KDQwOTYsIHRoaXMuc3Rha2luZ1Bvb2xBcHByb3ZhbFByb2dyYW0uc2l6ZSAtIDQwOTYpLAoJLy8gICAgICAgXQoJYnl0ZWMgNiAvLyAgInBvb2xUZW1wbGF0ZUFwcHJvdmFsQnl0ZXMiCglpbnRjIDAgLy8gMAoJaW50YyAyNSAvLyA0MDk2Cglib3hfZXh0cmFjdAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwoJYnl0ZWMgNiAvLyAgInBvb2xUZW1wbGF0ZUFwcHJvdmFsQnl0ZXMiCglpbnRjIDI1IC8vIDQwOTYKCWJ5dGVjIDYgLy8gICJwb29sVGVtcGxhdGVBcHByb3ZhbEJ5dGVzIgoJYm94X2xlbgoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5zaXplCglhc3NlcnQKCWludGMgMjUgLy8gNDA5NgoJLQoJYm94X2V4dHJhY3QKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjA1CgkvLyBjbGVhclN0YXRlUHJvZ3JhbTogU3Rha2luZ1Bvb2wuY2xlYXJQcm9ncmFtKCkKCXB1c2hieXRlcyAweDBhCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYwNgoJLy8gZ2xvYmFsTnVtVWludDogU3Rha2luZ1Bvb2wuc2NoZW1hLmdsb2JhbC5udW1VaW50CglpbnRjIDM0IC8vIDExCglpdHhuX2ZpZWxkIEdsb2JhbE51bVVpbnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjA3CgkvLyBnbG9iYWxOdW1CeXRlU2xpY2U6IFN0YWtpbmdQb29sLnNjaGVtYS5nbG9iYWwubnVtQnl0ZVNsaWNlCglpbnRjIDkgLy8gMwoJaXR4bl9maWVsZCBHbG9iYWxOdW1CeXRlU2xpY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjA4CgkvLyBleHRyYVByb2dyYW1QYWdlczogMwoJaW50YyA5IC8vIDMKCWl0eG5fZmllbGQgRXh0cmFQcm9ncmFtUGFnZXMKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjA5CgkvLyBhcHBsaWNhdGlvbkFyZ3M6IFsKCS8vICAgICAgICAgLy8gY3JlYXRpbmdDb250cmFjdElELCB2YWxpZGF0b3JJZCwgcG9vbElkLCBtaW5FbnRyeVN0YWtlCgkvLyAgICAgICAgIG1ldGhvZCgnY3JlYXRlQXBwbGljYXRpb24odWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQnKSwKCS8vICAgICAgICAgaXRvYih0aGlzLmFwcC5pZCksCgkvLyAgICAgICAgIGl0b2IodmFsaWRhdG9ySWQpLAoJLy8gICAgICAgICBpdG9iKG51bVBvb2xzIGFzIHVpbnQ2NCksCgkvLyAgICAgICAgIGl0b2IodGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubWluRW50cnlTdGFrZSksCgkvLyAgICAgICBdCglwdXNoYnl0ZXMgMHg1OWU5MGFhNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAwIC8vIG51bVBvb2xzOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglpbnRjIDM4IC8vIDIwOQoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MTkKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUubnVtUG9vbHMgPSBudW1Qb29scyBhcyB1aW50MTYKCWludGMgOCAvLyAyNDIKCWZyYW1lX2RpZyAwIC8vIG51bVBvb2xzOiB1aW50NjQKCWl0b2IKCWV4dHJhY3QgNiAyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYyMgoJLy8gcG9vbEFwcElkID0gdGhpcy5pdHhuLmNyZWF0ZWRBcHBsaWNhdGlvbklELmlkCglpdHhuIENyZWF0ZWRBcHBsaWNhdGlvbklECglmcmFtZV9idXJ5IDEgLy8gcG9vbEFwcElkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjIzCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzW251bVBvb2xzIC0gMV0ucG9vbEFwcElkID0gcG9vbEFwcElkCglpbnRjIDYgLy8gIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAwIC8vIG51bVBvb2xzOiB1aW50NjQKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAwIC8vIDAKCSsKCWZyYW1lX2RpZyAxIC8vIHBvb2xBcHBJZDogdWludDY0CglpdG9iCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYyNAoJLy8gdGhpcy5hZGRQb29sVG9Ob2RlKHZhbGlkYXRvcklkLCBwb29sQXBwSWQsIG5vZGVOdW0pCglmcmFtZV9kaWcgLTMgLy8gbm9kZU51bTogdWludDY0CglmcmFtZV9kaWcgMSAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWNhbGxzdWIgYWRkUG9vbFRvTm9kZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MzIKCS8vIHJldHVybiB7IGlkOiB2YWxpZGF0b3JJZCwgcG9vbElkOiBudW1Qb29scyBhcyB1aW50NjQsIHBvb2xBcHBJZDogdGhpcy5pdHhuIS5jcmVhdGVkQXBwbGljYXRpb25JRC5pZCB9OwoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWZyYW1lX2RpZyAwIC8vIG51bVBvb2xzOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJaXR4biBDcmVhdGVkQXBwbGljYXRpb25JRAoJaXRvYgoJY29uY2F0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgovLyBhZGRTdGFrZShwYXksdWludDY0LHVpbnQ2NCkodWludDY0LHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfYWRkU3Rha2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBzdGFrZWRBbW91bnRQYXltZW50OiBwYXkKCXR4biBHcm91cEluZGV4CglpbnRjIDEgLy8gMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50YyAxIC8vICBwYXkKCT09CgoJLy8gYXJndW1lbnQgMiAoc3Rha2VkQW1vdW50UGF5bWVudCkgZm9yIGFkZFN0YWtlIG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYWRkU3Rha2UocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJY2FsbHN1YiBhZGRTdGFrZQoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGFkZFN0YWtlKHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4biwgdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgdmFsdWVUb1ZlcmlmeTogdWludDY0KTogVmFsaWRhdG9yUG9vbEtleQovLwovLyBBZGRzIHN0YWtlIHRvIGEgdmFsaWRhdG9yIHBvb2wuCi8vCi8vIEBwYXJhbSB7UGF5VHhufSBzdGFrZWRBbW91bnRQYXltZW50IC0gcGF5bWVudCBjb21pbmcgZnJvbSBzdGFrZXIgdG8gcGxhY2UgaW50byBhIHBvb2wKLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7dWludDY0fSB2YWx1ZVRvVmVyaWZ5IC0gb25seSBpZiB2YWxpZGF0b3IgaGFzIGdhdGluZyB0byBlbnRlciAtIHRoaXMgaXMgYXNzZXQgaWQgb3IgbmZkIGlkIHRoYXQgY29ycmVzcG9uZHMgdG8gZ2F0aW5nLgovLyBUeG4gc2VuZGVyIGlzIGZhY3RvcmVkIGluIGFzIHdlbGwgaWYgdGhhdCBpcyBwYXJ0IG9mIGdhdGluZy4KLy8gKiBAcmV0dXJucyB7VmFsaWRhdG9yUG9vbEtleX0gLSBUaGUga2V5IG9mIHRoZSB2YWxpZGF0b3IgcG9vbC4KYWRkU3Rha2U6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwbiA1CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY0NQoJLy8gYXNzZXJ0KHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkuZXhpc3RzLCAic3BlY2lmaWVkIHZhbGlkYXRvciBpZCBpc24ndCB2YWxpZCIpCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWJveF9sZW4KCXN3YXAKCXBvcAoKCS8vIHNwZWNpZmllZCB2YWxpZGF0b3IgaWQgaXNuJ3QgdmFsaWQKCWFzc2VydAoKCS8vICppZjhfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjQ4CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5zdW5zZXR0aW5nT24gPiAwCglpbnRjIDI3IC8vIDIyNgoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWludGMgMCAvLyAwCgk+CglieiAqaWY4X2VuZAoKCS8vICppZjhfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY0OQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5zdW5zZXR0aW5nT24gPCBnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCwKCS8vICAgICAgICAgImNhbid0IHN0YWtlIHdpdGggYSB2YWxpZGF0b3IgdGhhdCBpcyBwYXN0IGl0cyBzdW5zZXR0aW5nIHRpbWUiCgkvLyAgICAgICApCglpbnRjIDI3IC8vIDIyNgoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCTwKCgkvLyBjYW4ndCBzdGFrZSB3aXRoIGEgdmFsaWRhdG9yIHRoYXQgaXMgcGFzdCBpdHMgc3Vuc2V0dGluZyB0aW1lCglhc3NlcnQKCippZjhfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY1NQoJLy8gc3Rha2VyID0gdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCglmcmFtZV9idXJ5IDAgLy8gc3Rha2VyOiBhZGRyZXNzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY1OQoJLy8gdmVyaWZ5UGF5VHhuKHN0YWtlZEFtb3VudFBheW1lbnQsIHsKCS8vICAgICAgIHNlbmRlcjogc3Rha2VyLAoJLy8gICAgICAgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIFNlbmRlcgoJZnJhbWVfZGlnIDAgLy8gc3Rha2VyOiBhZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoic3Rha2VkQW1vdW50UGF5bWVudCIsImZpZWxkIjoic2VuZGVyIiwiZXhwZWN0ZWQiOiJzdGFrZXIifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzdGFrZWRBbW91bnRQYXltZW50IiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjY2CgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnN0YXRlLnRvdGFsQWxnb1N0YWtlZCA8IHRoaXMubWF4QWxsb3dlZFN0YWtlKCksCgkvLyAgICAgICAndG90YWwgc3Rha2VkIGZvciBhbGwgb2YgYSB2YWxpZGF0b3JzIHBvb2xzIG1heSBub3QgZXhjZWVkIGhhcmQgY2FwJwoJLy8gICAgICkKCWludGMgMTIgLy8gMjUyCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJY2FsbHN1YiBtYXhBbGxvd2VkU3Rha2UKCTwKCgkvLyB0b3RhbCBzdGFrZWQgZm9yIGFsbCBvZiBhIHZhbGlkYXRvcnMgcG9vbHMgbWF5IG5vdCBleGNlZWQgaGFyZCBjYXAKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NzMKCS8vIHRoaXMuZG9lc1N0YWtlck1lZXRHYXRpbmcodmFsaWRhdG9ySWQsIHZhbHVlVG9WZXJpZnkpCglmcmFtZV9kaWcgLTMgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJY2FsbHN1YiBkb2VzU3Rha2VyTWVldEdhdGluZwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NzUKCS8vIHJlYWxBbW91bnQgPSBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9idXJ5IDEgLy8gcmVhbEFtb3VudDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY3NgoJLy8gbWJyQW10TGVmdEJlaGluZDogdWludDY0ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBtYnJBbXRMZWZ0QmVoaW5kOiB1aW50NjQKCgkvLyAqaWY5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY3OAoJLy8gIXRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLmV4aXN0cwoJYnl0ZWMgMyAvLyAgInNwcyIKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCSEKCWJ6ICppZjlfZW5kCgoJLy8gKmlmOV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjgxCgkvLyBtYnJBbXRMZWZ0QmVoaW5kID0gdGhpcy5nZXRNYnJBbW91bnRzKCkuYWRkU3Rha2VyTWJyCgljYWxsc3ViIGdldE1ickFtb3VudHMKCWV4dHJhY3QgMjQgOAoJYnRvaQoJZnJhbWVfYnVyeSAyIC8vIG1ickFtdExlZnRCZWhpbmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2ODIKCS8vIHJlYWxBbW91bnQgLT0gbWJyQW10TGVmdEJlaGluZAoJZnJhbWVfZGlnIDEgLy8gcmVhbEFtb3VudDogdWludDY0CglmcmFtZV9kaWcgMiAvLyBtYnJBbXRMZWZ0QmVoaW5kOiB1aW50NjQKCS0KCWZyYW1lX2J1cnkgMSAvLyByZWFsQW1vdW50OiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjgzCgkvLyB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS5jcmVhdGUoKQoJYnl0ZWMgMyAvLyAgInNwcyIKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJY29uY2F0CglwdXNoaW50IDE0NAoJYm94X2NyZWF0ZQoJcG9wCgoqaWY5X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2ODcKCS8vIGZpbmRSZXQgPSB0aGlzLmZpbmRQb29sRm9yU3Rha2VyKHZhbGlkYXRvcklkLCBzdGFrZXIsIHJlYWxBbW91bnQpCglmcmFtZV9kaWcgMSAvLyByZWFsQW1vdW50OiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWNhbGxzdWIgZmluZFBvb2xGb3JTdGFrZXIKCWZyYW1lX2J1cnkgMyAvLyBmaW5kUmV0OiAoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY4OAoJLy8gcG9vbEtleSA9IGZpbmRSZXRbMF0KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2ODkKCS8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3IgPSBmaW5kUmV0WzFdCglmcmFtZV9kaWcgMyAvLyBmaW5kUmV0OiAoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50YyAyMiAvLyAxOTIKCWdldGJpdAoJZnJhbWVfYnVyeSA0IC8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjkwCgkvLyBpc05ld1N0YWtlclRvUHJvdG9jb2wgPSBmaW5kUmV0WzJdCglmcmFtZV9kaWcgMyAvLyBmaW5kUmV0OiAoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAxOTMKCWdldGJpdAoJZnJhbWVfYnVyeSA1IC8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbAoKCS8vICppZjEwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY5MQoJLy8gcG9vbEtleS5wb29sSWQgPT09IDAKCWZyYW1lX2RpZyAzIC8vIGZpbmRSZXQ6ICgodWludDY0LHVpbnQ2NCx1aW50NjQpLGJvb2wsYm9vbCkKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDggOAoJYnRvaQoJaW50YyAwIC8vIDAKCT09CglieiAqaWYxMF9lbmQKCgkvLyAqaWYxMF9jb25zZXF1ZW50CgkvLyBObyBwb29sIGF2YWlsYWJsZSB3aXRoIGZyZWUgc3Rha2UuICBWYWxpZGF0b3IgbmVlZHMgdG8gYWRkIGFub3RoZXIgcG9vbAoJZXJyCgoqaWYxMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Njk2CgkvLyB0aGlzLnVwZGF0ZVN0YWtlclBvb2xTZXQoc3Rha2VyLCBwb29sS2V5KQoJZnJhbWVfZGlnIDMgLy8gZmluZFJldDogKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgMCAyNAoJZnJhbWVfZGlnIDAgLy8gc3Rha2VyOiBhZGRyZXNzCgljYWxsc3ViIHVwZGF0ZVN0YWtlclBvb2xTZXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Njk5CgkvLyB0aGlzLmNhbGxQb29sQWRkU3Rha2UoCgkvLyAgICAgICBzdGFrZWRBbW91bnRQYXltZW50LAoJLy8gICAgICAgcG9vbEtleSwKCS8vICAgICAgIG1ickFtdExlZnRCZWhpbmQsCgkvLyAgICAgICBpc05ld1N0YWtlclRvVmFsaWRhdG9yLAoJLy8gICAgICAgaXNOZXdTdGFrZXJUb1Byb3RvY29sCgkvLyAgICAgKQoJZnJhbWVfZGlnIDUgLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sOiBib29sCglmcmFtZV9kaWcgNCAvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yOiBib29sCglmcmFtZV9kaWcgMiAvLyBtYnJBbXRMZWZ0QmVoaW5kOiB1aW50NjQKCWZyYW1lX2RpZyAzIC8vIGZpbmRSZXQ6ICgodWludDY0LHVpbnQ2NCx1aW50NjQpLGJvb2wsYm9vbCkKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDAgMjQKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWNhbGxzdWIgY2FsbFBvb2xBZGRTdGFrZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3MTQKCS8vIHJldHVybiBwb29sS2V5OwoJZnJhbWVfZGlnIDMgLy8gZmluZFJldDogKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgMCAyNAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDUKCXJldHN1YgoKLy8gc2V0VG9rZW5QYXlvdXRSYXRpbyh1aW50NjQpKHVpbnQ2NFsyNF0sdWludDY0KQoqYWJpX3JvdXRlX3NldFRva2VuUGF5b3V0UmF0aW86CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIHNldFRva2VuUGF5b3V0UmF0aW8odWludDY0KSh1aW50NjRbMjRdLHVpbnQ2NCkKCWNhbGxzdWIgc2V0VG9rZW5QYXlvdXRSYXRpbwoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHNldFRva2VuUGF5b3V0UmF0aW8odmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IFBvb2xUb2tlblBheW91dFJhdGlvCi8vCi8vIHNldFRva2VuUGF5b3V0UmF0aW8gaXMgY2FsbGVkIGJ5IFN0YWtpbmcgUG9vbCAjIDEgKE9OTFkpIHRvIGFzayB0aGUgdmFsaWRhdG9yICh1cykgdG8gY2FsY3VsYXRlIHRoZSByYXRpb3MKLy8gb2Ygc3Rha2UgaW4gdGhlIHBvb2xzIGZvciBzdWJzZXF1ZW50IHRva2VuIHBheW91dHMgKGllOiAyIHBvb2xzLCAnMTAwJyBhbGdvIHRvdGFsIHN0YWtlZCwgNjAgaW4gcG9vbCAxLCBhbmQgNDAKLy8gaW4gcG9vbCAyKSAgVGhpcyBpcyBkb25lIHNvIHdlIGhhdmUgYSBzdGFibGUgc25hcHNob3Qgb2Ygc3Rha2UgLSB0YWtlbiBvbmNlIHBlciBlcG9jaCAtIG9ubHkgdHJpZ2dlcmVkIGJ5Ci8vIHBvb2wgMSBkb2luZyBwYXlvdXQuICBwb29scyBvdGhlciB0aGFuIDEgZG9pbmcgcGF5b3V0IGNhbGwgcG9vbCAxIHRvIGFzayBpdCBkbyBpdCBmaXJzdC4KLy8gSXQgd291bGQgYmUgNjAvNDAlIGluIHRoZSBwb29sUGN0T2ZXaG9sZSB2YWx1ZXMuICBUaGUgdG9rZW4gcmV3YXJkIHBheW91dHMgdGhlbiB1c2UgdGhlc2UgdmFsdWVzIGluc3RlYWQgb2YKLy8gdGhlaXIgJ2N1cnJlbnQnIHN0YWtlIHdoaWNoIGNoYW5nZXMgYXMgcGFydCBvZiB0aGUgcGF5b3V0cyB0aGVtc2VsdmVzIChhbmQgcGVvcGxlIGNvdWxkIGJlIGNoYW5naW5nIHN0YWtlCi8vIGR1cmluZyB0aGUgZXBvY2ggdXBkYXRlcyBhY3Jvc3MgcG9vbHMpCi8vCi8vIE11bHRpcGxlIHBvb2xzIHdpbGwgY2FsbCB1cyB2aWEgcG9vbCAxIChwb29sMi0+cG9vbDEtPnZhbGlkYXRvciwgZXRjLikgc28gZG9uJ3QgYXNzZXJ0IG9uIHBvb2wxIGNhbGxpbmcgbXVsdGlwbGUKLy8gdGltZXMgaW4gc2FtZSBlcG9jaC4gIEp1c3QgcmV0dXJuLgovLwovLyBAcGFyYW0gdmFsaWRhdG9ySWQgLSB2YWxpZGF0b3IgaWQgKGFuZCB0aHVzIHBvb2wpIGNhbGxpbmcgdXMuICBWZXJpZmllZCBzbyB0aGF0IHNlbmRlciBNVVNUIGJlIHBvb2wgMSBvZiB0aGlzIHZhbGlkYXRvci4KLy8gQHJldHVybnMgUG9vbFRva2VuUGF5b3V0UmF0aW8gLSB0aGUgZmluaXNoZWQgcmF0aW8gZGF0YQpzZXRUb2tlblBheW91dFJhdGlvOgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cG4gOAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3MzQKCS8vIHBvb2wxQXBwSUQgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzWzBdLnBvb2xBcHBJZAoJaW50YyA2IC8vIDI2OAoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyBwb29sMUFwcElEOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzM1CgkvLyBhc3NlcnQocG9vbDFBcHBJRCAhPT0gMCkKCWZyYW1lX2RpZyAwIC8vIHBvb2wxQXBwSUQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCSE9Cglhc3NlcnQKCgkvLyAqaWYxMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3MzcKCS8vIHRoaXMudHhuLnNlbmRlciAhPT0gQXBwSUQuZnJvbVVpbnQ2NChwb29sMUFwcElEKS5hZGRyZXNzCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgMCAvLyBwb29sMUFwcElEOiB1aW50NjQKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJIT0KCWJ6ICppZjExX2VuZAoKCS8vICppZjExX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3MzgKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnRva2VuUGF5b3V0UmF0aW87CglpbnRjIDE0IC8vICBoZWFkT2Zmc2V0CglpbnRjIDE4IC8vIDIwMAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYiAqc2V0VG9rZW5QYXlvdXRSYXRpbypyZXR1cm4KCippZjExX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NDQKCS8vIGN1clJvdW5kID0gZ2xvYmFscy5yb3VuZAoJZ2xvYmFsIFJvdW5kCglmcmFtZV9idXJ5IDEgLy8gY3VyUm91bmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NDUKCS8vIGxhc3RQYXlvdXRVcGRhdGUgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnRva2VuUGF5b3V0UmF0aW8udXBkYXRlZEZvclBheW91dAoJaW50YyAzMCAvLyA4OTIKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDIgLy8gbGFzdFBheW91dFVwZGF0ZTogdWludDY0CgoJLy8gKmlmMTJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzQ2CgkvLyBsYXN0UGF5b3V0VXBkYXRlICE9PSAwCglmcmFtZV9kaWcgMiAvLyBsYXN0UGF5b3V0VXBkYXRlOiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoJYnogKmlmMTJfZW5kCgoJLy8gKmlmMTJfY29uc2VxdWVudAoJLy8gKmlmMTNfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzQ4CgkvLyAoQXBwSUQuZnJvbVVpbnQ2NChwb29sMUFwcElEKS5nbG9iYWxTdGF0ZSgnbGFzdFBheW91dCcpIGFzIHVpbnQ2NCkgPT09IGxhc3RQYXlvdXRVcGRhdGUKCWZyYW1lX2RpZyAwIC8vIHBvb2wxQXBwSUQ6IHVpbnQ2NAoJcHVzaGJ5dGVzIDB4NmM2MTczNzQ1MDYxNzk2Zjc1NzQgLy8gImxhc3RQYXlvdXQiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChwb29sMUFwcElEKS5nbG9iYWxTdGF0ZSgnbGFzdFBheW91dCcpCglhc3NlcnQKCWZyYW1lX2RpZyAyIC8vIGxhc3RQYXlvdXRVcGRhdGU6IHVpbnQ2NAoJPT0KCWJ6ICppZjEzX2VuZAoKCS8vICppZjEzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NDkKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnRva2VuUGF5b3V0UmF0aW87CglpbnRjIDE0IC8vICBoZWFkT2Zmc2V0CglpbnRjIDE4IC8vIDIwMAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYiAqc2V0VG9rZW5QYXlvdXRSYXRpbypyZXR1cm4KCippZjEzX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NTEKCS8vIGVwb2NoUm91bmRMZW5ndGggPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5lcG9jaFJvdW5kTGVuZ3RoIGFzIHVpbnQ2NAoJcHVzaGludCAxNjkKCWludGMgMjAgLy8gNAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIGVwb2NoUm91bmRMZW5ndGg6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NTIKCS8vIHRoaXNFcG9jaEJlZ2luID0gY3VyUm91bmQgLSAoY3VyUm91bmQgJSBlcG9jaFJvdW5kTGVuZ3RoKQoJZnJhbWVfZGlnIDEgLy8gY3VyUm91bmQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gY3VyUm91bmQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0CgklCgktCglmcmFtZV9idXJ5IDQgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoKCS8vICppZjE0X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc1NAoJLy8gbGFzdFBheW91dFVwZGF0ZSAtIChsYXN0UGF5b3V0VXBkYXRlICUgZXBvY2hSb3VuZExlbmd0aCkgPT09IHRoaXNFcG9jaEJlZ2luCglmcmFtZV9kaWcgMiAvLyBsYXN0UGF5b3V0VXBkYXRlOiB1aW50NjQKCWZyYW1lX2RpZyAyIC8vIGxhc3RQYXlvdXRVcGRhdGU6IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0CgklCgktCglmcmFtZV9kaWcgNCAvLyB0aGlzRXBvY2hCZWdpbjogdWludDY0Cgk9PQoJYnogKmlmMTRfZW5kCgoJLy8gKmlmMTRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc1NQoJLy8gcmV0dXJuIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUudG9rZW5QYXlvdXRSYXRpbzsKCWludGMgMTQgLy8gIGhlYWRPZmZzZXQKCWludGMgMTggLy8gMjAwCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CgliICpzZXRUb2tlblBheW91dFJhdGlvKnJldHVybgoKKmlmMTRfZW5kOgoKKmlmMTJfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc1OAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvLnVwZGF0ZWRGb3JQYXlvdXQgPSBjdXJSb3VuZAoJaW50YyAzMCAvLyA4OTIKCWZyYW1lX2RpZyAxIC8vIGN1clJvdW5kOiB1aW50NjQKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzYwCgkvLyBjdXJOdW1Qb29scyA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUubnVtUG9vbHMgYXMgdWludDY0CglpbnRjIDggLy8gMjQyCglpbnRjIDEwIC8vIDIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgNSAvLyBjdXJOdW1Qb29sczogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc2MQoJLy8gdG90YWxTdGFrZUZvclZhbGlkYXRvciA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUudG90YWxBbGdvU3Rha2VkCglpbnRjIDEyIC8vIDI1MgoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgNiAvLyB0b3RhbFN0YWtlRm9yVmFsaWRhdG9yOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzYyCgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IGN1ck51bVBvb2xzOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSA3IC8vIGk6IHVpbnQ2NAoKKmZvcl8yOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc2MgoJLy8gaSA8IGN1ck51bVBvb2xzCglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyA1IC8vIGN1ck51bVBvb2xzOiB1aW50NjQKCTwKCWJ6ICpmb3JfMl9lbmQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzY3CgkvLyBvdXJQb29sUGN0T2ZXaG9sZSA9IHdpZGVSYXRpbygKCS8vICAgICAgICAgW3RoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUucG9vbHNbaV0udG90YWxBbGdvU3Rha2VkLCAxXzAwMF8wMDBdLAoJLy8gICAgICAgICBbdG90YWxTdGFrZUZvclZhbGlkYXRvcl0KCS8vICAgICAgICkKCWludGMgNiAvLyAgaGVhZE9mZnNldAoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAxMSAvLyAgaGVhZE9mZnNldAoJKwoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCXB1c2hpbnQgMV8wMDBfMDAwCgltdWx3CglpbnRjIDAgLy8gMAoJZnJhbWVfZGlnIDYgLy8gdG90YWxTdGFrZUZvclZhbGlkYXRvcjogdWludDY0CglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSA4IC8vIG91clBvb2xQY3RPZldob2xlOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzcxCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnRva2VuUGF5b3V0UmF0aW8ucG9vbFBjdE9mV2hvbGVbaV0gPSBvdXJQb29sUGN0T2ZXaG9sZQoJaW50YyAxNCAvLyA3MDAKCWZyYW1lX2RpZyA3IC8vIGk6IHVpbnQ2NAoJaW50YyAyIC8vIDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJZnJhbWVfZGlnIDggLy8gb3VyUG9vbFBjdE9mV2hvbGU6IHVpbnQ2NAoJaXRvYgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKKmZvcl8yX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc2MgoJLy8gaSArPSAxCglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDcgLy8gaTogdWludDY0CgliICpmb3JfMgoKKmZvcl8yX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NzMKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnRva2VuUGF5b3V0UmF0aW87CglpbnRjIDE0IC8vICBoZWFkT2Zmc2V0CglpbnRjIDE4IC8vIDIwMAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoKKnNldFRva2VuUGF5b3V0UmF0aW8qcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gOAoJcmV0c3ViCgovLyBzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzKCh1aW50NjQsdWludDY0LHVpbnQ2NCksdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9zdGFrZVVwZGF0ZWRWaWFSZXdhcmRzOgoJLy8gc2F0dXJhdGVkQnVyblRvRmVlU2luazogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA1CglidG9pCgoJLy8gdmFsaWRhdG9yQ29tbWlzc2lvbjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA0CglidG9pCgoJLy8gcmV3YXJkVG9rZW5BbW91bnRSZXNlcnZlZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gYWxnb1RvQWRkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBwb29sS2V5OiAodWludDY0LHVpbnQ2NCx1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50YyAzIC8vIDI0Cgk9PQoKCS8vIGFyZ3VtZW50IDQgKHBvb2xLZXkpIGZvciBzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzIG11c3QgYmUgYSAodWludDY0LHVpbnQ2NCx1aW50NjQpCglhc3NlcnQKCgkvLyBleGVjdXRlIHN0YWtlVXBkYXRlZFZpYVJld2FyZHMoKHVpbnQ2NCx1aW50NjQsdWludDY0KSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzKHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXksIGFsZ29Ub0FkZDogdWludDY0LCByZXdhcmRUb2tlbkFtb3VudFJlc2VydmVkOiB1aW50NjQsIHZhbGlkYXRvckNvbW1pc3Npb246IHVpbnQ2NCwgc2F0dXJhdGVkQnVyblRvRmVlU2luazogdWludDY0KTogdm9pZAovLwovLyBzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzIGlzIGNhbGxlZCBieSBTdGFraW5nIHBvb2xzIHRvIGluZm9ybSB0aGUgdmFsaWRhdG9yICh1cykgdGhhdCBhIHBhcnRpY3VsYXIgYW1vdW50IG9mIHRvdGFsCi8vIHN0YWtlIGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBzcGVjaWZpZWQgcG9vbC4gIFRoaXMgaXMgdXNlZCB0byB1cGRhdGUgdGhlIHN0YXRzIHdlIGhhdmUgaW4gb3VyIFBvb2xJbmZvIHN0b3JhZ2UuCi8vIFRoZSBjYWxsaW5nIEFwcCBpZCBpcyB2YWxpZGF0ZWQgYWdhaW5zdCBvdXIgcG9vbCBsaXN0IGFzIHdlbGwuCi8vIEBwYXJhbSB7VmFsaWRhdG9yUG9vbEtleX0gcG9vbEtleSAtIFZhbGlkYXRvclBvb2xLZXkgdHlwZQovLyBAcGFyYW0ge3VpbnQ2NH0gYWxnb1RvQWRkIC0gYW1vdW50IHRoaXMgdmFsaWRhdG9yJ3MgdG90YWwgc3Rha2UgaW5jcmVhc2VkIHZpYSByZXdhcmRzCi8vIEBwYXJhbSB7dWludDY0fSByZXdhcmRUb2tlbkFtb3VudFJlc2VydmVkIC0gYW1vdW50IHRoaXMgdmFsaWRhdG9yJ3MgdG90YWwgc3Rha2UgaW5jcmVhc2VkIHZpYSByZXdhcmRzICh0aGF0IHNob3VsZCBiZQovLyBAcGFyYW0ge3VpbnQ2NH0gdmFsaWRhdG9yQ29tbWlzc2lvbiAtIHRoZSBjb21taXNzaW9uIGFtb3VudCB0aGUgdmFsaWRhdG9yIHdhcyBwYWlkLCBpZiBhbnkKLy8gQHBhcmFtIHt1aW50NjR9IHNhdHVyYXRlZEJ1cm5Ub0ZlZVNpbmsgLSBpZiB0aGUgcG9vbCB3YXMgaW4gc2F0dXJhdGVkIHN0YXRlLCB0aGUgYW1vdW50IHNlbnQgYmFjayB0byB0aGUgZmVlIHNpbmsuCi8vIHNlZW4gYXMgJ2FjY291bnRlZCBmb3IvcGVuZGluZyBzcGVudCcpCnN0YWtlVXBkYXRlZFZpYVJld2FyZHM6Cglwcm90byA1IDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Nzk0CgkvLyB0aGlzLnZlcmlmeVBvb2xLZXlDYWxsZXIocG9vbEtleSkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CgljYWxsc3ViIHZlcmlmeVBvb2xLZXlDYWxsZXIKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Nzk3CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXS50b3RhbEFsZ29TdGFrZWQgKz0gYWxnb1RvQWRkCglpbnRjIDYgLy8gIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50YyAxIC8vIDEKCS0KCWludGMgNSAvLyAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDExIC8vICBoZWFkT2Zmc2V0CgkrCglpbnRjIDYgLy8gIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50YyAxIC8vIDEKCS0KCWludGMgNSAvLyAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDExIC8vICBoZWFkT2Zmc2V0CgkrCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMiAvLyBhbGdvVG9BZGQ6IHVpbnQ2NAoJKwoJaXRvYgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Nzk4CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUuc3RhdGUudG90YWxBbGdvU3Rha2VkICs9IGFsZ29Ub0FkZAoJaW50YyAxMiAvLyAyNTIKCWR1cAoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTIgLy8gYWxnb1RvQWRkOiB1aW50NjQKCSsKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc5OQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnJld2FyZFRva2VuSGVsZEJhY2sgKz0gcmV3YXJkVG9rZW5BbW91bnRSZXNlcnZlZAoJaW50YyAxMyAvLyAyNjAKCWR1cAoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTMgLy8gcmV3YXJkVG9rZW5BbW91bnRSZXNlcnZlZDogdWludDY0CgkrCglpdG9iCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4MDEKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlICs9IGFsZ29Ub0FkZAoJYnl0ZWMgNCAvLyAgInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTIgLy8gYWxnb1RvQWRkOiB1aW50NjQKCSsKCWJ5dGVjIDQgLy8gICJzdGFrZWQiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4MDQKCS8vIHRoaXMucmV2ZXJpZnlORkRPd25lcnNoaXAocG9vbEtleS5pZCkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJY2FsbHN1YiByZXZlcmlmeU5GRE93bmVyc2hpcAoJcmV0c3ViCgovLyBzdGFrZVJlbW92ZWQoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYm9vbCl2b2lkCiphYmlfcm91dGVfc3Rha2VSZW1vdmVkOgoJLy8gc3Rha2VyUmVtb3ZlZDogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNQoJZHVwCglsZW4KCWludGMgMSAvLyAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHN0YWtlclJlbW92ZWQpIGZvciBzdGFrZVJlbW92ZWQgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50YyAwIC8vIDAKCWdldGJpdAoKCS8vIHJld2FyZFJlbW92ZWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJYnRvaQoKCS8vIGFtb3VudFJlbW92ZWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIHN0YWtlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAzIChzdGFrZXIpIGZvciBzdGFrZVJlbW92ZWQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHBvb2xLZXk6ICh1aW50NjQsdWludDY0LHVpbnQ2NCkKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDMgLy8gMjQKCT09CgoJLy8gYXJndW1lbnQgNCAocG9vbEtleSkgZm9yIHN0YWtlUmVtb3ZlZCBtdXN0IGJlIGEgKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzdGFrZVJlbW92ZWQoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYm9vbCl2b2lkCgljYWxsc3ViIHN0YWtlUmVtb3ZlZAoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gc3Rha2VSZW1vdmVkKHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXksIHN0YWtlcjogQWRkcmVzcywgYW1vdW50UmVtb3ZlZDogdWludDY0LCByZXdhcmRSZW1vdmVkOiB1aW50NjQsIHN0YWtlclJlbW92ZWQ6IGJvb2xlYW4pOiB2b2lkCi8vCi8vIHN0YWtlUmVtb3ZlZCBpcyBjYWxsZWQgYnkgU3Rha2luZyBwb29scyB0byBpbmZvcm0gdGhlIHZhbGlkYXRvciAodXMpIHRoYXQgYSBwYXJ0aWN1bGFyIGFtb3VudCBvZiB0b3RhbCBzdGFrZSBoYXMgYmVlbiByZW1vdmVkCi8vIGZyb20gdGhlIHNwZWNpZmllZCBwb29sLiAgVGhpcyBpcyB1c2VkIHRvIHVwZGF0ZSB0aGUgc3RhdHMgd2UgaGF2ZSBpbiBvdXIgUG9vbEluZm8gc3RvcmFnZS4KLy8gSWYgYW55IGFtb3VudCBvZiByZXdhcmRSZW1vdmVkIGlzIHNwZWNpZmllZCwgdGhlbiB0aGF0IGFtb3VudCBvZiByZXdhcmQgaXMgc2VudCB0byB0aGUgdXNlCi8vIFRoZSBjYWxsaW5nIEFwcCBpZCBpcyB2YWxpZGF0ZWQgYWdhaW5zdCBvdXIgcG9vbCBsaXN0IGFzIHdlbGwuCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9yUG9vbEtleX0gcG9vbEtleSBjYWxsaW5nIHVzIGZyb20gd2hpY2ggc3Rha2Ugd2FzIHJlbW92ZWQKLy8gQHBhcmFtIHtBZGRyZXNzfSBzdGFrZXIKLy8gQHBhcmFtIHt1aW50NjR9IGFtb3VudFJlbW92ZWQgLSBhbGdvIGFtb3VudCByZW1vdmVkCi8vIEBwYXJhbSB7dWludDY0fSByZXdhcmRSZW1vdmVkIC0gaWYgYXBwbGljYWJsZSwgYW1vdW50IG9mIHRva2VuIHJld2FyZCByZW1vdmVkIChieSBwb29sIDEgY2FsbGVyKSBvciBUTyByZW1vdmUgYW5kIHBheSBvdXQgKHZpYSBwb29sIDEgZnJvbSBkaWZmZXJlbnQgcG9vbCBjYWxsZXIpCi8vIEBwYXJhbSB7Ym9vbGVhbn0gc3Rha2VyUmVtb3ZlZApzdGFrZVJlbW92ZWQ6Cglwcm90byA1IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwbiAzCgoJLy8gKmlmMTVfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODM2CgkvLyBnbG9iYWxzLm9wY29kZUJ1ZGdldCA8IDMwMAoJZ2xvYmFsIE9wY29kZUJ1ZGdldAoJaW50YyAyOCAvLyAzMDAKCTwKCWJ6ICppZjE1X2VuZAoKCS8vICppZjE1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4MzcKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyA4IC8vICAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnRjIDI2IC8vICBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoqaWYxNV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODM5CgkvLyB0aGlzLnZlcmlmeVBvb2xLZXlDYWxsZXIocG9vbEtleSkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CgljYWxsc3ViIHZlcmlmeVBvb2xLZXlDYWxsZXIKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODQzCgkvLyBhc3NlcnQoYW1vdW50UmVtb3ZlZCA+IDAgfHwgcmV3YXJkUmVtb3ZlZCA+IDAsICdzaG91bGQgb25seSBiZSBjYWxsZWQgaWYgYWxnbyBvciByZXdhcmQgd2FzIHJlbW92ZWQnKQoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFJlbW92ZWQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT4KCWR1cAoJYm56ICpza2lwX29yMgoJZnJhbWVfZGlnIC00IC8vIHJld2FyZFJlbW92ZWQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT4KCXx8Cgoqc2tpcF9vcjI6CgkvLyBzaG91bGQgb25seSBiZSBjYWxsZWQgaWYgYWxnbyBvciByZXdhcmQgd2FzIHJlbW92ZWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NDYKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5wb29sc1twb29sS2V5LnBvb2xJZCAtIDFdLnRvdGFsQWxnb1N0YWtlZCAtPSBhbW91bnRSZW1vdmVkCglpbnRjIDYgLy8gIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50YyAxIC8vIDEKCS0KCWludGMgNSAvLyAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDExIC8vICBoZWFkT2Zmc2V0CgkrCglpbnRjIDYgLy8gIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50YyAxIC8vIDEKCS0KCWludGMgNSAvLyAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDExIC8vICBoZWFkT2Zmc2V0CgkrCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMyAvLyBhbW91bnRSZW1vdmVkOiB1aW50NjQKCS0KCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg0NwoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnRvdGFsQWxnb1N0YWtlZCAtPSBhbW91bnRSZW1vdmVkCglpbnRjIDEyIC8vIDI1MgoJZHVwCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMyAvLyBhbW91bnRSZW1vdmVkOiB1aW50NjQKCS0KCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg0OAoJLy8gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgLT0gYW1vdW50UmVtb3ZlZAoJYnl0ZWMgNCAvLyAgInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTMgLy8gYW1vdW50UmVtb3ZlZDogdWludDY0CgktCglieXRlYyA0IC8vICAic3Rha2VkIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyAqaWYxNl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NTAKCS8vIHJld2FyZFJlbW92ZWQgPiAwCglmcmFtZV9kaWcgLTQgLy8gcmV3YXJkUmVtb3ZlZDogdWludDY0CglpbnRjIDAgLy8gMAoJPgoJYnogKmlmMTZfZWxzZQoKCS8vICppZjE2X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NTEKCS8vIHJld2FyZFRva2VuSUQgPSB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUuY29uZmlnLnJld2FyZFRva2VuSWQKCWludGMgMzcgLy8gMTUzCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyByZXdhcmRUb2tlbklEOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODUyCgkvLyBhc3NlcnQocmV3YXJkVG9rZW5JRCAhPT0gMCwgInJld2FyZFJlbW92ZWQgY2FuJ3QgYmUgc2V0IGlmIHZhbGlkYXRvciBkb2Vzbid0IGhhdmUgcmV3YXJkIHRva2VuISIpCglmcmFtZV9kaWcgMCAvLyByZXdhcmRUb2tlbklEOiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoKCS8vIHJld2FyZFJlbW92ZWQgY2FuJ3QgYmUgc2V0IGlmIHZhbGlkYXRvciBkb2Vzbid0IGhhdmUgcmV3YXJkIHRva2VuIQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg1MwoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUuc3RhdGUucmV3YXJkVG9rZW5IZWxkQmFjayA+PSByZXdhcmRSZW1vdmVkLAoJLy8gICAgICAgICAncmV3YXJkIGJlaW5nIHJlbW92ZWQgbXVzdCBiZSBjb3ZlcmVkIGJ5IGhvbGQgYmFjayBhbW91bnQnCgkvLyAgICAgICApCglpbnRjIDEzIC8vIDI2MAoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTQgLy8gcmV3YXJkUmVtb3ZlZDogdWludDY0Cgk+PQoKCS8vIHJld2FyZCBiZWluZyByZW1vdmVkIG11c3QgYmUgY292ZXJlZCBieSBob2xkIGJhY2sgYW1vdW50Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODU5CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUuc3RhdGUucmV3YXJkVG9rZW5IZWxkQmFjayAtPSByZXdhcmRSZW1vdmVkCglpbnRjIDEzIC8vIDI2MAoJZHVwCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtNCAvLyByZXdhcmRSZW1vdmVkOiB1aW50NjQKCS0KCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gKmlmMTdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODY0CgkvLyBwb29sS2V5LnBvb2xJZCAhPT0gMQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnRjIDEgLy8gMQoJIT0KCWJ6ICppZjE3X2VuZAoKCS8vICppZjE3X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NjUKCS8vIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBTdGFraW5nUG9vbC5wcm90b3R5cGUucGF5VG9rZW5SZXdhcmQ+KHsKCS8vICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5wb29sc1swXS5wb29sQXBwSWQpLAoJLy8gICAgICAgICAgIG1ldGhvZEFyZ3M6IFtzdGFrZXIsIHJld2FyZFRva2VuSUQsIHJld2FyZFJlbW92ZWRdLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlYyAxNCAvLyAgbWV0aG9kICJwYXlUb2tlblJld2FyZChhZGRyZXNzLHVpbnQ2NCx1aW50NjQpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg2NgoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbMF0ucG9vbEFwcElkKQoJaW50YyA2IC8vIDI2OAoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODY3CgkvLyBtZXRob2RBcmdzOiBbc3Rha2VyLCByZXdhcmRUb2tlbklELCByZXdhcmRSZW1vdmVkXQoJZnJhbWVfZGlnIC0yIC8vIHN0YWtlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAwIC8vIHJld2FyZFRva2VuSUQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtNCAvLyByZXdhcmRSZW1vdmVkOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMTdfZW5kOgoJYiAqaWYxNl9lbmQKCippZjE2X2Vsc2U6CgoqaWYxNl9lbmQ6CgkvLyAqaWYxOF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4OTIKCS8vIHN0YWtlclJlbW92ZWQKCWZyYW1lX2RpZyAtNSAvLyBzdGFrZXJSZW1vdmVkOiBib29sZWFuCglieiAqaWYxOF9lbmQKCgkvLyAqaWYxOF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODk0CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXS50b3RhbFN0YWtlcnMgLT0gMQoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAyIC8vICBoZWFkT2Zmc2V0CgkrCglpbnRjIDYgLy8gIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50YyAxIC8vIDEKCS0KCWludGMgNSAvLyAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDIgLy8gIGhlYWRPZmZzZXQKCSsKCWludGMgMTAgLy8gMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpdG9iCglleHRyYWN0IDYgMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODk2CgkvLyByZW1vdmVSZXQgPSB0aGlzLnJlbW92ZUZyb21TdGFrZXJQb29sU2V0KHN0YWtlciwgPFZhbGlkYXRvclBvb2xLZXk+ewoJLy8gICAgICAgICBpZDogcG9vbEtleS5pZCwKCS8vICAgICAgICAgcG9vbElkOiBwb29sS2V5LnBvb2xJZCwKCS8vICAgICAgICAgcG9vbEFwcElkOiBwb29sS2V5LnBvb2xBcHBJZCwKCS8vICAgICAgIH0pCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJY29uY2F0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAxNiA4CglidG9pCglpdG9iCgljb25jYXQKCWZyYW1lX2RpZyAtMiAvLyBzdGFrZXI6IEFkZHJlc3MKCWNhbGxzdWIgcmVtb3ZlRnJvbVN0YWtlclBvb2xTZXQKCWZyYW1lX2J1cnkgMSAvLyByZW1vdmVSZXQ6IChib29sLGJvb2wpCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjkwMQoJLy8gc3Rha2VyT3V0T2ZUaGlzVmFsaWRhdG9yID0gcmVtb3ZlUmV0WzBdCglmcmFtZV9kaWcgMSAvLyByZW1vdmVSZXQ6IChib29sLGJvb2wpCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50YyAwIC8vIDAKCWdldGJpdAoJZnJhbWVfYnVyeSAyIC8vIHN0YWtlck91dE9mVGhpc1ZhbGlkYXRvcjogYm9vbAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5MDIKCS8vIHN0YWtlck91dE9mUHJvdG9jb2wgPSByZW1vdmVSZXRbMV0KCWZyYW1lX2RpZyAxIC8vIHJlbW92ZVJldDogKGJvb2wsYm9vbCkKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnRjIDEgLy8gMQoJZ2V0Yml0CglmcmFtZV9idXJ5IDMgLy8gc3Rha2VyT3V0T2ZQcm90b2NvbDogYm9vbAoKCS8vICppZjE5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjkwNAoJLy8gc3Rha2VyT3V0T2ZUaGlzVmFsaWRhdG9yCglmcmFtZV9kaWcgMiAvLyBzdGFrZXJPdXRPZlRoaXNWYWxpZGF0b3I6IGJvb2wKCWJ6ICppZjE5X2VuZAoKCS8vICppZjE5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5MDUKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5zdGF0ZS50b3RhbFN0YWtlcnMgLT0gMQoJaW50YyAyMyAvLyAyNDQKCWR1cAoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglpbnRjIDEgLy8gMQoJLQoJaXRvYgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCippZjE5X2VuZDoKCS8vICppZjIwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjkwOAoJLy8gc3Rha2VyT3V0T2ZQcm90b2NvbAoJZnJhbWVfZGlnIDMgLy8gc3Rha2VyT3V0T2ZQcm90b2NvbDogYm9vbAoJYnogKmlmMjBfZW5kCgoJLy8gKmlmMjBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjkwOQoJLy8gdGhpcy5udW1TdGFrZXJzLnZhbHVlIC09IDEKCWJ5dGVjIDcgLy8gICJudW1TdGFrZXJzIgoJYXBwX2dsb2JhbF9nZXQKCWludGMgMSAvLyAxCgktCglieXRlYyA3IC8vICAibnVtU3Rha2VycyIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoqaWYyMF9lbmQ6CgoqaWYxOF9lbmQ6CglyZXRzdWIKCi8vIGZpbmRQb29sRm9yU3Rha2VyKHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCkoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCiphYmlfcm91dGVfZmluZFBvb2xGb3JTdGFrZXI6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIGFtb3VudFRvU3Rha2U6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIHN0YWtlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChzdGFrZXIpIGZvciBmaW5kUG9vbEZvclN0YWtlciBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZmluZFBvb2xGb3JTdGFrZXIodWludDY0LGFkZHJlc3MsdWludDY0KSgodWludDY0LHVpbnQ2NCx1aW50NjQpLGJvb2wsYm9vbCkKCWNhbGxzdWIgZmluZFBvb2xGb3JTdGFrZXIKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBmaW5kUG9vbEZvclN0YWtlcih2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCBzdGFrZXI6IEFkZHJlc3MsIGFtb3VudFRvU3Rha2U6IHVpbnQ2NCk6IFtWYWxpZGF0b3JQb29sS2V5LCBib29sZWFuLCBib29sZWFuXQovLwovLyBGaW5kcyB0aGUgcG9vbCBmb3IgYSBzdGFrZXIgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHZhbGlkYXRvciBpZCwgc3Rha2VyIGFkZHJlc3MsIGFuZCBhbW91bnQgdG8gc3Rha2UuCi8vIEZpcnN0IGNoZWNrcyB0aGUgc3Rha2VycyAnYWxyZWFkeSBzdGFrZWQgbGlzdCcgZm9yIHRoZSB2YWxpZGF0b3IgcHJlZmVycmluZyB0aG9zZSAoYWRkaW5nIGlmIHBvc3NpYmxlKSB0aGVuIGFkZHMKLy8gdG8gbmV3IHBvb2wgaWYgbmVjZXNzYXJ5LgovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvci4KLy8gQHBhcmFtIHtBZGRyZXNzfSBzdGFrZXIgLSBUaGUgYWRkcmVzcyBvZiB0aGUgc3Rha2VyLgovLyBAcGFyYW0ge3VpbnQ2NH0gYW1vdW50VG9TdGFrZSAtIFRoZSBhbW91bnQgdG8gc3Rha2UuCi8vIEByZXR1cm5zIHtWYWxpZGF0b3JQb29sS2V5LCBib29sZWFuLCBib29sZWFufSAtIFRoZSBwb29sIGZvciB0aGUgc3Rha2VyLCB0cnVlL2ZhbHNlIG9uIHdoZXRoZXIgdGhlIHN0YWtlciBpcyAnbmV3JwovLyB0byB0aGlzIFZBTElEQVRPUiwgYW5kIHRydWUvZmFsc2UgaWYgc3Rha2VyIGlzIG5ldyB0byB0aGUgcHJvdG9jb2wuCmZpbmRQb29sRm9yU3Rha2VyOgoJcHJvdG8gMyAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cG4gNwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5MzAKCS8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3IgPSB0cnVlCglpbnRjIDEgLy8gMQoJZnJhbWVfYnVyeSAwIC8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTMxCgkvLyBpc05ld1N0YWtlclRvUHJvdG9jb2wgPSB0cnVlCglpbnRjIDEgLy8gMQoJZnJhbWVfYnVyeSAxIC8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5MzkKCS8vIG1heFBlclBvb2wgPSB0aGlzLmdldEN1ck1heFN0YWtlUGVyUG9vbCh2YWxpZGF0b3JJZCkKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCgljYWxsc3ViIGdldEN1ck1heFN0YWtlUGVyUG9vbAoJZnJhbWVfYnVyeSAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoKCS8vICppZjIxX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0MgoJLy8gdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikuZXhpc3RzCglieXRlYyAzIC8vICAic3BzIgoJZnJhbWVfZGlnIC0yIC8vIHN0YWtlcjogQWRkcmVzcwoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCWJ6ICppZjIxX2VuZAoKCS8vICppZjIxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NDMKCS8vIHBvb2xTZXQgPSBjbG9uZSh0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZSkKCWJ5dGVjIDMgLy8gICJzcHMiCglmcmFtZV9kaWcgLTIgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlCglhc3NlcnQKCWZyYW1lX2J1cnkgMyAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0NAoJLy8gYXNzZXJ0KHZhbGlkYXRvcklkICE9PSAwKQoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWludGMgMCAvLyAwCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0NQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBwb29sU2V0Lmxlbmd0aDsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgNCAvLyBpOiB1aW50NjQKCipmb3JfMzoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NDUKCS8vIGkgPCBwb29sU2V0Lmxlbmd0aAoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnRjIDcgLy8gNgoJPAoJYnogKmZvcl8zX2VuZAoKCS8vICppZjIyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0NgoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAzMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludGMgMjggLy8gMzAwCgk8CglieiAqaWYyMl9lbmQKCgkvLyAqaWYyMl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTQ3CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnRjIDcgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZWMgOCAvLyAgI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50YyAyNiAvLyAgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMjJfZW5kOgoJLy8gKmlmMjNfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTQ5CgkvLyBwb29sU2V0W2ldLmlkID09PSAwCglmcmFtZV9kaWcgMyAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDAgLy8gMAoJKwoJaW50YyAyIC8vIDgKCWV4dHJhY3QzCglidG9pCglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppZjIzX2VuZAoKCS8vICppZjIzX2NvbnNlcXVlbnQKCWIgKmZvcl8zX2NvbnRpbnVlCgoqaWYyM19lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTUyCgkvLyBpc05ld1N0YWtlclRvUHJvdG9jb2wgPSBmYWxzZQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMSAvLyBpc05ld1N0YWtlclRvUHJvdG9jb2w6IGJvb2wKCgkvLyAqaWYyNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NTMKCS8vIHBvb2xTZXRbaV0uaWQgPT09IHZhbGlkYXRvcklkCglmcmFtZV9kaWcgMyAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDAgLy8gMAoJKwoJaW50YyAyIC8vIDgKCWV4dHJhY3QzCglidG9pCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJPT0KCWJ6ICppZjI0X2VuZAoKCS8vICppZjI0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NTUKCS8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3IgPSBmYWxzZQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMCAvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yOiBib29sCgoJLy8gKmlmMjVfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTU3CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzW3Bvb2xTZXRbaV0ucG9vbElkIC0gMV0udG90YWxBbGdvU3Rha2VkICsgYW1vdW50VG9TdGFrZSA8PQoJLy8gICAgICAgICAgICAgbWF4UGVyUG9vbAoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMyAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDIgLy8gIGhlYWRPZmZzZXQKCSsKCWludGMgMiAvLyA4CglleHRyYWN0MwoJYnRvaQoJaW50YyAxIC8vIDEKCS0KCWludGMgNSAvLyAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDExIC8vICBoZWFkT2Zmc2V0CgkrCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFRvU3Rha2U6IHVpbnQ2NAoJKwoJZnJhbWVfZGlnIDIgLy8gbWF4UGVyUG9vbDogdWludDY0Cgk8PQoJYnogKmlmMjVfZW5kCgoJLy8gKmlmMjVfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk2MAoJLy8gcmV0dXJuIFtwb29sU2V0W2ldLCBpc05ld1N0YWtlclRvVmFsaWRhdG9yLCBpc05ld1N0YWtlclRvUHJvdG9jb2xdOwoJZnJhbWVfZGlnIDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAzIC8vIDI0CglleHRyYWN0MwoJYnl0ZWMgNSAvLyAweDAwCglpbnRjIDAgLy8gMAoJZnJhbWVfZGlnIDAgLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbAoJc2V0Yml0CglpbnRjIDEgLy8gMQoJZnJhbWVfZGlnIDEgLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sOiBib29sCglzZXRiaXQKCWNvbmNhdAoJYiAqZmluZFBvb2xGb3JTdGFrZXIqcmV0dXJuCgoqaWYyNV9lbmQ6CgoqaWYyNF9lbmQ6CgoqZm9yXzNfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTQ1CgkvLyBpICs9IDEKCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgNCAvLyBpOiB1aW50NjQKCWIgKmZvcl8zCgoqZm9yXzNfZW5kOgoKKmlmMjFfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk2NwoJLy8gYXNzZXJ0KAoJLy8gICAgICAgYW1vdW50VG9TdGFrZSA+PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5taW5FbnRyeVN0YWtlLAoJLy8gICAgICAgJ211c3Qgc3Rha2UgYXQgbGVhc3QgdGhlIG1pbmltdW0gZm9yIHRoaXMgcG9vbCcKCS8vICAgICApCglmcmFtZV9kaWcgLTMgLy8gYW1vdW50VG9TdGFrZTogdWludDY0CglpbnRjIDM4IC8vIDIwOQoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCT49CgoJLy8gbXVzdCBzdGFrZSBhdCBsZWFzdCB0aGUgbWluaW11bSBmb3IgdGhpcyBwb29sCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTczCgkvLyBwb29scyA9IGNsb25lKHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUucG9vbHMpCglpbnRjIDYgLy8gIGhlYWRPZmZzZXQKCWludGMgMjkgLy8gNDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDUgLy8gcG9vbHM6ICh1aW50NjQsdWludDE2LHVpbnQ2NClbMjRdCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk3NAoJLy8gY3VyTnVtUG9vbHMgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnN0YXRlLm51bVBvb2xzIGFzIHVpbnQ2NAoJaW50YyA4IC8vIDI0MgoJaW50YyAxMCAvLyAyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDYgLy8gY3VyTnVtUG9vbHM6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NzUKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgY3VyTnVtUG9vbHM7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDcgLy8gaTogdWludDY0CgoqZm9yXzQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTc1CgkvLyBpIDwgY3VyTnVtUG9vbHMKCWZyYW1lX2RpZyA3IC8vIGk6IHVpbnQ2NAoJZnJhbWVfZGlnIDYgLy8gY3VyTnVtUG9vbHM6IHVpbnQ2NAoJPAoJYnogKmZvcl80X2VuZAoKCS8vICppZjI2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk3NgoJLy8gcG9vbHNbaV0udG90YWxBbGdvU3Rha2VkICsgYW1vdW50VG9TdGFrZSA8PSBtYXhQZXJQb29sCglmcmFtZV9kaWcgNSAvLyBwb29sczogKHVpbnQ2NCx1aW50MTYsdWludDY0KVsyNF0KCWZyYW1lX2RpZyA3IC8vIGk6IHVpbnQ2NAoJaW50YyA1IC8vIDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMTEgLy8gIGhlYWRPZmZzZXQKCSsKCWludGMgMiAvLyA4CglleHRyYWN0MwoJYnRvaQoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFRvU3Rha2U6IHVpbnQ2NAoJKwoJZnJhbWVfZGlnIDIgLy8gbWF4UGVyUG9vbDogdWludDY0Cgk8PQoJYnogKmlmMjZfZW5kCgoJLy8gKmlmMjZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk3NwoJLy8gcmV0dXJuIFsKCS8vICAgICAgICAgICB7IGlkOiB2YWxpZGF0b3JJZCwgcG9vbElkOiBpICsgMSwgcG9vbEFwcElkOiBwb29sc1tpXS5wb29sQXBwSWQgfSwKCS8vICAgICAgICAgICBpc05ld1N0YWtlclRvVmFsaWRhdG9yLAoJLy8gICAgICAgICAgIGlzTmV3U3Rha2VyVG9Qcm90b2NvbCwKCS8vICAgICAgICAgXTsKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglpdG9iCgljb25jYXQKCWZyYW1lX2RpZyA1IC8vIHBvb2xzOiAodWludDY0LHVpbnQxNix1aW50NjQpWzI0XQoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAwIC8vIDAKCSsKCWludGMgMiAvLyA4CglleHRyYWN0MwoJYnRvaQoJaXRvYgoJY29uY2F0CglieXRlYyA1IC8vIDB4MDAKCWludGMgMCAvLyAwCglmcmFtZV9kaWcgMCAvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yOiBib29sCglzZXRiaXQKCWludGMgMSAvLyAxCglmcmFtZV9kaWcgMSAvLyBpc05ld1N0YWtlclRvUHJvdG9jb2w6IGJvb2wKCXNldGJpdAoJY29uY2F0CgliICpmaW5kUG9vbEZvclN0YWtlcipyZXR1cm4KCippZjI2X2VuZDoKCipmb3JfNF9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NzUKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSA3IC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzQKCipmb3JfNF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTg1CgkvLyByZXR1cm4gW3sgaWQ6IHZhbGlkYXRvcklkLCBwb29sSWQ6IDAsIHBvb2xBcHBJZDogMCB9LCBpc05ld1N0YWtlclRvVmFsaWRhdG9yLCBpc05ld1N0YWtlclRvUHJvdG9jb2xdOwoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWJ5dGVjIDEwIC8vIDB4MDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglieXRlYyAxMCAvLyAweDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJYnl0ZWMgNSAvLyAweDAwCglpbnRjIDAgLy8gMAoJZnJhbWVfZGlnIDAgLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbAoJc2V0Yml0CglpbnRjIDEgLy8gMQoJZnJhbWVfZGlnIDEgLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sOiBib29sCglzZXRiaXQKCWNvbmNhdAoKKmZpbmRQb29sRm9yU3Rha2VyKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDcKCXJldHN1YgoKLy8gbW92ZVBvb2xUb05vZGUodWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX21vdmVQb29sVG9Ob2RlOgoJLy8gbm9kZU51bTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gcG9vbEFwcElkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBtb3ZlUG9vbFRvTm9kZSh1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIG1vdmVQb29sVG9Ob2RlCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBtb3ZlUG9vbFRvTm9kZSh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCBwb29sQXBwSWQ6IHVpbnQ2NCwgbm9kZU51bTogdWludDY0KTogdm9pZAovLwovLyBGaW5kIHRoZSBzcGVjaWZpZWQgcG9vbCAoaW4gYW55IG5vZGUgbnVtYmVyKSBhbmQgbW92ZSBpdCB0byB0aGUgc3BlY2lmaWVkIG5vZGUuCi8vIFRoZSBwb29sIGFjY291bnQgaXMgZm9yY2VkIG9mZmxpbmUgaWYgbW92ZWQgc28gcHJpb3Igbm9kZSB3aWxsIHN0aWxsIHJ1biBmb3IgMzIwIHJvdW5kcyBidXQKLy8gbmV3IGtleSBnb2VzIG9ubGluZSBvbiBuZXcgbm9kZSBzb29uIGFmdGVyICgzMjAgcm91bmRzIGFmdGVyIGl0IGdvZXMgb25saW5lKQovLyBOby1vcCBpZiBzdWNjZXNzLCBhc3NlcnRzIGlmIG5vdCBmb3VuZCBvciBjYW4ndCBtb3ZlICAobm8gc3BhY2UgaW4gdGFyZ2V0KQovLyBbIE9OTFkgT1dORVIgT1IgTUFOQUdFUiBDQU4gQ0hBTkdFIF0KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7dWludDY0fSBwb29sQXBwSWQKLy8gQHBhcmFtIHt1aW50NjR9IG5vZGVOdW0KbW92ZVBvb2xUb05vZGU6Cglwcm90byAzIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMDEKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIgfHwKCS8vICAgICAgICAgdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5tYW5hZ2VyLAoJLy8gICAgICAgJ2NhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnRjIDIgLy8gOAoJaW50YyA0IC8vIDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoJZHVwCglibnogKnNraXBfb3IzCgl0eG4gU2VuZGVyCglpbnRjIDE3IC8vIDQwCglpbnRjIDQgLy8gMzIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09Cgl8fAoKKnNraXBfb3IzOgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTAwNwoJLy8gbm9kZVBvb2xBc3NpZ25tZW50cyA9IGNsb25lKHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUubm9kZVBvb2xBc3NpZ25tZW50cykKCWludGMgMTYgLy8gIGhlYWRPZmZzZXQKCWludGMgMjIgLy8gMTkyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDAgLy8gbm9kZVBvb2xBc3NpZ25tZW50czogKCh1aW50NjRbM10pWzhdKQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDA4CgkvLyBhc3NlcnQobm9kZU51bSA+PSAxICYmIG5vZGVOdW0gPD0gTUFYX05PREVTLCAnbm9kZSBudW1iZXIgb3V0IG9mIGFsbG93YWJsZSByYW5nZScpCglmcmFtZV9kaWcgLTMgLy8gbm9kZU51bTogdWludDY0CglpbnRjIDEgLy8gMQoJPj0KCWR1cAoJYnogKnNraXBfYW5kMQoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJaW50YyAyIC8vIDgKCTw9CgkmJgoKKnNraXBfYW5kMToKCS8vIG5vZGUgbnVtYmVyIG91dCBvZiBhbGxvd2FibGUgcmFuZ2UKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDEwCgkvLyBmb3IgKGxldCBzcmNOb2RlSWR4ID0gMDsgc3JjTm9kZUlkeCA8IE1BWF9OT0RFUzsgc3JjTm9kZUlkeCArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCipmb3JfNToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDEwCgkvLyBzcmNOb2RlSWR4IDwgTUFYX05PREVTCglmcmFtZV9kaWcgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCWludGMgMiAvLyA4Cgk8CglieiAqZm9yXzVfZW5kCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTEKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgTUFYX1BPT0xTX1BFUl9OT0RFOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoKKmZvcl82OgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTEKCS8vIGkgPCBNQVhfUE9PTFNfUEVSX05PREUKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyA5IC8vIDMKCTwKCWJ6ICpmb3JfNl9lbmQKCgkvLyAqaWYyN19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDEyCgkvLyBub2RlUG9vbEFzc2lnbm1lbnRzLm5vZGVzW3NyY05vZGVJZHhdLnBvb2xBcHBJZHNbaV0gPT09IHBvb2xBcHBJZAoJZnJhbWVfZGlnIDAgLy8gbm9kZVBvb2xBc3NpZ25tZW50czogKCh1aW50NjRbM10pWzhdKQoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyAxIC8vIHNyY05vZGVJZHg6IHVpbnQ2NAoJaW50YyAzIC8vIDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludGMgMCAvLyAwCgkrCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMiAvLyA4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludGMgMiAvLyA4CglleHRyYWN0MwoJYnRvaQoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBcHBJZDogdWludDY0Cgk9PQoJYnogKmlmMjdfZW5kCgoJLy8gKmlmMjdfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTMKCS8vIGFzc2VydChub2RlTnVtIC0gMSAhPT0gc3JjTm9kZUlkeCwgImNhbid0IG1vdmUgdG8gc2FtZSBub2RlIikKCWZyYW1lX2RpZyAtMyAvLyBub2RlTnVtOiB1aW50NjQKCWludGMgMSAvLyAxCgktCglmcmFtZV9kaWcgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCSE9CgoJLy8gY2FuJ3QgbW92ZSB0byBzYW1lIG5vZGUKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDE1CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLm5vZGVQb29sQXNzaWdubWVudHMubm9kZXNbc3JjTm9kZUlkeF0ucG9vbEFwcElkc1tpXSA9IDAKCWludGMgMTYgLy8gOTAwCglmcmFtZV9kaWcgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDAgLy8gMAoJKwoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDIgLy8gOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglieXRlYyAxMCAvLyAweDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTAxOAoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFN0YWtpbmdQb29sLnByb3RvdHlwZS5nb09mZmxpbmU+KHsKCS8vICAgICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKSwKCS8vICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglwdXNoYnl0ZXMgMHg1MWVmM2IyMSAvLyBtZXRob2QgImdvT2ZmbGluZSgpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTkKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKQoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBcHBJZDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMjMKCS8vIHRoaXMuYWRkUG9vbFRvTm9kZSh2YWxpZGF0b3JJZCwgcG9vbEFwcElkLCBub2RlTnVtKQoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBcHBJZDogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJY2FsbHN1YiBhZGRQb29sVG9Ob2RlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMjQKCS8vIHJldHVybjsKCXJldHN1YgoKKmlmMjdfZW5kOgoKKmZvcl82X2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTEKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzYKCipmb3JfNl9lbmQ6CgoqZm9yXzVfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTAxMAoJLy8gc3JjTm9kZUlkeCArPSAxCglmcmFtZV9kaWcgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDEgLy8gc3JjTm9kZUlkeDogdWludDY0CgliICpmb3JfNQoKKmZvcl81X2VuZDoKCS8vIGNvdWxkbid0IGZpbmQgcG9vbCBhcHAgaWQgaW4gbm9kZXMgdG8gbW92ZQoJZXJyCglyZXRzdWIKCi8vIGVtcHR5VG9rZW5SZXdhcmRzKHVpbnQ2NCxhZGRyZXNzKXVpbnQ2NAoqYWJpX3JvdXRlX2VtcHR5VG9rZW5SZXdhcmRzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyByZWNlaXZlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChyZWNlaXZlcikgZm9yIGVtcHR5VG9rZW5SZXdhcmRzIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBlbXB0eVRva2VuUmV3YXJkcyh1aW50NjQsYWRkcmVzcyl1aW50NjQKCWNhbGxzdWIgZW1wdHlUb2tlblJld2FyZHMKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBlbXB0eVRva2VuUmV3YXJkcyh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCByZWNlaXZlcjogQWRkcmVzcyk6IHVpbnQ2NAovLwovLyBTZW5kcyB0aGUgcmV3YXJkIHRva2VucyBoZWxkIGluIHBvb2wgMSB0byBzcGVjaWZpZWQgcmVjZWl2ZXIuCi8vIFRoaXMgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBieSB0aGUgb3duZXIgd2hlbiB0aGV5IHdhbnQgdG8gZ2V0IHJld2FyZCB0b2tlbnMgJ2JhY2snIHdoaWNoIHRoZXkgc2VudCB0bwovLyB0aGUgZmlyc3QgcG9vbCAobGlrZWx5IGJlY2F1c2UgdmFsaWRhdG9yIGlzIHN1bnNldHRpbmcuICBBbnkgdG9rZW5zIGN1cnJlbnRseSAncmVzZXJ2ZWQnIGZvciBzdGFrZXJzIHRvIGNsYWltIHdpbGwKLy8gTk9UIGJlIHNlbnQgYXMgdGhleSBtdXN0IGJlIGhlbGQgYmFjayBmb3Igc3Rha2VycyB0byBsYXRlciBjbGFpbS4KLy8gWyBPTkxZIE9XTkVSIENBTiBDQUxMXQovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvci4KLy8gQHBhcmFtIHtBZGRyZXNzfSByZWNlaXZlciAtIHRoZSBhY2NvdW50IHRvIHNlbmQgdGhlIHRva2VucyB0byAobXVzdCBhbHJlYWR5IGJlIG9wdGVkLWluIHRvIHRoZSByZXdhcmQgdG9rZW4pCi8vIEByZXR1cm5zIHt1aW50NjR9IHRoZSBhbW91bnQgb2YgcmV3YXJkIHRva2VuIHNlbnQKZW1wdHlUb2tlblJld2FyZHM6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwbiAzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwNDMKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnRjIDIgLy8gOAoJaW50YyA0IC8vIDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXIKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDQ3CgkvLyByZXdhcmRUb2tlbklkID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcucmV3YXJkVG9rZW5JZAoJaW50YyAzNyAvLyAxNTMKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDAgLy8gcmV3YXJkVG9rZW5JZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwNDgKCS8vIHJld2FyZFRva2VuSGVsZEJhY2sgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnN0YXRlLnJld2FyZFRva2VuSGVsZEJhY2sKCWludGMgMTMgLy8gMjYwCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAxIC8vIHJld2FyZFRva2VuSGVsZEJhY2s6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDQ5CgkvLyBhc3NlcnQocmV3YXJkVG9rZW5JZCAhPT0gMCwgInRoaXMgdmFsaWRhdG9yIGRvZXNuJ3QgaGF2ZSBhIHJld2FyZCB0b2tlbiBkZWZpbmVkIikKCWZyYW1lX2RpZyAwIC8vIHJld2FyZFRva2VuSWQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCSE9CgoJLy8gdGhpcyB2YWxpZGF0b3IgZG9lc24ndCBoYXZlIGEgcmV3YXJkIHRva2VuIGRlZmluZWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDUwCgkvLyBwb29sT25lQXBwSWQgPSBBcHBJRC5mcm9tVWludDY0KHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUucG9vbHNbMF0ucG9vbEFwcElkKQoJaW50YyA2IC8vIDI2OAoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMiAvLyBwb29sT25lQXBwSWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDUyCgkvLyB0b2tlblJld2FyZEJhbCA9IHBvb2xPbmVBcHBJZC5hZGRyZXNzLmFzc2V0QmFsYW5jZShBc3NldElELmZyb21VaW50NjQocmV3YXJkVG9rZW5JZCkpIC0gcmV3YXJkVG9rZW5IZWxkQmFjawoJZnJhbWVfZGlnIDIgLy8gcG9vbE9uZUFwcElkOiB1aW50NjQKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJZnJhbWVfZGlnIDAgLy8gcmV3YXJkVG9rZW5JZDogdWludDY0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIDEgLy8gcmV3YXJkVG9rZW5IZWxkQmFjazogdWludDY0CgktCglmcmFtZV9idXJ5IDMgLy8gdG9rZW5SZXdhcmRCYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDU1CgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgU3Rha2luZ1Bvb2wucHJvdG90eXBlLnBheVRva2VuUmV3YXJkPih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBwb29sT25lQXBwSWQsCgkvLyAgICAgICBtZXRob2RBcmdzOiBbcmVjZWl2ZXIsIHJld2FyZFRva2VuSWQsIHRva2VuUmV3YXJkQmFsXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlYyAxNCAvLyAgbWV0aG9kICJwYXlUb2tlblJld2FyZChhZGRyZXNzLHVpbnQ2NCx1aW50NjQpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwNTYKCS8vIGFwcGxpY2F0aW9uSUQ6IHBvb2xPbmVBcHBJZAoJZnJhbWVfZGlnIDIgLy8gcG9vbE9uZUFwcElkOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDU3CgkvLyBtZXRob2RBcmdzOiBbcmVjZWl2ZXIsIHJld2FyZFRva2VuSWQsIHRva2VuUmV3YXJkQmFsXQoJZnJhbWVfZGlnIC0yIC8vIHJlY2VpdmVyOiBBZGRyZXNzCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDAgLy8gcmV3YXJkVG9rZW5JZDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDMgLy8gdG9rZW5SZXdhcmRCYWw6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwNTkKCS8vIGFzc2VydCgKCS8vICAgICAgIHBvb2xPbmVBcHBJZC5hZGRyZXNzLmFzc2V0QmFsYW5jZShBc3NldElELmZyb21VaW50NjQocmV3YXJkVG9rZW5JZCkpID09PSByZXdhcmRUb2tlbkhlbGRCYWNrLAoJLy8gICAgICAgJ2JhbGFuY2Ugb2YgcmVtYWluaW5nIHJld2FyZCB0b2tlbnMgc2hvdWxkIG1hdGNoIHRoZSBoZWxkIGJhY2sgYW1vdW50JwoJLy8gICAgICkKCWZyYW1lX2RpZyAyIC8vIHBvb2xPbmVBcHBJZDogdWludDY0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCWZyYW1lX2RpZyAwIC8vIHJld2FyZFRva2VuSWQ6IHVpbnQ2NAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAxIC8vIHJld2FyZFRva2VuSGVsZEJhY2s6IHVpbnQ2NAoJPT0KCgkvLyBiYWxhbmNlIG9mIHJlbWFpbmluZyByZXdhcmQgdG9rZW5zIHNob3VsZCBtYXRjaCB0aGUgaGVsZCBiYWNrIGFtb3VudAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwNjMKCS8vIHJldHVybiB0b2tlblJld2FyZEJhbDsKCWZyYW1lX2RpZyAzIC8vIHRva2VuUmV3YXJkQmFsOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAzCglyZXRzdWIKCi8vIHZlcmlmeVBvb2xLZXlDYWxsZXIocG9vbEtleTogVmFsaWRhdG9yUG9vbEtleSk6IHZvaWQKLy8KLy8gTG9ncyB0aGUgYWRkaXRpb24gb2YgYSBuZXcgdmFsaWRhdG9yIHRvIHRoZSBzeXN0ZW0sIGl0cyBpbml0aWFsIG93bmVyIGFuZCBtYW5hZ2VyCi8vCi8vCi8vIHZlcmlmeVBvb2xLZXlDYWxsZXIgdmVyaWZpZXMgdGhlIHBhc3NlZCBpbiBrZXkgKGZyb20gYSBzdGFraW5nIHBvb2wgY2FsbGluZyB1cyB0byB1cGRhdGUgbWV0cmljcykgaXMgdmFsaWQKLy8gYW5kIG1hdGNoZXMgdGhlIGluZm9ybWF0aW9uIHdlIGhhdmUgaW4gb3VyIHN0YXRlLiAgJ0Zha2UnIHBvb2xzIGNvdWxkIGNhbGwgdXMgdG8gdXBkYXRlIG91ciBkYXRhLCBidXQgdGhleQovLyBjYW4ndCBmYWtlIHRoZSBpZHMgYW5kIG1vc3QgaW1wb3J0YW50bHkgYXBwbGljYXRpb24gaWQoISkgb2YgdGhlIGNhbGxlciB0aGF0IGhhcyB0byBtYXRjaC4KdmVyaWZ5UG9vbEtleUNhbGxlcjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTYxCgkvLyBhc3NlcnQodGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLmV4aXN0cywgInRoZSBzcGVjaWZpZWQgdmFsaWRhdG9yIGlkIGlzbid0IHZhbGlkIikKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWJveF9sZW4KCXN3YXAKCXBvcAoKCS8vIHRoZSBzcGVjaWZpZWQgdmFsaWRhdG9yIGlkIGlzbid0IHZhbGlkCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE2MgoJLy8gYXNzZXJ0KHBvb2xLZXkucG9vbElkIDw9IE1BWF9QT09MUywgJ3Bvb2wgaWQgbm90IGluIHZhbGlkIHJhbmdlJykKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50YyAzIC8vIDI0Cgk8PQoKCS8vIHBvb2wgaWQgbm90IGluIHZhbGlkIHJhbmdlCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE2MwoJLy8gYXNzZXJ0KAoJLy8gICAgICAgcG9vbEtleS5wb29sSWQgPiAwICYmIChwb29sS2V5LnBvb2xJZCBhcyB1aW50MTYpIDw9IHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5zdGF0ZS5udW1Qb29scywKCS8vICAgICAgICdwb29sIGlkIG91dHNpZGUgb2YgcmFuZ2Ugb2YgcG9vbHMgY3JlYXRlZCBmb3IgdGhpcyB2YWxpZGF0b3InCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnRjIDAgLy8gMAoJPgoJZHVwCglieiAqc2tpcF9hbmQyCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgOCAvLyAyNDIKCWludGMgMTAgLy8gMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCTw9CgkmJgoKKnNraXBfYW5kMjoKCS8vIHBvb2wgaWQgb3V0c2lkZSBvZiByYW5nZSBvZiBwb29scyBjcmVhdGVkIGZvciB0aGlzIHZhbGlkYXRvcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExNjkKCS8vIGFzc2VydCgKCS8vICAgICAgIHBvb2xLZXkucG9vbEFwcElkID09PSB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXS5wb29sQXBwSWQsCgkvLyAgICAgICAiVGhlIHBhc3NlZCBpbiBhcHAgaWQgZG9lc24ndCBtYXRjaCB0aGUgcGFzc2VkIGluIGlkcyIKCS8vICAgICApCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAxNiA4CglidG9pCglpbnRjIDYgLy8gIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50YyAxIC8vIDEKCS0KCWludGMgNSAvLyAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDAgLy8gMAoJKwoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCgk9PQoKCS8vIFRoZSBwYXNzZWQgaW4gYXBwIGlkIGRvZXNuJ3QgbWF0Y2ggdGhlIHBhc3NlZCBpbiBpZHMKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTc0CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBBcHBJRC5mcm9tVWludDY0KHBvb2xLZXkucG9vbEFwcElkKS5hZGRyZXNzKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExNzYKCS8vIGFzc2VydChwb29sS2V5LmlkID09PSAoQXBwSUQuZnJvbVVpbnQ2NChwb29sS2V5LnBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ3ZhbGlkYXRvcklkJykgYXMgdWludDY0KSkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJcHVzaGJ5dGVzIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChwb29sS2V5LnBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ3ZhbGlkYXRvcklkJykKCWFzc2VydAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTc3CgkvLyBhc3NlcnQocG9vbEtleS5wb29sSWQgPT09IChBcHBJRC5mcm9tVWludDY0KHBvb2xLZXkucG9vbEFwcElkKS5nbG9iYWxTdGF0ZSgncG9vbElkJykgYXMgdWludDY0KSkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJcHVzaGJ5dGVzIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChwb29sS2V5LnBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ3Bvb2xJZCcpCglhc3NlcnQKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gcmV2ZXJpZnlORkRPd25lcnNoaXAodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IHZvaWQKLy8KLy8gVGhpcyBtZXRob2QgdmVyaWZpZXMgdGhlIG93bmVyc2hpcCBvZiBORkQgKE5hbWVkIEZ1bmN0aW9uIERhdGEpIGJ5IGEgdmFsaWRhdG9yLgovLyBJZiB0aGUgb3duZXJzaGlwIGlzIG5vIGxvbmdlciB2YWxpZCwgaXQgcmVtb3ZlcyB0aGUgTkZEIGZyb20gdGhlIHZhbGlkYXRvcidzIGNvbmZpZ3VyYXRpb24uCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yIHdob3NlIGRhdGEgc2hvdWxkIGJlIHJlLWV2YWx1YXRlZC4KcmV2ZXJpZnlORkRPd25lcnNoaXA6Cglwcm90byAxIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExODcKCS8vIHZhbGlkYXRvckNvbmZpZyA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vdmFsaWRhdG9yQ29uZmlnCgoJLy8gKmlmMjhfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE4OAoJLy8gdmFsaWRhdG9yQ29uZmlnLm5mZEZvckluZm8gIT09IDAKCWludGMgMjEgLy8gNzIKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglpbnRjIDAgLy8gMAoJIT0KCWJ6ICppZjI4X2VuZAoKCS8vICppZjI4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTkxCgkvLyBuZmRPd25lciA9IEFwcElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLm5mZEZvckluZm8pLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKSBhcyBBZGRyZXNzCglpbnRjIDIxIC8vIDcyCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJYnl0ZWMgOSAvLyAgImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KHZhbGlkYXRvckNvbmZpZy5uZmRGb3JJbmZvKS5nbG9iYWxTdGF0ZSgnaS5vd25lci5hJykKCWFzc2VydAoJZnJhbWVfYnVyeSAxIC8vIG5mZE93bmVyOiBhZGRyZXNzCgoJLy8gKmlmMjlfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE5MwoJLy8gdmFsaWRhdG9yQ29uZmlnLm93bmVyICE9PSBuZmRPd25lciAmJiB2YWxpZGF0b3JDb25maWcubWFuYWdlciAhPT0gbmZkT3duZXIKCWludGMgMiAvLyA4CglpbnRjIDQgLy8gMzIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWZyYW1lX2RpZyAxIC8vIG5mZE93bmVyOiBhZGRyZXNzCgkhPQoJZHVwCglieiAqc2tpcF9hbmQzCglpbnRjIDE3IC8vIDQwCglpbnRjIDQgLy8gMzIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWZyYW1lX2RpZyAxIC8vIG5mZE93bmVyOiBhZGRyZXNzCgkhPQoJJiYKCipza2lwX2FuZDM6CglieiAqaWYyOV9lbmQKCgkvLyAqaWYyOV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE5NQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubmZkRm9ySW5mbyA9IDAKCWludGMgMjEgLy8gNzIKCWJ5dGVjIDEwIC8vIDB4MDAwMDAwMDAwMDAwMDAwMAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKKmlmMjlfZW5kOgoKKmlmMjhfZW5kOgoJcmV0c3ViCgovLyB2YWxpZGF0ZUNvbmZpZyhjb25maWc6IFZhbGlkYXRvckNvbmZpZyk6IHZvaWQKdmFsaWRhdGVDb25maWc6Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTIwMgoJLy8gYXNzZXJ0KAoJLy8gICAgICAgY29uZmlnLmVudHJ5R2F0aW5nVHlwZSA+PSBHQVRJTkdfVFlQRV9OT05FICYmIGNvbmZpZy5lbnRyeUdhdGluZ1R5cGUgPD0gR0FUSU5HX1RZUEVfQ09OU1RfTUFYLAoJLy8gICAgICAgJ2dhdGluZyB0eXBlIG5vdCB2YWxpZCcKCS8vICAgICApCglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgODAgMQoJYnRvaQoJaW50YyAwIC8vIDAKCT49CglkdXAKCWJ6ICpza2lwX2FuZDQKCWZyYW1lX2RpZyAtMSAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA4MCAxCglidG9pCglpbnRjIDIwIC8vIDQKCTw9CgkmJgoKKnNraXBfYW5kNDoKCS8vIGdhdGluZyB0eXBlIG5vdCB2YWxpZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyMDYKCS8vIGFzc2VydCgKCS8vICAgICAgIGNvbmZpZy5lcG9jaFJvdW5kTGVuZ3RoID49IE1JTl9FUE9DSF9MRU5HVEggJiYgY29uZmlnLmVwb2NoUm91bmRMZW5ndGggPD0gTUFYX0VQT0NIX0xFTkdUSCwKCS8vICAgICAgICdlcG9jaCBsZW5ndGggbm90IGluIGFsbG93YWJsZSByYW5nZScKCS8vICAgICApCglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTY5IDQKCWJ0b2kKCWludGMgMSAvLyAxCgk+PQoJZHVwCglieiAqc2tpcF9hbmQ1CglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTY5IDQKCWJ0b2kKCWludGMgMjQgLy8gMTAwMDAwMAoJPD0KCSYmCgoqc2tpcF9hbmQ1OgoJLy8gZXBvY2ggbGVuZ3RoIG5vdCBpbiBhbGxvd2FibGUgcmFuZ2UKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjEwCgkvLyBhc3NlcnQoCgkvLyAgICAgICBjb25maWcucGVyY2VudFRvVmFsaWRhdG9yID49IE1JTl9QQ1RfVE9fVkFMSURBVE9SICYmIGNvbmZpZy5wZXJjZW50VG9WYWxpZGF0b3IgPD0gTUFYX1BDVF9UT19WQUxJREFUT1IsCgkvLyAgICAgICAnY29tbWlzc2lvbiBwZXJjZW50YWdlIG5vdCB2YWxpZCcKCS8vICAgICApCglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTczIDQKCWJ0b2kKCWludGMgMCAvLyAwCgk+PQoJZHVwCglieiAqc2tpcF9hbmQ2CglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTczIDQKCWJ0b2kKCWludGMgMjQgLy8gMTAwMDAwMAoJPD0KCSYmCgoqc2tpcF9hbmQ2OgoJLy8gY29tbWlzc2lvbiBwZXJjZW50YWdlIG5vdCB2YWxpZAoJYXNzZXJ0CgoJLy8gKmlmMzBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTIxNAoJLy8gY29uZmlnLnBlcmNlbnRUb1ZhbGlkYXRvciAhPT0gMAoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDE3MyA0CglidG9pCglpbnRjIDAgLy8gMAoJIT0KCWJ6ICppZjMwX2VuZAoKCS8vICppZjMwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjE1CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIGNvbmZpZy52YWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyAhPT0gQWRkcmVzcy56ZXJvQWRkcmVzcywKCS8vICAgICAgICAgJ3ZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzIG11c3QgYmUgc2V0IGlmIHBlcmNlbnQgdG8gdmFsaWRhdG9yIGlzIG5vdCAwJwoJLy8gICAgICAgKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDE3NyAzMgoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoKCS8vIHZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzIG11c3QgYmUgc2V0IGlmIHBlcmNlbnQgdG8gdmFsaWRhdG9yIGlzIG5vdCAwCglhc3NlcnQKCippZjMwX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjIwCgkvLyBhc3NlcnQoY29uZmlnLm1pbkVudHJ5U3Rha2UgPj0gTUlOX0FMR09fU1RBS0VfUEVSX1BPT0wsICdzdGFraW5nIHBvb2wgbXVzdCBoYXZlIG1pbmltdW0gZW50cnkgb2YgMSBhbGdvJykKCWZyYW1lX2RpZyAtMSAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCAyMDkgOAoJYnRvaQoJaW50YyAyNCAvLyAxMDAwMDAwCgk+PQoKCS8vIHN0YWtpbmcgcG9vbCBtdXN0IGhhdmUgbWluaW11bSBlbnRyeSBvZiAxIGFsZ28KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjIyCgkvLyBhc3NlcnQoCgkvLyAgICAgICBjb25maWcucG9vbHNQZXJOb2RlID4gMCAmJiBjb25maWcucG9vbHNQZXJOb2RlIDw9IE1BWF9QT09MU19QRVJfTk9ERSwKCS8vICAgICAgICdudW1iZXIgb2YgcG9vbHMgcGVyIG5vZGUgZXhjZWVkcyBhbGxvd2VkIG51bWJlcicKCS8vICAgICApCglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMjI1IDEKCWJ0b2kKCWludGMgMCAvLyAwCgk+CglkdXAKCWJ6ICpza2lwX2FuZDcKCWZyYW1lX2RpZyAtMSAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCAyMjUgMQoJYnRvaQoJaW50YyA5IC8vIDMKCTw9CgkmJgoKKnNraXBfYW5kNzoKCS8vIG51bWJlciBvZiBwb29scyBwZXIgbm9kZSBleGNlZWRzIGFsbG93ZWQgbnVtYmVyCglhc3NlcnQKCgkvLyAqaWYzMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjI2CgkvLyBjb25maWcuc3Vuc2V0dGluZ09uICE9PSAwCglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMjI2IDgKCWJ0b2kKCWludGMgMCAvLyAwCgkhPQoJYnogKmlmMzFfZW5kCgoJLy8gKmlmMzFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyMjcKCS8vIGFzc2VydChjb25maWcuc3Vuc2V0dGluZ09uID4gZ2xvYmFscy5sYXRlc3RUaW1lc3RhbXAsICdzdW5zZXR0aW5nT24gbXVzdCBiZSBsYXRlciB0aGFuIG5vdyBpZiBzZXQnKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDIyNiA4CglidG9pCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCgk+CgoJLy8gc3Vuc2V0dGluZ09uIG11c3QgYmUgbGF0ZXIgdGhhbiBub3cgaWYgc2V0Cglhc3NlcnQKCippZjMxX2VuZDoKCXJldHN1YgoKLy8gY2FsbFBvb2xBZGRTdGFrZShzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4sIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXksIG1ickFtdFBhaWQ6IHVpbnQ2NCwgaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbGVhbiwgaXNOZXdTdGFrZXJUb1Byb3RvY29sOiBib29sZWFuKTogdm9pZAovLwovLyBBZGRzIGEgc3Rha2VycyBhbW91bnQgb2YgYWxnbyB0byBhIHZhbGlkYXRvciBwb29sLCB0cmFuc2ZlcnJpbmcgdGhlIGFsZ28gd2UgcmVjZWl2ZWQgZnJvbSB0aGVtIChhbHJlYWR5IHZlcmlmaWVkCi8vIGJ5IG91ciBjYWxsZXIpIHRvIHRoZSBzdGFraW5nIHBvb2wgYWNjb3VudCwgYW5kIHRoZW4gdGVsbGluZyBpdCBhYm91dCB0aGUgYW1vdW50IGJlaW5nIGFkZGVkIGZvciB0aGUgc3BlY2lmaWVkCi8vIHN0YWtlci4KLy8KLy8gQHBhcmFtIHtQYXlUeG59IHN0YWtlZEFtb3VudFBheW1lbnQgLSBwYXltZW50IGNvbWluZyBmcm9tIHN0YWtlciB0byBwbGFjZSBpbnRvIGEgcG9vbAovLyBAcGFyYW0ge1ZhbGlkYXRvclBvb2xLZXl9IHBvb2xLZXkgLSBUaGUga2V5IG9mIHRoZSB2YWxpZGF0b3IgcG9vbC4KLy8gQHBhcmFtIHt1aW50NjR9IG1ickFtdFBhaWQgLSBBbW91bnQgdGhlIHVzZXIgaXMgbGVhdmluZyBiZWhpbmQgaW4gdGhlIHZhbGlkYXRvciB0byBwYXkgZm9yIHRoZWlyIHN0YWtlciBNQlIgY29zdAovLyBAcGFyYW0ge2Jvb2xlYW59IGlzTmV3U3Rha2VyVG9WYWxpZGF0b3IgLSBpZiB0aGlzIGlzIGEgbmV3LCBmaXJzdC10aW1lIHN0YWtlciB0byB0aGUgdmFsaWRhdG9yCi8vIEBwYXJhbSB7Ym9vbGVhbn0gaXNOZXdTdGFrZXJUb1Byb3RvY29sIC0gaWYgdGhpcyBpcyBhIG5ldywgZmlyc3QtdGltZSBzdGFrZXIgdG8gdGhlIHByb3RvY29sCmNhbGxQb29sQWRkU3Rha2U6Cglwcm90byA1IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNDkKCS8vIHBvb2xBcHBJZCA9IHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5wb29sc1twb29sS2V5LnBvb2xJZCAtIDFdLnBvb2xBcHBJZAoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAwIC8vIDAKCSsKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAwIC8vIHBvb2xBcHBJZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNTMKCS8vIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBTdGFraW5nUG9vbC5wcm90b3R5cGUuYWRkU3Rha2UsIHVpbnQ2ND4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpLAoJLy8gICAgICAgbWV0aG9kQXJnczogWwoJLy8gICAgICAgICAvLyA9PT09PT09CgkvLyAgICAgICAgIC8vIFRISVMgSVMgQSBTRU5EIG9mIHRoZSBhbW91bnQgcmVjZWl2ZWQgcmlnaHQgYmFjayBvdXQgYW5kIGludG8gdGhlIHN0YWtpbmcgcG9vbCBjb250cmFjdCBhY2NvdW50LgoJLy8gICAgICAgICB7IGFtb3VudDogc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQgLSBtYnJBbXRQYWlkLCByZWNlaXZlcjogQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpLmFkZHJlc3MgfSwKCS8vICAgICAgICAgLy8gPT09PT09PQoJLy8gICAgICAgICBzdGFrZWRBbW91bnRQYXltZW50LnNlbmRlciwKCS8vICAgICAgIF0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMSAvLyAgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNTgKCS8vIGFtb3VudDogc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQgLSBtYnJBbXRQYWlkCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAtMyAvLyBtYnJBbXRQYWlkOiB1aW50NjQKCS0KCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNTgKCS8vIHJlY2VpdmVyOiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkuYWRkcmVzcwoJZnJhbWVfZGlnIDAgLy8gcG9vbEFwcElkOiB1aW50NjQKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoJaXR4bl9uZXh0CglpbnRjIDcgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCXB1c2hieXRlcyAweGY5YzcwY2JkIC8vIG1ldGhvZCAiYWRkU3Rha2UocGF5LGFkZHJlc3MpdWludDY0IgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI1NAoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpCglmcmFtZV9kaWcgMCAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNTUKCS8vIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgLy8gPT09PT09PQoJLy8gICAgICAgICAvLyBUSElTIElTIEEgU0VORCBvZiB0aGUgYW1vdW50IHJlY2VpdmVkIHJpZ2h0IGJhY2sgb3V0IGFuZCBpbnRvIHRoZSBzdGFraW5nIHBvb2wgY29udHJhY3QgYWNjb3VudC4KCS8vICAgICAgICAgeyBhbW91bnQ6IHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50IC0gbWJyQW10UGFpZCwgcmVjZWl2ZXI6IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKS5hZGRyZXNzIH0sCgkvLyAgICAgICAgIC8vID09PT09PT0KCS8vICAgICAgICAgc3Rha2VkQW1vdW50UGF5bWVudC5zZW5kZXIsCgkvLyAgICAgICBdCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBTZW5kZXIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnRjIDEgLy8gMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglidG9pCgoJLy8gKmlmMzJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI2MwoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCA1MDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCXB1c2hpbnQgNTAwCgk8CglieiAqaWYzMl9lbmQKCgkvLyAqaWYzMl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI2NAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGVjIDggLy8gICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludGMgMjYgLy8gIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjMyX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjY4CgkvLyBwb29sTnVtU3Rha2VycyA9IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKS5nbG9iYWxTdGF0ZSgnbnVtU3Rha2VycycpIGFzIHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gcG9vbEFwcElkOiB1aW50NjQKCWJ5dGVjIDcgLy8gICJudW1TdGFrZXJzIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKS5nbG9iYWxTdGF0ZSgnbnVtU3Rha2VycycpCglhc3NlcnQKCWZyYW1lX2J1cnkgMSAvLyBwb29sTnVtU3Rha2VyczogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNjkKCS8vIHBvb2xBbGdvU3Rha2VkID0gQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpLmdsb2JhbFN0YXRlKCdzdGFrZWQnKSBhcyB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHBvb2xBcHBJZDogdWludDY0CglieXRlYyA0IC8vICAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKS5nbG9iYWxTdGF0ZSgnc3Rha2VkJykKCWFzc2VydAoJZnJhbWVfYnVyeSAyIC8vIHBvb2xBbGdvU3Rha2VkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI3MAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzW3Bvb2xLZXkucG9vbElkIC0gMV0udG90YWxTdGFrZXJzID0gcG9vbE51bVN0YWtlcnMgYXMgdWludDE2CglpbnRjIDYgLy8gIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50YyAxIC8vIDEKCS0KCWludGMgNSAvLyAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDIgLy8gIGhlYWRPZmZzZXQKCSsKCWZyYW1lX2RpZyAxIC8vIHBvb2xOdW1TdGFrZXJzOiB1aW50NjQKCWl0b2IKCWV4dHJhY3QgNiAyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjcxCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXS50b3RhbEFsZ29TdGFrZWQgPSBwb29sQWxnb1N0YWtlZAoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAxMSAvLyAgaGVhZE9mZnNldAoJKwoJZnJhbWVfZGlnIDIgLy8gcG9vbEFsZ29TdGFrZWQ6IHVpbnQ2NAoJaXRvYgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyAqaWYzM19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjc0CgkvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yCglmcmFtZV9kaWcgLTQgLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbGVhbgoJYnogKmlmMzNfZW5kCgoJLy8gKmlmMzNfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNzUKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5zdGF0ZS50b3RhbFN0YWtlcnMgKz0gMQoJaW50YyAyMyAvLyAyNDQKCWR1cAoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglpbnRjIDEgLy8gMQoJKwoJaXRvYgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCippZjMzX2VuZDoKCS8vICppZjM0X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNzcKCS8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbAoJZnJhbWVfZGlnIC01IC8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbGVhbgoJYnogKmlmMzRfZW5kCgoJLy8gKmlmMzRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNzgKCS8vIHRoaXMubnVtU3Rha2Vycy52YWx1ZSArPSAxCglieXRlYyA3IC8vICAibnVtU3Rha2VycyIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJKwoJYnl0ZWMgNyAvLyAgIm51bVN0YWtlcnMiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKKmlmMzRfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODAKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5zdGF0ZS50b3RhbEFsZ29TdGFrZWQgKz0gc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQgLSBtYnJBbXRQYWlkCglpbnRjIDEyIC8vIDI1MgoJZHVwCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfZGlnIC0zIC8vIG1ickFtdFBhaWQ6IHVpbnQ2NAoJLQoJKwoJaXRvYgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI4MQoJLy8gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgKz0gc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQgLSBtYnJBbXRQYWlkCglieXRlYyA0IC8vICAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfZGlnIC0zIC8vIG1ickFtdFBhaWQ6IHVpbnQ2NAoJLQoJKwoJYnl0ZWMgNCAvLyAgInN0YWtlZCIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIHVwZGF0ZVN0YWtlclBvb2xTZXQoc3Rha2VyOiBBZGRyZXNzLCBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5KTogdm9pZAp1cGRhdGVTdGFrZXJQb29sU2V0OgoJcHJvdG8gMiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjg1CgkvLyBhc3NlcnQodGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikuZXhpc3RzKQoJYnl0ZWMgMyAvLyAgInNwcyIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI4NwoJLy8gcG9vbFNldCA9IGNsb25lKHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlKQoJYnl0ZWMgMyAvLyAgInNwcyIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSAwIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI4OAoJLy8gZmlyc3RFbXB0eSA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDEgLy8gZmlyc3RFbXB0eTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODkKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoKKmZvcl83OgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODkKCS8vIGkgPCB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyA3IC8vIDYKCTwKCWJ6ICpmb3JfN19lbmQKCgkvLyAqaWYzNV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjkwCgkvLyBwb29sU2V0W2ldID09PSBwb29sS2V5CglmcmFtZV9kaWcgMCAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDMgLy8gMjQKCWV4dHJhY3QzCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJPT0KCWJ6ICppZjM1X2VuZAoKCS8vICppZjM1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjkyCgkvLyByZXR1cm47CglyZXRzdWIKCippZjM1X2VuZDoKCS8vICppZjM2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyOTQKCS8vIGZpcnN0RW1wdHkgPT09IDAgJiYgcG9vbFNldFtpXS5pZCA9PT0gMAoJZnJhbWVfZGlnIDEgLy8gZmlyc3RFbXB0eTogdWludDY0CglpbnRjIDAgLy8gMAoJPT0KCWR1cAoJYnogKnNraXBfYW5kOAoJZnJhbWVfZGlnIDAgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAwIC8vIDAKCSsKCWludGMgMiAvLyA4CglleHRyYWN0MwoJYnRvaQoJaW50YyAwIC8vIDAKCT09CgkmJgoKKnNraXBfYW5kODoKCWJ6ICppZjM2X2VuZAoKCS8vICppZjM2X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjk1CgkvLyBmaXJzdEVtcHR5ID0gaSArIDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCippZjM2X2VuZDoKCipmb3JfN19jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjg5CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl83CgoqZm9yXzdfZW5kOgoJLy8gKmlmMzdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI5OAoJLy8gZmlyc3RFbXB0eSA9PT0gMAoJZnJhbWVfZGlnIDEgLy8gZmlyc3RFbXB0eTogdWludDY0CglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppZjM3X2VuZAoKCS8vICppZjM3X2NvbnNlcXVlbnQKCS8vIE5vIGVtcHR5IHNsb3QgYXZhaWxhYmxlIGluIHRoZSBzdGFrZXIgcG9vbCBzZXQKCWVycgoKKmlmMzdfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMDEKCS8vIHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlW2ZpcnN0RW1wdHkgLSAxXSA9IHBvb2xLZXkKCWZyYW1lX2RpZyAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCS0KCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJYnl0ZWMgMyAvLyAgInNwcyIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gcmVtb3ZlRnJvbVN0YWtlclBvb2xTZXQoc3Rha2VyOiBBZGRyZXNzLCBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5KTogW2Jvb2xlYW4sIGJvb2xlYW5dCi8vCi8vIFJlbW92ZXMgYSBwb29sIGtleSBmcm9tIHRoZSBzdGFrZXIncyBhY3RpdmUgcG9vbCBzZXQgLSBmYWlscyBpZiBub3QgZm91bmQgKCEpCi8vCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHN0YWtlci4KLy8gQHBhcmFtIHtWYWxpZGF0b3JQb29sS2V5fSBwb29sS2V5IC0gVGhlIHBvb2wga2V5IHRoZXkgc2hvdWxkIGJlIHN0b3JlZCBpbgovLwovLyBAcmV0dXJuIFtib29sZWFuLCBib29sZWFuXSBbaXMgdGhlIHN0YWtlciBnb25lIGZyb20gQUxMIHBvb2xzIG9mIHRoZSBnaXZlbiBWQUxJREFUT1IsIGFuZCBpcyBzdGFrZXIgZ29uZSBmcm9tIEFMTCBwb29sc10KcmVtb3ZlRnJvbVN0YWtlclBvb2xTZXQ6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwbiA0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMTQKCS8vIGluU2FtZVZhbGlkYXRvclBvb2xDb3VudCA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDAgLy8gaW5TYW1lVmFsaWRhdG9yUG9vbENvdW50OiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMxNQoJLy8gaW5BbnlQb29sQ291bnQgPSAwCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAxIC8vIGluQW55UG9vbENvdW50OiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMxNgoJLy8gZm91bmQgPSBmYWxzZQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBmb3VuZDogYm9vbAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzE4CgkvLyBwb29sU2V0ID0gY2xvbmUodGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUpCglieXRlYyAzIC8vICAic3BzIgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJY29uY2F0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZQoJYXNzZXJ0CglmcmFtZV9idXJ5IDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzE5CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlLmxlbmd0aDsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgNCAvLyBpOiB1aW50NjQKCipmb3JfODoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzE5CgkvLyBpIDwgdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUubGVuZ3RoCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludGMgNyAvLyA2Cgk8CglieiAqZm9yXzhfZW5kCgoJLy8gKmlmMzhfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMyMAoJLy8gcG9vbFNldFtpXS5pZCA9PT0gMAoJZnJhbWVfZGlnIDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAwIC8vIDAKCSsKCWludGMgMiAvLyA4CglleHRyYWN0MwoJYnRvaQoJaW50YyAwIC8vIDAKCT09CglieiAqaWYzOF9lbmQKCgkvLyAqaWYzOF9jb25zZXF1ZW50CgliICpmb3JfOF9jb250aW51ZQoKKmlmMzhfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMjMKCS8vIGluQW55UG9vbENvdW50ICs9IDEKCWZyYW1lX2RpZyAxIC8vIGluQW55UG9vbENvdW50OiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDEgLy8gaW5BbnlQb29sQ291bnQ6IHVpbnQ2NAoKCS8vICppZjM5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMjQKCS8vIHBvb2xTZXRbaV0uaWQgPT09IHBvb2xLZXkuaWQKCWZyYW1lX2RpZyAzIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMCAvLyAwCgkrCglpbnRjIDIgLy8gOAoJZXh0cmFjdDMKCWJ0b2kKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJPT0KCWJ6ICppZjM5X2VuZAoKCS8vICppZjM5X2NvbnNlcXVlbnQKCS8vICppZjQwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMjUKCS8vIHBvb2xTZXRbaV0gPT09IHBvb2xLZXkKCWZyYW1lX2RpZyAzIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMyAvLyAyNAoJZXh0cmFjdDMKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5Cgk9PQoJYnogKmlmNDBfZWxzZQoKCS8vICppZjQwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzI2CgkvLyBmb3VuZCA9IHRydWUKCWludGMgMSAvLyAxCglmcmFtZV9idXJ5IDIgLy8gZm91bmQ6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMyOAoJLy8gdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWVbaV0gPSB7IGlkOiAwLCBwb29sSWQ6IDAsIHBvb2xBcHBJZDogMCB9CglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGVjIDMgLy8gICJzcHMiCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgliICppZjQwX2VuZAoKKmlmNDBfZWxzZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzMwCgkvLyBpblNhbWVWYWxpZGF0b3JQb29sQ291bnQgKz0gMQoJZnJhbWVfZGlnIDAgLy8gaW5TYW1lVmFsaWRhdG9yUG9vbENvdW50OiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaW5TYW1lVmFsaWRhdG9yUG9vbENvdW50OiB1aW50NjQKCippZjQwX2VuZDoKCippZjM5X2VuZDoKCipmb3JfOF9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzE5CgkvLyBpICs9IDEKCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgNCAvLyBpOiB1aW50NjQKCWIgKmZvcl84CgoqZm9yXzhfZW5kOgoJLy8gKmlmNDFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMzNAoJLy8gIWZvdW5kCglmcmFtZV9kaWcgMiAvLyBmb3VuZDogYm9vbAoJIQoJYnogKmlmNDFfZW5kCgoJLy8gKmlmNDFfY29uc2VxdWVudAoJLy8gTm8gbWF0Y2hpbmcgc2xvdCBmb3VuZCB3aGVuIHRvbGQgdG8gcmVtb3ZlIGEgcG9vbCBmcm9tIHRoZSBzdGFrZXJzIHNldAoJZXJyCgoqaWY0MV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMzOAoJLy8gcmV0dXJuIFtpblNhbWVWYWxpZGF0b3JQb29sQ291bnQgPT09IDAsIGluQW55UG9vbENvdW50ID09PSAwXTsKCWJ5dGVjIDUgLy8gMHgwMAoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyAwIC8vIGluU2FtZVZhbGlkYXRvclBvb2xDb3VudDogdWludDY0CglpbnRjIDAgLy8gMAoJPT0KCXNldGJpdAoJaW50YyAxIC8vIDEKCWZyYW1lX2RpZyAxIC8vIGluQW55UG9vbENvdW50OiB1aW50NjQKCWludGMgMCAvLyAwCgk9PQoJc2V0Yml0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNAoJcmV0c3ViCgovLyBhZGRQb29sVG9Ob2RlKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIHBvb2xBcHBJZDogdWludDY0LCBub2RlTnVtOiB1aW50NjQpOiB2b2lkCmFkZFBvb2xUb05vZGU6Cglwcm90byAzIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNDIKCS8vIG5vZGVQb29sQXNzaWdubWVudHMgPSBjbG9uZSh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLm5vZGVQb29sQXNzaWdubWVudHMpCglpbnRjIDE2IC8vICBoZWFkT2Zmc2V0CglpbnRjIDIyIC8vIDE5MgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAwIC8vIG5vZGVQb29sQXNzaWdubWVudHM6ICgodWludDY0WzNdKVs4XSkKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM0MwoJLy8gbWF4UG9vbHNQZXJOb2RlRm9yVGhpc1ZhbGlkYXRvciA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLnBvb2xzUGVyTm9kZSBhcyB1aW50NjQKCXB1c2hpbnQgMjI1CglpbnRjIDEgLy8gMQoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAxIC8vIG1heFBvb2xzUGVyTm9kZUZvclRoaXNWYWxpZGF0b3I6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzQ1CgkvLyBhc3NlcnQobm9kZU51bSA+PSAxICYmIG5vZGVOdW0gPD0gTUFYX05PREVTLCAnbm9kZSBudW1iZXIgbm90IGluIHZhbGlkIHJhbmdlJykKCWZyYW1lX2RpZyAtMyAvLyBub2RlTnVtOiB1aW50NjQKCWludGMgMSAvLyAxCgk+PQoJZHVwCglieiAqc2tpcF9hbmQ5CglmcmFtZV9kaWcgLTMgLy8gbm9kZU51bTogdWludDY0CglpbnRjIDIgLy8gOAoJPD0KCSYmCgoqc2tpcF9hbmQ5OgoJLy8gbm9kZSBudW1iZXIgbm90IGluIHZhbGlkIHJhbmdlCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM0NwoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBtYXhQb29sc1Blck5vZGVGb3JUaGlzVmFsaWRhdG9yOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoKKmZvcl85OgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNDcKCS8vIGkgPCBtYXhQb29sc1Blck5vZGVGb3JUaGlzVmFsaWRhdG9yCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIG1heFBvb2xzUGVyTm9kZUZvclRoaXNWYWxpZGF0b3I6IHVpbnQ2NAoJPAoJYnogKmZvcl85X2VuZAoKCS8vICppZjQyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNDgKCS8vIG5vZGVQb29sQXNzaWdubWVudHMubm9kZXNbbm9kZU51bSAtIDFdLnBvb2xBcHBJZHNbaV0gPT09IDAKCWZyYW1lX2RpZyAwIC8vIG5vZGVQb29sQXNzaWdubWVudHM6ICgodWludDY0WzNdKVs4XSkKCWludGMgMCAvLyAwCglmcmFtZV9kaWcgLTMgLy8gbm9kZU51bTogdWludDY0CglpbnRjIDEgLy8gMQoJLQoJaW50YyAzIC8vIDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludGMgMCAvLyAwCgkrCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMiAvLyA4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludGMgMiAvLyA4CglleHRyYWN0MwoJYnRvaQoJaW50YyAwIC8vIDAKCT09CglieiAqaWY0Ml9lbmQKCgkvLyAqaWY0Ml9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM1MAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5ub2RlUG9vbEFzc2lnbm1lbnRzLm5vZGVzW25vZGVOdW0gLSAxXS5wb29sQXBwSWRzW2ldID0gcG9vbEFwcElkCglpbnRjIDE2IC8vIDkwMAoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJaW50YyAxIC8vIDEKCS0KCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDAgLy8gMAoJKwoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDIgLy8gOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglmcmFtZV9kaWcgLTIgLy8gcG9vbEFwcElkOiB1aW50NjQKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM1MQoJLy8gcmV0dXJuOwoJcmV0c3ViCgoqaWY0Ml9lbmQ6CgoqZm9yXzlfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM0NwoJLy8gaSArPSAxCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDIgLy8gaTogdWludDY0CgliICpmb3JfOQoKKmZvcl85X2VuZDoKCS8vIG5vIGF2YWlsYWJsZSBzcGFjZSBpbiBzcGVjaWZpZWQgbm9kZSBmb3IgdGhpcyBwb29sCgllcnIKCXJldHN1YgoKLy8gZG9lc1N0YWtlck1lZXRHYXRpbmcodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgdmFsdWVUb1ZlcmlmeTogdWludDY0KTogdm9pZAovLwovLyBDaGVja3MgaWYgYSBzdGFrZXIgbWVldHMgdGhlIGdhdGluZyByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoZSB2YWxpZGF0b3IuCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yLgovLyBAcGFyYW0ge3VpbnQ2NH0gdmFsdWVUb1ZlcmlmeSAtIFRoZSB2YWx1ZSB0byB2ZXJpZnkgYWdhaW5zdCB0aGUgZ2F0aW5nIHJlcXVpcmVtZW50cy4KLy8gQHJldHVybnMge3ZvaWR9IG9yIGFzc2VydHMgaWYgcmVxdWlyZW1lbnRzIG5vdCBtZXQuCmRvZXNTdGFrZXJNZWV0R2F0aW5nOgoJcHJvdG8gMiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cG4gOAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzY1CgkvLyB0eXBlID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuZW50cnlHYXRpbmdUeXBlCglpbnRjIDM1IC8vIDgwCglpbnRjIDEgLy8gMQoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAwIC8vIHR5cGU6IHVpbnQ4CgoJLy8gKmlmNDNfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM2NgoJLy8gdHlwZSA9PT0gR0FUSU5HX1RZUEVfTk9ORQoJZnJhbWVfZGlnIDAgLy8gdHlwZTogdWludDgKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmNDNfZW5kCgoJLy8gKmlmNDNfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNjcKCS8vIHJldHVybjsKCXJldHN1YgoKKmlmNDNfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNjkKCS8vIHN0YWtlciA9IHRoaXMudHhuLnNlbmRlcgoJdHhuIFNlbmRlcgoJZnJhbWVfYnVyeSAxIC8vIHN0YWtlcjogYWRkcmVzcwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzcwCgkvLyBjb25maWcgPSBjbG9uZSh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZykKCWludGMgMCAvLyAwCglpbnRjIDggLy8gMjQyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDIgLy8gY29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCgkvLyAqaWY0NF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzc0CgkvLyB0eXBlID09PSBHQVRJTkdfVFlQRV9BU1NFVFNfQ1JFQVRFRF9CWSB8fAoJLy8gICAgICAgdHlwZSA9PT0gR0FUSU5HX1RZUEVfQVNTRVRfSUQgfHwKCS8vICAgICAgIHR5cGUgPT09IEdBVElOR19UWVBFX0NSRUFURURfQllfTkZEX0FERFJFU1NFUwoJZnJhbWVfZGlnIDAgLy8gdHlwZTogdWludDgKCWludGMgMSAvLyAxCgk9PQoJZHVwCglibnogKnNraXBfb3I0CglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJaW50YyAxMCAvLyAyCgk9PQoJfHwKCipza2lwX29yNDoKCWR1cAoJYm56ICpza2lwX29yNQoJZnJhbWVfZGlnIDAgLy8gdHlwZTogdWludDgKCWludGMgOSAvLyAzCgk9PQoJfHwKCipza2lwX29yNToKCWJ6ICppZjQ0X2VuZAoKCS8vICppZjQ0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzc4CgkvLyBhc3NlcnQodmFsdWVUb1ZlcmlmeSAhPT0gMCkKCWZyYW1lX2RpZyAtMiAvLyB2YWx1ZVRvVmVyaWZ5OiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNzkKCS8vIGJhbFJlcXVpcmVkID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuZ2F0aW5nQXNzZXRNaW5CYWxhbmNlCglpbnRjIDM2IC8vIDE0NQoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyBiYWxSZXF1aXJlZDogdWludDY0CgoJLy8gKmlmNDVfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM4MAoJLy8gYmFsUmVxdWlyZWQgPT09IDAKCWZyYW1lX2RpZyAzIC8vIGJhbFJlcXVpcmVkOiB1aW50NjQKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmNDVfZW5kCgoJLy8gKmlmNDVfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzODEKCS8vIGJhbFJlcXVpcmVkID0gMQoJaW50YyAxIC8vIDEKCWZyYW1lX2J1cnkgMyAvLyBiYWxSZXF1aXJlZDogdWludDY0CgoqaWY0NV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM4MwoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICBzdGFrZXIuYXNzZXRCYWxhbmNlKEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWx1ZVRvVmVyaWZ5KSkgPj0gYmFsUmVxdWlyZWQsCgkvLyAgICAgICAgICdtdXN0IGhhdmUgcmVxdWlyZWQgbWluaW11bSBiYWxhbmNlIG9mIHZhbGlkYXRvciBkZWZpbmVkIHRva2VuIHRvIGFkZCBzdGFrZScKCS8vICAgICAgICkKCWZyYW1lX2RpZyAxIC8vIHN0YWtlcjogYWRkcmVzcwoJZnJhbWVfZGlnIC0yIC8vIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAzIC8vIGJhbFJlcXVpcmVkOiB1aW50NjQKCT49CgoJLy8gbXVzdCBoYXZlIHJlcXVpcmVkIG1pbmltdW0gYmFsYW5jZSBvZiB2YWxpZGF0b3IgZGVmaW5lZCB0b2tlbiB0byBhZGQgc3Rha2UKCWFzc2VydAoKKmlmNDRfZW5kOgoJLy8gKmlmNDZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM4OAoJLy8gdHlwZSA9PT0gR0FUSU5HX1RZUEVfQVNTRVRTX0NSRUFURURfQlkKCWZyYW1lX2RpZyAwIC8vIHR5cGU6IHVpbnQ4CglpbnRjIDEgLy8gMQoJPT0KCWJ6ICppZjQ2X2VuZAoKCS8vICppZjQ2X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzg5CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWx1ZVRvVmVyaWZ5KS5jcmVhdG9yID09PSBjb25maWcuZW50cnlHYXRpbmdBZGRyZXNzLAoJLy8gICAgICAgICAnc3BlY2lmaWVkIGFzc2V0IG11c3QgYmUgY3JlYXRlZCBieSBjcmVhdG9yIHRoYXQgdGhlIHZhbGlkYXRvciBkZWZpbmVkIGFzIGEgcmVxdWlyZW1lbnQgdG8gc3Rha2UnCgkvLyAgICAgICApCglmcmFtZV9kaWcgLTIgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0Cglhc3NldF9wYXJhbXNfZ2V0IEFzc2V0Q3JlYXRvcgoJcG9wCglmcmFtZV9kaWcgMiAvLyBjb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA4MSAzMgoJPT0KCgkvLyBzcGVjaWZpZWQgYXNzZXQgbXVzdCBiZSBjcmVhdGVkIGJ5IGNyZWF0b3IgdGhhdCB0aGUgdmFsaWRhdG9yIGRlZmluZWQgYXMgYSByZXF1aXJlbWVudCB0byBzdGFrZQoJYXNzZXJ0CgoqaWY0Nl9lbmQ6CgkvLyAqaWY0N19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzk0CgkvLyB0eXBlID09PSBHQVRJTkdfVFlQRV9BU1NFVF9JRAoJZnJhbWVfZGlnIDAgLy8gdHlwZTogdWludDgKCWludGMgMTAgLy8gMgoJPT0KCWJ6ICppZjQ3X2VuZAoKCS8vICppZjQ3X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzk1CgkvLyBhc3NlcnQodmFsdWVUb1ZlcmlmeSAhPT0gMCkKCWZyYW1lX2RpZyAtMiAvLyB2YWx1ZVRvVmVyaWZ5OiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzOTYKCS8vIGZvdW5kID0gZmFsc2UKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDQgLy8gZm91bmQ6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM5NwoJLy8gY29uZmlnLmVudHJ5R2F0aW5nQXNzZXRzCglmcmFtZV9kaWcgMiAvLyBjb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxMTMgMzIKCWR1cAoJZnJhbWVfYnVyeSA1IC8vIGNvcHkgb2YgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZXh0cmFjdCAwIDgKCWJ0b2kKCWZyYW1lX2J1cnkgNiAvLyBhc3NldElkOiB1aW50NjQKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDcgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCipmb3JPZl8wOgoJLy8gKmlmNDhfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM5OAoJLy8gdmFsdWVUb1ZlcmlmeSA9PT0gYXNzZXRJZAoJZnJhbWVfZGlnIC0yIC8vIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NAoJZnJhbWVfZGlnIDYgLy8gYXNzZXRJZDogdWludDY0Cgk9PQoJYnogKmlmNDhfZW5kCgoJLy8gKmlmNDhfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzOTkKCS8vIGZvdW5kID0gdHJ1ZQoJaW50YyAxIC8vIDEKCWZyYW1lX2J1cnkgNCAvLyBmb3VuZDogYm9vbAoJYiAqZm9yT2ZfMF9lbmQKCippZjQ4X2VuZDoKCipmb3JPZl8wX2NvbnRpbnVlOgoJLy8gaW5jcmVtZW50IG9mZnNldCBhbmQgbG9vcCBpZiBub3Qgb3V0IG9mIGJvdW5kcwoJZnJhbWVfZGlnIDcgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWludGMgMiAvLyA4CgkrCglkdXAKCWludGMgNCAvLyAgb2Zmc2V0IG9mIGxhc3QgZWxlbWVudAoJPAoJYnogKmZvck9mXzBfZW5kCglmcmFtZV9idXJ5IDcgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWZyYW1lX2RpZyA1IC8vIGNvcHkgb2YgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZnJhbWVfZGlnIDcgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWludGMgMiAvLyA4CglleHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDYgLy8gYXNzZXRJZDogdWludDY0CgliICpmb3JPZl8wCgoqZm9yT2ZfMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQwMwoJLy8gYXNzZXJ0KGZvdW5kLCAnc3BlY2lmaWVkIGFzc2V0IG11c3QgYmUgaWRlbnRpY2FsIHRvIHRoZSBhc3NldCBpZCBkZWZpbmVkIGFzIGEgcmVxdWlyZW1lbnQgdG8gc3Rha2UnKQoJZnJhbWVfZGlnIDQgLy8gZm91bmQ6IGJvb2wKCgkvLyBzcGVjaWZpZWQgYXNzZXQgbXVzdCBiZSBpZGVudGljYWwgdG8gdGhlIGFzc2V0IGlkIGRlZmluZWQgYXMgYSByZXF1aXJlbWVudCB0byBzdGFrZQoJYXNzZXJ0CgoqaWY0N19lbmQ6CgkvLyAqaWY0OV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDA1CgkvLyB0eXBlID09PSBHQVRJTkdfVFlQRV9DUkVBVEVEX0JZX05GRF9BRERSRVNTRVMKCWZyYW1lX2RpZyAwIC8vIHR5cGU6IHVpbnQ4CglpbnRjIDkgLy8gMwoJPT0KCWJ6ICppZjQ5X2VuZAoKCS8vICppZjQ5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDA4CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIHRoaXMuaXNBZGRyZXNzSW5ORkRDQUFsZ29MaXN0KGNvbmZpZy5lbnRyeUdhdGluZ0Fzc2V0c1swXSwgQXNzZXRJRC5mcm9tVWludDY0KHZhbHVlVG9WZXJpZnkpLmNyZWF0b3IpLAoJLy8gICAgICAgICAnc3BlY2lmaWVkIGFzc2V0IG11c3QgYmUgY3JlYXRlZCBieSBjcmVhdG9yIHRoYXQgaXMgb25lIG9mIHRoZSBsaW5rZWQgYWRkcmVzc2VzIGluIGFuIG5mZCcKCS8vICAgICAgICkKCWZyYW1lX2RpZyAtMiAvLyB2YWx1ZVRvVmVyaWZ5OiB1aW50NjQKCWFzc2V0X3BhcmFtc19nZXQgQXNzZXRDcmVhdG9yCglwb3AKCWZyYW1lX2RpZyAyIC8vIGNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDExMyA4CglidG9pCgljYWxsc3ViIGlzQWRkcmVzc0luTkZEQ0FBbGdvTGlzdAoKCS8vIHNwZWNpZmllZCBhc3NldCBtdXN0IGJlIGNyZWF0ZWQgYnkgY3JlYXRvciB0aGF0IGlzIG9uZSBvZiB0aGUgbGlua2VkIGFkZHJlc3NlcyBpbiBhbiBuZmQKCWFzc2VydAoKKmlmNDlfZW5kOgoJLy8gKmlmNTBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQxMwoJLy8gdHlwZSA9PT0gR0FUSU5HX1RZUEVfU0VHTUVOVF9PRl9ORkQKCWZyYW1lX2RpZyAwIC8vIHR5cGU6IHVpbnQ4CglpbnRjIDIwIC8vIDQKCT09CglieiAqaWY1MF9lbmQKCgkvLyAqaWY1MF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQxNQoJLy8gdXNlck9mZmVyZWRORkRBcHBJRCA9IHZhbHVlVG9WZXJpZnkKCWZyYW1lX2RpZyAtMiAvLyB2YWx1ZVRvVmVyaWZ5OiB1aW50NjQKCWZyYW1lX2J1cnkgOCAvLyB1c2VyT2ZmZXJlZE5GREFwcElEOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQxNgoJLy8gYXNzZXJ0KHRoaXMuaXNORkRBcHBJRFZhbGlkKHVzZXJPZmZlcmVkTkZEQXBwSUQpLCAncHJvdmlkZWQgTkZEIG11c3QgYmUgdmFsaWQnKQoJZnJhbWVfZGlnIDggLy8gdXNlck9mZmVyZWRORkRBcHBJRDogdWludDY0CgljYWxsc3ViIGlzTkZEQXBwSURWYWxpZAoKCS8vIHByb3ZpZGVkIE5GRCBtdXN0IGJlIHZhbGlkCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQxOQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICByYXdCeXRlcyhBcHBJRC5mcm9tVWludDY0KHVzZXJPZmZlcmVkTkZEQXBwSUQpLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKSBhcyBBZGRyZXNzKSA9PT0gcmF3Qnl0ZXMoc3Rha2VyKSB8fAoJLy8gICAgICAgICAgIHRoaXMuaXNBZGRyZXNzSW5ORkRDQUFsZ29MaXN0KHVzZXJPZmZlcmVkTkZEQXBwSUQsIHN0YWtlciksCgkvLyAgICAgICAgICJwcm92aWRlZCBuZmQgZm9yIGVudHJ5IGlzbid0IG93bmVkIG9yIGxpbmtlZCB0byB0aGUgc3Rha2VyIgoJLy8gICAgICAgKQoJZnJhbWVfZGlnIDggLy8gdXNlck9mZmVyZWRORkRBcHBJRDogdWludDY0CglieXRlYyA5IC8vICAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQodXNlck9mZmVyZWRORkRBcHBJRCkuZ2xvYmFsU3RhdGUoJ2kub3duZXIuYScpCglhc3NlcnQKCWZyYW1lX2RpZyAxIC8vIHN0YWtlcjogYWRkcmVzcwoJPT0KCWR1cAoJYm56ICpza2lwX29yNgoJZnJhbWVfZGlnIDEgLy8gc3Rha2VyOiBhZGRyZXNzCglmcmFtZV9kaWcgOCAvLyB1c2VyT2ZmZXJlZE5GREFwcElEOiB1aW50NjQKCWNhbGxzdWIgaXNBZGRyZXNzSW5ORkRDQUFsZ29MaXN0Cgl8fAoKKnNraXBfb3I2OgoJLy8gcHJvdmlkZWQgbmZkIGZvciBlbnRyeSBpc24ndCBvd25lZCBvciBsaW5rZWQgdG8gdGhlIHN0YWtlcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0MjYKCS8vIGFzc2VydCgKCS8vICAgICAgICAgYnRvaShBcHBJRC5mcm9tVWludDY0KHVzZXJPZmZlcmVkTkZEQXBwSUQpLmdsb2JhbFN0YXRlKCdpLnBhcmVudEFwcElEJykgYXMgYnl0ZXMpID09PQoJLy8gICAgICAgICAgIGNvbmZpZy5lbnRyeUdhdGluZ0Fzc2V0c1swXSwKCS8vICAgICAgICAgJ3NwZWNpZmllZCBuZmQgbXVzdCBiZSBhIHNlZ21lbnQgb2YgdGhlIG5mZCB0aGUgdmFsaWRhdG9yIHNwZWNpZmllZCBhcyBhIHJlcXVpcmVtZW50JwoJLy8gICAgICAgKQoJZnJhbWVfZGlnIDggLy8gdXNlck9mZmVyZWRORkRBcHBJRDogdWludDY0CglwdXNoYnl0ZXMgMHg2OTJlNzA2MTcyNjU2ZTc0NDE3MDcwNDk0NCAvLyAiaS5wYXJlbnRBcHBJRCIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KHVzZXJPZmZlcmVkTkZEQXBwSUQpLmdsb2JhbFN0YXRlKCdpLnBhcmVudEFwcElEJykKCWFzc2VydAoJYnRvaQoJZnJhbWVfZGlnIDIgLy8gY29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTEzIDgKCWJ0b2kKCT09CgoJLy8gc3BlY2lmaWVkIG5mZCBtdXN0IGJlIGEgc2VnbWVudCBvZiB0aGUgbmZkIHRoZSB2YWxpZGF0b3Igc3BlY2lmaWVkIGFzIGEgcmVxdWlyZW1lbnQKCWFzc2VydAoKKmlmNTBfZW5kOgoJcmV0c3ViCgovLyBpc05GREFwcElEVmFsaWQobmZkQXBwSUQ6IHVpbnQ2NCk6IGJvb2xlYW4KLy8KLy8gQ2hlY2tzIGlmIHRoZSBnaXZlbiBORkQgQXBwIGlkIGlzIHZhbGlkLiAgVXNpbmcgb25seSB0aGUgQXBwIGlkIHRoZXJlJ3Mgbm8gdmFsaWRhdGlvbiBhZ2FpbnN0IHRoZSBuYW1lIChpZTogdGhhdCBuZmQgWCBpcyBuYW1lIFkpCi8vIFNvIGl0J3MgYXNzdW1lZCBmb3IgdGhlIGNhbGxlciwgdGhlIGFwcCBpZCBhbG9uZSBpcyBmaW5lLiAgVGhlIG5hbWUgaXMgZmV0Y2hlZCBmcm9tIHRoZSBzcGVjaWZpZWQgYXBwIGlkIGFuZCB0aGUgdHdvCi8vIHRvZ2V0aGVyIGFyZSB1c2VkIGZvciB2YWxpZGl0eSBjaGVjayBjYWxsIHRvIHRoZSBuZmQgcmVnaXN0cnkuCi8vCi8vIEBwYXJhbSB7dWludDY0fSBuZmRBcHBJRCAtIFRoZSBORkQgQXBwIGlkIHRvIHZlcmlmeS4KLy8KLy8gQHJldHVybnMge2Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBORkQgQXBwIGlkIGlzIHZhbGlkLCBvdGhlcndpc2UgZmFsc2UuCmlzTkZEQXBwSURWYWxpZDoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAxIC8vIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NDUKCS8vIHVzZXJPZmZlcmVkTkZETmFtZSA9IEFwcElELmZyb21VaW50NjQobmZkQXBwSUQpLmdsb2JhbFN0YXRlKCdpLm5hbWUnKSBhcyBzdHJpbmcKCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJRDogdWludDY0CglwdXNoYnl0ZXMgMHg2OTJlNmU2MTZkNjUgLy8gImkubmFtZSIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKS5nbG9iYWxTdGF0ZSgnaS5uYW1lJykKCWFzc2VydAoJZnJhbWVfYnVyeSAwIC8vIHVzZXJPZmZlcmVkTkZETmFtZTogc3RyaW5nCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NDcKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5uZmRSZWdpc3RyeUFwcElkKSwKCS8vICAgICAgIGFwcGxpY2F0aW9uQXJnczogWydpc192YWxpZF9uZmRfYXBwaWQnLCB1c2VyT2ZmZXJlZE5GRE5hbWUsIGl0b2IobmZkQXBwSUQpXSwKCS8vICAgICAgIGFwcGxpY2F0aW9uczogW0FwcElELmZyb21VaW50NjQobmZkQXBwSUQpXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NDgKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5uZmRSZWdpc3RyeUFwcElkKQoJaW50YyAxOSAvLyBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDQ5CgkvLyBhcHBsaWNhdGlvbkFyZ3M6IFsnaXNfdmFsaWRfbmZkX2FwcGlkJywgdXNlck9mZmVyZWRORkROYW1lLCBpdG9iKG5mZEFwcElEKV0KCWJ5dGVjIDEzIC8vICAiaXNfdmFsaWRfbmZkX2FwcGlkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAwIC8vIHVzZXJPZmZlcmVkTkZETmFtZTogc3RyaW5nCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0xIC8vIG5mZEFwcElEOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NTAKCS8vIGFwcGxpY2F0aW9uczogW0FwcElELmZyb21VaW50NjQobmZkQXBwSUQpXQoJZnJhbWVfZGlnIC0xIC8vIG5mZEFwcElEOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25zCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDUyCgkvLyByZXR1cm4gYnRvaSh0aGlzLml0eG4ubGFzdExvZykgPT09IDE7CglpdHhuIExhc3RMb2cKCWJ0b2kKCWludGMgMSAvLyAxCgk9PQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBpc0FkZHJlc3NJbk5GRENBQWxnb0xpc3QobmZkQXBwSUQ6IHVpbnQ2NCwgYWRkclRvRmluZDogQWRkcmVzcyk6IGJvb2xlYW4KLy8KLy8gQ2hlY2tzIGlmIHRoZSBzcGVjaWZpZWQgYWRkcmVzcyBpcyBwcmVzZW50IGluIGFuIE5GRHMgbGlzdCBvZiB2ZXJpZmllZCBhZGRyZXNzZXMuCi8vIFRoZSBORkQgaXMgYXNzdW1lZCB0byBoYXZlIGFscmVhZHkgYmVlbiB2YWxpZGF0ZWQgYXMgb2ZmaWNpYWwuCi8vCi8vIEBwYXJhbSB7dWludDY0fSBuZmRBcHBJRCAtIFRoZSBORkQgYXBwbGljYXRpb24gaWQuCi8vIEBwYXJhbSB7QWRkcmVzc30gYWRkclRvRmluZCAtIFRoZSBhZGRyZXNzIHRvIGZpbmQgaW4gdGhlIHYuY2FBbGdvLjAuYXMgcHJvcGVydHkKLy8gQHJldHVybiB7Ym9vbGVhbn0gLSBgdHJ1ZWAgaWYgdGhlIGFkZHJlc3MgaXMgcHJlc2VudCwgYGZhbHNlYCBvdGhlcndpc2UuCmlzQWRkcmVzc0luTkZEQ0FBbGdvTGlzdDoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAxIC8vIDB4CglkdXBuIDIKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ2NAoJLy8gc2VuZEFwcENhbGwoewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJRCksCgkvLyAgICAgICBhcHBsaWNhdGlvbkFyZ3M6IFsncmVhZF9wcm9wZXJ0eScsICd2LmNhQWxnby4wLmFzJ10sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDY1CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKQoJZnJhbWVfZGlnIC0xIC8vIG5mZEFwcElEOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDY2CgkvLyBhcHBsaWNhdGlvbkFyZ3M6IFsncmVhZF9wcm9wZXJ0eScsICd2LmNhQWxnby4wLmFzJ10KCXB1c2hieXRlcyAweDcyNjU2MTY0NWY3MDcyNmY3MDY1NzI3NDc5IC8vICJyZWFkX3Byb3BlcnR5IgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCXB1c2hieXRlcyAweDc2MmU2MzYxNDE2YzY3NmYyZTMwMmU2MTczIC8vICJ2LmNhQWxnby4wLmFzIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NjgKCS8vIGNhQWxnb0RhdGEgPSB0aGlzLml0eG4ubGFzdExvZwoJaXR4biBMYXN0TG9nCglmcmFtZV9idXJ5IDAgLy8gY2FBbGdvRGF0YTogYnl0ZVtdCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NjkKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgY2FBbGdvRGF0YS5sZW5ndGg7IGkgKz0gMzIpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoKKmZvcl8xMDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDY5CgkvLyBpIDwgY2FBbGdvRGF0YS5sZW5ndGgKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gY2FBbGdvRGF0YTogYnl0ZVtdCglsZW4KCTwKCWJ6ICpmb3JfMTBfZW5kCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NzAKCS8vIGFkZHIgPSBleHRyYWN0MyhjYUFsZ29EYXRhLCBpLCAzMikKCWZyYW1lX2RpZyAwIC8vIGNhQWxnb0RhdGE6IGJ5dGVbXQoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnRjIDQgLy8gMzIKCWV4dHJhY3QzCglmcmFtZV9idXJ5IDIgLy8gYWRkcjogYnl0ZVtdCgoJLy8gKmlmNTFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ3MQoJLy8gYWRkciAhPT0gcmF3Qnl0ZXMoZ2xvYmFscy56ZXJvQWRkcmVzcykgJiYgYWRkciA9PT0gcmF3Qnl0ZXMoYWRkclRvRmluZCkKCWZyYW1lX2RpZyAyIC8vIGFkZHI6IGJ5dGVbXQoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoJZHVwCglieiAqc2tpcF9hbmQxMAoJZnJhbWVfZGlnIDIgLy8gYWRkcjogYnl0ZVtdCglmcmFtZV9kaWcgLTIgLy8gYWRkclRvRmluZDogQWRkcmVzcwoJPT0KCSYmCgoqc2tpcF9hbmQxMDoKCWJ6ICppZjUxX2VuZAoKCS8vICppZjUxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDcyCgkvLyByZXR1cm4gdHJ1ZTsKCWludGMgMSAvLyAxCgliICppc0FkZHJlc3NJbk5GRENBQWxnb0xpc3QqcmV0dXJuCgoqaWY1MV9lbmQ6CgoqZm9yXzEwX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NjkKCS8vIGkgKz0gMzIKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50YyA0IC8vIDMyCgkrCglmcmFtZV9idXJ5IDEgLy8gaTogdWludDY0CgliICpmb3JfMTAKCipmb3JfMTBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NzUKCS8vIHJldHVybiBmYWxzZTsKCWludGMgMCAvLyAwCgoqaXNBZGRyZXNzSW5ORkRDQUFsZ29MaXN0KnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDIKCXJldHN1YgoKLy8gYWxnb1NhdHVyYXRpb25MZXZlbCgpOiB1aW50NjQKLy8KLy8gUmV0dXJucyB0aGUgbWF4aW11bSBhbGxvd2VkIHN0YWtlIHBlciB2YWxpZGF0b3IgYmFzZWQgb24gYSBwZXJjZW50YWdlIG9mIGFsbCBjdXJyZW50IG9ubGluZSBzdGFrZSBiZWZvcmUKLy8gdGhlIHZhbGlkYXRvciBpcyBjb25zaWRlcmVkIHNhdHVyYXRlZCAtIHdoZXJlIHJld2FyZHMgYXJlIGRpbWluaXNoZWQuCi8vIE5PVEU6IHRoaXMgZnVuY3Rpb24gaXMgZGVmaW5lZCB0d2ljZSAtIGhlcmUgYW5kIGluIHN0YWtpbmcgcG9vbCBjb250cmFjdC4gIEJvdGggbXVzdCBiZSBpZGVudGljYWwuCmFsZ29TYXR1cmF0aW9uTGV2ZWw6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDg0CgkvLyBvbmxpbmUgPSB0aGlzLmdldEN1cnJlbnRPbmxpbmVTdGFrZSgpCgljYWxsc3ViIGdldEN1cnJlbnRPbmxpbmVTdGFrZQoJZnJhbWVfYnVyeSAwIC8vIG9ubGluZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0ODYKCS8vIHJldHVybiB3aWRlUmF0aW8oW29ubGluZSwgTUFYX1ZBTElEQVRPUl9TT0ZUX1BDVF9PRl9PTkxJTkVfMURFQ0lNQUxdLCBbMTAwMF0pOwoJZnJhbWVfZGlnIDAgLy8gb25saW5lOiB1aW50NjQKCXB1c2hpbnQgMTAwCgltdWx3CglpbnRjIDAgLy8gMAoJaW50YyAzMSAvLyAxMDAwCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBtYXhBbGxvd2VkU3Rha2UoKTogdWludDY0Ci8vCi8vIFJldHVybnMgdGhlIE1BWElNVU0gYWxsb3dlZCBzdGFrZSBwZXIgdmFsaWRhdG9yIGJhc2VkIG9uIGEgcGVyY2VudGFnZSBvZiBhbGwgY3VycmVudCBvbmxpbmUgc3Rha2UuCi8vIEFkZGluZyBzdGFrZSBpcyBjb21wbGV0ZWx5IGJsb2NrZWQgYXQgdGhpcyBhbW91bnQuCm1heEFsbG93ZWRTdGFrZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAxIC8vIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0OTQKCS8vIG9ubGluZSA9IHRoaXMuZ2V0Q3VycmVudE9ubGluZVN0YWtlKCkKCWNhbGxzdWIgZ2V0Q3VycmVudE9ubGluZVN0YWtlCglmcmFtZV9idXJ5IDAgLy8gb25saW5lOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ5NgoJLy8gcmV0dXJuIHdpZGVSYXRpbyhbb25saW5lLCBNQVhfVkFMSURBVE9SX0hBUkRfUENUX09GX09OTElORV8xREVDSU1BTF0sIFsxMDAwXSk7CglmcmFtZV9kaWcgMCAvLyBvbmxpbmU6IHVpbnQ2NAoJcHVzaGludCAxNTAKCW11bHcKCWludGMgMCAvLyAwCglpbnRjIDMxIC8vIDEwMDAKCWRpdm1vZHcKCXBvcAoJcG9wCglzd2FwCgkhCgoJLy8gd2lkZVJhdGlvIGZhaWxlZAoJYXNzZXJ0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIG1heEFsZ29BbGxvd2VkUGVyUG9vbCgpOiB1aW50NjQKLy8KLy8gUmV0dXJucyB0aGUgTUFYSU1VTSBhbGxvd2VkIHN0YWtlIHBlciBwb29sIGFuZCBzdGlsbCByZWNlaXZlIGluY2VudGl2ZXMgLSB3ZSdsbCB0cmVhdCB0aGlzIGFzIHRoZSAnbWF4IHBlciBwb29sJwptYXhBbGdvQWxsb3dlZFBlclBvb2w6Cglwcm90byAwIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUwNAoJLy8gcmV0dXJuIDcwXzAwMF8wMDBfMDAwXzAwMDsKCXB1c2hpbnQgNzBfMDAwXzAwMF8wMDBfMDAwCglyZXRzdWIKCi8vIGdldEN1cnJlbnRPbmxpbmVTdGFrZSgpOiB1aW50NjQKZ2V0Q3VycmVudE9ubGluZVN0YWtlOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MDkKCS8vIHJldHVybiAyXzAwMF8wMDBfMDAwXzAwMF8wMDA7CglwdXNoaW50IDJfMDAwXzAwMF8wMDBfMDAwXzAwMAoJcmV0c3ViCgovLyBtaW5CYWxhbmNlRm9yQWNjb3VudChjb250cmFjdHM6IHVpbnQ2NCwgZXh0cmFQYWdlczogdWludDY0LCBhc3NldHM6IHVpbnQ2NCwgbG9jYWxJbnRzOiB1aW50NjQsIGxvY2FsQnl0ZXM6IHVpbnQ2NCwgZ2xvYmFsSW50czogdWludDY0LCBnbG9iYWxCeXRlczogdWludDY0KTogdWludDY0Cm1pbkJhbGFuY2VGb3JBY2NvdW50OgoJcHJvdG8gNyAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUyMQoJLy8gbWluQmFsID0gQUxHT1JBTkRfQUNDT1VOVF9NSU5fQkFMQU5DRQoJaW50YyAxNSAvLyAxMDAwMDAKCWZyYW1lX2J1cnkgMCAvLyBtaW5CYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTIyCgkvLyBtaW5CYWwgKz0gY29udHJhY3RzICogQVBQTElDQVRJT05fQkFTRV9GRUUKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gY29udHJhY3RzOiB1aW50NjQKCWludGMgMTUgLy8gMTAwMDAwCgkqCgkrCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUyMwoJLy8gbWluQmFsICs9IGV4dHJhUGFnZXMgKiBBUFBMSUNBVElPTl9CQVNFX0ZFRQoJZnJhbWVfZGlnIDAgLy8gbWluQmFsOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBleHRyYVBhZ2VzOiB1aW50NjQKCWludGMgMTUgLy8gMTAwMDAwCgkqCgkrCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUyNAoJLy8gbWluQmFsICs9IGFzc2V0cyAqIEFTU0VUX0hPTERJTkdfRkVFCglmcmFtZV9kaWcgMCAvLyBtaW5CYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIC0zIC8vIGFzc2V0czogdWludDY0CglpbnRjIDE1IC8vIDEwMDAwMAoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MjUKCS8vIG1pbkJhbCArPSBsb2NhbEludHMgKiBTU0NfVkFMVUVfVUlOVAoJZnJhbWVfZGlnIDAgLy8gbWluQmFsOiB1aW50NjQKCWZyYW1lX2RpZyAtNCAvLyBsb2NhbEludHM6IHVpbnQ2NAoJaW50YyAzMiAvLyAyODUwMAoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MjYKCS8vIG1pbkJhbCArPSBnbG9iYWxJbnRzICogU1NDX1ZBTFVFX1VJTlQKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CglmcmFtZV9kaWcgLTYgLy8gZ2xvYmFsSW50czogdWludDY0CglpbnRjIDMyIC8vIDI4NTAwCgkqCgkrCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUyNwoJLy8gbWluQmFsICs9IGxvY2FsQnl0ZXMgKiBTU0NfVkFMVUVfQllURVMKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CglmcmFtZV9kaWcgLTUgLy8gbG9jYWxCeXRlczogdWludDY0CglpbnRjIDMzIC8vIDUwMDAwCgkqCgkrCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUyOAoJLy8gbWluQmFsICs9IGdsb2JhbEJ5dGVzICogU1NDX1ZBTFVFX0JZVEVTCglmcmFtZV9kaWcgMCAvLyBtaW5CYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIC03IC8vIGdsb2JhbEJ5dGVzOiB1aW50NjQKCWludGMgMzMgLy8gNTAwMDAKCSoKCSsKCWZyYW1lX2J1cnkgMCAvLyBtaW5CYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTI5CgkvLyByZXR1cm4gbWluQmFsOwoJZnJhbWVfZGlnIDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gY29zdEZvckJveFN0b3JhZ2UodG90YWxOdW1CeXRlczogdWludDY0KTogdWludDY0CmNvc3RGb3JCb3hTdG9yYWdlOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MzYKCS8vIHJldHVybiBTQ0JPWF9QRVJCT1ggKyB0b3RhbE51bUJ5dGVzICogU0NCT1hfUEVSQllURTsKCXB1c2hpbnQgMjUwMAoJZnJhbWVfZGlnIC0xIC8vIHRvdGFsTnVtQnl0ZXM6IHVpbnQ2NAoJcHVzaGludCA0MDAKCSoKCSsKCXJldHN1YgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDFiNWU4MmM2IC8vIG1ldGhvZCAiaW5pdFN0YWtpbmdDb250cmFjdCh1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweDc5NDcyZDgzIC8vIG1ldGhvZCAibG9hZFN0YWtpbmdDb250cmFjdERhdGEodWludDY0LGJ5dGVbXSl2b2lkIgoJcHVzaGJ5dGVzIDB4NWY3YWNmZDkgLy8gbWV0aG9kICJmaW5hbGl6ZVN0YWtpbmdDb250cmFjdCgpdm9pZCIKCXB1c2hieXRlcyAweDMxNzJjYTlkIC8vIG1ldGhvZCAiZ2FzKCl2b2lkIgoJcHVzaGJ5dGVzIDB4OGE4NzE0MmQgLy8gbWV0aG9kICJnZXRNYnJBbW91bnRzKCkodWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KSIKCXB1c2hieXRlcyAweGQxMzY2Y2MzIC8vIG1ldGhvZCAiZ2V0UHJvdG9jb2xDb25zdHJhaW50cygpKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpIgoJcHVzaGJ5dGVzIDB4M2IwNDVjNWMgLy8gbWV0aG9kICJnZXROdW1WYWxpZGF0b3JzKCl1aW50NjQiCglwdXNoYnl0ZXMgMHg3NWFmZjYxZCAvLyBtZXRob2QgImdldFZhbGlkYXRvckNvbmZpZyh1aW50NjQpKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpIgoJcHVzaGJ5dGVzIDB4MWYyZjAxMDkgLy8gbWV0aG9kICJnZXRWYWxpZGF0b3JTdGF0ZSh1aW50NjQpKHVpbnQxNix1aW50NjQsdWludDY0LHVpbnQ2NCkiCglwdXNoYnl0ZXMgMHgyZmEyMmM0YiAvLyBtZXRob2QgImdldFZhbGlkYXRvck93bmVyQW5kTWFuYWdlcih1aW50NjQpKGFkZHJlc3MsYWRkcmVzcykiCglwdXNoYnl0ZXMgMHg5MTBlOTRhYyAvLyBtZXRob2QgImdldFBvb2xzKHVpbnQ2NCkodWludDY0LHVpbnQxNix1aW50NjQpW10iCglwdXNoYnl0ZXMgMHg1NzI3NjdkMSAvLyBtZXRob2QgImdldFBvb2xBcHBJZCh1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweDliNTA0YWFmIC8vIG1ldGhvZCAiZ2V0UG9vbEluZm8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0LHVpbnQxNix1aW50NjQpIgoJcHVzaGJ5dGVzIDB4ZmJjNjMxNzggLy8gbWV0aG9kICJnZXRDdXJNYXhTdGFrZVBlclBvb2wodWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweDI0NDk4Y2Y0IC8vIG1ldGhvZCAiZG9lc1N0YWtlck5lZWRUb1BheU1CUihhZGRyZXNzKWJvb2wiCglwdXNoYnl0ZXMgMHhmODQ2ZGQ3YSAvLyBtZXRob2QgImdldFN0YWtlZFBvb2xzRm9yQWNjb3VudChhZGRyZXNzKSh1aW50NjQsdWludDY0LHVpbnQ2NClbXSIKCXB1c2hieXRlcyAweDgzMDUwNTAxIC8vIG1ldGhvZCAiZ2V0VG9rZW5QYXlvdXRSYXRpbyh1aW50NjQpKHVpbnQ2NFsyNF0sdWludDY0KSIKCXB1c2hieXRlcyAweDdiYmI2YzhkIC8vIG1ldGhvZCAiZ2V0Tm9kZVBvb2xBc3NpZ25tZW50cyh1aW50NjQpKCh1aW50NjRbM10pWzhdKSIKCXB1c2hieXRlcyAweGY4Mzk0MTRhIC8vIG1ldGhvZCAiZ2V0TkZEUmVnaXN0cnlJRCgpdWludDY0IgoJcHVzaGJ5dGVzIDB4MGMzMTdjZmIgLy8gbWV0aG9kICJhZGRWYWxpZGF0b3IocGF5LHN0cmluZywodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkpdWludDY0IgoJcHVzaGJ5dGVzIDB4M2UyODg5NzIgLy8gbWV0aG9kICJjaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyKHVpbnQ2NCxhZGRyZXNzKXZvaWQiCglwdXNoYnl0ZXMgMHhkZDVmYWFkYSAvLyBtZXRob2QgImNoYW5nZVZhbGlkYXRvclN1bnNldEluZm8odWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweDE4YWFjN2E3IC8vIG1ldGhvZCAiY2hhbmdlVmFsaWRhdG9yTkZEKHVpbnQ2NCx1aW50NjQsc3RyaW5nKXZvaWQiCglwdXNoYnl0ZXMgMHhmOTllZjU0ZCAvLyBtZXRob2QgImNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzKHVpbnQ2NCxhZGRyZXNzKXZvaWQiCglwdXNoYnl0ZXMgMHgxMDgwOWQ0ZCAvLyBtZXRob2QgImNoYW5nZVZhbGlkYXRvclJld2FyZEluZm8odWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweGU3NzhkZDVhIC8vIG1ldGhvZCAiYWRkUG9vbChwYXksdWludDY0LHVpbnQ2NCkodWludDY0LHVpbnQ2NCx1aW50NjQpIgoJcHVzaGJ5dGVzIDB4YmY1MjU5ZDAgLy8gbWV0aG9kICJhZGRTdGFrZShwYXksdWludDY0LHVpbnQ2NCkodWludDY0LHVpbnQ2NCx1aW50NjQpIgoJcHVzaGJ5dGVzIDB4NGRmOGQ4NmUgLy8gbWV0aG9kICJzZXRUb2tlblBheW91dFJhdGlvKHVpbnQ2NCkodWludDY0WzI0XSx1aW50NjQpIgoJcHVzaGJ5dGVzIDB4NDE4ZmNlZmMgLy8gbWV0aG9kICJzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzKCh1aW50NjQsdWludDY0LHVpbnQ2NCksdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHhhMmRjNTFiNSAvLyBtZXRob2QgInN0YWtlUmVtb3ZlZCgodWludDY0LHVpbnQ2NCx1aW50NjQpLGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQiCglwdXNoYnl0ZXMgMHgyODczZjUwNCAvLyBtZXRob2QgImZpbmRQb29sRm9yU3Rha2VyKHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCkoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpIgoJcHVzaGJ5dGVzIDB4MDU0N2Y0ZmUgLy8gbWV0aG9kICJtb3ZlUG9vbFRvTm9kZSh1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkIgoJcHVzaGJ5dGVzIDB4Y2I2NjgzNTggLy8gbWV0aG9kICJlbXB0eVRva2VuUmV3YXJkcyh1aW50NjQsYWRkcmVzcyl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2luaXRTdGFraW5nQ29udHJhY3QgKmFiaV9yb3V0ZV9sb2FkU3Rha2luZ0NvbnRyYWN0RGF0YSAqYWJpX3JvdXRlX2ZpbmFsaXplU3Rha2luZ0NvbnRyYWN0ICphYmlfcm91dGVfZ2FzICphYmlfcm91dGVfZ2V0TWJyQW1vdW50cyAqYWJpX3JvdXRlX2dldFByb3RvY29sQ29uc3RyYWludHMgKmFiaV9yb3V0ZV9nZXROdW1WYWxpZGF0b3JzICphYmlfcm91dGVfZ2V0VmFsaWRhdG9yQ29uZmlnICphYmlfcm91dGVfZ2V0VmFsaWRhdG9yU3RhdGUgKmFiaV9yb3V0ZV9nZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXIgKmFiaV9yb3V0ZV9nZXRQb29scyAqYWJpX3JvdXRlX2dldFBvb2xBcHBJZCAqYWJpX3JvdXRlX2dldFBvb2xJbmZvICphYmlfcm91dGVfZ2V0Q3VyTWF4U3Rha2VQZXJQb29sICphYmlfcm91dGVfZG9lc1N0YWtlck5lZWRUb1BheU1CUiAqYWJpX3JvdXRlX2dldFN0YWtlZFBvb2xzRm9yQWNjb3VudCAqYWJpX3JvdXRlX2dldFRva2VuUGF5b3V0UmF0aW8gKmFiaV9yb3V0ZV9nZXROb2RlUG9vbEFzc2lnbm1lbnRzICphYmlfcm91dGVfZ2V0TkZEUmVnaXN0cnlJRCAqYWJpX3JvdXRlX2FkZFZhbGlkYXRvciAqYWJpX3JvdXRlX2NoYW5nZVZhbGlkYXRvck1hbmFnZXIgKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvICphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yTkZEICphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MgKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvICphYmlfcm91dGVfYWRkUG9vbCAqYWJpX3JvdXRlX2FkZFN0YWtlICphYmlfcm91dGVfc2V0VG9rZW5QYXlvdXRSYXRpbyAqYWJpX3JvdXRlX3N0YWtlVXBkYXRlZFZpYVJld2FyZHMgKmFiaV9yb3V0ZV9zdGFrZVJlbW92ZWQgKmFiaV9yb3V0ZV9maW5kUG9vbEZvclN0YWtlciAqYWJpX3JvdXRlX21vdmVQb29sVG9Ob2RlICphYmlfcm91dGVfZW1wdHlUb2tlblJld2FyZHMKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipjYWxsX1VwZGF0ZUFwcGxpY2F0aW9uOgoJcHVzaGJ5dGVzIDB4NDZmNzY1MzMgLy8gbWV0aG9kICJ1cGRhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdXBkYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBVcGRhdGVBcHBsaWNhdGlvbgoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/reti/artifacts/ValidatorRegistry.arc56_draft.json b/examples/reti/artifacts/ValidatorRegistry.arc56_draft.json index 7badf1613..9df9ceeab 100644 --- a/examples/reti/artifacts/ValidatorRegistry.arc56_draft.json +++ b/examples/reti/artifacts/ValidatorRegistry.arc56_draft.json @@ -1200,7 +1200,7 @@ "approval": { "sourceInfo": [ { - "teal": 11, + "teal": 15, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ 1, @@ -1208,54 +1208,48 @@ ] }, { - "teal": 18, + "teal": 16, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 3, - 4 + 3 ] }, { - "teal": 19, + "teal": 17, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 4, 5 ] }, { - "teal": 20, + "teal": 18, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6, - 7 + 6 ] }, { - "teal": 21, + "teal": 19, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 7, 8 ] }, { - "teal": 22, - "source": "examples/reti/validatorRegistry.algo.ts:168", - "pc": [ - 9, - 10 - ] - }, - { - "teal": 23, + "teal": 20, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 11 + 9 ] }, { - "teal": 24, + "teal": 21, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 10, + 11, 12, 13, 14, @@ -1279,63 +1273,63 @@ 32, 33, 34, - 35, - 36, - 37 + 35 ] }, { - "teal": 28, + "teal": 25, "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": [ - 38 + 36 ] }, { - "teal": 33, + "teal": 30, "source": "examples/reti/validatorRegistry.algo.ts:201", "pc": [ - 39, - 40, - 41 + 37, + 38, + 39 ] }, { - "teal": 34, + "teal": 31, "source": "examples/reti/validatorRegistry.algo.ts:201", "pc": [ - 42 + 40 ] }, { - "teal": 35, + "teal": 32, "source": "examples/reti/validatorRegistry.algo.ts:201", "pc": [ - 43 + 41 ] }, { - "teal": 39, + "teal": 36, "source": "examples/reti/validatorRegistry.algo.ts:201", "pc": [ - 44, - 45, - 46 + 42, + 43, + 44 ] }, { - "teal": 43, + "teal": 40, "source": "examples/reti/validatorRegistry.algo.ts:202", "pc": [ - 47, - 48 + 45, + 46 ] }, { - "teal": 44, + "teal": 41, "source": "examples/reti/validatorRegistry.algo.ts:202", "pc": [ + 47, + 48, 49, 50, 51, @@ -1367,306 +1361,312 @@ 77, 78, 79, - 80, - 81, - 82 + 80 ] }, { - "teal": 45, + "teal": 42, "source": "examples/reti/validatorRegistry.algo.ts:202", "pc": [ - 83 + 81 ] }, { - "teal": 46, + "teal": 43, "source": "examples/reti/validatorRegistry.algo.ts:202", "pc": [ - 84 + 82 ] }, { - "teal": 50, + "teal": 47, "source": "examples/reti/validatorRegistry.algo.ts:204", "pc": [ - 85, - 86 + 83, + 84 ] }, { - "teal": 51, + "teal": 48, "source": "examples/reti/validatorRegistry.algo.ts:204", "pc": [ - 87 + 85 ] }, { - "teal": 55, + "teal": 52, "source": "examples/reti/validatorRegistry.algo.ts:205", "pc": [ - 88, - 89 + 86, + 87 ] }, { - "teal": 56, + "teal": 53, "source": "examples/reti/validatorRegistry.algo.ts:205", "pc": [ - 90 + 88 ] }, { - "teal": 57, + "teal": 54, "source": "examples/reti/validatorRegistry.algo.ts:205", "pc": [ - 91, - 92 + 89, + 90 ] }, { - "teal": 58, + "teal": 55, "source": "examples/reti/validatorRegistry.algo.ts:205", "pc": [ - 93 + 91 ] }, { - "teal": 59, + "teal": 56, "source": "examples/reti/validatorRegistry.algo.ts:205", "pc": [ - 94, - 95 + 92, + 93 ] }, { - "teal": 60, + "teal": 57, "source": "examples/reti/validatorRegistry.algo.ts:205", "pc": [ - 96 + 94 ] }, { - "teal": 61, + "teal": 58, "source": "examples/reti/validatorRegistry.algo.ts:205", "pc": [ - 97 + 95 ] }, { - "teal": 62, + "teal": 59, "source": "examples/reti/validatorRegistry.algo.ts:201", "pc": [ - 98 + 96 ] }, { - "teal": 67, + "teal": 64, "source": "examples/reti/validatorRegistry.algo.ts:208", "pc": [ - 99, - 100, - 101 + 97, + 98, + 99 ] }, { - "teal": 68, + "teal": 65, "source": "examples/reti/validatorRegistry.algo.ts:208", "pc": [ - 102 + 100 ] }, { - "teal": 69, + "teal": 66, "source": "examples/reti/validatorRegistry.algo.ts:208", "pc": [ - 103 + 101 ] }, { - "teal": 73, + "teal": 70, "source": "examples/reti/validatorRegistry.algo.ts:208", "pc": [ - 104, + 102, + 103, + 104 + ] + }, + { + "teal": 74, + "source": "examples/reti/validatorRegistry.algo.ts:209", + "pc": [ 105, 106 ] }, { - "teal": 77, + "teal": 75, "source": "examples/reti/validatorRegistry.algo.ts:209", "pc": [ - 107, - 108 + 107 ] }, { - "teal": 78, + "teal": 76, "source": "examples/reti/validatorRegistry.algo.ts:209", "pc": [ + 108, 109 ] }, { - "teal": 79, + "teal": 77, "source": "examples/reti/validatorRegistry.algo.ts:209", "pc": [ - 110, - 111 + 110 ] }, { - "teal": 80, + "teal": 78, "source": "examples/reti/validatorRegistry.algo.ts:209", "pc": [ + 111, 112 ] }, { - "teal": 81, + "teal": 79, "source": "examples/reti/validatorRegistry.algo.ts:209", "pc": [ - 113, - 114 + 113 ] }, { - "teal": 82, + "teal": 80, "source": "examples/reti/validatorRegistry.algo.ts:209", "pc": [ - 115 + 114 ] }, { - "teal": 83, - "source": "examples/reti/validatorRegistry.algo.ts:209", + "teal": 84, + "source": "examples/reti/validatorRegistry.algo.ts:210", "pc": [ + 115, 116 ] }, { - "teal": 87, + "teal": 85, "source": "examples/reti/validatorRegistry.algo.ts:210", "pc": [ - 117, - 118 + 117 ] }, { - "teal": 88, + "teal": 86, "source": "examples/reti/validatorRegistry.algo.ts:210", "pc": [ - 119 + 118 ] }, { - "teal": 89, - "source": "examples/reti/validatorRegistry.algo.ts:210", + "teal": 90, + "source": "examples/reti/validatorRegistry.algo.ts:211", "pc": [ + 119, 120 ] }, { - "teal": 93, + "teal": 91, "source": "examples/reti/validatorRegistry.algo.ts:211", "pc": [ - 121, - 122 + 121 ] }, { - "teal": 94, + "teal": 92, "source": "examples/reti/validatorRegistry.algo.ts:211", "pc": [ - 123 + 122 ] }, { - "teal": 95, - "source": "examples/reti/validatorRegistry.algo.ts:211", + "teal": 96, + "source": "examples/reti/validatorRegistry.algo.ts:212", "pc": [ + 123, 124 ] }, { - "teal": 99, + "teal": 97, "source": "examples/reti/validatorRegistry.algo.ts:212", "pc": [ - 125, - 126 + 125 ] }, { - "teal": 100, + "teal": 98, "source": "examples/reti/validatorRegistry.algo.ts:212", "pc": [ - 127 + 126 ] }, { - "teal": 101, - "source": "examples/reti/validatorRegistry.algo.ts:212", + "teal": 99, + "source": "examples/reti/validatorRegistry.algo.ts:208", "pc": [ - 128 + 127 ] }, { - "teal": 102, - "source": "examples/reti/validatorRegistry.algo.ts:208", + "teal": 104, + "source": "examples/reti/validatorRegistry.algo.ts:215", "pc": [ - 129 + 128, + 129, + 130 ] }, { - "teal": 107, + "teal": 105, "source": "examples/reti/validatorRegistry.algo.ts:215", "pc": [ - 130, - 131, - 132 + 131 ] }, { "teal": 108, "source": "examples/reti/validatorRegistry.algo.ts:215", "pc": [ - 133 + 132, + 133, + 134 ] }, { - "teal": 111, + "teal": 109, "source": "examples/reti/validatorRegistry.algo.ts:215", "pc": [ - 134, - 135, - 136 + 135 ] }, { - "teal": 112, + "teal": 110, "source": "examples/reti/validatorRegistry.algo.ts:215", "pc": [ - 137 + 136 ] }, { - "teal": 113, + "teal": 114, "source": "examples/reti/validatorRegistry.algo.ts:215", "pc": [ - 138 + 137, + 138, + 139 ] }, { - "teal": 117, - "source": "examples/reti/validatorRegistry.algo.ts:215", + "teal": 118, + "source": "examples/reti/validatorRegistry.algo.ts:217", "pc": [ - 139, 140, 141 ] }, { - "teal": 121, + "teal": 119, "source": "examples/reti/validatorRegistry.algo.ts:217", "pc": [ 142, @@ -1674,145 +1674,145 @@ ] }, { - "teal": 122, + "teal": 120, "source": "examples/reti/validatorRegistry.algo.ts:217", "pc": [ - 144, - 145 + 144 ] }, { - "teal": 123, + "teal": 121, "source": "examples/reti/validatorRegistry.algo.ts:217", "pc": [ - 146 + 145 ] }, { - "teal": 124, - "source": "examples/reti/validatorRegistry.algo.ts:217", + "teal": 122, + "source": "examples/reti/validatorRegistry.algo.ts:215", "pc": [ - 147 + 146 ] }, { - "teal": 125, - "source": "examples/reti/validatorRegistry.algo.ts:215", + "teal": 127, + "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 148 + 147, + 148, + 149 ] }, { - "teal": 130, + "teal": 128, "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 149, 150, - 151 + 151, + 152 ] }, { "teal": 131, "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 152, 153, - 154 + 154, + 155 ] }, { - "teal": 134, + "teal": 132, "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 155, - 156, - 157 + 156 ] }, { "teal": 135, "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 158 + 157, + 158, + 159 ] }, { - "teal": 138, + "teal": 136, "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 159, - 160, - 161 + 160 ] }, { - "teal": 139, + "teal": 137, "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 162 + 161 ] }, { - "teal": 140, + "teal": 141, "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 163 + 162, + 163, + 164 ] }, { - "teal": 144, - "source": "examples/reti/validatorRegistry.algo.ts:220", + "teal": 145, + "source": "examples/reti/validatorRegistry.algo.ts:221", "pc": [ - 164, 165, 166 ] }, { - "teal": 148, + "teal": 146, "source": "examples/reti/validatorRegistry.algo.ts:221", "pc": [ - 167, - 168 + 167 ] }, { - "teal": 149, + "teal": 147, "source": "examples/reti/validatorRegistry.algo.ts:221", "pc": [ - 169 + 168 ] }, { - "teal": 150, + "teal": 148, "source": "examples/reti/validatorRegistry.algo.ts:221", "pc": [ - 170 + 169 ] }, { - "teal": 151, + "teal": 149, "source": "examples/reti/validatorRegistry.algo.ts:221", "pc": [ - 171 + 170 ] }, { - "teal": 152, + "teal": 150, "source": "examples/reti/validatorRegistry.algo.ts:221", "pc": [ - 172 + 171 ] }, { - "teal": 153, - "source": "examples/reti/validatorRegistry.algo.ts:221", + "teal": 154, + "source": "examples/reti/validatorRegistry.algo.ts:222", "pc": [ + 172, 173 ] }, { - "teal": 157, + "teal": 155, "source": "examples/reti/validatorRegistry.algo.ts:222", "pc": [ 174, @@ -1820,7 +1820,7 @@ ] }, { - "teal": 158, + "teal": 156, "source": "examples/reti/validatorRegistry.algo.ts:222", "pc": [ 176, @@ -1828,447 +1828,441 @@ ] }, { - "teal": 159, + "teal": 157, "source": "examples/reti/validatorRegistry.algo.ts:222", "pc": [ - 178, - 179 + 178 ] }, { - "teal": 160, - "source": "examples/reti/validatorRegistry.algo.ts:222", + "teal": 158, + "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 180 + 179 ] }, { - "teal": 161, - "source": "examples/reti/validatorRegistry.algo.ts:220", + "teal": 163, + "source": "examples/reti/validatorRegistry.algo.ts:225", "pc": [ - 181 + 180, + 181, + 182 ] }, { - "teal": 166, + "teal": 164, "source": "examples/reti/validatorRegistry.algo.ts:225", "pc": [ - 182, - 183, - 184 + 183 ] }, { - "teal": 167, + "teal": 165, "source": "examples/reti/validatorRegistry.algo.ts:225", "pc": [ - 185 + 184 ] }, { - "teal": 168, + "teal": 169, "source": "examples/reti/validatorRegistry.algo.ts:225", "pc": [ - 186 + 185, + 186, + 187 ] }, { - "teal": 172, - "source": "examples/reti/validatorRegistry.algo.ts:225", + "teal": 173, + "source": "examples/reti/validatorRegistry.algo.ts:226", "pc": [ - 187, 188, 189 ] }, { - "teal": 176, + "teal": 174, "source": "examples/reti/validatorRegistry.algo.ts:226", "pc": [ - 190, - 191 + 190 ] }, { - "teal": 177, + "teal": 175, "source": "examples/reti/validatorRegistry.algo.ts:226", "pc": [ + 191, 192 ] }, { - "teal": 178, + "teal": 176, "source": "examples/reti/validatorRegistry.algo.ts:226", "pc": [ - 193, - 194 + 193 ] }, { - "teal": 179, + "teal": 177, "source": "examples/reti/validatorRegistry.algo.ts:226", "pc": [ + 194, 195 ] }, { - "teal": 180, + "teal": 178, "source": "examples/reti/validatorRegistry.algo.ts:226", "pc": [ - 196, - 197 + 196 ] }, { - "teal": 181, + "teal": 179, "source": "examples/reti/validatorRegistry.algo.ts:226", "pc": [ - 198 + 197 ] }, { - "teal": 182, - "source": "examples/reti/validatorRegistry.algo.ts:226", + "teal": 180, + "source": "examples/reti/validatorRegistry.algo.ts:225", "pc": [ - 199 + 198 ] }, { - "teal": 183, - "source": "examples/reti/validatorRegistry.algo.ts:225", + "teal": 185, + "source": "examples/reti/validatorRegistry.algo.ts:232", "pc": [ - 200 + 199, + 200, + 201 ] }, { - "teal": 188, + "teal": 186, "source": "examples/reti/validatorRegistry.algo.ts:232", "pc": [ - 201, - 202, - 203 + 202 ] }, { - "teal": 189, + "teal": 187, "source": "examples/reti/validatorRegistry.algo.ts:232", "pc": [ - 204 + 203 ] }, { - "teal": 190, + "teal": 193, "source": "examples/reti/validatorRegistry.algo.ts:232", "pc": [ - 205 + 204, + 205, + 206 ] }, { - "teal": 196, + "teal": 194, "source": "examples/reti/validatorRegistry.algo.ts:232", "pc": [ - 206, - 207, - 208 + 207 ] }, { - "teal": 197, - "source": "examples/reti/validatorRegistry.algo.ts:232", + "teal": 199, + "source": "examples/reti/validatorRegistry.algo.ts:243", "pc": [ - 209 + 208 ] }, { "teal": 202, "source": "examples/reti/validatorRegistry.algo.ts:243", "pc": [ - 210 + 209, + 210, + 211 ] }, { - "teal": 205, + "teal": 203, "source": "examples/reti/validatorRegistry.algo.ts:243", "pc": [ - 211, - 212, - 213 + 212 ] }, { - "teal": 206, + "teal": 204, "source": "examples/reti/validatorRegistry.algo.ts:243", "pc": [ - 214 + 213 ] }, { - "teal": 207, + "teal": 205, "source": "examples/reti/validatorRegistry.algo.ts:243", "pc": [ - 215 + 214 ] }, { - "teal": 208, + "teal": 206, "source": "examples/reti/validatorRegistry.algo.ts:243", "pc": [ - 216 + 215 ] }, { - "teal": 209, + "teal": 218, "source": "examples/reti/validatorRegistry.algo.ts:243", "pc": [ - 217 + 216, + 217, + 218 ] }, { - "teal": 221, - "source": "examples/reti/validatorRegistry.algo.ts:243", + "teal": 241, + "source": "examples/reti/validatorRegistry.algo.ts:247", "pc": [ - 218, 219, - 220 + 220, + 221 ] }, { - "teal": 244, + "teal": 242, "source": "examples/reti/validatorRegistry.algo.ts:247", "pc": [ - 221, 222, - 223 + 223, + 224 ] }, { - "teal": 245, + "teal": 243, "source": "examples/reti/validatorRegistry.algo.ts:247", "pc": [ - 224, - 225, - 226 + 225 ] }, { - "teal": 246, - "source": "examples/reti/validatorRegistry.algo.ts:247", + "teal": 244, + "source": "examples/reti/validatorRegistry.algo.ts:257", "pc": [ + 226, 227 ] }, { - "teal": 247, - "source": "examples/reti/validatorRegistry.algo.ts:257", + "teal": 245, + "source": "examples/reti/validatorRegistry.algo.ts:256", "pc": [ 228, 229 ] }, { - "teal": 248, - "source": "examples/reti/validatorRegistry.algo.ts:256", + "teal": 246, + "source": "examples/reti/validatorRegistry.algo.ts:255", "pc": [ - 230, - 231 + 230 ] }, { - "teal": 249, + "teal": 247, "source": "examples/reti/validatorRegistry.algo.ts:255", "pc": [ + 231, 232 ] }, { - "teal": 250, - "source": "examples/reti/validatorRegistry.algo.ts:255", + "teal": 248, + "source": "examples/reti/validatorRegistry.algo.ts:252", "pc": [ 233, 234 ] }, { - "teal": 251, - "source": "examples/reti/validatorRegistry.algo.ts:252", - "pc": [ - 235, - 236 - ] - }, - { - "teal": 252, + "teal": 249, "source": "examples/reti/validatorRegistry.algo.ts:249", "pc": [ - 237 + 235 ] }, { - "teal": 253, + "teal": 250, "source": "examples/reti/validatorRegistry.algo.ts:248", "pc": [ - 238, - 239, - 240 + 236, + 237, + 238 ] }, { - "teal": 254, + "teal": 251, "source": "examples/reti/validatorRegistry.algo.ts:248", "pc": [ - 241 + 239 ] }, { - "teal": 255, + "teal": 252, "source": "examples/reti/validatorRegistry.algo.ts:248", "pc": [ - 242 + 240 ] }, { - "teal": 256, + "teal": 253, "source": "examples/reti/validatorRegistry.algo.ts:260", "pc": [ - 243, - 244 + 241, + 242 ] }, { - "teal": 257, + "teal": 254, "source": "examples/reti/validatorRegistry.algo.ts:261", "pc": [ - 245, - 246, - 247 + 243, + 244, + 245 ] }, { - "teal": 258, + "teal": 255, "source": "examples/reti/validatorRegistry.algo.ts:261", "pc": [ - 248, - 249, - 250 + 246, + 247, + 248 ] }, { - "teal": 259, + "teal": 256, "source": "examples/reti/validatorRegistry.algo.ts:260", "pc": [ - 251 + 249 ] }, { - "teal": 260, + "teal": 257, "source": "examples/reti/validatorRegistry.algo.ts:260", "pc": [ - 252 + 250 ] }, { - "teal": 261, + "teal": 258, "source": "examples/reti/validatorRegistry.algo.ts:260", "pc": [ - 253 + 251 ] }, { - "teal": 262, + "teal": 259, "source": "examples/reti/validatorRegistry.algo.ts:264", "pc": [ - 254, - 255, - 256 + 252, + 253, + 254 ] }, { - "teal": 263, + "teal": 260, "source": "examples/reti/validatorRegistry.algo.ts:264", "pc": [ - 257, - 258, - 259 + 255, + 256, + 257 ] }, { - "teal": 264, + "teal": 261, "source": "examples/reti/validatorRegistry.algo.ts:264", "pc": [ - 260 + 258 ] }, { - "teal": 265, + "teal": 262, "source": "examples/reti/validatorRegistry.algo.ts:264", "pc": [ - 261 + 259 ] }, { - "teal": 266, + "teal": 263, "source": "examples/reti/validatorRegistry.algo.ts:243", "pc": [ - 262 + 260 ] }, { - "teal": 271, + "teal": 268, "source": "examples/reti/validatorRegistry.algo.ts:271", "pc": [ - 263 + 261 ] }, { - "teal": 274, + "teal": 271, "source": "examples/reti/validatorRegistry.algo.ts:271", "pc": [ - 264, - 265, - 266 + 262, + 263, + 264 ] }, { - "teal": 275, + "teal": 272, "source": "examples/reti/validatorRegistry.algo.ts:271", "pc": [ - 267 + 265 ] }, { - "teal": 276, + "teal": 273, "source": "examples/reti/validatorRegistry.algo.ts:271", "pc": [ - 268 + 266 ] }, { - "teal": 277, + "teal": 274, "source": "examples/reti/validatorRegistry.algo.ts:271", "pc": [ - 269 + 267 ] }, { - "teal": 278, + "teal": 275, "source": "examples/reti/validatorRegistry.algo.ts:271", "pc": [ - 270 + 268 ] }, { - "teal": 284, + "teal": 281, "source": "examples/reti/validatorRegistry.algo.ts:271", "pc": [ - 271, - 272, - 273 + 269, + 270, + 271 ] }, { - "teal": 300, + "teal": 297, "source": "examples/reti/validatorRegistry.algo.ts:277", "pc": [ + 272, + 273, 274, 275, 276, @@ -2308,84 +2302,84 @@ 310, 311, 312, - 313, - 314, - 315 + 313 ] }, { - "teal": 301, + "teal": 298, "source": "examples/reti/validatorRegistry.algo.ts:278", "pc": [ - 316, - 317, - 318 + 314, + 315, + 316 ] }, { - "teal": 302, + "teal": 299, "source": "examples/reti/validatorRegistry.algo.ts:278", "pc": [ - 319 + 317 ] }, { - "teal": 303, + "teal": 300, "source": "examples/reti/validatorRegistry.algo.ts:278", "pc": [ - 320 + 318 ] }, { - "teal": 304, + "teal": 301, "source": "examples/reti/validatorRegistry.algo.ts:279", "pc": [ - 321, - 322, - 323 + 319, + 320, + 321 ] }, { - "teal": 305, + "teal": 302, "source": "examples/reti/validatorRegistry.algo.ts:279", "pc": [ - 324 + 322 ] }, { - "teal": 306, + "teal": 303, "source": "examples/reti/validatorRegistry.algo.ts:279", "pc": [ - 325 + 323 ] }, { - "teal": 307, + "teal": 304, "source": "examples/reti/validatorRegistry.algo.ts:280", "pc": [ - 326, - 327, - 328 + 324, + 325, + 326 ] }, { - "teal": 308, + "teal": 305, "source": "examples/reti/validatorRegistry.algo.ts:280", "pc": [ - 329 + 327 ] }, { - "teal": 309, + "teal": 306, "source": "examples/reti/validatorRegistry.algo.ts:280", "pc": [ - 330 + 328 ] }, { - "teal": 310, + "teal": 307, "source": "examples/reti/validatorRegistry.algo.ts:281", "pc": [ + 329, + 330, 331, 332, 333, @@ -2393,22 +2387,22 @@ 335, 336, 337, - 338, - 339, - 340 + 338 ] }, { - "teal": 311, + "teal": 308, "source": "examples/reti/validatorRegistry.algo.ts:281", "pc": [ - 341 + 339 ] }, { - "teal": 312, + "teal": 309, "source": "examples/reti/validatorRegistry.algo.ts:282", "pc": [ + 340, + 341, 342, 343, 344, @@ -2416,22 +2410,22 @@ 346, 347, 348, - 349, - 350, - 351 + 349 ] }, { - "teal": 313, + "teal": 310, "source": "examples/reti/validatorRegistry.algo.ts:282", "pc": [ - 352 + 350 ] }, { - "teal": 314, + "teal": 311, "source": "examples/reti/validatorRegistry.algo.ts:283", "pc": [ + 351, + 352, 353, 354, 355, @@ -2439,313 +2433,319 @@ 357, 358, 359, - 360, - 361, - 362 + 360 ] }, { - "teal": 315, + "teal": 312, "source": "examples/reti/validatorRegistry.algo.ts:283", "pc": [ - 363 + 361 ] }, { - "teal": 316, + "teal": 313, "source": "examples/reti/validatorRegistry.algo.ts:271", "pc": [ - 364 + 362 ] }, { - "teal": 321, + "teal": 318, "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 365 + 363 ] }, { - "teal": 324, + "teal": 321, "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 366, - 367, - 368 + 364, + 365, + 366 ] }, { - "teal": 325, + "teal": 322, "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 369 + 367 ] }, { - "teal": 326, + "teal": 323, "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 370 + 368 ] }, { - "teal": 327, + "teal": 324, "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 371 + 369 ] }, { - "teal": 328, + "teal": 325, "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 372 + 370 ] }, { - "teal": 329, + "teal": 326, "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 373 + 371 ] }, { - "teal": 335, + "teal": 332, "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 374, - 375, - 376 + 372, + 373, + 374 ] }, { - "teal": 339, + "teal": 336, "source": "examples/reti/validatorRegistry.algo.ts:292", "pc": [ - 377, - 378 + 375, + 376 ] }, { - "teal": 340, + "teal": 337, "source": "examples/reti/validatorRegistry.algo.ts:292", "pc": [ - 379 + 377 ] }, { - "teal": 341, + "teal": 338, "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 380 + 378 + ] + }, + { + "teal": 343, + "source": "examples/reti/validatorRegistry.algo.ts:296", + "pc": [ + 379 ] }, { "teal": 346, "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 381 + 380, + 381, + 382 ] }, { - "teal": 349, + "teal": 347, "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 382, - 383, - 384 + 383 ] }, { "teal": 350, "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 385 + 384, + 385, + 386 ] }, { - "teal": 353, + "teal": 351, "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 386, - 387, - 388 + 387 ] }, { - "teal": 354, + "teal": 352, "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 389 + 388 ] }, { - "teal": 355, + "teal": 353, "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 390 + 389 ] }, { - "teal": 356, + "teal": 354, "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 391 + 390 ] }, { - "teal": 357, + "teal": 358, "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 392 + 391, + 392, + 393 ] }, { - "teal": 361, - "source": "examples/reti/validatorRegistry.algo.ts:296", + "teal": 362, + "source": "examples/reti/validatorRegistry.algo.ts:297", "pc": [ - 393, - 394, - 395 + 394 ] }, { - "teal": 365, + "teal": 363, "source": "examples/reti/validatorRegistry.algo.ts:297", "pc": [ + 395, 396 ] }, { - "teal": 366, + "teal": 364, "source": "examples/reti/validatorRegistry.algo.ts:297", "pc": [ - 397, - 398 + 397 ] }, { - "teal": 367, + "teal": 365, "source": "examples/reti/validatorRegistry.algo.ts:297", "pc": [ + 398, 399 ] }, { - "teal": 368, + "teal": 366, "source": "examples/reti/validatorRegistry.algo.ts:297", "pc": [ - 400, - 401 + 400 ] }, { - "teal": 369, + "teal": 367, "source": "examples/reti/validatorRegistry.algo.ts:297", "pc": [ - 402 + 401 ] }, { - "teal": 370, + "teal": 368, "source": "examples/reti/validatorRegistry.algo.ts:297", "pc": [ + 402, 403 ] }, { - "teal": 371, + "teal": 369, "source": "examples/reti/validatorRegistry.algo.ts:297", "pc": [ - 404, - 405 + 404 ] }, { - "teal": 372, - "source": "examples/reti/validatorRegistry.algo.ts:297", + "teal": 370, + "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 406 + 405 ] }, { - "teal": 373, - "source": "examples/reti/validatorRegistry.algo.ts:296", + "teal": 375, + "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 407 + 406 ] }, { "teal": 378, "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 408 + 407, + 408, + 409 ] }, { - "teal": 381, + "teal": 379, "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 409, - 410, - 411 + 410 ] }, { "teal": 382, "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 412 + 411, + 412, + 413 ] }, { - "teal": 385, + "teal": 383, "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 413, - 414, - 415 + 414 ] }, { - "teal": 386, + "teal": 384, "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 416 + 415 ] }, { - "teal": 387, + "teal": 385, "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 417 + 416 ] }, { - "teal": 388, + "teal": 386, "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 418 + 417 ] }, { - "teal": 389, + "teal": 390, "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 419 + 418, + 419, + 420 ] }, { - "teal": 393, - "source": "examples/reti/validatorRegistry.algo.ts:301", + "teal": 394, + "source": "examples/reti/validatorRegistry.algo.ts:302", "pc": [ - 420, 421, 422 ] }, { - "teal": 397, + "teal": 395, "source": "examples/reti/validatorRegistry.algo.ts:302", "pc": [ 423, @@ -2753,426 +2753,426 @@ ] }, { - "teal": 398, + "teal": 396, "source": "examples/reti/validatorRegistry.algo.ts:302", "pc": [ - 425, - 426 + 425 ] }, { - "teal": 399, + "teal": 397, "source": "examples/reti/validatorRegistry.algo.ts:302", "pc": [ + 426, 427 ] }, { - "teal": 400, + "teal": 398, "source": "examples/reti/validatorRegistry.algo.ts:302", "pc": [ - 428, - 429 + 428 ] }, { - "teal": 401, + "teal": 399, "source": "examples/reti/validatorRegistry.algo.ts:302", "pc": [ - 430 + 429 ] }, { - "teal": 402, + "teal": 400, "source": "examples/reti/validatorRegistry.algo.ts:302", "pc": [ + 430, 431 ] }, { - "teal": 403, + "teal": 401, "source": "examples/reti/validatorRegistry.algo.ts:302", "pc": [ - 432, - 433 + 432 ] }, { - "teal": 404, - "source": "examples/reti/validatorRegistry.algo.ts:302", + "teal": 402, + "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 434 + 433 ] }, { - "teal": 405, - "source": "examples/reti/validatorRegistry.algo.ts:301", + "teal": 407, + "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ - 435 + 434 ] }, { "teal": 410, "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ - 436 + 435, + 436, + 437 ] }, { - "teal": 413, + "teal": 411, "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ - 437, - 438, - 439 + 438 ] }, { "teal": 414, "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ - 440 + 439, + 440, + 441 ] }, { - "teal": 417, + "teal": 415, + "source": "examples/reti/validatorRegistry.algo.ts:306", + "pc": [ + 442 + ] + }, + { + "teal": 416, "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ - 441, - 442, 443 ] }, { - "teal": 418, + "teal": 417, "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ 444 ] }, { - "teal": 419, + "teal": 418, "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ 445 ] }, { - "teal": 420, + "teal": 422, "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ - 446 + 446, + 447, + 448 ] }, { - "teal": 421, - "source": "examples/reti/validatorRegistry.algo.ts:306", + "teal": 426, + "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 447 + 449 ] }, { - "teal": 425, - "source": "examples/reti/validatorRegistry.algo.ts:306", + "teal": 427, + "source": "examples/reti/validatorRegistry.algo.ts:307", + "pc": [ + 450, + 451 + ] + }, + { + "teal": 428, + "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 448, - 449, - 450 + 452 ] }, { "teal": 429, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 451 + 453, + 454 ] }, { "teal": 430, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 452, - 453 + 455 ] }, { "teal": 431, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 454 + 456 ] }, { "teal": 432, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 455, - 456 + 457, + 458 ] }, { "teal": 433, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 457 + 459 ] }, { "teal": 434, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 458 + 460, + 461 ] }, { "teal": 435, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 459, - 460 + 462, + 463 ] }, { "teal": 436, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 461 + 464 ] }, { "teal": 437, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 462, - 463 + 465, + 466 ] }, { "teal": 438, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 464, - 465 + 467 ] }, { "teal": 439, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 466 + 468 ] }, { "teal": 440, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 467, - 468 + 469, + 470 ] }, { "teal": 441, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 469 + 471 ] }, { "teal": 442, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 470 + 472 ] }, { "teal": 443, - "source": "examples/reti/validatorRegistry.algo.ts:307", + "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ - 471, - 472 + 473 ] }, { - "teal": 444, - "source": "examples/reti/validatorRegistry.algo.ts:307", + "teal": 448, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 473 + 474 ] }, { - "teal": 445, - "source": "examples/reti/validatorRegistry.algo.ts:307", + "teal": 451, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 474 + 475, + 476, + 477 ] }, { - "teal": 446, - "source": "examples/reti/validatorRegistry.algo.ts:306", + "teal": 452, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 475 + 478 ] }, { - "teal": 451, + "teal": 455, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 476 + 479, + 480, + 481 ] }, { - "teal": 454, + "teal": 456, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 477, - 478, - 479 + 482 ] }, { - "teal": 455, + "teal": 457, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 480 + 483 ] }, { "teal": 458, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 481, - 482, - 483 + 484, + 485 ] }, { "teal": 459, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 484 + 486 ] }, { "teal": 460, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 485 + 487 ] }, { "teal": 461, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 486, - 487 + 488, + 489, + 490 ] }, { "teal": 462, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 488 + 491 ] }, { "teal": 463, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 489 - ] - }, - { - "teal": 464, - "source": "examples/reti/validatorRegistry.algo.ts:317", - "pc": [ - 490, - 491, 492 ] }, { - "teal": 465, + "teal": 464, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ 493 ] }, { - "teal": 466, + "teal": 465, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ 494 ] }, { - "teal": 467, + "teal": 466, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ 495 ] }, { - "teal": 468, + "teal": 467, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ 496 ] }, { - "teal": 469, - "source": "examples/reti/validatorRegistry.algo.ts:317", - "pc": [ - 497 - ] - }, - { - "teal": 470, + "teal": 476, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 498 + 497, + 498, + 499 ] }, { "teal": 479, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 499, - 500, - 501 + 500 ] }, { - "teal": 482, + "teal": 480, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ + 501, 502 ] }, { - "teal": 483, - "source": "examples/reti/validatorRegistry.algo.ts:317", + "teal": 484, + "source": "examples/reti/validatorRegistry.algo.ts:318", "pc": [ - 503, - 504 + 503 ] }, { - "teal": 487, + "teal": 485, "source": "examples/reti/validatorRegistry.algo.ts:318", "pc": [ + 504, 505 ] }, { - "teal": 488, - "source": "examples/reti/validatorRegistry.algo.ts:318", + "teal": 489, + "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ 506, 507 ] }, { - "teal": 492, + "teal": 490, "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ 508, @@ -3180,74 +3180,74 @@ ] }, { - "teal": 493, + "teal": 491, "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ - 510, - 511 + 510 ] }, { - "teal": 494, + "teal": 492, "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ + 511, 512 ] }, { - "teal": 495, + "teal": 493, "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ - 513, - 514 + 513 ] }, { - "teal": 496, + "teal": 494, "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ - 515 + 514 ] }, { - "teal": 497, + "teal": 495, "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ + 515, 516 ] }, { - "teal": 498, + "teal": 496, "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ - 517, - 518 + 517 ] }, { - "teal": 499, + "teal": 497, "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ + 518, 519 ] }, { - "teal": 500, - "source": "examples/reti/validatorRegistry.algo.ts:319", + "teal": 501, + "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ - 520, - 521 + 520 ] }, { - "teal": 504, + "teal": 502, "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ + 521, 522 ] }, { - "teal": 505, + "teal": 507, "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ 523, @@ -3255,38 +3255,38 @@ ] }, { - "teal": 510, + "teal": 508, "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ - 525, - 526 + 525 ] }, { - "teal": 511, + "teal": 509, "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ - 527 + 526 ] }, { - "teal": 512, + "teal": 510, "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ - 528 + 527, + 528, + 529 ] }, { - "teal": 513, - "source": "examples/reti/validatorRegistry.algo.ts:320", + "teal": 515, + "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 529, 530, 531 ] }, { - "teal": 518, + "teal": 516, "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ 532, @@ -3294,7 +3294,7 @@ ] }, { - "teal": 519, + "teal": 517, "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ 534, @@ -3302,89 +3302,89 @@ ] }, { - "teal": 520, + "teal": 518, "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 536, - 537 + 536 ] }, { - "teal": 521, + "teal": 519, "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 538 + 537 ] }, { - "teal": 522, + "teal": 520, "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 539 + 538 ] }, { - "teal": 523, + "teal": 521, "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 540 + 539 ] }, { - "teal": 524, + "teal": 522, "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 541 + 540 ] }, { - "teal": 525, + "teal": 523, "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 542 + 541 ] }, { - "teal": 526, + "teal": 524, "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 543 + 542 ] }, { - "teal": 527, + "teal": 525, "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 544 + 543 ] }, { - "teal": 528, + "teal": 526, "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 545 + 544, + 545, + 546 ] }, { "teal": 529, - "source": "examples/reti/validatorRegistry.algo.ts:321", + "source": "examples/reti/validatorRegistry.algo.ts:323", "pc": [ - 546, 547, - 548 + 548, + 549 ] }, { - "teal": 532, - "source": "examples/reti/validatorRegistry.algo.ts:323", + "teal": 534, + "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ - 549, 550, 551 ] }, { - "teal": 537, + "teal": 535, "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ 552, @@ -3392,7 +3392,7 @@ ] }, { - "teal": 538, + "teal": 536, "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ 554, @@ -3400,7 +3400,7 @@ ] }, { - "teal": 539, + "teal": 537, "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ 556, @@ -3408,92 +3408,92 @@ ] }, { - "teal": 540, + "teal": 538, "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ - 558, - 559 + 558 ] }, { - "teal": 541, + "teal": 539, "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ + 559, 560 ] }, { - "teal": 542, + "teal": 540, "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ - 561, - 562 + 561 ] }, { - "teal": 543, + "teal": 541, "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ - 563 + 562 ] }, { - "teal": 544, + "teal": 542, "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ + 563, 564 ] }, { - "teal": 545, - "source": "examples/reti/validatorRegistry.algo.ts:325", + "teal": 547, + "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ 565, 566 ] }, { - "teal": 550, + "teal": 548, "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ - 567, - 568 + 567 ] }, { - "teal": 551, + "teal": 549, "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ - 569 + 568 ] }, { - "teal": 552, + "teal": 550, "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ + 569, 570 ] }, { - "teal": 553, + "teal": 551, "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ 571, - 572 + 572, + 573 ] }, { - "teal": 554, - "source": "examples/reti/validatorRegistry.algo.ts:320", + "teal": 556, + "source": "examples/reti/validatorRegistry.algo.ts:327", "pc": [ - 573, 574, 575 ] }, { "teal": 559, - "source": "examples/reti/validatorRegistry.algo.ts:327", + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ 576, 577 @@ -3508,652 +3508,652 @@ ] }, { - "teal": 565, + "teal": 563, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 580, - 581 + 580 ] }, { - "teal": 566, - "source": "examples/reti/validatorRegistry.algo.ts:317", + "teal": 568, + "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 582 + 581 ] }, { "teal": 571, "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 583 + 582, + 583, + 584 ] }, { - "teal": 574, + "teal": 572, "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 584, - 585, - 586 + 585 ] }, { "teal": 575, "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 587 + 586, + 587, + 588 ] }, { - "teal": 578, + "teal": 576, "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 588, - 589, - 590 + 589 ] }, { "teal": 579, "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 591 + 590, + 591, + 592 ] }, { - "teal": 582, + "teal": 580, + "source": "examples/reti/validatorRegistry.algo.ts:334", + "pc": [ + 593 + ] + }, + { + "teal": 581, "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 592, - 593, 594 ] }, { - "teal": 583, + "teal": 582, "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ 595 ] }, { - "teal": 584, + "teal": 583, "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ 596 ] }, { - "teal": 585, + "teal": 584, "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ 597 ] }, { - "teal": 586, + "teal": 588, "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 598 + 598, + 599, + 600 ] }, { - "teal": 587, - "source": "examples/reti/validatorRegistry.algo.ts:334", + "teal": 595, + "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ - 599 + 601, + 602 ] }, { - "teal": 591, - "source": "examples/reti/validatorRegistry.algo.ts:334", + "teal": 596, + "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ - 600, - 601, - 602 + 603 ] }, { - "teal": 598, + "teal": 597, "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ - 603, 604 ] }, { - "teal": 599, + "teal": 598, "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ 605 ] }, { - "teal": 600, + "teal": 599, "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ - 606 + 606, + 607, + 608 ] }, { - "teal": 601, + "teal": 600, "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ - 607 + 609, + 610 ] }, { - "teal": 602, + "teal": 601, "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ - 608, - 609, - 610 + 611 ] }, { - "teal": 603, + "teal": 602, "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ - 611, 612 ] }, { - "teal": 604, + "teal": 603, "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ 613 ] }, { - "teal": 605, - "source": "examples/reti/validatorRegistry.algo.ts:336", + "teal": 607, + "source": "examples/reti/validatorRegistry.algo.ts:335", + "errorMessage": "pool id must be between 1 and number of pools for this validator", "pc": [ 614 ] }, { - "teal": 606, - "source": "examples/reti/validatorRegistry.algo.ts:336", + "teal": 611, + "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 615 + 615, + 616 ] }, { - "teal": 610, - "source": "examples/reti/validatorRegistry.algo.ts:335", - "errorMessage": "pool id must be between 1 and number of pools for this validator", + "teal": 612, + "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 616 + 617, + 618 + ] + }, + { + "teal": 613, + "source": "examples/reti/validatorRegistry.algo.ts:339", + "pc": [ + 619 ] }, { "teal": 614, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 617, - 618 + 620 ] }, { "teal": 615, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 619, - 620 + 621, + 622 ] }, { "teal": 616, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 621 + 623 ] }, { "teal": 617, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 622 + 624 ] }, { "teal": 618, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 623, - 624 + 625 ] }, { "teal": 619, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 625 + 626 ] }, { "teal": 620, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 626 + 627 ] }, { "teal": 621, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 627 + 628 ] }, { "teal": 622, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 628 + 629, + 630 ] }, { "teal": 623, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 629 + 631 ] }, { "teal": 624, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 630 + 632 ] }, { "teal": 625, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 631, - 632 + 633, + 634 ] }, { "teal": 626, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 633 + 635 ] }, { "teal": 627, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 634 - ] - }, - { - "teal": 628, - "source": "examples/reti/validatorRegistry.algo.ts:339", - "pc": [ - 635, 636 ] }, { - "teal": 629, - "source": "examples/reti/validatorRegistry.algo.ts:339", + "teal": 628, + "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ 637 ] }, { - "teal": 630, - "source": "examples/reti/validatorRegistry.algo.ts:339", + "teal": 633, + "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ 638 ] }, { - "teal": 631, - "source": "examples/reti/validatorRegistry.algo.ts:334", + "teal": 636, + "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 639 + 639, + 640, + 641 ] }, { - "teal": 636, + "teal": 637, "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 640 + 642 ] }, { - "teal": 639, + "teal": 638, "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 641, - 642, 643 ] }, { - "teal": 640, + "teal": 639, "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ 644 ] }, { - "teal": 641, + "teal": 640, "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ 645 ] }, { - "teal": 642, + "teal": 643, "source": "examples/reti/validatorRegistry.algo.ts:343", + "errorMessage": "argument 0 (poolKey) for getPoolInfo must be a (uint64,uint64,uint64)", "pc": [ 646 ] }, { - "teal": 643, + "teal": 646, "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 647 + 647, + 648, + 649 ] }, { - "teal": 646, + "teal": 647, "source": "examples/reti/validatorRegistry.algo.ts:343", - "errorMessage": "argument 0 (poolKey) for getPoolInfo must be a (uint64,uint64,uint64)", "pc": [ - 648 + 650 ] }, { - "teal": 649, + "teal": 648, "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 649, - 650, 651 ] }, { - "teal": 650, + "teal": 649, "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ 652 ] }, { - "teal": 651, + "teal": 650, "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ 653 ] }, { - "teal": 652, + "teal": 654, "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 654 + 654, + 655, + 656 ] }, { - "teal": 653, - "source": "examples/reti/validatorRegistry.algo.ts:343", + "teal": 658, + "source": "examples/reti/validatorRegistry.algo.ts:344", + "pc": [ + 657, + 658 + ] + }, + { + "teal": 659, + "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 655 + 659, + 660 ] }, { - "teal": 657, - "source": "examples/reti/validatorRegistry.algo.ts:343", + "teal": 660, + "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 656, - 657, - 658 + 661, + 662, + 663 ] }, { "teal": 661, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 659, - 660 + 664 ] }, { "teal": 662, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 661, - 662 + 665 ] }, { "teal": 663, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 663, - 664, - 665 + 666 ] }, { "teal": 664, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 666 + 667, + 668 ] }, { "teal": 665, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 667 + 669 ] }, { "teal": 666, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 668 + 670 ] }, { "teal": 667, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 669, - 670 + 671, + 672 ] }, { "teal": 668, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 671 + 673 ] }, { "teal": 669, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 672 + 674, + 675 ] }, { "teal": 670, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 673, - 674 + 676, + 677, + 678 ] }, { "teal": 671, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 675 + 679 ] }, { "teal": 672, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 676, - 677 + 680 ] }, { "teal": 673, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 678, - 679, - 680 + 681 ] }, { "teal": 674, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 681 + 682, + 683 ] }, { "teal": 675, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 682 + 684 ] }, { "teal": 676, - "source": "examples/reti/validatorRegistry.algo.ts:344", - "pc": [ - 683 - ] - }, - { - "teal": 677, - "source": "examples/reti/validatorRegistry.algo.ts:344", + "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 684, 685 ] }, { - "teal": 678, - "source": "examples/reti/validatorRegistry.algo.ts:344", + "teal": 681, + "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ 686 ] }, { - "teal": 679, - "source": "examples/reti/validatorRegistry.algo.ts:343", + "teal": 684, + "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 687 + 687, + 688, + 689 ] }, { - "teal": 684, + "teal": 685, "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 688 + 690 ] }, { - "teal": 687, + "teal": 688, "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 689, - 690, - 691 + 691, + 692, + 693 ] }, { - "teal": 688, + "teal": 689, "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 692 + 694 ] }, { - "teal": 691, + "teal": 690, "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 693, - 694, 695 ] }, { - "teal": 692, + "teal": 691, "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ 696 ] }, { - "teal": 693, + "teal": 692, "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ 697 ] }, { - "teal": 694, + "teal": 693, "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ 698 ] }, { - "teal": 695, - "source": "examples/reti/validatorRegistry.algo.ts:354", - "pc": [ - 699 - ] - }, - { - "teal": 696, + "teal": 703, "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 700 + 699, + 700, + 701 ] }, { "teal": 706, "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 701, - 702, - 703 + 702 ] }, { - "teal": 709, + "teal": 707, "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ + 703, 704 ] }, { - "teal": 710, - "source": "examples/reti/validatorRegistry.algo.ts:354", + "teal": 711, + "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ 705, 706 ] }, { - "teal": 714, + "teal": 712, "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ 707, @@ -4161,229 +4161,229 @@ ] }, { - "teal": 715, + "teal": 713, "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ - 709, - 710 + 709 ] }, { - "teal": 716, + "teal": 714, "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ + 710, 711 ] }, { - "teal": 717, + "teal": 715, "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ - 712, - 713 + 712 ] }, { - "teal": 718, + "teal": 716, "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ - 714 + 713 ] }, { - "teal": 719, + "teal": 717, "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ + 714, 715 ] }, { - "teal": 720, + "teal": 718, "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ - 716, - 717 + 716 ] }, { - "teal": 721, + "teal": 719, "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ - 718 + 717 ] }, { - "teal": 722, + "teal": 720, "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ + 718, 719 ] }, { - "teal": 723, - "source": "examples/reti/validatorRegistry.algo.ts:355", + "teal": 724, + "source": "examples/reti/validatorRegistry.algo.ts:356", "pc": [ 720, - 721 + 721, + 722 ] }, { - "teal": 727, + "teal": 725, "source": "examples/reti/validatorRegistry.algo.ts:356", "pc": [ - 722, 723, 724 ] }, { - "teal": 728, + "teal": 726, "source": "examples/reti/validatorRegistry.algo.ts:356", "pc": [ - 725, - 726 + 725 ] }, { - "teal": 729, + "teal": 727, "source": "examples/reti/validatorRegistry.algo.ts:356", "pc": [ + 726, 727 ] }, { - "teal": 730, - "source": "examples/reti/validatorRegistry.algo.ts:356", + "teal": 731, + "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ 728, - 729 + 729, + 730 ] }, { - "teal": 734, + "teal": 732, "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ - 730, - 731, - 732 + 731 ] }, { - "teal": 735, + "teal": 733, "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ - 733 + 732 ] }, { - "teal": 736, + "teal": 734, "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ + 733, 734 ] }, { - "teal": 737, + "teal": 735, "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ - 735, - 736 + 735 ] }, { - "teal": 738, + "teal": 736, "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ - 737 + 736 ] }, { - "teal": 739, + "teal": 737, "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ + 737, 738 ] }, { - "teal": 740, + "teal": 738, "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ - 739, - 740 + 739 ] }, { - "teal": 741, + "teal": 739, "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ - 741 + 740 ] }, { - "teal": 742, + "teal": 740, "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ + 741, 742 ] }, { - "teal": 743, - "source": "examples/reti/validatorRegistry.algo.ts:357", + "teal": 745, + "source": "examples/reti/validatorRegistry.algo.ts:358", "pc": [ 743, 744 ] }, { - "teal": 748, + "teal": 746, "source": "examples/reti/validatorRegistry.algo.ts:358", "pc": [ - 745, - 746 + 745 ] }, { - "teal": 749, + "teal": 747, "source": "examples/reti/validatorRegistry.algo.ts:358", "pc": [ - 747 + 746 ] }, { - "teal": 750, + "teal": 748, "source": "examples/reti/validatorRegistry.algo.ts:358", "pc": [ - 748 + 747, + 748, + 749 ] }, { - "teal": 751, - "source": "examples/reti/validatorRegistry.algo.ts:358", + "teal": 753, + "source": "examples/reti/validatorRegistry.algo.ts:359", "pc": [ - 749, 750, - 751 + 751, + 752 ] }, { - "teal": 756, + "teal": 754, "source": "examples/reti/validatorRegistry.algo.ts:359", "pc": [ - 752, 753, 754 ] }, { - "teal": 757, - "source": "examples/reti/validatorRegistry.algo.ts:359", + "teal": 760, + "source": "examples/reti/validatorRegistry.algo.ts:361", "pc": [ 755, 756 ] }, { - "teal": 763, + "teal": 761, "source": "examples/reti/validatorRegistry.algo.ts:361", "pc": [ 757, @@ -4391,31 +4391,31 @@ ] }, { - "teal": 764, + "teal": 762, "source": "examples/reti/validatorRegistry.algo.ts:361", "pc": [ - 759, - 760 + 759 ] }, { - "teal": 765, + "teal": 763, "source": "examples/reti/validatorRegistry.algo.ts:361", "pc": [ - 761 + 760, + 761, + 762 ] }, { - "teal": 766, - "source": "examples/reti/validatorRegistry.algo.ts:361", + "teal": 768, + "source": "examples/reti/validatorRegistry.algo.ts:362", "pc": [ - 762, 763, 764 ] }, { - "teal": 771, + "teal": 769, "source": "examples/reti/validatorRegistry.algo.ts:362", "pc": [ 765, @@ -4423,8 +4423,8 @@ ] }, { - "teal": 772, - "source": "examples/reti/validatorRegistry.algo.ts:362", + "teal": 774, + "source": "examples/reti/validatorRegistry.algo.ts:364", "pc": [ 767, 768 @@ -4432,7 +4432,7 @@ }, { "teal": 777, - "source": "examples/reti/validatorRegistry.algo.ts:364", + "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ 769, 770 @@ -4447,522 +4447,522 @@ ] }, { - "teal": 783, + "teal": 781, "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 773, - 774 + 773 ] }, { - "teal": 784, - "source": "examples/reti/validatorRegistry.algo.ts:354", + "teal": 786, + "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 775 + 774 ] }, { "teal": 789, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 776 + 775, + 776, + 777 ] }, { - "teal": 792, + "teal": 790, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 777, - 778, - 779 + 778 ] }, { - "teal": 793, + "teal": 791, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 780 + 779 ] }, { - "teal": 794, + "teal": 792, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ + 780, 781 ] }, { - "teal": 795, + "teal": 793, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 782, - 783 + 782 ] }, { "teal": 796, "source": "examples/reti/validatorRegistry.algo.ts:372", + "errorMessage": "argument 0 (staker) for doesStakerNeedToPayMBR must be a address", "pc": [ - 784 + 783 ] }, { "teal": 799, "source": "examples/reti/validatorRegistry.algo.ts:372", - "errorMessage": "argument 0 (staker) for doesStakerNeedToPayMBR must be a address", "pc": [ - 785 + 784, + 785, + 786 ] }, { - "teal": 802, + "teal": 800, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 786, 787, 788 ] }, { - "teal": 803, + "teal": 801, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 789, - 790 + 789 ] }, { - "teal": 804, + "teal": 802, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ + 790, 791 ] }, { - "teal": 805, + "teal": 803, + "source": "examples/reti/validatorRegistry.algo.ts:372", + "pc": [ + 792 + ] + }, + { + "teal": 804, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 792, 793 ] }, { - "teal": 806, + "teal": 805, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ 794 ] }, { - "teal": 807, + "teal": 806, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ 795 ] }, { - "teal": 808, + "teal": 807, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ 796 ] }, { - "teal": 809, + "teal": 814, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 797 + 797, + 798, + 799 ] }, { - "teal": 810, - "source": "examples/reti/validatorRegistry.algo.ts:372", + "teal": 818, + "source": "examples/reti/validatorRegistry.algo.ts:373", "pc": [ - 798 + 800 ] }, { - "teal": 817, - "source": "examples/reti/validatorRegistry.algo.ts:372", + "teal": 819, + "source": "examples/reti/validatorRegistry.algo.ts:373", "pc": [ - 799, - 800, - 801 + 801, + 802 ] }, { - "teal": 821, + "teal": 820, "source": "examples/reti/validatorRegistry.algo.ts:373", "pc": [ - 802 + 803 ] }, { - "teal": 822, + "teal": 821, "source": "examples/reti/validatorRegistry.algo.ts:373", "pc": [ - 803, 804 ] }, { - "teal": 823, + "teal": 822, "source": "examples/reti/validatorRegistry.algo.ts:373", "pc": [ 805 ] }, { - "teal": 824, + "teal": 823, "source": "examples/reti/validatorRegistry.algo.ts:373", "pc": [ 806 ] }, { - "teal": 825, + "teal": 824, "source": "examples/reti/validatorRegistry.algo.ts:373", "pc": [ 807 ] }, { - "teal": 826, - "source": "examples/reti/validatorRegistry.algo.ts:373", + "teal": 825, + "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ 808 ] }, { - "teal": 827, - "source": "examples/reti/validatorRegistry.algo.ts:373", + "teal": 830, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ 809 ] }, { - "teal": 828, - "source": "examples/reti/validatorRegistry.algo.ts:372", + "teal": 833, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 810 + 810, + 811, + 812 ] }, { - "teal": 833, + "teal": 834, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 811 + 813 ] }, { - "teal": 836, + "teal": 835, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 812, - 813, 814 ] }, { - "teal": 837, + "teal": 836, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 815 + 815, + 816 ] }, { - "teal": 838, + "teal": 837, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 816 + 817 ] }, { - "teal": 839, + "teal": 840, "source": "examples/reti/validatorRegistry.algo.ts:382", + "errorMessage": "argument 0 (staker) for getStakedPoolsForAccount must be a address", "pc": [ - 817, 818 ] }, { - "teal": 840, + "teal": 843, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 819 + 819, + 820, + 821 ] }, { - "teal": 843, + "teal": 844, "source": "examples/reti/validatorRegistry.algo.ts:382", - "errorMessage": "argument 0 (staker) for getStakedPoolsForAccount must be a address", "pc": [ - 820 + 822 ] }, { - "teal": 846, + "teal": 845, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 821, - 822, 823 ] }, { - "teal": 847, + "teal": 846, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ 824 ] }, { - "teal": 848, + "teal": 847, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ 825 ] }, { - "teal": 849, + "teal": 848, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ 826 ] }, { - "teal": 850, + "teal": 849, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 827 + 827, + 828, + 829 ] }, { - "teal": 851, + "teal": 850, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 828 + 830 ] }, { - "teal": 852, + "teal": 851, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 829, - 830, 831 ] }, { - "teal": 853, + "teal": 852, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ 832 ] }, { - "teal": 854, + "teal": 853, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ 833 ] }, { - "teal": 855, + "teal": 854, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ 834 ] }, { - "teal": 856, + "teal": 855, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ 835 ] }, { - "teal": 857, - "source": "examples/reti/validatorRegistry.algo.ts:382", - "pc": [ - 836 - ] - }, - { - "teal": 858, + "teal": 864, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 837 + 836, + 837, + 838 ] }, { "teal": 867, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 838, - 839, - 840 + 839 ] }, { - "teal": 870, + "teal": 868, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ + 840, 841 ] }, { - "teal": 871, - "source": "examples/reti/validatorRegistry.algo.ts:382", + "teal": 873, + "source": "examples/reti/validatorRegistry.algo.ts:383", "pc": [ - 842, - 843 + 842 ] }, { - "teal": 876, + "teal": 874, "source": "examples/reti/validatorRegistry.algo.ts:383", "pc": [ + 843, 844 ] }, { - "teal": 877, + "teal": 875, "source": "examples/reti/validatorRegistry.algo.ts:383", "pc": [ - 845, - 846 + 845 ] }, { - "teal": 878, + "teal": 876, "source": "examples/reti/validatorRegistry.algo.ts:383", "pc": [ - 847 + 846 ] }, { - "teal": 879, + "teal": 877, "source": "examples/reti/validatorRegistry.algo.ts:383", "pc": [ - 848 + 847 ] }, { - "teal": 880, + "teal": 878, "source": "examples/reti/validatorRegistry.algo.ts:383", "pc": [ - 849 + 848 ] }, { - "teal": 881, + "teal": 879, "source": "examples/reti/validatorRegistry.algo.ts:383", "pc": [ - 850 + 849 ] }, { - "teal": 882, + "teal": 880, "source": "examples/reti/validatorRegistry.algo.ts:383", "pc": [ - 851 + 850, + 851, + 852 ] }, { - "teal": 883, - "source": "examples/reti/validatorRegistry.algo.ts:383", + "teal": 885, + "source": "examples/reti/validatorRegistry.algo.ts:384", "pc": [ - 852, - 853, - 854 + 853 ] }, { - "teal": 888, + "teal": 886, "source": "examples/reti/validatorRegistry.algo.ts:384", "pc": [ - 855 + 854, + 855, + 856 ] }, { - "teal": 889, - "source": "examples/reti/validatorRegistry.algo.ts:384", + "teal": 891, + "source": "examples/reti/validatorRegistry.algo.ts:386", "pc": [ - 856, - 857, - 858 + 857 ] }, { - "teal": 894, + "teal": 892, "source": "examples/reti/validatorRegistry.algo.ts:386", "pc": [ + 858, 859 ] }, { - "teal": 895, - "source": "examples/reti/validatorRegistry.algo.ts:386", + "teal": 896, + "source": "examples/reti/validatorRegistry.algo.ts:387", "pc": [ - 860, - 861 + 860 ] }, { - "teal": 899, + "teal": 897, "source": "examples/reti/validatorRegistry.algo.ts:387", "pc": [ + 861, 862 ] }, { - "teal": 900, + "teal": 898, "source": "examples/reti/validatorRegistry.algo.ts:387", "pc": [ - 863, - 864 + 863 ] }, { - "teal": 901, + "teal": 899, "source": "examples/reti/validatorRegistry.algo.ts:387", "pc": [ - 865 + 864 ] }, { "teal": 902, "source": "examples/reti/validatorRegistry.algo.ts:387", + "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value", "pc": [ - 866 + 865 ] }, { - "teal": 905, + "teal": 903, "source": "examples/reti/validatorRegistry.algo.ts:387", - "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value", "pc": [ + 866, 867 ] }, { - "teal": 906, - "source": "examples/reti/validatorRegistry.algo.ts:387", + "teal": 907, + "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ - 868, - 869 + 868 ] }, { - "teal": 910, + "teal": 908, "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ + 869, 870 ] }, { - "teal": 911, + "teal": 913, "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ 871, @@ -4970,7 +4970,7 @@ ] }, { - "teal": 916, + "teal": 914, "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ 873, @@ -4978,31 +4978,31 @@ ] }, { - "teal": 917, + "teal": 915, "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ - 875, - 876 + 875 ] }, { - "teal": 918, + "teal": 916, "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ - 877 + 876, + 877, + 878 ] }, { - "teal": 919, - "source": "examples/reti/validatorRegistry.algo.ts:388", + "teal": 921, + "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ - 878, 879, 880 ] }, { - "teal": 924, + "teal": 922, "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ 881, @@ -5010,87 +5010,87 @@ ] }, { - "teal": 925, + "teal": 923, + "source": "examples/reti/validatorRegistry.algo.ts:389", + "pc": [ + 883 + ] + }, + { + "teal": 924, "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ - 883, 884 ] }, { - "teal": 926, + "teal": 925, "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ 885 ] }, { - "teal": 927, + "teal": 926, "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ 886 ] }, { - "teal": 928, + "teal": 927, "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ 887 ] }, { - "teal": 929, + "teal": 928, "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ 888 ] }, { - "teal": 930, + "teal": 929, "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ 889 ] }, { - "teal": 931, + "teal": 930, "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ 890 ] }, { - "teal": 932, + "teal": 931, "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ 891 ] }, { - "teal": 933, - "source": "examples/reti/validatorRegistry.algo.ts:389", - "pc": [ - 892 - ] - }, - { - "teal": 934, + "teal": 932, "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ - 893 + 892, + 893, + 894 ] }, { - "teal": 935, - "source": "examples/reti/validatorRegistry.algo.ts:389", + "teal": 937, + "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ - 894, 895, 896 ] }, { - "teal": 940, + "teal": 938, "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ 897, @@ -5098,7 +5098,7 @@ ] }, { - "teal": 941, + "teal": 939, "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ 899, @@ -5106,98 +5106,98 @@ ] }, { - "teal": 942, + "teal": 940, "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ - 901, - 902 + 901 ] }, { - "teal": 943, + "teal": 941, "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ - 903 + 902 ] }, { - "teal": 944, + "teal": 942, "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ - 904 + 903 ] }, { - "teal": 945, + "teal": 943, "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ - 905 + 904 ] }, { - "teal": 946, + "teal": 944, "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ - 906 + 905 ] }, { - "teal": 947, + "teal": 945, "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ + 906, 907 ] }, { - "teal": 948, - "source": "examples/reti/validatorRegistry.algo.ts:390", + "teal": 952, + "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ 908, 909 ] }, { - "teal": 955, + "teal": 953, "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ - 910, - 911 + 910 ] }, { - "teal": 956, + "teal": 954, "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ - 912 + 911 ] }, { - "teal": 957, + "teal": 955, "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ + 912, 913 ] }, { - "teal": 958, + "teal": 956, "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ 914, - 915 + 915, + 916 ] }, { - "teal": 959, - "source": "examples/reti/validatorRegistry.algo.ts:388", + "teal": 961, + "source": "examples/reti/validatorRegistry.algo.ts:393", "pc": [ - 916, 917, 918 ] }, { - "teal": 964, - "source": "examples/reti/validatorRegistry.algo.ts:393", + "teal": 965, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ 919, 920 @@ -5212,91 +5212,91 @@ ] }, { - "teal": 971, + "teal": 969, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 923, - 924 + 923 ] }, { - "teal": 972, - "source": "examples/reti/validatorRegistry.algo.ts:382", + "teal": 974, + "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 925 + 924 ] }, { "teal": 977, "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 926 + 925, + 926, + 927 ] }, { - "teal": 980, + "teal": 978, "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 927, - 928, - 929 + 928 ] }, { "teal": 981, "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 930 + 929, + 930, + 931 ] }, { - "teal": 984, + "teal": 982, "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 931, - 932, - 933 + 932 ] }, { - "teal": 985, + "teal": 983, "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 934 + 933 ] }, { - "teal": 986, + "teal": 984, "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 935 + 934 ] }, { - "teal": 987, + "teal": 985, "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 936 + 935 ] }, { - "teal": 988, + "teal": 995, "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 937 + 936, + 937, + 938 ] }, { - "teal": 998, - "source": "examples/reti/validatorRegistry.algo.ts:404", + "teal": 999, + "source": "examples/reti/validatorRegistry.algo.ts:405", "pc": [ - 938, 939, 940 ] }, { - "teal": 1002, + "teal": 1000, "source": "examples/reti/validatorRegistry.algo.ts:405", "pc": [ 941, @@ -5304,193 +5304,193 @@ ] }, { - "teal": 1003, + "teal": 1001, "source": "examples/reti/validatorRegistry.algo.ts:405", "pc": [ - 943, - 944 + 943 ] }, { - "teal": 1004, + "teal": 1002, "source": "examples/reti/validatorRegistry.algo.ts:405", "pc": [ + 944, 945 ] }, { - "teal": 1005, + "teal": 1003, "source": "examples/reti/validatorRegistry.algo.ts:405", "pc": [ - 946, - 947 + 946 ] }, { - "teal": 1006, + "teal": 1004, "source": "examples/reti/validatorRegistry.algo.ts:405", "pc": [ - 948 + 947 ] }, { - "teal": 1007, + "teal": 1005, "source": "examples/reti/validatorRegistry.algo.ts:405", "pc": [ + 948, 949 ] }, { - "teal": 1008, + "teal": 1006, "source": "examples/reti/validatorRegistry.algo.ts:405", "pc": [ - 950, - 951 + 950 ] }, { - "teal": 1009, - "source": "examples/reti/validatorRegistry.algo.ts:405", - "pc": [ - 952 + "teal": 1007, + "source": "examples/reti/validatorRegistry.algo.ts:404", + "pc": [ + 951 ] }, { - "teal": 1010, - "source": "examples/reti/validatorRegistry.algo.ts:404", + "teal": 1012, + "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 953 + 952 ] }, { "teal": 1015, "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 954 + 953, + 954, + 955 ] }, { - "teal": 1018, + "teal": 1016, "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 955, - 956, - 957 + 956 ] }, { "teal": 1019, "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 958 + 957, + 958, + 959 ] }, { - "teal": 1022, + "teal": 1020, "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 959, - 960, - 961 + 960 ] }, { - "teal": 1023, + "teal": 1021, "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 962 + 961 ] }, { - "teal": 1024, + "teal": 1022, "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 963 + 962 ] }, { - "teal": 1025, + "teal": 1023, "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 964 + 963 ] }, { - "teal": 1026, + "teal": 1027, "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 965 + 964, + 965, + 966 ] }, { - "teal": 1030, - "source": "examples/reti/validatorRegistry.algo.ts:409", + "teal": 1031, + "source": "examples/reti/validatorRegistry.algo.ts:410", "pc": [ - 966, - 967, - 968 + 967 ] }, { - "teal": 1034, + "teal": 1032, "source": "examples/reti/validatorRegistry.algo.ts:410", "pc": [ + 968, 969 ] }, { - "teal": 1035, + "teal": 1033, "source": "examples/reti/validatorRegistry.algo.ts:410", "pc": [ - 970, - 971 + 970 ] }, { - "teal": 1036, + "teal": 1034, "source": "examples/reti/validatorRegistry.algo.ts:410", "pc": [ - 972 + 971 ] }, { - "teal": 1037, + "teal": 1035, "source": "examples/reti/validatorRegistry.algo.ts:410", "pc": [ - 973 + 972 ] }, { - "teal": 1038, + "teal": 1036, "source": "examples/reti/validatorRegistry.algo.ts:410", "pc": [ - 974 + 973 ] }, { - "teal": 1039, + "teal": 1037, "source": "examples/reti/validatorRegistry.algo.ts:410", "pc": [ - 975 + 974 ] }, { "teal": 1040, "source": "examples/reti/validatorRegistry.algo.ts:410", + "errorMessage": "the specified validator id doesn't exist", "pc": [ - 976 + 975 ] }, { - "teal": 1043, - "source": "examples/reti/validatorRegistry.algo.ts:410", - "errorMessage": "the specified validator id doesn't exist", + "teal": 1044, + "source": "examples/reti/validatorRegistry.algo.ts:412", "pc": [ + 976, 977 ] }, { - "teal": 1047, + "teal": 1045, "source": "examples/reti/validatorRegistry.algo.ts:412", "pc": [ 978, @@ -5498,426 +5498,426 @@ ] }, { - "teal": 1048, + "teal": 1046, "source": "examples/reti/validatorRegistry.algo.ts:412", "pc": [ - 980, - 981 + 980 ] }, { - "teal": 1049, + "teal": 1047, "source": "examples/reti/validatorRegistry.algo.ts:412", "pc": [ + 981, 982 ] }, { - "teal": 1050, + "teal": 1048, "source": "examples/reti/validatorRegistry.algo.ts:412", "pc": [ - 983, - 984 + 983 ] }, { - "teal": 1051, + "teal": 1049, "source": "examples/reti/validatorRegistry.algo.ts:412", "pc": [ - 985 + 984 ] }, { - "teal": 1052, + "teal": 1050, "source": "examples/reti/validatorRegistry.algo.ts:412", "pc": [ + 985, 986 ] }, { - "teal": 1053, + "teal": 1051, "source": "examples/reti/validatorRegistry.algo.ts:412", "pc": [ - 987, - 988 + 987 ] }, { - "teal": 1054, - "source": "examples/reti/validatorRegistry.algo.ts:412", + "teal": 1052, + "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 989 + 988 ] }, { - "teal": 1055, - "source": "examples/reti/validatorRegistry.algo.ts:409", + "teal": 1057, + "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 990 + 989 ] }, { "teal": 1060, "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 991 + 990, + 991, + 992 ] }, { - "teal": 1063, + "teal": 1061, "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 992, - 993, - 994 + 993 ] }, { - "teal": 1064, + "teal": 1062, "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 995 + 994 ] }, { - "teal": 1065, + "teal": 1063, "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 996 + 995 ] }, { - "teal": 1066, + "teal": 1064, "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 997 + 996 ] }, { - "teal": 1067, + "teal": 1065, "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 998 + 997 ] }, { - "teal": 1068, + "teal": 1069, "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 999 + 998, + 999, + 1000 ] }, { - "teal": 1072, - "source": "examples/reti/validatorRegistry.algo.ts:415", + "teal": 1073, + "source": "examples/reti/validatorRegistry.algo.ts:416", "pc": [ - 1000, 1001, 1002 ] }, { - "teal": 1076, - "source": "examples/reti/validatorRegistry.algo.ts:416", + "teal": 1074, + "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 1003, - 1004 + 1003 ] }, { - "teal": 1077, - "source": "examples/reti/validatorRegistry.algo.ts:415", + "teal": 1079, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1005 + 1004 ] }, { "teal": 1082, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1006 + 1005, + 1006, + 1007 ] }, { - "teal": 1085, + "teal": 1083, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1007, - 1008, - 1009 + 1008 ] }, { - "teal": 1086, + "teal": 1084, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1010 + 1009 ] }, { - "teal": 1087, + "teal": 1085, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ + 1010, 1011 ] }, { - "teal": 1088, + "teal": 1086, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1012, - 1013 + 1012 ] }, { "teal": 1089, "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": [ - 1014 + 1013 ] }, { "teal": 1092, "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": [ - 1015 + 1014, + 1015, + 1016 ] }, { - "teal": 1095, + "teal": 1093, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1016, 1017, - 1018 + 1018, + 1019 ] }, { "teal": 1096, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1019, 1020, 1021 ] }, { - "teal": 1099, + "teal": 1097, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1022, - 1023 + 1022 ] }, { - "teal": 1100, + "teal": 1098, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1024 + 1023 ] }, { - "teal": 1101, + "teal": 1099, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1025 + 1024 ] }, { - "teal": 1102, + "teal": 1100, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ + 1025, 1026 ] }, { - "teal": 1103, + "teal": 1101, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1027, - 1028 + 1027 ] }, { - "teal": 1104, + "teal": 1102, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1029 + 1028 ] }, { "teal": 1105, "source": "examples/reti/validatorRegistry.algo.ts:427", + "errorMessage": "argument 2 (mbrPayment) for addValidator must be a pay transaction", "pc": [ - 1030 + 1029 ] }, { "teal": 1108, "source": "examples/reti/validatorRegistry.algo.ts:427", - "errorMessage": "argument 2 (mbrPayment) for addValidator must be a pay transaction", "pc": [ - 1031 + 1030, + 1031, + 1032 ] }, { - "teal": 1111, + "teal": 1109, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1032, - 1033, - 1034 + 1033 ] }, { - "teal": 1112, + "teal": 1110, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1035 + 1034 ] }, { - "teal": 1113, + "teal": 1111, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1036 + 1035 ] }, { - "teal": 1114, + "teal": 1112, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1037 + 1036 ] }, { - "teal": 1115, + "teal": 1113, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1038 + 1037 ] }, { - "teal": 1116, + "teal": 1125, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1039 + 1038, + 1039, + 1040 ] }, { "teal": 1128, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1040, - 1041, - 1042 + 1041 ] }, { - "teal": 1131, - "source": "examples/reti/validatorRegistry.algo.ts:427", + "teal": 1132, + "source": "examples/reti/validatorRegistry.algo.ts:428", "pc": [ + 1042, 1043 ] }, { - "teal": 1135, + "teal": 1133, "source": "examples/reti/validatorRegistry.algo.ts:428", "pc": [ 1044, - 1045 + 1045, + 1046 ] }, { - "teal": 1136, - "source": "examples/reti/validatorRegistry.algo.ts:428", + "teal": 1137, + "source": "examples/reti/validatorRegistry.algo.ts:429", "pc": [ - 1046, 1047, 1048 ] }, { - "teal": 1140, + "teal": 1138, "source": "examples/reti/validatorRegistry.algo.ts:429", "pc": [ 1049, - 1050 + 1050, + 1051 ] }, { - "teal": 1141, + "teal": 1139, "source": "examples/reti/validatorRegistry.algo.ts:429", "pc": [ - 1051, 1052, 1053 ] }, { - "teal": 1142, + "teal": 1140, "source": "examples/reti/validatorRegistry.algo.ts:429", "pc": [ - 1054, - 1055 + 1054 ] }, { - "teal": 1143, + "teal": 1141, "source": "examples/reti/validatorRegistry.algo.ts:429", "pc": [ - 1056 + 1055 ] }, { - "teal": 1144, - "source": "examples/reti/validatorRegistry.algo.ts:429", + "teal": 1145, + "source": "examples/reti/validatorRegistry.algo.ts:430", "pc": [ + 1056, 1057 ] }, { - "teal": 1148, + "teal": 1146, "source": "examples/reti/validatorRegistry.algo.ts:430", "pc": [ 1058, - 1059 + 1059, + 1060 ] }, { - "teal": 1149, + "teal": 1147, "source": "examples/reti/validatorRegistry.algo.ts:430", "pc": [ - 1060, 1061, 1062 ] }, { - "teal": 1150, + "teal": 1148, "source": "examples/reti/validatorRegistry.algo.ts:430", "pc": [ - 1063, - 1064 + 1063 ] }, { - "teal": 1151, + "teal": 1149, "source": "examples/reti/validatorRegistry.algo.ts:430", "pc": [ - 1065 + 1064 ] }, { - "teal": 1152, - "source": "examples/reti/validatorRegistry.algo.ts:430", + "teal": 1153, + "source": "examples/reti/validatorRegistry.algo.ts:431", "pc": [ + 1065, 1066 ] }, { - "teal": 1156, + "teal": 1154, "source": "examples/reti/validatorRegistry.algo.ts:431", "pc": [ 1067, @@ -5925,39 +5925,39 @@ ] }, { - "teal": 1157, + "teal": 1155, "source": "examples/reti/validatorRegistry.algo.ts:431", "pc": [ 1069, - 1070 + 1070, + 1071 ] }, { - "teal": 1158, + "teal": 1156, "source": "examples/reti/validatorRegistry.algo.ts:431", "pc": [ - 1071, - 1072, - 1073 + 1072 ] }, { "teal": 1159, "source": "examples/reti/validatorRegistry.algo.ts:431", + "errorMessage": "sender must be owner to add new validator", "pc": [ - 1074 + 1073 ] }, { - "teal": 1162, - "source": "examples/reti/validatorRegistry.algo.ts:431", - "errorMessage": "sender must be owner to add new validator", + "teal": 1164, + "source": "examples/reti/validatorRegistry.algo.ts:433", "pc": [ + 1074, 1075 ] }, { - "teal": 1167, + "teal": 1165, "source": "examples/reti/validatorRegistry.algo.ts:433", "pc": [ 1076, @@ -5965,55 +5965,55 @@ ] }, { - "teal": 1168, + "teal": 1166, "source": "examples/reti/validatorRegistry.algo.ts:433", "pc": [ 1078, - 1079 + 1079, + 1080 ] }, { - "teal": 1169, + "teal": 1167, "source": "examples/reti/validatorRegistry.algo.ts:433", "pc": [ - 1080, 1081, - 1082 + 1082, + 1083 ] }, { - "teal": 1170, + "teal": 1168, "source": "examples/reti/validatorRegistry.algo.ts:433", "pc": [ - 1083, - 1084, - 1085 + 1084 ] }, { - "teal": 1171, + "teal": 1169, "source": "examples/reti/validatorRegistry.algo.ts:433", "pc": [ - 1086 + 1085 ] }, { "teal": 1172, "source": "examples/reti/validatorRegistry.algo.ts:433", + "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"this.getMbrAmounts().addValidatorMbr\"}", "pc": [ - 1087 + 1086 ] }, { - "teal": 1175, - "source": "examples/reti/validatorRegistry.algo.ts:433", - "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"this.getMbrAmounts().addValidatorMbr\"}", + "teal": 1176, + "source": "examples/reti/validatorRegistry.algo.ts:435", "pc": [ + 1087, 1088 ] }, { - "teal": 1179, + "teal": 1177, "source": "examples/reti/validatorRegistry.algo.ts:435", "pc": [ 1089, @@ -6021,78 +6021,78 @@ ] }, { - "teal": 1180, + "teal": 1178, "source": "examples/reti/validatorRegistry.algo.ts:435", "pc": [ 1091, - 1092 + 1092, + 1093, + 1094, + 1095 ] }, { - "teal": 1181, + "teal": 1179, "source": "examples/reti/validatorRegistry.algo.ts:435", "pc": [ - 1093, - 1094, - 1095, - 1096, - 1097 + 1096 ] }, { "teal": 1182, "source": "examples/reti/validatorRegistry.algo.ts:435", + "errorMessage": "fee must be 10 ALGO or more to prevent spamming of validators", "pc": [ - 1098 + 1097 ] }, { - "teal": 1185, - "source": "examples/reti/validatorRegistry.algo.ts:435", - "errorMessage": "fee must be 10 ALGO or more to prevent spamming of validators", + "teal": 1186, + "source": "examples/reti/validatorRegistry.algo.ts:438", "pc": [ + 1098, 1099 ] }, { - "teal": 1189, + "teal": 1187, "source": "examples/reti/validatorRegistry.algo.ts:438", "pc": [ - 1100, - 1101 + 1100 ] }, { - "teal": 1190, + "teal": 1188, "source": "examples/reti/validatorRegistry.algo.ts:438", "pc": [ - 1102 + 1101 ] }, { - "teal": 1191, + "teal": 1189, "source": "examples/reti/validatorRegistry.algo.ts:438", "pc": [ - 1103 + 1102 ] }, { - "teal": 1192, + "teal": 1190, "source": "examples/reti/validatorRegistry.algo.ts:438", "pc": [ + 1103, 1104 ] }, { - "teal": 1193, - "source": "examples/reti/validatorRegistry.algo.ts:438", + "teal": 1194, + "source": "examples/reti/validatorRegistry.algo.ts:439", "pc": [ 1105, 1106 ] }, { - "teal": 1197, + "teal": 1195, "source": "examples/reti/validatorRegistry.algo.ts:439", "pc": [ 1107, @@ -6100,253 +6100,253 @@ ] }, { - "teal": 1198, + "teal": 1196, "source": "examples/reti/validatorRegistry.algo.ts:439", "pc": [ - 1109, - 1110 + 1109 ] }, { - "teal": 1199, - "source": "examples/reti/validatorRegistry.algo.ts:439", + "teal": 1200, + "source": "examples/reti/validatorRegistry.algo.ts:441", "pc": [ - 1111 + 1110 ] }, { - "teal": 1203, + "teal": 1201, "source": "examples/reti/validatorRegistry.algo.ts:441", "pc": [ + 1111, 1112 ] }, { - "teal": 1204, + "teal": 1202, "source": "examples/reti/validatorRegistry.algo.ts:441", "pc": [ - 1113, - 1114 + 1113 ] }, { - "teal": 1205, + "teal": 1203, "source": "examples/reti/validatorRegistry.algo.ts:441", "pc": [ - 1115 + 1114 ] }, { - "teal": 1206, + "teal": 1204, "source": "examples/reti/validatorRegistry.algo.ts:441", "pc": [ - 1116 + 1115, + 1116, + 1117 ] }, { - "teal": 1207, + "teal": 1205, "source": "examples/reti/validatorRegistry.algo.ts:441", "pc": [ - 1117, - 1118, - 1119 + 1118 ] }, { - "teal": 1208, + "teal": 1206, "source": "examples/reti/validatorRegistry.algo.ts:441", "pc": [ - 1120 + 1119 ] }, { - "teal": 1209, - "source": "examples/reti/validatorRegistry.algo.ts:441", + "teal": 1210, + "source": "examples/reti/validatorRegistry.algo.ts:442", "pc": [ - 1121 + 1120 ] }, { - "teal": 1213, + "teal": 1211, "source": "examples/reti/validatorRegistry.algo.ts:442", "pc": [ + 1121, 1122 ] }, { - "teal": 1214, + "teal": 1212, "source": "examples/reti/validatorRegistry.algo.ts:442", "pc": [ - 1123, - 1124 + 1123 ] }, { - "teal": 1215, + "teal": 1213, "source": "examples/reti/validatorRegistry.algo.ts:442", "pc": [ + 1124, 1125 ] }, { - "teal": 1216, + "teal": 1214, "source": "examples/reti/validatorRegistry.algo.ts:442", "pc": [ - 1126, - 1127 + 1126 ] }, { - "teal": 1217, + "teal": 1215, "source": "examples/reti/validatorRegistry.algo.ts:442", "pc": [ - 1128 + 1127 ] }, { - "teal": 1218, + "teal": 1216, "source": "examples/reti/validatorRegistry.algo.ts:442", "pc": [ + 1128, 1129 ] }, { - "teal": 1219, + "teal": 1217, "source": "examples/reti/validatorRegistry.algo.ts:442", "pc": [ - 1130, - 1131 + 1130 ] }, { - "teal": 1220, - "source": "examples/reti/validatorRegistry.algo.ts:442", + "teal": 1221, + "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ - 1132 + 1131 ] }, { - "teal": 1224, + "teal": 1222, "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ + 1132, 1133 ] }, { - "teal": 1225, + "teal": 1223, "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ - 1134, - 1135 + 1134 ] }, { - "teal": 1226, + "teal": 1224, "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ - 1136 + 1135 ] }, { - "teal": 1227, + "teal": 1225, "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ + 1136, 1137 ] }, { - "teal": 1228, + "teal": 1226, "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ - 1138, - 1139 + 1138 ] }, { - "teal": 1229, + "teal": 1227, "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ - 1140 + 1139 ] }, { - "teal": 1230, + "teal": 1228, "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ + 1140, 1141 ] }, { - "teal": 1231, + "teal": 1229, "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ - 1142, - 1143 + 1142 ] }, { - "teal": 1232, - "source": "examples/reti/validatorRegistry.algo.ts:443", + "teal": 1234, + "source": "examples/reti/validatorRegistry.algo.ts:446", "pc": [ + 1143, 1144 ] }, { - "teal": 1237, + "teal": 1235, "source": "examples/reti/validatorRegistry.algo.ts:446", "pc": [ 1145, - 1146 + 1146, + 1147 ] }, { - "teal": 1238, + "teal": 1236, "source": "examples/reti/validatorRegistry.algo.ts:446", "pc": [ - 1147, - 1148, - 1149 + 1148 ] }, { - "teal": 1239, + "teal": 1237, "source": "examples/reti/validatorRegistry.algo.ts:446", "pc": [ - 1150 + 1149 ] }, { - "teal": 1240, + "teal": 1238, "source": "examples/reti/validatorRegistry.algo.ts:446", "pc": [ - 1151 + 1150 ] }, { - "teal": 1241, + "teal": 1239, "source": "examples/reti/validatorRegistry.algo.ts:446", "pc": [ - 1152 + 1151, + 1152, + 1153 ] }, { - "teal": 1242, - "source": "examples/reti/validatorRegistry.algo.ts:446", + "teal": 1248, + "source": "examples/reti/validatorRegistry.algo.ts:448", "pc": [ - 1153, - 1154, - 1155 + 1154 ] }, { - "teal": 1251, + "teal": 1249, "source": "examples/reti/validatorRegistry.algo.ts:448", "pc": [ + 1155, 1156 ] }, { - "teal": 1252, + "teal": 1250, "source": "examples/reti/validatorRegistry.algo.ts:448", "pc": [ 1157, @@ -6354,15 +6354,15 @@ ] }, { - "teal": 1253, - "source": "examples/reti/validatorRegistry.algo.ts:448", + "teal": 1254, + "source": "examples/reti/validatorRegistry.algo.ts:449", "pc": [ 1159, 1160 ] }, { - "teal": 1257, + "teal": 1255, "source": "examples/reti/validatorRegistry.algo.ts:449", "pc": [ 1161, @@ -6370,15 +6370,15 @@ ] }, { - "teal": 1258, - "source": "examples/reti/validatorRegistry.algo.ts:449", + "teal": 1259, + "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ 1163, 1164 ] }, { - "teal": 1262, + "teal": 1260, "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ 1165, @@ -6386,7 +6386,7 @@ ] }, { - "teal": 1263, + "teal": 1261, "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ 1167, @@ -6394,7 +6394,7 @@ ] }, { - "teal": 1264, + "teal": 1262, "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ 1169, @@ -6402,7 +6402,7 @@ ] }, { - "teal": 1265, + "teal": 1263, "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ 1171, @@ -6410,80 +6410,80 @@ ] }, { - "teal": 1266, + "teal": 1264, "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ 1173, - 1174 + 1174, + 1175 ] }, { - "teal": 1267, + "teal": 1265, "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ - 1175, - 1176, - 1177 + 1176 ] }, { - "teal": 1268, + "teal": 1266, "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ - 1178 + 1177 ] }, { - "teal": 1269, + "teal": 1267, "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ + 1178, 1179 ] }, { - "teal": 1270, - "source": "examples/reti/validatorRegistry.algo.ts:450", + "teal": 1271, + "source": "examples/reti/validatorRegistry.algo.ts:451", "pc": [ 1180, 1181 ] }, { - "teal": 1274, + "teal": 1272, "source": "examples/reti/validatorRegistry.algo.ts:451", "pc": [ 1182, - 1183 + 1183, + 1184 ] }, { - "teal": 1275, + "teal": 1273, "source": "examples/reti/validatorRegistry.algo.ts:451", "pc": [ - 1184, - 1185, - 1186 + 1185 ] }, { - "teal": 1276, + "teal": 1274, "source": "examples/reti/validatorRegistry.algo.ts:451", "pc": [ + 1186, 1187 ] }, { "teal": 1277, - "source": "examples/reti/validatorRegistry.algo.ts:451", + "source": "examples/reti/validatorRegistry.algo.ts:448", "pc": [ - 1188, - 1189 + 1188 ] }, { - "teal": 1280, + "teal": 1278, "source": "examples/reti/validatorRegistry.algo.ts:448", "pc": [ + 1189, 1190 ] }, @@ -6491,56 +6491,56 @@ "teal": 1281, "source": "examples/reti/validatorRegistry.algo.ts:448", "pc": [ - 1191, - 1192 + 1191 ] }, { - "teal": 1284, - "source": "examples/reti/validatorRegistry.algo.ts:448", + "teal": 1285, + "source": "examples/reti/validatorRegistry.algo.ts:453", "pc": [ + 1192, 1193 ] }, { - "teal": 1288, + "teal": 1286, "source": "examples/reti/validatorRegistry.algo.ts:453", "pc": [ - 1194, - 1195 + 1194 ] }, { - "teal": 1289, + "teal": 1287, "source": "examples/reti/validatorRegistry.algo.ts:453", "pc": [ - 1196 + 1195 ] }, { - "teal": 1290, + "teal": 1288, "source": "examples/reti/validatorRegistry.algo.ts:453", "pc": [ - 1197 + 1196 ] }, { "teal": 1291, "source": "examples/reti/validatorRegistry.algo.ts:453", + "errorMessage": "provided NFD isn't valid", "pc": [ - 1198 + 1197 ] }, { - "teal": 1294, - "source": "examples/reti/validatorRegistry.algo.ts:453", - "errorMessage": "provided NFD isn't valid", + "teal": 1298, + "source": "examples/reti/validatorRegistry.algo.ts:456", "pc": [ + 1198, 1199 ] }, { - "teal": 1301, + "teal": 1299, "source": "examples/reti/validatorRegistry.algo.ts:456", "pc": [ 1200, @@ -6548,419 +6548,419 @@ ] }, { - "teal": 1302, + "teal": 1300, "source": "examples/reti/validatorRegistry.algo.ts:456", "pc": [ 1202, - 1203 + 1203, + 1204 ] }, { - "teal": 1303, + "teal": 1301, "source": "examples/reti/validatorRegistry.algo.ts:456", "pc": [ - 1204, - 1205, - 1206 + 1205 ] }, { - "teal": 1304, + "teal": 1302, "source": "examples/reti/validatorRegistry.algo.ts:456", "pc": [ + 1206, 1207 ] }, { - "teal": 1305, + "teal": 1303, "source": "examples/reti/validatorRegistry.algo.ts:456", "pc": [ - 1208, - 1209 + 1208 ] }, { "teal": 1306, "source": "examples/reti/validatorRegistry.algo.ts:456", + "errorMessage": "global state value does not exist: AppID.fromUint64(config.nfdForInfo).globalState('i.owner.a')", "pc": [ - 1210 + 1209 ] }, { - "teal": 1309, + "teal": 1307, "source": "examples/reti/validatorRegistry.algo.ts:456", - "errorMessage": "global state value does not exist: AppID.fromUint64(config.nfdForInfo).globalState('i.owner.a')", "pc": [ - 1211 + 1210 ] }, { "teal": 1310, - "source": "examples/reti/validatorRegistry.algo.ts:456", + "source": "examples/reti/validatorRegistry.algo.ts:455", + "errorMessage": "If specifying NFD, account adding validator must be owner", "pc": [ - 1212 + 1211 ] }, { - "teal": 1313, - "source": "examples/reti/validatorRegistry.algo.ts:455", - "errorMessage": "If specifying NFD, account adding validator must be owner", + "teal": 1317, + "source": "examples/reti/validatorRegistry.algo.ts:461", "pc": [ + 1212, 1213 ] }, { - "teal": 1320, + "teal": 1318, "source": "examples/reti/validatorRegistry.algo.ts:461", "pc": [ 1214, - 1215 + 1215, + 1216 ] }, { - "teal": 1321, + "teal": 1319, "source": "examples/reti/validatorRegistry.algo.ts:461", "pc": [ - 1216, - 1217, - 1218 + 1217 ] }, { - "teal": 1322, + "teal": 1320, "source": "examples/reti/validatorRegistry.algo.ts:461", "pc": [ + 1218, 1219 ] }, { - "teal": 1323, + "teal": 1321, "source": "examples/reti/validatorRegistry.algo.ts:461", "pc": [ - 1220, - 1221 + 1220 ] }, { - "teal": 1324, + "teal": 1322, "source": "examples/reti/validatorRegistry.algo.ts:461", "pc": [ - 1222 + 1221 ] }, { - "teal": 1325, + "teal": 1323, "source": "examples/reti/validatorRegistry.algo.ts:461", "pc": [ - 1223 + 1222, + 1223, + 1224 ] }, { - "teal": 1326, - "source": "examples/reti/validatorRegistry.algo.ts:461", + "teal": 1324, + "source": "examples/reti/validatorRegistry.algo.ts:462", "pc": [ - 1224, 1225, 1226 ] }, { - "teal": 1327, + "teal": 1325, "source": "examples/reti/validatorRegistry.algo.ts:462", "pc": [ 1227, - 1228 + 1228, + 1229 ] }, { - "teal": 1328, + "teal": 1326, "source": "examples/reti/validatorRegistry.algo.ts:462", "pc": [ - 1229, - 1230, - 1231 + 1230 ] }, { - "teal": 1329, + "teal": 1327, "source": "examples/reti/validatorRegistry.algo.ts:462", "pc": [ + 1231, 1232 ] }, { - "teal": 1330, + "teal": 1328, "source": "examples/reti/validatorRegistry.algo.ts:462", "pc": [ - 1233, - 1234 + 1233 ] }, { - "teal": 1331, - "source": "examples/reti/validatorRegistry.algo.ts:462", + "teal": 1329, + "source": "examples/reti/validatorRegistry.algo.ts:461", "pc": [ - 1235 + 1234 ] }, { "teal": 1332, - "source": "examples/reti/validatorRegistry.algo.ts:461", + "source": "examples/reti/validatorRegistry.algo.ts:460", "pc": [ - 1236 + 1235, + 1236, + 1237 ] }, { - "teal": 1335, - "source": "examples/reti/validatorRegistry.algo.ts:460", + "teal": 1337, + "source": "examples/reti/validatorRegistry.algo.ts:465", "pc": [ - 1237, 1238, 1239 ] }, { - "teal": 1340, + "teal": 1338, "source": "examples/reti/validatorRegistry.algo.ts:465", "pc": [ 1240, - 1241 + 1241, + 1242 ] }, { - "teal": 1341, + "teal": 1339, "source": "examples/reti/validatorRegistry.algo.ts:465", "pc": [ - 1242, - 1243, - 1244 + 1243 ] }, { - "teal": 1342, + "teal": 1340, "source": "examples/reti/validatorRegistry.algo.ts:465", "pc": [ - 1245 + 1244, + 1245, + 1246 ] }, { "teal": 1343, "source": "examples/reti/validatorRegistry.algo.ts:465", + "errorMessage": "provided NFD App id for gating must be valid NFD", "pc": [ - 1246, - 1247, - 1248 + 1247 ] }, { - "teal": 1346, - "source": "examples/reti/validatorRegistry.algo.ts:465", - "errorMessage": "provided NFD App id for gating must be valid NFD", + "teal": 1348, + "source": "examples/reti/validatorRegistry.algo.ts:468", "pc": [ + 1248, 1249 ] }, { "teal": 1351, - "source": "examples/reti/validatorRegistry.algo.ts:468", + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ 1250, 1251 ] }, { - "teal": 1354, + "teal": 1352, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1252, - 1253 + 1252 ] }, { - "teal": 1355, - "source": "examples/reti/validatorRegistry.algo.ts:427", + "teal": 1357, + "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1254 + 1253, + 1254, + 1255 ] }, { - "teal": 1360, + "teal": 1358, "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1255, - 1256, - 1257 + 1256 ] }, { - "teal": 1361, + "teal": 1359, "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1258 + 1257 ] }, { - "teal": 1362, + "teal": 1360, "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ + 1258, 1259 ] }, { - "teal": 1363, + "teal": 1361, "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1260, - 1261 + 1260 ] }, { "teal": 1364, "source": "examples/reti/validatorRegistry.algo.ts:478", + "errorMessage": "argument 0 (manager) for changeValidatorManager must be a address", "pc": [ - 1262 + 1261 ] }, { "teal": 1367, "source": "examples/reti/validatorRegistry.algo.ts:478", - "errorMessage": "argument 0 (manager) for changeValidatorManager must be a address", "pc": [ - 1263 + 1262, + 1263, + 1264 ] }, { - "teal": 1370, + "teal": 1368, "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1264, - 1265, - 1266 + 1265 ] }, { "teal": 1371, "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1267 + 1266, + 1267, + 1268 ] }, { - "teal": 1374, + "teal": 1372, "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1268, - 1269, - 1270 + 1269 ] }, { - "teal": 1375, + "teal": 1373, "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1271 + 1270 ] }, { - "teal": 1376, + "teal": 1383, "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1272 + 1271, + 1272, + 1273 ] }, { - "teal": 1386, - "source": "examples/reti/validatorRegistry.algo.ts:478", + "teal": 1390, + "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ - 1273, 1274, 1275 ] }, { - "teal": 1393, + "teal": 1391, "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ - 1276, - 1277 + 1276 ] }, { - "teal": 1394, + "teal": 1392, "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ + 1277, 1278 ] }, { - "teal": 1395, + "teal": 1393, "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ - 1279, - 1280 + 1279 ] }, { - "teal": 1396, + "teal": 1394, "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ + 1280, 1281 ] }, { - "teal": 1397, + "teal": 1395, "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ - 1282, - 1283 + 1282 ] }, { - "teal": 1398, + "teal": 1396, "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ - 1284 + 1283 ] }, { - "teal": 1399, + "teal": 1397, "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ + 1284, 1285 ] }, { - "teal": 1400, + "teal": 1398, "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ - 1286, - 1287 + 1286 ] }, { - "teal": 1401, + "teal": 1399, "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ - 1288 + 1287 ] }, { "teal": 1402, - "source": "examples/reti/validatorRegistry.algo.ts:480", + "source": "examples/reti/validatorRegistry.algo.ts:479", + "errorMessage": "can only be called by validator owner", "pc": [ - 1289 + 1288 ] }, { - "teal": 1405, - "source": "examples/reti/validatorRegistry.algo.ts:479", - "errorMessage": "can only be called by validator owner", + "teal": 1406, + "source": "examples/reti/validatorRegistry.algo.ts:483", "pc": [ + 1289, 1290 ] }, { - "teal": 1409, + "teal": 1407, "source": "examples/reti/validatorRegistry.algo.ts:483", "pc": [ 1291, @@ -6968,228 +6968,228 @@ ] }, { - "teal": 1410, + "teal": 1408, "source": "examples/reti/validatorRegistry.algo.ts:483", "pc": [ - 1293, - 1294 + 1293 ] }, { - "teal": 1411, + "teal": 1409, "source": "examples/reti/validatorRegistry.algo.ts:483", "pc": [ + 1294, 1295 ] }, { - "teal": 1412, + "teal": 1410, "source": "examples/reti/validatorRegistry.algo.ts:483", "pc": [ - 1296, - 1297 + 1296 ] }, { - "teal": 1413, + "teal": 1411, "source": "examples/reti/validatorRegistry.algo.ts:483", "pc": [ - 1298 + 1297 ] }, { - "teal": 1414, + "teal": 1412, "source": "examples/reti/validatorRegistry.algo.ts:483", "pc": [ + 1298, 1299 ] }, { - "teal": 1415, + "teal": 1413, "source": "examples/reti/validatorRegistry.algo.ts:483", "pc": [ - 1300, - 1301 + 1300 ] }, { - "teal": 1416, - "source": "examples/reti/validatorRegistry.algo.ts:483", + "teal": 1414, + "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1302 + 1301 ] }, { - "teal": 1417, - "source": "examples/reti/validatorRegistry.algo.ts:478", + "teal": 1419, + "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1303 + 1302, + 1303, + 1304 ] }, { - "teal": 1422, + "teal": 1420, "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1304, - 1305, - 1306 + 1305 ] }, { "teal": 1423, "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1307 + 1306, + 1307, + 1308 ] }, { - "teal": 1426, + "teal": 1424, "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1308, - 1309, - 1310 + 1309 ] }, { "teal": 1427, "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1311 + 1310, + 1311, + 1312 ] }, { - "teal": 1430, + "teal": 1428, "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1312, - 1313, - 1314 + 1313 ] }, { "teal": 1431, "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1315 + 1314, + 1315, + 1316 ] }, { - "teal": 1434, + "teal": 1432, "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1316, - 1317, - 1318 + 1317 ] }, { - "teal": 1435, + "teal": 1433, "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1319 + 1318 ] }, { - "teal": 1436, + "teal": 1444, "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1320 + 1319, + 1320, + 1321 ] }, { - "teal": 1447, - "source": "examples/reti/validatorRegistry.algo.ts:494", + "teal": 1451, + "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ - 1321, 1322, 1323 ] }, { - "teal": 1454, + "teal": 1452, "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ - 1324, - 1325 + 1324 ] }, { - "teal": 1455, + "teal": 1453, "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ + 1325, 1326 ] }, { - "teal": 1456, + "teal": 1454, "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ - 1327, - 1328 + 1327 ] }, { - "teal": 1457, + "teal": 1455, "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ + 1328, 1329 ] }, { - "teal": 1458, + "teal": 1456, "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ - 1330, - 1331 + 1330 ] }, { - "teal": 1459, + "teal": 1457, "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ - 1332 + 1331 ] }, { - "teal": 1460, + "teal": 1458, "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ + 1332, 1333 ] }, { - "teal": 1461, + "teal": 1459, "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ - 1334, - 1335 + 1334 ] }, { - "teal": 1462, + "teal": 1460, "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ - 1336 + 1335 ] }, { "teal": 1463, - "source": "examples/reti/validatorRegistry.algo.ts:496", + "source": "examples/reti/validatorRegistry.algo.ts:495", + "errorMessage": "can only be called by validator owner", "pc": [ - 1337 + 1336 ] }, { - "teal": 1466, - "source": "examples/reti/validatorRegistry.algo.ts:495", - "errorMessage": "can only be called by validator owner", + "teal": 1467, + "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ + 1337, 1338 ] }, { - "teal": 1470, + "teal": 1468, "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ 1339, @@ -7197,312 +7197,312 @@ ] }, { - "teal": 1471, + "teal": 1469, "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ - 1341, - 1342 + 1341 ] }, { - "teal": 1472, + "teal": 1470, "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ - 1343 + 1342 ] }, { - "teal": 1473, + "teal": 1471, "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ + 1343, 1344 ] }, { - "teal": 1474, + "teal": 1472, "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ - 1345, - 1346 + 1345 ] }, { - "teal": 1475, + "teal": 1473, "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ - 1347 + 1346 ] }, { - "teal": 1476, + "teal": 1474, "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ + 1347, 1348 ] }, { - "teal": 1477, + "teal": 1475, "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ - 1349, - 1350 + 1349 ] }, { - "teal": 1478, - "source": "examples/reti/validatorRegistry.algo.ts:499", + "teal": 1479, + "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ - 1351 + 1350, + 1351, + 1352 ] }, { - "teal": 1482, + "teal": 1480, "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ - 1352, 1353, 1354 ] }, { - "teal": 1483, + "teal": 1481, "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ - 1355, - 1356 + 1355 ] }, { - "teal": 1484, + "teal": 1482, "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ - 1357 + 1356 ] }, { - "teal": 1485, + "teal": 1483, "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ + 1357, 1358 ] }, { - "teal": 1486, + "teal": 1484, "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ - 1359, - 1360 + 1359 ] }, { - "teal": 1487, + "teal": 1485, "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ - 1361 + 1360 ] }, { - "teal": 1488, + "teal": 1486, "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ + 1361, 1362 ] }, { - "teal": 1489, + "teal": 1487, "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ - 1363, - 1364 + 1363 ] }, { - "teal": 1490, - "source": "examples/reti/validatorRegistry.algo.ts:500", + "teal": 1488, + "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1365 + 1364 ] }, { - "teal": 1491, - "source": "examples/reti/validatorRegistry.algo.ts:494", + "teal": 1493, + "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1366 + 1365, + 1366, + 1367 ] }, { - "teal": 1496, + "teal": 1494, "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1367, 1368, - 1369 + 1369, + 1370 ] }, { "teal": 1497, "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1370, 1371, - 1372 + 1372, + 1373 ] }, { - "teal": 1500, + "teal": 1498, "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1373, - 1374, - 1375 + 1374 ] }, { "teal": 1501, "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1376 + 1375, + 1376, + 1377 ] }, { - "teal": 1504, + "teal": 1502, "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1377, - 1378, - 1379 + 1378 ] }, { "teal": 1505, "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1380 + 1379, + 1380, + 1381 ] }, { - "teal": 1508, + "teal": 1506, "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1381, - 1382, - 1383 + 1382 ] }, { - "teal": 1509, + "teal": 1507, "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1384 + 1383 ] }, { - "teal": 1510, + "teal": 1518, "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1385 + 1384, + 1385, + 1386 ] }, { - "teal": 1521, - "source": "examples/reti/validatorRegistry.algo.ts:511", + "teal": 1525, + "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ - 1386, 1387, 1388 ] }, { - "teal": 1528, + "teal": 1526, "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ - 1389, - 1390 + 1389 ] }, { - "teal": 1529, + "teal": 1527, "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ + 1390, 1391 ] }, { - "teal": 1530, + "teal": 1528, "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ - 1392, - 1393 + 1392 ] }, { - "teal": 1531, + "teal": 1529, "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ + 1393, 1394 ] }, { - "teal": 1532, + "teal": 1530, "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ - 1395, - 1396 + 1395 ] }, { - "teal": 1533, + "teal": 1531, "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ - 1397 + 1396 ] }, { - "teal": 1534, + "teal": 1532, "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ + 1397, 1398 ] }, { - "teal": 1535, + "teal": 1533, "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ - 1399, - 1400 + 1399 ] }, { - "teal": 1536, + "teal": 1534, "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ - 1401 + 1400 ] }, { "teal": 1537, - "source": "examples/reti/validatorRegistry.algo.ts:514", + "source": "examples/reti/validatorRegistry.algo.ts:513", + "errorMessage": "can only be called by validator owner", "pc": [ - 1402 + 1401 ] }, { - "teal": 1540, - "source": "examples/reti/validatorRegistry.algo.ts:513", - "errorMessage": "can only be called by validator owner", + "teal": 1545, + "source": "examples/reti/validatorRegistry.algo.ts:518", "pc": [ - 1403 + 1402 ] }, { - "teal": 1548, + "teal": 1546, "source": "examples/reti/validatorRegistry.algo.ts:518", "pc": [ + 1403, 1404 ] }, { - "teal": 1549, + "teal": 1547, "source": "examples/reti/validatorRegistry.algo.ts:518", "pc": [ 1405, @@ -7510,15 +7510,15 @@ ] }, { - "teal": 1550, - "source": "examples/reti/validatorRegistry.algo.ts:518", + "teal": 1551, + "source": "examples/reti/validatorRegistry.algo.ts:519", "pc": [ 1407, 1408 ] }, { - "teal": 1554, + "teal": 1552, "source": "examples/reti/validatorRegistry.algo.ts:519", "pc": [ 1409, @@ -7526,15 +7526,15 @@ ] }, { - "teal": 1555, - "source": "examples/reti/validatorRegistry.algo.ts:519", + "teal": 1556, + "source": "examples/reti/validatorRegistry.algo.ts:520", "pc": [ 1411, 1412 ] }, { - "teal": 1559, + "teal": 1557, "source": "examples/reti/validatorRegistry.algo.ts:520", "pc": [ 1413, @@ -7542,7 +7542,7 @@ ] }, { - "teal": 1560, + "teal": 1558, "source": "examples/reti/validatorRegistry.algo.ts:520", "pc": [ 1415, @@ -7550,7 +7550,7 @@ ] }, { - "teal": 1561, + "teal": 1559, "source": "examples/reti/validatorRegistry.algo.ts:520", "pc": [ 1417, @@ -7558,7 +7558,7 @@ ] }, { - "teal": 1562, + "teal": 1560, "source": "examples/reti/validatorRegistry.algo.ts:520", "pc": [ 1419, @@ -7566,30 +7566,30 @@ ] }, { - "teal": 1563, + "teal": 1561, "source": "examples/reti/validatorRegistry.algo.ts:520", "pc": [ - 1421, - 1422 + 1421 ] }, { - "teal": 1564, + "teal": 1562, "source": "examples/reti/validatorRegistry.algo.ts:520", "pc": [ + 1422, 1423 ] }, { - "teal": 1565, - "source": "examples/reti/validatorRegistry.algo.ts:520", + "teal": 1566, + "source": "examples/reti/validatorRegistry.algo.ts:521", "pc": [ 1424, 1425 ] }, { - "teal": 1569, + "teal": 1567, "source": "examples/reti/validatorRegistry.algo.ts:521", "pc": [ 1426, @@ -7598,16 +7598,16 @@ }, { "teal": 1570, - "source": "examples/reti/validatorRegistry.algo.ts:521", + "source": "examples/reti/validatorRegistry.algo.ts:518", "pc": [ - 1428, - 1429 + 1428 ] }, { - "teal": 1573, + "teal": 1571, "source": "examples/reti/validatorRegistry.algo.ts:518", "pc": [ + 1429, 1430 ] }, @@ -7615,19 +7615,19 @@ "teal": 1574, "source": "examples/reti/validatorRegistry.algo.ts:518", "pc": [ - 1431, - 1432 + 1431 ] }, { - "teal": 1577, - "source": "examples/reti/validatorRegistry.algo.ts:518", + "teal": 1581, + "source": "examples/reti/validatorRegistry.algo.ts:525", "pc": [ + 1432, 1433 ] }, { - "teal": 1584, + "teal": 1582, "source": "examples/reti/validatorRegistry.algo.ts:525", "pc": [ 1434, @@ -7635,7 +7635,7 @@ ] }, { - "teal": 1585, + "teal": 1583, "source": "examples/reti/validatorRegistry.algo.ts:525", "pc": [ 1436, @@ -7643,45 +7643,45 @@ ] }, { - "teal": 1586, + "teal": 1584, "source": "examples/reti/validatorRegistry.algo.ts:525", "pc": [ - 1438, - 1439 + 1438 ] }, { "teal": 1587, "source": "examples/reti/validatorRegistry.algo.ts:525", + "errorMessage": "global state value does not exist: AppID.fromUint64(nfdAppID).globalState('i.owner.a')", "pc": [ - 1440 + 1439 ] }, { - "teal": 1590, + "teal": 1588, "source": "examples/reti/validatorRegistry.algo.ts:525", - "errorMessage": "global state value does not exist: AppID.fromUint64(nfdAppID).globalState('i.owner.a')", "pc": [ - 1441 + 1440 ] }, { "teal": 1591, - "source": "examples/reti/validatorRegistry.algo.ts:525", + "source": "examples/reti/validatorRegistry.algo.ts:524", + "errorMessage": "If specifying NFD, account adding validator must be owner", "pc": [ - 1442 + 1441 ] }, { - "teal": 1594, - "source": "examples/reti/validatorRegistry.algo.ts:524", - "errorMessage": "If specifying NFD, account adding validator must be owner", + "teal": 1595, + "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ + 1442, 1443 ] }, { - "teal": 1598, + "teal": 1596, "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ 1444, @@ -7689,249 +7689,249 @@ ] }, { - "teal": 1599, + "teal": 1597, "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ - 1446, - 1447 + 1446 ] }, { - "teal": 1600, + "teal": 1598, "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ - 1448 + 1447 ] }, { - "teal": 1601, + "teal": 1599, "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ + 1448, 1449 ] }, { - "teal": 1602, + "teal": 1600, "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ - 1450, - 1451 + 1450 ] }, { - "teal": 1603, + "teal": 1601, "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ - 1452 + 1451 ] }, { - "teal": 1604, + "teal": 1602, "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ + 1452, 1453 ] }, { - "teal": 1605, + "teal": 1603, "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ - 1454, - 1455 + 1454 ] }, { - "teal": 1606, - "source": "examples/reti/validatorRegistry.algo.ts:528", + "teal": 1604, + "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1456 + 1455 ] }, { - "teal": 1607, - "source": "examples/reti/validatorRegistry.algo.ts:511", + "teal": 1609, + "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1457 + 1456, + 1457, + 1458 ] }, { - "teal": 1612, + "teal": 1610, "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1458, - 1459, - 1460 + 1459 ] }, { - "teal": 1613, + "teal": 1611, "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1461 + 1460 ] }, { - "teal": 1614, + "teal": 1612, "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ + 1461, 1462 ] }, { - "teal": 1615, + "teal": 1613, "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1463, - 1464 + 1463 ] }, { "teal": 1616, "source": "examples/reti/validatorRegistry.algo.ts:535", + "errorMessage": "argument 0 (commissionAddress) for changeValidatorCommissionAddress must be a address", "pc": [ - 1465 + 1464 ] }, { "teal": 1619, "source": "examples/reti/validatorRegistry.algo.ts:535", - "errorMessage": "argument 0 (commissionAddress) for changeValidatorCommissionAddress must be a address", "pc": [ - 1466 + 1465, + 1466, + 1467 ] }, { - "teal": 1622, + "teal": 1620, "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1467, - 1468, - 1469 + 1468 ] }, { "teal": 1623, "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1470 + 1469, + 1470, + 1471 ] }, { - "teal": 1626, + "teal": 1624, "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1471, - 1472, - 1473 + 1472 ] }, { - "teal": 1627, + "teal": 1625, "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1474 + 1473 ] }, { - "teal": 1628, + "teal": 1632, "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1475 + 1474, + 1475, + 1476 ] }, { - "teal": 1635, - "source": "examples/reti/validatorRegistry.algo.ts:535", + "teal": 1639, + "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ - 1476, 1477, 1478 ] }, { - "teal": 1642, + "teal": 1640, "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ - 1479, - 1480 + 1479 ] }, { - "teal": 1643, + "teal": 1641, "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ + 1480, 1481 ] }, { - "teal": 1644, + "teal": 1642, "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ - 1482, - 1483 + 1482 ] }, { - "teal": 1645, + "teal": 1643, "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ + 1483, 1484 ] }, { - "teal": 1646, + "teal": 1644, "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ - 1485, - 1486 + 1485 ] }, { - "teal": 1647, + "teal": 1645, "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ - 1487 + 1486 ] }, { - "teal": 1648, + "teal": 1646, "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ + 1487, 1488 ] }, { - "teal": 1649, + "teal": 1647, "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ - 1489, - 1490 + 1489 ] }, { - "teal": 1650, + "teal": 1648, "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ - 1491 + 1490 ] }, { "teal": 1651, - "source": "examples/reti/validatorRegistry.algo.ts:537", + "source": "examples/reti/validatorRegistry.algo.ts:536", + "errorMessage": "can only be called by validator owner", "pc": [ - 1492 + 1491 ] }, { - "teal": 1654, - "source": "examples/reti/validatorRegistry.algo.ts:536", - "errorMessage": "can only be called by validator owner", + "teal": 1655, + "source": "examples/reti/validatorRegistry.algo.ts:540", "pc": [ + 1492, 1493 ] }, { - "teal": 1658, + "teal": 1656, "source": "examples/reti/validatorRegistry.algo.ts:540", "pc": [ 1494, @@ -7939,403 +7939,403 @@ ] }, { - "teal": 1659, + "teal": 1657, "source": "examples/reti/validatorRegistry.algo.ts:540", "pc": [ - 1496, - 1497 + 1496 ] }, { - "teal": 1660, + "teal": 1658, "source": "examples/reti/validatorRegistry.algo.ts:540", "pc": [ - 1498 + 1497 ] }, { - "teal": 1661, - "source": "examples/reti/validatorRegistry.algo.ts:540", + "teal": 1662, + "source": "examples/reti/validatorRegistry.algo.ts:541", "pc": [ - 1499 + 1498, + 1499, + 1500 ] }, { - "teal": 1665, + "teal": 1663, "source": "examples/reti/validatorRegistry.algo.ts:541", "pc": [ - 1500, 1501, 1502 ] }, { - "teal": 1666, + "teal": 1664, "source": "examples/reti/validatorRegistry.algo.ts:541", "pc": [ - 1503, - 1504 + 1503 ] }, { - "teal": 1667, + "teal": 1665, "source": "examples/reti/validatorRegistry.algo.ts:541", "pc": [ + 1504, 1505 ] }, { - "teal": 1668, + "teal": 1666, "source": "examples/reti/validatorRegistry.algo.ts:541", "pc": [ - 1506, - 1507 + 1506 ] }, { - "teal": 1669, + "teal": 1667, "source": "examples/reti/validatorRegistry.algo.ts:541", "pc": [ - 1508 + 1507 ] }, { - "teal": 1670, + "teal": 1668, "source": "examples/reti/validatorRegistry.algo.ts:541", "pc": [ + 1508, 1509 ] }, { - "teal": 1671, + "teal": 1669, "source": "examples/reti/validatorRegistry.algo.ts:541", "pc": [ - 1510, - 1511 + 1510 ] }, { - "teal": 1672, - "source": "examples/reti/validatorRegistry.algo.ts:541", + "teal": 1670, + "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1512 + 1511 ] }, { - "teal": 1673, - "source": "examples/reti/validatorRegistry.algo.ts:535", + "teal": 1675, + "source": "examples/reti/validatorRegistry.algo.ts:554", "pc": [ - 1513 + 1512, + 1513, + 1514 ] }, { - "teal": 1678, + "teal": 1676, "source": "examples/reti/validatorRegistry.algo.ts:554", "pc": [ - 1514, - 1515, - 1516 + 1515 ] }, { "teal": 1679, - "source": "examples/reti/validatorRegistry.algo.ts:554", + "source": "examples/reti/validatorRegistry.algo.ts:553", "pc": [ - 1517 + 1516, + 1517, + 1518 ] }, { - "teal": 1682, + "teal": 1680, "source": "examples/reti/validatorRegistry.algo.ts:553", "pc": [ - 1518, - 1519, - 1520 + 1519 ] }, { "teal": 1683, - "source": "examples/reti/validatorRegistry.algo.ts:553", + "source": "examples/reti/validatorRegistry.algo.ts:552", "pc": [ - 1521 + 1520, + 1521, + 1522 ] }, { - "teal": 1686, + "teal": 1684, "source": "examples/reti/validatorRegistry.algo.ts:552", "pc": [ - 1522, - 1523, - 1524 + 1523 ] }, { - "teal": 1687, + "teal": 1685, "source": "examples/reti/validatorRegistry.algo.ts:552", "pc": [ - 1525 + 1524 ] }, { - "teal": 1688, + "teal": 1686, "source": "examples/reti/validatorRegistry.algo.ts:552", "pc": [ + 1525, 1526 ] }, { - "teal": 1689, + "teal": 1687, "source": "examples/reti/validatorRegistry.algo.ts:552", "pc": [ - 1527, - 1528 + 1527 ] }, { "teal": 1690, "source": "examples/reti/validatorRegistry.algo.ts:552", + "errorMessage": "argument 2 (EntryGatingAssets) for changeValidatorRewardInfo must be a uint64[4]", "pc": [ - 1529 + 1528 ] }, { "teal": 1693, - "source": "examples/reti/validatorRegistry.algo.ts:552", - "errorMessage": "argument 2 (EntryGatingAssets) for changeValidatorRewardInfo must be a uint64[4]", + "source": "examples/reti/validatorRegistry.algo.ts:551", "pc": [ - 1530 + 1529, + 1530, + 1531 ] }, { - "teal": 1696, + "teal": 1694, "source": "examples/reti/validatorRegistry.algo.ts:551", "pc": [ - 1531, - 1532, - 1533 + 1532 ] }, { - "teal": 1697, + "teal": 1695, "source": "examples/reti/validatorRegistry.algo.ts:551", "pc": [ - 1534 + 1533 ] }, { - "teal": 1698, + "teal": 1696, "source": "examples/reti/validatorRegistry.algo.ts:551", "pc": [ + 1534, 1535 ] }, { - "teal": 1699, + "teal": 1697, "source": "examples/reti/validatorRegistry.algo.ts:551", "pc": [ - 1536, - 1537 + 1536 ] }, { "teal": 1700, "source": "examples/reti/validatorRegistry.algo.ts:551", + "errorMessage": "argument 3 (EntryGatingAddress) for changeValidatorRewardInfo must be a address", "pc": [ - 1538 + 1537 ] }, { "teal": 1703, - "source": "examples/reti/validatorRegistry.algo.ts:551", - "errorMessage": "argument 3 (EntryGatingAddress) for changeValidatorRewardInfo must be a address", + "source": "examples/reti/validatorRegistry.algo.ts:550", "pc": [ - 1539 + 1538, + 1539, + 1540 ] }, { - "teal": 1706, + "teal": 1704, "source": "examples/reti/validatorRegistry.algo.ts:550", "pc": [ - 1540, - 1541, - 1542 + 1541 ] }, { - "teal": 1707, + "teal": 1705, "source": "examples/reti/validatorRegistry.algo.ts:550", "pc": [ - 1543 + 1542 ] }, { - "teal": 1708, + "teal": 1706, "source": "examples/reti/validatorRegistry.algo.ts:550", "pc": [ - 1544 + 1543 ] }, { - "teal": 1709, + "teal": 1707, "source": "examples/reti/validatorRegistry.algo.ts:550", "pc": [ - 1545 + 1544 ] }, { "teal": 1710, "source": "examples/reti/validatorRegistry.algo.ts:550", + "errorMessage": "argument 4 (EntryGatingType) for changeValidatorRewardInfo must be a uint8", "pc": [ - 1546 + 1545 ] }, { - "teal": 1713, + "teal": 1711, "source": "examples/reti/validatorRegistry.algo.ts:550", - "errorMessage": "argument 4 (EntryGatingType) for changeValidatorRewardInfo must be a uint8", "pc": [ - 1547 + 1546 ] }, { "teal": 1714, - "source": "examples/reti/validatorRegistry.algo.ts:550", + "source": "examples/reti/validatorRegistry.algo.ts:549", "pc": [ - 1548 + 1547, + 1548, + 1549 ] }, { - "teal": 1717, + "teal": 1715, "source": "examples/reti/validatorRegistry.algo.ts:549", "pc": [ - 1549, - 1550, - 1551 + 1550 ] }, { "teal": 1718, - "source": "examples/reti/validatorRegistry.algo.ts:549", + "source": "examples/reti/validatorRegistry.algo.ts:548", "pc": [ - 1552 + 1551, + 1552, + 1553 ] }, { - "teal": 1721, + "teal": 1719, "source": "examples/reti/validatorRegistry.algo.ts:548", "pc": [ - 1553, - 1554, - 1555 + 1554 ] }, { - "teal": 1722, + "teal": 1720, "source": "examples/reti/validatorRegistry.algo.ts:548", "pc": [ - 1556 + 1555 ] }, { - "teal": 1723, + "teal": 1727, "source": "examples/reti/validatorRegistry.algo.ts:548", "pc": [ - 1557 + 1556, + 1557, + 1558 ] }, { - "teal": 1730, - "source": "examples/reti/validatorRegistry.algo.ts:548", + "teal": 1734, + "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ - 1558, 1559, 1560 ] }, { - "teal": 1737, + "teal": 1735, "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ - 1561, - 1562 + 1561 ] }, { - "teal": 1738, + "teal": 1736, "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ + 1562, 1563 ] }, { - "teal": 1739, + "teal": 1737, "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ - 1564, - 1565 + 1564 ] }, { - "teal": 1740, + "teal": 1738, "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ + 1565, 1566 ] }, { - "teal": 1741, + "teal": 1739, "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ - 1567, - 1568 + 1567 ] }, { - "teal": 1742, + "teal": 1740, "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ - 1569 + 1568 ] }, { - "teal": 1743, + "teal": 1741, "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ + 1569, 1570 ] }, { - "teal": 1744, + "teal": 1742, "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ - 1571, - 1572 + 1571 ] }, { - "teal": 1745, + "teal": 1743, "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ - 1573 + 1572 ] }, { "teal": 1746, - "source": "examples/reti/validatorRegistry.algo.ts:557", + "source": "examples/reti/validatorRegistry.algo.ts:556", + "errorMessage": "can only be called by validator owner", "pc": [ - 1574 + 1573 ] }, { - "teal": 1749, - "source": "examples/reti/validatorRegistry.algo.ts:556", - "errorMessage": "can only be called by validator owner", + "teal": 1750, + "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ + 1574, 1575 ] }, { - "teal": 1753, + "teal": 1751, "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ 1576, @@ -8343,75 +8343,75 @@ ] }, { - "teal": 1754, + "teal": 1752, "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ - 1578, - 1579 + 1578 ] }, { - "teal": 1755, + "teal": 1753, "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ - 1580 + 1579, + 1580, + 1581 ] }, { - "teal": 1756, + "teal": 1754, "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ - 1581, - 1582, - 1583 + 1582 ] }, { - "teal": 1757, + "teal": 1755, "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ + 1583, 1584 ] }, { - "teal": 1758, + "teal": 1756, "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ - 1585, - 1586 + 1585 ] }, { - "teal": 1759, + "teal": 1757, "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ - 1587 + 1586 ] }, { - "teal": 1760, + "teal": 1758, "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ + 1587, 1588 ] }, { - "teal": 1761, + "teal": 1759, "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ - 1589, - 1590 + 1589 ] }, { - "teal": 1762, - "source": "examples/reti/validatorRegistry.algo.ts:561", + "teal": 1763, + "source": "examples/reti/validatorRegistry.algo.ts:562", "pc": [ + 1590, 1591 ] }, { - "teal": 1766, + "teal": 1764, "source": "examples/reti/validatorRegistry.algo.ts:562", "pc": [ 1592, @@ -8419,59 +8419,59 @@ ] }, { - "teal": 1767, + "teal": 1765, "source": "examples/reti/validatorRegistry.algo.ts:562", "pc": [ - 1594, - 1595 + 1594 ] }, { - "teal": 1768, + "teal": 1766, "source": "examples/reti/validatorRegistry.algo.ts:562", "pc": [ + 1595, 1596 ] }, { - "teal": 1769, + "teal": 1767, "source": "examples/reti/validatorRegistry.algo.ts:562", "pc": [ - 1597, - 1598 + 1597 ] }, { - "teal": 1770, + "teal": 1768, "source": "examples/reti/validatorRegistry.algo.ts:562", "pc": [ - 1599 + 1598 ] }, { - "teal": 1771, + "teal": 1769, "source": "examples/reti/validatorRegistry.algo.ts:562", "pc": [ + 1599, 1600 ] }, { - "teal": 1772, + "teal": 1770, "source": "examples/reti/validatorRegistry.algo.ts:562", "pc": [ - 1601, - 1602 + 1601 ] }, { - "teal": 1773, - "source": "examples/reti/validatorRegistry.algo.ts:562", + "teal": 1774, + "source": "examples/reti/validatorRegistry.algo.ts:563", "pc": [ + 1602, 1603 ] }, { - "teal": 1777, + "teal": 1775, "source": "examples/reti/validatorRegistry.algo.ts:563", "pc": [ 1604, @@ -8479,59 +8479,59 @@ ] }, { - "teal": 1778, + "teal": 1776, "source": "examples/reti/validatorRegistry.algo.ts:563", "pc": [ - 1606, - 1607 + 1606 ] }, { - "teal": 1779, + "teal": 1777, "source": "examples/reti/validatorRegistry.algo.ts:563", "pc": [ + 1607, 1608 ] }, { - "teal": 1780, + "teal": 1778, "source": "examples/reti/validatorRegistry.algo.ts:563", "pc": [ - 1609, - 1610 + 1609 ] }, { - "teal": 1781, + "teal": 1779, "source": "examples/reti/validatorRegistry.algo.ts:563", "pc": [ - 1611 + 1610 ] }, { - "teal": 1782, + "teal": 1780, "source": "examples/reti/validatorRegistry.algo.ts:563", "pc": [ + 1611, 1612 ] }, { - "teal": 1783, + "teal": 1781, "source": "examples/reti/validatorRegistry.algo.ts:563", "pc": [ - 1613, - 1614 + 1613 ] }, { - "teal": 1784, - "source": "examples/reti/validatorRegistry.algo.ts:563", + "teal": 1785, + "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ + 1614, 1615 ] }, { - "teal": 1788, + "teal": 1786, "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ 1616, @@ -8539,479 +8539,479 @@ ] }, { - "teal": 1789, + "teal": 1787, "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ - 1618, - 1619 + 1618 ] }, { - "teal": 1790, + "teal": 1788, "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ - 1620 + 1619 ] }, { - "teal": 1791, + "teal": 1789, "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ + 1620, 1621 ] }, { - "teal": 1792, + "teal": 1790, "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ - 1622, - 1623 + 1622 ] }, { - "teal": 1793, + "teal": 1791, "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ - 1624 + 1623 ] }, { - "teal": 1794, + "teal": 1792, "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ + 1624, 1625 ] }, { - "teal": 1795, + "teal": 1793, "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ - 1626, - 1627 + 1626 ] }, { - "teal": 1796, - "source": "examples/reti/validatorRegistry.algo.ts:564", + "teal": 1797, + "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ - 1628 + 1627, + 1628, + 1629 ] }, { - "teal": 1800, + "teal": 1798, "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ - 1629, 1630, 1631 ] }, { - "teal": 1801, + "teal": 1799, "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ - 1632, - 1633 + 1632 ] }, { - "teal": 1802, + "teal": 1800, "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ - 1634 + 1633 ] }, { - "teal": 1803, + "teal": 1801, "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ + 1634, 1635 ] }, { - "teal": 1804, + "teal": 1802, "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ - 1636, - 1637 + 1636 ] }, { - "teal": 1805, + "teal": 1803, "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ - 1638 + 1637 ] }, { - "teal": 1806, + "teal": 1804, "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ + 1638, 1639 ] }, { - "teal": 1807, + "teal": 1805, "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ - 1640, - 1641 + 1640 ] }, { - "teal": 1808, - "source": "examples/reti/validatorRegistry.algo.ts:565", + "teal": 1806, + "source": "examples/reti/validatorRegistry.algo.ts:548", "pc": [ - 1642 + 1641 ] }, { - "teal": 1809, - "source": "examples/reti/validatorRegistry.algo.ts:548", + "teal": 1811, + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1643 + 1642 ] }, { "teal": 1814, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1644 + 1643, + 1644, + 1645 ] }, { - "teal": 1817, + "teal": 1815, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1645, - 1646, - 1647 + 1646 ] }, { "teal": 1818, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1648 + 1647, + 1648, + 1649 ] }, { - "teal": 1821, + "teal": 1819, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1649, - 1650, - 1651 + 1650 ] }, { "teal": 1822, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ + 1651, 1652 ] }, { - "teal": 1825, + "teal": 1823, + "source": "examples/reti/validatorRegistry.algo.ts:579", + "pc": [ + 1653 + ] + }, + { + "teal": 1824, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1653, 1654 ] }, { - "teal": 1826, + "teal": 1825, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ 1655 ] }, { - "teal": 1827, + "teal": 1826, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1656 + 1656, + 1657 ] }, { - "teal": 1828, + "teal": 1827, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1657 + 1658 ] }, { - "teal": 1829, + "teal": 1828, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1658, 1659 ] }, { - "teal": 1830, + "teal": 1831, "source": "examples/reti/validatorRegistry.algo.ts:579", + "errorMessage": "argument 2 (mbrPayment) for addPool must be a pay transaction", "pc": [ 1660 ] }, { - "teal": 1831, + "teal": 1834, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1661 + 1661, + 1662, + 1663 ] }, { - "teal": 1834, + "teal": 1835, "source": "examples/reti/validatorRegistry.algo.ts:579", - "errorMessage": "argument 2 (mbrPayment) for addPool must be a pay transaction", "pc": [ - 1662 + 1664 ] }, { - "teal": 1837, + "teal": 1836, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1663, - 1664, 1665 ] }, { - "teal": 1838, + "teal": 1837, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ 1666 ] }, { - "teal": 1839, + "teal": 1838, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ 1667 ] }, { - "teal": 1840, + "teal": 1851, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1668 + 1668, + 1669, + 1670 ] }, { - "teal": 1841, + "teal": 1854, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1669 + 1671 ] }, { - "teal": 1854, + "teal": 1855, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1670, - 1671, 1672 ] }, { - "teal": 1857, - "source": "examples/reti/validatorRegistry.algo.ts:579", + "teal": 1863, + "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1673 + 1673, + 1674 ] }, { - "teal": 1858, - "source": "examples/reti/validatorRegistry.algo.ts:579", + "teal": 1864, + "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1674 + 1675 + ] + }, + { + "teal": 1865, + "source": "examples/reti/validatorRegistry.algo.ts:582", + "pc": [ + 1676, + 1677 ] }, { "teal": 1866, "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1675, - 1676 + 1678 ] }, { "teal": 1867, "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1677 + 1679, + 1680 ] }, { "teal": 1868, "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1678, - 1679 + 1681 ] }, { "teal": 1869, "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1680 + 1682 ] }, { "teal": 1870, "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1681, - 1682 + 1683, + 1684 ] }, { "teal": 1871, "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1683 + 1685 ] }, { "teal": 1872, "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1684 + 1686 ] }, { "teal": 1873, "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1685, - 1686 + 1687 ] }, { "teal": 1874, "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1687 + 1688, + 1689, + 1690 ] }, { "teal": 1875, - "source": "examples/reti/validatorRegistry.algo.ts:582", + "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1688 + 1691, + 1692 ] }, { "teal": 1876, - "source": "examples/reti/validatorRegistry.algo.ts:582", + "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1689 + 1693, + 1694 ] }, { "teal": 1877, - "source": "examples/reti/validatorRegistry.algo.ts:582", + "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1690, - 1691, - 1692 + 1695, + 1696 ] }, { "teal": 1878, "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1693, - 1694 + 1697 ] }, { "teal": 1879, "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1695, - 1696 + 1698, + 1699 ] }, { "teal": 1880, "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1697, - 1698 + 1700 ] }, { "teal": 1881, "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1699 + 1701 ] }, { "teal": 1882, "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1700, - 1701 + 1702, + 1703 ] }, { "teal": 1883, "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1702 + 1704 ] }, { "teal": 1884, "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1703 - ] - }, - { - "teal": 1885, - "source": "examples/reti/validatorRegistry.algo.ts:583", - "pc": [ - 1704, 1705 ] }, { - "teal": 1886, - "source": "examples/reti/validatorRegistry.algo.ts:583", + "teal": 1885, + "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ 1706 ] }, { - "teal": 1887, - "source": "examples/reti/validatorRegistry.algo.ts:583", + "teal": 1889, + "source": "examples/reti/validatorRegistry.algo.ts:581", + "errorMessage": "can only be called by owner or manager of validator", "pc": [ 1707 ] }, { - "teal": 1888, - "source": "examples/reti/validatorRegistry.algo.ts:582", - "pc": [ - 1708 - ] - }, - { - "teal": 1892, - "source": "examples/reti/validatorRegistry.algo.ts:581", - "errorMessage": "can only be called by owner or manager of validator", + "teal": 1894, + "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ + 1708, 1709 ] }, { - "teal": 1897, + "teal": 1895, "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ 1710, @@ -9019,55 +9019,55 @@ ] }, { - "teal": 1898, + "teal": 1896, "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ 1712, - 1713 + 1713, + 1714 ] }, { - "teal": 1899, + "teal": 1897, "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ - 1714, 1715, - 1716 + 1716, + 1717 ] }, { - "teal": 1900, + "teal": 1898, "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ - 1717, - 1718, - 1719 + 1718 ] }, { - "teal": 1901, + "teal": 1899, "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ - 1720 + 1719 ] }, { "teal": 1902, "source": "examples/reti/validatorRegistry.algo.ts:588", + "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"this.getMbrAmounts().addPoolMbr\"}", "pc": [ - 1721 + 1720 ] }, { "teal": 1905, "source": "examples/reti/validatorRegistry.algo.ts:588", - "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"this.getMbrAmounts().addPoolMbr\"}", "pc": [ + 1721, 1722 ] }, { - "teal": 1908, + "teal": 1906, "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ 1723, @@ -9075,7 +9075,7 @@ ] }, { - "teal": 1909, + "teal": 1907, "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ 1725, @@ -9083,88 +9083,88 @@ ] }, { - "teal": 1910, + "teal": 1908, "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ - 1727, - 1728 + 1727 ] }, { "teal": 1911, "source": "examples/reti/validatorRegistry.algo.ts:588", + "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", "pc": [ - 1729 + 1728 ] }, { - "teal": 1914, - "source": "examples/reti/validatorRegistry.algo.ts:588", - "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", + "teal": 1915, + "source": "examples/reti/validatorRegistry.algo.ts:590", "pc": [ - 1730 + 1729 ] }, { - "teal": 1918, + "teal": 1916, "source": "examples/reti/validatorRegistry.algo.ts:590", "pc": [ + 1730, 1731 ] }, { - "teal": 1919, + "teal": 1917, "source": "examples/reti/validatorRegistry.algo.ts:590", "pc": [ - 1732, - 1733 + 1732 ] }, { - "teal": 1920, + "teal": 1918, "source": "examples/reti/validatorRegistry.algo.ts:590", "pc": [ - 1734 + 1733 ] }, { - "teal": 1921, + "teal": 1919, "source": "examples/reti/validatorRegistry.algo.ts:590", "pc": [ - 1735 + 1734 ] }, { - "teal": 1922, + "teal": 1920, "source": "examples/reti/validatorRegistry.algo.ts:590", "pc": [ - 1736 + 1735 ] }, { - "teal": 1923, + "teal": 1921, "source": "examples/reti/validatorRegistry.algo.ts:590", "pc": [ - 1737 + 1736 ] }, { "teal": 1924, "source": "examples/reti/validatorRegistry.algo.ts:590", + "errorMessage": "specified validator id isn't valid", "pc": [ - 1738 + 1737 ] }, { - "teal": 1927, - "source": "examples/reti/validatorRegistry.algo.ts:590", - "errorMessage": "specified validator id isn't valid", + "teal": 1928, + "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ + 1738, 1739 ] }, { - "teal": 1931, + "teal": 1929, "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ 1740, @@ -9172,150 +9172,150 @@ ] }, { - "teal": 1932, + "teal": 1930, "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ - 1742, - 1743 + 1742 ] }, { - "teal": 1933, + "teal": 1931, "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ + 1743, 1744 ] }, { - "teal": 1934, + "teal": 1932, "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ - 1745, - 1746 + 1745 ] }, { - "teal": 1935, + "teal": 1933, "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ - 1747 + 1746 ] }, { - "teal": 1936, + "teal": 1934, "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ + 1747, 1748 ] }, { - "teal": 1937, + "teal": 1935, "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ - 1749, - 1750 + 1749 ] }, { - "teal": 1938, + "teal": 1936, "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ - 1751 + 1750 ] }, { - "teal": 1939, + "teal": 1937, "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ + 1751, 1752 ] }, { - "teal": 1940, - "source": "examples/reti/validatorRegistry.algo.ts:592", + "teal": 1942, + "source": "examples/reti/validatorRegistry.algo.ts:593", "pc": [ 1753, 1754 ] }, { - "teal": 1945, - "source": "examples/reti/validatorRegistry.algo.ts:593", - "pc": [ - 1755, - 1756 - ] - }, - { - "teal": 1946, + "teal": 1943, "source": "examples/reti/validatorRegistry.algo.ts:32", "pc": [ - 1757 + 1755 ] }, { - "teal": 1947, + "teal": 1944, "source": "examples/reti/validatorRegistry.algo.ts:593", "pc": [ - 1758 + 1756 ] }, { - "teal": 1948, + "teal": 1945, "source": "examples/reti/validatorRegistry.algo.ts:593", "pc": [ - 1759, - 1760, - 1761 + 1757, + 1758, + 1759 ] }, { - "teal": 1952, + "teal": 1949, "source": "examples/reti/validatorRegistry.algo.ts:594", "errorMessage": "already at max pool size", "pc": [ + 1760 + ] + }, + { + "teal": 1954, + "source": "examples/reti/validatorRegistry.algo.ts:596", + "pc": [ + 1761, 1762 ] }, { - "teal": 1957, + "teal": 1955, "source": "examples/reti/validatorRegistry.algo.ts:596", "pc": [ - 1763, - 1764 + 1763 ] }, { - "teal": 1958, + "teal": 1956, "source": "examples/reti/validatorRegistry.algo.ts:596", "pc": [ - 1765 + 1764 ] }, { - "teal": 1959, + "teal": 1957, "source": "examples/reti/validatorRegistry.algo.ts:596", "pc": [ + 1765, 1766 ] }, { - "teal": 1960, - "source": "examples/reti/validatorRegistry.algo.ts:596", + "teal": 1979, + "source": "examples/reti/validatorRegistry.algo.ts:599", "pc": [ - 1767, - 1768 + 1767 ] }, { - "teal": 1982, + "teal": 1980, "source": "examples/reti/validatorRegistry.algo.ts:599", "pc": [ + 1768, 1769 ] }, { - "teal": 1983, + "teal": 1981, "source": "examples/reti/validatorRegistry.algo.ts:599", "pc": [ 1770, @@ -9323,68 +9323,68 @@ ] }, { - "teal": 1984, - "source": "examples/reti/validatorRegistry.algo.ts:599", + "teal": 1985, + "source": "examples/reti/validatorRegistry.algo.ts:600", "pc": [ - 1772, - 1773 + 1772 ] }, { - "teal": 1988, + "teal": 1986, "source": "examples/reti/validatorRegistry.algo.ts:600", "pc": [ + 1773, 1774 ] }, { - "teal": 1989, - "source": "examples/reti/validatorRegistry.algo.ts:600", + "teal": 1993, + "source": "examples/reti/validatorRegistry.algo.ts:602", "pc": [ 1775, 1776 ] }, { - "teal": 1996, + "teal": 1994, "source": "examples/reti/validatorRegistry.algo.ts:602", "pc": [ - 1777, - 1778 + 1777 ] }, { - "teal": 1997, + "teal": 1995, "source": "examples/reti/validatorRegistry.algo.ts:602", "pc": [ + 1778, 1779 ] }, { - "teal": 1998, + "teal": 1996, "source": "examples/reti/validatorRegistry.algo.ts:602", "pc": [ - 1780, - 1781 + 1780 ] }, { - "teal": 1999, + "teal": 1997, "source": "examples/reti/validatorRegistry.algo.ts:602", "pc": [ + 1781, 1782 ] }, { - "teal": 2000, - "source": "examples/reti/validatorRegistry.algo.ts:602", + "teal": 1998, + "source": "examples/reti/validatorRegistry.algo.ts:603", "pc": [ 1783, 1784 ] }, { - "teal": 2001, + "teal": 1999, "source": "examples/reti/validatorRegistry.algo.ts:603", "pc": [ 1785, @@ -9392,7 +9392,7 @@ ] }, { - "teal": 2002, + "teal": 2000, "source": "examples/reti/validatorRegistry.algo.ts:603", "pc": [ 1787, @@ -9400,77 +9400,77 @@ ] }, { - "teal": 2003, + "teal": 2001, "source": "examples/reti/validatorRegistry.algo.ts:603", "pc": [ - 1789, - 1790 + 1789 ] }, { "teal": 2004, "source": "examples/reti/validatorRegistry.algo.ts:603", + "errorMessage": "box value does not exist: this.stakingPoolApprovalProgram.size", "pc": [ - 1791 + 1790 ] }, { - "teal": 2007, + "teal": 2005, "source": "examples/reti/validatorRegistry.algo.ts:603", - "errorMessage": "box value does not exist: this.stakingPoolApprovalProgram.size", "pc": [ + 1791, 1792 ] }, { - "teal": 2008, + "teal": 2006, "source": "examples/reti/validatorRegistry.algo.ts:603", "pc": [ - 1793, - 1794 + 1793 ] }, { - "teal": 2009, + "teal": 2007, "source": "examples/reti/validatorRegistry.algo.ts:603", "pc": [ - 1795 + 1794 ] }, { - "teal": 2010, + "teal": 2008, "source": "examples/reti/validatorRegistry.algo.ts:603", "pc": [ + 1795, 1796 ] }, { - "teal": 2011, - "source": "examples/reti/validatorRegistry.algo.ts:603", + "teal": 2012, + "source": "examples/reti/validatorRegistry.algo.ts:605", "pc": [ 1797, - 1798 + 1798, + 1799 ] }, { - "teal": 2015, + "teal": 2013, "source": "examples/reti/validatorRegistry.algo.ts:605", "pc": [ - 1799, 1800, 1801 ] }, { - "teal": 2016, - "source": "examples/reti/validatorRegistry.algo.ts:605", + "teal": 2017, + "source": "examples/reti/validatorRegistry.algo.ts:606", "pc": [ 1802, 1803 ] }, { - "teal": 2020, + "teal": 2018, "source": "examples/reti/validatorRegistry.algo.ts:606", "pc": [ 1804, @@ -9478,15 +9478,15 @@ ] }, { - "teal": 2021, - "source": "examples/reti/validatorRegistry.algo.ts:606", + "teal": 2022, + "source": "examples/reti/validatorRegistry.algo.ts:607", "pc": [ 1806, 1807 ] }, { - "teal": 2025, + "teal": 2023, "source": "examples/reti/validatorRegistry.algo.ts:607", "pc": [ 1808, @@ -9494,15 +9494,15 @@ ] }, { - "teal": 2026, - "source": "examples/reti/validatorRegistry.algo.ts:607", + "teal": 2027, + "source": "examples/reti/validatorRegistry.algo.ts:608", "pc": [ 1810, 1811 ] }, { - "teal": 2030, + "teal": 2028, "source": "examples/reti/validatorRegistry.algo.ts:608", "pc": [ 1812, @@ -9510,188 +9510,188 @@ ] }, { - "teal": 2031, - "source": "examples/reti/validatorRegistry.algo.ts:608", + "teal": 2039, + "source": "examples/reti/validatorRegistry.algo.ts:611", "pc": [ 1814, - 1815 + 1815, + 1816, + 1817, + 1818, + 1819 ] }, { - "teal": 2042, + "teal": 2040, "source": "examples/reti/validatorRegistry.algo.ts:611", "pc": [ - 1816, - 1817, - 1818, - 1819, 1820, 1821 ] }, { - "teal": 2043, - "source": "examples/reti/validatorRegistry.algo.ts:611", + "teal": 2041, + "source": "examples/reti/validatorRegistry.algo.ts:612", "pc": [ 1822, - 1823 + 1823, + 1824 ] }, { - "teal": 2044, + "teal": 2042, "source": "examples/reti/validatorRegistry.algo.ts:612", "pc": [ - 1824, - 1825, - 1826 + 1825 ] }, { - "teal": 2045, + "teal": 2043, "source": "examples/reti/validatorRegistry.algo.ts:612", "pc": [ + 1826, 1827 ] }, { - "teal": 2046, - "source": "examples/reti/validatorRegistry.algo.ts:612", + "teal": 2044, + "source": "examples/reti/validatorRegistry.algo.ts:613", "pc": [ 1828, 1829 ] }, { - "teal": 2047, + "teal": 2045, "source": "examples/reti/validatorRegistry.algo.ts:613", "pc": [ - 1830, - 1831 + 1830 ] }, { - "teal": 2048, + "teal": 2046, "source": "examples/reti/validatorRegistry.algo.ts:613", "pc": [ + 1831, 1832 ] }, { - "teal": 2049, - "source": "examples/reti/validatorRegistry.algo.ts:613", + "teal": 2047, + "source": "examples/reti/validatorRegistry.algo.ts:614", "pc": [ 1833, 1834 ] }, { - "teal": 2050, + "teal": 2048, "source": "examples/reti/validatorRegistry.algo.ts:614", "pc": [ - 1835, - 1836 + 1835 ] }, { - "teal": 2051, + "teal": 2049, "source": "examples/reti/validatorRegistry.algo.ts:614", "pc": [ + 1836, 1837 ] }, { - "teal": 2052, - "source": "examples/reti/validatorRegistry.algo.ts:614", + "teal": 2050, + "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ 1838, 1839 ] }, { - "teal": 2053, + "teal": 2051, "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ - 1840, - 1841 + 1840 ] }, { - "teal": 2054, + "teal": 2052, "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ - 1842 + 1841 ] }, { - "teal": 2055, + "teal": 2053, "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ + 1842, 1843 ] }, { - "teal": 2056, + "teal": 2054, "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ - 1844, - 1845 + 1844 ] }, { - "teal": 2057, + "teal": 2055, "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ - 1846 + 1845 ] }, { - "teal": 2058, + "teal": 2056, "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ + 1846, 1847 ] }, { - "teal": 2059, + "teal": 2057, "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ - 1848, - 1849 + 1848 ] }, { - "teal": 2060, + "teal": 2058, "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ - 1850 + 1849 ] }, { - "teal": 2061, + "teal": 2059, "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ - 1851 + 1850 ] }, { - "teal": 2062, + "teal": 2060, "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ + 1851, 1852 ] }, { "teal": 2063, - "source": "examples/reti/validatorRegistry.algo.ts:615", + "source": "examples/reti/validatorRegistry.algo.ts:599", "pc": [ - 1853, - 1854 + 1853 ] }, { - "teal": 2066, + "teal": 2064, "source": "examples/reti/validatorRegistry.algo.ts:599", "pc": [ + 1854, 1855 ] }, @@ -9699,19 +9699,19 @@ "teal": 2067, "source": "examples/reti/validatorRegistry.algo.ts:599", "pc": [ - 1856, - 1857 + 1856 ] }, { - "teal": 2070, - "source": "examples/reti/validatorRegistry.algo.ts:599", + "teal": 2071, + "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ + 1857, 1858 ] }, { - "teal": 2074, + "teal": 2072, "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ 1859, @@ -9719,75 +9719,75 @@ ] }, { - "teal": 2075, + "teal": 2073, "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ - 1861, - 1862 + 1861 ] }, { - "teal": 2076, + "teal": 2074, "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ - 1863 + 1862, + 1863, + 1864 ] }, { - "teal": 2077, + "teal": 2075, "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ - 1864, - 1865, - 1866 + 1865 ] }, { - "teal": 2078, + "teal": 2076, "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ + 1866, 1867 ] }, { - "teal": 2079, + "teal": 2077, "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ - 1868, - 1869 + 1868 ] }, { - "teal": 2080, + "teal": 2078, "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ - 1870 + 1869 ] }, { - "teal": 2081, + "teal": 2079, "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ + 1870, 1871 ] }, { - "teal": 2082, + "teal": 2080, "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ - 1872, - 1873 + 1872 ] }, { - "teal": 2083, - "source": "examples/reti/validatorRegistry.algo.ts:619", + "teal": 2084, + "source": "examples/reti/validatorRegistry.algo.ts:622", "pc": [ + 1873, 1874 ] }, { - "teal": 2087, + "teal": 2085, "source": "examples/reti/validatorRegistry.algo.ts:622", "pc": [ 1875, @@ -9795,15 +9795,15 @@ ] }, { - "teal": 2088, - "source": "examples/reti/validatorRegistry.algo.ts:622", + "teal": 2089, + "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ 1877, 1878 ] }, { - "teal": 2092, + "teal": 2090, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ 1879, @@ -9811,124 +9811,124 @@ ] }, { - "teal": 2093, + "teal": 2091, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 1881, - 1882 + 1881 ] }, { - "teal": 2094, + "teal": 2092, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 1883 + 1882 ] }, { - "teal": 2095, + "teal": 2093, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ + 1883, 1884 ] }, { - "teal": 2096, + "teal": 2094, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 1885, - 1886 + 1885 ] }, { - "teal": 2097, + "teal": 2095, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 1887 + 1886 ] }, { - "teal": 2098, + "teal": 2096, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 1888 + 1887 ] }, { - "teal": 2099, + "teal": 2097, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 1889 + 1888 ] }, { - "teal": 2100, + "teal": 2098, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ + 1889, 1890 ] }, { - "teal": 2101, + "teal": 2099, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 1891, - 1892 + 1891 ] }, { - "teal": 2102, + "teal": 2100, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 1893 + 1892 ] }, { - "teal": 2103, + "teal": 2101, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ + 1893, 1894 ] }, { - "teal": 2104, + "teal": 2102, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 1895, - 1896 + 1895 ] }, { - "teal": 2105, + "teal": 2103, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 1897 + 1896 ] }, { - "teal": 2106, + "teal": 2104, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ + 1897, 1898 ] }, { - "teal": 2107, + "teal": 2105, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 1899, - 1900 + 1899 ] }, { - "teal": 2108, - "source": "examples/reti/validatorRegistry.algo.ts:623", + "teal": 2109, + "source": "examples/reti/validatorRegistry.algo.ts:624", "pc": [ + 1900, 1901 ] }, { - "teal": 2112, + "teal": 2110, "source": "examples/reti/validatorRegistry.algo.ts:624", "pc": [ 1902, @@ -9936,7 +9936,7 @@ ] }, { - "teal": 2113, + "teal": 2111, "source": "examples/reti/validatorRegistry.algo.ts:624", "pc": [ 1904, @@ -9944,78 +9944,78 @@ ] }, { - "teal": 2114, + "teal": 2112, "source": "examples/reti/validatorRegistry.algo.ts:624", "pc": [ 1906, - 1907 + 1907, + 1908 ] }, { - "teal": 2115, - "source": "examples/reti/validatorRegistry.algo.ts:624", + "teal": 2116, + "source": "examples/reti/validatorRegistry.algo.ts:632", "pc": [ - 1908, 1909, 1910 ] }, { - "teal": 2119, + "teal": 2117, "source": "examples/reti/validatorRegistry.algo.ts:632", "pc": [ - 1911, - 1912 + 1911 ] }, { - "teal": 2120, + "teal": 2118, "source": "examples/reti/validatorRegistry.algo.ts:632", "pc": [ + 1912, 1913 ] }, { - "teal": 2121, + "teal": 2119, "source": "examples/reti/validatorRegistry.algo.ts:632", "pc": [ - 1914, - 1915 + 1914 ] }, { - "teal": 2122, + "teal": 2120, "source": "examples/reti/validatorRegistry.algo.ts:632", "pc": [ - 1916 + 1915 ] }, { - "teal": 2123, + "teal": 2121, "source": "examples/reti/validatorRegistry.algo.ts:632", "pc": [ + 1916, 1917 ] }, { - "teal": 2124, + "teal": 2122, "source": "examples/reti/validatorRegistry.algo.ts:632", "pc": [ - 1918, - 1919 + 1918 ] }, { - "teal": 2125, + "teal": 2123, "source": "examples/reti/validatorRegistry.algo.ts:632", "pc": [ - 1920 + 1919 ] }, { "teal": 2126, - "source": "examples/reti/validatorRegistry.algo.ts:632", + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ + 1920, 1921 ] }, @@ -10028,417 +10028,417 @@ ] }, { - "teal": 2132, + "teal": 2130, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1924, - 1925 + 1924 ] }, { - "teal": 2133, - "source": "examples/reti/validatorRegistry.algo.ts:579", + "teal": 2135, + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1926 + 1925 ] }, { "teal": 2138, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1927 + 1926, + 1927, + 1928 ] }, { - "teal": 2141, + "teal": 2139, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1928, - 1929, - 1930 + 1929 ] }, { "teal": 2142, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1931 + 1930, + 1931, + 1932 ] }, { - "teal": 2145, + "teal": 2143, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1932, - 1933, - 1934 + 1933 ] }, { "teal": 2146, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ + 1934, 1935 ] }, { - "teal": 2149, + "teal": 2147, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1936, - 1937 + 1936 ] }, { - "teal": 2150, + "teal": 2148, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1938 + 1937 ] }, { - "teal": 2151, + "teal": 2149, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1939 + 1938 ] }, { - "teal": 2152, + "teal": 2150, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ + 1939, 1940 ] }, { - "teal": 2153, + "teal": 2151, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1941, - 1942 + 1941 ] }, { - "teal": 2154, + "teal": 2152, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1943 + 1942 ] }, { "teal": 2155, "source": "examples/reti/validatorRegistry.algo.ts:644", + "errorMessage": "argument 2 (stakedAmountPayment) for addStake must be a pay transaction", "pc": [ - 1944 + 1943 ] }, { "teal": 2158, "source": "examples/reti/validatorRegistry.algo.ts:644", - "errorMessage": "argument 2 (stakedAmountPayment) for addStake must be a pay transaction", "pc": [ - 1945 + 1944, + 1945, + 1946 ] }, { - "teal": 2161, + "teal": 2159, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1946, - 1947, - 1948 + 1947 ] }, { - "teal": 2162, + "teal": 2160, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1949 + 1948 ] }, { - "teal": 2163, + "teal": 2161, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1950 + 1949 ] }, { - "teal": 2164, + "teal": 2162, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1951 + 1950 ] }, { - "teal": 2165, + "teal": 2174, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1952 + 1951, + 1952, + 1953 ] }, { "teal": 2177, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1953, - 1954, - 1955 + 1954 ] }, { - "teal": 2180, + "teal": 2178, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ + 1955, 1956 ] }, { - "teal": 2181, - "source": "examples/reti/validatorRegistry.algo.ts:644", + "teal": 2182, + "source": "examples/reti/validatorRegistry.algo.ts:645", "pc": [ - 1957, - 1958 + 1957 ] }, { - "teal": 2185, + "teal": 2183, "source": "examples/reti/validatorRegistry.algo.ts:645", "pc": [ + 1958, 1959 ] }, { - "teal": 2186, + "teal": 2184, + "source": "examples/reti/validatorRegistry.algo.ts:645", + "pc": [ + 1960 + ] + }, + { + "teal": 2185, "source": "examples/reti/validatorRegistry.algo.ts:645", "pc": [ - 1960, 1961 ] }, { - "teal": 2187, + "teal": 2186, "source": "examples/reti/validatorRegistry.algo.ts:645", "pc": [ 1962 ] }, { - "teal": 2188, + "teal": 2187, "source": "examples/reti/validatorRegistry.algo.ts:645", "pc": [ 1963 ] }, { - "teal": 2189, + "teal": 2188, "source": "examples/reti/validatorRegistry.algo.ts:645", "pc": [ 1964 ] }, { - "teal": 2190, + "teal": 2191, "source": "examples/reti/validatorRegistry.algo.ts:645", + "errorMessage": "specified validator id isn't valid", "pc": [ 1965 ] }, { - "teal": 2191, - "source": "examples/reti/validatorRegistry.algo.ts:645", + "teal": 2196, + "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 1966 + 1966, + 1967 ] }, { - "teal": 2194, - "source": "examples/reti/validatorRegistry.algo.ts:645", - "errorMessage": "specified validator id isn't valid", + "teal": 2197, + "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 1967 + 1968 ] }, { - "teal": 2199, + "teal": 2198, "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 1968, 1969 ] }, + { + "teal": 2199, + "source": "examples/reti/validatorRegistry.algo.ts:648", + "pc": [ + 1970, + 1971 + ] + }, { "teal": 2200, "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 1970 + 1972 ] }, { "teal": 2201, "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 1971 + 1973 ] }, { "teal": 2202, "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 1972, - 1973 + 1974, + 1975 ] }, { "teal": 2203, "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 1974 + 1976 ] }, { "teal": 2204, "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 1975 + 1977 ] }, { "teal": 2205, "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 1976, - 1977 + 1978 ] }, { "teal": 2206, "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 1978 + 1979 ] }, { "teal": 2207, "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 1979 + 1980, + 1981, + 1982 ] }, { - "teal": 2208, - "source": "examples/reti/validatorRegistry.algo.ts:648", + "teal": 2215, + "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 1980 + 1983, + 1984 ] }, { - "teal": 2209, - "source": "examples/reti/validatorRegistry.algo.ts:648", + "teal": 2216, + "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 1981 + 1985 ] }, { - "teal": 2210, - "source": "examples/reti/validatorRegistry.algo.ts:648", + "teal": 2217, + "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 1982, - 1983, - 1984 + 1986 ] }, { "teal": 2218, "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 1985, - 1986 + 1987, + 1988 ] }, { "teal": 2219, "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 1987 + 1989 ] }, { "teal": 2220, "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 1988 + 1990 ] }, { "teal": 2221, "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 1989, - 1990 + 1991, + 1992 ] }, { "teal": 2222, "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 1991 + 1993 ] }, { "teal": 2223, "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 1992 + 1994 ] }, { "teal": 2224, "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 1993, - 1994 + 1995, + 1996 ] }, { "teal": 2225, "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 1995 + 1997 ] }, { - "teal": 2226, - "source": "examples/reti/validatorRegistry.algo.ts:650", + "teal": 2228, + "source": "examples/reti/validatorRegistry.algo.ts:649", + "errorMessage": "can't stake with a validator that is past its sunsetting time", "pc": [ - 1996 + 1998 ] }, { - "teal": 2227, - "source": "examples/reti/validatorRegistry.algo.ts:650", - "pc": [ - 1997, - 1998 - ] - }, - { - "teal": 2228, - "source": "examples/reti/validatorRegistry.algo.ts:650", - "pc": [ - 1999 - ] - }, - { - "teal": 2231, - "source": "examples/reti/validatorRegistry.algo.ts:649", - "errorMessage": "can't stake with a validator that is past its sunsetting time", + "teal": 2233, + "source": "examples/reti/validatorRegistry.algo.ts:655", "pc": [ + 1999, 2000 ] }, { - "teal": 2236, + "teal": 2234, "source": "examples/reti/validatorRegistry.algo.ts:655", "pc": [ 2001, @@ -10446,23 +10446,23 @@ ] }, { - "teal": 2237, - "source": "examples/reti/validatorRegistry.algo.ts:655", + "teal": 2242, + "source": "examples/reti/validatorRegistry.algo.ts:659", "pc": [ 2003, 2004 ] }, { - "teal": 2245, - "source": "examples/reti/validatorRegistry.algo.ts:659", + "teal": 2243, + "source": "examples/reti/validatorRegistry.algo.ts:660", "pc": [ 2005, 2006 ] }, { - "teal": 2246, + "teal": 2244, "source": "examples/reti/validatorRegistry.algo.ts:660", "pc": [ 2007, @@ -10470,38 +10470,38 @@ ] }, { - "teal": 2247, + "teal": 2245, "source": "examples/reti/validatorRegistry.algo.ts:660", "pc": [ - 2009, - 2010 + 2009 ] }, { "teal": 2248, "source": "examples/reti/validatorRegistry.algo.ts:660", + "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"sender\",\"expected\":\"staker\"}", "pc": [ - 2011 + 2010 ] }, { "teal": 2251, - "source": "examples/reti/validatorRegistry.algo.ts:660", - "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"sender\",\"expected\":\"staker\"}", + "source": "examples/reti/validatorRegistry.algo.ts:659", "pc": [ + 2011, 2012 ] }, { - "teal": 2254, - "source": "examples/reti/validatorRegistry.algo.ts:659", + "teal": 2252, + "source": "examples/reti/validatorRegistry.algo.ts:661", "pc": [ 2013, 2014 ] }, { - "teal": 2255, + "teal": 2253, "source": "examples/reti/validatorRegistry.algo.ts:661", "pc": [ 2015, @@ -10509,120 +10509,120 @@ ] }, { - "teal": 2256, + "teal": 2254, "source": "examples/reti/validatorRegistry.algo.ts:661", "pc": [ - 2017, - 2018 + 2017 ] }, { "teal": 2257, "source": "examples/reti/validatorRegistry.algo.ts:661", + "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", "pc": [ - 2019 + 2018 ] }, { - "teal": 2260, - "source": "examples/reti/validatorRegistry.algo.ts:661", - "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", + "teal": 2264, + "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ + 2019, 2020 ] }, { - "teal": 2267, + "teal": 2265, "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2021, - 2022 + 2021 ] }, { - "teal": 2268, + "teal": 2266, "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2023 + 2022 ] }, { - "teal": 2269, + "teal": 2267, "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ + 2023, 2024 ] }, { - "teal": 2270, + "teal": 2268, "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2025, - 2026 + 2025 ] }, { - "teal": 2271, + "teal": 2269, "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2027 + 2026 ] }, { - "teal": 2272, + "teal": 2270, "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ + 2027, 2028 ] }, { - "teal": 2273, + "teal": 2271, "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2029, - 2030 + 2029 ] }, { - "teal": 2274, + "teal": 2272, "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2031 + 2030 ] }, { - "teal": 2275, + "teal": 2273, "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2032 + 2031, + 2032, + 2033 ] }, { - "teal": 2276, + "teal": 2274, "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2033, - 2034, - 2035 + 2034 ] }, { "teal": 2277, - "source": "examples/reti/validatorRegistry.algo.ts:667", + "source": "examples/reti/validatorRegistry.algo.ts:666", + "errorMessage": "total staked for all of a validators pools may not exceed hard cap", "pc": [ - 2036 + 2035 ] }, { - "teal": 2280, - "source": "examples/reti/validatorRegistry.algo.ts:666", - "errorMessage": "total staked for all of a validators pools may not exceed hard cap", + "teal": 2281, + "source": "examples/reti/validatorRegistry.algo.ts:673", "pc": [ + 2036, 2037 ] }, { - "teal": 2284, + "teal": 2282, "source": "examples/reti/validatorRegistry.algo.ts:673", "pc": [ 2038, @@ -10630,24 +10630,24 @@ ] }, { - "teal": 2285, + "teal": 2283, "source": "examples/reti/validatorRegistry.algo.ts:673", "pc": [ 2040, - 2041 + 2041, + 2042 ] }, { - "teal": 2286, - "source": "examples/reti/validatorRegistry.algo.ts:673", + "teal": 2287, + "source": "examples/reti/validatorRegistry.algo.ts:675", "pc": [ - 2042, 2043, 2044 ] }, { - "teal": 2290, + "teal": 2288, "source": "examples/reti/validatorRegistry.algo.ts:675", "pc": [ 2045, @@ -10655,7 +10655,7 @@ ] }, { - "teal": 2291, + "teal": 2289, "source": "examples/reti/validatorRegistry.algo.ts:675", "pc": [ 2047, @@ -10663,122 +10663,122 @@ ] }, { - "teal": 2292, - "source": "examples/reti/validatorRegistry.algo.ts:675", + "teal": 2293, + "source": "examples/reti/validatorRegistry.algo.ts:676", "pc": [ - 2049, - 2050 + 2049 ] }, { - "teal": 2296, + "teal": 2294, "source": "examples/reti/validatorRegistry.algo.ts:676", "pc": [ + 2050, 2051 ] }, { - "teal": 2297, - "source": "examples/reti/validatorRegistry.algo.ts:676", + "teal": 2299, + "source": "examples/reti/validatorRegistry.algo.ts:678", "pc": [ - 2052, - 2053 + 2052 ] }, { - "teal": 2302, + "teal": 2300, "source": "examples/reti/validatorRegistry.algo.ts:678", "pc": [ + 2053, 2054 ] }, { - "teal": 2303, + "teal": 2301, "source": "examples/reti/validatorRegistry.algo.ts:678", "pc": [ - 2055, - 2056 + 2055 ] }, { - "teal": 2304, + "teal": 2302, "source": "examples/reti/validatorRegistry.algo.ts:678", "pc": [ - 2057 + 2056 ] }, { - "teal": 2305, + "teal": 2303, "source": "examples/reti/validatorRegistry.algo.ts:678", "pc": [ - 2058 + 2057 ] }, { - "teal": 2306, + "teal": 2304, "source": "examples/reti/validatorRegistry.algo.ts:678", "pc": [ - 2059 + 2058 ] }, { - "teal": 2307, + "teal": 2305, "source": "examples/reti/validatorRegistry.algo.ts:678", "pc": [ - 2060 + 2059 ] }, { - "teal": 2308, + "teal": 2306, "source": "examples/reti/validatorRegistry.algo.ts:678", "pc": [ - 2061 + 2060, + 2061, + 2062 ] }, { - "teal": 2309, - "source": "examples/reti/validatorRegistry.algo.ts:678", + "teal": 2311, + "source": "examples/reti/validatorRegistry.algo.ts:681", "pc": [ - 2062, 2063, - 2064 + 2064, + 2065 ] }, { - "teal": 2314, + "teal": 2312, "source": "examples/reti/validatorRegistry.algo.ts:681", "pc": [ - 2065, 2066, - 2067 + 2067, + 2068 ] }, { - "teal": 2315, + "teal": 2313, "source": "examples/reti/validatorRegistry.algo.ts:681", "pc": [ - 2068, - 2069, - 2070 + 2069 ] }, { - "teal": 2316, + "teal": 2314, "source": "examples/reti/validatorRegistry.algo.ts:681", "pc": [ + 2070, 2071 ] }, { - "teal": 2317, - "source": "examples/reti/validatorRegistry.algo.ts:681", + "teal": 2318, + "source": "examples/reti/validatorRegistry.algo.ts:682", "pc": [ 2072, 2073 ] }, { - "teal": 2321, + "teal": 2319, "source": "examples/reti/validatorRegistry.algo.ts:682", "pc": [ 2074, @@ -10786,75 +10786,75 @@ ] }, { - "teal": 2322, + "teal": 2320, "source": "examples/reti/validatorRegistry.algo.ts:682", "pc": [ - 2076, - 2077 + 2076 ] }, { - "teal": 2323, + "teal": 2321, "source": "examples/reti/validatorRegistry.algo.ts:682", "pc": [ + 2077, 2078 ] }, { - "teal": 2324, - "source": "examples/reti/validatorRegistry.algo.ts:682", + "teal": 2325, + "source": "examples/reti/validatorRegistry.algo.ts:683", "pc": [ - 2079, - 2080 + 2079 ] }, { - "teal": 2328, + "teal": 2326, "source": "examples/reti/validatorRegistry.algo.ts:683", "pc": [ + 2080, 2081 ] }, { - "teal": 2329, + "teal": 2327, "source": "examples/reti/validatorRegistry.algo.ts:683", "pc": [ - 2082, - 2083 + 2082 ] }, { - "teal": 2330, + "teal": 2328, "source": "examples/reti/validatorRegistry.algo.ts:683", "pc": [ - 2084 + 2083, + 2084, + 2085 ] }, { - "teal": 2331, + "teal": 2329, "source": "examples/reti/validatorRegistry.algo.ts:683", "pc": [ - 2085, - 2086, - 2087 + 2086 ] }, { - "teal": 2332, + "teal": 2330, "source": "examples/reti/validatorRegistry.algo.ts:683", "pc": [ - 2088 + 2087 ] }, { - "teal": 2333, - "source": "examples/reti/validatorRegistry.algo.ts:683", + "teal": 2335, + "source": "examples/reti/validatorRegistry.algo.ts:687", "pc": [ + 2088, 2089 ] }, { - "teal": 2338, + "teal": 2336, "source": "examples/reti/validatorRegistry.algo.ts:687", "pc": [ 2090, @@ -10862,7 +10862,7 @@ ] }, { - "teal": 2339, + "teal": 2337, "source": "examples/reti/validatorRegistry.algo.ts:687", "pc": [ 2092, @@ -10870,32 +10870,32 @@ ] }, { - "teal": 2340, + "teal": 2338, "source": "examples/reti/validatorRegistry.algo.ts:687", "pc": [ 2094, - 2095 + 2095, + 2096 ] }, { - "teal": 2341, + "teal": 2339, "source": "examples/reti/validatorRegistry.algo.ts:687", "pc": [ - 2096, 2097, 2098 ] }, { - "teal": 2342, - "source": "examples/reti/validatorRegistry.algo.ts:687", + "teal": 2345, + "source": "examples/reti/validatorRegistry.algo.ts:689", "pc": [ 2099, 2100 ] }, { - "teal": 2348, + "teal": 2346, "source": "examples/reti/validatorRegistry.algo.ts:689", "pc": [ 2101, @@ -10903,7 +10903,7 @@ ] }, { - "teal": 2349, + "teal": 2347, "source": "examples/reti/validatorRegistry.algo.ts:689", "pc": [ 2103, @@ -10911,7 +10911,7 @@ ] }, { - "teal": 2350, + "teal": 2348, "source": "examples/reti/validatorRegistry.algo.ts:689", "pc": [ 2105, @@ -10919,30 +10919,30 @@ ] }, { - "teal": 2351, + "teal": 2349, "source": "examples/reti/validatorRegistry.algo.ts:689", "pc": [ - 2107, - 2108 + 2107 ] }, { - "teal": 2352, + "teal": 2350, "source": "examples/reti/validatorRegistry.algo.ts:689", "pc": [ + 2108, 2109 ] }, { - "teal": 2353, - "source": "examples/reti/validatorRegistry.algo.ts:689", + "teal": 2354, + "source": "examples/reti/validatorRegistry.algo.ts:690", "pc": [ 2110, 2111 ] }, { - "teal": 2357, + "teal": 2355, "source": "examples/reti/validatorRegistry.algo.ts:690", "pc": [ 2112, @@ -10950,7 +10950,7 @@ ] }, { - "teal": 2358, + "teal": 2356, "source": "examples/reti/validatorRegistry.algo.ts:690", "pc": [ 2114, @@ -10958,39 +10958,39 @@ ] }, { - "teal": 2359, + "teal": 2357, "source": "examples/reti/validatorRegistry.algo.ts:690", "pc": [ 2116, - 2117 + 2117, + 2118 ] }, { - "teal": 2360, + "teal": 2358, "source": "examples/reti/validatorRegistry.algo.ts:690", "pc": [ - 2118, - 2119, - 2120 + 2119 ] }, { - "teal": 2361, + "teal": 2359, "source": "examples/reti/validatorRegistry.algo.ts:690", "pc": [ + 2120, 2121 ] }, { - "teal": 2362, - "source": "examples/reti/validatorRegistry.algo.ts:690", + "teal": 2364, + "source": "examples/reti/validatorRegistry.algo.ts:691", "pc": [ 2122, 2123 ] }, { - "teal": 2367, + "teal": 2365, "source": "examples/reti/validatorRegistry.algo.ts:691", "pc": [ 2124, @@ -10998,7 +10998,7 @@ ] }, { - "teal": 2368, + "teal": 2366, "source": "examples/reti/validatorRegistry.algo.ts:691", "pc": [ 2126, @@ -11006,62 +11006,62 @@ ] }, { - "teal": 2369, + "teal": 2367, "source": "examples/reti/validatorRegistry.algo.ts:691", "pc": [ 2128, - 2129 + 2129, + 2130 ] }, { - "teal": 2370, + "teal": 2368, "source": "examples/reti/validatorRegistry.algo.ts:691", "pc": [ - 2130, - 2131, - 2132 + 2131 ] }, { - "teal": 2371, + "teal": 2369, "source": "examples/reti/validatorRegistry.algo.ts:691", "pc": [ - 2133 + 2132 ] }, { - "teal": 2372, + "teal": 2370, "source": "examples/reti/validatorRegistry.algo.ts:691", "pc": [ - 2134 + 2133 ] }, { - "teal": 2373, + "teal": 2371, "source": "examples/reti/validatorRegistry.algo.ts:691", "pc": [ - 2135 + 2134, + 2135, + 2136 ] }, { - "teal": 2374, - "source": "examples/reti/validatorRegistry.algo.ts:691", + "teal": 2375, + "source": "examples/reti/validatorRegistry.algo.ts:692", + "errorMessage": "No pool available with free stake. Validator needs to add another pool", "pc": [ - 2136, - 2137, - 2138 + 2137 ] }, { - "teal": 2378, - "source": "examples/reti/validatorRegistry.algo.ts:692", - "errorMessage": "No pool available with free stake. Validator needs to add another pool", + "teal": 2380, + "source": "examples/reti/validatorRegistry.algo.ts:696", "pc": [ + 2138, 2139 ] }, { - "teal": 2383, + "teal": 2381, "source": "examples/reti/validatorRegistry.algo.ts:696", "pc": [ 2140, @@ -11069,7 +11069,7 @@ ] }, { - "teal": 2384, + "teal": 2382, "source": "examples/reti/validatorRegistry.algo.ts:696", "pc": [ 2142, @@ -11077,65 +11077,65 @@ ] }, { - "teal": 2385, + "teal": 2383, "source": "examples/reti/validatorRegistry.algo.ts:696", "pc": [ 2144, - 2145 + 2145, + 2146 ] }, { - "teal": 2386, + "teal": 2384, "source": "examples/reti/validatorRegistry.algo.ts:696", "pc": [ - 2146, 2147, 2148 ] }, { - "teal": 2387, + "teal": 2385, "source": "examples/reti/validatorRegistry.algo.ts:696", "pc": [ 2149, - 2150 + 2150, + 2151 ] }, { - "teal": 2388, - "source": "examples/reti/validatorRegistry.algo.ts:696", + "teal": 2395, + "source": "examples/reti/validatorRegistry.algo.ts:704", "pc": [ - 2151, 2152, 2153 ] }, { - "teal": 2398, - "source": "examples/reti/validatorRegistry.algo.ts:704", + "teal": 2396, + "source": "examples/reti/validatorRegistry.algo.ts:703", "pc": [ 2154, 2155 ] }, { - "teal": 2399, - "source": "examples/reti/validatorRegistry.algo.ts:703", + "teal": 2397, + "source": "examples/reti/validatorRegistry.algo.ts:702", "pc": [ 2156, 2157 ] }, { - "teal": 2400, - "source": "examples/reti/validatorRegistry.algo.ts:702", + "teal": 2398, + "source": "examples/reti/validatorRegistry.algo.ts:701", "pc": [ 2158, 2159 ] }, { - "teal": 2401, + "teal": 2399, "source": "examples/reti/validatorRegistry.algo.ts:701", "pc": [ 2160, @@ -11143,7 +11143,7 @@ ] }, { - "teal": 2402, + "teal": 2400, "source": "examples/reti/validatorRegistry.algo.ts:701", "pc": [ 2162, @@ -11151,41 +11151,41 @@ ] }, { - "teal": 2403, + "teal": 2401, "source": "examples/reti/validatorRegistry.algo.ts:701", "pc": [ 2164, - 2165 + 2165, + 2166 ] }, { - "teal": 2404, - "source": "examples/reti/validatorRegistry.algo.ts:701", + "teal": 2402, + "source": "examples/reti/validatorRegistry.algo.ts:700", "pc": [ - 2166, 2167, 2168 ] }, { - "teal": 2405, - "source": "examples/reti/validatorRegistry.algo.ts:700", + "teal": 2403, + "source": "examples/reti/validatorRegistry.algo.ts:699", "pc": [ 2169, - 2170 + 2170, + 2171 ] }, { - "teal": 2406, - "source": "examples/reti/validatorRegistry.algo.ts:699", + "teal": 2407, + "source": "examples/reti/validatorRegistry.algo.ts:714", "pc": [ - 2171, 2172, 2173 ] }, { - "teal": 2410, + "teal": 2408, "source": "examples/reti/validatorRegistry.algo.ts:714", "pc": [ 2174, @@ -11193,7 +11193,7 @@ ] }, { - "teal": 2411, + "teal": 2409, "source": "examples/reti/validatorRegistry.algo.ts:714", "pc": [ 2176, @@ -11201,18 +11201,18 @@ ] }, { - "teal": 2412, + "teal": 2410, "source": "examples/reti/validatorRegistry.algo.ts:714", "pc": [ 2178, - 2179 + 2179, + 2180 ] }, { "teal": 2413, - "source": "examples/reti/validatorRegistry.algo.ts:714", + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2180, 2181, 2182 ] @@ -11226,209 +11226,209 @@ ] }, { - "teal": 2419, + "teal": 2417, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2185, - 2186 + 2185 ] }, { - "teal": 2420, - "source": "examples/reti/validatorRegistry.algo.ts:644", + "teal": 2422, + "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2187 + 2186 ] }, { "teal": 2425, "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2188 + 2187, + 2188, + 2189 ] }, { - "teal": 2428, + "teal": 2426, "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2189, - 2190, - 2191 + 2190 ] }, { "teal": 2429, "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2192 + 2191, + 2192, + 2193 ] }, { - "teal": 2432, + "teal": 2430, "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2193, - 2194, - 2195 + 2194 ] }, { - "teal": 2433, + "teal": 2431, "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2196 + 2195 ] }, { - "teal": 2434, + "teal": 2432, "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2197 + 2196 ] }, { - "teal": 2435, + "teal": 2433, "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2198 + 2197 ] }, { - "teal": 2436, + "teal": 2451, "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2199 + 2198, + 2199, + 2200 ] }, { "teal": 2454, "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2200, - 2201, - 2202 + 2201 ] }, { - "teal": 2457, + "teal": 2455, "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ + 2202, 2203 ] }, { - "teal": 2458, - "source": "examples/reti/validatorRegistry.algo.ts:732", + "teal": 2459, + "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ 2204, 2205 ] }, { - "teal": 2462, + "teal": 2460, "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ - 2206, - 2207 + 2206 ] }, { - "teal": 2463, + "teal": 2461, "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ - 2208 + 2207 ] }, { - "teal": 2464, + "teal": 2462, "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ + 2208, 2209 ] }, { - "teal": 2465, + "teal": 2463, "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ - 2210, - 2211 + 2210 ] }, { - "teal": 2466, + "teal": 2464, "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ - 2212 + 2211 ] }, { - "teal": 2467, + "teal": 2465, "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ + 2212, 2213 ] }, { - "teal": 2468, + "teal": 2466, "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ - 2214, - 2215 + 2214 ] }, { - "teal": 2469, + "teal": 2467, "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ - 2216 + 2215 ] }, { - "teal": 2470, + "teal": 2468, "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ + 2216, 2217 ] }, { - "teal": 2471, - "source": "examples/reti/validatorRegistry.algo.ts:734", + "teal": 2472, + "source": "examples/reti/validatorRegistry.algo.ts:735", "pc": [ 2218, 2219 ] }, { - "teal": 2475, + "teal": 2473, "source": "examples/reti/validatorRegistry.algo.ts:735", "pc": [ - 2220, - 2221 + 2220 ] }, { - "teal": 2476, + "teal": 2474, "source": "examples/reti/validatorRegistry.algo.ts:735", "pc": [ - 2222 + 2221 ] }, { - "teal": 2477, + "teal": 2475, "source": "examples/reti/validatorRegistry.algo.ts:735", "pc": [ - 2223 + 2222 ] }, { - "teal": 2478, - "source": "examples/reti/validatorRegistry.algo.ts:735", + "teal": 2480, + "source": "examples/reti/validatorRegistry.algo.ts:737", "pc": [ + 2223, 2224 ] }, { - "teal": 2483, + "teal": 2481, "source": "examples/reti/validatorRegistry.algo.ts:737", "pc": [ 2225, @@ -11436,7 +11436,7 @@ ] }, { - "teal": 2484, + "teal": 2482, "source": "examples/reti/validatorRegistry.algo.ts:737", "pc": [ 2227, @@ -11444,38 +11444,38 @@ ] }, { - "teal": 2485, + "teal": 2483, "source": "examples/reti/validatorRegistry.algo.ts:737", "pc": [ - 2229, - 2230 + 2229 ] }, { - "teal": 2486, + "teal": 2484, "source": "examples/reti/validatorRegistry.algo.ts:737", "pc": [ - 2231 + 2230 ] }, { - "teal": 2487, + "teal": 2485, "source": "examples/reti/validatorRegistry.algo.ts:737", "pc": [ - 2232 + 2231, + 2232, + 2233 ] }, { - "teal": 2488, - "source": "examples/reti/validatorRegistry.algo.ts:737", + "teal": 2490, + "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ - 2233, 2234, 2235 ] }, { - "teal": 2493, + "teal": 2491, "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ 2236, @@ -11483,68 +11483,68 @@ ] }, { - "teal": 2494, + "teal": 2492, "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ - 2238, - 2239 + 2238 ] }, { - "teal": 2495, + "teal": 2493, "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ + 2239, 2240 ] }, { - "teal": 2496, + "teal": 2494, "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ - 2241, - 2242 + 2241 ] }, { - "teal": 2497, + "teal": 2495, "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ - 2243 + 2242 ] }, { - "teal": 2498, + "teal": 2496, "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ + 2243, 2244 ] }, { - "teal": 2499, + "teal": 2497, "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ - 2245, - 2246 + 2245 ] }, { - "teal": 2500, + "teal": 2498, "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ - 2247 + 2246, + 2247, + 2248 ] }, { - "teal": 2501, - "source": "examples/reti/validatorRegistry.algo.ts:738", + "teal": 2503, + "source": "examples/reti/validatorRegistry.algo.ts:744", "pc": [ - 2248, 2249, 2250 ] }, { - "teal": 2506, + "teal": 2504, "source": "examples/reti/validatorRegistry.algo.ts:744", "pc": [ 2251, @@ -11552,130 +11552,124 @@ ] }, { - "teal": 2507, - "source": "examples/reti/validatorRegistry.algo.ts:744", + "teal": 2508, + "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ 2253, 2254 ] }, { - "teal": 2511, + "teal": 2509, "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ - 2255, - 2256 + 2255 ] }, { - "teal": 2512, + "teal": 2510, "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ - 2257 + 2256 ] }, { - "teal": 2513, + "teal": 2511, "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ + 2257, 2258 ] }, { - "teal": 2514, + "teal": 2512, "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ - 2259, - 2260 + 2259 ] }, { - "teal": 2515, + "teal": 2513, "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ - 2261 + 2260 ] }, { - "teal": 2516, + "teal": 2514, "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ + 2261, 2262 ] }, { - "teal": 2517, + "teal": 2515, "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ - 2263, - 2264 + 2263 ] }, { - "teal": 2518, + "teal": 2516, "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ - 2265 + 2264 ] }, { - "teal": 2519, + "teal": 2517, "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ + 2265, 2266 ] }, { - "teal": 2520, - "source": "examples/reti/validatorRegistry.algo.ts:745", + "teal": 2522, + "source": "examples/reti/validatorRegistry.algo.ts:746", "pc": [ 2267, 2268 ] }, { - "teal": 2525, + "teal": 2523, "source": "examples/reti/validatorRegistry.algo.ts:746", "pc": [ - 2269, - 2270 + 2269 ] }, { - "teal": 2526, + "teal": 2524, "source": "examples/reti/validatorRegistry.algo.ts:746", "pc": [ - 2271 + 2270 ] }, { - "teal": 2527, + "teal": 2525, "source": "examples/reti/validatorRegistry.algo.ts:746", "pc": [ - 2272 + 2271, + 2272, + 2273 ] }, { - "teal": 2528, - "source": "examples/reti/validatorRegistry.algo.ts:746", + "teal": 2531, + "source": "examples/reti/validatorRegistry.algo.ts:748", "pc": [ - 2273, 2274, 2275 ] }, { - "teal": 2534, + "teal": 2532, "source": "examples/reti/validatorRegistry.algo.ts:748", "pc": [ 2276, - 2277 - ] - }, - { - "teal": 2535, - "source": "examples/reti/validatorRegistry.algo.ts:748", - "pc": [ + 2277, 2278, 2279, 2280, @@ -11685,52 +11679,58 @@ 2284, 2285, 2286, - 2287, - 2288, - 2289 + 2287 ] }, { - "teal": 2536, + "teal": 2533, "source": "examples/reti/validatorRegistry.algo.ts:748", "pc": [ - 2290 + 2288 ] }, { - "teal": 2539, + "teal": 2536, "source": "examples/reti/validatorRegistry.algo.ts:748", "errorMessage": "global state value does not exist: AppID.fromUint64(pool1AppID).globalState('lastPayout')", "pc": [ - 2291 + 2289 ] }, { - "teal": 2540, + "teal": 2537, "source": "examples/reti/validatorRegistry.algo.ts:748", "pc": [ - 2292, - 2293 + 2290, + 2291 ] }, { - "teal": 2541, + "teal": 2538, "source": "examples/reti/validatorRegistry.algo.ts:748", "pc": [ - 2294 + 2292 ] }, { - "teal": 2542, + "teal": 2539, "source": "examples/reti/validatorRegistry.algo.ts:748", "pc": [ - 2295, + 2293, + 2294, + 2295 + ] + }, + { + "teal": 2544, + "source": "examples/reti/validatorRegistry.algo.ts:749", + "pc": [ 2296, 2297 ] }, { - "teal": 2547, + "teal": 2545, "source": "examples/reti/validatorRegistry.algo.ts:749", "pc": [ 2298, @@ -11738,144 +11738,144 @@ ] }, { - "teal": 2548, + "teal": 2546, "source": "examples/reti/validatorRegistry.algo.ts:749", "pc": [ - 2300, - 2301 + 2300 ] }, { - "teal": 2549, + "teal": 2547, "source": "examples/reti/validatorRegistry.algo.ts:749", "pc": [ + 2301, 2302 ] }, { - "teal": 2550, + "teal": 2548, "source": "examples/reti/validatorRegistry.algo.ts:749", "pc": [ - 2303, - 2304 + 2303 ] }, { - "teal": 2551, + "teal": 2549, "source": "examples/reti/validatorRegistry.algo.ts:749", "pc": [ - 2305 + 2304 ] }, { - "teal": 2552, + "teal": 2550, "source": "examples/reti/validatorRegistry.algo.ts:749", "pc": [ + 2305, 2306 ] }, { - "teal": 2553, + "teal": 2551, "source": "examples/reti/validatorRegistry.algo.ts:749", "pc": [ - 2307, - 2308 + 2307 ] }, { - "teal": 2554, + "teal": 2552, "source": "examples/reti/validatorRegistry.algo.ts:749", "pc": [ - 2309 + 2308, + 2309, + 2310 ] }, { - "teal": 2555, - "source": "examples/reti/validatorRegistry.algo.ts:749", + "teal": 2557, + "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ - 2310, 2311, - 2312 + 2312, + 2313 ] }, { - "teal": 2560, + "teal": 2558, "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ - 2313, 2314, 2315 ] }, { - "teal": 2561, + "teal": 2559, "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ - 2316, - 2317 + 2316 ] }, { - "teal": 2562, + "teal": 2560, "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ + 2317, 2318 ] }, { - "teal": 2563, + "teal": 2561, "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ - 2319, - 2320 + 2319 ] }, { - "teal": 2564, + "teal": 2562, "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ - 2321 + 2320 ] }, { - "teal": 2565, + "teal": 2563, "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ + 2321, 2322 ] }, { - "teal": 2566, + "teal": 2564, "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ - 2323, - 2324 + 2323 ] }, { - "teal": 2567, + "teal": 2565, "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ - 2325 + 2324 ] }, { - "teal": 2568, + "teal": 2566, "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ + 2325, 2326 ] }, { - "teal": 2569, - "source": "examples/reti/validatorRegistry.algo.ts:751", + "teal": 2570, + "source": "examples/reti/validatorRegistry.algo.ts:752", "pc": [ 2327, 2328 ] }, { - "teal": 2573, + "teal": 2571, "source": "examples/reti/validatorRegistry.algo.ts:752", "pc": [ 2329, @@ -11883,7 +11883,7 @@ ] }, { - "teal": 2574, + "teal": 2572, "source": "examples/reti/validatorRegistry.algo.ts:752", "pc": [ 2331, @@ -11891,37 +11891,37 @@ ] }, { - "teal": 2575, + "teal": 2573, "source": "examples/reti/validatorRegistry.algo.ts:752", "pc": [ - 2333, - 2334 + 2333 ] }, { - "teal": 2576, + "teal": 2574, "source": "examples/reti/validatorRegistry.algo.ts:752", "pc": [ - 2335 + 2334 ] }, { - "teal": 2577, + "teal": 2575, "source": "examples/reti/validatorRegistry.algo.ts:752", "pc": [ + 2335, 2336 ] }, { - "teal": 2578, - "source": "examples/reti/validatorRegistry.algo.ts:752", + "teal": 2580, + "source": "examples/reti/validatorRegistry.algo.ts:754", "pc": [ 2337, 2338 ] }, { - "teal": 2583, + "teal": 2581, "source": "examples/reti/validatorRegistry.algo.ts:754", "pc": [ 2339, @@ -11929,7 +11929,7 @@ ] }, { - "teal": 2584, + "teal": 2582, "source": "examples/reti/validatorRegistry.algo.ts:754", "pc": [ 2341, @@ -11937,53 +11937,53 @@ ] }, { - "teal": 2585, + "teal": 2583, "source": "examples/reti/validatorRegistry.algo.ts:754", "pc": [ - 2343, - 2344 + 2343 ] }, { - "teal": 2586, + "teal": 2584, "source": "examples/reti/validatorRegistry.algo.ts:754", "pc": [ - 2345 + 2344 ] }, { - "teal": 2587, + "teal": 2585, "source": "examples/reti/validatorRegistry.algo.ts:754", "pc": [ + 2345, 2346 ] }, { - "teal": 2588, + "teal": 2586, "source": "examples/reti/validatorRegistry.algo.ts:754", "pc": [ - 2347, - 2348 + 2347 ] }, { - "teal": 2589, + "teal": 2587, "source": "examples/reti/validatorRegistry.algo.ts:754", "pc": [ - 2349 + 2348, + 2349, + 2350 ] }, { - "teal": 2590, - "source": "examples/reti/validatorRegistry.algo.ts:754", + "teal": 2592, + "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ - 2350, 2351, 2352 ] }, { - "teal": 2595, + "teal": 2593, "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ 2353, @@ -11991,68 +11991,68 @@ ] }, { - "teal": 2596, + "teal": 2594, "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ - 2355, - 2356 + 2355 ] }, { - "teal": 2597, + "teal": 2595, "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ + 2356, 2357 ] }, { - "teal": 2598, + "teal": 2596, "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ - 2358, - 2359 + 2358 ] }, { - "teal": 2599, + "teal": 2597, "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ - 2360 + 2359 ] }, { - "teal": 2600, + "teal": 2598, "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ + 2360, 2361 ] }, { - "teal": 2601, + "teal": 2599, "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ - 2362, - 2363 + 2362 ] }, { - "teal": 2602, + "teal": 2600, "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ - 2364 + 2363, + 2364, + 2365 ] }, { - "teal": 2603, - "source": "examples/reti/validatorRegistry.algo.ts:755", + "teal": 2607, + "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ - 2365, 2366, 2367 ] }, { - "teal": 2610, + "teal": 2608, "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ 2368, @@ -12060,66 +12060,66 @@ ] }, { - "teal": 2611, + "teal": 2609, "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ - 2370, - 2371 + 2370 ] }, { - "teal": 2612, + "teal": 2610, "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ - 2372 + 2371 ] }, { - "teal": 2613, + "teal": 2611, "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ + 2372, 2373 ] }, { - "teal": 2614, + "teal": 2612, "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ - 2374, - 2375 + 2374 ] }, { - "teal": 2615, + "teal": 2613, "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ - 2376 + 2375 ] }, { - "teal": 2616, + "teal": 2614, "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ + 2376, 2377 ] }, { - "teal": 2617, + "teal": 2615, "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ - 2378, - 2379 + 2378 ] }, { - "teal": 2618, - "source": "examples/reti/validatorRegistry.algo.ts:758", + "teal": 2619, + "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ + 2379, 2380 ] }, { - "teal": 2622, + "teal": 2620, "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ 2381, @@ -12127,155 +12127,155 @@ ] }, { - "teal": 2623, + "teal": 2621, "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ - 2383, - 2384 + 2383 ] }, { - "teal": 2624, + "teal": 2622, "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ + 2384, 2385 ] }, { - "teal": 2625, + "teal": 2623, "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ - 2386, - 2387 + 2386 ] }, { - "teal": 2626, + "teal": 2624, "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ - 2388 + 2387 ] }, { - "teal": 2627, + "teal": 2625, "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ + 2388, 2389 ] }, { - "teal": 2628, + "teal": 2626, "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ - 2390, - 2391 + 2390 ] }, { - "teal": 2629, + "teal": 2627, "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ - 2392 + 2391 ] }, { - "teal": 2630, + "teal": 2628, "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ + 2392, 2393 ] }, { - "teal": 2631, - "source": "examples/reti/validatorRegistry.algo.ts:760", + "teal": 2632, + "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ 2394, 2395 ] }, { - "teal": 2635, + "teal": 2633, "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ - 2396, - 2397 + 2396 ] }, { - "teal": 2636, + "teal": 2634, "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ - 2398 + 2397 ] }, { - "teal": 2637, + "teal": 2635, "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ + 2398, 2399 ] }, { - "teal": 2638, + "teal": 2636, "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ - 2400, - 2401 + 2400 ] }, { - "teal": 2639, + "teal": 2637, "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ - 2402 + 2401 ] }, { - "teal": 2640, + "teal": 2638, "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ + 2402, 2403 ] }, { - "teal": 2641, + "teal": 2639, "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ - 2404, - 2405 + 2404 ] }, { - "teal": 2642, + "teal": 2640, "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ - 2406 + 2405 ] }, { - "teal": 2643, + "teal": 2641, "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ + 2406, 2407 ] }, { - "teal": 2644, - "source": "examples/reti/validatorRegistry.algo.ts:761", + "teal": 2645, + "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ - 2408, - 2409 + 2408 ] }, { - "teal": 2648, + "teal": 2646, "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ + 2409, 2410 ] }, { - "teal": 2649, + "teal": 2651, "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ 2411, @@ -12283,7 +12283,7 @@ ] }, { - "teal": 2654, + "teal": 2652, "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ 2413, @@ -12291,31 +12291,31 @@ ] }, { - "teal": 2655, + "teal": 2653, "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ - 2415, - 2416 + 2415 ] }, { - "teal": 2656, + "teal": 2654, "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ - 2417 + 2416, + 2417, + 2418 ] }, { - "teal": 2657, - "source": "examples/reti/validatorRegistry.algo.ts:762", + "teal": 2661, + "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2418, 2419, 2420 ] }, { - "teal": 2664, + "teal": 2662, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ 2421, @@ -12323,7 +12323,7 @@ ] }, { - "teal": 2665, + "teal": 2663, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ 2423, @@ -12331,185 +12331,185 @@ ] }, { - "teal": 2666, + "teal": 2664, + "source": "examples/reti/validatorRegistry.algo.ts:768", + "pc": [ + 2425 + ] + }, + { + "teal": 2665, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2425, 2426 ] }, + { + "teal": 2666, + "source": "examples/reti/validatorRegistry.algo.ts:768", + "pc": [ + 2427, + 2428 + ] + }, { "teal": 2667, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2427 + 2429 ] }, { "teal": 2668, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2428 + 2430 ] }, { "teal": 2669, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2429, - 2430 + 2431 ] }, { "teal": 2670, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2431 + 2432, + 2433 ] }, { "teal": 2671, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2432 + 2434 ] }, { "teal": 2672, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2433 + 2435 ] }, { "teal": 2673, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2434, - 2435 + 2436, + 2437 ] }, { "teal": 2674, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2436 + 2438 ] }, { "teal": 2675, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2437 + 2439 ] }, { "teal": 2676, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2438, - 2439 + 2440, + 2441, + 2442, + 2443 ] }, { "teal": 2677, - "source": "examples/reti/validatorRegistry.algo.ts:768", + "source": "examples/reti/validatorRegistry.algo.ts:767", "pc": [ - 2440 + 2444 ] }, { "teal": 2678, - "source": "examples/reti/validatorRegistry.algo.ts:768", + "source": "examples/reti/validatorRegistry.algo.ts:767", "pc": [ - 2441 + 2445 ] }, { "teal": 2679, - "source": "examples/reti/validatorRegistry.algo.ts:768", + "source": "examples/reti/validatorRegistry.algo.ts:769", "pc": [ - 2442, - 2443, - 2444, - 2445 + 2446, + 2447 ] }, { "teal": 2680, "source": "examples/reti/validatorRegistry.algo.ts:767", "pc": [ - 2446 + 2448 ] }, { "teal": 2681, "source": "examples/reti/validatorRegistry.algo.ts:767", "pc": [ - 2447 - ] - }, - { - "teal": 2682, - "source": "examples/reti/validatorRegistry.algo.ts:769", - "pc": [ - 2448, 2449 ] }, { - "teal": 2683, + "teal": 2682, "source": "examples/reti/validatorRegistry.algo.ts:767", "pc": [ 2450 ] }, { - "teal": 2684, + "teal": 2683, "source": "examples/reti/validatorRegistry.algo.ts:767", "pc": [ 2451 ] }, { - "teal": 2685, + "teal": 2684, "source": "examples/reti/validatorRegistry.algo.ts:767", "pc": [ 2452 ] }, - { - "teal": 2686, - "source": "examples/reti/validatorRegistry.algo.ts:767", - "pc": [ - 2453 - ] - }, { "teal": 2687, "source": "examples/reti/validatorRegistry.algo.ts:767", + "errorMessage": "wideRatio failed", "pc": [ - 2454 + 2453 ] }, { - "teal": 2690, + "teal": 2688, "source": "examples/reti/validatorRegistry.algo.ts:767", - "errorMessage": "wideRatio failed", "pc": [ + 2454, 2455 ] }, { - "teal": 2691, - "source": "examples/reti/validatorRegistry.algo.ts:767", + "teal": 2692, + "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ 2456, 2457 ] }, { - "teal": 2695, + "teal": 2693, "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ 2458, @@ -12517,134 +12517,134 @@ ] }, { - "teal": 2696, + "teal": 2694, "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2460, - 2461 + 2460 ] }, { - "teal": 2697, + "teal": 2695, "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2462 + 2461 ] }, { - "teal": 2698, + "teal": 2696, "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2463 + 2462 ] }, { - "teal": 2699, + "teal": 2697, "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ + 2463, 2464 ] }, { - "teal": 2700, + "teal": 2698, "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2465, - 2466 + 2465 ] }, { - "teal": 2701, + "teal": 2699, "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2467 + 2466 ] }, { - "teal": 2702, + "teal": 2700, "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ + 2467, 2468 ] }, { - "teal": 2703, + "teal": 2701, "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2469, - 2470 + 2469 ] }, { - "teal": 2704, + "teal": 2702, "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2471 + 2470 ] }, { - "teal": 2705, + "teal": 2703, "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ + 2471, 2472 ] }, { - "teal": 2706, + "teal": 2704, "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2473, - 2474 + 2473 ] }, { - "teal": 2707, - "source": "examples/reti/validatorRegistry.algo.ts:771", + "teal": 2709, + "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ + 2474, 2475 ] }, { - "teal": 2712, + "teal": 2710, "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ - 2476, - 2477 + 2476 ] }, { - "teal": 2713, + "teal": 2711, "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ - 2478 + 2477 ] }, { - "teal": 2714, + "teal": 2712, "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ + 2478, 2479 ] }, { - "teal": 2715, + "teal": 2713, "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ 2480, - 2481 + 2481, + 2482 ] }, { - "teal": 2716, - "source": "examples/reti/validatorRegistry.algo.ts:762", + "teal": 2718, + "source": "examples/reti/validatorRegistry.algo.ts:773", "pc": [ - 2482, 2483, 2484 ] }, { - "teal": 2721, + "teal": 2719, "source": "examples/reti/validatorRegistry.algo.ts:773", "pc": [ 2485, @@ -12652,54 +12652,54 @@ ] }, { - "teal": 2722, + "teal": 2720, "source": "examples/reti/validatorRegistry.algo.ts:773", "pc": [ - 2487, - 2488 + 2487 ] }, { - "teal": 2723, + "teal": 2721, "source": "examples/reti/validatorRegistry.algo.ts:773", "pc": [ + 2488, 2489 ] }, { - "teal": 2724, + "teal": 2722, "source": "examples/reti/validatorRegistry.algo.ts:773", "pc": [ - 2490, - 2491 + 2490 ] }, { - "teal": 2725, + "teal": 2723, "source": "examples/reti/validatorRegistry.algo.ts:773", "pc": [ - 2492 + 2491 ] }, { - "teal": 2726, + "teal": 2724, "source": "examples/reti/validatorRegistry.algo.ts:773", "pc": [ + 2492, 2493 ] }, { - "teal": 2727, + "teal": 2725, "source": "examples/reti/validatorRegistry.algo.ts:773", "pc": [ - 2494, - 2495 + 2494 ] }, { - "teal": 2728, - "source": "examples/reti/validatorRegistry.algo.ts:773", + "teal": 2729, + "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ + 2495, 2496 ] }, @@ -12712,180 +12712,180 @@ ] }, { - "teal": 2735, + "teal": 2733, "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2499, - 2500 + 2499 ] }, { - "teal": 2736, - "source": "examples/reti/validatorRegistry.algo.ts:732", + "teal": 2738, + "source": "examples/reti/validatorRegistry.algo.ts:792", "pc": [ - 2501 + 2500, + 2501, + 2502 ] }, { - "teal": 2741, + "teal": 2739, "source": "examples/reti/validatorRegistry.algo.ts:792", "pc": [ - 2502, - 2503, - 2504 + 2503 ] }, { "teal": 2742, - "source": "examples/reti/validatorRegistry.algo.ts:792", + "source": "examples/reti/validatorRegistry.algo.ts:791", "pc": [ - 2505 + 2504, + 2505, + 2506 ] }, { - "teal": 2745, + "teal": 2743, "source": "examples/reti/validatorRegistry.algo.ts:791", "pc": [ - 2506, - 2507, - 2508 + 2507 ] }, { "teal": 2746, - "source": "examples/reti/validatorRegistry.algo.ts:791", + "source": "examples/reti/validatorRegistry.algo.ts:790", "pc": [ - 2509 + 2508, + 2509, + 2510 ] }, { - "teal": 2749, + "teal": 2747, "source": "examples/reti/validatorRegistry.algo.ts:790", "pc": [ - 2510, - 2511, - 2512 + 2511 ] }, { "teal": 2750, - "source": "examples/reti/validatorRegistry.algo.ts:790", + "source": "examples/reti/validatorRegistry.algo.ts:789", "pc": [ - 2513 + 2512, + 2513, + 2514 ] }, { - "teal": 2753, + "teal": 2751, "source": "examples/reti/validatorRegistry.algo.ts:789", "pc": [ - 2514, - 2515, - 2516 + 2515 ] }, { "teal": 2754, - "source": "examples/reti/validatorRegistry.algo.ts:789", + "source": "examples/reti/validatorRegistry.algo.ts:788", "pc": [ - 2517 + 2516, + 2517, + 2518 ] }, { - "teal": 2757, + "teal": 2755, "source": "examples/reti/validatorRegistry.algo.ts:788", "pc": [ - 2518, - 2519, - 2520 + 2519 ] }, { - "teal": 2758, + "teal": 2756, "source": "examples/reti/validatorRegistry.algo.ts:788", "pc": [ - 2521 + 2520 ] }, { - "teal": 2759, + "teal": 2757, "source": "examples/reti/validatorRegistry.algo.ts:788", "pc": [ - 2522 + 2521 ] }, { - "teal": 2760, + "teal": 2758, "source": "examples/reti/validatorRegistry.algo.ts:788", "pc": [ - 2523 + 2522 ] }, { "teal": 2761, "source": "examples/reti/validatorRegistry.algo.ts:788", + "errorMessage": "argument 4 (poolKey) for stakeUpdatedViaRewards must be a (uint64,uint64,uint64)", "pc": [ - 2524 + 2523 ] }, { "teal": 2764, - "source": "examples/reti/validatorRegistry.algo.ts:788", - "errorMessage": "argument 4 (poolKey) for stakeUpdatedViaRewards must be a (uint64,uint64,uint64)", + "source": "examples/reti/validatorRegistry.algo.ts:787", "pc": [ - 2525 + 2524, + 2525, + 2526 ] }, { - "teal": 2767, + "teal": 2765, "source": "examples/reti/validatorRegistry.algo.ts:787", "pc": [ - 2526, - 2527, - 2528 + 2527 ] }, { - "teal": 2768, + "teal": 2766, "source": "examples/reti/validatorRegistry.algo.ts:787", "pc": [ - 2529 + 2528 ] }, { - "teal": 2769, + "teal": 2780, "source": "examples/reti/validatorRegistry.algo.ts:787", "pc": [ - 2530 + 2529, + 2530, + 2531 ] }, { - "teal": 2783, - "source": "examples/reti/validatorRegistry.algo.ts:787", + "teal": 2784, + "source": "examples/reti/validatorRegistry.algo.ts:794", "pc": [ - 2531, 2532, 2533 ] }, { - "teal": 2787, + "teal": 2785, "source": "examples/reti/validatorRegistry.algo.ts:794", "pc": [ 2534, - 2535 + 2535, + 2536 ] }, { - "teal": 2788, - "source": "examples/reti/validatorRegistry.algo.ts:794", + "teal": 2789, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2536, 2537, 2538 ] }, { - "teal": 2792, + "teal": 2790, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ 2539, @@ -12893,984 +12893,984 @@ ] }, { - "teal": 2793, + "teal": 2791, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ 2541, - 2542 + 2542, + 2543 ] }, { - "teal": 2794, + "teal": 2792, + "source": "examples/reti/validatorRegistry.algo.ts:797", + "pc": [ + 2544 + ] + }, + { + "teal": 2793, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2543, - 2544, 2545 ] }, { - "teal": 2795, + "teal": 2794, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ 2546 ] }, + { + "teal": 2795, + "source": "examples/reti/validatorRegistry.algo.ts:797", + "pc": [ + 2547, + 2548 + ] + }, { "teal": 2796, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2547 + 2549 ] }, { "teal": 2797, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2548 + 2550 ] }, { "teal": 2798, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2549, - 2550 + 2551, + 2552 ] }, { "teal": 2799, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2551 + 2553 ] }, { "teal": 2800, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2552 + 2554, + 2555 ] }, { "teal": 2801, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2553, - 2554 + 2556, + 2557 ] }, { "teal": 2802, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2555 + 2558, + 2559, + 2560 ] }, { "teal": 2803, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2556, - 2557 + 2561 ] }, { "teal": 2804, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2558, - 2559 + 2562 ] }, { "teal": 2805, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2560, - 2561, - 2562 + 2563 ] }, { "teal": 2806, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2563 + 2564, + 2565 ] }, { "teal": 2807, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2564 + 2566 ] }, { "teal": 2808, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2565 + 2567 ] }, { "teal": 2809, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2566, - 2567 + 2568, + 2569 ] }, { "teal": 2810, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2568 + 2570 ] }, { "teal": 2811, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2569 + 2571 ] }, { "teal": 2812, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2570, - 2571 + 2572 ] }, { "teal": 2813, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2572 + 2573, + 2574 ] }, { "teal": 2814, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2573 + 2575, + 2576, + 2577 ] }, { "teal": 2815, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2574 + 2578 ] }, { "teal": 2816, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2575, - 2576 + 2579 ] }, { "teal": 2817, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2577, - 2578, - 2579 + 2580 ] }, { "teal": 2818, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2580 + 2581, + 2582 ] }, { "teal": 2819, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2581 + 2583 ] }, { "teal": 2820, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2582 + 2584 ] }, { "teal": 2821, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2583, - 2584 + 2585, + 2586 ] }, { "teal": 2822, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2585 + 2587 ] }, { "teal": 2823, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2586 + 2588 ] }, { "teal": 2824, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2587, - 2588 + 2589 ] }, { "teal": 2825, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2589 + 2590, + 2591 ] }, { "teal": 2826, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2590 + 2592, + 2593, + 2594 ] }, { "teal": 2827, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2591 + 2595 ] }, { "teal": 2828, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2592, - 2593 + 2596 ] }, { "teal": 2829, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2594, - 2595, - 2596 + 2597 ] }, { "teal": 2830, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2597 + 2598, + 2599 ] }, { "teal": 2831, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2598 + 2600 ] }, { - "teal": 2832, - "source": "examples/reti/validatorRegistry.algo.ts:797", + "teal": 2835, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2599 + 2601, + 2602 ] }, { - "teal": 2833, - "source": "examples/reti/validatorRegistry.algo.ts:797", + "teal": 2836, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2600, - 2601 + 2603 ] }, { - "teal": 2834, - "source": "examples/reti/validatorRegistry.algo.ts:797", + "teal": 2837, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2602 + 2604 ] }, { "teal": 2838, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2603, - 2604 + 2605 ] }, { "teal": 2839, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2605 + 2606, + 2607 ] }, { "teal": 2840, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2606 + 2608, + 2609, + 2610 ] }, { "teal": 2841, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2607 + 2611 ] }, { "teal": 2842, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2608, - 2609 + 2612 ] }, { "teal": 2843, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2610, - 2611, - 2612 + 2613 ] }, { "teal": 2844, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2613 + 2614, + 2615 ] }, { "teal": 2845, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2614 + 2616 ] }, { "teal": 2846, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2615 + 2617 ] }, { "teal": 2847, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2616, - 2617 + 2618, + 2619 ] }, { "teal": 2848, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2618 + 2620 ] }, { "teal": 2849, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2619 + 2621 ] }, { "teal": 2850, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2620, - 2621 + 2622 ] }, { "teal": 2851, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2622 + 2623, + 2624 ] }, { "teal": 2852, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2623 + 2625, + 2626, + 2627 ] }, { "teal": 2853, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2624 + 2628 ] }, { "teal": 2854, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2625, - 2626 + 2629 ] }, { "teal": 2855, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2627, - 2628, - 2629 + 2630 ] }, { "teal": 2856, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2630 + 2631, + 2632 ] }, { "teal": 2857, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2631 + 2633 ] }, { - "teal": 2858, - "source": "examples/reti/validatorRegistry.algo.ts:798", + "teal": 2861, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2632 + 2634, + 2635 ] }, { - "teal": 2859, - "source": "examples/reti/validatorRegistry.algo.ts:798", + "teal": 2862, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2633, - 2634 + 2636 ] }, { - "teal": 2860, - "source": "examples/reti/validatorRegistry.algo.ts:798", + "teal": 2863, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2635 + 2637 ] }, { "teal": 2864, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2636, - 2637 + 2638 ] }, { "teal": 2865, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2638 + 2639, + 2640 ] }, { "teal": 2866, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2639 + 2641, + 2642, + 2643 ] }, { "teal": 2867, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2640 + 2644 ] }, { "teal": 2868, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2641, - 2642 + 2645 ] }, { "teal": 2869, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2643, - 2644, - 2645 + 2646 ] }, { "teal": 2870, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2646 + 2647, + 2648 ] }, { "teal": 2871, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2647 + 2649 ] }, { "teal": 2872, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2648 + 2650 ] }, { "teal": 2873, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2649, - 2650 + 2651, + 2652 ] }, { "teal": 2874, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2651 + 2653 ] }, { "teal": 2875, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2652 + 2654 ] }, { "teal": 2876, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2653, - 2654 + 2655 ] }, { "teal": 2877, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2655 + 2656, + 2657 ] }, { "teal": 2878, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2656 + 2658, + 2659, + 2660 ] }, { "teal": 2879, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2657 + 2661 ] }, { "teal": 2880, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2658, - 2659 + 2662 ] }, { "teal": 2881, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2660, - 2661, - 2662 + 2663 ] }, { "teal": 2882, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2663 + 2664, + 2665 ] }, { "teal": 2883, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2664 + 2666 ] }, { - "teal": 2884, - "source": "examples/reti/validatorRegistry.algo.ts:799", + "teal": 2887, + "source": "examples/reti/validatorRegistry.algo.ts:801", "pc": [ - 2665 + 2667, + 2668 ] }, { - "teal": 2885, - "source": "examples/reti/validatorRegistry.algo.ts:799", + "teal": 2888, + "source": "examples/reti/validatorRegistry.algo.ts:801", "pc": [ - 2666, - 2667 + 2669 ] }, { - "teal": 2886, - "source": "examples/reti/validatorRegistry.algo.ts:799", + "teal": 2889, + "source": "examples/reti/validatorRegistry.algo.ts:801", "pc": [ - 2668 + 2670, + 2671 ] }, { "teal": 2890, "source": "examples/reti/validatorRegistry.algo.ts:801", "pc": [ - 2669, - 2670 + 2672 ] }, { "teal": 2891, "source": "examples/reti/validatorRegistry.algo.ts:801", "pc": [ - 2671 + 2673, + 2674 ] }, { "teal": 2892, "source": "examples/reti/validatorRegistry.algo.ts:801", "pc": [ - 2672, - 2673 + 2675 ] }, { "teal": 2893, "source": "examples/reti/validatorRegistry.algo.ts:801", "pc": [ - 2674 + 2676 ] }, { - "teal": 2894, - "source": "examples/reti/validatorRegistry.algo.ts:801", + "teal": 2897, + "source": "examples/reti/validatorRegistry.algo.ts:804", "pc": [ - 2675, - 2676 + 2677, + 2678 ] }, { - "teal": 2895, - "source": "examples/reti/validatorRegistry.algo.ts:801", + "teal": 2898, + "source": "examples/reti/validatorRegistry.algo.ts:804", "pc": [ - 2677 + 2679, + 2680, + 2681 ] }, { - "teal": 2896, - "source": "examples/reti/validatorRegistry.algo.ts:801", + "teal": 2899, + "source": "examples/reti/validatorRegistry.algo.ts:804", "pc": [ - 2678 + 2682 ] }, { "teal": 2900, "source": "examples/reti/validatorRegistry.algo.ts:804", "pc": [ - 2679, - 2680 + 2683, + 2684, + 2685 ] }, { "teal": 2901, - "source": "examples/reti/validatorRegistry.algo.ts:804", - "pc": [ - 2681, - 2682, - 2683 - ] - }, - { - "teal": 2902, - "source": "examples/reti/validatorRegistry.algo.ts:804", + "source": "examples/reti/validatorRegistry.algo.ts:787", "pc": [ - 2684 + 2686 ] }, { - "teal": 2903, - "source": "examples/reti/validatorRegistry.algo.ts:804", + "teal": 2906, + "source": "examples/reti/validatorRegistry.algo.ts:834", "pc": [ - 2685, - 2686, - 2687 + 2687, + 2688, + 2689 ] }, { - "teal": 2904, - "source": "examples/reti/validatorRegistry.algo.ts:787", + "teal": 2907, + "source": "examples/reti/validatorRegistry.algo.ts:834", "pc": [ - 2688 + 2690 ] }, { - "teal": 2909, + "teal": 2908, "source": "examples/reti/validatorRegistry.algo.ts:834", "pc": [ - 2689, - 2690, 2691 ] }, { - "teal": 2910, + "teal": 2909, "source": "examples/reti/validatorRegistry.algo.ts:834", "pc": [ 2692 ] }, { - "teal": 2911, + "teal": 2910, "source": "examples/reti/validatorRegistry.algo.ts:834", "pc": [ 2693 ] }, { - "teal": 2912, + "teal": 2913, "source": "examples/reti/validatorRegistry.algo.ts:834", + "errorMessage": "argument 0 (stakerRemoved) for stakeRemoved must be a bool", "pc": [ 2694 ] }, { - "teal": 2913, + "teal": 2914, "source": "examples/reti/validatorRegistry.algo.ts:834", "pc": [ 2695 ] }, { - "teal": 2916, + "teal": 2915, "source": "examples/reti/validatorRegistry.algo.ts:834", - "errorMessage": "argument 0 (stakerRemoved) for stakeRemoved must be a bool", "pc": [ 2696 ] }, - { - "teal": 2917, - "source": "examples/reti/validatorRegistry.algo.ts:834", - "pc": [ - 2697 - ] - }, { "teal": 2918, - "source": "examples/reti/validatorRegistry.algo.ts:834", + "source": "examples/reti/validatorRegistry.algo.ts:833", "pc": [ - 2698 + 2697, + 2698, + 2699 ] }, { - "teal": 2921, + "teal": 2919, "source": "examples/reti/validatorRegistry.algo.ts:833", "pc": [ - 2699, - 2700, - 2701 + 2700 ] }, { "teal": 2922, - "source": "examples/reti/validatorRegistry.algo.ts:833", + "source": "examples/reti/validatorRegistry.algo.ts:832", "pc": [ - 2702 + 2701, + 2702, + 2703 ] }, { - "teal": 2925, + "teal": 2923, "source": "examples/reti/validatorRegistry.algo.ts:832", "pc": [ - 2703, - 2704, - 2705 + 2704 ] }, { "teal": 2926, - "source": "examples/reti/validatorRegistry.algo.ts:832", + "source": "examples/reti/validatorRegistry.algo.ts:831", "pc": [ - 2706 + 2705, + 2706, + 2707 ] }, { - "teal": 2929, + "teal": 2927, "source": "examples/reti/validatorRegistry.algo.ts:831", "pc": [ - 2707, - 2708, - 2709 + 2708 ] }, { - "teal": 2930, + "teal": 2928, "source": "examples/reti/validatorRegistry.algo.ts:831", "pc": [ - 2710 + 2709 ] }, { - "teal": 2931, + "teal": 2929, "source": "examples/reti/validatorRegistry.algo.ts:831", "pc": [ + 2710, 2711 ] }, { - "teal": 2932, + "teal": 2930, "source": "examples/reti/validatorRegistry.algo.ts:831", "pc": [ - 2712, - 2713 + 2712 ] }, { "teal": 2933, "source": "examples/reti/validatorRegistry.algo.ts:831", + "errorMessage": "argument 3 (staker) for stakeRemoved must be a address", "pc": [ - 2714 + 2713 ] }, { "teal": 2936, - "source": "examples/reti/validatorRegistry.algo.ts:831", - "errorMessage": "argument 3 (staker) for stakeRemoved must be a address", + "source": "examples/reti/validatorRegistry.algo.ts:830", "pc": [ - 2715 + 2714, + 2715, + 2716 ] }, { - "teal": 2939, + "teal": 2937, "source": "examples/reti/validatorRegistry.algo.ts:830", "pc": [ - 2716, - 2717, - 2718 + 2717 ] }, { - "teal": 2940, + "teal": 2938, "source": "examples/reti/validatorRegistry.algo.ts:830", "pc": [ - 2719 + 2718 ] }, { - "teal": 2941, + "teal": 2939, "source": "examples/reti/validatorRegistry.algo.ts:830", "pc": [ - 2720 + 2719 ] }, { - "teal": 2942, + "teal": 2940, "source": "examples/reti/validatorRegistry.algo.ts:830", "pc": [ - 2721 + 2720 ] }, { "teal": 2943, "source": "examples/reti/validatorRegistry.algo.ts:830", + "errorMessage": "argument 4 (poolKey) for stakeRemoved must be a (uint64,uint64,uint64)", "pc": [ - 2722 + 2721 ] }, { "teal": 2946, - "source": "examples/reti/validatorRegistry.algo.ts:830", - "errorMessage": "argument 4 (poolKey) for stakeRemoved must be a (uint64,uint64,uint64)", + "source": "examples/reti/validatorRegistry.algo.ts:829", "pc": [ - 2723 + 2722, + 2723, + 2724 ] }, { - "teal": 2949, + "teal": 2947, "source": "examples/reti/validatorRegistry.algo.ts:829", "pc": [ - 2724, - 2725, - 2726 + 2725 ] }, { - "teal": 2950, + "teal": 2948, "source": "examples/reti/validatorRegistry.algo.ts:829", "pc": [ - 2727 + 2726 ] }, { - "teal": 2951, + "teal": 2963, "source": "examples/reti/validatorRegistry.algo.ts:829", "pc": [ - 2728 + 2727, + 2728, + 2729 ] }, { "teal": 2966, "source": "examples/reti/validatorRegistry.algo.ts:829", "pc": [ - 2729, - 2730, - 2731 + 2730 ] }, { - "teal": 2969, + "teal": 2967, "source": "examples/reti/validatorRegistry.algo.ts:829", "pc": [ + 2731, 2732 ] }, { - "teal": 2970, - "source": "examples/reti/validatorRegistry.algo.ts:829", + "teal": 2972, + "source": "examples/reti/validatorRegistry.algo.ts:836", "pc": [ 2733, 2734 ] }, { - "teal": 2975, + "teal": 2973, "source": "examples/reti/validatorRegistry.algo.ts:836", "pc": [ 2735, @@ -13878,38 +13878,38 @@ ] }, { - "teal": 2976, + "teal": 2974, "source": "examples/reti/validatorRegistry.algo.ts:836", "pc": [ - 2737, - 2738 + 2737 ] }, { - "teal": 2977, + "teal": 2975, "source": "examples/reti/validatorRegistry.algo.ts:836", "pc": [ - 2739 + 2738, + 2739, + 2740 ] }, { - "teal": 2978, - "source": "examples/reti/validatorRegistry.algo.ts:836", + "teal": 2980, + "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ - 2740, - 2741, - 2742 + 2741 ] }, { - "teal": 2983, + "teal": 2981, "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ + 2742, 2743 ] }, { - "teal": 2984, + "teal": 2982, "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ 2744, @@ -13917,22 +13917,22 @@ ] }, { - "teal": 2985, + "teal": 2983, "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ - 2746, - 2747 + 2746 ] }, { - "teal": 2986, + "teal": 2984, "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ + 2747, 2748 ] }, { - "teal": 2987, + "teal": 2985, "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ 2749, @@ -13940,22 +13940,22 @@ ] }, { - "teal": 2988, + "teal": 2986, "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ - 2751, - 2752 + 2751 ] }, { - "teal": 2989, + "teal": 2987, "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ + 2752, 2753 ] }, { - "teal": 2990, + "teal": 2988, "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ 2754, @@ -13963,7 +13963,7 @@ ] }, { - "teal": 2991, + "teal": 2989, "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ 2756, @@ -13971,7 +13971,7 @@ ] }, { - "teal": 2992, + "teal": 2990, "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ 2758, @@ -13979,114 +13979,114 @@ ] }, { - "teal": 2993, + "teal": 2991, "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ - 2760, - 2761 + 2760 ] }, { - "teal": 2994, - "source": "examples/reti/validatorRegistry.algo.ts:837", + "teal": 2996, + "source": "examples/reti/validatorRegistry.algo.ts:839", "pc": [ + 2761, 2762 ] }, { - "teal": 2999, + "teal": 2997, "source": "examples/reti/validatorRegistry.algo.ts:839", "pc": [ 2763, - 2764 + 2764, + 2765 ] }, { - "teal": 3000, - "source": "examples/reti/validatorRegistry.algo.ts:839", + "teal": 3001, + "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2765, 2766, 2767 ] }, { - "teal": 3004, + "teal": 3002, "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2768, - 2769 + 2768 ] }, { - "teal": 3005, + "teal": 3003, "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2770 + 2769 ] }, { - "teal": 3006, + "teal": 3004, "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2771 + 2770 ] }, { - "teal": 3007, + "teal": 3005, "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2772 + 2771, + 2772, + 2773 ] }, { - "teal": 3008, + "teal": 3006, "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2773, 2774, 2775 ] }, { - "teal": 3009, + "teal": 3007, "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2776, - 2777 + 2776 ] }, { - "teal": 3010, + "teal": 3008, "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2778 + 2777 ] }, { - "teal": 3011, + "teal": 3009, "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2779 + 2778 ] }, { - "teal": 3012, + "teal": 3013, "source": "examples/reti/validatorRegistry.algo.ts:843", + "errorMessage": "should only be called if algo or reward was removed", "pc": [ - 2780 + 2779 ] }, { - "teal": 3016, - "source": "examples/reti/validatorRegistry.algo.ts:843", - "errorMessage": "should only be called if algo or reward was removed", + "teal": 3017, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ + 2780, 2781 ] }, { - "teal": 3020, + "teal": 3018, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ 2782, @@ -14094,1025 +14094,1025 @@ ] }, { - "teal": 3021, + "teal": 3019, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ 2784, - 2785 + 2785, + 2786 ] }, { - "teal": 3022, + "teal": 3020, + "source": "examples/reti/validatorRegistry.algo.ts:846", + "pc": [ + 2787 + ] + }, + { + "teal": 3021, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2786, - 2787, 2788 ] }, { - "teal": 3023, + "teal": 3022, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ 2789 ] }, + { + "teal": 3023, + "source": "examples/reti/validatorRegistry.algo.ts:846", + "pc": [ + 2790, + 2791 + ] + }, { "teal": 3024, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2790 + 2792 ] }, { "teal": 3025, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2791 + 2793 ] }, { "teal": 3026, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2792, - 2793 + 2794, + 2795 ] }, { "teal": 3027, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2794 + 2796 ] }, { "teal": 3028, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2795 + 2797, + 2798 ] }, { "teal": 3029, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2796, - 2797 + 2799, + 2800 ] }, { "teal": 3030, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2798 + 2801, + 2802, + 2803 ] }, { "teal": 3031, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2799, - 2800 + 2804 ] }, { "teal": 3032, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2801, - 2802 + 2805 ] }, { "teal": 3033, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2803, - 2804, - 2805 + 2806 ] }, { "teal": 3034, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2806 + 2807, + 2808 ] }, { "teal": 3035, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2807 + 2809 ] }, { "teal": 3036, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2808 + 2810 ] }, { "teal": 3037, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2809, - 2810 + 2811, + 2812 ] }, { "teal": 3038, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2811 + 2813 ] }, { "teal": 3039, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2812 + 2814 ] }, { "teal": 3040, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2813, - 2814 + 2815 ] }, { "teal": 3041, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2815 + 2816, + 2817 ] }, { "teal": 3042, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2816 + 2818, + 2819, + 2820 ] }, { "teal": 3043, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2817 + 2821 ] }, { "teal": 3044, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2818, - 2819 + 2822 ] }, { "teal": 3045, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2820, - 2821, - 2822 + 2823 ] }, { "teal": 3046, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2823 + 2824, + 2825 ] }, { "teal": 3047, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2824 + 2826 ] }, { "teal": 3048, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2825 + 2827 ] }, { "teal": 3049, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2826, - 2827 + 2828, + 2829 ] }, { "teal": 3050, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2828 + 2830 ] }, { "teal": 3051, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2829 + 2831 ] }, { "teal": 3052, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2830, - 2831 + 2832 ] }, { "teal": 3053, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2832 + 2833, + 2834 ] }, { "teal": 3054, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2833 + 2835, + 2836, + 2837 ] }, { "teal": 3055, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2834 + 2838 ] }, { "teal": 3056, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2835, - 2836 + 2839 ] }, { "teal": 3057, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2837, - 2838, - 2839 + 2840 ] }, { "teal": 3058, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2840 + 2841, + 2842 ] }, { "teal": 3059, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2841 + 2843 ] }, { - "teal": 3060, - "source": "examples/reti/validatorRegistry.algo.ts:846", + "teal": 3063, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2842 + 2844, + 2845 ] }, { - "teal": 3061, - "source": "examples/reti/validatorRegistry.algo.ts:846", + "teal": 3064, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2843, - 2844 + 2846 ] }, { - "teal": 3062, - "source": "examples/reti/validatorRegistry.algo.ts:846", + "teal": 3065, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2845 + 2847 ] }, { "teal": 3066, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2846, - 2847 + 2848 ] }, { "teal": 3067, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2848 + 2849, + 2850 ] }, { "teal": 3068, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2849 + 2851, + 2852, + 2853 ] }, { "teal": 3069, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2850 + 2854 ] }, { "teal": 3070, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2851, - 2852 + 2855 ] }, { "teal": 3071, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2853, - 2854, - 2855 + 2856 ] }, { "teal": 3072, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2856 + 2857, + 2858 ] }, { "teal": 3073, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2857 + 2859 ] }, { "teal": 3074, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2858 + 2860 ] }, { "teal": 3075, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2859, - 2860 + 2861, + 2862 ] }, { "teal": 3076, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2861 + 2863 ] }, { "teal": 3077, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2862 + 2864 ] }, { "teal": 3078, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2863, - 2864 + 2865 ] }, { "teal": 3079, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2865 + 2866, + 2867 ] }, { "teal": 3080, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2866 + 2868, + 2869, + 2870 ] }, { "teal": 3081, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2867 + 2871 ] }, { "teal": 3082, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2868, - 2869 + 2872 ] }, { "teal": 3083, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2870, - 2871, - 2872 + 2873 ] }, { "teal": 3084, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2873 + 2874, + 2875 ] }, { "teal": 3085, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2874 + 2876 ] }, { - "teal": 3086, - "source": "examples/reti/validatorRegistry.algo.ts:847", + "teal": 3089, + "source": "examples/reti/validatorRegistry.algo.ts:848", "pc": [ - 2875 + 2877, + 2878 ] }, { - "teal": 3087, - "source": "examples/reti/validatorRegistry.algo.ts:847", + "teal": 3090, + "source": "examples/reti/validatorRegistry.algo.ts:848", "pc": [ - 2876, - 2877 + 2879 ] }, { - "teal": 3088, - "source": "examples/reti/validatorRegistry.algo.ts:847", + "teal": 3091, + "source": "examples/reti/validatorRegistry.algo.ts:848", "pc": [ - 2878 + 2880, + 2881 ] }, { "teal": 3092, "source": "examples/reti/validatorRegistry.algo.ts:848", "pc": [ - 2879, - 2880 + 2882 ] }, { "teal": 3093, "source": "examples/reti/validatorRegistry.algo.ts:848", "pc": [ - 2881 + 2883, + 2884 ] }, { "teal": 3094, "source": "examples/reti/validatorRegistry.algo.ts:848", "pc": [ - 2882, - 2883 + 2885 ] }, { "teal": 3095, "source": "examples/reti/validatorRegistry.algo.ts:848", "pc": [ - 2884 + 2886 ] }, { - "teal": 3096, - "source": "examples/reti/validatorRegistry.algo.ts:848", + "teal": 3100, + "source": "examples/reti/validatorRegistry.algo.ts:850", "pc": [ - 2885, - 2886 + 2887, + 2888 ] }, { - "teal": 3097, - "source": "examples/reti/validatorRegistry.algo.ts:848", + "teal": 3101, + "source": "examples/reti/validatorRegistry.algo.ts:850", "pc": [ - 2887 + 2889 ] }, { - "teal": 3098, - "source": "examples/reti/validatorRegistry.algo.ts:848", + "teal": 3102, + "source": "examples/reti/validatorRegistry.algo.ts:850", "pc": [ - 2888 + 2890 ] }, { "teal": 3103, "source": "examples/reti/validatorRegistry.algo.ts:850", "pc": [ - 2889, - 2890 + 2891, + 2892, + 2893 ] }, { - "teal": 3104, - "source": "examples/reti/validatorRegistry.algo.ts:850", + "teal": 3108, + "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 2891 + 2894, + 2895 ] }, { - "teal": 3105, - "source": "examples/reti/validatorRegistry.algo.ts:850", + "teal": 3109, + "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 2892 + 2896 ] }, { - "teal": 3106, - "source": "examples/reti/validatorRegistry.algo.ts:850", + "teal": 3110, + "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 2893, - 2894, - 2895 + 2897 ] }, { "teal": 3111, "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 2896, - 2897 + 2898, + 2899 ] }, { "teal": 3112, "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 2898 + 2900, + 2901, + 2902 ] }, { "teal": 3113, "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 2899 + 2903 ] }, { "teal": 3114, "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 2900, - 2901 + 2904 ] }, { "teal": 3115, "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 2902, - 2903, - 2904 + 2905 ] }, { "teal": 3116, "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 2905 + 2906, + 2907 ] }, { "teal": 3117, "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 2906 + 2908 ] }, { "teal": 3118, "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 2907 + 2909 ] }, { "teal": 3119, "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 2908, - 2909 + 2910, + 2911 ] }, { - "teal": 3120, - "source": "examples/reti/validatorRegistry.algo.ts:851", + "teal": 3123, + "source": "examples/reti/validatorRegistry.algo.ts:852", "pc": [ - 2910 + 2912, + 2913 ] }, { - "teal": 3121, - "source": "examples/reti/validatorRegistry.algo.ts:851", + "teal": 3124, + "source": "examples/reti/validatorRegistry.algo.ts:852", "pc": [ - 2911 + 2914 ] }, { - "teal": 3122, - "source": "examples/reti/validatorRegistry.algo.ts:851", + "teal": 3125, + "source": "examples/reti/validatorRegistry.algo.ts:852", "pc": [ - 2912, - 2913 + 2915 ] }, { - "teal": 3126, + "teal": 3128, "source": "examples/reti/validatorRegistry.algo.ts:852", + "errorMessage": "rewardRemoved can't be set if validator doesn't have reward token!", "pc": [ - 2914, - 2915 + 2916 ] }, { - "teal": 3127, - "source": "examples/reti/validatorRegistry.algo.ts:852", + "teal": 3135, + "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2916 + 2917, + 2918 ] }, { - "teal": 3128, - "source": "examples/reti/validatorRegistry.algo.ts:852", + "teal": 3136, + "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2917 + 2919 ] }, { - "teal": 3131, - "source": "examples/reti/validatorRegistry.algo.ts:852", - "errorMessage": "rewardRemoved can't be set if validator doesn't have reward token!", + "teal": 3137, + "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2918 + 2920 ] }, { "teal": 3138, "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2919, - 2920 + 2921, + 2922 ] }, { "teal": 3139, "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2921 + 2923, + 2924, + 2925 ] }, { "teal": 3140, "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2922 + 2926 ] }, { "teal": 3141, "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2923, - 2924 + 2927 ] }, { "teal": 3142, "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2925, - 2926, - 2927 + 2928 ] }, { "teal": 3143, "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2928 + 2929, + 2930 ] }, { "teal": 3144, "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2929 + 2931 ] }, { "teal": 3145, "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2930 + 2932 ] }, { "teal": 3146, "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2931, - 2932 + 2933, + 2934 ] }, { "teal": 3147, "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2933 + 2935 ] }, { - "teal": 3148, - "source": "examples/reti/validatorRegistry.algo.ts:854", + "teal": 3150, + "source": "examples/reti/validatorRegistry.algo.ts:853", + "errorMessage": "reward being removed must be covered by hold back amount", "pc": [ - 2934 + 2936 ] }, { - "teal": 3149, - "source": "examples/reti/validatorRegistry.algo.ts:854", + "teal": 3154, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2935, - 2936 + 2937, + 2938 ] }, { - "teal": 3150, - "source": "examples/reti/validatorRegistry.algo.ts:854", + "teal": 3155, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2937 + 2939 ] }, { - "teal": 3153, - "source": "examples/reti/validatorRegistry.algo.ts:853", - "errorMessage": "reward being removed must be covered by hold back amount", + "teal": 3156, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2938 + 2940 ] }, { "teal": 3157, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2939, - 2940 + 2941 ] }, { "teal": 3158, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2941 + 2942, + 2943 ] }, { "teal": 3159, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2942 + 2944, + 2945, + 2946 ] }, { "teal": 3160, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2943 + 2947 ] }, { "teal": 3161, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2944, - 2945 + 2948 ] }, { "teal": 3162, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2946, - 2947, - 2948 + 2949 ] }, { "teal": 3163, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2949 + 2950, + 2951 ] }, { "teal": 3164, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2950 + 2952 ] }, { "teal": 3165, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2951 + 2953 ] }, { "teal": 3166, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2952, - 2953 + 2954, + 2955 ] }, { "teal": 3167, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2954 + 2956 ] }, { "teal": 3168, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2955 + 2957 ] }, { "teal": 3169, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2956, - 2957 + 2958 ] }, { "teal": 3170, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2958 + 2959, + 2960 ] }, { "teal": 3171, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2959 + 2961, + 2962, + 2963 ] }, { "teal": 3172, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2960 + 2964 ] }, { "teal": 3173, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2961, - 2962 - ] - }, - { - "teal": 3174, - "source": "examples/reti/validatorRegistry.algo.ts:859", - "pc": [ - 2963, - 2964, 2965 ] }, { - "teal": 3175, + "teal": 3174, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ 2966 ] }, { - "teal": 3176, - "source": "examples/reti/validatorRegistry.algo.ts:859", - "pc": [ - 2967 - ] - }, - { - "teal": 3177, + "teal": 3175, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ + 2967, 2968 ] }, { - "teal": 3178, + "teal": 3176, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2969, - 2970 + 2969 ] }, { - "teal": 3179, - "source": "examples/reti/validatorRegistry.algo.ts:859", + "teal": 3181, + "source": "examples/reti/validatorRegistry.algo.ts:864", "pc": [ + 2970, 2971 ] }, { - "teal": 3184, + "teal": 3182, "source": "examples/reti/validatorRegistry.algo.ts:864", "pc": [ 2972, - 2973 + 2973, + 2974 ] }, { - "teal": 3185, + "teal": 3183, "source": "examples/reti/validatorRegistry.algo.ts:864", "pc": [ - 2974, - 2975, - 2976 + 2975 ] }, { - "teal": 3186, + "teal": 3184, "source": "examples/reti/validatorRegistry.algo.ts:864", "pc": [ - 2977 + 2976 ] }, { - "teal": 3187, + "teal": 3185, "source": "examples/reti/validatorRegistry.algo.ts:864", "pc": [ - 2978 + 2977 ] }, { - "teal": 3188, + "teal": 3186, "source": "examples/reti/validatorRegistry.algo.ts:864", "pc": [ - 2979 + 2978, + 2979, + 2980 ] }, { - "teal": 3189, - "source": "examples/reti/validatorRegistry.algo.ts:864", + "teal": 3194, + "source": "examples/reti/validatorRegistry.algo.ts:865", "pc": [ - 2980, - 2981, - 2982 + 2981 ] }, { - "teal": 3197, + "teal": 3195, "source": "examples/reti/validatorRegistry.algo.ts:865", "pc": [ + 2982, 2983 ] }, { - "teal": 3198, + "teal": 3196, "source": "examples/reti/validatorRegistry.algo.ts:865", "pc": [ 2984, @@ -15120,7 +15120,7 @@ ] }, { - "teal": 3199, + "teal": 3197, "source": "examples/reti/validatorRegistry.algo.ts:865", "pc": [ 2986, @@ -15128,7 +15128,7 @@ ] }, { - "teal": 3200, + "teal": 3198, "source": "examples/reti/validatorRegistry.algo.ts:865", "pc": [ 2988, @@ -15136,105 +15136,105 @@ ] }, { - "teal": 3201, - "source": "examples/reti/validatorRegistry.algo.ts:865", + "teal": 3202, + "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ 2990, 2991 ] }, { - "teal": 3205, + "teal": 3203, "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 2992, - 2993 + 2992 ] }, { - "teal": 3206, + "teal": 3204, "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 2994 + 2993 ] }, { - "teal": 3207, + "teal": 3205, "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ + 2994, 2995 ] }, { - "teal": 3208, + "teal": 3206, "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ 2996, - 2997 + 2997, + 2998 ] }, { - "teal": 3209, + "teal": 3207, "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 2998, - 2999, - 3000 + 2999 ] }, { - "teal": 3210, + "teal": 3208, "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 3001 + 3000 ] }, { - "teal": 3211, + "teal": 3209, "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 3002 + 3001 ] }, { - "teal": 3212, + "teal": 3210, "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ + 3002, 3003 ] }, { - "teal": 3213, + "teal": 3211, "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 3004, - 3005 + 3004 ] }, { - "teal": 3214, + "teal": 3212, "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 3006 + 3005 ] }, { - "teal": 3215, + "teal": 3213, "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ + 3006, 3007 ] }, { - "teal": 3216, - "source": "examples/reti/validatorRegistry.algo.ts:866", + "teal": 3217, + "source": "examples/reti/validatorRegistry.algo.ts:867", "pc": [ 3008, 3009 ] }, { - "teal": 3220, + "teal": 3218, "source": "examples/reti/validatorRegistry.algo.ts:867", "pc": [ 3010, @@ -15242,7 +15242,7 @@ ] }, { - "teal": 3221, + "teal": 3219, "source": "examples/reti/validatorRegistry.algo.ts:867", "pc": [ 3012, @@ -15250,22 +15250,22 @@ ] }, { - "teal": 3222, + "teal": 3220, "source": "examples/reti/validatorRegistry.algo.ts:867", "pc": [ - 3014, - 3015 + 3014 ] }, { - "teal": 3223, + "teal": 3221, "source": "examples/reti/validatorRegistry.algo.ts:867", "pc": [ + 3015, 3016 ] }, { - "teal": 3224, + "teal": 3222, "source": "examples/reti/validatorRegistry.algo.ts:867", "pc": [ 3017, @@ -15273,32 +15273,32 @@ ] }, { - "teal": 3225, + "teal": 3223, "source": "examples/reti/validatorRegistry.algo.ts:867", "pc": [ - 3019, - 3020 + 3019 ] }, { - "teal": 3226, + "teal": 3224, "source": "examples/reti/validatorRegistry.algo.ts:867", "pc": [ + 3020, 3021 ] }, { "teal": 3227, - "source": "examples/reti/validatorRegistry.algo.ts:867", + "source": "examples/reti/validatorRegistry.algo.ts:865", "pc": [ - 3022, - 3023 + 3022 ] }, { - "teal": 3230, + "teal": 3228, "source": "examples/reti/validatorRegistry.algo.ts:865", "pc": [ + 3023, 3024 ] }, @@ -15306,45 +15306,45 @@ "teal": 3231, "source": "examples/reti/validatorRegistry.algo.ts:865", "pc": [ - 3025, - 3026 + 3025 ] }, { "teal": 3234, - "source": "examples/reti/validatorRegistry.algo.ts:865", + "source": "examples/reti/validatorRegistry.algo.ts:850", "pc": [ - 3027 + 3026, + 3027, + 3028 ] }, { - "teal": 3237, - "source": "examples/reti/validatorRegistry.algo.ts:850", + "teal": 3242, + "source": "examples/reti/validatorRegistry.algo.ts:892", "pc": [ - 3028, 3029, 3030 ] }, { - "teal": 3245, + "teal": 3243, "source": "examples/reti/validatorRegistry.algo.ts:892", "pc": [ 3031, - 3032 + 3032, + 3033 ] }, { - "teal": 3246, - "source": "examples/reti/validatorRegistry.algo.ts:892", + "teal": 3248, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3033, 3034, 3035 ] }, { - "teal": 3251, + "teal": 3249, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ 3036, @@ -15352,460 +15352,460 @@ ] }, { - "teal": 3252, + "teal": 3250, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ 3038, - 3039 + 3039, + 3040 ] }, { - "teal": 3253, + "teal": 3251, + "source": "examples/reti/validatorRegistry.algo.ts:894", + "pc": [ + 3041 + ] + }, + { + "teal": 3252, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3040, - 3041, 3042 ] }, { - "teal": 3254, + "teal": 3253, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ 3043 ] }, + { + "teal": 3254, + "source": "examples/reti/validatorRegistry.algo.ts:894", + "pc": [ + 3044, + 3045 + ] + }, { "teal": 3255, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3044 + 3046 ] }, { "teal": 3256, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3045 + 3047 ] }, { "teal": 3257, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3046, - 3047 + 3048 ] }, { "teal": 3258, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3048 + 3049 ] }, { "teal": 3259, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3049 + 3050, + 3051 ] }, { "teal": 3260, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3050 + 3052, + 3053 ] }, { "teal": 3261, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3051 + 3054, + 3055, + 3056 ] }, { "teal": 3262, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3052, - 3053 + 3057 ] }, { "teal": 3263, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3054, - 3055 + 3058 ] }, { "teal": 3264, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3056, - 3057, - 3058 + 3059 ] }, { "teal": 3265, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3059 + 3060, + 3061 ] }, { "teal": 3266, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3060 + 3062 ] }, { "teal": 3267, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3061 + 3063 ] }, { "teal": 3268, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3062, - 3063 + 3064 ] }, { "teal": 3269, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3064 + 3065 ] }, { "teal": 3270, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3065 + 3066, + 3067 ] }, { "teal": 3271, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3066 + 3068 ] }, { "teal": 3272, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3067 + 3069, + 3070 ] }, { "teal": 3273, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3068, - 3069 + 3071, + 3072, + 3073 ] }, { "teal": 3274, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3070 + 3074 ] }, { "teal": 3275, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3071, - 3072 + 3075 ] }, { "teal": 3276, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3073, - 3074, - 3075 + 3076 ] }, { "teal": 3277, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3076 + 3077, + 3078 ] }, { "teal": 3278, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3077 + 3079 ] }, { "teal": 3279, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3078 + 3080 ] }, { "teal": 3280, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3079, - 3080 + 3081 ] }, { "teal": 3281, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3081 + 3082 ] }, { "teal": 3282, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3082 + 3083 ] }, { "teal": 3283, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3083 + 3084, + 3085, + 3086 ] }, { "teal": 3284, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3084 + 3087 ] }, { "teal": 3285, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3085 + 3088, + 3089 ] }, { "teal": 3286, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3086, - 3087, - 3088 + 3090, + 3091, + 3092 ] }, { "teal": 3287, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3089 + 3093 ] }, { "teal": 3288, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3090, - 3091 - ] - }, - { - "teal": 3289, - "source": "examples/reti/validatorRegistry.algo.ts:894", - "pc": [ - 3092, - 3093, 3094 ] }, { - "teal": 3290, + "teal": 3289, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ 3095 ] }, { - "teal": 3291, - "source": "examples/reti/validatorRegistry.algo.ts:894", - "pc": [ - 3096 - ] - }, - { - "teal": 3292, + "teal": 3290, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ + 3096, 3097 ] }, { - "teal": 3293, + "teal": 3291, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3098, - 3099 + 3098 ] }, { - "teal": 3294, - "source": "examples/reti/validatorRegistry.algo.ts:894", + "teal": 3299, + "source": "examples/reti/validatorRegistry.algo.ts:897", "pc": [ + 3099, 3100 ] }, { - "teal": 3302, + "teal": 3300, "source": "examples/reti/validatorRegistry.algo.ts:897", "pc": [ 3101, - 3102 + 3102, + 3103 ] }, { - "teal": 3303, + "teal": 3301, "source": "examples/reti/validatorRegistry.algo.ts:897", "pc": [ - 3103, - 3104, - 3105 + 3104 ] }, { - "teal": 3304, + "teal": 3302, "source": "examples/reti/validatorRegistry.algo.ts:897", "pc": [ - 3106 + 3105 ] }, { - "teal": 3305, - "source": "examples/reti/validatorRegistry.algo.ts:897", + "teal": 3303, + "source": "examples/reti/validatorRegistry.algo.ts:898", "pc": [ + 3106, 3107 ] }, { - "teal": 3306, + "teal": 3304, "source": "examples/reti/validatorRegistry.algo.ts:898", "pc": [ 3108, - 3109 + 3109, + 3110 ] }, { - "teal": 3307, + "teal": 3305, "source": "examples/reti/validatorRegistry.algo.ts:898", "pc": [ - 3110, - 3111, - 3112 + 3111 ] }, { - "teal": 3308, + "teal": 3306, "source": "examples/reti/validatorRegistry.algo.ts:898", "pc": [ - 3113 + 3112 ] }, { - "teal": 3309, + "teal": 3307, "source": "examples/reti/validatorRegistry.algo.ts:898", "pc": [ - 3114 + 3113 ] }, { - "teal": 3310, - "source": "examples/reti/validatorRegistry.algo.ts:898", + "teal": 3308, + "source": "examples/reti/validatorRegistry.algo.ts:899", "pc": [ + 3114, 3115 ] }, { - "teal": 3311, + "teal": 3309, "source": "examples/reti/validatorRegistry.algo.ts:899", "pc": [ 3116, - 3117 + 3117, + 3118 ] }, { - "teal": 3312, + "teal": 3310, "source": "examples/reti/validatorRegistry.algo.ts:899", "pc": [ - 3118, - 3119, - 3120 + 3119 ] }, { - "teal": 3313, + "teal": 3311, "source": "examples/reti/validatorRegistry.algo.ts:899", "pc": [ - 3121 + 3120 ] }, { - "teal": 3314, + "teal": 3312, "source": "examples/reti/validatorRegistry.algo.ts:899", "pc": [ - 3122 + 3121 ] }, { - "teal": 3315, - "source": "examples/reti/validatorRegistry.algo.ts:899", + "teal": 3313, + "source": "examples/reti/validatorRegistry.algo.ts:896", "pc": [ + 3122, 3123 ] }, { - "teal": 3316, + "teal": 3314, "source": "examples/reti/validatorRegistry.algo.ts:896", "pc": [ 3124, - 3125 + 3125, + 3126 ] }, { - "teal": 3317, + "teal": 3315, "source": "examples/reti/validatorRegistry.algo.ts:896", "pc": [ - 3126, 3127, 3128 ] }, { - "teal": 3318, - "source": "examples/reti/validatorRegistry.algo.ts:896", + "teal": 3319, + "source": "examples/reti/validatorRegistry.algo.ts:901", "pc": [ 3129, 3130 ] }, { - "teal": 3322, + "teal": 3320, "source": "examples/reti/validatorRegistry.algo.ts:901", "pc": [ 3131, @@ -15813,7 +15813,7 @@ ] }, { - "teal": 3323, + "teal": 3321, "source": "examples/reti/validatorRegistry.algo.ts:901", "pc": [ 3133, @@ -15821,37 +15821,37 @@ ] }, { - "teal": 3324, + "teal": 3322, "source": "examples/reti/validatorRegistry.algo.ts:901", "pc": [ - 3135, - 3136 + 3135 ] }, { - "teal": 3325, + "teal": 3323, "source": "examples/reti/validatorRegistry.algo.ts:901", "pc": [ - 3137 + 3136 ] }, { - "teal": 3326, + "teal": 3324, "source": "examples/reti/validatorRegistry.algo.ts:901", "pc": [ + 3137, 3138 ] }, { - "teal": 3327, - "source": "examples/reti/validatorRegistry.algo.ts:901", + "teal": 3328, + "source": "examples/reti/validatorRegistry.algo.ts:902", "pc": [ 3139, 3140 ] }, { - "teal": 3331, + "teal": 3329, "source": "examples/reti/validatorRegistry.algo.ts:902", "pc": [ 3141, @@ -15859,7 +15859,7 @@ ] }, { - "teal": 3332, + "teal": 3330, "source": "examples/reti/validatorRegistry.algo.ts:902", "pc": [ 3143, @@ -15867,633 +15867,633 @@ ] }, { - "teal": 3333, + "teal": 3331, "source": "examples/reti/validatorRegistry.algo.ts:902", "pc": [ - 3145, - 3146 + 3145 ] }, { - "teal": 3334, + "teal": 3332, "source": "examples/reti/validatorRegistry.algo.ts:902", "pc": [ - 3147 + 3146 ] }, { - "teal": 3335, + "teal": 3333, "source": "examples/reti/validatorRegistry.algo.ts:902", "pc": [ + 3147, 3148 ] }, { - "teal": 3336, - "source": "examples/reti/validatorRegistry.algo.ts:902", + "teal": 3338, + "source": "examples/reti/validatorRegistry.algo.ts:904", "pc": [ 3149, 3150 ] }, { - "teal": 3341, + "teal": 3339, "source": "examples/reti/validatorRegistry.algo.ts:904", "pc": [ 3151, - 3152 + 3152, + 3153 ] }, { - "teal": 3342, - "source": "examples/reti/validatorRegistry.algo.ts:904", + "teal": 3344, + "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3153, 3154, 3155 ] }, { - "teal": 3347, + "teal": 3345, + "source": "examples/reti/validatorRegistry.algo.ts:905", + "pc": [ + 3156 + ] + }, + { + "teal": 3346, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3156, 3157 ] }, { - "teal": 3348, + "teal": 3347, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ 3158 ] }, + { + "teal": 3348, + "source": "examples/reti/validatorRegistry.algo.ts:905", + "pc": [ + 3159, + 3160 + ] + }, { "teal": 3349, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3159 + 3161, + 3162, + 3163 ] }, { "teal": 3350, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3160 + 3164 ] }, { "teal": 3351, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3161, - 3162 + 3165 ] }, { "teal": 3352, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3163, - 3164, - 3165 + 3166 ] }, { "teal": 3353, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3166 + 3167, + 3168 ] }, { "teal": 3354, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3167 + 3169 ] }, { "teal": 3355, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3168 + 3170 ] }, { "teal": 3356, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3169, - 3170 + 3171 ] }, { "teal": 3357, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3171 + 3172 ] }, { "teal": 3358, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3172 + 3173 ] }, { "teal": 3359, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3173 + 3174 ] }, { "teal": 3360, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3174 + 3175, + 3176 ] }, { "teal": 3361, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3175 + 3177, + 3178, + 3179 ] }, { "teal": 3362, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3176 + 3180 ] }, { "teal": 3363, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3177, - 3178 - ] - }, - { - "teal": 3364, - "source": "examples/reti/validatorRegistry.algo.ts:905", - "pc": [ - 3179, - 3180, 3181 ] }, { - "teal": 3365, + "teal": 3364, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ 3182 ] }, { - "teal": 3366, - "source": "examples/reti/validatorRegistry.algo.ts:905", - "pc": [ - 3183 - ] - }, - { - "teal": 3367, + "teal": 3365, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ + 3183, 3184 ] }, { - "teal": 3368, + "teal": 3366, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3185, - 3186 + 3185 ] }, { - "teal": 3369, - "source": "examples/reti/validatorRegistry.algo.ts:905", + "teal": 3372, + "source": "examples/reti/validatorRegistry.algo.ts:908", "pc": [ + 3186, 3187 ] }, { - "teal": 3375, + "teal": 3373, "source": "examples/reti/validatorRegistry.algo.ts:908", "pc": [ 3188, - 3189 + 3189, + 3190 ] }, { - "teal": 3376, - "source": "examples/reti/validatorRegistry.algo.ts:908", + "teal": 3378, + "source": "examples/reti/validatorRegistry.algo.ts:909", "pc": [ - 3190, 3191, 3192 ] }, { - "teal": 3381, + "teal": 3379, "source": "examples/reti/validatorRegistry.algo.ts:909", "pc": [ - 3193, - 3194 + 3193 ] }, { - "teal": 3382, + "teal": 3380, "source": "examples/reti/validatorRegistry.algo.ts:909", "pc": [ - 3195 + 3194 ] }, { - "teal": 3383, + "teal": 3381, "source": "examples/reti/validatorRegistry.algo.ts:909", "pc": [ - 3196 + 3195 ] }, { - "teal": 3384, + "teal": 3382, "source": "examples/reti/validatorRegistry.algo.ts:909", "pc": [ + 3196, 3197 ] }, { - "teal": 3385, + "teal": 3383, "source": "examples/reti/validatorRegistry.algo.ts:909", "pc": [ - 3198, - 3199 + 3198 ] }, { - "teal": 3386, + "teal": 3384, "source": "examples/reti/validatorRegistry.algo.ts:909", "pc": [ - 3200 + 3199 ] }, { - "teal": 3387, - "source": "examples/reti/validatorRegistry.algo.ts:909", + "teal": 3389, + "source": "examples/reti/validatorRegistry.algo.ts:829", "pc": [ - 3201 + 3200 ] }, { - "teal": 3392, - "source": "examples/reti/validatorRegistry.algo.ts:829", + "teal": 3394, + "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3202 + 3201 ] }, { "teal": 3397, - "source": "examples/reti/validatorRegistry.algo.ts:925", + "source": "examples/reti/validatorRegistry.algo.ts:928", "pc": [ - 3203 + 3202, + 3203, + 3204 ] }, { - "teal": 3400, + "teal": 3398, "source": "examples/reti/validatorRegistry.algo.ts:928", "pc": [ - 3204, - 3205, - 3206 + 3205 ] }, { "teal": 3401, - "source": "examples/reti/validatorRegistry.algo.ts:928", + "source": "examples/reti/validatorRegistry.algo.ts:927", "pc": [ - 3207 + 3206, + 3207, + 3208 ] }, { - "teal": 3404, + "teal": 3402, "source": "examples/reti/validatorRegistry.algo.ts:927", "pc": [ - 3208, - 3209, - 3210 + 3209 ] }, { - "teal": 3405, + "teal": 3403, "source": "examples/reti/validatorRegistry.algo.ts:927", "pc": [ - 3211 + 3210 ] }, { - "teal": 3406, + "teal": 3404, "source": "examples/reti/validatorRegistry.algo.ts:927", "pc": [ + 3211, 3212 ] }, { - "teal": 3407, + "teal": 3405, "source": "examples/reti/validatorRegistry.algo.ts:927", "pc": [ - 3213, - 3214 + 3213 ] }, { "teal": 3408, "source": "examples/reti/validatorRegistry.algo.ts:927", + "errorMessage": "argument 1 (staker) for findPoolForStaker must be a address", "pc": [ - 3215 + 3214 ] }, { "teal": 3411, - "source": "examples/reti/validatorRegistry.algo.ts:927", - "errorMessage": "argument 1 (staker) for findPoolForStaker must be a address", + "source": "examples/reti/validatorRegistry.algo.ts:926", "pc": [ - 3216 + 3215, + 3216, + 3217 ] }, { - "teal": 3414, + "teal": 3412, "source": "examples/reti/validatorRegistry.algo.ts:926", "pc": [ - 3217, - 3218, - 3219 + 3218 ] }, { "teal": 3415, - "source": "examples/reti/validatorRegistry.algo.ts:926", + "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3220 + 3219, + 3220, + 3221 ] }, { - "teal": 3418, + "teal": 3416, "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3221, - 3222, - 3223 + 3222 ] }, { - "teal": 3419, + "teal": 3417, "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3224 + 3223 ] }, { - "teal": 3420, + "teal": 3418, "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3225 + 3224 ] }, { - "teal": 3421, + "teal": 3419, "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3226 + 3225 ] }, { - "teal": 3422, + "teal": 3433, "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3227 + 3226, + 3227, + 3228 ] }, { "teal": 3436, "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3228, - 3229, - 3230 + 3229 ] }, { - "teal": 3439, + "teal": 3437, "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ + 3230, 3231 ] }, { - "teal": 3440, - "source": "examples/reti/validatorRegistry.algo.ts:925", + "teal": 3441, + "source": "examples/reti/validatorRegistry.algo.ts:930", "pc": [ - 3232, - 3233 + 3232 ] }, { - "teal": 3444, + "teal": 3442, "source": "examples/reti/validatorRegistry.algo.ts:930", "pc": [ + 3233, 3234 ] }, { - "teal": 3445, - "source": "examples/reti/validatorRegistry.algo.ts:930", + "teal": 3446, + "source": "examples/reti/validatorRegistry.algo.ts:931", "pc": [ - 3235, - 3236 + 3235 ] }, { - "teal": 3449, + "teal": 3447, "source": "examples/reti/validatorRegistry.algo.ts:931", "pc": [ + 3236, 3237 ] }, { - "teal": 3450, - "source": "examples/reti/validatorRegistry.algo.ts:931", + "teal": 3451, + "source": "examples/reti/validatorRegistry.algo.ts:939", "pc": [ 3238, 3239 ] }, { - "teal": 3454, + "teal": 3452, "source": "examples/reti/validatorRegistry.algo.ts:939", "pc": [ 3240, - 3241 + 3241, + 3242 ] }, { - "teal": 3455, + "teal": 3453, "source": "examples/reti/validatorRegistry.algo.ts:939", "pc": [ - 3242, 3243, 3244 ] }, { - "teal": 3456, - "source": "examples/reti/validatorRegistry.algo.ts:939", + "teal": 3458, + "source": "examples/reti/validatorRegistry.algo.ts:942", "pc": [ - 3245, - 3246 + 3245 ] }, { - "teal": 3461, + "teal": 3459, "source": "examples/reti/validatorRegistry.algo.ts:942", "pc": [ + 3246, 3247 ] }, { - "teal": 3462, + "teal": 3460, "source": "examples/reti/validatorRegistry.algo.ts:942", "pc": [ - 3248, - 3249 + 3248 ] }, { - "teal": 3463, + "teal": 3461, "source": "examples/reti/validatorRegistry.algo.ts:942", "pc": [ - 3250 + 3249 ] }, { - "teal": 3464, + "teal": 3462, "source": "examples/reti/validatorRegistry.algo.ts:942", "pc": [ - 3251 + 3250 ] }, { - "teal": 3465, + "teal": 3463, "source": "examples/reti/validatorRegistry.algo.ts:942", "pc": [ - 3252 + 3251 ] }, { - "teal": 3466, + "teal": 3464, "source": "examples/reti/validatorRegistry.algo.ts:942", "pc": [ - 3253 + 3252, + 3253, + 3254 ] }, { - "teal": 3467, - "source": "examples/reti/validatorRegistry.algo.ts:942", + "teal": 3469, + "source": "examples/reti/validatorRegistry.algo.ts:943", "pc": [ - 3254, - 3255, - 3256 + 3255 ] }, { - "teal": 3472, + "teal": 3470, "source": "examples/reti/validatorRegistry.algo.ts:943", "pc": [ + 3256, 3257 ] }, { - "teal": 3473, + "teal": 3471, "source": "examples/reti/validatorRegistry.algo.ts:943", "pc": [ - 3258, - 3259 + 3258 ] }, { - "teal": 3474, + "teal": 3472, "source": "examples/reti/validatorRegistry.algo.ts:943", "pc": [ - 3260 + 3259 ] }, { "teal": 3475, "source": "examples/reti/validatorRegistry.algo.ts:943", + "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value", "pc": [ - 3261 + 3260 ] }, { - "teal": 3478, + "teal": 3476, "source": "examples/reti/validatorRegistry.algo.ts:943", - "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value", "pc": [ + 3261, 3262 ] }, { - "teal": 3479, - "source": "examples/reti/validatorRegistry.algo.ts:943", + "teal": 3480, + "source": "examples/reti/validatorRegistry.algo.ts:944", "pc": [ 3263, 3264 ] }, { - "teal": 3483, + "teal": 3481, "source": "examples/reti/validatorRegistry.algo.ts:944", "pc": [ - 3265, - 3266 + 3265 ] }, { - "teal": 3484, + "teal": 3482, "source": "examples/reti/validatorRegistry.algo.ts:944", "pc": [ - 3267 + 3266 ] }, { - "teal": 3485, + "teal": 3483, "source": "examples/reti/validatorRegistry.algo.ts:944", "pc": [ - 3268 + 3267 ] }, { - "teal": 3486, - "source": "examples/reti/validatorRegistry.algo.ts:944", + "teal": 3487, + "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ - 3269 + 3268 ] }, { - "teal": 3490, + "teal": 3488, "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ + 3269, 3270 ] }, { - "teal": 3491, + "teal": 3493, "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ 3271, @@ -16501,7 +16501,7 @@ ] }, { - "teal": 3496, + "teal": 3494, "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ 3273, @@ -16509,31 +16509,31 @@ ] }, { - "teal": 3497, + "teal": 3495, "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ - 3275, - 3276 + 3275 ] }, { - "teal": 3498, + "teal": 3496, "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ - 3277 + 3276, + 3277, + 3278 ] }, { - "teal": 3499, - "source": "examples/reti/validatorRegistry.algo.ts:945", + "teal": 3501, + "source": "examples/reti/validatorRegistry.algo.ts:946", "pc": [ - 3278, 3279, 3280 ] }, { - "teal": 3504, + "teal": 3502, "source": "examples/reti/validatorRegistry.algo.ts:946", "pc": [ 3281, @@ -16541,38 +16541,38 @@ ] }, { - "teal": 3505, + "teal": 3503, "source": "examples/reti/validatorRegistry.algo.ts:946", "pc": [ - 3283, - 3284 + 3283 ] }, { - "teal": 3506, + "teal": 3504, "source": "examples/reti/validatorRegistry.algo.ts:946", "pc": [ - 3285 + 3284, + 3285, + 3286 ] }, { - "teal": 3507, - "source": "examples/reti/validatorRegistry.algo.ts:946", + "teal": 3509, + "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ - 3286, - 3287, - 3288 + 3287 ] }, { - "teal": 3512, + "teal": 3510, "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ + 3288, 3289 ] }, { - "teal": 3513, + "teal": 3511, "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ 3290, @@ -16580,22 +16580,22 @@ ] }, { - "teal": 3514, + "teal": 3512, "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ - 3292, - 3293 + 3292 ] }, { - "teal": 3515, + "teal": 3513, "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ + 3293, 3294 ] }, { - "teal": 3516, + "teal": 3514, "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ 3295, @@ -16603,22 +16603,22 @@ ] }, { - "teal": 3517, + "teal": 3515, "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ - 3297, - 3298 + 3297 ] }, { - "teal": 3518, + "teal": 3516, "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ + 3298, 3299 ] }, { - "teal": 3519, + "teal": 3517, "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ 3300, @@ -16626,7 +16626,7 @@ ] }, { - "teal": 3520, + "teal": 3518, "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ 3302, @@ -16634,7 +16634,7 @@ ] }, { - "teal": 3521, + "teal": 3519, "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ 3304, @@ -16642,22 +16642,22 @@ ] }, { - "teal": 3522, + "teal": 3520, "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ - 3306, - 3307 + 3306 ] }, { - "teal": 3523, - "source": "examples/reti/validatorRegistry.algo.ts:947", + "teal": 3526, + "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ + 3307, 3308 ] }, { - "teal": 3529, + "teal": 3527, "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ 3309, @@ -16665,111 +16665,111 @@ ] }, { - "teal": 3530, + "teal": 3528, + "source": "examples/reti/validatorRegistry.algo.ts:949", + "pc": [ + 3311 + ] + }, + { + "teal": 3529, "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ - 3311, 3312 ] }, { - "teal": 3531, + "teal": 3530, "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ 3313 ] }, { - "teal": 3532, + "teal": 3531, "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ 3314 ] }, { - "teal": 3533, + "teal": 3532, "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ 3315 ] }, { - "teal": 3534, + "teal": 3533, "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ 3316 ] }, { - "teal": 3535, + "teal": 3534, "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ 3317 ] }, { - "teal": 3536, + "teal": 3535, "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ 3318 ] }, { - "teal": 3537, + "teal": 3536, "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ 3319 ] }, { - "teal": 3538, - "source": "examples/reti/validatorRegistry.algo.ts:949", - "pc": [ - 3320 - ] - }, - { - "teal": 3539, + "teal": 3537, "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ - 3321 + 3320, + 3321, + 3322 ] }, { "teal": 3540, - "source": "examples/reti/validatorRegistry.algo.ts:949", + "source": "examples/reti/validatorRegistry.algo.ts:950", "pc": [ - 3322, 3323, - 3324 + 3324, + 3325 ] }, { - "teal": 3543, - "source": "examples/reti/validatorRegistry.algo.ts:950", + "teal": 3545, + "source": "examples/reti/validatorRegistry.algo.ts:952", "pc": [ - 3325, - 3326, - 3327 + 3326 ] }, { - "teal": 3548, + "teal": 3546, "source": "examples/reti/validatorRegistry.algo.ts:952", "pc": [ + 3327, 3328 ] }, { - "teal": 3549, - "source": "examples/reti/validatorRegistry.algo.ts:952", + "teal": 3551, + "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ 3329, 3330 ] }, { - "teal": 3554, + "teal": 3552, "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ 3331, @@ -16777,103 +16777,103 @@ ] }, { - "teal": 3555, + "teal": 3553, + "source": "examples/reti/validatorRegistry.algo.ts:953", + "pc": [ + 3333 + ] + }, + { + "teal": 3554, "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ - 3333, 3334 ] }, { - "teal": 3556, + "teal": 3555, "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ 3335 ] }, { - "teal": 3557, + "teal": 3556, "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ 3336 ] }, { - "teal": 3558, + "teal": 3557, "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ 3337 ] }, { - "teal": 3559, + "teal": 3558, "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ 3338 ] }, { - "teal": 3560, + "teal": 3559, "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ 3339 ] }, { - "teal": 3561, - "source": "examples/reti/validatorRegistry.algo.ts:953", - "pc": [ - 3340 - ] - }, - { - "teal": 3562, + "teal": 3560, "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ + 3340, 3341 ] }, { - "teal": 3563, + "teal": 3561, "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ - 3342, - 3343 + 3342 ] }, { - "teal": 3564, + "teal": 3562, "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ - 3344 + 3343, + 3344, + 3345 ] }, { - "teal": 3565, - "source": "examples/reti/validatorRegistry.algo.ts:953", + "teal": 3567, + "source": "examples/reti/validatorRegistry.algo.ts:955", "pc": [ - 3345, - 3346, - 3347 + 3346 ] }, { - "teal": 3570, + "teal": 3568, "source": "examples/reti/validatorRegistry.algo.ts:955", "pc": [ + 3347, 3348 ] }, { - "teal": 3571, - "source": "examples/reti/validatorRegistry.algo.ts:955", + "teal": 3574, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ 3349, 3350 ] }, { - "teal": 3577, + "teal": 3575, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ 3351, @@ -16881,7 +16881,7 @@ ] }, { - "teal": 3578, + "teal": 3576, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ 3353, @@ -16889,363 +16889,363 @@ ] }, { - "teal": 3579, + "teal": 3577, + "source": "examples/reti/validatorRegistry.algo.ts:957", + "pc": [ + 3355 + ] + }, + { + "teal": 3578, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3355, 3356 ] }, { - "teal": 3580, + "teal": 3579, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ 3357 ] }, { - "teal": 3581, + "teal": 3580, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ 3358 ] }, { - "teal": 3582, + "teal": 3581, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ 3359 ] }, { - "teal": 3583, + "teal": 3582, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ 3360 ] }, { - "teal": 3584, + "teal": 3583, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ 3361 ] }, { - "teal": 3585, + "teal": 3584, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ 3362 ] }, { - "teal": 3586, + "teal": 3585, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ 3363 ] }, + { + "teal": 3586, + "source": "examples/reti/validatorRegistry.algo.ts:957", + "pc": [ + 3364, + 3365 + ] + }, { "teal": 3587, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3364 + 3366 ] }, { "teal": 3588, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3365 + 3367 ] }, { "teal": 3589, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3366, - 3367 + 3368, + 3369 ] }, { "teal": 3590, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3368 + 3370 ] }, { "teal": 3591, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3369 + 3371 ] }, { "teal": 3592, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3370, - 3371 + 3372 ] }, { "teal": 3593, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3372 + 3373, + 3374 ] }, { "teal": 3594, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3373 + 3375 ] }, { "teal": 3595, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3374 + 3376 ] }, { "teal": 3596, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3375, - 3376 + 3377, + 3378 ] }, { "teal": 3597, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3377 + 3379 ] }, { "teal": 3598, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3378 + 3380 ] }, { "teal": 3599, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3379, - 3380 + 3381, + 3382 ] }, { "teal": 3600, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3381 + 3383 ] }, { "teal": 3601, - "source": "examples/reti/validatorRegistry.algo.ts:957", + "source": "examples/reti/validatorRegistry.algo.ts:958", "pc": [ - 3382 + 3384, + 3385 ] }, { "teal": 3602, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3383, - 3384 + 3386 ] }, { "teal": 3603, - "source": "examples/reti/validatorRegistry.algo.ts:957", + "source": "examples/reti/validatorRegistry.algo.ts:956", "pc": [ - 3385 + 3387, + 3388, + 3389 ] }, { - "teal": 3604, - "source": "examples/reti/validatorRegistry.algo.ts:958", + "teal": 3608, + "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3386, - 3387 + 3390, + 3391 ] }, { - "teal": 3605, - "source": "examples/reti/validatorRegistry.algo.ts:957", + "teal": 3609, + "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3388 + 3392, + 3393 ] }, { - "teal": 3606, - "source": "examples/reti/validatorRegistry.algo.ts:956", + "teal": 3610, + "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3389, - 3390, - 3391 + 3394 ] }, { "teal": 3611, "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3392, - 3393 + 3395 ] }, { "teal": 3612, "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3394, - 3395 + 3396 ] }, { "teal": 3613, "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3396 + 3397 ] }, { "teal": 3614, "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3397 + 3398, + 3399 ] }, { "teal": 3615, "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3398 + 3400 ] }, { "teal": 3616, "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3399 + 3401, + 3402 ] }, { "teal": 3617, "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3400, - 3401 + 3403 ] }, { "teal": 3618, "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3402 + 3404 ] }, { "teal": 3619, "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3403, - 3404 + 3405, + 3406 ] }, { "teal": 3620, "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3405 + 3407 ] }, { "teal": 3621, "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3406 - ] - }, - { - "teal": 3622, - "source": "examples/reti/validatorRegistry.algo.ts:960", - "pc": [ - 3407, 3408 ] }, { - "teal": 3623, - "source": "examples/reti/validatorRegistry.algo.ts:960", - "pc": [ - 3409 - ] - }, - { - "teal": 3624, + "teal": 3622, "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3410 + 3409, + 3410, + 3411 ] }, { - "teal": 3625, - "source": "examples/reti/validatorRegistry.algo.ts:960", + "teal": 3631, + "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ - 3411, 3412, 3413 ] }, { - "teal": 3634, + "teal": 3632, "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ - 3414, - 3415 + 3414 ] }, { - "teal": 3635, + "teal": 3633, "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ - 3416 + 3415 ] }, { - "teal": 3636, + "teal": 3634, "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ + 3416, 3417 ] }, { - "teal": 3637, + "teal": 3635, "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ 3418, - 3419 + 3419, + 3420 ] }, { - "teal": 3638, - "source": "examples/reti/validatorRegistry.algo.ts:945", + "teal": 3645, + "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3420, 3421, 3422 ] }, { - "teal": 3648, + "teal": 3646, "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ 3423, @@ -17253,88 +17253,88 @@ ] }, { - "teal": 3649, + "teal": 3647, "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3425, - 3426 + 3425 ] }, { - "teal": 3650, + "teal": 3648, "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3427 + 3426 ] }, { - "teal": 3651, + "teal": 3649, "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ + 3427, 3428 ] }, { - "teal": 3652, + "teal": 3650, "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3429, - 3430 + 3429 ] }, { - "teal": 3653, + "teal": 3651, "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3431 + 3430 ] }, { - "teal": 3654, + "teal": 3652, "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ + 3431, 3432 ] }, { - "teal": 3655, + "teal": 3653, "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3433, - 3434 + 3433 ] }, { - "teal": 3656, + "teal": 3654, "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3435 + 3434 ] }, { - "teal": 3657, + "teal": 3655, "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3436 + 3435 ] }, { "teal": 3658, - "source": "examples/reti/validatorRegistry.algo.ts:968", + "source": "examples/reti/validatorRegistry.algo.ts:967", + "errorMessage": "must stake at least the minimum for this pool", "pc": [ - 3437 + 3436 ] }, { - "teal": 3661, - "source": "examples/reti/validatorRegistry.algo.ts:967", - "errorMessage": "must stake at least the minimum for this pool", + "teal": 3662, + "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ + 3437, 3438 ] }, { - "teal": 3665, + "teal": 3663, "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ 3439, @@ -17342,67 +17342,67 @@ ] }, { - "teal": 3666, + "teal": 3664, "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ - 3441, - 3442 + 3441 ] }, { - "teal": 3667, + "teal": 3665, "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ + 3442, 3443 ] }, { - "teal": 3668, + "teal": 3666, "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ - 3444, - 3445 + 3444 ] }, { - "teal": 3669, + "teal": 3667, "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ - 3446 + 3445 ] }, { - "teal": 3670, + "teal": 3668, "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ + 3446, 3447 ] }, { - "teal": 3671, + "teal": 3669, "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ - 3448, - 3449 + 3448 ] }, { - "teal": 3672, + "teal": 3670, "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ + 3449, 3450 ] }, { - "teal": 3673, - "source": "examples/reti/validatorRegistry.algo.ts:973", + "teal": 3674, + "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ 3451, 3452 ] }, { - "teal": 3677, + "teal": 3675, "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ 3453, @@ -17410,81 +17410,81 @@ ] }, { - "teal": 3678, + "teal": 3676, "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ - 3455, - 3456 + 3455 ] }, { - "teal": 3679, + "teal": 3677, "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ + 3456, 3457 ] }, { - "teal": 3680, + "teal": 3678, "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ - 3458, - 3459 + 3458 ] }, { - "teal": 3681, + "teal": 3679, "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ - 3460 + 3459 ] }, { - "teal": 3682, + "teal": 3680, "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ + 3460, 3461 ] }, { - "teal": 3683, + "teal": 3681, "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ - 3462, - 3463 + 3462 ] }, { - "teal": 3684, + "teal": 3682, "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ - 3464 + 3463 ] }, { - "teal": 3685, + "teal": 3683, "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ + 3464, 3465 ] }, { - "teal": 3686, - "source": "examples/reti/validatorRegistry.algo.ts:974", + "teal": 3687, + "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ - 3466, - 3467 + 3466 ] }, { - "teal": 3690, + "teal": 3688, "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ + 3467, 3468 ] }, { - "teal": 3691, + "teal": 3693, "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ 3469, @@ -17492,7 +17492,7 @@ ] }, { - "teal": 3696, + "teal": 3694, "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ 3471, @@ -17500,31 +17500,31 @@ ] }, { - "teal": 3697, + "teal": 3695, "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ - 3473, - 3474 + 3473 ] }, { - "teal": 3698, + "teal": 3696, "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ - 3475 + 3474, + 3475, + 3476 ] }, { - "teal": 3699, - "source": "examples/reti/validatorRegistry.algo.ts:975", + "teal": 3701, + "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3476, 3477, 3478 ] }, { - "teal": 3704, + "teal": 3702, "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ 3479, @@ -17532,442 +17532,442 @@ ] }, { - "teal": 3705, + "teal": 3703, "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ 3481, 3482 ] }, + { + "teal": 3704, + "source": "examples/reti/validatorRegistry.algo.ts:976", + "pc": [ + 3483 + ] + }, + { + "teal": 3705, + "source": "examples/reti/validatorRegistry.algo.ts:976", + "pc": [ + 3484, + 3485 + ] + }, { "teal": 3706, "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3483, - 3484 + 3486 ] }, { "teal": 3707, "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3485 + 3487 ] }, { "teal": 3708, "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3486, - 3487 + 3488 ] }, { "teal": 3709, "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3488 + 3489 ] }, { "teal": 3710, "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3489 + 3490, + 3491 ] }, { "teal": 3711, "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3490 + 3492 ] }, { "teal": 3712, "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3491 + 3493, + 3494 ] }, { "teal": 3713, "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3492, - 3493 + 3495 ] }, { "teal": 3714, "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3494 + 3496, + 3497, + 3498 ] }, { - "teal": 3715, - "source": "examples/reti/validatorRegistry.algo.ts:976", + "teal": 3723, + "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3495, - 3496 + 3499, + 3500 ] }, { - "teal": 3716, - "source": "examples/reti/validatorRegistry.algo.ts:976", + "teal": 3724, + "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3497 + 3501 ] }, { - "teal": 3717, - "source": "examples/reti/validatorRegistry.algo.ts:976", + "teal": 3725, + "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3498, - 3499, - 3500 + 3502, + 3503 ] }, { "teal": 3726, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3501, - 3502 + 3504 ] }, { "teal": 3727, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3503 + 3505 ] }, { "teal": 3728, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3504, - 3505 + 3506 ] }, { "teal": 3729, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3506 + 3507 ] }, { "teal": 3730, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3507 + 3508, + 3509 ] }, { "teal": 3731, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3508 + 3510, + 3511 ] }, { "teal": 3732, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3509 + 3512, + 3513 ] }, { "teal": 3733, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3510, - 3511 + 3514 ] }, { "teal": 3734, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3512, - 3513 + 3515 ] }, { "teal": 3735, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3514, - 3515 + 3516 ] }, { "teal": 3736, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3516 + 3517 ] }, { "teal": 3737, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3517 + 3518 ] }, { "teal": 3738, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3518 + 3519 ] }, { "teal": 3739, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3519 + 3520 ] }, { "teal": 3740, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3520 + 3521 ] }, { "teal": 3741, - "source": "examples/reti/validatorRegistry.algo.ts:978", + "source": "examples/reti/validatorRegistry.algo.ts:979", "pc": [ - 3521 + 3522, + 3523 ] }, { "teal": 3742, - "source": "examples/reti/validatorRegistry.algo.ts:978", + "source": "examples/reti/validatorRegistry.algo.ts:979", "pc": [ - 3522 + 3524 ] }, { "teal": 3743, - "source": "examples/reti/validatorRegistry.algo.ts:978", + "source": "examples/reti/validatorRegistry.algo.ts:979", "pc": [ - 3523 + 3525, + 3526 ] }, { "teal": 3744, "source": "examples/reti/validatorRegistry.algo.ts:979", "pc": [ - 3524, - 3525 + 3527 ] }, { "teal": 3745, - "source": "examples/reti/validatorRegistry.algo.ts:979", - "pc": [ - 3526 - ] - }, - { - "teal": 3746, - "source": "examples/reti/validatorRegistry.algo.ts:979", + "source": "examples/reti/validatorRegistry.algo.ts:980", "pc": [ - 3527, 3528 ] }, { - "teal": 3747, - "source": "examples/reti/validatorRegistry.algo.ts:979", - "pc": [ - 3529 - ] - }, - { - "teal": 3748, + "teal": 3746, "source": "examples/reti/validatorRegistry.algo.ts:980", "pc": [ + 3529, 3530 ] }, { - "teal": 3749, + "teal": 3747, "source": "examples/reti/validatorRegistry.algo.ts:980", "pc": [ - 3531, - 3532 + 3531 ] }, { - "teal": 3750, - "source": "examples/reti/validatorRegistry.algo.ts:980", + "teal": 3748, + "source": "examples/reti/validatorRegistry.algo.ts:977", "pc": [ - 3533 + 3532 ] }, { - "teal": 3751, + "teal": 3749, "source": "examples/reti/validatorRegistry.algo.ts:977", "pc": [ - 3534 + 3533, + 3534, + 3535 ] }, { - "teal": 3752, - "source": "examples/reti/validatorRegistry.algo.ts:977", + "teal": 3756, + "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ - 3535, 3536, 3537 ] }, { - "teal": 3759, + "teal": 3757, "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ - 3538, - 3539 + 3538 ] }, { - "teal": 3760, + "teal": 3758, "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ - 3540 + 3539 ] }, { - "teal": 3761, + "teal": 3759, "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ + 3540, 3541 ] }, { - "teal": 3762, + "teal": 3760, "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ 3542, - 3543 + 3543, + 3544 ] }, { - "teal": 3763, - "source": "examples/reti/validatorRegistry.algo.ts:975", + "teal": 3765, + "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3544, 3545, 3546 ] }, { - "teal": 3768, + "teal": 3766, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3547, - 3548 + 3547 ] }, { - "teal": 3769, + "teal": 3767, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ + 3548, 3549 ] }, { - "teal": 3770, + "teal": 3768, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3550, - 3551 + 3550 ] }, { - "teal": 3771, + "teal": 3769, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ + 3551, 3552 ] }, { - "teal": 3772, + "teal": 3770, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3553, - 3554 + 3553 ] }, { - "teal": 3773, + "teal": 3771, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ + 3554, 3555 ] }, { - "teal": 3774, + "teal": 3772, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3556, - 3557 + 3556 ] }, { - "teal": 3775, + "teal": 3773, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ + 3557, 3558 ] }, { - "teal": 3776, + "teal": 3774, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3559, - 3560 + 3559 ] }, { - "teal": 3777, + "teal": 3775, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3561 + 3560 ] }, { - "teal": 3778, + "teal": 3776, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ + 3561, 3562 ] }, { - "teal": 3779, + "teal": 3777, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3563, - 3564 + 3563 ] }, { - "teal": 3780, + "teal": 3778, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3565 + 3564 ] }, { - "teal": 3781, - "source": "examples/reti/validatorRegistry.algo.ts:985", + "teal": 3782, + "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ + 3565, 3566 ] }, @@ -17980,207 +17980,207 @@ ] }, { - "teal": 3788, + "teal": 3786, "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3569, - 3570 + 3569 ] }, { - "teal": 3789, - "source": "examples/reti/validatorRegistry.algo.ts:925", + "teal": 3791, + "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3571 + 3570, + 3571, + 3572 ] }, { - "teal": 3794, + "teal": 3792, "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3572, - 3573, - 3574 + 3573 ] }, { "teal": 3795, "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3575 + 3574, + 3575, + 3576 ] }, { - "teal": 3798, + "teal": 3796, "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3576, - 3577, - 3578 + 3577 ] }, { "teal": 3799, "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3579 + 3578, + 3579, + 3580 ] }, { - "teal": 3802, + "teal": 3800, "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3580, - 3581, - 3582 + 3581 ] }, { "teal": 3803, "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3583 + 3582, + 3583, + 3584 ] }, { - "teal": 3806, + "teal": 3804, "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3584, - 3585, - 3586 + 3585 ] }, { - "teal": 3807, + "teal": 3805, "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3587 + 3586 ] }, { - "teal": 3808, + "teal": 3819, "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3588 + 3587, + 3588, + 3589 ] }, { "teal": 3822, "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3589, - 3590, - 3591 + 3590 ] }, { - "teal": 3825, + "teal": 3823, "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ + 3591, 3592 ] }, { - "teal": 3826, - "source": "examples/reti/validatorRegistry.algo.ts:999", + "teal": 3831, + "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ 3593, 3594 ] }, { - "teal": 3834, + "teal": 3832, "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3595, - 3596 + 3595 ] }, { - "teal": 3835, + "teal": 3833, "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ + 3596, 3597 ] }, { - "teal": 3836, + "teal": 3834, "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3598, - 3599 + 3598 ] }, { - "teal": 3837, + "teal": 3835, "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ + 3599, 3600 ] }, { - "teal": 3838, + "teal": 3836, "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3601, - 3602 + 3601 ] }, { - "teal": 3839, + "teal": 3837, "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3603 + 3602 ] }, { - "teal": 3840, + "teal": 3838, "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ + 3603, 3604 ] }, { - "teal": 3841, + "teal": 3839, "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3605, - 3606 + 3605 ] }, { - "teal": 3842, + "teal": 3840, "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3607 + 3606 ] }, { - "teal": 3843, + "teal": 3841, "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3608 + 3607 ] }, { - "teal": 3844, + "teal": 3842, "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3609 + 3608, + 3609, + 3610 ] }, { - "teal": 3845, - "source": "examples/reti/validatorRegistry.algo.ts:1002", + "teal": 3843, + "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ - 3610, 3611, 3612 ] }, { - "teal": 3846, + "teal": 3844, "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ 3613, @@ -18188,7 +18188,7 @@ ] }, { - "teal": 3847, + "teal": 3845, "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ 3615, @@ -18196,81 +18196,81 @@ ] }, { - "teal": 3848, + "teal": 3846, "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ - 3617, - 3618 + 3617 ] }, { - "teal": 3849, + "teal": 3847, "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ + 3618, 3619 ] }, { - "teal": 3850, + "teal": 3848, "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ - 3620, - 3621 + 3620 ] }, { - "teal": 3851, + "teal": 3849, "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ - 3622 + 3621 ] }, { - "teal": 3852, + "teal": 3850, "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ + 3622, 3623 ] }, { - "teal": 3853, + "teal": 3851, "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ - 3624, - 3625 + 3624 ] }, { - "teal": 3854, + "teal": 3852, "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ - 3626 + 3625 ] }, { - "teal": 3855, - "source": "examples/reti/validatorRegistry.algo.ts:1003", + "teal": 3853, + "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3627 + 3626 ] }, { - "teal": 3856, - "source": "examples/reti/validatorRegistry.algo.ts:1002", + "teal": 3857, + "source": "examples/reti/validatorRegistry.algo.ts:1001", + "errorMessage": "can only be called by owner or manager of validator", "pc": [ - 3628 + 3627 ] }, { - "teal": 3860, - "source": "examples/reti/validatorRegistry.algo.ts:1001", - "errorMessage": "can only be called by owner or manager of validator", + "teal": 3861, + "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ + 3628, 3629 ] }, { - "teal": 3864, + "teal": 3862, "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ 3630, @@ -18278,149 +18278,149 @@ ] }, { - "teal": 3865, + "teal": 3863, "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ - 3632, - 3633 + 3632 ] }, { - "teal": 3866, + "teal": 3864, "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ + 3633, 3634 ] }, { - "teal": 3867, + "teal": 3865, "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ - 3635, - 3636 + 3635 ] }, { - "teal": 3868, + "teal": 3866, "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ - 3637 + 3636 ] }, { - "teal": 3869, + "teal": 3867, "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ + 3637, 3638 ] }, { - "teal": 3870, + "teal": 3868, "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ - 3639, - 3640 + 3639 ] }, { - "teal": 3871, + "teal": 3869, "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ + 3640, 3641 ] }, { - "teal": 3872, - "source": "examples/reti/validatorRegistry.algo.ts:1007", + "teal": 3873, + "source": "examples/reti/validatorRegistry.algo.ts:1008", "pc": [ 3642, 3643 ] }, { - "teal": 3876, + "teal": 3874, "source": "examples/reti/validatorRegistry.algo.ts:1008", "pc": [ - 3644, - 3645 + 3644 ] }, { - "teal": 3877, + "teal": 3875, "source": "examples/reti/validatorRegistry.algo.ts:1008", "pc": [ - 3646 + 3645 ] }, { - "teal": 3878, + "teal": 3876, "source": "examples/reti/validatorRegistry.algo.ts:1008", "pc": [ - 3647 + 3646 ] }, { - "teal": 3879, + "teal": 3877, "source": "examples/reti/validatorRegistry.algo.ts:1008", "pc": [ - 3648 + 3647, + 3648, + 3649 ] }, { - "teal": 3880, + "teal": 3878, "source": "examples/reti/validatorRegistry.algo.ts:1008", "pc": [ - 3649, 3650, 3651 ] }, { - "teal": 3881, + "teal": 3879, + "source": "examples/reti/validatorRegistry.algo.ts:1008", + "pc": [ + 3652 + ] + }, + { + "teal": 3880, "source": "examples/reti/validatorRegistry.algo.ts:1008", "pc": [ - 3652, 3653 ] }, { - "teal": 3882, + "teal": 3881, "source": "examples/reti/validatorRegistry.algo.ts:1008", "pc": [ 3654 ] }, { - "teal": 3883, + "teal": 3885, "source": "examples/reti/validatorRegistry.algo.ts:1008", + "errorMessage": "node number out of allowable range", "pc": [ 3655 ] }, { - "teal": 3884, - "source": "examples/reti/validatorRegistry.algo.ts:1008", + "teal": 3889, + "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ 3656 ] }, { - "teal": 3888, - "source": "examples/reti/validatorRegistry.algo.ts:1008", - "errorMessage": "node number out of allowable range", - "pc": [ - 3657 - ] - }, - { - "teal": 3892, + "teal": 3890, "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ + 3657, 3658 ] }, { - "teal": 3893, + "teal": 3895, "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ 3659, @@ -18428,45 +18428,45 @@ ] }, { - "teal": 3898, + "teal": 3896, "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ - 3661, - 3662 + 3661 ] }, { - "teal": 3899, + "teal": 3897, "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ - 3663 + 3662 ] }, { - "teal": 3900, + "teal": 3898, "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ - 3664 + 3663, + 3664, + 3665 ] }, { - "teal": 3901, - "source": "examples/reti/validatorRegistry.algo.ts:1010", + "teal": 3902, + "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ - 3665, - 3666, - 3667 + 3666 ] }, { - "teal": 3905, + "teal": 3903, "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ + 3667, 3668 ] }, { - "teal": 3906, + "teal": 3908, "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ 3669, @@ -18474,7 +18474,7 @@ ] }, { - "teal": 3911, + "teal": 3909, "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ 3671, @@ -18482,347 +18482,347 @@ ] }, { - "teal": 3912, + "teal": 3910, "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ - 3673, - 3674 + 3673 ] }, { - "teal": 3913, + "teal": 3911, "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ - 3675 + 3674, + 3675, + 3676 ] }, { - "teal": 3914, - "source": "examples/reti/validatorRegistry.algo.ts:1011", + "teal": 3916, + "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3676, 3677, 3678 ] }, + { + "teal": 3917, + "source": "examples/reti/validatorRegistry.algo.ts:1012", + "pc": [ + 3679 + ] + }, + { + "teal": 3918, + "source": "examples/reti/validatorRegistry.algo.ts:1012", + "pc": [ + 3680, + 3681 + ] + }, { "teal": 3919, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3679, - 3680 + 3682 ] }, { "teal": 3920, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3681 + 3683 ] }, { "teal": 3921, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3682, - 3683 + 3684 ] }, { "teal": 3922, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3684 + 3685 ] }, { "teal": 3923, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3685 + 3686 ] }, { "teal": 3924, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3686 + 3687, + 3688 ] }, { "teal": 3925, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3687 + 3689 ] }, { "teal": 3926, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3688 + 3690 ] }, { "teal": 3927, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3689, - 3690 + 3691 ] }, { "teal": 3928, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3691 + 3692 ] }, { "teal": 3929, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3692 + 3693 ] }, { "teal": 3930, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3693 + 3694 ] }, { "teal": 3931, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3694 + 3695, + 3696 ] }, { "teal": 3932, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3695 + 3697 ] }, { "teal": 3933, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3696 + 3698, + 3699, + 3700 ] }, { - "teal": 3934, - "source": "examples/reti/validatorRegistry.algo.ts:1012", + "teal": 3938, + "source": "examples/reti/validatorRegistry.algo.ts:1013", "pc": [ - 3697, - 3698 + 3701, + 3702 ] }, { - "teal": 3935, - "source": "examples/reti/validatorRegistry.algo.ts:1012", + "teal": 3939, + "source": "examples/reti/validatorRegistry.algo.ts:1013", "pc": [ - 3699 + 3703 ] }, { - "teal": 3936, - "source": "examples/reti/validatorRegistry.algo.ts:1012", + "teal": 3940, + "source": "examples/reti/validatorRegistry.algo.ts:1013", "pc": [ - 3700, - 3701, - 3702 + 3704 ] }, { "teal": 3941, "source": "examples/reti/validatorRegistry.algo.ts:1013", "pc": [ - 3703, - 3704 + 3705, + 3706 ] }, { "teal": 3942, "source": "examples/reti/validatorRegistry.algo.ts:1013", "pc": [ - 3705 + 3707 ] }, { - "teal": 3943, + "teal": 3945, "source": "examples/reti/validatorRegistry.algo.ts:1013", + "errorMessage": "can't move to same node", "pc": [ - 3706 + 3708 ] }, { - "teal": 3944, - "source": "examples/reti/validatorRegistry.algo.ts:1013", + "teal": 3949, + "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3707, - 3708 + 3709, + 3710 ] }, { - "teal": 3945, - "source": "examples/reti/validatorRegistry.algo.ts:1013", + "teal": 3950, + "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3709 + 3711, + 3712 ] }, { - "teal": 3948, - "source": "examples/reti/validatorRegistry.algo.ts:1013", - "errorMessage": "can't move to same node", + "teal": 3951, + "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3710 + 3713 ] }, { "teal": 3952, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3711, - 3712 + 3714 ] }, { "teal": 3953, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3713, - 3714 + 3715 ] }, { "teal": 3954, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3715 + 3716 ] }, { "teal": 3955, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3716 + 3717 ] }, { "teal": 3956, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3717 + 3718, + 3719 ] }, { "teal": 3957, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3718 + 3720 ] }, { "teal": 3958, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3719 + 3721 ] }, { "teal": 3959, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3720, - 3721 + 3722 ] }, { "teal": 3960, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3722 + 3723, + 3724 ] }, { "teal": 3961, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3723 + 3725 ] }, { "teal": 3962, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3724 + 3726, + 3727 ] }, { "teal": 3963, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3725, - 3726 + 3728 ] }, { "teal": 3964, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3727 + 3729 ] }, { "teal": 3965, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3728, - 3729 + 3730, + 3731 ] }, { "teal": 3966, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3730 - ] - }, - { - "teal": 3967, - "source": "examples/reti/validatorRegistry.algo.ts:1015", - "pc": [ - 3731 + 3732 ] }, { - "teal": 3968, - "source": "examples/reti/validatorRegistry.algo.ts:1015", + "teal": 3972, + "source": "examples/reti/validatorRegistry.algo.ts:1018", "pc": [ - 3732, 3733 ] }, { - "teal": 3969, - "source": "examples/reti/validatorRegistry.algo.ts:1015", - "pc": [ - 3734 - ] - }, - { - "teal": 3975, + "teal": 3973, "source": "examples/reti/validatorRegistry.algo.ts:1018", "pc": [ + 3734, 3735 ] }, { - "teal": 3976, + "teal": 3974, "source": "examples/reti/validatorRegistry.algo.ts:1018", "pc": [ 3736, @@ -18830,35 +18830,35 @@ ] }, { - "teal": 3977, + "teal": 3975, "source": "examples/reti/validatorRegistry.algo.ts:1018", "pc": [ 3738, - 3739 + 3739, + 3740, + 3741, + 3742, + 3743 ] }, { - "teal": 3978, + "teal": 3976, "source": "examples/reti/validatorRegistry.algo.ts:1018", "pc": [ - 3740, - 3741, - 3742, - 3743, 3744, 3745 ] }, { - "teal": 3979, - "source": "examples/reti/validatorRegistry.algo.ts:1018", + "teal": 3980, + "source": "examples/reti/validatorRegistry.algo.ts:1019", "pc": [ 3746, 3747 ] }, { - "teal": 3983, + "teal": 3981, "source": "examples/reti/validatorRegistry.algo.ts:1019", "pc": [ 3748, @@ -18867,16 +18867,16 @@ }, { "teal": 3984, - "source": "examples/reti/validatorRegistry.algo.ts:1019", + "source": "examples/reti/validatorRegistry.algo.ts:1018", "pc": [ - 3750, - 3751 + 3750 ] }, { - "teal": 3987, + "teal": 3985, "source": "examples/reti/validatorRegistry.algo.ts:1018", "pc": [ + 3751, 3752 ] }, @@ -18884,19 +18884,19 @@ "teal": 3988, "source": "examples/reti/validatorRegistry.algo.ts:1018", "pc": [ - 3753, - 3754 + 3753 ] }, { - "teal": 3991, - "source": "examples/reti/validatorRegistry.algo.ts:1018", + "teal": 3992, + "source": "examples/reti/validatorRegistry.algo.ts:1023", "pc": [ + 3754, 3755 ] }, { - "teal": 3995, + "teal": 3993, "source": "examples/reti/validatorRegistry.algo.ts:1023", "pc": [ 3756, @@ -18904,7 +18904,7 @@ ] }, { - "teal": 3996, + "teal": 3994, "source": "examples/reti/validatorRegistry.algo.ts:1023", "pc": [ 3758, @@ -18912,595 +18912,595 @@ ] }, { - "teal": 3997, + "teal": 3995, "source": "examples/reti/validatorRegistry.algo.ts:1023", "pc": [ 3760, - 3761 + 3761, + 3762 ] }, { - "teal": 3998, - "source": "examples/reti/validatorRegistry.algo.ts:1023", + "teal": 3999, + "source": "examples/reti/validatorRegistry.algo.ts:1024", "pc": [ - 3762, - 3763, - 3764 + 3763 ] }, { - "teal": 4002, - "source": "examples/reti/validatorRegistry.algo.ts:1024", + "teal": 4006, + "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ + 3764, 3765 ] }, { - "teal": 4009, + "teal": 4007, "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ - 3766, - 3767 + 3766 ] }, { - "teal": 4010, + "teal": 4008, "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ - 3768 + 3767 ] }, { - "teal": 4011, + "teal": 4009, "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ + 3768, 3769 ] }, { - "teal": 4012, + "teal": 4010, "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ 3770, - 3771 + 3771, + 3772 ] }, { - "teal": 4013, - "source": "examples/reti/validatorRegistry.algo.ts:1011", + "teal": 4017, + "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ - 3772, 3773, 3774 ] }, { - "teal": 4020, + "teal": 4018, "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ - 3775, - 3776 + 3775 ] }, { - "teal": 4021, + "teal": 4019, "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ - 3777 + 3776 ] }, { - "teal": 4022, + "teal": 4020, "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ + 3777, 3778 ] }, { - "teal": 4023, + "teal": 4021, "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ 3779, - 3780 + 3780, + 3781 ] }, { - "teal": 4024, - "source": "examples/reti/validatorRegistry.algo.ts:1010", + "teal": 4025, + "source": "examples/reti/validatorRegistry.algo.ts:1028", + "errorMessage": "couldn't find pool app id in nodes to move", "pc": [ - 3781, - 3782, - 3783 + 3782 ] }, { - "teal": 4028, - "source": "examples/reti/validatorRegistry.algo.ts:1028", - "errorMessage": "couldn't find pool app id in nodes to move", + "teal": 4026, + "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3784 + 3783 ] }, { - "teal": 4029, - "source": "examples/reti/validatorRegistry.algo.ts:999", + "teal": 4031, + "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3785 + 3784 ] }, { "teal": 4034, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3786 + 3785, + 3786, + 3787 ] }, { - "teal": 4037, + "teal": 4035, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3787, - 3788, - 3789 + 3788 ] }, { - "teal": 4038, + "teal": 4036, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3790 + 3789 ] }, { - "teal": 4039, + "teal": 4037, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ + 3790, 3791 ] }, { - "teal": 4040, + "teal": 4038, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3792, - 3793 + 3792 ] }, { "teal": 4041, "source": "examples/reti/validatorRegistry.algo.ts:1042", + "errorMessage": "argument 0 (receiver) for emptyTokenRewards must be a address", "pc": [ - 3794 + 3793 ] }, { "teal": 4044, "source": "examples/reti/validatorRegistry.algo.ts:1042", - "errorMessage": "argument 0 (receiver) for emptyTokenRewards must be a address", "pc": [ - 3795 + 3794, + 3795, + 3796 ] }, { - "teal": 4047, + "teal": 4045, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3796, - 3797, - 3798 + 3797 ] }, { "teal": 4048, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3799 + 3798, + 3799, + 3800 ] }, { - "teal": 4051, + "teal": 4049, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3800, - 3801, - 3802 + 3801 ] }, { - "teal": 4052, + "teal": 4050, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3803 + 3802 ] }, { - "teal": 4053, + "teal": 4051, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3804 + 3803 ] }, { - "teal": 4054, + "teal": 4052, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3805 + 3804 ] }, { - "teal": 4055, + "teal": 4053, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3806 + 3805 ] }, { - "teal": 4056, + "teal": 4067, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3807 + 3806, + 3807, + 3808 ] }, { "teal": 4070, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3808, - 3809, - 3810 + 3809 ] }, { - "teal": 4073, + "teal": 4071, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ + 3810, 3811 ] }, { - "teal": 4074, - "source": "examples/reti/validatorRegistry.algo.ts:1042", + "teal": 4078, + "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ 3812, 3813 ] }, { - "teal": 4081, + "teal": 4079, "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ - 3814, - 3815 + 3814 ] }, { - "teal": 4082, + "teal": 4080, "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ + 3815, 3816 ] }, { - "teal": 4083, + "teal": 4081, "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ - 3817, - 3818 + 3817 ] }, { - "teal": 4084, + "teal": 4082, "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ + 3818, 3819 ] }, { - "teal": 4085, + "teal": 4083, "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ - 3820, - 3821 + 3820 ] }, { - "teal": 4086, + "teal": 4084, "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ - 3822 + 3821 ] }, { - "teal": 4087, + "teal": 4085, "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ + 3822, 3823 ] }, { - "teal": 4088, + "teal": 4086, "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ - 3824, - 3825 + 3824 ] }, { - "teal": 4089, + "teal": 4087, "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ - 3826 + 3825 ] }, { "teal": 4090, - "source": "examples/reti/validatorRegistry.algo.ts:1044", + "source": "examples/reti/validatorRegistry.algo.ts:1043", + "errorMessage": "can only be called by validator owner", "pc": [ - 3827 + 3826 ] }, { - "teal": 4093, - "source": "examples/reti/validatorRegistry.algo.ts:1043", - "errorMessage": "can only be called by validator owner", + "teal": 4094, + "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ + 3827, 3828 ] }, { - "teal": 4097, + "teal": 4095, "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ - 3829, - 3830 + 3829 ] }, { - "teal": 4098, + "teal": 4096, "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ - 3831 + 3830 ] }, { - "teal": 4099, + "teal": 4097, "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ + 3831, 3832 ] }, { - "teal": 4100, + "teal": 4098, "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ - 3833, - 3834 + 3833 ] }, { - "teal": 4101, + "teal": 4099, "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ - 3835 + 3834 ] }, { - "teal": 4102, + "teal": 4100, "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ + 3835, 3836 ] }, { - "teal": 4103, + "teal": 4101, "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ - 3837, - 3838 + 3837 ] }, { - "teal": 4104, + "teal": 4102, "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ - 3839 + 3838 ] }, { - "teal": 4105, + "teal": 4103, "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ + 3839, 3840 ] }, { - "teal": 4106, - "source": "examples/reti/validatorRegistry.algo.ts:1047", + "teal": 4107, + "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ 3841, 3842 ] }, { - "teal": 4110, + "teal": 4108, "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ - 3843, - 3844 + 3843 ] }, { - "teal": 4111, + "teal": 4109, "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ - 3845 + 3844 ] }, { - "teal": 4112, + "teal": 4110, "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ + 3845, 3846 ] }, { - "teal": 4113, + "teal": 4111, "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ - 3847, - 3848 + 3847 ] }, { - "teal": 4114, + "teal": 4112, "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ - 3849 + 3848 ] }, { - "teal": 4115, + "teal": 4113, "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ + 3849, 3850 ] }, { - "teal": 4116, + "teal": 4114, "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ - 3851, - 3852 + 3851 ] }, { - "teal": 4117, + "teal": 4115, "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ - 3853 + 3852 ] }, { - "teal": 4118, + "teal": 4116, "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ + 3853, 3854 ] }, { - "teal": 4119, - "source": "examples/reti/validatorRegistry.algo.ts:1048", + "teal": 4120, + "source": "examples/reti/validatorRegistry.algo.ts:1049", "pc": [ 3855, 3856 ] }, { - "teal": 4123, + "teal": 4121, "source": "examples/reti/validatorRegistry.algo.ts:1049", "pc": [ - 3857, - 3858 + 3857 ] }, { - "teal": 4124, + "teal": 4122, "source": "examples/reti/validatorRegistry.algo.ts:1049", "pc": [ - 3859 + 3858 ] }, { "teal": 4125, "source": "examples/reti/validatorRegistry.algo.ts:1049", + "errorMessage": "this validator doesn't have a reward token defined", "pc": [ - 3860 + 3859 ] }, { - "teal": 4128, - "source": "examples/reti/validatorRegistry.algo.ts:1049", - "errorMessage": "this validator doesn't have a reward token defined", + "teal": 4129, + "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ + 3860, 3861 ] }, { - "teal": 4132, + "teal": 4130, "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ - 3862, - 3863 + 3862 ] }, { - "teal": 4133, + "teal": 4131, "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ - 3864 + 3863 ] }, { - "teal": 4134, + "teal": 4132, "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ + 3864, 3865 ] }, { - "teal": 4135, + "teal": 4133, "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ - 3866, - 3867 + 3866 ] }, { - "teal": 4136, + "teal": 4134, "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ - 3868 + 3867 ] }, { - "teal": 4137, + "teal": 4135, "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ + 3868, 3869 ] }, { - "teal": 4138, + "teal": 4136, "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ - 3870, - 3871 + 3870 ] }, { - "teal": 4139, + "teal": 4137, "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ - 3872 + 3871 ] }, { - "teal": 4140, + "teal": 4138, "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ + 3872, 3873 ] }, { - "teal": 4141, - "source": "examples/reti/validatorRegistry.algo.ts:1050", + "teal": 4142, + "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ 3874, 3875 ] }, { - "teal": 4145, + "teal": 4143, "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ 3876, @@ -19508,22 +19508,22 @@ ] }, { - "teal": 4146, + "teal": 4144, "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ - 3878, - 3879 + 3878 ] }, { - "teal": 4147, + "teal": 4145, "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ + 3879, 3880 ] }, { - "teal": 4148, + "teal": 4146, "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ 3881, @@ -19531,52 +19531,52 @@ ] }, { - "teal": 4149, + "teal": 4147, "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ - 3883, - 3884 + 3883 ] }, { - "teal": 4150, + "teal": 4148, "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ + 3884, 3885 ] }, { - "teal": 4151, + "teal": 4149, "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ - 3886, - 3887 + 3886 ] }, { - "teal": 4152, + "teal": 4150, "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ + 3887, 3888 ] }, { - "teal": 4153, - "source": "examples/reti/validatorRegistry.algo.ts:1052", + "teal": 4157, + "source": "examples/reti/validatorRegistry.algo.ts:1055", "pc": [ - 3889, - 3890 + 3889 ] }, { - "teal": 4160, + "teal": 4158, "source": "examples/reti/validatorRegistry.algo.ts:1055", "pc": [ + 3890, 3891 ] }, { - "teal": 4161, + "teal": 4159, "source": "examples/reti/validatorRegistry.algo.ts:1055", "pc": [ 3892, @@ -19584,7 +19584,7 @@ ] }, { - "teal": 4162, + "teal": 4160, "source": "examples/reti/validatorRegistry.algo.ts:1055", "pc": [ 3894, @@ -19592,7 +19592,7 @@ ] }, { - "teal": 4163, + "teal": 4161, "source": "examples/reti/validatorRegistry.algo.ts:1055", "pc": [ 3896, @@ -19600,15 +19600,15 @@ ] }, { - "teal": 4164, - "source": "examples/reti/validatorRegistry.algo.ts:1055", + "teal": 4165, + "source": "examples/reti/validatorRegistry.algo.ts:1056", "pc": [ 3898, 3899 ] }, { - "teal": 4168, + "teal": 4166, "source": "examples/reti/validatorRegistry.algo.ts:1056", "pc": [ 3900, @@ -19616,15 +19616,15 @@ ] }, { - "teal": 4169, - "source": "examples/reti/validatorRegistry.algo.ts:1056", + "teal": 4170, + "source": "examples/reti/validatorRegistry.algo.ts:1057", "pc": [ 3902, 3903 ] }, { - "teal": 4173, + "teal": 4171, "source": "examples/reti/validatorRegistry.algo.ts:1057", "pc": [ 3904, @@ -19632,7 +19632,7 @@ ] }, { - "teal": 4174, + "teal": 4172, "source": "examples/reti/validatorRegistry.algo.ts:1057", "pc": [ 3906, @@ -19640,22 +19640,22 @@ ] }, { - "teal": 4175, + "teal": 4173, "source": "examples/reti/validatorRegistry.algo.ts:1057", "pc": [ - 3908, - 3909 + 3908 ] }, { - "teal": 4176, + "teal": 4174, "source": "examples/reti/validatorRegistry.algo.ts:1057", "pc": [ + 3909, 3910 ] }, { - "teal": 4177, + "teal": 4175, "source": "examples/reti/validatorRegistry.algo.ts:1057", "pc": [ 3911, @@ -19663,32 +19663,32 @@ ] }, { - "teal": 4178, + "teal": 4176, "source": "examples/reti/validatorRegistry.algo.ts:1057", "pc": [ - 3913, - 3914 + 3913 ] }, { - "teal": 4179, + "teal": 4177, "source": "examples/reti/validatorRegistry.algo.ts:1057", "pc": [ + 3914, 3915 ] }, { "teal": 4180, - "source": "examples/reti/validatorRegistry.algo.ts:1057", + "source": "examples/reti/validatorRegistry.algo.ts:1055", "pc": [ - 3916, - 3917 + 3916 ] }, { - "teal": 4183, + "teal": 4181, "source": "examples/reti/validatorRegistry.algo.ts:1055", "pc": [ + 3917, 3918 ] }, @@ -19696,19 +19696,19 @@ "teal": 4184, "source": "examples/reti/validatorRegistry.algo.ts:1055", "pc": [ - 3919, - 3920 + 3919 ] }, { - "teal": 4187, - "source": "examples/reti/validatorRegistry.algo.ts:1055", + "teal": 4191, + "source": "examples/reti/validatorRegistry.algo.ts:1060", "pc": [ + 3920, 3921 ] }, { - "teal": 4194, + "teal": 4192, "source": "examples/reti/validatorRegistry.algo.ts:1060", "pc": [ 3922, @@ -19716,22 +19716,22 @@ ] }, { - "teal": 4195, + "teal": 4193, "source": "examples/reti/validatorRegistry.algo.ts:1060", "pc": [ - 3924, - 3925 + 3924 ] }, { - "teal": 4196, + "teal": 4194, "source": "examples/reti/validatorRegistry.algo.ts:1060", "pc": [ + 3925, 3926 ] }, { - "teal": 4197, + "teal": 4195, "source": "examples/reti/validatorRegistry.algo.ts:1060", "pc": [ 3927, @@ -19739,46 +19739,46 @@ ] }, { - "teal": 4198, + "teal": 4196, "source": "examples/reti/validatorRegistry.algo.ts:1060", "pc": [ - 3929, - 3930 + 3929 ] }, { - "teal": 4199, + "teal": 4197, "source": "examples/reti/validatorRegistry.algo.ts:1060", "pc": [ + 3930, 3931 ] }, { - "teal": 4200, + "teal": 4198, "source": "examples/reti/validatorRegistry.algo.ts:1060", "pc": [ - 3932, - 3933 + 3932 ] }, { "teal": 4201, - "source": "examples/reti/validatorRegistry.algo.ts:1060", + "source": "examples/reti/validatorRegistry.algo.ts:1059", + "errorMessage": "balance of remaining reward tokens should match the held back amount", "pc": [ - 3934 + 3933 ] }, { - "teal": 4204, - "source": "examples/reti/validatorRegistry.algo.ts:1059", - "errorMessage": "balance of remaining reward tokens should match the held back amount", + "teal": 4205, + "source": "examples/reti/validatorRegistry.algo.ts:1063", "pc": [ + 3934, 3935 ] }, { "teal": 4208, - "source": "examples/reti/validatorRegistry.algo.ts:1063", + "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ 3936, 3937 @@ -19793,529 +19793,529 @@ ] }, { - "teal": 4214, + "teal": 4212, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3940, - 3941 + 3940 ] }, { - "teal": 4215, - "source": "examples/reti/validatorRegistry.algo.ts:1042", + "teal": 4223, + "source": "examples/reti/validatorRegistry.algo.ts:1160", "pc": [ - 3942 + 3941, + 3942, + 3943 ] }, { - "teal": 4226, - "source": "examples/reti/validatorRegistry.algo.ts:1160", + "teal": 4227, + "source": "examples/reti/validatorRegistry.algo.ts:1161", "pc": [ - 3943, - 3944, - 3945 + 3944 ] }, { - "teal": 4230, + "teal": 4228, "source": "examples/reti/validatorRegistry.algo.ts:1161", "pc": [ + 3945, 3946 ] }, { - "teal": 4231, + "teal": 4229, "source": "examples/reti/validatorRegistry.algo.ts:1161", "pc": [ 3947, - 3948 + 3948, + 3949 ] }, { - "teal": 4232, + "teal": 4230, + "source": "examples/reti/validatorRegistry.algo.ts:1161", + "pc": [ + 3950 + ] + }, + { + "teal": 4231, "source": "examples/reti/validatorRegistry.algo.ts:1161", "pc": [ - 3949, - 3950, 3951 ] }, { - "teal": 4233, + "teal": 4232, "source": "examples/reti/validatorRegistry.algo.ts:1161", "pc": [ 3952 ] }, { - "teal": 4234, + "teal": 4233, "source": "examples/reti/validatorRegistry.algo.ts:1161", "pc": [ 3953 ] }, { - "teal": 4235, + "teal": 4234, "source": "examples/reti/validatorRegistry.algo.ts:1161", "pc": [ 3954 ] }, { - "teal": 4236, + "teal": 4235, "source": "examples/reti/validatorRegistry.algo.ts:1161", "pc": [ 3955 ] }, { - "teal": 4237, + "teal": 4238, "source": "examples/reti/validatorRegistry.algo.ts:1161", + "errorMessage": "the specified validator id isn't valid", "pc": [ 3956 ] }, { - "teal": 4238, - "source": "examples/reti/validatorRegistry.algo.ts:1161", + "teal": 4242, + "source": "examples/reti/validatorRegistry.algo.ts:1162", "pc": [ - 3957 + 3957, + 3958 ] }, { - "teal": 4241, - "source": "examples/reti/validatorRegistry.algo.ts:1161", - "errorMessage": "the specified validator id isn't valid", + "teal": 4243, + "source": "examples/reti/validatorRegistry.algo.ts:1162", "pc": [ - 3958 + 3959, + 3960, + 3961 ] }, { - "teal": 4245, + "teal": 4244, "source": "examples/reti/validatorRegistry.algo.ts:1162", "pc": [ - 3959, - 3960 + 3962 ] }, { - "teal": 4246, - "source": "examples/reti/validatorRegistry.algo.ts:1162", + "teal": 4245, + "source": "examples/reti/validatorRegistry.algo.ts:32", "pc": [ - 3961, - 3962, 3963 ] }, { - "teal": 4247, + "teal": 4246, "source": "examples/reti/validatorRegistry.algo.ts:1162", "pc": [ 3964 ] }, { - "teal": 4248, - "source": "examples/reti/validatorRegistry.algo.ts:32", + "teal": 4249, + "source": "examples/reti/validatorRegistry.algo.ts:1162", + "errorMessage": "pool id not in valid range", "pc": [ 3965 ] }, { - "teal": 4249, - "source": "examples/reti/validatorRegistry.algo.ts:1162", + "teal": 4256, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3966 + 3966, + 3967 ] }, { - "teal": 4252, - "source": "examples/reti/validatorRegistry.algo.ts:1162", - "errorMessage": "pool id not in valid range", + "teal": 4257, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3967 + 3968, + 3969, + 3970 + ] + }, + { + "teal": 4258, + "source": "examples/reti/validatorRegistry.algo.ts:1164", + "pc": [ + 3971 ] }, { "teal": 4259, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3968, - 3969 + 3972 ] }, { "teal": 4260, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3970, - 3971, - 3972 + 3973 ] }, { "teal": 4261, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3973 + 3974 ] }, { "teal": 4262, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3974 + 3975, + 3976, + 3977 ] }, { "teal": 4263, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3975 + 3978, + 3979 ] }, { "teal": 4264, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3976 + 3980, + 3981, + 3982 ] }, { "teal": 4265, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3977, - 3978, - 3979 + 3983 ] }, { "teal": 4266, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3980, - 3981 + 3984, + 3985 ] }, { "teal": 4267, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3982, - 3983, - 3984 + 3986, + 3987 ] }, { "teal": 4268, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3985 + 3988 ] }, { "teal": 4269, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3986, - 3987 + 3989, + 3990 ] }, { "teal": 4270, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3988, - 3989 + 3991, + 3992, + 3993 ] }, { "teal": 4271, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3990 + 3994 ] }, { "teal": 4272, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3991, - 3992 + 3995 ] }, { "teal": 4273, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3993, - 3994, - 3995 + 3996 ] }, { "teal": 4274, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3996 + 3997, + 3998 ] }, { "teal": 4275, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3997 + 3999 ] }, { "teal": 4276, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3998 + 4000 ] }, { "teal": 4277, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3999, - 4000 + 4001 ] }, { "teal": 4278, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 4001 + 4002 ] }, { - "teal": 4279, - "source": "examples/reti/validatorRegistry.algo.ts:1164", + "teal": 4282, + "source": "examples/reti/validatorRegistry.algo.ts:1163", + "errorMessage": "pool id outside of range of pools created for this validator", "pc": [ - 4002 + 4003 ] }, { - "teal": 4280, - "source": "examples/reti/validatorRegistry.algo.ts:1164", + "teal": 4289, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4003 + 4004, + 4005 ] }, { - "teal": 4281, - "source": "examples/reti/validatorRegistry.algo.ts:1164", + "teal": 4290, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4004 + 4006, + 4007, + 4008 ] }, { - "teal": 4285, - "source": "examples/reti/validatorRegistry.algo.ts:1163", - "errorMessage": "pool id outside of range of pools created for this validator", + "teal": 4291, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4005 + 4009 ] }, { "teal": 4292, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4006, - 4007 + 4010, + 4011 ] }, { "teal": 4293, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4008, - 4009, - 4010 + 4012, + 4013 ] }, { "teal": 4294, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4011 + 4014, + 4015, + 4016 ] }, { "teal": 4295, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4012, - 4013 + 4017 ] }, { "teal": 4296, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4014, - 4015 + 4018 ] }, { "teal": 4297, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4016, - 4017, - 4018 + 4019 ] }, { "teal": 4298, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4019 + 4020, + 4021 ] }, { "teal": 4299, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4020 + 4022 ] }, { "teal": 4300, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4021 + 4023 ] }, { "teal": 4301, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4022, - 4023 + 4024 ] }, { "teal": 4302, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4024 + 4025 ] }, { "teal": 4303, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4025 + 4026 ] }, { "teal": 4304, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4026 + 4027 ] }, { "teal": 4305, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4027 + 4028, + 4029 ] }, { "teal": 4306, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4028 + 4030, + 4031, + 4032 ] }, { "teal": 4307, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4029 + 4033 ] }, { "teal": 4308, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4030, - 4031 + 4034 ] }, { "teal": 4309, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4032, - 4033, - 4034 + 4035 ] }, { "teal": 4310, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4035 + 4036, + 4037 ] }, { "teal": 4311, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4036 + 4038 ] }, { "teal": 4312, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4037 - ] - }, - { - "teal": 4313, - "source": "examples/reti/validatorRegistry.algo.ts:1170", - "pc": [ - 4038, 4039 ] }, { - "teal": 4314, + "teal": 4313, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ 4040 ] }, - { - "teal": 4315, - "source": "examples/reti/validatorRegistry.algo.ts:1170", - "pc": [ - 4041 - ] - }, { "teal": 4316, - "source": "examples/reti/validatorRegistry.algo.ts:1170", + "source": "examples/reti/validatorRegistry.algo.ts:1169", + "errorMessage": "The passed in app id doesn't match the passed in ids", "pc": [ - 4042 + 4041 ] }, { - "teal": 4319, - "source": "examples/reti/validatorRegistry.algo.ts:1169", - "errorMessage": "The passed in app id doesn't match the passed in ids", + "teal": 4320, + "source": "examples/reti/validatorRegistry.algo.ts:1174", "pc": [ + 4042, 4043 ] }, { - "teal": 4323, + "teal": 4321, "source": "examples/reti/validatorRegistry.algo.ts:1174", "pc": [ 4044, @@ -20323,110 +20323,104 @@ ] }, { - "teal": 4324, + "teal": 4322, "source": "examples/reti/validatorRegistry.algo.ts:1174", "pc": [ 4046, - 4047 + 4047, + 4048 ] }, { - "teal": 4325, + "teal": 4323, "source": "examples/reti/validatorRegistry.algo.ts:1174", "pc": [ - 4048, - 4049, - 4050 + 4049 ] }, { - "teal": 4326, + "teal": 4324, "source": "examples/reti/validatorRegistry.algo.ts:1174", "pc": [ + 4050, 4051 ] }, { - "teal": 4327, + "teal": 4325, "source": "examples/reti/validatorRegistry.algo.ts:1174", "pc": [ - 4052, - 4053 + 4052 ] }, { - "teal": 4328, + "teal": 4326, "source": "examples/reti/validatorRegistry.algo.ts:1174", "pc": [ - 4054 + 4053 ] }, { - "teal": 4329, + "teal": 4327, "source": "examples/reti/validatorRegistry.algo.ts:1174", "pc": [ - 4055 + 4054 ] }, { - "teal": 4330, - "source": "examples/reti/validatorRegistry.algo.ts:1174", + "teal": 4331, + "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ + 4055, 4056 ] }, { - "teal": 4334, + "teal": 4332, "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ 4057, - 4058 + 4058, + 4059 ] }, { - "teal": 4335, + "teal": 4333, "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ - 4059, - 4060, - 4061 + 4060 ] }, { - "teal": 4336, + "teal": 4334, "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ + 4061, 4062 ] }, { - "teal": 4337, + "teal": 4335, "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ 4063, - 4064 - ] - }, - { - "teal": 4338, - "source": "examples/reti/validatorRegistry.algo.ts:1176", - "pc": [ - 4065, - 4066, - 4067 + 4064, + 4065 ] }, { - "teal": 4339, + "teal": 4336, "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ - 4068 + 4066 ] }, { - "teal": 4340, + "teal": 4337, "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ + 4067, + 4068, 4069, 4070, 4071, @@ -20437,476 +20431,482 @@ 4076, 4077, 4078, - 4079, - 4080, - 4081 + 4079 ] }, { - "teal": 4341, + "teal": 4338, "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ - 4082 + 4080 ] }, { - "teal": 4344, + "teal": 4341, "source": "examples/reti/validatorRegistry.algo.ts:1176", "errorMessage": "global state value does not exist: AppID.fromUint64(poolKey.poolAppId).globalState('validatorId')", "pc": [ - 4083 + 4081 ] }, { - "teal": 4345, + "teal": 4342, "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ - 4084 + 4082 ] }, { - "teal": 4346, + "teal": 4343, "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ - 4085 + 4083 ] }, { - "teal": 4350, + "teal": 4347, "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4086, - 4087 + 4084, + 4085 ] }, { - "teal": 4351, + "teal": 4348, "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4088, - 4089, - 4090 + 4086, + 4087, + 4088 ] }, { - "teal": 4352, + "teal": 4349, "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4091 + 4089 ] }, { - "teal": 4353, + "teal": 4350, "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4092, - 4093 + 4090, + 4091 ] }, { - "teal": 4354, + "teal": 4351, "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4094, - 4095, - 4096 + 4092, + 4093, + 4094 ] }, { - "teal": 4355, + "teal": 4352, "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4097 + 4095 ] }, { - "teal": 4356, + "teal": 4353, "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ + 4096, + 4097, 4098, 4099, 4100, 4101, 4102, - 4103, - 4104, - 4105 + 4103 ] }, { - "teal": 4357, + "teal": 4354, "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4106 + 4104 ] }, { - "teal": 4360, + "teal": 4357, "source": "examples/reti/validatorRegistry.algo.ts:1177", "errorMessage": "global state value does not exist: AppID.fromUint64(poolKey.poolAppId).globalState('poolId')", "pc": [ - 4107 + 4105 ] }, { - "teal": 4361, + "teal": 4358, "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4108 + 4106 ] }, { - "teal": 4362, + "teal": 4359, "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4109 + 4107 ] }, { - "teal": 4363, + "teal": 4360, "source": "examples/reti/validatorRegistry.algo.ts:1160", "pc": [ - 4110 + 4108 ] }, { - "teal": 4372, + "teal": 4369, "source": "examples/reti/validatorRegistry.algo.ts:1186", "pc": [ - 4111, - 4112, - 4113 + 4109, + 4110, + 4111 ] }, { - "teal": 4375, + "teal": 4372, "source": "examples/reti/validatorRegistry.algo.ts:1186", "pc": [ - 4114 + 4112 ] }, { - "teal": 4376, + "teal": 4373, "source": "examples/reti/validatorRegistry.algo.ts:1186", "pc": [ - 4115 + 4113 ] }, { - "teal": 4380, + "teal": 4377, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ + 4114 + ] + }, + { + "teal": 4378, + "source": "examples/reti/validatorRegistry.algo.ts:1187", + "pc": [ + 4115, 4116 ] }, { - "teal": 4381, + "teal": 4379, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4117, - 4118 + 4117 ] }, { - "teal": 4382, + "teal": 4380, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4119 + 4118 ] }, { - "teal": 4383, + "teal": 4381, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ + 4119, 4120 ] }, { - "teal": 4384, - "source": "examples/reti/validatorRegistry.algo.ts:1187", + "teal": 4386, + "source": "examples/reti/validatorRegistry.algo.ts:1188", "pc": [ 4121, 4122 ] }, { - "teal": 4389, + "teal": 4387, "source": "examples/reti/validatorRegistry.algo.ts:1188", "pc": [ - 4123, - 4124 + 4123 ] }, { - "teal": 4390, - "source": "examples/reti/validatorRegistry.algo.ts:1188", + "teal": 4388, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4125 + 4124 ] }, { - "teal": 4391, + "teal": 4389, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ + 4125, 4126 ] }, { - "teal": 4392, + "teal": 4390, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4127, - 4128 + 4127 ] }, { - "teal": 4393, + "teal": 4391, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4129 + 4128 ] }, { - "teal": 4394, + "teal": 4392, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ + 4129, 4130 ] }, { - "teal": 4395, + "teal": 4393, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4131, - 4132 + 4131 ] }, { - "teal": 4396, - "source": "examples/reti/validatorRegistry.algo.ts:1187", + "teal": 4394, + "source": "examples/reti/validatorRegistry.algo.ts:1188", "pc": [ - 4133 + 4132 ] }, { - "teal": 4397, + "teal": 4395, "source": "examples/reti/validatorRegistry.algo.ts:1188", "pc": [ - 4134 + 4133 ] }, { - "teal": 4398, + "teal": 4396, "source": "examples/reti/validatorRegistry.algo.ts:1188", "pc": [ - 4135 + 4134 ] }, { - "teal": 4399, + "teal": 4397, "source": "examples/reti/validatorRegistry.algo.ts:1188", "pc": [ - 4136 + 4135, + 4136, + 4137 ] }, { - "teal": 4400, - "source": "examples/reti/validatorRegistry.algo.ts:1188", + "teal": 4402, + "source": "examples/reti/validatorRegistry.algo.ts:1191", "pc": [ - 4137, 4138, 4139 ] }, { - "teal": 4405, + "teal": 4403, "source": "examples/reti/validatorRegistry.algo.ts:1191", "pc": [ - 4140, - 4141 + 4140 ] }, { - "teal": 4406, - "source": "examples/reti/validatorRegistry.algo.ts:1191", + "teal": 4404, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4142 + 4141 ] }, { - "teal": 4407, + "teal": 4405, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ + 4142, 4143 ] }, { - "teal": 4408, + "teal": 4406, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4144, - 4145 + 4144 ] }, { - "teal": 4409, + "teal": 4407, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4146 + 4145 ] }, { - "teal": 4410, + "teal": 4408, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ + 4146, 4147 ] }, { - "teal": 4411, + "teal": 4409, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4148, - 4149 + 4148 ] }, { - "teal": 4412, - "source": "examples/reti/validatorRegistry.algo.ts:1187", + "teal": 4410, + "source": "examples/reti/validatorRegistry.algo.ts:1191", "pc": [ - 4150 + 4149 ] }, { - "teal": 4413, + "teal": 4411, "source": "examples/reti/validatorRegistry.algo.ts:1191", "pc": [ + 4150, 4151 ] }, { - "teal": 4414, + "teal": 4412, "source": "examples/reti/validatorRegistry.algo.ts:1191", "pc": [ - 4152, - 4153 + 4152 ] }, { "teal": 4415, "source": "examples/reti/validatorRegistry.algo.ts:1191", + "errorMessage": "global state value does not exist: AppID.fromUint64(validatorConfig.nfdForInfo).globalState('i.owner.a')", "pc": [ - 4154 + 4153 ] }, { - "teal": 4418, + "teal": 4416, "source": "examples/reti/validatorRegistry.algo.ts:1191", - "errorMessage": "global state value does not exist: AppID.fromUint64(validatorConfig.nfdForInfo).globalState('i.owner.a')", "pc": [ + 4154, 4155 ] }, { - "teal": 4419, - "source": "examples/reti/validatorRegistry.algo.ts:1191", + "teal": 4421, + "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4156, - 4157 + 4156 ] }, { - "teal": 4424, + "teal": 4422, "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ + 4157, 4158 ] }, { - "teal": 4425, - "source": "examples/reti/validatorRegistry.algo.ts:1193", + "teal": 4423, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4159, - 4160 + 4159 ] }, { - "teal": 4426, + "teal": 4424, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ + 4160, 4161 ] }, { - "teal": 4427, + "teal": 4425, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4162, - 4163 + 4162 ] }, { - "teal": 4428, + "teal": 4426, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4164 + 4163 ] }, { - "teal": 4429, + "teal": 4427, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ + 4164, 4165 ] }, { - "teal": 4430, + "teal": 4428, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4166, - 4167 + 4166 ] }, { - "teal": 4431, - "source": "examples/reti/validatorRegistry.algo.ts:1187", + "teal": 4429, + "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ + 4167, 4168 ] }, { - "teal": 4432, + "teal": 4430, "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4169, - 4170 + 4169 ] }, { - "teal": 4433, + "teal": 4431, "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4171 + 4170 ] }, { - "teal": 4434, + "teal": 4432, "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4172 + 4171, + 4172, + 4173 ] }, { - "teal": 4435, + "teal": 4433, "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4173, 4174, 4175 ] }, { - "teal": 4436, + "teal": 4434, "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ 4176, @@ -20914,90 +20914,90 @@ ] }, { - "teal": 4437, - "source": "examples/reti/validatorRegistry.algo.ts:1193", + "teal": 4435, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4178, - 4179 + 4178 ] }, { - "teal": 4438, + "teal": 4436, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ + 4179, 4180 ] }, { - "teal": 4439, + "teal": 4437, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4181, - 4182 + 4181 ] }, { - "teal": 4440, + "teal": 4438, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4183 + 4182 ] }, { - "teal": 4441, + "teal": 4439, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ + 4183, 4184 ] }, { - "teal": 4442, + "teal": 4440, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4185, - 4186 + 4185 ] }, { - "teal": 4443, - "source": "examples/reti/validatorRegistry.algo.ts:1187", + "teal": 4441, + "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ + 4186, 4187 ] }, { - "teal": 4444, + "teal": 4442, "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4188, - 4189 + 4188 ] }, { - "teal": 4445, + "teal": 4443, "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4190 + 4189 ] }, { "teal": 4446, "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4191 + 4190, + 4191, + 4192 ] }, { - "teal": 4449, - "source": "examples/reti/validatorRegistry.algo.ts:1193", + "teal": 4451, + "source": "examples/reti/validatorRegistry.algo.ts:1195", "pc": [ - 4192, 4193, 4194 ] }, { - "teal": 4454, + "teal": 4452, "source": "examples/reti/validatorRegistry.algo.ts:1195", "pc": [ 4195, @@ -21005,766 +21005,766 @@ ] }, { - "teal": 4455, + "teal": 4453, "source": "examples/reti/validatorRegistry.algo.ts:1195", "pc": [ - 4197, - 4198 + 4197 ] }, { - "teal": 4456, + "teal": 4454, "source": "examples/reti/validatorRegistry.algo.ts:1195", "pc": [ + 4198, 4199 ] }, { - "teal": 4457, + "teal": 4455, "source": "examples/reti/validatorRegistry.algo.ts:1195", "pc": [ - 4200, - 4201 + 4200 ] }, { - "teal": 4458, + "teal": 4456, "source": "examples/reti/validatorRegistry.algo.ts:1195", "pc": [ - 4202 + 4201 ] }, { - "teal": 4459, + "teal": 4457, "source": "examples/reti/validatorRegistry.algo.ts:1195", "pc": [ + 4202, 4203 ] }, { - "teal": 4460, + "teal": 4458, "source": "examples/reti/validatorRegistry.algo.ts:1195", "pc": [ - 4204, - 4205 + 4204 ] }, { - "teal": 4461, - "source": "examples/reti/validatorRegistry.algo.ts:1195", + "teal": 4463, + "source": "examples/reti/validatorRegistry.algo.ts:1186", "pc": [ - 4206 + 4205 ] }, { - "teal": 4466, - "source": "examples/reti/validatorRegistry.algo.ts:1186", + "teal": 4467, + "source": "examples/reti/validatorRegistry.algo.ts:1200", "pc": [ - 4207 + 4206, + 4207, + 4208 ] }, { - "teal": 4470, - "source": "examples/reti/validatorRegistry.algo.ts:1200", + "teal": 4474, + "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4208, 4209, 4210 ] }, { - "teal": 4477, + "teal": 4475, "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ 4211, - 4212 + 4212, + 4213 ] }, { - "teal": 4478, + "teal": 4476, "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4213, - 4214, - 4215 + 4214 ] }, { - "teal": 4479, + "teal": 4477, "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4216 + 4215 ] }, { - "teal": 4480, + "teal": 4478, "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4217 + 4216 ] }, { - "teal": 4481, + "teal": 4479, "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4218 + 4217 ] }, { - "teal": 4482, + "teal": 4480, "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4219 + 4218, + 4219, + 4220 ] }, { - "teal": 4483, + "teal": 4481, "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4220, 4221, 4222 ] }, { - "teal": 4484, + "teal": 4482, "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ 4223, - 4224 + 4224, + 4225 ] }, { - "teal": 4485, + "teal": 4483, "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4225, - 4226, - 4227 + 4226 ] }, { - "teal": 4486, + "teal": 4484, "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ + 4227, 4228 ] }, { - "teal": 4487, + "teal": 4485, "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4229, - 4230 + 4229 ] }, { - "teal": 4488, + "teal": 4486, "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4231 + 4230 ] }, { - "teal": 4489, - "source": "examples/reti/validatorRegistry.algo.ts:1203", + "teal": 4490, + "source": "examples/reti/validatorRegistry.algo.ts:1202", + "errorMessage": "gating type not valid", "pc": [ - 4232 + 4231 ] }, { - "teal": 4493, - "source": "examples/reti/validatorRegistry.algo.ts:1202", - "errorMessage": "gating type not valid", + "teal": 4497, + "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ + 4232, 4233 ] }, { - "teal": 4500, + "teal": 4498, "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ 4234, - 4235 + 4235, + 4236 ] }, { - "teal": 4501, + "teal": 4499, "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4236, - 4237, - 4238 + 4237 ] }, { - "teal": 4502, + "teal": 4500, "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4239 + 4238 ] }, { - "teal": 4503, + "teal": 4501, "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4240 + 4239 ] }, { - "teal": 4504, + "teal": 4502, "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4241 + 4240 ] }, { - "teal": 4505, + "teal": 4503, "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4242 + 4241, + 4242, + 4243 ] }, { - "teal": 4506, + "teal": 4504, "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4243, 4244, 4245 ] }, { - "teal": 4507, + "teal": 4505, "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ 4246, - 4247 + 4247, + 4248 ] }, { - "teal": 4508, + "teal": 4506, "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4248, - 4249, - 4250 + 4249 ] }, { - "teal": 4509, + "teal": 4507, "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ + 4250, 4251 ] }, { - "teal": 4510, + "teal": 4508, "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4252, - 4253 + 4252 ] }, { - "teal": 4511, + "teal": 4509, "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4254 + 4253 ] }, { - "teal": 4512, - "source": "examples/reti/validatorRegistry.algo.ts:1207", + "teal": 4513, + "source": "examples/reti/validatorRegistry.algo.ts:1206", + "errorMessage": "epoch length not in allowable range", "pc": [ - 4255 + 4254 ] }, { - "teal": 4516, - "source": "examples/reti/validatorRegistry.algo.ts:1206", - "errorMessage": "epoch length not in allowable range", + "teal": 4520, + "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ + 4255, 4256 ] }, { - "teal": 4523, + "teal": 4521, "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ 4257, - 4258 + 4258, + 4259 ] }, { - "teal": 4524, + "teal": 4522, "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4259, - 4260, - 4261 + 4260 ] }, { - "teal": 4525, + "teal": 4523, "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4262 + 4261 ] }, { - "teal": 4526, + "teal": 4524, "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4263 + 4262 ] }, { - "teal": 4527, + "teal": 4525, "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4264 + 4263 ] }, { - "teal": 4528, + "teal": 4526, "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4265 + 4264, + 4265, + 4266 ] }, { - "teal": 4529, + "teal": 4527, "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4266, 4267, 4268 ] }, { - "teal": 4530, + "teal": 4528, "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ 4269, - 4270 + 4270, + 4271 ] }, { - "teal": 4531, + "teal": 4529, "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4271, - 4272, - 4273 + 4272 ] }, { - "teal": 4532, + "teal": 4530, "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ + 4273, 4274 ] }, { - "teal": 4533, - "source": "examples/reti/validatorRegistry.algo.ts:1211", - "pc": [ - 4275, - 4276 - ] - }, - { - "teal": 4534, + "teal": 4531, "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4277 + 4275 ] }, { - "teal": 4535, + "teal": 4532, "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4278 + 4276 ] }, { - "teal": 4539, + "teal": 4536, "source": "examples/reti/validatorRegistry.algo.ts:1210", "errorMessage": "commission percentage not valid", "pc": [ + 4277 + ] + }, + { + "teal": 4541, + "source": "examples/reti/validatorRegistry.algo.ts:1214", + "pc": [ + 4278, 4279 ] }, { - "teal": 4544, + "teal": 4542, "source": "examples/reti/validatorRegistry.algo.ts:1214", "pc": [ 4280, - 4281 + 4281, + 4282 ] }, { - "teal": 4545, + "teal": 4543, "source": "examples/reti/validatorRegistry.algo.ts:1214", "pc": [ - 4282, - 4283, - 4284 + 4283 ] }, { - "teal": 4546, + "teal": 4544, "source": "examples/reti/validatorRegistry.algo.ts:1214", "pc": [ - 4285 + 4284 ] }, { - "teal": 4547, + "teal": 4545, "source": "examples/reti/validatorRegistry.algo.ts:1214", "pc": [ - 4286 + 4285 ] }, { - "teal": 4548, + "teal": 4546, "source": "examples/reti/validatorRegistry.algo.ts:1214", "pc": [ - 4287 + 4286, + 4287, + 4288 ] }, { - "teal": 4549, - "source": "examples/reti/validatorRegistry.algo.ts:1214", + "teal": 4554, + "source": "examples/reti/validatorRegistry.algo.ts:1216", "pc": [ - 4288, 4289, 4290 ] }, { - "teal": 4557, + "teal": 4555, "source": "examples/reti/validatorRegistry.algo.ts:1216", "pc": [ 4291, - 4292 + 4292, + 4293 ] }, { - "teal": 4558, + "teal": 4556, "source": "examples/reti/validatorRegistry.algo.ts:1216", "pc": [ - 4293, 4294, 4295 ] }, { - "teal": 4559, + "teal": 4557, "source": "examples/reti/validatorRegistry.algo.ts:1216", "pc": [ - 4296, - 4297 + 4296 ] }, { "teal": 4560, - "source": "examples/reti/validatorRegistry.algo.ts:1216", + "source": "examples/reti/validatorRegistry.algo.ts:1215", + "errorMessage": "validatorCommissionAddress must be set if percent to validator is not 0", "pc": [ - 4298 + 4297 ] }, { - "teal": 4563, - "source": "examples/reti/validatorRegistry.algo.ts:1215", - "errorMessage": "validatorCommissionAddress must be set if percent to validator is not 0", + "teal": 4565, + "source": "examples/reti/validatorRegistry.algo.ts:1220", "pc": [ + 4298, 4299 ] }, { - "teal": 4568, + "teal": 4566, "source": "examples/reti/validatorRegistry.algo.ts:1220", "pc": [ 4300, - 4301 + 4301, + 4302 ] }, { - "teal": 4569, + "teal": 4567, "source": "examples/reti/validatorRegistry.algo.ts:1220", "pc": [ - 4302, - 4303, - 4304 + 4303 ] }, { - "teal": 4570, + "teal": 4568, "source": "examples/reti/validatorRegistry.algo.ts:1220", "pc": [ + 4304, 4305 ] }, { - "teal": 4571, + "teal": 4569, "source": "examples/reti/validatorRegistry.algo.ts:1220", "pc": [ - 4306, - 4307 + 4306 ] }, { "teal": 4572, "source": "examples/reti/validatorRegistry.algo.ts:1220", + "errorMessage": "staking pool must have minimum entry of 1 algo", "pc": [ - 4308 + 4307 ] }, { - "teal": 4575, - "source": "examples/reti/validatorRegistry.algo.ts:1220", - "errorMessage": "staking pool must have minimum entry of 1 algo", + "teal": 4579, + "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ + 4308, 4309 ] }, { - "teal": 4582, + "teal": 4580, "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ 4310, - 4311 + 4311, + 4312 ] }, { - "teal": 4583, + "teal": 4581, "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4312, - 4313, - 4314 + 4313 ] }, { - "teal": 4584, + "teal": 4582, "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4315 + 4314 ] }, { - "teal": 4585, + "teal": 4583, "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4316 + 4315 ] }, { - "teal": 4586, + "teal": 4584, "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4317 + 4316 ] }, { - "teal": 4587, + "teal": 4585, "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4318 + 4317, + 4318, + 4319 ] }, { - "teal": 4588, + "teal": 4586, "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4319, 4320, 4321 ] }, { - "teal": 4589, + "teal": 4587, "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ 4322, - 4323 + 4323, + 4324 ] }, { - "teal": 4590, + "teal": 4588, "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4324, - 4325, - 4326 + 4325 ] }, { - "teal": 4591, + "teal": 4589, "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ + 4326, 4327 ] }, { - "teal": 4592, + "teal": 4590, "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4328, - 4329 + 4328 ] }, { - "teal": 4593, + "teal": 4591, "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4330 + 4329 ] }, { - "teal": 4594, - "source": "examples/reti/validatorRegistry.algo.ts:1223", + "teal": 4595, + "source": "examples/reti/validatorRegistry.algo.ts:1222", + "errorMessage": "number of pools per node exceeds allowed number", "pc": [ - 4331 + 4330 ] }, { - "teal": 4598, - "source": "examples/reti/validatorRegistry.algo.ts:1222", - "errorMessage": "number of pools per node exceeds allowed number", + "teal": 4600, + "source": "examples/reti/validatorRegistry.algo.ts:1226", "pc": [ + 4331, 4332 ] }, { - "teal": 4603, + "teal": 4601, "source": "examples/reti/validatorRegistry.algo.ts:1226", "pc": [ 4333, - 4334 + 4334, + 4335 ] }, { - "teal": 4604, + "teal": 4602, "source": "examples/reti/validatorRegistry.algo.ts:1226", "pc": [ - 4335, - 4336, - 4337 + 4336 ] }, { - "teal": 4605, + "teal": 4603, "source": "examples/reti/validatorRegistry.algo.ts:1226", "pc": [ - 4338 + 4337 ] }, { - "teal": 4606, + "teal": 4604, "source": "examples/reti/validatorRegistry.algo.ts:1226", "pc": [ - 4339 + 4338 ] }, { - "teal": 4607, + "teal": 4605, "source": "examples/reti/validatorRegistry.algo.ts:1226", "pc": [ - 4340 + 4339, + 4340, + 4341 ] }, { - "teal": 4608, - "source": "examples/reti/validatorRegistry.algo.ts:1226", + "teal": 4610, + "source": "examples/reti/validatorRegistry.algo.ts:1227", "pc": [ - 4341, 4342, 4343 ] }, { - "teal": 4613, + "teal": 4611, "source": "examples/reti/validatorRegistry.algo.ts:1227", "pc": [ 4344, - 4345 + 4345, + 4346 ] }, { - "teal": 4614, + "teal": 4612, "source": "examples/reti/validatorRegistry.algo.ts:1227", "pc": [ - 4346, - 4347, - 4348 + 4347 ] }, { - "teal": 4615, + "teal": 4613, "source": "examples/reti/validatorRegistry.algo.ts:1227", "pc": [ + 4348, 4349 ] }, { - "teal": 4616, + "teal": 4614, "source": "examples/reti/validatorRegistry.algo.ts:1227", "pc": [ - 4350, - 4351 + 4350 ] }, { "teal": 4617, "source": "examples/reti/validatorRegistry.algo.ts:1227", + "errorMessage": "sunsettingOn must be later than now if set", "pc": [ - 4352 + 4351 ] }, { "teal": 4620, - "source": "examples/reti/validatorRegistry.algo.ts:1227", - "errorMessage": "sunsettingOn must be later than now if set", + "source": "examples/reti/validatorRegistry.algo.ts:1200", "pc": [ - 4353 + 4352 ] }, { - "teal": 4623, - "source": "examples/reti/validatorRegistry.algo.ts:1200", + "teal": 4634, + "source": "examples/reti/validatorRegistry.algo.ts:1242", "pc": [ - 4354 + 4353, + 4354, + 4355 ] }, { "teal": 4637, "source": "examples/reti/validatorRegistry.algo.ts:1242", "pc": [ - 4355, - 4356, - 4357 + 4356 ] }, { - "teal": 4640, + "teal": 4638, "source": "examples/reti/validatorRegistry.algo.ts:1242", "pc": [ + 4357, 4358 ] }, { - "teal": 4641, - "source": "examples/reti/validatorRegistry.algo.ts:1242", + "teal": 4642, + "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ 4359, 4360 ] }, { - "teal": 4645, + "teal": 4643, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ 4361, @@ -21772,177 +21772,177 @@ ] }, { - "teal": 4646, + "teal": 4644, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ 4363, - 4364 + 4364, + 4365 ] }, { - "teal": 4647, + "teal": 4645, + "source": "examples/reti/validatorRegistry.algo.ts:1249", + "pc": [ + 4366 + ] + }, + { + "teal": 4646, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4365, - 4366, 4367 ] }, { - "teal": 4648, + "teal": 4647, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ 4368 ] }, + { + "teal": 4648, + "source": "examples/reti/validatorRegistry.algo.ts:1249", + "pc": [ + 4369, + 4370 + ] + }, { "teal": 4649, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4369 + 4371 ] }, { "teal": 4650, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4370 + 4372 ] }, { "teal": 4651, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4371, - 4372 + 4373 ] }, { "teal": 4652, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4373 + 4374 ] }, { "teal": 4653, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4374 + 4375 ] }, { "teal": 4654, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4375 + 4376 ] }, { "teal": 4655, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4376 + 4377, + 4378 ] }, { "teal": 4656, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4377 + 4379, + 4380, + 4381 ] }, { "teal": 4657, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4378 + 4382 ] }, { "teal": 4658, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4379, - 4380 + 4383 ] }, { "teal": 4659, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4381, - 4382, - 4383 + 4384 ] }, { "teal": 4660, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4384 + 4385, + 4386 ] }, { "teal": 4661, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4385 + 4387 ] }, { "teal": 4662, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4386 - ] - }, - { - "teal": 4663, - "source": "examples/reti/validatorRegistry.algo.ts:1249", - "pc": [ - 4387, 4388 ] }, { - "teal": 4664, - "source": "examples/reti/validatorRegistry.algo.ts:1249", - "pc": [ - 4389 - ] - }, - { - "teal": 4665, + "teal": 4663, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ + 4389, 4390 ] }, { - "teal": 4666, - "source": "examples/reti/validatorRegistry.algo.ts:1249", + "teal": 4676, + "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ - 4391, - 4392 + 4391 ] }, { - "teal": 4679, + "teal": 4677, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ - 4393 + 4392 ] }, { - "teal": 4680, + "teal": 4678, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ + 4393, 4394 ] }, { - "teal": 4681, + "teal": 4682, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ 4395, @@ -21950,7 +21950,7 @@ ] }, { - "teal": 4685, + "teal": 4683, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ 4397, @@ -21958,7 +21958,7 @@ ] }, { - "teal": 4686, + "teal": 4684, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ 4399, @@ -21966,22 +21966,22 @@ ] }, { - "teal": 4687, + "teal": 4685, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ - 4401, - 4402 + 4401 ] }, { - "teal": 4688, + "teal": 4686, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ + 4402, 4403 ] }, { - "teal": 4689, + "teal": 4690, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ 4404, @@ -21989,7 +21989,7 @@ ] }, { - "teal": 4693, + "teal": 4691, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ 4406, @@ -21997,17 +21997,17 @@ ] }, { - "teal": 4694, + "teal": 4692, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ - 4408, - 4409 + 4408 ] }, { - "teal": 4695, + "teal": 4693, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ + 4409, 4410 ] }, @@ -22015,34 +22015,34 @@ "teal": 4696, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ - 4411, - 4412 + 4411 ] }, { - "teal": 4699, + "teal": 4697, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ + 4412, 4413 ] }, { - "teal": 4700, - "source": "examples/reti/validatorRegistry.algo.ts:1258", + "teal": 4698, + "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4414, - 4415 + 4414 ] }, { - "teal": 4701, + "teal": 4699, "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ + 4415, 4416 ] }, { - "teal": 4702, + "teal": 4700, "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ 4417, @@ -22050,35 +22050,35 @@ ] }, { - "teal": 4703, + "teal": 4701, "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ 4419, - 4420 + 4420, + 4421, + 4422, + 4423, + 4424 ] }, { - "teal": 4704, + "teal": 4702, "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4421, - 4422, - 4423, - 4424, 4425, 4426 ] }, { - "teal": 4705, - "source": "examples/reti/validatorRegistry.algo.ts:1253", + "teal": 4706, + "source": "examples/reti/validatorRegistry.algo.ts:1254", "pc": [ 4427, 4428 ] }, { - "teal": 4709, + "teal": 4707, "source": "examples/reti/validatorRegistry.algo.ts:1254", "pc": [ 4429, @@ -22086,15 +22086,15 @@ ] }, { - "teal": 4710, - "source": "examples/reti/validatorRegistry.algo.ts:1254", + "teal": 4717, + "source": "examples/reti/validatorRegistry.algo.ts:1260", "pc": [ 4431, 4432 ] }, { - "teal": 4720, + "teal": 4718, "source": "examples/reti/validatorRegistry.algo.ts:1260", "pc": [ 4433, @@ -22102,7 +22102,7 @@ ] }, { - "teal": 4721, + "teal": 4719, "source": "examples/reti/validatorRegistry.algo.ts:1260", "pc": [ 4435, @@ -22111,16 +22111,16 @@ }, { "teal": 4722, - "source": "examples/reti/validatorRegistry.algo.ts:1260", + "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4437, - 4438 + 4437 ] }, { - "teal": 4725, + "teal": 4723, "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ + 4438, 4439 ] }, @@ -22128,105 +22128,105 @@ "teal": 4726, "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4440, - 4441 + 4440 ] }, { - "teal": 4729, + "teal": 4727, "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ + 4441, 4442 ] }, { - "teal": 4730, + "teal": 4728, "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4443, - 4444 + 4443 ] }, { - "teal": 4731, + "teal": 4729, "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4445 + 4444 ] }, { - "teal": 4732, + "teal": 4730, "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ + 4445, 4446 ] }, { - "teal": 4733, + "teal": 4731, "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ 4447, - 4448 + 4448, + 4449 ] }, { - "teal": 4734, + "teal": 4732, "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4449, - 4450, - 4451 + 4450 ] }, { - "teal": 4735, - "source": "examples/reti/validatorRegistry.algo.ts:1253", + "teal": 4737, + "source": "examples/reti/validatorRegistry.algo.ts:1263", "pc": [ + 4451, 4452 ] }, { - "teal": 4740, + "teal": 4738, "source": "examples/reti/validatorRegistry.algo.ts:1263", "pc": [ 4453, - 4454 + 4454, + 4455 ] }, { - "teal": 4741, + "teal": 4739, "source": "examples/reti/validatorRegistry.algo.ts:1263", "pc": [ - 4455, - 4456, - 4457 + 4456 ] }, { - "teal": 4742, + "teal": 4740, "source": "examples/reti/validatorRegistry.algo.ts:1263", "pc": [ - 4458 + 4457, + 4458, + 4459 ] }, { - "teal": 4743, - "source": "examples/reti/validatorRegistry.algo.ts:1263", + "teal": 4745, + "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ - 4459, - 4460, - 4461 + 4460 ] }, { - "teal": 4748, + "teal": 4746, "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ + 4461, 4462 ] }, { - "teal": 4749, + "teal": 4747, "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ 4463, @@ -22234,22 +22234,22 @@ ] }, { - "teal": 4750, + "teal": 4748, "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ - 4465, - 4466 + 4465 ] }, { - "teal": 4751, + "teal": 4749, "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ + 4466, 4467 ] }, { - "teal": 4752, + "teal": 4750, "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ 4468, @@ -22257,22 +22257,22 @@ ] }, { - "teal": 4753, + "teal": 4751, "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ - 4470, - 4471 + 4470 ] }, { - "teal": 4754, + "teal": 4752, "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ + 4471, 4472 ] }, { - "teal": 4755, + "teal": 4753, "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ 4473, @@ -22280,7 +22280,7 @@ ] }, { - "teal": 4756, + "teal": 4754, "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ 4475, @@ -22288,7 +22288,7 @@ ] }, { - "teal": 4757, + "teal": 4755, "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ 4477, @@ -22296,22 +22296,22 @@ ] }, { - "teal": 4758, + "teal": 4756, "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ - 4479, - 4480 + 4479 ] }, { - "teal": 4759, - "source": "examples/reti/validatorRegistry.algo.ts:1264", + "teal": 4761, + "source": "examples/reti/validatorRegistry.algo.ts:1268", "pc": [ + 4480, 4481 ] }, { - "teal": 4764, + "teal": 4762, "source": "examples/reti/validatorRegistry.algo.ts:1268", "pc": [ 4482, @@ -22319,38 +22319,38 @@ ] }, { - "teal": 4765, + "teal": 4763, "source": "examples/reti/validatorRegistry.algo.ts:1268", "pc": [ - 4484, - 4485 + 4484 ] }, { "teal": 4766, "source": "examples/reti/validatorRegistry.algo.ts:1268", + "errorMessage": "global state value does not exist: AppID.fromUint64(poolAppId).globalState('numStakers')", "pc": [ - 4486 + 4485 ] }, { - "teal": 4769, + "teal": 4767, "source": "examples/reti/validatorRegistry.algo.ts:1268", - "errorMessage": "global state value does not exist: AppID.fromUint64(poolAppId).globalState('numStakers')", "pc": [ + 4486, 4487 ] }, { - "teal": 4770, - "source": "examples/reti/validatorRegistry.algo.ts:1268", + "teal": 4771, + "source": "examples/reti/validatorRegistry.algo.ts:1269", "pc": [ 4488, 4489 ] }, { - "teal": 4774, + "teal": 4772, "source": "examples/reti/validatorRegistry.algo.ts:1269", "pc": [ 4490, @@ -22358,38 +22358,38 @@ ] }, { - "teal": 4775, + "teal": 4773, "source": "examples/reti/validatorRegistry.algo.ts:1269", "pc": [ - 4492, - 4493 + 4492 ] }, { "teal": 4776, "source": "examples/reti/validatorRegistry.algo.ts:1269", + "errorMessage": "global state value does not exist: AppID.fromUint64(poolAppId).globalState('staked')", "pc": [ - 4494 + 4493 ] }, { - "teal": 4779, + "teal": 4777, "source": "examples/reti/validatorRegistry.algo.ts:1269", - "errorMessage": "global state value does not exist: AppID.fromUint64(poolAppId).globalState('staked')", "pc": [ + 4494, 4495 ] }, { - "teal": 4780, - "source": "examples/reti/validatorRegistry.algo.ts:1269", + "teal": 4781, + "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ 4496, 4497 ] }, { - "teal": 4784, + "teal": 4782, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ 4498, @@ -22397,787 +22397,787 @@ ] }, { - "teal": 4785, + "teal": 4783, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ 4500, - 4501 + 4501, + 4502 ] }, { - "teal": 4786, + "teal": 4784, + "source": "examples/reti/validatorRegistry.algo.ts:1270", + "pc": [ + 4503 + ] + }, + { + "teal": 4785, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4502, - 4503, 4504 ] }, { - "teal": 4787, + "teal": 4786, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ 4505 ] }, + { + "teal": 4787, + "source": "examples/reti/validatorRegistry.algo.ts:1270", + "pc": [ + 4506, + 4507 + ] + }, { "teal": 4788, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4506 + 4508 ] }, { "teal": 4789, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4507 + 4509 ] }, { "teal": 4790, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4508, - 4509 + 4510 ] }, { "teal": 4791, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4510 + 4511 ] }, { "teal": 4792, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4511 + 4512, + 4513 ] }, { "teal": 4793, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4512 + 4514 ] }, { "teal": 4794, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4513 + 4515, + 4516, + 4517 ] }, { "teal": 4795, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4514, - 4515 + 4518 ] }, { "teal": 4796, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4516 + 4519, + 4520 ] }, { "teal": 4797, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4517, - 4518, - 4519 + 4521, + 4522, + 4523 ] }, { "teal": 4798, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4520 + 4524 ] }, { "teal": 4799, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4521, - 4522 + 4525 ] }, { "teal": 4800, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4523, - 4524, - 4525 + 4526 ] }, { "teal": 4801, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4526 + 4527, + 4528 ] }, { "teal": 4802, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4527 + 4529 ] }, { - "teal": 4803, - "source": "examples/reti/validatorRegistry.algo.ts:1270", + "teal": 4806, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4528 + 4530, + 4531 ] }, { - "teal": 4804, - "source": "examples/reti/validatorRegistry.algo.ts:1270", + "teal": 4807, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4529, - 4530 + 4532, + 4533 ] }, { - "teal": 4805, - "source": "examples/reti/validatorRegistry.algo.ts:1270", + "teal": 4808, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4531 + 4534, + 4535, + 4536 ] }, { "teal": 4809, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4532, - 4533 + 4537 ] }, { "teal": 4810, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4534, - 4535 + 4538 ] }, { "teal": 4811, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4536, - 4537, - 4538 + 4539 ] }, { "teal": 4812, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4539 + 4540, + 4541 ] }, { "teal": 4813, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4540 + 4542 ] }, { "teal": 4814, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4541 + 4543 ] }, { "teal": 4815, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4542, - 4543 + 4544, + 4545 ] }, { "teal": 4816, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4544 + 4546 ] }, { "teal": 4817, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4545 + 4547, + 4548 ] }, { "teal": 4818, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4546, - 4547 + 4549 ] }, { "teal": 4819, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4548 + 4550 ] }, { "teal": 4820, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4549, - 4550 + 4551, + 4552 ] }, { "teal": 4821, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4551 + 4553, + 4554, + 4555 ] }, { "teal": 4822, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4552 + 4556 ] }, { "teal": 4823, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4553, - 4554 + 4557 ] }, { "teal": 4824, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4555, - 4556, - 4557 + 4558 ] }, { "teal": 4825, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4558 + 4559, + 4560 ] }, { "teal": 4826, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4559 + 4561 ] }, { - "teal": 4827, - "source": "examples/reti/validatorRegistry.algo.ts:1271", + "teal": 4831, + "source": "examples/reti/validatorRegistry.algo.ts:1274", "pc": [ - 4560 + 4562, + 4563 ] }, { - "teal": 4828, - "source": "examples/reti/validatorRegistry.algo.ts:1271", + "teal": 4832, + "source": "examples/reti/validatorRegistry.algo.ts:1274", "pc": [ - 4561, - 4562 + 4564, + 4565, + 4566 ] }, { - "teal": 4829, - "source": "examples/reti/validatorRegistry.algo.ts:1271", + "teal": 4837, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4563 + 4567, + 4568 ] }, { - "teal": 4834, - "source": "examples/reti/validatorRegistry.algo.ts:1274", + "teal": 4838, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4564, - 4565 + 4569 ] }, { - "teal": 4835, - "source": "examples/reti/validatorRegistry.algo.ts:1274", + "teal": 4839, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4566, - 4567, - 4568 + 4570 ] }, { "teal": 4840, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4569, - 4570 + 4571 ] }, { "teal": 4841, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4571 + 4572, + 4573 ] }, { "teal": 4842, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4572 + 4574, + 4575, + 4576 ] }, { "teal": 4843, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4573 + 4577 ] }, { "teal": 4844, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4574, - 4575 + 4578 ] }, { "teal": 4845, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4576, - 4577, - 4578 + 4579 ] }, { "teal": 4846, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4579 + 4580, + 4581 ] }, { "teal": 4847, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4580 + 4582 ] }, { "teal": 4848, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4581 + 4583 ] }, { "teal": 4849, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4582, - 4583 + 4584 ] }, { "teal": 4850, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4584 + 4585 ] }, { "teal": 4851, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4585 + 4586 ] }, { "teal": 4852, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4586 + 4587 ] }, { "teal": 4853, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4587 + 4588, + 4589 ] }, { "teal": 4854, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4588 + 4590, + 4591, + 4592 ] }, { "teal": 4855, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4589 + 4593 ] }, { "teal": 4856, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4590, - 4591 + 4594 ] }, { "teal": 4857, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4592, - 4593, - 4594 + 4595 ] }, { "teal": 4858, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4595 + 4596, + 4597 ] }, { "teal": 4859, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4596 + 4598 ] }, { - "teal": 4860, - "source": "examples/reti/validatorRegistry.algo.ts:1275", + "teal": 4865, + "source": "examples/reti/validatorRegistry.algo.ts:1277", "pc": [ - 4597 + 4599, + 4600 ] }, { - "teal": 4861, - "source": "examples/reti/validatorRegistry.algo.ts:1275", + "teal": 4866, + "source": "examples/reti/validatorRegistry.algo.ts:1277", "pc": [ - 4598, - 4599 + 4601, + 4602, + 4603 ] }, { - "teal": 4862, - "source": "examples/reti/validatorRegistry.algo.ts:1275", + "teal": 4871, + "source": "examples/reti/validatorRegistry.algo.ts:1278", "pc": [ - 4600 + 4604, + 4605 ] }, { - "teal": 4868, - "source": "examples/reti/validatorRegistry.algo.ts:1277", + "teal": 4872, + "source": "examples/reti/validatorRegistry.algo.ts:1278", "pc": [ - 4601, - 4602 + 4606 ] }, { - "teal": 4869, - "source": "examples/reti/validatorRegistry.algo.ts:1277", + "teal": 4873, + "source": "examples/reti/validatorRegistry.algo.ts:1278", "pc": [ - 4603, - 4604, - 4605 + 4607 ] }, { "teal": 4874, "source": "examples/reti/validatorRegistry.algo.ts:1278", "pc": [ - 4606, - 4607 + 4608 ] }, { "teal": 4875, "source": "examples/reti/validatorRegistry.algo.ts:1278", "pc": [ - 4608 + 4609, + 4610 ] }, { "teal": 4876, "source": "examples/reti/validatorRegistry.algo.ts:1278", "pc": [ - 4609 + 4611 ] }, { "teal": 4877, "source": "examples/reti/validatorRegistry.algo.ts:1278", "pc": [ - 4610 + 4612 ] }, { - "teal": 4878, - "source": "examples/reti/validatorRegistry.algo.ts:1278", + "teal": 4882, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4611, - 4612 + 4613, + 4614 ] }, { - "teal": 4879, - "source": "examples/reti/validatorRegistry.algo.ts:1278", + "teal": 4883, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4613 + 4615 ] }, { - "teal": 4880, - "source": "examples/reti/validatorRegistry.algo.ts:1278", + "teal": 4884, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4614 + 4616 ] }, { "teal": 4885, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4615, - 4616 + 4617 ] }, { "teal": 4886, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4617 + 4618, + 4619 ] }, { "teal": 4887, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4618 + 4620, + 4621, + 4622 ] }, { "teal": 4888, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4619 + 4623 ] }, { "teal": 4889, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4620, - 4621 + 4624 ] }, { "teal": 4890, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4622, - 4623, - 4624 + 4625 ] }, { "teal": 4891, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4625 + 4626, + 4627 ] }, { "teal": 4892, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4626 + 4628 ] }, { "teal": 4893, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4627 + 4629 ] }, { "teal": 4894, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4628, - 4629 + 4630, + 4631 ] }, { "teal": 4895, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4630 + 4632, + 4633 ] }, { "teal": 4896, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4631 + 4634, + 4635 ] }, { "teal": 4897, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4632, - 4633 + 4636 ] }, { "teal": 4898, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4634, - 4635 + 4637 ] }, { "teal": 4899, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4636, - 4637 + 4638 ] }, { "teal": 4900, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4638 + 4639 ] }, { "teal": 4901, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4639 + 4640, + 4641 ] }, { "teal": 4902, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4640 + 4642, + 4643, + 4644 ] }, { "teal": 4903, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4641 + 4645 ] }, { "teal": 4904, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4642, - 4643 - ] - }, - { - "teal": 4905, - "source": "examples/reti/validatorRegistry.algo.ts:1280", - "pc": [ - 4644, - 4645, 4646 ] }, { - "teal": 4906, + "teal": 4905, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ 4647 ] }, { - "teal": 4907, - "source": "examples/reti/validatorRegistry.algo.ts:1280", - "pc": [ - 4648 - ] - }, - { - "teal": 4908, + "teal": 4906, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ + 4648, 4649 ] }, { - "teal": 4909, + "teal": 4907, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4650, - 4651 + 4650 ] }, { - "teal": 4910, - "source": "examples/reti/validatorRegistry.algo.ts:1280", + "teal": 4911, + "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ + 4651, 4652 ] }, { - "teal": 4914, + "teal": 4912, "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ - 4653, - 4654 + 4653 ] }, { - "teal": 4915, + "teal": 4913, "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ + 4654, 4655 ] }, { - "teal": 4916, + "teal": 4914, "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ 4656, @@ -23185,7 +23185,7 @@ ] }, { - "teal": 4917, + "teal": 4915, "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ 4658, @@ -23193,199 +23193,199 @@ ] }, { - "teal": 4918, + "teal": 4916, "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ - 4660, - 4661 + 4660 ] }, { - "teal": 4919, + "teal": 4917, "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ - 4662 + 4661 ] }, { - "teal": 4920, + "teal": 4918, "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ + 4662, 4663 ] }, { - "teal": 4921, + "teal": 4919, "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ - 4664, - 4665 + 4664 ] }, { - "teal": 4922, + "teal": 4920, "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ - 4666 + 4665 ] }, { - "teal": 4923, - "source": "examples/reti/validatorRegistry.algo.ts:1281", + "teal": 4921, + "source": "examples/reti/validatorRegistry.algo.ts:1242", "pc": [ - 4667 + 4666 ] }, { - "teal": 4924, - "source": "examples/reti/validatorRegistry.algo.ts:1242", + "teal": 4925, + "source": "examples/reti/validatorRegistry.algo.ts:1284", "pc": [ - 4668 + 4667, + 4668, + 4669 ] }, { "teal": 4928, "source": "examples/reti/validatorRegistry.algo.ts:1284", "pc": [ - 4669, - 4670, - 4671 + 4670 ] }, { - "teal": 4931, + "teal": 4929, "source": "examples/reti/validatorRegistry.algo.ts:1284", "pc": [ + 4671, 4672 ] }, { - "teal": 4932, - "source": "examples/reti/validatorRegistry.algo.ts:1284", + "teal": 4933, + "source": "examples/reti/validatorRegistry.algo.ts:1285", "pc": [ - 4673, - 4674 + 4673 ] }, { - "teal": 4936, + "teal": 4934, "source": "examples/reti/validatorRegistry.algo.ts:1285", "pc": [ + 4674, 4675 ] }, { - "teal": 4937, + "teal": 4935, "source": "examples/reti/validatorRegistry.algo.ts:1285", "pc": [ - 4676, - 4677 + 4676 ] }, { - "teal": 4938, + "teal": 4936, "source": "examples/reti/validatorRegistry.algo.ts:1285", "pc": [ - 4678 + 4677 ] }, { - "teal": 4939, + "teal": 4937, "source": "examples/reti/validatorRegistry.algo.ts:1285", "pc": [ - 4679 + 4678 ] }, { - "teal": 4940, + "teal": 4938, "source": "examples/reti/validatorRegistry.algo.ts:1285", "pc": [ - 4680 + 4679 ] }, { - "teal": 4941, + "teal": 4939, "source": "examples/reti/validatorRegistry.algo.ts:1285", "pc": [ - 4681 + 4680 ] }, { - "teal": 4942, - "source": "examples/reti/validatorRegistry.algo.ts:1285", + "teal": 4943, + "source": "examples/reti/validatorRegistry.algo.ts:1287", "pc": [ - 4682 + 4681 ] }, { - "teal": 4946, + "teal": 4944, "source": "examples/reti/validatorRegistry.algo.ts:1287", "pc": [ + 4682, 4683 ] }, { - "teal": 4947, + "teal": 4945, "source": "examples/reti/validatorRegistry.algo.ts:1287", "pc": [ - 4684, - 4685 + 4684 ] }, { - "teal": 4948, + "teal": 4946, "source": "examples/reti/validatorRegistry.algo.ts:1287", "pc": [ - 4686 + 4685 ] }, { "teal": 4949, "source": "examples/reti/validatorRegistry.algo.ts:1287", + "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value", "pc": [ - 4687 + 4686 ] }, { - "teal": 4952, + "teal": 4950, "source": "examples/reti/validatorRegistry.algo.ts:1287", - "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value", "pc": [ + 4687, 4688 ] }, { - "teal": 4953, - "source": "examples/reti/validatorRegistry.algo.ts:1287", + "teal": 4954, + "source": "examples/reti/validatorRegistry.algo.ts:1288", "pc": [ - 4689, - 4690 + 4689 ] }, { - "teal": 4957, + "teal": 4955, "source": "examples/reti/validatorRegistry.algo.ts:1288", "pc": [ + 4690, 4691 ] }, { - "teal": 4958, - "source": "examples/reti/validatorRegistry.algo.ts:1288", + "teal": 4959, + "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ - 4692, - 4693 + 4692 ] }, { - "teal": 4962, + "teal": 4960, "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ + 4693, 4694 ] }, { - "teal": 4963, + "teal": 4965, "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ 4695, @@ -23393,7 +23393,7 @@ ] }, { - "teal": 4968, + "teal": 4966, "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ 4697, @@ -23401,31 +23401,31 @@ ] }, { - "teal": 4969, + "teal": 4967, "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ - 4699, - 4700 + 4699 ] }, { - "teal": 4970, + "teal": 4968, "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ - 4701 + 4700, + 4701, + 4702 ] }, { - "teal": 4971, - "source": "examples/reti/validatorRegistry.algo.ts:1289", + "teal": 4973, + "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ - 4702, 4703, 4704 ] }, { - "teal": 4976, + "teal": 4974, "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ 4705, @@ -23433,112 +23433,112 @@ ] }, { - "teal": 4977, + "teal": 4975, "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ - 4707, - 4708 + 4707 ] }, { - "teal": 4978, + "teal": 4976, "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ - 4709 + 4708 ] }, { - "teal": 4979, + "teal": 4977, "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ - 4710 + 4709 ] }, { - "teal": 4980, + "teal": 4978, "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ - 4711 + 4710 ] }, { - "teal": 4981, + "teal": 4979, "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ + 4711, 4712 ] }, { - "teal": 4982, + "teal": 4980, "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ - 4713, - 4714 + 4713 ] }, { - "teal": 4983, + "teal": 4981, "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ - 4715 + 4714, + 4715, + 4716 ] }, { - "teal": 4984, - "source": "examples/reti/validatorRegistry.algo.ts:1290", + "teal": 4986, + "source": "examples/reti/validatorRegistry.algo.ts:1292", "pc": [ - 4716, - 4717, - 4718 + 4717 ] }, { - "teal": 4989, - "source": "examples/reti/validatorRegistry.algo.ts:1292", + "teal": 4992, + "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ + 4718, 4719 ] }, { - "teal": 4995, + "teal": 4993, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4720, - 4721 + 4720 ] }, { - "teal": 4996, + "teal": 4994, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4722 + 4721 ] }, { - "teal": 4997, + "teal": 4995, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4723 + 4722 ] }, { - "teal": 4998, + "teal": 4996, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4724 + 4723, + 4724, + 4725 ] }, { - "teal": 4999, + "teal": 4997, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4725, 4726, 4727 ] }, { - "teal": 5000, + "teal": 4998, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ 4728, @@ -23546,411 +23546,411 @@ ] }, { - "teal": 5001, + "teal": 4999, + "source": "examples/reti/validatorRegistry.algo.ts:1294", + "pc": [ + 4730 + ] + }, + { + "teal": 5000, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4730, 4731 ] }, { - "teal": 5002, + "teal": 5001, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ 4732 ] }, { - "teal": 5003, + "teal": 5002, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ 4733 ] }, { - "teal": 5004, + "teal": 5003, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ 4734 ] }, { - "teal": 5005, + "teal": 5004, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ 4735 ] }, { - "teal": 5006, + "teal": 5005, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ 4736 ] }, { - "teal": 5007, + "teal": 5006, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ 4737 ] }, { - "teal": 5008, + "teal": 5007, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ 4738 ] }, { - "teal": 5009, + "teal": 5008, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ 4739 ] }, - { - "teal": 5010, - "source": "examples/reti/validatorRegistry.algo.ts:1294", - "pc": [ - 4740 - ] - }, { "teal": 5011, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4741 + 4740, + 4741, + 4742 ] }, { - "teal": 5014, - "source": "examples/reti/validatorRegistry.algo.ts:1294", + "teal": 5016, + "source": "examples/reti/validatorRegistry.algo.ts:1295", "pc": [ - 4742, 4743, 4744 ] }, { - "teal": 5019, + "teal": 5017, "source": "examples/reti/validatorRegistry.algo.ts:1295", "pc": [ - 4745, - 4746 + 4745 ] }, { - "teal": 5020, + "teal": 5018, "source": "examples/reti/validatorRegistry.algo.ts:1295", "pc": [ - 4747 + 4746 ] }, { - "teal": 5021, + "teal": 5019, "source": "examples/reti/validatorRegistry.algo.ts:1295", "pc": [ + 4747, 4748 ] }, { - "teal": 5022, - "source": "examples/reti/validatorRegistry.algo.ts:1295", + "teal": 5026, + "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ 4749, 4750 ] }, { - "teal": 5029, + "teal": 5027, "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ - 4751, - 4752 + 4751 ] }, { - "teal": 5030, + "teal": 5028, "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ - 4753 + 4752 ] }, { - "teal": 5031, + "teal": 5029, "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ + 4753, 4754 ] }, { - "teal": 5032, + "teal": 5030, "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ 4755, - 4756 + 4756, + 4757 ] }, { - "teal": 5033, - "source": "examples/reti/validatorRegistry.algo.ts:1289", + "teal": 5036, + "source": "examples/reti/validatorRegistry.algo.ts:1298", "pc": [ - 4757, 4758, 4759 ] }, { - "teal": 5039, + "teal": 5037, "source": "examples/reti/validatorRegistry.algo.ts:1298", "pc": [ - 4760, - 4761 + 4760 ] }, { - "teal": 5040, + "teal": 5038, "source": "examples/reti/validatorRegistry.algo.ts:1298", "pc": [ - 4762 + 4761 ] }, { - "teal": 5041, + "teal": 5039, "source": "examples/reti/validatorRegistry.algo.ts:1298", "pc": [ - 4763 + 4762, + 4763, + 4764 ] }, { - "teal": 5042, - "source": "examples/reti/validatorRegistry.algo.ts:1298", + "teal": 5043, + "source": "examples/reti/validatorRegistry.algo.ts:1299", + "errorMessage": "No empty slot available in the staker pool set", "pc": [ - 4764, - 4765, - 4766 + 4765 ] }, { - "teal": 5046, - "source": "examples/reti/validatorRegistry.algo.ts:1299", - "errorMessage": "No empty slot available in the staker pool set", + "teal": 5048, + "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ + 4766, 4767 ] }, { - "teal": 5051, + "teal": 5049, "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ - 4768, - 4769 + 4768 ] }, { - "teal": 5052, + "teal": 5050, "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ - 4770 + 4769 ] }, { - "teal": 5053, + "teal": 5051, "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ - 4771 + 4770 ] }, { - "teal": 5054, + "teal": 5052, "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ - 4772 + 4771 ] }, { - "teal": 5055, + "teal": 5053, "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ + 4772, 4773 ] }, { - "teal": 5056, + "teal": 5054, "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ - 4774, - 4775 + 4774 ] }, { - "teal": 5057, + "teal": 5055, "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ + 4775, 4776 ] }, { - "teal": 5058, + "teal": 5056, "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ - 4777, - 4778 + 4777 ] }, { - "teal": 5059, + "teal": 5057, "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ + 4778, 4779 ] }, { - "teal": 5060, + "teal": 5058, "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ - 4780, - 4781 + 4780 ] }, { - "teal": 5061, - "source": "examples/reti/validatorRegistry.algo.ts:1301", + "teal": 5059, + "source": "examples/reti/validatorRegistry.algo.ts:1284", "pc": [ - 4782 + 4781 ] }, { - "teal": 5062, - "source": "examples/reti/validatorRegistry.algo.ts:1284", + "teal": 5070, + "source": "examples/reti/validatorRegistry.algo.ts:1312", "pc": [ - 4783 + 4782, + 4783, + 4784 ] }, { "teal": 5073, "source": "examples/reti/validatorRegistry.algo.ts:1312", "pc": [ - 4784, - 4785, - 4786 + 4785 ] }, { - "teal": 5076, + "teal": 5074, "source": "examples/reti/validatorRegistry.algo.ts:1312", "pc": [ + 4786, 4787 ] }, { - "teal": 5077, - "source": "examples/reti/validatorRegistry.algo.ts:1312", + "teal": 5078, + "source": "examples/reti/validatorRegistry.algo.ts:1314", "pc": [ - 4788, - 4789 + 4788 ] }, { - "teal": 5081, + "teal": 5079, "source": "examples/reti/validatorRegistry.algo.ts:1314", "pc": [ + 4789, 4790 ] }, { - "teal": 5082, - "source": "examples/reti/validatorRegistry.algo.ts:1314", + "teal": 5083, + "source": "examples/reti/validatorRegistry.algo.ts:1315", "pc": [ - 4791, - 4792 + 4791 ] }, { - "teal": 5086, + "teal": 5084, "source": "examples/reti/validatorRegistry.algo.ts:1315", "pc": [ + 4792, 4793 ] }, { - "teal": 5087, - "source": "examples/reti/validatorRegistry.algo.ts:1315", + "teal": 5088, + "source": "examples/reti/validatorRegistry.algo.ts:1316", "pc": [ - 4794, - 4795 + 4794 ] }, { - "teal": 5091, + "teal": 5089, "source": "examples/reti/validatorRegistry.algo.ts:1316", "pc": [ + 4795, 4796 ] }, { - "teal": 5092, - "source": "examples/reti/validatorRegistry.algo.ts:1316", + "teal": 5093, + "source": "examples/reti/validatorRegistry.algo.ts:1318", "pc": [ - 4797, - 4798 + 4797 ] }, { - "teal": 5096, + "teal": 5094, "source": "examples/reti/validatorRegistry.algo.ts:1318", "pc": [ + 4798, 4799 ] }, { - "teal": 5097, + "teal": 5095, "source": "examples/reti/validatorRegistry.algo.ts:1318", "pc": [ - 4800, - 4801 + 4800 ] }, { - "teal": 5098, + "teal": 5096, "source": "examples/reti/validatorRegistry.algo.ts:1318", "pc": [ - 4802 + 4801 ] }, { "teal": 5099, "source": "examples/reti/validatorRegistry.algo.ts:1318", + "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value", "pc": [ - 4803 + 4802 ] }, { - "teal": 5102, + "teal": 5100, "source": "examples/reti/validatorRegistry.algo.ts:1318", - "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value", "pc": [ + 4803, 4804 ] }, { - "teal": 5103, - "source": "examples/reti/validatorRegistry.algo.ts:1318", + "teal": 5104, + "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ - 4805, - 4806 + 4805 ] }, { - "teal": 5107, + "teal": 5105, "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ + 4806, 4807 ] }, { - "teal": 5108, + "teal": 5110, "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ 4808, @@ -23958,7 +23958,7 @@ ] }, { - "teal": 5113, + "teal": 5111, "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ 4810, @@ -23966,31 +23966,31 @@ ] }, { - "teal": 5114, + "teal": 5112, "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ - 4812, - 4813 + 4812 ] }, { - "teal": 5115, + "teal": 5113, "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ - 4814 + 4813, + 4814, + 4815 ] }, { - "teal": 5116, - "source": "examples/reti/validatorRegistry.algo.ts:1319", + "teal": 5118, + "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ - 4815, 4816, 4817 ] }, { - "teal": 5121, + "teal": 5119, "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ 4818, @@ -23998,126 +23998,126 @@ ] }, { - "teal": 5122, + "teal": 5120, + "source": "examples/reti/validatorRegistry.algo.ts:1320", + "pc": [ + 4820 + ] + }, + { + "teal": 5121, "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ - 4820, 4821 ] }, { - "teal": 5123, + "teal": 5122, "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ 4822 ] }, { - "teal": 5124, + "teal": 5123, "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ 4823 ] }, { - "teal": 5125, + "teal": 5124, "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ 4824 ] }, { - "teal": 5126, + "teal": 5125, "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ 4825 ] }, { - "teal": 5127, + "teal": 5126, "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ 4826 ] }, { - "teal": 5128, + "teal": 5127, "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ 4827 ] }, { - "teal": 5129, + "teal": 5128, "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ 4828 ] }, { - "teal": 5130, - "source": "examples/reti/validatorRegistry.algo.ts:1320", - "pc": [ - 4829 - ] - }, - { - "teal": 5131, + "teal": 5129, "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ - 4830 + 4829, + 4830, + 4831 ] }, { "teal": 5132, - "source": "examples/reti/validatorRegistry.algo.ts:1320", + "source": "examples/reti/validatorRegistry.algo.ts:1321", "pc": [ - 4831, 4832, - 4833 + 4833, + 4834 ] }, { - "teal": 5135, - "source": "examples/reti/validatorRegistry.algo.ts:1321", + "teal": 5137, + "source": "examples/reti/validatorRegistry.algo.ts:1323", "pc": [ - 4834, 4835, 4836 ] }, { - "teal": 5140, + "teal": 5138, "source": "examples/reti/validatorRegistry.algo.ts:1323", "pc": [ - 4837, - 4838 + 4837 ] }, { - "teal": 5141, + "teal": 5139, "source": "examples/reti/validatorRegistry.algo.ts:1323", "pc": [ - 4839 + 4838 ] }, { - "teal": 5142, + "teal": 5140, "source": "examples/reti/validatorRegistry.algo.ts:1323", "pc": [ + 4839, 4840 ] }, { - "teal": 5143, - "source": "examples/reti/validatorRegistry.algo.ts:1323", + "teal": 5145, + "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ 4841, 4842 ] }, { - "teal": 5148, + "teal": 5146, "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ 4843, @@ -24125,104 +24125,104 @@ ] }, { - "teal": 5149, + "teal": 5147, + "source": "examples/reti/validatorRegistry.algo.ts:1324", + "pc": [ + 4845 + ] + }, + { + "teal": 5148, "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ - 4845, 4846 ] }, { - "teal": 5150, + "teal": 5149, "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ 4847 ] }, { - "teal": 5151, + "teal": 5150, "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ 4848 ] }, { - "teal": 5152, + "teal": 5151, "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ 4849 ] }, { - "teal": 5153, + "teal": 5152, "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ 4850 ] }, { - "teal": 5154, + "teal": 5153, "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ 4851 ] }, { - "teal": 5155, - "source": "examples/reti/validatorRegistry.algo.ts:1324", - "pc": [ - 4852 - ] - }, - { - "teal": 5156, + "teal": 5154, "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ + 4852, 4853 ] }, { - "teal": 5157, + "teal": 5155, "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ 4854, - 4855 + 4855, + 4856 ] }, { - "teal": 5158, + "teal": 5156, "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ - 4856, - 4857, - 4858 + 4857 ] }, { - "teal": 5159, + "teal": 5157, "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ - 4859 + 4858 ] }, { - "teal": 5160, + "teal": 5158, "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ - 4860 + 4859, + 4860, + 4861 ] }, { - "teal": 5161, - "source": "examples/reti/validatorRegistry.algo.ts:1324", + "teal": 5164, + "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 4861, 4862, 4863 ] }, { - "teal": 5167, + "teal": 5165, "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ 4864, @@ -24230,106 +24230,100 @@ ] }, { - "teal": 5168, + "teal": 5166, "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 4866, - 4867 + 4866 ] }, { - "teal": 5169, + "teal": 5167, "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 4868 + 4867 ] }, { - "teal": 5170, + "teal": 5168, "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 4869 + 4868 ] }, { - "teal": 5171, + "teal": 5169, "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 4870 + 4869 ] }, { - "teal": 5172, + "teal": 5170, "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ + 4870, 4871 ] }, { - "teal": 5173, + "teal": 5171, "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 4872, - 4873 + 4872 ] }, { - "teal": 5174, + "teal": 5172, "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 4874 + 4873, + 4874, + 4875 ] }, { - "teal": 5175, - "source": "examples/reti/validatorRegistry.algo.ts:1325", + "teal": 5177, + "source": "examples/reti/validatorRegistry.algo.ts:1326", "pc": [ - 4875, - 4876, - 4877 + 4876 ] }, { - "teal": 5180, + "teal": 5178, "source": "examples/reti/validatorRegistry.algo.ts:1326", "pc": [ + 4877, 4878 ] }, { - "teal": 5181, - "source": "examples/reti/validatorRegistry.algo.ts:1326", + "teal": 5182, + "source": "examples/reti/validatorRegistry.algo.ts:1328", "pc": [ 4879, 4880 ] }, { - "teal": 5185, - "source": "examples/reti/validatorRegistry.algo.ts:1328", - "pc": [ - 4881, - 4882 - ] - }, - { - "teal": 5186, + "teal": 5183, "source": "examples/reti/validatorRegistry.algo.ts:1328", "pc": [ - 4883 + 4881 ] }, { - "teal": 5187, + "teal": 5184, "source": "examples/reti/validatorRegistry.algo.ts:1328", "pc": [ - 4884 + 4882 ] }, { - "teal": 5188, + "teal": 5185, "source": "examples/reti/validatorRegistry.algo.ts:1328", "pc": [ + 4883, + 4884, 4885, 4886, 4887, @@ -24353,235 +24347,241 @@ 4905, 4906, 4907, - 4908, - 4909, - 4910 + 4908 + ] + }, + { + "teal": 5186, + "source": "examples/reti/validatorRegistry.algo.ts:1328", + "pc": [ + 4909 ] }, { - "teal": 5189, + "teal": 5187, "source": "examples/reti/validatorRegistry.algo.ts:1328", "pc": [ + 4910, 4911 ] }, { - "teal": 5190, + "teal": 5188, "source": "examples/reti/validatorRegistry.algo.ts:1328", "pc": [ - 4912, - 4913 + 4912 ] }, { - "teal": 5191, + "teal": 5189, "source": "examples/reti/validatorRegistry.algo.ts:1328", "pc": [ + 4913, 4914 ] }, { - "teal": 5192, + "teal": 5190, "source": "examples/reti/validatorRegistry.algo.ts:1328", "pc": [ - 4915, - 4916 + 4915 ] }, { - "teal": 5193, - "source": "examples/reti/validatorRegistry.algo.ts:1328", + "teal": 5191, + "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 4917 + 4916, + 4917, + 4918 ] }, { - "teal": 5194, - "source": "examples/reti/validatorRegistry.algo.ts:1325", + "teal": 5196, + "source": "examples/reti/validatorRegistry.algo.ts:1330", "pc": [ - 4918, 4919, 4920 ] }, { - "teal": 5199, + "teal": 5197, "source": "examples/reti/validatorRegistry.algo.ts:1330", "pc": [ - 4921, - 4922 + 4921 ] }, { - "teal": 5200, + "teal": 5198, "source": "examples/reti/validatorRegistry.algo.ts:1330", "pc": [ - 4923 + 4922 ] }, { - "teal": 5201, + "teal": 5199, "source": "examples/reti/validatorRegistry.algo.ts:1330", "pc": [ + 4923, 4924 ] }, { - "teal": 5202, - "source": "examples/reti/validatorRegistry.algo.ts:1330", + "teal": 5208, + "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ 4925, 4926 ] }, { - "teal": 5211, + "teal": 5209, "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ - 4927, - 4928 + 4927 ] }, { - "teal": 5212, + "teal": 5210, "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ - 4929 + 4928 ] }, { - "teal": 5213, + "teal": 5211, "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ + 4929, 4930 ] }, { - "teal": 5214, + "teal": 5212, "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ 4931, - 4932 + 4932, + 4933 ] }, { - "teal": 5215, - "source": "examples/reti/validatorRegistry.algo.ts:1319", + "teal": 5218, + "source": "examples/reti/validatorRegistry.algo.ts:1334", "pc": [ - 4933, 4934, 4935 ] }, { - "teal": 5221, + "teal": 5219, "source": "examples/reti/validatorRegistry.algo.ts:1334", "pc": [ - 4936, - 4937 + 4936 ] }, { - "teal": 5222, + "teal": 5220, "source": "examples/reti/validatorRegistry.algo.ts:1334", "pc": [ - 4938 + 4937, + 4938, + 4939 ] }, { - "teal": 5223, - "source": "examples/reti/validatorRegistry.algo.ts:1334", + "teal": 5224, + "source": "examples/reti/validatorRegistry.algo.ts:1335", + "errorMessage": "No matching slot found when told to remove a pool from the stakers set", "pc": [ - 4939, - 4940, - 4941 + 4940 ] }, { - "teal": 5227, - "source": "examples/reti/validatorRegistry.algo.ts:1335", - "errorMessage": "No matching slot found when told to remove a pool from the stakers set", + "teal": 5229, + "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ + 4941, 4942 ] }, { - "teal": 5232, + "teal": 5230, "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 4943, - 4944 + 4943 ] }, { - "teal": 5233, + "teal": 5231, "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ + 4944, 4945 ] }, { - "teal": 5234, + "teal": 5232, "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 4946, - 4947 + 4946 ] }, { - "teal": 5235, + "teal": 5233, "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 4948 + 4947 ] }, { - "teal": 5236, + "teal": 5234, "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 4949 + 4948 ] }, { - "teal": 5237, + "teal": 5235, "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 4950 + 4949 ] }, { - "teal": 5238, + "teal": 5236, "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ + 4950, 4951 ] }, { - "teal": 5239, + "teal": 5237, "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 4952, - 4953 + 4952 ] }, { - "teal": 5240, + "teal": 5238, "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 4954 + 4953 ] }, { - "teal": 5241, + "teal": 5239, "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 4955 + 4954 ] }, { "teal": 5242, - "source": "examples/reti/validatorRegistry.algo.ts:1338", + "source": "examples/reti/validatorRegistry.algo.ts:1312", "pc": [ + 4955, 4956 ] }, @@ -24594,46 +24594,46 @@ ] }, { - "teal": 5248, + "teal": 5246, "source": "examples/reti/validatorRegistry.algo.ts:1312", "pc": [ - 4959, - 4960 + 4959 ] }, { - "teal": 5249, - "source": "examples/reti/validatorRegistry.algo.ts:1312", + "teal": 5250, + "source": "examples/reti/validatorRegistry.algo.ts:1341", "pc": [ - 4961 + 4960, + 4961, + 4962 ] }, { "teal": 5253, "source": "examples/reti/validatorRegistry.algo.ts:1341", "pc": [ - 4962, - 4963, - 4964 + 4963 ] }, { - "teal": 5256, + "teal": 5254, "source": "examples/reti/validatorRegistry.algo.ts:1341", "pc": [ + 4964, 4965 ] }, { - "teal": 5257, - "source": "examples/reti/validatorRegistry.algo.ts:1341", + "teal": 5258, + "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ 4966, 4967 ] }, { - "teal": 5261, + "teal": 5259, "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ 4968, @@ -24641,224 +24641,224 @@ ] }, { - "teal": 5262, + "teal": 5260, "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ - 4970, - 4971 + 4970 ] }, { - "teal": 5263, + "teal": 5261, "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ + 4971, 4972 ] }, { - "teal": 5264, + "teal": 5262, "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ - 4973, - 4974 + 4973 ] }, { - "teal": 5265, + "teal": 5263, "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ - 4975 + 4974 ] }, { - "teal": 5266, + "teal": 5264, "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ + 4975, 4976 ] }, { - "teal": 5267, + "teal": 5265, "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ - 4977, - 4978 + 4977 ] }, { - "teal": 5268, + "teal": 5266, "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ + 4978, 4979 ] }, { - "teal": 5269, - "source": "examples/reti/validatorRegistry.algo.ts:1342", + "teal": 5270, + "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ 4980, - 4981 + 4981, + 4982 ] }, { - "teal": 5273, + "teal": 5271, "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ - 4982, - 4983, - 4984 + 4983 ] }, { - "teal": 5274, + "teal": 5272, "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ - 4985 + 4984 ] }, { - "teal": 5275, + "teal": 5273, "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ + 4985, 4986 ] }, { - "teal": 5276, + "teal": 5274, "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ - 4987, - 4988 + 4987 ] }, { - "teal": 5277, + "teal": 5275, "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ - 4989 + 4988 ] }, { - "teal": 5278, + "teal": 5276, "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ + 4989, 4990 ] }, { - "teal": 5279, + "teal": 5277, "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ - 4991, - 4992 + 4991 ] }, { - "teal": 5280, + "teal": 5278, "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ - 4993 + 4992 ] }, { - "teal": 5281, + "teal": 5279, "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ + 4993, 4994 ] }, { - "teal": 5282, - "source": "examples/reti/validatorRegistry.algo.ts:1343", + "teal": 5283, + "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ 4995, 4996 ] }, { - "teal": 5286, + "teal": 5284, "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ - 4997, - 4998 + 4997 ] }, { - "teal": 5287, + "teal": 5285, "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ - 4999 + 4998 ] }, { - "teal": 5288, + "teal": 5286, "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ - 5000 + 4999 ] }, { - "teal": 5289, + "teal": 5287, "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ - 5001 + 5000, + 5001, + 5002 ] }, { - "teal": 5290, + "teal": 5288, "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ - 5002, 5003, 5004 ] }, { - "teal": 5291, + "teal": 5289, "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ - 5005, - 5006 + 5005 ] }, { - "teal": 5292, + "teal": 5290, "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ - 5007 + 5006 ] }, { - "teal": 5293, + "teal": 5291, "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ - 5008 + 5007 ] }, { - "teal": 5294, + "teal": 5295, "source": "examples/reti/validatorRegistry.algo.ts:1345", + "errorMessage": "node number not in valid range", "pc": [ - 5009 + 5008 ] }, { - "teal": 5298, - "source": "examples/reti/validatorRegistry.algo.ts:1345", - "errorMessage": "node number not in valid range", + "teal": 5299, + "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ - 5010 + 5009 ] }, { - "teal": 5302, + "teal": 5300, "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ + 5010, 5011 ] }, { - "teal": 5303, + "teal": 5305, "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ 5012, @@ -24866,7 +24866,7 @@ ] }, { - "teal": 5308, + "teal": 5306, "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ 5014, @@ -24874,526 +24874,526 @@ ] }, { - "teal": 5309, + "teal": 5307, "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ - 5016, - 5017 + 5016 ] }, { - "teal": 5310, + "teal": 5308, "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ - 5018 + 5017, + 5018, + 5019 ] }, { - "teal": 5311, - "source": "examples/reti/validatorRegistry.algo.ts:1347", + "teal": 5313, + "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5019, 5020, 5021 ] }, + { + "teal": 5314, + "source": "examples/reti/validatorRegistry.algo.ts:1348", + "pc": [ + 5022 + ] + }, + { + "teal": 5315, + "source": "examples/reti/validatorRegistry.algo.ts:1348", + "pc": [ + 5023, + 5024 + ] + }, { "teal": 5316, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5022, - 5023 + 5025 ] }, { "teal": 5317, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5024 + 5026 ] }, { "teal": 5318, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5025, - 5026 + 5027 ] }, { "teal": 5319, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5027 + 5028 ] }, { "teal": 5320, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5028 + 5029 ] }, { "teal": 5321, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5029 + 5030 ] }, { "teal": 5322, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5030 + 5031 ] }, { "teal": 5323, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5031 + 5032, + 5033 ] }, { "teal": 5324, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5032 + 5034 ] }, { "teal": 5325, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5033 + 5035 ] }, { "teal": 5326, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5034, - 5035 + 5036 ] }, { "teal": 5327, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5036 + 5037 ] }, { "teal": 5328, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5037 + 5038 ] }, { "teal": 5329, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5038 + 5039 ] }, { "teal": 5330, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5039 + 5040 ] }, { "teal": 5331, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5040 + 5041 ] }, { "teal": 5332, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5041 + 5042, + 5043, + 5044 ] }, { - "teal": 5333, - "source": "examples/reti/validatorRegistry.algo.ts:1348", + "teal": 5337, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5042 + 5045, + 5046 ] }, { - "teal": 5334, - "source": "examples/reti/validatorRegistry.algo.ts:1348", + "teal": 5338, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5043 + 5047, + 5048 ] }, { - "teal": 5335, - "source": "examples/reti/validatorRegistry.algo.ts:1348", + "teal": 5339, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5044, - 5045, - 5046 + 5049 ] }, { "teal": 5340, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5047, - 5048 + 5050 ] }, { "teal": 5341, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5049, - 5050 + 5051 ] }, { "teal": 5342, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5051 + 5052 ] }, { "teal": 5343, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5052 + 5053 ] }, { "teal": 5344, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5053 + 5054 ] }, { "teal": 5345, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5054 + 5055 ] }, { "teal": 5346, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5055 + 5056, + 5057 ] }, { "teal": 5347, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5056 + 5058 ] }, { "teal": 5348, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5057 + 5059 ] }, { "teal": 5349, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5058, - 5059 + 5060 ] }, { "teal": 5350, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5060 + 5061, + 5062 ] }, { "teal": 5351, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5061 + 5063 ] }, { "teal": 5352, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5062 + 5064 ] }, { "teal": 5353, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5063, - 5064 + 5065, + 5066 ] }, { "teal": 5354, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5065 + 5067 ] }, { "teal": 5355, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5066 + 5068 ] }, { "teal": 5356, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5067, - 5068 + 5069, + 5070 ] }, { "teal": 5357, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5069 - ] - }, - { - "teal": 5358, - "source": "examples/reti/validatorRegistry.algo.ts:1350", - "pc": [ - 5070 + 5071 ] }, { - "teal": 5359, - "source": "examples/reti/validatorRegistry.algo.ts:1350", + "teal": 5361, + "source": "examples/reti/validatorRegistry.algo.ts:1351", "pc": [ - 5071, 5072 ] }, { - "teal": 5360, - "source": "examples/reti/validatorRegistry.algo.ts:1350", - "pc": [ - 5073 - ] - }, - { - "teal": 5364, - "source": "examples/reti/validatorRegistry.algo.ts:1351", + "teal": 5368, + "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ + 5073, 5074 ] }, { - "teal": 5371, + "teal": 5369, "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ - 5075, - 5076 + 5075 ] }, { - "teal": 5372, + "teal": 5370, "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ - 5077 + 5076 ] }, { - "teal": 5373, + "teal": 5371, "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ + 5077, 5078 ] }, { - "teal": 5374, + "teal": 5372, "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ 5079, - 5080 + 5080, + 5081 ] }, { - "teal": 5375, - "source": "examples/reti/validatorRegistry.algo.ts:1347", + "teal": 5376, + "source": "examples/reti/validatorRegistry.algo.ts:1354", + "errorMessage": "no available space in specified node for this pool", "pc": [ - 5081, - 5082, - 5083 + 5082 ] }, { - "teal": 5379, - "source": "examples/reti/validatorRegistry.algo.ts:1354", - "errorMessage": "no available space in specified node for this pool", + "teal": 5377, + "source": "examples/reti/validatorRegistry.algo.ts:1341", "pc": [ - 5084 + 5083 ] }, { - "teal": 5380, - "source": "examples/reti/validatorRegistry.algo.ts:1341", + "teal": 5387, + "source": "examples/reti/validatorRegistry.algo.ts:1364", "pc": [ - 5085 + 5084, + 5085, + 5086 ] }, { "teal": 5390, "source": "examples/reti/validatorRegistry.algo.ts:1364", "pc": [ - 5086, - 5087, - 5088 + 5087 ] }, { - "teal": 5393, + "teal": 5391, "source": "examples/reti/validatorRegistry.algo.ts:1364", "pc": [ + 5088, 5089 ] }, { - "teal": 5394, - "source": "examples/reti/validatorRegistry.algo.ts:1364", + "teal": 5395, + "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ 5090, 5091 ] }, { - "teal": 5398, + "teal": 5396, "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ - 5092, - 5093 + 5092 ] }, { - "teal": 5399, + "teal": 5397, "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ - 5094 + 5093 ] }, { - "teal": 5400, + "teal": 5398, "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ + 5094, 5095 ] }, { - "teal": 5401, + "teal": 5399, "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ - 5096, - 5097 + 5096 ] }, { - "teal": 5402, + "teal": 5400, "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ - 5098 + 5097 ] }, { - "teal": 5403, + "teal": 5401, "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ + 5098, 5099 ] }, { - "teal": 5404, + "teal": 5402, "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ - 5100, - 5101 + 5100 ] }, { - "teal": 5405, + "teal": 5403, "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ - 5102 + 5101 ] }, { - "teal": 5406, + "teal": 5404, "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ + 5102, 5103 ] }, { - "teal": 5407, - "source": "examples/reti/validatorRegistry.algo.ts:1365", + "teal": 5409, + "source": "examples/reti/validatorRegistry.algo.ts:1366", "pc": [ 5104, 5105 ] }, { - "teal": 5412, + "teal": 5410, "source": "examples/reti/validatorRegistry.algo.ts:1366", "pc": [ - 5106, - 5107 + 5106 ] }, { - "teal": 5413, + "teal": 5411, "source": "examples/reti/validatorRegistry.algo.ts:1366", "pc": [ - 5108 + 5107 ] }, { - "teal": 5414, + "teal": 5412, "source": "examples/reti/validatorRegistry.algo.ts:1366", "pc": [ - 5109 + 5108, + 5109, + 5110 ] }, { - "teal": 5415, - "source": "examples/reti/validatorRegistry.algo.ts:1366", + "teal": 5417, + "source": "examples/reti/validatorRegistry.algo.ts:1367", "pc": [ - 5110, - 5111, - 5112 + 5111 ] }, { - "teal": 5420, - "source": "examples/reti/validatorRegistry.algo.ts:1367", + "teal": 5422, + "source": "examples/reti/validatorRegistry.algo.ts:1369", "pc": [ + 5112, 5113 ] }, { - "teal": 5425, + "teal": 5423, "source": "examples/reti/validatorRegistry.algo.ts:1369", "pc": [ 5114, @@ -25401,120 +25401,120 @@ ] }, { - "teal": 5426, - "source": "examples/reti/validatorRegistry.algo.ts:1369", + "teal": 5427, + "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ - 5116, - 5117 + 5116 ] }, { - "teal": 5430, + "teal": 5428, "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ + 5117, 5118 ] }, { - "teal": 5431, + "teal": 5429, "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ - 5119, - 5120 + 5119 ] }, { - "teal": 5432, + "teal": 5430, "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ + 5120, 5121 ] }, { - "teal": 5433, + "teal": 5431, "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ - 5122, - 5123 + 5122 ] }, { - "teal": 5434, + "teal": 5432, "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ - 5124 + 5123 ] }, { - "teal": 5435, + "teal": 5433, "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ + 5124, 5125 ] }, { - "teal": 5436, + "teal": 5434, "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ - 5126, - 5127 + 5126 ] }, { - "teal": 5437, + "teal": 5435, "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ + 5127, 5128 ] }, { - "teal": 5438, - "source": "examples/reti/validatorRegistry.algo.ts:1370", + "teal": 5442, + "source": "examples/reti/validatorRegistry.algo.ts:1374", "pc": [ 5129, 5130 ] }, { - "teal": 5445, + "teal": 5443, "source": "examples/reti/validatorRegistry.algo.ts:1374", "pc": [ - 5131, - 5132 + 5131 ] }, { - "teal": 5446, + "teal": 5444, "source": "examples/reti/validatorRegistry.algo.ts:1374", "pc": [ - 5133 + 5132 ] }, { - "teal": 5447, + "teal": 5445, "source": "examples/reti/validatorRegistry.algo.ts:1374", "pc": [ - 5134 + 5133 ] }, { - "teal": 5448, + "teal": 5446, "source": "examples/reti/validatorRegistry.algo.ts:1374", "pc": [ - 5135 + 5134, + 5135, + 5136 ] }, { - "teal": 5449, - "source": "examples/reti/validatorRegistry.algo.ts:1374", + "teal": 5447, + "source": "examples/reti/validatorRegistry.algo.ts:1375", "pc": [ - 5136, 5137, 5138 ] }, { - "teal": 5450, + "teal": 5448, "source": "examples/reti/validatorRegistry.algo.ts:1375", "pc": [ 5139, @@ -25522,45 +25522,45 @@ ] }, { - "teal": 5451, + "teal": 5449, "source": "examples/reti/validatorRegistry.algo.ts:1375", "pc": [ - 5141, - 5142 + 5141 ] }, { - "teal": 5452, - "source": "examples/reti/validatorRegistry.algo.ts:1375", + "teal": 5450, + "source": "examples/reti/validatorRegistry.algo.ts:1374", "pc": [ - 5143 + 5142 ] }, { "teal": 5453, - "source": "examples/reti/validatorRegistry.algo.ts:1374", + "source": "examples/reti/validatorRegistry.algo.ts:1375", "pc": [ - 5144 + 5143 ] }, { - "teal": 5456, + "teal": 5454, "source": "examples/reti/validatorRegistry.algo.ts:1375", "pc": [ - 5145 + 5144, + 5145, + 5146 ] }, { - "teal": 5457, - "source": "examples/reti/validatorRegistry.algo.ts:1375", + "teal": 5455, + "source": "examples/reti/validatorRegistry.algo.ts:1376", "pc": [ - 5146, 5147, 5148 ] }, { - "teal": 5458, + "teal": 5456, "source": "examples/reti/validatorRegistry.algo.ts:1376", "pc": [ 5149, @@ -25568,187 +25568,187 @@ ] }, { - "teal": 5459, + "teal": 5457, "source": "examples/reti/validatorRegistry.algo.ts:1376", "pc": [ - 5151, - 5152 + 5151 ] }, { - "teal": 5460, - "source": "examples/reti/validatorRegistry.algo.ts:1376", + "teal": 5458, + "source": "examples/reti/validatorRegistry.algo.ts:1375", "pc": [ - 5153 + 5152 ] }, { "teal": 5461, - "source": "examples/reti/validatorRegistry.algo.ts:1375", + "source": "examples/reti/validatorRegistry.algo.ts:1373", "pc": [ - 5154 + 5153, + 5154, + 5155 ] }, { - "teal": 5464, - "source": "examples/reti/validatorRegistry.algo.ts:1373", + "teal": 5466, + "source": "examples/reti/validatorRegistry.algo.ts:1378", "pc": [ - 5155, 5156, 5157 ] }, { - "teal": 5469, + "teal": 5467, "source": "examples/reti/validatorRegistry.algo.ts:1378", "pc": [ - 5158, - 5159 + 5158 ] }, { - "teal": 5470, + "teal": 5468, "source": "examples/reti/validatorRegistry.algo.ts:1378", "pc": [ - 5160 + 5159 ] }, { - "teal": 5471, + "teal": 5469, "source": "examples/reti/validatorRegistry.algo.ts:1378", "pc": [ - 5161 + 5160 ] }, { - "teal": 5472, - "source": "examples/reti/validatorRegistry.algo.ts:1378", + "teal": 5473, + "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ + 5161, 5162 ] }, { - "teal": 5476, + "teal": 5474, "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ - 5163, - 5164 + 5163 ] }, { - "teal": 5477, + "teal": 5475, "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ - 5165 + 5164 ] }, { - "teal": 5478, + "teal": 5476, "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ + 5165, 5166 ] }, { - "teal": 5479, + "teal": 5477, "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ - 5167, - 5168 + 5167 ] }, { - "teal": 5480, + "teal": 5478, "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ - 5169 + 5168 ] }, { - "teal": 5481, + "teal": 5479, "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ + 5169, 5170 ] }, { - "teal": 5482, + "teal": 5480, "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ - 5171, - 5172 + 5171 ] }, { - "teal": 5483, + "teal": 5481, "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ - 5173 + 5172 ] }, { - "teal": 5484, + "teal": 5482, "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ + 5173, 5174 ] }, { - "teal": 5485, - "source": "examples/reti/validatorRegistry.algo.ts:1379", + "teal": 5487, + "source": "examples/reti/validatorRegistry.algo.ts:1380", "pc": [ 5175, 5176 ] }, { - "teal": 5490, + "teal": 5488, "source": "examples/reti/validatorRegistry.algo.ts:1380", "pc": [ - 5177, - 5178 + 5177 ] }, { - "teal": 5491, + "teal": 5489, "source": "examples/reti/validatorRegistry.algo.ts:1380", "pc": [ - 5179 + 5178 ] }, { - "teal": 5492, + "teal": 5490, "source": "examples/reti/validatorRegistry.algo.ts:1380", "pc": [ - 5180 + 5179, + 5180, + 5181 ] }, { - "teal": 5493, - "source": "examples/reti/validatorRegistry.algo.ts:1380", + "teal": 5495, + "source": "examples/reti/validatorRegistry.algo.ts:1381", "pc": [ - 5181, - 5182, - 5183 + 5182 ] }, { - "teal": 5498, + "teal": 5496, "source": "examples/reti/validatorRegistry.algo.ts:1381", "pc": [ + 5183, 5184 ] }, { - "teal": 5499, - "source": "examples/reti/validatorRegistry.algo.ts:1381", + "teal": 5504, + "source": "examples/reti/validatorRegistry.algo.ts:1384", "pc": [ 5185, 5186 ] }, { - "teal": 5507, + "teal": 5505, "source": "examples/reti/validatorRegistry.algo.ts:1384", "pc": [ 5187, @@ -25756,7 +25756,7 @@ ] }, { - "teal": 5508, + "teal": 5506, "source": "examples/reti/validatorRegistry.algo.ts:1384", "pc": [ 5189, @@ -25764,76 +25764,76 @@ ] }, { - "teal": 5509, + "teal": 5507, "source": "examples/reti/validatorRegistry.algo.ts:1384", "pc": [ - 5191, - 5192 + 5191 ] }, { - "teal": 5510, + "teal": 5508, "source": "examples/reti/validatorRegistry.algo.ts:1384", "pc": [ + 5192, 5193 ] }, { - "teal": 5511, + "teal": 5509, "source": "examples/reti/validatorRegistry.algo.ts:1384", "pc": [ - 5194, - 5195 + 5194 ] }, { "teal": 5512, - "source": "examples/reti/validatorRegistry.algo.ts:1384", + "source": "examples/reti/validatorRegistry.algo.ts:1383", + "errorMessage": "must have required minimum balance of validator defined token to add stake", "pc": [ - 5196 + 5195 ] }, { - "teal": 5515, - "source": "examples/reti/validatorRegistry.algo.ts:1383", - "errorMessage": "must have required minimum balance of validator defined token to add stake", + "teal": 5518, + "source": "examples/reti/validatorRegistry.algo.ts:1388", "pc": [ + 5196, 5197 ] }, { - "teal": 5521, + "teal": 5519, "source": "examples/reti/validatorRegistry.algo.ts:1388", "pc": [ - 5198, - 5199 + 5198 ] }, { - "teal": 5522, + "teal": 5520, "source": "examples/reti/validatorRegistry.algo.ts:1388", "pc": [ - 5200 + 5199 ] }, { - "teal": 5523, + "teal": 5521, "source": "examples/reti/validatorRegistry.algo.ts:1388", "pc": [ - 5201 + 5200, + 5201, + 5202 ] }, { - "teal": 5524, - "source": "examples/reti/validatorRegistry.algo.ts:1388", + "teal": 5529, + "source": "examples/reti/validatorRegistry.algo.ts:1390", "pc": [ - 5202, 5203, 5204 ] }, { - "teal": 5532, + "teal": 5530, "source": "examples/reti/validatorRegistry.algo.ts:1390", "pc": [ 5205, @@ -25841,54 +25841,54 @@ ] }, { - "teal": 5533, + "teal": 5531, "source": "examples/reti/validatorRegistry.algo.ts:1390", "pc": [ - 5207, - 5208 + 5207 ] }, { - "teal": 5534, + "teal": 5532, "source": "examples/reti/validatorRegistry.algo.ts:1390", "pc": [ + 5208, 5209 ] }, { - "teal": 5535, + "teal": 5533, "source": "examples/reti/validatorRegistry.algo.ts:1390", "pc": [ 5210, - 5211 + 5211, + 5212 ] }, { - "teal": 5536, + "teal": 5534, "source": "examples/reti/validatorRegistry.algo.ts:1390", "pc": [ - 5212, - 5213, - 5214 + 5213 ] }, { "teal": 5537, - "source": "examples/reti/validatorRegistry.algo.ts:1390", + "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": [ - 5215 + 5214 ] }, { - "teal": 5540, - "source": "examples/reti/validatorRegistry.algo.ts:1389", - "errorMessage": "specified asset must be created by creator that the validator defined as a requirement to stake", + "teal": 5543, + "source": "examples/reti/validatorRegistry.algo.ts:1394", "pc": [ + 5215, 5216 ] }, { - "teal": 5546, + "teal": 5544, "source": "examples/reti/validatorRegistry.algo.ts:1394", "pc": [ 5217, @@ -25896,146 +25896,146 @@ ] }, { - "teal": 5547, + "teal": 5545, "source": "examples/reti/validatorRegistry.algo.ts:1394", "pc": [ - 5219, - 5220 + 5219 ] }, { - "teal": 5548, + "teal": 5546, "source": "examples/reti/validatorRegistry.algo.ts:1394", "pc": [ - 5221 + 5220, + 5221, + 5222 ] }, { - "teal": 5549, - "source": "examples/reti/validatorRegistry.algo.ts:1394", + "teal": 5551, + "source": "examples/reti/validatorRegistry.algo.ts:1395", "pc": [ - 5222, 5223, 5224 ] }, { - "teal": 5554, + "teal": 5552, "source": "examples/reti/validatorRegistry.algo.ts:1395", "pc": [ - 5225, - 5226 + 5225 ] }, { - "teal": 5555, + "teal": 5553, "source": "examples/reti/validatorRegistry.algo.ts:1395", "pc": [ - 5227 + 5226 ] }, { - "teal": 5556, + "teal": 5554, "source": "examples/reti/validatorRegistry.algo.ts:1395", "pc": [ - 5228 + 5227 ] }, { - "teal": 5557, - "source": "examples/reti/validatorRegistry.algo.ts:1395", + "teal": 5558, + "source": "examples/reti/validatorRegistry.algo.ts:1396", "pc": [ - 5229 + 5228 ] }, { - "teal": 5561, + "teal": 5559, "source": "examples/reti/validatorRegistry.algo.ts:1396", "pc": [ + 5229, 5230 ] }, { - "teal": 5562, - "source": "examples/reti/validatorRegistry.algo.ts:1396", + "teal": 5563, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ 5231, 5232 ] }, { - "teal": 5566, + "teal": 5564, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ 5233, - 5234 + 5234, + 5235 ] }, { - "teal": 5567, + "teal": 5565, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5235, - 5236, - 5237 + 5236 ] }, { - "teal": 5568, + "teal": 5566, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ + 5237, 5238 ] }, { - "teal": 5569, + "teal": 5567, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ 5239, - 5240 + 5240, + 5241 ] }, { - "teal": 5570, + "teal": 5568, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5241, - 5242, - 5243 + 5242 ] }, { - "teal": 5571, + "teal": 5569, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ + 5243, 5244 ] }, { - "teal": 5572, + "teal": 5570, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5245, - 5246 + 5245 ] }, { - "teal": 5573, + "teal": 5571, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ + 5246, 5247 ] }, { - "teal": 5574, - "source": "examples/reti/validatorRegistry.algo.ts:1397", + "teal": 5577, + "source": "examples/reti/validatorRegistry.algo.ts:1398", "pc": [ 5248, 5249 ] }, { - "teal": 5580, + "teal": 5578, "source": "examples/reti/validatorRegistry.algo.ts:1398", "pc": [ 5250, @@ -26043,108 +26043,108 @@ ] }, { - "teal": 5581, + "teal": 5579, "source": "examples/reti/validatorRegistry.algo.ts:1398", "pc": [ - 5252, - 5253 + 5252 ] }, { - "teal": 5582, + "teal": 5580, "source": "examples/reti/validatorRegistry.algo.ts:1398", "pc": [ - 5254 + 5253, + 5254, + 5255 ] }, { - "teal": 5583, - "source": "examples/reti/validatorRegistry.algo.ts:1398", + "teal": 5585, + "source": "examples/reti/validatorRegistry.algo.ts:1399", "pc": [ - 5255, - 5256, - 5257 + 5256 ] }, { - "teal": 5588, + "teal": 5586, "source": "examples/reti/validatorRegistry.algo.ts:1399", "pc": [ + 5257, 5258 ] }, { - "teal": 5589, - "source": "examples/reti/validatorRegistry.algo.ts:1399", + "teal": 5587, + "source": "examples/reti/validatorRegistry.algo.ts:1400", "pc": [ 5259, - 5260 + 5260, + 5261 ] }, { - "teal": 5590, - "source": "examples/reti/validatorRegistry.algo.ts:1400", + "teal": 5593, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5261, 5262, 5263 ] }, { - "teal": 5596, + "teal": 5594, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5264, - 5265 + 5264 ] }, { - "teal": 5597, + "teal": 5595, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5266 + 5265 ] }, { - "teal": 5598, + "teal": 5596, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5267 + 5266 ] }, { - "teal": 5599, + "teal": 5597, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ + 5267, 5268 ] }, { - "teal": 5600, + "teal": 5598, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5269, - 5270 + 5269 ] }, { - "teal": 5601, + "teal": 5599, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5271 + 5270, + 5271, + 5272 ] }, { - "teal": 5602, + "teal": 5600, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5272, 5273, 5274 ] }, { - "teal": 5603, + "teal": 5601, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ 5275, @@ -26152,7 +26152,7 @@ ] }, { - "teal": 5604, + "teal": 5602, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ 5277, @@ -26160,47 +26160,47 @@ ] }, { - "teal": 5605, + "teal": 5603, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5279, - 5280 + 5279 ] }, { - "teal": 5606, + "teal": 5604, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5281 + 5280 ] }, { - "teal": 5607, + "teal": 5605, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5282 + 5281 ] }, { - "teal": 5608, + "teal": 5606, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ + 5282, 5283 ] }, { - "teal": 5609, + "teal": 5607, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ 5284, - 5285 + 5285, + 5286 ] }, { - "teal": 5610, - "source": "examples/reti/validatorRegistry.algo.ts:1397", + "teal": 5612, + "source": "examples/reti/validatorRegistry.algo.ts:1403", "pc": [ - 5286, 5287, 5288 ] @@ -26208,21 +26208,21 @@ { "teal": 5615, "source": "examples/reti/validatorRegistry.algo.ts:1403", + "errorMessage": "specified asset must be identical to the asset id defined as a requirement to stake", "pc": [ - 5289, - 5290 + 5289 ] }, { - "teal": 5618, - "source": "examples/reti/validatorRegistry.algo.ts:1403", - "errorMessage": "specified asset must be identical to the asset id defined as a requirement to stake", + "teal": 5621, + "source": "examples/reti/validatorRegistry.algo.ts:1405", "pc": [ + 5290, 5291 ] }, { - "teal": 5624, + "teal": 5622, "source": "examples/reti/validatorRegistry.algo.ts:1405", "pc": [ 5292, @@ -26230,31 +26230,31 @@ ] }, { - "teal": 5625, + "teal": 5623, "source": "examples/reti/validatorRegistry.algo.ts:1405", "pc": [ - 5294, - 5295 + 5294 ] }, { - "teal": 5626, + "teal": 5624, "source": "examples/reti/validatorRegistry.algo.ts:1405", "pc": [ - 5296 + 5295, + 5296, + 5297 ] }, { - "teal": 5627, - "source": "examples/reti/validatorRegistry.algo.ts:1405", + "teal": 5632, + "source": "examples/reti/validatorRegistry.algo.ts:1409", "pc": [ - 5297, 5298, 5299 ] }, { - "teal": 5635, + "teal": 5633, "source": "examples/reti/validatorRegistry.algo.ts:1409", "pc": [ 5300, @@ -26262,63 +26262,63 @@ ] }, { - "teal": 5636, + "teal": 5634, "source": "examples/reti/validatorRegistry.algo.ts:1409", "pc": [ - 5302, - 5303 + 5302 ] }, { - "teal": 5637, + "teal": 5635, "source": "examples/reti/validatorRegistry.algo.ts:1409", "pc": [ + 5303, 5304 ] }, { - "teal": 5638, + "teal": 5636, "source": "examples/reti/validatorRegistry.algo.ts:1409", "pc": [ 5305, - 5306 + 5306, + 5307 ] }, { - "teal": 5639, + "teal": 5637, "source": "examples/reti/validatorRegistry.algo.ts:1409", "pc": [ - 5307, - 5308, - 5309 + 5308 ] }, { - "teal": 5640, + "teal": 5638, "source": "examples/reti/validatorRegistry.algo.ts:1409", "pc": [ - 5310 + 5309, + 5310, + 5311 ] }, { "teal": 5641, - "source": "examples/reti/validatorRegistry.algo.ts:1409", + "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": [ - 5311, - 5312, - 5313 + 5312 ] }, { - "teal": 5644, - "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", + "teal": 5647, + "source": "examples/reti/validatorRegistry.algo.ts:1413", "pc": [ + 5313, 5314 ] }, { - "teal": 5650, + "teal": 5648, "source": "examples/reti/validatorRegistry.algo.ts:1413", "pc": [ 5315, @@ -26326,31 +26326,31 @@ ] }, { - "teal": 5651, + "teal": 5649, "source": "examples/reti/validatorRegistry.algo.ts:1413", "pc": [ - 5317, - 5318 + 5317 ] }, { - "teal": 5652, + "teal": 5650, "source": "examples/reti/validatorRegistry.algo.ts:1413", "pc": [ - 5319 + 5318, + 5319, + 5320 ] }, { - "teal": 5653, - "source": "examples/reti/validatorRegistry.algo.ts:1413", + "teal": 5655, + "source": "examples/reti/validatorRegistry.algo.ts:1415", "pc": [ - 5320, 5321, 5322 ] }, { - "teal": 5658, + "teal": 5656, "source": "examples/reti/validatorRegistry.algo.ts:1415", "pc": [ 5323, @@ -26358,40 +26358,40 @@ ] }, { - "teal": 5659, - "source": "examples/reti/validatorRegistry.algo.ts:1415", + "teal": 5660, + "source": "examples/reti/validatorRegistry.algo.ts:1416", "pc": [ 5325, 5326 ] }, { - "teal": 5663, + "teal": 5661, "source": "examples/reti/validatorRegistry.algo.ts:1416", "pc": [ 5327, - 5328 + 5328, + 5329 ] }, { "teal": 5664, "source": "examples/reti/validatorRegistry.algo.ts:1416", + "errorMessage": "provided NFD must be valid", "pc": [ - 5329, - 5330, - 5331 + 5330 ] }, { - "teal": 5667, - "source": "examples/reti/validatorRegistry.algo.ts:1416", - "errorMessage": "provided NFD must be valid", + "teal": 5672, + "source": "examples/reti/validatorRegistry.algo.ts:1420", "pc": [ + 5331, 5332 ] }, { - "teal": 5675, + "teal": 5673, "source": "examples/reti/validatorRegistry.algo.ts:1420", "pc": [ 5333, @@ -26399,61 +26399,61 @@ ] }, { - "teal": 5676, + "teal": 5674, "source": "examples/reti/validatorRegistry.algo.ts:1420", "pc": [ - 5335, - 5336 + 5335 ] }, { "teal": 5677, "source": "examples/reti/validatorRegistry.algo.ts:1420", + "errorMessage": "global state value does not exist: AppID.fromUint64(userOfferedNFDAppID).globalState('i.owner.a')", "pc": [ - 5337 + 5336 ] }, { - "teal": 5680, + "teal": 5678, "source": "examples/reti/validatorRegistry.algo.ts:1420", - "errorMessage": "global state value does not exist: AppID.fromUint64(userOfferedNFDAppID).globalState('i.owner.a')", "pc": [ + 5337, 5338 ] }, { - "teal": 5681, + "teal": 5679, "source": "examples/reti/validatorRegistry.algo.ts:1420", "pc": [ - 5339, - 5340 + 5339 ] }, { - "teal": 5682, + "teal": 5680, "source": "examples/reti/validatorRegistry.algo.ts:1420", "pc": [ - 5341 + 5340 ] }, { - "teal": 5683, + "teal": 5681, "source": "examples/reti/validatorRegistry.algo.ts:1420", "pc": [ - 5342 + 5341, + 5342, + 5343 ] }, { - "teal": 5684, - "source": "examples/reti/validatorRegistry.algo.ts:1420", + "teal": 5682, + "source": "examples/reti/validatorRegistry.algo.ts:1421", "pc": [ - 5343, 5344, 5345 ] }, { - "teal": 5685, + "teal": 5683, "source": "examples/reti/validatorRegistry.algo.ts:1421", "pc": [ 5346, @@ -26461,49 +26461,43 @@ ] }, { - "teal": 5686, + "teal": 5684, "source": "examples/reti/validatorRegistry.algo.ts:1421", "pc": [ 5348, - 5349 + 5349, + 5350 ] }, { - "teal": 5687, - "source": "examples/reti/validatorRegistry.algo.ts:1421", - "pc": [ - 5350, - 5351, - 5352 - ] - }, - { - "teal": 5688, + "teal": 5685, "source": "examples/reti/validatorRegistry.algo.ts:1420", "pc": [ - 5353 + 5351 ] }, { - "teal": 5692, + "teal": 5689, "source": "examples/reti/validatorRegistry.algo.ts:1419", "errorMessage": "provided nfd for entry isn't owned or linked to the staker", "pc": [ - 5354 + 5352 ] }, { - "teal": 5700, + "teal": 5697, "source": "examples/reti/validatorRegistry.algo.ts:1427", "pc": [ - 5355, - 5356 + 5353, + 5354 ] }, { - "teal": 5701, + "teal": 5698, "source": "examples/reti/validatorRegistry.algo.ts:1427", "pc": [ + 5355, + 5356, 5357, 5358, 5359, @@ -26516,149 +26510,155 @@ 5366, 5367, 5368, - 5369, - 5370, - 5371 + 5369 ] }, { - "teal": 5702, + "teal": 5699, "source": "examples/reti/validatorRegistry.algo.ts:1427", "pc": [ - 5372 + 5370 ] }, { - "teal": 5705, + "teal": 5702, "source": "examples/reti/validatorRegistry.algo.ts:1427", "errorMessage": "global state value does not exist: AppID.fromUint64(userOfferedNFDAppID).globalState('i.parentAppID')", "pc": [ - 5373 + 5371 ] }, { - "teal": 5706, + "teal": 5703, "source": "examples/reti/validatorRegistry.algo.ts:1427", "pc": [ - 5374 + 5372 ] }, { - "teal": 5707, + "teal": 5704, "source": "examples/reti/validatorRegistry.algo.ts:1428", "pc": [ - 5375, - 5376 + 5373, + 5374 ] }, { - "teal": 5708, + "teal": 5705, "source": "examples/reti/validatorRegistry.algo.ts:1428", "pc": [ - 5377, - 5378, - 5379 + 5375, + 5376, + 5377 ] }, { - "teal": 5709, + "teal": 5706, "source": "examples/reti/validatorRegistry.algo.ts:1428", "pc": [ - 5380 + 5378 ] }, { - "teal": 5710, + "teal": 5707, "source": "examples/reti/validatorRegistry.algo.ts:1427", "pc": [ - 5381 + 5379 ] }, { - "teal": 5713, + "teal": 5710, "source": "examples/reti/validatorRegistry.algo.ts:1426", "errorMessage": "specified nfd must be a segment of the nfd the validator specified as a requirement", "pc": [ - 5382 + 5380 ] }, { - "teal": 5716, + "teal": 5713, "source": "examples/reti/validatorRegistry.algo.ts:1364", "pc": [ - 5383 + 5381 ] }, { - "teal": 5728, + "teal": 5725, "source": "examples/reti/validatorRegistry.algo.ts:1443", "pc": [ - 5384, - 5385, - 5386 + 5382, + 5383, + 5384 ] }, { - "teal": 5731, + "teal": 5728, "source": "examples/reti/validatorRegistry.algo.ts:1443", "pc": [ - 5387 + 5385 ] }, { - "teal": 5735, + "teal": 5732, "source": "examples/reti/validatorRegistry.algo.ts:1445", "pc": [ - 5388, - 5389 + 5386, + 5387 ] }, { - "teal": 5736, + "teal": 5733, "source": "examples/reti/validatorRegistry.algo.ts:1445", "pc": [ + 5388, + 5389, 5390, 5391, 5392, 5393, 5394, - 5395, - 5396, - 5397 + 5395 ] }, { - "teal": 5737, + "teal": 5734, "source": "examples/reti/validatorRegistry.algo.ts:1445", "pc": [ - 5398 + 5396 ] }, { - "teal": 5740, + "teal": 5737, "source": "examples/reti/validatorRegistry.algo.ts:1445", "errorMessage": "global state value does not exist: AppID.fromUint64(nfdAppID).globalState('i.name')", "pc": [ - 5399 + 5397 ] }, { - "teal": 5741, + "teal": 5738, "source": "examples/reti/validatorRegistry.algo.ts:1445", "pc": [ - 5400, - 5401 + 5398, + 5399 + ] + }, + { + "teal": 5746, + "source": "examples/reti/validatorRegistry.algo.ts:1447", + "pc": [ + 5400 ] }, { - "teal": 5749, + "teal": 5747, "source": "examples/reti/validatorRegistry.algo.ts:1447", "pc": [ + 5401, 5402 ] }, { - "teal": 5750, + "teal": 5748, "source": "examples/reti/validatorRegistry.algo.ts:1447", "pc": [ 5403, @@ -26666,15 +26666,15 @@ ] }, { - "teal": 5751, - "source": "examples/reti/validatorRegistry.algo.ts:1447", + "teal": 5752, + "source": "examples/reti/validatorRegistry.algo.ts:1448", "pc": [ 5405, 5406 ] }, { - "teal": 5755, + "teal": 5753, "source": "examples/reti/validatorRegistry.algo.ts:1448", "pc": [ 5407, @@ -26682,15 +26682,15 @@ ] }, { - "teal": 5756, - "source": "examples/reti/validatorRegistry.algo.ts:1448", + "teal": 5757, + "source": "examples/reti/validatorRegistry.algo.ts:1449", "pc": [ 5409, 5410 ] }, { - "teal": 5760, + "teal": 5758, "source": "examples/reti/validatorRegistry.algo.ts:1449", "pc": [ 5411, @@ -26698,7 +26698,7 @@ ] }, { - "teal": 5761, + "teal": 5759, "source": "examples/reti/validatorRegistry.algo.ts:1449", "pc": [ 5413, @@ -26706,7 +26706,7 @@ ] }, { - "teal": 5762, + "teal": 5760, "source": "examples/reti/validatorRegistry.algo.ts:1449", "pc": [ 5415, @@ -26714,7 +26714,7 @@ ] }, { - "teal": 5763, + "teal": 5761, "source": "examples/reti/validatorRegistry.algo.ts:1449", "pc": [ 5417, @@ -26722,30 +26722,30 @@ ] }, { - "teal": 5764, + "teal": 5762, "source": "examples/reti/validatorRegistry.algo.ts:1449", "pc": [ - 5419, - 5420 + 5419 ] }, { - "teal": 5765, + "teal": 5763, "source": "examples/reti/validatorRegistry.algo.ts:1449", "pc": [ + 5420, 5421 ] }, { - "teal": 5766, - "source": "examples/reti/validatorRegistry.algo.ts:1449", + "teal": 5767, + "source": "examples/reti/validatorRegistry.algo.ts:1450", "pc": [ 5422, 5423 ] }, { - "teal": 5770, + "teal": 5768, "source": "examples/reti/validatorRegistry.algo.ts:1450", "pc": [ 5424, @@ -26754,16 +26754,16 @@ }, { "teal": 5771, - "source": "examples/reti/validatorRegistry.algo.ts:1450", + "source": "examples/reti/validatorRegistry.algo.ts:1447", "pc": [ - 5426, - 5427 + 5426 ] }, { - "teal": 5774, + "teal": 5772, "source": "examples/reti/validatorRegistry.algo.ts:1447", "pc": [ + 5427, 5428 ] }, @@ -26771,94 +26771,94 @@ "teal": 5775, "source": "examples/reti/validatorRegistry.algo.ts:1447", "pc": [ - 5429, - 5430 + 5429 ] }, { - "teal": 5778, - "source": "examples/reti/validatorRegistry.algo.ts:1447", + "teal": 5779, + "source": "examples/reti/validatorRegistry.algo.ts:1452", "pc": [ + 5430, 5431 ] }, { - "teal": 5782, + "teal": 5780, "source": "examples/reti/validatorRegistry.algo.ts:1452", "pc": [ - 5432, - 5433 + 5432 ] }, { - "teal": 5783, + "teal": 5781, "source": "examples/reti/validatorRegistry.algo.ts:1452", "pc": [ - 5434 + 5433 ] }, { - "teal": 5784, + "teal": 5782, "source": "examples/reti/validatorRegistry.algo.ts:1452", "pc": [ - 5435 + 5434 ] }, { "teal": 5785, - "source": "examples/reti/validatorRegistry.algo.ts:1452", + "source": "examples/reti/validatorRegistry.algo.ts:1443", "pc": [ + 5435, 5436 ] }, { - "teal": 5788, + "teal": 5786, "source": "examples/reti/validatorRegistry.algo.ts:1443", "pc": [ - 5437, - 5438 + 5437 ] }, { - "teal": 5789, - "source": "examples/reti/validatorRegistry.algo.ts:1443", + "teal": 5797, + "source": "examples/reti/validatorRegistry.algo.ts:1463", "pc": [ - 5439 + 5438, + 5439, + 5440 ] }, { "teal": 5800, "source": "examples/reti/validatorRegistry.algo.ts:1463", "pc": [ - 5440, - 5441, - 5442 + 5441 ] }, { - "teal": 5803, + "teal": 5801, "source": "examples/reti/validatorRegistry.algo.ts:1463", "pc": [ + 5442, 5443 ] }, { - "teal": 5804, - "source": "examples/reti/validatorRegistry.algo.ts:1463", + "teal": 5808, + "source": "examples/reti/validatorRegistry.algo.ts:1464", "pc": [ - 5444, - 5445 + 5444 ] }, { - "teal": 5811, + "teal": 5809, "source": "examples/reti/validatorRegistry.algo.ts:1464", "pc": [ + 5445, 5446 ] }, { - "teal": 5812, + "teal": 5810, "source": "examples/reti/validatorRegistry.algo.ts:1464", "pc": [ 5447, @@ -26866,15 +26866,15 @@ ] }, { - "teal": 5813, - "source": "examples/reti/validatorRegistry.algo.ts:1464", + "teal": 5814, + "source": "examples/reti/validatorRegistry.algo.ts:1465", "pc": [ 5449, 5450 ] }, { - "teal": 5817, + "teal": 5815, "source": "examples/reti/validatorRegistry.algo.ts:1465", "pc": [ 5451, @@ -26882,17 +26882,11 @@ ] }, { - "teal": 5818, - "source": "examples/reti/validatorRegistry.algo.ts:1465", - "pc": [ - 5453, - 5454 - ] - }, - { - "teal": 5822, + "teal": 5819, "source": "examples/reti/validatorRegistry.algo.ts:1466", "pc": [ + 5453, + 5454, 5455, 5456, 5457, @@ -26905,23 +26899,23 @@ 5464, 5465, 5466, - 5467, - 5468, - 5469 + 5467 ] }, { - "teal": 5823, + "teal": 5820, "source": "examples/reti/validatorRegistry.algo.ts:1466", "pc": [ - 5470, - 5471 + 5468, + 5469 ] }, { - "teal": 5824, + "teal": 5821, "source": "examples/reti/validatorRegistry.algo.ts:1466", "pc": [ + 5470, + 5471, 5472, 5473, 5474, @@ -26934,23 +26928,29 @@ 5481, 5482, 5483, - 5484, + 5484 + ] + }, + { + "teal": 5822, + "source": "examples/reti/validatorRegistry.algo.ts:1466", + "pc": [ 5485, 5486 ] }, { "teal": 5825, - "source": "examples/reti/validatorRegistry.algo.ts:1466", + "source": "examples/reti/validatorRegistry.algo.ts:1464", "pc": [ - 5487, - 5488 + 5487 ] }, { - "teal": 5828, + "teal": 5826, "source": "examples/reti/validatorRegistry.algo.ts:1464", "pc": [ + 5488, 5489 ] }, @@ -26958,19 +26958,19 @@ "teal": 5829, "source": "examples/reti/validatorRegistry.algo.ts:1464", "pc": [ - 5490, - 5491 + 5490 ] }, { - "teal": 5832, - "source": "examples/reti/validatorRegistry.algo.ts:1464", + "teal": 5833, + "source": "examples/reti/validatorRegistry.algo.ts:1468", "pc": [ + 5491, 5492 ] }, { - "teal": 5836, + "teal": 5834, "source": "examples/reti/validatorRegistry.algo.ts:1468", "pc": [ 5493, @@ -26978,22 +26978,22 @@ ] }, { - "teal": 5837, - "source": "examples/reti/validatorRegistry.algo.ts:1468", + "teal": 5838, + "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ - 5495, - 5496 + 5495 ] }, { - "teal": 5841, + "teal": 5839, "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ + 5496, 5497 ] }, { - "teal": 5842, + "teal": 5844, "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ 5498, @@ -27001,7 +27001,7 @@ ] }, { - "teal": 5847, + "teal": 5845, "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ 5500, @@ -27009,38 +27009,38 @@ ] }, { - "teal": 5848, + "teal": 5846, "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ - 5502, - 5503 + 5502 ] }, { - "teal": 5849, + "teal": 5847, "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ - 5504 + 5503 ] }, { - "teal": 5850, + "teal": 5848, "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ - 5505 + 5504, + 5505, + 5506 ] }, { - "teal": 5851, - "source": "examples/reti/validatorRegistry.algo.ts:1469", + "teal": 5852, + "source": "examples/reti/validatorRegistry.algo.ts:1470", "pc": [ - 5506, 5507, 5508 ] }, { - "teal": 5855, + "teal": 5853, "source": "examples/reti/validatorRegistry.algo.ts:1470", "pc": [ 5509, @@ -27048,7 +27048,7 @@ ] }, { - "teal": 5856, + "teal": 5854, "source": "examples/reti/validatorRegistry.algo.ts:1470", "pc": [ 5511, @@ -27056,30 +27056,30 @@ ] }, { - "teal": 5857, + "teal": 5855, "source": "examples/reti/validatorRegistry.algo.ts:1470", "pc": [ - 5513, - 5514 + 5513 ] }, { - "teal": 5858, + "teal": 5856, "source": "examples/reti/validatorRegistry.algo.ts:1470", "pc": [ + 5514, 5515 ] }, { - "teal": 5859, - "source": "examples/reti/validatorRegistry.algo.ts:1470", + "teal": 5861, + "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ 5516, 5517 ] }, { - "teal": 5864, + "teal": 5862, "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ 5518, @@ -27087,38 +27087,38 @@ ] }, { - "teal": 5865, + "teal": 5863, "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ - 5520, - 5521 + 5520 ] }, { - "teal": 5866, + "teal": 5864, "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ - 5522 + 5521 ] }, { - "teal": 5867, + "teal": 5865, "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ - 5523 + 5522, + 5523, + 5524 ] }, { - "teal": 5868, + "teal": 5866, "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ - 5524, 5525, 5526 ] }, { - "teal": 5869, + "teal": 5867, "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ 5527, @@ -27126,54 +27126,54 @@ ] }, { - "teal": 5870, + "teal": 5868, "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ - 5529, - 5530 + 5529 ] }, { - "teal": 5871, + "teal": 5869, "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ - 5531 + 5530 ] }, { "teal": 5872, "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ - 5532 + 5531, + 5532, + 5533 ] }, { - "teal": 5875, - "source": "examples/reti/validatorRegistry.algo.ts:1471", + "teal": 5877, + "source": "examples/reti/validatorRegistry.algo.ts:1472", "pc": [ - 5533, - 5534, - 5535 + 5534 ] }, { - "teal": 5880, + "teal": 5878, "source": "examples/reti/validatorRegistry.algo.ts:1472", "pc": [ - 5536 + 5535, + 5536, + 5537 ] }, { - "teal": 5881, - "source": "examples/reti/validatorRegistry.algo.ts:1472", + "teal": 5885, + "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ - 5537, 5538, 5539 ] }, { - "teal": 5888, + "teal": 5886, "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ 5540, @@ -27181,41 +27181,41 @@ ] }, { - "teal": 5889, + "teal": 5887, "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ - 5542, - 5543 + 5542 ] }, { - "teal": 5890, + "teal": 5888, "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ + 5543, 5544 ] }, { - "teal": 5891, + "teal": 5889, "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ 5545, - 5546 + 5546, + 5547 ] }, { - "teal": 5892, - "source": "examples/reti/validatorRegistry.algo.ts:1469", + "teal": 5894, + "source": "examples/reti/validatorRegistry.algo.ts:1475", "pc": [ - 5547, - 5548, - 5549 + 5548 ] }, { - "teal": 5897, - "source": "examples/reti/validatorRegistry.algo.ts:1475", + "teal": 5898, + "source": "examples/reti/validatorRegistry.algo.ts:1463", "pc": [ + 5549, 5550 ] }, @@ -27228,55 +27228,55 @@ ] }, { - "teal": 5904, + "teal": 5902, "source": "examples/reti/validatorRegistry.algo.ts:1463", "pc": [ - 5553, - 5554 + 5553 ] }, { - "teal": 5905, - "source": "examples/reti/validatorRegistry.algo.ts:1463", + "teal": 5910, + "source": "examples/reti/validatorRegistry.algo.ts:1483", "pc": [ - 5555 + 5554, + 5555, + 5556 ] }, { "teal": 5913, "source": "examples/reti/validatorRegistry.algo.ts:1483", "pc": [ - 5556, - 5557, - 5558 + 5557 ] }, { - "teal": 5916, - "source": "examples/reti/validatorRegistry.algo.ts:1483", + "teal": 5917, + "source": "examples/reti/validatorRegistry.algo.ts:1484", "pc": [ - 5559 + 5558, + 5559, + 5560 ] }, { - "teal": 5920, + "teal": 5918, "source": "examples/reti/validatorRegistry.algo.ts:1484", "pc": [ - 5560, 5561, 5562 ] }, { - "teal": 5921, - "source": "examples/reti/validatorRegistry.algo.ts:1484", + "teal": 5922, + "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ 5563, 5564 ] }, { - "teal": 5925, + "teal": 5923, "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ 5565, @@ -27284,302 +27284,302 @@ ] }, { - "teal": 5926, + "teal": 5924, "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ - 5567, - 5568 + 5567 ] }, { - "teal": 5927, + "teal": 5925, "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ - 5569 + 5568 ] }, { - "teal": 5928, + "teal": 5926, "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ + 5569, 5570 ] }, { - "teal": 5929, + "teal": 5927, "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ - 5571, - 5572 + 5571 ] }, { - "teal": 5930, + "teal": 5928, "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ - 5573 + 5572 ] }, { - "teal": 5931, + "teal": 5929, "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ - 5574 + 5573 ] }, { - "teal": 5932, + "teal": 5930, "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ - 5575 + 5574 ] }, { - "teal": 5933, + "teal": 5931, "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ - 5576 + 5575 ] }, { "teal": 5934, "source": "examples/reti/validatorRegistry.algo.ts:1486", + "errorMessage": "wideRatio failed", "pc": [ - 5577 + 5576 ] }, { "teal": 5937, - "source": "examples/reti/validatorRegistry.algo.ts:1486", - "errorMessage": "wideRatio failed", + "source": "examples/reti/validatorRegistry.algo.ts:1483", "pc": [ + 5577, 5578 ] }, { - "teal": 5940, + "teal": 5938, "source": "examples/reti/validatorRegistry.algo.ts:1483", "pc": [ - 5579, - 5580 + 5579 ] }, { - "teal": 5941, - "source": "examples/reti/validatorRegistry.algo.ts:1483", + "teal": 5945, + "source": "examples/reti/validatorRegistry.algo.ts:1493", "pc": [ - 5581 + 5580, + 5581, + 5582 ] }, { "teal": 5948, "source": "examples/reti/validatorRegistry.algo.ts:1493", "pc": [ - 5582, - 5583, - 5584 + 5583 ] }, { - "teal": 5951, - "source": "examples/reti/validatorRegistry.algo.ts:1493", + "teal": 5952, + "source": "examples/reti/validatorRegistry.algo.ts:1494", "pc": [ - 5585 + 5584, + 5585, + 5586 ] }, { - "teal": 5955, + "teal": 5953, "source": "examples/reti/validatorRegistry.algo.ts:1494", "pc": [ - 5586, 5587, 5588 ] }, { - "teal": 5956, - "source": "examples/reti/validatorRegistry.algo.ts:1494", + "teal": 5957, + "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ 5589, 5590 ] }, { - "teal": 5960, + "teal": 5958, "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ 5591, - 5592 + 5592, + 5593 ] }, { - "teal": 5961, + "teal": 5959, "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ - 5593, - 5594, - 5595 + 5594 ] }, { - "teal": 5962, + "teal": 5960, "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ - 5596 + 5595 ] }, { - "teal": 5963, + "teal": 5961, "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ + 5596, 5597 ] }, { - "teal": 5964, + "teal": 5962, "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ - 5598, - 5599 + 5598 ] }, { - "teal": 5965, + "teal": 5963, "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ - 5600 + 5599 ] }, { - "teal": 5966, + "teal": 5964, "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ - 5601 + 5600 ] }, { - "teal": 5967, + "teal": 5965, "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ - 5602 + 5601 ] }, { - "teal": 5968, + "teal": 5966, "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ - 5603 + 5602 ] }, { "teal": 5969, "source": "examples/reti/validatorRegistry.algo.ts:1496", - "pc": [ - 5604 - ] - }, - { - "teal": 5972, - "source": "examples/reti/validatorRegistry.algo.ts:1496", "errorMessage": "wideRatio failed", "pc": [ - 5605 + 5603 ] }, { - "teal": 5975, + "teal": 5972, "source": "examples/reti/validatorRegistry.algo.ts:1493", "pc": [ - 5606, - 5607 + 5604, + 5605 ] }, { - "teal": 5976, + "teal": 5973, "source": "examples/reti/validatorRegistry.algo.ts:1493", "pc": [ - 5608 + 5606 ] }, { - "teal": 5982, + "teal": 5979, "source": "examples/reti/validatorRegistry.algo.ts:1502", "pc": [ - 5609, - 5610, - 5611 + 5607, + 5608, + 5609 ] }, { - "teal": 5986, + "teal": 5983, "source": "examples/reti/validatorRegistry.algo.ts:1504", "pc": [ + 5610, + 5611, 5612, 5613, 5614, 5615, 5616, - 5617, - 5618, - 5619 + 5617 ] }, { - "teal": 5987, + "teal": 5984, "source": "examples/reti/validatorRegistry.algo.ts:1502", "pc": [ - 5620 + 5618 ] }, { - "teal": 5991, + "teal": 5988, "source": "examples/reti/validatorRegistry.algo.ts:1507", "pc": [ - 5621, - 5622, - 5623 + 5619, + 5620, + 5621 ] }, { - "teal": 5995, + "teal": 5992, "source": "examples/reti/validatorRegistry.algo.ts:1509", "pc": [ + 5622, + 5623, 5624, 5625, 5626, 5627, 5628, 5629, - 5630, - 5631, - 5632 + 5630 ] }, { - "teal": 5996, + "teal": 5993, "source": "examples/reti/validatorRegistry.algo.ts:1507", "pc": [ - 5633 + 5631 ] }, { - "teal": 6000, + "teal": 5997, "source": "examples/reti/validatorRegistry.algo.ts:1512", "pc": [ - 5634, - 5635, - 5636 + 5632, + 5633, + 5634 ] }, { - "teal": 6003, + "teal": 6000, "source": "examples/reti/validatorRegistry.algo.ts:1512", "pc": [ + 5635 + ] + }, + { + "teal": 6004, + "source": "examples/reti/validatorRegistry.algo.ts:1521", + "pc": [ + 5636, 5637 ] }, { - "teal": 6007, + "teal": 6005, "source": "examples/reti/validatorRegistry.algo.ts:1521", "pc": [ 5638, @@ -27587,15 +27587,15 @@ ] }, { - "teal": 6008, - "source": "examples/reti/validatorRegistry.algo.ts:1521", + "teal": 6009, + "source": "examples/reti/validatorRegistry.algo.ts:1522", "pc": [ 5640, 5641 ] }, { - "teal": 6012, + "teal": 6010, "source": "examples/reti/validatorRegistry.algo.ts:1522", "pc": [ 5642, @@ -27603,7 +27603,7 @@ ] }, { - "teal": 6013, + "teal": 6011, "source": "examples/reti/validatorRegistry.algo.ts:1522", "pc": [ 5644, @@ -27611,37 +27611,37 @@ ] }, { - "teal": 6014, + "teal": 6012, "source": "examples/reti/validatorRegistry.algo.ts:1522", "pc": [ - 5646, - 5647 + 5646 ] }, { - "teal": 6015, + "teal": 6013, "source": "examples/reti/validatorRegistry.algo.ts:1522", "pc": [ - 5648 + 5647 ] }, { - "teal": 6016, + "teal": 6014, "source": "examples/reti/validatorRegistry.algo.ts:1522", "pc": [ + 5648, 5649 ] }, { - "teal": 6017, - "source": "examples/reti/validatorRegistry.algo.ts:1522", + "teal": 6018, + "source": "examples/reti/validatorRegistry.algo.ts:1523", "pc": [ 5650, 5651 ] }, { - "teal": 6021, + "teal": 6019, "source": "examples/reti/validatorRegistry.algo.ts:1523", "pc": [ 5652, @@ -27649,7 +27649,7 @@ ] }, { - "teal": 6022, + "teal": 6020, "source": "examples/reti/validatorRegistry.algo.ts:1523", "pc": [ 5654, @@ -27657,37 +27657,37 @@ ] }, { - "teal": 6023, + "teal": 6021, "source": "examples/reti/validatorRegistry.algo.ts:1523", "pc": [ - 5656, - 5657 + 5656 ] }, { - "teal": 6024, + "teal": 6022, "source": "examples/reti/validatorRegistry.algo.ts:1523", "pc": [ - 5658 + 5657 ] }, { - "teal": 6025, + "teal": 6023, "source": "examples/reti/validatorRegistry.algo.ts:1523", "pc": [ + 5658, 5659 ] }, { - "teal": 6026, - "source": "examples/reti/validatorRegistry.algo.ts:1523", + "teal": 6027, + "source": "examples/reti/validatorRegistry.algo.ts:1524", "pc": [ 5660, 5661 ] }, { - "teal": 6030, + "teal": 6028, "source": "examples/reti/validatorRegistry.algo.ts:1524", "pc": [ 5662, @@ -27695,7 +27695,7 @@ ] }, { - "teal": 6031, + "teal": 6029, "source": "examples/reti/validatorRegistry.algo.ts:1524", "pc": [ 5664, @@ -27703,37 +27703,37 @@ ] }, { - "teal": 6032, + "teal": 6030, "source": "examples/reti/validatorRegistry.algo.ts:1524", "pc": [ - 5666, - 5667 + 5666 ] }, { - "teal": 6033, + "teal": 6031, "source": "examples/reti/validatorRegistry.algo.ts:1524", "pc": [ - 5668 + 5667 ] }, { - "teal": 6034, + "teal": 6032, "source": "examples/reti/validatorRegistry.algo.ts:1524", "pc": [ + 5668, 5669 ] }, { - "teal": 6035, - "source": "examples/reti/validatorRegistry.algo.ts:1524", + "teal": 6036, + "source": "examples/reti/validatorRegistry.algo.ts:1525", "pc": [ 5670, 5671 ] }, { - "teal": 6039, + "teal": 6037, "source": "examples/reti/validatorRegistry.algo.ts:1525", "pc": [ 5672, @@ -27741,7 +27741,7 @@ ] }, { - "teal": 6040, + "teal": 6038, "source": "examples/reti/validatorRegistry.algo.ts:1525", "pc": [ 5674, @@ -27749,37 +27749,37 @@ ] }, { - "teal": 6041, + "teal": 6039, "source": "examples/reti/validatorRegistry.algo.ts:1525", "pc": [ - 5676, - 5677 + 5676 ] }, { - "teal": 6042, + "teal": 6040, "source": "examples/reti/validatorRegistry.algo.ts:1525", "pc": [ - 5678 + 5677 ] }, { - "teal": 6043, + "teal": 6041, "source": "examples/reti/validatorRegistry.algo.ts:1525", "pc": [ + 5678, 5679 ] }, { - "teal": 6044, - "source": "examples/reti/validatorRegistry.algo.ts:1525", + "teal": 6045, + "source": "examples/reti/validatorRegistry.algo.ts:1526", "pc": [ 5680, 5681 ] }, { - "teal": 6048, + "teal": 6046, "source": "examples/reti/validatorRegistry.algo.ts:1526", "pc": [ 5682, @@ -27787,7 +27787,7 @@ ] }, { - "teal": 6049, + "teal": 6047, "source": "examples/reti/validatorRegistry.algo.ts:1526", "pc": [ 5684, @@ -27795,37 +27795,37 @@ ] }, { - "teal": 6050, + "teal": 6048, "source": "examples/reti/validatorRegistry.algo.ts:1526", "pc": [ - 5686, - 5687 + 5686 ] }, { - "teal": 6051, + "teal": 6049, "source": "examples/reti/validatorRegistry.algo.ts:1526", "pc": [ - 5688 + 5687 ] }, { - "teal": 6052, + "teal": 6050, "source": "examples/reti/validatorRegistry.algo.ts:1526", "pc": [ + 5688, 5689 ] }, { - "teal": 6053, - "source": "examples/reti/validatorRegistry.algo.ts:1526", + "teal": 6054, + "source": "examples/reti/validatorRegistry.algo.ts:1527", "pc": [ 5690, 5691 ] }, { - "teal": 6057, + "teal": 6055, "source": "examples/reti/validatorRegistry.algo.ts:1527", "pc": [ 5692, @@ -27833,7 +27833,7 @@ ] }, { - "teal": 6058, + "teal": 6056, "source": "examples/reti/validatorRegistry.algo.ts:1527", "pc": [ 5694, @@ -27841,37 +27841,37 @@ ] }, { - "teal": 6059, + "teal": 6057, "source": "examples/reti/validatorRegistry.algo.ts:1527", "pc": [ - 5696, - 5697 + 5696 ] }, { - "teal": 6060, + "teal": 6058, "source": "examples/reti/validatorRegistry.algo.ts:1527", "pc": [ - 5698 + 5697 ] }, { - "teal": 6061, + "teal": 6059, "source": "examples/reti/validatorRegistry.algo.ts:1527", "pc": [ + 5698, 5699 ] }, { - "teal": 6062, - "source": "examples/reti/validatorRegistry.algo.ts:1527", + "teal": 6063, + "source": "examples/reti/validatorRegistry.algo.ts:1528", "pc": [ 5700, 5701 ] }, { - "teal": 6066, + "teal": 6064, "source": "examples/reti/validatorRegistry.algo.ts:1528", "pc": [ 5702, @@ -27879,7 +27879,7 @@ ] }, { - "teal": 6067, + "teal": 6065, "source": "examples/reti/validatorRegistry.algo.ts:1528", "pc": [ 5704, @@ -27887,30 +27887,30 @@ ] }, { - "teal": 6068, + "teal": 6066, "source": "examples/reti/validatorRegistry.algo.ts:1528", "pc": [ - 5706, - 5707 + 5706 ] }, { - "teal": 6069, + "teal": 6067, "source": "examples/reti/validatorRegistry.algo.ts:1528", "pc": [ - 5708 + 5707 ] }, { - "teal": 6070, + "teal": 6068, "source": "examples/reti/validatorRegistry.algo.ts:1528", "pc": [ + 5708, 5709 ] }, { - "teal": 6071, - "source": "examples/reti/validatorRegistry.algo.ts:1528", + "teal": 6072, + "source": "examples/reti/validatorRegistry.algo.ts:1529", "pc": [ 5710, 5711 @@ -27918,531 +27918,525 @@ }, { "teal": 6075, - "source": "examples/reti/validatorRegistry.algo.ts:1529", + "source": "examples/reti/validatorRegistry.algo.ts:1512", "pc": [ 5712, 5713 ] }, { - "teal": 6078, + "teal": 6076, "source": "examples/reti/validatorRegistry.algo.ts:1512", "pc": [ - 5714, - 5715 + 5714 ] }, { - "teal": 6079, - "source": "examples/reti/validatorRegistry.algo.ts:1512", + "teal": 6080, + "source": "examples/reti/validatorRegistry.algo.ts:1532", "pc": [ - 5716 + 5715, + 5716, + 5717 ] }, { - "teal": 6083, - "source": "examples/reti/validatorRegistry.algo.ts:1532", + "teal": 6084, + "source": "examples/reti/validatorRegistry.algo.ts:1536", "pc": [ - 5717, 5718, - 5719 + 5719, + 5720 ] }, { - "teal": 6087, + "teal": 6085, "source": "examples/reti/validatorRegistry.algo.ts:1536", "pc": [ - 5720, 5721, 5722 ] }, { - "teal": 6088, + "teal": 6086, "source": "examples/reti/validatorRegistry.algo.ts:1536", "pc": [ 5723, - 5724 - ] - }, - { - "teal": 6089, - "source": "examples/reti/validatorRegistry.algo.ts:1536", - "pc": [ - 5725, - 5726, - 5727 + 5724, + 5725 ] }, { - "teal": 6090, + "teal": 6087, "source": "examples/reti/validatorRegistry.algo.ts:1536", "pc": [ - 5728 + 5726 ] }, { - "teal": 6091, + "teal": 6088, "source": "examples/reti/validatorRegistry.algo.ts:1536", "pc": [ - 5729 + 5727 ] }, { - "teal": 6092, + "teal": 6089, "source": "examples/reti/validatorRegistry.algo.ts:1532", "pc": [ - 5730 + 5728 ] }, { - "teal": 6095, + "teal": 6092, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5729, + 5730, 5731, 5732, 5733, - 5734, - 5735, - 5736 + 5734 ] }, { - "teal": 6096, + "teal": 6093, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 5737, - 5738, - 5739 + 5735, + 5736, + 5737 ] }, { - "teal": 6097, + "teal": 6094, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5738, + 5739, 5740, - 5741, - 5742, - 5743 + 5741 ] }, { - "teal": 6100, + "teal": 6097, "source": "examples/reti/validatorRegistry.algo.ts:168", "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ - 5744 + 5742 ] }, { - "teal": 6103, + "teal": 6100, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5743, + 5744, 5745, 5746, 5747, - 5748, - 5749, - 5750 + 5748 ] }, { - "teal": 6104, + "teal": 6101, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5749, + 5750, 5751, 5752, 5753, - 5754, - 5755, - 5756 + 5754 ] }, { - "teal": 6105, + "teal": 6102, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5755, + 5756, 5757, 5758, 5759, - 5760, - 5761, - 5762 + 5760 ] }, { - "teal": 6106, + "teal": 6103, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5761, + 5762, 5763, 5764, 5765, - 5766, - 5767, - 5768 + 5766 ] }, { - "teal": 6107, + "teal": 6104, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5767, + 5768, 5769, 5770, 5771, - 5772, - 5773, - 5774 + 5772 ] }, { - "teal": 6108, + "teal": 6105, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5773, + 5774, 5775, 5776, 5777, - 5778, - 5779, - 5780 + 5778 ] }, { - "teal": 6109, + "teal": 6106, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5779, + 5780, 5781, 5782, 5783, - 5784, - 5785, - 5786 + 5784 ] }, { - "teal": 6110, + "teal": 6107, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5785, + 5786, 5787, 5788, 5789, - 5790, - 5791, - 5792 + 5790 ] }, { - "teal": 6111, + "teal": 6108, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5791, + 5792, 5793, 5794, 5795, - 5796, - 5797, - 5798 + 5796 ] }, { - "teal": 6112, + "teal": 6109, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5797, + 5798, 5799, 5800, 5801, - 5802, - 5803, - 5804 + 5802 ] }, { - "teal": 6113, + "teal": 6110, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5803, + 5804, 5805, 5806, 5807, - 5808, - 5809, - 5810 + 5808 ] }, { - "teal": 6114, + "teal": 6111, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5809, + 5810, 5811, 5812, 5813, - 5814, - 5815, - 5816 + 5814 ] }, { - "teal": 6115, + "teal": 6112, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5815, + 5816, 5817, 5818, 5819, - 5820, - 5821, - 5822 + 5820 ] }, { - "teal": 6116, + "teal": 6113, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5821, + 5822, 5823, 5824, 5825, - 5826, - 5827, - 5828 + 5826 ] }, { - "teal": 6117, + "teal": 6114, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5827, + 5828, 5829, 5830, 5831, - 5832, - 5833, - 5834 + 5832 ] }, { - "teal": 6118, + "teal": 6115, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5833, + 5834, 5835, 5836, 5837, - 5838, - 5839, - 5840 + 5838 ] }, { - "teal": 6119, + "teal": 6116, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5839, + 5840, 5841, 5842, 5843, - 5844, - 5845, - 5846 + 5844 ] }, { - "teal": 6120, + "teal": 6117, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5845, + 5846, 5847, 5848, 5849, - 5850, - 5851, - 5852 + 5850 ] }, { - "teal": 6121, + "teal": 6118, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5851, + 5852, 5853, 5854, 5855, - 5856, - 5857, - 5858 + 5856 ] }, { - "teal": 6122, + "teal": 6119, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5857, + 5858, 5859, 5860, 5861, - 5862, - 5863, - 5864 + 5862 ] }, { - "teal": 6123, + "teal": 6120, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5863, + 5864, 5865, 5866, 5867, - 5868, - 5869, - 5870 + 5868 ] }, { - "teal": 6124, + "teal": 6121, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5869, + 5870, 5871, 5872, 5873, - 5874, - 5875, - 5876 + 5874 ] }, { - "teal": 6125, + "teal": 6122, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5875, + 5876, 5877, 5878, 5879, - 5880, - 5881, - 5882 + 5880 ] }, { - "teal": 6126, + "teal": 6123, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5881, + 5882, 5883, 5884, 5885, - 5886, - 5887, - 5888 + 5886 ] }, { - "teal": 6127, + "teal": 6124, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5887, + 5888, 5889, 5890, 5891, - 5892, - 5893, - 5894 + 5892 ] }, { - "teal": 6128, + "teal": 6125, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5893, + 5894, 5895, 5896, 5897, - 5898, - 5899, - 5900 + 5898 ] }, { - "teal": 6129, + "teal": 6126, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5899, + 5900, 5901, 5902, 5903, - 5904, - 5905, - 5906 + 5904 ] }, { - "teal": 6130, + "teal": 6127, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5905, + 5906, 5907, 5908, 5909, - 5910, - 5911, - 5912 + 5910 ] }, { - "teal": 6131, + "teal": 6128, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5911, + 5912, 5913, 5914, 5915, - 5916, - 5917, - 5918 + 5916 ] }, { - "teal": 6132, + "teal": 6129, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5917, + 5918, 5919, 5920, 5921, - 5922, - 5923, - 5924 + 5922 ] }, { - "teal": 6133, + "teal": 6130, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5923, + 5924, 5925, 5926, 5927, - 5928, - 5929, - 5930 + 5928 ] }, { - "teal": 6134, + "teal": 6131, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5929, + 5930, 5931, 5932, 5933, - 5934, - 5935, - 5936 + 5934 ] }, { - "teal": 6135, + "teal": 6132, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5935, + 5936, 5937, 5938, 5939, - 5940, - 5941, - 5942 + 5940 ] }, { - "teal": 6136, + "teal": 6133, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 5943, - 5944, - 5945 + 5941, + 5942, + 5943 ] }, { - "teal": 6137, + "teal": 6134, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5944, + 5945, 5946, 5947, 5948, @@ -28508,56 +28502,54 @@ 6008, 6009, 6010, - 6011, - 6012, - 6013 + 6011 ] }, { - "teal": 6140, + "teal": 6137, "source": "examples/reti/validatorRegistry.algo.ts:168", "errorMessage": "this contract does not implement the given ABI method for call NoOp", "pc": [ - 6014 + 6012 ] }, { - "teal": 6143, + "teal": 6140, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 6013, + 6014, 6015, 6016, 6017, - 6018, - 6019, - 6020 + 6018 ] }, { - "teal": 6144, + "teal": 6141, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6021, - 6022, - 6023 + 6019, + 6020, + 6021 ] }, { - "teal": 6145, + "teal": 6142, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 6022, + 6023, 6024, - 6025, - 6026, - 6027 + 6025 ] }, { - "teal": 6148, + "teal": 6145, "source": "examples/reti/validatorRegistry.algo.ts:168", "errorMessage": "this contract does not implement the given ABI method for call UpdateApplication", "pc": [ - 6028 + 6026 ] } ], @@ -28569,7 +28561,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAwIDEgOCAyNCAzMiAxOCAyNjggNiAyNDIgMyAyIDEwIDI1MiAyNjAgNzAwIFRNUExfbmZkUmVnaXN0cnlBcHBJZCAxMDAwMDAgOTAwIDQwIDIwMCA0IDcyIDE5MiAyNDQgMTAwMDAwMCA0MDk2IDUgMjI2IDMwMCA0MzIgODkyIDEwMDAgMjg1MDAgNTAwMDAgMTEgODAgMTQ1IDE1MyAyMDkKYnl0ZWNibG9jayAweDc2IDB4IDB4MTUxZjdjNzUgMHg3MzcwNzMgMHg3Mzc0NjE2YjY1NjQgMHgwMCAweDcwNmY2ZjZjNTQ2NTZkNzA2YzYxNzQ2NTQxNzA3MDcyNmY3NjYxNmM0Mjc5NzQ2NTczIDB4NmU3NTZkNTM3NDYxNmI2NTcyNzMgMHgwYTgxMDEgMHg2OTJlNmY3NzZlNjU3MjJlNjEgMHgwMDAwMDAwMDAwMDAwMDAwIDB4Njk2ZTY5NzQgMHg2ZTc1NmQ1NiAweDY5NzM1Zjc2NjE2YzY5NjQ1ZjZlNjY2NDVmNjE3MDcwNjk2NCAweDYzZjNmMjhiCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNS4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIGxpbmVzIG9mIFRFQUwgYXJlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0ZW1wbGF0ZSB2YXJpYWJsZXMgaW4gc2NyYXRjaCBzbG90cwppbnRjIDE1IC8vIFRNUExfbmZkUmVnaXN0cnlBcHBJZAoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKaW50YyA3IC8vIDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNhbGxfVXBkYXRlQXBwbGljYXRpb24gKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHVwZGF0ZUFwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfdXBkYXRlQXBwbGljYXRpb246CgkvLyBleGVjdXRlIHVwZGF0ZUFwcGxpY2F0aW9uKCl2b2lkCgljYWxsc3ViIHVwZGF0ZUFwcGxpY2F0aW9uCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyB1cGRhdGVBcHBsaWNhdGlvbigpOiB2b2lkCnVwZGF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIwMgoJLy8gYXNzZXJ0KHRoaXMudHhuLnNlbmRlciA9PT0gQWRkcmVzcy5mcm9tQWRkcmVzcygnTFo0VjJJUlZMQ1hGSks0UkVKVjRUQUdFS0VZVEEyR01SNlRDMjM0NE9CM0wzQUYzTVdYWjZaQUZJUScpKQoJdHhuIFNlbmRlcgoJcHVzaGJ5dGVzIDB4NWU3OTVkMjIzNTU4YWU1NGFiOTEyMjZiYzk4MGM0NTEzMTMwNjhjYzhmYTYyZDZmOWM3MDc2YmQ4MGJiNjVhZiAvLyBhZGRyICJMWjRWMklSVkxDWEZKSzRSRUpWNFRBR0VLRVlUQTJHTVI2VEMyMzQ0T0IzTDNBRjNNV1haNlpBRklRIgoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMDQKCS8vIHRoaXMuc3Rha2luZ1Bvb2xBcHByb3ZhbFByb2dyYW0uZGVsZXRlKCkKCWJ5dGVjIDYgLy8gICJwb29sVGVtcGxhdGVBcHByb3ZhbEJ5dGVzIgoJYm94X2RlbAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMDUKCS8vIHRoaXMuc3Rha2luZ1Bvb2xJbml0aWFsaXplZC52YWx1ZSA9IGZhbHNlCglieXRlYyAxMSAvLyAgImluaXQiCglpbnRjIDAgLy8gMAoJYnl0ZWMgNSAvLyAweDAwCglpbnRjIDAgLy8gMAoJdW5jb3ZlciAyCglzZXRiaXQKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CgkvLyBleGVjdXRlIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCgljYWxsc3ViIGNyZWF0ZUFwcGxpY2F0aW9uCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpOiB2b2lkCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIwOQoJLy8gdGhpcy5zdGFraW5nUG9vbEluaXRpYWxpemVkLnZhbHVlID0gZmFsc2UKCWJ5dGVjIDExIC8vICAiaW5pdCIKCWludGMgMCAvLyAwCglieXRlYyA1IC8vIDB4MDAKCWludGMgMCAvLyAwCgl1bmNvdmVyIDIKCXNldGJpdAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjEwCgkvLyB0aGlzLm51bVZhbGlkYXRvcnMudmFsdWUgPSAwCglieXRlYyAxMiAvLyAgIm51bVYiCglpbnRjIDAgLy8gMAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjExCgkvLyB0aGlzLm51bVN0YWtlcnMudmFsdWUgPSAwCglieXRlYyA3IC8vICAibnVtU3Rha2VycyIKCWludGMgMCAvLyAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMTIKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlID0gMAoJYnl0ZWMgNCAvLyAgInN0YWtlZCIKCWludGMgMCAvLyAwCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBpbml0U3Rha2luZ0NvbnRyYWN0KHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfaW5pdFN0YWtpbmdDb250cmFjdDoKCS8vIGFwcHJvdmFsUHJvZ3JhbVNpemU6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgaW5pdFN0YWtpbmdDb250cmFjdCh1aW50NjQpdm9pZAoJY2FsbHN1YiBpbml0U3Rha2luZ0NvbnRyYWN0CglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBpbml0U3Rha2luZ0NvbnRyYWN0KGFwcHJvdmFsUHJvZ3JhbVNpemU6IHVpbnQ2NCk6IHZvaWQKaW5pdFN0YWtpbmdDb250cmFjdDoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMTcKCS8vIHRoaXMuc3Rha2luZ1Bvb2xBcHByb3ZhbFByb2dyYW0uY3JlYXRlKGFwcHJvdmFsUHJvZ3JhbVNpemUpCglieXRlYyA2IC8vICAicG9vbFRlbXBsYXRlQXBwcm92YWxCeXRlcyIKCWZyYW1lX2RpZyAtMSAvLyBhcHByb3ZhbFByb2dyYW1TaXplOiB1aW50NjQKCWJveF9jcmVhdGUKCXBvcAoJcmV0c3ViCgovLyBsb2FkU3Rha2luZ0NvbnRyYWN0RGF0YSh1aW50NjQsYnl0ZVtdKXZvaWQKKmFiaV9yb3V0ZV9sb2FkU3Rha2luZ0NvbnRyYWN0RGF0YToKCS8vIGRhdGE6IGJ5dGVbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBvZmZzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgbG9hZFN0YWtpbmdDb250cmFjdERhdGEodWludDY0LGJ5dGVbXSl2b2lkCgljYWxsc3ViIGxvYWRTdGFraW5nQ29udHJhY3REYXRhCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBsb2FkU3Rha2luZ0NvbnRyYWN0RGF0YShvZmZzZXQ6IHVpbnQ2NCwgZGF0YTogYnl0ZXMpOiB2b2lkCmxvYWRTdGFraW5nQ29udHJhY3REYXRhOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIyMQoJLy8gYXNzZXJ0KCF0aGlzLnN0YWtpbmdQb29sSW5pdGlhbGl6ZWQudmFsdWUpCglieXRlYyAxMSAvLyAgImluaXQiCglhcHBfZ2xvYmFsX2dldAoJaW50YyAwIC8vIDAKCWdldGJpdAoJIQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIyMgoJLy8gdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5yZXBsYWNlKG9mZnNldCwgZGF0YSkKCWJ5dGVjIDYgLy8gICJwb29sVGVtcGxhdGVBcHByb3ZhbEJ5dGVzIgoJZnJhbWVfZGlnIC0xIC8vIG9mZnNldDogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gZGF0YTogYnl0ZXMKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIGZpbmFsaXplU3Rha2luZ0NvbnRyYWN0KCl2b2lkCiphYmlfcm91dGVfZmluYWxpemVTdGFraW5nQ29udHJhY3Q6CgkvLyBleGVjdXRlIGZpbmFsaXplU3Rha2luZ0NvbnRyYWN0KCl2b2lkCgljYWxsc3ViIGZpbmFsaXplU3Rha2luZ0NvbnRyYWN0CglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBmaW5hbGl6ZVN0YWtpbmdDb250cmFjdCgpOiB2b2lkCmZpbmFsaXplU3Rha2luZ0NvbnRyYWN0OgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIyNgoJLy8gdGhpcy5zdGFraW5nUG9vbEluaXRpYWxpemVkLnZhbHVlID0gdHJ1ZQoJYnl0ZWMgMTEgLy8gICJpbml0IgoJaW50YyAxIC8vIDEKCWJ5dGVjIDUgLy8gMHgwMAoJaW50YyAwIC8vIDAKCXVuY292ZXIgMgoJc2V0Yml0CglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBnYXMoKXZvaWQKKmFiaV9yb3V0ZV9nYXM6CgkvLyBleGVjdXRlIGdhcygpdm9pZAoJY2FsbHN1YiBnYXMKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdhcygpOiB2b2lkCi8vCi8vIGdhcyBpcyBhIGR1bW15IG5vLW9wIGNhbGwgdGhhdCBjYW4gYmUgdXNlZCB0byBwb29sLXVwIHJlc291cmNlIHJlZmVyZW5jZXMgYW5kIG9wY29kZSBjb3N0CmdhczoKCXByb3RvIDAgMAoJcmV0c3ViCgovLyBnZXRNYnJBbW91bnRzKCkodWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2dldE1ickFtb3VudHM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZ2V0TWJyQW1vdW50cygpKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgZ2V0TWJyQW1vdW50cwoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldE1ickFtb3VudHMoKTogTWJyQW1vdW50cwovLwovLyBSZXR1cm5zIHRoZSBNQlIgYW1vdW50cyBuZWVkZWQgZm9yIHZhcmlvdXMgYWN0aW9uczoKLy8gWwovLyBhZGRWYWxpZGF0b3JNYnI6IHVpbnQ2NCAtIG1iciBuZWVkZWQgdG8gYWRkIGEgbmV3IHZhbGlkYXRvciAtIHBhaWQgdG8gdmFsaWRhdG9yIGNvbnRyYWN0Ci8vIGFkZFBvb2xNYnI6IHVpbnQ2NCAtIG1iciBuZWVkZWQgdG8gYWRkIGEgbmV3IHBvb2wgLSBwYWlkIHRvIHZhbGlkYXRvcgovLyBwb29sSW5pdE1icjogdWludDY0IC0gbWJyIG5lZWRlZCB0byBpbml0U3RvcmFnZSgpIG9mIHBvb2wgLSBwYWlkIHRvIHBvb2wgaXRzZWxmCi8vIGFkZFN0YWtlck1icjogdWludDY0IC0gbWJyIHN0YWtlciBuZWVkcyB0byBhZGQgdG8gZmlyc3Qgc3Rha2luZyBwYXltZW50IChzdGF5cyB3LyB2YWxpZGF0b3IpCi8vIF0KZ2V0TWJyQW1vdW50czoKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyNDYKCS8vIHJldHVybiB7CgkvLyAgICAgICBhZGRWYWxpZGF0b3JNYnI6IHRoaXMuY29zdEZvckJveFN0b3JhZ2UoMSAvKiB2IHByZWZpeCAqLyArIGxlbjxWYWxpZGF0b3JJZFR5cGU+KCkgKyBsZW48VmFsaWRhdG9ySW5mbz4oKSksCgkvLyAgICAgICBhZGRQb29sTWJyOiB0aGlzLm1pbkJhbGFuY2VGb3JBY2NvdW50KAoJLy8gICAgICAgICAxLAoJLy8gICAgICAgICAvLyB3ZSBjb3VsZCBjYWxjdWxhdGUgdGhpcyBkaXJlY3RseSBieSByZWZlcmVuY2luZyB0aGUgc2l6ZSBvZiBzdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbSBidXQgaXQgd291bGQKCS8vICAgICAgICAgLy8gbWVhbiBvdXIgY2FsbGVycyB3b3VsZCBoYXZlIHRvIHJlZmVyZW5jZSB0aGUgYm94IEFORCBidXkgdXAgaS9vIC0gc28ganVzdCBnbyBtYXggb24gZXh0cmEgcGFnZXMKCS8vICAgICAgICAgMywKCS8vICAgICAgICAgMCwKCS8vICAgICAgICAgMCwKCS8vICAgICAgICAgMCwKCS8vICAgICAgICAgU3Rha2luZ1Bvb2wuc2NoZW1hLmdsb2JhbC5udW1VaW50LAoJLy8gICAgICAgICBTdGFraW5nUG9vbC5zY2hlbWEuZ2xvYmFsLm51bUJ5dGVTbGljZQoJLy8gICAgICAgKSwKCS8vICAgICAgIHBvb2xJbml0TWJyOgoJLy8gICAgICAgICBBTEdPUkFORF9BQ0NPVU5UX01JTl9CQUxBTkNFICsKCS8vICAgICAgICAgdGhpcy5jb3N0Rm9yQm94U3RvcmFnZSg3IC8qICdzdGFrZXJzJyBuYW1lICovICsgbGVuPFN0YWtlZEluZm8+KCkgKiBNQVhfU1RBS0VSU19QRVJfUE9PTCksCgkvLyAgICAgICBhZGRTdGFrZXJNYnI6CgkvLyAgICAgICAgIC8vIGhvdyBtdWNoIHRvIGNoYXJnZSBmb3IgZmlyc3QgdGltZSBhIHN0YWtlciBhZGRzIHN0YWtlIC0gc2luY2Ugd2UgYWRkIGEgdHJhY2tpbmcgYm94IHBlciBzdGFrZXIKCS8vICAgICAgICAgdGhpcy5jb3N0Rm9yQm94U3RvcmFnZSgzIC8qICdzcHMnIHByZWZpeCAqLyArIGxlbjxBZGRyZXNzPigpICsgbGVuPFZhbGlkYXRvclBvb2xLZXk+KCkgKiBNQVhfUE9PTFNfUEVSX1NUQUtFUiksIC8vIHNpemUgb2Yga2V5ICsgYWxsIHZhbHVlcwoJLy8gICAgIH07CglwdXNoaW50IDExMDEKCWNhbGxzdWIgY29zdEZvckJveFN0b3JhZ2UKCWl0b2IKCWludGMgOSAvLyAzCglpbnRjIDM0IC8vIDExCglpbnRjIDAgLy8gMAoJZHVwbiAyCglpbnRjIDkgLy8gMwoJaW50YyAxIC8vIDEKCWNhbGxzdWIgbWluQmFsYW5jZUZvckFjY291bnQKCWl0b2IKCWNvbmNhdAoJaW50YyAxNiAvLyAxMDAwMDAKCXB1c2hpbnQgMTI4MDcKCWNhbGxzdWIgY29zdEZvckJveFN0b3JhZ2UKCSsKCWl0b2IKCWNvbmNhdAoJcHVzaGludCAxNzkKCWNhbGxzdWIgY29zdEZvckJveFN0b3JhZ2UKCWl0b2IKCWNvbmNhdAoJcmV0c3ViCgovLyBnZXRQcm90b2NvbENvbnN0cmFpbnRzKCkodWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKKmFiaV9yb3V0ZV9nZXRQcm90b2NvbENvbnN0cmFpbnRzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGdldFByb3RvY29sQ29uc3RyYWludHMoKSh1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJY2FsbHN1YiBnZXRQcm90b2NvbENvbnN0cmFpbnRzCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2V0UHJvdG9jb2xDb25zdHJhaW50cygpOiBDb25zdHJhaW50cwovLwovLyBSZXR1cm5zIHRoZSBwcm90b2NvbCBjb25zdHJhaW50cyBzbyB0aGF0IFVJcyBjYW4gbGltaXQgd2hhdCB1c2VycyBzcGVjaWZ5IGZvciB2YWxpZGF0b3IgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzLgpnZXRQcm90b2NvbENvbnN0cmFpbnRzOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjI3MgoJLy8gcmV0dXJuIHsKCS8vICAgICAgIGVwb2NoUGF5b3V0Um91bmRzTWluOiBNSU5fRVBPQ0hfTEVOR1RILAoJLy8gICAgICAgZXBvY2hQYXlvdXRSb3VuZHNNYXg6IE1BWF9FUE9DSF9MRU5HVEgsCgkvLyAgICAgICBtaW5QY3RUb1ZhbGlkYXRvcldGb3VyRGVjaW1hbHM6IE1JTl9QQ1RfVE9fVkFMSURBVE9SLAoJLy8gICAgICAgbWF4UGN0VG9WYWxpZGF0b3JXRm91ckRlY2ltYWxzOiBNQVhfUENUX1RPX1ZBTElEQVRPUiwKCS8vICAgICAgIG1pbkVudHJ5U3Rha2U6IE1JTl9BTEdPX1NUQUtFX1BFUl9QT09MLAoJLy8gICAgICAgbWF4QWxnb1BlclBvb2w6IHRoaXMubWF4QWxnb0FsbG93ZWRQZXJQb29sKCksCgkvLyAgICAgICBtYXhBbGdvUGVyVmFsaWRhdG9yOiB0aGlzLm1heEFsbG93ZWRTdGFrZSgpLAoJLy8gICAgICAgYW10Q29uc2lkZXJlZFNhdHVyYXRlZDogdGhpcy5hbGdvU2F0dXJhdGlvbkxldmVsKCksCgkvLyAgICAgICBtYXhOb2RlczogTUFYX05PREVTLAoJLy8gICAgICAgbWF4UG9vbHNQZXJOb2RlOiBNQVhfUE9PTFNfUEVSX05PREUsCgkvLyAgICAgICBtYXhTdGFrZXJzUGVyUG9vbDogTUFYX1NUQUtFUlNfUEVSX1BPT0wsCgkvLyAgICAgfTsKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMGY0MjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZjQyNDAwMDAwMDAwMDAwMGY0MjQwCgljYWxsc3ViIG1heEFsZ29BbGxvd2VkUGVyUG9vbAoJaXRvYgoJY29uY2F0CgljYWxsc3ViIG1heEFsbG93ZWRTdGFrZQoJaXRvYgoJY29uY2F0CgljYWxsc3ViIGFsZ29TYXR1cmF0aW9uTGV2ZWwKCWl0b2IKCWNvbmNhdAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwOAoJY29uY2F0CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAzCgljb25jYXQKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwYzgKCWNvbmNhdAoJcmV0c3ViCgovLyBnZXROdW1WYWxpZGF0b3JzKCl1aW50NjQKKmFiaV9yb3V0ZV9nZXROdW1WYWxpZGF0b3JzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGdldE51bVZhbGlkYXRvcnMoKXVpbnQ2NAoJY2FsbHN1YiBnZXROdW1WYWxpZGF0b3JzCglpdG9iCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2V0TnVtVmFsaWRhdG9ycygpOiB1aW50NjQKLy8KLy8gUmV0dXJucyB0aGUgY3VycmVudCBudW1iZXIgb2YgdmFsaWRhdG9ycwpnZXROdW1WYWxpZGF0b3JzOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjI5MgoJLy8gcmV0dXJuIHRoaXMubnVtVmFsaWRhdG9ycy52YWx1ZTsKCWJ5dGVjIDEyIC8vICAibnVtViIKCWFwcF9nbG9iYWxfZ2V0CglyZXRzdWIKCi8vIGdldFZhbGlkYXRvckNvbmZpZyh1aW50NjQpKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfZ2V0VmFsaWRhdG9yQ29uZmlnOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBnZXRWYWxpZGF0b3JDb25maWcodWludDY0KSh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJY2FsbHN1YiBnZXRWYWxpZGF0b3JDb25maWcKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnZXRWYWxpZGF0b3JDb25maWcodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IFZhbGlkYXRvckNvbmZpZwpnZXRWYWxpZGF0b3JDb25maWc6Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Mjk3CgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWc7CglpbnRjIDAgLy8gMAoJaW50YyA4IC8vIDI0MgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJcmV0c3ViCgovLyBnZXRWYWxpZGF0b3JTdGF0ZSh1aW50NjQpKHVpbnQxNix1aW50NjQsdWludDY0LHVpbnQ2NCkKKmFiaV9yb3V0ZV9nZXRWYWxpZGF0b3JTdGF0ZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMiAvLyAweDE1MWY3Yzc1CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZ2V0VmFsaWRhdG9yU3RhdGUodWludDY0KSh1aW50MTYsdWludDY0LHVpbnQ2NCx1aW50NjQpCgljYWxsc3ViIGdldFZhbGlkYXRvclN0YXRlCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2V0VmFsaWRhdG9yU3RhdGUodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IFZhbGlkYXRvckN1clN0YXRlCmdldFZhbGlkYXRvclN0YXRlOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMwMgoJLy8gcmV0dXJuIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGU7CglpbnRjIDggLy8gIGhlYWRPZmZzZXQKCXB1c2hpbnQgMjYKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyKHVpbnQ2NCkoYWRkcmVzcyxhZGRyZXNzKQoqYWJpX3JvdXRlX2dldFZhbGlkYXRvck93bmVyQW5kTWFuYWdlcjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMiAvLyAweDE1MWY3Yzc1CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyKHVpbnQ2NCkoYWRkcmVzcyxhZGRyZXNzKQoJY2FsbHN1YiBnZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXIKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXIodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IFtBZGRyZXNzLCBBZGRyZXNzXQpnZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXI6Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzA3CgkvLyByZXR1cm4gW3RoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm93bmVyLCB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5tYW5hZ2VyXTsKCWludGMgMiAvLyA4CglpbnRjIDQgLy8gMzIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWludGMgMTggLy8gNDAKCWludGMgNCAvLyAzMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJY29uY2F0CglyZXRzdWIKCi8vIGdldFBvb2xzKHVpbnQ2NCkodWludDY0LHVpbnQxNix1aW50NjQpW10KKmFiaV9yb3V0ZV9nZXRQb29sczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMiAvLyAweDE1MWY3Yzc1CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZ2V0UG9vbHModWludDY0KSh1aW50NjQsdWludDE2LHVpbnQ2NClbXQoJY2FsbHN1YiBnZXRQb29scwoJZHVwCglsZW4KCWludGMgNSAvLyAxOAoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldFBvb2xzKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUpOiBQb29sSW5mb1tdCi8vCi8vIFJldHVybiBsaXN0IG9mIGFsbCBwb29scyBmb3IgdGhpcyB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7dWludDY0fSB2YWxpZGF0b3JJZAovLyBAcmV0dXJuIHtQb29sSW5mb1tdfSAtIGFycmF5IG9mIHBvb2xzCi8vIE5vdCBjYWxsYWJsZSBmcm9tIG90aGVyIGNvbnRyYWN0cyBiZWNhdXNlID4xSyByZXR1cm4gYnV0IGNhbiBiZSBjYWxsZWQgdy8gc2ltdWxhdGUgd2hpY2ggYnVtcHMgbG9nIHJldHVybnMKZ2V0UG9vbHM6Cglwcm90byAxIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMxOAoJLy8gcmV0RGF0YTogUG9vbEluZm9bXSA9IFtdCglieXRlYyAxIC8vIDB4CglmcmFtZV9idXJ5IDAgLy8gcmV0RGF0YTogUG9vbEluZm9bXQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozMTkKCS8vIHBvb2xTZXQgPSBjbG9uZSh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzKQoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglpbnRjIDI5IC8vIDQzMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAxIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDE2LHVpbnQ2NClbMjRdCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMyMAoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBwb29sU2V0Lmxlbmd0aDsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCipmb3JfMDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozMjAKCS8vIGkgPCBwb29sU2V0Lmxlbmd0aAoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMjQKCTwKCWJ6ICpmb3JfMF9lbmQKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMyMQoJLy8gcG9vbFNldFtpXS5wb29sQXBwSWQgPT09IDAKCWZyYW1lX2RpZyAxIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDE2LHVpbnQ2NClbMjRdCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgNSAvLyAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDAgLy8gMAoJKwoJaW50YyAyIC8vIDgKCWV4dHJhY3QzCglidG9pCglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppZjBfZW5kCgoJLy8gKmlmMF9jb25zZXF1ZW50CgliICpmb3JfMF9lbmQKCippZjBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMyNQoJLy8gcmV0RGF0YS5wdXNoKHBvb2xTZXRbaV0pCglmcmFtZV9kaWcgMCAvLyByZXREYXRhOiBQb29sSW5mb1tdCglmcmFtZV9kaWcgMSAvLyBwb29sU2V0OiAodWludDY0LHVpbnQxNix1aW50NjQpWzI0XQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyA1IC8vIDE4CglleHRyYWN0MwoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gcmV0RGF0YTogUG9vbEluZm9bXQoKKmZvcl8wX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMyMAoJLy8gaSArPSAxCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDIgLy8gaTogdWludDY0CgliICpmb3JfMAoKKmZvcl8wX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozMjcKCS8vIHJldHVybiByZXREYXRhOwoJZnJhbWVfZGlnIDAgLy8gcmV0RGF0YTogUG9vbEluZm9bXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDIKCXJldHN1YgoKLy8gZ2V0UG9vbEFwcElkKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfZ2V0UG9vbEFwcElkOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyBwb29sSWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGdldFBvb2xBcHBJZCh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBnZXRQb29sQXBwSWQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnZXRQb29sQXBwSWQodmFsaWRhdG9ySWQ6IHVpbnQ2NCwgcG9vbElkOiB1aW50NjQpOiB1aW50NjQKZ2V0UG9vbEFwcElkOgoJcHJvdG8gMiAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMzNQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgcG9vbElkICE9PSAwICYmIHBvb2xJZCA8PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzLmxlbmd0aCwKCS8vICAgICAgICdwb29sIGlkIG11c3QgYmUgYmV0d2VlbiAxIGFuZCBudW1iZXIgb2YgcG9vbHMgZm9yIHRoaXMgdmFsaWRhdG9yJwoJLy8gICAgICkKCWZyYW1lX2RpZyAtMiAvLyBwb29sSWQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCSE9CglkdXAKCWJ6ICpza2lwX2FuZDAKCWZyYW1lX2RpZyAtMiAvLyBwb29sSWQ6IHVpbnQ2NAoJaW50YyAzIC8vIDI0Cgk8PQoJJiYKCipza2lwX2FuZDA6CgkvLyBwb29sIGlkIG11c3QgYmUgYmV0d2VlbiAxIGFuZCBudW1iZXIgb2YgcG9vbHMgZm9yIHRoaXMgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzM5CgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5wb29sc1twb29sSWQgLSAxXS5wb29sQXBwSWQ7CglpbnRjIDYgLy8gIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMiAvLyBwb29sSWQ6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCS0KCWludGMgNSAvLyAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDAgLy8gMAoJKwoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCXJldHN1YgoKLy8gZ2V0UG9vbEluZm8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0LHVpbnQxNix1aW50NjQpCiphYmlfcm91dGVfZ2V0UG9vbEluZm86CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIHBvb2xLZXk6ICh1aW50NjQsdWludDY0LHVpbnQ2NCkKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDMgLy8gMjQKCT09CgoJLy8gYXJndW1lbnQgMCAocG9vbEtleSkgZm9yIGdldFBvb2xJbmZvIG11c3QgYmUgYSAodWludDY0LHVpbnQ2NCx1aW50NjQpCglhc3NlcnQKCgkvLyBleGVjdXRlIGdldFBvb2xJbmZvKCh1aW50NjQsdWludDY0LHVpbnQ2NCkpKHVpbnQ2NCx1aW50MTYsdWludDY0KQoJY2FsbHN1YiBnZXRQb29sSW5mbwoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldFBvb2xJbmZvKHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkpOiBQb29sSW5mbwpnZXRQb29sSW5mbzoKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNDQKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXTsKCWludGMgNiAvLyAgaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnRjIDEgLy8gMQoJLQoJaW50YyA1IC8vIDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludGMgNSAvLyAxOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gZ2V0Q3VyTWF4U3Rha2VQZXJQb29sKHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9nZXRDdXJNYXhTdGFrZVBlclBvb2w6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGdldEN1ck1heFN0YWtlUGVyUG9vbCh1aW50NjQpdWludDY0CgljYWxsc3ViIGdldEN1ck1heFN0YWtlUGVyUG9vbAoJaXRvYgoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldEN1ck1heFN0YWtlUGVyUG9vbCh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlKTogdWludDY0Ci8vCi8vIENhbGN1bGF0ZSB0aGUgbWF4aW11bSBzdGFrZSBwZXIgcG9vbCBmb3IgYSBnaXZlbiB2YWxpZGF0b3IuCi8vIE5vcm1hbGx5IHRoaXMgd291bGQgYmUgbWF4QWxnb1BlclBvb2wsIGJ1dCBpdCBzaG91bGQgYWxzbyBuZXZlciBnbyBhYm92ZSBNYXhBbGxvd2VkU3Rha2UgLyBudW1Qb29scyBzbwovLyBhcyBwb29scyBhcmUgYWRkZWQgdGhlIG1heCBhbGxvd2VkIHBlciBwb29sIGNhbiByZWR1Y2UuCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yLgpnZXRDdXJNYXhTdGFrZVBlclBvb2w6Cglwcm90byAxIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM1NQoJLy8gbnVtUG9vbHMgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnN0YXRlLm51bVBvb2xzIGFzIHVpbnQ2NAoJaW50YyA4IC8vIDI0MgoJaW50YyAxMCAvLyAyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDAgLy8gbnVtUG9vbHM6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNTYKCS8vIGhhcmRNYXhEaXZpZGVkQmV0d2VlblBvb2xzID0gdGhpcy5tYXhBbGxvd2VkU3Rha2UoKSAvIG51bVBvb2xzCgljYWxsc3ViIG1heEFsbG93ZWRTdGFrZQoJZnJhbWVfZGlnIDAgLy8gbnVtUG9vbHM6IHVpbnQ2NAoJLwoJZnJhbWVfYnVyeSAxIC8vIGhhcmRNYXhEaXZpZGVkQmV0d2VlblBvb2xzOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzU3CgkvLyBtYXhQZXJQb29sOiB1aW50NjQgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5tYXhBbGdvUGVyUG9vbAoJcHVzaGludCAyMTcKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDIgLy8gbWF4UGVyUG9vbDogdWludDY0CgoJLy8gKmlmMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNTgKCS8vIG1heFBlclBvb2wgPT09IDAKCWZyYW1lX2RpZyAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglieiAqaWYxX2VuZAoKCS8vICppZjFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM1OQoJLy8gbWF4UGVyUG9vbCA9IHRoaXMubWF4QWxnb0FsbG93ZWRQZXJQb29sKCkKCWNhbGxzdWIgbWF4QWxnb0FsbG93ZWRQZXJQb29sCglmcmFtZV9idXJ5IDIgLy8gbWF4UGVyUG9vbDogdWludDY0CgoqaWYxX2VuZDoKCS8vICppZjJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzYxCgkvLyBoYXJkTWF4RGl2aWRlZEJldHdlZW5Qb29scyA8IG1heFBlclBvb2wKCWZyYW1lX2RpZyAxIC8vIGhhcmRNYXhEaXZpZGVkQmV0d2VlblBvb2xzOiB1aW50NjQKCWZyYW1lX2RpZyAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoJPAoJYnogKmlmMl9lbmQKCgkvLyAqaWYyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNjIKCS8vIG1heFBlclBvb2wgPSBoYXJkTWF4RGl2aWRlZEJldHdlZW5Qb29scwoJZnJhbWVfZGlnIDEgLy8gaGFyZE1heERpdmlkZWRCZXR3ZWVuUG9vbHM6IHVpbnQ2NAoJZnJhbWVfYnVyeSAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoKKmlmMl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzY0CgkvLyByZXR1cm4gbWF4UGVyUG9vbDsKCWZyYW1lX2RpZyAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDIKCXJldHN1YgoKLy8gZG9lc1N0YWtlck5lZWRUb1BheU1CUihhZGRyZXNzKWJvb2wKKmFiaV9yb3V0ZV9kb2VzU3Rha2VyTmVlZFRvUGF5TUJSOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoc3Rha2VyKSBmb3IgZG9lc1N0YWtlck5lZWRUb1BheU1CUiBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBkb2VzU3Rha2VyTmVlZFRvUGF5TUJSKGFkZHJlc3MpYm9vbAoJY2FsbHN1YiBkb2VzU3Rha2VyTmVlZFRvUGF5TUJSCglieXRlYyA1IC8vIDB4MDAKCWludGMgMCAvLyAwCgl1bmNvdmVyIDIKCXNldGJpdAoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGRvZXNTdGFrZXJOZWVkVG9QYXlNQlIoc3Rha2VyOiBBZGRyZXNzKTogYm9vbGVhbgovLwovLyBIZWxwZXIgY2FsbGVycyBjYW4gY2FsbCB3LyBzaW11bGF0ZSB0byBkZXRlcm1pbmUgaWYgJ0FkZFN0YWtlcicgTUJSIHNob3VsZCBiZSBpbmNsdWRlZCB3LyBzdGFraW5nIGFtb3VudAovLyBAcGFyYW0gc3Rha2VyCmRvZXNTdGFrZXJOZWVkVG9QYXlNQlI6Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzczCgkvLyByZXR1cm4gIXRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLmV4aXN0czsKCWJ5dGVjIDMgLy8gICJzcHMiCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWJveF9sZW4KCXN3YXAKCXBvcAoJIQoJcmV0c3ViCgovLyBnZXRTdGFrZWRQb29sc0ZvckFjY291bnQoYWRkcmVzcykodWludDY0LHVpbnQ2NCx1aW50NjQpW10KKmFiaV9yb3V0ZV9nZXRTdGFrZWRQb29sc0ZvckFjY291bnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIHN0YWtlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChzdGFrZXIpIGZvciBnZXRTdGFrZWRQb29sc0ZvckFjY291bnQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgZ2V0U3Rha2VkUG9vbHNGb3JBY2NvdW50KGFkZHJlc3MpKHVpbnQ2NCx1aW50NjQsdWludDY0KVtdCgljYWxsc3ViIGdldFN0YWtlZFBvb2xzRm9yQWNjb3VudAoJZHVwCglsZW4KCWludGMgMyAvLyAyNAoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldFN0YWtlZFBvb2xzRm9yQWNjb3VudChzdGFrZXI6IEFkZHJlc3MpOiBWYWxpZGF0b3JQb29sS2V5W10KLy8KLy8gUmV0cmlldmVzIHRoZSBzdGFrZWQgcG9vbHMgZm9yIGFuIGFjY291bnQuCi8vCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyIC0gVGhlIGFjY291bnQgdG8gcmV0cmlldmUgc3Rha2VkIHBvb2xzIGZvci4KLy8gQHJldHVybiB7VmFsaWRhdG9yUG9vbEtleVtdfSAtIFRoZSBhcnJheSBvZiBzdGFrZWQgcG9vbHMgZm9yIHRoZSBhY2NvdW50LgpnZXRTdGFrZWRQb29sc0ZvckFjY291bnQ6Cglwcm90byAxIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwbiAyCgoJLy8gKmlmM19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozODMKCS8vICF0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS5leGlzdHMKCWJ5dGVjIDMgLy8gICJzcHMiCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWJveF9sZW4KCXN3YXAKCXBvcAoJIQoJYnogKmlmM19lbmQKCgkvLyAqaWYzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozODQKCS8vIHJldHVybiBbXTsKCWJ5dGVjIDEgLy8gMHgKCWIgKmdldFN0YWtlZFBvb2xzRm9yQWNjb3VudCpyZXR1cm4KCippZjNfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM4NgoJLy8gcmV0RGF0YTogVmFsaWRhdG9yUG9vbEtleVtdID0gW10KCWJ5dGVjIDEgLy8gMHgKCWZyYW1lX2J1cnkgMCAvLyByZXREYXRhOiBWYWxpZGF0b3JQb29sS2V5W10KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Mzg3CgkvLyBwb29sU2V0ID0gY2xvbmUodGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUpCglieXRlYyAzIC8vICAic3BzIgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJY29uY2F0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZQoJYXNzZXJ0CglmcmFtZV9idXJ5IDEgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozODgKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgcG9vbFNldC5sZW5ndGg7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDIgLy8gaTogdWludDY0CgoqZm9yXzE6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Mzg4CgkvLyBpIDwgcG9vbFNldC5sZW5ndGgKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyA3IC8vIDYKCTwKCWJ6ICpmb3JfMV9lbmQKCgkvLyAqaWY0X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM4OQoJLy8gcG9vbFNldFtpXS5pZCAhPT0gMAoJZnJhbWVfZGlnIDEgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAwIC8vIDAKCSsKCWludGMgMiAvLyA4CglleHRyYWN0MwoJYnRvaQoJaW50YyAwIC8vIDAKCSE9CglieiAqaWY0X2VuZAoKCS8vICppZjRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM5MAoJLy8gcmV0RGF0YS5wdXNoKHBvb2xTZXRbaV0pCglmcmFtZV9kaWcgMCAvLyByZXREYXRhOiBWYWxpZGF0b3JQb29sS2V5W10KCWZyYW1lX2RpZyAxIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMyAvLyAyNAoJZXh0cmFjdDMKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIHJldERhdGE6IFZhbGlkYXRvclBvb2xLZXlbXQoKKmlmNF9lbmQ6CgoqZm9yXzFfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Mzg4CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl8xCgoqZm9yXzFfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM5MwoJLy8gcmV0dXJuIHJldERhdGE7CglmcmFtZV9kaWcgMCAvLyByZXREYXRhOiBWYWxpZGF0b3JQb29sS2V5W10KCipnZXRTdGFrZWRQb29sc0ZvckFjY291bnQqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMgoJcmV0c3ViCgovLyBnZXRUb2tlblBheW91dFJhdGlvKHVpbnQ2NCkodWludDY0WzI0XSx1aW50NjQpCiphYmlfcm91dGVfZ2V0VG9rZW5QYXlvdXRSYXRpbzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMiAvLyAweDE1MWY3Yzc1CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZ2V0VG9rZW5QYXlvdXRSYXRpbyh1aW50NjQpKHVpbnQ2NFsyNF0sdWludDY0KQoJY2FsbHN1YiBnZXRUb2tlblBheW91dFJhdGlvCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2V0VG9rZW5QYXlvdXRSYXRpbyh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlKTogUG9vbFRva2VuUGF5b3V0UmF0aW8KLy8KLy8gUmV0cmlldmVzIHRoZSB0b2tlbiBwYXlvdXQgcmF0aW8gZm9yIGEgZ2l2ZW4gdmFsaWRhdG9yIC0gcmV0dXJuaW5nIHRoZSBwb29sIHJhdGlvcyBvZiB3aG9sZSBzbyB0aGF0IHRva2VuCi8vIHBheW91dHMgYWNyb3NzIHBvb2xzIGNhbiBiZSBiYXNlZCBvbiBhIHN0YWJsZSBzbmFwaG9zdCBvZiBzdGFrZS4KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCi8vIEByZXR1cm4ge1Bvb2xUb2tlblBheW91dFJhdGlvfSAtIFRoZSB0b2tlbiBwYXlvdXQgcmF0aW8gZm9yIHRoZSB2YWxpZGF0b3IuCmdldFRva2VuUGF5b3V0UmF0aW86Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDA1CgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvOwoJaW50YyAxNCAvLyAgaGVhZE9mZnNldAoJaW50YyAxOSAvLyAyMDAKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gZ2V0Tm9kZVBvb2xBc3NpZ25tZW50cyh1aW50NjQpKCh1aW50NjRbM10pWzhdKQoqYWJpX3JvdXRlX2dldE5vZGVQb29sQXNzaWdubWVudHM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGdldE5vZGVQb29sQXNzaWdubWVudHModWludDY0KSgodWludDY0WzNdKVs4XSkKCWNhbGxzdWIgZ2V0Tm9kZVBvb2xBc3NpZ25tZW50cwoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldE5vZGVQb29sQXNzaWdubWVudHModmFsaWRhdG9ySWQ6IHVpbnQ2NCk6IE5vZGVQb29sQXNzaWdubWVudENvbmZpZwpnZXROb2RlUG9vbEFzc2lnbm1lbnRzOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQxMAoJLy8gYXNzZXJ0KHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkuZXhpc3RzLCAidGhlIHNwZWNpZmllZCB2YWxpZGF0b3IgaWQgZG9lc24ndCBleGlzdCIpCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpdG9iCgljb25jYXQKCWJveF9sZW4KCXN3YXAKCXBvcAoKCS8vIHRoZSBzcGVjaWZpZWQgdmFsaWRhdG9yIGlkIGRvZXNuJ3QgZXhpc3QKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MTIKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLm5vZGVQb29sQXNzaWdubWVudHM7CglpbnRjIDE3IC8vICBoZWFkT2Zmc2V0CglpbnRjIDIyIC8vIDE5MgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJcmV0c3ViCgovLyBnZXRORkRSZWdpc3RyeUlEKCl1aW50NjQKKmFiaV9yb3V0ZV9nZXRORkRSZWdpc3RyeUlEOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGdldE5GRFJlZ2lzdHJ5SUQoKXVpbnQ2NAoJY2FsbHN1YiBnZXRORkRSZWdpc3RyeUlECglpdG9iCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2V0TkZEUmVnaXN0cnlJRCgpOiB1aW50NjQKZ2V0TkZEUmVnaXN0cnlJRDoKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MTYKCS8vIHJldHVybiB0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQ7CglpbnRjIDE1IC8vIFRNUExfbmZkUmVnaXN0cnlBcHBJZAoJcmV0c3ViCgovLyBhZGRWYWxpZGF0b3IocGF5LHN0cmluZywodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkpdWludDY0CiphYmlfcm91dGVfYWRkVmFsaWRhdG9yOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyBjb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludGMgOCAvLyAyNDIKCT09CgoJLy8gYXJndW1lbnQgMCAoY29uZmlnKSBmb3IgYWRkVmFsaWRhdG9yIG11c3QgYmUgYSAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWFzc2VydAoKCS8vIG5mZE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBtYnJQYXltZW50OiBwYXkKCXR4biBHcm91cEluZGV4CglpbnRjIDEgLy8gMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50YyAxIC8vICBwYXkKCT09CgoJLy8gYXJndW1lbnQgMiAobWJyUGF5bWVudCkgZm9yIGFkZFZhbGlkYXRvciBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGFkZFZhbGlkYXRvcihwYXksc3RyaW5nLCh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KSl1aW50NjQKCWNhbGxzdWIgYWRkVmFsaWRhdG9yCglpdG9iCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gYWRkVmFsaWRhdG9yKG1iclBheW1lbnQ6IFBheVR4biwgbmZkTmFtZTogc3RyaW5nLCBjb25maWc6IFZhbGlkYXRvckNvbmZpZyk6IHVpbnQ2NAovLwovLyBBZGRzIGEgbmV3IHZhbGlkYXRvcgovLyBSZXF1aXJlcyBhdCBsZWFzdCAxMCBBTEdPIGFzIHRoZSAnZmVlJyBmb3IgdGhlIHRyYW5zYWN0aW9uIHRvIGhlbHAgZGlzc3VhZGUgc3BhbW1lZCB2YWxpZGF0b3IgYWRkcy4KLy8KLy8gQHBhcmFtIHtQYXlUeG59IG1iclBheW1lbnQgcGF5bWVudCBmcm9tIGNhbGxlciB3aGljaCBjb3ZlcnMgbWJyIGluY3JlYXNlIG9mIG5ldyB2YWxpZGF0b3Igc3RvcmFnZQovLyBAcGFyYW0ge3N0cmluZ30gbmZkTmFtZSAoT3B0aW9uYWwpIE5hbWUgb2YgbmZkICh1c2VkIGFzIGRvdWJsZS1jaGVjayBhZ2FpbnN0IGlkIHNwZWNpZmllZCBpbiBjb25maWcpCi8vIEBwYXJhbSB7VmFsaWRhdG9yQ29uZmlnfSBjb25maWcgVmFsaWRhdG9yQ29uZmlnIHN0cnVjdAovLyBAcmV0dXJucyB7dWludDY0fSB2YWxpZGF0b3IgaWQKYWRkVmFsaWRhdG9yOgoJcHJvdG8gMyAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDI4CgkvLyB0aGlzLnZhbGlkYXRlQ29uZmlnKGNvbmZpZykKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJY2FsbHN1YiB2YWxpZGF0ZUNvbmZpZwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MjkKCS8vIGFzc2VydChjb25maWcub3duZXIgIT09IEFkZHJlc3MuemVyb0FkZHJlc3MpCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgOCAzMgoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQzMAoJLy8gYXNzZXJ0KGNvbmZpZy5tYW5hZ2VyICE9PSBBZGRyZXNzLnplcm9BZGRyZXNzKQoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDQwIDMyCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDMxCgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBjb25maWcub3duZXIsICdzZW5kZXIgbXVzdCBiZSBvd25lciB0byBhZGQgbmV3IHZhbGlkYXRvcicpCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgOCAzMgoJPT0KCgkvLyBzZW5kZXIgbXVzdCBiZSBvd25lciB0byBhZGQgbmV3IHZhbGlkYXRvcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQzMwoJLy8gdmVyaWZ5UGF5VHhuKG1iclBheW1lbnQsIHsgYW1vdW50OiB0aGlzLmdldE1ickFtb3VudHMoKS5hZGRWYWxpZGF0b3JNYnIgfSkKCS8vIHZlcmlmeSBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJY2FsbHN1YiBnZXRNYnJBbW91bnRzCglleHRyYWN0IDAgOAoJYnRvaQoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6Im1iclBheW1lbnQiLCJmaWVsZCI6ImFtb3VudCIsImV4cGVjdGVkIjoidGhpcy5nZXRNYnJBbW91bnRzKCkuYWRkVmFsaWRhdG9yTWJyIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MzUKCS8vIGFzc2VydChtYnJQYXltZW50LmZlZSA+IDEwICogMTAwMDAwMCwgJ2ZlZSBtdXN0IGJlIDEwIEFMR08gb3IgbW9yZSB0byBwcmV2ZW50IHNwYW1taW5nIG9mIHZhbGlkYXRvcnMnKQoJZnJhbWVfZGlnIC0xIC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgRmVlCglwdXNoaW50IDEwMDAwMDAwCgk+CgoJLy8gZmVlIG11c3QgYmUgMTAgQUxHTyBvciBtb3JlIHRvIHByZXZlbnQgc3BhbW1pbmcgb2YgdmFsaWRhdG9ycwoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQzOAoJLy8gdmFsaWRhdG9ySWQgPSB0aGlzLm51bVZhbGlkYXRvcnMudmFsdWUgKyAxCglieXRlYyAxMiAvLyAgIm51bVYiCglhcHBfZ2xvYmFsX2dldAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMCAvLyB2YWxpZGF0b3JJZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQzOQoJLy8gdGhpcy5udW1WYWxpZGF0b3JzLnZhbHVlID0gdmFsaWRhdG9ySWQKCWJ5dGVjIDEyIC8vICAibnVtViIKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ0MQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS5jcmVhdGUoKQoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpdG9iCgljb25jYXQKCXB1c2hpbnQgMTA5MgoJYm94X2NyZWF0ZQoJcG9wCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ0MgoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcgPSBjb25maWcKCWludGMgMCAvLyAwCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NDMKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLmlkID0gdmFsaWRhdG9ySWQKCWludGMgMCAvLyAwCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpdG9iCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyAqaWY1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ0NgoJLy8gY29uZmlnLm5mZEZvckluZm8gIT09IDAKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA3MiA4CglidG9pCglpbnRjIDAgLy8gMAoJIT0KCWJ6ICppZjVfZW5kCgoJLy8gKmlmNV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDQ4CgkvLyBzZW5kQXBwQ2FsbCh7CgkvLyAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5uZmRSZWdpc3RyeUFwcElkKSwKCS8vICAgICAgICAgYXBwbGljYXRpb25BcmdzOiBbJ2lzX3ZhbGlkX25mZF9hcHBpZCcsIG5mZE5hbWUsIGl0b2IoY29uZmlnLm5mZEZvckluZm8pXSwKCS8vICAgICAgICAgYXBwbGljYXRpb25zOiBbQXBwSUQuZnJvbVVpbnQ2NChjb25maWcubmZkRm9ySW5mbyldLAoJLy8gICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NDkKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5uZmRSZWdpc3RyeUFwcElkKQoJaW50YyAxNSAvLyBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NTAKCS8vIGFwcGxpY2F0aW9uQXJnczogWydpc192YWxpZF9uZmRfYXBwaWQnLCBuZmROYW1lLCBpdG9iKGNvbmZpZy5uZmRGb3JJbmZvKV0KCWJ5dGVjIDEzIC8vICAiaXNfdmFsaWRfbmZkX2FwcGlkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMiAvLyBuZmROYW1lOiBzdHJpbmcKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgNzIgOAoJYnRvaQoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDUxCgkvLyBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KGNvbmZpZy5uZmRGb3JJbmZvKV0KCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA3MiA4CglidG9pCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9ucwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDUzCgkvLyBhc3NlcnQoYnRvaSh0aGlzLml0eG4ubGFzdExvZykgPT09IDEsICJwcm92aWRlZCBORkQgaXNuJ3QgdmFsaWQiKQoJaXR4biBMYXN0TG9nCglidG9pCglpbnRjIDEgLy8gMQoJPT0KCgkvLyBwcm92aWRlZCBORkQgaXNuJ3QgdmFsaWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NTUKCS8vIGFzc2VydCgKCS8vICAgICAgICAgdGhpcy50eG4uc2VuZGVyID09PSAoQXBwSUQuZnJvbVVpbnQ2NChjb25maWcubmZkRm9ySW5mbykuZ2xvYmFsU3RhdGUoJ2kub3duZXIuYScpIGFzIEFkZHJlc3MpLAoJLy8gICAgICAgICAnSWYgc3BlY2lmeWluZyBORkQsIGFjY291bnQgYWRkaW5nIHZhbGlkYXRvciBtdXN0IGJlIG93bmVyJwoJLy8gICAgICAgKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDcyIDgKCWJ0b2kKCWJ5dGVjIDkgLy8gICJpLm93bmVyLmEiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChjb25maWcubmZkRm9ySW5mbykuZ2xvYmFsU3RhdGUoJ2kub3duZXIuYScpCglhc3NlcnQKCT09CgoJLy8gSWYgc3BlY2lmeWluZyBORkQsIGFjY291bnQgYWRkaW5nIHZhbGlkYXRvciBtdXN0IGJlIG93bmVyCglhc3NlcnQKCippZjVfZW5kOgoJLy8gKmlmNl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NjEKCS8vIGNvbmZpZy5lbnRyeUdhdGluZ1R5cGUgPT09IEdBVElOR19UWVBFX0NSRUFURURfQllfTkZEX0FERFJFU1NFUyB8fAoJLy8gICAgICAgY29uZmlnLmVudHJ5R2F0aW5nVHlwZSA9PT0gR0FUSU5HX1RZUEVfU0VHTUVOVF9PRl9ORkQKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA4MCAxCglidG9pCglpbnRjIDkgLy8gMwoJPT0KCWR1cAoJYm56ICpza2lwX29yMAoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDgwIDEKCWJ0b2kKCWludGMgMjAgLy8gNAoJPT0KCXx8Cgoqc2tpcF9vcjA6CglieiAqaWY2X2VuZAoKCS8vICppZjZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ2NQoJLy8gYXNzZXJ0KHRoaXMuaXNORkRBcHBJRFZhbGlkKGNvbmZpZy5lbnRyeUdhdGluZ0Fzc2V0c1swXSksICdwcm92aWRlZCBORkQgQXBwIGlkIGZvciBnYXRpbmcgbXVzdCBiZSB2YWxpZCBORkQnKQoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDExMyA4CglidG9pCgljYWxsc3ViIGlzTkZEQXBwSURWYWxpZAoKCS8vIHByb3ZpZGVkIE5GRCBBcHAgaWQgZm9yIGdhdGluZyBtdXN0IGJlIHZhbGlkIE5GRAoJYXNzZXJ0CgoqaWY2X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NjgKCS8vIHJldHVybiB2YWxpZGF0b3JJZDsKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gY2hhbmdlVmFsaWRhdG9yTWFuYWdlcih1aW50NjQsYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yTWFuYWdlcjoKCS8vIG1hbmFnZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMCAobWFuYWdlcikgZm9yIGNoYW5nZVZhbGlkYXRvck1hbmFnZXIgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNoYW5nZVZhbGlkYXRvck1hbmFnZXIodWludDY0LGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBjaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBjaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIG1hbmFnZXI6IEFkZHJlc3MpOiB2b2lkCi8vCi8vIENoYW5nZXMgdGhlIFZhbGlkYXRvciBtYW5hZ2VyIGZvciBhIHNwZWNpZmljIFZhbGlkYXRvciBpZC4KLy8gWyBPTkxZIE9XTkVSIENBTiBDSEFOR0UgXQovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvciB0byBjaGFuZ2UgdGhlIG1hbmFnZXIgZm9yLgovLyBAcGFyYW0ge0FkZHJlc3N9IG1hbmFnZXIgLSBUaGUgbmV3IG1hbmFnZXIgYWRkcmVzcy4KY2hhbmdlVmFsaWRhdG9yTWFuYWdlcjoKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NzkKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnRjIDIgLy8gOAoJaW50YyA0IC8vIDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXIKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0ODMKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm1hbmFnZXIgPSBtYW5hZ2VyCglpbnRjIDE4IC8vIDQwCglmcmFtZV9kaWcgLTIgLy8gbWFuYWdlcjogQWRkcmVzcwoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBjaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvKHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvOgoJLy8gc3Vuc2V0dGluZ1RvOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBzdW5zZXR0aW5nT246IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNoYW5nZVZhbGlkYXRvclN1bnNldEluZm8odWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBjaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBjaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIHN1bnNldHRpbmdPbjogdWludDY0LCBzdW5zZXR0aW5nVG86IFZhbGlkYXRvcklkVHlwZSk6IHZvaWQKLy8KLy8gVXBkYXRlcyB0aGUgc3Vuc2V0IGluZm9ybWF0aW9uIGZvciBhIGdpdmVuIHZhbGlkYXRvci4KLy8gWyBPTkxZIE9XTkVSIENBTiBDSEFOR0UgXQovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvciB0byB1cGRhdGUuCi8vIEBwYXJhbSB7dWludDY0fSBzdW5zZXR0aW5nT24gLSBUaGUgbmV3IHN1bnNldCB0aW1lc3RhbXAuCi8vIEBwYXJhbSB7dWludDY0fSBzdW5zZXR0aW5nVG8gLSBUaGUgbmV3IHN1bnNldCB0byB2YWxpZGF0b3IgaWQuCmNoYW5nZVZhbGlkYXRvclN1bnNldEluZm86Cglwcm90byAzIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDk1CgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm93bmVyLAoJLy8gICAgICAgJ2NhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXInCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJaW50YyAyIC8vIDgKCWludGMgNCAvLyAzMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDk5CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5zdW5zZXR0aW5nT24gPSBzdW5zZXR0aW5nT24KCWludGMgMjcgLy8gMjI2CglmcmFtZV9kaWcgLTIgLy8gc3Vuc2V0dGluZ09uOiB1aW50NjQKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTAwCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5zdW5zZXR0aW5nVG8gPSBzdW5zZXR0aW5nVG8KCXB1c2hpbnQgMjM0CglmcmFtZV9kaWcgLTMgLy8gc3Vuc2V0dGluZ1RvOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gY2hhbmdlVmFsaWRhdG9yTkZEKHVpbnQ2NCx1aW50NjQsc3RyaW5nKXZvaWQKKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JORkQ6CgkvLyBuZmROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWV4dHJhY3QgMiAwCgoJLy8gbmZkQXBwSUQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNoYW5nZVZhbGlkYXRvck5GRCh1aW50NjQsdWludDY0LHN0cmluZyl2b2lkCgljYWxsc3ViIGNoYW5nZVZhbGlkYXRvck5GRAoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gY2hhbmdlVmFsaWRhdG9yTkZEKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIG5mZEFwcElEOiB1aW50NjQsIG5mZE5hbWU6IHN0cmluZyk6IHZvaWQKLy8KLy8gQ2hhbmdlcyB0aGUgTkZEIGZvciBhIHZhbGlkYXRvciBpbiB0aGUgdmFsaWRhdG9yTGlzdCBjb250cmFjdC4KLy8gWyBPTkxZIE9XTkVSIENBTiBDSEFOR0UgXQovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvciB0byB1cGRhdGUuCi8vIEBwYXJhbSB7dWludDY0fSBuZmRBcHBJRCAtIFRoZSBhcHBsaWNhdGlvbiBpZCBvZiB0aGUgTkZEIHRvIGFzc2lnbiB0byB0aGUgdmFsaWRhdG9yLgovLyBAcGFyYW0ge3N0cmluZ30gbmZkTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBORkQgKHdoaWNoIG11c3QgbWF0Y2gpCmNoYW5nZVZhbGlkYXRvck5GRDoKCXByb3RvIDMgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MTMKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnRjIDIgLy8gOAoJaW50YyA0IC8vIDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXIKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MTgKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5uZmRSZWdpc3RyeUFwcElkKSwKCS8vICAgICAgIGFwcGxpY2F0aW9uQXJnczogWydpc192YWxpZF9uZmRfYXBwaWQnLCBuZmROYW1lLCBpdG9iKG5mZEFwcElEKV0sCgkvLyAgICAgICBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MTkKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5uZmRSZWdpc3RyeUFwcElkKQoJaW50YyAxNSAvLyBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MjAKCS8vIGFwcGxpY2F0aW9uQXJnczogWydpc192YWxpZF9uZmRfYXBwaWQnLCBuZmROYW1lLCBpdG9iKG5mZEFwcElEKV0KCWJ5dGVjIDEzIC8vICAiaXNfdmFsaWRfbmZkX2FwcGlkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMyAvLyBuZmROYW1lOiBzdHJpbmcKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTIgLy8gbmZkQXBwSUQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTIxCgkvLyBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKV0KCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJRDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9ucwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTI0CgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IChBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKS5nbG9iYWxTdGF0ZSgnaS5vd25lci5hJykgYXMgQWRkcmVzcyksCgkvLyAgICAgICAnSWYgc3BlY2lmeWluZyBORkQsIGFjY291bnQgYWRkaW5nIHZhbGlkYXRvciBtdXN0IGJlIG93bmVyJwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJRDogdWludDY0CglieXRlYyA5IC8vICAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQobmZkQXBwSUQpLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKQoJYXNzZXJ0Cgk9PQoKCS8vIElmIHNwZWNpZnlpbmcgTkZELCBhY2NvdW50IGFkZGluZyB2YWxpZGF0b3IgbXVzdCBiZSBvd25lcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUyOAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubmZkRm9ySW5mbyA9IG5mZEFwcElECglpbnRjIDIxIC8vIDcyCglmcmFtZV9kaWcgLTIgLy8gbmZkQXBwSUQ6IHVpbnQ2NAoJaXRvYgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBjaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyh1aW50NjQsYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3M6CgkvLyBjb21taXNzaW9uQWRkcmVzczogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChjb21taXNzaW9uQWRkcmVzcykgZm9yIGNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBjaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyh1aW50NjQsYWRkcmVzcyl2b2lkCgljYWxsc3ViIGNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBjaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCBjb21taXNzaW9uQWRkcmVzczogQWRkcmVzcyk6IHZvaWQKLy8KLy8gQ2hhbmdlIHRoZSBjb21taXNzaW9uIGFkZHJlc3MgdGhhdCB2YWxpZGF0b3IgcmV3YXJkcyBhcmUgc2VudCB0by4KLy8gWyBPTkxZIE9XTkVSIENBTiBDSEFOR0UgXQpjaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzczoKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MzYKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnRjIDIgLy8gOAoJaW50YyA0IC8vIDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXIKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1NDAKCS8vIGFzc2VydChjb21taXNzaW9uQWRkcmVzcyAhPT0gQWRkcmVzcy56ZXJvQWRkcmVzcykKCWZyYW1lX2RpZyAtMiAvLyBjb21taXNzaW9uQWRkcmVzczogQWRkcmVzcwoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU0MQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcudmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MgPSBjb21taXNzaW9uQWRkcmVzcwoJcHVzaGludCAxNzcKCWZyYW1lX2RpZyAtMiAvLyBjb21taXNzaW9uQWRkcmVzczogQWRkcmVzcwoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBjaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvKHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvOgoJLy8gUmV3YXJkUGVyUGF5b3V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDYKCWJ0b2kKCgkvLyBHYXRpbmdBc3NldE1pbkJhbGFuY2U6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNQoJYnRvaQoKCS8vIEVudHJ5R2F0aW5nQXNzZXRzOiB1aW50NjRbNF0KCXR4bmEgQXBwbGljYXRpb25BcmdzIDQKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMiAoRW50cnlHYXRpbmdBc3NldHMpIGZvciBjaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvIG11c3QgYmUgYSB1aW50NjRbNF0KCWFzc2VydAoKCS8vIEVudHJ5R2F0aW5nQWRkcmVzczogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAzIChFbnRyeUdhdGluZ0FkZHJlc3MpIGZvciBjaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBFbnRyeUdhdGluZ1R5cGU6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50YyAxIC8vIDEKCT09CgoJLy8gYXJndW1lbnQgNCAoRW50cnlHYXRpbmdUeXBlKSBmb3IgY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyBtdXN0IGJlIGEgdWludDgKCWFzc2VydAoJYnRvaQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNoYW5nZVZhbGlkYXRvclJld2FyZEluZm8odWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBjaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBjaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIEVudHJ5R2F0aW5nVHlwZTogdWludDgsIEVudHJ5R2F0aW5nQWRkcmVzczogQWRkcmVzcywgRW50cnlHYXRpbmdBc3NldHM6IFN0YXRpY0FycmF5PHVpbnQ2NCwgND4sIEdhdGluZ0Fzc2V0TWluQmFsYW5jZTogdWludDY0LCBSZXdhcmRQZXJQYXlvdXQ6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gQWxsb3cgdGhlIGFkZGl0aW9uYWwgcmV3YXJkcyAoZ2F0aW5nIGVudHJ5LCBhZGRpdGlvbmFsIHRva2VuIHJld2FyZHMpIGluZm9ybWF0aW9uIGJlIGNoYW5nZWQgYXQgd2lsbC4KLy8gWyBPTkxZIE9XTkVSIENBTiBDSEFOR0UgXQpjaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvOgoJcHJvdG8gNiAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU1NgoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5vd25lciwKCS8vICAgICAgICdjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyJwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWludGMgMiAvLyA4CglpbnRjIDQgLy8gMzIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09CgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU2MQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuZW50cnlHYXRpbmdUeXBlID0gRW50cnlHYXRpbmdUeXBlCglpbnRjIDM1IC8vIDgwCglmcmFtZV9kaWcgLTIgLy8gRW50cnlHYXRpbmdUeXBlOiB1aW50OAoJaXRvYgoJZXh0cmFjdCA3IDEKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTYyCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5lbnRyeUdhdGluZ0FkZHJlc3MgPSBFbnRyeUdhdGluZ0FkZHJlc3MKCXB1c2hpbnQgODEKCWZyYW1lX2RpZyAtMyAvLyBFbnRyeUdhdGluZ0FkZHJlc3M6IEFkZHJlc3MKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTYzCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5lbnRyeUdhdGluZ0Fzc2V0cyA9IEVudHJ5R2F0aW5nQXNzZXRzCglwdXNoaW50IDExMwoJZnJhbWVfZGlnIC00IC8vIEVudHJ5R2F0aW5nQXNzZXRzOiBTdGF0aWNBcnJheTx1aW50NjQsIDQ+CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU2NAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuZ2F0aW5nQXNzZXRNaW5CYWxhbmNlID0gR2F0aW5nQXNzZXRNaW5CYWxhbmNlCglpbnRjIDM2IC8vIDE0NQoJZnJhbWVfZGlnIC01IC8vIEdhdGluZ0Fzc2V0TWluQmFsYW5jZTogdWludDY0CglpdG9iCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU2NQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcucmV3YXJkUGVyUGF5b3V0ID0gUmV3YXJkUGVyUGF5b3V0CglwdXNoaW50IDE2MQoJZnJhbWVfZGlnIC02IC8vIFJld2FyZFBlclBheW91dDogdWludDY0CglpdG9iCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIGFkZFBvb2wocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2FkZFBvb2w6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIG5vZGVOdW06IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBtYnJQYXltZW50OiBwYXkKCXR4biBHcm91cEluZGV4CglpbnRjIDEgLy8gMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50YyAxIC8vICBwYXkKCT09CgoJLy8gYXJndW1lbnQgMiAobWJyUGF5bWVudCkgZm9yIGFkZFBvb2wgbXVzdCBiZSBhIHBheSB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhZGRQb29sKHBheSx1aW50NjQsdWludDY0KSh1aW50NjQsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgYWRkUG9vbAoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGFkZFBvb2wobWJyUGF5bWVudDogUGF5VHhuLCB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCBub2RlTnVtOiB1aW50NjQpOiBWYWxpZGF0b3JQb29sS2V5Ci8vCi8vIEFkZHMgYSBuZXcgcG9vbCB0byBhIHZhbGlkYXRvcidzIHBvb2wgc2V0LCByZXR1cm5pbmcgdGhlICdrZXknIHRvIHJlZmVyZW5jZSB0aGUgcG9vbCBpbiB0aGUgZnV0dXJlIGZvciBzdGFraW5nLCBldGMuCi8vIFRoZSBjYWxsZXIgbXVzdCBwYXkgdGhlIGNvc3Qgb2YgdGhlIHZhbGlkYXRvcnMgTUJSIGluY3JlYXNlIGFzIHdlbGwgYXMgdGhlIE1CUiB0aGF0IHdpbGwgYmUgbmVlZGVkIGZvciB0aGUgcG9vbCBpdHNlbGYuCi8vCi8vIFsgT05MWSBPV05FUiBPUiBNQU5BR0VSIENBTiBjYWxsIF0KLy8gQHBhcmFtIHtQYXlUeG59IG1iclBheW1lbnQgcGF5bWVudCBmcm9tIGNhbGxlciB3aGljaCBjb3ZlcnMgbWJyIGluY3JlYXNlIG9mIGFkZGluZyBhIG5ldyBwb29sCi8vIEBwYXJhbSB7dWludDY0fSB2YWxpZGF0b3JJZCBpcyBpZCBvZiB2YWxpZGF0b3IgdG8gcG9vbCB0byAobXVzdCBiZSBvd25lciBvciBtYW5hZ2VyKQovLyBAcGFyYW0ge3VpbnQ2NH0gbm9kZU51bSBpcyBub2RlIG51bWJlciB0byBhZGQgdG8KLy8gQHJldHVybnMge1ZhbGlkYXRvclBvb2xLZXl9IHBvb2wga2V5IHRvIGNyZWF0ZWQgcG9vbAphZGRQb29sOgoJcHJvdG8gMyAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1ODEKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIgfHwKCS8vICAgICAgICAgdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5tYW5hZ2VyLAoJLy8gICAgICAgJ2NhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnRjIDIgLy8gOAoJaW50YyA0IC8vIDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoJZHVwCglibnogKnNraXBfb3IxCgl0eG4gU2VuZGVyCglpbnRjIDE4IC8vIDQwCglpbnRjIDQgLy8gMzIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09Cgl8fAoKKnNraXBfb3IxOgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTg4CgkvLyB2ZXJpZnlQYXlUeG4obWJyUGF5bWVudCwgeyBhbW91bnQ6IHRoaXMuZ2V0TWJyQW1vdW50cygpLmFkZFBvb2xNYnIsIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzIH0pCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gbWJyUGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWNhbGxzdWIgZ2V0TWJyQW1vdW50cwoJZXh0cmFjdCA4IDgKCWJ0b2kKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJtYnJQYXltZW50IiwiZmllbGQiOiJhbW91bnQiLCJleHBlY3RlZCI6InRoaXMuZ2V0TWJyQW1vdW50cygpLmFkZFBvb2xNYnIifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gbWJyUGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJtYnJQYXltZW50IiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTkwCgkvLyBhc3NlcnQodGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS5leGlzdHMsICJzcGVjaWZpZWQgdmFsaWRhdG9yIGlkIGlzbid0IHZhbGlkIikKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCgoJLy8gc3BlY2lmaWVkIHZhbGlkYXRvciBpZCBpc24ndCB2YWxpZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU5MgoJLy8gbnVtUG9vbHM6IHVpbnQ2NCA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUubnVtUG9vbHMgYXMgdWludDY0CglpbnRjIDggLy8gMjQyCglpbnRjIDEwIC8vIDIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyBudW1Qb29sczogdWludDY0CgoJLy8gKmlmN19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1OTMKCS8vIChudW1Qb29scyBhcyB1aW50NjQpID49IE1BWF9QT09MUwoJZnJhbWVfZGlnIDAgLy8gbnVtUG9vbHM6IHVpbnQ2NAoJaW50YyAzIC8vIDI0Cgk+PQoJYnogKmlmN19lbmQKCgkvLyAqaWY3X2NvbnNlcXVlbnQKCS8vIGFscmVhZHkgYXQgbWF4IHBvb2wgc2l6ZQoJZXJyCgoqaWY3X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1OTYKCS8vIG51bVBvb2xzICs9IDEKCWZyYW1lX2RpZyAwIC8vIG51bVBvb2xzOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDAgLy8gbnVtUG9vbHM6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1OTkKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0aW9uLk5vT3AsCgkvLyAgICAgICBhcHByb3ZhbFByb2dyYW06IFsKCS8vICAgICAgICAgdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5leHRyYWN0KDAsIDQwOTYpLAoJLy8gICAgICAgICB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLmV4dHJhY3QoNDA5NiwgdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5zaXplIC0gNDA5NiksCgkvLyAgICAgICBdLAoJLy8gICAgICAgY2xlYXJTdGF0ZVByb2dyYW06IFN0YWtpbmdQb29sLmNsZWFyUHJvZ3JhbSgpLAoJLy8gICAgICAgZ2xvYmFsTnVtVWludDogU3Rha2luZ1Bvb2wuc2NoZW1hLmdsb2JhbC5udW1VaW50LAoJLy8gICAgICAgZ2xvYmFsTnVtQnl0ZVNsaWNlOiBTdGFraW5nUG9vbC5zY2hlbWEuZ2xvYmFsLm51bUJ5dGVTbGljZSwKCS8vICAgICAgIGV4dHJhUHJvZ3JhbVBhZ2VzOiAzLAoJLy8gICAgICAgYXBwbGljYXRpb25BcmdzOiBbCgkvLyAgICAgICAgIC8vIGNyZWF0aW5nQ29udHJhY3RJRCwgdmFsaWRhdG9ySWQsIHBvb2xJZCwgbWluRW50cnlTdGFrZQoJLy8gICAgICAgICBtZXRob2QoJ2NyZWF0ZUFwcGxpY2F0aW9uKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkJyksCgkvLyAgICAgICAgIGl0b2IodGhpcy5hcHAuaWQpLAoJLy8gICAgICAgICBpdG9iKHZhbGlkYXRvcklkKSwKCS8vICAgICAgICAgaXRvYihudW1Qb29scyBhcyB1aW50NjQpLAoJLy8gICAgICAgICBpdG9iKHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm1pbkVudHJ5U3Rha2UpLAoJLy8gICAgICAgXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYwMAoJLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRpb24uTm9PcAoJaW50YyAwIC8vICBOb09wCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MDEKCS8vIGFwcHJvdmFsUHJvZ3JhbTogWwoJLy8gICAgICAgICB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLmV4dHJhY3QoMCwgNDA5NiksCgkvLyAgICAgICAgIHRoaXMuc3Rha2luZ1Bvb2xBcHByb3ZhbFByb2dyYW0uZXh0cmFjdCg0MDk2LCB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLnNpemUgLSA0MDk2KSwKCS8vICAgICAgIF0KCWJ5dGVjIDYgLy8gICJwb29sVGVtcGxhdGVBcHByb3ZhbEJ5dGVzIgoJaW50YyAwIC8vIDAKCWludGMgMjUgLy8gNDA5NgoJYm94X2V4dHJhY3QKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKCWJ5dGVjIDYgLy8gICJwb29sVGVtcGxhdGVBcHByb3ZhbEJ5dGVzIgoJaW50YyAyNSAvLyA0MDk2CglieXRlYyA2IC8vICAicG9vbFRlbXBsYXRlQXBwcm92YWxCeXRlcyIKCWJveF9sZW4KCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuc3Rha2luZ1Bvb2xBcHByb3ZhbFByb2dyYW0uc2l6ZQoJYXNzZXJ0CglpbnRjIDI1IC8vIDQwOTYKCS0KCWJveF9leHRyYWN0CglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYwNQoJLy8gY2xlYXJTdGF0ZVByb2dyYW06IFN0YWtpbmdQb29sLmNsZWFyUHJvZ3JhbSgpCglwdXNoYnl0ZXMgMHgwYQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MDYKCS8vIGdsb2JhbE51bVVpbnQ6IFN0YWtpbmdQb29sLnNjaGVtYS5nbG9iYWwubnVtVWludAoJaW50YyAzNCAvLyAxMQoJaXR4bl9maWVsZCBHbG9iYWxOdW1VaW50CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYwNwoJLy8gZ2xvYmFsTnVtQnl0ZVNsaWNlOiBTdGFraW5nUG9vbC5zY2hlbWEuZ2xvYmFsLm51bUJ5dGVTbGljZQoJaW50YyA5IC8vIDMKCWl0eG5fZmllbGQgR2xvYmFsTnVtQnl0ZVNsaWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYwOAoJLy8gZXh0cmFQcm9ncmFtUGFnZXM6IDMKCWludGMgOSAvLyAzCglpdHhuX2ZpZWxkIEV4dHJhUHJvZ3JhbVBhZ2VzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYwOQoJLy8gYXBwbGljYXRpb25BcmdzOiBbCgkvLyAgICAgICAgIC8vIGNyZWF0aW5nQ29udHJhY3RJRCwgdmFsaWRhdG9ySWQsIHBvb2xJZCwgbWluRW50cnlTdGFrZQoJLy8gICAgICAgICBtZXRob2QoJ2NyZWF0ZUFwcGxpY2F0aW9uKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkJyksCgkvLyAgICAgICAgIGl0b2IodGhpcy5hcHAuaWQpLAoJLy8gICAgICAgICBpdG9iKHZhbGlkYXRvcklkKSwKCS8vICAgICAgICAgaXRvYihudW1Qb29scyBhcyB1aW50NjQpLAoJLy8gICAgICAgICBpdG9iKHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm1pbkVudHJ5U3Rha2UpLAoJLy8gICAgICAgXQoJcHVzaGJ5dGVzIDB4NTllOTBhYTYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbih1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMCAvLyBudW1Qb29sczogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJaW50YyAzOCAvLyAyMDkKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjE5CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnN0YXRlLm51bVBvb2xzID0gbnVtUG9vbHMgYXMgdWludDE2CglpbnRjIDggLy8gMjQyCglmcmFtZV9kaWcgMCAvLyBudW1Qb29sczogdWludDY0CglpdG9iCglleHRyYWN0IDYgMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MjIKCS8vIHBvb2xBcHBJZCA9IHRoaXMuaXR4bi5jcmVhdGVkQXBwbGljYXRpb25JRC5pZAoJaXR4biBDcmVhdGVkQXBwbGljYXRpb25JRAoJZnJhbWVfYnVyeSAxIC8vIHBvb2xBcHBJZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYyMwoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5wb29sc1tudW1Qb29scyAtIDFdLnBvb2xBcHBJZCA9IHBvb2xBcHBJZAoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMCAvLyBudW1Qb29sczogdWludDY0CglpbnRjIDEgLy8gMQoJLQoJaW50YyA1IC8vIDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludGMgMCAvLyAwCgkrCglmcmFtZV9kaWcgMSAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoJaXRvYgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MjQKCS8vIHRoaXMuYWRkUG9vbFRvTm9kZSh2YWxpZGF0b3JJZCwgcG9vbEFwcElkLCBub2RlTnVtKQoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gcG9vbEFwcElkOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCgljYWxsc3ViIGFkZFBvb2xUb05vZGUKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjMyCgkvLyByZXR1cm4geyBpZDogdmFsaWRhdG9ySWQsIHBvb2xJZDogbnVtUG9vbHMgYXMgdWludDY0LCBwb29sQXBwSWQ6IHRoaXMuaXR4biEuY3JlYXRlZEFwcGxpY2F0aW9uSUQuaWQgfTsKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCglmcmFtZV9kaWcgMCAvLyBudW1Qb29sczogdWludDY0CglpdG9iCgljb25jYXQKCWl0eG4gQ3JlYXRlZEFwcGxpY2F0aW9uSUQKCWl0b2IKCWNvbmNhdAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gYWRkU3Rha2UocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2FkZFN0YWtlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyB2YWx1ZVRvVmVyaWZ5OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gc3Rha2VkQW1vdW50UGF5bWVudDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50YyAxIC8vIDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludGMgMSAvLyAgcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDIgKHN0YWtlZEFtb3VudFBheW1lbnQpIGZvciBhZGRTdGFrZSBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGFkZFN0YWtlKHBheSx1aW50NjQsdWludDY0KSh1aW50NjQsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgYWRkU3Rha2UKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBhZGRTdGFrZShzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4sIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NCk6IFZhbGlkYXRvclBvb2xLZXkKLy8KLy8gQWRkcyBzdGFrZSB0byBhIHZhbGlkYXRvciBwb29sLgovLwovLyBAcGFyYW0ge1BheVR4bn0gc3Rha2VkQW1vdW50UGF5bWVudCAtIHBheW1lbnQgY29taW5nIGZyb20gc3Rha2VyIHRvIHBsYWNlIGludG8gYSBwb29sCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yLgovLyBAcGFyYW0ge3VpbnQ2NH0gdmFsdWVUb1ZlcmlmeSAtIG9ubHkgaWYgdmFsaWRhdG9yIGhhcyBnYXRpbmcgdG8gZW50ZXIgLSB0aGlzIGlzIGFzc2V0IGlkIG9yIG5mZCBpZCB0aGF0IGNvcnJlc3BvbmRzIHRvIGdhdGluZy4KLy8gVHhuIHNlbmRlciBpcyBmYWN0b3JlZCBpbiBhcyB3ZWxsIGlmIHRoYXQgaXMgcGFydCBvZiBnYXRpbmcuCi8vICogQHJldHVybnMge1ZhbGlkYXRvclBvb2xLZXl9IC0gVGhlIGtleSBvZiB0aGUgdmFsaWRhdG9yIHBvb2wuCmFkZFN0YWtlOgoJcHJvdG8gMyAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cG4gNQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NDUKCS8vIGFzc2VydCh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLmV4aXN0cywgInNwZWNpZmllZCB2YWxpZGF0b3IgaWQgaXNuJ3QgdmFsaWQiKQoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCgkvLyBzcGVjaWZpZWQgdmFsaWRhdG9yIGlkIGlzbid0IHZhbGlkCglhc3NlcnQKCgkvLyAqaWY4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY0OAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuc3Vuc2V0dGluZ09uID4gMAoJaW50YyAyNyAvLyAyMjYKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglpbnRjIDAgLy8gMAoJPgoJYnogKmlmOF9lbmQKCgkvLyAqaWY4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NDkKCS8vIGFzc2VydCgKCS8vICAgICAgICAgdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuc3Vuc2V0dGluZ09uIDwgZ2xvYmFscy5sYXRlc3RUaW1lc3RhbXAsCgkvLyAgICAgICAgICJjYW4ndCBzdGFrZSB3aXRoIGEgdmFsaWRhdG9yIHRoYXQgaXMgcGFzdCBpdHMgc3Vuc2V0dGluZyB0aW1lIgoJLy8gICAgICAgKQoJaW50YyAyNyAvLyAyMjYKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCgk8CgoJLy8gY2FuJ3Qgc3Rha2Ugd2l0aCBhIHZhbGlkYXRvciB0aGF0IGlzIHBhc3QgaXRzIHN1bnNldHRpbmcgdGltZQoJYXNzZXJ0CgoqaWY4X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NTUKCS8vIHN0YWtlciA9IHRoaXMudHhuLnNlbmRlcgoJdHhuIFNlbmRlcgoJZnJhbWVfYnVyeSAwIC8vIHN0YWtlcjogYWRkcmVzcwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NTkKCS8vIHZlcmlmeVBheVR4bihzdGFrZWRBbW91bnRQYXltZW50LCB7CgkvLyAgICAgICBzZW5kZXI6IHN0YWtlciwKCS8vICAgICAgIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBTZW5kZXIKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InN0YWtlZEFtb3VudFBheW1lbnQiLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoic3Rha2VyIn0KCWFzc2VydAoKCS8vIHZlcmlmeSByZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgUmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoic3Rha2VkQW1vdW50UGF5bWVudCIsImZpZWxkIjoicmVjZWl2ZXIiLCJleHBlY3RlZCI6InRoaXMuYXBwLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY2NgoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZS50b3RhbEFsZ29TdGFrZWQgPCB0aGlzLm1heEFsbG93ZWRTdGFrZSgpLAoJLy8gICAgICAgJ3RvdGFsIHN0YWtlZCBmb3IgYWxsIG9mIGEgdmFsaWRhdG9ycyBwb29scyBtYXkgbm90IGV4Y2VlZCBoYXJkIGNhcCcKCS8vICAgICApCglpbnRjIDEyIC8vIDI1MgoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWNhbGxzdWIgbWF4QWxsb3dlZFN0YWtlCgk8CgoJLy8gdG90YWwgc3Rha2VkIGZvciBhbGwgb2YgYSB2YWxpZGF0b3JzIHBvb2xzIG1heSBub3QgZXhjZWVkIGhhcmQgY2FwCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjczCgkvLyB0aGlzLmRvZXNTdGFrZXJNZWV0R2F0aW5nKHZhbGlkYXRvcklkLCB2YWx1ZVRvVmVyaWZ5KQoJZnJhbWVfZGlnIC0zIC8vIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWNhbGxzdWIgZG9lc1N0YWtlck1lZXRHYXRpbmcKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Njc1CgkvLyByZWFsQW1vdW50ID0gc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfYnVyeSAxIC8vIHJlYWxBbW91bnQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NzYKCS8vIG1ickFtdExlZnRCZWhpbmQ6IHVpbnQ2NCA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDIgLy8gbWJyQW10TGVmdEJlaGluZDogdWludDY0CgoJLy8gKmlmOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NzgKCS8vICF0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS5leGlzdHMKCWJ5dGVjIDMgLy8gICJzcHMiCglmcmFtZV9kaWcgMCAvLyBzdGFrZXI6IGFkZHJlc3MKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCglieiAqaWY5X2VuZAoKCS8vICppZjlfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY4MQoJLy8gbWJyQW10TGVmdEJlaGluZCA9IHRoaXMuZ2V0TWJyQW1vdW50cygpLmFkZFN0YWtlck1icgoJY2FsbHN1YiBnZXRNYnJBbW91bnRzCglleHRyYWN0IDI0IDgKCWJ0b2kKCWZyYW1lX2J1cnkgMiAvLyBtYnJBbXRMZWZ0QmVoaW5kOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjgyCgkvLyByZWFsQW1vdW50IC09IG1ickFtdExlZnRCZWhpbmQKCWZyYW1lX2RpZyAxIC8vIHJlYWxBbW91bnQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDIgLy8gbWJyQW10TGVmdEJlaGluZDogdWludDY0CgktCglmcmFtZV9idXJ5IDEgLy8gcmVhbEFtb3VudDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY4MwoJLy8gdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikuY3JlYXRlKCkKCWJ5dGVjIDMgLy8gICJzcHMiCglmcmFtZV9kaWcgMCAvLyBzdGFrZXI6IGFkZHJlc3MKCWNvbmNhdAoJcHVzaGludCAxNDQKCWJveF9jcmVhdGUKCXBvcAoKKmlmOV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Njg3CgkvLyBmaW5kUmV0ID0gdGhpcy5maW5kUG9vbEZvclN0YWtlcih2YWxpZGF0b3JJZCwgc3Rha2VyLCByZWFsQW1vdW50KQoJZnJhbWVfZGlnIDEgLy8gcmVhbEFtb3VudDogdWludDY0CglmcmFtZV9kaWcgMCAvLyBzdGFrZXI6IGFkZHJlc3MKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCgljYWxsc3ViIGZpbmRQb29sRm9yU3Rha2VyCglmcmFtZV9idXJ5IDMgLy8gZmluZFJldDogKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2ODgKCS8vIHBvb2xLZXkgPSBmaW5kUmV0WzBdCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Njg5CgkvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yID0gZmluZFJldFsxXQoJZnJhbWVfZGlnIDMgLy8gZmluZFJldDogKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludGMgMjIgLy8gMTkyCglnZXRiaXQKCWZyYW1lX2J1cnkgNCAvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY5MAoJLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sID0gZmluZFJldFsyXQoJZnJhbWVfZGlnIDMgLy8gZmluZFJldDogKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMTkzCglnZXRiaXQKCWZyYW1lX2J1cnkgNSAvLyBpc05ld1N0YWtlclRvUHJvdG9jb2w6IGJvb2wKCgkvLyAqaWYxMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2OTEKCS8vIHBvb2xLZXkucG9vbElkID09PSAwCglmcmFtZV9kaWcgMyAvLyBmaW5kUmV0OiAoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmMTBfZW5kCgoJLy8gKmlmMTBfY29uc2VxdWVudAoJLy8gTm8gcG9vbCBhdmFpbGFibGUgd2l0aCBmcmVlIHN0YWtlLiAgVmFsaWRhdG9yIG5lZWRzIHRvIGFkZCBhbm90aGVyIHBvb2wKCWVycgoKKmlmMTBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY5NgoJLy8gdGhpcy51cGRhdGVTdGFrZXJQb29sU2V0KHN0YWtlciwgcG9vbEtleSkKCWZyYW1lX2RpZyAzIC8vIGZpbmRSZXQ6ICgodWludDY0LHVpbnQ2NCx1aW50NjQpLGJvb2wsYm9vbCkKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDAgMjQKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJY2FsbHN1YiB1cGRhdGVTdGFrZXJQb29sU2V0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY5OQoJLy8gdGhpcy5jYWxsUG9vbEFkZFN0YWtlKAoJLy8gICAgICAgc3Rha2VkQW1vdW50UGF5bWVudCwKCS8vICAgICAgIHBvb2xLZXksCgkvLyAgICAgICBtYnJBbXRMZWZ0QmVoaW5kLAoJLy8gICAgICAgaXNOZXdTdGFrZXJUb1ZhbGlkYXRvciwKCS8vICAgICAgIGlzTmV3U3Rha2VyVG9Qcm90b2NvbAoJLy8gICAgICkKCWZyYW1lX2RpZyA1IC8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbAoJZnJhbWVfZGlnIDQgLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbAoJZnJhbWVfZGlnIDIgLy8gbWJyQW10TGVmdEJlaGluZDogdWludDY0CglmcmFtZV9kaWcgMyAvLyBmaW5kUmV0OiAoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAwIDI0CglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCgljYWxsc3ViIGNhbGxQb29sQWRkU3Rha2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzE0CgkvLyByZXR1cm4gcG9vbEtleTsKCWZyYW1lX2RpZyAzIC8vIGZpbmRSZXQ6ICgodWludDY0LHVpbnQ2NCx1aW50NjQpLGJvb2wsYm9vbCkKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDAgMjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA1CglyZXRzdWIKCi8vIHNldFRva2VuUGF5b3V0UmF0aW8odWludDY0KSh1aW50NjRbMjRdLHVpbnQ2NCkKKmFiaV9yb3V0ZV9zZXRUb2tlblBheW91dFJhdGlvOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBzZXRUb2tlblBheW91dFJhdGlvKHVpbnQ2NCkodWludDY0WzI0XSx1aW50NjQpCgljYWxsc3ViIHNldFRva2VuUGF5b3V0UmF0aW8KCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBzZXRUb2tlblBheW91dFJhdGlvKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUpOiBQb29sVG9rZW5QYXlvdXRSYXRpbwovLwovLyBzZXRUb2tlblBheW91dFJhdGlvIGlzIGNhbGxlZCBieSBTdGFraW5nIFBvb2wgIyAxIChPTkxZKSB0byBhc2sgdGhlIHZhbGlkYXRvciAodXMpIHRvIGNhbGN1bGF0ZSB0aGUgcmF0aW9zCi8vIG9mIHN0YWtlIGluIHRoZSBwb29scyBmb3Igc3Vic2VxdWVudCB0b2tlbiBwYXlvdXRzIChpZTogMiBwb29scywgJzEwMCcgYWxnbyB0b3RhbCBzdGFrZWQsIDYwIGluIHBvb2wgMSwgYW5kIDQwCi8vIGluIHBvb2wgMikgIFRoaXMgaXMgZG9uZSBzbyB3ZSBoYXZlIGEgc3RhYmxlIHNuYXBzaG90IG9mIHN0YWtlIC0gdGFrZW4gb25jZSBwZXIgZXBvY2ggLSBvbmx5IHRyaWdnZXJlZCBieQovLyBwb29sIDEgZG9pbmcgcGF5b3V0LiAgcG9vbHMgb3RoZXIgdGhhbiAxIGRvaW5nIHBheW91dCBjYWxsIHBvb2wgMSB0byBhc2sgaXQgZG8gaXQgZmlyc3QuCi8vIEl0IHdvdWxkIGJlIDYwLzQwJSBpbiB0aGUgcG9vbFBjdE9mV2hvbGUgdmFsdWVzLiAgVGhlIHRva2VuIHJld2FyZCBwYXlvdXRzIHRoZW4gdXNlIHRoZXNlIHZhbHVlcyBpbnN0ZWFkIG9mCi8vIHRoZWlyICdjdXJyZW50JyBzdGFrZSB3aGljaCBjaGFuZ2VzIGFzIHBhcnQgb2YgdGhlIHBheW91dHMgdGhlbXNlbHZlcyAoYW5kIHBlb3BsZSBjb3VsZCBiZSBjaGFuZ2luZyBzdGFrZQovLyBkdXJpbmcgdGhlIGVwb2NoIHVwZGF0ZXMgYWNyb3NzIHBvb2xzKQovLwovLyBNdWx0aXBsZSBwb29scyB3aWxsIGNhbGwgdXMgdmlhIHBvb2wgMSAocG9vbDItPnBvb2wxLT52YWxpZGF0b3IsIGV0Yy4pIHNvIGRvbid0IGFzc2VydCBvbiBwb29sMSBjYWxsaW5nIG11bHRpcGxlCi8vIHRpbWVzIGluIHNhbWUgZXBvY2guICBKdXN0IHJldHVybi4KLy8KLy8gQHBhcmFtIHZhbGlkYXRvcklkIC0gdmFsaWRhdG9yIGlkIChhbmQgdGh1cyBwb29sKSBjYWxsaW5nIHVzLiAgVmVyaWZpZWQgc28gdGhhdCBzZW5kZXIgTVVTVCBiZSBwb29sIDEgb2YgdGhpcyB2YWxpZGF0b3IuCi8vIEByZXR1cm5zIFBvb2xUb2tlblBheW91dFJhdGlvIC0gdGhlIGZpbmlzaGVkIHJhdGlvIGRhdGEKc2V0VG9rZW5QYXlvdXRSYXRpbzoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAxIC8vIDB4CglkdXBuIDgKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzM0CgkvLyBwb29sMUFwcElEID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5wb29sc1swXS5wb29sQXBwSWQKCWludGMgNiAvLyAyNjgKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDAgLy8gcG9vbDFBcHBJRDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjczNQoJLy8gYXNzZXJ0KHBvb2wxQXBwSUQgIT09IDApCglmcmFtZV9kaWcgMCAvLyBwb29sMUFwcElEOiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoJYXNzZXJ0CgoJLy8gKmlmMTFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzM3CgkvLyB0aGlzLnR4bi5zZW5kZXIgIT09IEFwcElELmZyb21VaW50NjQocG9vbDFBcHBJRCkuYWRkcmVzcwoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIDAgLy8gcG9vbDFBcHBJRDogdWludDY0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCSE9CglieiAqaWYxMV9lbmQKCgkvLyAqaWYxMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzM4CgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvOwoJaW50YyAxNCAvLyAgaGVhZE9mZnNldAoJaW50YyAxOSAvLyAyMDAKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWIgKnNldFRva2VuUGF5b3V0UmF0aW8qcmV0dXJuCgoqaWYxMV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzQ0CgkvLyBjdXJSb3VuZCA9IGdsb2JhbHMucm91bmQKCWdsb2JhbCBSb3VuZAoJZnJhbWVfYnVyeSAxIC8vIGN1clJvdW5kOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzQ1CgkvLyBsYXN0UGF5b3V0VXBkYXRlID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvLnVwZGF0ZWRGb3JQYXlvdXQKCWludGMgMzAgLy8gODkyCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAyIC8vIGxhc3RQYXlvdXRVcGRhdGU6IHVpbnQ2NAoKCS8vICppZjEyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc0NgoJLy8gbGFzdFBheW91dFVwZGF0ZSAhPT0gMAoJZnJhbWVfZGlnIDIgLy8gbGFzdFBheW91dFVwZGF0ZTogdWludDY0CglpbnRjIDAgLy8gMAoJIT0KCWJ6ICppZjEyX2VuZAoKCS8vICppZjEyX2NvbnNlcXVlbnQKCS8vICppZjEzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc0OAoJLy8gKEFwcElELmZyb21VaW50NjQocG9vbDFBcHBJRCkuZ2xvYmFsU3RhdGUoJ2xhc3RQYXlvdXQnKSBhcyB1aW50NjQpID09PSBsYXN0UGF5b3V0VXBkYXRlCglmcmFtZV9kaWcgMCAvLyBwb29sMUFwcElEOiB1aW50NjQKCXB1c2hieXRlcyAweDZjNjE3Mzc0NTA2MTc5NmY3NTc0IC8vICJsYXN0UGF5b3V0IgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQocG9vbDFBcHBJRCkuZ2xvYmFsU3RhdGUoJ2xhc3RQYXlvdXQnKQoJYXNzZXJ0CglmcmFtZV9kaWcgMiAvLyBsYXN0UGF5b3V0VXBkYXRlOiB1aW50NjQKCT09CglieiAqaWYxM19lbmQKCgkvLyAqaWYxM19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzQ5CgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvOwoJaW50YyAxNCAvLyAgaGVhZE9mZnNldAoJaW50YyAxOSAvLyAyMDAKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWIgKnNldFRva2VuUGF5b3V0UmF0aW8qcmV0dXJuCgoqaWYxM19lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzUxCgkvLyBlcG9jaFJvdW5kTGVuZ3RoID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuZXBvY2hSb3VuZExlbmd0aCBhcyB1aW50NjQKCXB1c2hpbnQgMTY5CglpbnRjIDIwIC8vIDQKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyBlcG9jaFJvdW5kTGVuZ3RoOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzUyCgkvLyB0aGlzRXBvY2hCZWdpbiA9IGN1clJvdW5kIC0gKGN1clJvdW5kICUgZXBvY2hSb3VuZExlbmd0aCkKCWZyYW1lX2RpZyAxIC8vIGN1clJvdW5kOiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIGN1clJvdW5kOiB1aW50NjQKCWZyYW1lX2RpZyAzIC8vIGVwb2NoUm91bmRMZW5ndGg6IHVpbnQ2NAoJJQoJLQoJZnJhbWVfYnVyeSA0IC8vIHRoaXNFcG9jaEJlZ2luOiB1aW50NjQKCgkvLyAqaWYxNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NTQKCS8vIGxhc3RQYXlvdXRVcGRhdGUgLSAobGFzdFBheW91dFVwZGF0ZSAlIGVwb2NoUm91bmRMZW5ndGgpID09PSB0aGlzRXBvY2hCZWdpbgoJZnJhbWVfZGlnIDIgLy8gbGFzdFBheW91dFVwZGF0ZTogdWludDY0CglmcmFtZV9kaWcgMiAvLyBsYXN0UGF5b3V0VXBkYXRlOiB1aW50NjQKCWZyYW1lX2RpZyAzIC8vIGVwb2NoUm91bmRMZW5ndGg6IHVpbnQ2NAoJJQoJLQoJZnJhbWVfZGlnIDQgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJPT0KCWJ6ICppZjE0X2VuZAoKCS8vICppZjE0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NTUKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnRva2VuUGF5b3V0UmF0aW87CglpbnRjIDE0IC8vICBoZWFkT2Zmc2V0CglpbnRjIDE5IC8vIDIwMAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYiAqc2V0VG9rZW5QYXlvdXRSYXRpbypyZXR1cm4KCippZjE0X2VuZDoKCippZjEyX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NTgKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUudG9rZW5QYXlvdXRSYXRpby51cGRhdGVkRm9yUGF5b3V0ID0gY3VyUm91bmQKCWludGMgMzAgLy8gODkyCglmcmFtZV9kaWcgMSAvLyBjdXJSb3VuZDogdWludDY0CglpdG9iCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc2MAoJLy8gY3VyTnVtUG9vbHMgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnN0YXRlLm51bVBvb2xzIGFzIHVpbnQ2NAoJaW50YyA4IC8vIDI0MgoJaW50YyAxMCAvLyAyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDUgLy8gY3VyTnVtUG9vbHM6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NjEKCS8vIHRvdGFsU3Rha2VGb3JWYWxpZGF0b3IgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnN0YXRlLnRvdGFsQWxnb1N0YWtlZAoJaW50YyAxMiAvLyAyNTIKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDYgLy8gdG90YWxTdGFrZUZvclZhbGlkYXRvcjogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc2MgoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBjdXJOdW1Qb29sczsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgNyAvLyBpOiB1aW50NjQKCipmb3JfMjoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NjIKCS8vIGkgPCBjdXJOdW1Qb29scwoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglmcmFtZV9kaWcgNSAvLyBjdXJOdW1Qb29sczogdWludDY0Cgk8CglieiAqZm9yXzJfZW5kCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc2NwoJLy8gb3VyUG9vbFBjdE9mV2hvbGUgPSB3aWRlUmF0aW8oCgkvLyAgICAgICAgIFt0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzW2ldLnRvdGFsQWxnb1N0YWtlZCwgMV8wMDBfMDAwXSwKCS8vICAgICAgICAgW3RvdGFsU3Rha2VGb3JWYWxpZGF0b3JdCgkvLyAgICAgICApCglpbnRjIDYgLy8gIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyA3IC8vIGk6IHVpbnQ2NAoJaW50YyA1IC8vIDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludGMgMTEgLy8gIGhlYWRPZmZzZXQKCSsKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglwdXNoaW50IDFfMDAwXzAwMAoJbXVsdwoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyA2IC8vIHRvdGFsU3Rha2VGb3JWYWxpZGF0b3I6IHVpbnQ2NAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgOCAvLyBvdXJQb29sUGN0T2ZXaG9sZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc3MQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvLnBvb2xQY3RPZldob2xlW2ldID0gb3VyUG9vbFBjdE9mV2hvbGUKCWludGMgMTQgLy8gNzAwCglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWludGMgMiAvLyA4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWZyYW1lX2RpZyA4IC8vIG91clBvb2xQY3RPZldob2xlOiB1aW50NjQKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCipmb3JfMl9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NjIKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSA3IC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzIKCipmb3JfMl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzczCgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvOwoJaW50YyAxNCAvLyAgaGVhZE9mZnNldAoJaW50YyAxOSAvLyAyMDAKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCipzZXRUb2tlblBheW91dFJhdGlvKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDgKCXJldHN1YgoKLy8gc3Rha2VVcGRhdGVkVmlhUmV3YXJkcygodWludDY0LHVpbnQ2NCx1aW50NjQpLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfc3Rha2VVcGRhdGVkVmlhUmV3YXJkczoKCS8vIHNhdHVyYXRlZEJ1cm5Ub0ZlZVNpbms6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNQoJYnRvaQoKCS8vIHZhbGlkYXRvckNvbW1pc3Npb246IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJYnRvaQoKCS8vIHJld2FyZFRva2VuQW1vdW50UmVzZXJ2ZWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIGFsZ29Ub0FkZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gcG9vbEtleTogKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludGMgMyAvLyAyNAoJPT0KCgkvLyBhcmd1bWVudCA0IChwb29sS2V5KSBmb3Igc3Rha2VVcGRhdGVkVmlhUmV3YXJkcyBtdXN0IGJlIGEgKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzKCh1aW50NjQsdWludDY0LHVpbnQ2NCksdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgc3Rha2VVcGRhdGVkVmlhUmV3YXJkcwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gc3Rha2VVcGRhdGVkVmlhUmV3YXJkcyhwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5LCBhbGdvVG9BZGQ6IHVpbnQ2NCwgcmV3YXJkVG9rZW5BbW91bnRSZXNlcnZlZDogdWludDY0LCB2YWxpZGF0b3JDb21taXNzaW9uOiB1aW50NjQsIHNhdHVyYXRlZEJ1cm5Ub0ZlZVNpbms6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gc3Rha2VVcGRhdGVkVmlhUmV3YXJkcyBpcyBjYWxsZWQgYnkgU3Rha2luZyBwb29scyB0byBpbmZvcm0gdGhlIHZhbGlkYXRvciAodXMpIHRoYXQgYSBwYXJ0aWN1bGFyIGFtb3VudCBvZiB0b3RhbAovLyBzdGFrZSBoYXMgYmVlbiBhZGRlZCB0byB0aGUgc3BlY2lmaWVkIHBvb2wuICBUaGlzIGlzIHVzZWQgdG8gdXBkYXRlIHRoZSBzdGF0cyB3ZSBoYXZlIGluIG91ciBQb29sSW5mbyBzdG9yYWdlLgovLyBUaGUgY2FsbGluZyBBcHAgaWQgaXMgdmFsaWRhdGVkIGFnYWluc3Qgb3VyIHBvb2wgbGlzdCBhcyB3ZWxsLgovLyBAcGFyYW0ge1ZhbGlkYXRvclBvb2xLZXl9IHBvb2xLZXkgLSBWYWxpZGF0b3JQb29sS2V5IHR5cGUKLy8gQHBhcmFtIHt1aW50NjR9IGFsZ29Ub0FkZCAtIGFtb3VudCB0aGlzIHZhbGlkYXRvcidzIHRvdGFsIHN0YWtlIGluY3JlYXNlZCB2aWEgcmV3YXJkcwovLyBAcGFyYW0ge3VpbnQ2NH0gcmV3YXJkVG9rZW5BbW91bnRSZXNlcnZlZCAtIGFtb3VudCB0aGlzIHZhbGlkYXRvcidzIHRvdGFsIHN0YWtlIGluY3JlYXNlZCB2aWEgcmV3YXJkcyAodGhhdCBzaG91bGQgYmUKLy8gQHBhcmFtIHt1aW50NjR9IHZhbGlkYXRvckNvbW1pc3Npb24gLSB0aGUgY29tbWlzc2lvbiBhbW91bnQgdGhlIHZhbGlkYXRvciB3YXMgcGFpZCwgaWYgYW55Ci8vIEBwYXJhbSB7dWludDY0fSBzYXR1cmF0ZWRCdXJuVG9GZWVTaW5rIC0gaWYgdGhlIHBvb2wgd2FzIGluIHNhdHVyYXRlZCBzdGF0ZSwgdGhlIGFtb3VudCBzZW50IGJhY2sgdG8gdGhlIGZlZSBzaW5rLgovLyBzZWVuIGFzICdhY2NvdW50ZWQgZm9yL3BlbmRpbmcgc3BlbnQnKQpzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzOgoJcHJvdG8gNSAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc5NAoJLy8gdGhpcy52ZXJpZnlQb29sS2V5Q2FsbGVyKHBvb2xLZXkpCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJY2FsbHN1YiB2ZXJpZnlQb29sS2V5Q2FsbGVyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc5NwoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzW3Bvb2xLZXkucG9vbElkIC0gMV0udG90YWxBbGdvU3Rha2VkICs9IGFsZ29Ub0FkZAoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAxMSAvLyAgaGVhZE9mZnNldAoJKwoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAxMSAvLyAgaGVhZE9mZnNldAoJKwoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTIgLy8gYWxnb1RvQWRkOiB1aW50NjQKCSsKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc5OAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnRvdGFsQWxnb1N0YWtlZCArPSBhbGdvVG9BZGQKCWludGMgMTIgLy8gMjUyCglkdXAKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC0yIC8vIGFsZ29Ub0FkZDogdWludDY0CgkrCglpdG9iCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3OTkKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5zdGF0ZS5yZXdhcmRUb2tlbkhlbGRCYWNrICs9IHJld2FyZFRva2VuQW1vdW50UmVzZXJ2ZWQKCWludGMgMTMgLy8gMjYwCglkdXAKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC0zIC8vIHJld2FyZFRva2VuQW1vdW50UmVzZXJ2ZWQ6IHVpbnQ2NAoJKwoJaXRvYgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODAxCgkvLyB0aGlzLnRvdGFsQWxnb1N0YWtlZC52YWx1ZSArPSBhbGdvVG9BZGQKCWJ5dGVjIDQgLy8gICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0yIC8vIGFsZ29Ub0FkZDogdWludDY0CgkrCglieXRlYyA0IC8vICAic3Rha2VkIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODA0CgkvLyB0aGlzLnJldmVyaWZ5TkZET3duZXJzaGlwKHBvb2xLZXkuaWQpCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWNhbGxzdWIgcmV2ZXJpZnlORkRPd25lcnNoaXAKCXJldHN1YgoKLy8gc3Rha2VSZW1vdmVkKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYWRkcmVzcyx1aW50NjQsdWludDY0LGJvb2wpdm9pZAoqYWJpX3JvdXRlX3N0YWtlUmVtb3ZlZDoKCS8vIHN0YWtlclJlbW92ZWQ6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDUKCWR1cAoJbGVuCglpbnRjIDEgLy8gMQoJPT0KCgkvLyBhcmd1bWVudCAwIChzdGFrZXJSZW1vdmVkKSBmb3Igc3Rha2VSZW1vdmVkIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludGMgMCAvLyAwCglnZXRiaXQKCgkvLyByZXdhcmRSZW1vdmVkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDQKCWJ0b2kKCgkvLyBhbW91bnRSZW1vdmVkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMyAoc3Rha2VyKSBmb3Igc3Rha2VSZW1vdmVkIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBwb29sS2V5OiAodWludDY0LHVpbnQ2NCx1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50YyAzIC8vIDI0Cgk9PQoKCS8vIGFyZ3VtZW50IDQgKHBvb2xLZXkpIGZvciBzdGFrZVJlbW92ZWQgbXVzdCBiZSBhICh1aW50NjQsdWludDY0LHVpbnQ2NCkKCWFzc2VydAoKCS8vIGV4ZWN1dGUgc3Rha2VSZW1vdmVkKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYWRkcmVzcyx1aW50NjQsdWludDY0LGJvb2wpdm9pZAoJY2FsbHN1YiBzdGFrZVJlbW92ZWQKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHN0YWtlUmVtb3ZlZChwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5LCBzdGFrZXI6IEFkZHJlc3MsIGFtb3VudFJlbW92ZWQ6IHVpbnQ2NCwgcmV3YXJkUmVtb3ZlZDogdWludDY0LCBzdGFrZXJSZW1vdmVkOiBib29sZWFuKTogdm9pZAovLwovLyBzdGFrZVJlbW92ZWQgaXMgY2FsbGVkIGJ5IFN0YWtpbmcgcG9vbHMgdG8gaW5mb3JtIHRoZSB2YWxpZGF0b3IgKHVzKSB0aGF0IGEgcGFydGljdWxhciBhbW91bnQgb2YgdG90YWwgc3Rha2UgaGFzIGJlZW4gcmVtb3ZlZAovLyBmcm9tIHRoZSBzcGVjaWZpZWQgcG9vbC4gIFRoaXMgaXMgdXNlZCB0byB1cGRhdGUgdGhlIHN0YXRzIHdlIGhhdmUgaW4gb3VyIFBvb2xJbmZvIHN0b3JhZ2UuCi8vIElmIGFueSBhbW91bnQgb2YgcmV3YXJkUmVtb3ZlZCBpcyBzcGVjaWZpZWQsIHRoZW4gdGhhdCBhbW91bnQgb2YgcmV3YXJkIGlzIHNlbnQgdG8gdGhlIHVzZQovLyBUaGUgY2FsbGluZyBBcHAgaWQgaXMgdmFsaWRhdGVkIGFnYWluc3Qgb3VyIHBvb2wgbGlzdCBhcyB3ZWxsLgovLwovLyBAcGFyYW0ge1ZhbGlkYXRvclBvb2xLZXl9IHBvb2xLZXkgY2FsbGluZyB1cyBmcm9tIHdoaWNoIHN0YWtlIHdhcyByZW1vdmVkCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyCi8vIEBwYXJhbSB7dWludDY0fSBhbW91bnRSZW1vdmVkIC0gYWxnbyBhbW91bnQgcmVtb3ZlZAovLyBAcGFyYW0ge3VpbnQ2NH0gcmV3YXJkUmVtb3ZlZCAtIGlmIGFwcGxpY2FibGUsIGFtb3VudCBvZiB0b2tlbiByZXdhcmQgcmVtb3ZlZCAoYnkgcG9vbCAxIGNhbGxlcikgb3IgVE8gcmVtb3ZlIGFuZCBwYXkgb3V0ICh2aWEgcG9vbCAxIGZyb20gZGlmZmVyZW50IHBvb2wgY2FsbGVyKQovLyBAcGFyYW0ge2Jvb2xlYW59IHN0YWtlclJlbW92ZWQKc3Rha2VSZW1vdmVkOgoJcHJvdG8gNSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cG4gMwoKCS8vICppZjE1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjgzNgoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAzMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludGMgMjggLy8gMzAwCgk8CglieiAqaWYxNV9lbmQKCgkvLyAqaWYxNV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODM3CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnRjIDcgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZWMgOCAvLyAgI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50YyAyNiAvLyAgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMTVfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjgzOQoJLy8gdGhpcy52ZXJpZnlQb29sS2V5Q2FsbGVyKHBvb2xLZXkpCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJY2FsbHN1YiB2ZXJpZnlQb29sS2V5Q2FsbGVyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg0MwoJLy8gYXNzZXJ0KGFtb3VudFJlbW92ZWQgPiAwIHx8IHJld2FyZFJlbW92ZWQgPiAwLCAnc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGlmIGFsZ28gb3IgcmV3YXJkIHdhcyByZW1vdmVkJykKCWZyYW1lX2RpZyAtMyAvLyBhbW91bnRSZW1vdmVkOiB1aW50NjQKCWludGMgMCAvLyAwCgk+CglkdXAKCWJueiAqc2tpcF9vcjIKCWZyYW1lX2RpZyAtNCAvLyByZXdhcmRSZW1vdmVkOiB1aW50NjQKCWludGMgMCAvLyAwCgk+Cgl8fAoKKnNraXBfb3IyOgoJLy8gc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGlmIGFsZ28gb3IgcmV3YXJkIHdhcyByZW1vdmVkCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODQ2CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXS50b3RhbEFsZ29TdGFrZWQgLT0gYW1vdW50UmVtb3ZlZAoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAxMSAvLyAgaGVhZE9mZnNldAoJKwoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAxMSAvLyAgaGVhZE9mZnNldAoJKwoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTMgLy8gYW1vdW50UmVtb3ZlZDogdWludDY0CgktCglpdG9iCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NDcKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5zdGF0ZS50b3RhbEFsZ29TdGFrZWQgLT0gYW1vdW50UmVtb3ZlZAoJaW50YyAxMiAvLyAyNTIKCWR1cAoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTMgLy8gYW1vdW50UmVtb3ZlZDogdWludDY0CgktCglpdG9iCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NDgKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlIC09IGFtb3VudFJlbW92ZWQKCWJ5dGVjIDQgLy8gICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFJlbW92ZWQ6IHVpbnQ2NAoJLQoJYnl0ZWMgNCAvLyAgInN0YWtlZCIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gKmlmMTZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODUwCgkvLyByZXdhcmRSZW1vdmVkID4gMAoJZnJhbWVfZGlnIC00IC8vIHJld2FyZFJlbW92ZWQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT4KCWJ6ICppZjE2X2Vsc2UKCgkvLyAqaWYxNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODUxCgkvLyByZXdhcmRUb2tlbklEID0gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLmNvbmZpZy5yZXdhcmRUb2tlbklkCglpbnRjIDM3IC8vIDE1MwoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDAgLy8gcmV3YXJkVG9rZW5JRDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg1MgoJLy8gYXNzZXJ0KHJld2FyZFRva2VuSUQgIT09IDAsICJyZXdhcmRSZW1vdmVkIGNhbid0IGJlIHNldCBpZiB2YWxpZGF0b3IgZG9lc24ndCBoYXZlIHJld2FyZCB0b2tlbiEiKQoJZnJhbWVfZGlnIDAgLy8gcmV3YXJkVG9rZW5JRDogdWludDY0CglpbnRjIDAgLy8gMAoJIT0KCgkvLyByZXdhcmRSZW1vdmVkIGNhbid0IGJlIHNldCBpZiB2YWxpZGF0b3IgZG9lc24ndCBoYXZlIHJld2FyZCB0b2tlbiEKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NTMKCS8vIGFzc2VydCgKCS8vICAgICAgICAgdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnJld2FyZFRva2VuSGVsZEJhY2sgPj0gcmV3YXJkUmVtb3ZlZCwKCS8vICAgICAgICAgJ3Jld2FyZCBiZWluZyByZW1vdmVkIG11c3QgYmUgY292ZXJlZCBieSBob2xkIGJhY2sgYW1vdW50JwoJLy8gICAgICAgKQoJaW50YyAxMyAvLyAyNjAKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC00IC8vIHJld2FyZFJlbW92ZWQ6IHVpbnQ2NAoJPj0KCgkvLyByZXdhcmQgYmVpbmcgcmVtb3ZlZCBtdXN0IGJlIGNvdmVyZWQgYnkgaG9sZCBiYWNrIGFtb3VudAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg1OQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnJld2FyZFRva2VuSGVsZEJhY2sgLT0gcmV3YXJkUmVtb3ZlZAoJaW50YyAxMyAvLyAyNjAKCWR1cAoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTQgLy8gcmV3YXJkUmVtb3ZlZDogdWludDY0CgktCglpdG9iCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vICppZjE3X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg2NAoJLy8gcG9vbEtleS5wb29sSWQgIT09IDEKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50YyAxIC8vIDEKCSE9CglieiAqaWYxN19lbmQKCgkvLyAqaWYxN19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODY1CgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgU3Rha2luZ1Bvb2wucHJvdG90eXBlLnBheVRva2VuUmV3YXJkPih7CgkvLyAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbMF0ucG9vbEFwcElkKSwKCS8vICAgICAgICAgICBtZXRob2RBcmdzOiBbc3Rha2VyLCByZXdhcmRUb2tlbklELCByZXdhcmRSZW1vdmVkXSwKCS8vICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZWMgMTQgLy8gIG1ldGhvZCAicGF5VG9rZW5SZXdhcmQoYWRkcmVzcyx1aW50NjQsdWludDY0KXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NjYKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzWzBdLnBvb2xBcHBJZCkKCWludGMgNiAvLyAyNjgKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg2NwoJLy8gbWV0aG9kQXJnczogW3N0YWtlciwgcmV3YXJkVG9rZW5JRCwgcmV3YXJkUmVtb3ZlZF0KCWZyYW1lX2RpZyAtMiAvLyBzdGFrZXI6IEFkZHJlc3MKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMCAvLyByZXdhcmRUb2tlbklEOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTQgLy8gcmV3YXJkUmVtb3ZlZDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCippZjE3X2VuZDoKCWIgKmlmMTZfZW5kCgoqaWYxNl9lbHNlOgoKKmlmMTZfZW5kOgoJLy8gKmlmMThfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODkyCgkvLyBzdGFrZXJSZW1vdmVkCglmcmFtZV9kaWcgLTUgLy8gc3Rha2VyUmVtb3ZlZDogYm9vbGVhbgoJYnogKmlmMThfZW5kCgoJLy8gKmlmMThfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg5NAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzW3Bvb2xLZXkucG9vbElkIC0gMV0udG90YWxTdGFrZXJzIC09IDEKCWludGMgNiAvLyAgaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnRjIDEgLy8gMQoJLQoJaW50YyA1IC8vIDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludGMgMiAvLyAgaGVhZE9mZnNldAoJKwoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAyIC8vICBoZWFkT2Zmc2V0CgkrCglpbnRjIDEwIC8vIDIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglpbnRjIDEgLy8gMQoJLQoJaXRvYgoJZXh0cmFjdCA2IDIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg5NgoJLy8gcmVtb3ZlUmV0ID0gdGhpcy5yZW1vdmVGcm9tU3Rha2VyUG9vbFNldChzdGFrZXIsIDxWYWxpZGF0b3JQb29sS2V5PnsKCS8vICAgICAgICAgaWQ6IHBvb2xLZXkuaWQsCgkvLyAgICAgICAgIHBvb2xJZDogcG9vbEtleS5wb29sSWQsCgkvLyAgICAgICAgIHBvb2xBcHBJZDogcG9vbEtleS5wb29sQXBwSWQsCgkvLyAgICAgICB9KQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJaXRvYgoJY29uY2F0CglmcmFtZV9kaWcgLTIgLy8gc3Rha2VyOiBBZGRyZXNzCgljYWxsc3ViIHJlbW92ZUZyb21TdGFrZXJQb29sU2V0CglmcmFtZV9idXJ5IDEgLy8gcmVtb3ZlUmV0OiAoYm9vbCxib29sKQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5MDEKCS8vIHN0YWtlck91dE9mVGhpc1ZhbGlkYXRvciA9IHJlbW92ZVJldFswXQoJZnJhbWVfZGlnIDEgLy8gcmVtb3ZlUmV0OiAoYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludGMgMCAvLyAwCglnZXRiaXQKCWZyYW1lX2J1cnkgMiAvLyBzdGFrZXJPdXRPZlRoaXNWYWxpZGF0b3I6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTAyCgkvLyBzdGFrZXJPdXRPZlByb3RvY29sID0gcmVtb3ZlUmV0WzFdCglmcmFtZV9kaWcgMSAvLyByZW1vdmVSZXQ6IChib29sLGJvb2wpCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50YyAxIC8vIDEKCWdldGJpdAoJZnJhbWVfYnVyeSAzIC8vIHN0YWtlck91dE9mUHJvdG9jb2w6IGJvb2wKCgkvLyAqaWYxOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5MDQKCS8vIHN0YWtlck91dE9mVGhpc1ZhbGlkYXRvcgoJZnJhbWVfZGlnIDIgLy8gc3Rha2VyT3V0T2ZUaGlzVmFsaWRhdG9yOiBib29sCglieiAqaWYxOV9lbmQKCgkvLyAqaWYxOV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTA1CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUuc3RhdGUudG90YWxTdGFrZXJzIC09IDEKCWludGMgMjMgLy8gMjQ0CglkdXAKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJaW50YyAxIC8vIDEKCS0KCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoqaWYxOV9lbmQ6CgkvLyAqaWYyMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5MDgKCS8vIHN0YWtlck91dE9mUHJvdG9jb2wKCWZyYW1lX2RpZyAzIC8vIHN0YWtlck91dE9mUHJvdG9jb2w6IGJvb2wKCWJ6ICppZjIwX2VuZAoKCS8vICppZjIwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5MDkKCS8vIHRoaXMubnVtU3Rha2Vycy52YWx1ZSAtPSAxCglieXRlYyA3IC8vICAibnVtU3Rha2VycyIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJLQoJYnl0ZWMgNyAvLyAgIm51bVN0YWtlcnMiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKKmlmMjBfZW5kOgoKKmlmMThfZW5kOgoJcmV0c3ViCgovLyBmaW5kUG9vbEZvclN0YWtlcih1aW50NjQsYWRkcmVzcyx1aW50NjQpKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoqYWJpX3JvdXRlX2ZpbmRQb29sRm9yU3Rha2VyOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyBhbW91bnRUb1N0YWtlOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMSAoc3Rha2VyKSBmb3IgZmluZFBvb2xGb3JTdGFrZXIgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGZpbmRQb29sRm9yU3Rha2VyKHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCkoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCgljYWxsc3ViIGZpbmRQb29sRm9yU3Rha2VyCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZmluZFBvb2xGb3JTdGFrZXIodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgc3Rha2VyOiBBZGRyZXNzLCBhbW91bnRUb1N0YWtlOiB1aW50NjQpOiBbVmFsaWRhdG9yUG9vbEtleSwgYm9vbGVhbiwgYm9vbGVhbl0KLy8KLy8gRmluZHMgdGhlIHBvb2wgZm9yIGEgc3Rha2VyIGJhc2VkIG9uIHRoZSBwcm92aWRlZCB2YWxpZGF0b3IgaWQsIHN0YWtlciBhZGRyZXNzLCBhbmQgYW1vdW50IHRvIHN0YWtlLgovLyBGaXJzdCBjaGVja3MgdGhlIHN0YWtlcnMgJ2FscmVhZHkgc3Rha2VkIGxpc3QnIGZvciB0aGUgdmFsaWRhdG9yIHByZWZlcnJpbmcgdGhvc2UgKGFkZGluZyBpZiBwb3NzaWJsZSkgdGhlbiBhZGRzCi8vIHRvIG5ldyBwb29sIGlmIG5lY2Vzc2FyeS4KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHN0YWtlci4KLy8gQHBhcmFtIHt1aW50NjR9IGFtb3VudFRvU3Rha2UgLSBUaGUgYW1vdW50IHRvIHN0YWtlLgovLyBAcmV0dXJucyB7VmFsaWRhdG9yUG9vbEtleSwgYm9vbGVhbiwgYm9vbGVhbn0gLSBUaGUgcG9vbCBmb3IgdGhlIHN0YWtlciwgdHJ1ZS9mYWxzZSBvbiB3aGV0aGVyIHRoZSBzdGFrZXIgaXMgJ25ldycKLy8gdG8gdGhpcyBWQUxJREFUT1IsIGFuZCB0cnVlL2ZhbHNlIGlmIHN0YWtlciBpcyBuZXcgdG8gdGhlIHByb3RvY29sLgpmaW5kUG9vbEZvclN0YWtlcjoKCXByb3RvIDMgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAxIC8vIDB4CglkdXBuIDcKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTMwCgkvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yID0gdHJ1ZQoJaW50YyAxIC8vIDEKCWZyYW1lX2J1cnkgMCAvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjkzMQoJLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sID0gdHJ1ZQoJaW50YyAxIC8vIDEKCWZyYW1lX2J1cnkgMSAvLyBpc05ld1N0YWtlclRvUHJvdG9jb2w6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTM5CgkvLyBtYXhQZXJQb29sID0gdGhpcy5nZXRDdXJNYXhTdGFrZVBlclBvb2wodmFsaWRhdG9ySWQpCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJY2FsbHN1YiBnZXRDdXJNYXhTdGFrZVBlclBvb2wKCWZyYW1lX2J1cnkgMiAvLyBtYXhQZXJQb29sOiB1aW50NjQKCgkvLyAqaWYyMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NDIKCS8vIHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLmV4aXN0cwoJYnl0ZWMgMyAvLyAgInNwcyIKCWZyYW1lX2RpZyAtMiAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCglieiAqaWYyMV9lbmQKCgkvLyAqaWYyMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTQzCgkvLyBwb29sU2V0ID0gY2xvbmUodGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUpCglieXRlYyAzIC8vICAic3BzIgoJZnJhbWVfZGlnIC0yIC8vIHN0YWtlcjogQWRkcmVzcwoJY29uY2F0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZQoJYXNzZXJ0CglmcmFtZV9idXJ5IDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NDQKCS8vIGFzc2VydCh2YWxpZGF0b3JJZCAhPT0gMCkKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpbnRjIDAgLy8gMAoJIT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NDUKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgcG9vbFNldC5sZW5ndGg7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDQgLy8gaTogdWludDY0CgoqZm9yXzM6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTQ1CgkvLyBpIDwgcG9vbFNldC5sZW5ndGgKCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50YyA3IC8vIDYKCTwKCWJ6ICpmb3JfM19lbmQKCgkvLyAqaWYyMl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NDYKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgMzAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglpbnRjIDI4IC8vIDMwMAoJPAoJYnogKmlmMjJfZW5kCgoJLy8gKmlmMjJfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0NwoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGVjIDggLy8gICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludGMgMjYgLy8gIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjIyX2VuZDoKCS8vICppZjIzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0OQoJLy8gcG9vbFNldFtpXS5pZCA9PT0gMAoJZnJhbWVfZGlnIDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAwIC8vIDAKCSsKCWludGMgMiAvLyA4CglleHRyYWN0MwoJYnRvaQoJaW50YyAwIC8vIDAKCT09CglieiAqaWYyM19lbmQKCgkvLyAqaWYyM19jb25zZXF1ZW50CgliICpmb3JfM19jb250aW51ZQoKKmlmMjNfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk1MgoJLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sID0gZmFsc2UKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDEgLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sOiBib29sCgoJLy8gKmlmMjRfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTUzCgkvLyBwb29sU2V0W2ldLmlkID09PSB2YWxpZGF0b3JJZAoJZnJhbWVfZGlnIDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAwIC8vIDAKCSsKCWludGMgMiAvLyA4CglleHRyYWN0MwoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCT09CglieiAqaWYyNF9lbmQKCgkvLyAqaWYyNF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTU1CgkvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yID0gZmFsc2UKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDAgLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbAoKCS8vICppZjI1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk1NwoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5wb29sc1twb29sU2V0W2ldLnBvb2xJZCAtIDFdLnRvdGFsQWxnb1N0YWtlZCArIGFtb3VudFRvU3Rha2UgPD0KCS8vICAgICAgICAgICAgIG1heFBlclBvb2wKCWludGMgNiAvLyAgaGVhZE9mZnNldAoJZnJhbWVfZGlnIDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAyIC8vICBoZWFkT2Zmc2V0CgkrCglpbnRjIDIgLy8gOAoJZXh0cmFjdDMKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAxMSAvLyAgaGVhZE9mZnNldAoJKwoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMyAvLyBhbW91bnRUb1N0YWtlOiB1aW50NjQKCSsKCWZyYW1lX2RpZyAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoJPD0KCWJ6ICppZjI1X2VuZAoKCS8vICppZjI1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NjAKCS8vIHJldHVybiBbcG9vbFNldFtpXSwgaXNOZXdTdGFrZXJUb1ZhbGlkYXRvciwgaXNOZXdTdGFrZXJUb1Byb3RvY29sXTsKCWZyYW1lX2RpZyAzIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMyAvLyAyNAoJZXh0cmFjdDMKCWJ5dGVjIDUgLy8gMHgwMAoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyAwIC8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2wKCXNldGJpdAoJaW50YyAxIC8vIDEKCWZyYW1lX2RpZyAxIC8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbAoJc2V0Yml0Cgljb25jYXQKCWIgKmZpbmRQb29sRm9yU3Rha2VyKnJldHVybgoKKmlmMjVfZW5kOgoKKmlmMjRfZW5kOgoKKmZvcl8zX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0NQoJLy8gaSArPSAxCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDQgLy8gaTogdWludDY0CgliICpmb3JfMwoKKmZvcl8zX2VuZDoKCippZjIxX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NjcKCS8vIGFzc2VydCgKCS8vICAgICAgIGFtb3VudFRvU3Rha2UgPj0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubWluRW50cnlTdGFrZSwKCS8vICAgICAgICdtdXN0IHN0YWtlIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGZvciB0aGlzIHBvb2wnCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFRvU3Rha2U6IHVpbnQ2NAoJaW50YyAzOCAvLyAyMDkKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCgk+PQoKCS8vIG11c3Qgc3Rha2UgYXQgbGVhc3QgdGhlIG1pbmltdW0gZm9yIHRoaXMgcG9vbAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk3MwoJLy8gcG9vbHMgPSBjbG9uZSh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzKQoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglpbnRjIDI5IC8vIDQzMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSA1IC8vIHBvb2xzOiAodWludDY0LHVpbnQxNix1aW50NjQpWzI0XQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NzQKCS8vIGN1ck51bVBvb2xzID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZS5udW1Qb29scyBhcyB1aW50NjQKCWludGMgOCAvLyAyNDIKCWludGMgMTAgLy8gMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSA2IC8vIGN1ck51bVBvb2xzOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTc1CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IGN1ck51bVBvb2xzOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSA3IC8vIGk6IHVpbnQ2NAoKKmZvcl80OgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk3NQoJLy8gaSA8IGN1ck51bVBvb2xzCglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyA2IC8vIGN1ck51bVBvb2xzOiB1aW50NjQKCTwKCWJ6ICpmb3JfNF9lbmQKCgkvLyAqaWYyNl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NzYKCS8vIHBvb2xzW2ldLnRvdGFsQWxnb1N0YWtlZCArIGFtb3VudFRvU3Rha2UgPD0gbWF4UGVyUG9vbAoJZnJhbWVfZGlnIDUgLy8gcG9vbHM6ICh1aW50NjQsdWludDE2LHVpbnQ2NClbMjRdCglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWludGMgNSAvLyAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDExIC8vICBoZWFkT2Zmc2V0CgkrCglpbnRjIDIgLy8gOAoJZXh0cmFjdDMKCWJ0b2kKCWZyYW1lX2RpZyAtMyAvLyBhbW91bnRUb1N0YWtlOiB1aW50NjQKCSsKCWZyYW1lX2RpZyAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoJPD0KCWJ6ICppZjI2X2VuZAoKCS8vICppZjI2X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NzcKCS8vIHJldHVybiBbCgkvLyAgICAgICAgICAgeyBpZDogdmFsaWRhdG9ySWQsIHBvb2xJZDogaSArIDEsIHBvb2xBcHBJZDogcG9vbHNbaV0ucG9vbEFwcElkIH0sCgkvLyAgICAgICAgICAgaXNOZXdTdGFrZXJUb1ZhbGlkYXRvciwKCS8vICAgICAgICAgICBpc05ld1N0YWtlclRvUHJvdG9jb2wsCgkvLyAgICAgICAgIF07CglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJaXRvYgoJY29uY2F0CglmcmFtZV9kaWcgNSAvLyBwb29sczogKHVpbnQ2NCx1aW50MTYsdWludDY0KVsyNF0KCWZyYW1lX2RpZyA3IC8vIGk6IHVpbnQ2NAoJaW50YyA1IC8vIDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMCAvLyAwCgkrCglpbnRjIDIgLy8gOAoJZXh0cmFjdDMKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJYnl0ZWMgNSAvLyAweDAwCglpbnRjIDAgLy8gMAoJZnJhbWVfZGlnIDAgLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbAoJc2V0Yml0CglpbnRjIDEgLy8gMQoJZnJhbWVfZGlnIDEgLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sOiBib29sCglzZXRiaXQKCWNvbmNhdAoJYiAqZmluZFBvb2xGb3JTdGFrZXIqcmV0dXJuCgoqaWYyNl9lbmQ6CgoqZm9yXzRfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTc1CgkvLyBpICs9IDEKCWZyYW1lX2RpZyA3IC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgNyAvLyBpOiB1aW50NjQKCWIgKmZvcl80CgoqZm9yXzRfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk4NQoJLy8gcmV0dXJuIFt7IGlkOiB2YWxpZGF0b3JJZCwgcG9vbElkOiAwLCBwb29sQXBwSWQ6IDAgfSwgaXNOZXdTdGFrZXJUb1ZhbGlkYXRvciwgaXNOZXdTdGFrZXJUb1Byb3RvY29sXTsKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCglieXRlYyAxMCAvLyAweDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJYnl0ZWMgMTAgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWJ5dGVjIDUgLy8gMHgwMAoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyAwIC8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2wKCXNldGJpdAoJaW50YyAxIC8vIDEKCWZyYW1lX2RpZyAxIC8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbAoJc2V0Yml0Cgljb25jYXQKCipmaW5kUG9vbEZvclN0YWtlcipyZXR1cm46CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA3CglyZXRzdWIKCi8vIG1vdmVQb29sVG9Ob2RlKHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9tb3ZlUG9vbFRvTm9kZToKCS8vIG5vZGVOdW06IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIHBvb2xBcHBJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgbW92ZVBvb2xUb05vZGUodWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBtb3ZlUG9vbFRvTm9kZQoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gbW92ZVBvb2xUb05vZGUodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgcG9vbEFwcElkOiB1aW50NjQsIG5vZGVOdW06IHVpbnQ2NCk6IHZvaWQKLy8KLy8gRmluZCB0aGUgc3BlY2lmaWVkIHBvb2wgKGluIGFueSBub2RlIG51bWJlcikgYW5kIG1vdmUgaXQgdG8gdGhlIHNwZWNpZmllZCBub2RlLgovLyBUaGUgcG9vbCBhY2NvdW50IGlzIGZvcmNlZCBvZmZsaW5lIGlmIG1vdmVkIHNvIHByaW9yIG5vZGUgd2lsbCBzdGlsbCBydW4gZm9yIDMyMCByb3VuZHMgYnV0Ci8vIG5ldyBrZXkgZ29lcyBvbmxpbmUgb24gbmV3IG5vZGUgc29vbiBhZnRlciAoMzIwIHJvdW5kcyBhZnRlciBpdCBnb2VzIG9ubGluZSkKLy8gTm8tb3AgaWYgc3VjY2VzcywgYXNzZXJ0cyBpZiBub3QgZm91bmQgb3IgY2FuJ3QgbW92ZSAgKG5vIHNwYWNlIGluIHRhcmdldCkKLy8gWyBPTkxZIE9XTkVSIE9SIE1BTkFHRVIgQ0FOIENIQU5HRSBdCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yLgovLyBAcGFyYW0ge3VpbnQ2NH0gcG9vbEFwcElkCi8vIEBwYXJhbSB7dWludDY0fSBub2RlTnVtCm1vdmVQb29sVG9Ob2RlOgoJcHJvdG8gMyAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDAxCgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm93bmVyIHx8CgkvLyAgICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubWFuYWdlciwKCS8vICAgICAgICdjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3InCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJaW50YyAyIC8vIDgKCWludGMgNCAvLyAzMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCWR1cAoJYm56ICpza2lwX29yMwoJdHhuIFNlbmRlcgoJaW50YyAxOCAvLyA0MAoJaW50YyA0IC8vIDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoJfHwKCipza2lwX29yMzoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMDcKCS8vIG5vZGVQb29sQXNzaWdubWVudHMgPSBjbG9uZSh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLm5vZGVQb29sQXNzaWdubWVudHMpCglpbnRjIDE3IC8vICBoZWFkT2Zmc2V0CglpbnRjIDIyIC8vIDE5MgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAwIC8vIG5vZGVQb29sQXNzaWdubWVudHM6ICgodWludDY0WzNdKVs4XSkKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTAwOAoJLy8gYXNzZXJ0KG5vZGVOdW0gPj0gMSAmJiBub2RlTnVtIDw9IE1BWF9OT0RFUywgJ25vZGUgbnVtYmVyIG91dCBvZiBhbGxvd2FibGUgcmFuZ2UnKQoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJaW50YyAxIC8vIDEKCT49CglkdXAKCWJ6ICpza2lwX2FuZDEKCWZyYW1lX2RpZyAtMyAvLyBub2RlTnVtOiB1aW50NjQKCWludGMgMiAvLyA4Cgk8PQoJJiYKCipza2lwX2FuZDE6CgkvLyBub2RlIG51bWJlciBvdXQgb2YgYWxsb3dhYmxlIHJhbmdlCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTAxMAoJLy8gZm9yIChsZXQgc3JjTm9kZUlkeCA9IDA7IHNyY05vZGVJZHggPCBNQVhfTk9ERVM7IHNyY05vZGVJZHggKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDEgLy8gc3JjTm9kZUlkeDogdWludDY0CgoqZm9yXzU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTAxMAoJLy8gc3JjTm9kZUlkeCA8IE1BWF9OT0RFUwoJZnJhbWVfZGlnIDEgLy8gc3JjTm9kZUlkeDogdWludDY0CglpbnRjIDIgLy8gOAoJPAoJYnogKmZvcl81X2VuZAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDExCgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IE1BWF9QT09MU19QRVJfTk9ERTsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCipmb3JfNjoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDExCgkvLyBpIDwgTUFYX1BPT0xTX1BFUl9OT0RFCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgOSAvLyAzCgk8CglieiAqZm9yXzZfZW5kCgoJLy8gKmlmMjdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTAxMgoJLy8gbm9kZVBvb2xBc3NpZ25tZW50cy5ub2Rlc1tzcmNOb2RlSWR4XS5wb29sQXBwSWRzW2ldID09PSBwb29sQXBwSWQKCWZyYW1lX2RpZyAwIC8vIG5vZGVQb29sQXNzaWdubWVudHM6ICgodWludDY0WzNdKVs4XSkKCWludGMgMCAvLyAwCglmcmFtZV9kaWcgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDAgLy8gMAoJKwoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDIgLy8gOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDIgLy8gOAoJZXh0cmFjdDMKCWJ0b2kKCWZyYW1lX2RpZyAtMiAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoJPT0KCWJ6ICppZjI3X2VuZAoKCS8vICppZjI3X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDEzCgkvLyBhc3NlcnQobm9kZU51bSAtIDEgIT09IHNyY05vZGVJZHgsICJjYW4ndCBtb3ZlIHRvIHNhbWUgbm9kZSIpCglmcmFtZV9kaWcgLTMgLy8gbm9kZU51bTogdWludDY0CglpbnRjIDEgLy8gMQoJLQoJZnJhbWVfZGlnIDEgLy8gc3JjTm9kZUlkeDogdWludDY0CgkhPQoKCS8vIGNhbid0IG1vdmUgdG8gc2FtZSBub2RlCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTAxNQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5ub2RlUG9vbEFzc2lnbm1lbnRzLm5vZGVzW3NyY05vZGVJZHhdLnBvb2xBcHBJZHNbaV0gPSAwCglpbnRjIDE3IC8vIDkwMAoJZnJhbWVfZGlnIDEgLy8gc3JjTm9kZUlkeDogdWludDY0CglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAwIC8vIDAKCSsKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAyIC8vIDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJYnl0ZWMgMTAgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTgKCS8vIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBTdGFraW5nUG9vbC5wcm90b3R5cGUuZ29PZmZsaW5lPih7CgkvLyAgICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCksCgkvLyAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJcHVzaGJ5dGVzIDB4NTFlZjNiMjEgLy8gbWV0aG9kICJnb09mZmxpbmUoKXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDE5CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkKCWZyYW1lX2RpZyAtMiAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDIzCgkvLyB0aGlzLmFkZFBvb2xUb05vZGUodmFsaWRhdG9ySWQsIHBvb2xBcHBJZCwgbm9kZU51bSkKCWZyYW1lX2RpZyAtMyAvLyBub2RlTnVtOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWNhbGxzdWIgYWRkUG9vbFRvTm9kZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDI0CgkvLyByZXR1cm47CglyZXRzdWIKCippZjI3X2VuZDoKCipmb3JfNl9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDExCgkvLyBpICs9IDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl82CgoqZm9yXzZfZW5kOgoKKmZvcl81X2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTAKCS8vIHNyY05vZGVJZHggKz0gMQoJZnJhbWVfZGlnIDEgLy8gc3JjTm9kZUlkeDogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAxIC8vIHNyY05vZGVJZHg6IHVpbnQ2NAoJYiAqZm9yXzUKCipmb3JfNV9lbmQ6CgkvLyBjb3VsZG4ndCBmaW5kIHBvb2wgYXBwIGlkIGluIG5vZGVzIHRvIG1vdmUKCWVycgoJcmV0c3ViCgovLyBlbXB0eVRva2VuUmV3YXJkcyh1aW50NjQsYWRkcmVzcyl1aW50NjQKKmFiaV9yb3V0ZV9lbXB0eVRva2VuUmV3YXJkczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMiAvLyAweDE1MWY3Yzc1CgoJLy8gcmVjZWl2ZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMCAocmVjZWl2ZXIpIGZvciBlbXB0eVRva2VuUmV3YXJkcyBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZW1wdHlUb2tlblJld2FyZHModWludDY0LGFkZHJlc3MpdWludDY0CgljYWxsc3ViIGVtcHR5VG9rZW5SZXdhcmRzCglpdG9iCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZW1wdHlUb2tlblJld2FyZHModmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgcmVjZWl2ZXI6IEFkZHJlc3MpOiB1aW50NjQKLy8KLy8gU2VuZHMgdGhlIHJld2FyZCB0b2tlbnMgaGVsZCBpbiBwb29sIDEgdG8gc3BlY2lmaWVkIHJlY2VpdmVyLgovLyBUaGlzIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgYnkgdGhlIG93bmVyIHdoZW4gdGhleSB3YW50IHRvIGdldCByZXdhcmQgdG9rZW5zICdiYWNrJyB3aGljaCB0aGV5IHNlbnQgdG8KLy8gdGhlIGZpcnN0IHBvb2wgKGxpa2VseSBiZWNhdXNlIHZhbGlkYXRvciBpcyBzdW5zZXR0aW5nLiAgQW55IHRva2VucyBjdXJyZW50bHkgJ3Jlc2VydmVkJyBmb3Igc3Rha2VycyB0byBjbGFpbSB3aWxsCi8vIE5PVCBiZSBzZW50IGFzIHRoZXkgbXVzdCBiZSBoZWxkIGJhY2sgZm9yIHN0YWtlcnMgdG8gbGF0ZXIgY2xhaW0uCi8vIFsgT05MWSBPV05FUiBDQU4gQ0FMTF0KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7QWRkcmVzc30gcmVjZWl2ZXIgLSB0aGUgYWNjb3VudCB0byBzZW5kIHRoZSB0b2tlbnMgdG8gKG11c3QgYWxyZWFkeSBiZSBvcHRlZC1pbiB0byB0aGUgcmV3YXJkIHRva2VuKQovLyBAcmV0dXJucyB7dWludDY0fSB0aGUgYW1vdW50IG9mIHJld2FyZCB0b2tlbiBzZW50CmVtcHR5VG9rZW5SZXdhcmRzOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cG4gMwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDQzCgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm93bmVyLAoJLy8gICAgICAgJ2NhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXInCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJaW50YyAyIC8vIDgKCWludGMgNCAvLyAzMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTA0NwoJLy8gcmV3YXJkVG9rZW5JZCA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLnJld2FyZFRva2VuSWQKCWludGMgMzcgLy8gMTUzCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAwIC8vIHJld2FyZFRva2VuSWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDQ4CgkvLyByZXdhcmRUb2tlbkhlbGRCYWNrID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZS5yZXdhcmRUb2tlbkhlbGRCYWNrCglpbnRjIDEzIC8vIDI2MAoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMSAvLyByZXdhcmRUb2tlbkhlbGRCYWNrOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTA0OQoJLy8gYXNzZXJ0KHJld2FyZFRva2VuSWQgIT09IDAsICJ0aGlzIHZhbGlkYXRvciBkb2Vzbid0IGhhdmUgYSByZXdhcmQgdG9rZW4gZGVmaW5lZCIpCglmcmFtZV9kaWcgMCAvLyByZXdhcmRUb2tlbklkOiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoKCS8vIHRoaXMgdmFsaWRhdG9yIGRvZXNuJ3QgaGF2ZSBhIHJld2FyZCB0b2tlbiBkZWZpbmVkCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTA1MAoJLy8gcG9vbE9uZUFwcElkID0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzWzBdLnBvb2xBcHBJZCkKCWludGMgNiAvLyAyNjgKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDIgLy8gcG9vbE9uZUFwcElkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTA1MgoJLy8gdG9rZW5SZXdhcmRCYWwgPSBwb29sT25lQXBwSWQuYWRkcmVzcy5hc3NldEJhbGFuY2UoQXNzZXRJRC5mcm9tVWludDY0KHJld2FyZFRva2VuSWQpKSAtIHJld2FyZFRva2VuSGVsZEJhY2sKCWZyYW1lX2RpZyAyIC8vIHBvb2xPbmVBcHBJZDogdWludDY0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCWZyYW1lX2RpZyAwIC8vIHJld2FyZFRva2VuSWQ6IHVpbnQ2NAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAxIC8vIHJld2FyZFRva2VuSGVsZEJhY2s6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAzIC8vIHRva2VuUmV3YXJkQmFsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTA1NQoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFN0YWtpbmdQb29sLnByb3RvdHlwZS5wYXlUb2tlblJld2FyZD4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogcG9vbE9uZUFwcElkLAoJLy8gICAgICAgbWV0aG9kQXJnczogW3JlY2VpdmVyLCByZXdhcmRUb2tlbklkLCB0b2tlblJld2FyZEJhbF0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZWMgMTQgLy8gIG1ldGhvZCAicGF5VG9rZW5SZXdhcmQoYWRkcmVzcyx1aW50NjQsdWludDY0KXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDU2CgkvLyBhcHBsaWNhdGlvbklEOiBwb29sT25lQXBwSWQKCWZyYW1lX2RpZyAyIC8vIHBvb2xPbmVBcHBJZDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTA1NwoJLy8gbWV0aG9kQXJnczogW3JlY2VpdmVyLCByZXdhcmRUb2tlbklkLCB0b2tlblJld2FyZEJhbF0KCWZyYW1lX2RpZyAtMiAvLyByZWNlaXZlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAwIC8vIHJld2FyZFRva2VuSWQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAzIC8vIHRva2VuUmV3YXJkQmFsOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDU5CgkvLyBhc3NlcnQoCgkvLyAgICAgICBwb29sT25lQXBwSWQuYWRkcmVzcy5hc3NldEJhbGFuY2UoQXNzZXRJRC5mcm9tVWludDY0KHJld2FyZFRva2VuSWQpKSA9PT0gcmV3YXJkVG9rZW5IZWxkQmFjaywKCS8vICAgICAgICdiYWxhbmNlIG9mIHJlbWFpbmluZyByZXdhcmQgdG9rZW5zIHNob3VsZCBtYXRjaCB0aGUgaGVsZCBiYWNrIGFtb3VudCcKCS8vICAgICApCglmcmFtZV9kaWcgMiAvLyBwb29sT25lQXBwSWQ6IHVpbnQ2NAoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCglmcmFtZV9kaWcgMCAvLyByZXdhcmRUb2tlbklkOiB1aW50NjQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgMSAvLyByZXdhcmRUb2tlbkhlbGRCYWNrOiB1aW50NjQKCT09CgoJLy8gYmFsYW5jZSBvZiByZW1haW5pbmcgcmV3YXJkIHRva2VucyBzaG91bGQgbWF0Y2ggdGhlIGhlbGQgYmFjayBhbW91bnQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDYzCgkvLyByZXR1cm4gdG9rZW5SZXdhcmRCYWw7CglmcmFtZV9kaWcgMyAvLyB0b2tlblJld2FyZEJhbDogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMwoJcmV0c3ViCgovLyB2ZXJpZnlQb29sS2V5Q2FsbGVyKHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkpOiB2b2lkCi8vCi8vIExvZ3MgdGhlIGFkZGl0aW9uIG9mIGEgbmV3IHZhbGlkYXRvciB0byB0aGUgc3lzdGVtLCBpdHMgaW5pdGlhbCBvd25lciBhbmQgbWFuYWdlcgovLwovLwovLyB2ZXJpZnlQb29sS2V5Q2FsbGVyIHZlcmlmaWVzIHRoZSBwYXNzZWQgaW4ga2V5IChmcm9tIGEgc3Rha2luZyBwb29sIGNhbGxpbmcgdXMgdG8gdXBkYXRlIG1ldHJpY3MpIGlzIHZhbGlkCi8vIGFuZCBtYXRjaGVzIHRoZSBpbmZvcm1hdGlvbiB3ZSBoYXZlIGluIG91ciBzdGF0ZS4gICdGYWtlJyBwb29scyBjb3VsZCBjYWxsIHVzIHRvIHVwZGF0ZSBvdXIgZGF0YSwgYnV0IHRoZXkKLy8gY2FuJ3QgZmFrZSB0aGUgaWRzIGFuZCBtb3N0IGltcG9ydGFudGx5IGFwcGxpY2F0aW9uIGlkKCEpIG9mIHRoZSBjYWxsZXIgdGhhdCBoYXMgdG8gbWF0Y2guCnZlcmlmeVBvb2xLZXlDYWxsZXI6Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE2MQoJLy8gYXNzZXJ0KHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS5leGlzdHMsICJ0aGUgc3BlY2lmaWVkIHZhbGlkYXRvciBpZCBpc24ndCB2YWxpZCIpCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCgkvLyB0aGUgc3BlY2lmaWVkIHZhbGlkYXRvciBpZCBpc24ndCB2YWxpZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExNjIKCS8vIGFzc2VydChwb29sS2V5LnBvb2xJZCA8PSBNQVhfUE9PTFMsICdwb29sIGlkIG5vdCBpbiB2YWxpZCByYW5nZScpCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMyAvLyAyNAoJPD0KCgkvLyBwb29sIGlkIG5vdCBpbiB2YWxpZCByYW5nZQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExNjMKCS8vIGFzc2VydCgKCS8vICAgICAgIHBvb2xLZXkucG9vbElkID4gMCAmJiAocG9vbEtleS5wb29sSWQgYXMgdWludDE2KSA8PSB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUuc3RhdGUubnVtUG9vbHMsCgkvLyAgICAgICAncG9vbCBpZCBvdXRzaWRlIG9mIHJhbmdlIG9mIHBvb2xzIGNyZWF0ZWQgZm9yIHRoaXMgdmFsaWRhdG9yJwoJLy8gICAgICkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50YyAwIC8vIDAKCT4KCWR1cAoJYnogKnNraXBfYW5kMgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnRjIDggLy8gMjQyCglpbnRjIDEwIC8vIDIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCgk8PQoJJiYKCipza2lwX2FuZDI6CgkvLyBwb29sIGlkIG91dHNpZGUgb2YgcmFuZ2Ugb2YgcG9vbHMgY3JlYXRlZCBmb3IgdGhpcyB2YWxpZGF0b3IKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTY5CgkvLyBhc3NlcnQoCgkvLyAgICAgICBwb29sS2V5LnBvb2xBcHBJZCA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzW3Bvb2xLZXkucG9vbElkIC0gMV0ucG9vbEFwcElkLAoJLy8gICAgICAgIlRoZSBwYXNzZWQgaW4gYXBwIGlkIGRvZXNuJ3QgbWF0Y2ggdGhlIHBhc3NlZCBpbiBpZHMiCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAwIC8vIDAKCSsKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJPT0KCgkvLyBUaGUgcGFzc2VkIGluIGFwcCBpZCBkb2Vzbid0IG1hdGNoIHRoZSBwYXNzZWQgaW4gaWRzCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE3NAoJLy8gYXNzZXJ0KHRoaXMudHhuLnNlbmRlciA9PT0gQXBwSUQuZnJvbVVpbnQ2NChwb29sS2V5LnBvb2xBcHBJZCkuYWRkcmVzcykKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDE2IDgKCWJ0b2kKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTc2CgkvLyBhc3NlcnQocG9vbEtleS5pZCA9PT0gKEFwcElELmZyb21VaW50NjQocG9vbEtleS5wb29sQXBwSWQpLmdsb2JhbFN0YXRlKCd2YWxpZGF0b3JJZCcpIGFzIHVpbnQ2NCkpCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDE2IDgKCWJ0b2kKCXB1c2hieXRlcyAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQocG9vbEtleS5wb29sQXBwSWQpLmdsb2JhbFN0YXRlKCd2YWxpZGF0b3JJZCcpCglhc3NlcnQKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE3NwoJLy8gYXNzZXJ0KHBvb2xLZXkucG9vbElkID09PSAoQXBwSUQuZnJvbVVpbnQ2NChwb29sS2V5LnBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ3Bvb2xJZCcpIGFzIHVpbnQ2NCkpCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDE2IDgKCWJ0b2kKCXB1c2hieXRlcyAweDcwNmY2ZjZjNDk2NCAvLyAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQocG9vbEtleS5wb29sQXBwSWQpLmdsb2JhbFN0YXRlKCdwb29sSWQnKQoJYXNzZXJ0Cgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIHJldmVyaWZ5TkZET3duZXJzaGlwKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUpOiB2b2lkCi8vCi8vIFRoaXMgbWV0aG9kIHZlcmlmaWVzIHRoZSBvd25lcnNoaXAgb2YgTkZEIChOYW1lZCBGdW5jdGlvbiBEYXRhKSBieSBhIHZhbGlkYXRvci4KLy8gSWYgdGhlIG93bmVyc2hpcCBpcyBubyBsb25nZXIgdmFsaWQsIGl0IHJlbW92ZXMgdGhlIE5GRCBmcm9tIHRoZSB2YWxpZGF0b3IncyBjb25maWd1cmF0aW9uLgovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvciB3aG9zZSBkYXRhIHNob3VsZCBiZSByZS1ldmFsdWF0ZWQuCnJldmVyaWZ5TkZET3duZXJzaGlwOgoJcHJvdG8gMSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTg3CgkvLyB2YWxpZGF0b3JDb25maWcgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZwoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gc3RvcmFnZSBrZXkvL3ZhbGlkYXRvckNvbmZpZwoKCS8vICppZjI4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExODgKCS8vIHZhbGlkYXRvckNvbmZpZy5uZmRGb3JJbmZvICE9PSAwCglpbnRjIDIxIC8vIDcyCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJaW50YyAwIC8vIDAKCSE9CglieiAqaWYyOF9lbmQKCgkvLyAqaWYyOF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE5MQoJLy8gbmZkT3duZXIgPSBBcHBJRC5mcm9tVWludDY0KHZhbGlkYXRvckNvbmZpZy5uZmRGb3JJbmZvKS5nbG9iYWxTdGF0ZSgnaS5vd25lci5hJykgYXMgQWRkcmVzcwoJaW50YyAyMSAvLyA3MgoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWJ5dGVjIDkgLy8gICJpLm93bmVyLmEiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcubmZkRm9ySW5mbykuZ2xvYmFsU3RhdGUoJ2kub3duZXIuYScpCglhc3NlcnQKCWZyYW1lX2J1cnkgMSAvLyBuZmRPd25lcjogYWRkcmVzcwoKCS8vICppZjI5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExOTMKCS8vIHZhbGlkYXRvckNvbmZpZy5vd25lciAhPT0gbmZkT3duZXIgJiYgdmFsaWRhdG9yQ29uZmlnLm1hbmFnZXIgIT09IG5mZE93bmVyCglpbnRjIDIgLy8gOAoJaW50YyA0IC8vIDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9kaWcgMSAvLyBuZmRPd25lcjogYWRkcmVzcwoJIT0KCWR1cAoJYnogKnNraXBfYW5kMwoJaW50YyAxOCAvLyA0MAoJaW50YyA0IC8vIDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9kaWcgMSAvLyBuZmRPd25lcjogYWRkcmVzcwoJIT0KCSYmCgoqc2tpcF9hbmQzOgoJYnogKmlmMjlfZW5kCgoJLy8gKmlmMjlfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExOTUKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm5mZEZvckluZm8gPSAwCglpbnRjIDIxIC8vIDcyCglieXRlYyAxMCAvLyAweDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCippZjI5X2VuZDoKCippZjI4X2VuZDoKCXJldHN1YgoKLy8gdmFsaWRhdGVDb25maWcoY29uZmlnOiBWYWxpZGF0b3JDb25maWcpOiB2b2lkCnZhbGlkYXRlQ29uZmlnOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyMDIKCS8vIGFzc2VydCgKCS8vICAgICAgIGNvbmZpZy5lbnRyeUdhdGluZ1R5cGUgPj0gR0FUSU5HX1RZUEVfTk9ORSAmJiBjb25maWcuZW50cnlHYXRpbmdUeXBlIDw9IEdBVElOR19UWVBFX0NPTlNUX01BWCwKCS8vICAgICAgICdnYXRpbmcgdHlwZSBub3QgdmFsaWQnCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDgwIDEKCWJ0b2kKCWludGMgMCAvLyAwCgk+PQoJZHVwCglieiAqc2tpcF9hbmQ0CglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgODAgMQoJYnRvaQoJaW50YyAyMCAvLyA0Cgk8PQoJJiYKCipza2lwX2FuZDQ6CgkvLyBnYXRpbmcgdHlwZSBub3QgdmFsaWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjA2CgkvLyBhc3NlcnQoCgkvLyAgICAgICBjb25maWcuZXBvY2hSb3VuZExlbmd0aCA+PSBNSU5fRVBPQ0hfTEVOR1RIICYmIGNvbmZpZy5lcG9jaFJvdW5kTGVuZ3RoIDw9IE1BWF9FUE9DSF9MRU5HVEgsCgkvLyAgICAgICAnZXBvY2ggbGVuZ3RoIG5vdCBpbiBhbGxvd2FibGUgcmFuZ2UnCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDE2OSA0CglidG9pCglpbnRjIDEgLy8gMQoJPj0KCWR1cAoJYnogKnNraXBfYW5kNQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDE2OSA0CglidG9pCglpbnRjIDI0IC8vIDEwMDAwMDAKCTw9CgkmJgoKKnNraXBfYW5kNToKCS8vIGVwb2NoIGxlbmd0aCBub3QgaW4gYWxsb3dhYmxlIHJhbmdlCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTIxMAoJLy8gYXNzZXJ0KAoJLy8gICAgICAgY29uZmlnLnBlcmNlbnRUb1ZhbGlkYXRvciA+PSBNSU5fUENUX1RPX1ZBTElEQVRPUiAmJiBjb25maWcucGVyY2VudFRvVmFsaWRhdG9yIDw9IE1BWF9QQ1RfVE9fVkFMSURBVE9SLAoJLy8gICAgICAgJ2NvbW1pc3Npb24gcGVyY2VudGFnZSBub3QgdmFsaWQnCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDE3MyA0CglidG9pCglpbnRjIDAgLy8gMAoJPj0KCWR1cAoJYnogKnNraXBfYW5kNgoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDE3MyA0CglidG9pCglpbnRjIDI0IC8vIDEwMDAwMDAKCTw9CgkmJgoKKnNraXBfYW5kNjoKCS8vIGNvbW1pc3Npb24gcGVyY2VudGFnZSBub3QgdmFsaWQKCWFzc2VydAoKCS8vICppZjMwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyMTQKCS8vIGNvbmZpZy5wZXJjZW50VG9WYWxpZGF0b3IgIT09IDAKCWZyYW1lX2RpZyAtMSAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCAxNzMgNAoJYnRvaQoJaW50YyAwIC8vIDAKCSE9CglieiAqaWYzMF9lbmQKCgkvLyAqaWYzMF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTIxNQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICBjb25maWcudmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MgIT09IEFkZHJlc3MuemVyb0FkZHJlc3MsCgkvLyAgICAgICAgICd2YWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyBtdXN0IGJlIHNldCBpZiBwZXJjZW50IHRvIHZhbGlkYXRvciBpcyBub3QgMCcKCS8vICAgICAgICkKCWZyYW1lX2RpZyAtMSAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCAxNzcgMzIKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCgkvLyB2YWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyBtdXN0IGJlIHNldCBpZiBwZXJjZW50IHRvIHZhbGlkYXRvciBpcyBub3QgMAoJYXNzZXJ0CgoqaWYzMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTIyMAoJLy8gYXNzZXJ0KGNvbmZpZy5taW5FbnRyeVN0YWtlID49IE1JTl9BTEdPX1NUQUtFX1BFUl9QT09MLCAnc3Rha2luZyBwb29sIG11c3QgaGF2ZSBtaW5pbXVtIGVudHJ5IG9mIDEgYWxnbycpCglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMjA5IDgKCWJ0b2kKCWludGMgMjQgLy8gMTAwMDAwMAoJPj0KCgkvLyBzdGFraW5nIHBvb2wgbXVzdCBoYXZlIG1pbmltdW0gZW50cnkgb2YgMSBhbGdvCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTIyMgoJLy8gYXNzZXJ0KAoJLy8gICAgICAgY29uZmlnLnBvb2xzUGVyTm9kZSA+IDAgJiYgY29uZmlnLnBvb2xzUGVyTm9kZSA8PSBNQVhfUE9PTFNfUEVSX05PREUsCgkvLyAgICAgICAnbnVtYmVyIG9mIHBvb2xzIHBlciBub2RlIGV4Y2VlZHMgYWxsb3dlZCBudW1iZXInCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDIyNSAxCglidG9pCglpbnRjIDAgLy8gMAoJPgoJZHVwCglieiAqc2tpcF9hbmQ3CglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMjI1IDEKCWJ0b2kKCWludGMgOSAvLyAzCgk8PQoJJiYKCipza2lwX2FuZDc6CgkvLyBudW1iZXIgb2YgcG9vbHMgcGVyIG5vZGUgZXhjZWVkcyBhbGxvd2VkIG51bWJlcgoJYXNzZXJ0CgoJLy8gKmlmMzFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTIyNgoJLy8gY29uZmlnLnN1bnNldHRpbmdPbiAhPT0gMAoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDIyNiA4CglidG9pCglpbnRjIDAgLy8gMAoJIT0KCWJ6ICppZjMxX2VuZAoKCS8vICppZjMxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjI3CgkvLyBhc3NlcnQoY29uZmlnLnN1bnNldHRpbmdPbiA+IGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wLCAnc3Vuc2V0dGluZ09uIG11c3QgYmUgbGF0ZXIgdGhhbiBub3cgaWYgc2V0JykKCWZyYW1lX2RpZyAtMSAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCAyMjYgOAoJYnRvaQoJZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAoJPgoKCS8vIHN1bnNldHRpbmdPbiBtdXN0IGJlIGxhdGVyIHRoYW4gbm93IGlmIHNldAoJYXNzZXJ0CgoqaWYzMV9lbmQ6CglyZXRzdWIKCi8vIGNhbGxQb29sQWRkU3Rha2Uoc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuLCBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5LCBtYnJBbXRQYWlkOiB1aW50NjQsIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2xlYW4sIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbGVhbik6IHZvaWQKLy8KLy8gQWRkcyBhIHN0YWtlcnMgYW1vdW50IG9mIGFsZ28gdG8gYSB2YWxpZGF0b3IgcG9vbCwgdHJhbnNmZXJyaW5nIHRoZSBhbGdvIHdlIHJlY2VpdmVkIGZyb20gdGhlbSAoYWxyZWFkeSB2ZXJpZmllZAovLyBieSBvdXIgY2FsbGVyKSB0byB0aGUgc3Rha2luZyBwb29sIGFjY291bnQsIGFuZCB0aGVuIHRlbGxpbmcgaXQgYWJvdXQgdGhlIGFtb3VudCBiZWluZyBhZGRlZCBmb3IgdGhlIHNwZWNpZmllZAovLyBzdGFrZXIuCi8vCi8vIEBwYXJhbSB7UGF5VHhufSBzdGFrZWRBbW91bnRQYXltZW50IC0gcGF5bWVudCBjb21pbmcgZnJvbSBzdGFrZXIgdG8gcGxhY2UgaW50byBhIHBvb2wKLy8gQHBhcmFtIHtWYWxpZGF0b3JQb29sS2V5fSBwb29sS2V5IC0gVGhlIGtleSBvZiB0aGUgdmFsaWRhdG9yIHBvb2wuCi8vIEBwYXJhbSB7dWludDY0fSBtYnJBbXRQYWlkIC0gQW1vdW50IHRoZSB1c2VyIGlzIGxlYXZpbmcgYmVoaW5kIGluIHRoZSB2YWxpZGF0b3IgdG8gcGF5IGZvciB0aGVpciBzdGFrZXIgTUJSIGNvc3QKLy8gQHBhcmFtIHtib29sZWFufSBpc05ld1N0YWtlclRvVmFsaWRhdG9yIC0gaWYgdGhpcyBpcyBhIG5ldywgZmlyc3QtdGltZSBzdGFrZXIgdG8gdGhlIHZhbGlkYXRvcgovLyBAcGFyYW0ge2Jvb2xlYW59IGlzTmV3U3Rha2VyVG9Qcm90b2NvbCAtIGlmIHRoaXMgaXMgYSBuZXcsIGZpcnN0LXRpbWUgc3Rha2VyIHRvIHRoZSBwcm90b2NvbApjYWxsUG9vbEFkZFN0YWtlOgoJcHJvdG8gNSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjQ5CgkvLyBwb29sQXBwSWQgPSB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXS5wb29sQXBwSWQKCWludGMgNiAvLyAgaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnRjIDEgLy8gMQoJLQoJaW50YyA1IC8vIDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludGMgMCAvLyAwCgkrCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjUzCgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgU3Rha2luZ1Bvb2wucHJvdG90eXBlLmFkZFN0YWtlLCB1aW50NjQ+KHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKSwKCS8vICAgICAgIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgLy8gPT09PT09PQoJLy8gICAgICAgICAvLyBUSElTIElTIEEgU0VORCBvZiB0aGUgYW1vdW50IHJlY2VpdmVkIHJpZ2h0IGJhY2sgb3V0IGFuZCBpbnRvIHRoZSBzdGFraW5nIHBvb2wgY29udHJhY3QgYWNjb3VudC4KCS8vICAgICAgICAgeyBhbW91bnQ6IHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50IC0gbWJyQW10UGFpZCwgcmVjZWl2ZXI6IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKS5hZGRyZXNzIH0sCgkvLyAgICAgICAgIC8vID09PT09PT0KCS8vICAgICAgICAgc3Rha2VkQW1vdW50UGF5bWVudC5zZW5kZXIsCgkvLyAgICAgICBdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDEgLy8gIHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjU4CgkvLyBhbW91bnQ6IHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50IC0gbWJyQW10UGFpZAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9kaWcgLTMgLy8gbWJyQW10UGFpZDogdWludDY0CgktCglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjU4CgkvLyByZWNlaXZlcjogQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpLmFkZHJlc3MKCWZyYW1lX2RpZyAwIC8vIHBvb2xBcHBJZDogdWludDY0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCWl0eG5fbmV4dAoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglwdXNoYnl0ZXMgMHhmOWM3MGNiZCAvLyBtZXRob2QgImFkZFN0YWtlKHBheSxhZGRyZXNzKXVpbnQ2NCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNTQKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKQoJZnJhbWVfZGlnIDAgLy8gcG9vbEFwcElkOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjU1CgkvLyBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgIC8vID09PT09PT0KCS8vICAgICAgICAgLy8gVEhJUyBJUyBBIFNFTkQgb2YgdGhlIGFtb3VudCByZWNlaXZlZCByaWdodCBiYWNrIG91dCBhbmQgaW50byB0aGUgc3Rha2luZyBwb29sIGNvbnRyYWN0IGFjY291bnQuCgkvLyAgICAgICAgIHsgYW1vdW50OiBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCAtIG1ickFtdFBhaWQsIHJlY2VpdmVyOiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkuYWRkcmVzcyB9LAoJLy8gICAgICAgICAvLyA9PT09PT09CgkvLyAgICAgICAgIHN0YWtlZEFtb3VudFBheW1lbnQuc2VuZGVyLAoJLy8gICAgICAgXQoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50YyAxIC8vIDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJYnRvaQoKCS8vICppZjMyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNjMKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgNTAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglwdXNoaW50IDUwMAoJPAoJYnogKmlmMzJfZW5kCgoJLy8gKmlmMzJfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNjQKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyA4IC8vICAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnRjIDI2IC8vICBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoqaWYzMl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI2OAoJLy8gcG9vbE51bVN0YWtlcnMgPSBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ251bVN0YWtlcnMnKSBhcyB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHBvb2xBcHBJZDogdWludDY0CglieXRlYyA3IC8vICAibnVtU3Rha2VycyIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ251bVN0YWtlcnMnKQoJYXNzZXJ0CglmcmFtZV9idXJ5IDEgLy8gcG9vbE51bVN0YWtlcnM6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjY5CgkvLyBwb29sQWxnb1N0YWtlZCA9IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKS5nbG9iYWxTdGF0ZSgnc3Rha2VkJykgYXMgdWludDY0CglmcmFtZV9kaWcgMCAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoJYnl0ZWMgNCAvLyAgInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ3N0YWtlZCcpCglhc3NlcnQKCWZyYW1lX2J1cnkgMiAvLyBwb29sQWxnb1N0YWtlZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNzAKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5wb29sc1twb29sS2V5LnBvb2xJZCAtIDFdLnRvdGFsU3Rha2VycyA9IHBvb2xOdW1TdGFrZXJzIGFzIHVpbnQxNgoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAyIC8vICBoZWFkT2Zmc2V0CgkrCglmcmFtZV9kaWcgMSAvLyBwb29sTnVtU3Rha2VyczogdWludDY0CglpdG9iCglleHRyYWN0IDYgMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI3MQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzW3Bvb2xLZXkucG9vbElkIC0gMV0udG90YWxBbGdvU3Rha2VkID0gcG9vbEFsZ29TdGFrZWQKCWludGMgNiAvLyAgaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnRjIDEgLy8gMQoJLQoJaW50YyA1IC8vIDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludGMgMTEgLy8gIGhlYWRPZmZzZXQKCSsKCWZyYW1lX2RpZyAyIC8vIHBvb2xBbGdvU3Rha2VkOiB1aW50NjQKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gKmlmMzNfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI3NAoJLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcgoJZnJhbWVfZGlnIC00IC8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2xlYW4KCWJ6ICppZjMzX2VuZAoKCS8vICppZjMzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjc1CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUuc3RhdGUudG90YWxTdGFrZXJzICs9IDEKCWludGMgMjMgLy8gMjQ0CglkdXAKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJaW50YyAxIC8vIDEKCSsKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoqaWYzM19lbmQ6CgkvLyAqaWYzNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjc3CgkvLyBpc05ld1N0YWtlclRvUHJvdG9jb2wKCWZyYW1lX2RpZyAtNSAvLyBpc05ld1N0YWtlclRvUHJvdG9jb2w6IGJvb2xlYW4KCWJ6ICppZjM0X2VuZAoKCS8vICppZjM0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjc4CgkvLyB0aGlzLm51bVN0YWtlcnMudmFsdWUgKz0gMQoJYnl0ZWMgNyAvLyAgIm51bVN0YWtlcnMiCglhcHBfZ2xvYmFsX2dldAoJaW50YyAxIC8vIDEKCSsKCWJ5dGVjIDcgLy8gICJudW1TdGFrZXJzIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCippZjM0X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjgwCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUuc3RhdGUudG90YWxBbGdvU3Rha2VkICs9IHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50IC0gbWJyQW10UGFpZAoJaW50YyAxMiAvLyAyNTIKCWR1cAoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAtMyAvLyBtYnJBbXRQYWlkOiB1aW50NjQKCS0KCSsKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODEKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlICs9IHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50IC0gbWJyQW10UGFpZAoJYnl0ZWMgNCAvLyAgInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAtMyAvLyBtYnJBbXRQYWlkOiB1aW50NjQKCS0KCSsKCWJ5dGVjIDQgLy8gICJzdGFrZWQiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyB1cGRhdGVTdGFrZXJQb29sU2V0KHN0YWtlcjogQWRkcmVzcywgcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleSk6IHZvaWQKdXBkYXRlU3Rha2VyUG9vbFNldDoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAxIC8vIDB4CglkdXBuIDIKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI4NQoJLy8gYXNzZXJ0KHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLmV4aXN0cykKCWJ5dGVjIDMgLy8gICJzcHMiCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWJveF9sZW4KCXN3YXAKCXBvcAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODcKCS8vIHBvb2xTZXQgPSBjbG9uZSh0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZSkKCWJ5dGVjIDMgLy8gICJzcHMiCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlCglhc3NlcnQKCWZyYW1lX2J1cnkgMCAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODgKCS8vIGZpcnN0RW1wdHkgPSAwCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjg5CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlLmxlbmd0aDsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCipmb3JfNzoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjg5CgkvLyBpIDwgdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUubGVuZ3RoCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgNyAvLyA2Cgk8CglieiAqZm9yXzdfZW5kCgoJLy8gKmlmMzVfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI5MAoJLy8gcG9vbFNldFtpXSA9PT0gcG9vbEtleQoJZnJhbWVfZGlnIDAgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAzIC8vIDI0CglleHRyYWN0MwoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCT09CglieiAqaWYzNV9lbmQKCgkvLyAqaWYzNV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI5MgoJLy8gcmV0dXJuOwoJcmV0c3ViCgoqaWYzNV9lbmQ6CgkvLyAqaWYzNl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjk0CgkvLyBmaXJzdEVtcHR5ID09PSAwICYmIHBvb2xTZXRbaV0uaWQgPT09IDAKCWZyYW1lX2RpZyAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglkdXAKCWJ6ICpza2lwX2FuZDgKCWZyYW1lX2RpZyAwIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMCAvLyAwCgkrCglpbnRjIDIgLy8gOAoJZXh0cmFjdDMKCWJ0b2kKCWludGMgMCAvLyAwCgk9PQoJJiYKCipza2lwX2FuZDg6CglieiAqaWYzNl9lbmQKCgkvLyAqaWYzNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI5NQoJLy8gZmlyc3RFbXB0eSA9IGkgKyAxCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDEgLy8gZmlyc3RFbXB0eTogdWludDY0CgoqaWYzNl9lbmQ6CgoqZm9yXzdfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI4OQoJLy8gaSArPSAxCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDIgLy8gaTogdWludDY0CgliICpmb3JfNwoKKmZvcl83X2VuZDoKCS8vICppZjM3X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyOTgKCS8vIGZpcnN0RW1wdHkgPT09IDAKCWZyYW1lX2RpZyAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglieiAqaWYzN19lbmQKCgkvLyAqaWYzN19jb25zZXF1ZW50CgkvLyBObyBlbXB0eSBzbG90IGF2YWlsYWJsZSBpbiB0aGUgc3Rha2VyIHBvb2wgc2V0CgllcnIKCippZjM3X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzAxCgkvLyB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZVtmaXJzdEVtcHR5IC0gMV0gPSBwb29sS2V5CglmcmFtZV9kaWcgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCWludGMgMSAvLyAxCgktCglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWJ5dGVjIDMgLy8gICJzcHMiCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIHJlbW92ZUZyb21TdGFrZXJQb29sU2V0KHN0YWtlcjogQWRkcmVzcywgcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleSk6IFtib29sZWFuLCBib29sZWFuXQovLwovLyBSZW1vdmVzIGEgcG9vbCBrZXkgZnJvbSB0aGUgc3Rha2VyJ3MgYWN0aXZlIHBvb2wgc2V0IC0gZmFpbHMgaWYgbm90IGZvdW5kICghKQovLwovLyBAcGFyYW0ge0FkZHJlc3N9IHN0YWtlciAtIFRoZSBhZGRyZXNzIG9mIHRoZSBzdGFrZXIuCi8vIEBwYXJhbSB7VmFsaWRhdG9yUG9vbEtleX0gcG9vbEtleSAtIFRoZSBwb29sIGtleSB0aGV5IHNob3VsZCBiZSBzdG9yZWQgaW4KLy8KLy8gQHJldHVybiBbYm9vbGVhbiwgYm9vbGVhbl0gW2lzIHRoZSBzdGFrZXIgZ29uZSBmcm9tIEFMTCBwb29scyBvZiB0aGUgZ2l2ZW4gVkFMSURBVE9SLCBhbmQgaXMgc3Rha2VyIGdvbmUgZnJvbSBBTEwgcG9vbHNdCnJlbW92ZUZyb21TdGFrZXJQb29sU2V0OgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cG4gNAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzE0CgkvLyBpblNhbWVWYWxpZGF0b3JQb29sQ291bnQgPSAwCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAwIC8vIGluU2FtZVZhbGlkYXRvclBvb2xDb3VudDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMTUKCS8vIGluQW55UG9vbENvdW50ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMSAvLyBpbkFueVBvb2xDb3VudDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMTYKCS8vIGZvdW5kID0gZmFsc2UKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDIgLy8gZm91bmQ6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMxOAoJLy8gcG9vbFNldCA9IGNsb25lKHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlKQoJYnl0ZWMgMyAvLyAgInNwcyIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSAzIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMxOQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZS5sZW5ndGg7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDQgLy8gaTogdWludDY0CgoqZm9yXzg6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMxOQoJLy8gaSA8IHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlLmxlbmd0aAoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnRjIDcgLy8gNgoJPAoJYnogKmZvcl84X2VuZAoKCS8vICppZjM4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMjAKCS8vIHBvb2xTZXRbaV0uaWQgPT09IDAKCWZyYW1lX2RpZyAzIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMCAvLyAwCgkrCglpbnRjIDIgLy8gOAoJZXh0cmFjdDMKCWJ0b2kKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmMzhfZW5kCgoJLy8gKmlmMzhfY29uc2VxdWVudAoJYiAqZm9yXzhfY29udGludWUKCippZjM4X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzIzCgkvLyBpbkFueVBvb2xDb3VudCArPSAxCglmcmFtZV9kaWcgMSAvLyBpbkFueVBvb2xDb3VudDogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAxIC8vIGluQW55UG9vbENvdW50OiB1aW50NjQKCgkvLyAqaWYzOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzI0CgkvLyBwb29sU2V0W2ldLmlkID09PSBwb29sS2V5LmlkCglmcmFtZV9kaWcgMyAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDAgLy8gMAoJKwoJaW50YyAyIC8vIDgKCWV4dHJhY3QzCglidG9pCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCT09CglieiAqaWYzOV9lbmQKCgkvLyAqaWYzOV9jb25zZXF1ZW50CgkvLyAqaWY0MF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzI1CgkvLyBwb29sU2V0W2ldID09PSBwb29sS2V5CglmcmFtZV9kaWcgMyAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDMgLy8gMjQKCWV4dHJhY3QzCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJPT0KCWJ6ICppZjQwX2Vsc2UKCgkvLyAqaWY0MF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMyNgoJLy8gZm91bmQgPSB0cnVlCglpbnRjIDEgLy8gMQoJZnJhbWVfYnVyeSAyIC8vIGZvdW5kOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMjgKCS8vIHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlW2ldID0geyBpZDogMCwgcG9vbElkOiAwLCBwb29sQXBwSWQ6IDAgfQoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglieXRlYyAzIC8vICAic3BzIgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoJYiAqaWY0MF9lbmQKCippZjQwX2Vsc2U6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMzMAoJLy8gaW5TYW1lVmFsaWRhdG9yUG9vbENvdW50ICs9IDEKCWZyYW1lX2RpZyAwIC8vIGluU2FtZVZhbGlkYXRvclBvb2xDb3VudDogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGluU2FtZVZhbGlkYXRvclBvb2xDb3VudDogdWludDY0CgoqaWY0MF9lbmQ6CgoqaWYzOV9lbmQ6CgoqZm9yXzhfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMxOQoJLy8gaSArPSAxCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDQgLy8gaTogdWludDY0CgliICpmb3JfOAoKKmZvcl84X2VuZDoKCS8vICppZjQxX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMzQKCS8vICFmb3VuZAoJZnJhbWVfZGlnIDIgLy8gZm91bmQ6IGJvb2wKCSEKCWJ6ICppZjQxX2VuZAoKCS8vICppZjQxX2NvbnNlcXVlbnQKCS8vIE5vIG1hdGNoaW5nIHNsb3QgZm91bmQgd2hlbiB0b2xkIHRvIHJlbW92ZSBhIHBvb2wgZnJvbSB0aGUgc3Rha2VycyBzZXQKCWVycgoKKmlmNDFfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMzgKCS8vIHJldHVybiBbaW5TYW1lVmFsaWRhdG9yUG9vbENvdW50ID09PSAwLCBpbkFueVBvb2xDb3VudCA9PT0gMF07CglieXRlYyA1IC8vIDB4MDAKCWludGMgMCAvLyAwCglmcmFtZV9kaWcgMCAvLyBpblNhbWVWYWxpZGF0b3JQb29sQ291bnQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglzZXRiaXQKCWludGMgMSAvLyAxCglmcmFtZV9kaWcgMSAvLyBpbkFueVBvb2xDb3VudDogdWludDY0CglpbnRjIDAgLy8gMAoJPT0KCXNldGJpdAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDQKCXJldHN1YgoKLy8gYWRkUG9vbFRvTm9kZSh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCBwb29sQXBwSWQ6IHVpbnQ2NCwgbm9kZU51bTogdWludDY0KTogdm9pZAphZGRQb29sVG9Ob2RlOgoJcHJvdG8gMyAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzQyCgkvLyBub2RlUG9vbEFzc2lnbm1lbnRzID0gY2xvbmUodGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5ub2RlUG9vbEFzc2lnbm1lbnRzKQoJaW50YyAxNyAvLyAgaGVhZE9mZnNldAoJaW50YyAyMiAvLyAxOTIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWZyYW1lX2J1cnkgMCAvLyBub2RlUG9vbEFzc2lnbm1lbnRzOiAoKHVpbnQ2NFszXSlbOF0pCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNDMKCS8vIG1heFBvb2xzUGVyTm9kZUZvclRoaXNWYWxpZGF0b3IgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5wb29sc1Blck5vZGUgYXMgdWludDY0CglwdXNoaW50IDIyNQoJaW50YyAxIC8vIDEKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMSAvLyBtYXhQb29sc1Blck5vZGVGb3JUaGlzVmFsaWRhdG9yOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM0NQoJLy8gYXNzZXJ0KG5vZGVOdW0gPj0gMSAmJiBub2RlTnVtIDw9IE1BWF9OT0RFUywgJ25vZGUgbnVtYmVyIG5vdCBpbiB2YWxpZCByYW5nZScpCglmcmFtZV9kaWcgLTMgLy8gbm9kZU51bTogdWludDY0CglpbnRjIDEgLy8gMQoJPj0KCWR1cAoJYnogKnNraXBfYW5kOQoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJaW50YyAyIC8vIDgKCTw9CgkmJgoKKnNraXBfYW5kOToKCS8vIG5vZGUgbnVtYmVyIG5vdCBpbiB2YWxpZCByYW5nZQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNDcKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgbWF4UG9vbHNQZXJOb2RlRm9yVGhpc1ZhbGlkYXRvcjsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCipmb3JfOToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzQ3CgkvLyBpIDwgbWF4UG9vbHNQZXJOb2RlRm9yVGhpc1ZhbGlkYXRvcgoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglmcmFtZV9kaWcgMSAvLyBtYXhQb29sc1Blck5vZGVGb3JUaGlzVmFsaWRhdG9yOiB1aW50NjQKCTwKCWJ6ICpmb3JfOV9lbmQKCgkvLyAqaWY0Ml9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzQ4CgkvLyBub2RlUG9vbEFzc2lnbm1lbnRzLm5vZGVzW25vZGVOdW0gLSAxXS5wb29sQXBwSWRzW2ldID09PSAwCglmcmFtZV9kaWcgMCAvLyBub2RlUG9vbEFzc2lnbm1lbnRzOiAoKHVpbnQ2NFszXSlbOF0pCglpbnRjIDAgLy8gMAoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJaW50YyAxIC8vIDEKCS0KCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDAgLy8gMAoJKwoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDIgLy8gOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDIgLy8gOAoJZXh0cmFjdDMKCWJ0b2kKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmNDJfZW5kCgoJLy8gKmlmNDJfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNTAKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUubm9kZVBvb2xBc3NpZ25tZW50cy5ub2Rlc1tub2RlTnVtIC0gMV0ucG9vbEFwcElkc1tpXSA9IHBvb2xBcHBJZAoJaW50YyAxNyAvLyA5MDAKCWZyYW1lX2RpZyAtMyAvLyBub2RlTnVtOiB1aW50NjQKCWludGMgMSAvLyAxCgktCglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAwIC8vIDAKCSsKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAyIC8vIDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBcHBJZDogdWludDY0CglpdG9iCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNTEKCS8vIHJldHVybjsKCXJldHN1YgoKKmlmNDJfZW5kOgoKKmZvcl85X2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNDcKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzkKCipmb3JfOV9lbmQ6CgkvLyBubyBhdmFpbGFibGUgc3BhY2UgaW4gc3BlY2lmaWVkIG5vZGUgZm9yIHRoaXMgcG9vbAoJZXJyCglyZXRzdWIKCi8vIGRvZXNTdGFrZXJNZWV0R2F0aW5nKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gQ2hlY2tzIGlmIGEgc3Rha2VyIG1lZXRzIHRoZSBnYXRpbmcgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGUgdmFsaWRhdG9yLgovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvci4KLy8gQHBhcmFtIHt1aW50NjR9IHZhbHVlVG9WZXJpZnkgLSBUaGUgdmFsdWUgdG8gdmVyaWZ5IGFnYWluc3QgdGhlIGdhdGluZyByZXF1aXJlbWVudHMuCi8vIEByZXR1cm5zIHt2b2lkfSBvciBhc3NlcnRzIGlmIHJlcXVpcmVtZW50cyBub3QgbWV0Lgpkb2VzU3Rha2VyTWVldEdhdGluZzoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAxIC8vIDB4CglkdXBuIDgKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM2NQoJLy8gdHlwZSA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLmVudHJ5R2F0aW5nVHlwZQoJaW50YyAzNSAvLyA4MAoJaW50YyAxIC8vIDEKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyB0eXBlOiB1aW50OAoKCS8vICppZjQzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNjYKCS8vIHR5cGUgPT09IEdBVElOR19UWVBFX05PTkUKCWZyYW1lX2RpZyAwIC8vIHR5cGU6IHVpbnQ4CglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppZjQzX2VuZAoKCS8vICppZjQzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzY3CgkvLyByZXR1cm47CglyZXRzdWIKCippZjQzX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzY5CgkvLyBzdGFrZXIgPSB0aGlzLnR4bi5zZW5kZXIKCXR4biBTZW5kZXIKCWZyYW1lX2J1cnkgMSAvLyBzdGFrZXI6IGFkZHJlc3MKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM3MAoJLy8gY29uZmlnID0gY2xvbmUodGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcpCglpbnRjIDAgLy8gMAoJaW50YyA4IC8vIDI0MgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAyIC8vIGNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCgoJLy8gKmlmNDRfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM3NAoJLy8gdHlwZSA9PT0gR0FUSU5HX1RZUEVfQVNTRVRTX0NSRUFURURfQlkgfHwKCS8vICAgICAgIHR5cGUgPT09IEdBVElOR19UWVBFX0FTU0VUX0lEIHx8CgkvLyAgICAgICB0eXBlID09PSBHQVRJTkdfVFlQRV9DUkVBVEVEX0JZX05GRF9BRERSRVNTRVMKCWZyYW1lX2RpZyAwIC8vIHR5cGU6IHVpbnQ4CglpbnRjIDEgLy8gMQoJPT0KCWR1cAoJYm56ICpza2lwX29yNAoJZnJhbWVfZGlnIDAgLy8gdHlwZTogdWludDgKCWludGMgMTAgLy8gMgoJPT0KCXx8Cgoqc2tpcF9vcjQ6CglkdXAKCWJueiAqc2tpcF9vcjUKCWZyYW1lX2RpZyAwIC8vIHR5cGU6IHVpbnQ4CglpbnRjIDkgLy8gMwoJPT0KCXx8Cgoqc2tpcF9vcjU6CglieiAqaWY0NF9lbmQKCgkvLyAqaWY0NF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM3OAoJLy8gYXNzZXJ0KHZhbHVlVG9WZXJpZnkgIT09IDApCglmcmFtZV9kaWcgLTIgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0CglpbnRjIDAgLy8gMAoJIT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzc5CgkvLyBiYWxSZXF1aXJlZCA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLmdhdGluZ0Fzc2V0TWluQmFsYW5jZQoJaW50YyAzNiAvLyAxNDUKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDMgLy8gYmFsUmVxdWlyZWQ6IHVpbnQ2NAoKCS8vICppZjQ1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzODAKCS8vIGJhbFJlcXVpcmVkID09PSAwCglmcmFtZV9kaWcgMyAvLyBiYWxSZXF1aXJlZDogdWludDY0CglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppZjQ1X2VuZAoKCS8vICppZjQ1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzgxCgkvLyBiYWxSZXF1aXJlZCA9IDEKCWludGMgMSAvLyAxCglmcmFtZV9idXJ5IDMgLy8gYmFsUmVxdWlyZWQ6IHVpbnQ2NAoKKmlmNDVfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzODMKCS8vIGFzc2VydCgKCS8vICAgICAgICAgc3Rha2VyLmFzc2V0QmFsYW5jZShBc3NldElELmZyb21VaW50NjQodmFsdWVUb1ZlcmlmeSkpID49IGJhbFJlcXVpcmVkLAoJLy8gICAgICAgICAnbXVzdCBoYXZlIHJlcXVpcmVkIG1pbmltdW0gYmFsYW5jZSBvZiB2YWxpZGF0b3IgZGVmaW5lZCB0b2tlbiB0byBhZGQgc3Rha2UnCgkvLyAgICAgICApCglmcmFtZV9kaWcgMSAvLyBzdGFrZXI6IGFkZHJlc3MKCWZyYW1lX2RpZyAtMiAvLyB2YWx1ZVRvVmVyaWZ5OiB1aW50NjQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgMyAvLyBiYWxSZXF1aXJlZDogdWludDY0Cgk+PQoKCS8vIG11c3QgaGF2ZSByZXF1aXJlZCBtaW5pbXVtIGJhbGFuY2Ugb2YgdmFsaWRhdG9yIGRlZmluZWQgdG9rZW4gdG8gYWRkIHN0YWtlCglhc3NlcnQKCippZjQ0X2VuZDoKCS8vICppZjQ2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzODgKCS8vIHR5cGUgPT09IEdBVElOR19UWVBFX0FTU0VUU19DUkVBVEVEX0JZCglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJaW50YyAxIC8vIDEKCT09CglieiAqaWY0Nl9lbmQKCgkvLyAqaWY0Nl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM4OQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICBBc3NldElELmZyb21VaW50NjQodmFsdWVUb1ZlcmlmeSkuY3JlYXRvciA9PT0gY29uZmlnLmVudHJ5R2F0aW5nQWRkcmVzcywKCS8vICAgICAgICAgJ3NwZWNpZmllZCBhc3NldCBtdXN0IGJlIGNyZWF0ZWQgYnkgY3JlYXRvciB0aGF0IHRoZSB2YWxpZGF0b3IgZGVmaW5lZCBhcyBhIHJlcXVpcmVtZW50IHRvIHN0YWtlJwoJLy8gICAgICAgKQoJZnJhbWVfZGlnIC0yIC8vIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NAoJYXNzZXRfcGFyYW1zX2dldCBBc3NldENyZWF0b3IKCXBvcAoJZnJhbWVfZGlnIDIgLy8gY29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgODEgMzIKCT09CgoJLy8gc3BlY2lmaWVkIGFzc2V0IG11c3QgYmUgY3JlYXRlZCBieSBjcmVhdG9yIHRoYXQgdGhlIHZhbGlkYXRvciBkZWZpbmVkIGFzIGEgcmVxdWlyZW1lbnQgdG8gc3Rha2UKCWFzc2VydAoKKmlmNDZfZW5kOgoJLy8gKmlmNDdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM5NAoJLy8gdHlwZSA9PT0gR0FUSU5HX1RZUEVfQVNTRVRfSUQKCWZyYW1lX2RpZyAwIC8vIHR5cGU6IHVpbnQ4CglpbnRjIDEwIC8vIDIKCT09CglieiAqaWY0N19lbmQKCgkvLyAqaWY0N19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM5NQoJLy8gYXNzZXJ0KHZhbHVlVG9WZXJpZnkgIT09IDApCglmcmFtZV9kaWcgLTIgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0CglpbnRjIDAgLy8gMAoJIT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzk2CgkvLyBmb3VuZCA9IGZhbHNlCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSA0IC8vIGZvdW5kOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzOTcKCS8vIGNvbmZpZy5lbnRyeUdhdGluZ0Fzc2V0cwoJZnJhbWVfZGlnIDIgLy8gY29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTEzIDMyCglkdXAKCWZyYW1lX2J1cnkgNSAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWV4dHJhY3QgMCA4CglidG9pCglmcmFtZV9idXJ5IDYgLy8gYXNzZXRJZDogdWludDY0CglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSA3IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCgoqZm9yT2ZfMDoKCS8vICppZjQ4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzOTgKCS8vIHZhbHVlVG9WZXJpZnkgPT09IGFzc2V0SWQKCWZyYW1lX2RpZyAtMiAvLyB2YWx1ZVRvVmVyaWZ5OiB1aW50NjQKCWZyYW1lX2RpZyA2IC8vIGFzc2V0SWQ6IHVpbnQ2NAoJPT0KCWJ6ICppZjQ4X2VuZAoKCS8vICppZjQ4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzk5CgkvLyBmb3VuZCA9IHRydWUKCWludGMgMSAvLyAxCglmcmFtZV9idXJ5IDQgLy8gZm91bmQ6IGJvb2wKCWIgKmZvck9mXzBfZW5kCgoqaWY0OF9lbmQ6CgoqZm9yT2ZfMF9jb250aW51ZToKCS8vIGluY3JlbWVudCBvZmZzZXQgYW5kIGxvb3AgaWYgbm90IG91dCBvZiBib3VuZHMKCWZyYW1lX2RpZyA3IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnRjIDIgLy8gOAoJKwoJZHVwCglpbnRjIDQgLy8gIG9mZnNldCBvZiBsYXN0IGVsZW1lbnQKCTwKCWJ6ICpmb3JPZl8wX2VuZAoJZnJhbWVfYnVyeSA3IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglmcmFtZV9kaWcgNSAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyA3IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnRjIDIgLy8gOAoJZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSA2IC8vIGFzc2V0SWQ6IHVpbnQ2NAoJYiAqZm9yT2ZfMAoKKmZvck9mXzBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0MDMKCS8vIGFzc2VydChmb3VuZCwgJ3NwZWNpZmllZCBhc3NldCBtdXN0IGJlIGlkZW50aWNhbCB0byB0aGUgYXNzZXQgaWQgZGVmaW5lZCBhcyBhIHJlcXVpcmVtZW50IHRvIHN0YWtlJykKCWZyYW1lX2RpZyA0IC8vIGZvdW5kOiBib29sCgoJLy8gc3BlY2lmaWVkIGFzc2V0IG11c3QgYmUgaWRlbnRpY2FsIHRvIHRoZSBhc3NldCBpZCBkZWZpbmVkIGFzIGEgcmVxdWlyZW1lbnQgdG8gc3Rha2UKCWFzc2VydAoKKmlmNDdfZW5kOgoJLy8gKmlmNDlfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQwNQoJLy8gdHlwZSA9PT0gR0FUSU5HX1RZUEVfQ1JFQVRFRF9CWV9ORkRfQUREUkVTU0VTCglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJaW50YyA5IC8vIDMKCT09CglieiAqaWY0OV9lbmQKCgkvLyAqaWY0OV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQwOAoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICB0aGlzLmlzQWRkcmVzc0luTkZEQ0FBbGdvTGlzdChjb25maWcuZW50cnlHYXRpbmdBc3NldHNbMF0sIEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWx1ZVRvVmVyaWZ5KS5jcmVhdG9yKSwKCS8vICAgICAgICAgJ3NwZWNpZmllZCBhc3NldCBtdXN0IGJlIGNyZWF0ZWQgYnkgY3JlYXRvciB0aGF0IGlzIG9uZSBvZiB0aGUgbGlua2VkIGFkZHJlc3NlcyBpbiBhbiBuZmQnCgkvLyAgICAgICApCglmcmFtZV9kaWcgLTIgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0Cglhc3NldF9wYXJhbXNfZ2V0IEFzc2V0Q3JlYXRvcgoJcG9wCglmcmFtZV9kaWcgMiAvLyBjb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxMTMgOAoJYnRvaQoJY2FsbHN1YiBpc0FkZHJlc3NJbk5GRENBQWxnb0xpc3QKCgkvLyBzcGVjaWZpZWQgYXNzZXQgbXVzdCBiZSBjcmVhdGVkIGJ5IGNyZWF0b3IgdGhhdCBpcyBvbmUgb2YgdGhlIGxpbmtlZCBhZGRyZXNzZXMgaW4gYW4gbmZkCglhc3NlcnQKCippZjQ5X2VuZDoKCS8vICppZjUwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0MTMKCS8vIHR5cGUgPT09IEdBVElOR19UWVBFX1NFR01FTlRfT0ZfTkZECglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJaW50YyAyMCAvLyA0Cgk9PQoJYnogKmlmNTBfZW5kCgoJLy8gKmlmNTBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0MTUKCS8vIHVzZXJPZmZlcmVkTkZEQXBwSUQgPSB2YWx1ZVRvVmVyaWZ5CglmcmFtZV9kaWcgLTIgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0CglmcmFtZV9idXJ5IDggLy8gdXNlck9mZmVyZWRORkRBcHBJRDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0MTYKCS8vIGFzc2VydCh0aGlzLmlzTkZEQXBwSURWYWxpZCh1c2VyT2ZmZXJlZE5GREFwcElEKSwgJ3Byb3ZpZGVkIE5GRCBtdXN0IGJlIHZhbGlkJykKCWZyYW1lX2RpZyA4IC8vIHVzZXJPZmZlcmVkTkZEQXBwSUQ6IHVpbnQ2NAoJY2FsbHN1YiBpc05GREFwcElEVmFsaWQKCgkvLyBwcm92aWRlZCBORkQgbXVzdCBiZSB2YWxpZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0MTkKCS8vIGFzc2VydCgKCS8vICAgICAgICAgcmF3Qnl0ZXMoQXBwSUQuZnJvbVVpbnQ2NCh1c2VyT2ZmZXJlZE5GREFwcElEKS5nbG9iYWxTdGF0ZSgnaS5vd25lci5hJykgYXMgQWRkcmVzcykgPT09IHJhd0J5dGVzKHN0YWtlcikgfHwKCS8vICAgICAgICAgICB0aGlzLmlzQWRkcmVzc0luTkZEQ0FBbGdvTGlzdCh1c2VyT2ZmZXJlZE5GREFwcElELCBzdGFrZXIpLAoJLy8gICAgICAgICAicHJvdmlkZWQgbmZkIGZvciBlbnRyeSBpc24ndCBvd25lZCBvciBsaW5rZWQgdG8gdGhlIHN0YWtlciIKCS8vICAgICAgICkKCWZyYW1lX2RpZyA4IC8vIHVzZXJPZmZlcmVkTkZEQXBwSUQ6IHVpbnQ2NAoJYnl0ZWMgOSAvLyAgImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KHVzZXJPZmZlcmVkTkZEQXBwSUQpLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKQoJYXNzZXJ0CglmcmFtZV9kaWcgMSAvLyBzdGFrZXI6IGFkZHJlc3MKCT09CglkdXAKCWJueiAqc2tpcF9vcjYKCWZyYW1lX2RpZyAxIC8vIHN0YWtlcjogYWRkcmVzcwoJZnJhbWVfZGlnIDggLy8gdXNlck9mZmVyZWRORkRBcHBJRDogdWludDY0CgljYWxsc3ViIGlzQWRkcmVzc0luTkZEQ0FBbGdvTGlzdAoJfHwKCipza2lwX29yNjoKCS8vIHByb3ZpZGVkIG5mZCBmb3IgZW50cnkgaXNuJ3Qgb3duZWQgb3IgbGlua2VkIHRvIHRoZSBzdGFrZXIKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDI2CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIGJ0b2koQXBwSUQuZnJvbVVpbnQ2NCh1c2VyT2ZmZXJlZE5GREFwcElEKS5nbG9iYWxTdGF0ZSgnaS5wYXJlbnRBcHBJRCcpIGFzIGJ5dGVzKSA9PT0KCS8vICAgICAgICAgICBjb25maWcuZW50cnlHYXRpbmdBc3NldHNbMF0sCgkvLyAgICAgICAgICdzcGVjaWZpZWQgbmZkIG11c3QgYmUgYSBzZWdtZW50IG9mIHRoZSBuZmQgdGhlIHZhbGlkYXRvciBzcGVjaWZpZWQgYXMgYSByZXF1aXJlbWVudCcKCS8vICAgICAgICkKCWZyYW1lX2RpZyA4IC8vIHVzZXJPZmZlcmVkTkZEQXBwSUQ6IHVpbnQ2NAoJcHVzaGJ5dGVzIDB4NjkyZTcwNjE3MjY1NmU3NDQxNzA3MDQ5NDQgLy8gImkucGFyZW50QXBwSUQiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NCh1c2VyT2ZmZXJlZE5GREFwcElEKS5nbG9iYWxTdGF0ZSgnaS5wYXJlbnRBcHBJRCcpCglhc3NlcnQKCWJ0b2kKCWZyYW1lX2RpZyAyIC8vIGNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDExMyA4CglidG9pCgk9PQoKCS8vIHNwZWNpZmllZCBuZmQgbXVzdCBiZSBhIHNlZ21lbnQgb2YgdGhlIG5mZCB0aGUgdmFsaWRhdG9yIHNwZWNpZmllZCBhcyBhIHJlcXVpcmVtZW50Cglhc3NlcnQKCippZjUwX2VuZDoKCXJldHN1YgoKLy8gaXNORkRBcHBJRFZhbGlkKG5mZEFwcElEOiB1aW50NjQpOiBib29sZWFuCi8vCi8vIENoZWNrcyBpZiB0aGUgZ2l2ZW4gTkZEIEFwcCBpZCBpcyB2YWxpZC4gIFVzaW5nIG9ubHkgdGhlIEFwcCBpZCB0aGVyZSdzIG5vIHZhbGlkYXRpb24gYWdhaW5zdCB0aGUgbmFtZSAoaWU6IHRoYXQgbmZkIFggaXMgbmFtZSBZKQovLyBTbyBpdCdzIGFzc3VtZWQgZm9yIHRoZSBjYWxsZXIsIHRoZSBhcHAgaWQgYWxvbmUgaXMgZmluZS4gIFRoZSBuYW1lIGlzIGZldGNoZWQgZnJvbSB0aGUgc3BlY2lmaWVkIGFwcCBpZCBhbmQgdGhlIHR3bwovLyB0b2dldGhlciBhcmUgdXNlZCBmb3IgdmFsaWRpdHkgY2hlY2sgY2FsbCB0byB0aGUgbmZkIHJlZ2lzdHJ5LgovLwovLyBAcGFyYW0ge3VpbnQ2NH0gbmZkQXBwSUQgLSBUaGUgTkZEIEFwcCBpZCB0byB2ZXJpZnkuCi8vCi8vIEByZXR1cm5zIHtib29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgTkZEIEFwcCBpZCBpcyB2YWxpZCwgb3RoZXJ3aXNlIGZhbHNlLgppc05GREFwcElEVmFsaWQ6Cglwcm90byAxIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDQ1CgkvLyB1c2VyT2ZmZXJlZE5GRE5hbWUgPSBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKS5nbG9iYWxTdGF0ZSgnaS5uYW1lJykgYXMgc3RyaW5nCglmcmFtZV9kaWcgLTEgLy8gbmZkQXBwSUQ6IHVpbnQ2NAoJcHVzaGJ5dGVzIDB4NjkyZTZlNjE2ZDY1IC8vICJpLm5hbWUiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJRCkuZ2xvYmFsU3RhdGUoJ2kubmFtZScpCglhc3NlcnQKCWZyYW1lX2J1cnkgMCAvLyB1c2VyT2ZmZXJlZE5GRE5hbWU6IHN0cmluZwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDQ3CgkvLyBzZW5kQXBwQ2FsbCh7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMubmZkUmVnaXN0cnlBcHBJZCksCgkvLyAgICAgICBhcHBsaWNhdGlvbkFyZ3M6IFsnaXNfdmFsaWRfbmZkX2FwcGlkJywgdXNlck9mZmVyZWRORkROYW1lLCBpdG9iKG5mZEFwcElEKV0sCgkvLyAgICAgICBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDQ4CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMubmZkUmVnaXN0cnlBcHBJZCkKCWludGMgMTUgLy8gVE1QTF9uZmRSZWdpc3RyeUFwcElkCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ0OQoJLy8gYXBwbGljYXRpb25BcmdzOiBbJ2lzX3ZhbGlkX25mZF9hcHBpZCcsIHVzZXJPZmZlcmVkTkZETmFtZSwgaXRvYihuZmRBcHBJRCldCglieXRlYyAxMyAvLyAgImlzX3ZhbGlkX25mZF9hcHBpZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMCAvLyB1c2VyT2ZmZXJlZE5GRE5hbWU6IHN0cmluZwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJRDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDUwCgkvLyBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKV0KCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJRDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9ucwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ1MgoJLy8gcmV0dXJuIGJ0b2kodGhpcy5pdHhuLmxhc3RMb2cpID09PSAxOwoJaXR4biBMYXN0TG9nCglidG9pCglpbnRjIDEgLy8gMQoJPT0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gaXNBZGRyZXNzSW5ORkRDQUFsZ29MaXN0KG5mZEFwcElEOiB1aW50NjQsIGFkZHJUb0ZpbmQ6IEFkZHJlc3MpOiBib29sZWFuCi8vCi8vIENoZWNrcyBpZiB0aGUgc3BlY2lmaWVkIGFkZHJlc3MgaXMgcHJlc2VudCBpbiBhbiBORkRzIGxpc3Qgb2YgdmVyaWZpZWQgYWRkcmVzc2VzLgovLyBUaGUgTkZEIGlzIGFzc3VtZWQgdG8gaGF2ZSBhbHJlYWR5IGJlZW4gdmFsaWRhdGVkIGFzIG9mZmljaWFsLgovLwovLyBAcGFyYW0ge3VpbnQ2NH0gbmZkQXBwSUQgLSBUaGUgTkZEIGFwcGxpY2F0aW9uIGlkLgovLyBAcGFyYW0ge0FkZHJlc3N9IGFkZHJUb0ZpbmQgLSBUaGUgYWRkcmVzcyB0byBmaW5kIGluIHRoZSB2LmNhQWxnby4wLmFzIHByb3BlcnR5Ci8vIEByZXR1cm4ge2Jvb2xlYW59IC0gYHRydWVgIGlmIHRoZSBhZGRyZXNzIGlzIHByZXNlbnQsIGBmYWxzZWAgb3RoZXJ3aXNlLgppc0FkZHJlc3NJbk5GRENBQWxnb0xpc3Q6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NjQKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQobmZkQXBwSUQpLAoJLy8gICAgICAgYXBwbGljYXRpb25BcmdzOiBbJ3JlYWRfcHJvcGVydHknLCAndi5jYUFsZ28uMC5hcyddLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDcgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ2NQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJRCkKCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJRDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ2NgoJLy8gYXBwbGljYXRpb25BcmdzOiBbJ3JlYWRfcHJvcGVydHknLCAndi5jYUFsZ28uMC5hcyddCglwdXNoYnl0ZXMgMHg3MjY1NjE2NDVmNzA3MjZmNzA2NTcyNzQ3OSAvLyAicmVhZF9wcm9wZXJ0eSIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglwdXNoYnl0ZXMgMHg3NjJlNjM2MTQxNmM2NzZmMmUzMDJlNjE3MyAvLyAidi5jYUFsZ28uMC5hcyIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDY4CgkvLyBjYUFsZ29EYXRhID0gdGhpcy5pdHhuLmxhc3RMb2cKCWl0eG4gTGFzdExvZwoJZnJhbWVfYnVyeSAwIC8vIGNhQWxnb0RhdGE6IGJ5dGVbXQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDY5CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IGNhQWxnb0RhdGEubGVuZ3RoOyBpICs9IDMyKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCipmb3JfMTA6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ2OQoJLy8gaSA8IGNhQWxnb0RhdGEubGVuZ3RoCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIGNhQWxnb0RhdGE6IGJ5dGVbXQoJbGVuCgk8CglieiAqZm9yXzEwX2VuZAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDcwCgkvLyBhZGRyID0gZXh0cmFjdDMoY2FBbGdvRGF0YSwgaSwgMzIpCglmcmFtZV9kaWcgMCAvLyBjYUFsZ29EYXRhOiBieXRlW10KCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50YyA0IC8vIDMyCglleHRyYWN0MwoJZnJhbWVfYnVyeSAyIC8vIGFkZHI6IGJ5dGVbXQoKCS8vICppZjUxX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NzEKCS8vIGFkZHIgIT09IHJhd0J5dGVzKGdsb2JhbHMuemVyb0FkZHJlc3MpICYmIGFkZHIgPT09IHJhd0J5dGVzKGFkZHJUb0ZpbmQpCglmcmFtZV9kaWcgMiAvLyBhZGRyOiBieXRlW10KCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCWR1cAoJYnogKnNraXBfYW5kMTAKCWZyYW1lX2RpZyAyIC8vIGFkZHI6IGJ5dGVbXQoJZnJhbWVfZGlnIC0yIC8vIGFkZHJUb0ZpbmQ6IEFkZHJlc3MKCT09CgkmJgoKKnNraXBfYW5kMTA6CglieiAqaWY1MV9lbmQKCgkvLyAqaWY1MV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ3MgoJLy8gcmV0dXJuIHRydWU7CglpbnRjIDEgLy8gMQoJYiAqaXNBZGRyZXNzSW5ORkRDQUFsZ29MaXN0KnJldHVybgoKKmlmNTFfZW5kOgoKKmZvcl8xMF9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDY5CgkvLyBpICs9IDMyCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWludGMgNCAvLyAzMgoJKwoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzEwCgoqZm9yXzEwX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDc1CgkvLyByZXR1cm4gZmFsc2U7CglpbnRjIDAgLy8gMAoKKmlzQWRkcmVzc0luTkZEQ0FBbGdvTGlzdCpyZXR1cm46CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAyCglyZXRzdWIKCi8vIGFsZ29TYXR1cmF0aW9uTGV2ZWwoKTogdWludDY0Ci8vCi8vIFJldHVybnMgdGhlIG1heGltdW0gYWxsb3dlZCBzdGFrZSBwZXIgdmFsaWRhdG9yIGJhc2VkIG9uIGEgcGVyY2VudGFnZSBvZiBhbGwgY3VycmVudCBvbmxpbmUgc3Rha2UgYmVmb3JlCi8vIHRoZSB2YWxpZGF0b3IgaXMgY29uc2lkZXJlZCBzYXR1cmF0ZWQgLSB3aGVyZSByZXdhcmRzIGFyZSBkaW1pbmlzaGVkLgovLyBOT1RFOiB0aGlzIGZ1bmN0aW9uIGlzIGRlZmluZWQgdHdpY2UgLSBoZXJlIGFuZCBpbiBzdGFraW5nIHBvb2wgY29udHJhY3QuICBCb3RoIG11c3QgYmUgaWRlbnRpY2FsLgphbGdvU2F0dXJhdGlvbkxldmVsOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ4NAoJLy8gb25saW5lID0gdGhpcy5nZXRDdXJyZW50T25saW5lU3Rha2UoKQoJY2FsbHN1YiBnZXRDdXJyZW50T25saW5lU3Rha2UKCWZyYW1lX2J1cnkgMCAvLyBvbmxpbmU6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDg2CgkvLyByZXR1cm4gd2lkZVJhdGlvKFtvbmxpbmUsIE1BWF9WQUxJREFUT1JfU09GVF9QQ1RfT0ZfT05MSU5FXzFERUNJTUFMXSwgWzEwMDBdKTsKCWZyYW1lX2RpZyAwIC8vIG9ubGluZTogdWludDY0CglwdXNoaW50IDEwMAoJbXVsdwoJaW50YyAwIC8vIDAKCWludGMgMzEgLy8gMTAwMAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gbWF4QWxsb3dlZFN0YWtlKCk6IHVpbnQ2NAovLwovLyBSZXR1cm5zIHRoZSBNQVhJTVVNIGFsbG93ZWQgc3Rha2UgcGVyIHZhbGlkYXRvciBiYXNlZCBvbiBhIHBlcmNlbnRhZ2Ugb2YgYWxsIGN1cnJlbnQgb25saW5lIHN0YWtlLgovLyBBZGRpbmcgc3Rha2UgaXMgY29tcGxldGVseSBibG9ja2VkIGF0IHRoaXMgYW1vdW50LgptYXhBbGxvd2VkU3Rha2U6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDk0CgkvLyBvbmxpbmUgPSB0aGlzLmdldEN1cnJlbnRPbmxpbmVTdGFrZSgpCgljYWxsc3ViIGdldEN1cnJlbnRPbmxpbmVTdGFrZQoJZnJhbWVfYnVyeSAwIC8vIG9ubGluZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0OTYKCS8vIHJldHVybiB3aWRlUmF0aW8oW29ubGluZSwgTUFYX1ZBTElEQVRPUl9IQVJEX1BDVF9PRl9PTkxJTkVfMURFQ0lNQUxdLCBbMTAwMF0pOwoJZnJhbWVfZGlnIDAgLy8gb25saW5lOiB1aW50NjQKCXB1c2hpbnQgMTUwCgltdWx3CglpbnRjIDAgLy8gMAoJaW50YyAzMSAvLyAxMDAwCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBtYXhBbGdvQWxsb3dlZFBlclBvb2woKTogdWludDY0Ci8vCi8vIFJldHVybnMgdGhlIE1BWElNVU0gYWxsb3dlZCBzdGFrZSBwZXIgcG9vbCBhbmQgc3RpbGwgcmVjZWl2ZSBpbmNlbnRpdmVzIC0gd2UnbGwgdHJlYXQgdGhpcyBhcyB0aGUgJ21heCBwZXIgcG9vbCcKbWF4QWxnb0FsbG93ZWRQZXJQb29sOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MDQKCS8vIHJldHVybiA3MF8wMDBfMDAwXzAwMF8wMDA7CglwdXNoaW50IDcwXzAwMF8wMDBfMDAwXzAwMAoJcmV0c3ViCgovLyBnZXRDdXJyZW50T25saW5lU3Rha2UoKTogdWludDY0CmdldEN1cnJlbnRPbmxpbmVTdGFrZToKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTA5CgkvLyByZXR1cm4gMl8wMDBfMDAwXzAwMF8wMDBfMDAwOwoJcHVzaGludCAyXzAwMF8wMDBfMDAwXzAwMF8wMDAKCXJldHN1YgoKLy8gbWluQmFsYW5jZUZvckFjY291bnQoY29udHJhY3RzOiB1aW50NjQsIGV4dHJhUGFnZXM6IHVpbnQ2NCwgYXNzZXRzOiB1aW50NjQsIGxvY2FsSW50czogdWludDY0LCBsb2NhbEJ5dGVzOiB1aW50NjQsIGdsb2JhbEludHM6IHVpbnQ2NCwgZ2xvYmFsQnl0ZXM6IHVpbnQ2NCk6IHVpbnQ2NAptaW5CYWxhbmNlRm9yQWNjb3VudDoKCXByb3RvIDcgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAxIC8vIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MjEKCS8vIG1pbkJhbCA9IEFMR09SQU5EX0FDQ09VTlRfTUlOX0JBTEFOQ0UKCWludGMgMTYgLy8gMTAwMDAwCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUyMgoJLy8gbWluQmFsICs9IGNvbnRyYWN0cyAqIEFQUExJQ0FUSU9OX0JBU0VfRkVFCglmcmFtZV9kaWcgMCAvLyBtaW5CYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIGNvbnRyYWN0czogdWludDY0CglpbnRjIDE2IC8vIDEwMDAwMAoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MjMKCS8vIG1pbkJhbCArPSBleHRyYVBhZ2VzICogQVBQTElDQVRJT05fQkFTRV9GRUUKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gZXh0cmFQYWdlczogdWludDY0CglpbnRjIDE2IC8vIDEwMDAwMAoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MjQKCS8vIG1pbkJhbCArPSBhc3NldHMgKiBBU1NFVF9IT0xESU5HX0ZFRQoJZnJhbWVfZGlnIDAgLy8gbWluQmFsOiB1aW50NjQKCWZyYW1lX2RpZyAtMyAvLyBhc3NldHM6IHVpbnQ2NAoJaW50YyAxNiAvLyAxMDAwMDAKCSoKCSsKCWZyYW1lX2J1cnkgMCAvLyBtaW5CYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTI1CgkvLyBtaW5CYWwgKz0gbG9jYWxJbnRzICogU1NDX1ZBTFVFX1VJTlQKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CglmcmFtZV9kaWcgLTQgLy8gbG9jYWxJbnRzOiB1aW50NjQKCWludGMgMzIgLy8gMjg1MDAKCSoKCSsKCWZyYW1lX2J1cnkgMCAvLyBtaW5CYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTI2CgkvLyBtaW5CYWwgKz0gZ2xvYmFsSW50cyAqIFNTQ19WQUxVRV9VSU5UCglmcmFtZV9kaWcgMCAvLyBtaW5CYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIC02IC8vIGdsb2JhbEludHM6IHVpbnQ2NAoJaW50YyAzMiAvLyAyODUwMAoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MjcKCS8vIG1pbkJhbCArPSBsb2NhbEJ5dGVzICogU1NDX1ZBTFVFX0JZVEVTCglmcmFtZV9kaWcgMCAvLyBtaW5CYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIC01IC8vIGxvY2FsQnl0ZXM6IHVpbnQ2NAoJaW50YyAzMyAvLyA1MDAwMAoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MjgKCS8vIG1pbkJhbCArPSBnbG9iYWxCeXRlcyAqIFNTQ19WQUxVRV9CWVRFUwoJZnJhbWVfZGlnIDAgLy8gbWluQmFsOiB1aW50NjQKCWZyYW1lX2RpZyAtNyAvLyBnbG9iYWxCeXRlczogdWludDY0CglpbnRjIDMzIC8vIDUwMDAwCgkqCgkrCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUyOQoJLy8gcmV0dXJuIG1pbkJhbDsKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGNvc3RGb3JCb3hTdG9yYWdlKHRvdGFsTnVtQnl0ZXM6IHVpbnQ2NCk6IHVpbnQ2NApjb3N0Rm9yQm94U3RvcmFnZToKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTM2CgkvLyByZXR1cm4gU0NCT1hfUEVSQk9YICsgdG90YWxOdW1CeXRlcyAqIFNDQk9YX1BFUkJZVEU7CglwdXNoaW50IDI1MDAKCWZyYW1lX2RpZyAtMSAvLyB0b3RhbE51bUJ5dGVzOiB1aW50NjQKCXB1c2hpbnQgNDAwCgkqCgkrCglyZXRzdWIKCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgxYjVlODJjNiAvLyBtZXRob2QgImluaXRTdGFraW5nQ29udHJhY3QodWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHg3OTQ3MmQ4MyAvLyBtZXRob2QgImxvYWRTdGFraW5nQ29udHJhY3REYXRhKHVpbnQ2NCxieXRlW10pdm9pZCIKCXB1c2hieXRlcyAweDVmN2FjZmQ5IC8vIG1ldGhvZCAiZmluYWxpemVTdGFraW5nQ29udHJhY3QoKXZvaWQiCglwdXNoYnl0ZXMgMHgzMTcyY2E5ZCAvLyBtZXRob2QgImdhcygpdm9pZCIKCXB1c2hieXRlcyAweDhhODcxNDJkIC8vIG1ldGhvZCAiZ2V0TWJyQW1vdW50cygpKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkiCglwdXNoYnl0ZXMgMHhkMTM2NmNjMyAvLyBtZXRob2QgImdldFByb3RvY29sQ29uc3RyYWludHMoKSh1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KSIKCXB1c2hieXRlcyAweDNiMDQ1YzVjIC8vIG1ldGhvZCAiZ2V0TnVtVmFsaWRhdG9ycygpdWludDY0IgoJcHVzaGJ5dGVzIDB4NzVhZmY2MWQgLy8gbWV0aG9kICJnZXRWYWxpZGF0b3JDb25maWcodWludDY0KSh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KSIKCXB1c2hieXRlcyAweDFmMmYwMTA5IC8vIG1ldGhvZCAiZ2V0VmFsaWRhdG9yU3RhdGUodWludDY0KSh1aW50MTYsdWludDY0LHVpbnQ2NCx1aW50NjQpIgoJcHVzaGJ5dGVzIDB4MmZhMjJjNGIgLy8gbWV0aG9kICJnZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXIodWludDY0KShhZGRyZXNzLGFkZHJlc3MpIgoJcHVzaGJ5dGVzIDB4OTEwZTk0YWMgLy8gbWV0aG9kICJnZXRQb29scyh1aW50NjQpKHVpbnQ2NCx1aW50MTYsdWludDY0KVtdIgoJcHVzaGJ5dGVzIDB4NTcyNzY3ZDEgLy8gbWV0aG9kICJnZXRQb29sQXBwSWQodWludDY0LHVpbnQ2NCl1aW50NjQiCglwdXNoYnl0ZXMgMHg5YjUwNGFhZiAvLyBtZXRob2QgImdldFBvb2xJbmZvKCh1aW50NjQsdWludDY0LHVpbnQ2NCkpKHVpbnQ2NCx1aW50MTYsdWludDY0KSIKCXB1c2hieXRlcyAweGZiYzYzMTc4IC8vIG1ldGhvZCAiZ2V0Q3VyTWF4U3Rha2VQZXJQb29sKHVpbnQ2NCl1aW50NjQiCglwdXNoYnl0ZXMgMHgyNDQ5OGNmNCAvLyBtZXRob2QgImRvZXNTdGFrZXJOZWVkVG9QYXlNQlIoYWRkcmVzcylib29sIgoJcHVzaGJ5dGVzIDB4Zjg0NmRkN2EgLy8gbWV0aG9kICJnZXRTdGFrZWRQb29sc0ZvckFjY291bnQoYWRkcmVzcykodWludDY0LHVpbnQ2NCx1aW50NjQpW10iCglwdXNoYnl0ZXMgMHg4MzA1MDUwMSAvLyBtZXRob2QgImdldFRva2VuUGF5b3V0UmF0aW8odWludDY0KSh1aW50NjRbMjRdLHVpbnQ2NCkiCglwdXNoYnl0ZXMgMHg3YmJiNmM4ZCAvLyBtZXRob2QgImdldE5vZGVQb29sQXNzaWdubWVudHModWludDY0KSgodWludDY0WzNdKVs4XSkiCglwdXNoYnl0ZXMgMHhmODM5NDE0YSAvLyBtZXRob2QgImdldE5GRFJlZ2lzdHJ5SUQoKXVpbnQ2NCIKCXB1c2hieXRlcyAweDBjMzE3Y2ZiIC8vIG1ldGhvZCAiYWRkVmFsaWRhdG9yKHBheSxzdHJpbmcsKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpKXVpbnQ2NCIKCXB1c2hieXRlcyAweDNlMjg4OTcyIC8vIG1ldGhvZCAiY2hhbmdlVmFsaWRhdG9yTWFuYWdlcih1aW50NjQsYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4ZGQ1ZmFhZGEgLy8gbWV0aG9kICJjaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvKHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHgxOGFhYzdhNyAvLyBtZXRob2QgImNoYW5nZVZhbGlkYXRvck5GRCh1aW50NjQsdWludDY0LHN0cmluZyl2b2lkIgoJcHVzaGJ5dGVzIDB4Zjk5ZWY1NGQgLy8gbWV0aG9kICJjaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyh1aW50NjQsYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4MTA4MDlkNGQgLy8gbWV0aG9kICJjaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvKHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHhlNzc4ZGQ1YSAvLyBtZXRob2QgImFkZFBvb2wocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KSIKCXB1c2hieXRlcyAweGJmNTI1OWQwIC8vIG1ldGhvZCAiYWRkU3Rha2UocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KSIKCXB1c2hieXRlcyAweDRkZjhkODZlIC8vIG1ldGhvZCAic2V0VG9rZW5QYXlvdXRSYXRpbyh1aW50NjQpKHVpbnQ2NFsyNF0sdWludDY0KSIKCXB1c2hieXRlcyAweDQxOGZjZWZjIC8vIG1ldGhvZCAic3Rha2VVcGRhdGVkVmlhUmV3YXJkcygodWludDY0LHVpbnQ2NCx1aW50NjQpLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkIgoJcHVzaGJ5dGVzIDB4YTJkYzUxYjUgLy8gbWV0aG9kICJzdGFrZVJlbW92ZWQoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYm9vbCl2b2lkIgoJcHVzaGJ5dGVzIDB4Mjg3M2Y1MDQgLy8gbWV0aG9kICJmaW5kUG9vbEZvclN0YWtlcih1aW50NjQsYWRkcmVzcyx1aW50NjQpKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKSIKCXB1c2hieXRlcyAweDA1NDdmNGZlIC8vIG1ldGhvZCAibW92ZVBvb2xUb05vZGUodWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweGNiNjY4MzU4IC8vIG1ldGhvZCAiZW1wdHlUb2tlblJld2FyZHModWludDY0LGFkZHJlc3MpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9pbml0U3Rha2luZ0NvbnRyYWN0ICphYmlfcm91dGVfbG9hZFN0YWtpbmdDb250cmFjdERhdGEgKmFiaV9yb3V0ZV9maW5hbGl6ZVN0YWtpbmdDb250cmFjdCAqYWJpX3JvdXRlX2dhcyAqYWJpX3JvdXRlX2dldE1ickFtb3VudHMgKmFiaV9yb3V0ZV9nZXRQcm90b2NvbENvbnN0cmFpbnRzICphYmlfcm91dGVfZ2V0TnVtVmFsaWRhdG9ycyAqYWJpX3JvdXRlX2dldFZhbGlkYXRvckNvbmZpZyAqYWJpX3JvdXRlX2dldFZhbGlkYXRvclN0YXRlICphYmlfcm91dGVfZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyICphYmlfcm91dGVfZ2V0UG9vbHMgKmFiaV9yb3V0ZV9nZXRQb29sQXBwSWQgKmFiaV9yb3V0ZV9nZXRQb29sSW5mbyAqYWJpX3JvdXRlX2dldEN1ck1heFN0YWtlUGVyUG9vbCAqYWJpX3JvdXRlX2RvZXNTdGFrZXJOZWVkVG9QYXlNQlIgKmFiaV9yb3V0ZV9nZXRTdGFrZWRQb29sc0ZvckFjY291bnQgKmFiaV9yb3V0ZV9nZXRUb2tlblBheW91dFJhdGlvICphYmlfcm91dGVfZ2V0Tm9kZVBvb2xBc3NpZ25tZW50cyAqYWJpX3JvdXRlX2dldE5GRFJlZ2lzdHJ5SUQgKmFiaV9yb3V0ZV9hZGRWYWxpZGF0b3IgKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyICphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yU3Vuc2V0SW5mbyAqYWJpX3JvdXRlX2NoYW5nZVZhbGlkYXRvck5GRCAqYWJpX3JvdXRlX2NoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzICphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyAqYWJpX3JvdXRlX2FkZFBvb2wgKmFiaV9yb3V0ZV9hZGRTdGFrZSAqYWJpX3JvdXRlX3NldFRva2VuUGF5b3V0UmF0aW8gKmFiaV9yb3V0ZV9zdGFrZVVwZGF0ZWRWaWFSZXdhcmRzICphYmlfcm91dGVfc3Rha2VSZW1vdmVkICphYmlfcm91dGVfZmluZFBvb2xGb3JTdGFrZXIgKmFiaV9yb3V0ZV9tb3ZlUG9vbFRvTm9kZSAqYWJpX3JvdXRlX2VtcHR5VG9rZW5SZXdhcmRzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbjoKCXB1c2hieXRlcyAweDQ2Zjc2NTMzIC8vIG1ldGhvZCAidXBkYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgVXBkYXRlQXBwbGljYXRpb24KCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAwIDEgOCAyNCAzMiAxOCAyNjggNiAyNDIgMyAyIDEwIDI1MiAyNjAgNzAwIDEwMDAwMCA5MDAgNDAgMjAwIFRNUExfbmZkUmVnaXN0cnlBcHBJZCA0IDcyIDE5MiAyNDQgMTAwMDAwMCA0MDk2IDUgMjI2IDMwMCA0MzIgODkyIDEwMDAgMjg1MDAgNTAwMDAgMTEgODAgMTQ1IDE1MyAyMDkKYnl0ZWNibG9jayAweDc2IDB4IDB4MTUxZjdjNzUgMHg3MzcwNzMgMHg3Mzc0NjE2YjY1NjQgMHgwMCAweDcwNmY2ZjZjNTQ2NTZkNzA2YzYxNzQ2NTQxNzA3MDcyNmY3NjYxNmM0Mjc5NzQ2NTczIDB4NmU3NTZkNTM3NDYxNmI2NTcyNzMgMHgwYTgxMDEgMHg2OTJlNmY3NzZlNjU3MjJlNjEgMHgwMDAwMDAwMDAwMDAwMDAwIDB4Njk2ZTY5NzQgMHg2ZTc1NmQ1NiAweDY5NzM1Zjc2NjE2YzY5NjQ1ZjZlNjY2NDVmNjE3MDcwNjk2NCAweDYzZjNmMjhiCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNS4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnRjIDcgLy8gNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbiAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV91cGRhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgdXBkYXRlQXBwbGljYXRpb24KCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHVwZGF0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKdXBkYXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjAyCgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBBZGRyZXNzLmZyb21BZGRyZXNzKCdMWjRWMklSVkxDWEZKSzRSRUpWNFRBR0VLRVlUQTJHTVI2VEMyMzQ0T0IzTDNBRjNNV1haNlpBRklRJykpCgl0eG4gU2VuZGVyCglwdXNoYnl0ZXMgMHg1ZTc5NWQyMjM1NThhZTU0YWI5MTIyNmJjOTgwYzQ1MTMxMzA2OGNjOGZhNjJkNmY5YzcwNzZiZDgwYmI2NWFmIC8vIGFkZHIgIkxaNFYySVJWTENYRkpLNFJFSlY0VEFHRUtFWVRBMkdNUjZUQzIzNDRPQjNMM0FGM01XWFo2WkFGSVEiCgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIwNAoJLy8gdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5kZWxldGUoKQoJYnl0ZWMgNiAvLyAgInBvb2xUZW1wbGF0ZUFwcHJvdmFsQnl0ZXMiCglib3hfZGVsCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIwNQoJLy8gdGhpcy5zdGFraW5nUG9vbEluaXRpYWxpemVkLnZhbHVlID0gZmFsc2UKCWJ5dGVjIDExIC8vICAiaW5pdCIKCWludGMgMCAvLyAwCglieXRlYyA1IC8vIDB4MDAKCWludGMgMCAvLyAwCgl1bmNvdmVyIDIKCXNldGJpdAoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gY3JlYXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgY3JlYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgY3JlYXRlQXBwbGljYXRpb24KCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKY3JlYXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjA5CgkvLyB0aGlzLnN0YWtpbmdQb29sSW5pdGlhbGl6ZWQudmFsdWUgPSBmYWxzZQoJYnl0ZWMgMTEgLy8gICJpbml0IgoJaW50YyAwIC8vIDAKCWJ5dGVjIDUgLy8gMHgwMAoJaW50YyAwIC8vIDAKCXVuY292ZXIgMgoJc2V0Yml0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMTAKCS8vIHRoaXMubnVtVmFsaWRhdG9ycy52YWx1ZSA9IDAKCWJ5dGVjIDEyIC8vICAibnVtViIKCWludGMgMCAvLyAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMTEKCS8vIHRoaXMubnVtU3Rha2Vycy52YWx1ZSA9IDAKCWJ5dGVjIDcgLy8gICJudW1TdGFrZXJzIgoJaW50YyAwIC8vIDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIxMgoJLy8gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgPSAwCglieXRlYyA0IC8vICAic3Rha2VkIgoJaW50YyAwIC8vIDAKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGluaXRTdGFraW5nQ29udHJhY3QodWludDY0KXZvaWQKKmFiaV9yb3V0ZV9pbml0U3Rha2luZ0NvbnRyYWN0OgoJLy8gYXBwcm92YWxQcm9ncmFtU2l6ZTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBpbml0U3Rha2luZ0NvbnRyYWN0KHVpbnQ2NCl2b2lkCgljYWxsc3ViIGluaXRTdGFraW5nQ29udHJhY3QKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGluaXRTdGFraW5nQ29udHJhY3QoYXBwcm92YWxQcm9ncmFtU2l6ZTogdWludDY0KTogdm9pZAppbml0U3Rha2luZ0NvbnRyYWN0OgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIxNwoJLy8gdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5jcmVhdGUoYXBwcm92YWxQcm9ncmFtU2l6ZSkKCWJ5dGVjIDYgLy8gICJwb29sVGVtcGxhdGVBcHByb3ZhbEJ5dGVzIgoJZnJhbWVfZGlnIC0xIC8vIGFwcHJvdmFsUHJvZ3JhbVNpemU6IHVpbnQ2NAoJYm94X2NyZWF0ZQoJcG9wCglyZXRzdWIKCi8vIGxvYWRTdGFraW5nQ29udHJhY3REYXRhKHVpbnQ2NCxieXRlW10pdm9pZAoqYWJpX3JvdXRlX2xvYWRTdGFraW5nQ29udHJhY3REYXRhOgoJLy8gZGF0YTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglleHRyYWN0IDIgMAoKCS8vIG9mZnNldDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBsb2FkU3Rha2luZ0NvbnRyYWN0RGF0YSh1aW50NjQsYnl0ZVtdKXZvaWQKCWNhbGxzdWIgbG9hZFN0YWtpbmdDb250cmFjdERhdGEKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGxvYWRTdGFraW5nQ29udHJhY3REYXRhKG9mZnNldDogdWludDY0LCBkYXRhOiBieXRlcyk6IHZvaWQKbG9hZFN0YWtpbmdDb250cmFjdERhdGE6Cglwcm90byAyIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjIxCgkvLyBhc3NlcnQoIXRoaXMuc3Rha2luZ1Bvb2xJbml0aWFsaXplZC52YWx1ZSkKCWJ5dGVjIDExIC8vICAiaW5pdCIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDAgLy8gMAoJZ2V0Yml0CgkhCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjIyCgkvLyB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLnJlcGxhY2Uob2Zmc2V0LCBkYXRhKQoJYnl0ZWMgNiAvLyAgInBvb2xUZW1wbGF0ZUFwcHJvdmFsQnl0ZXMiCglmcmFtZV9kaWcgLTEgLy8gb2Zmc2V0OiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBkYXRhOiBieXRlcwoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gZmluYWxpemVTdGFraW5nQ29udHJhY3QoKXZvaWQKKmFiaV9yb3V0ZV9maW5hbGl6ZVN0YWtpbmdDb250cmFjdDoKCS8vIGV4ZWN1dGUgZmluYWxpemVTdGFraW5nQ29udHJhY3QoKXZvaWQKCWNhbGxzdWIgZmluYWxpemVTdGFraW5nQ29udHJhY3QKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGZpbmFsaXplU3Rha2luZ0NvbnRyYWN0KCk6IHZvaWQKZmluYWxpemVTdGFraW5nQ29udHJhY3Q6Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjI2CgkvLyB0aGlzLnN0YWtpbmdQb29sSW5pdGlhbGl6ZWQudmFsdWUgPSB0cnVlCglieXRlYyAxMSAvLyAgImluaXQiCglpbnRjIDEgLy8gMQoJYnl0ZWMgNSAvLyAweDAwCglpbnRjIDAgLy8gMAoJdW5jb3ZlciAyCglzZXRiaXQKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGdhcygpdm9pZAoqYWJpX3JvdXRlX2dhczoKCS8vIGV4ZWN1dGUgZ2FzKCl2b2lkCgljYWxsc3ViIGdhcwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2FzKCk6IHZvaWQKLy8KLy8gZ2FzIGlzIGEgZHVtbXkgbm8tb3AgY2FsbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHBvb2wtdXAgcmVzb3VyY2UgcmVmZXJlbmNlcyBhbmQgb3Bjb2RlIGNvc3QKZ2FzOgoJcHJvdG8gMCAwCglyZXRzdWIKCi8vIGdldE1ickFtb3VudHMoKSh1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfZ2V0TWJyQW1vdW50czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMiAvLyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBnZXRNYnJBbW91bnRzKCkodWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJY2FsbHN1YiBnZXRNYnJBbW91bnRzCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2V0TWJyQW1vdW50cygpOiBNYnJBbW91bnRzCi8vCi8vIFJldHVybnMgdGhlIE1CUiBhbW91bnRzIG5lZWRlZCBmb3IgdmFyaW91cyBhY3Rpb25zOgovLyBbCi8vIGFkZFZhbGlkYXRvck1icjogdWludDY0IC0gbWJyIG5lZWRlZCB0byBhZGQgYSBuZXcgdmFsaWRhdG9yIC0gcGFpZCB0byB2YWxpZGF0b3IgY29udHJhY3QKLy8gYWRkUG9vbE1icjogdWludDY0IC0gbWJyIG5lZWRlZCB0byBhZGQgYSBuZXcgcG9vbCAtIHBhaWQgdG8gdmFsaWRhdG9yCi8vIHBvb2xJbml0TWJyOiB1aW50NjQgLSBtYnIgbmVlZGVkIHRvIGluaXRTdG9yYWdlKCkgb2YgcG9vbCAtIHBhaWQgdG8gcG9vbCBpdHNlbGYKLy8gYWRkU3Rha2VyTWJyOiB1aW50NjQgLSBtYnIgc3Rha2VyIG5lZWRzIHRvIGFkZCB0byBmaXJzdCBzdGFraW5nIHBheW1lbnQgKHN0YXlzIHcvIHZhbGlkYXRvcikKLy8gXQpnZXRNYnJBbW91bnRzOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjI0NgoJLy8gcmV0dXJuIHsKCS8vICAgICAgIGFkZFZhbGlkYXRvck1icjogdGhpcy5jb3N0Rm9yQm94U3RvcmFnZSgxIC8qIHYgcHJlZml4ICovICsgbGVuPFZhbGlkYXRvcklkVHlwZT4oKSArIGxlbjxWYWxpZGF0b3JJbmZvPigpKSwKCS8vICAgICAgIGFkZFBvb2xNYnI6IHRoaXMubWluQmFsYW5jZUZvckFjY291bnQoCgkvLyAgICAgICAgIDEsCgkvLyAgICAgICAgIC8vIHdlIGNvdWxkIGNhbGN1bGF0ZSB0aGlzIGRpcmVjdGx5IGJ5IHJlZmVyZW5jaW5nIHRoZSBzaXplIG9mIHN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtIGJ1dCBpdCB3b3VsZAoJLy8gICAgICAgICAvLyBtZWFuIG91ciBjYWxsZXJzIHdvdWxkIGhhdmUgdG8gcmVmZXJlbmNlIHRoZSBib3ggQU5EIGJ1eSB1cCBpL28gLSBzbyBqdXN0IGdvIG1heCBvbiBleHRyYSBwYWdlcwoJLy8gICAgICAgICAzLAoJLy8gICAgICAgICAwLAoJLy8gICAgICAgICAwLAoJLy8gICAgICAgICAwLAoJLy8gICAgICAgICBTdGFraW5nUG9vbC5zY2hlbWEuZ2xvYmFsLm51bVVpbnQsCgkvLyAgICAgICAgIFN0YWtpbmdQb29sLnNjaGVtYS5nbG9iYWwubnVtQnl0ZVNsaWNlCgkvLyAgICAgICApLAoJLy8gICAgICAgcG9vbEluaXRNYnI6CgkvLyAgICAgICAgIEFMR09SQU5EX0FDQ09VTlRfTUlOX0JBTEFOQ0UgKwoJLy8gICAgICAgICB0aGlzLmNvc3RGb3JCb3hTdG9yYWdlKDcgLyogJ3N0YWtlcnMnIG5hbWUgKi8gKyBsZW48U3Rha2VkSW5mbz4oKSAqIE1BWF9TVEFLRVJTX1BFUl9QT09MKSwKCS8vICAgICAgIGFkZFN0YWtlck1icjoKCS8vICAgICAgICAgLy8gaG93IG11Y2ggdG8gY2hhcmdlIGZvciBmaXJzdCB0aW1lIGEgc3Rha2VyIGFkZHMgc3Rha2UgLSBzaW5jZSB3ZSBhZGQgYSB0cmFja2luZyBib3ggcGVyIHN0YWtlcgoJLy8gICAgICAgICB0aGlzLmNvc3RGb3JCb3hTdG9yYWdlKDMgLyogJ3NwcycgcHJlZml4ICovICsgbGVuPEFkZHJlc3M+KCkgKyBsZW48VmFsaWRhdG9yUG9vbEtleT4oKSAqIE1BWF9QT09MU19QRVJfU1RBS0VSKSwgLy8gc2l6ZSBvZiBrZXkgKyBhbGwgdmFsdWVzCgkvLyAgICAgfTsKCXB1c2hpbnQgMTEwMQoJY2FsbHN1YiBjb3N0Rm9yQm94U3RvcmFnZQoJaXRvYgoJaW50YyA5IC8vIDMKCWludGMgMzQgLy8gMTEKCWludGMgMCAvLyAwCglkdXBuIDIKCWludGMgOSAvLyAzCglpbnRjIDEgLy8gMQoJY2FsbHN1YiBtaW5CYWxhbmNlRm9yQWNjb3VudAoJaXRvYgoJY29uY2F0CglpbnRjIDE1IC8vIDEwMDAwMAoJcHVzaGludCAxMjgwNwoJY2FsbHN1YiBjb3N0Rm9yQm94U3RvcmFnZQoJKwoJaXRvYgoJY29uY2F0CglwdXNoaW50IDE3OQoJY2FsbHN1YiBjb3N0Rm9yQm94U3RvcmFnZQoJaXRvYgoJY29uY2F0CglyZXRzdWIKCi8vIGdldFByb3RvY29sQ29uc3RyYWludHMoKSh1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2dldFByb3RvY29sQ29uc3RyYWludHM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZ2V0UHJvdG9jb2xDb25zdHJhaW50cygpKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgljYWxsc3ViIGdldFByb3RvY29sQ29uc3RyYWludHMKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnZXRQcm90b2NvbENvbnN0cmFpbnRzKCk6IENvbnN0cmFpbnRzCi8vCi8vIFJldHVybnMgdGhlIHByb3RvY29sIGNvbnN0cmFpbnRzIHNvIHRoYXQgVUlzIGNhbiBsaW1pdCB3aGF0IHVzZXJzIHNwZWNpZnkgZm9yIHZhbGlkYXRvciBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMuCmdldFByb3RvY29sQ29uc3RyYWludHM6Cglwcm90byAwIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjcyCgkvLyByZXR1cm4gewoJLy8gICAgICAgZXBvY2hQYXlvdXRSb3VuZHNNaW46IE1JTl9FUE9DSF9MRU5HVEgsCgkvLyAgICAgICBlcG9jaFBheW91dFJvdW5kc01heDogTUFYX0VQT0NIX0xFTkdUSCwKCS8vICAgICAgIG1pblBjdFRvVmFsaWRhdG9yV0ZvdXJEZWNpbWFsczogTUlOX1BDVF9UT19WQUxJREFUT1IsCgkvLyAgICAgICBtYXhQY3RUb1ZhbGlkYXRvcldGb3VyRGVjaW1hbHM6IE1BWF9QQ1RfVE9fVkFMSURBVE9SLAoJLy8gICAgICAgbWluRW50cnlTdGFrZTogTUlOX0FMR09fU1RBS0VfUEVSX1BPT0wsCgkvLyAgICAgICBtYXhBbGdvUGVyUG9vbDogdGhpcy5tYXhBbGdvQWxsb3dlZFBlclBvb2woKSwKCS8vICAgICAgIG1heEFsZ29QZXJWYWxpZGF0b3I6IHRoaXMubWF4QWxsb3dlZFN0YWtlKCksCgkvLyAgICAgICBhbXRDb25zaWRlcmVkU2F0dXJhdGVkOiB0aGlzLmFsZ29TYXR1cmF0aW9uTGV2ZWwoKSwKCS8vICAgICAgIG1heE5vZGVzOiBNQVhfTk9ERVMsCgkvLyAgICAgICBtYXhQb29sc1Blck5vZGU6IE1BWF9QT09MU19QRVJfTk9ERSwKCS8vICAgICAgIG1heFN0YWtlcnNQZXJQb29sOiBNQVhfU1RBS0VSU19QRVJfUE9PTCwKCS8vICAgICB9OwoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwZjQyNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBmNDI0MDAwMDAwMDAwMDAwZjQyNDAKCWNhbGxzdWIgbWF4QWxnb0FsbG93ZWRQZXJQb29sCglpdG9iCgljb25jYXQKCWNhbGxzdWIgbWF4QWxsb3dlZFN0YWtlCglpdG9iCgljb25jYXQKCWNhbGxzdWIgYWxnb1NhdHVyYXRpb25MZXZlbAoJaXRvYgoJY29uY2F0CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDA4Cgljb25jYXQKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDMKCWNvbmNhdAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDBjOAoJY29uY2F0CglyZXRzdWIKCi8vIGdldE51bVZhbGlkYXRvcnMoKXVpbnQ2NAoqYWJpX3JvdXRlX2dldE51bVZhbGlkYXRvcnM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZ2V0TnVtVmFsaWRhdG9ycygpdWludDY0CgljYWxsc3ViIGdldE51bVZhbGlkYXRvcnMKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnZXROdW1WYWxpZGF0b3JzKCk6IHVpbnQ2NAovLwovLyBSZXR1cm5zIHRoZSBjdXJyZW50IG51bWJlciBvZiB2YWxpZGF0b3JzCmdldE51bVZhbGlkYXRvcnM6Cglwcm90byAwIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjkyCgkvLyByZXR1cm4gdGhpcy5udW1WYWxpZGF0b3JzLnZhbHVlOwoJYnl0ZWMgMTIgLy8gICJudW1WIgoJYXBwX2dsb2JhbF9nZXQKCXJldHN1YgoKLy8gZ2V0VmFsaWRhdG9yQ29uZmlnKHVpbnQ2NCkodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKKmFiaV9yb3V0ZV9nZXRWYWxpZGF0b3JDb25maWc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGdldFZhbGlkYXRvckNvbmZpZyh1aW50NjQpKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCgljYWxsc3ViIGdldFZhbGlkYXRvckNvbmZpZwoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldFZhbGlkYXRvckNvbmZpZyh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlKTogVmFsaWRhdG9yQ29uZmlnCmdldFZhbGlkYXRvckNvbmZpZzoKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyOTcKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZzsKCWludGMgMCAvLyAwCglpbnRjIDggLy8gMjQyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglyZXRzdWIKCi8vIGdldFZhbGlkYXRvclN0YXRlKHVpbnQ2NCkodWludDE2LHVpbnQ2NCx1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2dldFZhbGlkYXRvclN0YXRlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBnZXRWYWxpZGF0b3JTdGF0ZSh1aW50NjQpKHVpbnQxNix1aW50NjQsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgZ2V0VmFsaWRhdG9yU3RhdGUKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnZXRWYWxpZGF0b3JTdGF0ZSh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlKTogVmFsaWRhdG9yQ3VyU3RhdGUKZ2V0VmFsaWRhdG9yU3RhdGU6Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzAyCgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZTsKCWludGMgOCAvLyAgaGVhZE9mZnNldAoJcHVzaGludCAyNgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJcmV0c3ViCgovLyBnZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXIodWludDY0KShhZGRyZXNzLGFkZHJlc3MpCiphYmlfcm91dGVfZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBnZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXIodWludDY0KShhZGRyZXNzLGFkZHJlc3MpCgljYWxsc3ViIGdldFZhbGlkYXRvck93bmVyQW5kTWFuYWdlcgoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldFZhbGlkYXRvck93bmVyQW5kTWFuYWdlcih2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlKTogW0FkZHJlc3MsIEFkZHJlc3NdCmdldFZhbGlkYXRvck93bmVyQW5kTWFuYWdlcjoKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozMDcKCS8vIHJldHVybiBbdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIsIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm1hbmFnZXJdOwoJaW50YyAyIC8vIDgKCWludGMgNCAvLyAzMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJaW50YyAxNyAvLyA0MAoJaW50YyA0IC8vIDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgljb25jYXQKCXJldHN1YgoKLy8gZ2V0UG9vbHModWludDY0KSh1aW50NjQsdWludDE2LHVpbnQ2NClbXQoqYWJpX3JvdXRlX2dldFBvb2xzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBnZXRQb29scyh1aW50NjQpKHVpbnQ2NCx1aW50MTYsdWludDY0KVtdCgljYWxsc3ViIGdldFBvb2xzCglkdXAKCWxlbgoJaW50YyA1IC8vIDE4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2V0UG9vbHModmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IFBvb2xJbmZvW10KLy8KLy8gUmV0dXJuIGxpc3Qgb2YgYWxsIHBvb2xzIGZvciB0aGlzIHZhbGlkYXRvci4KLy8gQHBhcmFtIHt1aW50NjR9IHZhbGlkYXRvcklkCi8vIEByZXR1cm4ge1Bvb2xJbmZvW119IC0gYXJyYXkgb2YgcG9vbHMKLy8gTm90IGNhbGxhYmxlIGZyb20gb3RoZXIgY29udHJhY3RzIGJlY2F1c2UgPjFLIHJldHVybiBidXQgY2FuIGJlIGNhbGxlZCB3LyBzaW11bGF0ZSB3aGljaCBidW1wcyBsb2cgcmV0dXJucwpnZXRQb29sczoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAxIC8vIDB4CglkdXBuIDIKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzE4CgkvLyByZXREYXRhOiBQb29sSW5mb1tdID0gW10KCWJ5dGVjIDEgLy8gMHgKCWZyYW1lX2J1cnkgMCAvLyByZXREYXRhOiBQb29sSW5mb1tdCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMxOQoJLy8gcG9vbFNldCA9IGNsb25lKHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUucG9vbHMpCglpbnRjIDYgLy8gIGhlYWRPZmZzZXQKCWludGMgMjkgLy8gNDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDEgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50MTYsdWludDY0KVsyNF0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzIwCgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHBvb2xTZXQubGVuZ3RoOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoKKmZvcl8wOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMyMAoJLy8gaSA8IHBvb2xTZXQubGVuZ3RoCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMyAvLyAyNAoJPAoJYnogKmZvcl8wX2VuZAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzIxCgkvLyBwb29sU2V0W2ldLnBvb2xBcHBJZCA9PT0gMAoJZnJhbWVfZGlnIDEgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50MTYsdWludDY0KVsyNF0KCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyA1IC8vIDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMCAvLyAwCgkrCglpbnRjIDIgLy8gOAoJZXh0cmFjdDMKCWJ0b2kKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCWIgKmZvcl8wX2VuZAoKKmlmMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzI1CgkvLyByZXREYXRhLnB1c2gocG9vbFNldFtpXSkKCWZyYW1lX2RpZyAwIC8vIHJldERhdGE6IFBvb2xJbmZvW10KCWZyYW1lX2RpZyAxIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDE2LHVpbnQ2NClbMjRdCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgNSAvLyAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDUgLy8gMTgKCWV4dHJhY3QzCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyByZXREYXRhOiBQb29sSW5mb1tdCgoqZm9yXzBfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzIwCgkvLyBpICs9IDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl8wCgoqZm9yXzBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMyNwoJLy8gcmV0dXJuIHJldERhdGE7CglmcmFtZV9kaWcgMCAvLyByZXREYXRhOiBQb29sSW5mb1tdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMgoJcmV0c3ViCgovLyBnZXRQb29sQXBwSWQodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9nZXRQb29sQXBwSWQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIHBvb2xJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZ2V0UG9vbEFwcElkKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGdldFBvb2xBcHBJZAoJaXRvYgoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldFBvb2xBcHBJZCh2YWxpZGF0b3JJZDogdWludDY0LCBwb29sSWQ6IHVpbnQ2NCk6IHVpbnQ2NApnZXRQb29sQXBwSWQ6Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzM1CgkvLyBhc3NlcnQoCgkvLyAgICAgICBwb29sSWQgIT09IDAgJiYgcG9vbElkIDw9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUucG9vbHMubGVuZ3RoLAoJLy8gICAgICAgJ3Bvb2wgaWQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIG51bWJlciBvZiBwb29scyBmb3IgdGhpcyB2YWxpZGF0b3InCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0yIC8vIHBvb2xJZDogdWludDY0CglpbnRjIDAgLy8gMAoJIT0KCWR1cAoJYnogKnNraXBfYW5kMAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xJZDogdWludDY0CglpbnRjIDMgLy8gMjQKCTw9CgkmJgoKKnNraXBfYW5kMDoKCS8vIHBvb2wgaWQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIG51bWJlciBvZiBwb29scyBmb3IgdGhpcyB2YWxpZGF0b3IKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozMzkKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzW3Bvb2xJZCAtIDFdLnBvb2xBcHBJZDsKCWludGMgNiAvLyAgaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xJZDogdWludDY0CglpbnRjIDEgLy8gMQoJLQoJaW50YyA1IC8vIDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludGMgMCAvLyAwCgkrCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJcmV0c3ViCgovLyBnZXRQb29sSW5mbygodWludDY0LHVpbnQ2NCx1aW50NjQpKSh1aW50NjQsdWludDE2LHVpbnQ2NCkKKmFiaV9yb3V0ZV9nZXRQb29sSW5mbzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMiAvLyAweDE1MWY3Yzc1CgoJLy8gcG9vbEtleTogKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludGMgMyAvLyAyNAoJPT0KCgkvLyBhcmd1bWVudCAwIChwb29sS2V5KSBmb3IgZ2V0UG9vbEluZm8gbXVzdCBiZSBhICh1aW50NjQsdWludDY0LHVpbnQ2NCkKCWFzc2VydAoKCS8vIGV4ZWN1dGUgZ2V0UG9vbEluZm8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0LHVpbnQxNix1aW50NjQpCgljYWxsc3ViIGdldFBvb2xJbmZvCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2V0UG9vbEluZm8ocG9vbEtleTogVmFsaWRhdG9yUG9vbEtleSk6IFBvb2xJbmZvCmdldFBvb2xJbmZvOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM0NAoJLy8gcmV0dXJuIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5wb29sc1twb29sS2V5LnBvb2xJZCAtIDFdOwoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyA1IC8vIDE4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJcmV0c3ViCgovLyBnZXRDdXJNYXhTdGFrZVBlclBvb2wodWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX2dldEN1ck1heFN0YWtlUGVyUG9vbDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMiAvLyAweDE1MWY3Yzc1CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZ2V0Q3VyTWF4U3Rha2VQZXJQb29sKHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgZ2V0Q3VyTWF4U3Rha2VQZXJQb29sCglpdG9iCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2V0Q3VyTWF4U3Rha2VQZXJQb29sKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUpOiB1aW50NjQKLy8KLy8gQ2FsY3VsYXRlIHRoZSBtYXhpbXVtIHN0YWtlIHBlciBwb29sIGZvciBhIGdpdmVuIHZhbGlkYXRvci4KLy8gTm9ybWFsbHkgdGhpcyB3b3VsZCBiZSBtYXhBbGdvUGVyUG9vbCwgYnV0IGl0IHNob3VsZCBhbHNvIG5ldmVyIGdvIGFib3ZlIE1heEFsbG93ZWRTdGFrZSAvIG51bVBvb2xzIHNvCi8vIGFzIHBvb2xzIGFyZSBhZGRlZCB0aGUgbWF4IGFsbG93ZWQgcGVyIHBvb2wgY2FuIHJlZHVjZS4KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCmdldEN1ck1heFN0YWtlUGVyUG9vbDoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAxIC8vIDB4CglkdXBuIDIKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzU1CgkvLyBudW1Qb29scyA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUubnVtUG9vbHMgYXMgdWludDY0CglpbnRjIDggLy8gMjQyCglpbnRjIDEwIC8vIDIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyBudW1Qb29sczogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM1NgoJLy8gaGFyZE1heERpdmlkZWRCZXR3ZWVuUG9vbHMgPSB0aGlzLm1heEFsbG93ZWRTdGFrZSgpIC8gbnVtUG9vbHMKCWNhbGxzdWIgbWF4QWxsb3dlZFN0YWtlCglmcmFtZV9kaWcgMCAvLyBudW1Qb29sczogdWludDY0CgkvCglmcmFtZV9idXJ5IDEgLy8gaGFyZE1heERpdmlkZWRCZXR3ZWVuUG9vbHM6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNTcKCS8vIG1heFBlclBvb2w6IHVpbnQ2NCA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm1heEFsZ29QZXJQb29sCglwdXNoaW50IDIxNwoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMiAvLyBtYXhQZXJQb29sOiB1aW50NjQKCgkvLyAqaWYxX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM1OAoJLy8gbWF4UGVyUG9vbCA9PT0gMAoJZnJhbWVfZGlnIDIgLy8gbWF4UGVyUG9vbDogdWludDY0CglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzU5CgkvLyBtYXhQZXJQb29sID0gdGhpcy5tYXhBbGdvQWxsb3dlZFBlclBvb2woKQoJY2FsbHN1YiBtYXhBbGdvQWxsb3dlZFBlclBvb2wKCWZyYW1lX2J1cnkgMiAvLyBtYXhQZXJQb29sOiB1aW50NjQKCippZjFfZW5kOgoJLy8gKmlmMl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNjEKCS8vIGhhcmRNYXhEaXZpZGVkQmV0d2VlblBvb2xzIDwgbWF4UGVyUG9vbAoJZnJhbWVfZGlnIDEgLy8gaGFyZE1heERpdmlkZWRCZXR3ZWVuUG9vbHM6IHVpbnQ2NAoJZnJhbWVfZGlnIDIgLy8gbWF4UGVyUG9vbDogdWludDY0Cgk8CglieiAqaWYyX2VuZAoKCS8vICppZjJfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM2MgoJLy8gbWF4UGVyUG9vbCA9IGhhcmRNYXhEaXZpZGVkQmV0d2VlblBvb2xzCglmcmFtZV9kaWcgMSAvLyBoYXJkTWF4RGl2aWRlZEJldHdlZW5Qb29sczogdWludDY0CglmcmFtZV9idXJ5IDIgLy8gbWF4UGVyUG9vbDogdWludDY0CgoqaWYyX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNjQKCS8vIHJldHVybiBtYXhQZXJQb29sOwoJZnJhbWVfZGlnIDIgLy8gbWF4UGVyUG9vbDogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMgoJcmV0c3ViCgovLyBkb2VzU3Rha2VyTmVlZFRvUGF5TUJSKGFkZHJlc3MpYm9vbAoqYWJpX3JvdXRlX2RvZXNTdGFrZXJOZWVkVG9QYXlNQlI6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIHN0YWtlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChzdGFrZXIpIGZvciBkb2VzU3Rha2VyTmVlZFRvUGF5TUJSIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGRvZXNTdGFrZXJOZWVkVG9QYXlNQlIoYWRkcmVzcylib29sCgljYWxsc3ViIGRvZXNTdGFrZXJOZWVkVG9QYXlNQlIKCWJ5dGVjIDUgLy8gMHgwMAoJaW50YyAwIC8vIDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZG9lc1N0YWtlck5lZWRUb1BheU1CUihzdGFrZXI6IEFkZHJlc3MpOiBib29sZWFuCi8vCi8vIEhlbHBlciBjYWxsZXJzIGNhbiBjYWxsIHcvIHNpbXVsYXRlIHRvIGRldGVybWluZSBpZiAnQWRkU3Rha2VyJyBNQlIgc2hvdWxkIGJlIGluY2x1ZGVkIHcvIHN0YWtpbmcgYW1vdW50Ci8vIEBwYXJhbSBzdGFrZXIKZG9lc1N0YWtlck5lZWRUb1BheU1CUjoKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNzMKCS8vIHJldHVybiAhdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikuZXhpc3RzOwoJYnl0ZWMgMyAvLyAgInNwcyIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCglyZXRzdWIKCi8vIGdldFN0YWtlZFBvb2xzRm9yQWNjb3VudChhZGRyZXNzKSh1aW50NjQsdWludDY0LHVpbnQ2NClbXQoqYWJpX3JvdXRlX2dldFN0YWtlZFBvb2xzRm9yQWNjb3VudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMiAvLyAweDE1MWY3Yzc1CgoJLy8gc3Rha2VyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50YyA0IC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHN0YWtlcikgZm9yIGdldFN0YWtlZFBvb2xzRm9yQWNjb3VudCBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBnZXRTdGFrZWRQb29sc0ZvckFjY291bnQoYWRkcmVzcykodWludDY0LHVpbnQ2NCx1aW50NjQpW10KCWNhbGxzdWIgZ2V0U3Rha2VkUG9vbHNGb3JBY2NvdW50CglkdXAKCWxlbgoJaW50YyAzIC8vIDI0CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2V0U3Rha2VkUG9vbHNGb3JBY2NvdW50KHN0YWtlcjogQWRkcmVzcyk6IFZhbGlkYXRvclBvb2xLZXlbXQovLwovLyBSZXRyaWV2ZXMgdGhlIHN0YWtlZCBwb29scyBmb3IgYW4gYWNjb3VudC4KLy8KLy8gQHBhcmFtIHtBZGRyZXNzfSBzdGFrZXIgLSBUaGUgYWNjb3VudCB0byByZXRyaWV2ZSBzdGFrZWQgcG9vbHMgZm9yLgovLyBAcmV0dXJuIHtWYWxpZGF0b3JQb29sS2V5W119IC0gVGhlIGFycmF5IG9mIHN0YWtlZCBwb29scyBmb3IgdGhlIGFjY291bnQuCmdldFN0YWtlZFBvb2xzRm9yQWNjb3VudDoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAxIC8vIDB4CglkdXBuIDIKCgkvLyAqaWYzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM4MwoJLy8gIXRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLmV4aXN0cwoJYnl0ZWMgMyAvLyAgInNwcyIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCglieiAqaWYzX2VuZAoKCS8vICppZjNfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM4NAoJLy8gcmV0dXJuIFtdOwoJYnl0ZWMgMSAvLyAweAoJYiAqZ2V0U3Rha2VkUG9vbHNGb3JBY2NvdW50KnJldHVybgoKKmlmM19lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Mzg2CgkvLyByZXREYXRhOiBWYWxpZGF0b3JQb29sS2V5W10gPSBbXQoJYnl0ZWMgMSAvLyAweAoJZnJhbWVfYnVyeSAwIC8vIHJldERhdGE6IFZhbGlkYXRvclBvb2xLZXlbXQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozODcKCS8vIHBvb2xTZXQgPSBjbG9uZSh0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZSkKCWJ5dGVjIDMgLy8gICJzcHMiCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlCglhc3NlcnQKCWZyYW1lX2J1cnkgMSAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM4OAoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBwb29sU2V0Lmxlbmd0aDsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCipmb3JfMToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozODgKCS8vIGkgPCBwb29sU2V0Lmxlbmd0aAoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDcgLy8gNgoJPAoJYnogKmZvcl8xX2VuZAoKCS8vICppZjRfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Mzg5CgkvLyBwb29sU2V0W2ldLmlkICE9PSAwCglmcmFtZV9kaWcgMSAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDAgLy8gMAoJKwoJaW50YyAyIC8vIDgKCWV4dHJhY3QzCglidG9pCglpbnRjIDAgLy8gMAoJIT0KCWJ6ICppZjRfZW5kCgoJLy8gKmlmNF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzkwCgkvLyByZXREYXRhLnB1c2gocG9vbFNldFtpXSkKCWZyYW1lX2RpZyAwIC8vIHJldERhdGE6IFZhbGlkYXRvclBvb2xLZXlbXQoJZnJhbWVfZGlnIDEgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAzIC8vIDI0CglleHRyYWN0MwoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gcmV0RGF0YTogVmFsaWRhdG9yUG9vbEtleVtdCgoqaWY0X2VuZDoKCipmb3JfMV9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozODgKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzEKCipmb3JfMV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzkzCgkvLyByZXR1cm4gcmV0RGF0YTsKCWZyYW1lX2RpZyAwIC8vIHJldERhdGE6IFZhbGlkYXRvclBvb2xLZXlbXQoKKmdldFN0YWtlZFBvb2xzRm9yQWNjb3VudCpyZXR1cm46CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAyCglyZXRzdWIKCi8vIGdldFRva2VuUGF5b3V0UmF0aW8odWludDY0KSh1aW50NjRbMjRdLHVpbnQ2NCkKKmFiaV9yb3V0ZV9nZXRUb2tlblBheW91dFJhdGlvOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBnZXRUb2tlblBheW91dFJhdGlvKHVpbnQ2NCkodWludDY0WzI0XSx1aW50NjQpCgljYWxsc3ViIGdldFRva2VuUGF5b3V0UmF0aW8KCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnZXRUb2tlblBheW91dFJhdGlvKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUpOiBQb29sVG9rZW5QYXlvdXRSYXRpbwovLwovLyBSZXRyaWV2ZXMgdGhlIHRva2VuIHBheW91dCByYXRpbyBmb3IgYSBnaXZlbiB2YWxpZGF0b3IgLSByZXR1cm5pbmcgdGhlIHBvb2wgcmF0aW9zIG9mIHdob2xlIHNvIHRoYXQgdG9rZW4KLy8gcGF5b3V0cyBhY3Jvc3MgcG9vbHMgY2FuIGJlIGJhc2VkIG9uIGEgc3RhYmxlIHNuYXBob3N0IG9mIHN0YWtlLgovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvci4KLy8gQHJldHVybiB7UG9vbFRva2VuUGF5b3V0UmF0aW99IC0gVGhlIHRva2VuIHBheW91dCByYXRpbyBmb3IgdGhlIHZhbGlkYXRvci4KZ2V0VG9rZW5QYXlvdXRSYXRpbzoKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MDUKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnRva2VuUGF5b3V0UmF0aW87CglpbnRjIDE0IC8vICBoZWFkT2Zmc2V0CglpbnRjIDE4IC8vIDIwMAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJcmV0c3ViCgovLyBnZXROb2RlUG9vbEFzc2lnbm1lbnRzKHVpbnQ2NCkoKHVpbnQ2NFszXSlbOF0pCiphYmlfcm91dGVfZ2V0Tm9kZVBvb2xBc3NpZ25tZW50czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMiAvLyAweDE1MWY3Yzc1CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZ2V0Tm9kZVBvb2xBc3NpZ25tZW50cyh1aW50NjQpKCh1aW50NjRbM10pWzhdKQoJY2FsbHN1YiBnZXROb2RlUG9vbEFzc2lnbm1lbnRzCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gZ2V0Tm9kZVBvb2xBc3NpZ25tZW50cyh2YWxpZGF0b3JJZDogdWludDY0KTogTm9kZVBvb2xBc3NpZ25tZW50Q29uZmlnCmdldE5vZGVQb29sQXNzaWdubWVudHM6Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDEwCgkvLyBhc3NlcnQodGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS5leGlzdHMsICJ0aGUgc3BlY2lmaWVkIHZhbGlkYXRvciBpZCBkb2Vzbid0IGV4aXN0IikKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCgoJLy8gdGhlIHNwZWNpZmllZCB2YWxpZGF0b3IgaWQgZG9lc24ndCBleGlzdAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQxMgoJLy8gcmV0dXJuIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUubm9kZVBvb2xBc3NpZ25tZW50czsKCWludGMgMTYgLy8gIGhlYWRPZmZzZXQKCWludGMgMjIgLy8gMTkyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglyZXRzdWIKCi8vIGdldE5GRFJlZ2lzdHJ5SUQoKXVpbnQ2NAoqYWJpX3JvdXRlX2dldE5GRFJlZ2lzdHJ5SUQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZ2V0TkZEUmVnaXN0cnlJRCgpdWludDY0CgljYWxsc3ViIGdldE5GRFJlZ2lzdHJ5SUQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBnZXRORkRSZWdpc3RyeUlEKCk6IHVpbnQ2NApnZXRORkRSZWdpc3RyeUlEOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQxNgoJLy8gcmV0dXJuIHRoaXMubmZkUmVnaXN0cnlBcHBJZDsKCWludGMgMTkgLy8gVE1QTF9uZmRSZWdpc3RyeUFwcElkCglyZXRzdWIKCi8vIGFkZFZhbGlkYXRvcihwYXksc3RyaW5nLCh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KSl1aW50NjQKKmFiaV9yb3V0ZV9hZGRWYWxpZGF0b3I6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIGNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50YyA4IC8vIDI0MgoJPT0KCgkvLyBhcmd1bWVudCAwIChjb25maWcpIGZvciBhZGRWYWxpZGF0b3IgbXVzdCBiZSBhICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJYXNzZXJ0CgoJLy8gbmZkTmFtZTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIG1iclBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludGMgMSAvLyAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnRjIDEgLy8gIHBheQoJPT0KCgkvLyBhcmd1bWVudCAyIChtYnJQYXltZW50KSBmb3IgYWRkVmFsaWRhdG9yIG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYWRkVmFsaWRhdG9yKHBheSxzdHJpbmcsKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpKXVpbnQ2NAoJY2FsbHN1YiBhZGRWYWxpZGF0b3IKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBhZGRWYWxpZGF0b3IobWJyUGF5bWVudDogUGF5VHhuLCBuZmROYW1lOiBzdHJpbmcsIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnKTogdWludDY0Ci8vCi8vIEFkZHMgYSBuZXcgdmFsaWRhdG9yCi8vIFJlcXVpcmVzIGF0IGxlYXN0IDEwIEFMR08gYXMgdGhlICdmZWUnIGZvciB0aGUgdHJhbnNhY3Rpb24gdG8gaGVscCBkaXNzdWFkZSBzcGFtbWVkIHZhbGlkYXRvciBhZGRzLgovLwovLyBAcGFyYW0ge1BheVR4bn0gbWJyUGF5bWVudCBwYXltZW50IGZyb20gY2FsbGVyIHdoaWNoIGNvdmVycyBtYnIgaW5jcmVhc2Ugb2YgbmV3IHZhbGlkYXRvciBzdG9yYWdlCi8vIEBwYXJhbSB7c3RyaW5nfSBuZmROYW1lIChPcHRpb25hbCkgTmFtZSBvZiBuZmQgKHVzZWQgYXMgZG91YmxlLWNoZWNrIGFnYWluc3QgaWQgc3BlY2lmaWVkIGluIGNvbmZpZykKLy8gQHBhcmFtIHtWYWxpZGF0b3JDb25maWd9IGNvbmZpZyBWYWxpZGF0b3JDb25maWcgc3RydWN0Ci8vIEByZXR1cm5zIHt1aW50NjR9IHZhbGlkYXRvciBpZAphZGRWYWxpZGF0b3I6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MjgKCS8vIHRoaXMudmFsaWRhdGVDb25maWcoY29uZmlnKQoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCgljYWxsc3ViIHZhbGlkYXRlQ29uZmlnCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQyOQoJLy8gYXNzZXJ0KGNvbmZpZy5vd25lciAhPT0gQWRkcmVzcy56ZXJvQWRkcmVzcykKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA4IDMyCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDMwCgkvLyBhc3NlcnQoY29uZmlnLm1hbmFnZXIgIT09IEFkZHJlc3MuemVyb0FkZHJlc3MpCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgNDAgMzIKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MzEKCS8vIGFzc2VydCh0aGlzLnR4bi5zZW5kZXIgPT09IGNvbmZpZy5vd25lciwgJ3NlbmRlciBtdXN0IGJlIG93bmVyIHRvIGFkZCBuZXcgdmFsaWRhdG9yJykKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA4IDMyCgk9PQoKCS8vIHNlbmRlciBtdXN0IGJlIG93bmVyIHRvIGFkZCBuZXcgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDMzCgkvLyB2ZXJpZnlQYXlUeG4obWJyUGF5bWVudCwgeyBhbW91bnQ6IHRoaXMuZ2V0TWJyQW1vdW50cygpLmFkZFZhbGlkYXRvck1iciB9KQoJLy8gdmVyaWZ5IGFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CgljYWxsc3ViIGdldE1ickFtb3VudHMKCWV4dHJhY3QgMCA4CglidG9pCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoibWJyUGF5bWVudCIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiJ0aGlzLmdldE1ickFtb3VudHMoKS5hZGRWYWxpZGF0b3JNYnIifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQzNQoJLy8gYXNzZXJ0KG1iclBheW1lbnQuZmVlID4gMTAgKiAxMDAwMDAwLCAnZmVlIG11c3QgYmUgMTAgQUxHTyBvciBtb3JlIHRvIHByZXZlbnQgc3BhbW1pbmcgb2YgdmFsaWRhdG9ycycpCglmcmFtZV9kaWcgLTEgLy8gbWJyUGF5bWVudDogUGF5VHhuCglndHhucyBGZWUKCXB1c2hpbnQgMTAwMDAwMDAKCT4KCgkvLyBmZWUgbXVzdCBiZSAxMCBBTEdPIG9yIG1vcmUgdG8gcHJldmVudCBzcGFtbWluZyBvZiB2YWxpZGF0b3JzCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDM4CgkvLyB2YWxpZGF0b3JJZCA9IHRoaXMubnVtVmFsaWRhdG9ycy52YWx1ZSArIDEKCWJ5dGVjIDEyIC8vICAibnVtViIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAwIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDM5CgkvLyB0aGlzLm51bVZhbGlkYXRvcnMudmFsdWUgPSB2YWxpZGF0b3JJZAoJYnl0ZWMgMTIgLy8gICJudW1WIgoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDQxCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLmNyZWF0ZSgpCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJcHVzaGludCAxMDkyCglib3hfY3JlYXRlCglwb3AKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDQyCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZyA9IGNvbmZpZwoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ0MwoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuaWQgPSB2YWxpZGF0b3JJZAoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vICppZjVfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDQ2CgkvLyBjb25maWcubmZkRm9ySW5mbyAhPT0gMAoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDcyIDgKCWJ0b2kKCWludGMgMCAvLyAwCgkhPQoJYnogKmlmNV9lbmQKCgkvLyAqaWY1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NDgKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpLAoJLy8gICAgICAgICBhcHBsaWNhdGlvbkFyZ3M6IFsnaXNfdmFsaWRfbmZkX2FwcGlkJywgbmZkTmFtZSwgaXRvYihjb25maWcubmZkRm9ySW5mbyldLAoJLy8gICAgICAgICBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KGNvbmZpZy5uZmRGb3JJbmZvKV0sCgkvLyAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ0OQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpCglpbnRjIDE5IC8vIFRNUExfbmZkUmVnaXN0cnlBcHBJZAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ1MAoJLy8gYXBwbGljYXRpb25BcmdzOiBbJ2lzX3ZhbGlkX25mZF9hcHBpZCcsIG5mZE5hbWUsIGl0b2IoY29uZmlnLm5mZEZvckluZm8pXQoJYnl0ZWMgMTMgLy8gICJpc192YWxpZF9uZmRfYXBwaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0yIC8vIG5mZE5hbWU6IHN0cmluZwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA3MiA4CglidG9pCglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NTEKCS8vIGFwcGxpY2F0aW9uczogW0FwcElELmZyb21VaW50NjQoY29uZmlnLm5mZEZvckluZm8pXQoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDcyIDgKCWJ0b2kKCWl0eG5fZmllbGQgQXBwbGljYXRpb25zCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NTMKCS8vIGFzc2VydChidG9pKHRoaXMuaXR4bi5sYXN0TG9nKSA9PT0gMSwgInByb3ZpZGVkIE5GRCBpc24ndCB2YWxpZCIpCglpdHhuIExhc3RMb2cKCWJ0b2kKCWludGMgMSAvLyAxCgk9PQoKCS8vIHByb3ZpZGVkIE5GRCBpc24ndCB2YWxpZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ1NQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IChBcHBJRC5mcm9tVWludDY0KGNvbmZpZy5uZmRGb3JJbmZvKS5nbG9iYWxTdGF0ZSgnaS5vd25lci5hJykgYXMgQWRkcmVzcyksCgkvLyAgICAgICAgICdJZiBzcGVjaWZ5aW5nIE5GRCwgYWNjb3VudCBhZGRpbmcgdmFsaWRhdG9yIG11c3QgYmUgb3duZXInCgkvLyAgICAgICApCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgNzIgOAoJYnRvaQoJYnl0ZWMgOSAvLyAgImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KGNvbmZpZy5uZmRGb3JJbmZvKS5nbG9iYWxTdGF0ZSgnaS5vd25lci5hJykKCWFzc2VydAoJPT0KCgkvLyBJZiBzcGVjaWZ5aW5nIE5GRCwgYWNjb3VudCBhZGRpbmcgdmFsaWRhdG9yIG11c3QgYmUgb3duZXIKCWFzc2VydAoKKmlmNV9lbmQ6CgkvLyAqaWY2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ2MQoJLy8gY29uZmlnLmVudHJ5R2F0aW5nVHlwZSA9PT0gR0FUSU5HX1RZUEVfQ1JFQVRFRF9CWV9ORkRfQUREUkVTU0VTIHx8CgkvLyAgICAgICBjb25maWcuZW50cnlHYXRpbmdUeXBlID09PSBHQVRJTkdfVFlQRV9TRUdNRU5UX09GX05GRAoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDgwIDEKCWJ0b2kKCWludGMgOSAvLyAzCgk9PQoJZHVwCglibnogKnNraXBfb3IwCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgODAgMQoJYnRvaQoJaW50YyAyMCAvLyA0Cgk9PQoJfHwKCipza2lwX29yMDoKCWJ6ICppZjZfZW5kCgoJLy8gKmlmNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDY1CgkvLyBhc3NlcnQodGhpcy5pc05GREFwcElEVmFsaWQoY29uZmlnLmVudHJ5R2F0aW5nQXNzZXRzWzBdKSwgJ3Byb3ZpZGVkIE5GRCBBcHAgaWQgZm9yIGdhdGluZyBtdXN0IGJlIHZhbGlkIE5GRCcpCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTEzIDgKCWJ0b2kKCWNhbGxzdWIgaXNORkRBcHBJRFZhbGlkCgoJLy8gcHJvdmlkZWQgTkZEIEFwcCBpZCBmb3IgZ2F0aW5nIG11c3QgYmUgdmFsaWQgTkZECglhc3NlcnQKCippZjZfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ2OAoJLy8gcmV0dXJuIHZhbGlkYXRvcklkOwoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBjaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyKHVpbnQ2NCxhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyOgoJLy8gbWFuYWdlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChtYW5hZ2VyKSBmb3IgY2hhbmdlVmFsaWRhdG9yTWFuYWdlciBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY2hhbmdlVmFsaWRhdG9yTWFuYWdlcih1aW50NjQsYWRkcmVzcyl2b2lkCgljYWxsc3ViIGNoYW5nZVZhbGlkYXRvck1hbmFnZXIKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGNoYW5nZVZhbGlkYXRvck1hbmFnZXIodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgbWFuYWdlcjogQWRkcmVzcyk6IHZvaWQKLy8KLy8gQ2hhbmdlcyB0aGUgVmFsaWRhdG9yIG1hbmFnZXIgZm9yIGEgc3BlY2lmaWMgVmFsaWRhdG9yIGlkLgovLyBbIE9OTFkgT1dORVIgQ0FOIENIQU5HRSBdCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yIHRvIGNoYW5nZSB0aGUgbWFuYWdlciBmb3IuCi8vIEBwYXJhbSB7QWRkcmVzc30gbWFuYWdlciAtIFRoZSBuZXcgbWFuYWdlciBhZGRyZXNzLgpjaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ3OQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5vd25lciwKCS8vICAgICAgICdjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyJwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWludGMgMiAvLyA4CglpbnRjIDQgLy8gMzIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09CgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ4MwoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubWFuYWdlciA9IG1hbmFnZXIKCWludGMgMTcgLy8gNDAKCWZyYW1lX2RpZyAtMiAvLyBtYW5hZ2VyOiBBZGRyZXNzCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIGNoYW5nZVZhbGlkYXRvclN1bnNldEluZm8odWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2NoYW5nZVZhbGlkYXRvclN1bnNldEluZm86CgkvLyBzdW5zZXR0aW5nVG86IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIHN1bnNldHRpbmdPbjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY2hhbmdlVmFsaWRhdG9yU3Vuc2V0SW5mbyh1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGNoYW5nZVZhbGlkYXRvclN1bnNldEluZm8KCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGNoYW5nZVZhbGlkYXRvclN1bnNldEluZm8odmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgc3Vuc2V0dGluZ09uOiB1aW50NjQsIHN1bnNldHRpbmdUbzogVmFsaWRhdG9ySWRUeXBlKTogdm9pZAovLwovLyBVcGRhdGVzIHRoZSBzdW5zZXQgaW5mb3JtYXRpb24gZm9yIGEgZ2l2ZW4gdmFsaWRhdG9yLgovLyBbIE9OTFkgT1dORVIgQ0FOIENIQU5HRSBdCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yIHRvIHVwZGF0ZS4KLy8gQHBhcmFtIHt1aW50NjR9IHN1bnNldHRpbmdPbiAtIFRoZSBuZXcgc3Vuc2V0IHRpbWVzdGFtcC4KLy8gQHBhcmFtIHt1aW50NjR9IHN1bnNldHRpbmdUbyAtIFRoZSBuZXcgc3Vuc2V0IHRvIHZhbGlkYXRvciBpZC4KY2hhbmdlVmFsaWRhdG9yU3Vuc2V0SW5mbzoKCXByb3RvIDMgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0OTUKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnRjIDIgLy8gOAoJaW50YyA0IC8vIDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXIKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0OTkKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLnN1bnNldHRpbmdPbiA9IHN1bnNldHRpbmdPbgoJaW50YyAyNyAvLyAyMjYKCWZyYW1lX2RpZyAtMiAvLyBzdW5zZXR0aW5nT246IHVpbnQ2NAoJaXRvYgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MDAKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLnN1bnNldHRpbmdUbyA9IHN1bnNldHRpbmdUbwoJcHVzaGludCAyMzQKCWZyYW1lX2RpZyAtMyAvLyBzdW5zZXR0aW5nVG86IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBjaGFuZ2VWYWxpZGF0b3JORkQodWludDY0LHVpbnQ2NCxzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX2NoYW5nZVZhbGlkYXRvck5GRDoKCS8vIG5mZE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZXh0cmFjdCAyIDAKCgkvLyBuZmRBcHBJRDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY2hhbmdlVmFsaWRhdG9yTkZEKHVpbnQ2NCx1aW50NjQsc3RyaW5nKXZvaWQKCWNhbGxzdWIgY2hhbmdlVmFsaWRhdG9yTkZECglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBjaGFuZ2VWYWxpZGF0b3JORkQodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgbmZkQXBwSUQ6IHVpbnQ2NCwgbmZkTmFtZTogc3RyaW5nKTogdm9pZAovLwovLyBDaGFuZ2VzIHRoZSBORkQgZm9yIGEgdmFsaWRhdG9yIGluIHRoZSB2YWxpZGF0b3JMaXN0IGNvbnRyYWN0LgovLyBbIE9OTFkgT1dORVIgQ0FOIENIQU5HRSBdCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yIHRvIHVwZGF0ZS4KLy8gQHBhcmFtIHt1aW50NjR9IG5mZEFwcElEIC0gVGhlIGFwcGxpY2F0aW9uIGlkIG9mIHRoZSBORkQgdG8gYXNzaWduIHRvIHRoZSB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7c3RyaW5nfSBuZmROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIE5GRCAod2hpY2ggbXVzdCBtYXRjaCkKY2hhbmdlVmFsaWRhdG9yTkZEOgoJcHJvdG8gMyAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUxMwoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5vd25lciwKCS8vICAgICAgICdjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyJwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWludGMgMiAvLyA4CglpbnRjIDQgLy8gMzIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09CgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUxOAoJLy8gc2VuZEFwcENhbGwoewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpLAoJLy8gICAgICAgYXBwbGljYXRpb25BcmdzOiBbJ2lzX3ZhbGlkX25mZF9hcHBpZCcsIG5mZE5hbWUsIGl0b2IobmZkQXBwSUQpXSwKCS8vICAgICAgIGFwcGxpY2F0aW9uczogW0FwcElELmZyb21VaW50NjQobmZkQXBwSUQpXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUxOQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpCglpbnRjIDE5IC8vIFRNUExfbmZkUmVnaXN0cnlBcHBJZAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUyMAoJLy8gYXBwbGljYXRpb25BcmdzOiBbJ2lzX3ZhbGlkX25mZF9hcHBpZCcsIG5mZE5hbWUsIGl0b2IobmZkQXBwSUQpXQoJYnl0ZWMgMTMgLy8gICJpc192YWxpZF9uZmRfYXBwaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0zIC8vIG5mZE5hbWU6IHN0cmluZwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJRDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MjEKCS8vIGFwcGxpY2F0aW9uczogW0FwcElELmZyb21VaW50NjQobmZkQXBwSUQpXQoJZnJhbWVfZGlnIC0yIC8vIG5mZEFwcElEOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25zCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MjQKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gKEFwcElELmZyb21VaW50NjQobmZkQXBwSUQpLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKSBhcyBBZGRyZXNzKSwKCS8vICAgICAgICdJZiBzcGVjaWZ5aW5nIE5GRCwgYWNjb3VudCBhZGRpbmcgdmFsaWRhdG9yIG11c3QgYmUgb3duZXInCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0yIC8vIG5mZEFwcElEOiB1aW50NjQKCWJ5dGVjIDkgLy8gICJpLm93bmVyLmEiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJRCkuZ2xvYmFsU3RhdGUoJ2kub3duZXIuYScpCglhc3NlcnQKCT09CgoJLy8gSWYgc3BlY2lmeWluZyBORkQsIGFjY291bnQgYWRkaW5nIHZhbGlkYXRvciBtdXN0IGJlIG93bmVyCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTI4CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5uZmRGb3JJbmZvID0gbmZkQXBwSUQKCWludGMgMjEgLy8gNzIKCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJRDogdWludDY0CglpdG9iCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIGNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzKHVpbnQ2NCxhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzczoKCS8vIGNvbW1pc3Npb25BZGRyZXNzOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50YyA0IC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGNvbW1pc3Npb25BZGRyZXNzKSBmb3IgY2hhbmdlVmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzKHVpbnQ2NCxhZGRyZXNzKXZvaWQKCWNhbGxzdWIgY2hhbmdlVmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIGNvbW1pc3Npb25BZGRyZXNzOiBBZGRyZXNzKTogdm9pZAovLwovLyBDaGFuZ2UgdGhlIGNvbW1pc3Npb24gYWRkcmVzcyB0aGF0IHZhbGlkYXRvciByZXdhcmRzIGFyZSBzZW50IHRvLgovLyBbIE9OTFkgT1dORVIgQ0FOIENIQU5HRSBdCmNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUzNgoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5vd25lciwKCS8vICAgICAgICdjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyJwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWludGMgMiAvLyA4CglpbnRjIDQgLy8gMzIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09CgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU0MAoJLy8gYXNzZXJ0KGNvbW1pc3Npb25BZGRyZXNzICE9PSBBZGRyZXNzLnplcm9BZGRyZXNzKQoJZnJhbWVfZGlnIC0yIC8vIGNvbW1pc3Npb25BZGRyZXNzOiBBZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTQxCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy52YWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyA9IGNvbW1pc3Npb25BZGRyZXNzCglwdXNoaW50IDE3NwoJZnJhbWVfZGlnIC0yIC8vIGNvbW1pc3Npb25BZGRyZXNzOiBBZGRyZXNzCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIGNoYW5nZVZhbGlkYXRvclJld2FyZEluZm8odWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2NoYW5nZVZhbGlkYXRvclJld2FyZEluZm86CgkvLyBSZXdhcmRQZXJQYXlvdXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNgoJYnRvaQoKCS8vIEdhdGluZ0Fzc2V0TWluQmFsYW5jZTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA1CglidG9pCgoJLy8gRW50cnlHYXRpbmdBc3NldHM6IHVpbnQ2NFs0XQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAyIChFbnRyeUdhdGluZ0Fzc2V0cykgZm9yIGNoYW5nZVZhbGlkYXRvclJld2FyZEluZm8gbXVzdCBiZSBhIHVpbnQ2NFs0XQoJYXNzZXJ0CgoJLy8gRW50cnlHYXRpbmdBZGRyZXNzOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglkdXAKCWxlbgoJaW50YyA0IC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDMgKEVudHJ5R2F0aW5nQWRkcmVzcykgZm9yIGNoYW5nZVZhbGlkYXRvclJld2FyZEluZm8gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIEVudHJ5R2F0aW5nVHlwZTogdWludDgKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnRjIDEgLy8gMQoJPT0KCgkvLyBhcmd1bWVudCA0IChFbnRyeUdhdGluZ1R5cGUpIGZvciBjaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvIG11c3QgYmUgYSB1aW50OAoJYXNzZXJ0CglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyh1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGNoYW5nZVZhbGlkYXRvclJld2FyZEluZm8KCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGNoYW5nZVZhbGlkYXRvclJld2FyZEluZm8odmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgRW50cnlHYXRpbmdUeXBlOiB1aW50OCwgRW50cnlHYXRpbmdBZGRyZXNzOiBBZGRyZXNzLCBFbnRyeUdhdGluZ0Fzc2V0czogU3RhdGljQXJyYXk8dWludDY0LCA0PiwgR2F0aW5nQXNzZXRNaW5CYWxhbmNlOiB1aW50NjQsIFJld2FyZFBlclBheW91dDogdWludDY0KTogdm9pZAovLwovLyBBbGxvdyB0aGUgYWRkaXRpb25hbCByZXdhcmRzIChnYXRpbmcgZW50cnksIGFkZGl0aW9uYWwgdG9rZW4gcmV3YXJkcykgaW5mb3JtYXRpb24gYmUgY2hhbmdlZCBhdCB3aWxsLgovLyBbIE9OTFkgT1dORVIgQ0FOIENIQU5HRSBdCmNoYW5nZVZhbGlkYXRvclJld2FyZEluZm86Cglwcm90byA2IDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTU2CgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm93bmVyLAoJLy8gICAgICAgJ2NhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXInCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJaW50YyAyIC8vIDgKCWludGMgNCAvLyAzMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTYxCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5lbnRyeUdhdGluZ1R5cGUgPSBFbnRyeUdhdGluZ1R5cGUKCWludGMgMzUgLy8gODAKCWZyYW1lX2RpZyAtMiAvLyBFbnRyeUdhdGluZ1R5cGU6IHVpbnQ4CglpdG9iCglleHRyYWN0IDcgMQoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1NjIKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLmVudHJ5R2F0aW5nQWRkcmVzcyA9IEVudHJ5R2F0aW5nQWRkcmVzcwoJcHVzaGludCA4MQoJZnJhbWVfZGlnIC0zIC8vIEVudHJ5R2F0aW5nQWRkcmVzczogQWRkcmVzcwoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1NjMKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLmVudHJ5R2F0aW5nQXNzZXRzID0gRW50cnlHYXRpbmdBc3NldHMKCXB1c2hpbnQgMTEzCglmcmFtZV9kaWcgLTQgLy8gRW50cnlHYXRpbmdBc3NldHM6IFN0YXRpY0FycmF5PHVpbnQ2NCwgND4KCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTY0CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5nYXRpbmdBc3NldE1pbkJhbGFuY2UgPSBHYXRpbmdBc3NldE1pbkJhbGFuY2UKCWludGMgMzYgLy8gMTQ1CglmcmFtZV9kaWcgLTUgLy8gR2F0aW5nQXNzZXRNaW5CYWxhbmNlOiB1aW50NjQKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTY1CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5yZXdhcmRQZXJQYXlvdXQgPSBSZXdhcmRQZXJQYXlvdXQKCXB1c2hpbnQgMTYxCglmcmFtZV9kaWcgLTYgLy8gUmV3YXJkUGVyUGF5b3V0OiB1aW50NjQKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gYWRkUG9vbChwYXksdWludDY0LHVpbnQ2NCkodWludDY0LHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfYWRkUG9vbDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMiAvLyAweDE1MWY3Yzc1CgoJLy8gbm9kZU51bTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIG1iclBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludGMgMSAvLyAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnRjIDEgLy8gIHBheQoJPT0KCgkvLyBhcmd1bWVudCAyIChtYnJQYXltZW50KSBmb3IgYWRkUG9vbCBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGFkZFBvb2wocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJY2FsbHN1YiBhZGRQb29sCgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gYWRkUG9vbChtYnJQYXltZW50OiBQYXlUeG4sIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIG5vZGVOdW06IHVpbnQ2NCk6IFZhbGlkYXRvclBvb2xLZXkKLy8KLy8gQWRkcyBhIG5ldyBwb29sIHRvIGEgdmFsaWRhdG9yJ3MgcG9vbCBzZXQsIHJldHVybmluZyB0aGUgJ2tleScgdG8gcmVmZXJlbmNlIHRoZSBwb29sIGluIHRoZSBmdXR1cmUgZm9yIHN0YWtpbmcsIGV0Yy4KLy8gVGhlIGNhbGxlciBtdXN0IHBheSB0aGUgY29zdCBvZiB0aGUgdmFsaWRhdG9ycyBNQlIgaW5jcmVhc2UgYXMgd2VsbCBhcyB0aGUgTUJSIHRoYXQgd2lsbCBiZSBuZWVkZWQgZm9yIHRoZSBwb29sIGl0c2VsZi4KLy8KLy8gWyBPTkxZIE9XTkVSIE9SIE1BTkFHRVIgQ0FOIGNhbGwgXQovLyBAcGFyYW0ge1BheVR4bn0gbWJyUGF5bWVudCBwYXltZW50IGZyb20gY2FsbGVyIHdoaWNoIGNvdmVycyBtYnIgaW5jcmVhc2Ugb2YgYWRkaW5nIGEgbmV3IHBvb2wKLy8gQHBhcmFtIHt1aW50NjR9IHZhbGlkYXRvcklkIGlzIGlkIG9mIHZhbGlkYXRvciB0byBwb29sIHRvIChtdXN0IGJlIG93bmVyIG9yIG1hbmFnZXIpCi8vIEBwYXJhbSB7dWludDY0fSBub2RlTnVtIGlzIG5vZGUgbnVtYmVyIHRvIGFkZCB0bwovLyBAcmV0dXJucyB7VmFsaWRhdG9yUG9vbEtleX0gcG9vbCBrZXkgdG8gY3JlYXRlZCBwb29sCmFkZFBvb2w6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU4MQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5vd25lciB8fAoJLy8gICAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm1hbmFnZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yJwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWludGMgMiAvLyA4CglpbnRjIDQgLy8gMzIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09CglkdXAKCWJueiAqc2tpcF9vcjEKCXR4biBTZW5kZXIKCWludGMgMTcgLy8gNDAKCWludGMgNCAvLyAzMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCXx8Cgoqc2tpcF9vcjE6CgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3IKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1ODgKCS8vIHZlcmlmeVBheVR4bihtYnJQYXltZW50LCB7IGFtb3VudDogdGhpcy5nZXRNYnJBbW91bnRzKCkuYWRkUG9vbE1iciwgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MgfSkKCS8vIHZlcmlmeSBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJY2FsbHN1YiBnZXRNYnJBbW91bnRzCglleHRyYWN0IDggOAoJYnRvaQoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6Im1iclBheW1lbnQiLCJmaWVsZCI6ImFtb3VudCIsImV4cGVjdGVkIjoidGhpcy5nZXRNYnJBbW91bnRzKCkuYWRkUG9vbE1iciJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6Im1iclBheW1lbnQiLCJmaWVsZCI6InJlY2VpdmVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFwcC5hZGRyZXNzIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1OTAKCS8vIGFzc2VydCh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLmV4aXN0cywgInNwZWNpZmllZCB2YWxpZGF0b3IgaWQgaXNuJ3QgdmFsaWQiKQoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCgkvLyBzcGVjaWZpZWQgdmFsaWRhdG9yIGlkIGlzbid0IHZhbGlkCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTkyCgkvLyBudW1Qb29sczogdWludDY0ID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZS5udW1Qb29scyBhcyB1aW50NjQKCWludGMgOCAvLyAyNDIKCWludGMgMTAgLy8gMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAwIC8vIG51bVBvb2xzOiB1aW50NjQKCgkvLyAqaWY3X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU5MwoJLy8gKG51bVBvb2xzIGFzIHVpbnQ2NCkgPj0gTUFYX1BPT0xTCglmcmFtZV9kaWcgMCAvLyBudW1Qb29sczogdWludDY0CglpbnRjIDMgLy8gMjQKCT49CglieiAqaWY3X2VuZAoKCS8vICppZjdfY29uc2VxdWVudAoJLy8gYWxyZWFkeSBhdCBtYXggcG9vbCBzaXplCgllcnIKCippZjdfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU5NgoJLy8gbnVtUG9vbHMgKz0gMQoJZnJhbWVfZGlnIDAgLy8gbnVtUG9vbHM6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBudW1Qb29sczogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU5OQoJLy8gc2VuZEFwcENhbGwoewoJLy8gICAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRpb24uTm9PcCwKCS8vICAgICAgIGFwcHJvdmFsUHJvZ3JhbTogWwoJLy8gICAgICAgICB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLmV4dHJhY3QoMCwgNDA5NiksCgkvLyAgICAgICAgIHRoaXMuc3Rha2luZ1Bvb2xBcHByb3ZhbFByb2dyYW0uZXh0cmFjdCg0MDk2LCB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLnNpemUgLSA0MDk2KSwKCS8vICAgICAgIF0sCgkvLyAgICAgICBjbGVhclN0YXRlUHJvZ3JhbTogU3Rha2luZ1Bvb2wuY2xlYXJQcm9ncmFtKCksCgkvLyAgICAgICBnbG9iYWxOdW1VaW50OiBTdGFraW5nUG9vbC5zY2hlbWEuZ2xvYmFsLm51bVVpbnQsCgkvLyAgICAgICBnbG9iYWxOdW1CeXRlU2xpY2U6IFN0YWtpbmdQb29sLnNjaGVtYS5nbG9iYWwubnVtQnl0ZVNsaWNlLAoJLy8gICAgICAgZXh0cmFQcm9ncmFtUGFnZXM6IDMsCgkvLyAgICAgICBhcHBsaWNhdGlvbkFyZ3M6IFsKCS8vICAgICAgICAgLy8gY3JlYXRpbmdDb250cmFjdElELCB2YWxpZGF0b3JJZCwgcG9vbElkLCBtaW5FbnRyeVN0YWtlCgkvLyAgICAgICAgIG1ldGhvZCgnY3JlYXRlQXBwbGljYXRpb24odWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQnKSwKCS8vICAgICAgICAgaXRvYih0aGlzLmFwcC5pZCksCgkvLyAgICAgICAgIGl0b2IodmFsaWRhdG9ySWQpLAoJLy8gICAgICAgICBpdG9iKG51bVBvb2xzIGFzIHVpbnQ2NCksCgkvLyAgICAgICAgIGl0b2IodGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubWluRW50cnlTdGFrZSksCgkvLyAgICAgICBdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDcgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjAwCgkvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGlvbi5Ob09wCglpbnRjIDAgLy8gIE5vT3AKCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYwMQoJLy8gYXBwcm92YWxQcm9ncmFtOiBbCgkvLyAgICAgICAgIHRoaXMuc3Rha2luZ1Bvb2xBcHByb3ZhbFByb2dyYW0uZXh0cmFjdCgwLCA0MDk2KSwKCS8vICAgICAgICAgdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5leHRyYWN0KDQwOTYsIHRoaXMuc3Rha2luZ1Bvb2xBcHByb3ZhbFByb2dyYW0uc2l6ZSAtIDQwOTYpLAoJLy8gICAgICAgXQoJYnl0ZWMgNiAvLyAgInBvb2xUZW1wbGF0ZUFwcHJvdmFsQnl0ZXMiCglpbnRjIDAgLy8gMAoJaW50YyAyNSAvLyA0MDk2Cglib3hfZXh0cmFjdAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwoJYnl0ZWMgNiAvLyAgInBvb2xUZW1wbGF0ZUFwcHJvdmFsQnl0ZXMiCglpbnRjIDI1IC8vIDQwOTYKCWJ5dGVjIDYgLy8gICJwb29sVGVtcGxhdGVBcHByb3ZhbEJ5dGVzIgoJYm94X2xlbgoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5zaXplCglhc3NlcnQKCWludGMgMjUgLy8gNDA5NgoJLQoJYm94X2V4dHJhY3QKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjA1CgkvLyBjbGVhclN0YXRlUHJvZ3JhbTogU3Rha2luZ1Bvb2wuY2xlYXJQcm9ncmFtKCkKCXB1c2hieXRlcyAweDBhCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYwNgoJLy8gZ2xvYmFsTnVtVWludDogU3Rha2luZ1Bvb2wuc2NoZW1hLmdsb2JhbC5udW1VaW50CglpbnRjIDM0IC8vIDExCglpdHhuX2ZpZWxkIEdsb2JhbE51bVVpbnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjA3CgkvLyBnbG9iYWxOdW1CeXRlU2xpY2U6IFN0YWtpbmdQb29sLnNjaGVtYS5nbG9iYWwubnVtQnl0ZVNsaWNlCglpbnRjIDkgLy8gMwoJaXR4bl9maWVsZCBHbG9iYWxOdW1CeXRlU2xpY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjA4CgkvLyBleHRyYVByb2dyYW1QYWdlczogMwoJaW50YyA5IC8vIDMKCWl0eG5fZmllbGQgRXh0cmFQcm9ncmFtUGFnZXMKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjA5CgkvLyBhcHBsaWNhdGlvbkFyZ3M6IFsKCS8vICAgICAgICAgLy8gY3JlYXRpbmdDb250cmFjdElELCB2YWxpZGF0b3JJZCwgcG9vbElkLCBtaW5FbnRyeVN0YWtlCgkvLyAgICAgICAgIG1ldGhvZCgnY3JlYXRlQXBwbGljYXRpb24odWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQnKSwKCS8vICAgICAgICAgaXRvYih0aGlzLmFwcC5pZCksCgkvLyAgICAgICAgIGl0b2IodmFsaWRhdG9ySWQpLAoJLy8gICAgICAgICBpdG9iKG51bVBvb2xzIGFzIHVpbnQ2NCksCgkvLyAgICAgICAgIGl0b2IodGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubWluRW50cnlTdGFrZSksCgkvLyAgICAgICBdCglwdXNoYnl0ZXMgMHg1OWU5MGFhNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAwIC8vIG51bVBvb2xzOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglpbnRjIDM4IC8vIDIwOQoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MTkKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUubnVtUG9vbHMgPSBudW1Qb29scyBhcyB1aW50MTYKCWludGMgOCAvLyAyNDIKCWZyYW1lX2RpZyAwIC8vIG51bVBvb2xzOiB1aW50NjQKCWl0b2IKCWV4dHJhY3QgNiAyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYyMgoJLy8gcG9vbEFwcElkID0gdGhpcy5pdHhuLmNyZWF0ZWRBcHBsaWNhdGlvbklELmlkCglpdHhuIENyZWF0ZWRBcHBsaWNhdGlvbklECglmcmFtZV9idXJ5IDEgLy8gcG9vbEFwcElkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjIzCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzW251bVBvb2xzIC0gMV0ucG9vbEFwcElkID0gcG9vbEFwcElkCglpbnRjIDYgLy8gIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAwIC8vIG51bVBvb2xzOiB1aW50NjQKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAwIC8vIDAKCSsKCWZyYW1lX2RpZyAxIC8vIHBvb2xBcHBJZDogdWludDY0CglpdG9iCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYyNAoJLy8gdGhpcy5hZGRQb29sVG9Ob2RlKHZhbGlkYXRvcklkLCBwb29sQXBwSWQsIG5vZGVOdW0pCglmcmFtZV9kaWcgLTMgLy8gbm9kZU51bTogdWludDY0CglmcmFtZV9kaWcgMSAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWNhbGxzdWIgYWRkUG9vbFRvTm9kZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MzIKCS8vIHJldHVybiB7IGlkOiB2YWxpZGF0b3JJZCwgcG9vbElkOiBudW1Qb29scyBhcyB1aW50NjQsIHBvb2xBcHBJZDogdGhpcy5pdHhuIS5jcmVhdGVkQXBwbGljYXRpb25JRC5pZCB9OwoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWZyYW1lX2RpZyAwIC8vIG51bVBvb2xzOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJaXR4biBDcmVhdGVkQXBwbGljYXRpb25JRAoJaXRvYgoJY29uY2F0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgovLyBhZGRTdGFrZShwYXksdWludDY0LHVpbnQ2NCkodWludDY0LHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfYWRkU3Rha2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBzdGFrZWRBbW91bnRQYXltZW50OiBwYXkKCXR4biBHcm91cEluZGV4CglpbnRjIDEgLy8gMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50YyAxIC8vICBwYXkKCT09CgoJLy8gYXJndW1lbnQgMiAoc3Rha2VkQW1vdW50UGF5bWVudCkgZm9yIGFkZFN0YWtlIG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYWRkU3Rha2UocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJY2FsbHN1YiBhZGRTdGFrZQoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGFkZFN0YWtlKHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4biwgdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgdmFsdWVUb1ZlcmlmeTogdWludDY0KTogVmFsaWRhdG9yUG9vbEtleQovLwovLyBBZGRzIHN0YWtlIHRvIGEgdmFsaWRhdG9yIHBvb2wuCi8vCi8vIEBwYXJhbSB7UGF5VHhufSBzdGFrZWRBbW91bnRQYXltZW50IC0gcGF5bWVudCBjb21pbmcgZnJvbSBzdGFrZXIgdG8gcGxhY2UgaW50byBhIHBvb2wKLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7dWludDY0fSB2YWx1ZVRvVmVyaWZ5IC0gb25seSBpZiB2YWxpZGF0b3IgaGFzIGdhdGluZyB0byBlbnRlciAtIHRoaXMgaXMgYXNzZXQgaWQgb3IgbmZkIGlkIHRoYXQgY29ycmVzcG9uZHMgdG8gZ2F0aW5nLgovLyBUeG4gc2VuZGVyIGlzIGZhY3RvcmVkIGluIGFzIHdlbGwgaWYgdGhhdCBpcyBwYXJ0IG9mIGdhdGluZy4KLy8gKiBAcmV0dXJucyB7VmFsaWRhdG9yUG9vbEtleX0gLSBUaGUga2V5IG9mIHRoZSB2YWxpZGF0b3IgcG9vbC4KYWRkU3Rha2U6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwbiA1CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY0NQoJLy8gYXNzZXJ0KHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkuZXhpc3RzLCAic3BlY2lmaWVkIHZhbGlkYXRvciBpZCBpc24ndCB2YWxpZCIpCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWJveF9sZW4KCXN3YXAKCXBvcAoKCS8vIHNwZWNpZmllZCB2YWxpZGF0b3IgaWQgaXNuJ3QgdmFsaWQKCWFzc2VydAoKCS8vICppZjhfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjQ4CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5zdW5zZXR0aW5nT24gPiAwCglpbnRjIDI3IC8vIDIyNgoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWludGMgMCAvLyAwCgk+CglieiAqaWY4X2VuZAoKCS8vICppZjhfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY0OQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5zdW5zZXR0aW5nT24gPCBnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCwKCS8vICAgICAgICAgImNhbid0IHN0YWtlIHdpdGggYSB2YWxpZGF0b3IgdGhhdCBpcyBwYXN0IGl0cyBzdW5zZXR0aW5nIHRpbWUiCgkvLyAgICAgICApCglpbnRjIDI3IC8vIDIyNgoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCTwKCgkvLyBjYW4ndCBzdGFrZSB3aXRoIGEgdmFsaWRhdG9yIHRoYXQgaXMgcGFzdCBpdHMgc3Vuc2V0dGluZyB0aW1lCglhc3NlcnQKCippZjhfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY1NQoJLy8gc3Rha2VyID0gdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCglmcmFtZV9idXJ5IDAgLy8gc3Rha2VyOiBhZGRyZXNzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY1OQoJLy8gdmVyaWZ5UGF5VHhuKHN0YWtlZEFtb3VudFBheW1lbnQsIHsKCS8vICAgICAgIHNlbmRlcjogc3Rha2VyLAoJLy8gICAgICAgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIFNlbmRlcgoJZnJhbWVfZGlnIDAgLy8gc3Rha2VyOiBhZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoic3Rha2VkQW1vdW50UGF5bWVudCIsImZpZWxkIjoic2VuZGVyIiwiZXhwZWN0ZWQiOiJzdGFrZXIifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzdGFrZWRBbW91bnRQYXltZW50IiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjY2CgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnN0YXRlLnRvdGFsQWxnb1N0YWtlZCA8IHRoaXMubWF4QWxsb3dlZFN0YWtlKCksCgkvLyAgICAgICAndG90YWwgc3Rha2VkIGZvciBhbGwgb2YgYSB2YWxpZGF0b3JzIHBvb2xzIG1heSBub3QgZXhjZWVkIGhhcmQgY2FwJwoJLy8gICAgICkKCWludGMgMTIgLy8gMjUyCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJY2FsbHN1YiBtYXhBbGxvd2VkU3Rha2UKCTwKCgkvLyB0b3RhbCBzdGFrZWQgZm9yIGFsbCBvZiBhIHZhbGlkYXRvcnMgcG9vbHMgbWF5IG5vdCBleGNlZWQgaGFyZCBjYXAKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NzMKCS8vIHRoaXMuZG9lc1N0YWtlck1lZXRHYXRpbmcodmFsaWRhdG9ySWQsIHZhbHVlVG9WZXJpZnkpCglmcmFtZV9kaWcgLTMgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJY2FsbHN1YiBkb2VzU3Rha2VyTWVldEdhdGluZwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NzUKCS8vIHJlYWxBbW91bnQgPSBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9idXJ5IDEgLy8gcmVhbEFtb3VudDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY3NgoJLy8gbWJyQW10TGVmdEJlaGluZDogdWludDY0ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBtYnJBbXRMZWZ0QmVoaW5kOiB1aW50NjQKCgkvLyAqaWY5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY3OAoJLy8gIXRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLmV4aXN0cwoJYnl0ZWMgMyAvLyAgInNwcyIKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCSEKCWJ6ICppZjlfZW5kCgoJLy8gKmlmOV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjgxCgkvLyBtYnJBbXRMZWZ0QmVoaW5kID0gdGhpcy5nZXRNYnJBbW91bnRzKCkuYWRkU3Rha2VyTWJyCgljYWxsc3ViIGdldE1ickFtb3VudHMKCWV4dHJhY3QgMjQgOAoJYnRvaQoJZnJhbWVfYnVyeSAyIC8vIG1ickFtdExlZnRCZWhpbmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2ODIKCS8vIHJlYWxBbW91bnQgLT0gbWJyQW10TGVmdEJlaGluZAoJZnJhbWVfZGlnIDEgLy8gcmVhbEFtb3VudDogdWludDY0CglmcmFtZV9kaWcgMiAvLyBtYnJBbXRMZWZ0QmVoaW5kOiB1aW50NjQKCS0KCWZyYW1lX2J1cnkgMSAvLyByZWFsQW1vdW50OiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjgzCgkvLyB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS5jcmVhdGUoKQoJYnl0ZWMgMyAvLyAgInNwcyIKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJY29uY2F0CglwdXNoaW50IDE0NAoJYm94X2NyZWF0ZQoJcG9wCgoqaWY5X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2ODcKCS8vIGZpbmRSZXQgPSB0aGlzLmZpbmRQb29sRm9yU3Rha2VyKHZhbGlkYXRvcklkLCBzdGFrZXIsIHJlYWxBbW91bnQpCglmcmFtZV9kaWcgMSAvLyByZWFsQW1vdW50OiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWNhbGxzdWIgZmluZFBvb2xGb3JTdGFrZXIKCWZyYW1lX2J1cnkgMyAvLyBmaW5kUmV0OiAoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY4OAoJLy8gcG9vbEtleSA9IGZpbmRSZXRbMF0KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2ODkKCS8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3IgPSBmaW5kUmV0WzFdCglmcmFtZV9kaWcgMyAvLyBmaW5kUmV0OiAoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50YyAyMiAvLyAxOTIKCWdldGJpdAoJZnJhbWVfYnVyeSA0IC8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjkwCgkvLyBpc05ld1N0YWtlclRvUHJvdG9jb2wgPSBmaW5kUmV0WzJdCglmcmFtZV9kaWcgMyAvLyBmaW5kUmV0OiAoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAxOTMKCWdldGJpdAoJZnJhbWVfYnVyeSA1IC8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbAoKCS8vICppZjEwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY5MQoJLy8gcG9vbEtleS5wb29sSWQgPT09IDAKCWZyYW1lX2RpZyAzIC8vIGZpbmRSZXQ6ICgodWludDY0LHVpbnQ2NCx1aW50NjQpLGJvb2wsYm9vbCkKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDggOAoJYnRvaQoJaW50YyAwIC8vIDAKCT09CglieiAqaWYxMF9lbmQKCgkvLyAqaWYxMF9jb25zZXF1ZW50CgkvLyBObyBwb29sIGF2YWlsYWJsZSB3aXRoIGZyZWUgc3Rha2UuICBWYWxpZGF0b3IgbmVlZHMgdG8gYWRkIGFub3RoZXIgcG9vbAoJZXJyCgoqaWYxMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Njk2CgkvLyB0aGlzLnVwZGF0ZVN0YWtlclBvb2xTZXQoc3Rha2VyLCBwb29sS2V5KQoJZnJhbWVfZGlnIDMgLy8gZmluZFJldDogKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgMCAyNAoJZnJhbWVfZGlnIDAgLy8gc3Rha2VyOiBhZGRyZXNzCgljYWxsc3ViIHVwZGF0ZVN0YWtlclBvb2xTZXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Njk5CgkvLyB0aGlzLmNhbGxQb29sQWRkU3Rha2UoCgkvLyAgICAgICBzdGFrZWRBbW91bnRQYXltZW50LAoJLy8gICAgICAgcG9vbEtleSwKCS8vICAgICAgIG1ickFtdExlZnRCZWhpbmQsCgkvLyAgICAgICBpc05ld1N0YWtlclRvVmFsaWRhdG9yLAoJLy8gICAgICAgaXNOZXdTdGFrZXJUb1Byb3RvY29sCgkvLyAgICAgKQoJZnJhbWVfZGlnIDUgLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sOiBib29sCglmcmFtZV9kaWcgNCAvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yOiBib29sCglmcmFtZV9kaWcgMiAvLyBtYnJBbXRMZWZ0QmVoaW5kOiB1aW50NjQKCWZyYW1lX2RpZyAzIC8vIGZpbmRSZXQ6ICgodWludDY0LHVpbnQ2NCx1aW50NjQpLGJvb2wsYm9vbCkKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDAgMjQKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWNhbGxzdWIgY2FsbFBvb2xBZGRTdGFrZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3MTQKCS8vIHJldHVybiBwb29sS2V5OwoJZnJhbWVfZGlnIDMgLy8gZmluZFJldDogKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgMCAyNAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDUKCXJldHN1YgoKLy8gc2V0VG9rZW5QYXlvdXRSYXRpbyh1aW50NjQpKHVpbnQ2NFsyNF0sdWludDY0KQoqYWJpX3JvdXRlX3NldFRva2VuUGF5b3V0UmF0aW86CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIHNldFRva2VuUGF5b3V0UmF0aW8odWludDY0KSh1aW50NjRbMjRdLHVpbnQ2NCkKCWNhbGxzdWIgc2V0VG9rZW5QYXlvdXRSYXRpbwoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHNldFRva2VuUGF5b3V0UmF0aW8odmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IFBvb2xUb2tlblBheW91dFJhdGlvCi8vCi8vIHNldFRva2VuUGF5b3V0UmF0aW8gaXMgY2FsbGVkIGJ5IFN0YWtpbmcgUG9vbCAjIDEgKE9OTFkpIHRvIGFzayB0aGUgdmFsaWRhdG9yICh1cykgdG8gY2FsY3VsYXRlIHRoZSByYXRpb3MKLy8gb2Ygc3Rha2UgaW4gdGhlIHBvb2xzIGZvciBzdWJzZXF1ZW50IHRva2VuIHBheW91dHMgKGllOiAyIHBvb2xzLCAnMTAwJyBhbGdvIHRvdGFsIHN0YWtlZCwgNjAgaW4gcG9vbCAxLCBhbmQgNDAKLy8gaW4gcG9vbCAyKSAgVGhpcyBpcyBkb25lIHNvIHdlIGhhdmUgYSBzdGFibGUgc25hcHNob3Qgb2Ygc3Rha2UgLSB0YWtlbiBvbmNlIHBlciBlcG9jaCAtIG9ubHkgdHJpZ2dlcmVkIGJ5Ci8vIHBvb2wgMSBkb2luZyBwYXlvdXQuICBwb29scyBvdGhlciB0aGFuIDEgZG9pbmcgcGF5b3V0IGNhbGwgcG9vbCAxIHRvIGFzayBpdCBkbyBpdCBmaXJzdC4KLy8gSXQgd291bGQgYmUgNjAvNDAlIGluIHRoZSBwb29sUGN0T2ZXaG9sZSB2YWx1ZXMuICBUaGUgdG9rZW4gcmV3YXJkIHBheW91dHMgdGhlbiB1c2UgdGhlc2UgdmFsdWVzIGluc3RlYWQgb2YKLy8gdGhlaXIgJ2N1cnJlbnQnIHN0YWtlIHdoaWNoIGNoYW5nZXMgYXMgcGFydCBvZiB0aGUgcGF5b3V0cyB0aGVtc2VsdmVzIChhbmQgcGVvcGxlIGNvdWxkIGJlIGNoYW5naW5nIHN0YWtlCi8vIGR1cmluZyB0aGUgZXBvY2ggdXBkYXRlcyBhY3Jvc3MgcG9vbHMpCi8vCi8vIE11bHRpcGxlIHBvb2xzIHdpbGwgY2FsbCB1cyB2aWEgcG9vbCAxIChwb29sMi0+cG9vbDEtPnZhbGlkYXRvciwgZXRjLikgc28gZG9uJ3QgYXNzZXJ0IG9uIHBvb2wxIGNhbGxpbmcgbXVsdGlwbGUKLy8gdGltZXMgaW4gc2FtZSBlcG9jaC4gIEp1c3QgcmV0dXJuLgovLwovLyBAcGFyYW0gdmFsaWRhdG9ySWQgLSB2YWxpZGF0b3IgaWQgKGFuZCB0aHVzIHBvb2wpIGNhbGxpbmcgdXMuICBWZXJpZmllZCBzbyB0aGF0IHNlbmRlciBNVVNUIGJlIHBvb2wgMSBvZiB0aGlzIHZhbGlkYXRvci4KLy8gQHJldHVybnMgUG9vbFRva2VuUGF5b3V0UmF0aW8gLSB0aGUgZmluaXNoZWQgcmF0aW8gZGF0YQpzZXRUb2tlblBheW91dFJhdGlvOgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cG4gOAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3MzQKCS8vIHBvb2wxQXBwSUQgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzWzBdLnBvb2xBcHBJZAoJaW50YyA2IC8vIDI2OAoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyBwb29sMUFwcElEOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzM1CgkvLyBhc3NlcnQocG9vbDFBcHBJRCAhPT0gMCkKCWZyYW1lX2RpZyAwIC8vIHBvb2wxQXBwSUQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCSE9Cglhc3NlcnQKCgkvLyAqaWYxMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3MzcKCS8vIHRoaXMudHhuLnNlbmRlciAhPT0gQXBwSUQuZnJvbVVpbnQ2NChwb29sMUFwcElEKS5hZGRyZXNzCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgMCAvLyBwb29sMUFwcElEOiB1aW50NjQKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJIT0KCWJ6ICppZjExX2VuZAoKCS8vICppZjExX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3MzgKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnRva2VuUGF5b3V0UmF0aW87CglpbnRjIDE0IC8vICBoZWFkT2Zmc2V0CglpbnRjIDE4IC8vIDIwMAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYiAqc2V0VG9rZW5QYXlvdXRSYXRpbypyZXR1cm4KCippZjExX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NDQKCS8vIGN1clJvdW5kID0gZ2xvYmFscy5yb3VuZAoJZ2xvYmFsIFJvdW5kCglmcmFtZV9idXJ5IDEgLy8gY3VyUm91bmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NDUKCS8vIGxhc3RQYXlvdXRVcGRhdGUgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnRva2VuUGF5b3V0UmF0aW8udXBkYXRlZEZvclBheW91dAoJaW50YyAzMCAvLyA4OTIKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDIgLy8gbGFzdFBheW91dFVwZGF0ZTogdWludDY0CgoJLy8gKmlmMTJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzQ2CgkvLyBsYXN0UGF5b3V0VXBkYXRlICE9PSAwCglmcmFtZV9kaWcgMiAvLyBsYXN0UGF5b3V0VXBkYXRlOiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoJYnogKmlmMTJfZW5kCgoJLy8gKmlmMTJfY29uc2VxdWVudAoJLy8gKmlmMTNfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzQ4CgkvLyAoQXBwSUQuZnJvbVVpbnQ2NChwb29sMUFwcElEKS5nbG9iYWxTdGF0ZSgnbGFzdFBheW91dCcpIGFzIHVpbnQ2NCkgPT09IGxhc3RQYXlvdXRVcGRhdGUKCWZyYW1lX2RpZyAwIC8vIHBvb2wxQXBwSUQ6IHVpbnQ2NAoJcHVzaGJ5dGVzIDB4NmM2MTczNzQ1MDYxNzk2Zjc1NzQgLy8gImxhc3RQYXlvdXQiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChwb29sMUFwcElEKS5nbG9iYWxTdGF0ZSgnbGFzdFBheW91dCcpCglhc3NlcnQKCWZyYW1lX2RpZyAyIC8vIGxhc3RQYXlvdXRVcGRhdGU6IHVpbnQ2NAoJPT0KCWJ6ICppZjEzX2VuZAoKCS8vICppZjEzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NDkKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnRva2VuUGF5b3V0UmF0aW87CglpbnRjIDE0IC8vICBoZWFkT2Zmc2V0CglpbnRjIDE4IC8vIDIwMAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYiAqc2V0VG9rZW5QYXlvdXRSYXRpbypyZXR1cm4KCippZjEzX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NTEKCS8vIGVwb2NoUm91bmRMZW5ndGggPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5lcG9jaFJvdW5kTGVuZ3RoIGFzIHVpbnQ2NAoJcHVzaGludCAxNjkKCWludGMgMjAgLy8gNAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIGVwb2NoUm91bmRMZW5ndGg6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NTIKCS8vIHRoaXNFcG9jaEJlZ2luID0gY3VyUm91bmQgLSAoY3VyUm91bmQgJSBlcG9jaFJvdW5kTGVuZ3RoKQoJZnJhbWVfZGlnIDEgLy8gY3VyUm91bmQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gY3VyUm91bmQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0CgklCgktCglmcmFtZV9idXJ5IDQgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoKCS8vICppZjE0X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc1NAoJLy8gbGFzdFBheW91dFVwZGF0ZSAtIChsYXN0UGF5b3V0VXBkYXRlICUgZXBvY2hSb3VuZExlbmd0aCkgPT09IHRoaXNFcG9jaEJlZ2luCglmcmFtZV9kaWcgMiAvLyBsYXN0UGF5b3V0VXBkYXRlOiB1aW50NjQKCWZyYW1lX2RpZyAyIC8vIGxhc3RQYXlvdXRVcGRhdGU6IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0CgklCgktCglmcmFtZV9kaWcgNCAvLyB0aGlzRXBvY2hCZWdpbjogdWludDY0Cgk9PQoJYnogKmlmMTRfZW5kCgoJLy8gKmlmMTRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc1NQoJLy8gcmV0dXJuIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUudG9rZW5QYXlvdXRSYXRpbzsKCWludGMgMTQgLy8gIGhlYWRPZmZzZXQKCWludGMgMTggLy8gMjAwCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CgliICpzZXRUb2tlblBheW91dFJhdGlvKnJldHVybgoKKmlmMTRfZW5kOgoKKmlmMTJfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc1OAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvLnVwZGF0ZWRGb3JQYXlvdXQgPSBjdXJSb3VuZAoJaW50YyAzMCAvLyA4OTIKCWZyYW1lX2RpZyAxIC8vIGN1clJvdW5kOiB1aW50NjQKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzYwCgkvLyBjdXJOdW1Qb29scyA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUubnVtUG9vbHMgYXMgdWludDY0CglpbnRjIDggLy8gMjQyCglpbnRjIDEwIC8vIDIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgNSAvLyBjdXJOdW1Qb29sczogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc2MQoJLy8gdG90YWxTdGFrZUZvclZhbGlkYXRvciA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUudG90YWxBbGdvU3Rha2VkCglpbnRjIDEyIC8vIDI1MgoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgNiAvLyB0b3RhbFN0YWtlRm9yVmFsaWRhdG9yOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzYyCgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IGN1ck51bVBvb2xzOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSA3IC8vIGk6IHVpbnQ2NAoKKmZvcl8yOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc2MgoJLy8gaSA8IGN1ck51bVBvb2xzCglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyA1IC8vIGN1ck51bVBvb2xzOiB1aW50NjQKCTwKCWJ6ICpmb3JfMl9lbmQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzY3CgkvLyBvdXJQb29sUGN0T2ZXaG9sZSA9IHdpZGVSYXRpbygKCS8vICAgICAgICAgW3RoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUucG9vbHNbaV0udG90YWxBbGdvU3Rha2VkLCAxXzAwMF8wMDBdLAoJLy8gICAgICAgICBbdG90YWxTdGFrZUZvclZhbGlkYXRvcl0KCS8vICAgICAgICkKCWludGMgNiAvLyAgaGVhZE9mZnNldAoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAxMSAvLyAgaGVhZE9mZnNldAoJKwoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCXB1c2hpbnQgMV8wMDBfMDAwCgltdWx3CglpbnRjIDAgLy8gMAoJZnJhbWVfZGlnIDYgLy8gdG90YWxTdGFrZUZvclZhbGlkYXRvcjogdWludDY0CglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSA4IC8vIG91clBvb2xQY3RPZldob2xlOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzcxCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnRva2VuUGF5b3V0UmF0aW8ucG9vbFBjdE9mV2hvbGVbaV0gPSBvdXJQb29sUGN0T2ZXaG9sZQoJaW50YyAxNCAvLyA3MDAKCWZyYW1lX2RpZyA3IC8vIGk6IHVpbnQ2NAoJaW50YyAyIC8vIDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJZnJhbWVfZGlnIDggLy8gb3VyUG9vbFBjdE9mV2hvbGU6IHVpbnQ2NAoJaXRvYgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKKmZvcl8yX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc2MgoJLy8gaSArPSAxCglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDcgLy8gaTogdWludDY0CgliICpmb3JfMgoKKmZvcl8yX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NzMKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnRva2VuUGF5b3V0UmF0aW87CglpbnRjIDE0IC8vICBoZWFkT2Zmc2V0CglpbnRjIDE4IC8vIDIwMAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoKKnNldFRva2VuUGF5b3V0UmF0aW8qcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gOAoJcmV0c3ViCgovLyBzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzKCh1aW50NjQsdWludDY0LHVpbnQ2NCksdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9zdGFrZVVwZGF0ZWRWaWFSZXdhcmRzOgoJLy8gc2F0dXJhdGVkQnVyblRvRmVlU2luazogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA1CglidG9pCgoJLy8gdmFsaWRhdG9yQ29tbWlzc2lvbjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA0CglidG9pCgoJLy8gcmV3YXJkVG9rZW5BbW91bnRSZXNlcnZlZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gYWxnb1RvQWRkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBwb29sS2V5OiAodWludDY0LHVpbnQ2NCx1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50YyAzIC8vIDI0Cgk9PQoKCS8vIGFyZ3VtZW50IDQgKHBvb2xLZXkpIGZvciBzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzIG11c3QgYmUgYSAodWludDY0LHVpbnQ2NCx1aW50NjQpCglhc3NlcnQKCgkvLyBleGVjdXRlIHN0YWtlVXBkYXRlZFZpYVJld2FyZHMoKHVpbnQ2NCx1aW50NjQsdWludDY0KSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzKHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXksIGFsZ29Ub0FkZDogdWludDY0LCByZXdhcmRUb2tlbkFtb3VudFJlc2VydmVkOiB1aW50NjQsIHZhbGlkYXRvckNvbW1pc3Npb246IHVpbnQ2NCwgc2F0dXJhdGVkQnVyblRvRmVlU2luazogdWludDY0KTogdm9pZAovLwovLyBzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzIGlzIGNhbGxlZCBieSBTdGFraW5nIHBvb2xzIHRvIGluZm9ybSB0aGUgdmFsaWRhdG9yICh1cykgdGhhdCBhIHBhcnRpY3VsYXIgYW1vdW50IG9mIHRvdGFsCi8vIHN0YWtlIGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBzcGVjaWZpZWQgcG9vbC4gIFRoaXMgaXMgdXNlZCB0byB1cGRhdGUgdGhlIHN0YXRzIHdlIGhhdmUgaW4gb3VyIFBvb2xJbmZvIHN0b3JhZ2UuCi8vIFRoZSBjYWxsaW5nIEFwcCBpZCBpcyB2YWxpZGF0ZWQgYWdhaW5zdCBvdXIgcG9vbCBsaXN0IGFzIHdlbGwuCi8vIEBwYXJhbSB7VmFsaWRhdG9yUG9vbEtleX0gcG9vbEtleSAtIFZhbGlkYXRvclBvb2xLZXkgdHlwZQovLyBAcGFyYW0ge3VpbnQ2NH0gYWxnb1RvQWRkIC0gYW1vdW50IHRoaXMgdmFsaWRhdG9yJ3MgdG90YWwgc3Rha2UgaW5jcmVhc2VkIHZpYSByZXdhcmRzCi8vIEBwYXJhbSB7dWludDY0fSByZXdhcmRUb2tlbkFtb3VudFJlc2VydmVkIC0gYW1vdW50IHRoaXMgdmFsaWRhdG9yJ3MgdG90YWwgc3Rha2UgaW5jcmVhc2VkIHZpYSByZXdhcmRzICh0aGF0IHNob3VsZCBiZQovLyBAcGFyYW0ge3VpbnQ2NH0gdmFsaWRhdG9yQ29tbWlzc2lvbiAtIHRoZSBjb21taXNzaW9uIGFtb3VudCB0aGUgdmFsaWRhdG9yIHdhcyBwYWlkLCBpZiBhbnkKLy8gQHBhcmFtIHt1aW50NjR9IHNhdHVyYXRlZEJ1cm5Ub0ZlZVNpbmsgLSBpZiB0aGUgcG9vbCB3YXMgaW4gc2F0dXJhdGVkIHN0YXRlLCB0aGUgYW1vdW50IHNlbnQgYmFjayB0byB0aGUgZmVlIHNpbmsuCi8vIHNlZW4gYXMgJ2FjY291bnRlZCBmb3IvcGVuZGluZyBzcGVudCcpCnN0YWtlVXBkYXRlZFZpYVJld2FyZHM6Cglwcm90byA1IDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Nzk0CgkvLyB0aGlzLnZlcmlmeVBvb2xLZXlDYWxsZXIocG9vbEtleSkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CgljYWxsc3ViIHZlcmlmeVBvb2xLZXlDYWxsZXIKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Nzk3CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXS50b3RhbEFsZ29TdGFrZWQgKz0gYWxnb1RvQWRkCglpbnRjIDYgLy8gIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50YyAxIC8vIDEKCS0KCWludGMgNSAvLyAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDExIC8vICBoZWFkT2Zmc2V0CgkrCglpbnRjIDYgLy8gIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50YyAxIC8vIDEKCS0KCWludGMgNSAvLyAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDExIC8vICBoZWFkT2Zmc2V0CgkrCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMiAvLyBhbGdvVG9BZGQ6IHVpbnQ2NAoJKwoJaXRvYgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Nzk4CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUuc3RhdGUudG90YWxBbGdvU3Rha2VkICs9IGFsZ29Ub0FkZAoJaW50YyAxMiAvLyAyNTIKCWR1cAoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTIgLy8gYWxnb1RvQWRkOiB1aW50NjQKCSsKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc5OQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnJld2FyZFRva2VuSGVsZEJhY2sgKz0gcmV3YXJkVG9rZW5BbW91bnRSZXNlcnZlZAoJaW50YyAxMyAvLyAyNjAKCWR1cAoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTMgLy8gcmV3YXJkVG9rZW5BbW91bnRSZXNlcnZlZDogdWludDY0CgkrCglpdG9iCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4MDEKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlICs9IGFsZ29Ub0FkZAoJYnl0ZWMgNCAvLyAgInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTIgLy8gYWxnb1RvQWRkOiB1aW50NjQKCSsKCWJ5dGVjIDQgLy8gICJzdGFrZWQiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4MDQKCS8vIHRoaXMucmV2ZXJpZnlORkRPd25lcnNoaXAocG9vbEtleS5pZCkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJY2FsbHN1YiByZXZlcmlmeU5GRE93bmVyc2hpcAoJcmV0c3ViCgovLyBzdGFrZVJlbW92ZWQoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYm9vbCl2b2lkCiphYmlfcm91dGVfc3Rha2VSZW1vdmVkOgoJLy8gc3Rha2VyUmVtb3ZlZDogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNQoJZHVwCglsZW4KCWludGMgMSAvLyAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHN0YWtlclJlbW92ZWQpIGZvciBzdGFrZVJlbW92ZWQgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50YyAwIC8vIDAKCWdldGJpdAoKCS8vIHJld2FyZFJlbW92ZWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJYnRvaQoKCS8vIGFtb3VudFJlbW92ZWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIHN0YWtlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAzIChzdGFrZXIpIGZvciBzdGFrZVJlbW92ZWQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHBvb2xLZXk6ICh1aW50NjQsdWludDY0LHVpbnQ2NCkKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDMgLy8gMjQKCT09CgoJLy8gYXJndW1lbnQgNCAocG9vbEtleSkgZm9yIHN0YWtlUmVtb3ZlZCBtdXN0IGJlIGEgKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzdGFrZVJlbW92ZWQoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYm9vbCl2b2lkCgljYWxsc3ViIHN0YWtlUmVtb3ZlZAoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gc3Rha2VSZW1vdmVkKHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXksIHN0YWtlcjogQWRkcmVzcywgYW1vdW50UmVtb3ZlZDogdWludDY0LCByZXdhcmRSZW1vdmVkOiB1aW50NjQsIHN0YWtlclJlbW92ZWQ6IGJvb2xlYW4pOiB2b2lkCi8vCi8vIHN0YWtlUmVtb3ZlZCBpcyBjYWxsZWQgYnkgU3Rha2luZyBwb29scyB0byBpbmZvcm0gdGhlIHZhbGlkYXRvciAodXMpIHRoYXQgYSBwYXJ0aWN1bGFyIGFtb3VudCBvZiB0b3RhbCBzdGFrZSBoYXMgYmVlbiByZW1vdmVkCi8vIGZyb20gdGhlIHNwZWNpZmllZCBwb29sLiAgVGhpcyBpcyB1c2VkIHRvIHVwZGF0ZSB0aGUgc3RhdHMgd2UgaGF2ZSBpbiBvdXIgUG9vbEluZm8gc3RvcmFnZS4KLy8gSWYgYW55IGFtb3VudCBvZiByZXdhcmRSZW1vdmVkIGlzIHNwZWNpZmllZCwgdGhlbiB0aGF0IGFtb3VudCBvZiByZXdhcmQgaXMgc2VudCB0byB0aGUgdXNlCi8vIFRoZSBjYWxsaW5nIEFwcCBpZCBpcyB2YWxpZGF0ZWQgYWdhaW5zdCBvdXIgcG9vbCBsaXN0IGFzIHdlbGwuCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9yUG9vbEtleX0gcG9vbEtleSBjYWxsaW5nIHVzIGZyb20gd2hpY2ggc3Rha2Ugd2FzIHJlbW92ZWQKLy8gQHBhcmFtIHtBZGRyZXNzfSBzdGFrZXIKLy8gQHBhcmFtIHt1aW50NjR9IGFtb3VudFJlbW92ZWQgLSBhbGdvIGFtb3VudCByZW1vdmVkCi8vIEBwYXJhbSB7dWludDY0fSByZXdhcmRSZW1vdmVkIC0gaWYgYXBwbGljYWJsZSwgYW1vdW50IG9mIHRva2VuIHJld2FyZCByZW1vdmVkIChieSBwb29sIDEgY2FsbGVyKSBvciBUTyByZW1vdmUgYW5kIHBheSBvdXQgKHZpYSBwb29sIDEgZnJvbSBkaWZmZXJlbnQgcG9vbCBjYWxsZXIpCi8vIEBwYXJhbSB7Ym9vbGVhbn0gc3Rha2VyUmVtb3ZlZApzdGFrZVJlbW92ZWQ6Cglwcm90byA1IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwbiAzCgoJLy8gKmlmMTVfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODM2CgkvLyBnbG9iYWxzLm9wY29kZUJ1ZGdldCA8IDMwMAoJZ2xvYmFsIE9wY29kZUJ1ZGdldAoJaW50YyAyOCAvLyAzMDAKCTwKCWJ6ICppZjE1X2VuZAoKCS8vICppZjE1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4MzcKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyA4IC8vICAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnRjIDI2IC8vICBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoqaWYxNV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODM5CgkvLyB0aGlzLnZlcmlmeVBvb2xLZXlDYWxsZXIocG9vbEtleSkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CgljYWxsc3ViIHZlcmlmeVBvb2xLZXlDYWxsZXIKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODQzCgkvLyBhc3NlcnQoYW1vdW50UmVtb3ZlZCA+IDAgfHwgcmV3YXJkUmVtb3ZlZCA+IDAsICdzaG91bGQgb25seSBiZSBjYWxsZWQgaWYgYWxnbyBvciByZXdhcmQgd2FzIHJlbW92ZWQnKQoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFJlbW92ZWQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT4KCWR1cAoJYm56ICpza2lwX29yMgoJZnJhbWVfZGlnIC00IC8vIHJld2FyZFJlbW92ZWQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT4KCXx8Cgoqc2tpcF9vcjI6CgkvLyBzaG91bGQgb25seSBiZSBjYWxsZWQgaWYgYWxnbyBvciByZXdhcmQgd2FzIHJlbW92ZWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NDYKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5wb29sc1twb29sS2V5LnBvb2xJZCAtIDFdLnRvdGFsQWxnb1N0YWtlZCAtPSBhbW91bnRSZW1vdmVkCglpbnRjIDYgLy8gIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50YyAxIC8vIDEKCS0KCWludGMgNSAvLyAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDExIC8vICBoZWFkT2Zmc2V0CgkrCglpbnRjIDYgLy8gIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50YyAxIC8vIDEKCS0KCWludGMgNSAvLyAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDExIC8vICBoZWFkT2Zmc2V0CgkrCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMyAvLyBhbW91bnRSZW1vdmVkOiB1aW50NjQKCS0KCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg0NwoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnRvdGFsQWxnb1N0YWtlZCAtPSBhbW91bnRSZW1vdmVkCglpbnRjIDEyIC8vIDI1MgoJZHVwCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMyAvLyBhbW91bnRSZW1vdmVkOiB1aW50NjQKCS0KCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg0OAoJLy8gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgLT0gYW1vdW50UmVtb3ZlZAoJYnl0ZWMgNCAvLyAgInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTMgLy8gYW1vdW50UmVtb3ZlZDogdWludDY0CgktCglieXRlYyA0IC8vICAic3Rha2VkIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyAqaWYxNl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NTAKCS8vIHJld2FyZFJlbW92ZWQgPiAwCglmcmFtZV9kaWcgLTQgLy8gcmV3YXJkUmVtb3ZlZDogdWludDY0CglpbnRjIDAgLy8gMAoJPgoJYnogKmlmMTZfZWxzZQoKCS8vICppZjE2X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NTEKCS8vIHJld2FyZFRva2VuSUQgPSB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUuY29uZmlnLnJld2FyZFRva2VuSWQKCWludGMgMzcgLy8gMTUzCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyByZXdhcmRUb2tlbklEOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODUyCgkvLyBhc3NlcnQocmV3YXJkVG9rZW5JRCAhPT0gMCwgInJld2FyZFJlbW92ZWQgY2FuJ3QgYmUgc2V0IGlmIHZhbGlkYXRvciBkb2Vzbid0IGhhdmUgcmV3YXJkIHRva2VuISIpCglmcmFtZV9kaWcgMCAvLyByZXdhcmRUb2tlbklEOiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoKCS8vIHJld2FyZFJlbW92ZWQgY2FuJ3QgYmUgc2V0IGlmIHZhbGlkYXRvciBkb2Vzbid0IGhhdmUgcmV3YXJkIHRva2VuIQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg1MwoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUuc3RhdGUucmV3YXJkVG9rZW5IZWxkQmFjayA+PSByZXdhcmRSZW1vdmVkLAoJLy8gICAgICAgICAncmV3YXJkIGJlaW5nIHJlbW92ZWQgbXVzdCBiZSBjb3ZlcmVkIGJ5IGhvbGQgYmFjayBhbW91bnQnCgkvLyAgICAgICApCglpbnRjIDEzIC8vIDI2MAoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTQgLy8gcmV3YXJkUmVtb3ZlZDogdWludDY0Cgk+PQoKCS8vIHJld2FyZCBiZWluZyByZW1vdmVkIG11c3QgYmUgY292ZXJlZCBieSBob2xkIGJhY2sgYW1vdW50Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODU5CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUuc3RhdGUucmV3YXJkVG9rZW5IZWxkQmFjayAtPSByZXdhcmRSZW1vdmVkCglpbnRjIDEzIC8vIDI2MAoJZHVwCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtNCAvLyByZXdhcmRSZW1vdmVkOiB1aW50NjQKCS0KCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gKmlmMTdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODY0CgkvLyBwb29sS2V5LnBvb2xJZCAhPT0gMQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnRjIDEgLy8gMQoJIT0KCWJ6ICppZjE3X2VuZAoKCS8vICppZjE3X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NjUKCS8vIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBTdGFraW5nUG9vbC5wcm90b3R5cGUucGF5VG9rZW5SZXdhcmQ+KHsKCS8vICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5wb29sc1swXS5wb29sQXBwSWQpLAoJLy8gICAgICAgICAgIG1ldGhvZEFyZ3M6IFtzdGFrZXIsIHJld2FyZFRva2VuSUQsIHJld2FyZFJlbW92ZWRdLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlYyAxNCAvLyAgbWV0aG9kICJwYXlUb2tlblJld2FyZChhZGRyZXNzLHVpbnQ2NCx1aW50NjQpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg2NgoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbMF0ucG9vbEFwcElkKQoJaW50YyA2IC8vIDI2OAoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODY3CgkvLyBtZXRob2RBcmdzOiBbc3Rha2VyLCByZXdhcmRUb2tlbklELCByZXdhcmRSZW1vdmVkXQoJZnJhbWVfZGlnIC0yIC8vIHN0YWtlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAwIC8vIHJld2FyZFRva2VuSUQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtNCAvLyByZXdhcmRSZW1vdmVkOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMTdfZW5kOgoJYiAqaWYxNl9lbmQKCippZjE2X2Vsc2U6CgoqaWYxNl9lbmQ6CgkvLyAqaWYxOF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4OTIKCS8vIHN0YWtlclJlbW92ZWQKCWZyYW1lX2RpZyAtNSAvLyBzdGFrZXJSZW1vdmVkOiBib29sZWFuCglieiAqaWYxOF9lbmQKCgkvLyAqaWYxOF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODk0CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXS50b3RhbFN0YWtlcnMgLT0gMQoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAyIC8vICBoZWFkT2Zmc2V0CgkrCglpbnRjIDYgLy8gIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50YyAxIC8vIDEKCS0KCWludGMgNSAvLyAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDIgLy8gIGhlYWRPZmZzZXQKCSsKCWludGMgMTAgLy8gMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpdG9iCglleHRyYWN0IDYgMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODk2CgkvLyByZW1vdmVSZXQgPSB0aGlzLnJlbW92ZUZyb21TdGFrZXJQb29sU2V0KHN0YWtlciwgPFZhbGlkYXRvclBvb2xLZXk+ewoJLy8gICAgICAgICBpZDogcG9vbEtleS5pZCwKCS8vICAgICAgICAgcG9vbElkOiBwb29sS2V5LnBvb2xJZCwKCS8vICAgICAgICAgcG9vbEFwcElkOiBwb29sS2V5LnBvb2xBcHBJZCwKCS8vICAgICAgIH0pCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJY29uY2F0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAxNiA4CglidG9pCglpdG9iCgljb25jYXQKCWZyYW1lX2RpZyAtMiAvLyBzdGFrZXI6IEFkZHJlc3MKCWNhbGxzdWIgcmVtb3ZlRnJvbVN0YWtlclBvb2xTZXQKCWZyYW1lX2J1cnkgMSAvLyByZW1vdmVSZXQ6IChib29sLGJvb2wpCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjkwMQoJLy8gc3Rha2VyT3V0T2ZUaGlzVmFsaWRhdG9yID0gcmVtb3ZlUmV0WzBdCglmcmFtZV9kaWcgMSAvLyByZW1vdmVSZXQ6IChib29sLGJvb2wpCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50YyAwIC8vIDAKCWdldGJpdAoJZnJhbWVfYnVyeSAyIC8vIHN0YWtlck91dE9mVGhpc1ZhbGlkYXRvcjogYm9vbAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5MDIKCS8vIHN0YWtlck91dE9mUHJvdG9jb2wgPSByZW1vdmVSZXRbMV0KCWZyYW1lX2RpZyAxIC8vIHJlbW92ZVJldDogKGJvb2wsYm9vbCkKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnRjIDEgLy8gMQoJZ2V0Yml0CglmcmFtZV9idXJ5IDMgLy8gc3Rha2VyT3V0T2ZQcm90b2NvbDogYm9vbAoKCS8vICppZjE5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjkwNAoJLy8gc3Rha2VyT3V0T2ZUaGlzVmFsaWRhdG9yCglmcmFtZV9kaWcgMiAvLyBzdGFrZXJPdXRPZlRoaXNWYWxpZGF0b3I6IGJvb2wKCWJ6ICppZjE5X2VuZAoKCS8vICppZjE5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5MDUKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5zdGF0ZS50b3RhbFN0YWtlcnMgLT0gMQoJaW50YyAyMyAvLyAyNDQKCWR1cAoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglpbnRjIDEgLy8gMQoJLQoJaXRvYgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCippZjE5X2VuZDoKCS8vICppZjIwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjkwOAoJLy8gc3Rha2VyT3V0T2ZQcm90b2NvbAoJZnJhbWVfZGlnIDMgLy8gc3Rha2VyT3V0T2ZQcm90b2NvbDogYm9vbAoJYnogKmlmMjBfZW5kCgoJLy8gKmlmMjBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjkwOQoJLy8gdGhpcy5udW1TdGFrZXJzLnZhbHVlIC09IDEKCWJ5dGVjIDcgLy8gICJudW1TdGFrZXJzIgoJYXBwX2dsb2JhbF9nZXQKCWludGMgMSAvLyAxCgktCglieXRlYyA3IC8vICAibnVtU3Rha2VycyIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoqaWYyMF9lbmQ6CgoqaWYxOF9lbmQ6CglyZXRzdWIKCi8vIGZpbmRQb29sRm9yU3Rha2VyKHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCkoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCiphYmlfcm91dGVfZmluZFBvb2xGb3JTdGFrZXI6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDIgLy8gMHgxNTFmN2M3NQoKCS8vIGFtb3VudFRvU3Rha2U6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIHN0YWtlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChzdGFrZXIpIGZvciBmaW5kUG9vbEZvclN0YWtlciBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZmluZFBvb2xGb3JTdGFrZXIodWludDY0LGFkZHJlc3MsdWludDY0KSgodWludDY0LHVpbnQ2NCx1aW50NjQpLGJvb2wsYm9vbCkKCWNhbGxzdWIgZmluZFBvb2xGb3JTdGFrZXIKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBmaW5kUG9vbEZvclN0YWtlcih2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCBzdGFrZXI6IEFkZHJlc3MsIGFtb3VudFRvU3Rha2U6IHVpbnQ2NCk6IFtWYWxpZGF0b3JQb29sS2V5LCBib29sZWFuLCBib29sZWFuXQovLwovLyBGaW5kcyB0aGUgcG9vbCBmb3IgYSBzdGFrZXIgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHZhbGlkYXRvciBpZCwgc3Rha2VyIGFkZHJlc3MsIGFuZCBhbW91bnQgdG8gc3Rha2UuCi8vIEZpcnN0IGNoZWNrcyB0aGUgc3Rha2VycyAnYWxyZWFkeSBzdGFrZWQgbGlzdCcgZm9yIHRoZSB2YWxpZGF0b3IgcHJlZmVycmluZyB0aG9zZSAoYWRkaW5nIGlmIHBvc3NpYmxlKSB0aGVuIGFkZHMKLy8gdG8gbmV3IHBvb2wgaWYgbmVjZXNzYXJ5LgovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvci4KLy8gQHBhcmFtIHtBZGRyZXNzfSBzdGFrZXIgLSBUaGUgYWRkcmVzcyBvZiB0aGUgc3Rha2VyLgovLyBAcGFyYW0ge3VpbnQ2NH0gYW1vdW50VG9TdGFrZSAtIFRoZSBhbW91bnQgdG8gc3Rha2UuCi8vIEByZXR1cm5zIHtWYWxpZGF0b3JQb29sS2V5LCBib29sZWFuLCBib29sZWFufSAtIFRoZSBwb29sIGZvciB0aGUgc3Rha2VyLCB0cnVlL2ZhbHNlIG9uIHdoZXRoZXIgdGhlIHN0YWtlciBpcyAnbmV3JwovLyB0byB0aGlzIFZBTElEQVRPUiwgYW5kIHRydWUvZmFsc2UgaWYgc3Rha2VyIGlzIG5ldyB0byB0aGUgcHJvdG9jb2wuCmZpbmRQb29sRm9yU3Rha2VyOgoJcHJvdG8gMyAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cG4gNwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5MzAKCS8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3IgPSB0cnVlCglpbnRjIDEgLy8gMQoJZnJhbWVfYnVyeSAwIC8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTMxCgkvLyBpc05ld1N0YWtlclRvUHJvdG9jb2wgPSB0cnVlCglpbnRjIDEgLy8gMQoJZnJhbWVfYnVyeSAxIC8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5MzkKCS8vIG1heFBlclBvb2wgPSB0aGlzLmdldEN1ck1heFN0YWtlUGVyUG9vbCh2YWxpZGF0b3JJZCkKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCgljYWxsc3ViIGdldEN1ck1heFN0YWtlUGVyUG9vbAoJZnJhbWVfYnVyeSAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoKCS8vICppZjIxX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0MgoJLy8gdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikuZXhpc3RzCglieXRlYyAzIC8vICAic3BzIgoJZnJhbWVfZGlnIC0yIC8vIHN0YWtlcjogQWRkcmVzcwoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCWJ6ICppZjIxX2VuZAoKCS8vICppZjIxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NDMKCS8vIHBvb2xTZXQgPSBjbG9uZSh0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZSkKCWJ5dGVjIDMgLy8gICJzcHMiCglmcmFtZV9kaWcgLTIgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlCglhc3NlcnQKCWZyYW1lX2J1cnkgMyAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0NAoJLy8gYXNzZXJ0KHZhbGlkYXRvcklkICE9PSAwKQoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWludGMgMCAvLyAwCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0NQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBwb29sU2V0Lmxlbmd0aDsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgNCAvLyBpOiB1aW50NjQKCipmb3JfMzoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NDUKCS8vIGkgPCBwb29sU2V0Lmxlbmd0aAoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnRjIDcgLy8gNgoJPAoJYnogKmZvcl8zX2VuZAoKCS8vICppZjIyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0NgoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAzMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludGMgMjggLy8gMzAwCgk8CglieiAqaWYyMl9lbmQKCgkvLyAqaWYyMl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTQ3CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnRjIDcgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZWMgOCAvLyAgI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50YyAyNiAvLyAgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMjJfZW5kOgoJLy8gKmlmMjNfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTQ5CgkvLyBwb29sU2V0W2ldLmlkID09PSAwCglmcmFtZV9kaWcgMyAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDAgLy8gMAoJKwoJaW50YyAyIC8vIDgKCWV4dHJhY3QzCglidG9pCglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppZjIzX2VuZAoKCS8vICppZjIzX2NvbnNlcXVlbnQKCWIgKmZvcl8zX2NvbnRpbnVlCgoqaWYyM19lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTUyCgkvLyBpc05ld1N0YWtlclRvUHJvdG9jb2wgPSBmYWxzZQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMSAvLyBpc05ld1N0YWtlclRvUHJvdG9jb2w6IGJvb2wKCgkvLyAqaWYyNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NTMKCS8vIHBvb2xTZXRbaV0uaWQgPT09IHZhbGlkYXRvcklkCglmcmFtZV9kaWcgMyAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDAgLy8gMAoJKwoJaW50YyAyIC8vIDgKCWV4dHJhY3QzCglidG9pCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJPT0KCWJ6ICppZjI0X2VuZAoKCS8vICppZjI0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NTUKCS8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3IgPSBmYWxzZQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMCAvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yOiBib29sCgoJLy8gKmlmMjVfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTU3CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzW3Bvb2xTZXRbaV0ucG9vbElkIC0gMV0udG90YWxBbGdvU3Rha2VkICsgYW1vdW50VG9TdGFrZSA8PQoJLy8gICAgICAgICAgICAgbWF4UGVyUG9vbAoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMyAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDIgLy8gIGhlYWRPZmZzZXQKCSsKCWludGMgMiAvLyA4CglleHRyYWN0MwoJYnRvaQoJaW50YyAxIC8vIDEKCS0KCWludGMgNSAvLyAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDExIC8vICBoZWFkT2Zmc2V0CgkrCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFRvU3Rha2U6IHVpbnQ2NAoJKwoJZnJhbWVfZGlnIDIgLy8gbWF4UGVyUG9vbDogdWludDY0Cgk8PQoJYnogKmlmMjVfZW5kCgoJLy8gKmlmMjVfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk2MAoJLy8gcmV0dXJuIFtwb29sU2V0W2ldLCBpc05ld1N0YWtlclRvVmFsaWRhdG9yLCBpc05ld1N0YWtlclRvUHJvdG9jb2xdOwoJZnJhbWVfZGlnIDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAzIC8vIDI0CglleHRyYWN0MwoJYnl0ZWMgNSAvLyAweDAwCglpbnRjIDAgLy8gMAoJZnJhbWVfZGlnIDAgLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbAoJc2V0Yml0CglpbnRjIDEgLy8gMQoJZnJhbWVfZGlnIDEgLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sOiBib29sCglzZXRiaXQKCWNvbmNhdAoJYiAqZmluZFBvb2xGb3JTdGFrZXIqcmV0dXJuCgoqaWYyNV9lbmQ6CgoqaWYyNF9lbmQ6CgoqZm9yXzNfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTQ1CgkvLyBpICs9IDEKCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgNCAvLyBpOiB1aW50NjQKCWIgKmZvcl8zCgoqZm9yXzNfZW5kOgoKKmlmMjFfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk2NwoJLy8gYXNzZXJ0KAoJLy8gICAgICAgYW1vdW50VG9TdGFrZSA+PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5taW5FbnRyeVN0YWtlLAoJLy8gICAgICAgJ211c3Qgc3Rha2UgYXQgbGVhc3QgdGhlIG1pbmltdW0gZm9yIHRoaXMgcG9vbCcKCS8vICAgICApCglmcmFtZV9kaWcgLTMgLy8gYW1vdW50VG9TdGFrZTogdWludDY0CglpbnRjIDM4IC8vIDIwOQoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCT49CgoJLy8gbXVzdCBzdGFrZSBhdCBsZWFzdCB0aGUgbWluaW11bSBmb3IgdGhpcyBwb29sCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTczCgkvLyBwb29scyA9IGNsb25lKHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUucG9vbHMpCglpbnRjIDYgLy8gIGhlYWRPZmZzZXQKCWludGMgMjkgLy8gNDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDUgLy8gcG9vbHM6ICh1aW50NjQsdWludDE2LHVpbnQ2NClbMjRdCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk3NAoJLy8gY3VyTnVtUG9vbHMgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnN0YXRlLm51bVBvb2xzIGFzIHVpbnQ2NAoJaW50YyA4IC8vIDI0MgoJaW50YyAxMCAvLyAyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDYgLy8gY3VyTnVtUG9vbHM6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NzUKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgY3VyTnVtUG9vbHM7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDcgLy8gaTogdWludDY0CgoqZm9yXzQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTc1CgkvLyBpIDwgY3VyTnVtUG9vbHMKCWZyYW1lX2RpZyA3IC8vIGk6IHVpbnQ2NAoJZnJhbWVfZGlnIDYgLy8gY3VyTnVtUG9vbHM6IHVpbnQ2NAoJPAoJYnogKmZvcl80X2VuZAoKCS8vICppZjI2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk3NgoJLy8gcG9vbHNbaV0udG90YWxBbGdvU3Rha2VkICsgYW1vdW50VG9TdGFrZSA8PSBtYXhQZXJQb29sCglmcmFtZV9kaWcgNSAvLyBwb29sczogKHVpbnQ2NCx1aW50MTYsdWludDY0KVsyNF0KCWZyYW1lX2RpZyA3IC8vIGk6IHVpbnQ2NAoJaW50YyA1IC8vIDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMTEgLy8gIGhlYWRPZmZzZXQKCSsKCWludGMgMiAvLyA4CglleHRyYWN0MwoJYnRvaQoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFRvU3Rha2U6IHVpbnQ2NAoJKwoJZnJhbWVfZGlnIDIgLy8gbWF4UGVyUG9vbDogdWludDY0Cgk8PQoJYnogKmlmMjZfZW5kCgoJLy8gKmlmMjZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk3NwoJLy8gcmV0dXJuIFsKCS8vICAgICAgICAgICB7IGlkOiB2YWxpZGF0b3JJZCwgcG9vbElkOiBpICsgMSwgcG9vbEFwcElkOiBwb29sc1tpXS5wb29sQXBwSWQgfSwKCS8vICAgICAgICAgICBpc05ld1N0YWtlclRvVmFsaWRhdG9yLAoJLy8gICAgICAgICAgIGlzTmV3U3Rha2VyVG9Qcm90b2NvbCwKCS8vICAgICAgICAgXTsKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglpdG9iCgljb25jYXQKCWZyYW1lX2RpZyA1IC8vIHBvb2xzOiAodWludDY0LHVpbnQxNix1aW50NjQpWzI0XQoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAwIC8vIDAKCSsKCWludGMgMiAvLyA4CglleHRyYWN0MwoJYnRvaQoJaXRvYgoJY29uY2F0CglieXRlYyA1IC8vIDB4MDAKCWludGMgMCAvLyAwCglmcmFtZV9kaWcgMCAvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yOiBib29sCglzZXRiaXQKCWludGMgMSAvLyAxCglmcmFtZV9kaWcgMSAvLyBpc05ld1N0YWtlclRvUHJvdG9jb2w6IGJvb2wKCXNldGJpdAoJY29uY2F0CgliICpmaW5kUG9vbEZvclN0YWtlcipyZXR1cm4KCippZjI2X2VuZDoKCipmb3JfNF9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NzUKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSA3IC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzQKCipmb3JfNF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTg1CgkvLyByZXR1cm4gW3sgaWQ6IHZhbGlkYXRvcklkLCBwb29sSWQ6IDAsIHBvb2xBcHBJZDogMCB9LCBpc05ld1N0YWtlclRvVmFsaWRhdG9yLCBpc05ld1N0YWtlclRvUHJvdG9jb2xdOwoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWJ5dGVjIDEwIC8vIDB4MDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglieXRlYyAxMCAvLyAweDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJYnl0ZWMgNSAvLyAweDAwCglpbnRjIDAgLy8gMAoJZnJhbWVfZGlnIDAgLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbAoJc2V0Yml0CglpbnRjIDEgLy8gMQoJZnJhbWVfZGlnIDEgLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sOiBib29sCglzZXRiaXQKCWNvbmNhdAoKKmZpbmRQb29sRm9yU3Rha2VyKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDcKCXJldHN1YgoKLy8gbW92ZVBvb2xUb05vZGUodWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX21vdmVQb29sVG9Ob2RlOgoJLy8gbm9kZU51bTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gcG9vbEFwcElkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBtb3ZlUG9vbFRvTm9kZSh1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIG1vdmVQb29sVG9Ob2RlCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBtb3ZlUG9vbFRvTm9kZSh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCBwb29sQXBwSWQ6IHVpbnQ2NCwgbm9kZU51bTogdWludDY0KTogdm9pZAovLwovLyBGaW5kIHRoZSBzcGVjaWZpZWQgcG9vbCAoaW4gYW55IG5vZGUgbnVtYmVyKSBhbmQgbW92ZSBpdCB0byB0aGUgc3BlY2lmaWVkIG5vZGUuCi8vIFRoZSBwb29sIGFjY291bnQgaXMgZm9yY2VkIG9mZmxpbmUgaWYgbW92ZWQgc28gcHJpb3Igbm9kZSB3aWxsIHN0aWxsIHJ1biBmb3IgMzIwIHJvdW5kcyBidXQKLy8gbmV3IGtleSBnb2VzIG9ubGluZSBvbiBuZXcgbm9kZSBzb29uIGFmdGVyICgzMjAgcm91bmRzIGFmdGVyIGl0IGdvZXMgb25saW5lKQovLyBOby1vcCBpZiBzdWNjZXNzLCBhc3NlcnRzIGlmIG5vdCBmb3VuZCBvciBjYW4ndCBtb3ZlICAobm8gc3BhY2UgaW4gdGFyZ2V0KQovLyBbIE9OTFkgT1dORVIgT1IgTUFOQUdFUiBDQU4gQ0hBTkdFIF0KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7dWludDY0fSBwb29sQXBwSWQKLy8gQHBhcmFtIHt1aW50NjR9IG5vZGVOdW0KbW92ZVBvb2xUb05vZGU6Cglwcm90byAzIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMDEKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIgfHwKCS8vICAgICAgICAgdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5tYW5hZ2VyLAoJLy8gICAgICAgJ2NhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnRjIDIgLy8gOAoJaW50YyA0IC8vIDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoJZHVwCglibnogKnNraXBfb3IzCgl0eG4gU2VuZGVyCglpbnRjIDE3IC8vIDQwCglpbnRjIDQgLy8gMzIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09Cgl8fAoKKnNraXBfb3IzOgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTAwNwoJLy8gbm9kZVBvb2xBc3NpZ25tZW50cyA9IGNsb25lKHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUubm9kZVBvb2xBc3NpZ25tZW50cykKCWludGMgMTYgLy8gIGhlYWRPZmZzZXQKCWludGMgMjIgLy8gMTkyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDAgLy8gbm9kZVBvb2xBc3NpZ25tZW50czogKCh1aW50NjRbM10pWzhdKQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDA4CgkvLyBhc3NlcnQobm9kZU51bSA+PSAxICYmIG5vZGVOdW0gPD0gTUFYX05PREVTLCAnbm9kZSBudW1iZXIgb3V0IG9mIGFsbG93YWJsZSByYW5nZScpCglmcmFtZV9kaWcgLTMgLy8gbm9kZU51bTogdWludDY0CglpbnRjIDEgLy8gMQoJPj0KCWR1cAoJYnogKnNraXBfYW5kMQoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJaW50YyAyIC8vIDgKCTw9CgkmJgoKKnNraXBfYW5kMToKCS8vIG5vZGUgbnVtYmVyIG91dCBvZiBhbGxvd2FibGUgcmFuZ2UKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDEwCgkvLyBmb3IgKGxldCBzcmNOb2RlSWR4ID0gMDsgc3JjTm9kZUlkeCA8IE1BWF9OT0RFUzsgc3JjTm9kZUlkeCArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCipmb3JfNToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDEwCgkvLyBzcmNOb2RlSWR4IDwgTUFYX05PREVTCglmcmFtZV9kaWcgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCWludGMgMiAvLyA4Cgk8CglieiAqZm9yXzVfZW5kCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTEKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgTUFYX1BPT0xTX1BFUl9OT0RFOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoKKmZvcl82OgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTEKCS8vIGkgPCBNQVhfUE9PTFNfUEVSX05PREUKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyA5IC8vIDMKCTwKCWJ6ICpmb3JfNl9lbmQKCgkvLyAqaWYyN19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDEyCgkvLyBub2RlUG9vbEFzc2lnbm1lbnRzLm5vZGVzW3NyY05vZGVJZHhdLnBvb2xBcHBJZHNbaV0gPT09IHBvb2xBcHBJZAoJZnJhbWVfZGlnIDAgLy8gbm9kZVBvb2xBc3NpZ25tZW50czogKCh1aW50NjRbM10pWzhdKQoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyAxIC8vIHNyY05vZGVJZHg6IHVpbnQ2NAoJaW50YyAzIC8vIDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludGMgMCAvLyAwCgkrCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMiAvLyA4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludGMgMiAvLyA4CglleHRyYWN0MwoJYnRvaQoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBcHBJZDogdWludDY0Cgk9PQoJYnogKmlmMjdfZW5kCgoJLy8gKmlmMjdfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTMKCS8vIGFzc2VydChub2RlTnVtIC0gMSAhPT0gc3JjTm9kZUlkeCwgImNhbid0IG1vdmUgdG8gc2FtZSBub2RlIikKCWZyYW1lX2RpZyAtMyAvLyBub2RlTnVtOiB1aW50NjQKCWludGMgMSAvLyAxCgktCglmcmFtZV9kaWcgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCSE9CgoJLy8gY2FuJ3QgbW92ZSB0byBzYW1lIG5vZGUKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDE1CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLm5vZGVQb29sQXNzaWdubWVudHMubm9kZXNbc3JjTm9kZUlkeF0ucG9vbEFwcElkc1tpXSA9IDAKCWludGMgMTYgLy8gOTAwCglmcmFtZV9kaWcgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDAgLy8gMAoJKwoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDIgLy8gOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglieXRlYyAxMCAvLyAweDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTAxOAoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFN0YWtpbmdQb29sLnByb3RvdHlwZS5nb09mZmxpbmU+KHsKCS8vICAgICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKSwKCS8vICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglwdXNoYnl0ZXMgMHg1MWVmM2IyMSAvLyBtZXRob2QgImdvT2ZmbGluZSgpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTkKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKQoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBcHBJZDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMjMKCS8vIHRoaXMuYWRkUG9vbFRvTm9kZSh2YWxpZGF0b3JJZCwgcG9vbEFwcElkLCBub2RlTnVtKQoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBcHBJZDogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJY2FsbHN1YiBhZGRQb29sVG9Ob2RlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMjQKCS8vIHJldHVybjsKCXJldHN1YgoKKmlmMjdfZW5kOgoKKmZvcl82X2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTEKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzYKCipmb3JfNl9lbmQ6CgoqZm9yXzVfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTAxMAoJLy8gc3JjTm9kZUlkeCArPSAxCglmcmFtZV9kaWcgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDEgLy8gc3JjTm9kZUlkeDogdWludDY0CgliICpmb3JfNQoKKmZvcl81X2VuZDoKCS8vIGNvdWxkbid0IGZpbmQgcG9vbCBhcHAgaWQgaW4gbm9kZXMgdG8gbW92ZQoJZXJyCglyZXRzdWIKCi8vIGVtcHR5VG9rZW5SZXdhcmRzKHVpbnQ2NCxhZGRyZXNzKXVpbnQ2NAoqYWJpX3JvdXRlX2VtcHR5VG9rZW5SZXdhcmRzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAyIC8vIDB4MTUxZjdjNzUKCgkvLyByZWNlaXZlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChyZWNlaXZlcikgZm9yIGVtcHR5VG9rZW5SZXdhcmRzIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBlbXB0eVRva2VuUmV3YXJkcyh1aW50NjQsYWRkcmVzcyl1aW50NjQKCWNhbGxzdWIgZW1wdHlUb2tlblJld2FyZHMKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBlbXB0eVRva2VuUmV3YXJkcyh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCByZWNlaXZlcjogQWRkcmVzcyk6IHVpbnQ2NAovLwovLyBTZW5kcyB0aGUgcmV3YXJkIHRva2VucyBoZWxkIGluIHBvb2wgMSB0byBzcGVjaWZpZWQgcmVjZWl2ZXIuCi8vIFRoaXMgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBieSB0aGUgb3duZXIgd2hlbiB0aGV5IHdhbnQgdG8gZ2V0IHJld2FyZCB0b2tlbnMgJ2JhY2snIHdoaWNoIHRoZXkgc2VudCB0bwovLyB0aGUgZmlyc3QgcG9vbCAobGlrZWx5IGJlY2F1c2UgdmFsaWRhdG9yIGlzIHN1bnNldHRpbmcuICBBbnkgdG9rZW5zIGN1cnJlbnRseSAncmVzZXJ2ZWQnIGZvciBzdGFrZXJzIHRvIGNsYWltIHdpbGwKLy8gTk9UIGJlIHNlbnQgYXMgdGhleSBtdXN0IGJlIGhlbGQgYmFjayBmb3Igc3Rha2VycyB0byBsYXRlciBjbGFpbS4KLy8gWyBPTkxZIE9XTkVSIENBTiBDQUxMXQovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvci4KLy8gQHBhcmFtIHtBZGRyZXNzfSByZWNlaXZlciAtIHRoZSBhY2NvdW50IHRvIHNlbmQgdGhlIHRva2VucyB0byAobXVzdCBhbHJlYWR5IGJlIG9wdGVkLWluIHRvIHRoZSByZXdhcmQgdG9rZW4pCi8vIEByZXR1cm5zIHt1aW50NjR9IHRoZSBhbW91bnQgb2YgcmV3YXJkIHRva2VuIHNlbnQKZW1wdHlUb2tlblJld2FyZHM6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwbiAzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwNDMKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnRjIDIgLy8gOAoJaW50YyA0IC8vIDMyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXIKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDQ3CgkvLyByZXdhcmRUb2tlbklkID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcucmV3YXJkVG9rZW5JZAoJaW50YyAzNyAvLyAxNTMKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDAgLy8gcmV3YXJkVG9rZW5JZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwNDgKCS8vIHJld2FyZFRva2VuSGVsZEJhY2sgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnN0YXRlLnJld2FyZFRva2VuSGVsZEJhY2sKCWludGMgMTMgLy8gMjYwCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAxIC8vIHJld2FyZFRva2VuSGVsZEJhY2s6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDQ5CgkvLyBhc3NlcnQocmV3YXJkVG9rZW5JZCAhPT0gMCwgInRoaXMgdmFsaWRhdG9yIGRvZXNuJ3QgaGF2ZSBhIHJld2FyZCB0b2tlbiBkZWZpbmVkIikKCWZyYW1lX2RpZyAwIC8vIHJld2FyZFRva2VuSWQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCSE9CgoJLy8gdGhpcyB2YWxpZGF0b3IgZG9lc24ndCBoYXZlIGEgcmV3YXJkIHRva2VuIGRlZmluZWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDUwCgkvLyBwb29sT25lQXBwSWQgPSBBcHBJRC5mcm9tVWludDY0KHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUucG9vbHNbMF0ucG9vbEFwcElkKQoJaW50YyA2IC8vIDI2OAoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMiAvLyBwb29sT25lQXBwSWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDUyCgkvLyB0b2tlblJld2FyZEJhbCA9IHBvb2xPbmVBcHBJZC5hZGRyZXNzLmFzc2V0QmFsYW5jZShBc3NldElELmZyb21VaW50NjQocmV3YXJkVG9rZW5JZCkpIC0gcmV3YXJkVG9rZW5IZWxkQmFjawoJZnJhbWVfZGlnIDIgLy8gcG9vbE9uZUFwcElkOiB1aW50NjQKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJZnJhbWVfZGlnIDAgLy8gcmV3YXJkVG9rZW5JZDogdWludDY0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIDEgLy8gcmV3YXJkVG9rZW5IZWxkQmFjazogdWludDY0CgktCglmcmFtZV9idXJ5IDMgLy8gdG9rZW5SZXdhcmRCYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDU1CgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgU3Rha2luZ1Bvb2wucHJvdG90eXBlLnBheVRva2VuUmV3YXJkPih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBwb29sT25lQXBwSWQsCgkvLyAgICAgICBtZXRob2RBcmdzOiBbcmVjZWl2ZXIsIHJld2FyZFRva2VuSWQsIHRva2VuUmV3YXJkQmFsXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlYyAxNCAvLyAgbWV0aG9kICJwYXlUb2tlblJld2FyZChhZGRyZXNzLHVpbnQ2NCx1aW50NjQpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwNTYKCS8vIGFwcGxpY2F0aW9uSUQ6IHBvb2xPbmVBcHBJZAoJZnJhbWVfZGlnIDIgLy8gcG9vbE9uZUFwcElkOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDU3CgkvLyBtZXRob2RBcmdzOiBbcmVjZWl2ZXIsIHJld2FyZFRva2VuSWQsIHRva2VuUmV3YXJkQmFsXQoJZnJhbWVfZGlnIC0yIC8vIHJlY2VpdmVyOiBBZGRyZXNzCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDAgLy8gcmV3YXJkVG9rZW5JZDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDMgLy8gdG9rZW5SZXdhcmRCYWw6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwNTkKCS8vIGFzc2VydCgKCS8vICAgICAgIHBvb2xPbmVBcHBJZC5hZGRyZXNzLmFzc2V0QmFsYW5jZShBc3NldElELmZyb21VaW50NjQocmV3YXJkVG9rZW5JZCkpID09PSByZXdhcmRUb2tlbkhlbGRCYWNrLAoJLy8gICAgICAgJ2JhbGFuY2Ugb2YgcmVtYWluaW5nIHJld2FyZCB0b2tlbnMgc2hvdWxkIG1hdGNoIHRoZSBoZWxkIGJhY2sgYW1vdW50JwoJLy8gICAgICkKCWZyYW1lX2RpZyAyIC8vIHBvb2xPbmVBcHBJZDogdWludDY0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCWZyYW1lX2RpZyAwIC8vIHJld2FyZFRva2VuSWQ6IHVpbnQ2NAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAxIC8vIHJld2FyZFRva2VuSGVsZEJhY2s6IHVpbnQ2NAoJPT0KCgkvLyBiYWxhbmNlIG9mIHJlbWFpbmluZyByZXdhcmQgdG9rZW5zIHNob3VsZCBtYXRjaCB0aGUgaGVsZCBiYWNrIGFtb3VudAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwNjMKCS8vIHJldHVybiB0b2tlblJld2FyZEJhbDsKCWZyYW1lX2RpZyAzIC8vIHRva2VuUmV3YXJkQmFsOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAzCglyZXRzdWIKCi8vIHZlcmlmeVBvb2xLZXlDYWxsZXIocG9vbEtleTogVmFsaWRhdG9yUG9vbEtleSk6IHZvaWQKLy8KLy8gTG9ncyB0aGUgYWRkaXRpb24gb2YgYSBuZXcgdmFsaWRhdG9yIHRvIHRoZSBzeXN0ZW0sIGl0cyBpbml0aWFsIG93bmVyIGFuZCBtYW5hZ2VyCi8vCi8vCi8vIHZlcmlmeVBvb2xLZXlDYWxsZXIgdmVyaWZpZXMgdGhlIHBhc3NlZCBpbiBrZXkgKGZyb20gYSBzdGFraW5nIHBvb2wgY2FsbGluZyB1cyB0byB1cGRhdGUgbWV0cmljcykgaXMgdmFsaWQKLy8gYW5kIG1hdGNoZXMgdGhlIGluZm9ybWF0aW9uIHdlIGhhdmUgaW4gb3VyIHN0YXRlLiAgJ0Zha2UnIHBvb2xzIGNvdWxkIGNhbGwgdXMgdG8gdXBkYXRlIG91ciBkYXRhLCBidXQgdGhleQovLyBjYW4ndCBmYWtlIHRoZSBpZHMgYW5kIG1vc3QgaW1wb3J0YW50bHkgYXBwbGljYXRpb24gaWQoISkgb2YgdGhlIGNhbGxlciB0aGF0IGhhcyB0byBtYXRjaC4KdmVyaWZ5UG9vbEtleUNhbGxlcjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTYxCgkvLyBhc3NlcnQodGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLmV4aXN0cywgInRoZSBzcGVjaWZpZWQgdmFsaWRhdG9yIGlkIGlzbid0IHZhbGlkIikKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWJveF9sZW4KCXN3YXAKCXBvcAoKCS8vIHRoZSBzcGVjaWZpZWQgdmFsaWRhdG9yIGlkIGlzbid0IHZhbGlkCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE2MgoJLy8gYXNzZXJ0KHBvb2xLZXkucG9vbElkIDw9IE1BWF9QT09MUywgJ3Bvb2wgaWQgbm90IGluIHZhbGlkIHJhbmdlJykKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50YyAzIC8vIDI0Cgk8PQoKCS8vIHBvb2wgaWQgbm90IGluIHZhbGlkIHJhbmdlCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE2MwoJLy8gYXNzZXJ0KAoJLy8gICAgICAgcG9vbEtleS5wb29sSWQgPiAwICYmIChwb29sS2V5LnBvb2xJZCBhcyB1aW50MTYpIDw9IHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5zdGF0ZS5udW1Qb29scywKCS8vICAgICAgICdwb29sIGlkIG91dHNpZGUgb2YgcmFuZ2Ugb2YgcG9vbHMgY3JlYXRlZCBmb3IgdGhpcyB2YWxpZGF0b3InCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnRjIDAgLy8gMAoJPgoJZHVwCglieiAqc2tpcF9hbmQyCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgOCAvLyAyNDIKCWludGMgMTAgLy8gMgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCTw9CgkmJgoKKnNraXBfYW5kMjoKCS8vIHBvb2wgaWQgb3V0c2lkZSBvZiByYW5nZSBvZiBwb29scyBjcmVhdGVkIGZvciB0aGlzIHZhbGlkYXRvcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExNjkKCS8vIGFzc2VydCgKCS8vICAgICAgIHBvb2xLZXkucG9vbEFwcElkID09PSB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXS5wb29sQXBwSWQsCgkvLyAgICAgICAiVGhlIHBhc3NlZCBpbiBhcHAgaWQgZG9lc24ndCBtYXRjaCB0aGUgcGFzc2VkIGluIGlkcyIKCS8vICAgICApCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAxNiA4CglidG9pCglpbnRjIDYgLy8gIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50YyAxIC8vIDEKCS0KCWludGMgNSAvLyAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDAgLy8gMAoJKwoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCgk9PQoKCS8vIFRoZSBwYXNzZWQgaW4gYXBwIGlkIGRvZXNuJ3QgbWF0Y2ggdGhlIHBhc3NlZCBpbiBpZHMKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTc0CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBBcHBJRC5mcm9tVWludDY0KHBvb2xLZXkucG9vbEFwcElkKS5hZGRyZXNzKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExNzYKCS8vIGFzc2VydChwb29sS2V5LmlkID09PSAoQXBwSUQuZnJvbVVpbnQ2NChwb29sS2V5LnBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ3ZhbGlkYXRvcklkJykgYXMgdWludDY0KSkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJcHVzaGJ5dGVzIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChwb29sS2V5LnBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ3ZhbGlkYXRvcklkJykKCWFzc2VydAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTc3CgkvLyBhc3NlcnQocG9vbEtleS5wb29sSWQgPT09IChBcHBJRC5mcm9tVWludDY0KHBvb2xLZXkucG9vbEFwcElkKS5nbG9iYWxTdGF0ZSgncG9vbElkJykgYXMgdWludDY0KSkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJcHVzaGJ5dGVzIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChwb29sS2V5LnBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ3Bvb2xJZCcpCglhc3NlcnQKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gcmV2ZXJpZnlORkRPd25lcnNoaXAodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IHZvaWQKLy8KLy8gVGhpcyBtZXRob2QgdmVyaWZpZXMgdGhlIG93bmVyc2hpcCBvZiBORkQgKE5hbWVkIEZ1bmN0aW9uIERhdGEpIGJ5IGEgdmFsaWRhdG9yLgovLyBJZiB0aGUgb3duZXJzaGlwIGlzIG5vIGxvbmdlciB2YWxpZCwgaXQgcmVtb3ZlcyB0aGUgTkZEIGZyb20gdGhlIHZhbGlkYXRvcidzIGNvbmZpZ3VyYXRpb24uCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yIHdob3NlIGRhdGEgc2hvdWxkIGJlIHJlLWV2YWx1YXRlZC4KcmV2ZXJpZnlORkRPd25lcnNoaXA6Cglwcm90byAxIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExODcKCS8vIHZhbGlkYXRvckNvbmZpZyA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vdmFsaWRhdG9yQ29uZmlnCgoJLy8gKmlmMjhfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE4OAoJLy8gdmFsaWRhdG9yQ29uZmlnLm5mZEZvckluZm8gIT09IDAKCWludGMgMjEgLy8gNzIKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglpbnRjIDAgLy8gMAoJIT0KCWJ6ICppZjI4X2VuZAoKCS8vICppZjI4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTkxCgkvLyBuZmRPd25lciA9IEFwcElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLm5mZEZvckluZm8pLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKSBhcyBBZGRyZXNzCglpbnRjIDIxIC8vIDcyCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJYnl0ZWMgOSAvLyAgImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KHZhbGlkYXRvckNvbmZpZy5uZmRGb3JJbmZvKS5nbG9iYWxTdGF0ZSgnaS5vd25lci5hJykKCWFzc2VydAoJZnJhbWVfYnVyeSAxIC8vIG5mZE93bmVyOiBhZGRyZXNzCgoJLy8gKmlmMjlfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE5MwoJLy8gdmFsaWRhdG9yQ29uZmlnLm93bmVyICE9PSBuZmRPd25lciAmJiB2YWxpZGF0b3JDb25maWcubWFuYWdlciAhPT0gbmZkT3duZXIKCWludGMgMiAvLyA4CglpbnRjIDQgLy8gMzIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWZyYW1lX2RpZyAxIC8vIG5mZE93bmVyOiBhZGRyZXNzCgkhPQoJZHVwCglieiAqc2tpcF9hbmQzCglpbnRjIDE3IC8vIDQwCglpbnRjIDQgLy8gMzIKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWZyYW1lX2RpZyAxIC8vIG5mZE93bmVyOiBhZGRyZXNzCgkhPQoJJiYKCipza2lwX2FuZDM6CglieiAqaWYyOV9lbmQKCgkvLyAqaWYyOV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE5NQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubmZkRm9ySW5mbyA9IDAKCWludGMgMjEgLy8gNzIKCWJ5dGVjIDEwIC8vIDB4MDAwMDAwMDAwMDAwMDAwMAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKKmlmMjlfZW5kOgoKKmlmMjhfZW5kOgoJcmV0c3ViCgovLyB2YWxpZGF0ZUNvbmZpZyhjb25maWc6IFZhbGlkYXRvckNvbmZpZyk6IHZvaWQKdmFsaWRhdGVDb25maWc6Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTIwMgoJLy8gYXNzZXJ0KAoJLy8gICAgICAgY29uZmlnLmVudHJ5R2F0aW5nVHlwZSA+PSBHQVRJTkdfVFlQRV9OT05FICYmIGNvbmZpZy5lbnRyeUdhdGluZ1R5cGUgPD0gR0FUSU5HX1RZUEVfQ09OU1RfTUFYLAoJLy8gICAgICAgJ2dhdGluZyB0eXBlIG5vdCB2YWxpZCcKCS8vICAgICApCglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgODAgMQoJYnRvaQoJaW50YyAwIC8vIDAKCT49CglkdXAKCWJ6ICpza2lwX2FuZDQKCWZyYW1lX2RpZyAtMSAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA4MCAxCglidG9pCglpbnRjIDIwIC8vIDQKCTw9CgkmJgoKKnNraXBfYW5kNDoKCS8vIGdhdGluZyB0eXBlIG5vdCB2YWxpZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyMDYKCS8vIGFzc2VydCgKCS8vICAgICAgIGNvbmZpZy5lcG9jaFJvdW5kTGVuZ3RoID49IE1JTl9FUE9DSF9MRU5HVEggJiYgY29uZmlnLmVwb2NoUm91bmRMZW5ndGggPD0gTUFYX0VQT0NIX0xFTkdUSCwKCS8vICAgICAgICdlcG9jaCBsZW5ndGggbm90IGluIGFsbG93YWJsZSByYW5nZScKCS8vICAgICApCglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTY5IDQKCWJ0b2kKCWludGMgMSAvLyAxCgk+PQoJZHVwCglieiAqc2tpcF9hbmQ1CglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTY5IDQKCWJ0b2kKCWludGMgMjQgLy8gMTAwMDAwMAoJPD0KCSYmCgoqc2tpcF9hbmQ1OgoJLy8gZXBvY2ggbGVuZ3RoIG5vdCBpbiBhbGxvd2FibGUgcmFuZ2UKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjEwCgkvLyBhc3NlcnQoCgkvLyAgICAgICBjb25maWcucGVyY2VudFRvVmFsaWRhdG9yID49IE1JTl9QQ1RfVE9fVkFMSURBVE9SICYmIGNvbmZpZy5wZXJjZW50VG9WYWxpZGF0b3IgPD0gTUFYX1BDVF9UT19WQUxJREFUT1IsCgkvLyAgICAgICAnY29tbWlzc2lvbiBwZXJjZW50YWdlIG5vdCB2YWxpZCcKCS8vICAgICApCglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTczIDQKCWJ0b2kKCWludGMgMCAvLyAwCgk+PQoJZHVwCglieiAqc2tpcF9hbmQ2CglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTczIDQKCWJ0b2kKCWludGMgMjQgLy8gMTAwMDAwMAoJPD0KCSYmCgoqc2tpcF9hbmQ2OgoJLy8gY29tbWlzc2lvbiBwZXJjZW50YWdlIG5vdCB2YWxpZAoJYXNzZXJ0CgoJLy8gKmlmMzBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTIxNAoJLy8gY29uZmlnLnBlcmNlbnRUb1ZhbGlkYXRvciAhPT0gMAoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDE3MyA0CglidG9pCglpbnRjIDAgLy8gMAoJIT0KCWJ6ICppZjMwX2VuZAoKCS8vICppZjMwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjE1CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIGNvbmZpZy52YWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyAhPT0gQWRkcmVzcy56ZXJvQWRkcmVzcywKCS8vICAgICAgICAgJ3ZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzIG11c3QgYmUgc2V0IGlmIHBlcmNlbnQgdG8gdmFsaWRhdG9yIGlzIG5vdCAwJwoJLy8gICAgICAgKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDE3NyAzMgoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoKCS8vIHZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzIG11c3QgYmUgc2V0IGlmIHBlcmNlbnQgdG8gdmFsaWRhdG9yIGlzIG5vdCAwCglhc3NlcnQKCippZjMwX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjIwCgkvLyBhc3NlcnQoY29uZmlnLm1pbkVudHJ5U3Rha2UgPj0gTUlOX0FMR09fU1RBS0VfUEVSX1BPT0wsICdzdGFraW5nIHBvb2wgbXVzdCBoYXZlIG1pbmltdW0gZW50cnkgb2YgMSBhbGdvJykKCWZyYW1lX2RpZyAtMSAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCAyMDkgOAoJYnRvaQoJaW50YyAyNCAvLyAxMDAwMDAwCgk+PQoKCS8vIHN0YWtpbmcgcG9vbCBtdXN0IGhhdmUgbWluaW11bSBlbnRyeSBvZiAxIGFsZ28KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjIyCgkvLyBhc3NlcnQoCgkvLyAgICAgICBjb25maWcucG9vbHNQZXJOb2RlID4gMCAmJiBjb25maWcucG9vbHNQZXJOb2RlIDw9IE1BWF9QT09MU19QRVJfTk9ERSwKCS8vICAgICAgICdudW1iZXIgb2YgcG9vbHMgcGVyIG5vZGUgZXhjZWVkcyBhbGxvd2VkIG51bWJlcicKCS8vICAgICApCglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMjI1IDEKCWJ0b2kKCWludGMgMCAvLyAwCgk+CglkdXAKCWJ6ICpza2lwX2FuZDcKCWZyYW1lX2RpZyAtMSAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCAyMjUgMQoJYnRvaQoJaW50YyA5IC8vIDMKCTw9CgkmJgoKKnNraXBfYW5kNzoKCS8vIG51bWJlciBvZiBwb29scyBwZXIgbm9kZSBleGNlZWRzIGFsbG93ZWQgbnVtYmVyCglhc3NlcnQKCgkvLyAqaWYzMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjI2CgkvLyBjb25maWcuc3Vuc2V0dGluZ09uICE9PSAwCglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMjI2IDgKCWJ0b2kKCWludGMgMCAvLyAwCgkhPQoJYnogKmlmMzFfZW5kCgoJLy8gKmlmMzFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyMjcKCS8vIGFzc2VydChjb25maWcuc3Vuc2V0dGluZ09uID4gZ2xvYmFscy5sYXRlc3RUaW1lc3RhbXAsICdzdW5zZXR0aW5nT24gbXVzdCBiZSBsYXRlciB0aGFuIG5vdyBpZiBzZXQnKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDIyNiA4CglidG9pCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCgk+CgoJLy8gc3Vuc2V0dGluZ09uIG11c3QgYmUgbGF0ZXIgdGhhbiBub3cgaWYgc2V0Cglhc3NlcnQKCippZjMxX2VuZDoKCXJldHN1YgoKLy8gY2FsbFBvb2xBZGRTdGFrZShzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4sIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXksIG1ickFtdFBhaWQ6IHVpbnQ2NCwgaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbGVhbiwgaXNOZXdTdGFrZXJUb1Byb3RvY29sOiBib29sZWFuKTogdm9pZAovLwovLyBBZGRzIGEgc3Rha2VycyBhbW91bnQgb2YgYWxnbyB0byBhIHZhbGlkYXRvciBwb29sLCB0cmFuc2ZlcnJpbmcgdGhlIGFsZ28gd2UgcmVjZWl2ZWQgZnJvbSB0aGVtIChhbHJlYWR5IHZlcmlmaWVkCi8vIGJ5IG91ciBjYWxsZXIpIHRvIHRoZSBzdGFraW5nIHBvb2wgYWNjb3VudCwgYW5kIHRoZW4gdGVsbGluZyBpdCBhYm91dCB0aGUgYW1vdW50IGJlaW5nIGFkZGVkIGZvciB0aGUgc3BlY2lmaWVkCi8vIHN0YWtlci4KLy8KLy8gQHBhcmFtIHtQYXlUeG59IHN0YWtlZEFtb3VudFBheW1lbnQgLSBwYXltZW50IGNvbWluZyBmcm9tIHN0YWtlciB0byBwbGFjZSBpbnRvIGEgcG9vbAovLyBAcGFyYW0ge1ZhbGlkYXRvclBvb2xLZXl9IHBvb2xLZXkgLSBUaGUga2V5IG9mIHRoZSB2YWxpZGF0b3IgcG9vbC4KLy8gQHBhcmFtIHt1aW50NjR9IG1ickFtdFBhaWQgLSBBbW91bnQgdGhlIHVzZXIgaXMgbGVhdmluZyBiZWhpbmQgaW4gdGhlIHZhbGlkYXRvciB0byBwYXkgZm9yIHRoZWlyIHN0YWtlciBNQlIgY29zdAovLyBAcGFyYW0ge2Jvb2xlYW59IGlzTmV3U3Rha2VyVG9WYWxpZGF0b3IgLSBpZiB0aGlzIGlzIGEgbmV3LCBmaXJzdC10aW1lIHN0YWtlciB0byB0aGUgdmFsaWRhdG9yCi8vIEBwYXJhbSB7Ym9vbGVhbn0gaXNOZXdTdGFrZXJUb1Byb3RvY29sIC0gaWYgdGhpcyBpcyBhIG5ldywgZmlyc3QtdGltZSBzdGFrZXIgdG8gdGhlIHByb3RvY29sCmNhbGxQb29sQWRkU3Rha2U6Cglwcm90byA1IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNDkKCS8vIHBvb2xBcHBJZCA9IHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5wb29sc1twb29sS2V5LnBvb2xJZCAtIDFdLnBvb2xBcHBJZAoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAwIC8vIDAKCSsKCWludGMgMiAvLyA4CglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAwIC8vIHBvb2xBcHBJZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNTMKCS8vIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBTdGFraW5nUG9vbC5wcm90b3R5cGUuYWRkU3Rha2UsIHVpbnQ2ND4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpLAoJLy8gICAgICAgbWV0aG9kQXJnczogWwoJLy8gICAgICAgICAvLyA9PT09PT09CgkvLyAgICAgICAgIC8vIFRISVMgSVMgQSBTRU5EIG9mIHRoZSBhbW91bnQgcmVjZWl2ZWQgcmlnaHQgYmFjayBvdXQgYW5kIGludG8gdGhlIHN0YWtpbmcgcG9vbCBjb250cmFjdCBhY2NvdW50LgoJLy8gICAgICAgICB7IGFtb3VudDogc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQgLSBtYnJBbXRQYWlkLCByZWNlaXZlcjogQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpLmFkZHJlc3MgfSwKCS8vICAgICAgICAgLy8gPT09PT09PQoJLy8gICAgICAgICBzdGFrZWRBbW91bnRQYXltZW50LnNlbmRlciwKCS8vICAgICAgIF0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMSAvLyAgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNTgKCS8vIGFtb3VudDogc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQgLSBtYnJBbXRQYWlkCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAtMyAvLyBtYnJBbXRQYWlkOiB1aW50NjQKCS0KCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNTgKCS8vIHJlY2VpdmVyOiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkuYWRkcmVzcwoJZnJhbWVfZGlnIDAgLy8gcG9vbEFwcElkOiB1aW50NjQKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoJaXR4bl9uZXh0CglpbnRjIDcgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCXB1c2hieXRlcyAweGY5YzcwY2JkIC8vIG1ldGhvZCAiYWRkU3Rha2UocGF5LGFkZHJlc3MpdWludDY0IgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI1NAoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpCglmcmFtZV9kaWcgMCAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNTUKCS8vIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgLy8gPT09PT09PQoJLy8gICAgICAgICAvLyBUSElTIElTIEEgU0VORCBvZiB0aGUgYW1vdW50IHJlY2VpdmVkIHJpZ2h0IGJhY2sgb3V0IGFuZCBpbnRvIHRoZSBzdGFraW5nIHBvb2wgY29udHJhY3QgYWNjb3VudC4KCS8vICAgICAgICAgeyBhbW91bnQ6IHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50IC0gbWJyQW10UGFpZCwgcmVjZWl2ZXI6IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKS5hZGRyZXNzIH0sCgkvLyAgICAgICAgIC8vID09PT09PT0KCS8vICAgICAgICAgc3Rha2VkQW1vdW50UGF5bWVudC5zZW5kZXIsCgkvLyAgICAgICBdCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBTZW5kZXIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnRjIDEgLy8gMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglidG9pCgoJLy8gKmlmMzJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI2MwoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCA1MDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCXB1c2hpbnQgNTAwCgk8CglieiAqaWYzMl9lbmQKCgkvLyAqaWYzMl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI2NAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGVjIDggLy8gICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludGMgMjYgLy8gIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjMyX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjY4CgkvLyBwb29sTnVtU3Rha2VycyA9IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKS5nbG9iYWxTdGF0ZSgnbnVtU3Rha2VycycpIGFzIHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gcG9vbEFwcElkOiB1aW50NjQKCWJ5dGVjIDcgLy8gICJudW1TdGFrZXJzIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKS5nbG9iYWxTdGF0ZSgnbnVtU3Rha2VycycpCglhc3NlcnQKCWZyYW1lX2J1cnkgMSAvLyBwb29sTnVtU3Rha2VyczogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNjkKCS8vIHBvb2xBbGdvU3Rha2VkID0gQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpLmdsb2JhbFN0YXRlKCdzdGFrZWQnKSBhcyB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHBvb2xBcHBJZDogdWludDY0CglieXRlYyA0IC8vICAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKS5nbG9iYWxTdGF0ZSgnc3Rha2VkJykKCWFzc2VydAoJZnJhbWVfYnVyeSAyIC8vIHBvb2xBbGdvU3Rha2VkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI3MAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzW3Bvb2xLZXkucG9vbElkIC0gMV0udG90YWxTdGFrZXJzID0gcG9vbE51bVN0YWtlcnMgYXMgdWludDE2CglpbnRjIDYgLy8gIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50YyAxIC8vIDEKCS0KCWludGMgNSAvLyAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDIgLy8gIGhlYWRPZmZzZXQKCSsKCWZyYW1lX2RpZyAxIC8vIHBvb2xOdW1TdGFrZXJzOiB1aW50NjQKCWl0b2IKCWV4dHJhY3QgNiAyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjcxCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXS50b3RhbEFsZ29TdGFrZWQgPSBwb29sQWxnb1N0YWtlZAoJaW50YyA2IC8vICBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludGMgMSAvLyAxCgktCglpbnRjIDUgLy8gMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50YyAxMSAvLyAgaGVhZE9mZnNldAoJKwoJZnJhbWVfZGlnIDIgLy8gcG9vbEFsZ29TdGFrZWQ6IHVpbnQ2NAoJaXRvYgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyAqaWYzM19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjc0CgkvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yCglmcmFtZV9kaWcgLTQgLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbGVhbgoJYnogKmlmMzNfZW5kCgoJLy8gKmlmMzNfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNzUKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5zdGF0ZS50b3RhbFN0YWtlcnMgKz0gMQoJaW50YyAyMyAvLyAyNDQKCWR1cAoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglpbnRjIDEgLy8gMQoJKwoJaXRvYgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCippZjMzX2VuZDoKCS8vICppZjM0X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNzcKCS8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbAoJZnJhbWVfZGlnIC01IC8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbGVhbgoJYnogKmlmMzRfZW5kCgoJLy8gKmlmMzRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNzgKCS8vIHRoaXMubnVtU3Rha2Vycy52YWx1ZSArPSAxCglieXRlYyA3IC8vICAibnVtU3Rha2VycyIKCWFwcF9nbG9iYWxfZ2V0CglpbnRjIDEgLy8gMQoJKwoJYnl0ZWMgNyAvLyAgIm51bVN0YWtlcnMiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKKmlmMzRfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODAKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5zdGF0ZS50b3RhbEFsZ29TdGFrZWQgKz0gc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQgLSBtYnJBbXRQYWlkCglpbnRjIDEyIC8vIDI1MgoJZHVwCglpbnRjIDIgLy8gOAoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfZGlnIC0zIC8vIG1ickFtdFBhaWQ6IHVpbnQ2NAoJLQoJKwoJaXRvYgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI4MQoJLy8gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgKz0gc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQgLSBtYnJBbXRQYWlkCglieXRlYyA0IC8vICAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfZGlnIC0zIC8vIG1ickFtdFBhaWQ6IHVpbnQ2NAoJLQoJKwoJYnl0ZWMgNCAvLyAgInN0YWtlZCIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIHVwZGF0ZVN0YWtlclBvb2xTZXQoc3Rha2VyOiBBZGRyZXNzLCBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5KTogdm9pZAp1cGRhdGVTdGFrZXJQb29sU2V0OgoJcHJvdG8gMiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjg1CgkvLyBhc3NlcnQodGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikuZXhpc3RzKQoJYnl0ZWMgMyAvLyAgInNwcyIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI4NwoJLy8gcG9vbFNldCA9IGNsb25lKHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlKQoJYnl0ZWMgMyAvLyAgInNwcyIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSAwIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI4OAoJLy8gZmlyc3RFbXB0eSA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDEgLy8gZmlyc3RFbXB0eTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODkKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoKKmZvcl83OgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODkKCS8vIGkgPCB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyA3IC8vIDYKCTwKCWJ6ICpmb3JfN19lbmQKCgkvLyAqaWYzNV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjkwCgkvLyBwb29sU2V0W2ldID09PSBwb29sS2V5CglmcmFtZV9kaWcgMCAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnRjIDMgLy8gMjQKCWV4dHJhY3QzCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJPT0KCWJ6ICppZjM1X2VuZAoKCS8vICppZjM1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjkyCgkvLyByZXR1cm47CglyZXRzdWIKCippZjM1X2VuZDoKCS8vICppZjM2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyOTQKCS8vIGZpcnN0RW1wdHkgPT09IDAgJiYgcG9vbFNldFtpXS5pZCA9PT0gMAoJZnJhbWVfZGlnIDEgLy8gZmlyc3RFbXB0eTogdWludDY0CglpbnRjIDAgLy8gMAoJPT0KCWR1cAoJYnogKnNraXBfYW5kOAoJZnJhbWVfZGlnIDAgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAwIC8vIDAKCSsKCWludGMgMiAvLyA4CglleHRyYWN0MwoJYnRvaQoJaW50YyAwIC8vIDAKCT09CgkmJgoKKnNraXBfYW5kODoKCWJ6ICppZjM2X2VuZAoKCS8vICppZjM2X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjk1CgkvLyBmaXJzdEVtcHR5ID0gaSArIDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCippZjM2X2VuZDoKCipmb3JfN19jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjg5CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl83CgoqZm9yXzdfZW5kOgoJLy8gKmlmMzdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI5OAoJLy8gZmlyc3RFbXB0eSA9PT0gMAoJZnJhbWVfZGlnIDEgLy8gZmlyc3RFbXB0eTogdWludDY0CglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppZjM3X2VuZAoKCS8vICppZjM3X2NvbnNlcXVlbnQKCS8vIE5vIGVtcHR5IHNsb3QgYXZhaWxhYmxlIGluIHRoZSBzdGFrZXIgcG9vbCBzZXQKCWVycgoKKmlmMzdfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMDEKCS8vIHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlW2ZpcnN0RW1wdHkgLSAxXSA9IHBvb2xLZXkKCWZyYW1lX2RpZyAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCS0KCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJYnl0ZWMgMyAvLyAgInNwcyIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gcmVtb3ZlRnJvbVN0YWtlclBvb2xTZXQoc3Rha2VyOiBBZGRyZXNzLCBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5KTogW2Jvb2xlYW4sIGJvb2xlYW5dCi8vCi8vIFJlbW92ZXMgYSBwb29sIGtleSBmcm9tIHRoZSBzdGFrZXIncyBhY3RpdmUgcG9vbCBzZXQgLSBmYWlscyBpZiBub3QgZm91bmQgKCEpCi8vCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHN0YWtlci4KLy8gQHBhcmFtIHtWYWxpZGF0b3JQb29sS2V5fSBwb29sS2V5IC0gVGhlIHBvb2wga2V5IHRoZXkgc2hvdWxkIGJlIHN0b3JlZCBpbgovLwovLyBAcmV0dXJuIFtib29sZWFuLCBib29sZWFuXSBbaXMgdGhlIHN0YWtlciBnb25lIGZyb20gQUxMIHBvb2xzIG9mIHRoZSBnaXZlbiBWQUxJREFUT1IsIGFuZCBpcyBzdGFrZXIgZ29uZSBmcm9tIEFMTCBwb29sc10KcmVtb3ZlRnJvbVN0YWtlclBvb2xTZXQ6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwbiA0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMTQKCS8vIGluU2FtZVZhbGlkYXRvclBvb2xDb3VudCA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDAgLy8gaW5TYW1lVmFsaWRhdG9yUG9vbENvdW50OiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMxNQoJLy8gaW5BbnlQb29sQ291bnQgPSAwCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAxIC8vIGluQW55UG9vbENvdW50OiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMxNgoJLy8gZm91bmQgPSBmYWxzZQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBmb3VuZDogYm9vbAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzE4CgkvLyBwb29sU2V0ID0gY2xvbmUodGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUpCglieXRlYyAzIC8vICAic3BzIgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJY29uY2F0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZQoJYXNzZXJ0CglmcmFtZV9idXJ5IDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzE5CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlLmxlbmd0aDsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgNCAvLyBpOiB1aW50NjQKCipmb3JfODoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzE5CgkvLyBpIDwgdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUubGVuZ3RoCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludGMgNyAvLyA2Cgk8CglieiAqZm9yXzhfZW5kCgoJLy8gKmlmMzhfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMyMAoJLy8gcG9vbFNldFtpXS5pZCA9PT0gMAoJZnJhbWVfZGlnIDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50YyAwIC8vIDAKCSsKCWludGMgMiAvLyA4CglleHRyYWN0MwoJYnRvaQoJaW50YyAwIC8vIDAKCT09CglieiAqaWYzOF9lbmQKCgkvLyAqaWYzOF9jb25zZXF1ZW50CgliICpmb3JfOF9jb250aW51ZQoKKmlmMzhfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMjMKCS8vIGluQW55UG9vbENvdW50ICs9IDEKCWZyYW1lX2RpZyAxIC8vIGluQW55UG9vbENvdW50OiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDEgLy8gaW5BbnlQb29sQ291bnQ6IHVpbnQ2NAoKCS8vICppZjM5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMjQKCS8vIHBvb2xTZXRbaV0uaWQgPT09IHBvb2xLZXkuaWQKCWZyYW1lX2RpZyAzIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMCAvLyAwCgkrCglpbnRjIDIgLy8gOAoJZXh0cmFjdDMKCWJ0b2kKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJPT0KCWJ6ICppZjM5X2VuZAoKCS8vICppZjM5X2NvbnNlcXVlbnQKCS8vICppZjQwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMjUKCS8vIHBvb2xTZXRbaV0gPT09IHBvb2xLZXkKCWZyYW1lX2RpZyAzIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludGMgMyAvLyAyNAoJZXh0cmFjdDMKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5Cgk9PQoJYnogKmlmNDBfZWxzZQoKCS8vICppZjQwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzI2CgkvLyBmb3VuZCA9IHRydWUKCWludGMgMSAvLyAxCglmcmFtZV9idXJ5IDIgLy8gZm91bmQ6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMyOAoJLy8gdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWVbaV0gPSB7IGlkOiAwLCBwb29sSWQ6IDAsIHBvb2xBcHBJZDogMCB9CglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGVjIDMgLy8gICJzcHMiCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgliICppZjQwX2VuZAoKKmlmNDBfZWxzZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzMwCgkvLyBpblNhbWVWYWxpZGF0b3JQb29sQ291bnQgKz0gMQoJZnJhbWVfZGlnIDAgLy8gaW5TYW1lVmFsaWRhdG9yUG9vbENvdW50OiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaW5TYW1lVmFsaWRhdG9yUG9vbENvdW50OiB1aW50NjQKCippZjQwX2VuZDoKCippZjM5X2VuZDoKCipmb3JfOF9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzE5CgkvLyBpICs9IDEKCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgNCAvLyBpOiB1aW50NjQKCWIgKmZvcl84CgoqZm9yXzhfZW5kOgoJLy8gKmlmNDFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMzNAoJLy8gIWZvdW5kCglmcmFtZV9kaWcgMiAvLyBmb3VuZDogYm9vbAoJIQoJYnogKmlmNDFfZW5kCgoJLy8gKmlmNDFfY29uc2VxdWVudAoJLy8gTm8gbWF0Y2hpbmcgc2xvdCBmb3VuZCB3aGVuIHRvbGQgdG8gcmVtb3ZlIGEgcG9vbCBmcm9tIHRoZSBzdGFrZXJzIHNldAoJZXJyCgoqaWY0MV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMzOAoJLy8gcmV0dXJuIFtpblNhbWVWYWxpZGF0b3JQb29sQ291bnQgPT09IDAsIGluQW55UG9vbENvdW50ID09PSAwXTsKCWJ5dGVjIDUgLy8gMHgwMAoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyAwIC8vIGluU2FtZVZhbGlkYXRvclBvb2xDb3VudDogdWludDY0CglpbnRjIDAgLy8gMAoJPT0KCXNldGJpdAoJaW50YyAxIC8vIDEKCWZyYW1lX2RpZyAxIC8vIGluQW55UG9vbENvdW50OiB1aW50NjQKCWludGMgMCAvLyAwCgk9PQoJc2V0Yml0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNAoJcmV0c3ViCgovLyBhZGRQb29sVG9Ob2RlKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIHBvb2xBcHBJZDogdWludDY0LCBub2RlTnVtOiB1aW50NjQpOiB2b2lkCmFkZFBvb2xUb05vZGU6Cglwcm90byAzIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNDIKCS8vIG5vZGVQb29sQXNzaWdubWVudHMgPSBjbG9uZSh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLm5vZGVQb29sQXNzaWdubWVudHMpCglpbnRjIDE2IC8vICBoZWFkT2Zmc2V0CglpbnRjIDIyIC8vIDE5MgoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAwIC8vIG5vZGVQb29sQXNzaWdubWVudHM6ICgodWludDY0WzNdKVs4XSkKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM0MwoJLy8gbWF4UG9vbHNQZXJOb2RlRm9yVGhpc1ZhbGlkYXRvciA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLnBvb2xzUGVyTm9kZSBhcyB1aW50NjQKCXB1c2hpbnQgMjI1CglpbnRjIDEgLy8gMQoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAxIC8vIG1heFBvb2xzUGVyTm9kZUZvclRoaXNWYWxpZGF0b3I6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzQ1CgkvLyBhc3NlcnQobm9kZU51bSA+PSAxICYmIG5vZGVOdW0gPD0gTUFYX05PREVTLCAnbm9kZSBudW1iZXIgbm90IGluIHZhbGlkIHJhbmdlJykKCWZyYW1lX2RpZyAtMyAvLyBub2RlTnVtOiB1aW50NjQKCWludGMgMSAvLyAxCgk+PQoJZHVwCglieiAqc2tpcF9hbmQ5CglmcmFtZV9kaWcgLTMgLy8gbm9kZU51bTogdWludDY0CglpbnRjIDIgLy8gOAoJPD0KCSYmCgoqc2tpcF9hbmQ5OgoJLy8gbm9kZSBudW1iZXIgbm90IGluIHZhbGlkIHJhbmdlCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM0NwoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBtYXhQb29sc1Blck5vZGVGb3JUaGlzVmFsaWRhdG9yOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoKKmZvcl85OgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNDcKCS8vIGkgPCBtYXhQb29sc1Blck5vZGVGb3JUaGlzVmFsaWRhdG9yCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIG1heFBvb2xzUGVyTm9kZUZvclRoaXNWYWxpZGF0b3I6IHVpbnQ2NAoJPAoJYnogKmZvcl85X2VuZAoKCS8vICppZjQyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNDgKCS8vIG5vZGVQb29sQXNzaWdubWVudHMubm9kZXNbbm9kZU51bSAtIDFdLnBvb2xBcHBJZHNbaV0gPT09IDAKCWZyYW1lX2RpZyAwIC8vIG5vZGVQb29sQXNzaWdubWVudHM6ICgodWludDY0WzNdKVs4XSkKCWludGMgMCAvLyAwCglmcmFtZV9kaWcgLTMgLy8gbm9kZU51bTogdWludDY0CglpbnRjIDEgLy8gMQoJLQoJaW50YyAzIC8vIDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludGMgMCAvLyAwCgkrCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMiAvLyA4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludGMgMiAvLyA4CglleHRyYWN0MwoJYnRvaQoJaW50YyAwIC8vIDAKCT09CglieiAqaWY0Ml9lbmQKCgkvLyAqaWY0Ml9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM1MAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5ub2RlUG9vbEFzc2lnbm1lbnRzLm5vZGVzW25vZGVOdW0gLSAxXS5wb29sQXBwSWRzW2ldID0gcG9vbEFwcElkCglpbnRjIDE2IC8vIDkwMAoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJaW50YyAxIC8vIDEKCS0KCWludGMgMyAvLyAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnRjIDAgLy8gMAoJKwoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDIgLy8gOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglmcmFtZV9kaWcgLTIgLy8gcG9vbEFwcElkOiB1aW50NjQKCWl0b2IKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM1MQoJLy8gcmV0dXJuOwoJcmV0c3ViCgoqaWY0Ml9lbmQ6CgoqZm9yXzlfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM0NwoJLy8gaSArPSAxCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDIgLy8gaTogdWludDY0CgliICpmb3JfOQoKKmZvcl85X2VuZDoKCS8vIG5vIGF2YWlsYWJsZSBzcGFjZSBpbiBzcGVjaWZpZWQgbm9kZSBmb3IgdGhpcyBwb29sCgllcnIKCXJldHN1YgoKLy8gZG9lc1N0YWtlck1lZXRHYXRpbmcodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgdmFsdWVUb1ZlcmlmeTogdWludDY0KTogdm9pZAovLwovLyBDaGVja3MgaWYgYSBzdGFrZXIgbWVldHMgdGhlIGdhdGluZyByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoZSB2YWxpZGF0b3IuCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yLgovLyBAcGFyYW0ge3VpbnQ2NH0gdmFsdWVUb1ZlcmlmeSAtIFRoZSB2YWx1ZSB0byB2ZXJpZnkgYWdhaW5zdCB0aGUgZ2F0aW5nIHJlcXVpcmVtZW50cy4KLy8gQHJldHVybnMge3ZvaWR9IG9yIGFzc2VydHMgaWYgcmVxdWlyZW1lbnRzIG5vdCBtZXQuCmRvZXNTdGFrZXJNZWV0R2F0aW5nOgoJcHJvdG8gMiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCWR1cG4gOAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzY1CgkvLyB0eXBlID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuZW50cnlHYXRpbmdUeXBlCglpbnRjIDM1IC8vIDgwCglpbnRjIDEgLy8gMQoJYnl0ZWMgMCAvLyAgInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAwIC8vIHR5cGU6IHVpbnQ4CgoJLy8gKmlmNDNfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM2NgoJLy8gdHlwZSA9PT0gR0FUSU5HX1RZUEVfTk9ORQoJZnJhbWVfZGlnIDAgLy8gdHlwZTogdWludDgKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmNDNfZW5kCgoJLy8gKmlmNDNfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNjcKCS8vIHJldHVybjsKCXJldHN1YgoKKmlmNDNfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNjkKCS8vIHN0YWtlciA9IHRoaXMudHhuLnNlbmRlcgoJdHhuIFNlbmRlcgoJZnJhbWVfYnVyeSAxIC8vIHN0YWtlcjogYWRkcmVzcwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzcwCgkvLyBjb25maWcgPSBjbG9uZSh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZykKCWludGMgMCAvLyAwCglpbnRjIDggLy8gMjQyCglieXRlYyAwIC8vICAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDIgLy8gY29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCgkvLyAqaWY0NF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzc0CgkvLyB0eXBlID09PSBHQVRJTkdfVFlQRV9BU1NFVFNfQ1JFQVRFRF9CWSB8fAoJLy8gICAgICAgdHlwZSA9PT0gR0FUSU5HX1RZUEVfQVNTRVRfSUQgfHwKCS8vICAgICAgIHR5cGUgPT09IEdBVElOR19UWVBFX0NSRUFURURfQllfTkZEX0FERFJFU1NFUwoJZnJhbWVfZGlnIDAgLy8gdHlwZTogdWludDgKCWludGMgMSAvLyAxCgk9PQoJZHVwCglibnogKnNraXBfb3I0CglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJaW50YyAxMCAvLyAyCgk9PQoJfHwKCipza2lwX29yNDoKCWR1cAoJYm56ICpza2lwX29yNQoJZnJhbWVfZGlnIDAgLy8gdHlwZTogdWludDgKCWludGMgOSAvLyAzCgk9PQoJfHwKCipza2lwX29yNToKCWJ6ICppZjQ0X2VuZAoKCS8vICppZjQ0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzc4CgkvLyBhc3NlcnQodmFsdWVUb1ZlcmlmeSAhPT0gMCkKCWZyYW1lX2RpZyAtMiAvLyB2YWx1ZVRvVmVyaWZ5OiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNzkKCS8vIGJhbFJlcXVpcmVkID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuZ2F0aW5nQXNzZXRNaW5CYWxhbmNlCglpbnRjIDM2IC8vIDE0NQoJaW50YyAyIC8vIDgKCWJ5dGVjIDAgLy8gICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyBiYWxSZXF1aXJlZDogdWludDY0CgoJLy8gKmlmNDVfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM4MAoJLy8gYmFsUmVxdWlyZWQgPT09IDAKCWZyYW1lX2RpZyAzIC8vIGJhbFJlcXVpcmVkOiB1aW50NjQKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmNDVfZW5kCgoJLy8gKmlmNDVfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzODEKCS8vIGJhbFJlcXVpcmVkID0gMQoJaW50YyAxIC8vIDEKCWZyYW1lX2J1cnkgMyAvLyBiYWxSZXF1aXJlZDogdWludDY0CgoqaWY0NV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM4MwoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICBzdGFrZXIuYXNzZXRCYWxhbmNlKEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWx1ZVRvVmVyaWZ5KSkgPj0gYmFsUmVxdWlyZWQsCgkvLyAgICAgICAgICdtdXN0IGhhdmUgcmVxdWlyZWQgbWluaW11bSBiYWxhbmNlIG9mIHZhbGlkYXRvciBkZWZpbmVkIHRva2VuIHRvIGFkZCBzdGFrZScKCS8vICAgICAgICkKCWZyYW1lX2RpZyAxIC8vIHN0YWtlcjogYWRkcmVzcwoJZnJhbWVfZGlnIC0yIC8vIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAzIC8vIGJhbFJlcXVpcmVkOiB1aW50NjQKCT49CgoJLy8gbXVzdCBoYXZlIHJlcXVpcmVkIG1pbmltdW0gYmFsYW5jZSBvZiB2YWxpZGF0b3IgZGVmaW5lZCB0b2tlbiB0byBhZGQgc3Rha2UKCWFzc2VydAoKKmlmNDRfZW5kOgoJLy8gKmlmNDZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM4OAoJLy8gdHlwZSA9PT0gR0FUSU5HX1RZUEVfQVNTRVRTX0NSRUFURURfQlkKCWZyYW1lX2RpZyAwIC8vIHR5cGU6IHVpbnQ4CglpbnRjIDEgLy8gMQoJPT0KCWJ6ICppZjQ2X2VuZAoKCS8vICppZjQ2X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzg5CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWx1ZVRvVmVyaWZ5KS5jcmVhdG9yID09PSBjb25maWcuZW50cnlHYXRpbmdBZGRyZXNzLAoJLy8gICAgICAgICAnc3BlY2lmaWVkIGFzc2V0IG11c3QgYmUgY3JlYXRlZCBieSBjcmVhdG9yIHRoYXQgdGhlIHZhbGlkYXRvciBkZWZpbmVkIGFzIGEgcmVxdWlyZW1lbnQgdG8gc3Rha2UnCgkvLyAgICAgICApCglmcmFtZV9kaWcgLTIgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0Cglhc3NldF9wYXJhbXNfZ2V0IEFzc2V0Q3JlYXRvcgoJcG9wCglmcmFtZV9kaWcgMiAvLyBjb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA4MSAzMgoJPT0KCgkvLyBzcGVjaWZpZWQgYXNzZXQgbXVzdCBiZSBjcmVhdGVkIGJ5IGNyZWF0b3IgdGhhdCB0aGUgdmFsaWRhdG9yIGRlZmluZWQgYXMgYSByZXF1aXJlbWVudCB0byBzdGFrZQoJYXNzZXJ0CgoqaWY0Nl9lbmQ6CgkvLyAqaWY0N19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzk0CgkvLyB0eXBlID09PSBHQVRJTkdfVFlQRV9BU1NFVF9JRAoJZnJhbWVfZGlnIDAgLy8gdHlwZTogdWludDgKCWludGMgMTAgLy8gMgoJPT0KCWJ6ICppZjQ3X2VuZAoKCS8vICppZjQ3X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzk1CgkvLyBhc3NlcnQodmFsdWVUb1ZlcmlmeSAhPT0gMCkKCWZyYW1lX2RpZyAtMiAvLyB2YWx1ZVRvVmVyaWZ5OiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzOTYKCS8vIGZvdW5kID0gZmFsc2UKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDQgLy8gZm91bmQ6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM5NwoJLy8gY29uZmlnLmVudHJ5R2F0aW5nQXNzZXRzCglmcmFtZV9kaWcgMiAvLyBjb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxMTMgMzIKCWR1cAoJZnJhbWVfYnVyeSA1IC8vIGNvcHkgb2YgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZXh0cmFjdCAwIDgKCWJ0b2kKCWZyYW1lX2J1cnkgNiAvLyBhc3NldElkOiB1aW50NjQKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDcgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCipmb3JPZl8wOgoJLy8gKmlmNDhfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM5OAoJLy8gdmFsdWVUb1ZlcmlmeSA9PT0gYXNzZXRJZAoJZnJhbWVfZGlnIC0yIC8vIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NAoJZnJhbWVfZGlnIDYgLy8gYXNzZXRJZDogdWludDY0Cgk9PQoJYnogKmlmNDhfZW5kCgoJLy8gKmlmNDhfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzOTkKCS8vIGZvdW5kID0gdHJ1ZQoJaW50YyAxIC8vIDEKCWZyYW1lX2J1cnkgNCAvLyBmb3VuZDogYm9vbAoJYiAqZm9yT2ZfMF9lbmQKCippZjQ4X2VuZDoKCipmb3JPZl8wX2NvbnRpbnVlOgoJLy8gaW5jcmVtZW50IG9mZnNldCBhbmQgbG9vcCBpZiBub3Qgb3V0IG9mIGJvdW5kcwoJZnJhbWVfZGlnIDcgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWludGMgMiAvLyA4CgkrCglkdXAKCWludGMgNCAvLyAgb2Zmc2V0IG9mIGxhc3QgZWxlbWVudAoJPAoJYnogKmZvck9mXzBfZW5kCglmcmFtZV9idXJ5IDcgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWZyYW1lX2RpZyA1IC8vIGNvcHkgb2YgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZnJhbWVfZGlnIDcgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWludGMgMiAvLyA4CglleHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDYgLy8gYXNzZXRJZDogdWludDY0CgliICpmb3JPZl8wCgoqZm9yT2ZfMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQwMwoJLy8gYXNzZXJ0KGZvdW5kLCAnc3BlY2lmaWVkIGFzc2V0IG11c3QgYmUgaWRlbnRpY2FsIHRvIHRoZSBhc3NldCBpZCBkZWZpbmVkIGFzIGEgcmVxdWlyZW1lbnQgdG8gc3Rha2UnKQoJZnJhbWVfZGlnIDQgLy8gZm91bmQ6IGJvb2wKCgkvLyBzcGVjaWZpZWQgYXNzZXQgbXVzdCBiZSBpZGVudGljYWwgdG8gdGhlIGFzc2V0IGlkIGRlZmluZWQgYXMgYSByZXF1aXJlbWVudCB0byBzdGFrZQoJYXNzZXJ0CgoqaWY0N19lbmQ6CgkvLyAqaWY0OV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDA1CgkvLyB0eXBlID09PSBHQVRJTkdfVFlQRV9DUkVBVEVEX0JZX05GRF9BRERSRVNTRVMKCWZyYW1lX2RpZyAwIC8vIHR5cGU6IHVpbnQ4CglpbnRjIDkgLy8gMwoJPT0KCWJ6ICppZjQ5X2VuZAoKCS8vICppZjQ5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDA4CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIHRoaXMuaXNBZGRyZXNzSW5ORkRDQUFsZ29MaXN0KGNvbmZpZy5lbnRyeUdhdGluZ0Fzc2V0c1swXSwgQXNzZXRJRC5mcm9tVWludDY0KHZhbHVlVG9WZXJpZnkpLmNyZWF0b3IpLAoJLy8gICAgICAgICAnc3BlY2lmaWVkIGFzc2V0IG11c3QgYmUgY3JlYXRlZCBieSBjcmVhdG9yIHRoYXQgaXMgb25lIG9mIHRoZSBsaW5rZWQgYWRkcmVzc2VzIGluIGFuIG5mZCcKCS8vICAgICAgICkKCWZyYW1lX2RpZyAtMiAvLyB2YWx1ZVRvVmVyaWZ5OiB1aW50NjQKCWFzc2V0X3BhcmFtc19nZXQgQXNzZXRDcmVhdG9yCglwb3AKCWZyYW1lX2RpZyAyIC8vIGNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDExMyA4CglidG9pCgljYWxsc3ViIGlzQWRkcmVzc0luTkZEQ0FBbGdvTGlzdAoKCS8vIHNwZWNpZmllZCBhc3NldCBtdXN0IGJlIGNyZWF0ZWQgYnkgY3JlYXRvciB0aGF0IGlzIG9uZSBvZiB0aGUgbGlua2VkIGFkZHJlc3NlcyBpbiBhbiBuZmQKCWFzc2VydAoKKmlmNDlfZW5kOgoJLy8gKmlmNTBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQxMwoJLy8gdHlwZSA9PT0gR0FUSU5HX1RZUEVfU0VHTUVOVF9PRl9ORkQKCWZyYW1lX2RpZyAwIC8vIHR5cGU6IHVpbnQ4CglpbnRjIDIwIC8vIDQKCT09CglieiAqaWY1MF9lbmQKCgkvLyAqaWY1MF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQxNQoJLy8gdXNlck9mZmVyZWRORkRBcHBJRCA9IHZhbHVlVG9WZXJpZnkKCWZyYW1lX2RpZyAtMiAvLyB2YWx1ZVRvVmVyaWZ5OiB1aW50NjQKCWZyYW1lX2J1cnkgOCAvLyB1c2VyT2ZmZXJlZE5GREFwcElEOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQxNgoJLy8gYXNzZXJ0KHRoaXMuaXNORkRBcHBJRFZhbGlkKHVzZXJPZmZlcmVkTkZEQXBwSUQpLCAncHJvdmlkZWQgTkZEIG11c3QgYmUgdmFsaWQnKQoJZnJhbWVfZGlnIDggLy8gdXNlck9mZmVyZWRORkRBcHBJRDogdWludDY0CgljYWxsc3ViIGlzTkZEQXBwSURWYWxpZAoKCS8vIHByb3ZpZGVkIE5GRCBtdXN0IGJlIHZhbGlkCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQxOQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICByYXdCeXRlcyhBcHBJRC5mcm9tVWludDY0KHVzZXJPZmZlcmVkTkZEQXBwSUQpLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKSBhcyBBZGRyZXNzKSA9PT0gcmF3Qnl0ZXMoc3Rha2VyKSB8fAoJLy8gICAgICAgICAgIHRoaXMuaXNBZGRyZXNzSW5ORkRDQUFsZ29MaXN0KHVzZXJPZmZlcmVkTkZEQXBwSUQsIHN0YWtlciksCgkvLyAgICAgICAgICJwcm92aWRlZCBuZmQgZm9yIGVudHJ5IGlzbid0IG93bmVkIG9yIGxpbmtlZCB0byB0aGUgc3Rha2VyIgoJLy8gICAgICAgKQoJZnJhbWVfZGlnIDggLy8gdXNlck9mZmVyZWRORkRBcHBJRDogdWludDY0CglieXRlYyA5IC8vICAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQodXNlck9mZmVyZWRORkRBcHBJRCkuZ2xvYmFsU3RhdGUoJ2kub3duZXIuYScpCglhc3NlcnQKCWZyYW1lX2RpZyAxIC8vIHN0YWtlcjogYWRkcmVzcwoJPT0KCWR1cAoJYm56ICpza2lwX29yNgoJZnJhbWVfZGlnIDEgLy8gc3Rha2VyOiBhZGRyZXNzCglmcmFtZV9kaWcgOCAvLyB1c2VyT2ZmZXJlZE5GREFwcElEOiB1aW50NjQKCWNhbGxzdWIgaXNBZGRyZXNzSW5ORkRDQUFsZ29MaXN0Cgl8fAoKKnNraXBfb3I2OgoJLy8gcHJvdmlkZWQgbmZkIGZvciBlbnRyeSBpc24ndCBvd25lZCBvciBsaW5rZWQgdG8gdGhlIHN0YWtlcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0MjYKCS8vIGFzc2VydCgKCS8vICAgICAgICAgYnRvaShBcHBJRC5mcm9tVWludDY0KHVzZXJPZmZlcmVkTkZEQXBwSUQpLmdsb2JhbFN0YXRlKCdpLnBhcmVudEFwcElEJykgYXMgYnl0ZXMpID09PQoJLy8gICAgICAgICAgIGNvbmZpZy5lbnRyeUdhdGluZ0Fzc2V0c1swXSwKCS8vICAgICAgICAgJ3NwZWNpZmllZCBuZmQgbXVzdCBiZSBhIHNlZ21lbnQgb2YgdGhlIG5mZCB0aGUgdmFsaWRhdG9yIHNwZWNpZmllZCBhcyBhIHJlcXVpcmVtZW50JwoJLy8gICAgICAgKQoJZnJhbWVfZGlnIDggLy8gdXNlck9mZmVyZWRORkRBcHBJRDogdWludDY0CglwdXNoYnl0ZXMgMHg2OTJlNzA2MTcyNjU2ZTc0NDE3MDcwNDk0NCAvLyAiaS5wYXJlbnRBcHBJRCIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KHVzZXJPZmZlcmVkTkZEQXBwSUQpLmdsb2JhbFN0YXRlKCdpLnBhcmVudEFwcElEJykKCWFzc2VydAoJYnRvaQoJZnJhbWVfZGlnIDIgLy8gY29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTEzIDgKCWJ0b2kKCT09CgoJLy8gc3BlY2lmaWVkIG5mZCBtdXN0IGJlIGEgc2VnbWVudCBvZiB0aGUgbmZkIHRoZSB2YWxpZGF0b3Igc3BlY2lmaWVkIGFzIGEgcmVxdWlyZW1lbnQKCWFzc2VydAoKKmlmNTBfZW5kOgoJcmV0c3ViCgovLyBpc05GREFwcElEVmFsaWQobmZkQXBwSUQ6IHVpbnQ2NCk6IGJvb2xlYW4KLy8KLy8gQ2hlY2tzIGlmIHRoZSBnaXZlbiBORkQgQXBwIGlkIGlzIHZhbGlkLiAgVXNpbmcgb25seSB0aGUgQXBwIGlkIHRoZXJlJ3Mgbm8gdmFsaWRhdGlvbiBhZ2FpbnN0IHRoZSBuYW1lIChpZTogdGhhdCBuZmQgWCBpcyBuYW1lIFkpCi8vIFNvIGl0J3MgYXNzdW1lZCBmb3IgdGhlIGNhbGxlciwgdGhlIGFwcCBpZCBhbG9uZSBpcyBmaW5lLiAgVGhlIG5hbWUgaXMgZmV0Y2hlZCBmcm9tIHRoZSBzcGVjaWZpZWQgYXBwIGlkIGFuZCB0aGUgdHdvCi8vIHRvZ2V0aGVyIGFyZSB1c2VkIGZvciB2YWxpZGl0eSBjaGVjayBjYWxsIHRvIHRoZSBuZmQgcmVnaXN0cnkuCi8vCi8vIEBwYXJhbSB7dWludDY0fSBuZmRBcHBJRCAtIFRoZSBORkQgQXBwIGlkIHRvIHZlcmlmeS4KLy8KLy8gQHJldHVybnMge2Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBORkQgQXBwIGlkIGlzIHZhbGlkLCBvdGhlcndpc2UgZmFsc2UuCmlzTkZEQXBwSURWYWxpZDoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAxIC8vIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NDUKCS8vIHVzZXJPZmZlcmVkTkZETmFtZSA9IEFwcElELmZyb21VaW50NjQobmZkQXBwSUQpLmdsb2JhbFN0YXRlKCdpLm5hbWUnKSBhcyBzdHJpbmcKCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJRDogdWludDY0CglwdXNoYnl0ZXMgMHg2OTJlNmU2MTZkNjUgLy8gImkubmFtZSIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKS5nbG9iYWxTdGF0ZSgnaS5uYW1lJykKCWFzc2VydAoJZnJhbWVfYnVyeSAwIC8vIHVzZXJPZmZlcmVkTkZETmFtZTogc3RyaW5nCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NDcKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5uZmRSZWdpc3RyeUFwcElkKSwKCS8vICAgICAgIGFwcGxpY2F0aW9uQXJnczogWydpc192YWxpZF9uZmRfYXBwaWQnLCB1c2VyT2ZmZXJlZE5GRE5hbWUsIGl0b2IobmZkQXBwSUQpXSwKCS8vICAgICAgIGFwcGxpY2F0aW9uczogW0FwcElELmZyb21VaW50NjQobmZkQXBwSUQpXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NDgKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5uZmRSZWdpc3RyeUFwcElkKQoJaW50YyAxOSAvLyBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDQ5CgkvLyBhcHBsaWNhdGlvbkFyZ3M6IFsnaXNfdmFsaWRfbmZkX2FwcGlkJywgdXNlck9mZmVyZWRORkROYW1lLCBpdG9iKG5mZEFwcElEKV0KCWJ5dGVjIDEzIC8vICAiaXNfdmFsaWRfbmZkX2FwcGlkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAwIC8vIHVzZXJPZmZlcmVkTkZETmFtZTogc3RyaW5nCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0xIC8vIG5mZEFwcElEOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NTAKCS8vIGFwcGxpY2F0aW9uczogW0FwcElELmZyb21VaW50NjQobmZkQXBwSUQpXQoJZnJhbWVfZGlnIC0xIC8vIG5mZEFwcElEOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25zCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDUyCgkvLyByZXR1cm4gYnRvaSh0aGlzLml0eG4ubGFzdExvZykgPT09IDE7CglpdHhuIExhc3RMb2cKCWJ0b2kKCWludGMgMSAvLyAxCgk9PQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBpc0FkZHJlc3NJbk5GRENBQWxnb0xpc3QobmZkQXBwSUQ6IHVpbnQ2NCwgYWRkclRvRmluZDogQWRkcmVzcyk6IGJvb2xlYW4KLy8KLy8gQ2hlY2tzIGlmIHRoZSBzcGVjaWZpZWQgYWRkcmVzcyBpcyBwcmVzZW50IGluIGFuIE5GRHMgbGlzdCBvZiB2ZXJpZmllZCBhZGRyZXNzZXMuCi8vIFRoZSBORkQgaXMgYXNzdW1lZCB0byBoYXZlIGFscmVhZHkgYmVlbiB2YWxpZGF0ZWQgYXMgb2ZmaWNpYWwuCi8vCi8vIEBwYXJhbSB7dWludDY0fSBuZmRBcHBJRCAtIFRoZSBORkQgYXBwbGljYXRpb24gaWQuCi8vIEBwYXJhbSB7QWRkcmVzc30gYWRkclRvRmluZCAtIFRoZSBhZGRyZXNzIHRvIGZpbmQgaW4gdGhlIHYuY2FBbGdvLjAuYXMgcHJvcGVydHkKLy8gQHJldHVybiB7Ym9vbGVhbn0gLSBgdHJ1ZWAgaWYgdGhlIGFkZHJlc3MgaXMgcHJlc2VudCwgYGZhbHNlYCBvdGhlcndpc2UuCmlzQWRkcmVzc0luTkZEQ0FBbGdvTGlzdDoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAxIC8vIDB4CglkdXBuIDIKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ2NAoJLy8gc2VuZEFwcENhbGwoewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJRCksCgkvLyAgICAgICBhcHBsaWNhdGlvbkFyZ3M6IFsncmVhZF9wcm9wZXJ0eScsICd2LmNhQWxnby4wLmFzJ10sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDY1CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKQoJZnJhbWVfZGlnIC0xIC8vIG5mZEFwcElEOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDY2CgkvLyBhcHBsaWNhdGlvbkFyZ3M6IFsncmVhZF9wcm9wZXJ0eScsICd2LmNhQWxnby4wLmFzJ10KCXB1c2hieXRlcyAweDcyNjU2MTY0NWY3MDcyNmY3MDY1NzI3NDc5IC8vICJyZWFkX3Byb3BlcnR5IgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCXB1c2hieXRlcyAweDc2MmU2MzYxNDE2YzY3NmYyZTMwMmU2MTczIC8vICJ2LmNhQWxnby4wLmFzIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NjgKCS8vIGNhQWxnb0RhdGEgPSB0aGlzLml0eG4ubGFzdExvZwoJaXR4biBMYXN0TG9nCglmcmFtZV9idXJ5IDAgLy8gY2FBbGdvRGF0YTogYnl0ZVtdCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NjkKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgY2FBbGdvRGF0YS5sZW5ndGg7IGkgKz0gMzIpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoKKmZvcl8xMDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDY5CgkvLyBpIDwgY2FBbGdvRGF0YS5sZW5ndGgKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gY2FBbGdvRGF0YTogYnl0ZVtdCglsZW4KCTwKCWJ6ICpmb3JfMTBfZW5kCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NzAKCS8vIGFkZHIgPSBleHRyYWN0MyhjYUFsZ29EYXRhLCBpLCAzMikKCWZyYW1lX2RpZyAwIC8vIGNhQWxnb0RhdGE6IGJ5dGVbXQoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnRjIDQgLy8gMzIKCWV4dHJhY3QzCglmcmFtZV9idXJ5IDIgLy8gYWRkcjogYnl0ZVtdCgoJLy8gKmlmNTFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ3MQoJLy8gYWRkciAhPT0gcmF3Qnl0ZXMoZ2xvYmFscy56ZXJvQWRkcmVzcykgJiYgYWRkciA9PT0gcmF3Qnl0ZXMoYWRkclRvRmluZCkKCWZyYW1lX2RpZyAyIC8vIGFkZHI6IGJ5dGVbXQoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoJZHVwCglieiAqc2tpcF9hbmQxMAoJZnJhbWVfZGlnIDIgLy8gYWRkcjogYnl0ZVtdCglmcmFtZV9kaWcgLTIgLy8gYWRkclRvRmluZDogQWRkcmVzcwoJPT0KCSYmCgoqc2tpcF9hbmQxMDoKCWJ6ICppZjUxX2VuZAoKCS8vICppZjUxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDcyCgkvLyByZXR1cm4gdHJ1ZTsKCWludGMgMSAvLyAxCgliICppc0FkZHJlc3NJbk5GRENBQWxnb0xpc3QqcmV0dXJuCgoqaWY1MV9lbmQ6CgoqZm9yXzEwX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NjkKCS8vIGkgKz0gMzIKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50YyA0IC8vIDMyCgkrCglmcmFtZV9idXJ5IDEgLy8gaTogdWludDY0CgliICpmb3JfMTAKCipmb3JfMTBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NzUKCS8vIHJldHVybiBmYWxzZTsKCWludGMgMCAvLyAwCgoqaXNBZGRyZXNzSW5ORkRDQUFsZ29MaXN0KnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDIKCXJldHN1YgoKLy8gYWxnb1NhdHVyYXRpb25MZXZlbCgpOiB1aW50NjQKLy8KLy8gUmV0dXJucyB0aGUgbWF4aW11bSBhbGxvd2VkIHN0YWtlIHBlciB2YWxpZGF0b3IgYmFzZWQgb24gYSBwZXJjZW50YWdlIG9mIGFsbCBjdXJyZW50IG9ubGluZSBzdGFrZSBiZWZvcmUKLy8gdGhlIHZhbGlkYXRvciBpcyBjb25zaWRlcmVkIHNhdHVyYXRlZCAtIHdoZXJlIHJld2FyZHMgYXJlIGRpbWluaXNoZWQuCi8vIE5PVEU6IHRoaXMgZnVuY3Rpb24gaXMgZGVmaW5lZCB0d2ljZSAtIGhlcmUgYW5kIGluIHN0YWtpbmcgcG9vbCBjb250cmFjdC4gIEJvdGggbXVzdCBiZSBpZGVudGljYWwuCmFsZ29TYXR1cmF0aW9uTGV2ZWw6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMSAvLyAweAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDg0CgkvLyBvbmxpbmUgPSB0aGlzLmdldEN1cnJlbnRPbmxpbmVTdGFrZSgpCgljYWxsc3ViIGdldEN1cnJlbnRPbmxpbmVTdGFrZQoJZnJhbWVfYnVyeSAwIC8vIG9ubGluZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0ODYKCS8vIHJldHVybiB3aWRlUmF0aW8oW29ubGluZSwgTUFYX1ZBTElEQVRPUl9TT0ZUX1BDVF9PRl9PTkxJTkVfMURFQ0lNQUxdLCBbMTAwMF0pOwoJZnJhbWVfZGlnIDAgLy8gb25saW5lOiB1aW50NjQKCXB1c2hpbnQgMTAwCgltdWx3CglpbnRjIDAgLy8gMAoJaW50YyAzMSAvLyAxMDAwCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBtYXhBbGxvd2VkU3Rha2UoKTogdWludDY0Ci8vCi8vIFJldHVybnMgdGhlIE1BWElNVU0gYWxsb3dlZCBzdGFrZSBwZXIgdmFsaWRhdG9yIGJhc2VkIG9uIGEgcGVyY2VudGFnZSBvZiBhbGwgY3VycmVudCBvbmxpbmUgc3Rha2UuCi8vIEFkZGluZyBzdGFrZSBpcyBjb21wbGV0ZWx5IGJsb2NrZWQgYXQgdGhpcyBhbW91bnQuCm1heEFsbG93ZWRTdGFrZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAxIC8vIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0OTQKCS8vIG9ubGluZSA9IHRoaXMuZ2V0Q3VycmVudE9ubGluZVN0YWtlKCkKCWNhbGxzdWIgZ2V0Q3VycmVudE9ubGluZVN0YWtlCglmcmFtZV9idXJ5IDAgLy8gb25saW5lOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ5NgoJLy8gcmV0dXJuIHdpZGVSYXRpbyhbb25saW5lLCBNQVhfVkFMSURBVE9SX0hBUkRfUENUX09GX09OTElORV8xREVDSU1BTF0sIFsxMDAwXSk7CglmcmFtZV9kaWcgMCAvLyBvbmxpbmU6IHVpbnQ2NAoJcHVzaGludCAxNTAKCW11bHcKCWludGMgMCAvLyAwCglpbnRjIDMxIC8vIDEwMDAKCWRpdm1vZHcKCXBvcAoJcG9wCglzd2FwCgkhCgoJLy8gd2lkZVJhdGlvIGZhaWxlZAoJYXNzZXJ0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIG1heEFsZ29BbGxvd2VkUGVyUG9vbCgpOiB1aW50NjQKLy8KLy8gUmV0dXJucyB0aGUgTUFYSU1VTSBhbGxvd2VkIHN0YWtlIHBlciBwb29sIGFuZCBzdGlsbCByZWNlaXZlIGluY2VudGl2ZXMgLSB3ZSdsbCB0cmVhdCB0aGlzIGFzIHRoZSAnbWF4IHBlciBwb29sJwptYXhBbGdvQWxsb3dlZFBlclBvb2w6Cglwcm90byAwIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUwNAoJLy8gcmV0dXJuIDcwXzAwMF8wMDBfMDAwXzAwMDsKCXB1c2hpbnQgNzBfMDAwXzAwMF8wMDBfMDAwCglyZXRzdWIKCi8vIGdldEN1cnJlbnRPbmxpbmVTdGFrZSgpOiB1aW50NjQKZ2V0Q3VycmVudE9ubGluZVN0YWtlOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MDkKCS8vIHJldHVybiAyXzAwMF8wMDBfMDAwXzAwMF8wMDA7CglwdXNoaW50IDJfMDAwXzAwMF8wMDBfMDAwXzAwMAoJcmV0c3ViCgovLyBtaW5CYWxhbmNlRm9yQWNjb3VudChjb250cmFjdHM6IHVpbnQ2NCwgZXh0cmFQYWdlczogdWludDY0LCBhc3NldHM6IHVpbnQ2NCwgbG9jYWxJbnRzOiB1aW50NjQsIGxvY2FsQnl0ZXM6IHVpbnQ2NCwgZ2xvYmFsSW50czogdWludDY0LCBnbG9iYWxCeXRlczogdWludDY0KTogdWludDY0Cm1pbkJhbGFuY2VGb3JBY2NvdW50OgoJcHJvdG8gNyAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDEgLy8gMHgKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUyMQoJLy8gbWluQmFsID0gQUxHT1JBTkRfQUNDT1VOVF9NSU5fQkFMQU5DRQoJaW50YyAxNSAvLyAxMDAwMDAKCWZyYW1lX2J1cnkgMCAvLyBtaW5CYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTIyCgkvLyBtaW5CYWwgKz0gY29udHJhY3RzICogQVBQTElDQVRJT05fQkFTRV9GRUUKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gY29udHJhY3RzOiB1aW50NjQKCWludGMgMTUgLy8gMTAwMDAwCgkqCgkrCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUyMwoJLy8gbWluQmFsICs9IGV4dHJhUGFnZXMgKiBBUFBMSUNBVElPTl9CQVNFX0ZFRQoJZnJhbWVfZGlnIDAgLy8gbWluQmFsOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBleHRyYVBhZ2VzOiB1aW50NjQKCWludGMgMTUgLy8gMTAwMDAwCgkqCgkrCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUyNAoJLy8gbWluQmFsICs9IGFzc2V0cyAqIEFTU0VUX0hPTERJTkdfRkVFCglmcmFtZV9kaWcgMCAvLyBtaW5CYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIC0zIC8vIGFzc2V0czogdWludDY0CglpbnRjIDE1IC8vIDEwMDAwMAoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MjUKCS8vIG1pbkJhbCArPSBsb2NhbEludHMgKiBTU0NfVkFMVUVfVUlOVAoJZnJhbWVfZGlnIDAgLy8gbWluQmFsOiB1aW50NjQKCWZyYW1lX2RpZyAtNCAvLyBsb2NhbEludHM6IHVpbnQ2NAoJaW50YyAzMiAvLyAyODUwMAoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MjYKCS8vIG1pbkJhbCArPSBnbG9iYWxJbnRzICogU1NDX1ZBTFVFX1VJTlQKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CglmcmFtZV9kaWcgLTYgLy8gZ2xvYmFsSW50czogdWludDY0CglpbnRjIDMyIC8vIDI4NTAwCgkqCgkrCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUyNwoJLy8gbWluQmFsICs9IGxvY2FsQnl0ZXMgKiBTU0NfVkFMVUVfQllURVMKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CglmcmFtZV9kaWcgLTUgLy8gbG9jYWxCeXRlczogdWludDY0CglpbnRjIDMzIC8vIDUwMDAwCgkqCgkrCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUyOAoJLy8gbWluQmFsICs9IGdsb2JhbEJ5dGVzICogU1NDX1ZBTFVFX0JZVEVTCglmcmFtZV9kaWcgMCAvLyBtaW5CYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIC03IC8vIGdsb2JhbEJ5dGVzOiB1aW50NjQKCWludGMgMzMgLy8gNTAwMDAKCSoKCSsKCWZyYW1lX2J1cnkgMCAvLyBtaW5CYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTI5CgkvLyByZXR1cm4gbWluQmFsOwoJZnJhbWVfZGlnIDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gY29zdEZvckJveFN0b3JhZ2UodG90YWxOdW1CeXRlczogdWludDY0KTogdWludDY0CmNvc3RGb3JCb3hTdG9yYWdlOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MzYKCS8vIHJldHVybiBTQ0JPWF9QRVJCT1ggKyB0b3RhbE51bUJ5dGVzICogU0NCT1hfUEVSQllURTsKCXB1c2hpbnQgMjUwMAoJZnJhbWVfZGlnIC0xIC8vIHRvdGFsTnVtQnl0ZXM6IHVpbnQ2NAoJcHVzaGludCA0MDAKCSoKCSsKCXJldHN1YgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDFiNWU4MmM2IC8vIG1ldGhvZCAiaW5pdFN0YWtpbmdDb250cmFjdCh1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweDc5NDcyZDgzIC8vIG1ldGhvZCAibG9hZFN0YWtpbmdDb250cmFjdERhdGEodWludDY0LGJ5dGVbXSl2b2lkIgoJcHVzaGJ5dGVzIDB4NWY3YWNmZDkgLy8gbWV0aG9kICJmaW5hbGl6ZVN0YWtpbmdDb250cmFjdCgpdm9pZCIKCXB1c2hieXRlcyAweDMxNzJjYTlkIC8vIG1ldGhvZCAiZ2FzKCl2b2lkIgoJcHVzaGJ5dGVzIDB4OGE4NzE0MmQgLy8gbWV0aG9kICJnZXRNYnJBbW91bnRzKCkodWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KSIKCXB1c2hieXRlcyAweGQxMzY2Y2MzIC8vIG1ldGhvZCAiZ2V0UHJvdG9jb2xDb25zdHJhaW50cygpKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpIgoJcHVzaGJ5dGVzIDB4M2IwNDVjNWMgLy8gbWV0aG9kICJnZXROdW1WYWxpZGF0b3JzKCl1aW50NjQiCglwdXNoYnl0ZXMgMHg3NWFmZjYxZCAvLyBtZXRob2QgImdldFZhbGlkYXRvckNvbmZpZyh1aW50NjQpKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpIgoJcHVzaGJ5dGVzIDB4MWYyZjAxMDkgLy8gbWV0aG9kICJnZXRWYWxpZGF0b3JTdGF0ZSh1aW50NjQpKHVpbnQxNix1aW50NjQsdWludDY0LHVpbnQ2NCkiCglwdXNoYnl0ZXMgMHgyZmEyMmM0YiAvLyBtZXRob2QgImdldFZhbGlkYXRvck93bmVyQW5kTWFuYWdlcih1aW50NjQpKGFkZHJlc3MsYWRkcmVzcykiCglwdXNoYnl0ZXMgMHg5MTBlOTRhYyAvLyBtZXRob2QgImdldFBvb2xzKHVpbnQ2NCkodWludDY0LHVpbnQxNix1aW50NjQpW10iCglwdXNoYnl0ZXMgMHg1NzI3NjdkMSAvLyBtZXRob2QgImdldFBvb2xBcHBJZCh1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweDliNTA0YWFmIC8vIG1ldGhvZCAiZ2V0UG9vbEluZm8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0LHVpbnQxNix1aW50NjQpIgoJcHVzaGJ5dGVzIDB4ZmJjNjMxNzggLy8gbWV0aG9kICJnZXRDdXJNYXhTdGFrZVBlclBvb2wodWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweDI0NDk4Y2Y0IC8vIG1ldGhvZCAiZG9lc1N0YWtlck5lZWRUb1BheU1CUihhZGRyZXNzKWJvb2wiCglwdXNoYnl0ZXMgMHhmODQ2ZGQ3YSAvLyBtZXRob2QgImdldFN0YWtlZFBvb2xzRm9yQWNjb3VudChhZGRyZXNzKSh1aW50NjQsdWludDY0LHVpbnQ2NClbXSIKCXB1c2hieXRlcyAweDgzMDUwNTAxIC8vIG1ldGhvZCAiZ2V0VG9rZW5QYXlvdXRSYXRpbyh1aW50NjQpKHVpbnQ2NFsyNF0sdWludDY0KSIKCXB1c2hieXRlcyAweDdiYmI2YzhkIC8vIG1ldGhvZCAiZ2V0Tm9kZVBvb2xBc3NpZ25tZW50cyh1aW50NjQpKCh1aW50NjRbM10pWzhdKSIKCXB1c2hieXRlcyAweGY4Mzk0MTRhIC8vIG1ldGhvZCAiZ2V0TkZEUmVnaXN0cnlJRCgpdWludDY0IgoJcHVzaGJ5dGVzIDB4MGMzMTdjZmIgLy8gbWV0aG9kICJhZGRWYWxpZGF0b3IocGF5LHN0cmluZywodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkpdWludDY0IgoJcHVzaGJ5dGVzIDB4M2UyODg5NzIgLy8gbWV0aG9kICJjaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyKHVpbnQ2NCxhZGRyZXNzKXZvaWQiCglwdXNoYnl0ZXMgMHhkZDVmYWFkYSAvLyBtZXRob2QgImNoYW5nZVZhbGlkYXRvclN1bnNldEluZm8odWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweDE4YWFjN2E3IC8vIG1ldGhvZCAiY2hhbmdlVmFsaWRhdG9yTkZEKHVpbnQ2NCx1aW50NjQsc3RyaW5nKXZvaWQiCglwdXNoYnl0ZXMgMHhmOTllZjU0ZCAvLyBtZXRob2QgImNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzKHVpbnQ2NCxhZGRyZXNzKXZvaWQiCglwdXNoYnl0ZXMgMHgxMDgwOWQ0ZCAvLyBtZXRob2QgImNoYW5nZVZhbGlkYXRvclJld2FyZEluZm8odWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweGU3NzhkZDVhIC8vIG1ldGhvZCAiYWRkUG9vbChwYXksdWludDY0LHVpbnQ2NCkodWludDY0LHVpbnQ2NCx1aW50NjQpIgoJcHVzaGJ5dGVzIDB4YmY1MjU5ZDAgLy8gbWV0aG9kICJhZGRTdGFrZShwYXksdWludDY0LHVpbnQ2NCkodWludDY0LHVpbnQ2NCx1aW50NjQpIgoJcHVzaGJ5dGVzIDB4NGRmOGQ4NmUgLy8gbWV0aG9kICJzZXRUb2tlblBheW91dFJhdGlvKHVpbnQ2NCkodWludDY0WzI0XSx1aW50NjQpIgoJcHVzaGJ5dGVzIDB4NDE4ZmNlZmMgLy8gbWV0aG9kICJzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzKCh1aW50NjQsdWludDY0LHVpbnQ2NCksdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHhhMmRjNTFiNSAvLyBtZXRob2QgInN0YWtlUmVtb3ZlZCgodWludDY0LHVpbnQ2NCx1aW50NjQpLGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQiCglwdXNoYnl0ZXMgMHgyODczZjUwNCAvLyBtZXRob2QgImZpbmRQb29sRm9yU3Rha2VyKHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCkoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpIgoJcHVzaGJ5dGVzIDB4MDU0N2Y0ZmUgLy8gbWV0aG9kICJtb3ZlUG9vbFRvTm9kZSh1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkIgoJcHVzaGJ5dGVzIDB4Y2I2NjgzNTggLy8gbWV0aG9kICJlbXB0eVRva2VuUmV3YXJkcyh1aW50NjQsYWRkcmVzcyl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2luaXRTdGFraW5nQ29udHJhY3QgKmFiaV9yb3V0ZV9sb2FkU3Rha2luZ0NvbnRyYWN0RGF0YSAqYWJpX3JvdXRlX2ZpbmFsaXplU3Rha2luZ0NvbnRyYWN0ICphYmlfcm91dGVfZ2FzICphYmlfcm91dGVfZ2V0TWJyQW1vdW50cyAqYWJpX3JvdXRlX2dldFByb3RvY29sQ29uc3RyYWludHMgKmFiaV9yb3V0ZV9nZXROdW1WYWxpZGF0b3JzICphYmlfcm91dGVfZ2V0VmFsaWRhdG9yQ29uZmlnICphYmlfcm91dGVfZ2V0VmFsaWRhdG9yU3RhdGUgKmFiaV9yb3V0ZV9nZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXIgKmFiaV9yb3V0ZV9nZXRQb29scyAqYWJpX3JvdXRlX2dldFBvb2xBcHBJZCAqYWJpX3JvdXRlX2dldFBvb2xJbmZvICphYmlfcm91dGVfZ2V0Q3VyTWF4U3Rha2VQZXJQb29sICphYmlfcm91dGVfZG9lc1N0YWtlck5lZWRUb1BheU1CUiAqYWJpX3JvdXRlX2dldFN0YWtlZFBvb2xzRm9yQWNjb3VudCAqYWJpX3JvdXRlX2dldFRva2VuUGF5b3V0UmF0aW8gKmFiaV9yb3V0ZV9nZXROb2RlUG9vbEFzc2lnbm1lbnRzICphYmlfcm91dGVfZ2V0TkZEUmVnaXN0cnlJRCAqYWJpX3JvdXRlX2FkZFZhbGlkYXRvciAqYWJpX3JvdXRlX2NoYW5nZVZhbGlkYXRvck1hbmFnZXIgKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvICphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yTkZEICphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MgKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvICphYmlfcm91dGVfYWRkUG9vbCAqYWJpX3JvdXRlX2FkZFN0YWtlICphYmlfcm91dGVfc2V0VG9rZW5QYXlvdXRSYXRpbyAqYWJpX3JvdXRlX3N0YWtlVXBkYXRlZFZpYVJld2FyZHMgKmFiaV9yb3V0ZV9zdGFrZVJlbW92ZWQgKmFiaV9yb3V0ZV9maW5kUG9vbEZvclN0YWtlciAqYWJpX3JvdXRlX21vdmVQb29sVG9Ob2RlICphYmlfcm91dGVfZW1wdHlUb2tlblJld2FyZHMKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipjYWxsX1VwZGF0ZUFwcGxpY2F0aW9uOgoJcHVzaGJ5dGVzIDB4NDZmNzY1MzMgLy8gbWV0aG9kICJ1cGRhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdXBkYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBVcGRhdGVBcHBsaWNhdGlvbgoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "templateVariables": { diff --git a/examples/reti/artifacts/ValidatorRegistry.src_map.json b/examples/reti/artifacts/ValidatorRegistry.src_map.json index 52abaa366..472ec845c 100644 --- a/examples/reti/artifacts/ValidatorRegistry.src_map.json +++ b/examples/reti/artifacts/ValidatorRegistry.src_map.json @@ -12,7 +12,7 @@ "source": "examples/reti/validatorRegistry.algo.ts:168" }, { - "teal": 11, + "teal": 15, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ 1, @@ -20,54 +20,48 @@ ] }, { - "teal": 18, + "teal": 16, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 3, - 4 + 3 ] }, { - "teal": 19, + "teal": 17, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 4, 5 ] }, { - "teal": 20, + "teal": 18, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6, - 7 + 6 ] }, { - "teal": 21, + "teal": 19, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 7, 8 ] }, { - "teal": 22, - "source": "examples/reti/validatorRegistry.algo.ts:168", - "pc": [ - 9, - 10 - ] - }, - { - "teal": 23, + "teal": 20, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 11 + 9 ] }, { - "teal": 24, + "teal": 21, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 10, + 11, 12, 13, 14, @@ -91,63 +85,63 @@ 32, 33, 34, - 35, - 36, - 37 + 35 ] }, { - "teal": 28, + "teal": 25, "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": [ - 38 + 36 ] }, { - "teal": 33, + "teal": 30, "source": "examples/reti/validatorRegistry.algo.ts:201", "pc": [ - 39, - 40, - 41 + 37, + 38, + 39 ] }, { - "teal": 34, + "teal": 31, "source": "examples/reti/validatorRegistry.algo.ts:201", "pc": [ - 42 + 40 ] }, { - "teal": 35, + "teal": 32, "source": "examples/reti/validatorRegistry.algo.ts:201", "pc": [ - 43 + 41 ] }, { - "teal": 39, + "teal": 36, "source": "examples/reti/validatorRegistry.algo.ts:201", "pc": [ - 44, - 45, - 46 + 42, + 43, + 44 ] }, { - "teal": 43, + "teal": 40, "source": "examples/reti/validatorRegistry.algo.ts:202", "pc": [ - 47, - 48 + 45, + 46 ] }, { - "teal": 44, + "teal": 41, "source": "examples/reti/validatorRegistry.algo.ts:202", "pc": [ + 47, + 48, 49, 50, 51, @@ -179,306 +173,312 @@ 77, 78, 79, - 80, - 81, - 82 + 80 ] }, { - "teal": 45, + "teal": 42, "source": "examples/reti/validatorRegistry.algo.ts:202", "pc": [ - 83 + 81 ] }, { - "teal": 46, + "teal": 43, "source": "examples/reti/validatorRegistry.algo.ts:202", "pc": [ - 84 + 82 ] }, { - "teal": 50, + "teal": 47, "source": "examples/reti/validatorRegistry.algo.ts:204", "pc": [ - 85, - 86 + 83, + 84 ] }, { - "teal": 51, + "teal": 48, "source": "examples/reti/validatorRegistry.algo.ts:204", "pc": [ - 87 + 85 ] }, { - "teal": 55, + "teal": 52, "source": "examples/reti/validatorRegistry.algo.ts:205", "pc": [ - 88, - 89 + 86, + 87 ] }, { - "teal": 56, + "teal": 53, "source": "examples/reti/validatorRegistry.algo.ts:205", "pc": [ - 90 + 88 ] }, { - "teal": 57, + "teal": 54, "source": "examples/reti/validatorRegistry.algo.ts:205", "pc": [ - 91, - 92 + 89, + 90 ] }, { - "teal": 58, + "teal": 55, "source": "examples/reti/validatorRegistry.algo.ts:205", "pc": [ - 93 + 91 ] }, { - "teal": 59, + "teal": 56, "source": "examples/reti/validatorRegistry.algo.ts:205", "pc": [ - 94, - 95 + 92, + 93 ] }, { - "teal": 60, + "teal": 57, "source": "examples/reti/validatorRegistry.algo.ts:205", "pc": [ - 96 + 94 ] }, { - "teal": 61, + "teal": 58, "source": "examples/reti/validatorRegistry.algo.ts:205", "pc": [ - 97 + 95 ] }, { - "teal": 62, + "teal": 59, "source": "examples/reti/validatorRegistry.algo.ts:201", "pc": [ - 98 + 96 ] }, { - "teal": 67, + "teal": 64, "source": "examples/reti/validatorRegistry.algo.ts:208", "pc": [ - 99, - 100, - 101 + 97, + 98, + 99 ] }, { - "teal": 68, + "teal": 65, "source": "examples/reti/validatorRegistry.algo.ts:208", "pc": [ - 102 + 100 ] }, { - "teal": 69, + "teal": 66, "source": "examples/reti/validatorRegistry.algo.ts:208", "pc": [ - 103 + 101 ] }, { - "teal": 73, + "teal": 70, "source": "examples/reti/validatorRegistry.algo.ts:208", "pc": [ - 104, + 102, + 103, + 104 + ] + }, + { + "teal": 74, + "source": "examples/reti/validatorRegistry.algo.ts:209", + "pc": [ 105, 106 ] }, { - "teal": 77, + "teal": 75, "source": "examples/reti/validatorRegistry.algo.ts:209", "pc": [ - 107, - 108 + 107 ] }, { - "teal": 78, + "teal": 76, "source": "examples/reti/validatorRegistry.algo.ts:209", "pc": [ + 108, 109 ] }, { - "teal": 79, + "teal": 77, "source": "examples/reti/validatorRegistry.algo.ts:209", "pc": [ - 110, - 111 + 110 ] }, { - "teal": 80, + "teal": 78, "source": "examples/reti/validatorRegistry.algo.ts:209", "pc": [ + 111, 112 ] }, { - "teal": 81, + "teal": 79, "source": "examples/reti/validatorRegistry.algo.ts:209", "pc": [ - 113, - 114 + 113 ] }, { - "teal": 82, + "teal": 80, "source": "examples/reti/validatorRegistry.algo.ts:209", "pc": [ - 115 + 114 ] }, { - "teal": 83, - "source": "examples/reti/validatorRegistry.algo.ts:209", + "teal": 84, + "source": "examples/reti/validatorRegistry.algo.ts:210", "pc": [ + 115, 116 ] }, { - "teal": 87, + "teal": 85, "source": "examples/reti/validatorRegistry.algo.ts:210", "pc": [ - 117, - 118 + 117 ] }, { - "teal": 88, + "teal": 86, "source": "examples/reti/validatorRegistry.algo.ts:210", "pc": [ - 119 + 118 ] }, { - "teal": 89, - "source": "examples/reti/validatorRegistry.algo.ts:210", + "teal": 90, + "source": "examples/reti/validatorRegistry.algo.ts:211", "pc": [ + 119, 120 ] }, { - "teal": 93, + "teal": 91, "source": "examples/reti/validatorRegistry.algo.ts:211", "pc": [ - 121, - 122 + 121 ] }, { - "teal": 94, + "teal": 92, "source": "examples/reti/validatorRegistry.algo.ts:211", "pc": [ - 123 + 122 ] }, { - "teal": 95, - "source": "examples/reti/validatorRegistry.algo.ts:211", + "teal": 96, + "source": "examples/reti/validatorRegistry.algo.ts:212", "pc": [ + 123, 124 ] }, { - "teal": 99, + "teal": 97, "source": "examples/reti/validatorRegistry.algo.ts:212", "pc": [ - 125, - 126 + 125 ] }, { - "teal": 100, + "teal": 98, "source": "examples/reti/validatorRegistry.algo.ts:212", "pc": [ - 127 + 126 ] }, { - "teal": 101, - "source": "examples/reti/validatorRegistry.algo.ts:212", + "teal": 99, + "source": "examples/reti/validatorRegistry.algo.ts:208", "pc": [ - 128 + 127 ] }, { - "teal": 102, - "source": "examples/reti/validatorRegistry.algo.ts:208", + "teal": 104, + "source": "examples/reti/validatorRegistry.algo.ts:215", "pc": [ - 129 + 128, + 129, + 130 ] }, { - "teal": 107, + "teal": 105, "source": "examples/reti/validatorRegistry.algo.ts:215", "pc": [ - 130, - 131, - 132 + 131 ] }, { "teal": 108, "source": "examples/reti/validatorRegistry.algo.ts:215", "pc": [ - 133 + 132, + 133, + 134 ] }, { - "teal": 111, + "teal": 109, "source": "examples/reti/validatorRegistry.algo.ts:215", "pc": [ - 134, - 135, - 136 + 135 ] }, { - "teal": 112, + "teal": 110, "source": "examples/reti/validatorRegistry.algo.ts:215", "pc": [ - 137 + 136 ] }, { - "teal": 113, + "teal": 114, "source": "examples/reti/validatorRegistry.algo.ts:215", "pc": [ - 138 + 137, + 138, + 139 ] }, { - "teal": 117, - "source": "examples/reti/validatorRegistry.algo.ts:215", + "teal": 118, + "source": "examples/reti/validatorRegistry.algo.ts:217", "pc": [ - 139, 140, 141 ] }, { - "teal": 121, + "teal": 119, "source": "examples/reti/validatorRegistry.algo.ts:217", "pc": [ 142, @@ -486,145 +486,145 @@ ] }, { - "teal": 122, + "teal": 120, "source": "examples/reti/validatorRegistry.algo.ts:217", "pc": [ - 144, - 145 + 144 ] }, { - "teal": 123, + "teal": 121, "source": "examples/reti/validatorRegistry.algo.ts:217", "pc": [ - 146 + 145 ] }, { - "teal": 124, - "source": "examples/reti/validatorRegistry.algo.ts:217", + "teal": 122, + "source": "examples/reti/validatorRegistry.algo.ts:215", "pc": [ - 147 + 146 ] }, { - "teal": 125, - "source": "examples/reti/validatorRegistry.algo.ts:215", + "teal": 127, + "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 148 + 147, + 148, + 149 ] }, { - "teal": 130, + "teal": 128, "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 149, 150, - 151 + 151, + 152 ] }, { "teal": 131, "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 152, 153, - 154 + 154, + 155 ] }, { - "teal": 134, + "teal": 132, "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 155, - 156, - 157 + 156 ] }, { "teal": 135, "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 158 + 157, + 158, + 159 ] }, { - "teal": 138, + "teal": 136, "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 159, - 160, - 161 + 160 ] }, { - "teal": 139, + "teal": 137, "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 162 + 161 ] }, { - "teal": 140, + "teal": 141, "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 163 + 162, + 163, + 164 ] }, { - "teal": 144, - "source": "examples/reti/validatorRegistry.algo.ts:220", + "teal": 145, + "source": "examples/reti/validatorRegistry.algo.ts:221", "pc": [ - 164, 165, 166 ] }, { - "teal": 148, + "teal": 146, "source": "examples/reti/validatorRegistry.algo.ts:221", "pc": [ - 167, - 168 + 167 ] }, { - "teal": 149, + "teal": 147, "source": "examples/reti/validatorRegistry.algo.ts:221", "pc": [ - 169 + 168 ] }, { - "teal": 150, + "teal": 148, "source": "examples/reti/validatorRegistry.algo.ts:221", "pc": [ - 170 + 169 ] }, { - "teal": 151, + "teal": 149, "source": "examples/reti/validatorRegistry.algo.ts:221", "pc": [ - 171 + 170 ] }, { - "teal": 152, + "teal": 150, "source": "examples/reti/validatorRegistry.algo.ts:221", "pc": [ - 172 + 171 ] }, { - "teal": 153, - "source": "examples/reti/validatorRegistry.algo.ts:221", + "teal": 154, + "source": "examples/reti/validatorRegistry.algo.ts:222", "pc": [ + 172, 173 ] }, { - "teal": 157, + "teal": 155, "source": "examples/reti/validatorRegistry.algo.ts:222", "pc": [ 174, @@ -632,7 +632,7 @@ ] }, { - "teal": 158, + "teal": 156, "source": "examples/reti/validatorRegistry.algo.ts:222", "pc": [ 176, @@ -640,447 +640,441 @@ ] }, { - "teal": 159, + "teal": 157, "source": "examples/reti/validatorRegistry.algo.ts:222", "pc": [ - 178, - 179 + 178 ] }, { - "teal": 160, - "source": "examples/reti/validatorRegistry.algo.ts:222", + "teal": 158, + "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 180 + 179 ] }, { - "teal": 161, - "source": "examples/reti/validatorRegistry.algo.ts:220", + "teal": 163, + "source": "examples/reti/validatorRegistry.algo.ts:225", "pc": [ - 181 + 180, + 181, + 182 ] }, { - "teal": 166, + "teal": 164, "source": "examples/reti/validatorRegistry.algo.ts:225", "pc": [ - 182, - 183, - 184 + 183 ] }, { - "teal": 167, + "teal": 165, "source": "examples/reti/validatorRegistry.algo.ts:225", "pc": [ - 185 + 184 ] }, { - "teal": 168, + "teal": 169, "source": "examples/reti/validatorRegistry.algo.ts:225", "pc": [ - 186 + 185, + 186, + 187 ] }, { - "teal": 172, - "source": "examples/reti/validatorRegistry.algo.ts:225", + "teal": 173, + "source": "examples/reti/validatorRegistry.algo.ts:226", "pc": [ - 187, 188, 189 ] }, { - "teal": 176, + "teal": 174, "source": "examples/reti/validatorRegistry.algo.ts:226", "pc": [ - 190, - 191 + 190 ] }, { - "teal": 177, + "teal": 175, "source": "examples/reti/validatorRegistry.algo.ts:226", "pc": [ + 191, 192 ] }, { - "teal": 178, + "teal": 176, "source": "examples/reti/validatorRegistry.algo.ts:226", "pc": [ - 193, - 194 + 193 ] }, { - "teal": 179, + "teal": 177, "source": "examples/reti/validatorRegistry.algo.ts:226", "pc": [ + 194, 195 ] }, { - "teal": 180, + "teal": 178, "source": "examples/reti/validatorRegistry.algo.ts:226", "pc": [ - 196, - 197 + 196 ] }, { - "teal": 181, + "teal": 179, "source": "examples/reti/validatorRegistry.algo.ts:226", "pc": [ - 198 + 197 ] }, { - "teal": 182, - "source": "examples/reti/validatorRegistry.algo.ts:226", + "teal": 180, + "source": "examples/reti/validatorRegistry.algo.ts:225", "pc": [ - 199 + 198 ] }, { - "teal": 183, - "source": "examples/reti/validatorRegistry.algo.ts:225", + "teal": 185, + "source": "examples/reti/validatorRegistry.algo.ts:232", "pc": [ - 200 + 199, + 200, + 201 ] }, { - "teal": 188, + "teal": 186, "source": "examples/reti/validatorRegistry.algo.ts:232", "pc": [ - 201, - 202, - 203 + 202 ] }, { - "teal": 189, + "teal": 187, "source": "examples/reti/validatorRegistry.algo.ts:232", "pc": [ - 204 + 203 ] }, { - "teal": 190, + "teal": 193, "source": "examples/reti/validatorRegistry.algo.ts:232", "pc": [ - 205 + 204, + 205, + 206 ] }, { - "teal": 196, + "teal": 194, "source": "examples/reti/validatorRegistry.algo.ts:232", "pc": [ - 206, - 207, - 208 + 207 ] }, { - "teal": 197, - "source": "examples/reti/validatorRegistry.algo.ts:232", + "teal": 199, + "source": "examples/reti/validatorRegistry.algo.ts:243", "pc": [ - 209 + 208 ] }, { "teal": 202, "source": "examples/reti/validatorRegistry.algo.ts:243", "pc": [ - 210 + 209, + 210, + 211 ] }, { - "teal": 205, + "teal": 203, "source": "examples/reti/validatorRegistry.algo.ts:243", "pc": [ - 211, - 212, - 213 + 212 ] }, { - "teal": 206, + "teal": 204, "source": "examples/reti/validatorRegistry.algo.ts:243", "pc": [ - 214 + 213 ] }, { - "teal": 207, + "teal": 205, "source": "examples/reti/validatorRegistry.algo.ts:243", "pc": [ - 215 + 214 ] }, { - "teal": 208, + "teal": 206, "source": "examples/reti/validatorRegistry.algo.ts:243", "pc": [ - 216 + 215 ] }, { - "teal": 209, + "teal": 218, "source": "examples/reti/validatorRegistry.algo.ts:243", "pc": [ - 217 + 216, + 217, + 218 ] }, { - "teal": 221, - "source": "examples/reti/validatorRegistry.algo.ts:243", + "teal": 241, + "source": "examples/reti/validatorRegistry.algo.ts:247", "pc": [ - 218, 219, - 220 + 220, + 221 ] }, { - "teal": 244, + "teal": 242, "source": "examples/reti/validatorRegistry.algo.ts:247", "pc": [ - 221, 222, - 223 + 223, + 224 ] }, { - "teal": 245, + "teal": 243, "source": "examples/reti/validatorRegistry.algo.ts:247", "pc": [ - 224, - 225, - 226 + 225 ] }, { - "teal": 246, - "source": "examples/reti/validatorRegistry.algo.ts:247", + "teal": 244, + "source": "examples/reti/validatorRegistry.algo.ts:257", "pc": [ + 226, 227 ] }, { - "teal": 247, - "source": "examples/reti/validatorRegistry.algo.ts:257", + "teal": 245, + "source": "examples/reti/validatorRegistry.algo.ts:256", "pc": [ 228, 229 ] }, { - "teal": 248, - "source": "examples/reti/validatorRegistry.algo.ts:256", + "teal": 246, + "source": "examples/reti/validatorRegistry.algo.ts:255", "pc": [ - 230, - 231 + 230 ] }, { - "teal": 249, + "teal": 247, "source": "examples/reti/validatorRegistry.algo.ts:255", "pc": [ + 231, 232 ] }, { - "teal": 250, - "source": "examples/reti/validatorRegistry.algo.ts:255", + "teal": 248, + "source": "examples/reti/validatorRegistry.algo.ts:252", "pc": [ 233, 234 ] }, { - "teal": 251, - "source": "examples/reti/validatorRegistry.algo.ts:252", - "pc": [ - 235, - 236 - ] - }, - { - "teal": 252, + "teal": 249, "source": "examples/reti/validatorRegistry.algo.ts:249", "pc": [ - 237 + 235 ] }, { - "teal": 253, + "teal": 250, "source": "examples/reti/validatorRegistry.algo.ts:248", "pc": [ - 238, - 239, - 240 + 236, + 237, + 238 ] }, { - "teal": 254, + "teal": 251, "source": "examples/reti/validatorRegistry.algo.ts:248", "pc": [ - 241 + 239 ] }, { - "teal": 255, + "teal": 252, "source": "examples/reti/validatorRegistry.algo.ts:248", "pc": [ - 242 + 240 ] }, { - "teal": 256, + "teal": 253, "source": "examples/reti/validatorRegistry.algo.ts:260", "pc": [ - 243, - 244 + 241, + 242 ] }, { - "teal": 257, + "teal": 254, "source": "examples/reti/validatorRegistry.algo.ts:261", "pc": [ - 245, - 246, - 247 + 243, + 244, + 245 ] }, { - "teal": 258, + "teal": 255, "source": "examples/reti/validatorRegistry.algo.ts:261", "pc": [ - 248, - 249, - 250 + 246, + 247, + 248 ] }, { - "teal": 259, + "teal": 256, "source": "examples/reti/validatorRegistry.algo.ts:260", "pc": [ - 251 + 249 ] }, { - "teal": 260, + "teal": 257, "source": "examples/reti/validatorRegistry.algo.ts:260", "pc": [ - 252 + 250 ] }, { - "teal": 261, + "teal": 258, "source": "examples/reti/validatorRegistry.algo.ts:260", "pc": [ - 253 + 251 ] }, { - "teal": 262, + "teal": 259, "source": "examples/reti/validatorRegistry.algo.ts:264", "pc": [ - 254, - 255, - 256 + 252, + 253, + 254 ] }, { - "teal": 263, + "teal": 260, "source": "examples/reti/validatorRegistry.algo.ts:264", "pc": [ - 257, - 258, - 259 + 255, + 256, + 257 ] }, { - "teal": 264, + "teal": 261, "source": "examples/reti/validatorRegistry.algo.ts:264", "pc": [ - 260 + 258 ] }, { - "teal": 265, + "teal": 262, "source": "examples/reti/validatorRegistry.algo.ts:264", "pc": [ - 261 + 259 ] }, { - "teal": 266, + "teal": 263, "source": "examples/reti/validatorRegistry.algo.ts:243", "pc": [ - 262 + 260 ] }, { - "teal": 271, + "teal": 268, "source": "examples/reti/validatorRegistry.algo.ts:271", "pc": [ - 263 + 261 ] }, { - "teal": 274, + "teal": 271, "source": "examples/reti/validatorRegistry.algo.ts:271", "pc": [ - 264, - 265, - 266 + 262, + 263, + 264 ] }, { - "teal": 275, + "teal": 272, "source": "examples/reti/validatorRegistry.algo.ts:271", "pc": [ - 267 + 265 ] }, { - "teal": 276, + "teal": 273, "source": "examples/reti/validatorRegistry.algo.ts:271", "pc": [ - 268 + 266 ] }, { - "teal": 277, + "teal": 274, "source": "examples/reti/validatorRegistry.algo.ts:271", "pc": [ - 269 + 267 ] }, { - "teal": 278, + "teal": 275, "source": "examples/reti/validatorRegistry.algo.ts:271", "pc": [ - 270 + 268 ] }, { - "teal": 284, + "teal": 281, "source": "examples/reti/validatorRegistry.algo.ts:271", "pc": [ - 271, - 272, - 273 + 269, + 270, + 271 ] }, { - "teal": 300, + "teal": 297, "source": "examples/reti/validatorRegistry.algo.ts:277", "pc": [ + 272, + 273, 274, 275, 276, @@ -1120,84 +1114,84 @@ 310, 311, 312, - 313, - 314, - 315 + 313 ] }, { - "teal": 301, + "teal": 298, "source": "examples/reti/validatorRegistry.algo.ts:278", "pc": [ - 316, - 317, - 318 + 314, + 315, + 316 ] }, { - "teal": 302, + "teal": 299, "source": "examples/reti/validatorRegistry.algo.ts:278", "pc": [ - 319 + 317 ] }, { - "teal": 303, + "teal": 300, "source": "examples/reti/validatorRegistry.algo.ts:278", "pc": [ - 320 + 318 ] }, { - "teal": 304, + "teal": 301, "source": "examples/reti/validatorRegistry.algo.ts:279", "pc": [ - 321, - 322, - 323 + 319, + 320, + 321 ] }, { - "teal": 305, + "teal": 302, "source": "examples/reti/validatorRegistry.algo.ts:279", "pc": [ - 324 + 322 ] }, { - "teal": 306, + "teal": 303, "source": "examples/reti/validatorRegistry.algo.ts:279", "pc": [ - 325 + 323 ] }, { - "teal": 307, + "teal": 304, "source": "examples/reti/validatorRegistry.algo.ts:280", "pc": [ - 326, - 327, - 328 + 324, + 325, + 326 ] }, { - "teal": 308, + "teal": 305, "source": "examples/reti/validatorRegistry.algo.ts:280", "pc": [ - 329 + 327 ] }, { - "teal": 309, + "teal": 306, "source": "examples/reti/validatorRegistry.algo.ts:280", "pc": [ - 330 + 328 ] }, { - "teal": 310, + "teal": 307, "source": "examples/reti/validatorRegistry.algo.ts:281", "pc": [ + 329, + 330, 331, 332, 333, @@ -1205,22 +1199,22 @@ 335, 336, 337, - 338, - 339, - 340 + 338 ] }, { - "teal": 311, + "teal": 308, "source": "examples/reti/validatorRegistry.algo.ts:281", "pc": [ - 341 + 339 ] }, { - "teal": 312, + "teal": 309, "source": "examples/reti/validatorRegistry.algo.ts:282", "pc": [ + 340, + 341, 342, 343, 344, @@ -1228,22 +1222,22 @@ 346, 347, 348, - 349, - 350, - 351 + 349 ] }, { - "teal": 313, + "teal": 310, "source": "examples/reti/validatorRegistry.algo.ts:282", "pc": [ - 352 + 350 ] }, { - "teal": 314, + "teal": 311, "source": "examples/reti/validatorRegistry.algo.ts:283", "pc": [ + 351, + 352, 353, 354, 355, @@ -1251,313 +1245,319 @@ 357, 358, 359, - 360, - 361, - 362 + 360 ] }, { - "teal": 315, + "teal": 312, "source": "examples/reti/validatorRegistry.algo.ts:283", "pc": [ - 363 + 361 ] }, { - "teal": 316, + "teal": 313, "source": "examples/reti/validatorRegistry.algo.ts:271", "pc": [ - 364 + 362 ] }, { - "teal": 321, + "teal": 318, "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 365 + 363 ] }, { - "teal": 324, + "teal": 321, "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 366, - 367, - 368 + 364, + 365, + 366 ] }, { - "teal": 325, + "teal": 322, "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 369 + 367 ] }, { - "teal": 326, + "teal": 323, "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 370 + 368 ] }, { - "teal": 327, + "teal": 324, "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 371 + 369 ] }, { - "teal": 328, + "teal": 325, "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 372 + 370 ] }, { - "teal": 329, + "teal": 326, "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 373 + 371 ] }, { - "teal": 335, + "teal": 332, "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 374, - 375, - 376 + 372, + 373, + 374 ] }, { - "teal": 339, + "teal": 336, "source": "examples/reti/validatorRegistry.algo.ts:292", "pc": [ - 377, - 378 + 375, + 376 ] }, { - "teal": 340, + "teal": 337, "source": "examples/reti/validatorRegistry.algo.ts:292", "pc": [ - 379 + 377 ] }, { - "teal": 341, + "teal": 338, "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 380 + 378 + ] + }, + { + "teal": 343, + "source": "examples/reti/validatorRegistry.algo.ts:296", + "pc": [ + 379 ] }, { "teal": 346, "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 381 + 380, + 381, + 382 ] }, { - "teal": 349, + "teal": 347, "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 382, - 383, - 384 + 383 ] }, { "teal": 350, "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 385 + 384, + 385, + 386 ] }, { - "teal": 353, + "teal": 351, "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 386, - 387, - 388 + 387 ] }, { - "teal": 354, + "teal": 352, "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 389 + 388 ] }, { - "teal": 355, + "teal": 353, "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 390 + 389 ] }, { - "teal": 356, + "teal": 354, "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 391 + 390 ] }, { - "teal": 357, + "teal": 358, "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 392 + 391, + 392, + 393 ] }, { - "teal": 361, - "source": "examples/reti/validatorRegistry.algo.ts:296", + "teal": 362, + "source": "examples/reti/validatorRegistry.algo.ts:297", "pc": [ - 393, - 394, - 395 + 394 ] }, { - "teal": 365, + "teal": 363, "source": "examples/reti/validatorRegistry.algo.ts:297", "pc": [ + 395, 396 ] }, { - "teal": 366, + "teal": 364, "source": "examples/reti/validatorRegistry.algo.ts:297", "pc": [ - 397, - 398 + 397 ] }, { - "teal": 367, + "teal": 365, "source": "examples/reti/validatorRegistry.algo.ts:297", "pc": [ + 398, 399 ] }, { - "teal": 368, + "teal": 366, "source": "examples/reti/validatorRegistry.algo.ts:297", "pc": [ - 400, - 401 + 400 ] }, { - "teal": 369, + "teal": 367, "source": "examples/reti/validatorRegistry.algo.ts:297", "pc": [ - 402 + 401 ] }, { - "teal": 370, + "teal": 368, "source": "examples/reti/validatorRegistry.algo.ts:297", "pc": [ + 402, 403 ] }, { - "teal": 371, + "teal": 369, "source": "examples/reti/validatorRegistry.algo.ts:297", "pc": [ - 404, - 405 + 404 ] }, { - "teal": 372, - "source": "examples/reti/validatorRegistry.algo.ts:297", + "teal": 370, + "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 406 + 405 ] }, { - "teal": 373, - "source": "examples/reti/validatorRegistry.algo.ts:296", + "teal": 375, + "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 407 + 406 ] }, { "teal": 378, "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 408 + 407, + 408, + 409 ] }, { - "teal": 381, + "teal": 379, "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 409, - 410, - 411 + 410 ] }, { "teal": 382, "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 412 + 411, + 412, + 413 ] }, { - "teal": 385, + "teal": 383, "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 413, - 414, - 415 + 414 ] }, { - "teal": 386, + "teal": 384, "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 416 + 415 ] }, { - "teal": 387, + "teal": 385, "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 417 + 416 ] }, { - "teal": 388, + "teal": 386, "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 418 + 417 ] }, { - "teal": 389, + "teal": 390, "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 419 + 418, + 419, + 420 ] }, { - "teal": 393, - "source": "examples/reti/validatorRegistry.algo.ts:301", + "teal": 394, + "source": "examples/reti/validatorRegistry.algo.ts:302", "pc": [ - 420, 421, 422 ] }, { - "teal": 397, + "teal": 395, "source": "examples/reti/validatorRegistry.algo.ts:302", "pc": [ 423, @@ -1565,426 +1565,426 @@ ] }, { - "teal": 398, + "teal": 396, "source": "examples/reti/validatorRegistry.algo.ts:302", "pc": [ - 425, - 426 + 425 ] }, { - "teal": 399, + "teal": 397, "source": "examples/reti/validatorRegistry.algo.ts:302", "pc": [ + 426, 427 ] }, { - "teal": 400, + "teal": 398, "source": "examples/reti/validatorRegistry.algo.ts:302", "pc": [ - 428, - 429 + 428 ] }, { - "teal": 401, + "teal": 399, "source": "examples/reti/validatorRegistry.algo.ts:302", "pc": [ - 430 + 429 ] }, { - "teal": 402, + "teal": 400, "source": "examples/reti/validatorRegistry.algo.ts:302", "pc": [ + 430, 431 ] }, { - "teal": 403, + "teal": 401, "source": "examples/reti/validatorRegistry.algo.ts:302", "pc": [ - 432, - 433 + 432 ] }, { - "teal": 404, - "source": "examples/reti/validatorRegistry.algo.ts:302", + "teal": 402, + "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 434 + 433 ] }, { - "teal": 405, - "source": "examples/reti/validatorRegistry.algo.ts:301", + "teal": 407, + "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ - 435 + 434 ] }, { "teal": 410, "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ - 436 + 435, + 436, + 437 ] }, { - "teal": 413, + "teal": 411, "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ - 437, - 438, - 439 + 438 ] }, { "teal": 414, "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ - 440 + 439, + 440, + 441 ] }, { - "teal": 417, + "teal": 415, + "source": "examples/reti/validatorRegistry.algo.ts:306", + "pc": [ + 442 + ] + }, + { + "teal": 416, "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ - 441, - 442, 443 ] }, { - "teal": 418, + "teal": 417, "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ 444 ] }, { - "teal": 419, + "teal": 418, "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ 445 ] }, { - "teal": 420, + "teal": 422, "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ - 446 + 446, + 447, + 448 ] }, { - "teal": 421, - "source": "examples/reti/validatorRegistry.algo.ts:306", + "teal": 426, + "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 447 + 449 ] }, { - "teal": 425, - "source": "examples/reti/validatorRegistry.algo.ts:306", + "teal": 427, + "source": "examples/reti/validatorRegistry.algo.ts:307", + "pc": [ + 450, + 451 + ] + }, + { + "teal": 428, + "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 448, - 449, - 450 + 452 ] }, { "teal": 429, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 451 + 453, + 454 ] }, { "teal": 430, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 452, - 453 + 455 ] }, { "teal": 431, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 454 + 456 ] }, { "teal": 432, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 455, - 456 + 457, + 458 ] }, { "teal": 433, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 457 + 459 ] }, { "teal": 434, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 458 + 460, + 461 ] }, { "teal": 435, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 459, - 460 + 462, + 463 ] }, { "teal": 436, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 461 + 464 ] }, { "teal": 437, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 462, - 463 + 465, + 466 ] }, { "teal": 438, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 464, - 465 + 467 ] }, { "teal": 439, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 466 + 468 ] }, { "teal": 440, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 467, - 468 + 469, + 470 ] }, { "teal": 441, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 469 + 471 ] }, { "teal": 442, "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 470 + 472 ] }, { "teal": 443, - "source": "examples/reti/validatorRegistry.algo.ts:307", + "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ - 471, - 472 + 473 ] }, { - "teal": 444, - "source": "examples/reti/validatorRegistry.algo.ts:307", + "teal": 448, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 473 + 474 ] }, { - "teal": 445, - "source": "examples/reti/validatorRegistry.algo.ts:307", + "teal": 451, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 474 + 475, + 476, + 477 ] }, { - "teal": 446, - "source": "examples/reti/validatorRegistry.algo.ts:306", + "teal": 452, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 475 + 478 ] }, { - "teal": 451, + "teal": 455, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 476 + 479, + 480, + 481 ] }, { - "teal": 454, + "teal": 456, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 477, - 478, - 479 + 482 ] }, { - "teal": 455, + "teal": 457, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 480 + 483 ] }, { "teal": 458, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 481, - 482, - 483 + 484, + 485 ] }, { "teal": 459, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 484 + 486 ] }, { "teal": 460, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 485 + 487 ] }, { "teal": 461, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 486, - 487 + 488, + 489, + 490 ] }, { "teal": 462, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 488 + 491 ] }, { "teal": 463, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 489 - ] - }, - { - "teal": 464, - "source": "examples/reti/validatorRegistry.algo.ts:317", - "pc": [ - 490, - 491, 492 ] }, { - "teal": 465, + "teal": 464, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ 493 ] }, { - "teal": 466, + "teal": 465, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ 494 ] }, { - "teal": 467, + "teal": 466, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ 495 ] }, { - "teal": 468, + "teal": 467, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ 496 ] }, { - "teal": 469, - "source": "examples/reti/validatorRegistry.algo.ts:317", - "pc": [ - 497 - ] - }, - { - "teal": 470, + "teal": 476, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 498 + 497, + 498, + 499 ] }, { "teal": 479, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 499, - 500, - 501 + 500 ] }, { - "teal": 482, + "teal": 480, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ + 501, 502 ] }, { - "teal": 483, - "source": "examples/reti/validatorRegistry.algo.ts:317", + "teal": 484, + "source": "examples/reti/validatorRegistry.algo.ts:318", "pc": [ - 503, - 504 + 503 ] }, { - "teal": 487, + "teal": 485, "source": "examples/reti/validatorRegistry.algo.ts:318", "pc": [ + 504, 505 ] }, { - "teal": 488, - "source": "examples/reti/validatorRegistry.algo.ts:318", + "teal": 489, + "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ 506, 507 ] }, { - "teal": 492, + "teal": 490, "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ 508, @@ -1992,74 +1992,74 @@ ] }, { - "teal": 493, + "teal": 491, "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ - 510, - 511 + 510 ] }, { - "teal": 494, + "teal": 492, "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ + 511, 512 ] }, { - "teal": 495, + "teal": 493, "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ - 513, - 514 + 513 ] }, { - "teal": 496, + "teal": 494, "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ - 515 + 514 ] }, { - "teal": 497, + "teal": 495, "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ + 515, 516 ] }, { - "teal": 498, + "teal": 496, "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ - 517, - 518 + 517 ] }, { - "teal": 499, + "teal": 497, "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ + 518, 519 ] }, { - "teal": 500, - "source": "examples/reti/validatorRegistry.algo.ts:319", + "teal": 501, + "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ - 520, - 521 + 520 ] }, { - "teal": 504, + "teal": 502, "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ + 521, 522 ] }, { - "teal": 505, + "teal": 507, "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ 523, @@ -2067,38 +2067,38 @@ ] }, { - "teal": 510, + "teal": 508, "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ - 525, - 526 + 525 ] }, { - "teal": 511, + "teal": 509, "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ - 527 + 526 ] }, { - "teal": 512, + "teal": 510, "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ - 528 + 527, + 528, + 529 ] }, { - "teal": 513, - "source": "examples/reti/validatorRegistry.algo.ts:320", + "teal": 515, + "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 529, 530, 531 ] }, { - "teal": 518, + "teal": 516, "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ 532, @@ -2106,7 +2106,7 @@ ] }, { - "teal": 519, + "teal": 517, "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ 534, @@ -2114,89 +2114,89 @@ ] }, { - "teal": 520, + "teal": 518, "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 536, - 537 + 536 ] }, { - "teal": 521, + "teal": 519, "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 538 + 537 ] }, { - "teal": 522, + "teal": 520, "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 539 + 538 ] }, { - "teal": 523, + "teal": 521, "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 540 + 539 ] }, { - "teal": 524, + "teal": 522, "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 541 + 540 ] }, { - "teal": 525, + "teal": 523, "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 542 + 541 ] }, { - "teal": 526, + "teal": 524, "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 543 + 542 ] }, { - "teal": 527, + "teal": 525, "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 544 + 543 ] }, { - "teal": 528, + "teal": 526, "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 545 + 544, + 545, + 546 ] }, { "teal": 529, - "source": "examples/reti/validatorRegistry.algo.ts:321", + "source": "examples/reti/validatorRegistry.algo.ts:323", "pc": [ - 546, 547, - 548 + 548, + 549 ] }, { - "teal": 532, - "source": "examples/reti/validatorRegistry.algo.ts:323", + "teal": 534, + "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ - 549, 550, 551 ] }, { - "teal": 537, + "teal": 535, "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ 552, @@ -2204,7 +2204,7 @@ ] }, { - "teal": 538, + "teal": 536, "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ 554, @@ -2212,7 +2212,7 @@ ] }, { - "teal": 539, + "teal": 537, "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ 556, @@ -2220,92 +2220,92 @@ ] }, { - "teal": 540, + "teal": 538, "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ - 558, - 559 + 558 ] }, { - "teal": 541, + "teal": 539, "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ + 559, 560 ] }, { - "teal": 542, + "teal": 540, "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ - 561, - 562 + 561 ] }, { - "teal": 543, + "teal": 541, "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ - 563 + 562 ] }, { - "teal": 544, + "teal": 542, "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ + 563, 564 ] }, { - "teal": 545, - "source": "examples/reti/validatorRegistry.algo.ts:325", + "teal": 547, + "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ 565, 566 ] }, { - "teal": 550, + "teal": 548, "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ - 567, - 568 + 567 ] }, { - "teal": 551, + "teal": 549, "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ - 569 + 568 ] }, { - "teal": 552, + "teal": 550, "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ + 569, 570 ] }, { - "teal": 553, + "teal": 551, "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ 571, - 572 + 572, + 573 ] }, { - "teal": 554, - "source": "examples/reti/validatorRegistry.algo.ts:320", + "teal": 556, + "source": "examples/reti/validatorRegistry.algo.ts:327", "pc": [ - 573, 574, 575 ] }, { "teal": 559, - "source": "examples/reti/validatorRegistry.algo.ts:327", + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ 576, 577 @@ -2320,652 +2320,652 @@ ] }, { - "teal": 565, + "teal": 563, "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 580, - 581 + 580 ] }, { - "teal": 566, - "source": "examples/reti/validatorRegistry.algo.ts:317", + "teal": 568, + "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 582 + 581 ] }, { "teal": 571, "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 583 + 582, + 583, + 584 ] }, { - "teal": 574, + "teal": 572, "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 584, - 585, - 586 + 585 ] }, { "teal": 575, "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 587 + 586, + 587, + 588 ] }, { - "teal": 578, + "teal": 576, "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 588, - 589, - 590 + 589 ] }, { "teal": 579, "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 591 + 590, + 591, + 592 ] }, { - "teal": 582, + "teal": 580, + "source": "examples/reti/validatorRegistry.algo.ts:334", + "pc": [ + 593 + ] + }, + { + "teal": 581, "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 592, - 593, 594 ] }, { - "teal": 583, + "teal": 582, "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ 595 ] }, { - "teal": 584, + "teal": 583, "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ 596 ] }, { - "teal": 585, + "teal": 584, "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ 597 ] }, { - "teal": 586, + "teal": 588, "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 598 + 598, + 599, + 600 ] }, { - "teal": 587, - "source": "examples/reti/validatorRegistry.algo.ts:334", + "teal": 595, + "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ - 599 + 601, + 602 ] }, { - "teal": 591, - "source": "examples/reti/validatorRegistry.algo.ts:334", + "teal": 596, + "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ - 600, - 601, - 602 + 603 ] }, { - "teal": 598, + "teal": 597, "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ - 603, 604 ] }, { - "teal": 599, + "teal": 598, "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ 605 ] }, { - "teal": 600, + "teal": 599, "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ - 606 + 606, + 607, + 608 ] }, { - "teal": 601, + "teal": 600, "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ - 607 + 609, + 610 ] }, { - "teal": 602, + "teal": 601, "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ - 608, - 609, - 610 + 611 ] }, { - "teal": 603, + "teal": 602, "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ - 611, 612 ] }, { - "teal": 604, + "teal": 603, "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ 613 ] }, { - "teal": 605, - "source": "examples/reti/validatorRegistry.algo.ts:336", + "teal": 607, + "source": "examples/reti/validatorRegistry.algo.ts:335", + "errorMessage": "pool id must be between 1 and number of pools for this validator", "pc": [ 614 ] }, { - "teal": 606, - "source": "examples/reti/validatorRegistry.algo.ts:336", + "teal": 611, + "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 615 + 615, + 616 ] }, { - "teal": 610, - "source": "examples/reti/validatorRegistry.algo.ts:335", - "errorMessage": "pool id must be between 1 and number of pools for this validator", + "teal": 612, + "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 616 + 617, + 618 + ] + }, + { + "teal": 613, + "source": "examples/reti/validatorRegistry.algo.ts:339", + "pc": [ + 619 ] }, { "teal": 614, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 617, - 618 + 620 ] }, { "teal": 615, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 619, - 620 + 621, + 622 ] }, { "teal": 616, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 621 + 623 ] }, { "teal": 617, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 622 + 624 ] }, { "teal": 618, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 623, - 624 + 625 ] }, { "teal": 619, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 625 + 626 ] }, { "teal": 620, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 626 + 627 ] }, { "teal": 621, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 627 + 628 ] }, { "teal": 622, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 628 + 629, + 630 ] }, { "teal": 623, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 629 + 631 ] }, { "teal": 624, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 630 + 632 ] }, { "teal": 625, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 631, - 632 + 633, + 634 ] }, { "teal": 626, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 633 + 635 ] }, { "teal": 627, "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 634 - ] - }, - { - "teal": 628, - "source": "examples/reti/validatorRegistry.algo.ts:339", - "pc": [ - 635, 636 ] }, { - "teal": 629, - "source": "examples/reti/validatorRegistry.algo.ts:339", + "teal": 628, + "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ 637 ] }, { - "teal": 630, - "source": "examples/reti/validatorRegistry.algo.ts:339", + "teal": 633, + "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ 638 ] }, { - "teal": 631, - "source": "examples/reti/validatorRegistry.algo.ts:334", + "teal": 636, + "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 639 + 639, + 640, + 641 ] }, { - "teal": 636, + "teal": 637, "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 640 + 642 ] }, { - "teal": 639, + "teal": 638, "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 641, - 642, 643 ] }, { - "teal": 640, + "teal": 639, "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ 644 ] }, { - "teal": 641, + "teal": 640, "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ 645 ] }, { - "teal": 642, + "teal": 643, "source": "examples/reti/validatorRegistry.algo.ts:343", + "errorMessage": "argument 0 (poolKey) for getPoolInfo must be a (uint64,uint64,uint64)", "pc": [ 646 ] }, { - "teal": 643, + "teal": 646, "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 647 + 647, + 648, + 649 ] }, { - "teal": 646, + "teal": 647, "source": "examples/reti/validatorRegistry.algo.ts:343", - "errorMessage": "argument 0 (poolKey) for getPoolInfo must be a (uint64,uint64,uint64)", "pc": [ - 648 + 650 ] }, { - "teal": 649, + "teal": 648, "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 649, - 650, 651 ] }, { - "teal": 650, + "teal": 649, "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ 652 ] }, { - "teal": 651, + "teal": 650, "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ 653 ] }, { - "teal": 652, + "teal": 654, "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 654 + 654, + 655, + 656 ] }, { - "teal": 653, - "source": "examples/reti/validatorRegistry.algo.ts:343", + "teal": 658, + "source": "examples/reti/validatorRegistry.algo.ts:344", + "pc": [ + 657, + 658 + ] + }, + { + "teal": 659, + "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 655 + 659, + 660 ] }, { - "teal": 657, - "source": "examples/reti/validatorRegistry.algo.ts:343", + "teal": 660, + "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 656, - 657, - 658 + 661, + 662, + 663 ] }, { "teal": 661, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 659, - 660 + 664 ] }, { "teal": 662, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 661, - 662 + 665 ] }, { "teal": 663, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 663, - 664, - 665 + 666 ] }, { "teal": 664, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 666 + 667, + 668 ] }, { "teal": 665, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 667 + 669 ] }, { "teal": 666, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 668 + 670 ] }, { "teal": 667, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 669, - 670 + 671, + 672 ] }, { "teal": 668, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 671 + 673 ] }, { "teal": 669, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 672 + 674, + 675 ] }, { "teal": 670, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 673, - 674 + 676, + 677, + 678 ] }, { "teal": 671, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 675 + 679 ] }, { "teal": 672, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 676, - 677 + 680 ] }, { "teal": 673, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 678, - 679, - 680 + 681 ] }, { "teal": 674, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 681 + 682, + 683 ] }, { "teal": 675, "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 682 + 684 ] }, { "teal": 676, - "source": "examples/reti/validatorRegistry.algo.ts:344", - "pc": [ - 683 - ] - }, - { - "teal": 677, - "source": "examples/reti/validatorRegistry.algo.ts:344", + "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 684, 685 ] }, { - "teal": 678, - "source": "examples/reti/validatorRegistry.algo.ts:344", + "teal": 681, + "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ 686 ] }, { - "teal": 679, - "source": "examples/reti/validatorRegistry.algo.ts:343", + "teal": 684, + "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 687 + 687, + 688, + 689 ] }, { - "teal": 684, + "teal": 685, "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 688 + 690 ] }, { - "teal": 687, + "teal": 688, "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 689, - 690, - 691 + 691, + 692, + 693 ] }, { - "teal": 688, + "teal": 689, "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 692 + 694 ] }, { - "teal": 691, + "teal": 690, "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 693, - 694, 695 ] }, { - "teal": 692, + "teal": 691, "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ 696 ] }, { - "teal": 693, + "teal": 692, "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ 697 ] }, { - "teal": 694, + "teal": 693, "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ 698 ] }, { - "teal": 695, - "source": "examples/reti/validatorRegistry.algo.ts:354", - "pc": [ - 699 - ] - }, - { - "teal": 696, + "teal": 703, "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 700 + 699, + 700, + 701 ] }, { "teal": 706, "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 701, - 702, - 703 + 702 ] }, { - "teal": 709, + "teal": 707, "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ + 703, 704 ] }, { - "teal": 710, - "source": "examples/reti/validatorRegistry.algo.ts:354", + "teal": 711, + "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ 705, 706 ] }, { - "teal": 714, + "teal": 712, "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ 707, @@ -2973,229 +2973,229 @@ ] }, { - "teal": 715, + "teal": 713, "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ - 709, - 710 + 709 ] }, { - "teal": 716, + "teal": 714, "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ + 710, 711 ] }, { - "teal": 717, + "teal": 715, "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ - 712, - 713 + 712 ] }, { - "teal": 718, + "teal": 716, "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ - 714 + 713 ] }, { - "teal": 719, + "teal": 717, "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ + 714, 715 ] }, { - "teal": 720, + "teal": 718, "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ - 716, - 717 + 716 ] }, { - "teal": 721, + "teal": 719, "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ - 718 + 717 ] }, { - "teal": 722, + "teal": 720, "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ + 718, 719 ] }, { - "teal": 723, - "source": "examples/reti/validatorRegistry.algo.ts:355", + "teal": 724, + "source": "examples/reti/validatorRegistry.algo.ts:356", "pc": [ 720, - 721 + 721, + 722 ] }, { - "teal": 727, + "teal": 725, "source": "examples/reti/validatorRegistry.algo.ts:356", "pc": [ - 722, 723, 724 ] }, { - "teal": 728, + "teal": 726, "source": "examples/reti/validatorRegistry.algo.ts:356", "pc": [ - 725, - 726 + 725 ] }, { - "teal": 729, + "teal": 727, "source": "examples/reti/validatorRegistry.algo.ts:356", "pc": [ + 726, 727 ] }, { - "teal": 730, - "source": "examples/reti/validatorRegistry.algo.ts:356", + "teal": 731, + "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ 728, - 729 + 729, + 730 ] }, { - "teal": 734, + "teal": 732, "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ - 730, - 731, - 732 + 731 ] }, { - "teal": 735, + "teal": 733, "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ - 733 + 732 ] }, { - "teal": 736, + "teal": 734, "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ + 733, 734 ] }, { - "teal": 737, + "teal": 735, "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ - 735, - 736 + 735 ] }, { - "teal": 738, + "teal": 736, "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ - 737 + 736 ] }, { - "teal": 739, + "teal": 737, "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ + 737, 738 ] }, { - "teal": 740, + "teal": 738, "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ - 739, - 740 + 739 ] }, { - "teal": 741, + "teal": 739, "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ - 741 + 740 ] }, { - "teal": 742, + "teal": 740, "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ + 741, 742 ] }, { - "teal": 743, - "source": "examples/reti/validatorRegistry.algo.ts:357", + "teal": 745, + "source": "examples/reti/validatorRegistry.algo.ts:358", "pc": [ 743, 744 ] }, { - "teal": 748, + "teal": 746, "source": "examples/reti/validatorRegistry.algo.ts:358", "pc": [ - 745, - 746 + 745 ] }, { - "teal": 749, + "teal": 747, "source": "examples/reti/validatorRegistry.algo.ts:358", "pc": [ - 747 + 746 ] }, { - "teal": 750, + "teal": 748, "source": "examples/reti/validatorRegistry.algo.ts:358", "pc": [ - 748 + 747, + 748, + 749 ] }, { - "teal": 751, - "source": "examples/reti/validatorRegistry.algo.ts:358", + "teal": 753, + "source": "examples/reti/validatorRegistry.algo.ts:359", "pc": [ - 749, 750, - 751 + 751, + 752 ] }, { - "teal": 756, + "teal": 754, "source": "examples/reti/validatorRegistry.algo.ts:359", "pc": [ - 752, 753, 754 ] }, { - "teal": 757, - "source": "examples/reti/validatorRegistry.algo.ts:359", + "teal": 760, + "source": "examples/reti/validatorRegistry.algo.ts:361", "pc": [ 755, 756 ] }, { - "teal": 763, + "teal": 761, "source": "examples/reti/validatorRegistry.algo.ts:361", "pc": [ 757, @@ -3203,31 +3203,31 @@ ] }, { - "teal": 764, + "teal": 762, "source": "examples/reti/validatorRegistry.algo.ts:361", "pc": [ - 759, - 760 + 759 ] }, { - "teal": 765, + "teal": 763, "source": "examples/reti/validatorRegistry.algo.ts:361", "pc": [ - 761 + 760, + 761, + 762 ] }, { - "teal": 766, - "source": "examples/reti/validatorRegistry.algo.ts:361", + "teal": 768, + "source": "examples/reti/validatorRegistry.algo.ts:362", "pc": [ - 762, 763, 764 ] }, { - "teal": 771, + "teal": 769, "source": "examples/reti/validatorRegistry.algo.ts:362", "pc": [ 765, @@ -3235,8 +3235,8 @@ ] }, { - "teal": 772, - "source": "examples/reti/validatorRegistry.algo.ts:362", + "teal": 774, + "source": "examples/reti/validatorRegistry.algo.ts:364", "pc": [ 767, 768 @@ -3244,7 +3244,7 @@ }, { "teal": 777, - "source": "examples/reti/validatorRegistry.algo.ts:364", + "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ 769, 770 @@ -3259,522 +3259,522 @@ ] }, { - "teal": 783, + "teal": 781, "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 773, - 774 + 773 ] }, { - "teal": 784, - "source": "examples/reti/validatorRegistry.algo.ts:354", + "teal": 786, + "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 775 + 774 ] }, { "teal": 789, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 776 + 775, + 776, + 777 ] }, { - "teal": 792, + "teal": 790, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 777, - 778, - 779 + 778 ] }, { - "teal": 793, + "teal": 791, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 780 + 779 ] }, { - "teal": 794, + "teal": 792, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ + 780, 781 ] }, { - "teal": 795, + "teal": 793, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 782, - 783 + 782 ] }, { "teal": 796, "source": "examples/reti/validatorRegistry.algo.ts:372", + "errorMessage": "argument 0 (staker) for doesStakerNeedToPayMBR must be a address", "pc": [ - 784 + 783 ] }, { "teal": 799, "source": "examples/reti/validatorRegistry.algo.ts:372", - "errorMessage": "argument 0 (staker) for doesStakerNeedToPayMBR must be a address", "pc": [ - 785 + 784, + 785, + 786 ] }, { - "teal": 802, + "teal": 800, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 786, 787, 788 ] }, { - "teal": 803, + "teal": 801, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 789, - 790 + 789 ] }, { - "teal": 804, + "teal": 802, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ + 790, 791 ] }, { - "teal": 805, + "teal": 803, + "source": "examples/reti/validatorRegistry.algo.ts:372", + "pc": [ + 792 + ] + }, + { + "teal": 804, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 792, 793 ] }, { - "teal": 806, + "teal": 805, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ 794 ] }, { - "teal": 807, + "teal": 806, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ 795 ] }, { - "teal": 808, + "teal": 807, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ 796 ] }, { - "teal": 809, + "teal": 814, "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 797 + 797, + 798, + 799 ] }, { - "teal": 810, - "source": "examples/reti/validatorRegistry.algo.ts:372", + "teal": 818, + "source": "examples/reti/validatorRegistry.algo.ts:373", "pc": [ - 798 + 800 ] }, { - "teal": 817, - "source": "examples/reti/validatorRegistry.algo.ts:372", + "teal": 819, + "source": "examples/reti/validatorRegistry.algo.ts:373", "pc": [ - 799, - 800, - 801 + 801, + 802 ] }, { - "teal": 821, + "teal": 820, "source": "examples/reti/validatorRegistry.algo.ts:373", "pc": [ - 802 + 803 ] }, { - "teal": 822, + "teal": 821, "source": "examples/reti/validatorRegistry.algo.ts:373", "pc": [ - 803, 804 ] }, { - "teal": 823, + "teal": 822, "source": "examples/reti/validatorRegistry.algo.ts:373", "pc": [ 805 ] }, { - "teal": 824, + "teal": 823, "source": "examples/reti/validatorRegistry.algo.ts:373", "pc": [ 806 ] }, { - "teal": 825, + "teal": 824, "source": "examples/reti/validatorRegistry.algo.ts:373", "pc": [ 807 ] }, { - "teal": 826, - "source": "examples/reti/validatorRegistry.algo.ts:373", + "teal": 825, + "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ 808 ] }, { - "teal": 827, - "source": "examples/reti/validatorRegistry.algo.ts:373", + "teal": 830, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ 809 ] }, { - "teal": 828, - "source": "examples/reti/validatorRegistry.algo.ts:372", + "teal": 833, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 810 + 810, + 811, + 812 ] }, { - "teal": 833, + "teal": 834, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 811 + 813 ] }, { - "teal": 836, + "teal": 835, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 812, - 813, 814 ] }, { - "teal": 837, + "teal": 836, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 815 + 815, + 816 ] }, { - "teal": 838, + "teal": 837, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 816 + 817 ] }, { - "teal": 839, + "teal": 840, "source": "examples/reti/validatorRegistry.algo.ts:382", + "errorMessage": "argument 0 (staker) for getStakedPoolsForAccount must be a address", "pc": [ - 817, 818 ] }, { - "teal": 840, + "teal": 843, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 819 + 819, + 820, + 821 ] }, { - "teal": 843, + "teal": 844, "source": "examples/reti/validatorRegistry.algo.ts:382", - "errorMessage": "argument 0 (staker) for getStakedPoolsForAccount must be a address", "pc": [ - 820 + 822 ] }, { - "teal": 846, + "teal": 845, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 821, - 822, 823 ] }, { - "teal": 847, + "teal": 846, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ 824 ] }, { - "teal": 848, + "teal": 847, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ 825 ] }, { - "teal": 849, + "teal": 848, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ 826 ] }, { - "teal": 850, + "teal": 849, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 827 + 827, + 828, + 829 ] }, { - "teal": 851, + "teal": 850, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 828 + 830 ] }, { - "teal": 852, + "teal": 851, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 829, - 830, 831 ] }, { - "teal": 853, + "teal": 852, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ 832 ] }, { - "teal": 854, + "teal": 853, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ 833 ] }, { - "teal": 855, + "teal": 854, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ 834 ] }, { - "teal": 856, + "teal": 855, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ 835 ] }, { - "teal": 857, - "source": "examples/reti/validatorRegistry.algo.ts:382", - "pc": [ - 836 - ] - }, - { - "teal": 858, + "teal": 864, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 837 + 836, + 837, + 838 ] }, { "teal": 867, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 838, - 839, - 840 + 839 ] }, { - "teal": 870, + "teal": 868, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ + 840, 841 ] }, { - "teal": 871, - "source": "examples/reti/validatorRegistry.algo.ts:382", + "teal": 873, + "source": "examples/reti/validatorRegistry.algo.ts:383", "pc": [ - 842, - 843 + 842 ] }, { - "teal": 876, + "teal": 874, "source": "examples/reti/validatorRegistry.algo.ts:383", "pc": [ + 843, 844 ] }, { - "teal": 877, + "teal": 875, "source": "examples/reti/validatorRegistry.algo.ts:383", "pc": [ - 845, - 846 + 845 ] }, { - "teal": 878, + "teal": 876, "source": "examples/reti/validatorRegistry.algo.ts:383", "pc": [ - 847 + 846 ] }, { - "teal": 879, + "teal": 877, "source": "examples/reti/validatorRegistry.algo.ts:383", "pc": [ - 848 + 847 ] }, { - "teal": 880, + "teal": 878, "source": "examples/reti/validatorRegistry.algo.ts:383", "pc": [ - 849 + 848 ] }, { - "teal": 881, + "teal": 879, "source": "examples/reti/validatorRegistry.algo.ts:383", "pc": [ - 850 + 849 ] }, { - "teal": 882, + "teal": 880, "source": "examples/reti/validatorRegistry.algo.ts:383", "pc": [ - 851 + 850, + 851, + 852 ] }, { - "teal": 883, - "source": "examples/reti/validatorRegistry.algo.ts:383", + "teal": 885, + "source": "examples/reti/validatorRegistry.algo.ts:384", "pc": [ - 852, - 853, - 854 + 853 ] }, { - "teal": 888, + "teal": 886, "source": "examples/reti/validatorRegistry.algo.ts:384", "pc": [ - 855 + 854, + 855, + 856 ] }, { - "teal": 889, - "source": "examples/reti/validatorRegistry.algo.ts:384", + "teal": 891, + "source": "examples/reti/validatorRegistry.algo.ts:386", "pc": [ - 856, - 857, - 858 + 857 ] }, { - "teal": 894, + "teal": 892, "source": "examples/reti/validatorRegistry.algo.ts:386", "pc": [ + 858, 859 ] }, { - "teal": 895, - "source": "examples/reti/validatorRegistry.algo.ts:386", + "teal": 896, + "source": "examples/reti/validatorRegistry.algo.ts:387", "pc": [ - 860, - 861 + 860 ] }, { - "teal": 899, + "teal": 897, "source": "examples/reti/validatorRegistry.algo.ts:387", "pc": [ + 861, 862 ] }, { - "teal": 900, + "teal": 898, "source": "examples/reti/validatorRegistry.algo.ts:387", "pc": [ - 863, - 864 + 863 ] }, { - "teal": 901, + "teal": 899, "source": "examples/reti/validatorRegistry.algo.ts:387", "pc": [ - 865 + 864 ] }, { "teal": 902, "source": "examples/reti/validatorRegistry.algo.ts:387", + "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value", "pc": [ - 866 + 865 ] }, { - "teal": 905, + "teal": 903, "source": "examples/reti/validatorRegistry.algo.ts:387", - "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value", "pc": [ + 866, 867 ] }, { - "teal": 906, - "source": "examples/reti/validatorRegistry.algo.ts:387", + "teal": 907, + "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ - 868, - 869 + 868 ] }, { - "teal": 910, + "teal": 908, "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ + 869, 870 ] }, { - "teal": 911, + "teal": 913, "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ 871, @@ -3782,7 +3782,7 @@ ] }, { - "teal": 916, + "teal": 914, "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ 873, @@ -3790,31 +3790,31 @@ ] }, { - "teal": 917, + "teal": 915, "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ - 875, - 876 + 875 ] }, { - "teal": 918, + "teal": 916, "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ - 877 + 876, + 877, + 878 ] }, { - "teal": 919, - "source": "examples/reti/validatorRegistry.algo.ts:388", + "teal": 921, + "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ - 878, 879, 880 ] }, { - "teal": 924, + "teal": 922, "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ 881, @@ -3822,87 +3822,87 @@ ] }, { - "teal": 925, + "teal": 923, + "source": "examples/reti/validatorRegistry.algo.ts:389", + "pc": [ + 883 + ] + }, + { + "teal": 924, "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ - 883, 884 ] }, { - "teal": 926, + "teal": 925, "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ 885 ] }, { - "teal": 927, + "teal": 926, "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ 886 ] }, { - "teal": 928, + "teal": 927, "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ 887 ] }, { - "teal": 929, + "teal": 928, "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ 888 ] }, { - "teal": 930, + "teal": 929, "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ 889 ] }, { - "teal": 931, + "teal": 930, "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ 890 ] }, { - "teal": 932, + "teal": 931, "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ 891 ] }, { - "teal": 933, - "source": "examples/reti/validatorRegistry.algo.ts:389", - "pc": [ - 892 - ] - }, - { - "teal": 934, + "teal": 932, "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ - 893 + 892, + 893, + 894 ] }, { - "teal": 935, - "source": "examples/reti/validatorRegistry.algo.ts:389", + "teal": 937, + "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ - 894, 895, 896 ] }, { - "teal": 940, + "teal": 938, "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ 897, @@ -3910,7 +3910,7 @@ ] }, { - "teal": 941, + "teal": 939, "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ 899, @@ -3918,98 +3918,98 @@ ] }, { - "teal": 942, + "teal": 940, "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ - 901, - 902 + 901 ] }, { - "teal": 943, + "teal": 941, "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ - 903 + 902 ] }, { - "teal": 944, + "teal": 942, "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ - 904 + 903 ] }, { - "teal": 945, + "teal": 943, "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ - 905 + 904 ] }, { - "teal": 946, + "teal": 944, "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ - 906 + 905 ] }, { - "teal": 947, + "teal": 945, "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ + 906, 907 ] }, { - "teal": 948, - "source": "examples/reti/validatorRegistry.algo.ts:390", + "teal": 952, + "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ 908, 909 ] }, { - "teal": 955, + "teal": 953, "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ - 910, - 911 + 910 ] }, { - "teal": 956, + "teal": 954, "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ - 912 + 911 ] }, { - "teal": 957, + "teal": 955, "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ + 912, 913 ] }, { - "teal": 958, + "teal": 956, "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ 914, - 915 + 915, + 916 ] }, { - "teal": 959, - "source": "examples/reti/validatorRegistry.algo.ts:388", + "teal": 961, + "source": "examples/reti/validatorRegistry.algo.ts:393", "pc": [ - 916, 917, 918 ] }, { - "teal": 964, - "source": "examples/reti/validatorRegistry.algo.ts:393", + "teal": 965, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ 919, 920 @@ -4024,91 +4024,91 @@ ] }, { - "teal": 971, + "teal": 969, "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 923, - 924 + 923 ] }, { - "teal": 972, - "source": "examples/reti/validatorRegistry.algo.ts:382", + "teal": 974, + "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 925 + 924 ] }, { "teal": 977, "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 926 + 925, + 926, + 927 ] }, { - "teal": 980, + "teal": 978, "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 927, - 928, - 929 + 928 ] }, { "teal": 981, "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 930 + 929, + 930, + 931 ] }, { - "teal": 984, + "teal": 982, "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 931, - 932, - 933 + 932 ] }, { - "teal": 985, + "teal": 983, "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 934 + 933 ] }, { - "teal": 986, + "teal": 984, "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 935 + 934 ] }, { - "teal": 987, + "teal": 985, "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 936 + 935 ] }, { - "teal": 988, + "teal": 995, "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 937 + 936, + 937, + 938 ] }, { - "teal": 998, - "source": "examples/reti/validatorRegistry.algo.ts:404", + "teal": 999, + "source": "examples/reti/validatorRegistry.algo.ts:405", "pc": [ - 938, 939, 940 ] }, { - "teal": 1002, + "teal": 1000, "source": "examples/reti/validatorRegistry.algo.ts:405", "pc": [ 941, @@ -4116,193 +4116,193 @@ ] }, { - "teal": 1003, + "teal": 1001, "source": "examples/reti/validatorRegistry.algo.ts:405", "pc": [ - 943, - 944 + 943 ] }, { - "teal": 1004, + "teal": 1002, "source": "examples/reti/validatorRegistry.algo.ts:405", "pc": [ + 944, 945 ] }, { - "teal": 1005, + "teal": 1003, "source": "examples/reti/validatorRegistry.algo.ts:405", "pc": [ - 946, - 947 + 946 ] }, { - "teal": 1006, + "teal": 1004, "source": "examples/reti/validatorRegistry.algo.ts:405", "pc": [ - 948 + 947 ] }, { - "teal": 1007, + "teal": 1005, "source": "examples/reti/validatorRegistry.algo.ts:405", "pc": [ + 948, 949 ] }, { - "teal": 1008, + "teal": 1006, "source": "examples/reti/validatorRegistry.algo.ts:405", "pc": [ - 950, - 951 + 950 ] }, { - "teal": 1009, - "source": "examples/reti/validatorRegistry.algo.ts:405", - "pc": [ - 952 + "teal": 1007, + "source": "examples/reti/validatorRegistry.algo.ts:404", + "pc": [ + 951 ] }, { - "teal": 1010, - "source": "examples/reti/validatorRegistry.algo.ts:404", + "teal": 1012, + "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 953 + 952 ] }, { "teal": 1015, "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 954 + 953, + 954, + 955 ] }, { - "teal": 1018, + "teal": 1016, "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 955, - 956, - 957 + 956 ] }, { "teal": 1019, "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 958 + 957, + 958, + 959 ] }, { - "teal": 1022, + "teal": 1020, "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 959, - 960, - 961 + 960 ] }, { - "teal": 1023, + "teal": 1021, "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 962 + 961 ] }, { - "teal": 1024, + "teal": 1022, "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 963 + 962 ] }, { - "teal": 1025, + "teal": 1023, "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 964 + 963 ] }, { - "teal": 1026, + "teal": 1027, "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 965 + 964, + 965, + 966 ] }, { - "teal": 1030, - "source": "examples/reti/validatorRegistry.algo.ts:409", + "teal": 1031, + "source": "examples/reti/validatorRegistry.algo.ts:410", "pc": [ - 966, - 967, - 968 + 967 ] }, { - "teal": 1034, + "teal": 1032, "source": "examples/reti/validatorRegistry.algo.ts:410", "pc": [ + 968, 969 ] }, { - "teal": 1035, + "teal": 1033, "source": "examples/reti/validatorRegistry.algo.ts:410", "pc": [ - 970, - 971 + 970 ] }, { - "teal": 1036, + "teal": 1034, "source": "examples/reti/validatorRegistry.algo.ts:410", "pc": [ - 972 + 971 ] }, { - "teal": 1037, + "teal": 1035, "source": "examples/reti/validatorRegistry.algo.ts:410", "pc": [ - 973 + 972 ] }, { - "teal": 1038, + "teal": 1036, "source": "examples/reti/validatorRegistry.algo.ts:410", "pc": [ - 974 + 973 ] }, { - "teal": 1039, + "teal": 1037, "source": "examples/reti/validatorRegistry.algo.ts:410", "pc": [ - 975 + 974 ] }, { "teal": 1040, "source": "examples/reti/validatorRegistry.algo.ts:410", + "errorMessage": "the specified validator id doesn't exist", "pc": [ - 976 + 975 ] }, { - "teal": 1043, - "source": "examples/reti/validatorRegistry.algo.ts:410", - "errorMessage": "the specified validator id doesn't exist", + "teal": 1044, + "source": "examples/reti/validatorRegistry.algo.ts:412", "pc": [ + 976, 977 ] }, { - "teal": 1047, + "teal": 1045, "source": "examples/reti/validatorRegistry.algo.ts:412", "pc": [ 978, @@ -4310,426 +4310,426 @@ ] }, { - "teal": 1048, + "teal": 1046, "source": "examples/reti/validatorRegistry.algo.ts:412", "pc": [ - 980, - 981 + 980 ] }, { - "teal": 1049, + "teal": 1047, "source": "examples/reti/validatorRegistry.algo.ts:412", "pc": [ + 981, 982 ] }, { - "teal": 1050, + "teal": 1048, "source": "examples/reti/validatorRegistry.algo.ts:412", "pc": [ - 983, - 984 + 983 ] }, { - "teal": 1051, + "teal": 1049, "source": "examples/reti/validatorRegistry.algo.ts:412", "pc": [ - 985 + 984 ] }, { - "teal": 1052, + "teal": 1050, "source": "examples/reti/validatorRegistry.algo.ts:412", "pc": [ + 985, 986 ] }, { - "teal": 1053, + "teal": 1051, "source": "examples/reti/validatorRegistry.algo.ts:412", "pc": [ - 987, - 988 + 987 ] }, { - "teal": 1054, - "source": "examples/reti/validatorRegistry.algo.ts:412", + "teal": 1052, + "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 989 + 988 ] }, { - "teal": 1055, - "source": "examples/reti/validatorRegistry.algo.ts:409", + "teal": 1057, + "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 990 + 989 ] }, { "teal": 1060, "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 991 + 990, + 991, + 992 ] }, { - "teal": 1063, + "teal": 1061, "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 992, - 993, - 994 + 993 ] }, { - "teal": 1064, + "teal": 1062, "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 995 + 994 ] }, { - "teal": 1065, + "teal": 1063, "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 996 + 995 ] }, { - "teal": 1066, + "teal": 1064, "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 997 + 996 ] }, { - "teal": 1067, + "teal": 1065, "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 998 + 997 ] }, { - "teal": 1068, + "teal": 1069, "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 999 + 998, + 999, + 1000 ] }, { - "teal": 1072, - "source": "examples/reti/validatorRegistry.algo.ts:415", + "teal": 1073, + "source": "examples/reti/validatorRegistry.algo.ts:416", "pc": [ - 1000, 1001, 1002 ] }, { - "teal": 1076, - "source": "examples/reti/validatorRegistry.algo.ts:416", + "teal": 1074, + "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 1003, - 1004 + 1003 ] }, { - "teal": 1077, - "source": "examples/reti/validatorRegistry.algo.ts:415", + "teal": 1079, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1005 + 1004 ] }, { "teal": 1082, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1006 + 1005, + 1006, + 1007 ] }, { - "teal": 1085, + "teal": 1083, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1007, - 1008, - 1009 + 1008 ] }, { - "teal": 1086, + "teal": 1084, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1010 + 1009 ] }, { - "teal": 1087, + "teal": 1085, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ + 1010, 1011 ] }, { - "teal": 1088, + "teal": 1086, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1012, - 1013 + 1012 ] }, { "teal": 1089, "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": [ - 1014 + 1013 ] }, { "teal": 1092, "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": [ - 1015 + 1014, + 1015, + 1016 ] }, { - "teal": 1095, + "teal": 1093, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1016, 1017, - 1018 + 1018, + 1019 ] }, { "teal": 1096, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1019, 1020, 1021 ] }, { - "teal": 1099, + "teal": 1097, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1022, - 1023 + 1022 ] }, { - "teal": 1100, + "teal": 1098, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1024 + 1023 ] }, { - "teal": 1101, + "teal": 1099, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1025 + 1024 ] }, { - "teal": 1102, + "teal": 1100, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ + 1025, 1026 ] }, { - "teal": 1103, + "teal": 1101, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1027, - 1028 + 1027 ] }, { - "teal": 1104, + "teal": 1102, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1029 + 1028 ] }, { "teal": 1105, "source": "examples/reti/validatorRegistry.algo.ts:427", + "errorMessage": "argument 2 (mbrPayment) for addValidator must be a pay transaction", "pc": [ - 1030 + 1029 ] }, { "teal": 1108, "source": "examples/reti/validatorRegistry.algo.ts:427", - "errorMessage": "argument 2 (mbrPayment) for addValidator must be a pay transaction", "pc": [ - 1031 + 1030, + 1031, + 1032 ] }, { - "teal": 1111, + "teal": 1109, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1032, - 1033, - 1034 + 1033 ] }, { - "teal": 1112, + "teal": 1110, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1035 + 1034 ] }, { - "teal": 1113, + "teal": 1111, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1036 + 1035 ] }, { - "teal": 1114, + "teal": 1112, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1037 + 1036 ] }, { - "teal": 1115, + "teal": 1113, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1038 + 1037 ] }, { - "teal": 1116, + "teal": 1125, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1039 + 1038, + 1039, + 1040 ] }, { "teal": 1128, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1040, - 1041, - 1042 + 1041 ] }, { - "teal": 1131, - "source": "examples/reti/validatorRegistry.algo.ts:427", + "teal": 1132, + "source": "examples/reti/validatorRegistry.algo.ts:428", "pc": [ + 1042, 1043 ] }, { - "teal": 1135, + "teal": 1133, "source": "examples/reti/validatorRegistry.algo.ts:428", "pc": [ 1044, - 1045 + 1045, + 1046 ] }, { - "teal": 1136, - "source": "examples/reti/validatorRegistry.algo.ts:428", + "teal": 1137, + "source": "examples/reti/validatorRegistry.algo.ts:429", "pc": [ - 1046, 1047, 1048 ] }, { - "teal": 1140, + "teal": 1138, "source": "examples/reti/validatorRegistry.algo.ts:429", "pc": [ 1049, - 1050 + 1050, + 1051 ] }, { - "teal": 1141, + "teal": 1139, "source": "examples/reti/validatorRegistry.algo.ts:429", "pc": [ - 1051, 1052, 1053 ] }, { - "teal": 1142, + "teal": 1140, "source": "examples/reti/validatorRegistry.algo.ts:429", "pc": [ - 1054, - 1055 + 1054 ] }, { - "teal": 1143, + "teal": 1141, "source": "examples/reti/validatorRegistry.algo.ts:429", "pc": [ - 1056 + 1055 ] }, { - "teal": 1144, - "source": "examples/reti/validatorRegistry.algo.ts:429", + "teal": 1145, + "source": "examples/reti/validatorRegistry.algo.ts:430", "pc": [ + 1056, 1057 ] }, { - "teal": 1148, + "teal": 1146, "source": "examples/reti/validatorRegistry.algo.ts:430", "pc": [ 1058, - 1059 + 1059, + 1060 ] }, { - "teal": 1149, + "teal": 1147, "source": "examples/reti/validatorRegistry.algo.ts:430", "pc": [ - 1060, 1061, 1062 ] }, { - "teal": 1150, + "teal": 1148, "source": "examples/reti/validatorRegistry.algo.ts:430", "pc": [ - 1063, - 1064 + 1063 ] }, { - "teal": 1151, + "teal": 1149, "source": "examples/reti/validatorRegistry.algo.ts:430", "pc": [ - 1065 + 1064 ] }, { - "teal": 1152, - "source": "examples/reti/validatorRegistry.algo.ts:430", + "teal": 1153, + "source": "examples/reti/validatorRegistry.algo.ts:431", "pc": [ + 1065, 1066 ] }, { - "teal": 1156, + "teal": 1154, "source": "examples/reti/validatorRegistry.algo.ts:431", "pc": [ 1067, @@ -4737,39 +4737,39 @@ ] }, { - "teal": 1157, + "teal": 1155, "source": "examples/reti/validatorRegistry.algo.ts:431", "pc": [ 1069, - 1070 + 1070, + 1071 ] }, { - "teal": 1158, + "teal": 1156, "source": "examples/reti/validatorRegistry.algo.ts:431", "pc": [ - 1071, - 1072, - 1073 + 1072 ] }, { "teal": 1159, "source": "examples/reti/validatorRegistry.algo.ts:431", + "errorMessage": "sender must be owner to add new validator", "pc": [ - 1074 + 1073 ] }, { - "teal": 1162, - "source": "examples/reti/validatorRegistry.algo.ts:431", - "errorMessage": "sender must be owner to add new validator", + "teal": 1164, + "source": "examples/reti/validatorRegistry.algo.ts:433", "pc": [ + 1074, 1075 ] }, { - "teal": 1167, + "teal": 1165, "source": "examples/reti/validatorRegistry.algo.ts:433", "pc": [ 1076, @@ -4777,55 +4777,55 @@ ] }, { - "teal": 1168, + "teal": 1166, "source": "examples/reti/validatorRegistry.algo.ts:433", "pc": [ 1078, - 1079 + 1079, + 1080 ] }, { - "teal": 1169, + "teal": 1167, "source": "examples/reti/validatorRegistry.algo.ts:433", "pc": [ - 1080, 1081, - 1082 + 1082, + 1083 ] }, { - "teal": 1170, + "teal": 1168, "source": "examples/reti/validatorRegistry.algo.ts:433", "pc": [ - 1083, - 1084, - 1085 + 1084 ] }, { - "teal": 1171, + "teal": 1169, "source": "examples/reti/validatorRegistry.algo.ts:433", "pc": [ - 1086 + 1085 ] }, { "teal": 1172, "source": "examples/reti/validatorRegistry.algo.ts:433", + "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"this.getMbrAmounts().addValidatorMbr\"}", "pc": [ - 1087 + 1086 ] }, { - "teal": 1175, - "source": "examples/reti/validatorRegistry.algo.ts:433", - "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"this.getMbrAmounts().addValidatorMbr\"}", + "teal": 1176, + "source": "examples/reti/validatorRegistry.algo.ts:435", "pc": [ + 1087, 1088 ] }, { - "teal": 1179, + "teal": 1177, "source": "examples/reti/validatorRegistry.algo.ts:435", "pc": [ 1089, @@ -4833,78 +4833,78 @@ ] }, { - "teal": 1180, + "teal": 1178, "source": "examples/reti/validatorRegistry.algo.ts:435", "pc": [ 1091, - 1092 + 1092, + 1093, + 1094, + 1095 ] }, { - "teal": 1181, + "teal": 1179, "source": "examples/reti/validatorRegistry.algo.ts:435", "pc": [ - 1093, - 1094, - 1095, - 1096, - 1097 + 1096 ] }, { "teal": 1182, "source": "examples/reti/validatorRegistry.algo.ts:435", + "errorMessage": "fee must be 10 ALGO or more to prevent spamming of validators", "pc": [ - 1098 + 1097 ] }, { - "teal": 1185, - "source": "examples/reti/validatorRegistry.algo.ts:435", - "errorMessage": "fee must be 10 ALGO or more to prevent spamming of validators", + "teal": 1186, + "source": "examples/reti/validatorRegistry.algo.ts:438", "pc": [ + 1098, 1099 ] }, { - "teal": 1189, + "teal": 1187, "source": "examples/reti/validatorRegistry.algo.ts:438", "pc": [ - 1100, - 1101 + 1100 ] }, { - "teal": 1190, + "teal": 1188, "source": "examples/reti/validatorRegistry.algo.ts:438", "pc": [ - 1102 + 1101 ] }, { - "teal": 1191, + "teal": 1189, "source": "examples/reti/validatorRegistry.algo.ts:438", "pc": [ - 1103 + 1102 ] }, { - "teal": 1192, + "teal": 1190, "source": "examples/reti/validatorRegistry.algo.ts:438", "pc": [ + 1103, 1104 ] }, { - "teal": 1193, - "source": "examples/reti/validatorRegistry.algo.ts:438", + "teal": 1194, + "source": "examples/reti/validatorRegistry.algo.ts:439", "pc": [ 1105, 1106 ] }, { - "teal": 1197, + "teal": 1195, "source": "examples/reti/validatorRegistry.algo.ts:439", "pc": [ 1107, @@ -4912,253 +4912,253 @@ ] }, { - "teal": 1198, + "teal": 1196, "source": "examples/reti/validatorRegistry.algo.ts:439", "pc": [ - 1109, - 1110 + 1109 ] }, { - "teal": 1199, - "source": "examples/reti/validatorRegistry.algo.ts:439", + "teal": 1200, + "source": "examples/reti/validatorRegistry.algo.ts:441", "pc": [ - 1111 + 1110 ] }, { - "teal": 1203, + "teal": 1201, "source": "examples/reti/validatorRegistry.algo.ts:441", "pc": [ + 1111, 1112 ] }, { - "teal": 1204, + "teal": 1202, "source": "examples/reti/validatorRegistry.algo.ts:441", "pc": [ - 1113, - 1114 + 1113 ] }, { - "teal": 1205, + "teal": 1203, "source": "examples/reti/validatorRegistry.algo.ts:441", "pc": [ - 1115 + 1114 ] }, { - "teal": 1206, + "teal": 1204, "source": "examples/reti/validatorRegistry.algo.ts:441", "pc": [ - 1116 + 1115, + 1116, + 1117 ] }, { - "teal": 1207, + "teal": 1205, "source": "examples/reti/validatorRegistry.algo.ts:441", "pc": [ - 1117, - 1118, - 1119 + 1118 ] }, { - "teal": 1208, + "teal": 1206, "source": "examples/reti/validatorRegistry.algo.ts:441", "pc": [ - 1120 + 1119 ] }, { - "teal": 1209, - "source": "examples/reti/validatorRegistry.algo.ts:441", + "teal": 1210, + "source": "examples/reti/validatorRegistry.algo.ts:442", "pc": [ - 1121 + 1120 ] }, { - "teal": 1213, + "teal": 1211, "source": "examples/reti/validatorRegistry.algo.ts:442", "pc": [ + 1121, 1122 ] }, { - "teal": 1214, + "teal": 1212, "source": "examples/reti/validatorRegistry.algo.ts:442", "pc": [ - 1123, - 1124 + 1123 ] }, { - "teal": 1215, + "teal": 1213, "source": "examples/reti/validatorRegistry.algo.ts:442", "pc": [ + 1124, 1125 ] }, { - "teal": 1216, + "teal": 1214, "source": "examples/reti/validatorRegistry.algo.ts:442", "pc": [ - 1126, - 1127 + 1126 ] }, { - "teal": 1217, + "teal": 1215, "source": "examples/reti/validatorRegistry.algo.ts:442", "pc": [ - 1128 + 1127 ] }, { - "teal": 1218, + "teal": 1216, "source": "examples/reti/validatorRegistry.algo.ts:442", "pc": [ + 1128, 1129 ] }, { - "teal": 1219, + "teal": 1217, "source": "examples/reti/validatorRegistry.algo.ts:442", "pc": [ - 1130, - 1131 + 1130 ] }, { - "teal": 1220, - "source": "examples/reti/validatorRegistry.algo.ts:442", + "teal": 1221, + "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ - 1132 + 1131 ] }, { - "teal": 1224, + "teal": 1222, "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ + 1132, 1133 ] }, { - "teal": 1225, + "teal": 1223, "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ - 1134, - 1135 + 1134 ] }, { - "teal": 1226, + "teal": 1224, "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ - 1136 + 1135 ] }, { - "teal": 1227, + "teal": 1225, "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ + 1136, 1137 ] }, { - "teal": 1228, + "teal": 1226, "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ - 1138, - 1139 + 1138 ] }, { - "teal": 1229, + "teal": 1227, "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ - 1140 + 1139 ] }, { - "teal": 1230, + "teal": 1228, "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ + 1140, 1141 ] }, { - "teal": 1231, + "teal": 1229, "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ - 1142, - 1143 + 1142 ] }, { - "teal": 1232, - "source": "examples/reti/validatorRegistry.algo.ts:443", + "teal": 1234, + "source": "examples/reti/validatorRegistry.algo.ts:446", "pc": [ + 1143, 1144 ] }, { - "teal": 1237, + "teal": 1235, "source": "examples/reti/validatorRegistry.algo.ts:446", "pc": [ 1145, - 1146 + 1146, + 1147 ] }, { - "teal": 1238, + "teal": 1236, "source": "examples/reti/validatorRegistry.algo.ts:446", "pc": [ - 1147, - 1148, - 1149 + 1148 ] }, { - "teal": 1239, + "teal": 1237, "source": "examples/reti/validatorRegistry.algo.ts:446", "pc": [ - 1150 + 1149 ] }, { - "teal": 1240, + "teal": 1238, "source": "examples/reti/validatorRegistry.algo.ts:446", "pc": [ - 1151 + 1150 ] }, { - "teal": 1241, + "teal": 1239, "source": "examples/reti/validatorRegistry.algo.ts:446", "pc": [ - 1152 + 1151, + 1152, + 1153 ] }, { - "teal": 1242, - "source": "examples/reti/validatorRegistry.algo.ts:446", + "teal": 1248, + "source": "examples/reti/validatorRegistry.algo.ts:448", "pc": [ - 1153, - 1154, - 1155 + 1154 ] }, { - "teal": 1251, + "teal": 1249, "source": "examples/reti/validatorRegistry.algo.ts:448", "pc": [ + 1155, 1156 ] }, { - "teal": 1252, + "teal": 1250, "source": "examples/reti/validatorRegistry.algo.ts:448", "pc": [ 1157, @@ -5166,15 +5166,15 @@ ] }, { - "teal": 1253, - "source": "examples/reti/validatorRegistry.algo.ts:448", + "teal": 1254, + "source": "examples/reti/validatorRegistry.algo.ts:449", "pc": [ 1159, 1160 ] }, { - "teal": 1257, + "teal": 1255, "source": "examples/reti/validatorRegistry.algo.ts:449", "pc": [ 1161, @@ -5182,15 +5182,15 @@ ] }, { - "teal": 1258, - "source": "examples/reti/validatorRegistry.algo.ts:449", + "teal": 1259, + "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ 1163, 1164 ] }, { - "teal": 1262, + "teal": 1260, "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ 1165, @@ -5198,7 +5198,7 @@ ] }, { - "teal": 1263, + "teal": 1261, "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ 1167, @@ -5206,7 +5206,7 @@ ] }, { - "teal": 1264, + "teal": 1262, "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ 1169, @@ -5214,7 +5214,7 @@ ] }, { - "teal": 1265, + "teal": 1263, "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ 1171, @@ -5222,80 +5222,80 @@ ] }, { - "teal": 1266, + "teal": 1264, "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ 1173, - 1174 + 1174, + 1175 ] }, { - "teal": 1267, + "teal": 1265, "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ - 1175, - 1176, - 1177 + 1176 ] }, { - "teal": 1268, + "teal": 1266, "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ - 1178 + 1177 ] }, { - "teal": 1269, + "teal": 1267, "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ + 1178, 1179 ] }, { - "teal": 1270, - "source": "examples/reti/validatorRegistry.algo.ts:450", + "teal": 1271, + "source": "examples/reti/validatorRegistry.algo.ts:451", "pc": [ 1180, 1181 ] }, { - "teal": 1274, + "teal": 1272, "source": "examples/reti/validatorRegistry.algo.ts:451", "pc": [ 1182, - 1183 + 1183, + 1184 ] }, { - "teal": 1275, + "teal": 1273, "source": "examples/reti/validatorRegistry.algo.ts:451", "pc": [ - 1184, - 1185, - 1186 + 1185 ] }, { - "teal": 1276, + "teal": 1274, "source": "examples/reti/validatorRegistry.algo.ts:451", "pc": [ + 1186, 1187 ] }, { "teal": 1277, - "source": "examples/reti/validatorRegistry.algo.ts:451", + "source": "examples/reti/validatorRegistry.algo.ts:448", "pc": [ - 1188, - 1189 + 1188 ] }, { - "teal": 1280, + "teal": 1278, "source": "examples/reti/validatorRegistry.algo.ts:448", "pc": [ + 1189, 1190 ] }, @@ -5303,56 +5303,56 @@ "teal": 1281, "source": "examples/reti/validatorRegistry.algo.ts:448", "pc": [ - 1191, - 1192 + 1191 ] }, { - "teal": 1284, - "source": "examples/reti/validatorRegistry.algo.ts:448", + "teal": 1285, + "source": "examples/reti/validatorRegistry.algo.ts:453", "pc": [ + 1192, 1193 ] }, { - "teal": 1288, + "teal": 1286, "source": "examples/reti/validatorRegistry.algo.ts:453", "pc": [ - 1194, - 1195 + 1194 ] }, { - "teal": 1289, + "teal": 1287, "source": "examples/reti/validatorRegistry.algo.ts:453", "pc": [ - 1196 + 1195 ] }, { - "teal": 1290, + "teal": 1288, "source": "examples/reti/validatorRegistry.algo.ts:453", "pc": [ - 1197 + 1196 ] }, { "teal": 1291, "source": "examples/reti/validatorRegistry.algo.ts:453", + "errorMessage": "provided NFD isn't valid", "pc": [ - 1198 + 1197 ] }, { - "teal": 1294, - "source": "examples/reti/validatorRegistry.algo.ts:453", - "errorMessage": "provided NFD isn't valid", + "teal": 1298, + "source": "examples/reti/validatorRegistry.algo.ts:456", "pc": [ + 1198, 1199 ] }, { - "teal": 1301, + "teal": 1299, "source": "examples/reti/validatorRegistry.algo.ts:456", "pc": [ 1200, @@ -5360,419 +5360,419 @@ ] }, { - "teal": 1302, + "teal": 1300, "source": "examples/reti/validatorRegistry.algo.ts:456", "pc": [ 1202, - 1203 + 1203, + 1204 ] }, { - "teal": 1303, + "teal": 1301, "source": "examples/reti/validatorRegistry.algo.ts:456", "pc": [ - 1204, - 1205, - 1206 + 1205 ] }, { - "teal": 1304, + "teal": 1302, "source": "examples/reti/validatorRegistry.algo.ts:456", "pc": [ + 1206, 1207 ] }, { - "teal": 1305, + "teal": 1303, "source": "examples/reti/validatorRegistry.algo.ts:456", "pc": [ - 1208, - 1209 + 1208 ] }, { "teal": 1306, "source": "examples/reti/validatorRegistry.algo.ts:456", + "errorMessage": "global state value does not exist: AppID.fromUint64(config.nfdForInfo).globalState('i.owner.a')", "pc": [ - 1210 + 1209 ] }, { - "teal": 1309, + "teal": 1307, "source": "examples/reti/validatorRegistry.algo.ts:456", - "errorMessage": "global state value does not exist: AppID.fromUint64(config.nfdForInfo).globalState('i.owner.a')", "pc": [ - 1211 + 1210 ] }, { "teal": 1310, - "source": "examples/reti/validatorRegistry.algo.ts:456", + "source": "examples/reti/validatorRegistry.algo.ts:455", + "errorMessage": "If specifying NFD, account adding validator must be owner", "pc": [ - 1212 + 1211 ] }, { - "teal": 1313, - "source": "examples/reti/validatorRegistry.algo.ts:455", - "errorMessage": "If specifying NFD, account adding validator must be owner", + "teal": 1317, + "source": "examples/reti/validatorRegistry.algo.ts:461", "pc": [ + 1212, 1213 ] }, { - "teal": 1320, + "teal": 1318, "source": "examples/reti/validatorRegistry.algo.ts:461", "pc": [ 1214, - 1215 + 1215, + 1216 ] }, { - "teal": 1321, + "teal": 1319, "source": "examples/reti/validatorRegistry.algo.ts:461", "pc": [ - 1216, - 1217, - 1218 + 1217 ] }, { - "teal": 1322, + "teal": 1320, "source": "examples/reti/validatorRegistry.algo.ts:461", "pc": [ + 1218, 1219 ] }, { - "teal": 1323, + "teal": 1321, "source": "examples/reti/validatorRegistry.algo.ts:461", "pc": [ - 1220, - 1221 + 1220 ] }, { - "teal": 1324, + "teal": 1322, "source": "examples/reti/validatorRegistry.algo.ts:461", "pc": [ - 1222 + 1221 ] }, { - "teal": 1325, + "teal": 1323, "source": "examples/reti/validatorRegistry.algo.ts:461", "pc": [ - 1223 + 1222, + 1223, + 1224 ] }, { - "teal": 1326, - "source": "examples/reti/validatorRegistry.algo.ts:461", + "teal": 1324, + "source": "examples/reti/validatorRegistry.algo.ts:462", "pc": [ - 1224, 1225, 1226 ] }, { - "teal": 1327, + "teal": 1325, "source": "examples/reti/validatorRegistry.algo.ts:462", "pc": [ 1227, - 1228 + 1228, + 1229 ] }, { - "teal": 1328, + "teal": 1326, "source": "examples/reti/validatorRegistry.algo.ts:462", "pc": [ - 1229, - 1230, - 1231 + 1230 ] }, { - "teal": 1329, + "teal": 1327, "source": "examples/reti/validatorRegistry.algo.ts:462", "pc": [ + 1231, 1232 ] }, { - "teal": 1330, + "teal": 1328, "source": "examples/reti/validatorRegistry.algo.ts:462", "pc": [ - 1233, - 1234 + 1233 ] }, { - "teal": 1331, - "source": "examples/reti/validatorRegistry.algo.ts:462", + "teal": 1329, + "source": "examples/reti/validatorRegistry.algo.ts:461", "pc": [ - 1235 + 1234 ] }, { "teal": 1332, - "source": "examples/reti/validatorRegistry.algo.ts:461", + "source": "examples/reti/validatorRegistry.algo.ts:460", "pc": [ - 1236 + 1235, + 1236, + 1237 ] }, { - "teal": 1335, - "source": "examples/reti/validatorRegistry.algo.ts:460", + "teal": 1337, + "source": "examples/reti/validatorRegistry.algo.ts:465", "pc": [ - 1237, 1238, 1239 ] }, { - "teal": 1340, + "teal": 1338, "source": "examples/reti/validatorRegistry.algo.ts:465", "pc": [ 1240, - 1241 + 1241, + 1242 ] }, { - "teal": 1341, + "teal": 1339, "source": "examples/reti/validatorRegistry.algo.ts:465", "pc": [ - 1242, - 1243, - 1244 + 1243 ] }, { - "teal": 1342, + "teal": 1340, "source": "examples/reti/validatorRegistry.algo.ts:465", "pc": [ - 1245 + 1244, + 1245, + 1246 ] }, { "teal": 1343, "source": "examples/reti/validatorRegistry.algo.ts:465", + "errorMessage": "provided NFD App id for gating must be valid NFD", "pc": [ - 1246, - 1247, - 1248 + 1247 ] }, { - "teal": 1346, - "source": "examples/reti/validatorRegistry.algo.ts:465", - "errorMessage": "provided NFD App id for gating must be valid NFD", + "teal": 1348, + "source": "examples/reti/validatorRegistry.algo.ts:468", "pc": [ + 1248, 1249 ] }, { "teal": 1351, - "source": "examples/reti/validatorRegistry.algo.ts:468", + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ 1250, 1251 ] }, { - "teal": 1354, + "teal": 1352, "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1252, - 1253 + 1252 ] }, { - "teal": 1355, - "source": "examples/reti/validatorRegistry.algo.ts:427", + "teal": 1357, + "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1254 + 1253, + 1254, + 1255 ] }, { - "teal": 1360, + "teal": 1358, "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1255, - 1256, - 1257 + 1256 ] }, { - "teal": 1361, + "teal": 1359, "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1258 + 1257 ] }, { - "teal": 1362, + "teal": 1360, "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ + 1258, 1259 ] }, { - "teal": 1363, + "teal": 1361, "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1260, - 1261 + 1260 ] }, { "teal": 1364, "source": "examples/reti/validatorRegistry.algo.ts:478", + "errorMessage": "argument 0 (manager) for changeValidatorManager must be a address", "pc": [ - 1262 + 1261 ] }, { "teal": 1367, "source": "examples/reti/validatorRegistry.algo.ts:478", - "errorMessage": "argument 0 (manager) for changeValidatorManager must be a address", "pc": [ - 1263 + 1262, + 1263, + 1264 ] }, { - "teal": 1370, + "teal": 1368, "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1264, - 1265, - 1266 + 1265 ] }, { "teal": 1371, "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1267 + 1266, + 1267, + 1268 ] }, { - "teal": 1374, + "teal": 1372, "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1268, - 1269, - 1270 + 1269 ] }, { - "teal": 1375, + "teal": 1373, "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1271 + 1270 ] }, { - "teal": 1376, + "teal": 1383, "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1272 + 1271, + 1272, + 1273 ] }, { - "teal": 1386, - "source": "examples/reti/validatorRegistry.algo.ts:478", + "teal": 1390, + "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ - 1273, 1274, 1275 ] }, { - "teal": 1393, + "teal": 1391, "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ - 1276, - 1277 + 1276 ] }, { - "teal": 1394, + "teal": 1392, "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ + 1277, 1278 ] }, { - "teal": 1395, + "teal": 1393, "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ - 1279, - 1280 + 1279 ] }, { - "teal": 1396, + "teal": 1394, "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ + 1280, 1281 ] }, { - "teal": 1397, + "teal": 1395, "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ - 1282, - 1283 + 1282 ] }, { - "teal": 1398, + "teal": 1396, "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ - 1284 + 1283 ] }, { - "teal": 1399, + "teal": 1397, "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ + 1284, 1285 ] }, { - "teal": 1400, + "teal": 1398, "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ - 1286, - 1287 + 1286 ] }, { - "teal": 1401, + "teal": 1399, "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ - 1288 + 1287 ] }, { "teal": 1402, - "source": "examples/reti/validatorRegistry.algo.ts:480", + "source": "examples/reti/validatorRegistry.algo.ts:479", + "errorMessage": "can only be called by validator owner", "pc": [ - 1289 + 1288 ] }, { - "teal": 1405, - "source": "examples/reti/validatorRegistry.algo.ts:479", - "errorMessage": "can only be called by validator owner", + "teal": 1406, + "source": "examples/reti/validatorRegistry.algo.ts:483", "pc": [ + 1289, 1290 ] }, { - "teal": 1409, + "teal": 1407, "source": "examples/reti/validatorRegistry.algo.ts:483", "pc": [ 1291, @@ -5780,228 +5780,228 @@ ] }, { - "teal": 1410, + "teal": 1408, "source": "examples/reti/validatorRegistry.algo.ts:483", "pc": [ - 1293, - 1294 + 1293 ] }, { - "teal": 1411, + "teal": 1409, "source": "examples/reti/validatorRegistry.algo.ts:483", "pc": [ + 1294, 1295 ] }, { - "teal": 1412, + "teal": 1410, "source": "examples/reti/validatorRegistry.algo.ts:483", "pc": [ - 1296, - 1297 + 1296 ] }, { - "teal": 1413, + "teal": 1411, "source": "examples/reti/validatorRegistry.algo.ts:483", "pc": [ - 1298 + 1297 ] }, { - "teal": 1414, + "teal": 1412, "source": "examples/reti/validatorRegistry.algo.ts:483", "pc": [ + 1298, 1299 ] }, { - "teal": 1415, + "teal": 1413, "source": "examples/reti/validatorRegistry.algo.ts:483", "pc": [ - 1300, - 1301 + 1300 ] }, { - "teal": 1416, - "source": "examples/reti/validatorRegistry.algo.ts:483", + "teal": 1414, + "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1302 + 1301 ] }, { - "teal": 1417, - "source": "examples/reti/validatorRegistry.algo.ts:478", + "teal": 1419, + "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1303 + 1302, + 1303, + 1304 ] }, { - "teal": 1422, + "teal": 1420, "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1304, - 1305, - 1306 + 1305 ] }, { "teal": 1423, "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1307 + 1306, + 1307, + 1308 ] }, { - "teal": 1426, + "teal": 1424, "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1308, - 1309, - 1310 + 1309 ] }, { "teal": 1427, "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1311 + 1310, + 1311, + 1312 ] }, { - "teal": 1430, + "teal": 1428, "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1312, - 1313, - 1314 + 1313 ] }, { "teal": 1431, "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1315 + 1314, + 1315, + 1316 ] }, { - "teal": 1434, + "teal": 1432, "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1316, - 1317, - 1318 + 1317 ] }, { - "teal": 1435, + "teal": 1433, "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1319 + 1318 ] }, { - "teal": 1436, + "teal": 1444, "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1320 + 1319, + 1320, + 1321 ] }, { - "teal": 1447, - "source": "examples/reti/validatorRegistry.algo.ts:494", + "teal": 1451, + "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ - 1321, 1322, 1323 ] }, { - "teal": 1454, + "teal": 1452, "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ - 1324, - 1325 + 1324 ] }, { - "teal": 1455, + "teal": 1453, "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ + 1325, 1326 ] }, { - "teal": 1456, + "teal": 1454, "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ - 1327, - 1328 + 1327 ] }, { - "teal": 1457, + "teal": 1455, "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ + 1328, 1329 ] }, { - "teal": 1458, + "teal": 1456, "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ - 1330, - 1331 + 1330 ] }, { - "teal": 1459, + "teal": 1457, "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ - 1332 + 1331 ] }, { - "teal": 1460, + "teal": 1458, "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ + 1332, 1333 ] }, { - "teal": 1461, + "teal": 1459, "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ - 1334, - 1335 + 1334 ] }, { - "teal": 1462, + "teal": 1460, "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ - 1336 + 1335 ] }, { "teal": 1463, - "source": "examples/reti/validatorRegistry.algo.ts:496", + "source": "examples/reti/validatorRegistry.algo.ts:495", + "errorMessage": "can only be called by validator owner", "pc": [ - 1337 + 1336 ] }, { - "teal": 1466, - "source": "examples/reti/validatorRegistry.algo.ts:495", - "errorMessage": "can only be called by validator owner", + "teal": 1467, + "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ + 1337, 1338 ] }, { - "teal": 1470, + "teal": 1468, "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ 1339, @@ -6009,312 +6009,312 @@ ] }, { - "teal": 1471, + "teal": 1469, "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ - 1341, - 1342 + 1341 ] }, { - "teal": 1472, + "teal": 1470, "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ - 1343 + 1342 ] }, { - "teal": 1473, + "teal": 1471, "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ + 1343, 1344 ] }, { - "teal": 1474, + "teal": 1472, "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ - 1345, - 1346 + 1345 ] }, { - "teal": 1475, + "teal": 1473, "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ - 1347 + 1346 ] }, { - "teal": 1476, + "teal": 1474, "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ + 1347, 1348 ] }, { - "teal": 1477, + "teal": 1475, "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ - 1349, - 1350 + 1349 ] }, { - "teal": 1478, - "source": "examples/reti/validatorRegistry.algo.ts:499", + "teal": 1479, + "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ - 1351 + 1350, + 1351, + 1352 ] }, { - "teal": 1482, + "teal": 1480, "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ - 1352, 1353, 1354 ] }, { - "teal": 1483, + "teal": 1481, "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ - 1355, - 1356 + 1355 ] }, { - "teal": 1484, + "teal": 1482, "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ - 1357 + 1356 ] }, { - "teal": 1485, + "teal": 1483, "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ + 1357, 1358 ] }, { - "teal": 1486, + "teal": 1484, "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ - 1359, - 1360 + 1359 ] }, { - "teal": 1487, + "teal": 1485, "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ - 1361 + 1360 ] }, { - "teal": 1488, + "teal": 1486, "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ + 1361, 1362 ] }, { - "teal": 1489, + "teal": 1487, "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ - 1363, - 1364 + 1363 ] }, { - "teal": 1490, - "source": "examples/reti/validatorRegistry.algo.ts:500", + "teal": 1488, + "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1365 + 1364 ] }, { - "teal": 1491, - "source": "examples/reti/validatorRegistry.algo.ts:494", + "teal": 1493, + "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1366 + 1365, + 1366, + 1367 ] }, { - "teal": 1496, + "teal": 1494, "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1367, 1368, - 1369 + 1369, + 1370 ] }, { "teal": 1497, "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1370, 1371, - 1372 + 1372, + 1373 ] }, { - "teal": 1500, + "teal": 1498, "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1373, - 1374, - 1375 + 1374 ] }, { "teal": 1501, "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1376 + 1375, + 1376, + 1377 ] }, { - "teal": 1504, + "teal": 1502, "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1377, - 1378, - 1379 + 1378 ] }, { "teal": 1505, "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1380 + 1379, + 1380, + 1381 ] }, { - "teal": 1508, + "teal": 1506, "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1381, - 1382, - 1383 + 1382 ] }, { - "teal": 1509, + "teal": 1507, "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1384 + 1383 ] }, { - "teal": 1510, + "teal": 1518, "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1385 + 1384, + 1385, + 1386 ] }, { - "teal": 1521, - "source": "examples/reti/validatorRegistry.algo.ts:511", + "teal": 1525, + "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ - 1386, 1387, 1388 ] }, { - "teal": 1528, + "teal": 1526, "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ - 1389, - 1390 + 1389 ] }, { - "teal": 1529, + "teal": 1527, "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ + 1390, 1391 ] }, { - "teal": 1530, + "teal": 1528, "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ - 1392, - 1393 + 1392 ] }, { - "teal": 1531, + "teal": 1529, "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ + 1393, 1394 ] }, { - "teal": 1532, + "teal": 1530, "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ - 1395, - 1396 + 1395 ] }, { - "teal": 1533, + "teal": 1531, "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ - 1397 + 1396 ] }, { - "teal": 1534, + "teal": 1532, "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ + 1397, 1398 ] }, { - "teal": 1535, + "teal": 1533, "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ - 1399, - 1400 + 1399 ] }, { - "teal": 1536, + "teal": 1534, "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ - 1401 + 1400 ] }, { "teal": 1537, - "source": "examples/reti/validatorRegistry.algo.ts:514", + "source": "examples/reti/validatorRegistry.algo.ts:513", + "errorMessage": "can only be called by validator owner", "pc": [ - 1402 + 1401 ] }, { - "teal": 1540, - "source": "examples/reti/validatorRegistry.algo.ts:513", - "errorMessage": "can only be called by validator owner", + "teal": 1545, + "source": "examples/reti/validatorRegistry.algo.ts:518", "pc": [ - 1403 + 1402 ] }, { - "teal": 1548, + "teal": 1546, "source": "examples/reti/validatorRegistry.algo.ts:518", "pc": [ + 1403, 1404 ] }, { - "teal": 1549, + "teal": 1547, "source": "examples/reti/validatorRegistry.algo.ts:518", "pc": [ 1405, @@ -6322,15 +6322,15 @@ ] }, { - "teal": 1550, - "source": "examples/reti/validatorRegistry.algo.ts:518", + "teal": 1551, + "source": "examples/reti/validatorRegistry.algo.ts:519", "pc": [ 1407, 1408 ] }, { - "teal": 1554, + "teal": 1552, "source": "examples/reti/validatorRegistry.algo.ts:519", "pc": [ 1409, @@ -6338,15 +6338,15 @@ ] }, { - "teal": 1555, - "source": "examples/reti/validatorRegistry.algo.ts:519", + "teal": 1556, + "source": "examples/reti/validatorRegistry.algo.ts:520", "pc": [ 1411, 1412 ] }, { - "teal": 1559, + "teal": 1557, "source": "examples/reti/validatorRegistry.algo.ts:520", "pc": [ 1413, @@ -6354,7 +6354,7 @@ ] }, { - "teal": 1560, + "teal": 1558, "source": "examples/reti/validatorRegistry.algo.ts:520", "pc": [ 1415, @@ -6362,7 +6362,7 @@ ] }, { - "teal": 1561, + "teal": 1559, "source": "examples/reti/validatorRegistry.algo.ts:520", "pc": [ 1417, @@ -6370,7 +6370,7 @@ ] }, { - "teal": 1562, + "teal": 1560, "source": "examples/reti/validatorRegistry.algo.ts:520", "pc": [ 1419, @@ -6378,30 +6378,30 @@ ] }, { - "teal": 1563, + "teal": 1561, "source": "examples/reti/validatorRegistry.algo.ts:520", "pc": [ - 1421, - 1422 + 1421 ] }, { - "teal": 1564, + "teal": 1562, "source": "examples/reti/validatorRegistry.algo.ts:520", "pc": [ + 1422, 1423 ] }, { - "teal": 1565, - "source": "examples/reti/validatorRegistry.algo.ts:520", + "teal": 1566, + "source": "examples/reti/validatorRegistry.algo.ts:521", "pc": [ 1424, 1425 ] }, { - "teal": 1569, + "teal": 1567, "source": "examples/reti/validatorRegistry.algo.ts:521", "pc": [ 1426, @@ -6410,16 +6410,16 @@ }, { "teal": 1570, - "source": "examples/reti/validatorRegistry.algo.ts:521", + "source": "examples/reti/validatorRegistry.algo.ts:518", "pc": [ - 1428, - 1429 + 1428 ] }, { - "teal": 1573, + "teal": 1571, "source": "examples/reti/validatorRegistry.algo.ts:518", "pc": [ + 1429, 1430 ] }, @@ -6427,19 +6427,19 @@ "teal": 1574, "source": "examples/reti/validatorRegistry.algo.ts:518", "pc": [ - 1431, - 1432 + 1431 ] }, { - "teal": 1577, - "source": "examples/reti/validatorRegistry.algo.ts:518", + "teal": 1581, + "source": "examples/reti/validatorRegistry.algo.ts:525", "pc": [ + 1432, 1433 ] }, { - "teal": 1584, + "teal": 1582, "source": "examples/reti/validatorRegistry.algo.ts:525", "pc": [ 1434, @@ -6447,7 +6447,7 @@ ] }, { - "teal": 1585, + "teal": 1583, "source": "examples/reti/validatorRegistry.algo.ts:525", "pc": [ 1436, @@ -6455,45 +6455,45 @@ ] }, { - "teal": 1586, + "teal": 1584, "source": "examples/reti/validatorRegistry.algo.ts:525", "pc": [ - 1438, - 1439 + 1438 ] }, { "teal": 1587, "source": "examples/reti/validatorRegistry.algo.ts:525", + "errorMessage": "global state value does not exist: AppID.fromUint64(nfdAppID).globalState('i.owner.a')", "pc": [ - 1440 + 1439 ] }, { - "teal": 1590, + "teal": 1588, "source": "examples/reti/validatorRegistry.algo.ts:525", - "errorMessage": "global state value does not exist: AppID.fromUint64(nfdAppID).globalState('i.owner.a')", "pc": [ - 1441 + 1440 ] }, { "teal": 1591, - "source": "examples/reti/validatorRegistry.algo.ts:525", + "source": "examples/reti/validatorRegistry.algo.ts:524", + "errorMessage": "If specifying NFD, account adding validator must be owner", "pc": [ - 1442 + 1441 ] }, { - "teal": 1594, - "source": "examples/reti/validatorRegistry.algo.ts:524", - "errorMessage": "If specifying NFD, account adding validator must be owner", + "teal": 1595, + "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ + 1442, 1443 ] }, { - "teal": 1598, + "teal": 1596, "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ 1444, @@ -6501,249 +6501,249 @@ ] }, { - "teal": 1599, + "teal": 1597, "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ - 1446, - 1447 + 1446 ] }, { - "teal": 1600, + "teal": 1598, "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ - 1448 + 1447 ] }, { - "teal": 1601, + "teal": 1599, "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ + 1448, 1449 ] }, { - "teal": 1602, + "teal": 1600, "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ - 1450, - 1451 + 1450 ] }, { - "teal": 1603, + "teal": 1601, "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ - 1452 + 1451 ] }, { - "teal": 1604, + "teal": 1602, "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ + 1452, 1453 ] }, { - "teal": 1605, + "teal": 1603, "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ - 1454, - 1455 + 1454 ] }, { - "teal": 1606, - "source": "examples/reti/validatorRegistry.algo.ts:528", + "teal": 1604, + "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1456 + 1455 ] }, { - "teal": 1607, - "source": "examples/reti/validatorRegistry.algo.ts:511", + "teal": 1609, + "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1457 + 1456, + 1457, + 1458 ] }, { - "teal": 1612, + "teal": 1610, "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1458, - 1459, - 1460 + 1459 ] }, { - "teal": 1613, + "teal": 1611, "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1461 + 1460 ] }, { - "teal": 1614, + "teal": 1612, "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ + 1461, 1462 ] }, { - "teal": 1615, + "teal": 1613, "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1463, - 1464 + 1463 ] }, { "teal": 1616, "source": "examples/reti/validatorRegistry.algo.ts:535", + "errorMessage": "argument 0 (commissionAddress) for changeValidatorCommissionAddress must be a address", "pc": [ - 1465 + 1464 ] }, { "teal": 1619, "source": "examples/reti/validatorRegistry.algo.ts:535", - "errorMessage": "argument 0 (commissionAddress) for changeValidatorCommissionAddress must be a address", "pc": [ - 1466 + 1465, + 1466, + 1467 ] }, { - "teal": 1622, + "teal": 1620, "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1467, - 1468, - 1469 + 1468 ] }, { "teal": 1623, "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1470 + 1469, + 1470, + 1471 ] }, { - "teal": 1626, + "teal": 1624, "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1471, - 1472, - 1473 + 1472 ] }, { - "teal": 1627, + "teal": 1625, "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1474 + 1473 ] }, { - "teal": 1628, + "teal": 1632, "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1475 + 1474, + 1475, + 1476 ] }, { - "teal": 1635, - "source": "examples/reti/validatorRegistry.algo.ts:535", + "teal": 1639, + "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ - 1476, 1477, 1478 ] }, { - "teal": 1642, + "teal": 1640, "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ - 1479, - 1480 + 1479 ] }, { - "teal": 1643, + "teal": 1641, "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ + 1480, 1481 ] }, { - "teal": 1644, + "teal": 1642, "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ - 1482, - 1483 + 1482 ] }, { - "teal": 1645, + "teal": 1643, "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ + 1483, 1484 ] }, { - "teal": 1646, + "teal": 1644, "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ - 1485, - 1486 + 1485 ] }, { - "teal": 1647, + "teal": 1645, "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ - 1487 + 1486 ] }, { - "teal": 1648, + "teal": 1646, "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ + 1487, 1488 ] }, { - "teal": 1649, + "teal": 1647, "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ - 1489, - 1490 + 1489 ] }, { - "teal": 1650, + "teal": 1648, "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ - 1491 + 1490 ] }, { "teal": 1651, - "source": "examples/reti/validatorRegistry.algo.ts:537", + "source": "examples/reti/validatorRegistry.algo.ts:536", + "errorMessage": "can only be called by validator owner", "pc": [ - 1492 + 1491 ] }, { - "teal": 1654, - "source": "examples/reti/validatorRegistry.algo.ts:536", - "errorMessage": "can only be called by validator owner", + "teal": 1655, + "source": "examples/reti/validatorRegistry.algo.ts:540", "pc": [ + 1492, 1493 ] }, { - "teal": 1658, + "teal": 1656, "source": "examples/reti/validatorRegistry.algo.ts:540", "pc": [ 1494, @@ -6751,403 +6751,403 @@ ] }, { - "teal": 1659, + "teal": 1657, "source": "examples/reti/validatorRegistry.algo.ts:540", "pc": [ - 1496, - 1497 + 1496 ] }, { - "teal": 1660, + "teal": 1658, "source": "examples/reti/validatorRegistry.algo.ts:540", "pc": [ - 1498 + 1497 ] }, { - "teal": 1661, - "source": "examples/reti/validatorRegistry.algo.ts:540", + "teal": 1662, + "source": "examples/reti/validatorRegistry.algo.ts:541", "pc": [ - 1499 + 1498, + 1499, + 1500 ] }, { - "teal": 1665, + "teal": 1663, "source": "examples/reti/validatorRegistry.algo.ts:541", "pc": [ - 1500, 1501, 1502 ] }, { - "teal": 1666, + "teal": 1664, "source": "examples/reti/validatorRegistry.algo.ts:541", "pc": [ - 1503, - 1504 + 1503 ] }, { - "teal": 1667, + "teal": 1665, "source": "examples/reti/validatorRegistry.algo.ts:541", "pc": [ + 1504, 1505 ] }, { - "teal": 1668, + "teal": 1666, "source": "examples/reti/validatorRegistry.algo.ts:541", "pc": [ - 1506, - 1507 + 1506 ] }, { - "teal": 1669, + "teal": 1667, "source": "examples/reti/validatorRegistry.algo.ts:541", "pc": [ - 1508 + 1507 ] }, { - "teal": 1670, + "teal": 1668, "source": "examples/reti/validatorRegistry.algo.ts:541", "pc": [ + 1508, 1509 ] }, { - "teal": 1671, + "teal": 1669, "source": "examples/reti/validatorRegistry.algo.ts:541", "pc": [ - 1510, - 1511 + 1510 ] }, { - "teal": 1672, - "source": "examples/reti/validatorRegistry.algo.ts:541", + "teal": 1670, + "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1512 + 1511 ] }, { - "teal": 1673, - "source": "examples/reti/validatorRegistry.algo.ts:535", + "teal": 1675, + "source": "examples/reti/validatorRegistry.algo.ts:554", "pc": [ - 1513 + 1512, + 1513, + 1514 ] }, { - "teal": 1678, + "teal": 1676, "source": "examples/reti/validatorRegistry.algo.ts:554", "pc": [ - 1514, - 1515, - 1516 + 1515 ] }, { "teal": 1679, - "source": "examples/reti/validatorRegistry.algo.ts:554", + "source": "examples/reti/validatorRegistry.algo.ts:553", "pc": [ - 1517 + 1516, + 1517, + 1518 ] }, { - "teal": 1682, + "teal": 1680, "source": "examples/reti/validatorRegistry.algo.ts:553", "pc": [ - 1518, - 1519, - 1520 + 1519 ] }, { "teal": 1683, - "source": "examples/reti/validatorRegistry.algo.ts:553", + "source": "examples/reti/validatorRegistry.algo.ts:552", "pc": [ - 1521 + 1520, + 1521, + 1522 ] }, { - "teal": 1686, + "teal": 1684, "source": "examples/reti/validatorRegistry.algo.ts:552", "pc": [ - 1522, - 1523, - 1524 + 1523 ] }, { - "teal": 1687, + "teal": 1685, "source": "examples/reti/validatorRegistry.algo.ts:552", "pc": [ - 1525 + 1524 ] }, { - "teal": 1688, + "teal": 1686, "source": "examples/reti/validatorRegistry.algo.ts:552", "pc": [ + 1525, 1526 ] }, { - "teal": 1689, + "teal": 1687, "source": "examples/reti/validatorRegistry.algo.ts:552", "pc": [ - 1527, - 1528 + 1527 ] }, { "teal": 1690, "source": "examples/reti/validatorRegistry.algo.ts:552", + "errorMessage": "argument 2 (EntryGatingAssets) for changeValidatorRewardInfo must be a uint64[4]", "pc": [ - 1529 + 1528 ] }, { "teal": 1693, - "source": "examples/reti/validatorRegistry.algo.ts:552", - "errorMessage": "argument 2 (EntryGatingAssets) for changeValidatorRewardInfo must be a uint64[4]", + "source": "examples/reti/validatorRegistry.algo.ts:551", "pc": [ - 1530 + 1529, + 1530, + 1531 ] }, { - "teal": 1696, + "teal": 1694, "source": "examples/reti/validatorRegistry.algo.ts:551", "pc": [ - 1531, - 1532, - 1533 + 1532 ] }, { - "teal": 1697, + "teal": 1695, "source": "examples/reti/validatorRegistry.algo.ts:551", "pc": [ - 1534 + 1533 ] }, { - "teal": 1698, + "teal": 1696, "source": "examples/reti/validatorRegistry.algo.ts:551", "pc": [ + 1534, 1535 ] }, { - "teal": 1699, + "teal": 1697, "source": "examples/reti/validatorRegistry.algo.ts:551", "pc": [ - 1536, - 1537 + 1536 ] }, { "teal": 1700, "source": "examples/reti/validatorRegistry.algo.ts:551", + "errorMessage": "argument 3 (EntryGatingAddress) for changeValidatorRewardInfo must be a address", "pc": [ - 1538 + 1537 ] }, { "teal": 1703, - "source": "examples/reti/validatorRegistry.algo.ts:551", - "errorMessage": "argument 3 (EntryGatingAddress) for changeValidatorRewardInfo must be a address", + "source": "examples/reti/validatorRegistry.algo.ts:550", "pc": [ - 1539 + 1538, + 1539, + 1540 ] }, { - "teal": 1706, + "teal": 1704, "source": "examples/reti/validatorRegistry.algo.ts:550", "pc": [ - 1540, - 1541, - 1542 + 1541 ] }, { - "teal": 1707, + "teal": 1705, "source": "examples/reti/validatorRegistry.algo.ts:550", "pc": [ - 1543 + 1542 ] }, { - "teal": 1708, + "teal": 1706, "source": "examples/reti/validatorRegistry.algo.ts:550", "pc": [ - 1544 + 1543 ] }, { - "teal": 1709, + "teal": 1707, "source": "examples/reti/validatorRegistry.algo.ts:550", "pc": [ - 1545 + 1544 ] }, { "teal": 1710, "source": "examples/reti/validatorRegistry.algo.ts:550", + "errorMessage": "argument 4 (EntryGatingType) for changeValidatorRewardInfo must be a uint8", "pc": [ - 1546 + 1545 ] }, { - "teal": 1713, + "teal": 1711, "source": "examples/reti/validatorRegistry.algo.ts:550", - "errorMessage": "argument 4 (EntryGatingType) for changeValidatorRewardInfo must be a uint8", "pc": [ - 1547 + 1546 ] }, { "teal": 1714, - "source": "examples/reti/validatorRegistry.algo.ts:550", + "source": "examples/reti/validatorRegistry.algo.ts:549", "pc": [ - 1548 + 1547, + 1548, + 1549 ] }, { - "teal": 1717, + "teal": 1715, "source": "examples/reti/validatorRegistry.algo.ts:549", "pc": [ - 1549, - 1550, - 1551 + 1550 ] }, { "teal": 1718, - "source": "examples/reti/validatorRegistry.algo.ts:549", + "source": "examples/reti/validatorRegistry.algo.ts:548", "pc": [ - 1552 + 1551, + 1552, + 1553 ] }, { - "teal": 1721, + "teal": 1719, "source": "examples/reti/validatorRegistry.algo.ts:548", "pc": [ - 1553, - 1554, - 1555 + 1554 ] }, { - "teal": 1722, + "teal": 1720, "source": "examples/reti/validatorRegistry.algo.ts:548", "pc": [ - 1556 + 1555 ] }, { - "teal": 1723, + "teal": 1727, "source": "examples/reti/validatorRegistry.algo.ts:548", "pc": [ - 1557 + 1556, + 1557, + 1558 ] }, { - "teal": 1730, - "source": "examples/reti/validatorRegistry.algo.ts:548", + "teal": 1734, + "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ - 1558, 1559, 1560 ] }, { - "teal": 1737, + "teal": 1735, "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ - 1561, - 1562 + 1561 ] }, { - "teal": 1738, + "teal": 1736, "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ + 1562, 1563 ] }, { - "teal": 1739, + "teal": 1737, "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ - 1564, - 1565 + 1564 ] }, { - "teal": 1740, + "teal": 1738, "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ + 1565, 1566 ] }, { - "teal": 1741, + "teal": 1739, "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ - 1567, - 1568 + 1567 ] }, { - "teal": 1742, + "teal": 1740, "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ - 1569 + 1568 ] }, { - "teal": 1743, + "teal": 1741, "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ + 1569, 1570 ] }, { - "teal": 1744, + "teal": 1742, "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ - 1571, - 1572 + 1571 ] }, { - "teal": 1745, + "teal": 1743, "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ - 1573 + 1572 ] }, { "teal": 1746, - "source": "examples/reti/validatorRegistry.algo.ts:557", + "source": "examples/reti/validatorRegistry.algo.ts:556", + "errorMessage": "can only be called by validator owner", "pc": [ - 1574 + 1573 ] }, { - "teal": 1749, - "source": "examples/reti/validatorRegistry.algo.ts:556", - "errorMessage": "can only be called by validator owner", + "teal": 1750, + "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ + 1574, 1575 ] }, { - "teal": 1753, + "teal": 1751, "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ 1576, @@ -7155,75 +7155,75 @@ ] }, { - "teal": 1754, + "teal": 1752, "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ - 1578, - 1579 + 1578 ] }, { - "teal": 1755, + "teal": 1753, "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ - 1580 + 1579, + 1580, + 1581 ] }, { - "teal": 1756, + "teal": 1754, "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ - 1581, - 1582, - 1583 + 1582 ] }, { - "teal": 1757, + "teal": 1755, "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ + 1583, 1584 ] }, { - "teal": 1758, + "teal": 1756, "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ - 1585, - 1586 + 1585 ] }, { - "teal": 1759, + "teal": 1757, "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ - 1587 + 1586 ] }, { - "teal": 1760, + "teal": 1758, "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ + 1587, 1588 ] }, { - "teal": 1761, + "teal": 1759, "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ - 1589, - 1590 + 1589 ] }, { - "teal": 1762, - "source": "examples/reti/validatorRegistry.algo.ts:561", + "teal": 1763, + "source": "examples/reti/validatorRegistry.algo.ts:562", "pc": [ + 1590, 1591 ] }, { - "teal": 1766, + "teal": 1764, "source": "examples/reti/validatorRegistry.algo.ts:562", "pc": [ 1592, @@ -7231,59 +7231,59 @@ ] }, { - "teal": 1767, + "teal": 1765, "source": "examples/reti/validatorRegistry.algo.ts:562", "pc": [ - 1594, - 1595 + 1594 ] }, { - "teal": 1768, + "teal": 1766, "source": "examples/reti/validatorRegistry.algo.ts:562", "pc": [ + 1595, 1596 ] }, { - "teal": 1769, + "teal": 1767, "source": "examples/reti/validatorRegistry.algo.ts:562", "pc": [ - 1597, - 1598 + 1597 ] }, { - "teal": 1770, + "teal": 1768, "source": "examples/reti/validatorRegistry.algo.ts:562", "pc": [ - 1599 + 1598 ] }, { - "teal": 1771, + "teal": 1769, "source": "examples/reti/validatorRegistry.algo.ts:562", "pc": [ + 1599, 1600 ] }, { - "teal": 1772, + "teal": 1770, "source": "examples/reti/validatorRegistry.algo.ts:562", "pc": [ - 1601, - 1602 + 1601 ] }, { - "teal": 1773, - "source": "examples/reti/validatorRegistry.algo.ts:562", + "teal": 1774, + "source": "examples/reti/validatorRegistry.algo.ts:563", "pc": [ + 1602, 1603 ] }, { - "teal": 1777, + "teal": 1775, "source": "examples/reti/validatorRegistry.algo.ts:563", "pc": [ 1604, @@ -7291,59 +7291,59 @@ ] }, { - "teal": 1778, + "teal": 1776, "source": "examples/reti/validatorRegistry.algo.ts:563", "pc": [ - 1606, - 1607 + 1606 ] }, { - "teal": 1779, + "teal": 1777, "source": "examples/reti/validatorRegistry.algo.ts:563", "pc": [ + 1607, 1608 ] }, { - "teal": 1780, + "teal": 1778, "source": "examples/reti/validatorRegistry.algo.ts:563", "pc": [ - 1609, - 1610 + 1609 ] }, { - "teal": 1781, + "teal": 1779, "source": "examples/reti/validatorRegistry.algo.ts:563", "pc": [ - 1611 + 1610 ] }, { - "teal": 1782, + "teal": 1780, "source": "examples/reti/validatorRegistry.algo.ts:563", "pc": [ + 1611, 1612 ] }, { - "teal": 1783, + "teal": 1781, "source": "examples/reti/validatorRegistry.algo.ts:563", "pc": [ - 1613, - 1614 + 1613 ] }, { - "teal": 1784, - "source": "examples/reti/validatorRegistry.algo.ts:563", + "teal": 1785, + "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ + 1614, 1615 ] }, { - "teal": 1788, + "teal": 1786, "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ 1616, @@ -7351,479 +7351,479 @@ ] }, { - "teal": 1789, + "teal": 1787, "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ - 1618, - 1619 + 1618 ] }, { - "teal": 1790, + "teal": 1788, "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ - 1620 + 1619 ] }, { - "teal": 1791, + "teal": 1789, "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ + 1620, 1621 ] }, { - "teal": 1792, + "teal": 1790, "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ - 1622, - 1623 + 1622 ] }, { - "teal": 1793, + "teal": 1791, "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ - 1624 + 1623 ] }, { - "teal": 1794, + "teal": 1792, "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ + 1624, 1625 ] }, { - "teal": 1795, + "teal": 1793, "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ - 1626, - 1627 + 1626 ] }, { - "teal": 1796, - "source": "examples/reti/validatorRegistry.algo.ts:564", + "teal": 1797, + "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ - 1628 + 1627, + 1628, + 1629 ] }, { - "teal": 1800, + "teal": 1798, "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ - 1629, 1630, 1631 ] }, { - "teal": 1801, + "teal": 1799, "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ - 1632, - 1633 + 1632 ] }, { - "teal": 1802, + "teal": 1800, "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ - 1634 + 1633 ] }, { - "teal": 1803, + "teal": 1801, "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ + 1634, 1635 ] }, { - "teal": 1804, + "teal": 1802, "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ - 1636, - 1637 + 1636 ] }, { - "teal": 1805, + "teal": 1803, "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ - 1638 + 1637 ] }, { - "teal": 1806, + "teal": 1804, "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ + 1638, 1639 ] }, { - "teal": 1807, + "teal": 1805, "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ - 1640, - 1641 + 1640 ] }, { - "teal": 1808, - "source": "examples/reti/validatorRegistry.algo.ts:565", + "teal": 1806, + "source": "examples/reti/validatorRegistry.algo.ts:548", "pc": [ - 1642 + 1641 ] }, { - "teal": 1809, - "source": "examples/reti/validatorRegistry.algo.ts:548", + "teal": 1811, + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1643 + 1642 ] }, { "teal": 1814, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1644 + 1643, + 1644, + 1645 ] }, { - "teal": 1817, + "teal": 1815, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1645, - 1646, - 1647 + 1646 ] }, { "teal": 1818, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1648 + 1647, + 1648, + 1649 ] }, { - "teal": 1821, + "teal": 1819, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1649, - 1650, - 1651 + 1650 ] }, { "teal": 1822, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ + 1651, 1652 ] }, { - "teal": 1825, + "teal": 1823, + "source": "examples/reti/validatorRegistry.algo.ts:579", + "pc": [ + 1653 + ] + }, + { + "teal": 1824, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1653, 1654 ] }, { - "teal": 1826, + "teal": 1825, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ 1655 ] }, { - "teal": 1827, + "teal": 1826, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1656 + 1656, + 1657 ] }, { - "teal": 1828, + "teal": 1827, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1657 + 1658 ] }, { - "teal": 1829, + "teal": 1828, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1658, 1659 ] }, { - "teal": 1830, + "teal": 1831, "source": "examples/reti/validatorRegistry.algo.ts:579", + "errorMessage": "argument 2 (mbrPayment) for addPool must be a pay transaction", "pc": [ 1660 ] }, { - "teal": 1831, + "teal": 1834, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1661 + 1661, + 1662, + 1663 ] }, { - "teal": 1834, + "teal": 1835, "source": "examples/reti/validatorRegistry.algo.ts:579", - "errorMessage": "argument 2 (mbrPayment) for addPool must be a pay transaction", "pc": [ - 1662 + 1664 ] }, { - "teal": 1837, + "teal": 1836, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1663, - 1664, 1665 ] }, { - "teal": 1838, + "teal": 1837, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ 1666 ] }, { - "teal": 1839, + "teal": 1838, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ 1667 ] }, { - "teal": 1840, + "teal": 1851, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1668 + 1668, + 1669, + 1670 ] }, { - "teal": 1841, + "teal": 1854, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1669 + 1671 ] }, { - "teal": 1854, + "teal": 1855, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1670, - 1671, 1672 ] }, { - "teal": 1857, - "source": "examples/reti/validatorRegistry.algo.ts:579", + "teal": 1863, + "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1673 + 1673, + 1674 ] }, { - "teal": 1858, - "source": "examples/reti/validatorRegistry.algo.ts:579", + "teal": 1864, + "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1674 + 1675 + ] + }, + { + "teal": 1865, + "source": "examples/reti/validatorRegistry.algo.ts:582", + "pc": [ + 1676, + 1677 ] }, { "teal": 1866, "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1675, - 1676 + 1678 ] }, { "teal": 1867, "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1677 + 1679, + 1680 ] }, { "teal": 1868, "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1678, - 1679 + 1681 ] }, { "teal": 1869, "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1680 + 1682 ] }, { "teal": 1870, "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1681, - 1682 + 1683, + 1684 ] }, { "teal": 1871, "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1683 + 1685 ] }, { "teal": 1872, "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1684 + 1686 ] }, { "teal": 1873, "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1685, - 1686 + 1687 ] }, { "teal": 1874, "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1687 + 1688, + 1689, + 1690 ] }, { "teal": 1875, - "source": "examples/reti/validatorRegistry.algo.ts:582", + "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1688 + 1691, + 1692 ] }, { "teal": 1876, - "source": "examples/reti/validatorRegistry.algo.ts:582", + "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1689 + 1693, + 1694 ] }, { "teal": 1877, - "source": "examples/reti/validatorRegistry.algo.ts:582", + "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1690, - 1691, - 1692 + 1695, + 1696 ] }, { "teal": 1878, "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1693, - 1694 + 1697 ] }, { "teal": 1879, "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1695, - 1696 + 1698, + 1699 ] }, { "teal": 1880, "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1697, - 1698 + 1700 ] }, { "teal": 1881, "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1699 + 1701 ] }, { "teal": 1882, "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1700, - 1701 + 1702, + 1703 ] }, { "teal": 1883, "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1702 + 1704 ] }, { "teal": 1884, "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1703 - ] - }, - { - "teal": 1885, - "source": "examples/reti/validatorRegistry.algo.ts:583", - "pc": [ - 1704, 1705 ] }, { - "teal": 1886, - "source": "examples/reti/validatorRegistry.algo.ts:583", + "teal": 1885, + "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ 1706 ] }, { - "teal": 1887, - "source": "examples/reti/validatorRegistry.algo.ts:583", + "teal": 1889, + "source": "examples/reti/validatorRegistry.algo.ts:581", + "errorMessage": "can only be called by owner or manager of validator", "pc": [ 1707 ] }, { - "teal": 1888, - "source": "examples/reti/validatorRegistry.algo.ts:582", - "pc": [ - 1708 - ] - }, - { - "teal": 1892, - "source": "examples/reti/validatorRegistry.algo.ts:581", - "errorMessage": "can only be called by owner or manager of validator", + "teal": 1894, + "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ + 1708, 1709 ] }, { - "teal": 1897, + "teal": 1895, "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ 1710, @@ -7831,55 +7831,55 @@ ] }, { - "teal": 1898, + "teal": 1896, "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ 1712, - 1713 + 1713, + 1714 ] }, { - "teal": 1899, + "teal": 1897, "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ - 1714, 1715, - 1716 + 1716, + 1717 ] }, { - "teal": 1900, + "teal": 1898, "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ - 1717, - 1718, - 1719 + 1718 ] }, { - "teal": 1901, + "teal": 1899, "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ - 1720 + 1719 ] }, { "teal": 1902, "source": "examples/reti/validatorRegistry.algo.ts:588", + "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"this.getMbrAmounts().addPoolMbr\"}", "pc": [ - 1721 + 1720 ] }, { "teal": 1905, "source": "examples/reti/validatorRegistry.algo.ts:588", - "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"this.getMbrAmounts().addPoolMbr\"}", "pc": [ + 1721, 1722 ] }, { - "teal": 1908, + "teal": 1906, "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ 1723, @@ -7887,7 +7887,7 @@ ] }, { - "teal": 1909, + "teal": 1907, "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ 1725, @@ -7895,88 +7895,88 @@ ] }, { - "teal": 1910, + "teal": 1908, "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ - 1727, - 1728 + 1727 ] }, { "teal": 1911, "source": "examples/reti/validatorRegistry.algo.ts:588", + "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", "pc": [ - 1729 + 1728 ] }, { - "teal": 1914, - "source": "examples/reti/validatorRegistry.algo.ts:588", - "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", + "teal": 1915, + "source": "examples/reti/validatorRegistry.algo.ts:590", "pc": [ - 1730 + 1729 ] }, { - "teal": 1918, + "teal": 1916, "source": "examples/reti/validatorRegistry.algo.ts:590", "pc": [ + 1730, 1731 ] }, { - "teal": 1919, + "teal": 1917, "source": "examples/reti/validatorRegistry.algo.ts:590", "pc": [ - 1732, - 1733 + 1732 ] }, { - "teal": 1920, + "teal": 1918, "source": "examples/reti/validatorRegistry.algo.ts:590", "pc": [ - 1734 + 1733 ] }, { - "teal": 1921, + "teal": 1919, "source": "examples/reti/validatorRegistry.algo.ts:590", "pc": [ - 1735 + 1734 ] }, { - "teal": 1922, + "teal": 1920, "source": "examples/reti/validatorRegistry.algo.ts:590", "pc": [ - 1736 + 1735 ] }, { - "teal": 1923, + "teal": 1921, "source": "examples/reti/validatorRegistry.algo.ts:590", "pc": [ - 1737 + 1736 ] }, { "teal": 1924, "source": "examples/reti/validatorRegistry.algo.ts:590", + "errorMessage": "specified validator id isn't valid", "pc": [ - 1738 + 1737 ] }, { - "teal": 1927, - "source": "examples/reti/validatorRegistry.algo.ts:590", - "errorMessage": "specified validator id isn't valid", + "teal": 1928, + "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ + 1738, 1739 ] }, { - "teal": 1931, + "teal": 1929, "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ 1740, @@ -7984,150 +7984,150 @@ ] }, { - "teal": 1932, + "teal": 1930, "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ - 1742, - 1743 + 1742 ] }, { - "teal": 1933, + "teal": 1931, "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ + 1743, 1744 ] }, { - "teal": 1934, + "teal": 1932, "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ - 1745, - 1746 + 1745 ] }, { - "teal": 1935, + "teal": 1933, "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ - 1747 + 1746 ] }, { - "teal": 1936, + "teal": 1934, "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ + 1747, 1748 ] }, { - "teal": 1937, + "teal": 1935, "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ - 1749, - 1750 + 1749 ] }, { - "teal": 1938, + "teal": 1936, "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ - 1751 + 1750 ] }, { - "teal": 1939, + "teal": 1937, "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ + 1751, 1752 ] }, { - "teal": 1940, - "source": "examples/reti/validatorRegistry.algo.ts:592", + "teal": 1942, + "source": "examples/reti/validatorRegistry.algo.ts:593", "pc": [ 1753, 1754 ] }, { - "teal": 1945, - "source": "examples/reti/validatorRegistry.algo.ts:593", - "pc": [ - 1755, - 1756 - ] - }, - { - "teal": 1946, + "teal": 1943, "source": "examples/reti/validatorRegistry.algo.ts:32", "pc": [ - 1757 + 1755 ] }, { - "teal": 1947, + "teal": 1944, "source": "examples/reti/validatorRegistry.algo.ts:593", "pc": [ - 1758 + 1756 ] }, { - "teal": 1948, + "teal": 1945, "source": "examples/reti/validatorRegistry.algo.ts:593", "pc": [ - 1759, - 1760, - 1761 + 1757, + 1758, + 1759 ] }, { - "teal": 1952, + "teal": 1949, "source": "examples/reti/validatorRegistry.algo.ts:594", "errorMessage": "already at max pool size", "pc": [ + 1760 + ] + }, + { + "teal": 1954, + "source": "examples/reti/validatorRegistry.algo.ts:596", + "pc": [ + 1761, 1762 ] }, { - "teal": 1957, + "teal": 1955, "source": "examples/reti/validatorRegistry.algo.ts:596", "pc": [ - 1763, - 1764 + 1763 ] }, { - "teal": 1958, + "teal": 1956, "source": "examples/reti/validatorRegistry.algo.ts:596", "pc": [ - 1765 + 1764 ] }, { - "teal": 1959, + "teal": 1957, "source": "examples/reti/validatorRegistry.algo.ts:596", "pc": [ + 1765, 1766 ] }, { - "teal": 1960, - "source": "examples/reti/validatorRegistry.algo.ts:596", + "teal": 1979, + "source": "examples/reti/validatorRegistry.algo.ts:599", "pc": [ - 1767, - 1768 + 1767 ] }, { - "teal": 1982, + "teal": 1980, "source": "examples/reti/validatorRegistry.algo.ts:599", "pc": [ + 1768, 1769 ] }, { - "teal": 1983, + "teal": 1981, "source": "examples/reti/validatorRegistry.algo.ts:599", "pc": [ 1770, @@ -8135,68 +8135,68 @@ ] }, { - "teal": 1984, - "source": "examples/reti/validatorRegistry.algo.ts:599", + "teal": 1985, + "source": "examples/reti/validatorRegistry.algo.ts:600", "pc": [ - 1772, - 1773 + 1772 ] }, { - "teal": 1988, + "teal": 1986, "source": "examples/reti/validatorRegistry.algo.ts:600", "pc": [ + 1773, 1774 ] }, { - "teal": 1989, - "source": "examples/reti/validatorRegistry.algo.ts:600", + "teal": 1993, + "source": "examples/reti/validatorRegistry.algo.ts:602", "pc": [ 1775, 1776 ] }, { - "teal": 1996, + "teal": 1994, "source": "examples/reti/validatorRegistry.algo.ts:602", "pc": [ - 1777, - 1778 + 1777 ] }, { - "teal": 1997, + "teal": 1995, "source": "examples/reti/validatorRegistry.algo.ts:602", "pc": [ + 1778, 1779 ] }, { - "teal": 1998, + "teal": 1996, "source": "examples/reti/validatorRegistry.algo.ts:602", "pc": [ - 1780, - 1781 + 1780 ] }, { - "teal": 1999, + "teal": 1997, "source": "examples/reti/validatorRegistry.algo.ts:602", "pc": [ + 1781, 1782 ] }, { - "teal": 2000, - "source": "examples/reti/validatorRegistry.algo.ts:602", + "teal": 1998, + "source": "examples/reti/validatorRegistry.algo.ts:603", "pc": [ 1783, 1784 ] }, { - "teal": 2001, + "teal": 1999, "source": "examples/reti/validatorRegistry.algo.ts:603", "pc": [ 1785, @@ -8204,7 +8204,7 @@ ] }, { - "teal": 2002, + "teal": 2000, "source": "examples/reti/validatorRegistry.algo.ts:603", "pc": [ 1787, @@ -8212,77 +8212,77 @@ ] }, { - "teal": 2003, + "teal": 2001, "source": "examples/reti/validatorRegistry.algo.ts:603", "pc": [ - 1789, - 1790 + 1789 ] }, { "teal": 2004, "source": "examples/reti/validatorRegistry.algo.ts:603", + "errorMessage": "box value does not exist: this.stakingPoolApprovalProgram.size", "pc": [ - 1791 + 1790 ] }, { - "teal": 2007, + "teal": 2005, "source": "examples/reti/validatorRegistry.algo.ts:603", - "errorMessage": "box value does not exist: this.stakingPoolApprovalProgram.size", "pc": [ + 1791, 1792 ] }, { - "teal": 2008, + "teal": 2006, "source": "examples/reti/validatorRegistry.algo.ts:603", "pc": [ - 1793, - 1794 + 1793 ] }, { - "teal": 2009, + "teal": 2007, "source": "examples/reti/validatorRegistry.algo.ts:603", "pc": [ - 1795 + 1794 ] }, { - "teal": 2010, + "teal": 2008, "source": "examples/reti/validatorRegistry.algo.ts:603", "pc": [ + 1795, 1796 ] }, { - "teal": 2011, - "source": "examples/reti/validatorRegistry.algo.ts:603", + "teal": 2012, + "source": "examples/reti/validatorRegistry.algo.ts:605", "pc": [ 1797, - 1798 + 1798, + 1799 ] }, { - "teal": 2015, + "teal": 2013, "source": "examples/reti/validatorRegistry.algo.ts:605", "pc": [ - 1799, 1800, 1801 ] }, { - "teal": 2016, - "source": "examples/reti/validatorRegistry.algo.ts:605", + "teal": 2017, + "source": "examples/reti/validatorRegistry.algo.ts:606", "pc": [ 1802, 1803 ] }, { - "teal": 2020, + "teal": 2018, "source": "examples/reti/validatorRegistry.algo.ts:606", "pc": [ 1804, @@ -8290,15 +8290,15 @@ ] }, { - "teal": 2021, - "source": "examples/reti/validatorRegistry.algo.ts:606", + "teal": 2022, + "source": "examples/reti/validatorRegistry.algo.ts:607", "pc": [ 1806, 1807 ] }, { - "teal": 2025, + "teal": 2023, "source": "examples/reti/validatorRegistry.algo.ts:607", "pc": [ 1808, @@ -8306,15 +8306,15 @@ ] }, { - "teal": 2026, - "source": "examples/reti/validatorRegistry.algo.ts:607", + "teal": 2027, + "source": "examples/reti/validatorRegistry.algo.ts:608", "pc": [ 1810, 1811 ] }, { - "teal": 2030, + "teal": 2028, "source": "examples/reti/validatorRegistry.algo.ts:608", "pc": [ 1812, @@ -8322,188 +8322,188 @@ ] }, { - "teal": 2031, - "source": "examples/reti/validatorRegistry.algo.ts:608", + "teal": 2039, + "source": "examples/reti/validatorRegistry.algo.ts:611", "pc": [ 1814, - 1815 + 1815, + 1816, + 1817, + 1818, + 1819 ] }, { - "teal": 2042, + "teal": 2040, "source": "examples/reti/validatorRegistry.algo.ts:611", "pc": [ - 1816, - 1817, - 1818, - 1819, 1820, 1821 ] }, { - "teal": 2043, - "source": "examples/reti/validatorRegistry.algo.ts:611", + "teal": 2041, + "source": "examples/reti/validatorRegistry.algo.ts:612", "pc": [ 1822, - 1823 + 1823, + 1824 ] }, { - "teal": 2044, + "teal": 2042, "source": "examples/reti/validatorRegistry.algo.ts:612", "pc": [ - 1824, - 1825, - 1826 + 1825 ] }, { - "teal": 2045, + "teal": 2043, "source": "examples/reti/validatorRegistry.algo.ts:612", "pc": [ + 1826, 1827 ] }, { - "teal": 2046, - "source": "examples/reti/validatorRegistry.algo.ts:612", + "teal": 2044, + "source": "examples/reti/validatorRegistry.algo.ts:613", "pc": [ 1828, 1829 ] }, { - "teal": 2047, + "teal": 2045, "source": "examples/reti/validatorRegistry.algo.ts:613", "pc": [ - 1830, - 1831 + 1830 ] }, { - "teal": 2048, + "teal": 2046, "source": "examples/reti/validatorRegistry.algo.ts:613", "pc": [ + 1831, 1832 ] }, { - "teal": 2049, - "source": "examples/reti/validatorRegistry.algo.ts:613", + "teal": 2047, + "source": "examples/reti/validatorRegistry.algo.ts:614", "pc": [ 1833, 1834 ] }, { - "teal": 2050, + "teal": 2048, "source": "examples/reti/validatorRegistry.algo.ts:614", "pc": [ - 1835, - 1836 + 1835 ] }, { - "teal": 2051, + "teal": 2049, "source": "examples/reti/validatorRegistry.algo.ts:614", "pc": [ + 1836, 1837 ] }, { - "teal": 2052, - "source": "examples/reti/validatorRegistry.algo.ts:614", + "teal": 2050, + "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ 1838, 1839 ] }, { - "teal": 2053, + "teal": 2051, "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ - 1840, - 1841 + 1840 ] }, { - "teal": 2054, + "teal": 2052, "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ - 1842 + 1841 ] }, { - "teal": 2055, + "teal": 2053, "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ + 1842, 1843 ] }, { - "teal": 2056, + "teal": 2054, "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ - 1844, - 1845 + 1844 ] }, { - "teal": 2057, + "teal": 2055, "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ - 1846 + 1845 ] }, { - "teal": 2058, + "teal": 2056, "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ + 1846, 1847 ] }, { - "teal": 2059, + "teal": 2057, "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ - 1848, - 1849 + 1848 ] }, { - "teal": 2060, + "teal": 2058, "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ - 1850 + 1849 ] }, { - "teal": 2061, + "teal": 2059, "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ - 1851 + 1850 ] }, { - "teal": 2062, + "teal": 2060, "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ + 1851, 1852 ] }, { "teal": 2063, - "source": "examples/reti/validatorRegistry.algo.ts:615", + "source": "examples/reti/validatorRegistry.algo.ts:599", "pc": [ - 1853, - 1854 + 1853 ] }, { - "teal": 2066, + "teal": 2064, "source": "examples/reti/validatorRegistry.algo.ts:599", "pc": [ + 1854, 1855 ] }, @@ -8511,19 +8511,19 @@ "teal": 2067, "source": "examples/reti/validatorRegistry.algo.ts:599", "pc": [ - 1856, - 1857 + 1856 ] }, { - "teal": 2070, - "source": "examples/reti/validatorRegistry.algo.ts:599", + "teal": 2071, + "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ + 1857, 1858 ] }, { - "teal": 2074, + "teal": 2072, "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ 1859, @@ -8531,75 +8531,75 @@ ] }, { - "teal": 2075, + "teal": 2073, "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ - 1861, - 1862 + 1861 ] }, { - "teal": 2076, + "teal": 2074, "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ - 1863 + 1862, + 1863, + 1864 ] }, { - "teal": 2077, + "teal": 2075, "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ - 1864, - 1865, - 1866 + 1865 ] }, { - "teal": 2078, + "teal": 2076, "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ + 1866, 1867 ] }, { - "teal": 2079, + "teal": 2077, "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ - 1868, - 1869 + 1868 ] }, { - "teal": 2080, + "teal": 2078, "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ - 1870 + 1869 ] }, { - "teal": 2081, + "teal": 2079, "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ + 1870, 1871 ] }, { - "teal": 2082, + "teal": 2080, "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ - 1872, - 1873 + 1872 ] }, { - "teal": 2083, - "source": "examples/reti/validatorRegistry.algo.ts:619", + "teal": 2084, + "source": "examples/reti/validatorRegistry.algo.ts:622", "pc": [ + 1873, 1874 ] }, { - "teal": 2087, + "teal": 2085, "source": "examples/reti/validatorRegistry.algo.ts:622", "pc": [ 1875, @@ -8607,15 +8607,15 @@ ] }, { - "teal": 2088, - "source": "examples/reti/validatorRegistry.algo.ts:622", + "teal": 2089, + "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ 1877, 1878 ] }, { - "teal": 2092, + "teal": 2090, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ 1879, @@ -8623,124 +8623,124 @@ ] }, { - "teal": 2093, + "teal": 2091, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 1881, - 1882 + 1881 ] }, { - "teal": 2094, + "teal": 2092, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 1883 + 1882 ] }, { - "teal": 2095, + "teal": 2093, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ + 1883, 1884 ] }, { - "teal": 2096, + "teal": 2094, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 1885, - 1886 + 1885 ] }, { - "teal": 2097, + "teal": 2095, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 1887 + 1886 ] }, { - "teal": 2098, + "teal": 2096, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 1888 + 1887 ] }, { - "teal": 2099, + "teal": 2097, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 1889 + 1888 ] }, { - "teal": 2100, + "teal": 2098, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ + 1889, 1890 ] }, { - "teal": 2101, + "teal": 2099, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 1891, - 1892 + 1891 ] }, { - "teal": 2102, + "teal": 2100, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 1893 + 1892 ] }, { - "teal": 2103, + "teal": 2101, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ + 1893, 1894 ] }, { - "teal": 2104, + "teal": 2102, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 1895, - 1896 + 1895 ] }, { - "teal": 2105, + "teal": 2103, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 1897 + 1896 ] }, { - "teal": 2106, + "teal": 2104, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ + 1897, 1898 ] }, { - "teal": 2107, + "teal": 2105, "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 1899, - 1900 + 1899 ] }, { - "teal": 2108, - "source": "examples/reti/validatorRegistry.algo.ts:623", + "teal": 2109, + "source": "examples/reti/validatorRegistry.algo.ts:624", "pc": [ + 1900, 1901 ] }, { - "teal": 2112, + "teal": 2110, "source": "examples/reti/validatorRegistry.algo.ts:624", "pc": [ 1902, @@ -8748,7 +8748,7 @@ ] }, { - "teal": 2113, + "teal": 2111, "source": "examples/reti/validatorRegistry.algo.ts:624", "pc": [ 1904, @@ -8756,78 +8756,78 @@ ] }, { - "teal": 2114, + "teal": 2112, "source": "examples/reti/validatorRegistry.algo.ts:624", "pc": [ 1906, - 1907 + 1907, + 1908 ] }, { - "teal": 2115, - "source": "examples/reti/validatorRegistry.algo.ts:624", + "teal": 2116, + "source": "examples/reti/validatorRegistry.algo.ts:632", "pc": [ - 1908, 1909, 1910 ] }, { - "teal": 2119, + "teal": 2117, "source": "examples/reti/validatorRegistry.algo.ts:632", "pc": [ - 1911, - 1912 + 1911 ] }, { - "teal": 2120, + "teal": 2118, "source": "examples/reti/validatorRegistry.algo.ts:632", "pc": [ + 1912, 1913 ] }, { - "teal": 2121, + "teal": 2119, "source": "examples/reti/validatorRegistry.algo.ts:632", "pc": [ - 1914, - 1915 + 1914 ] }, { - "teal": 2122, + "teal": 2120, "source": "examples/reti/validatorRegistry.algo.ts:632", "pc": [ - 1916 + 1915 ] }, { - "teal": 2123, + "teal": 2121, "source": "examples/reti/validatorRegistry.algo.ts:632", "pc": [ + 1916, 1917 ] }, { - "teal": 2124, + "teal": 2122, "source": "examples/reti/validatorRegistry.algo.ts:632", "pc": [ - 1918, - 1919 + 1918 ] }, { - "teal": 2125, + "teal": 2123, "source": "examples/reti/validatorRegistry.algo.ts:632", "pc": [ - 1920 + 1919 ] }, { "teal": 2126, - "source": "examples/reti/validatorRegistry.algo.ts:632", + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ + 1920, 1921 ] }, @@ -8840,417 +8840,417 @@ ] }, { - "teal": 2132, + "teal": 2130, "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1924, - 1925 + 1924 ] }, { - "teal": 2133, - "source": "examples/reti/validatorRegistry.algo.ts:579", + "teal": 2135, + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1926 + 1925 ] }, { "teal": 2138, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1927 + 1926, + 1927, + 1928 ] }, { - "teal": 2141, + "teal": 2139, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1928, - 1929, - 1930 + 1929 ] }, { "teal": 2142, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1931 + 1930, + 1931, + 1932 ] }, { - "teal": 2145, + "teal": 2143, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1932, - 1933, - 1934 + 1933 ] }, { "teal": 2146, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ + 1934, 1935 ] }, { - "teal": 2149, + "teal": 2147, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1936, - 1937 + 1936 ] }, { - "teal": 2150, + "teal": 2148, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1938 + 1937 ] }, { - "teal": 2151, + "teal": 2149, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1939 + 1938 ] }, { - "teal": 2152, + "teal": 2150, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ + 1939, 1940 ] }, { - "teal": 2153, + "teal": 2151, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1941, - 1942 + 1941 ] }, { - "teal": 2154, + "teal": 2152, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1943 + 1942 ] }, { "teal": 2155, "source": "examples/reti/validatorRegistry.algo.ts:644", + "errorMessage": "argument 2 (stakedAmountPayment) for addStake must be a pay transaction", "pc": [ - 1944 + 1943 ] }, { "teal": 2158, "source": "examples/reti/validatorRegistry.algo.ts:644", - "errorMessage": "argument 2 (stakedAmountPayment) for addStake must be a pay transaction", "pc": [ - 1945 + 1944, + 1945, + 1946 ] }, { - "teal": 2161, + "teal": 2159, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1946, - 1947, - 1948 + 1947 ] }, { - "teal": 2162, + "teal": 2160, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1949 + 1948 ] }, { - "teal": 2163, + "teal": 2161, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1950 + 1949 ] }, { - "teal": 2164, + "teal": 2162, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1951 + 1950 ] }, { - "teal": 2165, + "teal": 2174, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1952 + 1951, + 1952, + 1953 ] }, { "teal": 2177, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 1953, - 1954, - 1955 + 1954 ] }, { - "teal": 2180, + "teal": 2178, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ + 1955, 1956 ] }, { - "teal": 2181, - "source": "examples/reti/validatorRegistry.algo.ts:644", + "teal": 2182, + "source": "examples/reti/validatorRegistry.algo.ts:645", "pc": [ - 1957, - 1958 + 1957 ] }, { - "teal": 2185, + "teal": 2183, "source": "examples/reti/validatorRegistry.algo.ts:645", "pc": [ + 1958, 1959 ] }, { - "teal": 2186, + "teal": 2184, + "source": "examples/reti/validatorRegistry.algo.ts:645", + "pc": [ + 1960 + ] + }, + { + "teal": 2185, "source": "examples/reti/validatorRegistry.algo.ts:645", "pc": [ - 1960, 1961 ] }, { - "teal": 2187, + "teal": 2186, "source": "examples/reti/validatorRegistry.algo.ts:645", "pc": [ 1962 ] }, { - "teal": 2188, + "teal": 2187, "source": "examples/reti/validatorRegistry.algo.ts:645", "pc": [ 1963 ] }, { - "teal": 2189, + "teal": 2188, "source": "examples/reti/validatorRegistry.algo.ts:645", "pc": [ 1964 ] }, { - "teal": 2190, + "teal": 2191, "source": "examples/reti/validatorRegistry.algo.ts:645", + "errorMessage": "specified validator id isn't valid", "pc": [ 1965 ] }, { - "teal": 2191, - "source": "examples/reti/validatorRegistry.algo.ts:645", + "teal": 2196, + "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 1966 + 1966, + 1967 ] }, { - "teal": 2194, - "source": "examples/reti/validatorRegistry.algo.ts:645", - "errorMessage": "specified validator id isn't valid", + "teal": 2197, + "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 1967 + 1968 ] }, { - "teal": 2199, + "teal": 2198, "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 1968, 1969 ] }, + { + "teal": 2199, + "source": "examples/reti/validatorRegistry.algo.ts:648", + "pc": [ + 1970, + 1971 + ] + }, { "teal": 2200, "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 1970 + 1972 ] }, { "teal": 2201, "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 1971 + 1973 ] }, { "teal": 2202, "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 1972, - 1973 + 1974, + 1975 ] }, { "teal": 2203, "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 1974 + 1976 ] }, { "teal": 2204, "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 1975 + 1977 ] }, { "teal": 2205, "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 1976, - 1977 + 1978 ] }, { "teal": 2206, "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 1978 + 1979 ] }, { "teal": 2207, "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 1979 + 1980, + 1981, + 1982 ] }, { - "teal": 2208, - "source": "examples/reti/validatorRegistry.algo.ts:648", + "teal": 2215, + "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 1980 + 1983, + 1984 ] }, { - "teal": 2209, - "source": "examples/reti/validatorRegistry.algo.ts:648", + "teal": 2216, + "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 1981 + 1985 ] }, { - "teal": 2210, - "source": "examples/reti/validatorRegistry.algo.ts:648", + "teal": 2217, + "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 1982, - 1983, - 1984 + 1986 ] }, { "teal": 2218, "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 1985, - 1986 + 1987, + 1988 ] }, { "teal": 2219, "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 1987 + 1989 ] }, { "teal": 2220, "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 1988 + 1990 ] }, { "teal": 2221, "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 1989, - 1990 + 1991, + 1992 ] }, { "teal": 2222, "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 1991 + 1993 ] }, { "teal": 2223, "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 1992 + 1994 ] }, { "teal": 2224, "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 1993, - 1994 + 1995, + 1996 ] }, { "teal": 2225, "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 1995 + 1997 ] }, { - "teal": 2226, - "source": "examples/reti/validatorRegistry.algo.ts:650", + "teal": 2228, + "source": "examples/reti/validatorRegistry.algo.ts:649", + "errorMessage": "can't stake with a validator that is past its sunsetting time", "pc": [ - 1996 + 1998 ] }, { - "teal": 2227, - "source": "examples/reti/validatorRegistry.algo.ts:650", - "pc": [ - 1997, - 1998 - ] - }, - { - "teal": 2228, - "source": "examples/reti/validatorRegistry.algo.ts:650", - "pc": [ - 1999 - ] - }, - { - "teal": 2231, - "source": "examples/reti/validatorRegistry.algo.ts:649", - "errorMessage": "can't stake with a validator that is past its sunsetting time", + "teal": 2233, + "source": "examples/reti/validatorRegistry.algo.ts:655", "pc": [ + 1999, 2000 ] }, { - "teal": 2236, + "teal": 2234, "source": "examples/reti/validatorRegistry.algo.ts:655", "pc": [ 2001, @@ -9258,23 +9258,23 @@ ] }, { - "teal": 2237, - "source": "examples/reti/validatorRegistry.algo.ts:655", + "teal": 2242, + "source": "examples/reti/validatorRegistry.algo.ts:659", "pc": [ 2003, 2004 ] }, { - "teal": 2245, - "source": "examples/reti/validatorRegistry.algo.ts:659", + "teal": 2243, + "source": "examples/reti/validatorRegistry.algo.ts:660", "pc": [ 2005, 2006 ] }, { - "teal": 2246, + "teal": 2244, "source": "examples/reti/validatorRegistry.algo.ts:660", "pc": [ 2007, @@ -9282,38 +9282,38 @@ ] }, { - "teal": 2247, + "teal": 2245, "source": "examples/reti/validatorRegistry.algo.ts:660", "pc": [ - 2009, - 2010 + 2009 ] }, { "teal": 2248, "source": "examples/reti/validatorRegistry.algo.ts:660", + "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"sender\",\"expected\":\"staker\"}", "pc": [ - 2011 + 2010 ] }, { "teal": 2251, - "source": "examples/reti/validatorRegistry.algo.ts:660", - "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"sender\",\"expected\":\"staker\"}", + "source": "examples/reti/validatorRegistry.algo.ts:659", "pc": [ + 2011, 2012 ] }, { - "teal": 2254, - "source": "examples/reti/validatorRegistry.algo.ts:659", + "teal": 2252, + "source": "examples/reti/validatorRegistry.algo.ts:661", "pc": [ 2013, 2014 ] }, { - "teal": 2255, + "teal": 2253, "source": "examples/reti/validatorRegistry.algo.ts:661", "pc": [ 2015, @@ -9321,120 +9321,120 @@ ] }, { - "teal": 2256, + "teal": 2254, "source": "examples/reti/validatorRegistry.algo.ts:661", "pc": [ - 2017, - 2018 + 2017 ] }, { "teal": 2257, "source": "examples/reti/validatorRegistry.algo.ts:661", + "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", "pc": [ - 2019 + 2018 ] }, { - "teal": 2260, - "source": "examples/reti/validatorRegistry.algo.ts:661", - "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", + "teal": 2264, + "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ + 2019, 2020 ] }, { - "teal": 2267, + "teal": 2265, "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2021, - 2022 + 2021 ] }, { - "teal": 2268, + "teal": 2266, "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2023 + 2022 ] }, { - "teal": 2269, + "teal": 2267, "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ + 2023, 2024 ] }, { - "teal": 2270, + "teal": 2268, "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2025, - 2026 + 2025 ] }, { - "teal": 2271, + "teal": 2269, "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2027 + 2026 ] }, { - "teal": 2272, + "teal": 2270, "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ + 2027, 2028 ] }, { - "teal": 2273, + "teal": 2271, "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2029, - 2030 + 2029 ] }, { - "teal": 2274, + "teal": 2272, "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2031 + 2030 ] }, { - "teal": 2275, + "teal": 2273, "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2032 + 2031, + 2032, + 2033 ] }, { - "teal": 2276, + "teal": 2274, "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2033, - 2034, - 2035 + 2034 ] }, { "teal": 2277, - "source": "examples/reti/validatorRegistry.algo.ts:667", + "source": "examples/reti/validatorRegistry.algo.ts:666", + "errorMessage": "total staked for all of a validators pools may not exceed hard cap", "pc": [ - 2036 + 2035 ] }, { - "teal": 2280, - "source": "examples/reti/validatorRegistry.algo.ts:666", - "errorMessage": "total staked for all of a validators pools may not exceed hard cap", + "teal": 2281, + "source": "examples/reti/validatorRegistry.algo.ts:673", "pc": [ + 2036, 2037 ] }, { - "teal": 2284, + "teal": 2282, "source": "examples/reti/validatorRegistry.algo.ts:673", "pc": [ 2038, @@ -9442,24 +9442,24 @@ ] }, { - "teal": 2285, + "teal": 2283, "source": "examples/reti/validatorRegistry.algo.ts:673", "pc": [ 2040, - 2041 + 2041, + 2042 ] }, { - "teal": 2286, - "source": "examples/reti/validatorRegistry.algo.ts:673", + "teal": 2287, + "source": "examples/reti/validatorRegistry.algo.ts:675", "pc": [ - 2042, 2043, 2044 ] }, { - "teal": 2290, + "teal": 2288, "source": "examples/reti/validatorRegistry.algo.ts:675", "pc": [ 2045, @@ -9467,7 +9467,7 @@ ] }, { - "teal": 2291, + "teal": 2289, "source": "examples/reti/validatorRegistry.algo.ts:675", "pc": [ 2047, @@ -9475,122 +9475,122 @@ ] }, { - "teal": 2292, - "source": "examples/reti/validatorRegistry.algo.ts:675", + "teal": 2293, + "source": "examples/reti/validatorRegistry.algo.ts:676", "pc": [ - 2049, - 2050 + 2049 ] }, { - "teal": 2296, + "teal": 2294, "source": "examples/reti/validatorRegistry.algo.ts:676", "pc": [ + 2050, 2051 ] }, { - "teal": 2297, - "source": "examples/reti/validatorRegistry.algo.ts:676", + "teal": 2299, + "source": "examples/reti/validatorRegistry.algo.ts:678", "pc": [ - 2052, - 2053 + 2052 ] }, { - "teal": 2302, + "teal": 2300, "source": "examples/reti/validatorRegistry.algo.ts:678", "pc": [ + 2053, 2054 ] }, { - "teal": 2303, + "teal": 2301, "source": "examples/reti/validatorRegistry.algo.ts:678", "pc": [ - 2055, - 2056 + 2055 ] }, { - "teal": 2304, + "teal": 2302, "source": "examples/reti/validatorRegistry.algo.ts:678", "pc": [ - 2057 + 2056 ] }, { - "teal": 2305, + "teal": 2303, "source": "examples/reti/validatorRegistry.algo.ts:678", "pc": [ - 2058 + 2057 ] }, { - "teal": 2306, + "teal": 2304, "source": "examples/reti/validatorRegistry.algo.ts:678", "pc": [ - 2059 + 2058 ] }, { - "teal": 2307, + "teal": 2305, "source": "examples/reti/validatorRegistry.algo.ts:678", "pc": [ - 2060 + 2059 ] }, { - "teal": 2308, + "teal": 2306, "source": "examples/reti/validatorRegistry.algo.ts:678", "pc": [ - 2061 + 2060, + 2061, + 2062 ] }, { - "teal": 2309, - "source": "examples/reti/validatorRegistry.algo.ts:678", + "teal": 2311, + "source": "examples/reti/validatorRegistry.algo.ts:681", "pc": [ - 2062, 2063, - 2064 + 2064, + 2065 ] }, { - "teal": 2314, + "teal": 2312, "source": "examples/reti/validatorRegistry.algo.ts:681", "pc": [ - 2065, 2066, - 2067 + 2067, + 2068 ] }, { - "teal": 2315, + "teal": 2313, "source": "examples/reti/validatorRegistry.algo.ts:681", "pc": [ - 2068, - 2069, - 2070 + 2069 ] }, { - "teal": 2316, + "teal": 2314, "source": "examples/reti/validatorRegistry.algo.ts:681", "pc": [ + 2070, 2071 ] }, { - "teal": 2317, - "source": "examples/reti/validatorRegistry.algo.ts:681", + "teal": 2318, + "source": "examples/reti/validatorRegistry.algo.ts:682", "pc": [ 2072, 2073 ] }, { - "teal": 2321, + "teal": 2319, "source": "examples/reti/validatorRegistry.algo.ts:682", "pc": [ 2074, @@ -9598,75 +9598,75 @@ ] }, { - "teal": 2322, + "teal": 2320, "source": "examples/reti/validatorRegistry.algo.ts:682", "pc": [ - 2076, - 2077 + 2076 ] }, { - "teal": 2323, + "teal": 2321, "source": "examples/reti/validatorRegistry.algo.ts:682", "pc": [ + 2077, 2078 ] }, { - "teal": 2324, - "source": "examples/reti/validatorRegistry.algo.ts:682", + "teal": 2325, + "source": "examples/reti/validatorRegistry.algo.ts:683", "pc": [ - 2079, - 2080 + 2079 ] }, { - "teal": 2328, + "teal": 2326, "source": "examples/reti/validatorRegistry.algo.ts:683", "pc": [ + 2080, 2081 ] }, { - "teal": 2329, + "teal": 2327, "source": "examples/reti/validatorRegistry.algo.ts:683", "pc": [ - 2082, - 2083 + 2082 ] }, { - "teal": 2330, + "teal": 2328, "source": "examples/reti/validatorRegistry.algo.ts:683", "pc": [ - 2084 + 2083, + 2084, + 2085 ] }, { - "teal": 2331, + "teal": 2329, "source": "examples/reti/validatorRegistry.algo.ts:683", "pc": [ - 2085, - 2086, - 2087 + 2086 ] }, { - "teal": 2332, + "teal": 2330, "source": "examples/reti/validatorRegistry.algo.ts:683", "pc": [ - 2088 + 2087 ] }, { - "teal": 2333, - "source": "examples/reti/validatorRegistry.algo.ts:683", + "teal": 2335, + "source": "examples/reti/validatorRegistry.algo.ts:687", "pc": [ + 2088, 2089 ] }, { - "teal": 2338, + "teal": 2336, "source": "examples/reti/validatorRegistry.algo.ts:687", "pc": [ 2090, @@ -9674,7 +9674,7 @@ ] }, { - "teal": 2339, + "teal": 2337, "source": "examples/reti/validatorRegistry.algo.ts:687", "pc": [ 2092, @@ -9682,32 +9682,32 @@ ] }, { - "teal": 2340, + "teal": 2338, "source": "examples/reti/validatorRegistry.algo.ts:687", "pc": [ 2094, - 2095 + 2095, + 2096 ] }, { - "teal": 2341, + "teal": 2339, "source": "examples/reti/validatorRegistry.algo.ts:687", "pc": [ - 2096, 2097, 2098 ] }, { - "teal": 2342, - "source": "examples/reti/validatorRegistry.algo.ts:687", + "teal": 2345, + "source": "examples/reti/validatorRegistry.algo.ts:689", "pc": [ 2099, 2100 ] }, { - "teal": 2348, + "teal": 2346, "source": "examples/reti/validatorRegistry.algo.ts:689", "pc": [ 2101, @@ -9715,7 +9715,7 @@ ] }, { - "teal": 2349, + "teal": 2347, "source": "examples/reti/validatorRegistry.algo.ts:689", "pc": [ 2103, @@ -9723,7 +9723,7 @@ ] }, { - "teal": 2350, + "teal": 2348, "source": "examples/reti/validatorRegistry.algo.ts:689", "pc": [ 2105, @@ -9731,30 +9731,30 @@ ] }, { - "teal": 2351, + "teal": 2349, "source": "examples/reti/validatorRegistry.algo.ts:689", "pc": [ - 2107, - 2108 + 2107 ] }, { - "teal": 2352, + "teal": 2350, "source": "examples/reti/validatorRegistry.algo.ts:689", "pc": [ + 2108, 2109 ] }, { - "teal": 2353, - "source": "examples/reti/validatorRegistry.algo.ts:689", + "teal": 2354, + "source": "examples/reti/validatorRegistry.algo.ts:690", "pc": [ 2110, 2111 ] }, { - "teal": 2357, + "teal": 2355, "source": "examples/reti/validatorRegistry.algo.ts:690", "pc": [ 2112, @@ -9762,7 +9762,7 @@ ] }, { - "teal": 2358, + "teal": 2356, "source": "examples/reti/validatorRegistry.algo.ts:690", "pc": [ 2114, @@ -9770,39 +9770,39 @@ ] }, { - "teal": 2359, + "teal": 2357, "source": "examples/reti/validatorRegistry.algo.ts:690", "pc": [ 2116, - 2117 + 2117, + 2118 ] }, { - "teal": 2360, + "teal": 2358, "source": "examples/reti/validatorRegistry.algo.ts:690", "pc": [ - 2118, - 2119, - 2120 + 2119 ] }, { - "teal": 2361, + "teal": 2359, "source": "examples/reti/validatorRegistry.algo.ts:690", "pc": [ + 2120, 2121 ] }, { - "teal": 2362, - "source": "examples/reti/validatorRegistry.algo.ts:690", + "teal": 2364, + "source": "examples/reti/validatorRegistry.algo.ts:691", "pc": [ 2122, 2123 ] }, { - "teal": 2367, + "teal": 2365, "source": "examples/reti/validatorRegistry.algo.ts:691", "pc": [ 2124, @@ -9810,7 +9810,7 @@ ] }, { - "teal": 2368, + "teal": 2366, "source": "examples/reti/validatorRegistry.algo.ts:691", "pc": [ 2126, @@ -9818,62 +9818,62 @@ ] }, { - "teal": 2369, + "teal": 2367, "source": "examples/reti/validatorRegistry.algo.ts:691", "pc": [ 2128, - 2129 + 2129, + 2130 ] }, { - "teal": 2370, + "teal": 2368, "source": "examples/reti/validatorRegistry.algo.ts:691", "pc": [ - 2130, - 2131, - 2132 + 2131 ] }, { - "teal": 2371, + "teal": 2369, "source": "examples/reti/validatorRegistry.algo.ts:691", "pc": [ - 2133 + 2132 ] }, { - "teal": 2372, + "teal": 2370, "source": "examples/reti/validatorRegistry.algo.ts:691", "pc": [ - 2134 + 2133 ] }, { - "teal": 2373, + "teal": 2371, "source": "examples/reti/validatorRegistry.algo.ts:691", "pc": [ - 2135 + 2134, + 2135, + 2136 ] }, { - "teal": 2374, - "source": "examples/reti/validatorRegistry.algo.ts:691", + "teal": 2375, + "source": "examples/reti/validatorRegistry.algo.ts:692", + "errorMessage": "No pool available with free stake. Validator needs to add another pool", "pc": [ - 2136, - 2137, - 2138 + 2137 ] }, { - "teal": 2378, - "source": "examples/reti/validatorRegistry.algo.ts:692", - "errorMessage": "No pool available with free stake. Validator needs to add another pool", + "teal": 2380, + "source": "examples/reti/validatorRegistry.algo.ts:696", "pc": [ + 2138, 2139 ] }, { - "teal": 2383, + "teal": 2381, "source": "examples/reti/validatorRegistry.algo.ts:696", "pc": [ 2140, @@ -9881,7 +9881,7 @@ ] }, { - "teal": 2384, + "teal": 2382, "source": "examples/reti/validatorRegistry.algo.ts:696", "pc": [ 2142, @@ -9889,65 +9889,65 @@ ] }, { - "teal": 2385, + "teal": 2383, "source": "examples/reti/validatorRegistry.algo.ts:696", "pc": [ 2144, - 2145 + 2145, + 2146 ] }, { - "teal": 2386, + "teal": 2384, "source": "examples/reti/validatorRegistry.algo.ts:696", "pc": [ - 2146, 2147, 2148 ] }, { - "teal": 2387, + "teal": 2385, "source": "examples/reti/validatorRegistry.algo.ts:696", "pc": [ 2149, - 2150 + 2150, + 2151 ] }, { - "teal": 2388, - "source": "examples/reti/validatorRegistry.algo.ts:696", + "teal": 2395, + "source": "examples/reti/validatorRegistry.algo.ts:704", "pc": [ - 2151, 2152, 2153 ] }, { - "teal": 2398, - "source": "examples/reti/validatorRegistry.algo.ts:704", + "teal": 2396, + "source": "examples/reti/validatorRegistry.algo.ts:703", "pc": [ 2154, 2155 ] }, { - "teal": 2399, - "source": "examples/reti/validatorRegistry.algo.ts:703", + "teal": 2397, + "source": "examples/reti/validatorRegistry.algo.ts:702", "pc": [ 2156, 2157 ] }, { - "teal": 2400, - "source": "examples/reti/validatorRegistry.algo.ts:702", + "teal": 2398, + "source": "examples/reti/validatorRegistry.algo.ts:701", "pc": [ 2158, 2159 ] }, { - "teal": 2401, + "teal": 2399, "source": "examples/reti/validatorRegistry.algo.ts:701", "pc": [ 2160, @@ -9955,7 +9955,7 @@ ] }, { - "teal": 2402, + "teal": 2400, "source": "examples/reti/validatorRegistry.algo.ts:701", "pc": [ 2162, @@ -9963,41 +9963,41 @@ ] }, { - "teal": 2403, + "teal": 2401, "source": "examples/reti/validatorRegistry.algo.ts:701", "pc": [ 2164, - 2165 + 2165, + 2166 ] }, { - "teal": 2404, - "source": "examples/reti/validatorRegistry.algo.ts:701", + "teal": 2402, + "source": "examples/reti/validatorRegistry.algo.ts:700", "pc": [ - 2166, 2167, 2168 ] }, { - "teal": 2405, - "source": "examples/reti/validatorRegistry.algo.ts:700", + "teal": 2403, + "source": "examples/reti/validatorRegistry.algo.ts:699", "pc": [ 2169, - 2170 + 2170, + 2171 ] }, { - "teal": 2406, - "source": "examples/reti/validatorRegistry.algo.ts:699", + "teal": 2407, + "source": "examples/reti/validatorRegistry.algo.ts:714", "pc": [ - 2171, 2172, 2173 ] }, { - "teal": 2410, + "teal": 2408, "source": "examples/reti/validatorRegistry.algo.ts:714", "pc": [ 2174, @@ -10005,7 +10005,7 @@ ] }, { - "teal": 2411, + "teal": 2409, "source": "examples/reti/validatorRegistry.algo.ts:714", "pc": [ 2176, @@ -10013,18 +10013,18 @@ ] }, { - "teal": 2412, + "teal": 2410, "source": "examples/reti/validatorRegistry.algo.ts:714", "pc": [ 2178, - 2179 + 2179, + 2180 ] }, { "teal": 2413, - "source": "examples/reti/validatorRegistry.algo.ts:714", + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2180, 2181, 2182 ] @@ -10038,209 +10038,209 @@ ] }, { - "teal": 2419, + "teal": 2417, "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2185, - 2186 + 2185 ] }, { - "teal": 2420, - "source": "examples/reti/validatorRegistry.algo.ts:644", + "teal": 2422, + "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2187 + 2186 ] }, { "teal": 2425, "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2188 + 2187, + 2188, + 2189 ] }, { - "teal": 2428, + "teal": 2426, "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2189, - 2190, - 2191 + 2190 ] }, { "teal": 2429, "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2192 + 2191, + 2192, + 2193 ] }, { - "teal": 2432, + "teal": 2430, "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2193, - 2194, - 2195 + 2194 ] }, { - "teal": 2433, + "teal": 2431, "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2196 + 2195 ] }, { - "teal": 2434, + "teal": 2432, "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2197 + 2196 ] }, { - "teal": 2435, + "teal": 2433, "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2198 + 2197 ] }, { - "teal": 2436, + "teal": 2451, "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2199 + 2198, + 2199, + 2200 ] }, { "teal": 2454, "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2200, - 2201, - 2202 + 2201 ] }, { - "teal": 2457, + "teal": 2455, "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ + 2202, 2203 ] }, { - "teal": 2458, - "source": "examples/reti/validatorRegistry.algo.ts:732", + "teal": 2459, + "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ 2204, 2205 ] }, { - "teal": 2462, + "teal": 2460, "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ - 2206, - 2207 + 2206 ] }, { - "teal": 2463, + "teal": 2461, "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ - 2208 + 2207 ] }, { - "teal": 2464, + "teal": 2462, "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ + 2208, 2209 ] }, { - "teal": 2465, + "teal": 2463, "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ - 2210, - 2211 + 2210 ] }, { - "teal": 2466, + "teal": 2464, "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ - 2212 + 2211 ] }, { - "teal": 2467, + "teal": 2465, "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ + 2212, 2213 ] }, { - "teal": 2468, + "teal": 2466, "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ - 2214, - 2215 + 2214 ] }, { - "teal": 2469, + "teal": 2467, "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ - 2216 + 2215 ] }, { - "teal": 2470, + "teal": 2468, "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ + 2216, 2217 ] }, { - "teal": 2471, - "source": "examples/reti/validatorRegistry.algo.ts:734", + "teal": 2472, + "source": "examples/reti/validatorRegistry.algo.ts:735", "pc": [ 2218, 2219 ] }, { - "teal": 2475, + "teal": 2473, "source": "examples/reti/validatorRegistry.algo.ts:735", "pc": [ - 2220, - 2221 + 2220 ] }, { - "teal": 2476, + "teal": 2474, "source": "examples/reti/validatorRegistry.algo.ts:735", "pc": [ - 2222 + 2221 ] }, { - "teal": 2477, + "teal": 2475, "source": "examples/reti/validatorRegistry.algo.ts:735", "pc": [ - 2223 + 2222 ] }, { - "teal": 2478, - "source": "examples/reti/validatorRegistry.algo.ts:735", + "teal": 2480, + "source": "examples/reti/validatorRegistry.algo.ts:737", "pc": [ + 2223, 2224 ] }, { - "teal": 2483, + "teal": 2481, "source": "examples/reti/validatorRegistry.algo.ts:737", "pc": [ 2225, @@ -10248,7 +10248,7 @@ ] }, { - "teal": 2484, + "teal": 2482, "source": "examples/reti/validatorRegistry.algo.ts:737", "pc": [ 2227, @@ -10256,38 +10256,38 @@ ] }, { - "teal": 2485, + "teal": 2483, "source": "examples/reti/validatorRegistry.algo.ts:737", "pc": [ - 2229, - 2230 + 2229 ] }, { - "teal": 2486, + "teal": 2484, "source": "examples/reti/validatorRegistry.algo.ts:737", "pc": [ - 2231 + 2230 ] }, { - "teal": 2487, + "teal": 2485, "source": "examples/reti/validatorRegistry.algo.ts:737", "pc": [ - 2232 + 2231, + 2232, + 2233 ] }, { - "teal": 2488, - "source": "examples/reti/validatorRegistry.algo.ts:737", + "teal": 2490, + "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ - 2233, 2234, 2235 ] }, { - "teal": 2493, + "teal": 2491, "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ 2236, @@ -10295,68 +10295,68 @@ ] }, { - "teal": 2494, + "teal": 2492, "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ - 2238, - 2239 + 2238 ] }, { - "teal": 2495, + "teal": 2493, "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ + 2239, 2240 ] }, { - "teal": 2496, + "teal": 2494, "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ - 2241, - 2242 + 2241 ] }, { - "teal": 2497, + "teal": 2495, "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ - 2243 + 2242 ] }, { - "teal": 2498, + "teal": 2496, "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ + 2243, 2244 ] }, { - "teal": 2499, + "teal": 2497, "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ - 2245, - 2246 + 2245 ] }, { - "teal": 2500, + "teal": 2498, "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ - 2247 + 2246, + 2247, + 2248 ] }, { - "teal": 2501, - "source": "examples/reti/validatorRegistry.algo.ts:738", + "teal": 2503, + "source": "examples/reti/validatorRegistry.algo.ts:744", "pc": [ - 2248, 2249, 2250 ] }, { - "teal": 2506, + "teal": 2504, "source": "examples/reti/validatorRegistry.algo.ts:744", "pc": [ 2251, @@ -10364,130 +10364,124 @@ ] }, { - "teal": 2507, - "source": "examples/reti/validatorRegistry.algo.ts:744", + "teal": 2508, + "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ 2253, 2254 ] }, { - "teal": 2511, + "teal": 2509, "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ - 2255, - 2256 + 2255 ] }, { - "teal": 2512, + "teal": 2510, "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ - 2257 + 2256 ] }, { - "teal": 2513, + "teal": 2511, "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ + 2257, 2258 ] }, { - "teal": 2514, + "teal": 2512, "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ - 2259, - 2260 + 2259 ] }, { - "teal": 2515, + "teal": 2513, "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ - 2261 + 2260 ] }, { - "teal": 2516, + "teal": 2514, "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ + 2261, 2262 ] }, { - "teal": 2517, + "teal": 2515, "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ - 2263, - 2264 + 2263 ] }, { - "teal": 2518, + "teal": 2516, "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ - 2265 + 2264 ] }, { - "teal": 2519, + "teal": 2517, "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ + 2265, 2266 ] }, { - "teal": 2520, - "source": "examples/reti/validatorRegistry.algo.ts:745", + "teal": 2522, + "source": "examples/reti/validatorRegistry.algo.ts:746", "pc": [ 2267, 2268 ] }, { - "teal": 2525, + "teal": 2523, "source": "examples/reti/validatorRegistry.algo.ts:746", "pc": [ - 2269, - 2270 + 2269 ] }, { - "teal": 2526, + "teal": 2524, "source": "examples/reti/validatorRegistry.algo.ts:746", "pc": [ - 2271 + 2270 ] }, { - "teal": 2527, + "teal": 2525, "source": "examples/reti/validatorRegistry.algo.ts:746", "pc": [ - 2272 + 2271, + 2272, + 2273 ] }, { - "teal": 2528, - "source": "examples/reti/validatorRegistry.algo.ts:746", + "teal": 2531, + "source": "examples/reti/validatorRegistry.algo.ts:748", "pc": [ - 2273, 2274, 2275 ] }, { - "teal": 2534, + "teal": 2532, "source": "examples/reti/validatorRegistry.algo.ts:748", "pc": [ 2276, - 2277 - ] - }, - { - "teal": 2535, - "source": "examples/reti/validatorRegistry.algo.ts:748", - "pc": [ + 2277, 2278, 2279, 2280, @@ -10497,52 +10491,58 @@ 2284, 2285, 2286, - 2287, - 2288, - 2289 + 2287 ] }, { - "teal": 2536, + "teal": 2533, "source": "examples/reti/validatorRegistry.algo.ts:748", "pc": [ - 2290 + 2288 ] }, { - "teal": 2539, + "teal": 2536, "source": "examples/reti/validatorRegistry.algo.ts:748", "errorMessage": "global state value does not exist: AppID.fromUint64(pool1AppID).globalState('lastPayout')", "pc": [ - 2291 + 2289 ] }, { - "teal": 2540, + "teal": 2537, "source": "examples/reti/validatorRegistry.algo.ts:748", "pc": [ - 2292, - 2293 + 2290, + 2291 ] }, { - "teal": 2541, + "teal": 2538, "source": "examples/reti/validatorRegistry.algo.ts:748", "pc": [ - 2294 + 2292 ] }, { - "teal": 2542, + "teal": 2539, "source": "examples/reti/validatorRegistry.algo.ts:748", "pc": [ - 2295, + 2293, + 2294, + 2295 + ] + }, + { + "teal": 2544, + "source": "examples/reti/validatorRegistry.algo.ts:749", + "pc": [ 2296, 2297 ] }, { - "teal": 2547, + "teal": 2545, "source": "examples/reti/validatorRegistry.algo.ts:749", "pc": [ 2298, @@ -10550,144 +10550,144 @@ ] }, { - "teal": 2548, + "teal": 2546, "source": "examples/reti/validatorRegistry.algo.ts:749", "pc": [ - 2300, - 2301 + 2300 ] }, { - "teal": 2549, + "teal": 2547, "source": "examples/reti/validatorRegistry.algo.ts:749", "pc": [ + 2301, 2302 ] }, { - "teal": 2550, + "teal": 2548, "source": "examples/reti/validatorRegistry.algo.ts:749", "pc": [ - 2303, - 2304 + 2303 ] }, { - "teal": 2551, + "teal": 2549, "source": "examples/reti/validatorRegistry.algo.ts:749", "pc": [ - 2305 + 2304 ] }, { - "teal": 2552, + "teal": 2550, "source": "examples/reti/validatorRegistry.algo.ts:749", "pc": [ + 2305, 2306 ] }, { - "teal": 2553, + "teal": 2551, "source": "examples/reti/validatorRegistry.algo.ts:749", "pc": [ - 2307, - 2308 + 2307 ] }, { - "teal": 2554, + "teal": 2552, "source": "examples/reti/validatorRegistry.algo.ts:749", "pc": [ - 2309 + 2308, + 2309, + 2310 ] }, { - "teal": 2555, - "source": "examples/reti/validatorRegistry.algo.ts:749", + "teal": 2557, + "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ - 2310, 2311, - 2312 + 2312, + 2313 ] }, { - "teal": 2560, + "teal": 2558, "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ - 2313, 2314, 2315 ] }, { - "teal": 2561, + "teal": 2559, "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ - 2316, - 2317 + 2316 ] }, { - "teal": 2562, + "teal": 2560, "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ + 2317, 2318 ] }, { - "teal": 2563, + "teal": 2561, "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ - 2319, - 2320 + 2319 ] }, { - "teal": 2564, + "teal": 2562, "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ - 2321 + 2320 ] }, { - "teal": 2565, + "teal": 2563, "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ + 2321, 2322 ] }, { - "teal": 2566, + "teal": 2564, "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ - 2323, - 2324 + 2323 ] }, { - "teal": 2567, + "teal": 2565, "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ - 2325 + 2324 ] }, { - "teal": 2568, + "teal": 2566, "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ + 2325, 2326 ] }, { - "teal": 2569, - "source": "examples/reti/validatorRegistry.algo.ts:751", + "teal": 2570, + "source": "examples/reti/validatorRegistry.algo.ts:752", "pc": [ 2327, 2328 ] }, { - "teal": 2573, + "teal": 2571, "source": "examples/reti/validatorRegistry.algo.ts:752", "pc": [ 2329, @@ -10695,7 +10695,7 @@ ] }, { - "teal": 2574, + "teal": 2572, "source": "examples/reti/validatorRegistry.algo.ts:752", "pc": [ 2331, @@ -10703,37 +10703,37 @@ ] }, { - "teal": 2575, + "teal": 2573, "source": "examples/reti/validatorRegistry.algo.ts:752", "pc": [ - 2333, - 2334 + 2333 ] }, { - "teal": 2576, + "teal": 2574, "source": "examples/reti/validatorRegistry.algo.ts:752", "pc": [ - 2335 + 2334 ] }, { - "teal": 2577, + "teal": 2575, "source": "examples/reti/validatorRegistry.algo.ts:752", "pc": [ + 2335, 2336 ] }, { - "teal": 2578, - "source": "examples/reti/validatorRegistry.algo.ts:752", + "teal": 2580, + "source": "examples/reti/validatorRegistry.algo.ts:754", "pc": [ 2337, 2338 ] }, { - "teal": 2583, + "teal": 2581, "source": "examples/reti/validatorRegistry.algo.ts:754", "pc": [ 2339, @@ -10741,7 +10741,7 @@ ] }, { - "teal": 2584, + "teal": 2582, "source": "examples/reti/validatorRegistry.algo.ts:754", "pc": [ 2341, @@ -10749,53 +10749,53 @@ ] }, { - "teal": 2585, + "teal": 2583, "source": "examples/reti/validatorRegistry.algo.ts:754", "pc": [ - 2343, - 2344 + 2343 ] }, { - "teal": 2586, + "teal": 2584, "source": "examples/reti/validatorRegistry.algo.ts:754", "pc": [ - 2345 + 2344 ] }, { - "teal": 2587, + "teal": 2585, "source": "examples/reti/validatorRegistry.algo.ts:754", "pc": [ + 2345, 2346 ] }, { - "teal": 2588, + "teal": 2586, "source": "examples/reti/validatorRegistry.algo.ts:754", "pc": [ - 2347, - 2348 + 2347 ] }, { - "teal": 2589, + "teal": 2587, "source": "examples/reti/validatorRegistry.algo.ts:754", "pc": [ - 2349 + 2348, + 2349, + 2350 ] }, { - "teal": 2590, - "source": "examples/reti/validatorRegistry.algo.ts:754", + "teal": 2592, + "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ - 2350, 2351, 2352 ] }, { - "teal": 2595, + "teal": 2593, "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ 2353, @@ -10803,68 +10803,68 @@ ] }, { - "teal": 2596, + "teal": 2594, "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ - 2355, - 2356 + 2355 ] }, { - "teal": 2597, + "teal": 2595, "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ + 2356, 2357 ] }, { - "teal": 2598, + "teal": 2596, "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ - 2358, - 2359 + 2358 ] }, { - "teal": 2599, + "teal": 2597, "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ - 2360 + 2359 ] }, { - "teal": 2600, + "teal": 2598, "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ + 2360, 2361 ] }, { - "teal": 2601, + "teal": 2599, "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ - 2362, - 2363 + 2362 ] }, { - "teal": 2602, + "teal": 2600, "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ - 2364 + 2363, + 2364, + 2365 ] }, { - "teal": 2603, - "source": "examples/reti/validatorRegistry.algo.ts:755", + "teal": 2607, + "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ - 2365, 2366, 2367 ] }, { - "teal": 2610, + "teal": 2608, "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ 2368, @@ -10872,66 +10872,66 @@ ] }, { - "teal": 2611, + "teal": 2609, "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ - 2370, - 2371 + 2370 ] }, { - "teal": 2612, + "teal": 2610, "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ - 2372 + 2371 ] }, { - "teal": 2613, + "teal": 2611, "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ + 2372, 2373 ] }, { - "teal": 2614, + "teal": 2612, "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ - 2374, - 2375 + 2374 ] }, { - "teal": 2615, + "teal": 2613, "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ - 2376 + 2375 ] }, { - "teal": 2616, + "teal": 2614, "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ + 2376, 2377 ] }, { - "teal": 2617, + "teal": 2615, "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ - 2378, - 2379 + 2378 ] }, { - "teal": 2618, - "source": "examples/reti/validatorRegistry.algo.ts:758", + "teal": 2619, + "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ + 2379, 2380 ] }, { - "teal": 2622, + "teal": 2620, "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ 2381, @@ -10939,155 +10939,155 @@ ] }, { - "teal": 2623, + "teal": 2621, "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ - 2383, - 2384 + 2383 ] }, { - "teal": 2624, + "teal": 2622, "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ + 2384, 2385 ] }, { - "teal": 2625, + "teal": 2623, "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ - 2386, - 2387 + 2386 ] }, { - "teal": 2626, + "teal": 2624, "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ - 2388 + 2387 ] }, { - "teal": 2627, + "teal": 2625, "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ + 2388, 2389 ] }, { - "teal": 2628, + "teal": 2626, "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ - 2390, - 2391 + 2390 ] }, { - "teal": 2629, + "teal": 2627, "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ - 2392 + 2391 ] }, { - "teal": 2630, + "teal": 2628, "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ + 2392, 2393 ] }, { - "teal": 2631, - "source": "examples/reti/validatorRegistry.algo.ts:760", + "teal": 2632, + "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ 2394, 2395 ] }, { - "teal": 2635, + "teal": 2633, "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ - 2396, - 2397 + 2396 ] }, { - "teal": 2636, + "teal": 2634, "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ - 2398 + 2397 ] }, { - "teal": 2637, + "teal": 2635, "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ + 2398, 2399 ] }, { - "teal": 2638, + "teal": 2636, "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ - 2400, - 2401 + 2400 ] }, { - "teal": 2639, + "teal": 2637, "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ - 2402 + 2401 ] }, { - "teal": 2640, + "teal": 2638, "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ + 2402, 2403 ] }, { - "teal": 2641, + "teal": 2639, "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ - 2404, - 2405 + 2404 ] }, { - "teal": 2642, + "teal": 2640, "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ - 2406 + 2405 ] }, { - "teal": 2643, + "teal": 2641, "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ + 2406, 2407 ] }, { - "teal": 2644, - "source": "examples/reti/validatorRegistry.algo.ts:761", + "teal": 2645, + "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ - 2408, - 2409 + 2408 ] }, { - "teal": 2648, + "teal": 2646, "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ + 2409, 2410 ] }, { - "teal": 2649, + "teal": 2651, "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ 2411, @@ -11095,7 +11095,7 @@ ] }, { - "teal": 2654, + "teal": 2652, "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ 2413, @@ -11103,31 +11103,31 @@ ] }, { - "teal": 2655, + "teal": 2653, "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ - 2415, - 2416 + 2415 ] }, { - "teal": 2656, + "teal": 2654, "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ - 2417 + 2416, + 2417, + 2418 ] }, { - "teal": 2657, - "source": "examples/reti/validatorRegistry.algo.ts:762", + "teal": 2661, + "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2418, 2419, 2420 ] }, { - "teal": 2664, + "teal": 2662, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ 2421, @@ -11135,7 +11135,7 @@ ] }, { - "teal": 2665, + "teal": 2663, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ 2423, @@ -11143,185 +11143,185 @@ ] }, { - "teal": 2666, + "teal": 2664, + "source": "examples/reti/validatorRegistry.algo.ts:768", + "pc": [ + 2425 + ] + }, + { + "teal": 2665, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2425, 2426 ] }, + { + "teal": 2666, + "source": "examples/reti/validatorRegistry.algo.ts:768", + "pc": [ + 2427, + 2428 + ] + }, { "teal": 2667, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2427 + 2429 ] }, { "teal": 2668, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2428 + 2430 ] }, { "teal": 2669, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2429, - 2430 + 2431 ] }, { "teal": 2670, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2431 + 2432, + 2433 ] }, { "teal": 2671, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2432 + 2434 ] }, { "teal": 2672, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2433 + 2435 ] }, { "teal": 2673, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2434, - 2435 + 2436, + 2437 ] }, { "teal": 2674, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2436 + 2438 ] }, { "teal": 2675, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2437 + 2439 ] }, { "teal": 2676, "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2438, - 2439 + 2440, + 2441, + 2442, + 2443 ] }, { "teal": 2677, - "source": "examples/reti/validatorRegistry.algo.ts:768", + "source": "examples/reti/validatorRegistry.algo.ts:767", "pc": [ - 2440 + 2444 ] }, { "teal": 2678, - "source": "examples/reti/validatorRegistry.algo.ts:768", + "source": "examples/reti/validatorRegistry.algo.ts:767", "pc": [ - 2441 + 2445 ] }, { "teal": 2679, - "source": "examples/reti/validatorRegistry.algo.ts:768", + "source": "examples/reti/validatorRegistry.algo.ts:769", "pc": [ - 2442, - 2443, - 2444, - 2445 + 2446, + 2447 ] }, { "teal": 2680, "source": "examples/reti/validatorRegistry.algo.ts:767", "pc": [ - 2446 + 2448 ] }, { "teal": 2681, "source": "examples/reti/validatorRegistry.algo.ts:767", "pc": [ - 2447 - ] - }, - { - "teal": 2682, - "source": "examples/reti/validatorRegistry.algo.ts:769", - "pc": [ - 2448, 2449 ] }, { - "teal": 2683, + "teal": 2682, "source": "examples/reti/validatorRegistry.algo.ts:767", "pc": [ 2450 ] }, { - "teal": 2684, + "teal": 2683, "source": "examples/reti/validatorRegistry.algo.ts:767", "pc": [ 2451 ] }, { - "teal": 2685, + "teal": 2684, "source": "examples/reti/validatorRegistry.algo.ts:767", "pc": [ 2452 ] }, - { - "teal": 2686, - "source": "examples/reti/validatorRegistry.algo.ts:767", - "pc": [ - 2453 - ] - }, { "teal": 2687, "source": "examples/reti/validatorRegistry.algo.ts:767", + "errorMessage": "wideRatio failed", "pc": [ - 2454 + 2453 ] }, { - "teal": 2690, + "teal": 2688, "source": "examples/reti/validatorRegistry.algo.ts:767", - "errorMessage": "wideRatio failed", "pc": [ + 2454, 2455 ] }, { - "teal": 2691, - "source": "examples/reti/validatorRegistry.algo.ts:767", + "teal": 2692, + "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ 2456, 2457 ] }, { - "teal": 2695, + "teal": 2693, "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ 2458, @@ -11329,134 +11329,134 @@ ] }, { - "teal": 2696, + "teal": 2694, "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2460, - 2461 + 2460 ] }, { - "teal": 2697, + "teal": 2695, "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2462 + 2461 ] }, { - "teal": 2698, + "teal": 2696, "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2463 + 2462 ] }, { - "teal": 2699, + "teal": 2697, "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ + 2463, 2464 ] }, { - "teal": 2700, + "teal": 2698, "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2465, - 2466 + 2465 ] }, { - "teal": 2701, + "teal": 2699, "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2467 + 2466 ] }, { - "teal": 2702, + "teal": 2700, "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ + 2467, 2468 ] }, { - "teal": 2703, + "teal": 2701, "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2469, - 2470 + 2469 ] }, { - "teal": 2704, + "teal": 2702, "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2471 + 2470 ] }, { - "teal": 2705, + "teal": 2703, "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ + 2471, 2472 ] }, { - "teal": 2706, + "teal": 2704, "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2473, - 2474 + 2473 ] }, { - "teal": 2707, - "source": "examples/reti/validatorRegistry.algo.ts:771", + "teal": 2709, + "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ + 2474, 2475 ] }, { - "teal": 2712, + "teal": 2710, "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ - 2476, - 2477 + 2476 ] }, { - "teal": 2713, + "teal": 2711, "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ - 2478 + 2477 ] }, { - "teal": 2714, + "teal": 2712, "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ + 2478, 2479 ] }, { - "teal": 2715, + "teal": 2713, "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ 2480, - 2481 + 2481, + 2482 ] }, { - "teal": 2716, - "source": "examples/reti/validatorRegistry.algo.ts:762", + "teal": 2718, + "source": "examples/reti/validatorRegistry.algo.ts:773", "pc": [ - 2482, 2483, 2484 ] }, { - "teal": 2721, + "teal": 2719, "source": "examples/reti/validatorRegistry.algo.ts:773", "pc": [ 2485, @@ -11464,54 +11464,54 @@ ] }, { - "teal": 2722, + "teal": 2720, "source": "examples/reti/validatorRegistry.algo.ts:773", "pc": [ - 2487, - 2488 + 2487 ] }, { - "teal": 2723, + "teal": 2721, "source": "examples/reti/validatorRegistry.algo.ts:773", "pc": [ + 2488, 2489 ] }, { - "teal": 2724, + "teal": 2722, "source": "examples/reti/validatorRegistry.algo.ts:773", "pc": [ - 2490, - 2491 + 2490 ] }, { - "teal": 2725, + "teal": 2723, "source": "examples/reti/validatorRegistry.algo.ts:773", "pc": [ - 2492 + 2491 ] }, { - "teal": 2726, + "teal": 2724, "source": "examples/reti/validatorRegistry.algo.ts:773", "pc": [ + 2492, 2493 ] }, { - "teal": 2727, + "teal": 2725, "source": "examples/reti/validatorRegistry.algo.ts:773", "pc": [ - 2494, - 2495 + 2494 ] }, { - "teal": 2728, - "source": "examples/reti/validatorRegistry.algo.ts:773", + "teal": 2729, + "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ + 2495, 2496 ] }, @@ -11524,180 +11524,180 @@ ] }, { - "teal": 2735, + "teal": 2733, "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2499, - 2500 + 2499 ] }, { - "teal": 2736, - "source": "examples/reti/validatorRegistry.algo.ts:732", + "teal": 2738, + "source": "examples/reti/validatorRegistry.algo.ts:792", "pc": [ - 2501 + 2500, + 2501, + 2502 ] }, { - "teal": 2741, + "teal": 2739, "source": "examples/reti/validatorRegistry.algo.ts:792", "pc": [ - 2502, - 2503, - 2504 + 2503 ] }, { "teal": 2742, - "source": "examples/reti/validatorRegistry.algo.ts:792", + "source": "examples/reti/validatorRegistry.algo.ts:791", "pc": [ - 2505 + 2504, + 2505, + 2506 ] }, { - "teal": 2745, + "teal": 2743, "source": "examples/reti/validatorRegistry.algo.ts:791", "pc": [ - 2506, - 2507, - 2508 + 2507 ] }, { "teal": 2746, - "source": "examples/reti/validatorRegistry.algo.ts:791", + "source": "examples/reti/validatorRegistry.algo.ts:790", "pc": [ - 2509 + 2508, + 2509, + 2510 ] }, { - "teal": 2749, + "teal": 2747, "source": "examples/reti/validatorRegistry.algo.ts:790", "pc": [ - 2510, - 2511, - 2512 + 2511 ] }, { "teal": 2750, - "source": "examples/reti/validatorRegistry.algo.ts:790", + "source": "examples/reti/validatorRegistry.algo.ts:789", "pc": [ - 2513 + 2512, + 2513, + 2514 ] }, { - "teal": 2753, + "teal": 2751, "source": "examples/reti/validatorRegistry.algo.ts:789", "pc": [ - 2514, - 2515, - 2516 + 2515 ] }, { "teal": 2754, - "source": "examples/reti/validatorRegistry.algo.ts:789", + "source": "examples/reti/validatorRegistry.algo.ts:788", "pc": [ - 2517 + 2516, + 2517, + 2518 ] }, { - "teal": 2757, + "teal": 2755, "source": "examples/reti/validatorRegistry.algo.ts:788", "pc": [ - 2518, - 2519, - 2520 + 2519 ] }, { - "teal": 2758, + "teal": 2756, "source": "examples/reti/validatorRegistry.algo.ts:788", "pc": [ - 2521 + 2520 ] }, { - "teal": 2759, + "teal": 2757, "source": "examples/reti/validatorRegistry.algo.ts:788", "pc": [ - 2522 + 2521 ] }, { - "teal": 2760, + "teal": 2758, "source": "examples/reti/validatorRegistry.algo.ts:788", "pc": [ - 2523 + 2522 ] }, { "teal": 2761, "source": "examples/reti/validatorRegistry.algo.ts:788", + "errorMessage": "argument 4 (poolKey) for stakeUpdatedViaRewards must be a (uint64,uint64,uint64)", "pc": [ - 2524 + 2523 ] }, { "teal": 2764, - "source": "examples/reti/validatorRegistry.algo.ts:788", - "errorMessage": "argument 4 (poolKey) for stakeUpdatedViaRewards must be a (uint64,uint64,uint64)", + "source": "examples/reti/validatorRegistry.algo.ts:787", "pc": [ - 2525 + 2524, + 2525, + 2526 ] }, { - "teal": 2767, + "teal": 2765, "source": "examples/reti/validatorRegistry.algo.ts:787", "pc": [ - 2526, - 2527, - 2528 + 2527 ] }, { - "teal": 2768, + "teal": 2766, "source": "examples/reti/validatorRegistry.algo.ts:787", "pc": [ - 2529 + 2528 ] }, { - "teal": 2769, + "teal": 2780, "source": "examples/reti/validatorRegistry.algo.ts:787", "pc": [ - 2530 + 2529, + 2530, + 2531 ] }, { - "teal": 2783, - "source": "examples/reti/validatorRegistry.algo.ts:787", + "teal": 2784, + "source": "examples/reti/validatorRegistry.algo.ts:794", "pc": [ - 2531, 2532, 2533 ] }, { - "teal": 2787, + "teal": 2785, "source": "examples/reti/validatorRegistry.algo.ts:794", "pc": [ 2534, - 2535 + 2535, + 2536 ] }, { - "teal": 2788, - "source": "examples/reti/validatorRegistry.algo.ts:794", + "teal": 2789, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2536, 2537, 2538 ] }, { - "teal": 2792, + "teal": 2790, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ 2539, @@ -11705,984 +11705,984 @@ ] }, { - "teal": 2793, + "teal": 2791, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ 2541, - 2542 + 2542, + 2543 ] }, { - "teal": 2794, + "teal": 2792, + "source": "examples/reti/validatorRegistry.algo.ts:797", + "pc": [ + 2544 + ] + }, + { + "teal": 2793, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2543, - 2544, 2545 ] }, { - "teal": 2795, + "teal": 2794, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ 2546 ] }, + { + "teal": 2795, + "source": "examples/reti/validatorRegistry.algo.ts:797", + "pc": [ + 2547, + 2548 + ] + }, { "teal": 2796, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2547 + 2549 ] }, { "teal": 2797, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2548 + 2550 ] }, { "teal": 2798, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2549, - 2550 + 2551, + 2552 ] }, { "teal": 2799, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2551 + 2553 ] }, { "teal": 2800, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2552 + 2554, + 2555 ] }, { "teal": 2801, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2553, - 2554 + 2556, + 2557 ] }, { "teal": 2802, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2555 + 2558, + 2559, + 2560 ] }, { "teal": 2803, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2556, - 2557 + 2561 ] }, { "teal": 2804, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2558, - 2559 + 2562 ] }, { "teal": 2805, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2560, - 2561, - 2562 + 2563 ] }, { "teal": 2806, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2563 + 2564, + 2565 ] }, { "teal": 2807, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2564 + 2566 ] }, { "teal": 2808, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2565 + 2567 ] }, { "teal": 2809, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2566, - 2567 + 2568, + 2569 ] }, { "teal": 2810, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2568 + 2570 ] }, { "teal": 2811, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2569 + 2571 ] }, { "teal": 2812, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2570, - 2571 + 2572 ] }, { "teal": 2813, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2572 + 2573, + 2574 ] }, { "teal": 2814, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2573 + 2575, + 2576, + 2577 ] }, { "teal": 2815, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2574 + 2578 ] }, { "teal": 2816, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2575, - 2576 + 2579 ] }, { "teal": 2817, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2577, - 2578, - 2579 + 2580 ] }, { "teal": 2818, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2580 + 2581, + 2582 ] }, { "teal": 2819, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2581 + 2583 ] }, { "teal": 2820, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2582 + 2584 ] }, { "teal": 2821, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2583, - 2584 + 2585, + 2586 ] }, { "teal": 2822, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2585 + 2587 ] }, { "teal": 2823, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2586 + 2588 ] }, { "teal": 2824, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2587, - 2588 + 2589 ] }, { "teal": 2825, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2589 + 2590, + 2591 ] }, { "teal": 2826, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2590 + 2592, + 2593, + 2594 ] }, { "teal": 2827, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2591 + 2595 ] }, { "teal": 2828, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2592, - 2593 + 2596 ] }, { "teal": 2829, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2594, - 2595, - 2596 + 2597 ] }, { "teal": 2830, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2597 + 2598, + 2599 ] }, { "teal": 2831, "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2598 + 2600 ] }, { - "teal": 2832, - "source": "examples/reti/validatorRegistry.algo.ts:797", + "teal": 2835, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2599 + 2601, + 2602 ] }, { - "teal": 2833, - "source": "examples/reti/validatorRegistry.algo.ts:797", + "teal": 2836, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2600, - 2601 + 2603 ] }, { - "teal": 2834, - "source": "examples/reti/validatorRegistry.algo.ts:797", + "teal": 2837, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2602 + 2604 ] }, { "teal": 2838, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2603, - 2604 + 2605 ] }, { "teal": 2839, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2605 + 2606, + 2607 ] }, { "teal": 2840, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2606 + 2608, + 2609, + 2610 ] }, { "teal": 2841, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2607 + 2611 ] }, { "teal": 2842, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2608, - 2609 + 2612 ] }, { "teal": 2843, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2610, - 2611, - 2612 + 2613 ] }, { "teal": 2844, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2613 + 2614, + 2615 ] }, { "teal": 2845, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2614 + 2616 ] }, { "teal": 2846, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2615 + 2617 ] }, { "teal": 2847, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2616, - 2617 + 2618, + 2619 ] }, { "teal": 2848, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2618 + 2620 ] }, { "teal": 2849, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2619 + 2621 ] }, { "teal": 2850, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2620, - 2621 + 2622 ] }, { "teal": 2851, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2622 + 2623, + 2624 ] }, { "teal": 2852, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2623 + 2625, + 2626, + 2627 ] }, { "teal": 2853, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2624 + 2628 ] }, { "teal": 2854, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2625, - 2626 + 2629 ] }, { "teal": 2855, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2627, - 2628, - 2629 + 2630 ] }, { "teal": 2856, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2630 + 2631, + 2632 ] }, { "teal": 2857, "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2631 + 2633 ] }, { - "teal": 2858, - "source": "examples/reti/validatorRegistry.algo.ts:798", + "teal": 2861, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2632 + 2634, + 2635 ] }, { - "teal": 2859, - "source": "examples/reti/validatorRegistry.algo.ts:798", + "teal": 2862, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2633, - 2634 + 2636 ] }, { - "teal": 2860, - "source": "examples/reti/validatorRegistry.algo.ts:798", + "teal": 2863, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2635 + 2637 ] }, { "teal": 2864, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2636, - 2637 + 2638 ] }, { "teal": 2865, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2638 + 2639, + 2640 ] }, { "teal": 2866, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2639 + 2641, + 2642, + 2643 ] }, { "teal": 2867, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2640 + 2644 ] }, { "teal": 2868, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2641, - 2642 + 2645 ] }, { "teal": 2869, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2643, - 2644, - 2645 + 2646 ] }, { "teal": 2870, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2646 + 2647, + 2648 ] }, { "teal": 2871, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2647 + 2649 ] }, { "teal": 2872, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2648 + 2650 ] }, { "teal": 2873, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2649, - 2650 + 2651, + 2652 ] }, { "teal": 2874, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2651 + 2653 ] }, { "teal": 2875, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2652 + 2654 ] }, { "teal": 2876, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2653, - 2654 + 2655 ] }, { "teal": 2877, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2655 + 2656, + 2657 ] }, { "teal": 2878, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2656 + 2658, + 2659, + 2660 ] }, { "teal": 2879, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2657 + 2661 ] }, { "teal": 2880, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2658, - 2659 + 2662 ] }, { "teal": 2881, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2660, - 2661, - 2662 + 2663 ] }, { "teal": 2882, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2663 + 2664, + 2665 ] }, { "teal": 2883, "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2664 + 2666 ] }, { - "teal": 2884, - "source": "examples/reti/validatorRegistry.algo.ts:799", + "teal": 2887, + "source": "examples/reti/validatorRegistry.algo.ts:801", "pc": [ - 2665 + 2667, + 2668 ] }, { - "teal": 2885, - "source": "examples/reti/validatorRegistry.algo.ts:799", + "teal": 2888, + "source": "examples/reti/validatorRegistry.algo.ts:801", "pc": [ - 2666, - 2667 + 2669 ] }, { - "teal": 2886, - "source": "examples/reti/validatorRegistry.algo.ts:799", + "teal": 2889, + "source": "examples/reti/validatorRegistry.algo.ts:801", "pc": [ - 2668 + 2670, + 2671 ] }, { "teal": 2890, "source": "examples/reti/validatorRegistry.algo.ts:801", "pc": [ - 2669, - 2670 + 2672 ] }, { "teal": 2891, "source": "examples/reti/validatorRegistry.algo.ts:801", "pc": [ - 2671 + 2673, + 2674 ] }, { "teal": 2892, "source": "examples/reti/validatorRegistry.algo.ts:801", "pc": [ - 2672, - 2673 + 2675 ] }, { "teal": 2893, "source": "examples/reti/validatorRegistry.algo.ts:801", "pc": [ - 2674 + 2676 ] }, { - "teal": 2894, - "source": "examples/reti/validatorRegistry.algo.ts:801", + "teal": 2897, + "source": "examples/reti/validatorRegistry.algo.ts:804", "pc": [ - 2675, - 2676 + 2677, + 2678 ] }, { - "teal": 2895, - "source": "examples/reti/validatorRegistry.algo.ts:801", + "teal": 2898, + "source": "examples/reti/validatorRegistry.algo.ts:804", "pc": [ - 2677 + 2679, + 2680, + 2681 ] }, { - "teal": 2896, - "source": "examples/reti/validatorRegistry.algo.ts:801", + "teal": 2899, + "source": "examples/reti/validatorRegistry.algo.ts:804", "pc": [ - 2678 + 2682 ] }, { "teal": 2900, "source": "examples/reti/validatorRegistry.algo.ts:804", "pc": [ - 2679, - 2680 + 2683, + 2684, + 2685 ] }, { "teal": 2901, - "source": "examples/reti/validatorRegistry.algo.ts:804", - "pc": [ - 2681, - 2682, - 2683 - ] - }, - { - "teal": 2902, - "source": "examples/reti/validatorRegistry.algo.ts:804", + "source": "examples/reti/validatorRegistry.algo.ts:787", "pc": [ - 2684 + 2686 ] }, { - "teal": 2903, - "source": "examples/reti/validatorRegistry.algo.ts:804", + "teal": 2906, + "source": "examples/reti/validatorRegistry.algo.ts:834", "pc": [ - 2685, - 2686, - 2687 + 2687, + 2688, + 2689 ] }, { - "teal": 2904, - "source": "examples/reti/validatorRegistry.algo.ts:787", + "teal": 2907, + "source": "examples/reti/validatorRegistry.algo.ts:834", "pc": [ - 2688 + 2690 ] }, { - "teal": 2909, + "teal": 2908, "source": "examples/reti/validatorRegistry.algo.ts:834", "pc": [ - 2689, - 2690, 2691 ] }, { - "teal": 2910, + "teal": 2909, "source": "examples/reti/validatorRegistry.algo.ts:834", "pc": [ 2692 ] }, { - "teal": 2911, + "teal": 2910, "source": "examples/reti/validatorRegistry.algo.ts:834", "pc": [ 2693 ] }, { - "teal": 2912, + "teal": 2913, "source": "examples/reti/validatorRegistry.algo.ts:834", + "errorMessage": "argument 0 (stakerRemoved) for stakeRemoved must be a bool", "pc": [ 2694 ] }, { - "teal": 2913, + "teal": 2914, "source": "examples/reti/validatorRegistry.algo.ts:834", "pc": [ 2695 ] }, { - "teal": 2916, + "teal": 2915, "source": "examples/reti/validatorRegistry.algo.ts:834", - "errorMessage": "argument 0 (stakerRemoved) for stakeRemoved must be a bool", "pc": [ 2696 ] }, - { - "teal": 2917, - "source": "examples/reti/validatorRegistry.algo.ts:834", - "pc": [ - 2697 - ] - }, { "teal": 2918, - "source": "examples/reti/validatorRegistry.algo.ts:834", + "source": "examples/reti/validatorRegistry.algo.ts:833", "pc": [ - 2698 + 2697, + 2698, + 2699 ] }, { - "teal": 2921, + "teal": 2919, "source": "examples/reti/validatorRegistry.algo.ts:833", "pc": [ - 2699, - 2700, - 2701 + 2700 ] }, { "teal": 2922, - "source": "examples/reti/validatorRegistry.algo.ts:833", + "source": "examples/reti/validatorRegistry.algo.ts:832", "pc": [ - 2702 + 2701, + 2702, + 2703 ] }, { - "teal": 2925, + "teal": 2923, "source": "examples/reti/validatorRegistry.algo.ts:832", "pc": [ - 2703, - 2704, - 2705 + 2704 ] }, { "teal": 2926, - "source": "examples/reti/validatorRegistry.algo.ts:832", + "source": "examples/reti/validatorRegistry.algo.ts:831", "pc": [ - 2706 + 2705, + 2706, + 2707 ] }, { - "teal": 2929, + "teal": 2927, "source": "examples/reti/validatorRegistry.algo.ts:831", "pc": [ - 2707, - 2708, - 2709 + 2708 ] }, { - "teal": 2930, + "teal": 2928, "source": "examples/reti/validatorRegistry.algo.ts:831", "pc": [ - 2710 + 2709 ] }, { - "teal": 2931, + "teal": 2929, "source": "examples/reti/validatorRegistry.algo.ts:831", "pc": [ + 2710, 2711 ] }, { - "teal": 2932, + "teal": 2930, "source": "examples/reti/validatorRegistry.algo.ts:831", "pc": [ - 2712, - 2713 + 2712 ] }, { "teal": 2933, "source": "examples/reti/validatorRegistry.algo.ts:831", + "errorMessage": "argument 3 (staker) for stakeRemoved must be a address", "pc": [ - 2714 + 2713 ] }, { "teal": 2936, - "source": "examples/reti/validatorRegistry.algo.ts:831", - "errorMessage": "argument 3 (staker) for stakeRemoved must be a address", + "source": "examples/reti/validatorRegistry.algo.ts:830", "pc": [ - 2715 + 2714, + 2715, + 2716 ] }, { - "teal": 2939, + "teal": 2937, "source": "examples/reti/validatorRegistry.algo.ts:830", "pc": [ - 2716, - 2717, - 2718 + 2717 ] }, { - "teal": 2940, + "teal": 2938, "source": "examples/reti/validatorRegistry.algo.ts:830", "pc": [ - 2719 + 2718 ] }, { - "teal": 2941, + "teal": 2939, "source": "examples/reti/validatorRegistry.algo.ts:830", "pc": [ - 2720 + 2719 ] }, { - "teal": 2942, + "teal": 2940, "source": "examples/reti/validatorRegistry.algo.ts:830", "pc": [ - 2721 + 2720 ] }, { "teal": 2943, "source": "examples/reti/validatorRegistry.algo.ts:830", + "errorMessage": "argument 4 (poolKey) for stakeRemoved must be a (uint64,uint64,uint64)", "pc": [ - 2722 + 2721 ] }, { "teal": 2946, - "source": "examples/reti/validatorRegistry.algo.ts:830", - "errorMessage": "argument 4 (poolKey) for stakeRemoved must be a (uint64,uint64,uint64)", + "source": "examples/reti/validatorRegistry.algo.ts:829", "pc": [ - 2723 + 2722, + 2723, + 2724 ] }, { - "teal": 2949, + "teal": 2947, "source": "examples/reti/validatorRegistry.algo.ts:829", "pc": [ - 2724, - 2725, - 2726 + 2725 ] }, { - "teal": 2950, + "teal": 2948, "source": "examples/reti/validatorRegistry.algo.ts:829", "pc": [ - 2727 + 2726 ] }, { - "teal": 2951, + "teal": 2963, "source": "examples/reti/validatorRegistry.algo.ts:829", "pc": [ - 2728 + 2727, + 2728, + 2729 ] }, { "teal": 2966, "source": "examples/reti/validatorRegistry.algo.ts:829", "pc": [ - 2729, - 2730, - 2731 + 2730 ] }, { - "teal": 2969, + "teal": 2967, "source": "examples/reti/validatorRegistry.algo.ts:829", "pc": [ + 2731, 2732 ] }, { - "teal": 2970, - "source": "examples/reti/validatorRegistry.algo.ts:829", + "teal": 2972, + "source": "examples/reti/validatorRegistry.algo.ts:836", "pc": [ 2733, 2734 ] }, { - "teal": 2975, + "teal": 2973, "source": "examples/reti/validatorRegistry.algo.ts:836", "pc": [ 2735, @@ -12690,38 +12690,38 @@ ] }, { - "teal": 2976, + "teal": 2974, "source": "examples/reti/validatorRegistry.algo.ts:836", "pc": [ - 2737, - 2738 + 2737 ] }, { - "teal": 2977, + "teal": 2975, "source": "examples/reti/validatorRegistry.algo.ts:836", "pc": [ - 2739 + 2738, + 2739, + 2740 ] }, { - "teal": 2978, - "source": "examples/reti/validatorRegistry.algo.ts:836", + "teal": 2980, + "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ - 2740, - 2741, - 2742 + 2741 ] }, { - "teal": 2983, + "teal": 2981, "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ + 2742, 2743 ] }, { - "teal": 2984, + "teal": 2982, "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ 2744, @@ -12729,22 +12729,22 @@ ] }, { - "teal": 2985, + "teal": 2983, "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ - 2746, - 2747 + 2746 ] }, { - "teal": 2986, + "teal": 2984, "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ + 2747, 2748 ] }, { - "teal": 2987, + "teal": 2985, "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ 2749, @@ -12752,22 +12752,22 @@ ] }, { - "teal": 2988, + "teal": 2986, "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ - 2751, - 2752 + 2751 ] }, { - "teal": 2989, + "teal": 2987, "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ + 2752, 2753 ] }, { - "teal": 2990, + "teal": 2988, "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ 2754, @@ -12775,7 +12775,7 @@ ] }, { - "teal": 2991, + "teal": 2989, "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ 2756, @@ -12783,7 +12783,7 @@ ] }, { - "teal": 2992, + "teal": 2990, "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ 2758, @@ -12791,114 +12791,114 @@ ] }, { - "teal": 2993, + "teal": 2991, "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ - 2760, - 2761 + 2760 ] }, { - "teal": 2994, - "source": "examples/reti/validatorRegistry.algo.ts:837", + "teal": 2996, + "source": "examples/reti/validatorRegistry.algo.ts:839", "pc": [ + 2761, 2762 ] }, { - "teal": 2999, + "teal": 2997, "source": "examples/reti/validatorRegistry.algo.ts:839", "pc": [ 2763, - 2764 + 2764, + 2765 ] }, { - "teal": 3000, - "source": "examples/reti/validatorRegistry.algo.ts:839", + "teal": 3001, + "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2765, 2766, 2767 ] }, { - "teal": 3004, + "teal": 3002, "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2768, - 2769 + 2768 ] }, { - "teal": 3005, + "teal": 3003, "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2770 + 2769 ] }, { - "teal": 3006, + "teal": 3004, "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2771 + 2770 ] }, { - "teal": 3007, + "teal": 3005, "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2772 + 2771, + 2772, + 2773 ] }, { - "teal": 3008, + "teal": 3006, "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2773, 2774, 2775 ] }, { - "teal": 3009, + "teal": 3007, "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2776, - 2777 + 2776 ] }, { - "teal": 3010, + "teal": 3008, "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2778 + 2777 ] }, { - "teal": 3011, + "teal": 3009, "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2779 + 2778 ] }, { - "teal": 3012, + "teal": 3013, "source": "examples/reti/validatorRegistry.algo.ts:843", + "errorMessage": "should only be called if algo or reward was removed", "pc": [ - 2780 + 2779 ] }, { - "teal": 3016, - "source": "examples/reti/validatorRegistry.algo.ts:843", - "errorMessage": "should only be called if algo or reward was removed", + "teal": 3017, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ + 2780, 2781 ] }, { - "teal": 3020, + "teal": 3018, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ 2782, @@ -12906,1025 +12906,1025 @@ ] }, { - "teal": 3021, + "teal": 3019, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ 2784, - 2785 + 2785, + 2786 ] }, { - "teal": 3022, + "teal": 3020, + "source": "examples/reti/validatorRegistry.algo.ts:846", + "pc": [ + 2787 + ] + }, + { + "teal": 3021, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2786, - 2787, 2788 ] }, { - "teal": 3023, + "teal": 3022, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ 2789 ] }, + { + "teal": 3023, + "source": "examples/reti/validatorRegistry.algo.ts:846", + "pc": [ + 2790, + 2791 + ] + }, { "teal": 3024, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2790 + 2792 ] }, { "teal": 3025, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2791 + 2793 ] }, { "teal": 3026, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2792, - 2793 + 2794, + 2795 ] }, { "teal": 3027, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2794 + 2796 ] }, { "teal": 3028, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2795 + 2797, + 2798 ] }, { "teal": 3029, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2796, - 2797 + 2799, + 2800 ] }, { "teal": 3030, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2798 + 2801, + 2802, + 2803 ] }, { "teal": 3031, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2799, - 2800 + 2804 ] }, { "teal": 3032, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2801, - 2802 + 2805 ] }, { "teal": 3033, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2803, - 2804, - 2805 + 2806 ] }, { "teal": 3034, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2806 + 2807, + 2808 ] }, { "teal": 3035, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2807 + 2809 ] }, { "teal": 3036, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2808 + 2810 ] }, { "teal": 3037, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2809, - 2810 + 2811, + 2812 ] }, { "teal": 3038, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2811 + 2813 ] }, { "teal": 3039, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2812 + 2814 ] }, { "teal": 3040, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2813, - 2814 + 2815 ] }, { "teal": 3041, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2815 + 2816, + 2817 ] }, { "teal": 3042, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2816 + 2818, + 2819, + 2820 ] }, { "teal": 3043, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2817 + 2821 ] }, { "teal": 3044, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2818, - 2819 + 2822 ] }, { "teal": 3045, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2820, - 2821, - 2822 + 2823 ] }, { "teal": 3046, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2823 + 2824, + 2825 ] }, { "teal": 3047, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2824 + 2826 ] }, { "teal": 3048, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2825 + 2827 ] }, { "teal": 3049, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2826, - 2827 + 2828, + 2829 ] }, { "teal": 3050, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2828 + 2830 ] }, { "teal": 3051, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2829 + 2831 ] }, { "teal": 3052, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2830, - 2831 + 2832 ] }, { "teal": 3053, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2832 + 2833, + 2834 ] }, { "teal": 3054, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2833 + 2835, + 2836, + 2837 ] }, { "teal": 3055, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2834 + 2838 ] }, { "teal": 3056, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2835, - 2836 + 2839 ] }, { "teal": 3057, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2837, - 2838, - 2839 + 2840 ] }, { "teal": 3058, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2840 + 2841, + 2842 ] }, { "teal": 3059, "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2841 + 2843 ] }, { - "teal": 3060, - "source": "examples/reti/validatorRegistry.algo.ts:846", + "teal": 3063, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2842 + 2844, + 2845 ] }, { - "teal": 3061, - "source": "examples/reti/validatorRegistry.algo.ts:846", + "teal": 3064, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2843, - 2844 + 2846 ] }, { - "teal": 3062, - "source": "examples/reti/validatorRegistry.algo.ts:846", + "teal": 3065, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2845 + 2847 ] }, { "teal": 3066, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2846, - 2847 + 2848 ] }, { "teal": 3067, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2848 + 2849, + 2850 ] }, { "teal": 3068, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2849 + 2851, + 2852, + 2853 ] }, { "teal": 3069, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2850 + 2854 ] }, { "teal": 3070, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2851, - 2852 + 2855 ] }, { "teal": 3071, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2853, - 2854, - 2855 + 2856 ] }, { "teal": 3072, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2856 + 2857, + 2858 ] }, { "teal": 3073, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2857 + 2859 ] }, { "teal": 3074, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2858 + 2860 ] }, { "teal": 3075, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2859, - 2860 + 2861, + 2862 ] }, { "teal": 3076, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2861 + 2863 ] }, { "teal": 3077, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2862 + 2864 ] }, { "teal": 3078, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2863, - 2864 + 2865 ] }, { "teal": 3079, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2865 + 2866, + 2867 ] }, { "teal": 3080, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2866 + 2868, + 2869, + 2870 ] }, { "teal": 3081, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2867 + 2871 ] }, { "teal": 3082, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2868, - 2869 + 2872 ] }, { "teal": 3083, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2870, - 2871, - 2872 + 2873 ] }, { "teal": 3084, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2873 + 2874, + 2875 ] }, { "teal": 3085, "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 2874 + 2876 ] }, { - "teal": 3086, - "source": "examples/reti/validatorRegistry.algo.ts:847", + "teal": 3089, + "source": "examples/reti/validatorRegistry.algo.ts:848", "pc": [ - 2875 + 2877, + 2878 ] }, { - "teal": 3087, - "source": "examples/reti/validatorRegistry.algo.ts:847", + "teal": 3090, + "source": "examples/reti/validatorRegistry.algo.ts:848", "pc": [ - 2876, - 2877 + 2879 ] }, { - "teal": 3088, - "source": "examples/reti/validatorRegistry.algo.ts:847", + "teal": 3091, + "source": "examples/reti/validatorRegistry.algo.ts:848", "pc": [ - 2878 + 2880, + 2881 ] }, { "teal": 3092, "source": "examples/reti/validatorRegistry.algo.ts:848", "pc": [ - 2879, - 2880 + 2882 ] }, { "teal": 3093, "source": "examples/reti/validatorRegistry.algo.ts:848", "pc": [ - 2881 + 2883, + 2884 ] }, { "teal": 3094, "source": "examples/reti/validatorRegistry.algo.ts:848", "pc": [ - 2882, - 2883 + 2885 ] }, { "teal": 3095, "source": "examples/reti/validatorRegistry.algo.ts:848", "pc": [ - 2884 + 2886 ] }, { - "teal": 3096, - "source": "examples/reti/validatorRegistry.algo.ts:848", + "teal": 3100, + "source": "examples/reti/validatorRegistry.algo.ts:850", "pc": [ - 2885, - 2886 + 2887, + 2888 ] }, { - "teal": 3097, - "source": "examples/reti/validatorRegistry.algo.ts:848", + "teal": 3101, + "source": "examples/reti/validatorRegistry.algo.ts:850", "pc": [ - 2887 + 2889 ] }, { - "teal": 3098, - "source": "examples/reti/validatorRegistry.algo.ts:848", + "teal": 3102, + "source": "examples/reti/validatorRegistry.algo.ts:850", "pc": [ - 2888 + 2890 ] }, { "teal": 3103, "source": "examples/reti/validatorRegistry.algo.ts:850", "pc": [ - 2889, - 2890 + 2891, + 2892, + 2893 ] }, { - "teal": 3104, - "source": "examples/reti/validatorRegistry.algo.ts:850", + "teal": 3108, + "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 2891 + 2894, + 2895 ] }, { - "teal": 3105, - "source": "examples/reti/validatorRegistry.algo.ts:850", + "teal": 3109, + "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 2892 + 2896 ] }, { - "teal": 3106, - "source": "examples/reti/validatorRegistry.algo.ts:850", + "teal": 3110, + "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 2893, - 2894, - 2895 + 2897 ] }, { "teal": 3111, "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 2896, - 2897 + 2898, + 2899 ] }, { "teal": 3112, "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 2898 + 2900, + 2901, + 2902 ] }, { "teal": 3113, "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 2899 + 2903 ] }, { "teal": 3114, "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 2900, - 2901 + 2904 ] }, { "teal": 3115, "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 2902, - 2903, - 2904 + 2905 ] }, { "teal": 3116, "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 2905 + 2906, + 2907 ] }, { "teal": 3117, "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 2906 + 2908 ] }, { "teal": 3118, "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 2907 + 2909 ] }, { "teal": 3119, "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 2908, - 2909 + 2910, + 2911 ] }, { - "teal": 3120, - "source": "examples/reti/validatorRegistry.algo.ts:851", + "teal": 3123, + "source": "examples/reti/validatorRegistry.algo.ts:852", "pc": [ - 2910 + 2912, + 2913 ] }, { - "teal": 3121, - "source": "examples/reti/validatorRegistry.algo.ts:851", + "teal": 3124, + "source": "examples/reti/validatorRegistry.algo.ts:852", "pc": [ - 2911 + 2914 ] }, { - "teal": 3122, - "source": "examples/reti/validatorRegistry.algo.ts:851", + "teal": 3125, + "source": "examples/reti/validatorRegistry.algo.ts:852", "pc": [ - 2912, - 2913 + 2915 ] }, { - "teal": 3126, + "teal": 3128, "source": "examples/reti/validatorRegistry.algo.ts:852", + "errorMessage": "rewardRemoved can't be set if validator doesn't have reward token!", "pc": [ - 2914, - 2915 + 2916 ] }, { - "teal": 3127, - "source": "examples/reti/validatorRegistry.algo.ts:852", + "teal": 3135, + "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2916 + 2917, + 2918 ] }, { - "teal": 3128, - "source": "examples/reti/validatorRegistry.algo.ts:852", + "teal": 3136, + "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2917 + 2919 ] }, { - "teal": 3131, - "source": "examples/reti/validatorRegistry.algo.ts:852", - "errorMessage": "rewardRemoved can't be set if validator doesn't have reward token!", + "teal": 3137, + "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2918 + 2920 ] }, { "teal": 3138, "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2919, - 2920 + 2921, + 2922 ] }, { "teal": 3139, "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2921 + 2923, + 2924, + 2925 ] }, { "teal": 3140, "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2922 + 2926 ] }, { "teal": 3141, "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2923, - 2924 + 2927 ] }, { "teal": 3142, "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2925, - 2926, - 2927 + 2928 ] }, { "teal": 3143, "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2928 + 2929, + 2930 ] }, { "teal": 3144, "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2929 + 2931 ] }, { "teal": 3145, "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2930 + 2932 ] }, { "teal": 3146, "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2931, - 2932 + 2933, + 2934 ] }, { "teal": 3147, "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 2933 + 2935 ] }, { - "teal": 3148, - "source": "examples/reti/validatorRegistry.algo.ts:854", + "teal": 3150, + "source": "examples/reti/validatorRegistry.algo.ts:853", + "errorMessage": "reward being removed must be covered by hold back amount", "pc": [ - 2934 + 2936 ] }, { - "teal": 3149, - "source": "examples/reti/validatorRegistry.algo.ts:854", + "teal": 3154, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2935, - 2936 + 2937, + 2938 ] }, { - "teal": 3150, - "source": "examples/reti/validatorRegistry.algo.ts:854", + "teal": 3155, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2937 + 2939 ] }, { - "teal": 3153, - "source": "examples/reti/validatorRegistry.algo.ts:853", - "errorMessage": "reward being removed must be covered by hold back amount", + "teal": 3156, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2938 + 2940 ] }, { "teal": 3157, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2939, - 2940 + 2941 ] }, { "teal": 3158, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2941 + 2942, + 2943 ] }, { "teal": 3159, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2942 + 2944, + 2945, + 2946 ] }, { "teal": 3160, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2943 + 2947 ] }, { "teal": 3161, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2944, - 2945 + 2948 ] }, { "teal": 3162, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2946, - 2947, - 2948 + 2949 ] }, { "teal": 3163, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2949 + 2950, + 2951 ] }, { "teal": 3164, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2950 + 2952 ] }, { "teal": 3165, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2951 + 2953 ] }, { "teal": 3166, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2952, - 2953 + 2954, + 2955 ] }, { "teal": 3167, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2954 + 2956 ] }, { "teal": 3168, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2955 + 2957 ] }, { "teal": 3169, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2956, - 2957 + 2958 ] }, { "teal": 3170, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2958 + 2959, + 2960 ] }, { "teal": 3171, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2959 + 2961, + 2962, + 2963 ] }, { "teal": 3172, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2960 + 2964 ] }, { "teal": 3173, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2961, - 2962 - ] - }, - { - "teal": 3174, - "source": "examples/reti/validatorRegistry.algo.ts:859", - "pc": [ - 2963, - 2964, 2965 ] }, { - "teal": 3175, + "teal": 3174, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ 2966 ] }, { - "teal": 3176, - "source": "examples/reti/validatorRegistry.algo.ts:859", - "pc": [ - 2967 - ] - }, - { - "teal": 3177, + "teal": 3175, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ + 2967, 2968 ] }, { - "teal": 3178, + "teal": 3176, "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 2969, - 2970 + 2969 ] }, { - "teal": 3179, - "source": "examples/reti/validatorRegistry.algo.ts:859", + "teal": 3181, + "source": "examples/reti/validatorRegistry.algo.ts:864", "pc": [ + 2970, 2971 ] }, { - "teal": 3184, + "teal": 3182, "source": "examples/reti/validatorRegistry.algo.ts:864", "pc": [ 2972, - 2973 + 2973, + 2974 ] }, { - "teal": 3185, + "teal": 3183, "source": "examples/reti/validatorRegistry.algo.ts:864", "pc": [ - 2974, - 2975, - 2976 + 2975 ] }, { - "teal": 3186, + "teal": 3184, "source": "examples/reti/validatorRegistry.algo.ts:864", "pc": [ - 2977 + 2976 ] }, { - "teal": 3187, + "teal": 3185, "source": "examples/reti/validatorRegistry.algo.ts:864", "pc": [ - 2978 + 2977 ] }, { - "teal": 3188, + "teal": 3186, "source": "examples/reti/validatorRegistry.algo.ts:864", "pc": [ - 2979 + 2978, + 2979, + 2980 ] }, { - "teal": 3189, - "source": "examples/reti/validatorRegistry.algo.ts:864", + "teal": 3194, + "source": "examples/reti/validatorRegistry.algo.ts:865", "pc": [ - 2980, - 2981, - 2982 + 2981 ] }, { - "teal": 3197, + "teal": 3195, "source": "examples/reti/validatorRegistry.algo.ts:865", "pc": [ + 2982, 2983 ] }, { - "teal": 3198, + "teal": 3196, "source": "examples/reti/validatorRegistry.algo.ts:865", "pc": [ 2984, @@ -13932,7 +13932,7 @@ ] }, { - "teal": 3199, + "teal": 3197, "source": "examples/reti/validatorRegistry.algo.ts:865", "pc": [ 2986, @@ -13940,7 +13940,7 @@ ] }, { - "teal": 3200, + "teal": 3198, "source": "examples/reti/validatorRegistry.algo.ts:865", "pc": [ 2988, @@ -13948,105 +13948,105 @@ ] }, { - "teal": 3201, - "source": "examples/reti/validatorRegistry.algo.ts:865", + "teal": 3202, + "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ 2990, 2991 ] }, { - "teal": 3205, + "teal": 3203, "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 2992, - 2993 + 2992 ] }, { - "teal": 3206, + "teal": 3204, "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 2994 + 2993 ] }, { - "teal": 3207, + "teal": 3205, "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ + 2994, 2995 ] }, { - "teal": 3208, + "teal": 3206, "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ 2996, - 2997 + 2997, + 2998 ] }, { - "teal": 3209, + "teal": 3207, "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 2998, - 2999, - 3000 + 2999 ] }, { - "teal": 3210, + "teal": 3208, "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 3001 + 3000 ] }, { - "teal": 3211, + "teal": 3209, "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 3002 + 3001 ] }, { - "teal": 3212, + "teal": 3210, "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ + 3002, 3003 ] }, { - "teal": 3213, + "teal": 3211, "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 3004, - 3005 + 3004 ] }, { - "teal": 3214, + "teal": 3212, "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 3006 + 3005 ] }, { - "teal": 3215, + "teal": 3213, "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ + 3006, 3007 ] }, { - "teal": 3216, - "source": "examples/reti/validatorRegistry.algo.ts:866", + "teal": 3217, + "source": "examples/reti/validatorRegistry.algo.ts:867", "pc": [ 3008, 3009 ] }, { - "teal": 3220, + "teal": 3218, "source": "examples/reti/validatorRegistry.algo.ts:867", "pc": [ 3010, @@ -14054,7 +14054,7 @@ ] }, { - "teal": 3221, + "teal": 3219, "source": "examples/reti/validatorRegistry.algo.ts:867", "pc": [ 3012, @@ -14062,22 +14062,22 @@ ] }, { - "teal": 3222, + "teal": 3220, "source": "examples/reti/validatorRegistry.algo.ts:867", "pc": [ - 3014, - 3015 + 3014 ] }, { - "teal": 3223, + "teal": 3221, "source": "examples/reti/validatorRegistry.algo.ts:867", "pc": [ + 3015, 3016 ] }, { - "teal": 3224, + "teal": 3222, "source": "examples/reti/validatorRegistry.algo.ts:867", "pc": [ 3017, @@ -14085,32 +14085,32 @@ ] }, { - "teal": 3225, + "teal": 3223, "source": "examples/reti/validatorRegistry.algo.ts:867", "pc": [ - 3019, - 3020 + 3019 ] }, { - "teal": 3226, + "teal": 3224, "source": "examples/reti/validatorRegistry.algo.ts:867", "pc": [ + 3020, 3021 ] }, { "teal": 3227, - "source": "examples/reti/validatorRegistry.algo.ts:867", + "source": "examples/reti/validatorRegistry.algo.ts:865", "pc": [ - 3022, - 3023 + 3022 ] }, { - "teal": 3230, + "teal": 3228, "source": "examples/reti/validatorRegistry.algo.ts:865", "pc": [ + 3023, 3024 ] }, @@ -14118,45 +14118,45 @@ "teal": 3231, "source": "examples/reti/validatorRegistry.algo.ts:865", "pc": [ - 3025, - 3026 + 3025 ] }, { "teal": 3234, - "source": "examples/reti/validatorRegistry.algo.ts:865", + "source": "examples/reti/validatorRegistry.algo.ts:850", "pc": [ - 3027 + 3026, + 3027, + 3028 ] }, { - "teal": 3237, - "source": "examples/reti/validatorRegistry.algo.ts:850", + "teal": 3242, + "source": "examples/reti/validatorRegistry.algo.ts:892", "pc": [ - 3028, 3029, 3030 ] }, { - "teal": 3245, + "teal": 3243, "source": "examples/reti/validatorRegistry.algo.ts:892", "pc": [ 3031, - 3032 + 3032, + 3033 ] }, { - "teal": 3246, - "source": "examples/reti/validatorRegistry.algo.ts:892", + "teal": 3248, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3033, 3034, 3035 ] }, { - "teal": 3251, + "teal": 3249, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ 3036, @@ -14164,460 +14164,460 @@ ] }, { - "teal": 3252, + "teal": 3250, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ 3038, - 3039 + 3039, + 3040 ] }, { - "teal": 3253, + "teal": 3251, + "source": "examples/reti/validatorRegistry.algo.ts:894", + "pc": [ + 3041 + ] + }, + { + "teal": 3252, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3040, - 3041, 3042 ] }, { - "teal": 3254, + "teal": 3253, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ 3043 ] }, + { + "teal": 3254, + "source": "examples/reti/validatorRegistry.algo.ts:894", + "pc": [ + 3044, + 3045 + ] + }, { "teal": 3255, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3044 + 3046 ] }, { "teal": 3256, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3045 + 3047 ] }, { "teal": 3257, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3046, - 3047 + 3048 ] }, { "teal": 3258, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3048 + 3049 ] }, { "teal": 3259, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3049 + 3050, + 3051 ] }, { "teal": 3260, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3050 + 3052, + 3053 ] }, { "teal": 3261, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3051 + 3054, + 3055, + 3056 ] }, { "teal": 3262, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3052, - 3053 + 3057 ] }, { "teal": 3263, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3054, - 3055 + 3058 ] }, { "teal": 3264, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3056, - 3057, - 3058 + 3059 ] }, { "teal": 3265, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3059 + 3060, + 3061 ] }, { "teal": 3266, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3060 + 3062 ] }, { "teal": 3267, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3061 + 3063 ] }, { "teal": 3268, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3062, - 3063 + 3064 ] }, { "teal": 3269, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3064 + 3065 ] }, { "teal": 3270, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3065 + 3066, + 3067 ] }, { "teal": 3271, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3066 + 3068 ] }, { "teal": 3272, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3067 + 3069, + 3070 ] }, { "teal": 3273, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3068, - 3069 + 3071, + 3072, + 3073 ] }, { "teal": 3274, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3070 + 3074 ] }, { "teal": 3275, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3071, - 3072 + 3075 ] }, { "teal": 3276, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3073, - 3074, - 3075 + 3076 ] }, { "teal": 3277, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3076 + 3077, + 3078 ] }, { "teal": 3278, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3077 + 3079 ] }, { "teal": 3279, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3078 + 3080 ] }, { "teal": 3280, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3079, - 3080 + 3081 ] }, { "teal": 3281, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3081 + 3082 ] }, { "teal": 3282, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3082 + 3083 ] }, { "teal": 3283, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3083 + 3084, + 3085, + 3086 ] }, { "teal": 3284, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3084 + 3087 ] }, { "teal": 3285, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3085 + 3088, + 3089 ] }, { "teal": 3286, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3086, - 3087, - 3088 + 3090, + 3091, + 3092 ] }, { "teal": 3287, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3089 + 3093 ] }, { "teal": 3288, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3090, - 3091 - ] - }, - { - "teal": 3289, - "source": "examples/reti/validatorRegistry.algo.ts:894", - "pc": [ - 3092, - 3093, 3094 ] }, { - "teal": 3290, + "teal": 3289, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ 3095 ] }, { - "teal": 3291, - "source": "examples/reti/validatorRegistry.algo.ts:894", - "pc": [ - 3096 - ] - }, - { - "teal": 3292, + "teal": 3290, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ + 3096, 3097 ] }, { - "teal": 3293, + "teal": 3291, "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3098, - 3099 + 3098 ] }, { - "teal": 3294, - "source": "examples/reti/validatorRegistry.algo.ts:894", + "teal": 3299, + "source": "examples/reti/validatorRegistry.algo.ts:897", "pc": [ + 3099, 3100 ] }, { - "teal": 3302, + "teal": 3300, "source": "examples/reti/validatorRegistry.algo.ts:897", "pc": [ 3101, - 3102 + 3102, + 3103 ] }, { - "teal": 3303, + "teal": 3301, "source": "examples/reti/validatorRegistry.algo.ts:897", "pc": [ - 3103, - 3104, - 3105 + 3104 ] }, { - "teal": 3304, + "teal": 3302, "source": "examples/reti/validatorRegistry.algo.ts:897", "pc": [ - 3106 + 3105 ] }, { - "teal": 3305, - "source": "examples/reti/validatorRegistry.algo.ts:897", + "teal": 3303, + "source": "examples/reti/validatorRegistry.algo.ts:898", "pc": [ + 3106, 3107 ] }, { - "teal": 3306, + "teal": 3304, "source": "examples/reti/validatorRegistry.algo.ts:898", "pc": [ 3108, - 3109 + 3109, + 3110 ] }, { - "teal": 3307, + "teal": 3305, "source": "examples/reti/validatorRegistry.algo.ts:898", "pc": [ - 3110, - 3111, - 3112 + 3111 ] }, { - "teal": 3308, + "teal": 3306, "source": "examples/reti/validatorRegistry.algo.ts:898", "pc": [ - 3113 + 3112 ] }, { - "teal": 3309, + "teal": 3307, "source": "examples/reti/validatorRegistry.algo.ts:898", "pc": [ - 3114 + 3113 ] }, { - "teal": 3310, - "source": "examples/reti/validatorRegistry.algo.ts:898", + "teal": 3308, + "source": "examples/reti/validatorRegistry.algo.ts:899", "pc": [ + 3114, 3115 ] }, { - "teal": 3311, + "teal": 3309, "source": "examples/reti/validatorRegistry.algo.ts:899", "pc": [ 3116, - 3117 + 3117, + 3118 ] }, { - "teal": 3312, + "teal": 3310, "source": "examples/reti/validatorRegistry.algo.ts:899", "pc": [ - 3118, - 3119, - 3120 + 3119 ] }, { - "teal": 3313, + "teal": 3311, "source": "examples/reti/validatorRegistry.algo.ts:899", "pc": [ - 3121 + 3120 ] }, { - "teal": 3314, + "teal": 3312, "source": "examples/reti/validatorRegistry.algo.ts:899", "pc": [ - 3122 + 3121 ] }, { - "teal": 3315, - "source": "examples/reti/validatorRegistry.algo.ts:899", + "teal": 3313, + "source": "examples/reti/validatorRegistry.algo.ts:896", "pc": [ + 3122, 3123 ] }, { - "teal": 3316, + "teal": 3314, "source": "examples/reti/validatorRegistry.algo.ts:896", "pc": [ 3124, - 3125 + 3125, + 3126 ] }, { - "teal": 3317, + "teal": 3315, "source": "examples/reti/validatorRegistry.algo.ts:896", "pc": [ - 3126, 3127, 3128 ] }, { - "teal": 3318, - "source": "examples/reti/validatorRegistry.algo.ts:896", + "teal": 3319, + "source": "examples/reti/validatorRegistry.algo.ts:901", "pc": [ 3129, 3130 ] }, { - "teal": 3322, + "teal": 3320, "source": "examples/reti/validatorRegistry.algo.ts:901", "pc": [ 3131, @@ -14625,7 +14625,7 @@ ] }, { - "teal": 3323, + "teal": 3321, "source": "examples/reti/validatorRegistry.algo.ts:901", "pc": [ 3133, @@ -14633,37 +14633,37 @@ ] }, { - "teal": 3324, + "teal": 3322, "source": "examples/reti/validatorRegistry.algo.ts:901", "pc": [ - 3135, - 3136 + 3135 ] }, { - "teal": 3325, + "teal": 3323, "source": "examples/reti/validatorRegistry.algo.ts:901", "pc": [ - 3137 + 3136 ] }, { - "teal": 3326, + "teal": 3324, "source": "examples/reti/validatorRegistry.algo.ts:901", "pc": [ + 3137, 3138 ] }, { - "teal": 3327, - "source": "examples/reti/validatorRegistry.algo.ts:901", + "teal": 3328, + "source": "examples/reti/validatorRegistry.algo.ts:902", "pc": [ 3139, 3140 ] }, { - "teal": 3331, + "teal": 3329, "source": "examples/reti/validatorRegistry.algo.ts:902", "pc": [ 3141, @@ -14671,7 +14671,7 @@ ] }, { - "teal": 3332, + "teal": 3330, "source": "examples/reti/validatorRegistry.algo.ts:902", "pc": [ 3143, @@ -14679,633 +14679,633 @@ ] }, { - "teal": 3333, + "teal": 3331, "source": "examples/reti/validatorRegistry.algo.ts:902", "pc": [ - 3145, - 3146 + 3145 ] }, { - "teal": 3334, + "teal": 3332, "source": "examples/reti/validatorRegistry.algo.ts:902", "pc": [ - 3147 + 3146 ] }, { - "teal": 3335, + "teal": 3333, "source": "examples/reti/validatorRegistry.algo.ts:902", "pc": [ + 3147, 3148 ] }, { - "teal": 3336, - "source": "examples/reti/validatorRegistry.algo.ts:902", + "teal": 3338, + "source": "examples/reti/validatorRegistry.algo.ts:904", "pc": [ 3149, 3150 ] }, { - "teal": 3341, + "teal": 3339, "source": "examples/reti/validatorRegistry.algo.ts:904", "pc": [ 3151, - 3152 + 3152, + 3153 ] }, { - "teal": 3342, - "source": "examples/reti/validatorRegistry.algo.ts:904", + "teal": 3344, + "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3153, 3154, 3155 ] }, { - "teal": 3347, + "teal": 3345, + "source": "examples/reti/validatorRegistry.algo.ts:905", + "pc": [ + 3156 + ] + }, + { + "teal": 3346, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3156, 3157 ] }, { - "teal": 3348, + "teal": 3347, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ 3158 ] }, + { + "teal": 3348, + "source": "examples/reti/validatorRegistry.algo.ts:905", + "pc": [ + 3159, + 3160 + ] + }, { "teal": 3349, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3159 + 3161, + 3162, + 3163 ] }, { "teal": 3350, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3160 + 3164 ] }, { "teal": 3351, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3161, - 3162 + 3165 ] }, { "teal": 3352, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3163, - 3164, - 3165 + 3166 ] }, { "teal": 3353, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3166 + 3167, + 3168 ] }, { "teal": 3354, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3167 + 3169 ] }, { "teal": 3355, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3168 + 3170 ] }, { "teal": 3356, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3169, - 3170 + 3171 ] }, { "teal": 3357, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3171 + 3172 ] }, { "teal": 3358, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3172 + 3173 ] }, { "teal": 3359, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3173 + 3174 ] }, { "teal": 3360, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3174 + 3175, + 3176 ] }, { "teal": 3361, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3175 + 3177, + 3178, + 3179 ] }, { "teal": 3362, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3176 + 3180 ] }, { "teal": 3363, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3177, - 3178 - ] - }, - { - "teal": 3364, - "source": "examples/reti/validatorRegistry.algo.ts:905", - "pc": [ - 3179, - 3180, 3181 ] }, { - "teal": 3365, + "teal": 3364, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ 3182 ] }, { - "teal": 3366, - "source": "examples/reti/validatorRegistry.algo.ts:905", - "pc": [ - 3183 - ] - }, - { - "teal": 3367, + "teal": 3365, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ + 3183, 3184 ] }, { - "teal": 3368, + "teal": 3366, "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3185, - 3186 + 3185 ] }, { - "teal": 3369, - "source": "examples/reti/validatorRegistry.algo.ts:905", + "teal": 3372, + "source": "examples/reti/validatorRegistry.algo.ts:908", "pc": [ + 3186, 3187 ] }, { - "teal": 3375, + "teal": 3373, "source": "examples/reti/validatorRegistry.algo.ts:908", "pc": [ 3188, - 3189 + 3189, + 3190 ] }, { - "teal": 3376, - "source": "examples/reti/validatorRegistry.algo.ts:908", + "teal": 3378, + "source": "examples/reti/validatorRegistry.algo.ts:909", "pc": [ - 3190, 3191, 3192 ] }, { - "teal": 3381, + "teal": 3379, "source": "examples/reti/validatorRegistry.algo.ts:909", "pc": [ - 3193, - 3194 + 3193 ] }, { - "teal": 3382, + "teal": 3380, "source": "examples/reti/validatorRegistry.algo.ts:909", "pc": [ - 3195 + 3194 ] }, { - "teal": 3383, + "teal": 3381, "source": "examples/reti/validatorRegistry.algo.ts:909", "pc": [ - 3196 + 3195 ] }, { - "teal": 3384, + "teal": 3382, "source": "examples/reti/validatorRegistry.algo.ts:909", "pc": [ + 3196, 3197 ] }, { - "teal": 3385, + "teal": 3383, "source": "examples/reti/validatorRegistry.algo.ts:909", "pc": [ - 3198, - 3199 + 3198 ] }, { - "teal": 3386, + "teal": 3384, "source": "examples/reti/validatorRegistry.algo.ts:909", "pc": [ - 3200 + 3199 ] }, { - "teal": 3387, - "source": "examples/reti/validatorRegistry.algo.ts:909", + "teal": 3389, + "source": "examples/reti/validatorRegistry.algo.ts:829", "pc": [ - 3201 + 3200 ] }, { - "teal": 3392, - "source": "examples/reti/validatorRegistry.algo.ts:829", + "teal": 3394, + "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3202 + 3201 ] }, { "teal": 3397, - "source": "examples/reti/validatorRegistry.algo.ts:925", + "source": "examples/reti/validatorRegistry.algo.ts:928", "pc": [ - 3203 + 3202, + 3203, + 3204 ] }, { - "teal": 3400, + "teal": 3398, "source": "examples/reti/validatorRegistry.algo.ts:928", "pc": [ - 3204, - 3205, - 3206 + 3205 ] }, { "teal": 3401, - "source": "examples/reti/validatorRegistry.algo.ts:928", + "source": "examples/reti/validatorRegistry.algo.ts:927", "pc": [ - 3207 + 3206, + 3207, + 3208 ] }, { - "teal": 3404, + "teal": 3402, "source": "examples/reti/validatorRegistry.algo.ts:927", "pc": [ - 3208, - 3209, - 3210 + 3209 ] }, { - "teal": 3405, + "teal": 3403, "source": "examples/reti/validatorRegistry.algo.ts:927", "pc": [ - 3211 + 3210 ] }, { - "teal": 3406, + "teal": 3404, "source": "examples/reti/validatorRegistry.algo.ts:927", "pc": [ + 3211, 3212 ] }, { - "teal": 3407, + "teal": 3405, "source": "examples/reti/validatorRegistry.algo.ts:927", "pc": [ - 3213, - 3214 + 3213 ] }, { "teal": 3408, "source": "examples/reti/validatorRegistry.algo.ts:927", + "errorMessage": "argument 1 (staker) for findPoolForStaker must be a address", "pc": [ - 3215 + 3214 ] }, { "teal": 3411, - "source": "examples/reti/validatorRegistry.algo.ts:927", - "errorMessage": "argument 1 (staker) for findPoolForStaker must be a address", + "source": "examples/reti/validatorRegistry.algo.ts:926", "pc": [ - 3216 + 3215, + 3216, + 3217 ] }, { - "teal": 3414, + "teal": 3412, "source": "examples/reti/validatorRegistry.algo.ts:926", "pc": [ - 3217, - 3218, - 3219 + 3218 ] }, { "teal": 3415, - "source": "examples/reti/validatorRegistry.algo.ts:926", + "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3220 + 3219, + 3220, + 3221 ] }, { - "teal": 3418, + "teal": 3416, "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3221, - 3222, - 3223 + 3222 ] }, { - "teal": 3419, + "teal": 3417, "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3224 + 3223 ] }, { - "teal": 3420, + "teal": 3418, "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3225 + 3224 ] }, { - "teal": 3421, + "teal": 3419, "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3226 + 3225 ] }, { - "teal": 3422, + "teal": 3433, "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3227 + 3226, + 3227, + 3228 ] }, { "teal": 3436, "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3228, - 3229, - 3230 + 3229 ] }, { - "teal": 3439, + "teal": 3437, "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ + 3230, 3231 ] }, { - "teal": 3440, - "source": "examples/reti/validatorRegistry.algo.ts:925", + "teal": 3441, + "source": "examples/reti/validatorRegistry.algo.ts:930", "pc": [ - 3232, - 3233 + 3232 ] }, { - "teal": 3444, + "teal": 3442, "source": "examples/reti/validatorRegistry.algo.ts:930", "pc": [ + 3233, 3234 ] }, { - "teal": 3445, - "source": "examples/reti/validatorRegistry.algo.ts:930", + "teal": 3446, + "source": "examples/reti/validatorRegistry.algo.ts:931", "pc": [ - 3235, - 3236 + 3235 ] }, { - "teal": 3449, + "teal": 3447, "source": "examples/reti/validatorRegistry.algo.ts:931", "pc": [ + 3236, 3237 ] }, { - "teal": 3450, - "source": "examples/reti/validatorRegistry.algo.ts:931", + "teal": 3451, + "source": "examples/reti/validatorRegistry.algo.ts:939", "pc": [ 3238, 3239 ] }, { - "teal": 3454, + "teal": 3452, "source": "examples/reti/validatorRegistry.algo.ts:939", "pc": [ 3240, - 3241 + 3241, + 3242 ] }, { - "teal": 3455, + "teal": 3453, "source": "examples/reti/validatorRegistry.algo.ts:939", "pc": [ - 3242, 3243, 3244 ] }, { - "teal": 3456, - "source": "examples/reti/validatorRegistry.algo.ts:939", + "teal": 3458, + "source": "examples/reti/validatorRegistry.algo.ts:942", "pc": [ - 3245, - 3246 + 3245 ] }, { - "teal": 3461, + "teal": 3459, "source": "examples/reti/validatorRegistry.algo.ts:942", "pc": [ + 3246, 3247 ] }, { - "teal": 3462, + "teal": 3460, "source": "examples/reti/validatorRegistry.algo.ts:942", "pc": [ - 3248, - 3249 + 3248 ] }, { - "teal": 3463, + "teal": 3461, "source": "examples/reti/validatorRegistry.algo.ts:942", "pc": [ - 3250 + 3249 ] }, { - "teal": 3464, + "teal": 3462, "source": "examples/reti/validatorRegistry.algo.ts:942", "pc": [ - 3251 + 3250 ] }, { - "teal": 3465, + "teal": 3463, "source": "examples/reti/validatorRegistry.algo.ts:942", "pc": [ - 3252 + 3251 ] }, { - "teal": 3466, + "teal": 3464, "source": "examples/reti/validatorRegistry.algo.ts:942", "pc": [ - 3253 + 3252, + 3253, + 3254 ] }, { - "teal": 3467, - "source": "examples/reti/validatorRegistry.algo.ts:942", + "teal": 3469, + "source": "examples/reti/validatorRegistry.algo.ts:943", "pc": [ - 3254, - 3255, - 3256 + 3255 ] }, { - "teal": 3472, + "teal": 3470, "source": "examples/reti/validatorRegistry.algo.ts:943", "pc": [ + 3256, 3257 ] }, { - "teal": 3473, + "teal": 3471, "source": "examples/reti/validatorRegistry.algo.ts:943", "pc": [ - 3258, - 3259 + 3258 ] }, { - "teal": 3474, + "teal": 3472, "source": "examples/reti/validatorRegistry.algo.ts:943", "pc": [ - 3260 + 3259 ] }, { "teal": 3475, "source": "examples/reti/validatorRegistry.algo.ts:943", + "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value", "pc": [ - 3261 + 3260 ] }, { - "teal": 3478, + "teal": 3476, "source": "examples/reti/validatorRegistry.algo.ts:943", - "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value", "pc": [ + 3261, 3262 ] }, { - "teal": 3479, - "source": "examples/reti/validatorRegistry.algo.ts:943", + "teal": 3480, + "source": "examples/reti/validatorRegistry.algo.ts:944", "pc": [ 3263, 3264 ] }, { - "teal": 3483, + "teal": 3481, "source": "examples/reti/validatorRegistry.algo.ts:944", "pc": [ - 3265, - 3266 + 3265 ] }, { - "teal": 3484, + "teal": 3482, "source": "examples/reti/validatorRegistry.algo.ts:944", "pc": [ - 3267 + 3266 ] }, { - "teal": 3485, + "teal": 3483, "source": "examples/reti/validatorRegistry.algo.ts:944", "pc": [ - 3268 + 3267 ] }, { - "teal": 3486, - "source": "examples/reti/validatorRegistry.algo.ts:944", + "teal": 3487, + "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ - 3269 + 3268 ] }, { - "teal": 3490, + "teal": 3488, "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ + 3269, 3270 ] }, { - "teal": 3491, + "teal": 3493, "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ 3271, @@ -15313,7 +15313,7 @@ ] }, { - "teal": 3496, + "teal": 3494, "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ 3273, @@ -15321,31 +15321,31 @@ ] }, { - "teal": 3497, + "teal": 3495, "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ - 3275, - 3276 + 3275 ] }, { - "teal": 3498, + "teal": 3496, "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ - 3277 + 3276, + 3277, + 3278 ] }, { - "teal": 3499, - "source": "examples/reti/validatorRegistry.algo.ts:945", + "teal": 3501, + "source": "examples/reti/validatorRegistry.algo.ts:946", "pc": [ - 3278, 3279, 3280 ] }, { - "teal": 3504, + "teal": 3502, "source": "examples/reti/validatorRegistry.algo.ts:946", "pc": [ 3281, @@ -15353,38 +15353,38 @@ ] }, { - "teal": 3505, + "teal": 3503, "source": "examples/reti/validatorRegistry.algo.ts:946", "pc": [ - 3283, - 3284 + 3283 ] }, { - "teal": 3506, + "teal": 3504, "source": "examples/reti/validatorRegistry.algo.ts:946", "pc": [ - 3285 + 3284, + 3285, + 3286 ] }, { - "teal": 3507, - "source": "examples/reti/validatorRegistry.algo.ts:946", + "teal": 3509, + "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ - 3286, - 3287, - 3288 + 3287 ] }, { - "teal": 3512, + "teal": 3510, "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ + 3288, 3289 ] }, { - "teal": 3513, + "teal": 3511, "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ 3290, @@ -15392,22 +15392,22 @@ ] }, { - "teal": 3514, + "teal": 3512, "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ - 3292, - 3293 + 3292 ] }, { - "teal": 3515, + "teal": 3513, "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ + 3293, 3294 ] }, { - "teal": 3516, + "teal": 3514, "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ 3295, @@ -15415,22 +15415,22 @@ ] }, { - "teal": 3517, + "teal": 3515, "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ - 3297, - 3298 + 3297 ] }, { - "teal": 3518, + "teal": 3516, "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ + 3298, 3299 ] }, { - "teal": 3519, + "teal": 3517, "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ 3300, @@ -15438,7 +15438,7 @@ ] }, { - "teal": 3520, + "teal": 3518, "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ 3302, @@ -15446,7 +15446,7 @@ ] }, { - "teal": 3521, + "teal": 3519, "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ 3304, @@ -15454,22 +15454,22 @@ ] }, { - "teal": 3522, + "teal": 3520, "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ - 3306, - 3307 + 3306 ] }, { - "teal": 3523, - "source": "examples/reti/validatorRegistry.algo.ts:947", + "teal": 3526, + "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ + 3307, 3308 ] }, { - "teal": 3529, + "teal": 3527, "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ 3309, @@ -15477,111 +15477,111 @@ ] }, { - "teal": 3530, + "teal": 3528, + "source": "examples/reti/validatorRegistry.algo.ts:949", + "pc": [ + 3311 + ] + }, + { + "teal": 3529, "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ - 3311, 3312 ] }, { - "teal": 3531, + "teal": 3530, "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ 3313 ] }, { - "teal": 3532, + "teal": 3531, "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ 3314 ] }, { - "teal": 3533, + "teal": 3532, "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ 3315 ] }, { - "teal": 3534, + "teal": 3533, "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ 3316 ] }, { - "teal": 3535, + "teal": 3534, "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ 3317 ] }, { - "teal": 3536, + "teal": 3535, "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ 3318 ] }, { - "teal": 3537, + "teal": 3536, "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ 3319 ] }, { - "teal": 3538, - "source": "examples/reti/validatorRegistry.algo.ts:949", - "pc": [ - 3320 - ] - }, - { - "teal": 3539, + "teal": 3537, "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ - 3321 + 3320, + 3321, + 3322 ] }, { "teal": 3540, - "source": "examples/reti/validatorRegistry.algo.ts:949", + "source": "examples/reti/validatorRegistry.algo.ts:950", "pc": [ - 3322, 3323, - 3324 + 3324, + 3325 ] }, { - "teal": 3543, - "source": "examples/reti/validatorRegistry.algo.ts:950", + "teal": 3545, + "source": "examples/reti/validatorRegistry.algo.ts:952", "pc": [ - 3325, - 3326, - 3327 + 3326 ] }, { - "teal": 3548, + "teal": 3546, "source": "examples/reti/validatorRegistry.algo.ts:952", "pc": [ + 3327, 3328 ] }, { - "teal": 3549, - "source": "examples/reti/validatorRegistry.algo.ts:952", + "teal": 3551, + "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ 3329, 3330 ] }, { - "teal": 3554, + "teal": 3552, "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ 3331, @@ -15589,103 +15589,103 @@ ] }, { - "teal": 3555, + "teal": 3553, + "source": "examples/reti/validatorRegistry.algo.ts:953", + "pc": [ + 3333 + ] + }, + { + "teal": 3554, "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ - 3333, 3334 ] }, { - "teal": 3556, + "teal": 3555, "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ 3335 ] }, { - "teal": 3557, + "teal": 3556, "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ 3336 ] }, { - "teal": 3558, + "teal": 3557, "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ 3337 ] }, { - "teal": 3559, + "teal": 3558, "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ 3338 ] }, { - "teal": 3560, + "teal": 3559, "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ 3339 ] }, { - "teal": 3561, - "source": "examples/reti/validatorRegistry.algo.ts:953", - "pc": [ - 3340 - ] - }, - { - "teal": 3562, + "teal": 3560, "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ + 3340, 3341 ] }, { - "teal": 3563, + "teal": 3561, "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ - 3342, - 3343 + 3342 ] }, { - "teal": 3564, + "teal": 3562, "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ - 3344 + 3343, + 3344, + 3345 ] }, { - "teal": 3565, - "source": "examples/reti/validatorRegistry.algo.ts:953", + "teal": 3567, + "source": "examples/reti/validatorRegistry.algo.ts:955", "pc": [ - 3345, - 3346, - 3347 + 3346 ] }, { - "teal": 3570, + "teal": 3568, "source": "examples/reti/validatorRegistry.algo.ts:955", "pc": [ + 3347, 3348 ] }, { - "teal": 3571, - "source": "examples/reti/validatorRegistry.algo.ts:955", + "teal": 3574, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ 3349, 3350 ] }, { - "teal": 3577, + "teal": 3575, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ 3351, @@ -15693,7 +15693,7 @@ ] }, { - "teal": 3578, + "teal": 3576, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ 3353, @@ -15701,363 +15701,363 @@ ] }, { - "teal": 3579, + "teal": 3577, + "source": "examples/reti/validatorRegistry.algo.ts:957", + "pc": [ + 3355 + ] + }, + { + "teal": 3578, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3355, 3356 ] }, { - "teal": 3580, + "teal": 3579, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ 3357 ] }, { - "teal": 3581, + "teal": 3580, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ 3358 ] }, { - "teal": 3582, + "teal": 3581, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ 3359 ] }, { - "teal": 3583, + "teal": 3582, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ 3360 ] }, { - "teal": 3584, + "teal": 3583, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ 3361 ] }, { - "teal": 3585, + "teal": 3584, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ 3362 ] }, { - "teal": 3586, + "teal": 3585, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ 3363 ] }, + { + "teal": 3586, + "source": "examples/reti/validatorRegistry.algo.ts:957", + "pc": [ + 3364, + 3365 + ] + }, { "teal": 3587, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3364 + 3366 ] }, { "teal": 3588, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3365 + 3367 ] }, { "teal": 3589, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3366, - 3367 + 3368, + 3369 ] }, { "teal": 3590, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3368 + 3370 ] }, { "teal": 3591, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3369 + 3371 ] }, { "teal": 3592, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3370, - 3371 + 3372 ] }, { "teal": 3593, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3372 + 3373, + 3374 ] }, { "teal": 3594, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3373 + 3375 ] }, { "teal": 3595, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3374 + 3376 ] }, { "teal": 3596, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3375, - 3376 + 3377, + 3378 ] }, { "teal": 3597, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3377 + 3379 ] }, { "teal": 3598, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3378 + 3380 ] }, { "teal": 3599, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3379, - 3380 + 3381, + 3382 ] }, { "teal": 3600, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3381 + 3383 ] }, { "teal": 3601, - "source": "examples/reti/validatorRegistry.algo.ts:957", + "source": "examples/reti/validatorRegistry.algo.ts:958", "pc": [ - 3382 + 3384, + 3385 ] }, { "teal": 3602, "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3383, - 3384 + 3386 ] }, { "teal": 3603, - "source": "examples/reti/validatorRegistry.algo.ts:957", + "source": "examples/reti/validatorRegistry.algo.ts:956", "pc": [ - 3385 + 3387, + 3388, + 3389 ] }, { - "teal": 3604, - "source": "examples/reti/validatorRegistry.algo.ts:958", + "teal": 3608, + "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3386, - 3387 + 3390, + 3391 ] }, { - "teal": 3605, - "source": "examples/reti/validatorRegistry.algo.ts:957", + "teal": 3609, + "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3388 + 3392, + 3393 ] }, { - "teal": 3606, - "source": "examples/reti/validatorRegistry.algo.ts:956", + "teal": 3610, + "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3389, - 3390, - 3391 + 3394 ] }, { "teal": 3611, "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3392, - 3393 + 3395 ] }, { "teal": 3612, "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3394, - 3395 + 3396 ] }, { "teal": 3613, "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3396 + 3397 ] }, { "teal": 3614, "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3397 + 3398, + 3399 ] }, { "teal": 3615, "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3398 + 3400 ] }, { "teal": 3616, "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3399 + 3401, + 3402 ] }, { "teal": 3617, "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3400, - 3401 + 3403 ] }, { "teal": 3618, "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3402 + 3404 ] }, { "teal": 3619, "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3403, - 3404 + 3405, + 3406 ] }, { "teal": 3620, "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3405 + 3407 ] }, { "teal": 3621, "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3406 - ] - }, - { - "teal": 3622, - "source": "examples/reti/validatorRegistry.algo.ts:960", - "pc": [ - 3407, 3408 ] }, { - "teal": 3623, - "source": "examples/reti/validatorRegistry.algo.ts:960", - "pc": [ - 3409 - ] - }, - { - "teal": 3624, + "teal": 3622, "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3410 + 3409, + 3410, + 3411 ] }, { - "teal": 3625, - "source": "examples/reti/validatorRegistry.algo.ts:960", + "teal": 3631, + "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ - 3411, 3412, 3413 ] }, { - "teal": 3634, + "teal": 3632, "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ - 3414, - 3415 + 3414 ] }, { - "teal": 3635, + "teal": 3633, "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ - 3416 + 3415 ] }, { - "teal": 3636, + "teal": 3634, "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ + 3416, 3417 ] }, { - "teal": 3637, + "teal": 3635, "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ 3418, - 3419 + 3419, + 3420 ] }, { - "teal": 3638, - "source": "examples/reti/validatorRegistry.algo.ts:945", + "teal": 3645, + "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3420, 3421, 3422 ] }, { - "teal": 3648, + "teal": 3646, "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ 3423, @@ -16065,88 +16065,88 @@ ] }, { - "teal": 3649, + "teal": 3647, "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3425, - 3426 + 3425 ] }, { - "teal": 3650, + "teal": 3648, "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3427 + 3426 ] }, { - "teal": 3651, + "teal": 3649, "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ + 3427, 3428 ] }, { - "teal": 3652, + "teal": 3650, "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3429, - 3430 + 3429 ] }, { - "teal": 3653, + "teal": 3651, "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3431 + 3430 ] }, { - "teal": 3654, + "teal": 3652, "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ + 3431, 3432 ] }, { - "teal": 3655, + "teal": 3653, "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3433, - 3434 + 3433 ] }, { - "teal": 3656, + "teal": 3654, "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3435 + 3434 ] }, { - "teal": 3657, + "teal": 3655, "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3436 + 3435 ] }, { "teal": 3658, - "source": "examples/reti/validatorRegistry.algo.ts:968", + "source": "examples/reti/validatorRegistry.algo.ts:967", + "errorMessage": "must stake at least the minimum for this pool", "pc": [ - 3437 + 3436 ] }, { - "teal": 3661, - "source": "examples/reti/validatorRegistry.algo.ts:967", - "errorMessage": "must stake at least the minimum for this pool", + "teal": 3662, + "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ + 3437, 3438 ] }, { - "teal": 3665, + "teal": 3663, "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ 3439, @@ -16154,67 +16154,67 @@ ] }, { - "teal": 3666, + "teal": 3664, "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ - 3441, - 3442 + 3441 ] }, { - "teal": 3667, + "teal": 3665, "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ + 3442, 3443 ] }, { - "teal": 3668, + "teal": 3666, "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ - 3444, - 3445 + 3444 ] }, { - "teal": 3669, + "teal": 3667, "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ - 3446 + 3445 ] }, { - "teal": 3670, + "teal": 3668, "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ + 3446, 3447 ] }, { - "teal": 3671, + "teal": 3669, "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ - 3448, - 3449 + 3448 ] }, { - "teal": 3672, + "teal": 3670, "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ + 3449, 3450 ] }, { - "teal": 3673, - "source": "examples/reti/validatorRegistry.algo.ts:973", + "teal": 3674, + "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ 3451, 3452 ] }, { - "teal": 3677, + "teal": 3675, "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ 3453, @@ -16222,81 +16222,81 @@ ] }, { - "teal": 3678, + "teal": 3676, "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ - 3455, - 3456 + 3455 ] }, { - "teal": 3679, + "teal": 3677, "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ + 3456, 3457 ] }, { - "teal": 3680, + "teal": 3678, "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ - 3458, - 3459 + 3458 ] }, { - "teal": 3681, + "teal": 3679, "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ - 3460 + 3459 ] }, { - "teal": 3682, + "teal": 3680, "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ + 3460, 3461 ] }, { - "teal": 3683, + "teal": 3681, "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ - 3462, - 3463 + 3462 ] }, { - "teal": 3684, + "teal": 3682, "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ - 3464 + 3463 ] }, { - "teal": 3685, + "teal": 3683, "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ + 3464, 3465 ] }, { - "teal": 3686, - "source": "examples/reti/validatorRegistry.algo.ts:974", + "teal": 3687, + "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ - 3466, - 3467 + 3466 ] }, { - "teal": 3690, + "teal": 3688, "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ + 3467, 3468 ] }, { - "teal": 3691, + "teal": 3693, "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ 3469, @@ -16304,7 +16304,7 @@ ] }, { - "teal": 3696, + "teal": 3694, "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ 3471, @@ -16312,31 +16312,31 @@ ] }, { - "teal": 3697, + "teal": 3695, "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ - 3473, - 3474 + 3473 ] }, { - "teal": 3698, + "teal": 3696, "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ - 3475 + 3474, + 3475, + 3476 ] }, { - "teal": 3699, - "source": "examples/reti/validatorRegistry.algo.ts:975", + "teal": 3701, + "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3476, 3477, 3478 ] }, { - "teal": 3704, + "teal": 3702, "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ 3479, @@ -16344,442 +16344,442 @@ ] }, { - "teal": 3705, + "teal": 3703, "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ 3481, 3482 ] }, + { + "teal": 3704, + "source": "examples/reti/validatorRegistry.algo.ts:976", + "pc": [ + 3483 + ] + }, + { + "teal": 3705, + "source": "examples/reti/validatorRegistry.algo.ts:976", + "pc": [ + 3484, + 3485 + ] + }, { "teal": 3706, "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3483, - 3484 + 3486 ] }, { "teal": 3707, "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3485 + 3487 ] }, { "teal": 3708, "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3486, - 3487 + 3488 ] }, { "teal": 3709, "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3488 + 3489 ] }, { "teal": 3710, "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3489 + 3490, + 3491 ] }, { "teal": 3711, "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3490 + 3492 ] }, { "teal": 3712, "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3491 + 3493, + 3494 ] }, { "teal": 3713, "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3492, - 3493 + 3495 ] }, { "teal": 3714, "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3494 + 3496, + 3497, + 3498 ] }, { - "teal": 3715, - "source": "examples/reti/validatorRegistry.algo.ts:976", + "teal": 3723, + "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3495, - 3496 + 3499, + 3500 ] }, { - "teal": 3716, - "source": "examples/reti/validatorRegistry.algo.ts:976", + "teal": 3724, + "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3497 + 3501 ] }, { - "teal": 3717, - "source": "examples/reti/validatorRegistry.algo.ts:976", + "teal": 3725, + "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3498, - 3499, - 3500 + 3502, + 3503 ] }, { "teal": 3726, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3501, - 3502 + 3504 ] }, { "teal": 3727, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3503 + 3505 ] }, { "teal": 3728, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3504, - 3505 + 3506 ] }, { "teal": 3729, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3506 + 3507 ] }, { "teal": 3730, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3507 + 3508, + 3509 ] }, { "teal": 3731, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3508 + 3510, + 3511 ] }, { "teal": 3732, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3509 + 3512, + 3513 ] }, { "teal": 3733, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3510, - 3511 + 3514 ] }, { "teal": 3734, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3512, - 3513 + 3515 ] }, { "teal": 3735, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3514, - 3515 + 3516 ] }, { "teal": 3736, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3516 + 3517 ] }, { "teal": 3737, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3517 + 3518 ] }, { "teal": 3738, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3518 + 3519 ] }, { "teal": 3739, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3519 + 3520 ] }, { "teal": 3740, "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3520 + 3521 ] }, { "teal": 3741, - "source": "examples/reti/validatorRegistry.algo.ts:978", + "source": "examples/reti/validatorRegistry.algo.ts:979", "pc": [ - 3521 + 3522, + 3523 ] }, { "teal": 3742, - "source": "examples/reti/validatorRegistry.algo.ts:978", + "source": "examples/reti/validatorRegistry.algo.ts:979", "pc": [ - 3522 + 3524 ] }, { "teal": 3743, - "source": "examples/reti/validatorRegistry.algo.ts:978", + "source": "examples/reti/validatorRegistry.algo.ts:979", "pc": [ - 3523 + 3525, + 3526 ] }, { "teal": 3744, "source": "examples/reti/validatorRegistry.algo.ts:979", "pc": [ - 3524, - 3525 + 3527 ] }, { "teal": 3745, - "source": "examples/reti/validatorRegistry.algo.ts:979", - "pc": [ - 3526 - ] - }, - { - "teal": 3746, - "source": "examples/reti/validatorRegistry.algo.ts:979", + "source": "examples/reti/validatorRegistry.algo.ts:980", "pc": [ - 3527, 3528 ] }, { - "teal": 3747, - "source": "examples/reti/validatorRegistry.algo.ts:979", - "pc": [ - 3529 - ] - }, - { - "teal": 3748, + "teal": 3746, "source": "examples/reti/validatorRegistry.algo.ts:980", "pc": [ + 3529, 3530 ] }, { - "teal": 3749, + "teal": 3747, "source": "examples/reti/validatorRegistry.algo.ts:980", "pc": [ - 3531, - 3532 + 3531 ] }, { - "teal": 3750, - "source": "examples/reti/validatorRegistry.algo.ts:980", + "teal": 3748, + "source": "examples/reti/validatorRegistry.algo.ts:977", "pc": [ - 3533 + 3532 ] }, { - "teal": 3751, + "teal": 3749, "source": "examples/reti/validatorRegistry.algo.ts:977", "pc": [ - 3534 + 3533, + 3534, + 3535 ] }, { - "teal": 3752, - "source": "examples/reti/validatorRegistry.algo.ts:977", + "teal": 3756, + "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ - 3535, 3536, 3537 ] }, { - "teal": 3759, + "teal": 3757, "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ - 3538, - 3539 + 3538 ] }, { - "teal": 3760, + "teal": 3758, "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ - 3540 + 3539 ] }, { - "teal": 3761, + "teal": 3759, "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ + 3540, 3541 ] }, { - "teal": 3762, + "teal": 3760, "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ 3542, - 3543 + 3543, + 3544 ] }, { - "teal": 3763, - "source": "examples/reti/validatorRegistry.algo.ts:975", + "teal": 3765, + "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3544, 3545, 3546 ] }, { - "teal": 3768, + "teal": 3766, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3547, - 3548 + 3547 ] }, { - "teal": 3769, + "teal": 3767, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ + 3548, 3549 ] }, { - "teal": 3770, + "teal": 3768, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3550, - 3551 + 3550 ] }, { - "teal": 3771, + "teal": 3769, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ + 3551, 3552 ] }, { - "teal": 3772, + "teal": 3770, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3553, - 3554 + 3553 ] }, { - "teal": 3773, + "teal": 3771, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ + 3554, 3555 ] }, { - "teal": 3774, + "teal": 3772, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3556, - 3557 + 3556 ] }, { - "teal": 3775, + "teal": 3773, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ + 3557, 3558 ] }, { - "teal": 3776, + "teal": 3774, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3559, - 3560 + 3559 ] }, { - "teal": 3777, + "teal": 3775, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3561 + 3560 ] }, { - "teal": 3778, + "teal": 3776, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ + 3561, 3562 ] }, { - "teal": 3779, + "teal": 3777, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3563, - 3564 + 3563 ] }, { - "teal": 3780, + "teal": 3778, "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3565 + 3564 ] }, { - "teal": 3781, - "source": "examples/reti/validatorRegistry.algo.ts:985", + "teal": 3782, + "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ + 3565, 3566 ] }, @@ -16792,207 +16792,207 @@ ] }, { - "teal": 3788, + "teal": 3786, "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3569, - 3570 + 3569 ] }, { - "teal": 3789, - "source": "examples/reti/validatorRegistry.algo.ts:925", + "teal": 3791, + "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3571 + 3570, + 3571, + 3572 ] }, { - "teal": 3794, + "teal": 3792, "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3572, - 3573, - 3574 + 3573 ] }, { "teal": 3795, "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3575 + 3574, + 3575, + 3576 ] }, { - "teal": 3798, + "teal": 3796, "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3576, - 3577, - 3578 + 3577 ] }, { "teal": 3799, "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3579 + 3578, + 3579, + 3580 ] }, { - "teal": 3802, + "teal": 3800, "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3580, - 3581, - 3582 + 3581 ] }, { "teal": 3803, "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3583 + 3582, + 3583, + 3584 ] }, { - "teal": 3806, + "teal": 3804, "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3584, - 3585, - 3586 + 3585 ] }, { - "teal": 3807, + "teal": 3805, "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3587 + 3586 ] }, { - "teal": 3808, + "teal": 3819, "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3588 + 3587, + 3588, + 3589 ] }, { "teal": 3822, "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3589, - 3590, - 3591 + 3590 ] }, { - "teal": 3825, + "teal": 3823, "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ + 3591, 3592 ] }, { - "teal": 3826, - "source": "examples/reti/validatorRegistry.algo.ts:999", + "teal": 3831, + "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ 3593, 3594 ] }, { - "teal": 3834, + "teal": 3832, "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3595, - 3596 + 3595 ] }, { - "teal": 3835, + "teal": 3833, "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ + 3596, 3597 ] }, { - "teal": 3836, + "teal": 3834, "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3598, - 3599 + 3598 ] }, { - "teal": 3837, + "teal": 3835, "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ + 3599, 3600 ] }, { - "teal": 3838, + "teal": 3836, "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3601, - 3602 + 3601 ] }, { - "teal": 3839, + "teal": 3837, "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3603 + 3602 ] }, { - "teal": 3840, + "teal": 3838, "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ + 3603, 3604 ] }, { - "teal": 3841, + "teal": 3839, "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3605, - 3606 + 3605 ] }, { - "teal": 3842, + "teal": 3840, "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3607 + 3606 ] }, { - "teal": 3843, + "teal": 3841, "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3608 + 3607 ] }, { - "teal": 3844, + "teal": 3842, "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3609 + 3608, + 3609, + 3610 ] }, { - "teal": 3845, - "source": "examples/reti/validatorRegistry.algo.ts:1002", + "teal": 3843, + "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ - 3610, 3611, 3612 ] }, { - "teal": 3846, + "teal": 3844, "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ 3613, @@ -17000,7 +17000,7 @@ ] }, { - "teal": 3847, + "teal": 3845, "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ 3615, @@ -17008,81 +17008,81 @@ ] }, { - "teal": 3848, + "teal": 3846, "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ - 3617, - 3618 + 3617 ] }, { - "teal": 3849, + "teal": 3847, "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ + 3618, 3619 ] }, { - "teal": 3850, + "teal": 3848, "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ - 3620, - 3621 + 3620 ] }, { - "teal": 3851, + "teal": 3849, "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ - 3622 + 3621 ] }, { - "teal": 3852, + "teal": 3850, "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ + 3622, 3623 ] }, { - "teal": 3853, + "teal": 3851, "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ - 3624, - 3625 + 3624 ] }, { - "teal": 3854, + "teal": 3852, "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ - 3626 + 3625 ] }, { - "teal": 3855, - "source": "examples/reti/validatorRegistry.algo.ts:1003", + "teal": 3853, + "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3627 + 3626 ] }, { - "teal": 3856, - "source": "examples/reti/validatorRegistry.algo.ts:1002", + "teal": 3857, + "source": "examples/reti/validatorRegistry.algo.ts:1001", + "errorMessage": "can only be called by owner or manager of validator", "pc": [ - 3628 + 3627 ] }, { - "teal": 3860, - "source": "examples/reti/validatorRegistry.algo.ts:1001", - "errorMessage": "can only be called by owner or manager of validator", + "teal": 3861, + "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ + 3628, 3629 ] }, { - "teal": 3864, + "teal": 3862, "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ 3630, @@ -17090,149 +17090,149 @@ ] }, { - "teal": 3865, + "teal": 3863, "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ - 3632, - 3633 + 3632 ] }, { - "teal": 3866, + "teal": 3864, "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ + 3633, 3634 ] }, { - "teal": 3867, + "teal": 3865, "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ - 3635, - 3636 + 3635 ] }, { - "teal": 3868, + "teal": 3866, "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ - 3637 + 3636 ] }, { - "teal": 3869, + "teal": 3867, "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ + 3637, 3638 ] }, { - "teal": 3870, + "teal": 3868, "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ - 3639, - 3640 + 3639 ] }, { - "teal": 3871, + "teal": 3869, "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ + 3640, 3641 ] }, { - "teal": 3872, - "source": "examples/reti/validatorRegistry.algo.ts:1007", + "teal": 3873, + "source": "examples/reti/validatorRegistry.algo.ts:1008", "pc": [ 3642, 3643 ] }, { - "teal": 3876, + "teal": 3874, "source": "examples/reti/validatorRegistry.algo.ts:1008", "pc": [ - 3644, - 3645 + 3644 ] }, { - "teal": 3877, + "teal": 3875, "source": "examples/reti/validatorRegistry.algo.ts:1008", "pc": [ - 3646 + 3645 ] }, { - "teal": 3878, + "teal": 3876, "source": "examples/reti/validatorRegistry.algo.ts:1008", "pc": [ - 3647 + 3646 ] }, { - "teal": 3879, + "teal": 3877, "source": "examples/reti/validatorRegistry.algo.ts:1008", "pc": [ - 3648 + 3647, + 3648, + 3649 ] }, { - "teal": 3880, + "teal": 3878, "source": "examples/reti/validatorRegistry.algo.ts:1008", "pc": [ - 3649, 3650, 3651 ] }, { - "teal": 3881, + "teal": 3879, + "source": "examples/reti/validatorRegistry.algo.ts:1008", + "pc": [ + 3652 + ] + }, + { + "teal": 3880, "source": "examples/reti/validatorRegistry.algo.ts:1008", "pc": [ - 3652, 3653 ] }, { - "teal": 3882, + "teal": 3881, "source": "examples/reti/validatorRegistry.algo.ts:1008", "pc": [ 3654 ] }, { - "teal": 3883, + "teal": 3885, "source": "examples/reti/validatorRegistry.algo.ts:1008", + "errorMessage": "node number out of allowable range", "pc": [ 3655 ] }, { - "teal": 3884, - "source": "examples/reti/validatorRegistry.algo.ts:1008", + "teal": 3889, + "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ 3656 ] }, { - "teal": 3888, - "source": "examples/reti/validatorRegistry.algo.ts:1008", - "errorMessage": "node number out of allowable range", - "pc": [ - 3657 - ] - }, - { - "teal": 3892, + "teal": 3890, "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ + 3657, 3658 ] }, { - "teal": 3893, + "teal": 3895, "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ 3659, @@ -17240,45 +17240,45 @@ ] }, { - "teal": 3898, + "teal": 3896, "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ - 3661, - 3662 + 3661 ] }, { - "teal": 3899, + "teal": 3897, "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ - 3663 + 3662 ] }, { - "teal": 3900, + "teal": 3898, "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ - 3664 + 3663, + 3664, + 3665 ] }, { - "teal": 3901, - "source": "examples/reti/validatorRegistry.algo.ts:1010", + "teal": 3902, + "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ - 3665, - 3666, - 3667 + 3666 ] }, { - "teal": 3905, + "teal": 3903, "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ + 3667, 3668 ] }, { - "teal": 3906, + "teal": 3908, "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ 3669, @@ -17286,7 +17286,7 @@ ] }, { - "teal": 3911, + "teal": 3909, "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ 3671, @@ -17294,347 +17294,347 @@ ] }, { - "teal": 3912, + "teal": 3910, "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ - 3673, - 3674 + 3673 ] }, { - "teal": 3913, + "teal": 3911, "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ - 3675 + 3674, + 3675, + 3676 ] }, { - "teal": 3914, - "source": "examples/reti/validatorRegistry.algo.ts:1011", + "teal": 3916, + "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3676, 3677, 3678 ] }, + { + "teal": 3917, + "source": "examples/reti/validatorRegistry.algo.ts:1012", + "pc": [ + 3679 + ] + }, + { + "teal": 3918, + "source": "examples/reti/validatorRegistry.algo.ts:1012", + "pc": [ + 3680, + 3681 + ] + }, { "teal": 3919, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3679, - 3680 + 3682 ] }, { "teal": 3920, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3681 + 3683 ] }, { "teal": 3921, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3682, - 3683 + 3684 ] }, { "teal": 3922, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3684 + 3685 ] }, { "teal": 3923, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3685 + 3686 ] }, { "teal": 3924, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3686 + 3687, + 3688 ] }, { "teal": 3925, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3687 + 3689 ] }, { "teal": 3926, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3688 + 3690 ] }, { "teal": 3927, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3689, - 3690 + 3691 ] }, { "teal": 3928, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3691 + 3692 ] }, { "teal": 3929, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3692 + 3693 ] }, { "teal": 3930, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3693 + 3694 ] }, { "teal": 3931, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3694 + 3695, + 3696 ] }, { "teal": 3932, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3695 + 3697 ] }, { "teal": 3933, "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3696 + 3698, + 3699, + 3700 ] }, { - "teal": 3934, - "source": "examples/reti/validatorRegistry.algo.ts:1012", + "teal": 3938, + "source": "examples/reti/validatorRegistry.algo.ts:1013", "pc": [ - 3697, - 3698 + 3701, + 3702 ] }, { - "teal": 3935, - "source": "examples/reti/validatorRegistry.algo.ts:1012", + "teal": 3939, + "source": "examples/reti/validatorRegistry.algo.ts:1013", "pc": [ - 3699 + 3703 ] }, { - "teal": 3936, - "source": "examples/reti/validatorRegistry.algo.ts:1012", + "teal": 3940, + "source": "examples/reti/validatorRegistry.algo.ts:1013", "pc": [ - 3700, - 3701, - 3702 + 3704 ] }, { "teal": 3941, "source": "examples/reti/validatorRegistry.algo.ts:1013", "pc": [ - 3703, - 3704 + 3705, + 3706 ] }, { "teal": 3942, "source": "examples/reti/validatorRegistry.algo.ts:1013", "pc": [ - 3705 + 3707 ] }, { - "teal": 3943, + "teal": 3945, "source": "examples/reti/validatorRegistry.algo.ts:1013", + "errorMessage": "can't move to same node", "pc": [ - 3706 + 3708 ] }, { - "teal": 3944, - "source": "examples/reti/validatorRegistry.algo.ts:1013", + "teal": 3949, + "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3707, - 3708 + 3709, + 3710 ] }, { - "teal": 3945, - "source": "examples/reti/validatorRegistry.algo.ts:1013", + "teal": 3950, + "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3709 + 3711, + 3712 ] }, { - "teal": 3948, - "source": "examples/reti/validatorRegistry.algo.ts:1013", - "errorMessage": "can't move to same node", + "teal": 3951, + "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3710 + 3713 ] }, { "teal": 3952, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3711, - 3712 + 3714 ] }, { "teal": 3953, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3713, - 3714 + 3715 ] }, { "teal": 3954, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3715 + 3716 ] }, { "teal": 3955, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3716 + 3717 ] }, { "teal": 3956, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3717 + 3718, + 3719 ] }, { "teal": 3957, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3718 + 3720 ] }, { "teal": 3958, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3719 + 3721 ] }, { "teal": 3959, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3720, - 3721 + 3722 ] }, { "teal": 3960, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3722 + 3723, + 3724 ] }, { "teal": 3961, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3723 + 3725 ] }, { "teal": 3962, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3724 + 3726, + 3727 ] }, { "teal": 3963, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3725, - 3726 + 3728 ] }, { "teal": 3964, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3727 + 3729 ] }, { "teal": 3965, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3728, - 3729 + 3730, + 3731 ] }, { "teal": 3966, "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3730 - ] - }, - { - "teal": 3967, - "source": "examples/reti/validatorRegistry.algo.ts:1015", - "pc": [ - 3731 + 3732 ] }, { - "teal": 3968, - "source": "examples/reti/validatorRegistry.algo.ts:1015", + "teal": 3972, + "source": "examples/reti/validatorRegistry.algo.ts:1018", "pc": [ - 3732, 3733 ] }, { - "teal": 3969, - "source": "examples/reti/validatorRegistry.algo.ts:1015", - "pc": [ - 3734 - ] - }, - { - "teal": 3975, + "teal": 3973, "source": "examples/reti/validatorRegistry.algo.ts:1018", "pc": [ + 3734, 3735 ] }, { - "teal": 3976, + "teal": 3974, "source": "examples/reti/validatorRegistry.algo.ts:1018", "pc": [ 3736, @@ -17642,35 +17642,35 @@ ] }, { - "teal": 3977, + "teal": 3975, "source": "examples/reti/validatorRegistry.algo.ts:1018", "pc": [ 3738, - 3739 + 3739, + 3740, + 3741, + 3742, + 3743 ] }, { - "teal": 3978, + "teal": 3976, "source": "examples/reti/validatorRegistry.algo.ts:1018", "pc": [ - 3740, - 3741, - 3742, - 3743, 3744, 3745 ] }, { - "teal": 3979, - "source": "examples/reti/validatorRegistry.algo.ts:1018", + "teal": 3980, + "source": "examples/reti/validatorRegistry.algo.ts:1019", "pc": [ 3746, 3747 ] }, { - "teal": 3983, + "teal": 3981, "source": "examples/reti/validatorRegistry.algo.ts:1019", "pc": [ 3748, @@ -17679,16 +17679,16 @@ }, { "teal": 3984, - "source": "examples/reti/validatorRegistry.algo.ts:1019", + "source": "examples/reti/validatorRegistry.algo.ts:1018", "pc": [ - 3750, - 3751 + 3750 ] }, { - "teal": 3987, + "teal": 3985, "source": "examples/reti/validatorRegistry.algo.ts:1018", "pc": [ + 3751, 3752 ] }, @@ -17696,19 +17696,19 @@ "teal": 3988, "source": "examples/reti/validatorRegistry.algo.ts:1018", "pc": [ - 3753, - 3754 + 3753 ] }, { - "teal": 3991, - "source": "examples/reti/validatorRegistry.algo.ts:1018", + "teal": 3992, + "source": "examples/reti/validatorRegistry.algo.ts:1023", "pc": [ + 3754, 3755 ] }, { - "teal": 3995, + "teal": 3993, "source": "examples/reti/validatorRegistry.algo.ts:1023", "pc": [ 3756, @@ -17716,7 +17716,7 @@ ] }, { - "teal": 3996, + "teal": 3994, "source": "examples/reti/validatorRegistry.algo.ts:1023", "pc": [ 3758, @@ -17724,595 +17724,595 @@ ] }, { - "teal": 3997, + "teal": 3995, "source": "examples/reti/validatorRegistry.algo.ts:1023", "pc": [ 3760, - 3761 + 3761, + 3762 ] }, { - "teal": 3998, - "source": "examples/reti/validatorRegistry.algo.ts:1023", + "teal": 3999, + "source": "examples/reti/validatorRegistry.algo.ts:1024", "pc": [ - 3762, - 3763, - 3764 + 3763 ] }, { - "teal": 4002, - "source": "examples/reti/validatorRegistry.algo.ts:1024", + "teal": 4006, + "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ + 3764, 3765 ] }, { - "teal": 4009, + "teal": 4007, "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ - 3766, - 3767 + 3766 ] }, { - "teal": 4010, + "teal": 4008, "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ - 3768 + 3767 ] }, { - "teal": 4011, + "teal": 4009, "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ + 3768, 3769 ] }, { - "teal": 4012, + "teal": 4010, "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ 3770, - 3771 + 3771, + 3772 ] }, { - "teal": 4013, - "source": "examples/reti/validatorRegistry.algo.ts:1011", + "teal": 4017, + "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ - 3772, 3773, 3774 ] }, { - "teal": 4020, + "teal": 4018, "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ - 3775, - 3776 + 3775 ] }, { - "teal": 4021, + "teal": 4019, "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ - 3777 + 3776 ] }, { - "teal": 4022, + "teal": 4020, "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ + 3777, 3778 ] }, { - "teal": 4023, + "teal": 4021, "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ 3779, - 3780 + 3780, + 3781 ] }, { - "teal": 4024, - "source": "examples/reti/validatorRegistry.algo.ts:1010", + "teal": 4025, + "source": "examples/reti/validatorRegistry.algo.ts:1028", + "errorMessage": "couldn't find pool app id in nodes to move", "pc": [ - 3781, - 3782, - 3783 + 3782 ] }, { - "teal": 4028, - "source": "examples/reti/validatorRegistry.algo.ts:1028", - "errorMessage": "couldn't find pool app id in nodes to move", + "teal": 4026, + "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3784 + 3783 ] }, { - "teal": 4029, - "source": "examples/reti/validatorRegistry.algo.ts:999", + "teal": 4031, + "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3785 + 3784 ] }, { "teal": 4034, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3786 + 3785, + 3786, + 3787 ] }, { - "teal": 4037, + "teal": 4035, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3787, - 3788, - 3789 + 3788 ] }, { - "teal": 4038, + "teal": 4036, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3790 + 3789 ] }, { - "teal": 4039, + "teal": 4037, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ + 3790, 3791 ] }, { - "teal": 4040, + "teal": 4038, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3792, - 3793 + 3792 ] }, { "teal": 4041, "source": "examples/reti/validatorRegistry.algo.ts:1042", + "errorMessage": "argument 0 (receiver) for emptyTokenRewards must be a address", "pc": [ - 3794 + 3793 ] }, { "teal": 4044, "source": "examples/reti/validatorRegistry.algo.ts:1042", - "errorMessage": "argument 0 (receiver) for emptyTokenRewards must be a address", "pc": [ - 3795 + 3794, + 3795, + 3796 ] }, { - "teal": 4047, + "teal": 4045, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3796, - 3797, - 3798 + 3797 ] }, { "teal": 4048, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3799 + 3798, + 3799, + 3800 ] }, { - "teal": 4051, + "teal": 4049, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3800, - 3801, - 3802 + 3801 ] }, { - "teal": 4052, + "teal": 4050, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3803 + 3802 ] }, { - "teal": 4053, + "teal": 4051, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3804 + 3803 ] }, { - "teal": 4054, + "teal": 4052, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3805 + 3804 ] }, { - "teal": 4055, + "teal": 4053, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3806 + 3805 ] }, { - "teal": 4056, + "teal": 4067, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3807 + 3806, + 3807, + 3808 ] }, { "teal": 4070, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3808, - 3809, - 3810 + 3809 ] }, { - "teal": 4073, + "teal": 4071, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ + 3810, 3811 ] }, { - "teal": 4074, - "source": "examples/reti/validatorRegistry.algo.ts:1042", + "teal": 4078, + "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ 3812, 3813 ] }, { - "teal": 4081, + "teal": 4079, "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ - 3814, - 3815 + 3814 ] }, { - "teal": 4082, + "teal": 4080, "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ + 3815, 3816 ] }, { - "teal": 4083, + "teal": 4081, "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ - 3817, - 3818 + 3817 ] }, { - "teal": 4084, + "teal": 4082, "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ + 3818, 3819 ] }, { - "teal": 4085, + "teal": 4083, "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ - 3820, - 3821 + 3820 ] }, { - "teal": 4086, + "teal": 4084, "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ - 3822 + 3821 ] }, { - "teal": 4087, + "teal": 4085, "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ + 3822, 3823 ] }, { - "teal": 4088, + "teal": 4086, "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ - 3824, - 3825 + 3824 ] }, { - "teal": 4089, + "teal": 4087, "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ - 3826 + 3825 ] }, { "teal": 4090, - "source": "examples/reti/validatorRegistry.algo.ts:1044", + "source": "examples/reti/validatorRegistry.algo.ts:1043", + "errorMessage": "can only be called by validator owner", "pc": [ - 3827 + 3826 ] }, { - "teal": 4093, - "source": "examples/reti/validatorRegistry.algo.ts:1043", - "errorMessage": "can only be called by validator owner", + "teal": 4094, + "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ + 3827, 3828 ] }, { - "teal": 4097, + "teal": 4095, "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ - 3829, - 3830 + 3829 ] }, { - "teal": 4098, + "teal": 4096, "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ - 3831 + 3830 ] }, { - "teal": 4099, + "teal": 4097, "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ + 3831, 3832 ] }, { - "teal": 4100, + "teal": 4098, "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ - 3833, - 3834 + 3833 ] }, { - "teal": 4101, + "teal": 4099, "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ - 3835 + 3834 ] }, { - "teal": 4102, + "teal": 4100, "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ + 3835, 3836 ] }, { - "teal": 4103, + "teal": 4101, "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ - 3837, - 3838 + 3837 ] }, { - "teal": 4104, + "teal": 4102, "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ - 3839 + 3838 ] }, { - "teal": 4105, + "teal": 4103, "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ + 3839, 3840 ] }, { - "teal": 4106, - "source": "examples/reti/validatorRegistry.algo.ts:1047", + "teal": 4107, + "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ 3841, 3842 ] }, { - "teal": 4110, + "teal": 4108, "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ - 3843, - 3844 + 3843 ] }, { - "teal": 4111, + "teal": 4109, "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ - 3845 + 3844 ] }, { - "teal": 4112, + "teal": 4110, "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ + 3845, 3846 ] }, { - "teal": 4113, + "teal": 4111, "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ - 3847, - 3848 + 3847 ] }, { - "teal": 4114, + "teal": 4112, "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ - 3849 + 3848 ] }, { - "teal": 4115, + "teal": 4113, "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ + 3849, 3850 ] }, { - "teal": 4116, + "teal": 4114, "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ - 3851, - 3852 + 3851 ] }, { - "teal": 4117, + "teal": 4115, "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ - 3853 + 3852 ] }, { - "teal": 4118, + "teal": 4116, "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ + 3853, 3854 ] }, { - "teal": 4119, - "source": "examples/reti/validatorRegistry.algo.ts:1048", + "teal": 4120, + "source": "examples/reti/validatorRegistry.algo.ts:1049", "pc": [ 3855, 3856 ] }, { - "teal": 4123, + "teal": 4121, "source": "examples/reti/validatorRegistry.algo.ts:1049", "pc": [ - 3857, - 3858 + 3857 ] }, { - "teal": 4124, + "teal": 4122, "source": "examples/reti/validatorRegistry.algo.ts:1049", "pc": [ - 3859 + 3858 ] }, { "teal": 4125, "source": "examples/reti/validatorRegistry.algo.ts:1049", + "errorMessage": "this validator doesn't have a reward token defined", "pc": [ - 3860 + 3859 ] }, { - "teal": 4128, - "source": "examples/reti/validatorRegistry.algo.ts:1049", - "errorMessage": "this validator doesn't have a reward token defined", + "teal": 4129, + "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ + 3860, 3861 ] }, { - "teal": 4132, + "teal": 4130, "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ - 3862, - 3863 + 3862 ] }, { - "teal": 4133, + "teal": 4131, "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ - 3864 + 3863 ] }, { - "teal": 4134, + "teal": 4132, "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ + 3864, 3865 ] }, { - "teal": 4135, + "teal": 4133, "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ - 3866, - 3867 + 3866 ] }, { - "teal": 4136, + "teal": 4134, "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ - 3868 + 3867 ] }, { - "teal": 4137, + "teal": 4135, "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ + 3868, 3869 ] }, { - "teal": 4138, + "teal": 4136, "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ - 3870, - 3871 + 3870 ] }, { - "teal": 4139, + "teal": 4137, "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ - 3872 + 3871 ] }, { - "teal": 4140, + "teal": 4138, "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ + 3872, 3873 ] }, { - "teal": 4141, - "source": "examples/reti/validatorRegistry.algo.ts:1050", + "teal": 4142, + "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ 3874, 3875 ] }, { - "teal": 4145, + "teal": 4143, "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ 3876, @@ -18320,22 +18320,22 @@ ] }, { - "teal": 4146, + "teal": 4144, "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ - 3878, - 3879 + 3878 ] }, { - "teal": 4147, + "teal": 4145, "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ + 3879, 3880 ] }, { - "teal": 4148, + "teal": 4146, "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ 3881, @@ -18343,52 +18343,52 @@ ] }, { - "teal": 4149, + "teal": 4147, "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ - 3883, - 3884 + 3883 ] }, { - "teal": 4150, + "teal": 4148, "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ + 3884, 3885 ] }, { - "teal": 4151, + "teal": 4149, "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ - 3886, - 3887 + 3886 ] }, { - "teal": 4152, + "teal": 4150, "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ + 3887, 3888 ] }, { - "teal": 4153, - "source": "examples/reti/validatorRegistry.algo.ts:1052", + "teal": 4157, + "source": "examples/reti/validatorRegistry.algo.ts:1055", "pc": [ - 3889, - 3890 + 3889 ] }, { - "teal": 4160, + "teal": 4158, "source": "examples/reti/validatorRegistry.algo.ts:1055", "pc": [ + 3890, 3891 ] }, { - "teal": 4161, + "teal": 4159, "source": "examples/reti/validatorRegistry.algo.ts:1055", "pc": [ 3892, @@ -18396,7 +18396,7 @@ ] }, { - "teal": 4162, + "teal": 4160, "source": "examples/reti/validatorRegistry.algo.ts:1055", "pc": [ 3894, @@ -18404,7 +18404,7 @@ ] }, { - "teal": 4163, + "teal": 4161, "source": "examples/reti/validatorRegistry.algo.ts:1055", "pc": [ 3896, @@ -18412,15 +18412,15 @@ ] }, { - "teal": 4164, - "source": "examples/reti/validatorRegistry.algo.ts:1055", + "teal": 4165, + "source": "examples/reti/validatorRegistry.algo.ts:1056", "pc": [ 3898, 3899 ] }, { - "teal": 4168, + "teal": 4166, "source": "examples/reti/validatorRegistry.algo.ts:1056", "pc": [ 3900, @@ -18428,15 +18428,15 @@ ] }, { - "teal": 4169, - "source": "examples/reti/validatorRegistry.algo.ts:1056", + "teal": 4170, + "source": "examples/reti/validatorRegistry.algo.ts:1057", "pc": [ 3902, 3903 ] }, { - "teal": 4173, + "teal": 4171, "source": "examples/reti/validatorRegistry.algo.ts:1057", "pc": [ 3904, @@ -18444,7 +18444,7 @@ ] }, { - "teal": 4174, + "teal": 4172, "source": "examples/reti/validatorRegistry.algo.ts:1057", "pc": [ 3906, @@ -18452,22 +18452,22 @@ ] }, { - "teal": 4175, + "teal": 4173, "source": "examples/reti/validatorRegistry.algo.ts:1057", "pc": [ - 3908, - 3909 + 3908 ] }, { - "teal": 4176, + "teal": 4174, "source": "examples/reti/validatorRegistry.algo.ts:1057", "pc": [ + 3909, 3910 ] }, { - "teal": 4177, + "teal": 4175, "source": "examples/reti/validatorRegistry.algo.ts:1057", "pc": [ 3911, @@ -18475,32 +18475,32 @@ ] }, { - "teal": 4178, + "teal": 4176, "source": "examples/reti/validatorRegistry.algo.ts:1057", "pc": [ - 3913, - 3914 + 3913 ] }, { - "teal": 4179, + "teal": 4177, "source": "examples/reti/validatorRegistry.algo.ts:1057", "pc": [ + 3914, 3915 ] }, { "teal": 4180, - "source": "examples/reti/validatorRegistry.algo.ts:1057", + "source": "examples/reti/validatorRegistry.algo.ts:1055", "pc": [ - 3916, - 3917 + 3916 ] }, { - "teal": 4183, + "teal": 4181, "source": "examples/reti/validatorRegistry.algo.ts:1055", "pc": [ + 3917, 3918 ] }, @@ -18508,19 +18508,19 @@ "teal": 4184, "source": "examples/reti/validatorRegistry.algo.ts:1055", "pc": [ - 3919, - 3920 + 3919 ] }, { - "teal": 4187, - "source": "examples/reti/validatorRegistry.algo.ts:1055", + "teal": 4191, + "source": "examples/reti/validatorRegistry.algo.ts:1060", "pc": [ + 3920, 3921 ] }, { - "teal": 4194, + "teal": 4192, "source": "examples/reti/validatorRegistry.algo.ts:1060", "pc": [ 3922, @@ -18528,22 +18528,22 @@ ] }, { - "teal": 4195, + "teal": 4193, "source": "examples/reti/validatorRegistry.algo.ts:1060", "pc": [ - 3924, - 3925 + 3924 ] }, { - "teal": 4196, + "teal": 4194, "source": "examples/reti/validatorRegistry.algo.ts:1060", "pc": [ + 3925, 3926 ] }, { - "teal": 4197, + "teal": 4195, "source": "examples/reti/validatorRegistry.algo.ts:1060", "pc": [ 3927, @@ -18551,46 +18551,46 @@ ] }, { - "teal": 4198, + "teal": 4196, "source": "examples/reti/validatorRegistry.algo.ts:1060", "pc": [ - 3929, - 3930 + 3929 ] }, { - "teal": 4199, + "teal": 4197, "source": "examples/reti/validatorRegistry.algo.ts:1060", "pc": [ + 3930, 3931 ] }, { - "teal": 4200, + "teal": 4198, "source": "examples/reti/validatorRegistry.algo.ts:1060", "pc": [ - 3932, - 3933 + 3932 ] }, { "teal": 4201, - "source": "examples/reti/validatorRegistry.algo.ts:1060", + "source": "examples/reti/validatorRegistry.algo.ts:1059", + "errorMessage": "balance of remaining reward tokens should match the held back amount", "pc": [ - 3934 + 3933 ] }, { - "teal": 4204, - "source": "examples/reti/validatorRegistry.algo.ts:1059", - "errorMessage": "balance of remaining reward tokens should match the held back amount", + "teal": 4205, + "source": "examples/reti/validatorRegistry.algo.ts:1063", "pc": [ + 3934, 3935 ] }, { "teal": 4208, - "source": "examples/reti/validatorRegistry.algo.ts:1063", + "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ 3936, 3937 @@ -18605,529 +18605,529 @@ ] }, { - "teal": 4214, + "teal": 4212, "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3940, - 3941 + 3940 ] }, { - "teal": 4215, - "source": "examples/reti/validatorRegistry.algo.ts:1042", + "teal": 4223, + "source": "examples/reti/validatorRegistry.algo.ts:1160", "pc": [ - 3942 + 3941, + 3942, + 3943 ] }, { - "teal": 4226, - "source": "examples/reti/validatorRegistry.algo.ts:1160", + "teal": 4227, + "source": "examples/reti/validatorRegistry.algo.ts:1161", "pc": [ - 3943, - 3944, - 3945 + 3944 ] }, { - "teal": 4230, + "teal": 4228, "source": "examples/reti/validatorRegistry.algo.ts:1161", "pc": [ + 3945, 3946 ] }, { - "teal": 4231, + "teal": 4229, "source": "examples/reti/validatorRegistry.algo.ts:1161", "pc": [ 3947, - 3948 + 3948, + 3949 ] }, { - "teal": 4232, + "teal": 4230, + "source": "examples/reti/validatorRegistry.algo.ts:1161", + "pc": [ + 3950 + ] + }, + { + "teal": 4231, "source": "examples/reti/validatorRegistry.algo.ts:1161", "pc": [ - 3949, - 3950, 3951 ] }, { - "teal": 4233, + "teal": 4232, "source": "examples/reti/validatorRegistry.algo.ts:1161", "pc": [ 3952 ] }, { - "teal": 4234, + "teal": 4233, "source": "examples/reti/validatorRegistry.algo.ts:1161", "pc": [ 3953 ] }, { - "teal": 4235, + "teal": 4234, "source": "examples/reti/validatorRegistry.algo.ts:1161", "pc": [ 3954 ] }, { - "teal": 4236, + "teal": 4235, "source": "examples/reti/validatorRegistry.algo.ts:1161", "pc": [ 3955 ] }, { - "teal": 4237, + "teal": 4238, "source": "examples/reti/validatorRegistry.algo.ts:1161", + "errorMessage": "the specified validator id isn't valid", "pc": [ 3956 ] }, { - "teal": 4238, - "source": "examples/reti/validatorRegistry.algo.ts:1161", + "teal": 4242, + "source": "examples/reti/validatorRegistry.algo.ts:1162", "pc": [ - 3957 + 3957, + 3958 ] }, { - "teal": 4241, - "source": "examples/reti/validatorRegistry.algo.ts:1161", - "errorMessage": "the specified validator id isn't valid", + "teal": 4243, + "source": "examples/reti/validatorRegistry.algo.ts:1162", "pc": [ - 3958 + 3959, + 3960, + 3961 ] }, { - "teal": 4245, + "teal": 4244, "source": "examples/reti/validatorRegistry.algo.ts:1162", "pc": [ - 3959, - 3960 + 3962 ] }, { - "teal": 4246, - "source": "examples/reti/validatorRegistry.algo.ts:1162", + "teal": 4245, + "source": "examples/reti/validatorRegistry.algo.ts:32", "pc": [ - 3961, - 3962, 3963 ] }, { - "teal": 4247, + "teal": 4246, "source": "examples/reti/validatorRegistry.algo.ts:1162", "pc": [ 3964 ] }, { - "teal": 4248, - "source": "examples/reti/validatorRegistry.algo.ts:32", + "teal": 4249, + "source": "examples/reti/validatorRegistry.algo.ts:1162", + "errorMessage": "pool id not in valid range", "pc": [ 3965 ] }, { - "teal": 4249, - "source": "examples/reti/validatorRegistry.algo.ts:1162", + "teal": 4256, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3966 + 3966, + 3967 ] }, { - "teal": 4252, - "source": "examples/reti/validatorRegistry.algo.ts:1162", - "errorMessage": "pool id not in valid range", + "teal": 4257, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3967 + 3968, + 3969, + 3970 + ] + }, + { + "teal": 4258, + "source": "examples/reti/validatorRegistry.algo.ts:1164", + "pc": [ + 3971 ] }, { "teal": 4259, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3968, - 3969 + 3972 ] }, { "teal": 4260, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3970, - 3971, - 3972 + 3973 ] }, { "teal": 4261, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3973 + 3974 ] }, { "teal": 4262, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3974 + 3975, + 3976, + 3977 ] }, { "teal": 4263, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3975 + 3978, + 3979 ] }, { "teal": 4264, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3976 + 3980, + 3981, + 3982 ] }, { "teal": 4265, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3977, - 3978, - 3979 + 3983 ] }, { "teal": 4266, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3980, - 3981 + 3984, + 3985 ] }, { "teal": 4267, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3982, - 3983, - 3984 + 3986, + 3987 ] }, { "teal": 4268, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3985 + 3988 ] }, { "teal": 4269, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3986, - 3987 + 3989, + 3990 ] }, { "teal": 4270, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3988, - 3989 + 3991, + 3992, + 3993 ] }, { "teal": 4271, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3990 + 3994 ] }, { "teal": 4272, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3991, - 3992 + 3995 ] }, { "teal": 4273, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3993, - 3994, - 3995 + 3996 ] }, { "teal": 4274, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3996 + 3997, + 3998 ] }, { "teal": 4275, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3997 + 3999 ] }, { "teal": 4276, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3998 + 4000 ] }, { "teal": 4277, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 3999, - 4000 + 4001 ] }, { "teal": 4278, "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 4001 + 4002 ] }, { - "teal": 4279, - "source": "examples/reti/validatorRegistry.algo.ts:1164", + "teal": 4282, + "source": "examples/reti/validatorRegistry.algo.ts:1163", + "errorMessage": "pool id outside of range of pools created for this validator", "pc": [ - 4002 + 4003 ] }, { - "teal": 4280, - "source": "examples/reti/validatorRegistry.algo.ts:1164", + "teal": 4289, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4003 + 4004, + 4005 ] }, { - "teal": 4281, - "source": "examples/reti/validatorRegistry.algo.ts:1164", + "teal": 4290, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4004 + 4006, + 4007, + 4008 ] }, { - "teal": 4285, - "source": "examples/reti/validatorRegistry.algo.ts:1163", - "errorMessage": "pool id outside of range of pools created for this validator", + "teal": 4291, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4005 + 4009 ] }, { "teal": 4292, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4006, - 4007 + 4010, + 4011 ] }, { "teal": 4293, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4008, - 4009, - 4010 + 4012, + 4013 ] }, { "teal": 4294, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4011 + 4014, + 4015, + 4016 ] }, { "teal": 4295, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4012, - 4013 + 4017 ] }, { "teal": 4296, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4014, - 4015 + 4018 ] }, { "teal": 4297, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4016, - 4017, - 4018 + 4019 ] }, { "teal": 4298, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4019 + 4020, + 4021 ] }, { "teal": 4299, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4020 + 4022 ] }, { "teal": 4300, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4021 + 4023 ] }, { "teal": 4301, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4022, - 4023 + 4024 ] }, { "teal": 4302, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4024 + 4025 ] }, { "teal": 4303, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4025 + 4026 ] }, { "teal": 4304, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4026 + 4027 ] }, { "teal": 4305, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4027 + 4028, + 4029 ] }, { "teal": 4306, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4028 + 4030, + 4031, + 4032 ] }, { "teal": 4307, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4029 + 4033 ] }, { "teal": 4308, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4030, - 4031 + 4034 ] }, { "teal": 4309, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4032, - 4033, - 4034 + 4035 ] }, { "teal": 4310, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4035 + 4036, + 4037 ] }, { "teal": 4311, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4036 + 4038 ] }, { "teal": 4312, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4037 - ] - }, - { - "teal": 4313, - "source": "examples/reti/validatorRegistry.algo.ts:1170", - "pc": [ - 4038, 4039 ] }, { - "teal": 4314, + "teal": 4313, "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ 4040 ] }, - { - "teal": 4315, - "source": "examples/reti/validatorRegistry.algo.ts:1170", - "pc": [ - 4041 - ] - }, { "teal": 4316, - "source": "examples/reti/validatorRegistry.algo.ts:1170", + "source": "examples/reti/validatorRegistry.algo.ts:1169", + "errorMessage": "The passed in app id doesn't match the passed in ids", "pc": [ - 4042 + 4041 ] }, { - "teal": 4319, - "source": "examples/reti/validatorRegistry.algo.ts:1169", - "errorMessage": "The passed in app id doesn't match the passed in ids", + "teal": 4320, + "source": "examples/reti/validatorRegistry.algo.ts:1174", "pc": [ + 4042, 4043 ] }, { - "teal": 4323, + "teal": 4321, "source": "examples/reti/validatorRegistry.algo.ts:1174", "pc": [ 4044, @@ -19135,110 +19135,104 @@ ] }, { - "teal": 4324, + "teal": 4322, "source": "examples/reti/validatorRegistry.algo.ts:1174", "pc": [ 4046, - 4047 + 4047, + 4048 ] }, { - "teal": 4325, + "teal": 4323, "source": "examples/reti/validatorRegistry.algo.ts:1174", "pc": [ - 4048, - 4049, - 4050 + 4049 ] }, { - "teal": 4326, + "teal": 4324, "source": "examples/reti/validatorRegistry.algo.ts:1174", "pc": [ + 4050, 4051 ] }, { - "teal": 4327, + "teal": 4325, "source": "examples/reti/validatorRegistry.algo.ts:1174", "pc": [ - 4052, - 4053 + 4052 ] }, { - "teal": 4328, + "teal": 4326, "source": "examples/reti/validatorRegistry.algo.ts:1174", "pc": [ - 4054 + 4053 ] }, { - "teal": 4329, + "teal": 4327, "source": "examples/reti/validatorRegistry.algo.ts:1174", "pc": [ - 4055 + 4054 ] }, { - "teal": 4330, - "source": "examples/reti/validatorRegistry.algo.ts:1174", + "teal": 4331, + "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ + 4055, 4056 ] }, { - "teal": 4334, + "teal": 4332, "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ 4057, - 4058 + 4058, + 4059 ] }, { - "teal": 4335, + "teal": 4333, "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ - 4059, - 4060, - 4061 + 4060 ] }, { - "teal": 4336, + "teal": 4334, "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ + 4061, 4062 ] }, { - "teal": 4337, + "teal": 4335, "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ 4063, - 4064 - ] - }, - { - "teal": 4338, - "source": "examples/reti/validatorRegistry.algo.ts:1176", - "pc": [ - 4065, - 4066, - 4067 + 4064, + 4065 ] }, { - "teal": 4339, + "teal": 4336, "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ - 4068 + 4066 ] }, { - "teal": 4340, + "teal": 4337, "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ + 4067, + 4068, 4069, 4070, 4071, @@ -19249,476 +19243,482 @@ 4076, 4077, 4078, - 4079, - 4080, - 4081 + 4079 ] }, { - "teal": 4341, + "teal": 4338, "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ - 4082 + 4080 ] }, { - "teal": 4344, + "teal": 4341, "source": "examples/reti/validatorRegistry.algo.ts:1176", "errorMessage": "global state value does not exist: AppID.fromUint64(poolKey.poolAppId).globalState('validatorId')", "pc": [ - 4083 + 4081 ] }, { - "teal": 4345, + "teal": 4342, "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ - 4084 + 4082 ] }, { - "teal": 4346, + "teal": 4343, "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ - 4085 + 4083 ] }, { - "teal": 4350, + "teal": 4347, "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4086, - 4087 + 4084, + 4085 ] }, { - "teal": 4351, + "teal": 4348, "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4088, - 4089, - 4090 + 4086, + 4087, + 4088 ] }, { - "teal": 4352, + "teal": 4349, "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4091 + 4089 ] }, { - "teal": 4353, + "teal": 4350, "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4092, - 4093 + 4090, + 4091 ] }, { - "teal": 4354, + "teal": 4351, "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4094, - 4095, - 4096 + 4092, + 4093, + 4094 ] }, { - "teal": 4355, + "teal": 4352, "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4097 + 4095 ] }, { - "teal": 4356, + "teal": 4353, "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ + 4096, + 4097, 4098, 4099, 4100, 4101, 4102, - 4103, - 4104, - 4105 + 4103 ] }, { - "teal": 4357, + "teal": 4354, "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4106 + 4104 ] }, { - "teal": 4360, + "teal": 4357, "source": "examples/reti/validatorRegistry.algo.ts:1177", "errorMessage": "global state value does not exist: AppID.fromUint64(poolKey.poolAppId).globalState('poolId')", "pc": [ - 4107 + 4105 ] }, { - "teal": 4361, + "teal": 4358, "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4108 + 4106 ] }, { - "teal": 4362, + "teal": 4359, "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4109 + 4107 ] }, { - "teal": 4363, + "teal": 4360, "source": "examples/reti/validatorRegistry.algo.ts:1160", "pc": [ - 4110 + 4108 ] }, { - "teal": 4372, + "teal": 4369, "source": "examples/reti/validatorRegistry.algo.ts:1186", "pc": [ - 4111, - 4112, - 4113 + 4109, + 4110, + 4111 ] }, { - "teal": 4375, + "teal": 4372, "source": "examples/reti/validatorRegistry.algo.ts:1186", "pc": [ - 4114 + 4112 ] }, { - "teal": 4376, + "teal": 4373, "source": "examples/reti/validatorRegistry.algo.ts:1186", "pc": [ - 4115 + 4113 ] }, { - "teal": 4380, + "teal": 4377, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ + 4114 + ] + }, + { + "teal": 4378, + "source": "examples/reti/validatorRegistry.algo.ts:1187", + "pc": [ + 4115, 4116 ] }, { - "teal": 4381, + "teal": 4379, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4117, - 4118 + 4117 ] }, { - "teal": 4382, + "teal": 4380, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4119 + 4118 ] }, { - "teal": 4383, + "teal": 4381, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ + 4119, 4120 ] }, { - "teal": 4384, - "source": "examples/reti/validatorRegistry.algo.ts:1187", + "teal": 4386, + "source": "examples/reti/validatorRegistry.algo.ts:1188", "pc": [ 4121, 4122 ] }, { - "teal": 4389, + "teal": 4387, "source": "examples/reti/validatorRegistry.algo.ts:1188", "pc": [ - 4123, - 4124 + 4123 ] }, { - "teal": 4390, - "source": "examples/reti/validatorRegistry.algo.ts:1188", + "teal": 4388, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4125 + 4124 ] }, { - "teal": 4391, + "teal": 4389, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ + 4125, 4126 ] }, { - "teal": 4392, + "teal": 4390, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4127, - 4128 + 4127 ] }, { - "teal": 4393, + "teal": 4391, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4129 + 4128 ] }, { - "teal": 4394, + "teal": 4392, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ + 4129, 4130 ] }, { - "teal": 4395, + "teal": 4393, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4131, - 4132 + 4131 ] }, { - "teal": 4396, - "source": "examples/reti/validatorRegistry.algo.ts:1187", + "teal": 4394, + "source": "examples/reti/validatorRegistry.algo.ts:1188", "pc": [ - 4133 + 4132 ] }, { - "teal": 4397, + "teal": 4395, "source": "examples/reti/validatorRegistry.algo.ts:1188", "pc": [ - 4134 + 4133 ] }, { - "teal": 4398, + "teal": 4396, "source": "examples/reti/validatorRegistry.algo.ts:1188", "pc": [ - 4135 + 4134 ] }, { - "teal": 4399, + "teal": 4397, "source": "examples/reti/validatorRegistry.algo.ts:1188", "pc": [ - 4136 + 4135, + 4136, + 4137 ] }, { - "teal": 4400, - "source": "examples/reti/validatorRegistry.algo.ts:1188", + "teal": 4402, + "source": "examples/reti/validatorRegistry.algo.ts:1191", "pc": [ - 4137, 4138, 4139 ] }, { - "teal": 4405, + "teal": 4403, "source": "examples/reti/validatorRegistry.algo.ts:1191", "pc": [ - 4140, - 4141 + 4140 ] }, { - "teal": 4406, - "source": "examples/reti/validatorRegistry.algo.ts:1191", + "teal": 4404, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4142 + 4141 ] }, { - "teal": 4407, + "teal": 4405, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ + 4142, 4143 ] }, { - "teal": 4408, + "teal": 4406, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4144, - 4145 + 4144 ] }, { - "teal": 4409, + "teal": 4407, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4146 + 4145 ] }, { - "teal": 4410, + "teal": 4408, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ + 4146, 4147 ] }, { - "teal": 4411, + "teal": 4409, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4148, - 4149 + 4148 ] }, { - "teal": 4412, - "source": "examples/reti/validatorRegistry.algo.ts:1187", + "teal": 4410, + "source": "examples/reti/validatorRegistry.algo.ts:1191", "pc": [ - 4150 + 4149 ] }, { - "teal": 4413, + "teal": 4411, "source": "examples/reti/validatorRegistry.algo.ts:1191", "pc": [ + 4150, 4151 ] }, { - "teal": 4414, + "teal": 4412, "source": "examples/reti/validatorRegistry.algo.ts:1191", "pc": [ - 4152, - 4153 + 4152 ] }, { "teal": 4415, "source": "examples/reti/validatorRegistry.algo.ts:1191", + "errorMessage": "global state value does not exist: AppID.fromUint64(validatorConfig.nfdForInfo).globalState('i.owner.a')", "pc": [ - 4154 + 4153 ] }, { - "teal": 4418, + "teal": 4416, "source": "examples/reti/validatorRegistry.algo.ts:1191", - "errorMessage": "global state value does not exist: AppID.fromUint64(validatorConfig.nfdForInfo).globalState('i.owner.a')", "pc": [ + 4154, 4155 ] }, { - "teal": 4419, - "source": "examples/reti/validatorRegistry.algo.ts:1191", + "teal": 4421, + "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4156, - 4157 + 4156 ] }, { - "teal": 4424, + "teal": 4422, "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ + 4157, 4158 ] }, { - "teal": 4425, - "source": "examples/reti/validatorRegistry.algo.ts:1193", + "teal": 4423, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4159, - 4160 + 4159 ] }, { - "teal": 4426, + "teal": 4424, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ + 4160, 4161 ] }, { - "teal": 4427, + "teal": 4425, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4162, - 4163 + 4162 ] }, { - "teal": 4428, + "teal": 4426, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4164 + 4163 ] }, { - "teal": 4429, + "teal": 4427, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ + 4164, 4165 ] }, { - "teal": 4430, + "teal": 4428, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4166, - 4167 + 4166 ] }, { - "teal": 4431, - "source": "examples/reti/validatorRegistry.algo.ts:1187", + "teal": 4429, + "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ + 4167, 4168 ] }, { - "teal": 4432, + "teal": 4430, "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4169, - 4170 + 4169 ] }, { - "teal": 4433, + "teal": 4431, "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4171 + 4170 ] }, { - "teal": 4434, + "teal": 4432, "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4172 + 4171, + 4172, + 4173 ] }, { - "teal": 4435, + "teal": 4433, "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4173, 4174, 4175 ] }, { - "teal": 4436, + "teal": 4434, "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ 4176, @@ -19726,90 +19726,90 @@ ] }, { - "teal": 4437, - "source": "examples/reti/validatorRegistry.algo.ts:1193", + "teal": 4435, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4178, - 4179 + 4178 ] }, { - "teal": 4438, + "teal": 4436, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ + 4179, 4180 ] }, { - "teal": 4439, + "teal": 4437, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4181, - 4182 + 4181 ] }, { - "teal": 4440, + "teal": 4438, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4183 + 4182 ] }, { - "teal": 4441, + "teal": 4439, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ + 4183, 4184 ] }, { - "teal": 4442, + "teal": 4440, "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4185, - 4186 + 4185 ] }, { - "teal": 4443, - "source": "examples/reti/validatorRegistry.algo.ts:1187", + "teal": 4441, + "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ + 4186, 4187 ] }, { - "teal": 4444, + "teal": 4442, "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4188, - 4189 + 4188 ] }, { - "teal": 4445, + "teal": 4443, "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4190 + 4189 ] }, { "teal": 4446, "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4191 + 4190, + 4191, + 4192 ] }, { - "teal": 4449, - "source": "examples/reti/validatorRegistry.algo.ts:1193", + "teal": 4451, + "source": "examples/reti/validatorRegistry.algo.ts:1195", "pc": [ - 4192, 4193, 4194 ] }, { - "teal": 4454, + "teal": 4452, "source": "examples/reti/validatorRegistry.algo.ts:1195", "pc": [ 4195, @@ -19817,766 +19817,766 @@ ] }, { - "teal": 4455, + "teal": 4453, "source": "examples/reti/validatorRegistry.algo.ts:1195", "pc": [ - 4197, - 4198 + 4197 ] }, { - "teal": 4456, + "teal": 4454, "source": "examples/reti/validatorRegistry.algo.ts:1195", "pc": [ + 4198, 4199 ] }, { - "teal": 4457, + "teal": 4455, "source": "examples/reti/validatorRegistry.algo.ts:1195", "pc": [ - 4200, - 4201 + 4200 ] }, { - "teal": 4458, + "teal": 4456, "source": "examples/reti/validatorRegistry.algo.ts:1195", "pc": [ - 4202 + 4201 ] }, { - "teal": 4459, + "teal": 4457, "source": "examples/reti/validatorRegistry.algo.ts:1195", "pc": [ + 4202, 4203 ] }, { - "teal": 4460, + "teal": 4458, "source": "examples/reti/validatorRegistry.algo.ts:1195", "pc": [ - 4204, - 4205 + 4204 ] }, { - "teal": 4461, - "source": "examples/reti/validatorRegistry.algo.ts:1195", + "teal": 4463, + "source": "examples/reti/validatorRegistry.algo.ts:1186", "pc": [ - 4206 + 4205 ] }, { - "teal": 4466, - "source": "examples/reti/validatorRegistry.algo.ts:1186", + "teal": 4467, + "source": "examples/reti/validatorRegistry.algo.ts:1200", "pc": [ - 4207 + 4206, + 4207, + 4208 ] }, { - "teal": 4470, - "source": "examples/reti/validatorRegistry.algo.ts:1200", + "teal": 4474, + "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4208, 4209, 4210 ] }, { - "teal": 4477, + "teal": 4475, "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ 4211, - 4212 + 4212, + 4213 ] }, { - "teal": 4478, + "teal": 4476, "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4213, - 4214, - 4215 + 4214 ] }, { - "teal": 4479, + "teal": 4477, "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4216 + 4215 ] }, { - "teal": 4480, + "teal": 4478, "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4217 + 4216 ] }, { - "teal": 4481, + "teal": 4479, "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4218 + 4217 ] }, { - "teal": 4482, + "teal": 4480, "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4219 + 4218, + 4219, + 4220 ] }, { - "teal": 4483, + "teal": 4481, "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4220, 4221, 4222 ] }, { - "teal": 4484, + "teal": 4482, "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ 4223, - 4224 + 4224, + 4225 ] }, { - "teal": 4485, + "teal": 4483, "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4225, - 4226, - 4227 + 4226 ] }, { - "teal": 4486, + "teal": 4484, "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ + 4227, 4228 ] }, { - "teal": 4487, + "teal": 4485, "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4229, - 4230 + 4229 ] }, { - "teal": 4488, + "teal": 4486, "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4231 + 4230 ] }, { - "teal": 4489, - "source": "examples/reti/validatorRegistry.algo.ts:1203", + "teal": 4490, + "source": "examples/reti/validatorRegistry.algo.ts:1202", + "errorMessage": "gating type not valid", "pc": [ - 4232 + 4231 ] }, { - "teal": 4493, - "source": "examples/reti/validatorRegistry.algo.ts:1202", - "errorMessage": "gating type not valid", + "teal": 4497, + "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ + 4232, 4233 ] }, { - "teal": 4500, + "teal": 4498, "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ 4234, - 4235 + 4235, + 4236 ] }, { - "teal": 4501, + "teal": 4499, "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4236, - 4237, - 4238 + 4237 ] }, { - "teal": 4502, + "teal": 4500, "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4239 + 4238 ] }, { - "teal": 4503, + "teal": 4501, "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4240 + 4239 ] }, { - "teal": 4504, + "teal": 4502, "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4241 + 4240 ] }, { - "teal": 4505, + "teal": 4503, "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4242 + 4241, + 4242, + 4243 ] }, { - "teal": 4506, + "teal": 4504, "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4243, 4244, 4245 ] }, { - "teal": 4507, + "teal": 4505, "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ 4246, - 4247 + 4247, + 4248 ] }, { - "teal": 4508, + "teal": 4506, "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4248, - 4249, - 4250 + 4249 ] }, { - "teal": 4509, + "teal": 4507, "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ + 4250, 4251 ] }, { - "teal": 4510, + "teal": 4508, "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4252, - 4253 + 4252 ] }, { - "teal": 4511, + "teal": 4509, "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4254 + 4253 ] }, { - "teal": 4512, - "source": "examples/reti/validatorRegistry.algo.ts:1207", + "teal": 4513, + "source": "examples/reti/validatorRegistry.algo.ts:1206", + "errorMessage": "epoch length not in allowable range", "pc": [ - 4255 + 4254 ] }, { - "teal": 4516, - "source": "examples/reti/validatorRegistry.algo.ts:1206", - "errorMessage": "epoch length not in allowable range", + "teal": 4520, + "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ + 4255, 4256 ] }, { - "teal": 4523, + "teal": 4521, "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ 4257, - 4258 + 4258, + 4259 ] }, { - "teal": 4524, + "teal": 4522, "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4259, - 4260, - 4261 + 4260 ] }, { - "teal": 4525, + "teal": 4523, "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4262 + 4261 ] }, { - "teal": 4526, + "teal": 4524, "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4263 + 4262 ] }, { - "teal": 4527, + "teal": 4525, "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4264 + 4263 ] }, { - "teal": 4528, + "teal": 4526, "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4265 + 4264, + 4265, + 4266 ] }, { - "teal": 4529, + "teal": 4527, "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4266, 4267, 4268 ] }, { - "teal": 4530, + "teal": 4528, "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ 4269, - 4270 + 4270, + 4271 ] }, { - "teal": 4531, + "teal": 4529, "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4271, - 4272, - 4273 + 4272 ] }, { - "teal": 4532, + "teal": 4530, "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ + 4273, 4274 ] }, { - "teal": 4533, - "source": "examples/reti/validatorRegistry.algo.ts:1211", - "pc": [ - 4275, - 4276 - ] - }, - { - "teal": 4534, + "teal": 4531, "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4277 + 4275 ] }, { - "teal": 4535, + "teal": 4532, "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4278 + 4276 ] }, { - "teal": 4539, + "teal": 4536, "source": "examples/reti/validatorRegistry.algo.ts:1210", "errorMessage": "commission percentage not valid", "pc": [ + 4277 + ] + }, + { + "teal": 4541, + "source": "examples/reti/validatorRegistry.algo.ts:1214", + "pc": [ + 4278, 4279 ] }, { - "teal": 4544, + "teal": 4542, "source": "examples/reti/validatorRegistry.algo.ts:1214", "pc": [ 4280, - 4281 + 4281, + 4282 ] }, { - "teal": 4545, + "teal": 4543, "source": "examples/reti/validatorRegistry.algo.ts:1214", "pc": [ - 4282, - 4283, - 4284 + 4283 ] }, { - "teal": 4546, + "teal": 4544, "source": "examples/reti/validatorRegistry.algo.ts:1214", "pc": [ - 4285 + 4284 ] }, { - "teal": 4547, + "teal": 4545, "source": "examples/reti/validatorRegistry.algo.ts:1214", "pc": [ - 4286 + 4285 ] }, { - "teal": 4548, + "teal": 4546, "source": "examples/reti/validatorRegistry.algo.ts:1214", "pc": [ - 4287 + 4286, + 4287, + 4288 ] }, { - "teal": 4549, - "source": "examples/reti/validatorRegistry.algo.ts:1214", + "teal": 4554, + "source": "examples/reti/validatorRegistry.algo.ts:1216", "pc": [ - 4288, 4289, 4290 ] }, { - "teal": 4557, + "teal": 4555, "source": "examples/reti/validatorRegistry.algo.ts:1216", "pc": [ 4291, - 4292 + 4292, + 4293 ] }, { - "teal": 4558, + "teal": 4556, "source": "examples/reti/validatorRegistry.algo.ts:1216", "pc": [ - 4293, 4294, 4295 ] }, { - "teal": 4559, + "teal": 4557, "source": "examples/reti/validatorRegistry.algo.ts:1216", "pc": [ - 4296, - 4297 + 4296 ] }, { "teal": 4560, - "source": "examples/reti/validatorRegistry.algo.ts:1216", + "source": "examples/reti/validatorRegistry.algo.ts:1215", + "errorMessage": "validatorCommissionAddress must be set if percent to validator is not 0", "pc": [ - 4298 + 4297 ] }, { - "teal": 4563, - "source": "examples/reti/validatorRegistry.algo.ts:1215", - "errorMessage": "validatorCommissionAddress must be set if percent to validator is not 0", + "teal": 4565, + "source": "examples/reti/validatorRegistry.algo.ts:1220", "pc": [ + 4298, 4299 ] }, { - "teal": 4568, + "teal": 4566, "source": "examples/reti/validatorRegistry.algo.ts:1220", "pc": [ 4300, - 4301 + 4301, + 4302 ] }, { - "teal": 4569, + "teal": 4567, "source": "examples/reti/validatorRegistry.algo.ts:1220", "pc": [ - 4302, - 4303, - 4304 + 4303 ] }, { - "teal": 4570, + "teal": 4568, "source": "examples/reti/validatorRegistry.algo.ts:1220", "pc": [ + 4304, 4305 ] }, { - "teal": 4571, + "teal": 4569, "source": "examples/reti/validatorRegistry.algo.ts:1220", "pc": [ - 4306, - 4307 + 4306 ] }, { "teal": 4572, "source": "examples/reti/validatorRegistry.algo.ts:1220", + "errorMessage": "staking pool must have minimum entry of 1 algo", "pc": [ - 4308 + 4307 ] }, { - "teal": 4575, - "source": "examples/reti/validatorRegistry.algo.ts:1220", - "errorMessage": "staking pool must have minimum entry of 1 algo", + "teal": 4579, + "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ + 4308, 4309 ] }, { - "teal": 4582, + "teal": 4580, "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ 4310, - 4311 + 4311, + 4312 ] }, { - "teal": 4583, + "teal": 4581, "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4312, - 4313, - 4314 + 4313 ] }, { - "teal": 4584, + "teal": 4582, "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4315 + 4314 ] }, { - "teal": 4585, + "teal": 4583, "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4316 + 4315 ] }, { - "teal": 4586, + "teal": 4584, "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4317 + 4316 ] }, { - "teal": 4587, + "teal": 4585, "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4318 + 4317, + 4318, + 4319 ] }, { - "teal": 4588, + "teal": 4586, "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4319, 4320, 4321 ] }, { - "teal": 4589, + "teal": 4587, "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ 4322, - 4323 + 4323, + 4324 ] }, { - "teal": 4590, + "teal": 4588, "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4324, - 4325, - 4326 + 4325 ] }, { - "teal": 4591, + "teal": 4589, "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ + 4326, 4327 ] }, { - "teal": 4592, + "teal": 4590, "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4328, - 4329 + 4328 ] }, { - "teal": 4593, + "teal": 4591, "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4330 + 4329 ] }, { - "teal": 4594, - "source": "examples/reti/validatorRegistry.algo.ts:1223", + "teal": 4595, + "source": "examples/reti/validatorRegistry.algo.ts:1222", + "errorMessage": "number of pools per node exceeds allowed number", "pc": [ - 4331 + 4330 ] }, { - "teal": 4598, - "source": "examples/reti/validatorRegistry.algo.ts:1222", - "errorMessage": "number of pools per node exceeds allowed number", + "teal": 4600, + "source": "examples/reti/validatorRegistry.algo.ts:1226", "pc": [ + 4331, 4332 ] }, { - "teal": 4603, + "teal": 4601, "source": "examples/reti/validatorRegistry.algo.ts:1226", "pc": [ 4333, - 4334 + 4334, + 4335 ] }, { - "teal": 4604, + "teal": 4602, "source": "examples/reti/validatorRegistry.algo.ts:1226", "pc": [ - 4335, - 4336, - 4337 + 4336 ] }, { - "teal": 4605, + "teal": 4603, "source": "examples/reti/validatorRegistry.algo.ts:1226", "pc": [ - 4338 + 4337 ] }, { - "teal": 4606, + "teal": 4604, "source": "examples/reti/validatorRegistry.algo.ts:1226", "pc": [ - 4339 + 4338 ] }, { - "teal": 4607, + "teal": 4605, "source": "examples/reti/validatorRegistry.algo.ts:1226", "pc": [ - 4340 + 4339, + 4340, + 4341 ] }, { - "teal": 4608, - "source": "examples/reti/validatorRegistry.algo.ts:1226", + "teal": 4610, + "source": "examples/reti/validatorRegistry.algo.ts:1227", "pc": [ - 4341, 4342, 4343 ] }, { - "teal": 4613, + "teal": 4611, "source": "examples/reti/validatorRegistry.algo.ts:1227", "pc": [ 4344, - 4345 + 4345, + 4346 ] }, { - "teal": 4614, + "teal": 4612, "source": "examples/reti/validatorRegistry.algo.ts:1227", "pc": [ - 4346, - 4347, - 4348 + 4347 ] }, { - "teal": 4615, + "teal": 4613, "source": "examples/reti/validatorRegistry.algo.ts:1227", "pc": [ + 4348, 4349 ] }, { - "teal": 4616, + "teal": 4614, "source": "examples/reti/validatorRegistry.algo.ts:1227", "pc": [ - 4350, - 4351 + 4350 ] }, { "teal": 4617, "source": "examples/reti/validatorRegistry.algo.ts:1227", + "errorMessage": "sunsettingOn must be later than now if set", "pc": [ - 4352 + 4351 ] }, { "teal": 4620, - "source": "examples/reti/validatorRegistry.algo.ts:1227", - "errorMessage": "sunsettingOn must be later than now if set", + "source": "examples/reti/validatorRegistry.algo.ts:1200", "pc": [ - 4353 + 4352 ] }, { - "teal": 4623, - "source": "examples/reti/validatorRegistry.algo.ts:1200", + "teal": 4634, + "source": "examples/reti/validatorRegistry.algo.ts:1242", "pc": [ - 4354 + 4353, + 4354, + 4355 ] }, { "teal": 4637, "source": "examples/reti/validatorRegistry.algo.ts:1242", "pc": [ - 4355, - 4356, - 4357 + 4356 ] }, { - "teal": 4640, + "teal": 4638, "source": "examples/reti/validatorRegistry.algo.ts:1242", "pc": [ + 4357, 4358 ] }, { - "teal": 4641, - "source": "examples/reti/validatorRegistry.algo.ts:1242", + "teal": 4642, + "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ 4359, 4360 ] }, { - "teal": 4645, + "teal": 4643, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ 4361, @@ -20584,177 +20584,177 @@ ] }, { - "teal": 4646, + "teal": 4644, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ 4363, - 4364 + 4364, + 4365 ] }, { - "teal": 4647, + "teal": 4645, + "source": "examples/reti/validatorRegistry.algo.ts:1249", + "pc": [ + 4366 + ] + }, + { + "teal": 4646, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4365, - 4366, 4367 ] }, { - "teal": 4648, + "teal": 4647, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ 4368 ] }, + { + "teal": 4648, + "source": "examples/reti/validatorRegistry.algo.ts:1249", + "pc": [ + 4369, + 4370 + ] + }, { "teal": 4649, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4369 + 4371 ] }, { "teal": 4650, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4370 + 4372 ] }, { "teal": 4651, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4371, - 4372 + 4373 ] }, { "teal": 4652, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4373 + 4374 ] }, { "teal": 4653, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4374 + 4375 ] }, { "teal": 4654, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4375 + 4376 ] }, { "teal": 4655, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4376 + 4377, + 4378 ] }, { "teal": 4656, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4377 + 4379, + 4380, + 4381 ] }, { "teal": 4657, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4378 + 4382 ] }, { "teal": 4658, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4379, - 4380 + 4383 ] }, { "teal": 4659, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4381, - 4382, - 4383 + 4384 ] }, { "teal": 4660, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4384 + 4385, + 4386 ] }, { "teal": 4661, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4385 + 4387 ] }, { "teal": 4662, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4386 - ] - }, - { - "teal": 4663, - "source": "examples/reti/validatorRegistry.algo.ts:1249", - "pc": [ - 4387, 4388 ] }, { - "teal": 4664, - "source": "examples/reti/validatorRegistry.algo.ts:1249", - "pc": [ - 4389 - ] - }, - { - "teal": 4665, + "teal": 4663, "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ + 4389, 4390 ] }, { - "teal": 4666, - "source": "examples/reti/validatorRegistry.algo.ts:1249", + "teal": 4676, + "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ - 4391, - 4392 + 4391 ] }, { - "teal": 4679, + "teal": 4677, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ - 4393 + 4392 ] }, { - "teal": 4680, + "teal": 4678, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ + 4393, 4394 ] }, { - "teal": 4681, + "teal": 4682, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ 4395, @@ -20762,7 +20762,7 @@ ] }, { - "teal": 4685, + "teal": 4683, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ 4397, @@ -20770,7 +20770,7 @@ ] }, { - "teal": 4686, + "teal": 4684, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ 4399, @@ -20778,22 +20778,22 @@ ] }, { - "teal": 4687, + "teal": 4685, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ - 4401, - 4402 + 4401 ] }, { - "teal": 4688, + "teal": 4686, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ + 4402, 4403 ] }, { - "teal": 4689, + "teal": 4690, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ 4404, @@ -20801,7 +20801,7 @@ ] }, { - "teal": 4693, + "teal": 4691, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ 4406, @@ -20809,17 +20809,17 @@ ] }, { - "teal": 4694, + "teal": 4692, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ - 4408, - 4409 + 4408 ] }, { - "teal": 4695, + "teal": 4693, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ + 4409, 4410 ] }, @@ -20827,34 +20827,34 @@ "teal": 4696, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ - 4411, - 4412 + 4411 ] }, { - "teal": 4699, + "teal": 4697, "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ + 4412, 4413 ] }, { - "teal": 4700, - "source": "examples/reti/validatorRegistry.algo.ts:1258", + "teal": 4698, + "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4414, - 4415 + 4414 ] }, { - "teal": 4701, + "teal": 4699, "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ + 4415, 4416 ] }, { - "teal": 4702, + "teal": 4700, "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ 4417, @@ -20862,35 +20862,35 @@ ] }, { - "teal": 4703, + "teal": 4701, "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ 4419, - 4420 + 4420, + 4421, + 4422, + 4423, + 4424 ] }, { - "teal": 4704, + "teal": 4702, "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4421, - 4422, - 4423, - 4424, 4425, 4426 ] }, { - "teal": 4705, - "source": "examples/reti/validatorRegistry.algo.ts:1253", + "teal": 4706, + "source": "examples/reti/validatorRegistry.algo.ts:1254", "pc": [ 4427, 4428 ] }, { - "teal": 4709, + "teal": 4707, "source": "examples/reti/validatorRegistry.algo.ts:1254", "pc": [ 4429, @@ -20898,15 +20898,15 @@ ] }, { - "teal": 4710, - "source": "examples/reti/validatorRegistry.algo.ts:1254", + "teal": 4717, + "source": "examples/reti/validatorRegistry.algo.ts:1260", "pc": [ 4431, 4432 ] }, { - "teal": 4720, + "teal": 4718, "source": "examples/reti/validatorRegistry.algo.ts:1260", "pc": [ 4433, @@ -20914,7 +20914,7 @@ ] }, { - "teal": 4721, + "teal": 4719, "source": "examples/reti/validatorRegistry.algo.ts:1260", "pc": [ 4435, @@ -20923,16 +20923,16 @@ }, { "teal": 4722, - "source": "examples/reti/validatorRegistry.algo.ts:1260", + "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4437, - 4438 + 4437 ] }, { - "teal": 4725, + "teal": 4723, "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ + 4438, 4439 ] }, @@ -20940,105 +20940,105 @@ "teal": 4726, "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4440, - 4441 + 4440 ] }, { - "teal": 4729, + "teal": 4727, "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ + 4441, 4442 ] }, { - "teal": 4730, + "teal": 4728, "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4443, - 4444 + 4443 ] }, { - "teal": 4731, + "teal": 4729, "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4445 + 4444 ] }, { - "teal": 4732, + "teal": 4730, "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ + 4445, 4446 ] }, { - "teal": 4733, + "teal": 4731, "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ 4447, - 4448 + 4448, + 4449 ] }, { - "teal": 4734, + "teal": 4732, "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4449, - 4450, - 4451 + 4450 ] }, { - "teal": 4735, - "source": "examples/reti/validatorRegistry.algo.ts:1253", + "teal": 4737, + "source": "examples/reti/validatorRegistry.algo.ts:1263", "pc": [ + 4451, 4452 ] }, { - "teal": 4740, + "teal": 4738, "source": "examples/reti/validatorRegistry.algo.ts:1263", "pc": [ 4453, - 4454 + 4454, + 4455 ] }, { - "teal": 4741, + "teal": 4739, "source": "examples/reti/validatorRegistry.algo.ts:1263", "pc": [ - 4455, - 4456, - 4457 + 4456 ] }, { - "teal": 4742, + "teal": 4740, "source": "examples/reti/validatorRegistry.algo.ts:1263", "pc": [ - 4458 + 4457, + 4458, + 4459 ] }, { - "teal": 4743, - "source": "examples/reti/validatorRegistry.algo.ts:1263", + "teal": 4745, + "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ - 4459, - 4460, - 4461 + 4460 ] }, { - "teal": 4748, + "teal": 4746, "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ + 4461, 4462 ] }, { - "teal": 4749, + "teal": 4747, "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ 4463, @@ -21046,22 +21046,22 @@ ] }, { - "teal": 4750, + "teal": 4748, "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ - 4465, - 4466 + 4465 ] }, { - "teal": 4751, + "teal": 4749, "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ + 4466, 4467 ] }, { - "teal": 4752, + "teal": 4750, "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ 4468, @@ -21069,22 +21069,22 @@ ] }, { - "teal": 4753, + "teal": 4751, "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ - 4470, - 4471 + 4470 ] }, { - "teal": 4754, + "teal": 4752, "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ + 4471, 4472 ] }, { - "teal": 4755, + "teal": 4753, "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ 4473, @@ -21092,7 +21092,7 @@ ] }, { - "teal": 4756, + "teal": 4754, "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ 4475, @@ -21100,7 +21100,7 @@ ] }, { - "teal": 4757, + "teal": 4755, "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ 4477, @@ -21108,22 +21108,22 @@ ] }, { - "teal": 4758, + "teal": 4756, "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ - 4479, - 4480 + 4479 ] }, { - "teal": 4759, - "source": "examples/reti/validatorRegistry.algo.ts:1264", + "teal": 4761, + "source": "examples/reti/validatorRegistry.algo.ts:1268", "pc": [ + 4480, 4481 ] }, { - "teal": 4764, + "teal": 4762, "source": "examples/reti/validatorRegistry.algo.ts:1268", "pc": [ 4482, @@ -21131,38 +21131,38 @@ ] }, { - "teal": 4765, + "teal": 4763, "source": "examples/reti/validatorRegistry.algo.ts:1268", "pc": [ - 4484, - 4485 + 4484 ] }, { "teal": 4766, "source": "examples/reti/validatorRegistry.algo.ts:1268", + "errorMessage": "global state value does not exist: AppID.fromUint64(poolAppId).globalState('numStakers')", "pc": [ - 4486 + 4485 ] }, { - "teal": 4769, + "teal": 4767, "source": "examples/reti/validatorRegistry.algo.ts:1268", - "errorMessage": "global state value does not exist: AppID.fromUint64(poolAppId).globalState('numStakers')", "pc": [ + 4486, 4487 ] }, { - "teal": 4770, - "source": "examples/reti/validatorRegistry.algo.ts:1268", + "teal": 4771, + "source": "examples/reti/validatorRegistry.algo.ts:1269", "pc": [ 4488, 4489 ] }, { - "teal": 4774, + "teal": 4772, "source": "examples/reti/validatorRegistry.algo.ts:1269", "pc": [ 4490, @@ -21170,38 +21170,38 @@ ] }, { - "teal": 4775, + "teal": 4773, "source": "examples/reti/validatorRegistry.algo.ts:1269", "pc": [ - 4492, - 4493 + 4492 ] }, { "teal": 4776, "source": "examples/reti/validatorRegistry.algo.ts:1269", + "errorMessage": "global state value does not exist: AppID.fromUint64(poolAppId).globalState('staked')", "pc": [ - 4494 + 4493 ] }, { - "teal": 4779, + "teal": 4777, "source": "examples/reti/validatorRegistry.algo.ts:1269", - "errorMessage": "global state value does not exist: AppID.fromUint64(poolAppId).globalState('staked')", "pc": [ + 4494, 4495 ] }, { - "teal": 4780, - "source": "examples/reti/validatorRegistry.algo.ts:1269", + "teal": 4781, + "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ 4496, 4497 ] }, { - "teal": 4784, + "teal": 4782, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ 4498, @@ -21209,787 +21209,787 @@ ] }, { - "teal": 4785, + "teal": 4783, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ 4500, - 4501 + 4501, + 4502 ] }, { - "teal": 4786, + "teal": 4784, + "source": "examples/reti/validatorRegistry.algo.ts:1270", + "pc": [ + 4503 + ] + }, + { + "teal": 4785, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4502, - 4503, 4504 ] }, { - "teal": 4787, + "teal": 4786, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ 4505 ] }, + { + "teal": 4787, + "source": "examples/reti/validatorRegistry.algo.ts:1270", + "pc": [ + 4506, + 4507 + ] + }, { "teal": 4788, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4506 + 4508 ] }, { "teal": 4789, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4507 + 4509 ] }, { "teal": 4790, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4508, - 4509 + 4510 ] }, { "teal": 4791, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4510 + 4511 ] }, { "teal": 4792, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4511 + 4512, + 4513 ] }, { "teal": 4793, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4512 + 4514 ] }, { "teal": 4794, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4513 + 4515, + 4516, + 4517 ] }, { "teal": 4795, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4514, - 4515 + 4518 ] }, { "teal": 4796, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4516 + 4519, + 4520 ] }, { "teal": 4797, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4517, - 4518, - 4519 + 4521, + 4522, + 4523 ] }, { "teal": 4798, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4520 + 4524 ] }, { "teal": 4799, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4521, - 4522 + 4525 ] }, { "teal": 4800, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4523, - 4524, - 4525 + 4526 ] }, { "teal": 4801, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4526 + 4527, + 4528 ] }, { "teal": 4802, "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4527 + 4529 ] }, { - "teal": 4803, - "source": "examples/reti/validatorRegistry.algo.ts:1270", + "teal": 4806, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4528 + 4530, + 4531 ] }, { - "teal": 4804, - "source": "examples/reti/validatorRegistry.algo.ts:1270", + "teal": 4807, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4529, - 4530 + 4532, + 4533 ] }, { - "teal": 4805, - "source": "examples/reti/validatorRegistry.algo.ts:1270", + "teal": 4808, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4531 + 4534, + 4535, + 4536 ] }, { "teal": 4809, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4532, - 4533 + 4537 ] }, { "teal": 4810, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4534, - 4535 + 4538 ] }, { "teal": 4811, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4536, - 4537, - 4538 + 4539 ] }, { "teal": 4812, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4539 + 4540, + 4541 ] }, { "teal": 4813, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4540 + 4542 ] }, { "teal": 4814, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4541 + 4543 ] }, { "teal": 4815, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4542, - 4543 + 4544, + 4545 ] }, { "teal": 4816, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4544 + 4546 ] }, { "teal": 4817, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4545 + 4547, + 4548 ] }, { "teal": 4818, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4546, - 4547 + 4549 ] }, { "teal": 4819, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4548 + 4550 ] }, { "teal": 4820, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4549, - 4550 + 4551, + 4552 ] }, { "teal": 4821, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4551 + 4553, + 4554, + 4555 ] }, { "teal": 4822, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4552 + 4556 ] }, { "teal": 4823, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4553, - 4554 + 4557 ] }, { "teal": 4824, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4555, - 4556, - 4557 + 4558 ] }, { "teal": 4825, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4558 + 4559, + 4560 ] }, { "teal": 4826, "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4559 + 4561 ] }, { - "teal": 4827, - "source": "examples/reti/validatorRegistry.algo.ts:1271", + "teal": 4831, + "source": "examples/reti/validatorRegistry.algo.ts:1274", "pc": [ - 4560 + 4562, + 4563 ] }, { - "teal": 4828, - "source": "examples/reti/validatorRegistry.algo.ts:1271", + "teal": 4832, + "source": "examples/reti/validatorRegistry.algo.ts:1274", "pc": [ - 4561, - 4562 + 4564, + 4565, + 4566 ] }, { - "teal": 4829, - "source": "examples/reti/validatorRegistry.algo.ts:1271", + "teal": 4837, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4563 + 4567, + 4568 ] }, { - "teal": 4834, - "source": "examples/reti/validatorRegistry.algo.ts:1274", + "teal": 4838, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4564, - 4565 + 4569 ] }, { - "teal": 4835, - "source": "examples/reti/validatorRegistry.algo.ts:1274", + "teal": 4839, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4566, - 4567, - 4568 + 4570 ] }, { "teal": 4840, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4569, - 4570 + 4571 ] }, { "teal": 4841, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4571 + 4572, + 4573 ] }, { "teal": 4842, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4572 + 4574, + 4575, + 4576 ] }, { "teal": 4843, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4573 + 4577 ] }, { "teal": 4844, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4574, - 4575 + 4578 ] }, { "teal": 4845, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4576, - 4577, - 4578 + 4579 ] }, { "teal": 4846, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4579 + 4580, + 4581 ] }, { "teal": 4847, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4580 + 4582 ] }, { "teal": 4848, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4581 + 4583 ] }, { "teal": 4849, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4582, - 4583 + 4584 ] }, { "teal": 4850, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4584 + 4585 ] }, { "teal": 4851, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4585 + 4586 ] }, { "teal": 4852, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4586 + 4587 ] }, { "teal": 4853, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4587 + 4588, + 4589 ] }, { "teal": 4854, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4588 + 4590, + 4591, + 4592 ] }, { "teal": 4855, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4589 + 4593 ] }, { "teal": 4856, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4590, - 4591 + 4594 ] }, { "teal": 4857, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4592, - 4593, - 4594 + 4595 ] }, { "teal": 4858, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4595 + 4596, + 4597 ] }, { "teal": 4859, "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4596 + 4598 ] }, { - "teal": 4860, - "source": "examples/reti/validatorRegistry.algo.ts:1275", + "teal": 4865, + "source": "examples/reti/validatorRegistry.algo.ts:1277", "pc": [ - 4597 + 4599, + 4600 ] }, { - "teal": 4861, - "source": "examples/reti/validatorRegistry.algo.ts:1275", + "teal": 4866, + "source": "examples/reti/validatorRegistry.algo.ts:1277", "pc": [ - 4598, - 4599 + 4601, + 4602, + 4603 ] }, { - "teal": 4862, - "source": "examples/reti/validatorRegistry.algo.ts:1275", + "teal": 4871, + "source": "examples/reti/validatorRegistry.algo.ts:1278", "pc": [ - 4600 + 4604, + 4605 ] }, { - "teal": 4868, - "source": "examples/reti/validatorRegistry.algo.ts:1277", + "teal": 4872, + "source": "examples/reti/validatorRegistry.algo.ts:1278", "pc": [ - 4601, - 4602 + 4606 ] }, { - "teal": 4869, - "source": "examples/reti/validatorRegistry.algo.ts:1277", + "teal": 4873, + "source": "examples/reti/validatorRegistry.algo.ts:1278", "pc": [ - 4603, - 4604, - 4605 + 4607 ] }, { "teal": 4874, "source": "examples/reti/validatorRegistry.algo.ts:1278", "pc": [ - 4606, - 4607 + 4608 ] }, { "teal": 4875, "source": "examples/reti/validatorRegistry.algo.ts:1278", "pc": [ - 4608 + 4609, + 4610 ] }, { "teal": 4876, "source": "examples/reti/validatorRegistry.algo.ts:1278", "pc": [ - 4609 + 4611 ] }, { "teal": 4877, "source": "examples/reti/validatorRegistry.algo.ts:1278", "pc": [ - 4610 + 4612 ] }, { - "teal": 4878, - "source": "examples/reti/validatorRegistry.algo.ts:1278", + "teal": 4882, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4611, - 4612 + 4613, + 4614 ] }, { - "teal": 4879, - "source": "examples/reti/validatorRegistry.algo.ts:1278", + "teal": 4883, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4613 + 4615 ] }, { - "teal": 4880, - "source": "examples/reti/validatorRegistry.algo.ts:1278", + "teal": 4884, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4614 + 4616 ] }, { "teal": 4885, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4615, - 4616 + 4617 ] }, { "teal": 4886, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4617 + 4618, + 4619 ] }, { "teal": 4887, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4618 + 4620, + 4621, + 4622 ] }, { "teal": 4888, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4619 + 4623 ] }, { "teal": 4889, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4620, - 4621 + 4624 ] }, { "teal": 4890, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4622, - 4623, - 4624 + 4625 ] }, { "teal": 4891, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4625 + 4626, + 4627 ] }, { "teal": 4892, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4626 + 4628 ] }, { "teal": 4893, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4627 + 4629 ] }, { "teal": 4894, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4628, - 4629 + 4630, + 4631 ] }, { "teal": 4895, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4630 + 4632, + 4633 ] }, { "teal": 4896, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4631 + 4634, + 4635 ] }, { "teal": 4897, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4632, - 4633 + 4636 ] }, { "teal": 4898, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4634, - 4635 + 4637 ] }, { "teal": 4899, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4636, - 4637 + 4638 ] }, { "teal": 4900, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4638 + 4639 ] }, { "teal": 4901, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4639 + 4640, + 4641 ] }, { "teal": 4902, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4640 + 4642, + 4643, + 4644 ] }, { "teal": 4903, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4641 + 4645 ] }, { "teal": 4904, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4642, - 4643 - ] - }, - { - "teal": 4905, - "source": "examples/reti/validatorRegistry.algo.ts:1280", - "pc": [ - 4644, - 4645, 4646 ] }, { - "teal": 4906, + "teal": 4905, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ 4647 ] }, { - "teal": 4907, - "source": "examples/reti/validatorRegistry.algo.ts:1280", - "pc": [ - 4648 - ] - }, - { - "teal": 4908, + "teal": 4906, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ + 4648, 4649 ] }, { - "teal": 4909, + "teal": 4907, "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4650, - 4651 + 4650 ] }, { - "teal": 4910, - "source": "examples/reti/validatorRegistry.algo.ts:1280", + "teal": 4911, + "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ + 4651, 4652 ] }, { - "teal": 4914, + "teal": 4912, "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ - 4653, - 4654 + 4653 ] }, { - "teal": 4915, + "teal": 4913, "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ + 4654, 4655 ] }, { - "teal": 4916, + "teal": 4914, "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ 4656, @@ -21997,7 +21997,7 @@ ] }, { - "teal": 4917, + "teal": 4915, "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ 4658, @@ -22005,199 +22005,199 @@ ] }, { - "teal": 4918, + "teal": 4916, "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ - 4660, - 4661 + 4660 ] }, { - "teal": 4919, + "teal": 4917, "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ - 4662 + 4661 ] }, { - "teal": 4920, + "teal": 4918, "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ + 4662, 4663 ] }, { - "teal": 4921, + "teal": 4919, "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ - 4664, - 4665 + 4664 ] }, { - "teal": 4922, + "teal": 4920, "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ - 4666 + 4665 ] }, { - "teal": 4923, - "source": "examples/reti/validatorRegistry.algo.ts:1281", + "teal": 4921, + "source": "examples/reti/validatorRegistry.algo.ts:1242", "pc": [ - 4667 + 4666 ] }, { - "teal": 4924, - "source": "examples/reti/validatorRegistry.algo.ts:1242", + "teal": 4925, + "source": "examples/reti/validatorRegistry.algo.ts:1284", "pc": [ - 4668 + 4667, + 4668, + 4669 ] }, { "teal": 4928, "source": "examples/reti/validatorRegistry.algo.ts:1284", "pc": [ - 4669, - 4670, - 4671 + 4670 ] }, { - "teal": 4931, + "teal": 4929, "source": "examples/reti/validatorRegistry.algo.ts:1284", "pc": [ + 4671, 4672 ] }, { - "teal": 4932, - "source": "examples/reti/validatorRegistry.algo.ts:1284", + "teal": 4933, + "source": "examples/reti/validatorRegistry.algo.ts:1285", "pc": [ - 4673, - 4674 + 4673 ] }, { - "teal": 4936, + "teal": 4934, "source": "examples/reti/validatorRegistry.algo.ts:1285", "pc": [ + 4674, 4675 ] }, { - "teal": 4937, + "teal": 4935, "source": "examples/reti/validatorRegistry.algo.ts:1285", "pc": [ - 4676, - 4677 + 4676 ] }, { - "teal": 4938, + "teal": 4936, "source": "examples/reti/validatorRegistry.algo.ts:1285", "pc": [ - 4678 + 4677 ] }, { - "teal": 4939, + "teal": 4937, "source": "examples/reti/validatorRegistry.algo.ts:1285", "pc": [ - 4679 + 4678 ] }, { - "teal": 4940, + "teal": 4938, "source": "examples/reti/validatorRegistry.algo.ts:1285", "pc": [ - 4680 + 4679 ] }, { - "teal": 4941, + "teal": 4939, "source": "examples/reti/validatorRegistry.algo.ts:1285", "pc": [ - 4681 + 4680 ] }, { - "teal": 4942, - "source": "examples/reti/validatorRegistry.algo.ts:1285", + "teal": 4943, + "source": "examples/reti/validatorRegistry.algo.ts:1287", "pc": [ - 4682 + 4681 ] }, { - "teal": 4946, + "teal": 4944, "source": "examples/reti/validatorRegistry.algo.ts:1287", "pc": [ + 4682, 4683 ] }, { - "teal": 4947, + "teal": 4945, "source": "examples/reti/validatorRegistry.algo.ts:1287", "pc": [ - 4684, - 4685 + 4684 ] }, { - "teal": 4948, + "teal": 4946, "source": "examples/reti/validatorRegistry.algo.ts:1287", "pc": [ - 4686 + 4685 ] }, { "teal": 4949, "source": "examples/reti/validatorRegistry.algo.ts:1287", + "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value", "pc": [ - 4687 + 4686 ] }, { - "teal": 4952, + "teal": 4950, "source": "examples/reti/validatorRegistry.algo.ts:1287", - "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value", "pc": [ + 4687, 4688 ] }, { - "teal": 4953, - "source": "examples/reti/validatorRegistry.algo.ts:1287", + "teal": 4954, + "source": "examples/reti/validatorRegistry.algo.ts:1288", "pc": [ - 4689, - 4690 + 4689 ] }, { - "teal": 4957, + "teal": 4955, "source": "examples/reti/validatorRegistry.algo.ts:1288", "pc": [ + 4690, 4691 ] }, { - "teal": 4958, - "source": "examples/reti/validatorRegistry.algo.ts:1288", + "teal": 4959, + "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ - 4692, - 4693 + 4692 ] }, { - "teal": 4962, + "teal": 4960, "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ + 4693, 4694 ] }, { - "teal": 4963, + "teal": 4965, "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ 4695, @@ -22205,7 +22205,7 @@ ] }, { - "teal": 4968, + "teal": 4966, "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ 4697, @@ -22213,31 +22213,31 @@ ] }, { - "teal": 4969, + "teal": 4967, "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ - 4699, - 4700 + 4699 ] }, { - "teal": 4970, + "teal": 4968, "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ - 4701 + 4700, + 4701, + 4702 ] }, { - "teal": 4971, - "source": "examples/reti/validatorRegistry.algo.ts:1289", + "teal": 4973, + "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ - 4702, 4703, 4704 ] }, { - "teal": 4976, + "teal": 4974, "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ 4705, @@ -22245,112 +22245,112 @@ ] }, { - "teal": 4977, + "teal": 4975, "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ - 4707, - 4708 + 4707 ] }, { - "teal": 4978, + "teal": 4976, "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ - 4709 + 4708 ] }, { - "teal": 4979, + "teal": 4977, "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ - 4710 + 4709 ] }, { - "teal": 4980, + "teal": 4978, "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ - 4711 + 4710 ] }, { - "teal": 4981, + "teal": 4979, "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ + 4711, 4712 ] }, { - "teal": 4982, + "teal": 4980, "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ - 4713, - 4714 + 4713 ] }, { - "teal": 4983, + "teal": 4981, "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ - 4715 + 4714, + 4715, + 4716 ] }, { - "teal": 4984, - "source": "examples/reti/validatorRegistry.algo.ts:1290", + "teal": 4986, + "source": "examples/reti/validatorRegistry.algo.ts:1292", "pc": [ - 4716, - 4717, - 4718 + 4717 ] }, { - "teal": 4989, - "source": "examples/reti/validatorRegistry.algo.ts:1292", + "teal": 4992, + "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ + 4718, 4719 ] }, { - "teal": 4995, + "teal": 4993, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4720, - 4721 + 4720 ] }, { - "teal": 4996, + "teal": 4994, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4722 + 4721 ] }, { - "teal": 4997, + "teal": 4995, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4723 + 4722 ] }, { - "teal": 4998, + "teal": 4996, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4724 + 4723, + 4724, + 4725 ] }, { - "teal": 4999, + "teal": 4997, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4725, 4726, 4727 ] }, { - "teal": 5000, + "teal": 4998, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ 4728, @@ -22358,411 +22358,411 @@ ] }, { - "teal": 5001, + "teal": 4999, + "source": "examples/reti/validatorRegistry.algo.ts:1294", + "pc": [ + 4730 + ] + }, + { + "teal": 5000, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4730, 4731 ] }, { - "teal": 5002, + "teal": 5001, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ 4732 ] }, { - "teal": 5003, + "teal": 5002, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ 4733 ] }, { - "teal": 5004, + "teal": 5003, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ 4734 ] }, { - "teal": 5005, + "teal": 5004, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ 4735 ] }, { - "teal": 5006, + "teal": 5005, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ 4736 ] }, { - "teal": 5007, + "teal": 5006, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ 4737 ] }, { - "teal": 5008, + "teal": 5007, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ 4738 ] }, { - "teal": 5009, + "teal": 5008, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ 4739 ] }, - { - "teal": 5010, - "source": "examples/reti/validatorRegistry.algo.ts:1294", - "pc": [ - 4740 - ] - }, { "teal": 5011, "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4741 + 4740, + 4741, + 4742 ] }, { - "teal": 5014, - "source": "examples/reti/validatorRegistry.algo.ts:1294", + "teal": 5016, + "source": "examples/reti/validatorRegistry.algo.ts:1295", "pc": [ - 4742, 4743, 4744 ] }, { - "teal": 5019, + "teal": 5017, "source": "examples/reti/validatorRegistry.algo.ts:1295", "pc": [ - 4745, - 4746 + 4745 ] }, { - "teal": 5020, + "teal": 5018, "source": "examples/reti/validatorRegistry.algo.ts:1295", "pc": [ - 4747 + 4746 ] }, { - "teal": 5021, + "teal": 5019, "source": "examples/reti/validatorRegistry.algo.ts:1295", "pc": [ + 4747, 4748 ] }, { - "teal": 5022, - "source": "examples/reti/validatorRegistry.algo.ts:1295", + "teal": 5026, + "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ 4749, 4750 ] }, { - "teal": 5029, + "teal": 5027, "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ - 4751, - 4752 + 4751 ] }, { - "teal": 5030, + "teal": 5028, "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ - 4753 + 4752 ] }, { - "teal": 5031, + "teal": 5029, "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ + 4753, 4754 ] }, { - "teal": 5032, + "teal": 5030, "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ 4755, - 4756 + 4756, + 4757 ] }, { - "teal": 5033, - "source": "examples/reti/validatorRegistry.algo.ts:1289", + "teal": 5036, + "source": "examples/reti/validatorRegistry.algo.ts:1298", "pc": [ - 4757, 4758, 4759 ] }, { - "teal": 5039, + "teal": 5037, "source": "examples/reti/validatorRegistry.algo.ts:1298", "pc": [ - 4760, - 4761 + 4760 ] }, { - "teal": 5040, + "teal": 5038, "source": "examples/reti/validatorRegistry.algo.ts:1298", "pc": [ - 4762 + 4761 ] }, { - "teal": 5041, + "teal": 5039, "source": "examples/reti/validatorRegistry.algo.ts:1298", "pc": [ - 4763 + 4762, + 4763, + 4764 ] }, { - "teal": 5042, - "source": "examples/reti/validatorRegistry.algo.ts:1298", + "teal": 5043, + "source": "examples/reti/validatorRegistry.algo.ts:1299", + "errorMessage": "No empty slot available in the staker pool set", "pc": [ - 4764, - 4765, - 4766 + 4765 ] }, { - "teal": 5046, - "source": "examples/reti/validatorRegistry.algo.ts:1299", - "errorMessage": "No empty slot available in the staker pool set", + "teal": 5048, + "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ + 4766, 4767 ] }, { - "teal": 5051, + "teal": 5049, "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ - 4768, - 4769 + 4768 ] }, { - "teal": 5052, + "teal": 5050, "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ - 4770 + 4769 ] }, { - "teal": 5053, + "teal": 5051, "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ - 4771 + 4770 ] }, { - "teal": 5054, + "teal": 5052, "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ - 4772 + 4771 ] }, { - "teal": 5055, + "teal": 5053, "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ + 4772, 4773 ] }, { - "teal": 5056, + "teal": 5054, "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ - 4774, - 4775 + 4774 ] }, { - "teal": 5057, + "teal": 5055, "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ + 4775, 4776 ] }, { - "teal": 5058, + "teal": 5056, "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ - 4777, - 4778 + 4777 ] }, { - "teal": 5059, + "teal": 5057, "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ + 4778, 4779 ] }, { - "teal": 5060, + "teal": 5058, "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ - 4780, - 4781 + 4780 ] }, { - "teal": 5061, - "source": "examples/reti/validatorRegistry.algo.ts:1301", + "teal": 5059, + "source": "examples/reti/validatorRegistry.algo.ts:1284", "pc": [ - 4782 + 4781 ] }, { - "teal": 5062, - "source": "examples/reti/validatorRegistry.algo.ts:1284", + "teal": 5070, + "source": "examples/reti/validatorRegistry.algo.ts:1312", "pc": [ - 4783 + 4782, + 4783, + 4784 ] }, { "teal": 5073, "source": "examples/reti/validatorRegistry.algo.ts:1312", "pc": [ - 4784, - 4785, - 4786 + 4785 ] }, { - "teal": 5076, + "teal": 5074, "source": "examples/reti/validatorRegistry.algo.ts:1312", "pc": [ + 4786, 4787 ] }, { - "teal": 5077, - "source": "examples/reti/validatorRegistry.algo.ts:1312", + "teal": 5078, + "source": "examples/reti/validatorRegistry.algo.ts:1314", "pc": [ - 4788, - 4789 + 4788 ] }, { - "teal": 5081, + "teal": 5079, "source": "examples/reti/validatorRegistry.algo.ts:1314", "pc": [ + 4789, 4790 ] }, { - "teal": 5082, - "source": "examples/reti/validatorRegistry.algo.ts:1314", + "teal": 5083, + "source": "examples/reti/validatorRegistry.algo.ts:1315", "pc": [ - 4791, - 4792 + 4791 ] }, { - "teal": 5086, + "teal": 5084, "source": "examples/reti/validatorRegistry.algo.ts:1315", "pc": [ + 4792, 4793 ] }, { - "teal": 5087, - "source": "examples/reti/validatorRegistry.algo.ts:1315", + "teal": 5088, + "source": "examples/reti/validatorRegistry.algo.ts:1316", "pc": [ - 4794, - 4795 + 4794 ] }, { - "teal": 5091, + "teal": 5089, "source": "examples/reti/validatorRegistry.algo.ts:1316", "pc": [ + 4795, 4796 ] }, { - "teal": 5092, - "source": "examples/reti/validatorRegistry.algo.ts:1316", + "teal": 5093, + "source": "examples/reti/validatorRegistry.algo.ts:1318", "pc": [ - 4797, - 4798 + 4797 ] }, { - "teal": 5096, + "teal": 5094, "source": "examples/reti/validatorRegistry.algo.ts:1318", "pc": [ + 4798, 4799 ] }, { - "teal": 5097, + "teal": 5095, "source": "examples/reti/validatorRegistry.algo.ts:1318", "pc": [ - 4800, - 4801 + 4800 ] }, { - "teal": 5098, + "teal": 5096, "source": "examples/reti/validatorRegistry.algo.ts:1318", "pc": [ - 4802 + 4801 ] }, { "teal": 5099, "source": "examples/reti/validatorRegistry.algo.ts:1318", + "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value", "pc": [ - 4803 + 4802 ] }, { - "teal": 5102, + "teal": 5100, "source": "examples/reti/validatorRegistry.algo.ts:1318", - "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value", "pc": [ + 4803, 4804 ] }, { - "teal": 5103, - "source": "examples/reti/validatorRegistry.algo.ts:1318", + "teal": 5104, + "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ - 4805, - 4806 + 4805 ] }, { - "teal": 5107, + "teal": 5105, "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ + 4806, 4807 ] }, { - "teal": 5108, + "teal": 5110, "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ 4808, @@ -22770,7 +22770,7 @@ ] }, { - "teal": 5113, + "teal": 5111, "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ 4810, @@ -22778,31 +22778,31 @@ ] }, { - "teal": 5114, + "teal": 5112, "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ - 4812, - 4813 + 4812 ] }, { - "teal": 5115, + "teal": 5113, "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ - 4814 + 4813, + 4814, + 4815 ] }, { - "teal": 5116, - "source": "examples/reti/validatorRegistry.algo.ts:1319", + "teal": 5118, + "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ - 4815, 4816, 4817 ] }, { - "teal": 5121, + "teal": 5119, "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ 4818, @@ -22810,126 +22810,126 @@ ] }, { - "teal": 5122, + "teal": 5120, + "source": "examples/reti/validatorRegistry.algo.ts:1320", + "pc": [ + 4820 + ] + }, + { + "teal": 5121, "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ - 4820, 4821 ] }, { - "teal": 5123, + "teal": 5122, "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ 4822 ] }, { - "teal": 5124, + "teal": 5123, "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ 4823 ] }, { - "teal": 5125, + "teal": 5124, "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ 4824 ] }, { - "teal": 5126, + "teal": 5125, "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ 4825 ] }, { - "teal": 5127, + "teal": 5126, "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ 4826 ] }, { - "teal": 5128, + "teal": 5127, "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ 4827 ] }, { - "teal": 5129, + "teal": 5128, "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ 4828 ] }, { - "teal": 5130, - "source": "examples/reti/validatorRegistry.algo.ts:1320", - "pc": [ - 4829 - ] - }, - { - "teal": 5131, + "teal": 5129, "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ - 4830 + 4829, + 4830, + 4831 ] }, { "teal": 5132, - "source": "examples/reti/validatorRegistry.algo.ts:1320", + "source": "examples/reti/validatorRegistry.algo.ts:1321", "pc": [ - 4831, 4832, - 4833 + 4833, + 4834 ] }, { - "teal": 5135, - "source": "examples/reti/validatorRegistry.algo.ts:1321", + "teal": 5137, + "source": "examples/reti/validatorRegistry.algo.ts:1323", "pc": [ - 4834, 4835, 4836 ] }, { - "teal": 5140, + "teal": 5138, "source": "examples/reti/validatorRegistry.algo.ts:1323", "pc": [ - 4837, - 4838 + 4837 ] }, { - "teal": 5141, + "teal": 5139, "source": "examples/reti/validatorRegistry.algo.ts:1323", "pc": [ - 4839 + 4838 ] }, { - "teal": 5142, + "teal": 5140, "source": "examples/reti/validatorRegistry.algo.ts:1323", "pc": [ + 4839, 4840 ] }, { - "teal": 5143, - "source": "examples/reti/validatorRegistry.algo.ts:1323", + "teal": 5145, + "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ 4841, 4842 ] }, { - "teal": 5148, + "teal": 5146, "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ 4843, @@ -22937,104 +22937,104 @@ ] }, { - "teal": 5149, + "teal": 5147, + "source": "examples/reti/validatorRegistry.algo.ts:1324", + "pc": [ + 4845 + ] + }, + { + "teal": 5148, "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ - 4845, 4846 ] }, { - "teal": 5150, + "teal": 5149, "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ 4847 ] }, { - "teal": 5151, + "teal": 5150, "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ 4848 ] }, { - "teal": 5152, + "teal": 5151, "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ 4849 ] }, { - "teal": 5153, + "teal": 5152, "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ 4850 ] }, { - "teal": 5154, + "teal": 5153, "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ 4851 ] }, { - "teal": 5155, - "source": "examples/reti/validatorRegistry.algo.ts:1324", - "pc": [ - 4852 - ] - }, - { - "teal": 5156, + "teal": 5154, "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ + 4852, 4853 ] }, { - "teal": 5157, + "teal": 5155, "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ 4854, - 4855 + 4855, + 4856 ] }, { - "teal": 5158, + "teal": 5156, "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ - 4856, - 4857, - 4858 + 4857 ] }, { - "teal": 5159, + "teal": 5157, "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ - 4859 + 4858 ] }, { - "teal": 5160, + "teal": 5158, "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ - 4860 + 4859, + 4860, + 4861 ] }, { - "teal": 5161, - "source": "examples/reti/validatorRegistry.algo.ts:1324", + "teal": 5164, + "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 4861, 4862, 4863 ] }, { - "teal": 5167, + "teal": 5165, "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ 4864, @@ -23042,106 +23042,100 @@ ] }, { - "teal": 5168, + "teal": 5166, "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 4866, - 4867 + 4866 ] }, { - "teal": 5169, + "teal": 5167, "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 4868 + 4867 ] }, { - "teal": 5170, + "teal": 5168, "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 4869 + 4868 ] }, { - "teal": 5171, + "teal": 5169, "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 4870 + 4869 ] }, { - "teal": 5172, + "teal": 5170, "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ + 4870, 4871 ] }, { - "teal": 5173, + "teal": 5171, "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 4872, - 4873 + 4872 ] }, { - "teal": 5174, + "teal": 5172, "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 4874 + 4873, + 4874, + 4875 ] }, { - "teal": 5175, - "source": "examples/reti/validatorRegistry.algo.ts:1325", + "teal": 5177, + "source": "examples/reti/validatorRegistry.algo.ts:1326", "pc": [ - 4875, - 4876, - 4877 + 4876 ] }, { - "teal": 5180, + "teal": 5178, "source": "examples/reti/validatorRegistry.algo.ts:1326", "pc": [ + 4877, 4878 ] }, { - "teal": 5181, - "source": "examples/reti/validatorRegistry.algo.ts:1326", + "teal": 5182, + "source": "examples/reti/validatorRegistry.algo.ts:1328", "pc": [ 4879, 4880 ] }, { - "teal": 5185, - "source": "examples/reti/validatorRegistry.algo.ts:1328", - "pc": [ - 4881, - 4882 - ] - }, - { - "teal": 5186, + "teal": 5183, "source": "examples/reti/validatorRegistry.algo.ts:1328", "pc": [ - 4883 + 4881 ] }, { - "teal": 5187, + "teal": 5184, "source": "examples/reti/validatorRegistry.algo.ts:1328", "pc": [ - 4884 + 4882 ] }, { - "teal": 5188, + "teal": 5185, "source": "examples/reti/validatorRegistry.algo.ts:1328", "pc": [ + 4883, + 4884, 4885, 4886, 4887, @@ -23165,235 +23159,241 @@ 4905, 4906, 4907, - 4908, - 4909, - 4910 + 4908 + ] + }, + { + "teal": 5186, + "source": "examples/reti/validatorRegistry.algo.ts:1328", + "pc": [ + 4909 ] }, { - "teal": 5189, + "teal": 5187, "source": "examples/reti/validatorRegistry.algo.ts:1328", "pc": [ + 4910, 4911 ] }, { - "teal": 5190, + "teal": 5188, "source": "examples/reti/validatorRegistry.algo.ts:1328", "pc": [ - 4912, - 4913 + 4912 ] }, { - "teal": 5191, + "teal": 5189, "source": "examples/reti/validatorRegistry.algo.ts:1328", "pc": [ + 4913, 4914 ] }, { - "teal": 5192, + "teal": 5190, "source": "examples/reti/validatorRegistry.algo.ts:1328", "pc": [ - 4915, - 4916 + 4915 ] }, { - "teal": 5193, - "source": "examples/reti/validatorRegistry.algo.ts:1328", + "teal": 5191, + "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 4917 + 4916, + 4917, + 4918 ] }, { - "teal": 5194, - "source": "examples/reti/validatorRegistry.algo.ts:1325", + "teal": 5196, + "source": "examples/reti/validatorRegistry.algo.ts:1330", "pc": [ - 4918, 4919, 4920 ] }, { - "teal": 5199, + "teal": 5197, "source": "examples/reti/validatorRegistry.algo.ts:1330", "pc": [ - 4921, - 4922 + 4921 ] }, { - "teal": 5200, + "teal": 5198, "source": "examples/reti/validatorRegistry.algo.ts:1330", "pc": [ - 4923 + 4922 ] }, { - "teal": 5201, + "teal": 5199, "source": "examples/reti/validatorRegistry.algo.ts:1330", "pc": [ + 4923, 4924 ] }, { - "teal": 5202, - "source": "examples/reti/validatorRegistry.algo.ts:1330", + "teal": 5208, + "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ 4925, 4926 ] }, { - "teal": 5211, + "teal": 5209, "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ - 4927, - 4928 + 4927 ] }, { - "teal": 5212, + "teal": 5210, "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ - 4929 + 4928 ] }, { - "teal": 5213, + "teal": 5211, "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ + 4929, 4930 ] }, { - "teal": 5214, + "teal": 5212, "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ 4931, - 4932 + 4932, + 4933 ] }, { - "teal": 5215, - "source": "examples/reti/validatorRegistry.algo.ts:1319", + "teal": 5218, + "source": "examples/reti/validatorRegistry.algo.ts:1334", "pc": [ - 4933, 4934, 4935 ] }, { - "teal": 5221, + "teal": 5219, "source": "examples/reti/validatorRegistry.algo.ts:1334", "pc": [ - 4936, - 4937 + 4936 ] }, { - "teal": 5222, + "teal": 5220, "source": "examples/reti/validatorRegistry.algo.ts:1334", "pc": [ - 4938 + 4937, + 4938, + 4939 ] }, { - "teal": 5223, - "source": "examples/reti/validatorRegistry.algo.ts:1334", + "teal": 5224, + "source": "examples/reti/validatorRegistry.algo.ts:1335", + "errorMessage": "No matching slot found when told to remove a pool from the stakers set", "pc": [ - 4939, - 4940, - 4941 + 4940 ] }, { - "teal": 5227, - "source": "examples/reti/validatorRegistry.algo.ts:1335", - "errorMessage": "No matching slot found when told to remove a pool from the stakers set", + "teal": 5229, + "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ + 4941, 4942 ] }, { - "teal": 5232, + "teal": 5230, "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 4943, - 4944 + 4943 ] }, { - "teal": 5233, + "teal": 5231, "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ + 4944, 4945 ] }, { - "teal": 5234, + "teal": 5232, "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 4946, - 4947 + 4946 ] }, { - "teal": 5235, + "teal": 5233, "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 4948 + 4947 ] }, { - "teal": 5236, + "teal": 5234, "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 4949 + 4948 ] }, { - "teal": 5237, + "teal": 5235, "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 4950 + 4949 ] }, { - "teal": 5238, + "teal": 5236, "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ + 4950, 4951 ] }, { - "teal": 5239, + "teal": 5237, "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 4952, - 4953 + 4952 ] }, { - "teal": 5240, + "teal": 5238, "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 4954 + 4953 ] }, { - "teal": 5241, + "teal": 5239, "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 4955 + 4954 ] }, { "teal": 5242, - "source": "examples/reti/validatorRegistry.algo.ts:1338", + "source": "examples/reti/validatorRegistry.algo.ts:1312", "pc": [ + 4955, 4956 ] }, @@ -23406,46 +23406,46 @@ ] }, { - "teal": 5248, + "teal": 5246, "source": "examples/reti/validatorRegistry.algo.ts:1312", "pc": [ - 4959, - 4960 + 4959 ] }, { - "teal": 5249, - "source": "examples/reti/validatorRegistry.algo.ts:1312", + "teal": 5250, + "source": "examples/reti/validatorRegistry.algo.ts:1341", "pc": [ - 4961 + 4960, + 4961, + 4962 ] }, { "teal": 5253, "source": "examples/reti/validatorRegistry.algo.ts:1341", "pc": [ - 4962, - 4963, - 4964 + 4963 ] }, { - "teal": 5256, + "teal": 5254, "source": "examples/reti/validatorRegistry.algo.ts:1341", "pc": [ + 4964, 4965 ] }, { - "teal": 5257, - "source": "examples/reti/validatorRegistry.algo.ts:1341", + "teal": 5258, + "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ 4966, 4967 ] }, { - "teal": 5261, + "teal": 5259, "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ 4968, @@ -23453,224 +23453,224 @@ ] }, { - "teal": 5262, + "teal": 5260, "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ - 4970, - 4971 + 4970 ] }, { - "teal": 5263, + "teal": 5261, "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ + 4971, 4972 ] }, { - "teal": 5264, + "teal": 5262, "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ - 4973, - 4974 + 4973 ] }, { - "teal": 5265, + "teal": 5263, "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ - 4975 + 4974 ] }, { - "teal": 5266, + "teal": 5264, "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ + 4975, 4976 ] }, { - "teal": 5267, + "teal": 5265, "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ - 4977, - 4978 + 4977 ] }, { - "teal": 5268, + "teal": 5266, "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ + 4978, 4979 ] }, { - "teal": 5269, - "source": "examples/reti/validatorRegistry.algo.ts:1342", + "teal": 5270, + "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ 4980, - 4981 + 4981, + 4982 ] }, { - "teal": 5273, + "teal": 5271, "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ - 4982, - 4983, - 4984 + 4983 ] }, { - "teal": 5274, + "teal": 5272, "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ - 4985 + 4984 ] }, { - "teal": 5275, + "teal": 5273, "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ + 4985, 4986 ] }, { - "teal": 5276, + "teal": 5274, "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ - 4987, - 4988 + 4987 ] }, { - "teal": 5277, + "teal": 5275, "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ - 4989 + 4988 ] }, { - "teal": 5278, + "teal": 5276, "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ + 4989, 4990 ] }, { - "teal": 5279, + "teal": 5277, "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ - 4991, - 4992 + 4991 ] }, { - "teal": 5280, + "teal": 5278, "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ - 4993 + 4992 ] }, { - "teal": 5281, + "teal": 5279, "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ + 4993, 4994 ] }, { - "teal": 5282, - "source": "examples/reti/validatorRegistry.algo.ts:1343", + "teal": 5283, + "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ 4995, 4996 ] }, { - "teal": 5286, + "teal": 5284, "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ - 4997, - 4998 + 4997 ] }, { - "teal": 5287, + "teal": 5285, "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ - 4999 + 4998 ] }, { - "teal": 5288, + "teal": 5286, "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ - 5000 + 4999 ] }, { - "teal": 5289, + "teal": 5287, "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ - 5001 + 5000, + 5001, + 5002 ] }, { - "teal": 5290, + "teal": 5288, "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ - 5002, 5003, 5004 ] }, { - "teal": 5291, + "teal": 5289, "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ - 5005, - 5006 + 5005 ] }, { - "teal": 5292, + "teal": 5290, "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ - 5007 + 5006 ] }, { - "teal": 5293, + "teal": 5291, "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ - 5008 + 5007 ] }, { - "teal": 5294, + "teal": 5295, "source": "examples/reti/validatorRegistry.algo.ts:1345", + "errorMessage": "node number not in valid range", "pc": [ - 5009 + 5008 ] }, { - "teal": 5298, - "source": "examples/reti/validatorRegistry.algo.ts:1345", - "errorMessage": "node number not in valid range", + "teal": 5299, + "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ - 5010 + 5009 ] }, { - "teal": 5302, + "teal": 5300, "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ + 5010, 5011 ] }, { - "teal": 5303, + "teal": 5305, "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ 5012, @@ -23678,7 +23678,7 @@ ] }, { - "teal": 5308, + "teal": 5306, "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ 5014, @@ -23686,526 +23686,526 @@ ] }, { - "teal": 5309, + "teal": 5307, "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ - 5016, - 5017 + 5016 ] }, { - "teal": 5310, + "teal": 5308, "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ - 5018 + 5017, + 5018, + 5019 ] }, { - "teal": 5311, - "source": "examples/reti/validatorRegistry.algo.ts:1347", + "teal": 5313, + "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5019, 5020, 5021 ] }, + { + "teal": 5314, + "source": "examples/reti/validatorRegistry.algo.ts:1348", + "pc": [ + 5022 + ] + }, + { + "teal": 5315, + "source": "examples/reti/validatorRegistry.algo.ts:1348", + "pc": [ + 5023, + 5024 + ] + }, { "teal": 5316, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5022, - 5023 + 5025 ] }, { "teal": 5317, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5024 + 5026 ] }, { "teal": 5318, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5025, - 5026 + 5027 ] }, { "teal": 5319, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5027 + 5028 ] }, { "teal": 5320, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5028 + 5029 ] }, { "teal": 5321, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5029 + 5030 ] }, { "teal": 5322, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5030 + 5031 ] }, { "teal": 5323, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5031 + 5032, + 5033 ] }, { "teal": 5324, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5032 + 5034 ] }, { "teal": 5325, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5033 + 5035 ] }, { "teal": 5326, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5034, - 5035 + 5036 ] }, { "teal": 5327, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5036 + 5037 ] }, { "teal": 5328, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5037 + 5038 ] }, { "teal": 5329, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5038 + 5039 ] }, { "teal": 5330, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5039 + 5040 ] }, { "teal": 5331, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5040 + 5041 ] }, { "teal": 5332, "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5041 + 5042, + 5043, + 5044 ] }, { - "teal": 5333, - "source": "examples/reti/validatorRegistry.algo.ts:1348", + "teal": 5337, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5042 + 5045, + 5046 ] }, { - "teal": 5334, - "source": "examples/reti/validatorRegistry.algo.ts:1348", + "teal": 5338, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5043 + 5047, + 5048 ] }, { - "teal": 5335, - "source": "examples/reti/validatorRegistry.algo.ts:1348", + "teal": 5339, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5044, - 5045, - 5046 + 5049 ] }, { "teal": 5340, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5047, - 5048 + 5050 ] }, { "teal": 5341, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5049, - 5050 + 5051 ] }, { "teal": 5342, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5051 + 5052 ] }, { "teal": 5343, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5052 + 5053 ] }, { "teal": 5344, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5053 + 5054 ] }, { "teal": 5345, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5054 + 5055 ] }, { "teal": 5346, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5055 + 5056, + 5057 ] }, { "teal": 5347, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5056 + 5058 ] }, { "teal": 5348, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5057 + 5059 ] }, { "teal": 5349, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5058, - 5059 + 5060 ] }, { "teal": 5350, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5060 + 5061, + 5062 ] }, { "teal": 5351, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5061 + 5063 ] }, { "teal": 5352, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5062 + 5064 ] }, { "teal": 5353, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5063, - 5064 + 5065, + 5066 ] }, { "teal": 5354, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5065 + 5067 ] }, { "teal": 5355, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5066 + 5068 ] }, { "teal": 5356, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5067, - 5068 + 5069, + 5070 ] }, { "teal": 5357, "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5069 - ] - }, - { - "teal": 5358, - "source": "examples/reti/validatorRegistry.algo.ts:1350", - "pc": [ - 5070 + 5071 ] }, { - "teal": 5359, - "source": "examples/reti/validatorRegistry.algo.ts:1350", + "teal": 5361, + "source": "examples/reti/validatorRegistry.algo.ts:1351", "pc": [ - 5071, 5072 ] }, { - "teal": 5360, - "source": "examples/reti/validatorRegistry.algo.ts:1350", - "pc": [ - 5073 - ] - }, - { - "teal": 5364, - "source": "examples/reti/validatorRegistry.algo.ts:1351", + "teal": 5368, + "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ + 5073, 5074 ] }, { - "teal": 5371, + "teal": 5369, "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ - 5075, - 5076 + 5075 ] }, { - "teal": 5372, + "teal": 5370, "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ - 5077 + 5076 ] }, { - "teal": 5373, + "teal": 5371, "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ + 5077, 5078 ] }, { - "teal": 5374, + "teal": 5372, "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ 5079, - 5080 + 5080, + 5081 ] }, { - "teal": 5375, - "source": "examples/reti/validatorRegistry.algo.ts:1347", + "teal": 5376, + "source": "examples/reti/validatorRegistry.algo.ts:1354", + "errorMessage": "no available space in specified node for this pool", "pc": [ - 5081, - 5082, - 5083 + 5082 ] }, { - "teal": 5379, - "source": "examples/reti/validatorRegistry.algo.ts:1354", - "errorMessage": "no available space in specified node for this pool", + "teal": 5377, + "source": "examples/reti/validatorRegistry.algo.ts:1341", "pc": [ - 5084 + 5083 ] }, { - "teal": 5380, - "source": "examples/reti/validatorRegistry.algo.ts:1341", + "teal": 5387, + "source": "examples/reti/validatorRegistry.algo.ts:1364", "pc": [ - 5085 + 5084, + 5085, + 5086 ] }, { "teal": 5390, "source": "examples/reti/validatorRegistry.algo.ts:1364", "pc": [ - 5086, - 5087, - 5088 + 5087 ] }, { - "teal": 5393, + "teal": 5391, "source": "examples/reti/validatorRegistry.algo.ts:1364", "pc": [ + 5088, 5089 ] }, { - "teal": 5394, - "source": "examples/reti/validatorRegistry.algo.ts:1364", + "teal": 5395, + "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ 5090, 5091 ] }, { - "teal": 5398, + "teal": 5396, "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ - 5092, - 5093 + 5092 ] }, { - "teal": 5399, + "teal": 5397, "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ - 5094 + 5093 ] }, { - "teal": 5400, + "teal": 5398, "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ + 5094, 5095 ] }, { - "teal": 5401, + "teal": 5399, "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ - 5096, - 5097 + 5096 ] }, { - "teal": 5402, + "teal": 5400, "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ - 5098 + 5097 ] }, { - "teal": 5403, + "teal": 5401, "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ + 5098, 5099 ] }, { - "teal": 5404, + "teal": 5402, "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ - 5100, - 5101 + 5100 ] }, { - "teal": 5405, + "teal": 5403, "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ - 5102 + 5101 ] }, { - "teal": 5406, + "teal": 5404, "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ + 5102, 5103 ] }, { - "teal": 5407, - "source": "examples/reti/validatorRegistry.algo.ts:1365", + "teal": 5409, + "source": "examples/reti/validatorRegistry.algo.ts:1366", "pc": [ 5104, 5105 ] }, { - "teal": 5412, + "teal": 5410, "source": "examples/reti/validatorRegistry.algo.ts:1366", "pc": [ - 5106, - 5107 + 5106 ] }, { - "teal": 5413, + "teal": 5411, "source": "examples/reti/validatorRegistry.algo.ts:1366", "pc": [ - 5108 + 5107 ] }, { - "teal": 5414, + "teal": 5412, "source": "examples/reti/validatorRegistry.algo.ts:1366", "pc": [ - 5109 + 5108, + 5109, + 5110 ] }, { - "teal": 5415, - "source": "examples/reti/validatorRegistry.algo.ts:1366", + "teal": 5417, + "source": "examples/reti/validatorRegistry.algo.ts:1367", "pc": [ - 5110, - 5111, - 5112 + 5111 ] }, { - "teal": 5420, - "source": "examples/reti/validatorRegistry.algo.ts:1367", + "teal": 5422, + "source": "examples/reti/validatorRegistry.algo.ts:1369", "pc": [ + 5112, 5113 ] }, { - "teal": 5425, + "teal": 5423, "source": "examples/reti/validatorRegistry.algo.ts:1369", "pc": [ 5114, @@ -24213,120 +24213,120 @@ ] }, { - "teal": 5426, - "source": "examples/reti/validatorRegistry.algo.ts:1369", + "teal": 5427, + "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ - 5116, - 5117 + 5116 ] }, { - "teal": 5430, + "teal": 5428, "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ + 5117, 5118 ] }, { - "teal": 5431, + "teal": 5429, "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ - 5119, - 5120 + 5119 ] }, { - "teal": 5432, + "teal": 5430, "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ + 5120, 5121 ] }, { - "teal": 5433, + "teal": 5431, "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ - 5122, - 5123 + 5122 ] }, { - "teal": 5434, + "teal": 5432, "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ - 5124 + 5123 ] }, { - "teal": 5435, + "teal": 5433, "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ + 5124, 5125 ] }, { - "teal": 5436, + "teal": 5434, "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ - 5126, - 5127 + 5126 ] }, { - "teal": 5437, + "teal": 5435, "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ + 5127, 5128 ] }, { - "teal": 5438, - "source": "examples/reti/validatorRegistry.algo.ts:1370", + "teal": 5442, + "source": "examples/reti/validatorRegistry.algo.ts:1374", "pc": [ 5129, 5130 ] }, { - "teal": 5445, + "teal": 5443, "source": "examples/reti/validatorRegistry.algo.ts:1374", "pc": [ - 5131, - 5132 + 5131 ] }, { - "teal": 5446, + "teal": 5444, "source": "examples/reti/validatorRegistry.algo.ts:1374", "pc": [ - 5133 + 5132 ] }, { - "teal": 5447, + "teal": 5445, "source": "examples/reti/validatorRegistry.algo.ts:1374", "pc": [ - 5134 + 5133 ] }, { - "teal": 5448, + "teal": 5446, "source": "examples/reti/validatorRegistry.algo.ts:1374", "pc": [ - 5135 + 5134, + 5135, + 5136 ] }, { - "teal": 5449, - "source": "examples/reti/validatorRegistry.algo.ts:1374", + "teal": 5447, + "source": "examples/reti/validatorRegistry.algo.ts:1375", "pc": [ - 5136, 5137, 5138 ] }, { - "teal": 5450, + "teal": 5448, "source": "examples/reti/validatorRegistry.algo.ts:1375", "pc": [ 5139, @@ -24334,45 +24334,45 @@ ] }, { - "teal": 5451, + "teal": 5449, "source": "examples/reti/validatorRegistry.algo.ts:1375", "pc": [ - 5141, - 5142 + 5141 ] }, { - "teal": 5452, - "source": "examples/reti/validatorRegistry.algo.ts:1375", + "teal": 5450, + "source": "examples/reti/validatorRegistry.algo.ts:1374", "pc": [ - 5143 + 5142 ] }, { "teal": 5453, - "source": "examples/reti/validatorRegistry.algo.ts:1374", + "source": "examples/reti/validatorRegistry.algo.ts:1375", "pc": [ - 5144 + 5143 ] }, { - "teal": 5456, + "teal": 5454, "source": "examples/reti/validatorRegistry.algo.ts:1375", "pc": [ - 5145 + 5144, + 5145, + 5146 ] }, { - "teal": 5457, - "source": "examples/reti/validatorRegistry.algo.ts:1375", + "teal": 5455, + "source": "examples/reti/validatorRegistry.algo.ts:1376", "pc": [ - 5146, 5147, 5148 ] }, { - "teal": 5458, + "teal": 5456, "source": "examples/reti/validatorRegistry.algo.ts:1376", "pc": [ 5149, @@ -24380,187 +24380,187 @@ ] }, { - "teal": 5459, + "teal": 5457, "source": "examples/reti/validatorRegistry.algo.ts:1376", "pc": [ - 5151, - 5152 + 5151 ] }, { - "teal": 5460, - "source": "examples/reti/validatorRegistry.algo.ts:1376", + "teal": 5458, + "source": "examples/reti/validatorRegistry.algo.ts:1375", "pc": [ - 5153 + 5152 ] }, { "teal": 5461, - "source": "examples/reti/validatorRegistry.algo.ts:1375", + "source": "examples/reti/validatorRegistry.algo.ts:1373", "pc": [ - 5154 + 5153, + 5154, + 5155 ] }, { - "teal": 5464, - "source": "examples/reti/validatorRegistry.algo.ts:1373", + "teal": 5466, + "source": "examples/reti/validatorRegistry.algo.ts:1378", "pc": [ - 5155, 5156, 5157 ] }, { - "teal": 5469, + "teal": 5467, "source": "examples/reti/validatorRegistry.algo.ts:1378", "pc": [ - 5158, - 5159 + 5158 ] }, { - "teal": 5470, + "teal": 5468, "source": "examples/reti/validatorRegistry.algo.ts:1378", "pc": [ - 5160 + 5159 ] }, { - "teal": 5471, + "teal": 5469, "source": "examples/reti/validatorRegistry.algo.ts:1378", "pc": [ - 5161 + 5160 ] }, { - "teal": 5472, - "source": "examples/reti/validatorRegistry.algo.ts:1378", + "teal": 5473, + "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ + 5161, 5162 ] }, { - "teal": 5476, + "teal": 5474, "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ - 5163, - 5164 + 5163 ] }, { - "teal": 5477, + "teal": 5475, "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ - 5165 + 5164 ] }, { - "teal": 5478, + "teal": 5476, "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ + 5165, 5166 ] }, { - "teal": 5479, + "teal": 5477, "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ - 5167, - 5168 + 5167 ] }, { - "teal": 5480, + "teal": 5478, "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ - 5169 + 5168 ] }, { - "teal": 5481, + "teal": 5479, "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ + 5169, 5170 ] }, { - "teal": 5482, + "teal": 5480, "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ - 5171, - 5172 + 5171 ] }, { - "teal": 5483, + "teal": 5481, "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ - 5173 + 5172 ] }, { - "teal": 5484, + "teal": 5482, "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ + 5173, 5174 ] }, { - "teal": 5485, - "source": "examples/reti/validatorRegistry.algo.ts:1379", + "teal": 5487, + "source": "examples/reti/validatorRegistry.algo.ts:1380", "pc": [ 5175, 5176 ] }, { - "teal": 5490, + "teal": 5488, "source": "examples/reti/validatorRegistry.algo.ts:1380", "pc": [ - 5177, - 5178 + 5177 ] }, { - "teal": 5491, + "teal": 5489, "source": "examples/reti/validatorRegistry.algo.ts:1380", "pc": [ - 5179 + 5178 ] }, { - "teal": 5492, + "teal": 5490, "source": "examples/reti/validatorRegistry.algo.ts:1380", "pc": [ - 5180 + 5179, + 5180, + 5181 ] }, { - "teal": 5493, - "source": "examples/reti/validatorRegistry.algo.ts:1380", + "teal": 5495, + "source": "examples/reti/validatorRegistry.algo.ts:1381", "pc": [ - 5181, - 5182, - 5183 + 5182 ] }, { - "teal": 5498, + "teal": 5496, "source": "examples/reti/validatorRegistry.algo.ts:1381", "pc": [ + 5183, 5184 ] }, { - "teal": 5499, - "source": "examples/reti/validatorRegistry.algo.ts:1381", + "teal": 5504, + "source": "examples/reti/validatorRegistry.algo.ts:1384", "pc": [ 5185, 5186 ] }, { - "teal": 5507, + "teal": 5505, "source": "examples/reti/validatorRegistry.algo.ts:1384", "pc": [ 5187, @@ -24568,7 +24568,7 @@ ] }, { - "teal": 5508, + "teal": 5506, "source": "examples/reti/validatorRegistry.algo.ts:1384", "pc": [ 5189, @@ -24576,76 +24576,76 @@ ] }, { - "teal": 5509, + "teal": 5507, "source": "examples/reti/validatorRegistry.algo.ts:1384", "pc": [ - 5191, - 5192 + 5191 ] }, { - "teal": 5510, + "teal": 5508, "source": "examples/reti/validatorRegistry.algo.ts:1384", "pc": [ + 5192, 5193 ] }, { - "teal": 5511, + "teal": 5509, "source": "examples/reti/validatorRegistry.algo.ts:1384", "pc": [ - 5194, - 5195 + 5194 ] }, { "teal": 5512, - "source": "examples/reti/validatorRegistry.algo.ts:1384", + "source": "examples/reti/validatorRegistry.algo.ts:1383", + "errorMessage": "must have required minimum balance of validator defined token to add stake", "pc": [ - 5196 + 5195 ] }, { - "teal": 5515, - "source": "examples/reti/validatorRegistry.algo.ts:1383", - "errorMessage": "must have required minimum balance of validator defined token to add stake", + "teal": 5518, + "source": "examples/reti/validatorRegistry.algo.ts:1388", "pc": [ + 5196, 5197 ] }, { - "teal": 5521, + "teal": 5519, "source": "examples/reti/validatorRegistry.algo.ts:1388", "pc": [ - 5198, - 5199 + 5198 ] }, { - "teal": 5522, + "teal": 5520, "source": "examples/reti/validatorRegistry.algo.ts:1388", "pc": [ - 5200 + 5199 ] }, { - "teal": 5523, + "teal": 5521, "source": "examples/reti/validatorRegistry.algo.ts:1388", "pc": [ - 5201 + 5200, + 5201, + 5202 ] }, { - "teal": 5524, - "source": "examples/reti/validatorRegistry.algo.ts:1388", + "teal": 5529, + "source": "examples/reti/validatorRegistry.algo.ts:1390", "pc": [ - 5202, 5203, 5204 ] }, { - "teal": 5532, + "teal": 5530, "source": "examples/reti/validatorRegistry.algo.ts:1390", "pc": [ 5205, @@ -24653,54 +24653,54 @@ ] }, { - "teal": 5533, + "teal": 5531, "source": "examples/reti/validatorRegistry.algo.ts:1390", "pc": [ - 5207, - 5208 + 5207 ] }, { - "teal": 5534, + "teal": 5532, "source": "examples/reti/validatorRegistry.algo.ts:1390", "pc": [ + 5208, 5209 ] }, { - "teal": 5535, + "teal": 5533, "source": "examples/reti/validatorRegistry.algo.ts:1390", "pc": [ 5210, - 5211 + 5211, + 5212 ] }, { - "teal": 5536, + "teal": 5534, "source": "examples/reti/validatorRegistry.algo.ts:1390", "pc": [ - 5212, - 5213, - 5214 + 5213 ] }, { "teal": 5537, - "source": "examples/reti/validatorRegistry.algo.ts:1390", + "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": [ - 5215 + 5214 ] }, { - "teal": 5540, - "source": "examples/reti/validatorRegistry.algo.ts:1389", - "errorMessage": "specified asset must be created by creator that the validator defined as a requirement to stake", + "teal": 5543, + "source": "examples/reti/validatorRegistry.algo.ts:1394", "pc": [ + 5215, 5216 ] }, { - "teal": 5546, + "teal": 5544, "source": "examples/reti/validatorRegistry.algo.ts:1394", "pc": [ 5217, @@ -24708,146 +24708,146 @@ ] }, { - "teal": 5547, + "teal": 5545, "source": "examples/reti/validatorRegistry.algo.ts:1394", "pc": [ - 5219, - 5220 + 5219 ] }, { - "teal": 5548, + "teal": 5546, "source": "examples/reti/validatorRegistry.algo.ts:1394", "pc": [ - 5221 + 5220, + 5221, + 5222 ] }, { - "teal": 5549, - "source": "examples/reti/validatorRegistry.algo.ts:1394", + "teal": 5551, + "source": "examples/reti/validatorRegistry.algo.ts:1395", "pc": [ - 5222, 5223, 5224 ] }, { - "teal": 5554, + "teal": 5552, "source": "examples/reti/validatorRegistry.algo.ts:1395", "pc": [ - 5225, - 5226 + 5225 ] }, { - "teal": 5555, + "teal": 5553, "source": "examples/reti/validatorRegistry.algo.ts:1395", "pc": [ - 5227 + 5226 ] }, { - "teal": 5556, + "teal": 5554, "source": "examples/reti/validatorRegistry.algo.ts:1395", "pc": [ - 5228 + 5227 ] }, { - "teal": 5557, - "source": "examples/reti/validatorRegistry.algo.ts:1395", + "teal": 5558, + "source": "examples/reti/validatorRegistry.algo.ts:1396", "pc": [ - 5229 + 5228 ] }, { - "teal": 5561, + "teal": 5559, "source": "examples/reti/validatorRegistry.algo.ts:1396", "pc": [ + 5229, 5230 ] }, { - "teal": 5562, - "source": "examples/reti/validatorRegistry.algo.ts:1396", + "teal": 5563, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ 5231, 5232 ] }, { - "teal": 5566, + "teal": 5564, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ 5233, - 5234 + 5234, + 5235 ] }, { - "teal": 5567, + "teal": 5565, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5235, - 5236, - 5237 + 5236 ] }, { - "teal": 5568, + "teal": 5566, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ + 5237, 5238 ] }, { - "teal": 5569, + "teal": 5567, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ 5239, - 5240 + 5240, + 5241 ] }, { - "teal": 5570, + "teal": 5568, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5241, - 5242, - 5243 + 5242 ] }, { - "teal": 5571, + "teal": 5569, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ + 5243, 5244 ] }, { - "teal": 5572, + "teal": 5570, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5245, - 5246 + 5245 ] }, { - "teal": 5573, + "teal": 5571, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ + 5246, 5247 ] }, { - "teal": 5574, - "source": "examples/reti/validatorRegistry.algo.ts:1397", + "teal": 5577, + "source": "examples/reti/validatorRegistry.algo.ts:1398", "pc": [ 5248, 5249 ] }, { - "teal": 5580, + "teal": 5578, "source": "examples/reti/validatorRegistry.algo.ts:1398", "pc": [ 5250, @@ -24855,108 +24855,108 @@ ] }, { - "teal": 5581, + "teal": 5579, "source": "examples/reti/validatorRegistry.algo.ts:1398", "pc": [ - 5252, - 5253 + 5252 ] }, { - "teal": 5582, + "teal": 5580, "source": "examples/reti/validatorRegistry.algo.ts:1398", "pc": [ - 5254 + 5253, + 5254, + 5255 ] }, { - "teal": 5583, - "source": "examples/reti/validatorRegistry.algo.ts:1398", + "teal": 5585, + "source": "examples/reti/validatorRegistry.algo.ts:1399", "pc": [ - 5255, - 5256, - 5257 + 5256 ] }, { - "teal": 5588, + "teal": 5586, "source": "examples/reti/validatorRegistry.algo.ts:1399", "pc": [ + 5257, 5258 ] }, { - "teal": 5589, - "source": "examples/reti/validatorRegistry.algo.ts:1399", + "teal": 5587, + "source": "examples/reti/validatorRegistry.algo.ts:1400", "pc": [ 5259, - 5260 + 5260, + 5261 ] }, { - "teal": 5590, - "source": "examples/reti/validatorRegistry.algo.ts:1400", + "teal": 5593, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5261, 5262, 5263 ] }, { - "teal": 5596, + "teal": 5594, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5264, - 5265 + 5264 ] }, { - "teal": 5597, + "teal": 5595, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5266 + 5265 ] }, { - "teal": 5598, + "teal": 5596, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5267 + 5266 ] }, { - "teal": 5599, + "teal": 5597, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ + 5267, 5268 ] }, { - "teal": 5600, + "teal": 5598, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5269, - 5270 + 5269 ] }, { - "teal": 5601, + "teal": 5599, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5271 + 5270, + 5271, + 5272 ] }, { - "teal": 5602, + "teal": 5600, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5272, 5273, 5274 ] }, { - "teal": 5603, + "teal": 5601, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ 5275, @@ -24964,7 +24964,7 @@ ] }, { - "teal": 5604, + "teal": 5602, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ 5277, @@ -24972,47 +24972,47 @@ ] }, { - "teal": 5605, + "teal": 5603, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5279, - 5280 + 5279 ] }, { - "teal": 5606, + "teal": 5604, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5281 + 5280 ] }, { - "teal": 5607, + "teal": 5605, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5282 + 5281 ] }, { - "teal": 5608, + "teal": 5606, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ + 5282, 5283 ] }, { - "teal": 5609, + "teal": 5607, "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ 5284, - 5285 + 5285, + 5286 ] }, { - "teal": 5610, - "source": "examples/reti/validatorRegistry.algo.ts:1397", + "teal": 5612, + "source": "examples/reti/validatorRegistry.algo.ts:1403", "pc": [ - 5286, 5287, 5288 ] @@ -25020,21 +25020,21 @@ { "teal": 5615, "source": "examples/reti/validatorRegistry.algo.ts:1403", + "errorMessage": "specified asset must be identical to the asset id defined as a requirement to stake", "pc": [ - 5289, - 5290 + 5289 ] }, { - "teal": 5618, - "source": "examples/reti/validatorRegistry.algo.ts:1403", - "errorMessage": "specified asset must be identical to the asset id defined as a requirement to stake", + "teal": 5621, + "source": "examples/reti/validatorRegistry.algo.ts:1405", "pc": [ + 5290, 5291 ] }, { - "teal": 5624, + "teal": 5622, "source": "examples/reti/validatorRegistry.algo.ts:1405", "pc": [ 5292, @@ -25042,31 +25042,31 @@ ] }, { - "teal": 5625, + "teal": 5623, "source": "examples/reti/validatorRegistry.algo.ts:1405", "pc": [ - 5294, - 5295 + 5294 ] }, { - "teal": 5626, + "teal": 5624, "source": "examples/reti/validatorRegistry.algo.ts:1405", "pc": [ - 5296 + 5295, + 5296, + 5297 ] }, { - "teal": 5627, - "source": "examples/reti/validatorRegistry.algo.ts:1405", + "teal": 5632, + "source": "examples/reti/validatorRegistry.algo.ts:1409", "pc": [ - 5297, 5298, 5299 ] }, { - "teal": 5635, + "teal": 5633, "source": "examples/reti/validatorRegistry.algo.ts:1409", "pc": [ 5300, @@ -25074,63 +25074,63 @@ ] }, { - "teal": 5636, + "teal": 5634, "source": "examples/reti/validatorRegistry.algo.ts:1409", "pc": [ - 5302, - 5303 + 5302 ] }, { - "teal": 5637, + "teal": 5635, "source": "examples/reti/validatorRegistry.algo.ts:1409", "pc": [ + 5303, 5304 ] }, { - "teal": 5638, + "teal": 5636, "source": "examples/reti/validatorRegistry.algo.ts:1409", "pc": [ 5305, - 5306 + 5306, + 5307 ] }, { - "teal": 5639, + "teal": 5637, "source": "examples/reti/validatorRegistry.algo.ts:1409", "pc": [ - 5307, - 5308, - 5309 + 5308 ] }, { - "teal": 5640, + "teal": 5638, "source": "examples/reti/validatorRegistry.algo.ts:1409", "pc": [ - 5310 + 5309, + 5310, + 5311 ] }, { "teal": 5641, - "source": "examples/reti/validatorRegistry.algo.ts:1409", + "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": [ - 5311, - 5312, - 5313 + 5312 ] }, { - "teal": 5644, - "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", + "teal": 5647, + "source": "examples/reti/validatorRegistry.algo.ts:1413", "pc": [ + 5313, 5314 ] }, { - "teal": 5650, + "teal": 5648, "source": "examples/reti/validatorRegistry.algo.ts:1413", "pc": [ 5315, @@ -25138,31 +25138,31 @@ ] }, { - "teal": 5651, + "teal": 5649, "source": "examples/reti/validatorRegistry.algo.ts:1413", "pc": [ - 5317, - 5318 + 5317 ] }, { - "teal": 5652, + "teal": 5650, "source": "examples/reti/validatorRegistry.algo.ts:1413", "pc": [ - 5319 + 5318, + 5319, + 5320 ] }, { - "teal": 5653, - "source": "examples/reti/validatorRegistry.algo.ts:1413", + "teal": 5655, + "source": "examples/reti/validatorRegistry.algo.ts:1415", "pc": [ - 5320, 5321, 5322 ] }, { - "teal": 5658, + "teal": 5656, "source": "examples/reti/validatorRegistry.algo.ts:1415", "pc": [ 5323, @@ -25170,40 +25170,40 @@ ] }, { - "teal": 5659, - "source": "examples/reti/validatorRegistry.algo.ts:1415", + "teal": 5660, + "source": "examples/reti/validatorRegistry.algo.ts:1416", "pc": [ 5325, 5326 ] }, { - "teal": 5663, + "teal": 5661, "source": "examples/reti/validatorRegistry.algo.ts:1416", "pc": [ 5327, - 5328 + 5328, + 5329 ] }, { "teal": 5664, "source": "examples/reti/validatorRegistry.algo.ts:1416", + "errorMessage": "provided NFD must be valid", "pc": [ - 5329, - 5330, - 5331 + 5330 ] }, { - "teal": 5667, - "source": "examples/reti/validatorRegistry.algo.ts:1416", - "errorMessage": "provided NFD must be valid", + "teal": 5672, + "source": "examples/reti/validatorRegistry.algo.ts:1420", "pc": [ + 5331, 5332 ] }, { - "teal": 5675, + "teal": 5673, "source": "examples/reti/validatorRegistry.algo.ts:1420", "pc": [ 5333, @@ -25211,61 +25211,61 @@ ] }, { - "teal": 5676, + "teal": 5674, "source": "examples/reti/validatorRegistry.algo.ts:1420", "pc": [ - 5335, - 5336 + 5335 ] }, { "teal": 5677, "source": "examples/reti/validatorRegistry.algo.ts:1420", + "errorMessage": "global state value does not exist: AppID.fromUint64(userOfferedNFDAppID).globalState('i.owner.a')", "pc": [ - 5337 + 5336 ] }, { - "teal": 5680, + "teal": 5678, "source": "examples/reti/validatorRegistry.algo.ts:1420", - "errorMessage": "global state value does not exist: AppID.fromUint64(userOfferedNFDAppID).globalState('i.owner.a')", "pc": [ + 5337, 5338 ] }, { - "teal": 5681, + "teal": 5679, "source": "examples/reti/validatorRegistry.algo.ts:1420", "pc": [ - 5339, - 5340 + 5339 ] }, { - "teal": 5682, + "teal": 5680, "source": "examples/reti/validatorRegistry.algo.ts:1420", "pc": [ - 5341 + 5340 ] }, { - "teal": 5683, + "teal": 5681, "source": "examples/reti/validatorRegistry.algo.ts:1420", "pc": [ - 5342 + 5341, + 5342, + 5343 ] }, { - "teal": 5684, - "source": "examples/reti/validatorRegistry.algo.ts:1420", + "teal": 5682, + "source": "examples/reti/validatorRegistry.algo.ts:1421", "pc": [ - 5343, 5344, 5345 ] }, { - "teal": 5685, + "teal": 5683, "source": "examples/reti/validatorRegistry.algo.ts:1421", "pc": [ 5346, @@ -25273,49 +25273,43 @@ ] }, { - "teal": 5686, + "teal": 5684, "source": "examples/reti/validatorRegistry.algo.ts:1421", "pc": [ 5348, - 5349 + 5349, + 5350 ] }, { - "teal": 5687, - "source": "examples/reti/validatorRegistry.algo.ts:1421", - "pc": [ - 5350, - 5351, - 5352 - ] - }, - { - "teal": 5688, + "teal": 5685, "source": "examples/reti/validatorRegistry.algo.ts:1420", "pc": [ - 5353 + 5351 ] }, { - "teal": 5692, + "teal": 5689, "source": "examples/reti/validatorRegistry.algo.ts:1419", "errorMessage": "provided nfd for entry isn't owned or linked to the staker", "pc": [ - 5354 + 5352 ] }, { - "teal": 5700, + "teal": 5697, "source": "examples/reti/validatorRegistry.algo.ts:1427", "pc": [ - 5355, - 5356 + 5353, + 5354 ] }, { - "teal": 5701, + "teal": 5698, "source": "examples/reti/validatorRegistry.algo.ts:1427", "pc": [ + 5355, + 5356, 5357, 5358, 5359, @@ -25328,149 +25322,155 @@ 5366, 5367, 5368, - 5369, - 5370, - 5371 + 5369 ] }, { - "teal": 5702, + "teal": 5699, "source": "examples/reti/validatorRegistry.algo.ts:1427", "pc": [ - 5372 + 5370 ] }, { - "teal": 5705, + "teal": 5702, "source": "examples/reti/validatorRegistry.algo.ts:1427", "errorMessage": "global state value does not exist: AppID.fromUint64(userOfferedNFDAppID).globalState('i.parentAppID')", "pc": [ - 5373 + 5371 ] }, { - "teal": 5706, + "teal": 5703, "source": "examples/reti/validatorRegistry.algo.ts:1427", "pc": [ - 5374 + 5372 ] }, { - "teal": 5707, + "teal": 5704, "source": "examples/reti/validatorRegistry.algo.ts:1428", "pc": [ - 5375, - 5376 + 5373, + 5374 ] }, { - "teal": 5708, + "teal": 5705, "source": "examples/reti/validatorRegistry.algo.ts:1428", "pc": [ - 5377, - 5378, - 5379 + 5375, + 5376, + 5377 ] }, { - "teal": 5709, + "teal": 5706, "source": "examples/reti/validatorRegistry.algo.ts:1428", "pc": [ - 5380 + 5378 ] }, { - "teal": 5710, + "teal": 5707, "source": "examples/reti/validatorRegistry.algo.ts:1427", "pc": [ - 5381 + 5379 ] }, { - "teal": 5713, + "teal": 5710, "source": "examples/reti/validatorRegistry.algo.ts:1426", "errorMessage": "specified nfd must be a segment of the nfd the validator specified as a requirement", "pc": [ - 5382 + 5380 ] }, { - "teal": 5716, + "teal": 5713, "source": "examples/reti/validatorRegistry.algo.ts:1364", "pc": [ - 5383 + 5381 ] }, { - "teal": 5728, + "teal": 5725, "source": "examples/reti/validatorRegistry.algo.ts:1443", "pc": [ - 5384, - 5385, - 5386 + 5382, + 5383, + 5384 ] }, { - "teal": 5731, + "teal": 5728, "source": "examples/reti/validatorRegistry.algo.ts:1443", "pc": [ - 5387 + 5385 ] }, { - "teal": 5735, + "teal": 5732, "source": "examples/reti/validatorRegistry.algo.ts:1445", "pc": [ - 5388, - 5389 + 5386, + 5387 ] }, { - "teal": 5736, + "teal": 5733, "source": "examples/reti/validatorRegistry.algo.ts:1445", "pc": [ + 5388, + 5389, 5390, 5391, 5392, 5393, 5394, - 5395, - 5396, - 5397 + 5395 ] }, { - "teal": 5737, + "teal": 5734, "source": "examples/reti/validatorRegistry.algo.ts:1445", "pc": [ - 5398 + 5396 ] }, { - "teal": 5740, + "teal": 5737, "source": "examples/reti/validatorRegistry.algo.ts:1445", "errorMessage": "global state value does not exist: AppID.fromUint64(nfdAppID).globalState('i.name')", "pc": [ - 5399 + 5397 ] }, { - "teal": 5741, + "teal": 5738, "source": "examples/reti/validatorRegistry.algo.ts:1445", "pc": [ - 5400, - 5401 + 5398, + 5399 + ] + }, + { + "teal": 5746, + "source": "examples/reti/validatorRegistry.algo.ts:1447", + "pc": [ + 5400 ] }, { - "teal": 5749, + "teal": 5747, "source": "examples/reti/validatorRegistry.algo.ts:1447", "pc": [ + 5401, 5402 ] }, { - "teal": 5750, + "teal": 5748, "source": "examples/reti/validatorRegistry.algo.ts:1447", "pc": [ 5403, @@ -25478,15 +25478,15 @@ ] }, { - "teal": 5751, - "source": "examples/reti/validatorRegistry.algo.ts:1447", + "teal": 5752, + "source": "examples/reti/validatorRegistry.algo.ts:1448", "pc": [ 5405, 5406 ] }, { - "teal": 5755, + "teal": 5753, "source": "examples/reti/validatorRegistry.algo.ts:1448", "pc": [ 5407, @@ -25494,15 +25494,15 @@ ] }, { - "teal": 5756, - "source": "examples/reti/validatorRegistry.algo.ts:1448", + "teal": 5757, + "source": "examples/reti/validatorRegistry.algo.ts:1449", "pc": [ 5409, 5410 ] }, { - "teal": 5760, + "teal": 5758, "source": "examples/reti/validatorRegistry.algo.ts:1449", "pc": [ 5411, @@ -25510,7 +25510,7 @@ ] }, { - "teal": 5761, + "teal": 5759, "source": "examples/reti/validatorRegistry.algo.ts:1449", "pc": [ 5413, @@ -25518,7 +25518,7 @@ ] }, { - "teal": 5762, + "teal": 5760, "source": "examples/reti/validatorRegistry.algo.ts:1449", "pc": [ 5415, @@ -25526,7 +25526,7 @@ ] }, { - "teal": 5763, + "teal": 5761, "source": "examples/reti/validatorRegistry.algo.ts:1449", "pc": [ 5417, @@ -25534,30 +25534,30 @@ ] }, { - "teal": 5764, + "teal": 5762, "source": "examples/reti/validatorRegistry.algo.ts:1449", "pc": [ - 5419, - 5420 + 5419 ] }, { - "teal": 5765, + "teal": 5763, "source": "examples/reti/validatorRegistry.algo.ts:1449", "pc": [ + 5420, 5421 ] }, { - "teal": 5766, - "source": "examples/reti/validatorRegistry.algo.ts:1449", + "teal": 5767, + "source": "examples/reti/validatorRegistry.algo.ts:1450", "pc": [ 5422, 5423 ] }, { - "teal": 5770, + "teal": 5768, "source": "examples/reti/validatorRegistry.algo.ts:1450", "pc": [ 5424, @@ -25566,16 +25566,16 @@ }, { "teal": 5771, - "source": "examples/reti/validatorRegistry.algo.ts:1450", + "source": "examples/reti/validatorRegistry.algo.ts:1447", "pc": [ - 5426, - 5427 + 5426 ] }, { - "teal": 5774, + "teal": 5772, "source": "examples/reti/validatorRegistry.algo.ts:1447", "pc": [ + 5427, 5428 ] }, @@ -25583,94 +25583,94 @@ "teal": 5775, "source": "examples/reti/validatorRegistry.algo.ts:1447", "pc": [ - 5429, - 5430 + 5429 ] }, { - "teal": 5778, - "source": "examples/reti/validatorRegistry.algo.ts:1447", + "teal": 5779, + "source": "examples/reti/validatorRegistry.algo.ts:1452", "pc": [ + 5430, 5431 ] }, { - "teal": 5782, + "teal": 5780, "source": "examples/reti/validatorRegistry.algo.ts:1452", "pc": [ - 5432, - 5433 + 5432 ] }, { - "teal": 5783, + "teal": 5781, "source": "examples/reti/validatorRegistry.algo.ts:1452", "pc": [ - 5434 + 5433 ] }, { - "teal": 5784, + "teal": 5782, "source": "examples/reti/validatorRegistry.algo.ts:1452", "pc": [ - 5435 + 5434 ] }, { "teal": 5785, - "source": "examples/reti/validatorRegistry.algo.ts:1452", + "source": "examples/reti/validatorRegistry.algo.ts:1443", "pc": [ + 5435, 5436 ] }, { - "teal": 5788, + "teal": 5786, "source": "examples/reti/validatorRegistry.algo.ts:1443", "pc": [ - 5437, - 5438 + 5437 ] }, { - "teal": 5789, - "source": "examples/reti/validatorRegistry.algo.ts:1443", + "teal": 5797, + "source": "examples/reti/validatorRegistry.algo.ts:1463", "pc": [ - 5439 + 5438, + 5439, + 5440 ] }, { "teal": 5800, "source": "examples/reti/validatorRegistry.algo.ts:1463", "pc": [ - 5440, - 5441, - 5442 + 5441 ] }, { - "teal": 5803, + "teal": 5801, "source": "examples/reti/validatorRegistry.algo.ts:1463", "pc": [ + 5442, 5443 ] }, { - "teal": 5804, - "source": "examples/reti/validatorRegistry.algo.ts:1463", + "teal": 5808, + "source": "examples/reti/validatorRegistry.algo.ts:1464", "pc": [ - 5444, - 5445 + 5444 ] }, { - "teal": 5811, + "teal": 5809, "source": "examples/reti/validatorRegistry.algo.ts:1464", "pc": [ + 5445, 5446 ] }, { - "teal": 5812, + "teal": 5810, "source": "examples/reti/validatorRegistry.algo.ts:1464", "pc": [ 5447, @@ -25678,15 +25678,15 @@ ] }, { - "teal": 5813, - "source": "examples/reti/validatorRegistry.algo.ts:1464", + "teal": 5814, + "source": "examples/reti/validatorRegistry.algo.ts:1465", "pc": [ 5449, 5450 ] }, { - "teal": 5817, + "teal": 5815, "source": "examples/reti/validatorRegistry.algo.ts:1465", "pc": [ 5451, @@ -25694,17 +25694,11 @@ ] }, { - "teal": 5818, - "source": "examples/reti/validatorRegistry.algo.ts:1465", - "pc": [ - 5453, - 5454 - ] - }, - { - "teal": 5822, + "teal": 5819, "source": "examples/reti/validatorRegistry.algo.ts:1466", "pc": [ + 5453, + 5454, 5455, 5456, 5457, @@ -25717,23 +25711,23 @@ 5464, 5465, 5466, - 5467, - 5468, - 5469 + 5467 ] }, { - "teal": 5823, + "teal": 5820, "source": "examples/reti/validatorRegistry.algo.ts:1466", "pc": [ - 5470, - 5471 + 5468, + 5469 ] }, { - "teal": 5824, + "teal": 5821, "source": "examples/reti/validatorRegistry.algo.ts:1466", "pc": [ + 5470, + 5471, 5472, 5473, 5474, @@ -25746,23 +25740,29 @@ 5481, 5482, 5483, - 5484, + 5484 + ] + }, + { + "teal": 5822, + "source": "examples/reti/validatorRegistry.algo.ts:1466", + "pc": [ 5485, 5486 ] }, { "teal": 5825, - "source": "examples/reti/validatorRegistry.algo.ts:1466", + "source": "examples/reti/validatorRegistry.algo.ts:1464", "pc": [ - 5487, - 5488 + 5487 ] }, { - "teal": 5828, + "teal": 5826, "source": "examples/reti/validatorRegistry.algo.ts:1464", "pc": [ + 5488, 5489 ] }, @@ -25770,19 +25770,19 @@ "teal": 5829, "source": "examples/reti/validatorRegistry.algo.ts:1464", "pc": [ - 5490, - 5491 + 5490 ] }, { - "teal": 5832, - "source": "examples/reti/validatorRegistry.algo.ts:1464", + "teal": 5833, + "source": "examples/reti/validatorRegistry.algo.ts:1468", "pc": [ + 5491, 5492 ] }, { - "teal": 5836, + "teal": 5834, "source": "examples/reti/validatorRegistry.algo.ts:1468", "pc": [ 5493, @@ -25790,22 +25790,22 @@ ] }, { - "teal": 5837, - "source": "examples/reti/validatorRegistry.algo.ts:1468", + "teal": 5838, + "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ - 5495, - 5496 + 5495 ] }, { - "teal": 5841, + "teal": 5839, "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ + 5496, 5497 ] }, { - "teal": 5842, + "teal": 5844, "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ 5498, @@ -25813,7 +25813,7 @@ ] }, { - "teal": 5847, + "teal": 5845, "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ 5500, @@ -25821,38 +25821,38 @@ ] }, { - "teal": 5848, + "teal": 5846, "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ - 5502, - 5503 + 5502 ] }, { - "teal": 5849, + "teal": 5847, "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ - 5504 + 5503 ] }, { - "teal": 5850, + "teal": 5848, "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ - 5505 + 5504, + 5505, + 5506 ] }, { - "teal": 5851, - "source": "examples/reti/validatorRegistry.algo.ts:1469", + "teal": 5852, + "source": "examples/reti/validatorRegistry.algo.ts:1470", "pc": [ - 5506, 5507, 5508 ] }, { - "teal": 5855, + "teal": 5853, "source": "examples/reti/validatorRegistry.algo.ts:1470", "pc": [ 5509, @@ -25860,7 +25860,7 @@ ] }, { - "teal": 5856, + "teal": 5854, "source": "examples/reti/validatorRegistry.algo.ts:1470", "pc": [ 5511, @@ -25868,30 +25868,30 @@ ] }, { - "teal": 5857, + "teal": 5855, "source": "examples/reti/validatorRegistry.algo.ts:1470", "pc": [ - 5513, - 5514 + 5513 ] }, { - "teal": 5858, + "teal": 5856, "source": "examples/reti/validatorRegistry.algo.ts:1470", "pc": [ + 5514, 5515 ] }, { - "teal": 5859, - "source": "examples/reti/validatorRegistry.algo.ts:1470", + "teal": 5861, + "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ 5516, 5517 ] }, { - "teal": 5864, + "teal": 5862, "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ 5518, @@ -25899,38 +25899,38 @@ ] }, { - "teal": 5865, + "teal": 5863, "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ - 5520, - 5521 + 5520 ] }, { - "teal": 5866, + "teal": 5864, "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ - 5522 + 5521 ] }, { - "teal": 5867, + "teal": 5865, "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ - 5523 + 5522, + 5523, + 5524 ] }, { - "teal": 5868, + "teal": 5866, "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ - 5524, 5525, 5526 ] }, { - "teal": 5869, + "teal": 5867, "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ 5527, @@ -25938,54 +25938,54 @@ ] }, { - "teal": 5870, + "teal": 5868, "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ - 5529, - 5530 + 5529 ] }, { - "teal": 5871, + "teal": 5869, "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ - 5531 + 5530 ] }, { "teal": 5872, "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ - 5532 + 5531, + 5532, + 5533 ] }, { - "teal": 5875, - "source": "examples/reti/validatorRegistry.algo.ts:1471", + "teal": 5877, + "source": "examples/reti/validatorRegistry.algo.ts:1472", "pc": [ - 5533, - 5534, - 5535 + 5534 ] }, { - "teal": 5880, + "teal": 5878, "source": "examples/reti/validatorRegistry.algo.ts:1472", "pc": [ - 5536 + 5535, + 5536, + 5537 ] }, { - "teal": 5881, - "source": "examples/reti/validatorRegistry.algo.ts:1472", + "teal": 5885, + "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ - 5537, 5538, 5539 ] }, { - "teal": 5888, + "teal": 5886, "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ 5540, @@ -25993,41 +25993,41 @@ ] }, { - "teal": 5889, + "teal": 5887, "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ - 5542, - 5543 + 5542 ] }, { - "teal": 5890, + "teal": 5888, "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ + 5543, 5544 ] }, { - "teal": 5891, + "teal": 5889, "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ 5545, - 5546 + 5546, + 5547 ] }, { - "teal": 5892, - "source": "examples/reti/validatorRegistry.algo.ts:1469", + "teal": 5894, + "source": "examples/reti/validatorRegistry.algo.ts:1475", "pc": [ - 5547, - 5548, - 5549 + 5548 ] }, { - "teal": 5897, - "source": "examples/reti/validatorRegistry.algo.ts:1475", + "teal": 5898, + "source": "examples/reti/validatorRegistry.algo.ts:1463", "pc": [ + 5549, 5550 ] }, @@ -26040,55 +26040,55 @@ ] }, { - "teal": 5904, + "teal": 5902, "source": "examples/reti/validatorRegistry.algo.ts:1463", "pc": [ - 5553, - 5554 + 5553 ] }, { - "teal": 5905, - "source": "examples/reti/validatorRegistry.algo.ts:1463", + "teal": 5910, + "source": "examples/reti/validatorRegistry.algo.ts:1483", "pc": [ - 5555 + 5554, + 5555, + 5556 ] }, { "teal": 5913, "source": "examples/reti/validatorRegistry.algo.ts:1483", "pc": [ - 5556, - 5557, - 5558 + 5557 ] }, { - "teal": 5916, - "source": "examples/reti/validatorRegistry.algo.ts:1483", + "teal": 5917, + "source": "examples/reti/validatorRegistry.algo.ts:1484", "pc": [ - 5559 + 5558, + 5559, + 5560 ] }, { - "teal": 5920, + "teal": 5918, "source": "examples/reti/validatorRegistry.algo.ts:1484", "pc": [ - 5560, 5561, 5562 ] }, { - "teal": 5921, - "source": "examples/reti/validatorRegistry.algo.ts:1484", + "teal": 5922, + "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ 5563, 5564 ] }, { - "teal": 5925, + "teal": 5923, "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ 5565, @@ -26096,302 +26096,302 @@ ] }, { - "teal": 5926, + "teal": 5924, "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ - 5567, - 5568 + 5567 ] }, { - "teal": 5927, + "teal": 5925, "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ - 5569 + 5568 ] }, { - "teal": 5928, + "teal": 5926, "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ + 5569, 5570 ] }, { - "teal": 5929, + "teal": 5927, "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ - 5571, - 5572 + 5571 ] }, { - "teal": 5930, + "teal": 5928, "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ - 5573 + 5572 ] }, { - "teal": 5931, + "teal": 5929, "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ - 5574 + 5573 ] }, { - "teal": 5932, + "teal": 5930, "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ - 5575 + 5574 ] }, { - "teal": 5933, + "teal": 5931, "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ - 5576 + 5575 ] }, { "teal": 5934, "source": "examples/reti/validatorRegistry.algo.ts:1486", + "errorMessage": "wideRatio failed", "pc": [ - 5577 + 5576 ] }, { "teal": 5937, - "source": "examples/reti/validatorRegistry.algo.ts:1486", - "errorMessage": "wideRatio failed", + "source": "examples/reti/validatorRegistry.algo.ts:1483", "pc": [ + 5577, 5578 ] }, { - "teal": 5940, + "teal": 5938, "source": "examples/reti/validatorRegistry.algo.ts:1483", "pc": [ - 5579, - 5580 + 5579 ] }, { - "teal": 5941, - "source": "examples/reti/validatorRegistry.algo.ts:1483", + "teal": 5945, + "source": "examples/reti/validatorRegistry.algo.ts:1493", "pc": [ - 5581 + 5580, + 5581, + 5582 ] }, { "teal": 5948, "source": "examples/reti/validatorRegistry.algo.ts:1493", "pc": [ - 5582, - 5583, - 5584 + 5583 ] }, { - "teal": 5951, - "source": "examples/reti/validatorRegistry.algo.ts:1493", + "teal": 5952, + "source": "examples/reti/validatorRegistry.algo.ts:1494", "pc": [ - 5585 + 5584, + 5585, + 5586 ] }, { - "teal": 5955, + "teal": 5953, "source": "examples/reti/validatorRegistry.algo.ts:1494", "pc": [ - 5586, 5587, 5588 ] }, { - "teal": 5956, - "source": "examples/reti/validatorRegistry.algo.ts:1494", + "teal": 5957, + "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ 5589, 5590 ] }, { - "teal": 5960, + "teal": 5958, "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ 5591, - 5592 + 5592, + 5593 ] }, { - "teal": 5961, + "teal": 5959, "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ - 5593, - 5594, - 5595 + 5594 ] }, { - "teal": 5962, + "teal": 5960, "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ - 5596 + 5595 ] }, { - "teal": 5963, + "teal": 5961, "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ + 5596, 5597 ] }, { - "teal": 5964, + "teal": 5962, "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ - 5598, - 5599 + 5598 ] }, { - "teal": 5965, + "teal": 5963, "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ - 5600 + 5599 ] }, { - "teal": 5966, + "teal": 5964, "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ - 5601 + 5600 ] }, { - "teal": 5967, + "teal": 5965, "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ - 5602 + 5601 ] }, { - "teal": 5968, + "teal": 5966, "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ - 5603 + 5602 ] }, { "teal": 5969, "source": "examples/reti/validatorRegistry.algo.ts:1496", - "pc": [ - 5604 - ] - }, - { - "teal": 5972, - "source": "examples/reti/validatorRegistry.algo.ts:1496", "errorMessage": "wideRatio failed", "pc": [ - 5605 + 5603 ] }, { - "teal": 5975, + "teal": 5972, "source": "examples/reti/validatorRegistry.algo.ts:1493", "pc": [ - 5606, - 5607 + 5604, + 5605 ] }, { - "teal": 5976, + "teal": 5973, "source": "examples/reti/validatorRegistry.algo.ts:1493", "pc": [ - 5608 + 5606 ] }, { - "teal": 5982, + "teal": 5979, "source": "examples/reti/validatorRegistry.algo.ts:1502", "pc": [ - 5609, - 5610, - 5611 + 5607, + 5608, + 5609 ] }, { - "teal": 5986, + "teal": 5983, "source": "examples/reti/validatorRegistry.algo.ts:1504", "pc": [ + 5610, + 5611, 5612, 5613, 5614, 5615, 5616, - 5617, - 5618, - 5619 + 5617 ] }, { - "teal": 5987, + "teal": 5984, "source": "examples/reti/validatorRegistry.algo.ts:1502", "pc": [ - 5620 + 5618 ] }, { - "teal": 5991, + "teal": 5988, "source": "examples/reti/validatorRegistry.algo.ts:1507", "pc": [ - 5621, - 5622, - 5623 + 5619, + 5620, + 5621 ] }, { - "teal": 5995, + "teal": 5992, "source": "examples/reti/validatorRegistry.algo.ts:1509", "pc": [ + 5622, + 5623, 5624, 5625, 5626, 5627, 5628, 5629, - 5630, - 5631, - 5632 + 5630 ] }, { - "teal": 5996, + "teal": 5993, "source": "examples/reti/validatorRegistry.algo.ts:1507", "pc": [ - 5633 + 5631 ] }, { - "teal": 6000, + "teal": 5997, "source": "examples/reti/validatorRegistry.algo.ts:1512", "pc": [ - 5634, - 5635, - 5636 + 5632, + 5633, + 5634 ] }, { - "teal": 6003, + "teal": 6000, "source": "examples/reti/validatorRegistry.algo.ts:1512", "pc": [ + 5635 + ] + }, + { + "teal": 6004, + "source": "examples/reti/validatorRegistry.algo.ts:1521", + "pc": [ + 5636, 5637 ] }, { - "teal": 6007, + "teal": 6005, "source": "examples/reti/validatorRegistry.algo.ts:1521", "pc": [ 5638, @@ -26399,15 +26399,15 @@ ] }, { - "teal": 6008, - "source": "examples/reti/validatorRegistry.algo.ts:1521", + "teal": 6009, + "source": "examples/reti/validatorRegistry.algo.ts:1522", "pc": [ 5640, 5641 ] }, { - "teal": 6012, + "teal": 6010, "source": "examples/reti/validatorRegistry.algo.ts:1522", "pc": [ 5642, @@ -26415,7 +26415,7 @@ ] }, { - "teal": 6013, + "teal": 6011, "source": "examples/reti/validatorRegistry.algo.ts:1522", "pc": [ 5644, @@ -26423,37 +26423,37 @@ ] }, { - "teal": 6014, + "teal": 6012, "source": "examples/reti/validatorRegistry.algo.ts:1522", "pc": [ - 5646, - 5647 + 5646 ] }, { - "teal": 6015, + "teal": 6013, "source": "examples/reti/validatorRegistry.algo.ts:1522", "pc": [ - 5648 + 5647 ] }, { - "teal": 6016, + "teal": 6014, "source": "examples/reti/validatorRegistry.algo.ts:1522", "pc": [ + 5648, 5649 ] }, { - "teal": 6017, - "source": "examples/reti/validatorRegistry.algo.ts:1522", + "teal": 6018, + "source": "examples/reti/validatorRegistry.algo.ts:1523", "pc": [ 5650, 5651 ] }, { - "teal": 6021, + "teal": 6019, "source": "examples/reti/validatorRegistry.algo.ts:1523", "pc": [ 5652, @@ -26461,7 +26461,7 @@ ] }, { - "teal": 6022, + "teal": 6020, "source": "examples/reti/validatorRegistry.algo.ts:1523", "pc": [ 5654, @@ -26469,37 +26469,37 @@ ] }, { - "teal": 6023, + "teal": 6021, "source": "examples/reti/validatorRegistry.algo.ts:1523", "pc": [ - 5656, - 5657 + 5656 ] }, { - "teal": 6024, + "teal": 6022, "source": "examples/reti/validatorRegistry.algo.ts:1523", "pc": [ - 5658 + 5657 ] }, { - "teal": 6025, + "teal": 6023, "source": "examples/reti/validatorRegistry.algo.ts:1523", "pc": [ + 5658, 5659 ] }, { - "teal": 6026, - "source": "examples/reti/validatorRegistry.algo.ts:1523", + "teal": 6027, + "source": "examples/reti/validatorRegistry.algo.ts:1524", "pc": [ 5660, 5661 ] }, { - "teal": 6030, + "teal": 6028, "source": "examples/reti/validatorRegistry.algo.ts:1524", "pc": [ 5662, @@ -26507,7 +26507,7 @@ ] }, { - "teal": 6031, + "teal": 6029, "source": "examples/reti/validatorRegistry.algo.ts:1524", "pc": [ 5664, @@ -26515,37 +26515,37 @@ ] }, { - "teal": 6032, + "teal": 6030, "source": "examples/reti/validatorRegistry.algo.ts:1524", "pc": [ - 5666, - 5667 + 5666 ] }, { - "teal": 6033, + "teal": 6031, "source": "examples/reti/validatorRegistry.algo.ts:1524", "pc": [ - 5668 + 5667 ] }, { - "teal": 6034, + "teal": 6032, "source": "examples/reti/validatorRegistry.algo.ts:1524", "pc": [ + 5668, 5669 ] }, { - "teal": 6035, - "source": "examples/reti/validatorRegistry.algo.ts:1524", + "teal": 6036, + "source": "examples/reti/validatorRegistry.algo.ts:1525", "pc": [ 5670, 5671 ] }, { - "teal": 6039, + "teal": 6037, "source": "examples/reti/validatorRegistry.algo.ts:1525", "pc": [ 5672, @@ -26553,7 +26553,7 @@ ] }, { - "teal": 6040, + "teal": 6038, "source": "examples/reti/validatorRegistry.algo.ts:1525", "pc": [ 5674, @@ -26561,37 +26561,37 @@ ] }, { - "teal": 6041, + "teal": 6039, "source": "examples/reti/validatorRegistry.algo.ts:1525", "pc": [ - 5676, - 5677 + 5676 ] }, { - "teal": 6042, + "teal": 6040, "source": "examples/reti/validatorRegistry.algo.ts:1525", "pc": [ - 5678 + 5677 ] }, { - "teal": 6043, + "teal": 6041, "source": "examples/reti/validatorRegistry.algo.ts:1525", "pc": [ + 5678, 5679 ] }, { - "teal": 6044, - "source": "examples/reti/validatorRegistry.algo.ts:1525", + "teal": 6045, + "source": "examples/reti/validatorRegistry.algo.ts:1526", "pc": [ 5680, 5681 ] }, { - "teal": 6048, + "teal": 6046, "source": "examples/reti/validatorRegistry.algo.ts:1526", "pc": [ 5682, @@ -26599,7 +26599,7 @@ ] }, { - "teal": 6049, + "teal": 6047, "source": "examples/reti/validatorRegistry.algo.ts:1526", "pc": [ 5684, @@ -26607,37 +26607,37 @@ ] }, { - "teal": 6050, + "teal": 6048, "source": "examples/reti/validatorRegistry.algo.ts:1526", "pc": [ - 5686, - 5687 + 5686 ] }, { - "teal": 6051, + "teal": 6049, "source": "examples/reti/validatorRegistry.algo.ts:1526", "pc": [ - 5688 + 5687 ] }, { - "teal": 6052, + "teal": 6050, "source": "examples/reti/validatorRegistry.algo.ts:1526", "pc": [ + 5688, 5689 ] }, { - "teal": 6053, - "source": "examples/reti/validatorRegistry.algo.ts:1526", + "teal": 6054, + "source": "examples/reti/validatorRegistry.algo.ts:1527", "pc": [ 5690, 5691 ] }, { - "teal": 6057, + "teal": 6055, "source": "examples/reti/validatorRegistry.algo.ts:1527", "pc": [ 5692, @@ -26645,7 +26645,7 @@ ] }, { - "teal": 6058, + "teal": 6056, "source": "examples/reti/validatorRegistry.algo.ts:1527", "pc": [ 5694, @@ -26653,37 +26653,37 @@ ] }, { - "teal": 6059, + "teal": 6057, "source": "examples/reti/validatorRegistry.algo.ts:1527", "pc": [ - 5696, - 5697 + 5696 ] }, { - "teal": 6060, + "teal": 6058, "source": "examples/reti/validatorRegistry.algo.ts:1527", "pc": [ - 5698 + 5697 ] }, { - "teal": 6061, + "teal": 6059, "source": "examples/reti/validatorRegistry.algo.ts:1527", "pc": [ + 5698, 5699 ] }, { - "teal": 6062, - "source": "examples/reti/validatorRegistry.algo.ts:1527", + "teal": 6063, + "source": "examples/reti/validatorRegistry.algo.ts:1528", "pc": [ 5700, 5701 ] }, { - "teal": 6066, + "teal": 6064, "source": "examples/reti/validatorRegistry.algo.ts:1528", "pc": [ 5702, @@ -26691,7 +26691,7 @@ ] }, { - "teal": 6067, + "teal": 6065, "source": "examples/reti/validatorRegistry.algo.ts:1528", "pc": [ 5704, @@ -26699,30 +26699,30 @@ ] }, { - "teal": 6068, + "teal": 6066, "source": "examples/reti/validatorRegistry.algo.ts:1528", "pc": [ - 5706, - 5707 + 5706 ] }, { - "teal": 6069, + "teal": 6067, "source": "examples/reti/validatorRegistry.algo.ts:1528", "pc": [ - 5708 + 5707 ] }, { - "teal": 6070, + "teal": 6068, "source": "examples/reti/validatorRegistry.algo.ts:1528", "pc": [ + 5708, 5709 ] }, { - "teal": 6071, - "source": "examples/reti/validatorRegistry.algo.ts:1528", + "teal": 6072, + "source": "examples/reti/validatorRegistry.algo.ts:1529", "pc": [ 5710, 5711 @@ -26730,531 +26730,525 @@ }, { "teal": 6075, - "source": "examples/reti/validatorRegistry.algo.ts:1529", + "source": "examples/reti/validatorRegistry.algo.ts:1512", "pc": [ 5712, 5713 ] }, { - "teal": 6078, + "teal": 6076, "source": "examples/reti/validatorRegistry.algo.ts:1512", "pc": [ - 5714, - 5715 + 5714 ] }, { - "teal": 6079, - "source": "examples/reti/validatorRegistry.algo.ts:1512", + "teal": 6080, + "source": "examples/reti/validatorRegistry.algo.ts:1532", "pc": [ - 5716 + 5715, + 5716, + 5717 ] }, { - "teal": 6083, - "source": "examples/reti/validatorRegistry.algo.ts:1532", + "teal": 6084, + "source": "examples/reti/validatorRegistry.algo.ts:1536", "pc": [ - 5717, 5718, - 5719 + 5719, + 5720 ] }, { - "teal": 6087, + "teal": 6085, "source": "examples/reti/validatorRegistry.algo.ts:1536", "pc": [ - 5720, 5721, 5722 ] }, { - "teal": 6088, + "teal": 6086, "source": "examples/reti/validatorRegistry.algo.ts:1536", "pc": [ 5723, - 5724 - ] - }, - { - "teal": 6089, - "source": "examples/reti/validatorRegistry.algo.ts:1536", - "pc": [ - 5725, - 5726, - 5727 + 5724, + 5725 ] }, { - "teal": 6090, + "teal": 6087, "source": "examples/reti/validatorRegistry.algo.ts:1536", "pc": [ - 5728 + 5726 ] }, { - "teal": 6091, + "teal": 6088, "source": "examples/reti/validatorRegistry.algo.ts:1536", "pc": [ - 5729 + 5727 ] }, { - "teal": 6092, + "teal": 6089, "source": "examples/reti/validatorRegistry.algo.ts:1532", "pc": [ - 5730 + 5728 ] }, { - "teal": 6095, + "teal": 6092, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5729, + 5730, 5731, 5732, 5733, - 5734, - 5735, - 5736 + 5734 ] }, { - "teal": 6096, + "teal": 6093, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 5737, - 5738, - 5739 + 5735, + 5736, + 5737 ] }, { - "teal": 6097, + "teal": 6094, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5738, + 5739, 5740, - 5741, - 5742, - 5743 + 5741 ] }, { - "teal": 6100, + "teal": 6097, "source": "examples/reti/validatorRegistry.algo.ts:168", "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ - 5744 + 5742 ] }, { - "teal": 6103, + "teal": 6100, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5743, + 5744, 5745, 5746, 5747, - 5748, - 5749, - 5750 + 5748 ] }, { - "teal": 6104, + "teal": 6101, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5749, + 5750, 5751, 5752, 5753, - 5754, - 5755, - 5756 + 5754 ] }, { - "teal": 6105, + "teal": 6102, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5755, + 5756, 5757, 5758, 5759, - 5760, - 5761, - 5762 + 5760 ] }, { - "teal": 6106, + "teal": 6103, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5761, + 5762, 5763, 5764, 5765, - 5766, - 5767, - 5768 + 5766 ] }, { - "teal": 6107, + "teal": 6104, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5767, + 5768, 5769, 5770, 5771, - 5772, - 5773, - 5774 + 5772 ] }, { - "teal": 6108, + "teal": 6105, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5773, + 5774, 5775, 5776, 5777, - 5778, - 5779, - 5780 + 5778 ] }, { - "teal": 6109, + "teal": 6106, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5779, + 5780, 5781, 5782, 5783, - 5784, - 5785, - 5786 + 5784 ] }, { - "teal": 6110, + "teal": 6107, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5785, + 5786, 5787, 5788, 5789, - 5790, - 5791, - 5792 + 5790 ] }, { - "teal": 6111, + "teal": 6108, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5791, + 5792, 5793, 5794, 5795, - 5796, - 5797, - 5798 + 5796 ] }, { - "teal": 6112, + "teal": 6109, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5797, + 5798, 5799, 5800, 5801, - 5802, - 5803, - 5804 + 5802 ] }, { - "teal": 6113, + "teal": 6110, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5803, + 5804, 5805, 5806, 5807, - 5808, - 5809, - 5810 + 5808 ] }, { - "teal": 6114, + "teal": 6111, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5809, + 5810, 5811, 5812, 5813, - 5814, - 5815, - 5816 + 5814 ] }, { - "teal": 6115, + "teal": 6112, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5815, + 5816, 5817, 5818, 5819, - 5820, - 5821, - 5822 + 5820 ] }, { - "teal": 6116, + "teal": 6113, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5821, + 5822, 5823, 5824, 5825, - 5826, - 5827, - 5828 + 5826 ] }, { - "teal": 6117, + "teal": 6114, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5827, + 5828, 5829, 5830, 5831, - 5832, - 5833, - 5834 + 5832 ] }, { - "teal": 6118, + "teal": 6115, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5833, + 5834, 5835, 5836, 5837, - 5838, - 5839, - 5840 + 5838 ] }, { - "teal": 6119, + "teal": 6116, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5839, + 5840, 5841, 5842, 5843, - 5844, - 5845, - 5846 + 5844 ] }, { - "teal": 6120, + "teal": 6117, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5845, + 5846, 5847, 5848, 5849, - 5850, - 5851, - 5852 + 5850 ] }, { - "teal": 6121, + "teal": 6118, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5851, + 5852, 5853, 5854, 5855, - 5856, - 5857, - 5858 + 5856 ] }, { - "teal": 6122, + "teal": 6119, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5857, + 5858, 5859, 5860, 5861, - 5862, - 5863, - 5864 + 5862 ] }, { - "teal": 6123, + "teal": 6120, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5863, + 5864, 5865, 5866, 5867, - 5868, - 5869, - 5870 + 5868 ] }, { - "teal": 6124, + "teal": 6121, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5869, + 5870, 5871, 5872, 5873, - 5874, - 5875, - 5876 + 5874 ] }, { - "teal": 6125, + "teal": 6122, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5875, + 5876, 5877, 5878, 5879, - 5880, - 5881, - 5882 + 5880 ] }, { - "teal": 6126, + "teal": 6123, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5881, + 5882, 5883, 5884, 5885, - 5886, - 5887, - 5888 + 5886 ] }, { - "teal": 6127, + "teal": 6124, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5887, + 5888, 5889, 5890, 5891, - 5892, - 5893, - 5894 + 5892 ] }, { - "teal": 6128, + "teal": 6125, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5893, + 5894, 5895, 5896, 5897, - 5898, - 5899, - 5900 + 5898 ] }, { - "teal": 6129, + "teal": 6126, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5899, + 5900, 5901, 5902, 5903, - 5904, - 5905, - 5906 + 5904 ] }, { - "teal": 6130, + "teal": 6127, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5905, + 5906, 5907, 5908, 5909, - 5910, - 5911, - 5912 + 5910 ] }, { - "teal": 6131, + "teal": 6128, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5911, + 5912, 5913, 5914, 5915, - 5916, - 5917, - 5918 + 5916 ] }, { - "teal": 6132, + "teal": 6129, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5917, + 5918, 5919, 5920, 5921, - 5922, - 5923, - 5924 + 5922 ] }, { - "teal": 6133, + "teal": 6130, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5923, + 5924, 5925, 5926, 5927, - 5928, - 5929, - 5930 + 5928 ] }, { - "teal": 6134, + "teal": 6131, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5929, + 5930, 5931, 5932, 5933, - 5934, - 5935, - 5936 + 5934 ] }, { - "teal": 6135, + "teal": 6132, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5935, + 5936, 5937, 5938, 5939, - 5940, - 5941, - 5942 + 5940 ] }, { - "teal": 6136, + "teal": 6133, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 5943, - 5944, - 5945 + 5941, + 5942, + 5943 ] }, { - "teal": 6137, + "teal": 6134, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 5944, + 5945, 5946, 5947, 5948, @@ -27320,56 +27314,54 @@ 6008, 6009, 6010, - 6011, - 6012, - 6013 + 6011 ] }, { - "teal": 6140, + "teal": 6137, "source": "examples/reti/validatorRegistry.algo.ts:168", "errorMessage": "this contract does not implement the given ABI method for call NoOp", "pc": [ - 6014 + 6012 ] }, { - "teal": 6143, + "teal": 6140, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 6013, + 6014, 6015, 6016, 6017, - 6018, - 6019, - 6020 + 6018 ] }, { - "teal": 6144, + "teal": 6141, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6021, - 6022, - 6023 + 6019, + 6020, + 6021 ] }, { - "teal": 6145, + "teal": 6142, "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ + 6022, + 6023, 6024, - 6025, - 6026, - 6027 + 6025 ] }, { - "teal": 6148, + "teal": 6145, "source": "examples/reti/validatorRegistry.algo.ts:168", "errorMessage": "this contract does not implement the given ABI method for call UpdateApplication", "pc": [ - 6028 + 6026 ] } ] \ No newline at end of file diff --git a/src/lib/compiler.ts b/src/lib/compiler.ts index 56dbd5c50..8e80bd0c8 100644 --- a/src/lib/compiler.ts +++ b/src/lib/compiler.ts @@ -2948,34 +2948,6 @@ export default class Compiler { } }); - const templateVarIndex = 6; - - Object.keys(this.templateVars).forEach((propName, i) => { - const { name, type } = this.templateVars[propName]; - - let op = 'byte'; - - if (isNumeric(type)) { - op = 'int'; - } - - this.teal[this.currentProgram].splice(templateVarIndex, 0, { - teal: `${op} TMPL_${name}`, - node: this.lastNode, - }); - }); - - if (Object.keys(this.templateVars).length > 0) { - this.teal[this.currentProgram].splice(templateVarIndex, 0, { - teal: `// The following lines of TEAL are used to initialize template variables in scratch slots`, - node: this.lastNode, - }); - this.teal[this.currentProgram].splice(templateVarIndex, 0, { - teal: ``, - node: this.lastNode, - }); - } - while (this.pendingSubroutines.length > 0) { this.processSubroutine(this.pendingSubroutines.pop()!); } diff --git a/src/lib/optimize.ts b/src/lib/optimize.ts index 24e72b584..ebc5b8118 100644 --- a/src/lib/optimize.ts +++ b/src/lib/optimize.ts @@ -513,8 +513,8 @@ function constantBlocks(inputTeal: TEALInfo[]): TEALInfo[] { return t; }); - const byteValues: Record = {}; - const intValues: Record = {}; + const byteValues: Record = {}; + const intValues: Record = {}; const numberOfBytes = (n: bigint) => { return Math.ceil(n.toString(2).length / 8) || 1; @@ -524,7 +524,7 @@ function constantBlocks(inputTeal: TEALInfo[]): TEALInfo[] { if (t.teal.startsWith('byte ')) { const value = t.teal.split(' ')[1]; if (byteValues[value]) byteValues[value].count += 1; - else byteValues[value] = { count: 1, size: value.length }; + else byteValues[value] = { count: 1, size: value.length, isTmpl: value.startsWith('TMPL_') }; } if (t.teal.startsWith('int ')) { @@ -535,18 +535,19 @@ function constantBlocks(inputTeal: TEALInfo[]): TEALInfo[] { count: 1, // Size doesn't matter for TMPL values because they are already guranteed to be in the constant block size: value.startsWith('TMPL_') ? 8 : numberOfBytes(BigInt(value.replace(/_/g, ''))), + isTmpl: value.startsWith('TMPL_'), }; } } }); // Delete values that only occur once - Object.entries(byteValues).forEach(([value, sizeAndCount]) => { - if (sizeAndCount.count === 1) delete byteValues[value]; + Object.entries(byteValues).forEach(([value, info]) => { + if (info.count === 1 && !info.isTmpl) delete byteValues[value]; }); - Object.entries(intValues).forEach(([value, sizeAndCount]) => { - if (sizeAndCount.count === 1) delete intValues[value]; + Object.entries(intValues).forEach(([value, info]) => { + if (info.count === 1 && !info.isTmpl) delete intValues[value]; }); // First sort by size * count to determine the 255 values that should go in the block diff --git a/tests/__snapshots__/templates.test.ts.snap b/tests/__snapshots__/templates.test.ts.snap index 817ce5b2e..ac532b511 100644 --- a/tests/__snapshots__/templates.test.ts.snap +++ b/tests/__snapshots__/templates.test.ts.snap @@ -1,3 +1,3 @@ // Bun Snapshot v1, https://goo.gl/fbAQLP -exports[`Template Variables Templates Artifacts Maintains program size 1`] = `263`; +exports[`Template Variables Templates Artifacts Maintains program size 1`] = `259`; diff --git a/tests/contracts/artifacts/ARC56Test.approval.teal b/tests/contracts/artifacts/ARC56Test.approval.teal index 81dd26a23..9743328ea 100644 --- a/tests/contracts/artifacts/ARC56Test.approval.teal +++ b/tests/contracts/artifacts/ARC56Test.approval.teal @@ -7,9 +7,6 @@ bytecblock 0x151f7c75 0x626f784b6579 // 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 -intc 1 // 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 // Here, action refers to the OnComplete in combination with whether the app is being created or called diff --git a/tests/contracts/artifacts/ARC56Test.arc32.json b/tests/contracts/artifacts/ARC56Test.arc32.json index d9e2bd17b..104ec8d9a 100644 --- a/tests/contracts/artifacts/ARC56Test.arc32.json +++ b/tests/contracts/artifacts/ARC56Test.arc32.json @@ -64,7 +64,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIFRNUExfc29tZU51bWJlciA4CmJ5dGVjYmxvY2sgMHgxNTFmN2M3NSAweDYyNmY3ODRiNjU3OQoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDUuMgovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyBsaW5lcyBvZiBURUFMIGFyZSB1c2VkIHRvIGluaXRpYWxpemUgdGVtcGxhdGUgdmFyaWFibGVzIGluIHNjcmF0Y2ggc2xvdHMKaW50YyAxIC8vIFRNUExfc29tZU51bWJlcgoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpjYWxsX09wdEluICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBjdXN0b21TdHJ1Y3RNZXRob2QoKHVpbnQ2NCkpKHVpbnQ2NCkKKmFiaV9yb3V0ZV9jdXN0b21TdHJ1Y3RNZXRob2Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDAgLy8gMHgxNTFmN2M3NQoKCS8vIGlucHV0OiAodWludDY0KQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludGMgMiAvLyA4Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKGlucHV0KSBmb3IgY3VzdG9tU3RydWN0TWV0aG9kIG11c3QgYmUgYSAodWludDY0KQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBjdXN0b21TdHJ1Y3RNZXRob2QoKHVpbnQ2NCkpKHVpbnQ2NCkKCWNhbGxzdWIgY3VzdG9tU3RydWN0TWV0aG9kCgljb25jYXQKCWxvZwoJaW50YyAwIC8vIDEKCXJldHVybgoKLy8gY3VzdG9tU3RydWN0TWV0aG9kKGlucHV0OiBBbm90aGVyQ3VzdG9tU3RydWN0KTogQW5vdGhlckN1c3RvbVN0cnVjdApjdXN0b21TdHJ1Y3RNZXRob2Q6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UtZXh0ZXJuYWwuYWxnby50czoyMQoJLy8gcmV0dXJuIGlucHV0OwoJZnJhbWVfZGlnIC0xIC8vIGlucHV0OiBBbm90aGVyQ3VzdG9tU3RydWN0CglyZXRzdWIKCi8vIGZvbygoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkpKHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfZm9vOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAwIC8vIDB4MTUxZjdjNzUKCgkvLyBpbnB1dHM6ICgodWludDY0LHVpbnQ2NCksKHVpbnQ2NCx1aW50NjQpKQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCXB1c2hpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoaW5wdXRzKSBmb3IgZm9vIG11c3QgYmUgYSAoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkKCWFzc2VydAoKCS8vIGV4ZWN1dGUgZm9vKCgodWludDY0LHVpbnQ2NCksKHVpbnQ2NCx1aW50NjQpKSkodWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgZm9vCgljb25jYXQKCWxvZwoJaW50YyAwIC8vIDEKCXJldHVybgoKLy8gZm9vKGlucHV0czogSW5wdXRzKTogT3V0cHV0cwpmb286Cglwcm90byAxIDEKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2FyYzU2LmFsZ28udHM6MjUKCS8vIGlucHV0cy5zdWJ0cmFjdC5hIDwgaW5wdXRzLnN1YnRyYWN0LmIKCWZyYW1lX2RpZyAtMSAvLyBpbnB1dHM6IElucHV0cwoJZXh0cmFjdCAxNiA4CglidG9pCglmcmFtZV9kaWcgLTEgLy8gaW5wdXRzOiBJbnB1dHMKCWV4dHJhY3QgMjQgOAoJYnRvaQoJPAoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIHN1YnRyYWN0LmEgbXVzdCBiZSBncmVhdGVyIHRoYW4gc3VidHJhY3QuYgoJZXJyCgoqaWYwX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjI3CgkvLyB0aGlzLmdsb2JhbEtleS52YWx1ZSA9IHRoaXMuc29tZU51bWJlcgoJcHVzaGJ5dGVzIDB4Njc2YzZmNjI2MTZjNGI2NTc5IC8vICJnbG9iYWxLZXkiCglpbnRjIDEgLy8gVE1QTF9zb21lTnVtYmVyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjI4CgkvLyB0aGlzLmdsb2JhbE1hcCgnZm9vJykudmFsdWUgPSB7IGZvbzogMTMsIGJhcjogMzcgfQoJcHVzaGJ5dGVzIDB4NzAwMDAzNjY2ZjZmCglwdXNoYnl0ZXMgMHgwMDBkMDAyNQoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXJjNTYuYWxnby50czozMAoJLy8gcmV0dXJuIHsKCS8vICAgICAgIHN1bTogaW5wdXRzLmFkZC5hICsgaW5wdXRzLmFkZC5iLAoJLy8gICAgICAgZGlmZmVyZW5jZTogaW5wdXRzLnN1YnRyYWN0LmEgLSBpbnB1dHMuc3VidHJhY3QuYiwKCS8vICAgICB9OwoJZnJhbWVfZGlnIC0xIC8vIGlucHV0czogSW5wdXRzCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIGlucHV0czogSW5wdXRzCglleHRyYWN0IDggOAoJYnRvaQoJKwoJaXRvYgoJZnJhbWVfZGlnIC0xIC8vIGlucHV0czogSW5wdXRzCglleHRyYWN0IDE2IDgKCWJ0b2kKCWZyYW1lX2RpZyAtMSAvLyBpbnB1dHM6IElucHV0cwoJZXh0cmFjdCAyNCA4CglidG9pCgktCglpdG9iCgljb25jYXQKCXJldHN1YgoKLy8gb3B0SW5Ub0FwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfb3B0SW5Ub0FwcGxpY2F0aW9uOgoJLy8gZXhlY3V0ZSBvcHRJblRvQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgb3B0SW5Ub0FwcGxpY2F0aW9uCglpbnRjIDAgLy8gMQoJcmV0dXJuCgovLyBvcHRJblRvQXBwbGljYXRpb24oKTogdm9pZApvcHRJblRvQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXJjNTYuYWxnby50czozNwoJLy8gdGhpcy5sb2NhbEtleSh0aGlzLnR4bi5zZW5kZXIpLnZhbHVlID0gdGhpcy5zb21lTnVtYmVyCgl0eG4gU2VuZGVyCglwdXNoYnl0ZXMgMHg2YzZmNjM2MTZjNGI2NTc5IC8vICJsb2NhbEtleSIKCWludGMgMSAvLyBUTVBMX3NvbWVOdW1iZXIKCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXJjNTYuYWxnby50czozOAoJLy8gdGhpcy5sb2NhbE1hcCh0aGlzLnR4bi5zZW5kZXIsICdmb28nKS52YWx1ZSA9ICdiYXInCgl0eG4gU2VuZGVyCglwdXNoYnl0ZXMgMHg3MDY2NmY2ZgoJcHVzaGJ5dGVzIDB4MDAwMzYyNjE3MgoJYXBwX2xvY2FsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjM5CgkvLyB0aGlzLmJveEtleS52YWx1ZSA9ICdiYXonCglieXRlYyAxIC8vICAiYm94S2V5IgoJZHVwCglib3hfZGVsCglwb3AKCXB1c2hieXRlcyAweDAwMDM2MjYxN2EKCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXJjNTYuYWxnby50czo0MAoJLy8gdGhpcy5ib3hNYXAoeyBhZGQ6IHsgYTogMSwgYjogMiB9LCBzdWJ0cmFjdDogeyBhOiA0LCBiOiAzIH0gfSkudmFsdWUgPSB7IHN1bTogMywgZGlmZmVyZW5jZTogMSB9CglwdXNoYnl0ZXMgMHg3MDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwNDAwMDAwMDAwMDAwMDAwMDMKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDMwMDAwMDAwMDAwMDAwMDAxCglib3hfcHV0CglyZXRzdWIKCi8vIGN1c3RvbVR5cGUoKHVpbnQ2NCkpKHVpbnQ2NCkKKmFiaV9yb3V0ZV9jdXN0b21UeXBlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAwIC8vIDB4MTUxZjdjNzUKCgkvLyBpbnB1dDogKHVpbnQ2NCkKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDIgLy8gOAoJPT0KCgkvLyBhcmd1bWVudCAwIChpbnB1dCkgZm9yIGN1c3RvbVR5cGUgbXVzdCBiZSBhICh1aW50NjQpCglhc3NlcnQKCgkvLyBleGVjdXRlIGN1c3RvbVR5cGUoKHVpbnQ2NCkpKHVpbnQ2NCkKCWNhbGxzdWIgY3VzdG9tVHlwZQoJY29uY2F0Cglsb2cKCWludGMgMCAvLyAxCglyZXR1cm4KCi8vIGN1c3RvbVR5cGUoaW5wdXQ6IEN1c3RvbVN0cnVjdEFzTmFtZSk6IEN1c3RvbVN0cnVjdEFzTmFtZQpjdXN0b21UeXBlOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FyYzU2LmFsZ28udHM6NDQKCS8vIHJldHVybiBpbnB1dDsKCWZyYW1lX2RpZyAtMSAvLyBpbnB1dDogQ3VzdG9tU3RydWN0QXNOYW1lCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnRjIDAgLy8gMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4OGQyMjczOWEgLy8gbWV0aG9kICJjdXN0b21TdHJ1Y3RNZXRob2QoKHVpbnQ2NCkpKHVpbnQ2NCkiCglwdXNoYnl0ZXMgMHgzOTZkNTUwZSAvLyBtZXRob2QgImZvbygoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkpKHVpbnQ2NCx1aW50NjQpIgoJcHVzaGJ5dGVzIDB4MGRiZjAyYzcgLy8gbWV0aG9kICJjdXN0b21UeXBlKCh1aW50NjQpKSh1aW50NjQpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jdXN0b21TdHJ1Y3RNZXRob2QgKmFiaV9yb3V0ZV9mb28gKmFiaV9yb3V0ZV9jdXN0b21UeXBlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqY2FsbF9PcHRJbjoKCXB1c2hieXRlcyAweDAxYTNhM2ZmIC8vIG1ldGhvZCAib3B0SW5Ub0FwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9vcHRJblRvQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBPcHRJbgoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIFRNUExfc29tZU51bWJlciA4CmJ5dGVjYmxvY2sgMHgxNTFmN2M3NSAweDYyNmY3ODRiNjU3OQoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDUuMgovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpjYWxsX09wdEluICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBjdXN0b21TdHJ1Y3RNZXRob2QoKHVpbnQ2NCkpKHVpbnQ2NCkKKmFiaV9yb3V0ZV9jdXN0b21TdHJ1Y3RNZXRob2Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDAgLy8gMHgxNTFmN2M3NQoKCS8vIGlucHV0OiAodWludDY0KQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludGMgMiAvLyA4Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKGlucHV0KSBmb3IgY3VzdG9tU3RydWN0TWV0aG9kIG11c3QgYmUgYSAodWludDY0KQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBjdXN0b21TdHJ1Y3RNZXRob2QoKHVpbnQ2NCkpKHVpbnQ2NCkKCWNhbGxzdWIgY3VzdG9tU3RydWN0TWV0aG9kCgljb25jYXQKCWxvZwoJaW50YyAwIC8vIDEKCXJldHVybgoKLy8gY3VzdG9tU3RydWN0TWV0aG9kKGlucHV0OiBBbm90aGVyQ3VzdG9tU3RydWN0KTogQW5vdGhlckN1c3RvbVN0cnVjdApjdXN0b21TdHJ1Y3RNZXRob2Q6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UtZXh0ZXJuYWwuYWxnby50czoyMQoJLy8gcmV0dXJuIGlucHV0OwoJZnJhbWVfZGlnIC0xIC8vIGlucHV0OiBBbm90aGVyQ3VzdG9tU3RydWN0CglyZXRzdWIKCi8vIGZvbygoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkpKHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfZm9vOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAwIC8vIDB4MTUxZjdjNzUKCgkvLyBpbnB1dHM6ICgodWludDY0LHVpbnQ2NCksKHVpbnQ2NCx1aW50NjQpKQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCXB1c2hpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoaW5wdXRzKSBmb3IgZm9vIG11c3QgYmUgYSAoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkKCWFzc2VydAoKCS8vIGV4ZWN1dGUgZm9vKCgodWludDY0LHVpbnQ2NCksKHVpbnQ2NCx1aW50NjQpKSkodWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgZm9vCgljb25jYXQKCWxvZwoJaW50YyAwIC8vIDEKCXJldHVybgoKLy8gZm9vKGlucHV0czogSW5wdXRzKTogT3V0cHV0cwpmb286Cglwcm90byAxIDEKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2FyYzU2LmFsZ28udHM6MjUKCS8vIGlucHV0cy5zdWJ0cmFjdC5hIDwgaW5wdXRzLnN1YnRyYWN0LmIKCWZyYW1lX2RpZyAtMSAvLyBpbnB1dHM6IElucHV0cwoJZXh0cmFjdCAxNiA4CglidG9pCglmcmFtZV9kaWcgLTEgLy8gaW5wdXRzOiBJbnB1dHMKCWV4dHJhY3QgMjQgOAoJYnRvaQoJPAoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIHN1YnRyYWN0LmEgbXVzdCBiZSBncmVhdGVyIHRoYW4gc3VidHJhY3QuYgoJZXJyCgoqaWYwX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjI3CgkvLyB0aGlzLmdsb2JhbEtleS52YWx1ZSA9IHRoaXMuc29tZU51bWJlcgoJcHVzaGJ5dGVzIDB4Njc2YzZmNjI2MTZjNGI2NTc5IC8vICJnbG9iYWxLZXkiCglpbnRjIDEgLy8gVE1QTF9zb21lTnVtYmVyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjI4CgkvLyB0aGlzLmdsb2JhbE1hcCgnZm9vJykudmFsdWUgPSB7IGZvbzogMTMsIGJhcjogMzcgfQoJcHVzaGJ5dGVzIDB4NzAwMDAzNjY2ZjZmCglwdXNoYnl0ZXMgMHgwMDBkMDAyNQoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXJjNTYuYWxnby50czozMAoJLy8gcmV0dXJuIHsKCS8vICAgICAgIHN1bTogaW5wdXRzLmFkZC5hICsgaW5wdXRzLmFkZC5iLAoJLy8gICAgICAgZGlmZmVyZW5jZTogaW5wdXRzLnN1YnRyYWN0LmEgLSBpbnB1dHMuc3VidHJhY3QuYiwKCS8vICAgICB9OwoJZnJhbWVfZGlnIC0xIC8vIGlucHV0czogSW5wdXRzCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIGlucHV0czogSW5wdXRzCglleHRyYWN0IDggOAoJYnRvaQoJKwoJaXRvYgoJZnJhbWVfZGlnIC0xIC8vIGlucHV0czogSW5wdXRzCglleHRyYWN0IDE2IDgKCWJ0b2kKCWZyYW1lX2RpZyAtMSAvLyBpbnB1dHM6IElucHV0cwoJZXh0cmFjdCAyNCA4CglidG9pCgktCglpdG9iCgljb25jYXQKCXJldHN1YgoKLy8gb3B0SW5Ub0FwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfb3B0SW5Ub0FwcGxpY2F0aW9uOgoJLy8gZXhlY3V0ZSBvcHRJblRvQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgb3B0SW5Ub0FwcGxpY2F0aW9uCglpbnRjIDAgLy8gMQoJcmV0dXJuCgovLyBvcHRJblRvQXBwbGljYXRpb24oKTogdm9pZApvcHRJblRvQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXJjNTYuYWxnby50czozNwoJLy8gdGhpcy5sb2NhbEtleSh0aGlzLnR4bi5zZW5kZXIpLnZhbHVlID0gdGhpcy5zb21lTnVtYmVyCgl0eG4gU2VuZGVyCglwdXNoYnl0ZXMgMHg2YzZmNjM2MTZjNGI2NTc5IC8vICJsb2NhbEtleSIKCWludGMgMSAvLyBUTVBMX3NvbWVOdW1iZXIKCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXJjNTYuYWxnby50czozOAoJLy8gdGhpcy5sb2NhbE1hcCh0aGlzLnR4bi5zZW5kZXIsICdmb28nKS52YWx1ZSA9ICdiYXInCgl0eG4gU2VuZGVyCglwdXNoYnl0ZXMgMHg3MDY2NmY2ZgoJcHVzaGJ5dGVzIDB4MDAwMzYyNjE3MgoJYXBwX2xvY2FsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjM5CgkvLyB0aGlzLmJveEtleS52YWx1ZSA9ICdiYXonCglieXRlYyAxIC8vICAiYm94S2V5IgoJZHVwCglib3hfZGVsCglwb3AKCXB1c2hieXRlcyAweDAwMDM2MjYxN2EKCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXJjNTYuYWxnby50czo0MAoJLy8gdGhpcy5ib3hNYXAoeyBhZGQ6IHsgYTogMSwgYjogMiB9LCBzdWJ0cmFjdDogeyBhOiA0LCBiOiAzIH0gfSkudmFsdWUgPSB7IHN1bTogMywgZGlmZmVyZW5jZTogMSB9CglwdXNoYnl0ZXMgMHg3MDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwNDAwMDAwMDAwMDAwMDAwMDMKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDMwMDAwMDAwMDAwMDAwMDAxCglib3hfcHV0CglyZXRzdWIKCi8vIGN1c3RvbVR5cGUoKHVpbnQ2NCkpKHVpbnQ2NCkKKmFiaV9yb3V0ZV9jdXN0b21UeXBlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAwIC8vIDB4MTUxZjdjNzUKCgkvLyBpbnB1dDogKHVpbnQ2NCkKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDIgLy8gOAoJPT0KCgkvLyBhcmd1bWVudCAwIChpbnB1dCkgZm9yIGN1c3RvbVR5cGUgbXVzdCBiZSBhICh1aW50NjQpCglhc3NlcnQKCgkvLyBleGVjdXRlIGN1c3RvbVR5cGUoKHVpbnQ2NCkpKHVpbnQ2NCkKCWNhbGxzdWIgY3VzdG9tVHlwZQoJY29uY2F0Cglsb2cKCWludGMgMCAvLyAxCglyZXR1cm4KCi8vIGN1c3RvbVR5cGUoaW5wdXQ6IEN1c3RvbVN0cnVjdEFzTmFtZSk6IEN1c3RvbVN0cnVjdEFzTmFtZQpjdXN0b21UeXBlOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FyYzU2LmFsZ28udHM6NDQKCS8vIHJldHVybiBpbnB1dDsKCWZyYW1lX2RpZyAtMSAvLyBpbnB1dDogQ3VzdG9tU3RydWN0QXNOYW1lCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnRjIDAgLy8gMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4OGQyMjczOWEgLy8gbWV0aG9kICJjdXN0b21TdHJ1Y3RNZXRob2QoKHVpbnQ2NCkpKHVpbnQ2NCkiCglwdXNoYnl0ZXMgMHgzOTZkNTUwZSAvLyBtZXRob2QgImZvbygoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkpKHVpbnQ2NCx1aW50NjQpIgoJcHVzaGJ5dGVzIDB4MGRiZjAyYzcgLy8gbWV0aG9kICJjdXN0b21UeXBlKCh1aW50NjQpKSh1aW50NjQpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jdXN0b21TdHJ1Y3RNZXRob2QgKmFiaV9yb3V0ZV9mb28gKmFiaV9yb3V0ZV9jdXN0b21UeXBlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqY2FsbF9PcHRJbjoKCXB1c2hieXRlcyAweDAxYTNhM2ZmIC8vIG1ldGhvZCAib3B0SW5Ub0FwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9vcHRJblRvQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBPcHRJbgoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ARC56Test.arc56_draft.json b/tests/contracts/artifacts/ARC56Test.arc56_draft.json index 0abe71a27..3d5b4113d 100644 --- a/tests/contracts/artifacts/ARC56Test.arc56_draft.json +++ b/tests/contracts/artifacts/ARC56Test.arc56_draft.json @@ -221,61 +221,55 @@ "approval": { "sourceInfo": [ { - "teal": 11, + "teal": 15, "source": "tests/contracts/arc56.algo.ts:7", "pc": [ - 1 + 1, + 2 ] }, { - "teal": 18, + "teal": 16, "source": "tests/contracts/arc56.algo.ts:7", "pc": [ - 2, 3 ] }, { - "teal": 19, + "teal": 17, "source": "tests/contracts/arc56.algo.ts:7", "pc": [ - 4 + 4, + 5 ] }, { - "teal": 20, + "teal": 18, "source": "tests/contracts/arc56.algo.ts:7", "pc": [ - 5, 6 ] }, { - "teal": 21, + "teal": 19, "source": "tests/contracts/arc56.algo.ts:7", "pc": [ - 7 + 7, + 8 ] }, { - "teal": 22, + "teal": 20, "source": "tests/contracts/arc56.algo.ts:7", "pc": [ - 8, 9 ] }, { - "teal": 23, - "source": "tests/contracts/arc56.algo.ts:7", - "pc": [ - 10 - ] - }, - { - "teal": 24, + "teal": 21, "source": "tests/contracts/arc56.algo.ts:7", "pc": [ + 10, 11, 12, 13, @@ -300,50 +294,56 @@ 32, 33, 34, - 35, - 36 + 35 ] }, { - "teal": 28, + "teal": 25, "source": "tests/contracts/arc56.algo.ts:7", "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", "pc": [ - 37 + 36 ] }, { - "teal": 33, + "teal": 30, "source": "tests/contracts/inheritance-external.algo.ts:12", "pc": [ - 38 + 37 ] }, { - "teal": 36, + "teal": 33, "source": "tests/contracts/inheritance-external.algo.ts:14", "pc": [ + 38, 39, - 40, + 40 + ] + }, + { + "teal": 34, + "source": "tests/contracts/inheritance-external.algo.ts:14", + "pc": [ 41 ] }, { - "teal": 37, + "teal": 35, "source": "tests/contracts/inheritance-external.algo.ts:14", "pc": [ 42 ] }, { - "teal": 38, + "teal": 36, "source": "tests/contracts/inheritance-external.algo.ts:14", "pc": [ 43 ] }, { - "teal": 39, + "teal": 37, "source": "tests/contracts/inheritance-external.algo.ts:14", "pc": [ 44 @@ -352,75 +352,75 @@ { "teal": 40, "source": "tests/contracts/inheritance-external.algo.ts:14", + "errorMessage": "argument 0 (input) for customStructMethod must be a (uint64)", "pc": [ 45 ] }, { "teal": 43, - "source": "tests/contracts/inheritance-external.algo.ts:14", - "errorMessage": "argument 0 (input) for customStructMethod must be a (uint64)", + "source": "tests/contracts/inheritance-external.algo.ts:12", "pc": [ - 46 + 46, + 47, + 48 ] }, { - "teal": 46, + "teal": 44, "source": "tests/contracts/inheritance-external.algo.ts:12", "pc": [ - 47, - 48, 49 ] }, { - "teal": 47, + "teal": 45, "source": "tests/contracts/inheritance-external.algo.ts:12", "pc": [ 50 ] }, { - "teal": 48, + "teal": 46, "source": "tests/contracts/inheritance-external.algo.ts:12", "pc": [ 51 ] }, { - "teal": 49, + "teal": 47, "source": "tests/contracts/inheritance-external.algo.ts:12", "pc": [ 52 ] }, { - "teal": 50, + "teal": 51, "source": "tests/contracts/inheritance-external.algo.ts:12", "pc": [ - 53 + 53, + 54, + 55 ] }, { - "teal": 54, - "source": "tests/contracts/inheritance-external.algo.ts:12", + "teal": 55, + "source": "tests/contracts/inheritance-external.algo.ts:16", "pc": [ - 54, - 55, - 56 + 56, + 57 ] }, { - "teal": 58, - "source": "tests/contracts/inheritance-external.algo.ts:16", + "teal": 56, + "source": "tests/contracts/inheritance-external.algo.ts:12", "pc": [ - 57, 58 ] }, { - "teal": 59, - "source": "tests/contracts/inheritance-external.algo.ts:12", + "teal": 61, + "source": "tests/contracts/arc56.algo.ts:24", "pc": [ 59 ] @@ -429,43 +429,44 @@ "teal": 64, "source": "tests/contracts/arc56.algo.ts:24", "pc": [ - 60 + 60, + 61, + 62 ] }, { - "teal": 67, + "teal": 65, "source": "tests/contracts/arc56.algo.ts:24", "pc": [ - 61, - 62, 63 ] }, { - "teal": 68, + "teal": 66, "source": "tests/contracts/arc56.algo.ts:24", "pc": [ 64 ] }, { - "teal": 69, + "teal": 67, "source": "tests/contracts/arc56.algo.ts:24", "pc": [ - 65 + 65, + 66 ] }, { - "teal": 70, + "teal": 68, "source": "tests/contracts/arc56.algo.ts:24", "pc": [ - 66, 67 ] }, { "teal": 71, "source": "tests/contracts/arc56.algo.ts:24", + "errorMessage": "argument 0 (inputs) for foo must be a ((uint64,uint64),(uint64,uint64))", "pc": [ 68 ] @@ -473,133 +474,126 @@ { "teal": 74, "source": "tests/contracts/arc56.algo.ts:24", - "errorMessage": "argument 0 (inputs) for foo must be a ((uint64,uint64),(uint64,uint64))", "pc": [ - 69 + 69, + 70, + 71 ] }, { - "teal": 77, + "teal": 75, "source": "tests/contracts/arc56.algo.ts:24", "pc": [ - 70, - 71, 72 ] }, { - "teal": 78, + "teal": 76, "source": "tests/contracts/arc56.algo.ts:24", "pc": [ 73 ] }, { - "teal": 79, + "teal": 77, "source": "tests/contracts/arc56.algo.ts:24", "pc": [ 74 ] }, { - "teal": 80, + "teal": 78, "source": "tests/contracts/arc56.algo.ts:24", "pc": [ 75 ] }, { - "teal": 81, - "source": "tests/contracts/arc56.algo.ts:24", - "pc": [ - 76 - ] - }, - { - "teal": 85, + "teal": 82, "source": "tests/contracts/arc56.algo.ts:24", "pc": [ + 76, 77, - 78, - 79 + 78 ] }, { - "teal": 90, + "teal": 87, "source": "tests/contracts/arc56.algo.ts:25", "pc": [ - 80, - 81 + 79, + 80 ] }, { - "teal": 91, + "teal": 88, "source": "tests/contracts/arc56.algo.ts:25", "pc": [ + 81, 82, - 83, - 84 + 83 ] }, { - "teal": 92, + "teal": 89, "source": "tests/contracts/arc56.algo.ts:25", "pc": [ - 85 + 84 ] }, { - "teal": 93, + "teal": 90, "source": "tests/contracts/arc56.algo.ts:25", "pc": [ - 86, - 87 + 85, + 86 ] }, { - "teal": 94, + "teal": 91, "source": "tests/contracts/arc56.algo.ts:25", "pc": [ + 87, 88, - 89, - 90 + 89 ] }, { - "teal": 95, + "teal": 92, "source": "tests/contracts/arc56.algo.ts:25", "pc": [ - 91 + 90 ] }, { - "teal": 96, + "teal": 93, "source": "tests/contracts/arc56.algo.ts:25", "pc": [ - 92 + 91 ] }, { - "teal": 97, + "teal": 94, "source": "tests/contracts/arc56.algo.ts:25", "pc": [ + 92, 93, - 94, - 95 + 94 ] }, { - "teal": 101, + "teal": 98, "source": "tests/contracts/arc56.algo.ts:25", "errorMessage": "subtract.a must be greater than subtract.b", "pc": [ - 96 + 95 ] }, { - "teal": 106, + "teal": 103, "source": "tests/contracts/arc56.algo.ts:27", "pc": [ + 96, 97, 98, 99, @@ -609,239 +603,239 @@ 103, 104, 105, - 106, - 107 + 106 ] }, { - "teal": 107, + "teal": 104, "source": "tests/contracts/arc56.algo.ts:27", "pc": [ - 108 + 107 ] }, { - "teal": 108, + "teal": 105, "source": "tests/contracts/arc56.algo.ts:27", "pc": [ - 109 + 108 ] }, { - "teal": 112, + "teal": 109, "source": "tests/contracts/arc56.algo.ts:28", "pc": [ + 109, 110, 111, 112, 113, 114, 115, - 116, - 117 + 116 ] }, { - "teal": 113, + "teal": 110, "source": "tests/contracts/arc56.algo.ts:28", "pc": [ + 117, 118, 119, 120, 121, - 122, - 123 + 122 ] }, { - "teal": 114, + "teal": 111, "source": "tests/contracts/arc56.algo.ts:28", "pc": [ - 124 + 123 ] }, { - "teal": 121, + "teal": 118, "source": "tests/contracts/arc56.algo.ts:31", "pc": [ - 125, - 126 + 124, + 125 ] }, { - "teal": 122, + "teal": 119, "source": "tests/contracts/arc56.algo.ts:31", "pc": [ + 126, 127, - 128, - 129 + 128 ] }, { - "teal": 123, + "teal": 120, "source": "tests/contracts/arc56.algo.ts:31", "pc": [ - 130 + 129 ] }, { - "teal": 124, + "teal": 121, "source": "tests/contracts/arc56.algo.ts:31", "pc": [ - 131, - 132 + 130, + 131 ] }, { - "teal": 125, + "teal": 122, "source": "tests/contracts/arc56.algo.ts:31", "pc": [ + 132, 133, - 134, - 135 + 134 ] }, { - "teal": 126, + "teal": 123, "source": "tests/contracts/arc56.algo.ts:31", "pc": [ - 136 + 135 ] }, { - "teal": 127, + "teal": 124, "source": "tests/contracts/arc56.algo.ts:31", "pc": [ - 137 + 136 ] }, { - "teal": 128, + "teal": 125, "source": "tests/contracts/arc56.algo.ts:31", "pc": [ - 138 + 137 ] }, { - "teal": 129, + "teal": 126, "source": "tests/contracts/arc56.algo.ts:32", "pc": [ - 139, - 140 + 138, + 139 ] }, { - "teal": 130, + "teal": 127, "source": "tests/contracts/arc56.algo.ts:32", "pc": [ + 140, 141, - 142, - 143 + 142 ] }, { - "teal": 131, + "teal": 128, "source": "tests/contracts/arc56.algo.ts:32", "pc": [ - 144 + 143 ] }, { - "teal": 132, + "teal": 129, "source": "tests/contracts/arc56.algo.ts:32", "pc": [ - 145, - 146 + 144, + 145 ] }, { - "teal": 133, + "teal": 130, "source": "tests/contracts/arc56.algo.ts:32", "pc": [ + 146, 147, - 148, - 149 + 148 ] }, { - "teal": 134, + "teal": 131, "source": "tests/contracts/arc56.algo.ts:32", "pc": [ - 150 + 149 ] }, { - "teal": 135, + "teal": 132, "source": "tests/contracts/arc56.algo.ts:32", "pc": [ - 151 + 150 ] }, { - "teal": 136, + "teal": 133, "source": "tests/contracts/arc56.algo.ts:32", "pc": [ - 152 + 151 ] }, { - "teal": 137, + "teal": 134, "source": "tests/contracts/arc56.algo.ts:32", "pc": [ - 153 + 152 ] }, { - "teal": 138, + "teal": 135, "source": "tests/contracts/arc56.algo.ts:24", "pc": [ - 154 + 153 ] }, { - "teal": 143, + "teal": 140, "source": "tests/contracts/arc56.algo.ts:36", "pc": [ + 154, 155, - 156, - 157 + 156 ] }, { - "teal": 144, + "teal": 141, "source": "tests/contracts/arc56.algo.ts:36", "pc": [ - 158 + 157 ] }, { - "teal": 145, + "teal": 142, "source": "tests/contracts/arc56.algo.ts:36", "pc": [ - 159 + 158 ] }, { - "teal": 149, + "teal": 146, "source": "tests/contracts/arc56.algo.ts:36", "pc": [ + 159, 160, - 161, - 162 + 161 ] }, { - "teal": 153, + "teal": 150, "source": "tests/contracts/arc56.algo.ts:37", "pc": [ - 163, - 164 + 162, + 163 ] }, { - "teal": 154, + "teal": 151, "source": "tests/contracts/arc56.algo.ts:37", "pc": [ + 164, 165, 166, 167, @@ -850,116 +844,116 @@ 170, 171, 172, - 173, - 174 + 173 ] }, { - "teal": 155, + "teal": 152, "source": "tests/contracts/arc56.algo.ts:37", "pc": [ - 175 + 174 ] }, { - "teal": 156, + "teal": 153, "source": "tests/contracts/arc56.algo.ts:37", "pc": [ - 176 + 175 ] }, { - "teal": 160, + "teal": 157, "source": "tests/contracts/arc56.algo.ts:38", "pc": [ - 177, - 178 + 176, + 177 ] }, { - "teal": 161, + "teal": 158, "source": "tests/contracts/arc56.algo.ts:38", "pc": [ + 178, 179, 180, 181, 182, - 183, - 184 + 183 ] }, { - "teal": 162, + "teal": 159, "source": "tests/contracts/arc56.algo.ts:38", "pc": [ + 184, 185, 186, 187, 188, 189, - 190, - 191 + 190 ] }, { - "teal": 163, + "teal": 160, "source": "tests/contracts/arc56.algo.ts:38", "pc": [ - 192 + 191 ] }, { - "teal": 167, + "teal": 164, "source": "tests/contracts/arc56.algo.ts:39", "pc": [ - 193 + 192 ] }, { - "teal": 168, + "teal": 165, "source": "tests/contracts/arc56.algo.ts:39", "pc": [ - 194 + 193 ] }, { - "teal": 169, + "teal": 166, "source": "tests/contracts/arc56.algo.ts:39", "pc": [ - 195 + 194 ] }, { - "teal": 170, + "teal": 167, "source": "tests/contracts/arc56.algo.ts:39", "pc": [ - 196 + 195 ] }, { - "teal": 171, + "teal": 168, "source": "tests/contracts/arc56.algo.ts:39", "pc": [ + 196, 197, 198, 199, 200, 201, - 202, - 203 + 202 ] }, { - "teal": 172, + "teal": 169, "source": "tests/contracts/arc56.algo.ts:39", "pc": [ - 204 + 203 ] }, { - "teal": 176, + "teal": 173, "source": "tests/contracts/arc56.algo.ts:40", "pc": [ + 204, 205, 206, 207, @@ -993,14 +987,14 @@ 235, 236, 237, - 238, - 239 + 238 ] }, { - "teal": 177, + "teal": 174, "source": "tests/contracts/arc56.algo.ts:40", "pc": [ + 239, 240, 241, 242, @@ -1017,20 +1011,26 @@ 253, 254, 255, - 256, - 257 + 256 ] }, { - "teal": 178, + "teal": 175, "source": "tests/contracts/arc56.algo.ts:40", "pc": [ - 258 + 257 ] }, { - "teal": 179, + "teal": 176, "source": "tests/contracts/arc56.algo.ts:36", + "pc": [ + 258 + ] + }, + { + "teal": 181, + "source": "tests/contracts/arc56.algo.ts:43", "pc": [ 259 ] @@ -1039,34 +1039,34 @@ "teal": 184, "source": "tests/contracts/arc56.algo.ts:43", "pc": [ - 260 + 260, + 261, + 262 ] }, { - "teal": 187, + "teal": 185, "source": "tests/contracts/arc56.algo.ts:43", "pc": [ - 261, - 262, 263 ] }, { - "teal": 188, + "teal": 186, "source": "tests/contracts/arc56.algo.ts:43", "pc": [ 264 ] }, { - "teal": 189, + "teal": 187, "source": "tests/contracts/arc56.algo.ts:43", "pc": [ 265 ] }, { - "teal": 190, + "teal": 188, "source": "tests/contracts/arc56.algo.ts:43", "pc": [ 266 @@ -1075,6 +1075,7 @@ { "teal": 191, "source": "tests/contracts/arc56.algo.ts:43", + "errorMessage": "argument 0 (input) for customType must be a (uint64)", "pc": [ 267 ] @@ -1082,74 +1083,73 @@ { "teal": 194, "source": "tests/contracts/arc56.algo.ts:43", - "errorMessage": "argument 0 (input) for customType must be a (uint64)", "pc": [ - 268 + 268, + 269, + 270 ] }, { - "teal": 197, + "teal": 195, "source": "tests/contracts/arc56.algo.ts:43", "pc": [ - 269, - 270, 271 ] }, { - "teal": 198, + "teal": 196, "source": "tests/contracts/arc56.algo.ts:43", "pc": [ 272 ] }, { - "teal": 199, + "teal": 197, "source": "tests/contracts/arc56.algo.ts:43", "pc": [ 273 ] }, { - "teal": 200, + "teal": 198, "source": "tests/contracts/arc56.algo.ts:43", "pc": [ 274 ] }, { - "teal": 201, + "teal": 202, "source": "tests/contracts/arc56.algo.ts:43", "pc": [ - 275 + 275, + 276, + 277 ] }, { - "teal": 205, - "source": "tests/contracts/arc56.algo.ts:43", + "teal": 206, + "source": "tests/contracts/arc56.algo.ts:44", "pc": [ - 276, - 277, - 278 + 278, + 279 ] }, { - "teal": 209, - "source": "tests/contracts/arc56.algo.ts:44", + "teal": 207, + "source": "tests/contracts/arc56.algo.ts:43", "pc": [ - 279, 280 ] }, { "teal": 210, - "source": "tests/contracts/arc56.algo.ts:43", + "source": "tests/contracts/arc56.algo.ts:7", "pc": [ 281 ] }, { - "teal": 213, + "teal": 211, "source": "tests/contracts/arc56.algo.ts:7", "pc": [ 282 @@ -1159,152 +1159,145 @@ "teal": 214, "source": "tests/contracts/arc56.algo.ts:7", "pc": [ - 283 - ] - }, - { - "teal": 217, - "source": "tests/contracts/arc56.algo.ts:7", - "pc": [ + 283, 284, 285, 286, 287, - 288, - 289 + 288 ] }, { - "teal": 218, + "teal": 215, "source": "tests/contracts/arc56.algo.ts:7", "pc": [ + 289, 290, - 291, - 292 + 291 ] }, { - "teal": 219, + "teal": 216, "source": "tests/contracts/arc56.algo.ts:7", "pc": [ + 292, 293, 294, - 295, - 296 + 295 ] }, { - "teal": 222, + "teal": 219, "source": "tests/contracts/arc56.algo.ts:7", "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ - 297 + 296 ] }, { - "teal": 225, + "teal": 222, "source": "tests/contracts/arc56.algo.ts:7", "pc": [ + 297, 298, 299, 300, 301, - 302, - 303 + 302 ] }, { - "teal": 226, + "teal": 223, "source": "tests/contracts/arc56.algo.ts:7", "pc": [ + 303, 304, 305, 306, 307, - 308, - 309 + 308 ] }, { - "teal": 227, + "teal": 224, "source": "tests/contracts/arc56.algo.ts:7", "pc": [ + 309, 310, 311, 312, 313, - 314, - 315 + 314 ] }, { - "teal": 228, + "teal": 225, "source": "tests/contracts/arc56.algo.ts:7", "pc": [ + 315, 316, - 317, - 318 + 317 ] }, { - "teal": 229, + "teal": 226, "source": "tests/contracts/arc56.algo.ts:7", "pc": [ + 318, 319, 320, 321, 322, 323, 324, - 325, - 326 + 325 ] }, { - "teal": 232, + "teal": 229, "source": "tests/contracts/arc56.algo.ts:7", "errorMessage": "this contract does not implement the given ABI method for call NoOp", "pc": [ - 327 + 326 ] }, { - "teal": 235, + "teal": 232, "source": "tests/contracts/arc56.algo.ts:7", "pc": [ + 327, 328, 329, 330, 331, - 332, - 333 + 332 ] }, { - "teal": 236, + "teal": 233, "source": "tests/contracts/arc56.algo.ts:7", "pc": [ + 333, 334, - 335, - 336 + 335 ] }, { - "teal": 237, + "teal": 234, "source": "tests/contracts/arc56.algo.ts:7", "pc": [ + 336, 337, 338, - 339, - 340 + 339 ] }, { - "teal": 240, + "teal": 237, "source": "tests/contracts/arc56.algo.ts:7", "errorMessage": "this contract does not implement the given ABI method for call OptIn", "pc": [ - 341 + 340 ] } ], @@ -1316,7 +1309,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIFRNUExfc29tZU51bWJlciA4CmJ5dGVjYmxvY2sgMHgxNTFmN2M3NSAweDYyNmY3ODRiNjU3OQoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDUuMgovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyBsaW5lcyBvZiBURUFMIGFyZSB1c2VkIHRvIGluaXRpYWxpemUgdGVtcGxhdGUgdmFyaWFibGVzIGluIHNjcmF0Y2ggc2xvdHMKaW50YyAxIC8vIFRNUExfc29tZU51bWJlcgoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpjYWxsX09wdEluICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBjdXN0b21TdHJ1Y3RNZXRob2QoKHVpbnQ2NCkpKHVpbnQ2NCkKKmFiaV9yb3V0ZV9jdXN0b21TdHJ1Y3RNZXRob2Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDAgLy8gMHgxNTFmN2M3NQoKCS8vIGlucHV0OiAodWludDY0KQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludGMgMiAvLyA4Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKGlucHV0KSBmb3IgY3VzdG9tU3RydWN0TWV0aG9kIG11c3QgYmUgYSAodWludDY0KQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBjdXN0b21TdHJ1Y3RNZXRob2QoKHVpbnQ2NCkpKHVpbnQ2NCkKCWNhbGxzdWIgY3VzdG9tU3RydWN0TWV0aG9kCgljb25jYXQKCWxvZwoJaW50YyAwIC8vIDEKCXJldHVybgoKLy8gY3VzdG9tU3RydWN0TWV0aG9kKGlucHV0OiBBbm90aGVyQ3VzdG9tU3RydWN0KTogQW5vdGhlckN1c3RvbVN0cnVjdApjdXN0b21TdHJ1Y3RNZXRob2Q6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UtZXh0ZXJuYWwuYWxnby50czoyMQoJLy8gcmV0dXJuIGlucHV0OwoJZnJhbWVfZGlnIC0xIC8vIGlucHV0OiBBbm90aGVyQ3VzdG9tU3RydWN0CglyZXRzdWIKCi8vIGZvbygoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkpKHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfZm9vOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAwIC8vIDB4MTUxZjdjNzUKCgkvLyBpbnB1dHM6ICgodWludDY0LHVpbnQ2NCksKHVpbnQ2NCx1aW50NjQpKQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCXB1c2hpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoaW5wdXRzKSBmb3IgZm9vIG11c3QgYmUgYSAoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkKCWFzc2VydAoKCS8vIGV4ZWN1dGUgZm9vKCgodWludDY0LHVpbnQ2NCksKHVpbnQ2NCx1aW50NjQpKSkodWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgZm9vCgljb25jYXQKCWxvZwoJaW50YyAwIC8vIDEKCXJldHVybgoKLy8gZm9vKGlucHV0czogSW5wdXRzKTogT3V0cHV0cwpmb286Cglwcm90byAxIDEKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2FyYzU2LmFsZ28udHM6MjUKCS8vIGlucHV0cy5zdWJ0cmFjdC5hIDwgaW5wdXRzLnN1YnRyYWN0LmIKCWZyYW1lX2RpZyAtMSAvLyBpbnB1dHM6IElucHV0cwoJZXh0cmFjdCAxNiA4CglidG9pCglmcmFtZV9kaWcgLTEgLy8gaW5wdXRzOiBJbnB1dHMKCWV4dHJhY3QgMjQgOAoJYnRvaQoJPAoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIHN1YnRyYWN0LmEgbXVzdCBiZSBncmVhdGVyIHRoYW4gc3VidHJhY3QuYgoJZXJyCgoqaWYwX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjI3CgkvLyB0aGlzLmdsb2JhbEtleS52YWx1ZSA9IHRoaXMuc29tZU51bWJlcgoJcHVzaGJ5dGVzIDB4Njc2YzZmNjI2MTZjNGI2NTc5IC8vICJnbG9iYWxLZXkiCglpbnRjIDEgLy8gVE1QTF9zb21lTnVtYmVyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjI4CgkvLyB0aGlzLmdsb2JhbE1hcCgnZm9vJykudmFsdWUgPSB7IGZvbzogMTMsIGJhcjogMzcgfQoJcHVzaGJ5dGVzIDB4NzAwMDAzNjY2ZjZmCglwdXNoYnl0ZXMgMHgwMDBkMDAyNQoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXJjNTYuYWxnby50czozMAoJLy8gcmV0dXJuIHsKCS8vICAgICAgIHN1bTogaW5wdXRzLmFkZC5hICsgaW5wdXRzLmFkZC5iLAoJLy8gICAgICAgZGlmZmVyZW5jZTogaW5wdXRzLnN1YnRyYWN0LmEgLSBpbnB1dHMuc3VidHJhY3QuYiwKCS8vICAgICB9OwoJZnJhbWVfZGlnIC0xIC8vIGlucHV0czogSW5wdXRzCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIGlucHV0czogSW5wdXRzCglleHRyYWN0IDggOAoJYnRvaQoJKwoJaXRvYgoJZnJhbWVfZGlnIC0xIC8vIGlucHV0czogSW5wdXRzCglleHRyYWN0IDE2IDgKCWJ0b2kKCWZyYW1lX2RpZyAtMSAvLyBpbnB1dHM6IElucHV0cwoJZXh0cmFjdCAyNCA4CglidG9pCgktCglpdG9iCgljb25jYXQKCXJldHN1YgoKLy8gb3B0SW5Ub0FwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfb3B0SW5Ub0FwcGxpY2F0aW9uOgoJLy8gZXhlY3V0ZSBvcHRJblRvQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgb3B0SW5Ub0FwcGxpY2F0aW9uCglpbnRjIDAgLy8gMQoJcmV0dXJuCgovLyBvcHRJblRvQXBwbGljYXRpb24oKTogdm9pZApvcHRJblRvQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXJjNTYuYWxnby50czozNwoJLy8gdGhpcy5sb2NhbEtleSh0aGlzLnR4bi5zZW5kZXIpLnZhbHVlID0gdGhpcy5zb21lTnVtYmVyCgl0eG4gU2VuZGVyCglwdXNoYnl0ZXMgMHg2YzZmNjM2MTZjNGI2NTc5IC8vICJsb2NhbEtleSIKCWludGMgMSAvLyBUTVBMX3NvbWVOdW1iZXIKCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXJjNTYuYWxnby50czozOAoJLy8gdGhpcy5sb2NhbE1hcCh0aGlzLnR4bi5zZW5kZXIsICdmb28nKS52YWx1ZSA9ICdiYXInCgl0eG4gU2VuZGVyCglwdXNoYnl0ZXMgMHg3MDY2NmY2ZgoJcHVzaGJ5dGVzIDB4MDAwMzYyNjE3MgoJYXBwX2xvY2FsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjM5CgkvLyB0aGlzLmJveEtleS52YWx1ZSA9ICdiYXonCglieXRlYyAxIC8vICAiYm94S2V5IgoJZHVwCglib3hfZGVsCglwb3AKCXB1c2hieXRlcyAweDAwMDM2MjYxN2EKCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXJjNTYuYWxnby50czo0MAoJLy8gdGhpcy5ib3hNYXAoeyBhZGQ6IHsgYTogMSwgYjogMiB9LCBzdWJ0cmFjdDogeyBhOiA0LCBiOiAzIH0gfSkudmFsdWUgPSB7IHN1bTogMywgZGlmZmVyZW5jZTogMSB9CglwdXNoYnl0ZXMgMHg3MDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwNDAwMDAwMDAwMDAwMDAwMDMKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDMwMDAwMDAwMDAwMDAwMDAxCglib3hfcHV0CglyZXRzdWIKCi8vIGN1c3RvbVR5cGUoKHVpbnQ2NCkpKHVpbnQ2NCkKKmFiaV9yb3V0ZV9jdXN0b21UeXBlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAwIC8vIDB4MTUxZjdjNzUKCgkvLyBpbnB1dDogKHVpbnQ2NCkKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDIgLy8gOAoJPT0KCgkvLyBhcmd1bWVudCAwIChpbnB1dCkgZm9yIGN1c3RvbVR5cGUgbXVzdCBiZSBhICh1aW50NjQpCglhc3NlcnQKCgkvLyBleGVjdXRlIGN1c3RvbVR5cGUoKHVpbnQ2NCkpKHVpbnQ2NCkKCWNhbGxzdWIgY3VzdG9tVHlwZQoJY29uY2F0Cglsb2cKCWludGMgMCAvLyAxCglyZXR1cm4KCi8vIGN1c3RvbVR5cGUoaW5wdXQ6IEN1c3RvbVN0cnVjdEFzTmFtZSk6IEN1c3RvbVN0cnVjdEFzTmFtZQpjdXN0b21UeXBlOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FyYzU2LmFsZ28udHM6NDQKCS8vIHJldHVybiBpbnB1dDsKCWZyYW1lX2RpZyAtMSAvLyBpbnB1dDogQ3VzdG9tU3RydWN0QXNOYW1lCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnRjIDAgLy8gMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4OGQyMjczOWEgLy8gbWV0aG9kICJjdXN0b21TdHJ1Y3RNZXRob2QoKHVpbnQ2NCkpKHVpbnQ2NCkiCglwdXNoYnl0ZXMgMHgzOTZkNTUwZSAvLyBtZXRob2QgImZvbygoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkpKHVpbnQ2NCx1aW50NjQpIgoJcHVzaGJ5dGVzIDB4MGRiZjAyYzcgLy8gbWV0aG9kICJjdXN0b21UeXBlKCh1aW50NjQpKSh1aW50NjQpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jdXN0b21TdHJ1Y3RNZXRob2QgKmFiaV9yb3V0ZV9mb28gKmFiaV9yb3V0ZV9jdXN0b21UeXBlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqY2FsbF9PcHRJbjoKCXB1c2hieXRlcyAweDAxYTNhM2ZmIC8vIG1ldGhvZCAib3B0SW5Ub0FwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9vcHRJblRvQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBPcHRJbgoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIFRNUExfc29tZU51bWJlciA4CmJ5dGVjYmxvY2sgMHgxNTFmN2M3NSAweDYyNmY3ODRiNjU3OQoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDUuMgovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpjYWxsX09wdEluICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBjdXN0b21TdHJ1Y3RNZXRob2QoKHVpbnQ2NCkpKHVpbnQ2NCkKKmFiaV9yb3V0ZV9jdXN0b21TdHJ1Y3RNZXRob2Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDAgLy8gMHgxNTFmN2M3NQoKCS8vIGlucHV0OiAodWludDY0KQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludGMgMiAvLyA4Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKGlucHV0KSBmb3IgY3VzdG9tU3RydWN0TWV0aG9kIG11c3QgYmUgYSAodWludDY0KQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBjdXN0b21TdHJ1Y3RNZXRob2QoKHVpbnQ2NCkpKHVpbnQ2NCkKCWNhbGxzdWIgY3VzdG9tU3RydWN0TWV0aG9kCgljb25jYXQKCWxvZwoJaW50YyAwIC8vIDEKCXJldHVybgoKLy8gY3VzdG9tU3RydWN0TWV0aG9kKGlucHV0OiBBbm90aGVyQ3VzdG9tU3RydWN0KTogQW5vdGhlckN1c3RvbVN0cnVjdApjdXN0b21TdHJ1Y3RNZXRob2Q6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UtZXh0ZXJuYWwuYWxnby50czoyMQoJLy8gcmV0dXJuIGlucHV0OwoJZnJhbWVfZGlnIC0xIC8vIGlucHV0OiBBbm90aGVyQ3VzdG9tU3RydWN0CglyZXRzdWIKCi8vIGZvbygoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkpKHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfZm9vOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAwIC8vIDB4MTUxZjdjNzUKCgkvLyBpbnB1dHM6ICgodWludDY0LHVpbnQ2NCksKHVpbnQ2NCx1aW50NjQpKQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCXB1c2hpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoaW5wdXRzKSBmb3IgZm9vIG11c3QgYmUgYSAoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkKCWFzc2VydAoKCS8vIGV4ZWN1dGUgZm9vKCgodWludDY0LHVpbnQ2NCksKHVpbnQ2NCx1aW50NjQpKSkodWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgZm9vCgljb25jYXQKCWxvZwoJaW50YyAwIC8vIDEKCXJldHVybgoKLy8gZm9vKGlucHV0czogSW5wdXRzKTogT3V0cHV0cwpmb286Cglwcm90byAxIDEKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2FyYzU2LmFsZ28udHM6MjUKCS8vIGlucHV0cy5zdWJ0cmFjdC5hIDwgaW5wdXRzLnN1YnRyYWN0LmIKCWZyYW1lX2RpZyAtMSAvLyBpbnB1dHM6IElucHV0cwoJZXh0cmFjdCAxNiA4CglidG9pCglmcmFtZV9kaWcgLTEgLy8gaW5wdXRzOiBJbnB1dHMKCWV4dHJhY3QgMjQgOAoJYnRvaQoJPAoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIHN1YnRyYWN0LmEgbXVzdCBiZSBncmVhdGVyIHRoYW4gc3VidHJhY3QuYgoJZXJyCgoqaWYwX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjI3CgkvLyB0aGlzLmdsb2JhbEtleS52YWx1ZSA9IHRoaXMuc29tZU51bWJlcgoJcHVzaGJ5dGVzIDB4Njc2YzZmNjI2MTZjNGI2NTc5IC8vICJnbG9iYWxLZXkiCglpbnRjIDEgLy8gVE1QTF9zb21lTnVtYmVyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjI4CgkvLyB0aGlzLmdsb2JhbE1hcCgnZm9vJykudmFsdWUgPSB7IGZvbzogMTMsIGJhcjogMzcgfQoJcHVzaGJ5dGVzIDB4NzAwMDAzNjY2ZjZmCglwdXNoYnl0ZXMgMHgwMDBkMDAyNQoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXJjNTYuYWxnby50czozMAoJLy8gcmV0dXJuIHsKCS8vICAgICAgIHN1bTogaW5wdXRzLmFkZC5hICsgaW5wdXRzLmFkZC5iLAoJLy8gICAgICAgZGlmZmVyZW5jZTogaW5wdXRzLnN1YnRyYWN0LmEgLSBpbnB1dHMuc3VidHJhY3QuYiwKCS8vICAgICB9OwoJZnJhbWVfZGlnIC0xIC8vIGlucHV0czogSW5wdXRzCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIGlucHV0czogSW5wdXRzCglleHRyYWN0IDggOAoJYnRvaQoJKwoJaXRvYgoJZnJhbWVfZGlnIC0xIC8vIGlucHV0czogSW5wdXRzCglleHRyYWN0IDE2IDgKCWJ0b2kKCWZyYW1lX2RpZyAtMSAvLyBpbnB1dHM6IElucHV0cwoJZXh0cmFjdCAyNCA4CglidG9pCgktCglpdG9iCgljb25jYXQKCXJldHN1YgoKLy8gb3B0SW5Ub0FwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfb3B0SW5Ub0FwcGxpY2F0aW9uOgoJLy8gZXhlY3V0ZSBvcHRJblRvQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgb3B0SW5Ub0FwcGxpY2F0aW9uCglpbnRjIDAgLy8gMQoJcmV0dXJuCgovLyBvcHRJblRvQXBwbGljYXRpb24oKTogdm9pZApvcHRJblRvQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXJjNTYuYWxnby50czozNwoJLy8gdGhpcy5sb2NhbEtleSh0aGlzLnR4bi5zZW5kZXIpLnZhbHVlID0gdGhpcy5zb21lTnVtYmVyCgl0eG4gU2VuZGVyCglwdXNoYnl0ZXMgMHg2YzZmNjM2MTZjNGI2NTc5IC8vICJsb2NhbEtleSIKCWludGMgMSAvLyBUTVBMX3NvbWVOdW1iZXIKCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXJjNTYuYWxnby50czozOAoJLy8gdGhpcy5sb2NhbE1hcCh0aGlzLnR4bi5zZW5kZXIsICdmb28nKS52YWx1ZSA9ICdiYXInCgl0eG4gU2VuZGVyCglwdXNoYnl0ZXMgMHg3MDY2NmY2ZgoJcHVzaGJ5dGVzIDB4MDAwMzYyNjE3MgoJYXBwX2xvY2FsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjM5CgkvLyB0aGlzLmJveEtleS52YWx1ZSA9ICdiYXonCglieXRlYyAxIC8vICAiYm94S2V5IgoJZHVwCglib3hfZGVsCglwb3AKCXB1c2hieXRlcyAweDAwMDM2MjYxN2EKCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXJjNTYuYWxnby50czo0MAoJLy8gdGhpcy5ib3hNYXAoeyBhZGQ6IHsgYTogMSwgYjogMiB9LCBzdWJ0cmFjdDogeyBhOiA0LCBiOiAzIH0gfSkudmFsdWUgPSB7IHN1bTogMywgZGlmZmVyZW5jZTogMSB9CglwdXNoYnl0ZXMgMHg3MDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwNDAwMDAwMDAwMDAwMDAwMDMKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDMwMDAwMDAwMDAwMDAwMDAxCglib3hfcHV0CglyZXRzdWIKCi8vIGN1c3RvbVR5cGUoKHVpbnQ2NCkpKHVpbnQ2NCkKKmFiaV9yb3V0ZV9jdXN0b21UeXBlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAwIC8vIDB4MTUxZjdjNzUKCgkvLyBpbnB1dDogKHVpbnQ2NCkKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDIgLy8gOAoJPT0KCgkvLyBhcmd1bWVudCAwIChpbnB1dCkgZm9yIGN1c3RvbVR5cGUgbXVzdCBiZSBhICh1aW50NjQpCglhc3NlcnQKCgkvLyBleGVjdXRlIGN1c3RvbVR5cGUoKHVpbnQ2NCkpKHVpbnQ2NCkKCWNhbGxzdWIgY3VzdG9tVHlwZQoJY29uY2F0Cglsb2cKCWludGMgMCAvLyAxCglyZXR1cm4KCi8vIGN1c3RvbVR5cGUoaW5wdXQ6IEN1c3RvbVN0cnVjdEFzTmFtZSk6IEN1c3RvbVN0cnVjdEFzTmFtZQpjdXN0b21UeXBlOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FyYzU2LmFsZ28udHM6NDQKCS8vIHJldHVybiBpbnB1dDsKCWZyYW1lX2RpZyAtMSAvLyBpbnB1dDogQ3VzdG9tU3RydWN0QXNOYW1lCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnRjIDAgLy8gMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4OGQyMjczOWEgLy8gbWV0aG9kICJjdXN0b21TdHJ1Y3RNZXRob2QoKHVpbnQ2NCkpKHVpbnQ2NCkiCglwdXNoYnl0ZXMgMHgzOTZkNTUwZSAvLyBtZXRob2QgImZvbygoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkpKHVpbnQ2NCx1aW50NjQpIgoJcHVzaGJ5dGVzIDB4MGRiZjAyYzcgLy8gbWV0aG9kICJjdXN0b21UeXBlKCh1aW50NjQpKSh1aW50NjQpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jdXN0b21TdHJ1Y3RNZXRob2QgKmFiaV9yb3V0ZV9mb28gKmFiaV9yb3V0ZV9jdXN0b21UeXBlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqY2FsbF9PcHRJbjoKCXB1c2hieXRlcyAweDAxYTNhM2ZmIC8vIG1ldGhvZCAib3B0SW5Ub0FwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9vcHRJblRvQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBPcHRJbgoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "templateVariables": { diff --git a/tests/contracts/artifacts/Templates.approval.teal b/tests/contracts/artifacts/Templates.approval.teal index 9c44debd4..d8a7b67f2 100644 --- a/tests/contracts/artifacts/Templates.approval.teal +++ b/tests/contracts/artifacts/Templates.approval.teal @@ -7,12 +7,6 @@ bytecblock TMPL_bytesTmplVar TMPL_bytes64TmplVar TMPL_bytes32TmplVar // 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 -bytec 1 // TMPL_bytes64TmplVar -bytec 2 // TMPL_bytes32TmplVar -intc 1 // TMPL_uint64TmplVar -bytec 0 // 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 // Here, action refers to the OnComplete in combination with whether the app is being created or called diff --git a/tests/contracts/artifacts/Templates.arc32.json b/tests/contracts/artifacts/Templates.arc32.json index 90055b8aa..b4e5a8795 100644 --- a/tests/contracts/artifacts/Templates.arc32.json +++ b/tests/contracts/artifacts/Templates.arc32.json @@ -54,7 +54,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIFRNUExfdWludDY0VG1wbFZhcgpieXRlY2Jsb2NrIFRNUExfYnl0ZXNUbXBsVmFyIFRNUExfYnl0ZXM2NFRtcGxWYXIgVE1QTF9ieXRlczMyVG1wbFZhcgoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDUuMgovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyBsaW5lcyBvZiBURUFMIGFyZSB1c2VkIHRvIGluaXRpYWxpemUgdGVtcGxhdGUgdmFyaWFibGVzIGluIHNjcmF0Y2ggc2xvdHMKYnl0ZWMgMSAvLyBUTVBMX2J5dGVzNjRUbXBsVmFyCmJ5dGVjIDIgLy8gVE1QTF9ieXRlczMyVG1wbFZhcgppbnRjIDEgLy8gVE1QTF91aW50NjRUbXBsVmFyCmJ5dGVjIDAgLy8gVE1QTF9ieXRlc1RtcGxWYXIKCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB0bXBsKCl2b2lkCiphYmlfcm91dGVfdG1wbDoKCS8vIGV4ZWN1dGUgdG1wbCgpdm9pZAoJY2FsbHN1YiB0bXBsCglpbnRjIDAgLy8gMQoJcmV0dXJuCgovLyB0bXBsKCk6IHZvaWQKdG1wbDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzQKCS8vIGxvZyh0aGlzLmJ5dGVzVG1wbFZhcikKCWJ5dGVjIDAgLy8gVE1QTF9ieXRlc1RtcGxWYXIKCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzUKCS8vIGFzc2VydCh0aGlzLnVpbnQ2NFRtcGxWYXIpCglpbnRjIDEgLy8gVE1QTF91aW50NjRUbXBsVmFyCglhc3NlcnQKCXJldHN1YgoKLy8gc3BlY2lmaWNMZW5ndGhUZW1wbGF0ZVZhcigpdm9pZAoqYWJpX3JvdXRlX3NwZWNpZmljTGVuZ3RoVGVtcGxhdGVWYXI6CgkvLyBleGVjdXRlIHNwZWNpZmljTGVuZ3RoVGVtcGxhdGVWYXIoKXZvaWQKCWNhbGxzdWIgc3BlY2lmaWNMZW5ndGhUZW1wbGF0ZVZhcgoJaW50YyAwIC8vIDEKCXJldHVybgoKLy8gc3BlY2lmaWNMZW5ndGhUZW1wbGF0ZVZhcigpOiB2b2lkCnNwZWNpZmljTGVuZ3RoVGVtcGxhdGVWYXI6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM5CgkvLyBlZDI1NTE5VmVyaWZ5QmFyZSh0aGlzLmJ5dGVzVG1wbFZhciwgdGhpcy5ieXRlczY0VG1wbFZhciwgdGhpcy5ieXRlczMyVG1wbFZhcikKCWJ5dGVjIDAgLy8gVE1QTF9ieXRlc1RtcGxWYXIKCWJ5dGVjIDEgLy8gVE1QTF9ieXRlczY0VG1wbFZhcgoJYnl0ZWMgMiAvLyBUTVBMX2J5dGVzMzJUbXBsVmFyCgllZDI1NTE5dmVyaWZ5X2JhcmUKCXJldHN1YgoKLy8gdGhyb3dFcnJvcigpdm9pZAoqYWJpX3JvdXRlX3Rocm93RXJyb3I6CgkvLyBleGVjdXRlIHRocm93RXJyb3IoKXZvaWQKCWNhbGxzdWIgdGhyb3dFcnJvcgoJaW50YyAwIC8vIDEKCXJldHVybgoKLy8gdGhyb3dFcnJvcigpOiB2b2lkCnRocm93RXJyb3I6Cglwcm90byAwIDAKCgkvLyB0aGlzIGlzIGFuIGVycm9yCgllcnIKCXJldHN1YgoKLy8gaXRvYlRlbXBsYXRlVmFyKClieXRlW10KKmFiaV9yb3V0ZV9pdG9iVGVtcGxhdGVWYXI6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBpdG9iVGVtcGxhdGVWYXIoKWJ5dGVbXQoJY2FsbHN1YiBpdG9iVGVtcGxhdGVWYXIKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50YyAwIC8vIDEKCXJldHVybgoKLy8gaXRvYlRlbXBsYXRlVmFyKCk6IGJ5dGVzCml0b2JUZW1wbGF0ZVZhcjoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDcKCS8vIHJldHVybiBpdG9iKHRoaXMudWludDY0VG1wbFZhcik7CglpbnRjIDEgLy8gVE1QTF91aW50NjRUbXBsVmFyCglpdG9iCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnRjIDAgLy8gMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4OWE3MWQyYjQgLy8gbWV0aG9kICJ0bXBsKCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZGY0ZDVjM2IgLy8gbWV0aG9kICJzcGVjaWZpY0xlbmd0aFRlbXBsYXRlVmFyKCl2b2lkIgoJcHVzaGJ5dGVzIDB4M2Q4NzBkODcgLy8gbWV0aG9kICJ0aHJvd0Vycm9yKCl2b2lkIgoJcHVzaGJ5dGVzIDB4YmMwYjE3MDYgLy8gbWV0aG9kICJpdG9iVGVtcGxhdGVWYXIoKWJ5dGVbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdG1wbCAqYWJpX3JvdXRlX3NwZWNpZmljTGVuZ3RoVGVtcGxhdGVWYXIgKmFiaV9yb3V0ZV90aHJvd0Vycm9yICphYmlfcm91dGVfaXRvYlRlbXBsYXRlVmFyCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIFRNUExfdWludDY0VG1wbFZhcgpieXRlY2Jsb2NrIFRNUExfYnl0ZXNUbXBsVmFyIFRNUExfYnl0ZXM2NFRtcGxWYXIgVE1QTF9ieXRlczMyVG1wbFZhcgoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDUuMgovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHRtcGwoKXZvaWQKKmFiaV9yb3V0ZV90bXBsOgoJLy8gZXhlY3V0ZSB0bXBsKCl2b2lkCgljYWxsc3ViIHRtcGwKCWludGMgMCAvLyAxCglyZXR1cm4KCi8vIHRtcGwoKTogdm9pZAp0bXBsOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNAoJLy8gbG9nKHRoaXMuYnl0ZXNUbXBsVmFyKQoJYnl0ZWMgMCAvLyBUTVBMX2J5dGVzVG1wbFZhcgoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNQoJLy8gYXNzZXJ0KHRoaXMudWludDY0VG1wbFZhcikKCWludGMgMSAvLyBUTVBMX3VpbnQ2NFRtcGxWYXIKCWFzc2VydAoJcmV0c3ViCgovLyBzcGVjaWZpY0xlbmd0aFRlbXBsYXRlVmFyKCl2b2lkCiphYmlfcm91dGVfc3BlY2lmaWNMZW5ndGhUZW1wbGF0ZVZhcjoKCS8vIGV4ZWN1dGUgc3BlY2lmaWNMZW5ndGhUZW1wbGF0ZVZhcigpdm9pZAoJY2FsbHN1YiBzcGVjaWZpY0xlbmd0aFRlbXBsYXRlVmFyCglpbnRjIDAgLy8gMQoJcmV0dXJuCgovLyBzcGVjaWZpY0xlbmd0aFRlbXBsYXRlVmFyKCk6IHZvaWQKc3BlY2lmaWNMZW5ndGhUZW1wbGF0ZVZhcjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzkKCS8vIGVkMjU1MTlWZXJpZnlCYXJlKHRoaXMuYnl0ZXNUbXBsVmFyLCB0aGlzLmJ5dGVzNjRUbXBsVmFyLCB0aGlzLmJ5dGVzMzJUbXBsVmFyKQoJYnl0ZWMgMCAvLyBUTVBMX2J5dGVzVG1wbFZhcgoJYnl0ZWMgMSAvLyBUTVBMX2J5dGVzNjRUbXBsVmFyCglieXRlYyAyIC8vIFRNUExfYnl0ZXMzMlRtcGxWYXIKCWVkMjU1MTl2ZXJpZnlfYmFyZQoJcmV0c3ViCgovLyB0aHJvd0Vycm9yKCl2b2lkCiphYmlfcm91dGVfdGhyb3dFcnJvcjoKCS8vIGV4ZWN1dGUgdGhyb3dFcnJvcigpdm9pZAoJY2FsbHN1YiB0aHJvd0Vycm9yCglpbnRjIDAgLy8gMQoJcmV0dXJuCgovLyB0aHJvd0Vycm9yKCk6IHZvaWQKdGhyb3dFcnJvcjoKCXByb3RvIDAgMAoKCS8vIHRoaXMgaXMgYW4gZXJyb3IKCWVycgoJcmV0c3ViCgovLyBpdG9iVGVtcGxhdGVWYXIoKWJ5dGVbXQoqYWJpX3JvdXRlX2l0b2JUZW1wbGF0ZVZhcjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGl0b2JUZW1wbGF0ZVZhcigpYnl0ZVtdCgljYWxsc3ViIGl0b2JUZW1wbGF0ZVZhcgoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnRjIDAgLy8gMQoJcmV0dXJuCgovLyBpdG9iVGVtcGxhdGVWYXIoKTogYnl0ZXMKaXRvYlRlbXBsYXRlVmFyOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NwoJLy8gcmV0dXJuIGl0b2IodGhpcy51aW50NjRUbXBsVmFyKTsKCWludGMgMSAvLyBUTVBMX3VpbnQ2NFRtcGxWYXIKCWl0b2IKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludGMgMCAvLyAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg5YTcxZDJiNCAvLyBtZXRob2QgInRtcGwoKXZvaWQiCglwdXNoYnl0ZXMgMHhkZjRkNWMzYiAvLyBtZXRob2QgInNwZWNpZmljTGVuZ3RoVGVtcGxhdGVWYXIoKXZvaWQiCglwdXNoYnl0ZXMgMHgzZDg3MGQ4NyAvLyBtZXRob2QgInRocm93RXJyb3IoKXZvaWQiCglwdXNoYnl0ZXMgMHhiYzBiMTcwNiAvLyBtZXRob2QgIml0b2JUZW1wbGF0ZVZhcigpYnl0ZVtdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV90bXBsICphYmlfcm91dGVfc3BlY2lmaWNMZW5ndGhUZW1wbGF0ZVZhciAqYWJpX3JvdXRlX3Rocm93RXJyb3IgKmFiaV9yb3V0ZV9pdG9iVGVtcGxhdGVWYXIKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/Templates.arc56_draft.json b/tests/contracts/artifacts/Templates.arc56_draft.json index 7741b7ded..adafd8539 100644 --- a/tests/contracts/artifacts/Templates.arc56_draft.json +++ b/tests/contracts/artifacts/Templates.arc56_draft.json @@ -103,82 +103,58 @@ "approval": { "sourceInfo": [ { - "teal": 11, - "source": "tests/contracts/general.algo.ts:24", - "pc": [ - 1 - ] - }, - { - "teal": 12, + "teal": 15, "source": "tests/contracts/general.algo.ts:24", "pc": [ + 1, 2 ] }, { - "teal": 13, + "teal": 16, "source": "tests/contracts/general.algo.ts:24", "pc": [ 3 ] }, { - "teal": 14, + "teal": 17, "source": "tests/contracts/general.algo.ts:24", "pc": [ - 4 + 4, + 5 ] }, { - "teal": 21, + "teal": 18, "source": "tests/contracts/general.algo.ts:24", "pc": [ - 5, 6 ] }, { - "teal": 22, + "teal": 19, "source": "tests/contracts/general.algo.ts:24", "pc": [ - 7 + 7, + 8 ] }, { - "teal": 23, + "teal": 20, "source": "tests/contracts/general.algo.ts:24", "pc": [ - 8, 9 ] }, { - "teal": 24, - "source": "tests/contracts/general.algo.ts:24", - "pc": [ - 10 - ] - }, - { - "teal": 25, + "teal": 21, "source": "tests/contracts/general.algo.ts:24", "pc": [ + 10, 11, - 12 - ] - }, - { - "teal": 26, - "source": "tests/contracts/general.algo.ts:24", - "pc": [ - 13 - ] - }, - { - "teal": 27, - "source": "tests/contracts/general.algo.ts:24", - "pc": [ + 12, + 13, 14, 15, 16, @@ -200,457 +176,453 @@ 32, 33, 34, - 35, - 36, - 37, - 38, - 39 + 35 ] }, { - "teal": 31, + "teal": 25, "source": "tests/contracts/general.algo.ts:24", "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": 36, + "teal": 30, "source": "tests/contracts/general.algo.ts:33", "pc": [ - 41, - 42, - 43 + 37, + 38, + 39 ] }, { - "teal": 37, + "teal": 31, "source": "tests/contracts/general.algo.ts:33", "pc": [ - 44 + 40 ] }, { - "teal": 38, + "teal": 32, "source": "tests/contracts/general.algo.ts:33", "pc": [ - 45 + 41 ] }, { - "teal": 42, + "teal": 36, "source": "tests/contracts/general.algo.ts:33", "pc": [ - 46, - 47, - 48 + 42, + 43, + 44 ] }, { - "teal": 46, + "teal": 40, "source": "tests/contracts/general.algo.ts:34", "pc": [ - 49 + 45 ] }, { - "teal": 47, + "teal": 41, "source": "tests/contracts/general.algo.ts:34", "pc": [ - 50 + 46 ] }, { - "teal": 51, + "teal": 45, "source": "tests/contracts/general.algo.ts:35", "pc": [ - 51 + 47 ] }, { - "teal": 52, + "teal": 46, "source": "tests/contracts/general.algo.ts:35", "pc": [ - 52 + 48 ] }, { - "teal": 53, + "teal": 47, "source": "tests/contracts/general.algo.ts:33", "pc": [ - 53 + 49 ] }, { - "teal": 58, + "teal": 52, "source": "tests/contracts/general.algo.ts:38", "pc": [ - 54, - 55, - 56 + 50, + 51, + 52 ] }, { - "teal": 59, + "teal": 53, "source": "tests/contracts/general.algo.ts:38", "pc": [ - 57 + 53 ] }, { - "teal": 60, + "teal": 54, "source": "tests/contracts/general.algo.ts:38", "pc": [ - 58 + 54 ] }, { - "teal": 64, + "teal": 58, "source": "tests/contracts/general.algo.ts:38", "pc": [ - 59, - 60, - 61 + 55, + 56, + 57 ] }, { - "teal": 68, + "teal": 62, "source": "tests/contracts/general.algo.ts:39", "pc": [ - 62 + 58 ] }, { - "teal": 69, + "teal": 63, "source": "tests/contracts/general.algo.ts:39", "pc": [ - 63 + 59 ] }, { - "teal": 70, + "teal": 64, "source": "tests/contracts/general.algo.ts:39", "pc": [ - 64 + 60 ] }, { - "teal": 71, + "teal": 65, "source": "tests/contracts/general.algo.ts:39", "pc": [ - 65 + 61 ] }, { - "teal": 72, + "teal": 66, "source": "tests/contracts/general.algo.ts:38", "pc": [ - 66 + 62 ] }, { - "teal": 77, + "teal": 71, "source": "tests/contracts/general.algo.ts:42", "pc": [ - 67, - 68, - 69 + 63, + 64, + 65 ] }, { - "teal": 78, + "teal": 72, "source": "tests/contracts/general.algo.ts:42", "pc": [ - 70 + 66 ] }, { - "teal": 79, + "teal": 73, "source": "tests/contracts/general.algo.ts:42", "pc": [ - 71 + 67 ] }, { - "teal": 83, + "teal": 77, "source": "tests/contracts/general.algo.ts:42", "pc": [ - 72, - 73, - 74 + 68, + 69, + 70 ] }, { - "teal": 86, + "teal": 80, "source": "tests/contracts/general.algo.ts:43", "errorMessage": "this is an error", "pc": [ - 75 + 71 ] }, { - "teal": 87, + "teal": 81, "source": "tests/contracts/general.algo.ts:42", "pc": [ - 76 + 72 ] }, { - "teal": 92, + "teal": 86, "source": "tests/contracts/general.algo.ts:46", "pc": [ + 73, + 74, + 75, + 76, 77, - 78, - 79, - 80, - 81, - 82 + 78 ] }, { - "teal": 95, + "teal": 89, "source": "tests/contracts/general.algo.ts:46", "pc": [ - 83, - 84, - 85 + 79, + 80, + 81 ] }, { - "teal": 96, + "teal": 90, "source": "tests/contracts/general.algo.ts:46", "pc": [ - 86 + 82 ] }, { - "teal": 97, + "teal": 91, "source": "tests/contracts/general.algo.ts:46", "pc": [ - 87 + 83 ] }, { - "teal": 98, + "teal": 92, "source": "tests/contracts/general.algo.ts:46", "pc": [ - 88 + 84 ] }, { - "teal": 99, + "teal": 93, "source": "tests/contracts/general.algo.ts:46", "pc": [ - 89, - 90, - 91 + 85, + 86, + 87 ] }, { - "teal": 100, + "teal": 94, "source": "tests/contracts/general.algo.ts:46", "pc": [ - 92 + 88 ] }, { - "teal": 101, + "teal": 95, "source": "tests/contracts/general.algo.ts:46", "pc": [ - 93 + 89 ] }, { - "teal": 102, + "teal": 96, "source": "tests/contracts/general.algo.ts:46", "pc": [ - 94 + 90 ] }, { - "teal": 103, + "teal": 97, "source": "tests/contracts/general.algo.ts:46", "pc": [ - 95 + 91 ] }, { - "teal": 104, + "teal": 98, "source": "tests/contracts/general.algo.ts:46", "pc": [ - 96 + 92 ] }, { - "teal": 105, + "teal": 99, "source": "tests/contracts/general.algo.ts:46", "pc": [ - 97 + 93 ] }, { - "teal": 109, + "teal": 103, "source": "tests/contracts/general.algo.ts:46", "pc": [ - 98, - 99, - 100 + 94, + 95, + 96 ] }, { - "teal": 113, + "teal": 107, "source": "tests/contracts/general.algo.ts:47", "pc": [ - 101 + 97 ] }, { - "teal": 114, + "teal": 108, "source": "tests/contracts/general.algo.ts:47", "pc": [ - 102 + 98 ] }, { - "teal": 115, + "teal": 109, "source": "tests/contracts/general.algo.ts:46", "pc": [ - 103 + 99 ] }, { - "teal": 118, + "teal": 112, "source": "tests/contracts/general.algo.ts:24", "pc": [ - 104 + 100 ] }, { - "teal": 119, + "teal": 113, "source": "tests/contracts/general.algo.ts:24", "pc": [ - 105 + 101 ] }, { - "teal": 122, + "teal": 116, "source": "tests/contracts/general.algo.ts:24", "pc": [ + 102, + 103, + 104, + 105, 106, - 107, + 107 + ] + }, + { + "teal": 117, + "source": "tests/contracts/general.algo.ts:24", + "pc": [ 108, 109, - 110, - 111 + 110 ] }, { - "teal": 123, + "teal": 118, "source": "tests/contracts/general.algo.ts:24", "pc": [ + 111, 112, 113, 114 ] }, { - "teal": 124, + "teal": 121, "source": "tests/contracts/general.algo.ts:24", + "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ - 115, - 116, - 117, - 118 + 115 ] }, { - "teal": 127, + "teal": 124, "source": "tests/contracts/general.algo.ts:24", - "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ - 119 + 116, + 117, + 118, + 119, + 120, + 121 ] }, { - "teal": 130, + "teal": 125, "source": "tests/contracts/general.algo.ts:24", "pc": [ - 120, - 121, 122, 123, 124, - 125 + 125, + 126, + 127 ] }, { - "teal": 131, + "teal": 126, "source": "tests/contracts/general.algo.ts:24", "pc": [ - 126, - 127, 128, 129, 130, - 131 + 131, + 132, + 133 ] }, { - "teal": 132, + "teal": 127, "source": "tests/contracts/general.algo.ts:24", "pc": [ - 132, - 133, 134, 135, 136, - 137 + 137, + 138, + 139 ] }, { - "teal": 133, + "teal": 128, "source": "tests/contracts/general.algo.ts:24", "pc": [ - 138, - 139, 140, 141, - 142, - 143 + 142 ] }, { - "teal": 134, + "teal": 129, "source": "tests/contracts/general.algo.ts:24", "pc": [ + 143, 144, 145, - 146 - ] - }, - { - "teal": 135, - "source": "tests/contracts/general.algo.ts:24", - "pc": [ + 146, 147, 148, 149, 150, 151, - 152, - 153, - 154, - 155, - 156 + 152 ] }, { - "teal": 138, + "teal": 132, "source": "tests/contracts/general.algo.ts:24", "errorMessage": "this contract does not implement the given ABI method for call NoOp", "pc": [ - 157 + 153 ] } ], @@ -662,7 +634,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIFRNUExfdWludDY0VG1wbFZhcgpieXRlY2Jsb2NrIFRNUExfYnl0ZXNUbXBsVmFyIFRNUExfYnl0ZXM2NFRtcGxWYXIgVE1QTF9ieXRlczMyVG1wbFZhcgoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDUuMgovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyBsaW5lcyBvZiBURUFMIGFyZSB1c2VkIHRvIGluaXRpYWxpemUgdGVtcGxhdGUgdmFyaWFibGVzIGluIHNjcmF0Y2ggc2xvdHMKYnl0ZWMgMSAvLyBUTVBMX2J5dGVzNjRUbXBsVmFyCmJ5dGVjIDIgLy8gVE1QTF9ieXRlczMyVG1wbFZhcgppbnRjIDEgLy8gVE1QTF91aW50NjRUbXBsVmFyCmJ5dGVjIDAgLy8gVE1QTF9ieXRlc1RtcGxWYXIKCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB0bXBsKCl2b2lkCiphYmlfcm91dGVfdG1wbDoKCS8vIGV4ZWN1dGUgdG1wbCgpdm9pZAoJY2FsbHN1YiB0bXBsCglpbnRjIDAgLy8gMQoJcmV0dXJuCgovLyB0bXBsKCk6IHZvaWQKdG1wbDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzQKCS8vIGxvZyh0aGlzLmJ5dGVzVG1wbFZhcikKCWJ5dGVjIDAgLy8gVE1QTF9ieXRlc1RtcGxWYXIKCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzUKCS8vIGFzc2VydCh0aGlzLnVpbnQ2NFRtcGxWYXIpCglpbnRjIDEgLy8gVE1QTF91aW50NjRUbXBsVmFyCglhc3NlcnQKCXJldHN1YgoKLy8gc3BlY2lmaWNMZW5ndGhUZW1wbGF0ZVZhcigpdm9pZAoqYWJpX3JvdXRlX3NwZWNpZmljTGVuZ3RoVGVtcGxhdGVWYXI6CgkvLyBleGVjdXRlIHNwZWNpZmljTGVuZ3RoVGVtcGxhdGVWYXIoKXZvaWQKCWNhbGxzdWIgc3BlY2lmaWNMZW5ndGhUZW1wbGF0ZVZhcgoJaW50YyAwIC8vIDEKCXJldHVybgoKLy8gc3BlY2lmaWNMZW5ndGhUZW1wbGF0ZVZhcigpOiB2b2lkCnNwZWNpZmljTGVuZ3RoVGVtcGxhdGVWYXI6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM5CgkvLyBlZDI1NTE5VmVyaWZ5QmFyZSh0aGlzLmJ5dGVzVG1wbFZhciwgdGhpcy5ieXRlczY0VG1wbFZhciwgdGhpcy5ieXRlczMyVG1wbFZhcikKCWJ5dGVjIDAgLy8gVE1QTF9ieXRlc1RtcGxWYXIKCWJ5dGVjIDEgLy8gVE1QTF9ieXRlczY0VG1wbFZhcgoJYnl0ZWMgMiAvLyBUTVBMX2J5dGVzMzJUbXBsVmFyCgllZDI1NTE5dmVyaWZ5X2JhcmUKCXJldHN1YgoKLy8gdGhyb3dFcnJvcigpdm9pZAoqYWJpX3JvdXRlX3Rocm93RXJyb3I6CgkvLyBleGVjdXRlIHRocm93RXJyb3IoKXZvaWQKCWNhbGxzdWIgdGhyb3dFcnJvcgoJaW50YyAwIC8vIDEKCXJldHVybgoKLy8gdGhyb3dFcnJvcigpOiB2b2lkCnRocm93RXJyb3I6Cglwcm90byAwIDAKCgkvLyB0aGlzIGlzIGFuIGVycm9yCgllcnIKCXJldHN1YgoKLy8gaXRvYlRlbXBsYXRlVmFyKClieXRlW10KKmFiaV9yb3V0ZV9pdG9iVGVtcGxhdGVWYXI6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBpdG9iVGVtcGxhdGVWYXIoKWJ5dGVbXQoJY2FsbHN1YiBpdG9iVGVtcGxhdGVWYXIKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50YyAwIC8vIDEKCXJldHVybgoKLy8gaXRvYlRlbXBsYXRlVmFyKCk6IGJ5dGVzCml0b2JUZW1wbGF0ZVZhcjoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDcKCS8vIHJldHVybiBpdG9iKHRoaXMudWludDY0VG1wbFZhcik7CglpbnRjIDEgLy8gVE1QTF91aW50NjRUbXBsVmFyCglpdG9iCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnRjIDAgLy8gMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4OWE3MWQyYjQgLy8gbWV0aG9kICJ0bXBsKCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZGY0ZDVjM2IgLy8gbWV0aG9kICJzcGVjaWZpY0xlbmd0aFRlbXBsYXRlVmFyKCl2b2lkIgoJcHVzaGJ5dGVzIDB4M2Q4NzBkODcgLy8gbWV0aG9kICJ0aHJvd0Vycm9yKCl2b2lkIgoJcHVzaGJ5dGVzIDB4YmMwYjE3MDYgLy8gbWV0aG9kICJpdG9iVGVtcGxhdGVWYXIoKWJ5dGVbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdG1wbCAqYWJpX3JvdXRlX3NwZWNpZmljTGVuZ3RoVGVtcGxhdGVWYXIgKmFiaV9yb3V0ZV90aHJvd0Vycm9yICphYmlfcm91dGVfaXRvYlRlbXBsYXRlVmFyCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIFRNUExfdWludDY0VG1wbFZhcgpieXRlY2Jsb2NrIFRNUExfYnl0ZXNUbXBsVmFyIFRNUExfYnl0ZXM2NFRtcGxWYXIgVE1QTF9ieXRlczMyVG1wbFZhcgoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDUuMgovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHRtcGwoKXZvaWQKKmFiaV9yb3V0ZV90bXBsOgoJLy8gZXhlY3V0ZSB0bXBsKCl2b2lkCgljYWxsc3ViIHRtcGwKCWludGMgMCAvLyAxCglyZXR1cm4KCi8vIHRtcGwoKTogdm9pZAp0bXBsOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNAoJLy8gbG9nKHRoaXMuYnl0ZXNUbXBsVmFyKQoJYnl0ZWMgMCAvLyBUTVBMX2J5dGVzVG1wbFZhcgoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNQoJLy8gYXNzZXJ0KHRoaXMudWludDY0VG1wbFZhcikKCWludGMgMSAvLyBUTVBMX3VpbnQ2NFRtcGxWYXIKCWFzc2VydAoJcmV0c3ViCgovLyBzcGVjaWZpY0xlbmd0aFRlbXBsYXRlVmFyKCl2b2lkCiphYmlfcm91dGVfc3BlY2lmaWNMZW5ndGhUZW1wbGF0ZVZhcjoKCS8vIGV4ZWN1dGUgc3BlY2lmaWNMZW5ndGhUZW1wbGF0ZVZhcigpdm9pZAoJY2FsbHN1YiBzcGVjaWZpY0xlbmd0aFRlbXBsYXRlVmFyCglpbnRjIDAgLy8gMQoJcmV0dXJuCgovLyBzcGVjaWZpY0xlbmd0aFRlbXBsYXRlVmFyKCk6IHZvaWQKc3BlY2lmaWNMZW5ndGhUZW1wbGF0ZVZhcjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzkKCS8vIGVkMjU1MTlWZXJpZnlCYXJlKHRoaXMuYnl0ZXNUbXBsVmFyLCB0aGlzLmJ5dGVzNjRUbXBsVmFyLCB0aGlzLmJ5dGVzMzJUbXBsVmFyKQoJYnl0ZWMgMCAvLyBUTVBMX2J5dGVzVG1wbFZhcgoJYnl0ZWMgMSAvLyBUTVBMX2J5dGVzNjRUbXBsVmFyCglieXRlYyAyIC8vIFRNUExfYnl0ZXMzMlRtcGxWYXIKCWVkMjU1MTl2ZXJpZnlfYmFyZQoJcmV0c3ViCgovLyB0aHJvd0Vycm9yKCl2b2lkCiphYmlfcm91dGVfdGhyb3dFcnJvcjoKCS8vIGV4ZWN1dGUgdGhyb3dFcnJvcigpdm9pZAoJY2FsbHN1YiB0aHJvd0Vycm9yCglpbnRjIDAgLy8gMQoJcmV0dXJuCgovLyB0aHJvd0Vycm9yKCk6IHZvaWQKdGhyb3dFcnJvcjoKCXByb3RvIDAgMAoKCS8vIHRoaXMgaXMgYW4gZXJyb3IKCWVycgoJcmV0c3ViCgovLyBpdG9iVGVtcGxhdGVWYXIoKWJ5dGVbXQoqYWJpX3JvdXRlX2l0b2JUZW1wbGF0ZVZhcjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGl0b2JUZW1wbGF0ZVZhcigpYnl0ZVtdCgljYWxsc3ViIGl0b2JUZW1wbGF0ZVZhcgoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnRjIDAgLy8gMQoJcmV0dXJuCgovLyBpdG9iVGVtcGxhdGVWYXIoKTogYnl0ZXMKaXRvYlRlbXBsYXRlVmFyOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NwoJLy8gcmV0dXJuIGl0b2IodGhpcy51aW50NjRUbXBsVmFyKTsKCWludGMgMSAvLyBUTVBMX3VpbnQ2NFRtcGxWYXIKCWl0b2IKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludGMgMCAvLyAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg5YTcxZDJiNCAvLyBtZXRob2QgInRtcGwoKXZvaWQiCglwdXNoYnl0ZXMgMHhkZjRkNWMzYiAvLyBtZXRob2QgInNwZWNpZmljTGVuZ3RoVGVtcGxhdGVWYXIoKXZvaWQiCglwdXNoYnl0ZXMgMHgzZDg3MGQ4NyAvLyBtZXRob2QgInRocm93RXJyb3IoKXZvaWQiCglwdXNoYnl0ZXMgMHhiYzBiMTcwNiAvLyBtZXRob2QgIml0b2JUZW1wbGF0ZVZhcigpYnl0ZVtdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV90bXBsICphYmlfcm91dGVfc3BlY2lmaWNMZW5ndGhUZW1wbGF0ZVZhciAqYWJpX3JvdXRlX3Rocm93RXJyb3IgKmFiaV9yb3V0ZV9pdG9iVGVtcGxhdGVWYXIKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "templateVariables": {