From e49120d62cc3901b5d98d968619822f824112dcb Mon Sep 17 00:00:00 2001 From: Neil Campbell Date: Tue, 10 Dec 2024 09:27:47 +0800 Subject: [PATCH] fix: handle bigint | number in array inputs (#140) --- examples/nfd/application.json | 30116 ++++++++++++++++++++ examples/nfd/client.ts | 2725 ++ examples/state/client.ts | 4 +- examples/voting/client.ts | 8 +- package.json | 2 + src/client/helpers/get-equivalent-type.ts | 17 +- src/tests/approval-tests.spec.ts | 1 + 7 files changed, 32863 insertions(+), 10 deletions(-) create mode 100644 examples/nfd/application.json create mode 100644 examples/nfd/client.ts diff --git a/examples/nfd/application.json b/examples/nfd/application.json new file mode 100644 index 0000000..cf1e5d9 --- /dev/null +++ b/examples/nfd/application.json @@ -0,0 +1,30116 @@ +{ + "name": "NFDInstance", + "desc": "", + "methods": [ + { + "name": "createApplication", + "args": [ + { + "name": "nfdName", + "type": "string" + }, + { + "name": "seller", + "type": "address" + }, + { + "name": "buyer", + "type": "address" + }, + { + "name": "purchaseAmount", + "type": "uint64" + }, + { + "name": "expTime", + "type": "uint64" + }, + { + "name": "commission1Addr", + "type": "address" + }, + { + "name": "commission1Pct", + "type": "uint64" + }, + { + "name": "commission2Addr", + "type": "address" + }, + { + "name": "commission2Pct", + "type": "uint64" + }, + { + "name": "segmentRootAppId", + "type": "uint64" + }, + { + "name": "segmentRootCommissionAddr", + "type": "address" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [ + "NoOp" + ], + "call": [] + } + }, + { + "name": "updateApplication", + "args": [ + { + "name": "versionNum", + "type": "string" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "UpdateApplication" + ] + } + }, + { + "name": "gas", + "args": [], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "mintAsa", + "args": [ + { + "name": "nfdName", + "type": "string" + }, + { + "name": "url", + "type": "string" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "deleteFields", + "args": [ + { + "name": "fieldNames", + "type": "byte[][]" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "updateSegmentCount", + "args": [ + { + "name": "childNfdName", + "type": "string" + }, + { + "name": "childNfdAppID", + "type": "uint64" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "getFieldUpdateCost", + "readonly": true, + "args": [ + { + "name": "fieldAndVals", + "type": "byte[][]" + } + ], + "returns": { + "type": "uint64" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "updateFields", + "args": [ + { + "name": "fieldAndVals", + "type": "byte[][]" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "readField", + "readonly": true, + "args": [ + { + "name": "fieldName", + "type": "byte[]" + } + ], + "returns": { + "type": "byte[]" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "offerForSale", + "args": [ + { + "name": "sellAmount", + "type": "uint64" + }, + { + "name": "reservedFor", + "type": "address" + } + ], + "returns": { + "type": "void" + }, + "events": [ + { + "name": "nfd_offerForSale", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "seller", + "type": "address" + }, + { + "name": "amount", + "type": "uint64" + }, + { + "name": "reservedFor", + "type": "address" + } + ], + "desc": "" + } + ], + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "cancelSale", + "args": [], + "returns": { + "type": "void" + }, + "events": [ + { + "name": "nfd_saleCancelled", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + } + ], + "desc": "" + } + ], + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "postOffer", + "args": [ + { + "name": "offer", + "type": "uint64" + }, + { + "name": "note", + "type": "string" + } + ], + "returns": { + "type": "void" + }, + "events": [ + { + "name": "nfd_postedOffer", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "sender", + "type": "address" + }, + { + "name": "amount", + "type": "uint64" + }, + { + "name": "note", + "type": "string" + } + ], + "desc": "" + } + ], + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "mintPayout", + "args": [ + { + "name": "oneYearPrice", + "type": "uint64" + }, + { + "name": "segmentPlatformCostInAlgo", + "type": "uint64" + } + ], + "returns": { + "type": "(uint64,address,uint64,address,uint64)", + "struct": "PayoutInfo" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "purchase", + "args": [ + { + "name": "payment", + "type": "pay" + } + ], + "returns": { + "type": "void" + }, + "events": [ + { + "name": "nfd_purchased", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "seller", + "type": "address" + }, + { + "name": "buyer", + "type": "address" + }, + { + "name": "sellAmount", + "type": "uint64" + }, + { + "name": "offerAmount", + "type": "uint64" + }, + { + "name": "overpaymentRefund", + "type": "uint64" + }, + { + "name": "convFeeAddr", + "type": "address" + }, + { + "name": "convFeeAmount", + "type": "uint64" + } + ], + "desc": "" + } + ], + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "isAddressInField", + "readonly": true, + "args": [ + { + "name": "fieldName", + "type": "string" + }, + { + "name": "address", + "type": "address" + } + ], + "returns": { + "type": "bool" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "getRenewPrice", + "readonly": true, + "args": [], + "returns": { + "type": "uint64" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "updateHash", + "args": [ + { + "name": "hash", + "type": "byte[]" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "contractLock", + "args": [ + { + "name": "lock", + "type": "bool" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "segmentLock", + "args": [ + { + "name": "lock", + "type": "bool" + }, + { + "name": "usdPrice", + "type": "uint64" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "vaultOptInLock", + "args": [ + { + "name": "lock", + "type": "bool" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "vaultOptIn", + "args": [ + { + "name": "assets", + "type": "uint64[]" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "vaultSend", + "args": [ + { + "name": "amount", + "type": "uint64" + }, + { + "name": "receiver", + "type": "address" + }, + { + "name": "note", + "type": "string" + }, + { + "name": "asset", + "type": "uint64" + }, + { + "name": "otherAssets", + "type": "uint64[]" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "renew", + "desc": "Renew adds more time to an existing NFDs expiration, or renews it if expired.\n\n\nAs part of v2-v3 upgrade, the NFDs are converted from lifetime NFDs to renewal NFDs. The v2 contract is upgraded\nto v3, then renew is called on the (now v3) nfd to turn it into a renewal (note the if curExpiration === 0 check)\n\n\nIf already renewal, then it extends the current expiration time by the time specified (minimum 1 yr) (365 / price paid * mint price)\nExpirations can never be more than NFD_MAX_EXPIRATION_DAYS days in the future.\n\n\nIF the NFD is expired:\n x The current owner can take it back over at base price - and NFD metadata doesn't have to be cleared - they\n get it back as-is.\n x If not current owner, then the price goes from high of base price * 10,000 down to base price over 24 hrs where\n 'buyer' has to pay at least that price. The NFD MUST ALREADY HAVE ITS METADATA CLEARED!", + "args": [ + { + "name": "payment", + "type": "pay", + "desc": "The payment transaction from which the renewal period is determined.." + } + ], + "returns": { + "type": "void" + }, + "events": [ + { + "name": "nfd_saleCancelled", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + } + ], + "desc": "" + }, + { + "name": "nfd_renewed", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "origOwner", + "type": "address" + }, + { + "name": "buyer", + "type": "address" + }, + { + "name": "priceOneYear", + "type": "uint64" + }, + { + "name": "renewAmount", + "type": "uint64" + }, + { + "name": "expTime", + "type": "uint64" + } + ], + "desc": "" + } + ], + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "setPrimaryAddress", + "args": [ + { + "name": "fieldName", + "type": "string" + }, + { + "name": "address", + "type": "address" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "registryAddingVerifiedAddress", + "desc": "Approved call from registry instructing us to move the specified u.cav.xx field and add to the specified\nverified field.", + "args": [ + { + "name": "fieldBeingVerified", + "type": "string", + "desc": "- MUST START with u.cav. (!)\ngets 'added' to 'set' in next arg - must be fixed-sized bytes" + }, + { + "name": "fieldSetName", + "type": "string", + "desc": "(must BE v.ca[...].as)" + } + ], + "returns": { + "type": "bool", + "desc": "true if added or already present, false otherwise" + }, + "events": [ + { + "name": "nfd_addressLinked", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "address", + "type": "address" + } + ], + "desc": "" + } + ], + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "registryRemovingVerifiedAddress", + "desc": "Approved call from registry instructing us to REMOVE an address from the specified verified address set", + "args": [ + { + "name": "fieldBeingChanged", + "type": "string", + "desc": "The field being changed in the address registry." + }, + { + "name": "address", + "type": "address", + "desc": "The address to be removed from the field." + }, + { + "name": "mbrRefundDest", + "type": "address", + "desc": "the address to send reclaimed MBR (if any)\n boolean - true if valid removed" + } + ], + "returns": { + "type": "bool" + }, + "events": [ + { + "name": "nfd_addressUnlinked", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "address", + "type": "address" + } + ], + "desc": "" + } + ], + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + } + ], + "events": [ + { + "name": "nfd_offerForSale", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "seller", + "type": "address" + }, + { + "name": "amount", + "type": "uint64" + }, + { + "name": "reservedFor", + "type": "address" + } + ], + "desc": "" + }, + { + "name": "nfd_saleCancelled", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + } + ], + "desc": "" + }, + { + "name": "nfd_postedOffer", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "sender", + "type": "address" + }, + { + "name": "amount", + "type": "uint64" + }, + { + "name": "note", + "type": "string" + } + ], + "desc": "" + }, + { + "name": "nfd_purchased", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "seller", + "type": "address" + }, + { + "name": "buyer", + "type": "address" + }, + { + "name": "sellAmount", + "type": "uint64" + }, + { + "name": "offerAmount", + "type": "uint64" + }, + { + "name": "overpaymentRefund", + "type": "uint64" + }, + { + "name": "convFeeAddr", + "type": "address" + }, + { + "name": "convFeeAmount", + "type": "uint64" + } + ], + "desc": "" + }, + { + "name": "nfd_renewed", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "origOwner", + "type": "address" + }, + { + "name": "buyer", + "type": "address" + }, + { + "name": "priceOneYear", + "type": "uint64" + }, + { + "name": "renewAmount", + "type": "uint64" + }, + { + "name": "expTime", + "type": "uint64" + } + ], + "desc": "" + }, + { + "name": "nfd_addressLinked", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "address", + "type": "address" + } + ], + "desc": "" + }, + { + "name": "nfd_addressUnlinked", + "args": [ + { + "name": "appId", + "type": "uint64" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "address", + "type": "address" + } + ], + "desc": "" + } + ], + "arcs": [ + 4, + 56 + ], + "structs": { + "PayoutInfo": [ + { + "name": "amountToSeller", + "type": "uint64" + }, + { + "name": "commissionAddress", + "type": "address" + }, + { + "name": "amountToCommission", + "type": "uint64" + }, + { + "name": "segmentRootOwner", + "type": "address" + }, + { + "name": "amountToSegmentRoot", + "type": "uint64" + } + ] + }, + "state": { + "schema": { + "global": { + "bytes": 30, + "ints": 0 + }, + "local": { + "bytes": 0, + "ints": 0 + } + }, + "keys": { + "global": {}, + "local": {}, + "box": {} + }, + "maps": { + "global": { + "globalState": { + "keyType": "AVMBytes", + "valueType": "AVMBytes" + } + }, + "local": {}, + "box": { + "boxes": { + "keyType": "AVMBytes", + "valueType": "AVMBytes" + } + } + } + }, + "bareActions": { + "create": [], + "call": [] + }, + "sourceInfo": { + "approval": { + "sourceInfo": [ + { + "teal": 15, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 1, + 2 + ] + }, + { + "teal": 16, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 3 + ] + }, + { + "teal": 17, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 4, + 5 + ] + }, + { + "teal": 18, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6 + ] + }, + { + "teal": 19, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 7, + 8 + ] + }, + { + "teal": 20, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 9 + ] + }, + { + "teal": 21, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35 + ] + }, + { + "teal": 25, + "source": "contracts/NFDInstance.algo.ts:17", + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", + "pc": [ + 36 + ] + }, + { + "teal": 30, + "source": "contracts/NFDInstance.algo.ts:43", + "pc": [ + 37, + 38, + 39 + ] + }, + { + "teal": 31, + "source": "contracts/NFDInstance.algo.ts:43", + "pc": [ + 40 + ] + }, + { + "teal": 32, + "source": "contracts/NFDInstance.algo.ts:43", + "pc": [ + 41 + ] + }, + { + "teal": 33, + "source": "contracts/NFDInstance.algo.ts:43", + "pc": [ + 42 + ] + }, + { + "teal": 34, + "source": "contracts/NFDInstance.algo.ts:43", + "pc": [ + 43 + ] + }, + { + "teal": 37, + "source": "contracts/NFDInstance.algo.ts:43", + "errorMessage": "argument 0 (segmentRootCommissionAddr) for createApplication must be a address", + "pc": [ + 44 + ] + }, + { + "teal": 40, + "source": "contracts/NFDInstance.algo.ts:42", + "pc": [ + 45, + 46, + 47 + ] + }, + { + "teal": 41, + "source": "contracts/NFDInstance.algo.ts:42", + "pc": [ + 48 + ] + }, + { + "teal": 44, + "source": "contracts/NFDInstance.algo.ts:41", + "pc": [ + 49, + 50, + 51 + ] + }, + { + "teal": 45, + "source": "contracts/NFDInstance.algo.ts:41", + "pc": [ + 52 + ] + }, + { + "teal": 48, + "source": "contracts/NFDInstance.algo.ts:40", + "pc": [ + 53, + 54, + 55 + ] + }, + { + "teal": 49, + "source": "contracts/NFDInstance.algo.ts:40", + "pc": [ + 56 + ] + }, + { + "teal": 50, + "source": "contracts/NFDInstance.algo.ts:40", + "pc": [ + 57 + ] + }, + { + "teal": 51, + "source": "contracts/NFDInstance.algo.ts:40", + "pc": [ + 58 + ] + }, + { + "teal": 52, + "source": "contracts/NFDInstance.algo.ts:40", + "pc": [ + 59 + ] + }, + { + "teal": 55, + "source": "contracts/NFDInstance.algo.ts:40", + "errorMessage": "argument 3 (commission2Addr) for createApplication must be a address", + "pc": [ + 60 + ] + }, + { + "teal": 58, + "source": "contracts/NFDInstance.algo.ts:39", + "pc": [ + 61, + 62, + 63 + ] + }, + { + "teal": 59, + "source": "contracts/NFDInstance.algo.ts:39", + "pc": [ + 64 + ] + }, + { + "teal": 62, + "source": "contracts/NFDInstance.algo.ts:38", + "pc": [ + 65, + 66, + 67 + ] + }, + { + "teal": 63, + "source": "contracts/NFDInstance.algo.ts:38", + "pc": [ + 68 + ] + }, + { + "teal": 64, + "source": "contracts/NFDInstance.algo.ts:38", + "pc": [ + 69 + ] + }, + { + "teal": 65, + "source": "contracts/NFDInstance.algo.ts:38", + "pc": [ + 70 + ] + }, + { + "teal": 66, + "source": "contracts/NFDInstance.algo.ts:38", + "pc": [ + 71 + ] + }, + { + "teal": 69, + "source": "contracts/NFDInstance.algo.ts:38", + "errorMessage": "argument 5 (commission1Addr) for createApplication must be a address", + "pc": [ + 72 + ] + }, + { + "teal": 72, + "source": "contracts/NFDInstance.algo.ts:37", + "pc": [ + 73, + 74, + 75 + ] + }, + { + "teal": 73, + "source": "contracts/NFDInstance.algo.ts:37", + "pc": [ + 76 + ] + }, + { + "teal": 76, + "source": "contracts/NFDInstance.algo.ts:36", + "pc": [ + 77, + 78, + 79 + ] + }, + { + "teal": 77, + "source": "contracts/NFDInstance.algo.ts:36", + "pc": [ + 80 + ] + }, + { + "teal": 80, + "source": "contracts/NFDInstance.algo.ts:35", + "pc": [ + 81, + 82, + 83 + ] + }, + { + "teal": 81, + "source": "contracts/NFDInstance.algo.ts:35", + "pc": [ + 84 + ] + }, + { + "teal": 82, + "source": "contracts/NFDInstance.algo.ts:35", + "pc": [ + 85 + ] + }, + { + "teal": 83, + "source": "contracts/NFDInstance.algo.ts:35", + "pc": [ + 86 + ] + }, + { + "teal": 84, + "source": "contracts/NFDInstance.algo.ts:35", + "pc": [ + 87 + ] + }, + { + "teal": 87, + "source": "contracts/NFDInstance.algo.ts:35", + "errorMessage": "argument 8 (buyer) for createApplication must be a address", + "pc": [ + 88 + ] + }, + { + "teal": 90, + "source": "contracts/NFDInstance.algo.ts:34", + "pc": [ + 89, + 90, + 91 + ] + }, + { + "teal": 91, + "source": "contracts/NFDInstance.algo.ts:34", + "pc": [ + 92 + ] + }, + { + "teal": 92, + "source": "contracts/NFDInstance.algo.ts:34", + "pc": [ + 93 + ] + }, + { + "teal": 93, + "source": "contracts/NFDInstance.algo.ts:34", + "pc": [ + 94 + ] + }, + { + "teal": 94, + "source": "contracts/NFDInstance.algo.ts:34", + "pc": [ + 95 + ] + }, + { + "teal": 97, + "source": "contracts/NFDInstance.algo.ts:34", + "errorMessage": "argument 9 (seller) for createApplication must be a address", + "pc": [ + 96 + ] + }, + { + "teal": 100, + "source": "contracts/NFDInstance.algo.ts:33", + "pc": [ + 97, + 98, + 99 + ] + }, + { + "teal": 101, + "source": "contracts/NFDInstance.algo.ts:33", + "pc": [ + 100, + 101, + 102 + ] + }, + { + "teal": 104, + "source": "contracts/NFDInstance.algo.ts:32", + "pc": [ + 103, + 104, + 105 + ] + }, + { + "teal": 105, + "source": "contracts/NFDInstance.algo.ts:32", + "pc": [ + 106 + ] + }, + { + "teal": 106, + "source": "contracts/NFDInstance.algo.ts:32", + "pc": [ + 107 + ] + }, + { + "teal": 110, + "source": "contracts/NFDInstance.algo.ts:32", + "pc": [ + 108, + 109, + 110 + ] + }, + { + "teal": 113, + "source": "contracts/NFDInstance.algo.ts:32", + "pc": [ + 111 + ] + }, + { + "teal": 117, + "source": "contracts/NFDInstance.algo.ts:45", + "pc": [ + 112, + 113 + ] + }, + { + "teal": 118, + "source": "contracts/NFDInstance.algo.ts:45", + "pc": [ + 114, + 115 + ] + }, + { + "teal": 119, + "source": "contracts/NFDInstance.algo.ts:45", + "pc": [ + 116 + ] + }, + { + "teal": 122, + "source": "contracts/NFDInstance.algo.ts:45", + "errorMessage": "caller must be NFD registry!", + "pc": [ + 117 + ] + }, + { + "teal": 126, + "source": "contracts/NFDInstance.algo.ts:46", + "pc": [ + 118, + 119 + ] + }, + { + "teal": 127, + "source": "contracts/NFDInstance.algo.ts:46", + "pc": [ + 120 + ] + }, + { + "teal": 128, + "source": "contracts/NFDInstance.algo.ts:46", + "pc": [ + 121 + ] + }, + { + "teal": 129, + "source": "contracts/NFDInstance.algo.ts:46", + "pc": [ + 122 + ] + }, + { + "teal": 133, + "source": "contracts/NFDInstance.algo.ts:48", + "pc": [ + 123, + 124 + ] + }, + { + "teal": 134, + "source": "contracts/NFDInstance.algo.ts:48", + "pc": [ + 125, + 126 + ] + }, + { + "teal": 135, + "source": "contracts/NFDInstance.algo.ts:48", + "pc": [ + 127 + ] + }, + { + "teal": 139, + "source": "contracts/NFDInstance.algo.ts:49", + "pc": [ + 128, + 129 + ] + }, + { + "teal": 140, + "source": "contracts/NFDInstance.algo.ts:49", + "pc": [ + 130, + 131, + 132, + 133, + 134 + ] + }, + { + "teal": 141, + "source": "contracts/NFDInstance.algo.ts:49", + "pc": [ + 135 + ] + }, + { + "teal": 145, + "source": "contracts/NFDInstance.algo.ts:50", + "pc": [ + 136 + ] + }, + { + "teal": 146, + "source": "contracts/NFDInstance.algo.ts:50", + "pc": [ + 137, + 138 + ] + }, + { + "teal": 147, + "source": "contracts/NFDInstance.algo.ts:50", + "pc": [ + 139 + ] + }, + { + "teal": 151, + "source": "contracts/NFDInstance.algo.ts:51", + "pc": [ + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154 + ] + }, + { + "teal": 152, + "source": "contracts/NFDInstance.algo.ts:51", + "pc": [ + 155, + 156 + ] + }, + { + "teal": 153, + "source": "contracts/NFDInstance.algo.ts:51", + "pc": [ + 157 + ] + }, + { + "teal": 154, + "source": "contracts/NFDInstance.algo.ts:51", + "pc": [ + 158 + ] + }, + { + "teal": 158, + "source": "contracts/NFDInstance.algo.ts:52", + "pc": [ + 159 + ] + }, + { + "teal": 159, + "source": "contracts/NFDInstance.algo.ts:52", + "pc": [ + 160, + 161 + ] + }, + { + "teal": 160, + "source": "contracts/NFDInstance.algo.ts:52", + "pc": [ + 162 + ] + }, + { + "teal": 161, + "source": "contracts/NFDInstance.algo.ts:52", + "pc": [ + 163 + ] + }, + { + "teal": 165, + "source": "contracts/NFDInstance.algo.ts:53", + "pc": [ + 164, + 165 + ] + }, + { + "teal": 166, + "source": "contracts/NFDInstance.algo.ts:53", + "pc": [ + 166, + 167 + ] + }, + { + "teal": 167, + "source": "contracts/NFDInstance.algo.ts:53", + "pc": [ + 168 + ] + }, + { + "teal": 168, + "source": "contracts/NFDInstance.algo.ts:53", + "pc": [ + 169 + ] + }, + { + "teal": 172, + "source": "contracts/NFDInstance.algo.ts:54", + "pc": [ + 170, + 171 + ] + }, + { + "teal": 173, + "source": "contracts/NFDInstance.algo.ts:54", + "pc": [ + 172, + 173 + ] + }, + { + "teal": 174, + "source": "contracts/NFDInstance.algo.ts:54", + "pc": [ + 174 + ] + }, + { + "teal": 178, + "source": "contracts/NFDInstance.algo.ts:55", + "pc": [ + 175, + 176 + ] + }, + { + "teal": 179, + "source": "contracts/NFDInstance.algo.ts:55", + "pc": [ + 177, + 178 + ] + }, + { + "teal": 180, + "source": "contracts/NFDInstance.algo.ts:55", + "pc": [ + 179 + ] + }, + { + "teal": 184, + "source": "contracts/NFDInstance.algo.ts:56", + "pc": [ + 180 + ] + }, + { + "teal": 185, + "source": "contracts/NFDInstance.algo.ts:56", + "pc": [ + 181, + 182 + ] + }, + { + "teal": 186, + "source": "contracts/NFDInstance.algo.ts:56", + "pc": [ + 183 + ] + }, + { + "teal": 190, + "source": "contracts/NFDInstance.algo.ts:57", + "pc": [ + 184, + 185 + ] + }, + { + "teal": 191, + "source": "contracts/NFDInstance.algo.ts:57", + "pc": [ + 186, + 187 + ] + }, + { + "teal": 192, + "source": "contracts/NFDInstance.algo.ts:57", + "pc": [ + 188 + ] + }, + { + "teal": 196, + "source": "contracts/NFDInstance.algo.ts:58", + "pc": [ + 189, + 190 + ] + }, + { + "teal": 197, + "source": "contracts/NFDInstance.algo.ts:58", + "pc": [ + 191, + 192 + ] + }, + { + "teal": 198, + "source": "contracts/NFDInstance.algo.ts:58", + "pc": [ + 193 + ] + }, + { + "teal": 199, + "source": "contracts/NFDInstance.algo.ts:58", + "pc": [ + 194 + ] + }, + { + "teal": 204, + "source": "contracts/NFDInstance.algo.ts:59", + "pc": [ + 195, + 196 + ] + }, + { + "teal": 205, + "source": "contracts/NFDInstance.algo.ts:59", + "pc": [ + 197, + 198 + ] + }, + { + "teal": 206, + "source": "contracts/NFDInstance.algo.ts:59", + "pc": [ + 199 + ] + }, + { + "teal": 207, + "source": "contracts/NFDInstance.algo.ts:59", + "pc": [ + 200, + 201, + 202 + ] + }, + { + "teal": 212, + "source": "contracts/NFDInstance.algo.ts:60", + "pc": [ + 203, + 204 + ] + }, + { + "teal": 213, + "source": "contracts/NFDInstance.algo.ts:60", + "pc": [ + 205 + ] + }, + { + "teal": 214, + "source": "contracts/NFDInstance.algo.ts:60", + "pc": [ + 206 + ] + }, + { + "teal": 215, + "source": "contracts/NFDInstance.algo.ts:60", + "pc": [ + 207 + ] + }, + { + "teal": 216, + "source": "contracts/NFDInstance.algo.ts:60", + "pc": [ + 208, + 209, + 210 + ] + }, + { + "teal": 217, + "source": "contracts/NFDInstance.algo.ts:60", + "pc": [ + 211, + 212 + ] + }, + { + "teal": 218, + "source": "contracts/NFDInstance.algo.ts:60", + "pc": [ + 213, + 214 + ] + }, + { + "teal": 219, + "source": "contracts/NFDInstance.algo.ts:60", + "pc": [ + 215 + ] + }, + { + "teal": 220, + "source": "contracts/NFDInstance.algo.ts:60", + "pc": [ + 216 + ] + }, + { + "teal": 224, + "source": "contracts/NFDInstance.algo.ts:60", + "errorMessage": "commission must be between 1 and 50%", + "pc": [ + 217 + ] + }, + { + "teal": 228, + "source": "contracts/NFDInstance.algo.ts:61", + "pc": [ + 218, + 219 + ] + }, + { + "teal": 229, + "source": "contracts/NFDInstance.algo.ts:61", + "pc": [ + 220, + 221 + ] + }, + { + "teal": 230, + "source": "contracts/NFDInstance.algo.ts:61", + "pc": [ + 222 + ] + }, + { + "teal": 234, + "source": "contracts/NFDInstance.algo.ts:62", + "pc": [ + 223, + 224 + ] + }, + { + "teal": 235, + "source": "contracts/NFDInstance.algo.ts:62", + "pc": [ + 225, + 226 + ] + }, + { + "teal": 236, + "source": "contracts/NFDInstance.algo.ts:62", + "pc": [ + 227 + ] + }, + { + "teal": 237, + "source": "contracts/NFDInstance.algo.ts:62", + "pc": [ + 228 + ] + }, + { + "teal": 242, + "source": "contracts/NFDInstance.algo.ts:63", + "pc": [ + 229, + 230 + ] + }, + { + "teal": 243, + "source": "contracts/NFDInstance.algo.ts:63", + "pc": [ + 231, + 232 + ] + }, + { + "teal": 244, + "source": "contracts/NFDInstance.algo.ts:63", + "pc": [ + 233 + ] + }, + { + "teal": 245, + "source": "contracts/NFDInstance.algo.ts:63", + "pc": [ + 234, + 235, + 236 + ] + }, + { + "teal": 250, + "source": "contracts/NFDInstance.algo.ts:64", + "pc": [ + 237, + 238 + ] + }, + { + "teal": 251, + "source": "contracts/NFDInstance.algo.ts:64", + "pc": [ + 239 + ] + }, + { + "teal": 252, + "source": "contracts/NFDInstance.algo.ts:64", + "pc": [ + 240 + ] + }, + { + "teal": 253, + "source": "contracts/NFDInstance.algo.ts:64", + "pc": [ + 241 + ] + }, + { + "teal": 254, + "source": "contracts/NFDInstance.algo.ts:64", + "pc": [ + 242, + 243, + 244 + ] + }, + { + "teal": 255, + "source": "contracts/NFDInstance.algo.ts:64", + "pc": [ + 245, + 246 + ] + }, + { + "teal": 256, + "source": "contracts/NFDInstance.algo.ts:64", + "pc": [ + 247, + 248 + ] + }, + { + "teal": 257, + "source": "contracts/NFDInstance.algo.ts:64", + "pc": [ + 249 + ] + }, + { + "teal": 258, + "source": "contracts/NFDInstance.algo.ts:64", + "pc": [ + 250 + ] + }, + { + "teal": 262, + "source": "contracts/NFDInstance.algo.ts:64", + "errorMessage": "commission must be between 1 and 50%", + "pc": [ + 251 + ] + }, + { + "teal": 266, + "source": "contracts/NFDInstance.algo.ts:65", + "pc": [ + 252, + 253 + ] + }, + { + "teal": 267, + "source": "contracts/NFDInstance.algo.ts:65", + "pc": [ + 254, + 255 + ] + }, + { + "teal": 268, + "source": "contracts/NFDInstance.algo.ts:65", + "pc": [ + 256 + ] + }, + { + "teal": 272, + "source": "contracts/NFDInstance.algo.ts:66", + "pc": [ + 257, + 258 + ] + }, + { + "teal": 273, + "source": "contracts/NFDInstance.algo.ts:66", + "pc": [ + 259, + 260 + ] + }, + { + "teal": 274, + "source": "contracts/NFDInstance.algo.ts:66", + "pc": [ + 261 + ] + }, + { + "teal": 275, + "source": "contracts/NFDInstance.algo.ts:66", + "pc": [ + 262 + ] + }, + { + "teal": 282, + "source": "contracts/NFDInstance.algo.ts:69", + "pc": [ + 263, + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 273, + 274 + ] + }, + { + "teal": 283, + "source": "contracts/NFDInstance.algo.ts:69", + "pc": [ + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282 + ] + }, + { + "teal": 284, + "source": "contracts/NFDInstance.algo.ts:69", + "pc": [ + 283 + ] + }, + { + "teal": 288, + "source": "contracts/NFDInstance.algo.ts:70", + "pc": [ + 284, + 285, + 286, + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295 + ] + }, + { + "teal": 289, + "source": "contracts/NFDInstance.algo.ts:70", + "pc": [ + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 305 + ] + }, + { + "teal": 290, + "source": "contracts/NFDInstance.algo.ts:70", + "pc": [ + 306 + ] + }, + { + "teal": 294, + "source": "contracts/NFDInstance.algo.ts:72", + "pc": [ + 307, + 308 + ] + }, + { + "teal": 295, + "source": "contracts/NFDInstance.algo.ts:72", + "pc": [ + 309, + 310 + ] + }, + { + "teal": 296, + "source": "contracts/NFDInstance.algo.ts:72", + "pc": [ + 311 + ] + }, + { + "teal": 297, + "source": "contracts/NFDInstance.algo.ts:72", + "pc": [ + 312 + ] + }, + { + "teal": 301, + "source": "contracts/NFDInstance.algo.ts:75", + "pc": [ + 313, + 314 + ] + }, + { + "teal": 302, + "source": "contracts/NFDInstance.algo.ts:75", + "pc": [ + 315, + 316 + ] + }, + { + "teal": 303, + "source": "contracts/NFDInstance.algo.ts:75", + "pc": [ + 317 + ] + }, + { + "teal": 308, + "source": "contracts/NFDInstance.algo.ts:77", + "pc": [ + 318, + 319 + ] + }, + { + "teal": 309, + "source": "contracts/NFDInstance.algo.ts:77", + "pc": [ + 320 + ] + }, + { + "teal": 310, + "source": "contracts/NFDInstance.algo.ts:77", + "pc": [ + 321 + ] + }, + { + "teal": 311, + "source": "contracts/NFDInstance.algo.ts:77", + "pc": [ + 322, + 323, + 324 + ] + }, + { + "teal": 316, + "source": "contracts/NFDInstance.algo.ts:78", + "pc": [ + 325, + 326 + ] + }, + { + "teal": 317, + "source": "contracts/NFDInstance.algo.ts:78", + "pc": [ + 327, + 328 + ] + }, + { + "teal": 318, + "source": "contracts/NFDInstance.algo.ts:78", + "pc": [ + 329 + ] + }, + { + "teal": 319, + "source": "contracts/NFDInstance.algo.ts:78", + "pc": [ + 330 + ] + }, + { + "teal": 323, + "source": "contracts/NFDInstance.algo.ts:81", + "pc": [ + 331, + 332 + ] + }, + { + "teal": 324, + "source": "contracts/NFDInstance.algo.ts:81", + "pc": [ + 333, + 334 + ] + }, + { + "teal": 325, + "source": "contracts/NFDInstance.algo.ts:81", + "pc": [ + 335, + 336, + 337 + ] + }, + { + "teal": 326, + "source": "contracts/NFDInstance.algo.ts:81", + "pc": [ + 338, + 339 + ] + }, + { + "teal": 330, + "source": "contracts/NFDInstance.algo.ts:84", + "pc": [ + 340, + 341 + ] + }, + { + "teal": 331, + "source": "contracts/NFDInstance.algo.ts:84", + "pc": [ + 342, + 343 + ] + }, + { + "teal": 332, + "source": "contracts/NFDInstance.algo.ts:84", + "pc": [ + 344 + ] + }, + { + "teal": 333, + "source": "contracts/NFDInstance.algo.ts:84", + "pc": [ + 345, + 346 + ] + }, + { + "teal": 334, + "source": "contracts/NFDInstance.algo.ts:84", + "pc": [ + 347 + ] + }, + { + "teal": 335, + "source": "contracts/NFDInstance.algo.ts:84", + "pc": [ + 348 + ] + }, + { + "teal": 336, + "source": "contracts/NFDInstance.algo.ts:84", + "pc": [ + 349 + ] + }, + { + "teal": 337, + "source": "contracts/NFDInstance.algo.ts:84", + "pc": [ + 350 + ] + }, + { + "teal": 338, + "source": "contracts/NFDInstance.algo.ts:84", + "pc": [ + 351, + 352 + ] + }, + { + "teal": 339, + "source": "contracts/NFDInstance.algo.ts:84", + "pc": [ + 353 + ] + }, + { + "teal": 340, + "source": "contracts/NFDInstance.algo.ts:84", + "pc": [ + 354 + ] + }, + { + "teal": 341, + "source": "contracts/NFDInstance.algo.ts:84", + "pc": [ + 355 + ] + }, + { + "teal": 342, + "source": "contracts/NFDInstance.algo.ts:84", + "pc": [ + 356 + ] + }, + { + "teal": 343, + "source": "contracts/NFDInstance.algo.ts:84", + "pc": [ + 357, + 358 + ] + }, + { + "teal": 344, + "source": "contracts/NFDInstance.algo.ts:84", + "pc": [ + 359, + 360 + ] + }, + { + "teal": 345, + "source": "contracts/NFDInstance.algo.ts:84", + "pc": [ + 361 + ] + }, + { + "teal": 346, + "source": "contracts/NFDInstance.algo.ts:84", + "pc": [ + 362 + ] + }, + { + "teal": 347, + "source": "contracts/NFDInstance.algo.ts:84", + "pc": [ + 363 + ] + }, + { + "teal": 352, + "source": "contracts/NFDInstance.algo.ts:88", + "pc": [ + 364, + 365 + ] + }, + { + "teal": 353, + "source": "contracts/NFDInstance.algo.ts:88", + "pc": [ + 366, + 367 + ] + }, + { + "teal": 354, + "source": "contracts/NFDInstance.algo.ts:88", + "pc": [ + 368, + 369, + 370 + ] + }, + { + "teal": 355, + "source": "contracts/NFDInstance.algo.ts:88", + "pc": [ + 371, + 372 + ] + }, + { + "teal": 356, + "source": "contracts/NFDInstance.algo.ts:88", + "pc": [ + 373 + ] + }, + { + "teal": 357, + "source": "contracts/NFDInstance.algo.ts:88", + "pc": [ + 374, + 375, + 376 + ] + }, + { + "teal": 365, + "source": "contracts/NFDInstance.algo.ts:91", + "pc": [ + 377, + 378 + ] + }, + { + "teal": 366, + "source": "contracts/NFDInstance.algo.ts:91", + "pc": [ + 379, + 380 + ] + }, + { + "teal": 367, + "source": "contracts/NFDInstance.algo.ts:91", + "pc": [ + 381 + ] + }, + { + "teal": 370, + "source": "contracts/NFDInstance.algo.ts:90", + "errorMessage": "parent commission address must be set if parent app id is set and parent is unlocked", + "pc": [ + 382 + ] + }, + { + "teal": 377, + "source": "contracts/NFDInstance.algo.ts:98", + "pc": [ + 383, + 384 + ] + }, + { + "teal": 378, + "source": "contracts/NFDInstance.algo.ts:98", + "pc": [ + 385, + 386 + ] + }, + { + "teal": 379, + "source": "contracts/NFDInstance.algo.ts:98", + "pc": [ + 387, + 388, + 389 + ] + }, + { + "teal": 380, + "source": "contracts/NFDInstance.algo.ts:98", + "pc": [ + 390, + 391 + ] + }, + { + "teal": 381, + "source": "contracts/NFDInstance.algo.ts:98", + "pc": [ + 392 + ] + }, + { + "teal": 384, + "source": "contracts/NFDInstance.algo.ts:97", + "errorMessage": "the segment commission agent should be the parent nfd's seller", + "pc": [ + 393 + ] + }, + { + "teal": 388, + "source": "contracts/NFDInstance.algo.ts:101", + "pc": [ + 394, + 395 + ] + }, + { + "teal": 389, + "source": "contracts/NFDInstance.algo.ts:101", + "pc": [ + 396, + 397 + ] + }, + { + "teal": 390, + "source": "contracts/NFDInstance.algo.ts:101", + "pc": [ + 398 + ] + }, + { + "teal": 395, + "source": "contracts/NFDInstance.algo.ts:32", + "pc": [ + 399 + ] + }, + { + "teal": 400, + "source": "contracts/NFDInstance.algo.ts:106", + "pc": [ + 400, + 401, + 402 + ] + }, + { + "teal": 401, + "source": "contracts/NFDInstance.algo.ts:106", + "pc": [ + 403, + 404, + 405 + ] + }, + { + "teal": 404, + "source": "contracts/NFDInstance.algo.ts:106", + "pc": [ + 406, + 407, + 408 + ] + }, + { + "teal": 405, + "source": "contracts/NFDInstance.algo.ts:106", + "pc": [ + 409 + ] + }, + { + "teal": 406, + "source": "contracts/NFDInstance.algo.ts:106", + "pc": [ + 410 + ] + }, + { + "teal": 410, + "source": "contracts/NFDInstance.algo.ts:106", + "pc": [ + 411, + 412, + 413 + ] + }, + { + "teal": 414, + "source": "contracts/NFDInstance.algo.ts:110", + "pc": [ + 414, + 415 + ] + }, + { + "teal": 415, + "source": "contracts/NFDInstance.algo.ts:110", + "pc": [ + 416 + ] + }, + { + "teal": 416, + "source": "contracts/NFDInstance.algo.ts:110", + "pc": [ + 417, + 418 + ] + }, + { + "teal": 417, + "source": "contracts/NFDInstance.algo.ts:110", + "pc": [ + 419 + ] + }, + { + "teal": 420, + "source": "contracts/NFDInstance.algo.ts:110", + "errorMessage": "contract must be unlocked to upgrade", + "pc": [ + 420 + ] + }, + { + "teal": 424, + "source": "contracts/NFDInstance.algo.ts:113", + "pc": [ + 421, + 422 + ] + }, + { + "teal": 425, + "source": "contracts/NFDInstance.algo.ts:113", + "pc": [ + 423, + 424 + ] + }, + { + "teal": 426, + "source": "contracts/NFDInstance.algo.ts:113", + "pc": [ + 425 + ] + }, + { + "teal": 429, + "source": "contracts/NFDInstance.algo.ts:113", + "errorMessage": "caller must be NFD registry!", + "pc": [ + 426 + ] + }, + { + "teal": 433, + "source": "contracts/NFDInstance.algo.ts:114", + "pc": [ + 427, + 428 + ] + }, + { + "teal": 434, + "source": "contracts/NFDInstance.algo.ts:114", + "pc": [ + 429, + 430 + ] + }, + { + "teal": 435, + "source": "contracts/NFDInstance.algo.ts:114", + "pc": [ + 431 + ] + }, + { + "teal": 439, + "source": "contracts/NFDInstance.algo.ts:115", + "pc": [ + 432 + ] + }, + { + "teal": 440, + "source": "contracts/NFDInstance.algo.ts:115", + "pc": [ + 433, + 434 + ] + }, + { + "teal": 441, + "source": "contracts/NFDInstance.algo.ts:115", + "pc": [ + 435 + ] + }, + { + "teal": 442, + "source": "contracts/NFDInstance.algo.ts:115", + "pc": [ + 436 + ] + }, + { + "teal": 443, + "source": "contracts/NFDInstance.algo.ts:106", + "pc": [ + 437 + ] + }, + { + "teal": 447, + "source": "contracts/NFDInstance.algo.ts:118", + "pc": [ + 438, + 439, + 440 + ] + }, + { + "teal": 451, + "source": "contracts/NFDInstance.algo.ts:120", + "pc": [ + 441, + 442, + 443 + ] + }, + { + "teal": 452, + "source": "contracts/NFDInstance.algo.ts:120", + "pc": [ + 444 + ] + }, + { + "teal": 453, + "source": "contracts/NFDInstance.algo.ts:120", + "pc": [ + 445 + ] + }, + { + "teal": 454, + "source": "contracts/NFDInstance.algo.ts:120", + "pc": [ + 446 + ] + }, + { + "teal": 455, + "source": "contracts/NFDInstance.algo.ts:120", + "pc": [ + 447 + ] + }, + { + "teal": 456, + "source": "contracts/NFDInstance.algo.ts:120", + "pc": [ + 448 + ] + }, + { + "teal": 459, + "source": "contracts/NFDInstance.algo.ts:120", + "errorMessage": "can't still be in minting state", + "pc": [ + 449 + ] + }, + { + "teal": 464, + "source": "contracts/NFDInstance.algo.ts:121", + "pc": [ + 450, + 451, + 452 + ] + }, + { + "teal": 465, + "source": "contracts/NFDInstance.algo.ts:121", + "pc": [ + 453, + 454, + 455, + 456, + 457 + ] + }, + { + "teal": 466, + "source": "contracts/NFDInstance.algo.ts:121", + "pc": [ + 458 + ] + }, + { + "teal": 467, + "source": "contracts/NFDInstance.algo.ts:121", + "pc": [ + 459, + 460, + 461 + ] + }, + { + "teal": 472, + "source": "contracts/NFDInstance.algo.ts:121", + "pc": [ + 462 + ] + }, + { + "teal": 477, + "source": "contracts/NFDInstance.algo.ts:125", + "pc": [ + 463, + 464, + 465 + ] + }, + { + "teal": 478, + "source": "contracts/NFDInstance.algo.ts:125", + "pc": [ + 466 + ] + }, + { + "teal": 481, + "source": "contracts/NFDInstance.algo.ts:125", + "errorMessage": "NFD can't be expired for these v1/v2 operations", + "pc": [ + 467 + ] + }, + { + "teal": 486, + "source": "contracts/NFDInstance.algo.ts:127", + "pc": [ + 468, + 469 + ] + }, + { + "teal": 487, + "source": "contracts/NFDInstance.algo.ts:127", + "pc": [ + 470, + 471 + ] + }, + { + "teal": 488, + "source": "contracts/NFDInstance.algo.ts:127", + "pc": [ + 472 + ] + }, + { + "teal": 489, + "source": "contracts/NFDInstance.algo.ts:127", + "pc": [ + 473 + ] + }, + { + "teal": 490, + "source": "contracts/NFDInstance.algo.ts:127", + "pc": [ + 474, + 475, + 476 + ] + }, + { + "teal": 491, + "source": "contracts/NFDInstance.algo.ts:127", + "pc": [ + 477, + 478, + 479 + ] + }, + { + "teal": 492, + "source": "contracts/NFDInstance.algo.ts:127", + "pc": [ + 480, + 481, + 482, + 483, + 484, + 485, + 486, + 487, + 488, + 489, + 490, + 491, + 492, + 493 + ] + }, + { + "teal": 493, + "source": "contracts/NFDInstance.algo.ts:127", + "pc": [ + 494 + ] + }, + { + "teal": 494, + "source": "contracts/NFDInstance.algo.ts:127", + "pc": [ + 495 + ] + }, + { + "teal": 497, + "source": "contracts/NFDInstance.algo.ts:127", + "pc": [ + 496, + 497, + 498 + ] + }, + { + "teal": 502, + "source": "contracts/NFDInstance.algo.ts:133", + "pc": [ + 499, + 500, + 501 + ] + }, + { + "teal": 506, + "source": "contracts/NFDInstance.algo.ts:134", + "pc": [ + 502 + ] + }, + { + "teal": 512, + "source": "contracts/NFDInstance.algo.ts:136", + "pc": [ + 503, + 504 + ] + }, + { + "teal": 513, + "source": "contracts/NFDInstance.algo.ts:136", + "pc": [ + 505 + ] + }, + { + "teal": 514, + "source": "contracts/NFDInstance.algo.ts:136", + "pc": [ + 506 + ] + }, + { + "teal": 515, + "source": "contracts/NFDInstance.algo.ts:136", + "pc": [ + 507 + ] + }, + { + "teal": 516, + "source": "contracts/NFDInstance.algo.ts:136", + "pc": [ + 508, + 509, + 510 + ] + }, + { + "teal": 517, + "source": "contracts/NFDInstance.algo.ts:136", + "pc": [ + 511, + 512, + 513 + ] + }, + { + "teal": 518, + "source": "contracts/NFDInstance.algo.ts:136", + "pc": [ + 514, + 515, + 516, + 517, + 518, + 519, + 520, + 521, + 522, + 523, + 524, + 525, + 526, + 527 + ] + }, + { + "teal": 519, + "source": "contracts/NFDInstance.algo.ts:136", + "pc": [ + 528 + ] + }, + { + "teal": 520, + "source": "contracts/NFDInstance.algo.ts:136", + "pc": [ + 529 + ] + }, + { + "teal": 523, + "source": "contracts/NFDInstance.algo.ts:136", + "pc": [ + 530, + 531, + 532 + ] + }, + { + "teal": 528, + "source": "contracts/NFDInstance.algo.ts:141", + "pc": [ + 533, + 534, + 535 + ] + }, + { + "teal": 532, + "source": "contracts/NFDInstance.algo.ts:142", + "pc": [ + 536 + ] + }, + { + "teal": 538, + "source": "contracts/NFDInstance.algo.ts:144", + "pc": [ + 537, + 538 + ] + }, + { + "teal": 539, + "source": "contracts/NFDInstance.algo.ts:144", + "pc": [ + 539 + ] + }, + { + "teal": 540, + "source": "contracts/NFDInstance.algo.ts:144", + "pc": [ + 540 + ] + }, + { + "teal": 541, + "source": "contracts/NFDInstance.algo.ts:144", + "pc": [ + 541 + ] + }, + { + "teal": 542, + "source": "contracts/NFDInstance.algo.ts:144", + "pc": [ + 542, + 543, + 544 + ] + }, + { + "teal": 543, + "source": "contracts/NFDInstance.algo.ts:144", + "pc": [ + 545, + 546, + 547 + ] + }, + { + "teal": 544, + "source": "contracts/NFDInstance.algo.ts:144", + "pc": [ + 548, + 549, + 550, + 551, + 552, + 553, + 554, + 555, + 556, + 557, + 558, + 559, + 560, + 561, + 562 + ] + }, + { + "teal": 545, + "source": "contracts/NFDInstance.algo.ts:144", + "pc": [ + 563 + ] + }, + { + "teal": 546, + "source": "contracts/NFDInstance.algo.ts:144", + "pc": [ + 564 + ] + }, + { + "teal": 549, + "source": "contracts/NFDInstance.algo.ts:144", + "pc": [ + 565, + 566, + 567 + ] + }, + { + "teal": 554, + "source": "contracts/NFDInstance.algo.ts:149", + "pc": [ + 568, + 569, + 570 + ] + }, + { + "teal": 555, + "source": "contracts/NFDInstance.algo.ts:149", + "pc": [ + 571, + 572, + 573 + ] + }, + { + "teal": 556, + "source": "contracts/NFDInstance.algo.ts:149", + "pc": [ + 574 + ] + }, + { + "teal": 560, + "source": "contracts/NFDInstance.algo.ts:150", + "pc": [ + 575 + ] + }, + { + "teal": 566, + "source": "contracts/NFDInstance.algo.ts:153", + "pc": [ + 576, + 577 + ] + }, + { + "teal": 567, + "source": "contracts/NFDInstance.algo.ts:153", + "pc": [ + 578 + ] + }, + { + "teal": 568, + "source": "contracts/NFDInstance.algo.ts:153", + "pc": [ + 579 + ] + }, + { + "teal": 569, + "source": "contracts/NFDInstance.algo.ts:153", + "pc": [ + 580 + ] + }, + { + "teal": 570, + "source": "contracts/NFDInstance.algo.ts:153", + "pc": [ + 581, + 582, + 583 + ] + }, + { + "teal": 571, + "source": "contracts/NFDInstance.algo.ts:153", + "pc": [ + 584, + 585, + 586 + ] + }, + { + "teal": 572, + "source": "contracts/NFDInstance.algo.ts:153", + "pc": [ + 587, + 588, + 589, + 590, + 591, + 592, + 593, + 594, + 595, + 596, + 597, + 598, + 599 + ] + }, + { + "teal": 573, + "source": "contracts/NFDInstance.algo.ts:153", + "pc": [ + 600 + ] + }, + { + "teal": 574, + "source": "contracts/NFDInstance.algo.ts:153", + "pc": [ + 601 + ] + }, + { + "teal": 577, + "source": "contracts/NFDInstance.algo.ts:153", + "pc": [ + 602, + 603, + 604 + ] + }, + { + "teal": 582, + "source": "contracts/NFDInstance.algo.ts:154", + "pc": [ + 605, + 606, + 607 + ] + }, + { + "teal": 583, + "source": "contracts/NFDInstance.algo.ts:154", + "pc": [ + 608, + 609, + 610 + ] + }, + { + "teal": 587, + "source": "contracts/NFDInstance.algo.ts:155", + "pc": [ + 611 + ] + }, + { + "teal": 593, + "source": "contracts/NFDInstance.algo.ts:159", + "pc": [ + 612, + 613 + ] + }, + { + "teal": 594, + "source": "contracts/NFDInstance.algo.ts:159", + "pc": [ + 614 + ] + }, + { + "teal": 595, + "source": "contracts/NFDInstance.algo.ts:159", + "pc": [ + 615 + ] + }, + { + "teal": 596, + "source": "contracts/NFDInstance.algo.ts:159", + "pc": [ + 616 + ] + }, + { + "teal": 597, + "source": "contracts/NFDInstance.algo.ts:159", + "pc": [ + 617, + 618, + 619 + ] + }, + { + "teal": 598, + "source": "contracts/NFDInstance.algo.ts:159", + "pc": [ + 620, + 621, + 622 + ] + }, + { + "teal": 599, + "source": "contracts/NFDInstance.algo.ts:159", + "pc": [ + 623, + 624, + 625, + 626, + 627, + 628, + 629, + 630, + 631, + 632, + 633, + 634, + 635, + 636, + 637 + ] + }, + { + "teal": 600, + "source": "contracts/NFDInstance.algo.ts:159", + "pc": [ + 638 + ] + }, + { + "teal": 601, + "source": "contracts/NFDInstance.algo.ts:159", + "pc": [ + 639 + ] + }, + { + "teal": 604, + "source": "contracts/NFDInstance.algo.ts:159", + "pc": [ + 640, + 641, + 642 + ] + }, + { + "teal": 609, + "source": "contracts/NFDInstance.algo.ts:160", + "pc": [ + 643, + 644, + 645 + ] + }, + { + "teal": 610, + "source": "contracts/NFDInstance.algo.ts:160", + "pc": [ + 646, + 647 + ] + }, + { + "teal": 611, + "source": "contracts/NFDInstance.algo.ts:160", + "pc": [ + 648 + ] + }, + { + "teal": 612, + "source": "contracts/NFDInstance.algo.ts:160", + "pc": [ + 649, + 650, + 651 + ] + }, + { + "teal": 616, + "source": "contracts/NFDInstance.algo.ts:161", + "pc": [ + 652 + ] + }, + { + "teal": 622, + "source": "contracts/NFDInstance.algo.ts:166", + "pc": [ + 653, + 654 + ] + }, + { + "teal": 623, + "source": "contracts/NFDInstance.algo.ts:166", + "pc": [ + 655, + 656 + ] + }, + { + "teal": 624, + "source": "contracts/NFDInstance.algo.ts:166", + "pc": [ + 657 + ] + }, + { + "teal": 625, + "source": "contracts/NFDInstance.algo.ts:166", + "pc": [ + 658 + ] + }, + { + "teal": 626, + "source": "contracts/NFDInstance.algo.ts:166", + "pc": [ + 659, + 660, + 661 + ] + }, + { + "teal": 627, + "source": "contracts/NFDInstance.algo.ts:166", + "pc": [ + 662, + 663, + 664 + ] + }, + { + "teal": 628, + "source": "contracts/NFDInstance.algo.ts:166", + "pc": [ + 665, + 666, + 667, + 668, + 669, + 670, + 671, + 672, + 673, + 674, + 675, + 676, + 677, + 678 + ] + }, + { + "teal": 629, + "source": "contracts/NFDInstance.algo.ts:166", + "pc": [ + 679 + ] + }, + { + "teal": 630, + "source": "contracts/NFDInstance.algo.ts:166", + "pc": [ + 680 + ] + }, + { + "teal": 633, + "source": "contracts/NFDInstance.algo.ts:166", + "pc": [ + 681, + 682, + 683 + ] + }, + { + "teal": 638, + "source": "contracts/NFDInstance.algo.ts:167", + "pc": [ + 684, + 685, + 686 + ] + }, + { + "teal": 639, + "source": "contracts/NFDInstance.algo.ts:167", + "pc": [ + 687 + ] + }, + { + "teal": 640, + "source": "contracts/NFDInstance.algo.ts:167", + "pc": [ + 688, + 689, + 690 + ] + }, + { + "teal": 641, + "source": "contracts/NFDInstance.algo.ts:167", + "pc": [ + 691, + 692 + ] + }, + { + "teal": 642, + "source": "contracts/NFDInstance.algo.ts:167", + "pc": [ + 693 + ] + }, + { + "teal": 643, + "source": "contracts/NFDInstance.algo.ts:167", + "pc": [ + 694, + 695, + 696 + ] + }, + { + "teal": 647, + "source": "contracts/NFDInstance.algo.ts:168", + "pc": [ + 697 + ] + }, + { + "teal": 653, + "source": "contracts/NFDInstance.algo.ts:175", + "pc": [ + 698, + 699 + ] + }, + { + "teal": 654, + "source": "contracts/NFDInstance.algo.ts:175", + "pc": [ + 700 + ] + }, + { + "teal": 655, + "source": "contracts/NFDInstance.algo.ts:175", + "pc": [ + 701 + ] + }, + { + "teal": 656, + "source": "contracts/NFDInstance.algo.ts:175", + "pc": [ + 702 + ] + }, + { + "teal": 657, + "source": "contracts/NFDInstance.algo.ts:175", + "pc": [ + 703, + 704, + 705 + ] + }, + { + "teal": 658, + "source": "contracts/NFDInstance.algo.ts:175", + "pc": [ + 706, + 707, + 708 + ] + }, + { + "teal": 659, + "source": "contracts/NFDInstance.algo.ts:175", + "pc": [ + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721 + ] + }, + { + "teal": 660, + "source": "contracts/NFDInstance.algo.ts:175", + "pc": [ + 722 + ] + }, + { + "teal": 661, + "source": "contracts/NFDInstance.algo.ts:175", + "pc": [ + 723 + ] + }, + { + "teal": 664, + "source": "contracts/NFDInstance.algo.ts:175", + "pc": [ + 724, + 725, + 726 + ] + }, + { + "teal": 669, + "source": "contracts/NFDInstance.algo.ts:176", + "pc": [ + 727, + 728, + 729 + ] + }, + { + "teal": 673, + "source": "contracts/NFDInstance.algo.ts:177", + "pc": [ + 730 + ] + }, + { + "teal": 677, + "source": "contracts/NFDInstance.algo.ts:180", + "errorMessage": "unknown method", + "pc": [ + 731 + ] + }, + { + "teal": 678, + "source": "contracts/NFDInstance.algo.ts:118", + "pc": [ + 732 + ] + }, + { + "teal": 683, + "source": "contracts/NFDInstance.algo.ts:184", + "pc": [ + 733, + 734, + 735 + ] + }, + { + "teal": 684, + "source": "contracts/NFDInstance.algo.ts:184", + "pc": [ + 736 + ] + }, + { + "teal": 685, + "source": "contracts/NFDInstance.algo.ts:184", + "pc": [ + 737 + ] + }, + { + "teal": 689, + "source": "contracts/NFDInstance.algo.ts:184", + "pc": [ + 738, + 739, + 740 + ] + }, + { + "teal": 690, + "source": "contracts/NFDInstance.algo.ts:184", + "pc": [ + 741 + ] + }, + { + "teal": 695, + "source": "contracts/NFDInstance.algo.ts:189", + "pc": [ + 742, + 743, + 744 + ] + }, + { + "teal": 696, + "source": "contracts/NFDInstance.algo.ts:189", + "pc": [ + 745, + 746, + 747 + ] + }, + { + "teal": 699, + "source": "contracts/NFDInstance.algo.ts:189", + "pc": [ + 748, + 749, + 750 + ] + }, + { + "teal": 700, + "source": "contracts/NFDInstance.algo.ts:189", + "pc": [ + 751, + 752, + 753 + ] + }, + { + "teal": 703, + "source": "contracts/NFDInstance.algo.ts:189", + "pc": [ + 754, + 755, + 756 + ] + }, + { + "teal": 704, + "source": "contracts/NFDInstance.algo.ts:189", + "pc": [ + 757 + ] + }, + { + "teal": 705, + "source": "contracts/NFDInstance.algo.ts:189", + "pc": [ + 758 + ] + }, + { + "teal": 709, + "source": "contracts/NFDInstance.algo.ts:189", + "pc": [ + 759, + 760, + 761 + ] + }, + { + "teal": 712, + "source": "contracts/NFDInstance.algo.ts:189", + "pc": [ + 762 + ] + }, + { + "teal": 716, + "source": "contracts/NFDInstance.algo.ts:190", + "pc": [ + 763, + 764 + ] + }, + { + "teal": 717, + "source": "contracts/NFDInstance.algo.ts:190", + "pc": [ + 765, + 766 + ] + }, + { + "teal": 718, + "source": "contracts/NFDInstance.algo.ts:190", + "pc": [ + 767 + ] + }, + { + "teal": 721, + "source": "contracts/NFDInstance.algo.ts:190", + "errorMessage": "caller must be NFD registry!", + "pc": [ + 768 + ] + }, + { + "teal": 725, + "source": "contracts/NFDInstance.algo.ts:191", + "pc": [ + 769 + ] + }, + { + "teal": 726, + "source": "contracts/NFDInstance.algo.ts:191", + "pc": [ + 770 + ] + }, + { + "teal": 727, + "source": "contracts/NFDInstance.algo.ts:191", + "pc": [ + 771, + 772 + ] + }, + { + "teal": 728, + "source": "contracts/NFDInstance.algo.ts:191", + "pc": [ + 773 + ] + }, + { + "teal": 729, + "source": "contracts/NFDInstance.algo.ts:191", + "pc": [ + 774 + ] + }, + { + "teal": 743, + "source": "contracts/NFDInstance.algo.ts:193", + "pc": [ + 775 + ] + }, + { + "teal": 744, + "source": "contracts/NFDInstance.algo.ts:193", + "pc": [ + 776, + 777 + ] + }, + { + "teal": 745, + "source": "contracts/NFDInstance.algo.ts:193", + "pc": [ + 778, + 779 + ] + }, + { + "teal": 749, + "source": "contracts/NFDInstance.algo.ts:194", + "pc": [ + 780, + 781, + 782, + 783, + 784 + ] + }, + { + "teal": 750, + "source": "contracts/NFDInstance.algo.ts:194", + "pc": [ + 785, + 786 + ] + }, + { + "teal": 754, + "source": "contracts/NFDInstance.algo.ts:195", + "pc": [ + 787, + 788 + ] + }, + { + "teal": 755, + "source": "contracts/NFDInstance.algo.ts:195", + "pc": [ + 789, + 790 + ] + }, + { + "teal": 759, + "source": "contracts/NFDInstance.algo.ts:196", + "pc": [ + 791 + ] + }, + { + "teal": 760, + "source": "contracts/NFDInstance.algo.ts:196", + "pc": [ + 792, + 793 + ] + }, + { + "teal": 764, + "source": "contracts/NFDInstance.algo.ts:197", + "pc": [ + 794 + ] + }, + { + "teal": 765, + "source": "contracts/NFDInstance.algo.ts:197", + "pc": [ + 795, + 796 + ] + }, + { + "teal": 769, + "source": "contracts/NFDInstance.algo.ts:198", + "pc": [ + 797 + ] + }, + { + "teal": 770, + "source": "contracts/NFDInstance.algo.ts:198", + "pc": [ + 798, + 799 + ] + }, + { + "teal": 774, + "source": "contracts/NFDInstance.algo.ts:199", + "pc": [ + 800, + 801 + ] + }, + { + "teal": 775, + "source": "contracts/NFDInstance.algo.ts:199", + "pc": [ + 802, + 803 + ] + }, + { + "teal": 779, + "source": "contracts/NFDInstance.algo.ts:200", + "pc": [ + 804, + 805 + ] + }, + { + "teal": 780, + "source": "contracts/NFDInstance.algo.ts:200", + "pc": [ + 806, + 807 + ] + }, + { + "teal": 784, + "source": "contracts/NFDInstance.algo.ts:201", + "pc": [ + 808, + 809 + ] + }, + { + "teal": 785, + "source": "contracts/NFDInstance.algo.ts:201", + "pc": [ + 810, + 811 + ] + }, + { + "teal": 789, + "source": "contracts/NFDInstance.algo.ts:202", + "pc": [ + 812, + 813 + ] + }, + { + "teal": 790, + "source": "contracts/NFDInstance.algo.ts:202", + "pc": [ + 814, + 815 + ] + }, + { + "teal": 793, + "source": "contracts/NFDInstance.algo.ts:193", + "pc": [ + 816 + ] + }, + { + "teal": 794, + "source": "contracts/NFDInstance.algo.ts:193", + "pc": [ + 817, + 818 + ] + }, + { + "teal": 797, + "source": "contracts/NFDInstance.algo.ts:193", + "pc": [ + 819 + ] + }, + { + "teal": 798, + "source": "contracts/NFDInstance.algo.ts:193", + "pc": [ + 820, + 821 + ] + }, + { + "teal": 799, + "source": "contracts/NFDInstance.algo.ts:193", + "pc": [ + 822, + 823 + ] + }, + { + "teal": 803, + "source": "contracts/NFDInstance.algo.ts:204", + "pc": [ + 824, + 825 + ] + }, + { + "teal": 804, + "source": "contracts/NFDInstance.algo.ts:204", + "pc": [ + 826, + 827 + ] + }, + { + "teal": 805, + "source": "contracts/NFDInstance.algo.ts:204", + "pc": [ + 828 + ] + }, + { + "teal": 806, + "source": "contracts/NFDInstance.algo.ts:204", + "pc": [ + 829 + ] + }, + { + "teal": 810, + "source": "contracts/NFDInstance.algo.ts:205", + "pc": [ + 830 + ] + }, + { + "teal": 811, + "source": "contracts/NFDInstance.algo.ts:205", + "pc": [ + 831, + 832 + ] + }, + { + "teal": 812, + "source": "contracts/NFDInstance.algo.ts:205", + "pc": [ + 833 + ] + }, + { + "teal": 816, + "source": "contracts/NFDInstance.algo.ts:206", + "pc": [ + 834, + 835 + ] + }, + { + "teal": 817, + "source": "contracts/NFDInstance.algo.ts:206", + "pc": [ + 836 + ] + }, + { + "teal": 818, + "source": "contracts/NFDInstance.algo.ts:206", + "pc": [ + 837 + ] + }, + { + "teal": 819, + "source": "contracts/NFDInstance.algo.ts:189", + "pc": [ + 838 + ] + }, + { + "teal": 824, + "source": "contracts/NFDInstance.algo.ts:213", + "pc": [ + 839, + 840, + 841 + ] + }, + { + "teal": 827, + "source": "contracts/NFDInstance.algo.ts:213", + "pc": [ + 842, + 843, + 844 + ] + }, + { + "teal": 828, + "source": "contracts/NFDInstance.algo.ts:213", + "pc": [ + 845 + ] + }, + { + "teal": 829, + "source": "contracts/NFDInstance.algo.ts:213", + "pc": [ + 846 + ] + }, + { + "teal": 833, + "source": "contracts/NFDInstance.algo.ts:213", + "pc": [ + 847, + 848, + 849 + ] + }, + { + "teal": 836, + "source": "contracts/NFDInstance.algo.ts:213", + "pc": [ + 850 + ] + }, + { + "teal": 837, + "source": "contracts/NFDInstance.algo.ts:213", + "pc": [ + 851, + 852 + ] + }, + { + "teal": 841, + "source": "contracts/NFDInstance.algo.ts:214", + "pc": [ + 853, + 854, + 855 + ] + }, + { + "teal": 842, + "source": "contracts/NFDInstance.algo.ts:214", + "pc": [ + 856 + ] + }, + { + "teal": 843, + "source": "contracts/NFDInstance.algo.ts:214", + "pc": [ + 857 + ] + }, + { + "teal": 844, + "source": "contracts/NFDInstance.algo.ts:214", + "pc": [ + 858 + ] + }, + { + "teal": 845, + "source": "contracts/NFDInstance.algo.ts:214", + "pc": [ + 859 + ] + }, + { + "teal": 846, + "source": "contracts/NFDInstance.algo.ts:214", + "pc": [ + 860 + ] + }, + { + "teal": 847, + "source": "contracts/NFDInstance.algo.ts:214", + "pc": [ + 861 + ] + }, + { + "teal": 851, + "source": "contracts/NFDInstance.algo.ts:215", + "pc": [ + 862 + ] + }, + { + "teal": 852, + "source": "contracts/NFDInstance.algo.ts:215", + "pc": [ + 863, + 864 + ] + }, + { + "teal": 853, + "source": "contracts/NFDInstance.algo.ts:215", + "pc": [ + 865 + ] + }, + { + "teal": 854, + "source": "contracts/NFDInstance.algo.ts:215", + "pc": [ + 866 + ] + }, + { + "teal": 858, + "source": "contracts/NFDInstance.algo.ts:217", + "pc": [ + 867, + 868, + 869 + ] + }, + { + "teal": 859, + "source": "contracts/NFDInstance.algo.ts:217", + "pc": [ + 870, + 871 + ] + }, + { + "teal": 863, + "source": "contracts/NFDInstance.algo.ts:218", + "pc": [ + 872 + ] + }, + { + "teal": 864, + "source": "contracts/NFDInstance.algo.ts:218", + "pc": [ + 873, + 874 + ] + }, + { + "teal": 868, + "source": "contracts/NFDInstance.algo.ts:219", + "pc": [ + 875 + ] + }, + { + "teal": 869, + "source": "contracts/NFDInstance.algo.ts:219", + "pc": [ + 876, + 877 + ] + }, + { + "teal": 874, + "source": "contracts/NFDInstance.algo.ts:219", + "pc": [ + 878, + 879 + ] + }, + { + "teal": 875, + "source": "contracts/NFDInstance.algo.ts:219", + "pc": [ + 880, + 881 + ] + }, + { + "teal": 876, + "source": "contracts/NFDInstance.algo.ts:219", + "pc": [ + 882 + ] + }, + { + "teal": 877, + "source": "contracts/NFDInstance.algo.ts:219", + "pc": [ + 883 + ] + }, + { + "teal": 878, + "source": "contracts/NFDInstance.algo.ts:219", + "pc": [ + 884 + ] + }, + { + "teal": 879, + "source": "contracts/NFDInstance.algo.ts:219", + "pc": [ + 885, + 886, + 887 + ] + }, + { + "teal": 884, + "source": "contracts/NFDInstance.algo.ts:220", + "pc": [ + 888, + 889 + ] + }, + { + "teal": 885, + "source": "contracts/NFDInstance.algo.ts:220", + "pc": [ + 890, + 891 + ] + }, + { + "teal": 886, + "source": "contracts/NFDInstance.algo.ts:220", + "pc": [ + 892 + ] + }, + { + "teal": 887, + "source": "contracts/NFDInstance.algo.ts:220", + "pc": [ + 893, + 894, + 895 + ] + }, + { + "teal": 892, + "source": "contracts/NFDInstance.algo.ts:221", + "pc": [ + 896 + ] + }, + { + "teal": 893, + "source": "contracts/NFDInstance.algo.ts:221", + "pc": [ + 897, + 898 + ] + }, + { + "teal": 894, + "source": "contracts/NFDInstance.algo.ts:221", + "pc": [ + 899, + 900 + ] + }, + { + "teal": 895, + "source": "contracts/NFDInstance.algo.ts:221", + "pc": [ + 901 + ] + }, + { + "teal": 896, + "source": "contracts/NFDInstance.algo.ts:221", + "pc": [ + 902, + 903 + ] + }, + { + "teal": 897, + "source": "contracts/NFDInstance.algo.ts:221", + "pc": [ + 904, + 905 + ] + }, + { + "teal": 898, + "source": "contracts/NFDInstance.algo.ts:221", + "pc": [ + 906 + ] + }, + { + "teal": 899, + "source": "contracts/NFDInstance.algo.ts:221", + "pc": [ + 907, + 908 + ] + }, + { + "teal": 900, + "source": "contracts/NFDInstance.algo.ts:221", + "pc": [ + 909, + 910 + ] + }, + { + "teal": 901, + "source": "contracts/NFDInstance.algo.ts:221", + "pc": [ + 911, + 912 + ] + }, + { + "teal": 902, + "source": "contracts/NFDInstance.algo.ts:221", + "pc": [ + 913, + 914 + ] + }, + { + "teal": 903, + "source": "contracts/NFDInstance.algo.ts:221", + "pc": [ + 915 + ] + }, + { + "teal": 908, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 916, + 917 + ] + }, + { + "teal": 909, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 918, + 919 + ] + }, + { + "teal": 910, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 920 + ] + }, + { + "teal": 911, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 921, + 922 + ] + }, + { + "teal": 912, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 923 + ] + }, + { + "teal": 913, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 924 + ] + }, + { + "teal": 914, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 925 + ] + }, + { + "teal": 915, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 926 + ] + }, + { + "teal": 916, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 927 + ] + }, + { + "teal": 917, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 928, + 929 + ] + }, + { + "teal": 918, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 930, + 931 + ] + }, + { + "teal": 919, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 932, + 933 + ] + }, + { + "teal": 920, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 934 + ] + }, + { + "teal": 921, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 935 + ] + }, + { + "teal": 922, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 936 + ] + }, + { + "teal": 923, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 937 + ] + }, + { + "teal": 924, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 938, + 939 + ] + }, + { + "teal": 925, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 940 + ] + }, + { + "teal": 926, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 941 + ] + }, + { + "teal": 927, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 942 + ] + }, + { + "teal": 928, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 943 + ] + }, + { + "teal": 929, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 944 + ] + }, + { + "teal": 930, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 945 + ] + }, + { + "teal": 931, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 946 + ] + }, + { + "teal": 932, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 947, + 948, + 949 + ] + }, + { + "teal": 933, + "source": "contracts/NFDInstance.algo.ts:223", + "pc": [ + 950, + 951 + ] + }, + { + "teal": 937, + "source": "contracts/NFDInstance.algo.ts:224", + "pc": [ + 952, + 953 + ] + }, + { + "teal": 938, + "source": "contracts/NFDInstance.algo.ts:224", + "pc": [ + 954, + 955 + ] + }, + { + "teal": 939, + "source": "contracts/NFDInstance.algo.ts:224", + "pc": [ + 956, + 957, + 958 + ] + }, + { + "teal": 942, + "source": "contracts/NFDInstance.algo.ts:224", + "errorMessage": "field not removable or no permissions to remove", + "pc": [ + 959 + ] + }, + { + "teal": 946, + "source": "contracts/NFDInstance.algo.ts:225", + "pc": [ + 960, + 961 + ] + }, + { + "teal": 947, + "source": "contracts/NFDInstance.algo.ts:225", + "pc": [ + 962 + ] + }, + { + "teal": 950, + "source": "contracts/NFDInstance.algo.ts:225", + "errorMessage": "box value does not exist: this.boxes(name).size", + "pc": [ + 963 + ] + }, + { + "teal": 951, + "source": "contracts/NFDInstance.algo.ts:225", + "pc": [ + 964, + 965 + ] + }, + { + "teal": 955, + "source": "contracts/NFDInstance.algo.ts:226", + "pc": [ + 966, + 967 + ] + }, + { + "teal": 956, + "source": "contracts/NFDInstance.algo.ts:226", + "pc": [ + 968 + ] + }, + { + "teal": 960, + "source": "contracts/NFDInstance.algo.ts:227", + "pc": [ + 969, + 970 + ] + }, + { + "teal": 961, + "source": "contracts/NFDInstance.algo.ts:227", + "pc": [ + 971, + 972 + ] + }, + { + "teal": 962, + "source": "contracts/NFDInstance.algo.ts:227", + "pc": [ + 973, + 974 + ] + }, + { + "teal": 963, + "source": "contracts/NFDInstance.algo.ts:227", + "pc": [ + 975 + ] + }, + { + "teal": 964, + "source": "contracts/NFDInstance.algo.ts:227", + "pc": [ + 976, + 977 + ] + }, + { + "teal": 965, + "source": "contracts/NFDInstance.algo.ts:227", + "pc": [ + 978 + ] + }, + { + "teal": 966, + "source": "contracts/NFDInstance.algo.ts:227", + "pc": [ + 979, + 980 + ] + }, + { + "teal": 967, + "source": "contracts/NFDInstance.algo.ts:227", + "pc": [ + 981 + ] + }, + { + "teal": 968, + "source": "contracts/NFDInstance.algo.ts:227", + "pc": [ + 982 + ] + }, + { + "teal": 969, + "source": "contracts/NFDInstance.algo.ts:227", + "pc": [ + 983 + ] + }, + { + "teal": 970, + "source": "contracts/NFDInstance.algo.ts:227", + "pc": [ + 984, + 985 + ] + }, + { + "teal": 975, + "source": "contracts/NFDInstance.algo.ts:219", + "pc": [ + 986, + 987 + ] + }, + { + "teal": 976, + "source": "contracts/NFDInstance.algo.ts:219", + "pc": [ + 988 + ] + }, + { + "teal": 977, + "source": "contracts/NFDInstance.algo.ts:219", + "pc": [ + 989 + ] + }, + { + "teal": 978, + "source": "contracts/NFDInstance.algo.ts:219", + "pc": [ + 990, + 991 + ] + }, + { + "teal": 979, + "source": "contracts/NFDInstance.algo.ts:219", + "pc": [ + 992, + 993, + 994 + ] + }, + { + "teal": 985, + "source": "contracts/NFDInstance.algo.ts:229", + "pc": [ + 995, + 996 + ] + }, + { + "teal": 986, + "source": "contracts/NFDInstance.algo.ts:229", + "pc": [ + 997 + ] + }, + { + "teal": 987, + "source": "contracts/NFDInstance.algo.ts:229", + "pc": [ + 998 + ] + }, + { + "teal": 988, + "source": "contracts/NFDInstance.algo.ts:229", + "pc": [ + 999, + 1000, + 1001 + ] + }, + { + "teal": 997, + "source": "contracts/NFDInstance.algo.ts:230", + "pc": [ + 1002 + ] + }, + { + "teal": 998, + "source": "contracts/NFDInstance.algo.ts:230", + "pc": [ + 1003 + ] + }, + { + "teal": 999, + "source": "contracts/NFDInstance.algo.ts:230", + "pc": [ + 1004, + 1005 + ] + }, + { + "teal": 1003, + "source": "contracts/NFDInstance.algo.ts:231", + "pc": [ + 1006, + 1007 + ] + }, + { + "teal": 1004, + "source": "contracts/NFDInstance.algo.ts:231", + "pc": [ + 1008, + 1009 + ] + }, + { + "teal": 1008, + "source": "contracts/NFDInstance.algo.ts:232", + "pc": [ + 1010, + 1011 + ] + }, + { + "teal": 1009, + "source": "contracts/NFDInstance.algo.ts:232", + "pc": [ + 1012, + 1013 + ] + }, + { + "teal": 1013, + "source": "contracts/NFDInstance.algo.ts:233", + "pc": [ + 1014, + 1015 + ] + }, + { + "teal": 1014, + "source": "contracts/NFDInstance.algo.ts:233", + "pc": [ + 1016, + 1017 + ] + }, + { + "teal": 1017, + "source": "contracts/NFDInstance.algo.ts:230", + "pc": [ + 1018 + ] + }, + { + "teal": 1018, + "source": "contracts/NFDInstance.algo.ts:230", + "pc": [ + 1019, + 1020 + ] + }, + { + "teal": 1021, + "source": "contracts/NFDInstance.algo.ts:230", + "pc": [ + 1021 + ] + }, + { + "teal": 1024, + "source": "contracts/NFDInstance.algo.ts:213", + "pc": [ + 1022 + ] + }, + { + "teal": 1028, + "source": "contracts/NFDInstance.algo.ts:238", + "pc": [ + 1023, + 1024, + 1025 + ] + }, + { + "teal": 1031, + "source": "contracts/NFDInstance.algo.ts:238", + "pc": [ + 1026 + ] + }, + { + "teal": 1032, + "source": "contracts/NFDInstance.algo.ts:238", + "pc": [ + 1027, + 1028 + ] + }, + { + "teal": 1036, + "source": "contracts/NFDInstance.algo.ts:239", + "pc": [ + 1029, + 1030, + 1031 + ] + }, + { + "teal": 1037, + "source": "contracts/NFDInstance.algo.ts:239", + "pc": [ + 1032 + ] + }, + { + "teal": 1038, + "source": "contracts/NFDInstance.algo.ts:239", + "pc": [ + 1033 + ] + }, + { + "teal": 1039, + "source": "contracts/NFDInstance.algo.ts:239", + "pc": [ + 1034 + ] + }, + { + "teal": 1040, + "source": "contracts/NFDInstance.algo.ts:239", + "pc": [ + 1035 + ] + }, + { + "teal": 1041, + "source": "contracts/NFDInstance.algo.ts:239", + "pc": [ + 1036 + ] + }, + { + "teal": 1042, + "source": "contracts/NFDInstance.algo.ts:239", + "pc": [ + 1037 + ] + }, + { + "teal": 1046, + "source": "contracts/NFDInstance.algo.ts:241", + "pc": [ + 1038, + 1039, + 1040 + ] + }, + { + "teal": 1047, + "source": "contracts/NFDInstance.algo.ts:241", + "pc": [ + 1041, + 1042 + ] + }, + { + "teal": 1051, + "source": "contracts/NFDInstance.algo.ts:242", + "pc": [ + 1043 + ] + }, + { + "teal": 1052, + "source": "contracts/NFDInstance.algo.ts:242", + "pc": [ + 1044, + 1045 + ] + }, + { + "teal": 1057, + "source": "contracts/NFDInstance.algo.ts:242", + "pc": [ + 1046, + 1047 + ] + }, + { + "teal": 1058, + "source": "contracts/NFDInstance.algo.ts:242", + "pc": [ + 1048, + 1049 + ] + }, + { + "teal": 1059, + "source": "contracts/NFDInstance.algo.ts:242", + "pc": [ + 1050 + ] + }, + { + "teal": 1060, + "source": "contracts/NFDInstance.algo.ts:242", + "pc": [ + 1051, + 1052, + 1053 + ] + }, + { + "teal": 1064, + "source": "contracts/NFDInstance.algo.ts:243", + "pc": [ + 1054, + 1055 + ] + }, + { + "teal": 1065, + "source": "contracts/NFDInstance.algo.ts:243", + "pc": [ + 1056, + 1057 + ] + }, + { + "teal": 1066, + "source": "contracts/NFDInstance.algo.ts:243", + "pc": [ + 1058, + 1059 + ] + }, + { + "teal": 1070, + "source": "contracts/NFDInstance.algo.ts:244", + "pc": [ + 1060, + 1061 + ] + }, + { + "teal": 1071, + "source": "contracts/NFDInstance.algo.ts:244", + "pc": [ + 1062, + 1063 + ] + }, + { + "teal": 1072, + "source": "contracts/NFDInstance.algo.ts:244", + "pc": [ + 1064, + 1065, + 1066 + ] + }, + { + "teal": 1075, + "source": "contracts/NFDInstance.algo.ts:244", + "errorMessage": "field not removable or no permissions to remove", + "pc": [ + 1067 + ] + }, + { + "teal": 1079, + "source": "contracts/NFDInstance.algo.ts:245", + "pc": [ + 1068, + 1069 + ] + }, + { + "teal": 1080, + "source": "contracts/NFDInstance.algo.ts:245", + "pc": [ + 1070 + ] + }, + { + "teal": 1085, + "source": "contracts/NFDInstance.algo.ts:242", + "pc": [ + 1071, + 1072 + ] + }, + { + "teal": 1086, + "source": "contracts/NFDInstance.algo.ts:242", + "pc": [ + 1073 + ] + }, + { + "teal": 1087, + "source": "contracts/NFDInstance.algo.ts:242", + "pc": [ + 1074 + ] + }, + { + "teal": 1088, + "source": "contracts/NFDInstance.algo.ts:242", + "pc": [ + 1075, + 1076 + ] + }, + { + "teal": 1089, + "source": "contracts/NFDInstance.algo.ts:242", + "pc": [ + 1077, + 1078, + 1079 + ] + }, + { + "teal": 1094, + "source": "contracts/NFDInstance.algo.ts:247", + "pc": [ + 1080 + ] + }, + { + "teal": 1095, + "source": "contracts/NFDInstance.algo.ts:247", + "pc": [ + 1081, + 1082 + ] + }, + { + "teal": 1096, + "source": "contracts/NFDInstance.algo.ts:247", + "pc": [ + 1083 + ] + }, + { + "teal": 1097, + "source": "contracts/NFDInstance.algo.ts:247", + "pc": [ + 1084 + ] + }, + { + "teal": 1098, + "source": "contracts/NFDInstance.algo.ts:238", + "pc": [ + 1085 + ] + }, + { + "teal": 1103, + "source": "contracts/NFDInstance.algo.ts:257", + "pc": [ + 1086, + 1087, + 1088 + ] + }, + { + "teal": 1104, + "source": "contracts/NFDInstance.algo.ts:257", + "pc": [ + 1089 + ] + }, + { + "teal": 1107, + "source": "contracts/NFDInstance.algo.ts:257", + "pc": [ + 1090, + 1091, + 1092 + ] + }, + { + "teal": 1108, + "source": "contracts/NFDInstance.algo.ts:257", + "pc": [ + 1093, + 1094, + 1095 + ] + }, + { + "teal": 1111, + "source": "contracts/NFDInstance.algo.ts:257", + "pc": [ + 1096, + 1097, + 1098 + ] + }, + { + "teal": 1112, + "source": "contracts/NFDInstance.algo.ts:257", + "pc": [ + 1099 + ] + }, + { + "teal": 1113, + "source": "contracts/NFDInstance.algo.ts:257", + "pc": [ + 1100 + ] + }, + { + "teal": 1117, + "source": "contracts/NFDInstance.algo.ts:257", + "pc": [ + 1101, + 1102, + 1103 + ] + }, + { + "teal": 1120, + "source": "contracts/NFDInstance.algo.ts:257", + "pc": [ + 1104 + ] + }, + { + "teal": 1121, + "source": "contracts/NFDInstance.algo.ts:257", + "pc": [ + 1105 + ] + }, + { + "teal": 1125, + "source": "contracts/NFDInstance.algo.ts:258", + "pc": [ + 1106, + 1107 + ] + }, + { + "teal": 1126, + "source": "contracts/NFDInstance.algo.ts:258", + "pc": [ + 1108, + 1109 + ] + }, + { + "teal": 1127, + "source": "contracts/NFDInstance.algo.ts:258", + "pc": [ + 1110 + ] + }, + { + "teal": 1130, + "source": "contracts/NFDInstance.algo.ts:258", + "errorMessage": "caller must be NFD registry!", + "pc": [ + 1111 + ] + }, + { + "teal": 1137, + "source": "contracts/NFDInstance.algo.ts:260", + "pc": [ + 1112 + ] + }, + { + "teal": 1138, + "source": "contracts/NFDInstance.algo.ts:260", + "pc": [ + 1113, + 1114 + ] + }, + { + "teal": 1139, + "source": "contracts/NFDInstance.algo.ts:260", + "pc": [ + 1115, + 1116, + 1117 + ] + }, + { + "teal": 1140, + "source": "contracts/NFDInstance.algo.ts:260", + "pc": [ + 1118, + 1119 + ] + }, + { + "teal": 1141, + "source": "contracts/NFDInstance.algo.ts:260", + "pc": [ + 1120 + ] + }, + { + "teal": 1144, + "source": "contracts/NFDInstance.algo.ts:259", + "errorMessage": "child NFD MUST still be in pre-claim state!", + "pc": [ + 1121 + ] + }, + { + "teal": 1148, + "source": "contracts/NFDInstance.algo.ts:263", + "pc": [ + 1122, + 1123, + 1124 + ] + }, + { + "teal": 1149, + "source": "contracts/NFDInstance.algo.ts:263", + "pc": [ + 1125 + ] + }, + { + "teal": 1150, + "source": "contracts/NFDInstance.algo.ts:263", + "pc": [ + 1126 + ] + }, + { + "teal": 1151, + "source": "contracts/NFDInstance.algo.ts:263", + "pc": [ + 1127 + ] + }, + { + "teal": 1152, + "source": "contracts/NFDInstance.algo.ts:263", + "pc": [ + 1128 + ] + }, + { + "teal": 1153, + "source": "contracts/NFDInstance.algo.ts:263", + "pc": [ + 1129 + ] + }, + { + "teal": 1154, + "source": "contracts/NFDInstance.algo.ts:263", + "pc": [ + 1130 + ] + }, + { + "teal": 1158, + "source": "contracts/NFDInstance.algo.ts:264", + "pc": [ + 1131, + 1132, + 1133 + ] + }, + { + "teal": 1165, + "source": "contracts/NFDInstance.algo.ts:267", + "pc": [ + 1134, + 1135 + ] + }, + { + "teal": 1166, + "source": "contracts/NFDInstance.algo.ts:267", + "pc": [ + 1136, + 1137 + ] + }, + { + "teal": 1167, + "source": "contracts/NFDInstance.algo.ts:267", + "pc": [ + 1138, + 1139, + 1140 + ] + }, + { + "teal": 1168, + "source": "contracts/NFDInstance.algo.ts:267", + "pc": [ + 1141, + 1142 + ] + }, + { + "teal": 1169, + "source": "contracts/NFDInstance.algo.ts:267", + "pc": [ + 1143 + ] + }, + { + "teal": 1172, + "source": "contracts/NFDInstance.algo.ts:266", + "errorMessage": "passed in child name must match name in created nfd state", + "pc": [ + 1144 + ] + }, + { + "teal": 1176, + "source": "contracts/NFDInstance.algo.ts:270", + "pc": [ + 1145, + 1146 + ] + }, + { + "teal": 1177, + "source": "contracts/NFDInstance.algo.ts:270", + "pc": [ + 1147 + ] + }, + { + "teal": 1178, + "source": "contracts/NFDInstance.algo.ts:270", + "pc": [ + 1148, + 1149 + ] + }, + { + "teal": 1182, + "source": "contracts/NFDInstance.algo.ts:275", + "pc": [ + 1150, + 1151 + ] + }, + { + "teal": 1183, + "source": "contracts/NFDInstance.algo.ts:275", + "pc": [ + 1152 + ] + }, + { + "teal": 1184, + "source": "contracts/NFDInstance.algo.ts:275", + "pc": [ + 1153, + 1154 + ] + }, + { + "teal": 1185, + "source": "contracts/NFDInstance.algo.ts:275", + "pc": [ + 1155 + ] + }, + { + "teal": 1186, + "source": "contracts/NFDInstance.algo.ts:275", + "pc": [ + 1156 + ] + }, + { + "teal": 1187, + "source": "contracts/NFDInstance.algo.ts:275", + "pc": [ + 1157 + ] + }, + { + "teal": 1188, + "source": "contracts/NFDInstance.algo.ts:275", + "pc": [ + 1158 + ] + }, + { + "teal": 1189, + "source": "contracts/NFDInstance.algo.ts:275", + "pc": [ + 1159, + 1160 + ] + }, + { + "teal": 1196, + "source": "contracts/NFDInstance.algo.ts:277", + "pc": [ + 1161, + 1162 + ] + }, + { + "teal": 1197, + "source": "contracts/NFDInstance.algo.ts:277", + "pc": [ + 1163, + 1164 + ] + }, + { + "teal": 1198, + "source": "contracts/NFDInstance.algo.ts:277", + "pc": [ + 1165, + 1166 + ] + }, + { + "teal": 1199, + "source": "contracts/NFDInstance.algo.ts:277", + "pc": [ + 1167 + ] + }, + { + "teal": 1200, + "source": "contracts/NFDInstance.algo.ts:277", + "pc": [ + 1168 + ] + }, + { + "teal": 1201, + "source": "contracts/NFDInstance.algo.ts:277", + "pc": [ + 1169 + ] + }, + { + "teal": 1202, + "source": "contracts/NFDInstance.algo.ts:277", + "pc": [ + 1170 + ] + }, + { + "teal": 1203, + "source": "contracts/NFDInstance.algo.ts:277", + "pc": [ + 1171, + 1172 + ] + }, + { + "teal": 1204, + "source": "contracts/NFDInstance.algo.ts:277", + "pc": [ + 1173, + 1174 + ] + }, + { + "teal": 1205, + "source": "contracts/NFDInstance.algo.ts:277", + "pc": [ + 1175 + ] + }, + { + "teal": 1206, + "source": "contracts/NFDInstance.algo.ts:277", + "pc": [ + 1176 + ] + }, + { + "teal": 1209, + "source": "contracts/NFDInstance.algo.ts:276", + "errorMessage": "parent must be suffix of child", + "pc": [ + 1177 + ] + }, + { + "teal": 1213, + "source": "contracts/NFDInstance.algo.ts:280", + "pc": [ + 1178, + 1179 + ] + }, + { + "teal": 1214, + "source": "contracts/NFDInstance.algo.ts:280", + "pc": [ + 1180, + 1181 + ] + }, + { + "teal": 1215, + "source": "contracts/NFDInstance.algo.ts:280", + "pc": [ + 1182, + 1183, + 1184 + ] + }, + { + "teal": 1216, + "source": "contracts/NFDInstance.algo.ts:280", + "pc": [ + 1185 + ] + }, + { + "teal": 1220, + "source": "contracts/NFDInstance.algo.ts:281", + "pc": [ + 1186, + 1187 + ] + }, + { + "teal": 1221, + "source": "contracts/NFDInstance.algo.ts:281", + "pc": [ + 1188 + ] + }, + { + "teal": 1222, + "source": "contracts/NFDInstance.algo.ts:281", + "pc": [ + 1189, + 1190, + 1191 + ] + }, + { + "teal": 1223, + "source": "contracts/NFDInstance.algo.ts:281", + "pc": [ + 1192 + ] + }, + { + "teal": 1224, + "source": "contracts/NFDInstance.algo.ts:281", + "pc": [ + 1193 + ] + }, + { + "teal": 1225, + "source": "contracts/NFDInstance.algo.ts:281", + "pc": [ + 1194 + ] + }, + { + "teal": 1226, + "source": "contracts/NFDInstance.algo.ts:281", + "pc": [ + 1195 + ] + }, + { + "teal": 1230, + "source": "contracts/NFDInstance.algo.ts:282", + "pc": [ + 1196 + ] + }, + { + "teal": 1231, + "source": "contracts/NFDInstance.algo.ts:282", + "pc": [ + 1197, + 1198 + ] + }, + { + "teal": 1232, + "source": "contracts/NFDInstance.algo.ts:282", + "pc": [ + 1199 + ] + }, + { + "teal": 1233, + "source": "contracts/NFDInstance.algo.ts:282", + "pc": [ + 1200 + ] + }, + { + "teal": 1234, + "source": "contracts/NFDInstance.algo.ts:257", + "pc": [ + 1201 + ] + }, + { + "teal": 1239, + "source": "contracts/NFDInstance.algo.ts:285", + "pc": [ + 1202, + 1203 + ] + }, + { + "teal": 1242, + "source": "contracts/NFDInstance.algo.ts:286", + "pc": [ + 1204, + 1205, + 1206 + ] + }, + { + "teal": 1245, + "source": "contracts/NFDInstance.algo.ts:285", + "pc": [ + 1207, + 1208, + 1209 + ] + }, + { + "teal": 1246, + "source": "contracts/NFDInstance.algo.ts:285", + "pc": [ + 1210 + ] + }, + { + "teal": 1247, + "source": "contracts/NFDInstance.algo.ts:285", + "pc": [ + 1211 + ] + }, + { + "teal": 1248, + "source": "contracts/NFDInstance.algo.ts:285", + "pc": [ + 1212 + ] + }, + { + "teal": 1249, + "source": "contracts/NFDInstance.algo.ts:285", + "pc": [ + 1213 + ] + }, + { + "teal": 1250, + "source": "contracts/NFDInstance.algo.ts:285", + "pc": [ + 1214 + ] + }, + { + "teal": 1254, + "source": "contracts/NFDInstance.algo.ts:285", + "pc": [ + 1215, + 1216, + 1217 + ] + }, + { + "teal": 1257, + "source": "contracts/NFDInstance.algo.ts:285", + "pc": [ + 1218 + ] + }, + { + "teal": 1258, + "source": "contracts/NFDInstance.algo.ts:285", + "pc": [ + 1219, + 1220 + ] + }, + { + "teal": 1262, + "source": "contracts/NFDInstance.algo.ts:287", + "pc": [ + 1221 + ] + }, + { + "teal": 1263, + "source": "contracts/NFDInstance.algo.ts:287", + "pc": [ + 1222, + 1223 + ] + }, + { + "teal": 1267, + "source": "contracts/NFDInstance.algo.ts:288", + "pc": [ + 1224 + ] + }, + { + "teal": 1268, + "source": "contracts/NFDInstance.algo.ts:288", + "pc": [ + 1225, + 1226 + ] + }, + { + "teal": 1272, + "source": "contracts/NFDInstance.algo.ts:290", + "pc": [ + 1227 + ] + }, + { + "teal": 1273, + "source": "contracts/NFDInstance.algo.ts:290", + "pc": [ + 1228, + 1229 + ] + }, + { + "teal": 1278, + "source": "contracts/NFDInstance.algo.ts:290", + "pc": [ + 1230, + 1231 + ] + }, + { + "teal": 1279, + "source": "contracts/NFDInstance.algo.ts:290", + "pc": [ + 1232, + 1233 + ] + }, + { + "teal": 1280, + "source": "contracts/NFDInstance.algo.ts:290", + "pc": [ + 1234 + ] + }, + { + "teal": 1281, + "source": "contracts/NFDInstance.algo.ts:290", + "pc": [ + 1235 + ] + }, + { + "teal": 1282, + "source": "contracts/NFDInstance.algo.ts:290", + "pc": [ + 1236 + ] + }, + { + "teal": 1283, + "source": "contracts/NFDInstance.algo.ts:290", + "pc": [ + 1237, + 1238, + 1239 + ] + }, + { + "teal": 1287, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1240, + 1241 + ] + }, + { + "teal": 1288, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1242, + 1243 + ] + }, + { + "teal": 1289, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1244 + ] + }, + { + "teal": 1290, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1245, + 1246 + ] + }, + { + "teal": 1291, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1247 + ] + }, + { + "teal": 1292, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1248 + ] + }, + { + "teal": 1293, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1249 + ] + }, + { + "teal": 1294, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1250 + ] + }, + { + "teal": 1295, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1251 + ] + }, + { + "teal": 1296, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1252, + 1253 + ] + }, + { + "teal": 1297, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1254, + 1255 + ] + }, + { + "teal": 1298, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1256, + 1257 + ] + }, + { + "teal": 1299, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1258 + ] + }, + { + "teal": 1300, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1259 + ] + }, + { + "teal": 1301, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1260 + ] + }, + { + "teal": 1302, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1261 + ] + }, + { + "teal": 1303, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1262, + 1263 + ] + }, + { + "teal": 1304, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1264 + ] + }, + { + "teal": 1305, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1265 + ] + }, + { + "teal": 1306, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1266 + ] + }, + { + "teal": 1307, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1267 + ] + }, + { + "teal": 1308, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1268 + ] + }, + { + "teal": 1309, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1269 + ] + }, + { + "teal": 1310, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1270 + ] + }, + { + "teal": 1311, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1271, + 1272, + 1273 + ] + }, + { + "teal": 1312, + "source": "contracts/NFDInstance.algo.ts:291", + "pc": [ + 1274, + 1275 + ] + }, + { + "teal": 1316, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1276, + 1277 + ] + }, + { + "teal": 1317, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1278, + 1279 + ] + }, + { + "teal": 1318, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1280 + ] + }, + { + "teal": 1319, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1281, + 1282 + ] + }, + { + "teal": 1320, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1283 + ] + }, + { + "teal": 1321, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1284 + ] + }, + { + "teal": 1322, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1285 + ] + }, + { + "teal": 1323, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1286 + ] + }, + { + "teal": 1324, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1287 + ] + }, + { + "teal": 1325, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1288 + ] + }, + { + "teal": 1326, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1289 + ] + }, + { + "teal": 1327, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1290, + 1291 + ] + }, + { + "teal": 1328, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1292, + 1293 + ] + }, + { + "teal": 1329, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1294, + 1295 + ] + }, + { + "teal": 1330, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1296 + ] + }, + { + "teal": 1331, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1297 + ] + }, + { + "teal": 1332, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1298 + ] + }, + { + "teal": 1333, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1299 + ] + }, + { + "teal": 1334, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1300, + 1301 + ] + }, + { + "teal": 1335, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1302 + ] + }, + { + "teal": 1336, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1303 + ] + }, + { + "teal": 1337, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1304 + ] + }, + { + "teal": 1338, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1305 + ] + }, + { + "teal": 1339, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1306 + ] + }, + { + "teal": 1340, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1307 + ] + }, + { + "teal": 1341, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1308 + ] + }, + { + "teal": 1342, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1309, + 1310, + 1311 + ] + }, + { + "teal": 1343, + "source": "contracts/NFDInstance.algo.ts:292", + "pc": [ + 1312, + 1313 + ] + }, + { + "teal": 1347, + "source": "contracts/NFDInstance.algo.ts:293", + "pc": [ + 1314, + 1315 + ] + }, + { + "teal": 1348, + "source": "contracts/NFDInstance.algo.ts:293", + "pc": [ + 1316 + ] + }, + { + "teal": 1349, + "source": "contracts/NFDInstance.algo.ts:293", + "pc": [ + 1317 + ] + }, + { + "teal": 1350, + "source": "contracts/NFDInstance.algo.ts:293", + "pc": [ + 1318 + ] + }, + { + "teal": 1351, + "source": "contracts/NFDInstance.algo.ts:293", + "pc": [ + 1319, + 1320 + ] + }, + { + "teal": 1356, + "source": "contracts/NFDInstance.algo.ts:295", + "pc": [ + 1321, + 1322 + ] + }, + { + "teal": 1357, + "source": "contracts/NFDInstance.algo.ts:295", + "pc": [ + 1323 + ] + }, + { + "teal": 1358, + "source": "contracts/NFDInstance.algo.ts:295", + "pc": [ + 1324 + ] + }, + { + "teal": 1359, + "source": "contracts/NFDInstance.algo.ts:295", + "pc": [ + 1325 + ] + }, + { + "teal": 1360, + "source": "contracts/NFDInstance.algo.ts:295", + "pc": [ + 1326, + 1327, + 1328 + ] + }, + { + "teal": 1366, + "source": "contracts/NFDInstance.algo.ts:296", + "pc": [ + 1329, + 1330 + ] + }, + { + "teal": 1367, + "source": "contracts/NFDInstance.algo.ts:296", + "pc": [ + 1331, + 1332, + 1333 + ] + }, + { + "teal": 1372, + "source": "contracts/NFDInstance.algo.ts:298", + "pc": [ + 1334, + 1335 + ] + }, + { + "teal": 1373, + "source": "contracts/NFDInstance.algo.ts:298", + "pc": [ + 1336, + 1337 + ] + }, + { + "teal": 1374, + "source": "contracts/NFDInstance.algo.ts:298", + "pc": [ + 1338, + 1339 + ] + }, + { + "teal": 1375, + "source": "contracts/NFDInstance.algo.ts:298", + "pc": [ + 1340, + 1341 + ] + }, + { + "teal": 1376, + "source": "contracts/NFDInstance.algo.ts:298", + "pc": [ + 1342 + ] + }, + { + "teal": 1377, + "source": "contracts/NFDInstance.algo.ts:298", + "pc": [ + 1343, + 1344 + ] + }, + { + "teal": 1378, + "source": "contracts/NFDInstance.algo.ts:298", + "pc": [ + 1345 + ] + }, + { + "teal": 1381, + "source": "contracts/NFDInstance.algo.ts:298", + "errorMessage": "box value does not exist: this.boxes(name).size", + "pc": [ + 1346 + ] + }, + { + "teal": 1382, + "source": "contracts/NFDInstance.algo.ts:298", + "pc": [ + 1347 + ] + }, + { + "teal": 1383, + "source": "contracts/NFDInstance.algo.ts:298", + "pc": [ + 1348 + ] + }, + { + "teal": 1384, + "source": "contracts/NFDInstance.algo.ts:298", + "pc": [ + 1349 + ] + }, + { + "teal": 1385, + "source": "contracts/NFDInstance.algo.ts:298", + "pc": [ + 1350 + ] + }, + { + "teal": 1386, + "source": "contracts/NFDInstance.algo.ts:298", + "pc": [ + 1351, + 1352 + ] + }, + { + "teal": 1389, + "source": "contracts/NFDInstance.algo.ts:300", + "pc": [ + 1353, + 1354, + 1355 + ] + }, + { + "teal": 1395, + "source": "contracts/NFDInstance.algo.ts:302", + "pc": [ + 1356, + 1357 + ] + }, + { + "teal": 1396, + "source": "contracts/NFDInstance.algo.ts:302", + "pc": [ + 1358 + ] + }, + { + "teal": 1397, + "source": "contracts/NFDInstance.algo.ts:302", + "pc": [ + 1359, + 1360, + 1361 + ] + }, + { + "teal": 1402, + "source": "contracts/NFDInstance.algo.ts:304", + "pc": [ + 1362, + 1363 + ] + }, + { + "teal": 1403, + "source": "contracts/NFDInstance.algo.ts:304", + "pc": [ + 1364, + 1365 + ] + }, + { + "teal": 1404, + "source": "contracts/NFDInstance.algo.ts:304", + "pc": [ + 1366, + 1367 + ] + }, + { + "teal": 1405, + "source": "contracts/NFDInstance.algo.ts:304", + "pc": [ + 1368, + 1369 + ] + }, + { + "teal": 1406, + "source": "contracts/NFDInstance.algo.ts:304", + "pc": [ + 1370 + ] + }, + { + "teal": 1407, + "source": "contracts/NFDInstance.algo.ts:304", + "pc": [ + 1371, + 1372 + ] + }, + { + "teal": 1408, + "source": "contracts/NFDInstance.algo.ts:304", + "pc": [ + 1373 + ] + }, + { + "teal": 1409, + "source": "contracts/NFDInstance.algo.ts:304", + "pc": [ + 1374 + ] + }, + { + "teal": 1410, + "source": "contracts/NFDInstance.algo.ts:304", + "pc": [ + 1375 + ] + }, + { + "teal": 1411, + "source": "contracts/NFDInstance.algo.ts:304", + "pc": [ + 1376 + ] + }, + { + "teal": 1412, + "source": "contracts/NFDInstance.algo.ts:304", + "pc": [ + 1377 + ] + }, + { + "teal": 1413, + "source": "contracts/NFDInstance.algo.ts:304", + "pc": [ + 1378, + 1379 + ] + }, + { + "teal": 1414, + "source": "contracts/NFDInstance.algo.ts:305", + "pc": [ + 1380, + 1381, + 1382 + ] + }, + { + "teal": 1419, + "source": "contracts/NFDInstance.algo.ts:307", + "pc": [ + 1383, + 1384 + ] + }, + { + "teal": 1420, + "source": "contracts/NFDInstance.algo.ts:307", + "pc": [ + 1385 + ] + }, + { + "teal": 1423, + "source": "contracts/NFDInstance.algo.ts:307", + "errorMessage": "box value does not exist: this.boxes(name).size", + "pc": [ + 1386 + ] + }, + { + "teal": 1424, + "source": "contracts/NFDInstance.algo.ts:307", + "pc": [ + 1387, + 1388 + ] + }, + { + "teal": 1429, + "source": "contracts/NFDInstance.algo.ts:308", + "pc": [ + 1389, + 1390 + ] + }, + { + "teal": 1430, + "source": "contracts/NFDInstance.algo.ts:308", + "pc": [ + 1391 + ] + }, + { + "teal": 1431, + "source": "contracts/NFDInstance.algo.ts:308", + "pc": [ + 1392, + 1393 + ] + }, + { + "teal": 1432, + "source": "contracts/NFDInstance.algo.ts:308", + "pc": [ + 1394 + ] + }, + { + "teal": 1433, + "source": "contracts/NFDInstance.algo.ts:308", + "pc": [ + 1395, + 1396, + 1397 + ] + }, + { + "teal": 1438, + "source": "contracts/NFDInstance.algo.ts:309", + "pc": [ + 1398, + 1399 + ] + }, + { + "teal": 1439, + "source": "contracts/NFDInstance.algo.ts:309", + "pc": [ + 1400, + 1401 + ] + }, + { + "teal": 1440, + "source": "contracts/NFDInstance.algo.ts:309", + "pc": [ + 1402, + 1403 + ] + }, + { + "teal": 1441, + "source": "contracts/NFDInstance.algo.ts:309", + "pc": [ + 1404, + 1405 + ] + }, + { + "teal": 1442, + "source": "contracts/NFDInstance.algo.ts:309", + "pc": [ + 1406 + ] + }, + { + "teal": 1443, + "source": "contracts/NFDInstance.algo.ts:309", + "pc": [ + 1407 + ] + }, + { + "teal": 1444, + "source": "contracts/NFDInstance.algo.ts:309", + "pc": [ + 1408 + ] + }, + { + "teal": 1445, + "source": "contracts/NFDInstance.algo.ts:309", + "pc": [ + 1409 + ] + }, + { + "teal": 1446, + "source": "contracts/NFDInstance.algo.ts:309", + "pc": [ + 1410, + 1411 + ] + }, + { + "teal": 1447, + "source": "contracts/NFDInstance.algo.ts:308", + "pc": [ + 1412, + 1413, + 1414 + ] + }, + { + "teal": 1452, + "source": "contracts/NFDInstance.algo.ts:311", + "pc": [ + 1415, + 1416 + ] + }, + { + "teal": 1453, + "source": "contracts/NFDInstance.algo.ts:311", + "pc": [ + 1417, + 1418 + ] + }, + { + "teal": 1454, + "source": "contracts/NFDInstance.algo.ts:311", + "pc": [ + 1419, + 1420 + ] + }, + { + "teal": 1455, + "source": "contracts/NFDInstance.algo.ts:311", + "pc": [ + 1421 + ] + }, + { + "teal": 1456, + "source": "contracts/NFDInstance.algo.ts:311", + "pc": [ + 1422, + 1423 + ] + }, + { + "teal": 1457, + "source": "contracts/NFDInstance.algo.ts:311", + "pc": [ + 1424 + ] + }, + { + "teal": 1458, + "source": "contracts/NFDInstance.algo.ts:311", + "pc": [ + 1425 + ] + }, + { + "teal": 1459, + "source": "contracts/NFDInstance.algo.ts:311", + "pc": [ + 1426 + ] + }, + { + "teal": 1460, + "source": "contracts/NFDInstance.algo.ts:311", + "pc": [ + 1427, + 1428 + ] + }, + { + "teal": 1467, + "source": "contracts/NFDInstance.algo.ts:290", + "pc": [ + 1429, + 1430 + ] + }, + { + "teal": 1468, + "source": "contracts/NFDInstance.algo.ts:290", + "pc": [ + 1431 + ] + }, + { + "teal": 1469, + "source": "contracts/NFDInstance.algo.ts:290", + "pc": [ + 1432 + ] + }, + { + "teal": 1470, + "source": "contracts/NFDInstance.algo.ts:290", + "pc": [ + 1433, + 1434 + ] + }, + { + "teal": 1471, + "source": "contracts/NFDInstance.algo.ts:290", + "pc": [ + 1435, + 1436, + 1437 + ] + }, + { + "teal": 1477, + "source": "contracts/NFDInstance.algo.ts:315", + "pc": [ + 1438, + 1439 + ] + }, + { + "teal": 1478, + "source": "contracts/NFDInstance.algo.ts:315", + "pc": [ + 1440, + 1441 + ] + }, + { + "teal": 1479, + "source": "contracts/NFDInstance.algo.ts:315", + "pc": [ + 1442 + ] + }, + { + "teal": 1480, + "source": "contracts/NFDInstance.algo.ts:315", + "pc": [ + 1443, + 1444, + 1445 + ] + }, + { + "teal": 1485, + "source": "contracts/NFDInstance.algo.ts:316", + "pc": [ + 1446 + ] + }, + { + "teal": 1486, + "source": "contracts/NFDInstance.algo.ts:316", + "pc": [ + 1447, + 1448, + 1449 + ] + }, + { + "teal": 1491, + "source": "contracts/NFDInstance.algo.ts:318", + "pc": [ + 1450, + 1451 + ] + }, + { + "teal": 1492, + "source": "contracts/NFDInstance.algo.ts:318", + "pc": [ + 1452, + 1453 + ] + }, + { + "teal": 1493, + "source": "contracts/NFDInstance.algo.ts:318", + "pc": [ + 1454 + ] + }, + { + "teal": 1497, + "source": "contracts/NFDInstance.algo.ts:285", + "pc": [ + 1455, + 1456 + ] + }, + { + "teal": 1500, + "source": "contracts/NFDInstance.algo.ts:285", + "pc": [ + 1457, + 1458 + ] + }, + { + "teal": 1501, + "source": "contracts/NFDInstance.algo.ts:285", + "pc": [ + 1459 + ] + }, + { + "teal": 1506, + "source": "contracts/NFDInstance.algo.ts:321", + "pc": [ + 1460, + 1461, + 1462 + ] + }, + { + "teal": 1509, + "source": "contracts/NFDInstance.algo.ts:321", + "pc": [ + 1463, + 1464, + 1465 + ] + }, + { + "teal": 1510, + "source": "contracts/NFDInstance.algo.ts:321", + "pc": [ + 1466 + ] + }, + { + "teal": 1511, + "source": "contracts/NFDInstance.algo.ts:321", + "pc": [ + 1467 + ] + }, + { + "teal": 1515, + "source": "contracts/NFDInstance.algo.ts:321", + "pc": [ + 1468, + 1469, + 1470 + ] + }, + { + "teal": 1518, + "source": "contracts/NFDInstance.algo.ts:321", + "pc": [ + 1471 + ] + }, + { + "teal": 1519, + "source": "contracts/NFDInstance.algo.ts:321", + "pc": [ + 1472, + 1473 + ] + }, + { + "teal": 1523, + "source": "contracts/NFDInstance.algo.ts:322", + "pc": [ + 1474, + 1475, + 1476 + ] + }, + { + "teal": 1524, + "source": "contracts/NFDInstance.algo.ts:322", + "pc": [ + 1477 + ] + }, + { + "teal": 1525, + "source": "contracts/NFDInstance.algo.ts:322", + "pc": [ + 1478 + ] + }, + { + "teal": 1526, + "source": "contracts/NFDInstance.algo.ts:322", + "pc": [ + 1479 + ] + }, + { + "teal": 1527, + "source": "contracts/NFDInstance.algo.ts:322", + "pc": [ + 1480 + ] + }, + { + "teal": 1528, + "source": "contracts/NFDInstance.algo.ts:322", + "pc": [ + 1481 + ] + }, + { + "teal": 1529, + "source": "contracts/NFDInstance.algo.ts:322", + "pc": [ + 1482 + ] + }, + { + "teal": 1533, + "source": "contracts/NFDInstance.algo.ts:323", + "pc": [ + 1483, + 1484, + 1485 + ] + }, + { + "teal": 1534, + "source": "contracts/NFDInstance.algo.ts:323", + "pc": [ + 1486 + ] + }, + { + "teal": 1537, + "source": "contracts/NFDInstance.algo.ts:323", + "errorMessage": "can't update fields if NFD expired", + "pc": [ + 1487 + ] + }, + { + "teal": 1541, + "source": "contracts/NFDInstance.algo.ts:325", + "pc": [ + 1488 + ] + }, + { + "teal": 1542, + "source": "contracts/NFDInstance.algo.ts:325", + "pc": [ + 1489, + 1490 + ] + }, + { + "teal": 1543, + "source": "contracts/NFDInstance.algo.ts:325", + "pc": [ + 1491 + ] + }, + { + "teal": 1544, + "source": "contracts/NFDInstance.algo.ts:325", + "pc": [ + 1492 + ] + }, + { + "teal": 1549, + "source": "contracts/NFDInstance.algo.ts:328", + "pc": [ + 1493, + 1494 + ] + }, + { + "teal": 1550, + "source": "contracts/NFDInstance.algo.ts:328", + "pc": [ + 1495, + 1496 + ] + }, + { + "teal": 1551, + "source": "contracts/NFDInstance.algo.ts:328", + "pc": [ + 1497 + ] + }, + { + "teal": 1552, + "source": "contracts/NFDInstance.algo.ts:328", + "pc": [ + 1498, + 1499, + 1500 + ] + }, + { + "teal": 1558, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1501, + 1502 + ] + }, + { + "teal": 1559, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1503 + ] + }, + { + "teal": 1560, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1504 + ] + }, + { + "teal": 1561, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1505 + ] + }, + { + "teal": 1562, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1506 + ] + }, + { + "teal": 1563, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1507 + ] + }, + { + "teal": 1564, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1508, + 1509, + 1510 + ] + }, + { + "teal": 1565, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1511, + 1512 + ] + }, + { + "teal": 1566, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1513, + 1514 + ] + }, + { + "teal": 1567, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1515 + ] + }, + { + "teal": 1568, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1516, + 1517 + ] + }, + { + "teal": 1569, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1518, + 1519 + ] + }, + { + "teal": 1570, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1520, + 1521 + ] + }, + { + "teal": 1571, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1522 + ] + }, + { + "teal": 1572, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1523 + ] + }, + { + "teal": 1573, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1524 + ] + }, + { + "teal": 1574, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1525 + ] + }, + { + "teal": 1575, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1526, + 1527 + ] + }, + { + "teal": 1576, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1528 + ] + }, + { + "teal": 1577, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1529 + ] + }, + { + "teal": 1578, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1530 + ] + }, + { + "teal": 1579, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1531 + ] + }, + { + "teal": 1580, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1532 + ] + }, + { + "teal": 1581, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1533 + ] + }, + { + "teal": 1582, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1534 + ] + }, + { + "teal": 1583, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1535, + 1536, + 1537 + ] + }, + { + "teal": 1584, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1538, + 1539, + 1540, + 1541, + 1542, + 1543, + 1544, + 1545, + 1546, + 1547, + 1548, + 1549, + 1550, + 1551 + ] + }, + { + "teal": 1585, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1552 + ] + }, + { + "teal": 1586, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1553 + ] + }, + { + "teal": 1589, + "source": "contracts/NFDInstance.algo.ts:329", + "pc": [ + 1554, + 1555, + 1556 + ] + }, + { + "teal": 1594, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1557, + 1558 + ] + }, + { + "teal": 1595, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1559, + 1560 + ] + }, + { + "teal": 1596, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1561 + ] + }, + { + "teal": 1597, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1562, + 1563 + ] + }, + { + "teal": 1598, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1564, + 1565 + ] + }, + { + "teal": 1599, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1566, + 1567 + ] + }, + { + "teal": 1600, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1568 + ] + }, + { + "teal": 1601, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1569 + ] + }, + { + "teal": 1602, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1570 + ] + }, + { + "teal": 1603, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1571 + ] + }, + { + "teal": 1604, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1572, + 1573 + ] + }, + { + "teal": 1605, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1574 + ] + }, + { + "teal": 1606, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1575 + ] + }, + { + "teal": 1607, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1576 + ] + }, + { + "teal": 1608, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1577 + ] + }, + { + "teal": 1609, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1578 + ] + }, + { + "teal": 1610, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1579 + ] + }, + { + "teal": 1611, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1580 + ] + }, + { + "teal": 1612, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1581, + 1582, + 1583 + ] + }, + { + "teal": 1613, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1584, + 1585 + ] + }, + { + "teal": 1614, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1586, + 1587 + ] + }, + { + "teal": 1615, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1588, + 1589 + ] + }, + { + "teal": 1616, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1590, + 1591 + ] + }, + { + "teal": 1617, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1592, + 1593 + ] + }, + { + "teal": 1618, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1594, + 1595 + ] + }, + { + "teal": 1619, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1596 + ] + }, + { + "teal": 1620, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1597 + ] + }, + { + "teal": 1621, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1598 + ] + }, + { + "teal": 1622, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1599 + ] + }, + { + "teal": 1623, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1600, + 1601 + ] + }, + { + "teal": 1624, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1602 + ] + }, + { + "teal": 1625, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1603 + ] + }, + { + "teal": 1626, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1604 + ] + }, + { + "teal": 1627, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1605 + ] + }, + { + "teal": 1628, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1606 + ] + }, + { + "teal": 1629, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1607 + ] + }, + { + "teal": 1630, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1608 + ] + }, + { + "teal": 1631, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1609, + 1610, + 1611 + ] + }, + { + "teal": 1632, + "source": "contracts/NFDInstance.algo.ts:330", + "pc": [ + 1612 + ] + }, + { + "teal": 1636, + "source": "contracts/NFDInstance.algo.ts:331", + "pc": [ + 1613 + ] + }, + { + "teal": 1641, + "source": "contracts/NFDInstance.algo.ts:333", + "pc": [ + 1614 + ] + }, + { + "teal": 1644, + "source": "contracts/NFDInstance.algo.ts:333", + "errorMessage": "invalid update call by registry", + "pc": [ + 1615 + ] + }, + { + "teal": 1649, + "source": "contracts/NFDInstance.algo.ts:336", + "pc": [ + 1616, + 1617, + 1618 + ] + }, + { + "teal": 1650, + "source": "contracts/NFDInstance.algo.ts:336", + "pc": [ + 1619, + 1620 + ] + }, + { + "teal": 1654, + "source": "contracts/NFDInstance.algo.ts:337", + "pc": [ + 1621 + ] + }, + { + "teal": 1655, + "source": "contracts/NFDInstance.algo.ts:337", + "pc": [ + 1622, + 1623 + ] + }, + { + "teal": 1660, + "source": "contracts/NFDInstance.algo.ts:337", + "pc": [ + 1624, + 1625 + ] + }, + { + "teal": 1661, + "source": "contracts/NFDInstance.algo.ts:337", + "pc": [ + 1626, + 1627 + ] + }, + { + "teal": 1662, + "source": "contracts/NFDInstance.algo.ts:337", + "pc": [ + 1628 + ] + }, + { + "teal": 1663, + "source": "contracts/NFDInstance.algo.ts:337", + "pc": [ + 1629 + ] + }, + { + "teal": 1664, + "source": "contracts/NFDInstance.algo.ts:337", + "pc": [ + 1630 + ] + }, + { + "teal": 1665, + "source": "contracts/NFDInstance.algo.ts:337", + "pc": [ + 1631, + 1632, + 1633 + ] + }, + { + "teal": 1669, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1634, + 1635 + ] + }, + { + "teal": 1670, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1636, + 1637 + ] + }, + { + "teal": 1671, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1638 + ] + }, + { + "teal": 1672, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1639, + 1640 + ] + }, + { + "teal": 1673, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1641 + ] + }, + { + "teal": 1674, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1642 + ] + }, + { + "teal": 1675, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1643 + ] + }, + { + "teal": 1676, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1644 + ] + }, + { + "teal": 1677, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1645 + ] + }, + { + "teal": 1678, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1646, + 1647 + ] + }, + { + "teal": 1679, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1648, + 1649 + ] + }, + { + "teal": 1680, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1650, + 1651 + ] + }, + { + "teal": 1681, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1652 + ] + }, + { + "teal": 1682, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1653 + ] + }, + { + "teal": 1683, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1654 + ] + }, + { + "teal": 1684, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1655 + ] + }, + { + "teal": 1685, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1656, + 1657 + ] + }, + { + "teal": 1686, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1658 + ] + }, + { + "teal": 1687, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1659 + ] + }, + { + "teal": 1688, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1660 + ] + }, + { + "teal": 1689, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1661 + ] + }, + { + "teal": 1690, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1662 + ] + }, + { + "teal": 1691, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1663 + ] + }, + { + "teal": 1692, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1664 + ] + }, + { + "teal": 1693, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1665, + 1666, + 1667 + ] + }, + { + "teal": 1694, + "source": "contracts/NFDInstance.algo.ts:338", + "pc": [ + 1668, + 1669 + ] + }, + { + "teal": 1698, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1670, + 1671 + ] + }, + { + "teal": 1699, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1672, + 1673 + ] + }, + { + "teal": 1700, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1674 + ] + }, + { + "teal": 1701, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1675, + 1676 + ] + }, + { + "teal": 1702, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1677 + ] + }, + { + "teal": 1703, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1678 + ] + }, + { + "teal": 1704, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1679 + ] + }, + { + "teal": 1705, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1680 + ] + }, + { + "teal": 1706, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1681 + ] + }, + { + "teal": 1707, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1682 + ] + }, + { + "teal": 1708, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1683 + ] + }, + { + "teal": 1709, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1684, + 1685 + ] + }, + { + "teal": 1710, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1686, + 1687 + ] + }, + { + "teal": 1711, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1688, + 1689 + ] + }, + { + "teal": 1712, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1690 + ] + }, + { + "teal": 1713, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1691 + ] + }, + { + "teal": 1714, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1692 + ] + }, + { + "teal": 1715, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1693 + ] + }, + { + "teal": 1716, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1694, + 1695 + ] + }, + { + "teal": 1717, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1696 + ] + }, + { + "teal": 1718, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1697 + ] + }, + { + "teal": 1719, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1698 + ] + }, + { + "teal": 1720, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1699 + ] + }, + { + "teal": 1721, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1700 + ] + }, + { + "teal": 1722, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1701 + ] + }, + { + "teal": 1723, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1702 + ] + }, + { + "teal": 1724, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1703, + 1704, + 1705 + ] + }, + { + "teal": 1725, + "source": "contracts/NFDInstance.algo.ts:339", + "pc": [ + 1706, + 1707 + ] + }, + { + "teal": 1732, + "source": "contracts/NFDInstance.algo.ts:341", + "pc": [ + 1708, + 1709 + ] + }, + { + "teal": 1733, + "source": "contracts/NFDInstance.algo.ts:341", + "pc": [ + 1710, + 1711 + ] + }, + { + "teal": 1734, + "source": "contracts/NFDInstance.algo.ts:341", + "pc": [ + 1712, + 1713 + ] + }, + { + "teal": 1735, + "source": "contracts/NFDInstance.algo.ts:341", + "pc": [ + 1714, + 1715, + 1716 + ] + }, + { + "teal": 1738, + "source": "contracts/NFDInstance.algo.ts:340", + "errorMessage": "field not updatable or no permissions to update", + "pc": [ + 1717 + ] + }, + { + "teal": 1742, + "source": "contracts/NFDInstance.algo.ts:344", + "pc": [ + 1718, + 1719 + ] + }, + { + "teal": 1743, + "source": "contracts/NFDInstance.algo.ts:344", + "pc": [ + 1720 + ] + }, + { + "teal": 1748, + "source": "contracts/NFDInstance.algo.ts:345", + "pc": [ + 1721, + 1722 + ] + }, + { + "teal": 1749, + "source": "contracts/NFDInstance.algo.ts:345", + "pc": [ + 1723 + ] + }, + { + "teal": 1750, + "source": "contracts/NFDInstance.algo.ts:345", + "pc": [ + 1724 + ] + }, + { + "teal": 1751, + "source": "contracts/NFDInstance.algo.ts:345", + "pc": [ + 1725 + ] + }, + { + "teal": 1752, + "source": "contracts/NFDInstance.algo.ts:345", + "pc": [ + 1726, + 1727, + 1728 + ] + }, + { + "teal": 1757, + "source": "contracts/NFDInstance.algo.ts:346", + "pc": [ + 1729, + 1730 + ] + }, + { + "teal": 1758, + "source": "contracts/NFDInstance.algo.ts:346", + "pc": [ + 1731, + 1732 + ] + }, + { + "teal": 1759, + "source": "contracts/NFDInstance.algo.ts:346", + "pc": [ + 1733 + ] + }, + { + "teal": 1766, + "source": "contracts/NFDInstance.algo.ts:337", + "pc": [ + 1734, + 1735 + ] + }, + { + "teal": 1767, + "source": "contracts/NFDInstance.algo.ts:337", + "pc": [ + 1736 + ] + }, + { + "teal": 1768, + "source": "contracts/NFDInstance.algo.ts:337", + "pc": [ + 1737 + ] + }, + { + "teal": 1769, + "source": "contracts/NFDInstance.algo.ts:337", + "pc": [ + 1738, + 1739 + ] + }, + { + "teal": 1770, + "source": "contracts/NFDInstance.algo.ts:337", + "pc": [ + 1740, + 1741, + 1742 + ] + }, + { + "teal": 1773, + "source": "contracts/NFDInstance.algo.ts:321", + "pc": [ + 1743 + ] + }, + { + "teal": 1777, + "source": "contracts/NFDInstance.algo.ts:351", + "pc": [ + 1744, + 1745, + 1746 + ] + }, + { + "teal": 1780, + "source": "contracts/NFDInstance.algo.ts:351", + "pc": [ + 1747 + ] + }, + { + "teal": 1781, + "source": "contracts/NFDInstance.algo.ts:351", + "pc": [ + 1748, + 1749 + ] + }, + { + "teal": 1785, + "source": "contracts/NFDInstance.algo.ts:352", + "pc": [ + 1750, + 1751, + 1752 + ] + }, + { + "teal": 1786, + "source": "contracts/NFDInstance.algo.ts:352", + "pc": [ + 1753 + ] + }, + { + "teal": 1787, + "source": "contracts/NFDInstance.algo.ts:352", + "pc": [ + 1754 + ] + }, + { + "teal": 1788, + "source": "contracts/NFDInstance.algo.ts:352", + "pc": [ + 1755 + ] + }, + { + "teal": 1789, + "source": "contracts/NFDInstance.algo.ts:352", + "pc": [ + 1756 + ] + }, + { + "teal": 1790, + "source": "contracts/NFDInstance.algo.ts:352", + "pc": [ + 1757 + ] + }, + { + "teal": 1791, + "source": "contracts/NFDInstance.algo.ts:352", + "pc": [ + 1758 + ] + }, + { + "teal": 1795, + "source": "contracts/NFDInstance.algo.ts:353", + "pc": [ + 1759, + 1760, + 1761 + ] + }, + { + "teal": 1796, + "source": "contracts/NFDInstance.algo.ts:353", + "pc": [ + 1762 + ] + }, + { + "teal": 1799, + "source": "contracts/NFDInstance.algo.ts:353", + "errorMessage": "can't update fields if NFD expired", + "pc": [ + 1763 + ] + }, + { + "teal": 1803, + "source": "contracts/NFDInstance.algo.ts:355", + "pc": [ + 1764, + 1765, + 1766 + ] + }, + { + "teal": 1804, + "source": "contracts/NFDInstance.algo.ts:355", + "pc": [ + 1767, + 1768 + ] + }, + { + "teal": 1808, + "source": "contracts/NFDInstance.algo.ts:356", + "pc": [ + 1769 + ] + }, + { + "teal": 1809, + "source": "contracts/NFDInstance.algo.ts:356", + "pc": [ + 1770, + 1771 + ] + }, + { + "teal": 1814, + "source": "contracts/NFDInstance.algo.ts:356", + "pc": [ + 1772, + 1773 + ] + }, + { + "teal": 1815, + "source": "contracts/NFDInstance.algo.ts:356", + "pc": [ + 1774, + 1775 + ] + }, + { + "teal": 1816, + "source": "contracts/NFDInstance.algo.ts:356", + "pc": [ + 1776 + ] + }, + { + "teal": 1817, + "source": "contracts/NFDInstance.algo.ts:356", + "pc": [ + 1777, + 1778, + 1779 + ] + }, + { + "teal": 1821, + "source": "contracts/NFDInstance.algo.ts:357", + "pc": [ + 1780, + 1781 + ] + }, + { + "teal": 1822, + "source": "contracts/NFDInstance.algo.ts:357", + "pc": [ + 1782, + 1783 + ] + }, + { + "teal": 1823, + "source": "contracts/NFDInstance.algo.ts:357", + "pc": [ + 1784, + 1785 + ] + }, + { + "teal": 1827, + "source": "contracts/NFDInstance.algo.ts:358", + "pc": [ + 1786, + 1787 + ] + }, + { + "teal": 1828, + "source": "contracts/NFDInstance.algo.ts:358", + "pc": [ + 1788 + ] + }, + { + "teal": 1829, + "source": "contracts/NFDInstance.algo.ts:358", + "pc": [ + 1789 + ] + }, + { + "teal": 1830, + "source": "contracts/NFDInstance.algo.ts:358", + "pc": [ + 1790, + 1791 + ] + }, + { + "teal": 1831, + "source": "contracts/NFDInstance.algo.ts:358", + "pc": [ + 1792, + 1793 + ] + }, + { + "teal": 1838, + "source": "contracts/NFDInstance.algo.ts:360", + "pc": [ + 1794, + 1795 + ] + }, + { + "teal": 1839, + "source": "contracts/NFDInstance.algo.ts:360", + "pc": [ + 1796, + 1797 + ] + }, + { + "teal": 1840, + "source": "contracts/NFDInstance.algo.ts:360", + "pc": [ + 1798, + 1799 + ] + }, + { + "teal": 1841, + "source": "contracts/NFDInstance.algo.ts:360", + "pc": [ + 1800, + 1801, + 1802 + ] + }, + { + "teal": 1844, + "source": "contracts/NFDInstance.algo.ts:359", + "errorMessage": "field not updatable or no permissions to update", + "pc": [ + 1803 + ] + }, + { + "teal": 1848, + "source": "contracts/NFDInstance.algo.ts:363", + "pc": [ + 1804, + 1805 + ] + }, + { + "teal": 1849, + "source": "contracts/NFDInstance.algo.ts:363", + "pc": [ + 1806 + ] + }, + { + "teal": 1854, + "source": "contracts/NFDInstance.algo.ts:364", + "pc": [ + 1807, + 1808 + ] + }, + { + "teal": 1855, + "source": "contracts/NFDInstance.algo.ts:364", + "pc": [ + 1809 + ] + }, + { + "teal": 1856, + "source": "contracts/NFDInstance.algo.ts:364", + "pc": [ + 1810 + ] + }, + { + "teal": 1857, + "source": "contracts/NFDInstance.algo.ts:364", + "pc": [ + 1811 + ] + }, + { + "teal": 1858, + "source": "contracts/NFDInstance.algo.ts:364", + "pc": [ + 1812, + 1813, + 1814 + ] + }, + { + "teal": 1863, + "source": "contracts/NFDInstance.algo.ts:365", + "pc": [ + 1815, + 1816 + ] + }, + { + "teal": 1864, + "source": "contracts/NFDInstance.algo.ts:365", + "pc": [ + 1817, + 1818 + ] + }, + { + "teal": 1865, + "source": "contracts/NFDInstance.algo.ts:365", + "pc": [ + 1819 + ] + }, + { + "teal": 1872, + "source": "contracts/NFDInstance.algo.ts:356", + "pc": [ + 1820, + 1821 + ] + }, + { + "teal": 1873, + "source": "contracts/NFDInstance.algo.ts:356", + "pc": [ + 1822 + ] + }, + { + "teal": 1874, + "source": "contracts/NFDInstance.algo.ts:356", + "pc": [ + 1823 + ] + }, + { + "teal": 1875, + "source": "contracts/NFDInstance.algo.ts:356", + "pc": [ + 1824, + 1825 + ] + }, + { + "teal": 1876, + "source": "contracts/NFDInstance.algo.ts:356", + "pc": [ + 1826, + 1827, + 1828 + ] + }, + { + "teal": 1881, + "source": "contracts/NFDInstance.algo.ts:368", + "pc": [ + 1829 + ] + }, + { + "teal": 1882, + "source": "contracts/NFDInstance.algo.ts:368", + "pc": [ + 1830, + 1831 + ] + }, + { + "teal": 1883, + "source": "contracts/NFDInstance.algo.ts:368", + "pc": [ + 1832 + ] + }, + { + "teal": 1884, + "source": "contracts/NFDInstance.algo.ts:368", + "pc": [ + 1833 + ] + }, + { + "teal": 1885, + "source": "contracts/NFDInstance.algo.ts:351", + "pc": [ + 1834 + ] + }, + { + "teal": 1890, + "source": "contracts/NFDInstance.algo.ts:371", + "pc": [ + 1835, + 1836 + ] + }, + { + "teal": 1893, + "source": "contracts/NFDInstance.algo.ts:372", + "pc": [ + 1837, + 1838, + 1839 + ] + }, + { + "teal": 1894, + "source": "contracts/NFDInstance.algo.ts:372", + "pc": [ + 1840, + 1841, + 1842 + ] + }, + { + "teal": 1897, + "source": "contracts/NFDInstance.algo.ts:371", + "pc": [ + 1843, + 1844, + 1845 + ] + }, + { + "teal": 1898, + "source": "contracts/NFDInstance.algo.ts:371", + "pc": [ + 1846 + ] + }, + { + "teal": 1899, + "source": "contracts/NFDInstance.algo.ts:371", + "pc": [ + 1847 + ] + }, + { + "teal": 1900, + "source": "contracts/NFDInstance.algo.ts:371", + "pc": [ + 1848 + ] + }, + { + "teal": 1901, + "source": "contracts/NFDInstance.algo.ts:371", + "pc": [ + 1849, + 1850, + 1851 + ] + }, + { + "teal": 1902, + "source": "contracts/NFDInstance.algo.ts:371", + "pc": [ + 1852 + ] + }, + { + "teal": 1903, + "source": "contracts/NFDInstance.algo.ts:371", + "pc": [ + 1853 + ] + }, + { + "teal": 1904, + "source": "contracts/NFDInstance.algo.ts:371", + "pc": [ + 1854 + ] + }, + { + "teal": 1905, + "source": "contracts/NFDInstance.algo.ts:371", + "pc": [ + 1855 + ] + }, + { + "teal": 1906, + "source": "contracts/NFDInstance.algo.ts:371", + "pc": [ + 1856 + ] + }, + { + "teal": 1907, + "source": "contracts/NFDInstance.algo.ts:371", + "pc": [ + 1857 + ] + }, + { + "teal": 1911, + "source": "contracts/NFDInstance.algo.ts:371", + "pc": [ + 1858, + 1859, + 1860 + ] + }, + { + "teal": 1914, + "source": "contracts/NFDInstance.algo.ts:371", + "pc": [ + 1861 + ] + }, + { + "teal": 1915, + "source": "contracts/NFDInstance.algo.ts:371", + "pc": [ + 1862, + 1863 + ] + }, + { + "teal": 1919, + "source": "contracts/NFDInstance.algo.ts:374", + "pc": [ + 1864, + 1865 + ] + }, + { + "teal": 1920, + "source": "contracts/NFDInstance.algo.ts:374", + "pc": [ + 1866, + 1867, + 1868 + ] + }, + { + "teal": 1921, + "source": "contracts/NFDInstance.algo.ts:374", + "pc": [ + 1869, + 1870 + ] + }, + { + "teal": 1926, + "source": "contracts/NFDInstance.algo.ts:376", + "pc": [ + 1871, + 1872 + ] + }, + { + "teal": 1927, + "source": "contracts/NFDInstance.algo.ts:376", + "pc": [ + 1873, + 1874, + 1875 + ] + }, + { + "teal": 1928, + "source": "contracts/NFDInstance.algo.ts:376", + "pc": [ + 1876, + 1877, + 1878 + ] + }, + { + "teal": 1933, + "source": "contracts/NFDInstance.algo.ts:377", + "pc": [ + 1879, + 1880 + ] + }, + { + "teal": 1934, + "source": "contracts/NFDInstance.algo.ts:377", + "pc": [ + 1881, + 1882, + 1883 + ] + }, + { + "teal": 1935, + "source": "contracts/NFDInstance.algo.ts:377", + "pc": [ + 1884, + 1885, + 1886 + ] + }, + { + "teal": 1943, + "source": "contracts/NFDInstance.algo.ts:380", + "pc": [ + 1887, + 1888 + ] + }, + { + "teal": 1944, + "source": "contracts/NFDInstance.algo.ts:380", + "pc": [ + 1889, + 1890, + 1891 + ] + }, + { + "teal": 1945, + "source": "contracts/NFDInstance.algo.ts:380", + "pc": [ + 1892 + ] + }, + { + "teal": 1946, + "source": "contracts/NFDInstance.algo.ts:380", + "pc": [ + 1893, + 1894, + 1895 + ] + }, + { + "teal": 1947, + "source": "contracts/NFDInstance.algo.ts:380", + "pc": [ + 1896, + 1897 + ] + }, + { + "teal": 1948, + "source": "contracts/NFDInstance.algo.ts:380", + "pc": [ + 1898, + 1899, + 1900 + ] + }, + { + "teal": 1949, + "source": "contracts/NFDInstance.algo.ts:380", + "pc": [ + 1901 + ] + }, + { + "teal": 1953, + "source": "contracts/NFDInstance.algo.ts:379", + "errorMessage": "must be user-defined or verified field to fetch", + "pc": [ + 1902 + ] + }, + { + "teal": 1958, + "source": "contracts/NFDInstance.algo.ts:383", + "pc": [ + 1903, + 1904 + ] + }, + { + "teal": 1959, + "source": "contracts/NFDInstance.algo.ts:383", + "pc": [ + 1905 + ] + }, + { + "teal": 1960, + "source": "contracts/NFDInstance.algo.ts:383", + "pc": [ + 1906 + ] + }, + { + "teal": 1961, + "source": "contracts/NFDInstance.algo.ts:383", + "pc": [ + 1907 + ] + }, + { + "teal": 1962, + "source": "contracts/NFDInstance.algo.ts:383", + "pc": [ + 1908, + 1909, + 1910 + ] + }, + { + "teal": 1967, + "source": "contracts/NFDInstance.algo.ts:384", + "pc": [ + 1911, + 1912 + ] + }, + { + "teal": 1968, + "source": "contracts/NFDInstance.algo.ts:384", + "pc": [ + 1913 + ] + }, + { + "teal": 1971, + "source": "contracts/NFDInstance.algo.ts:384", + "errorMessage": "box value does not exist: this.boxes(fieldName).value", + "pc": [ + 1914 + ] + }, + { + "teal": 1972, + "source": "contracts/NFDInstance.algo.ts:384", + "pc": [ + 1915, + 1916, + 1917 + ] + }, + { + "teal": 1977, + "source": "contracts/NFDInstance.algo.ts:387", + "pc": [ + 1918, + 1919 + ] + }, + { + "teal": 1978, + "source": "contracts/NFDInstance.algo.ts:387", + "pc": [ + 1920, + 1921, + 1922, + 1923, + 1924 + ] + }, + { + "teal": 1979, + "source": "contracts/NFDInstance.algo.ts:387", + "pc": [ + 1925 + ] + }, + { + "teal": 1980, + "source": "contracts/NFDInstance.algo.ts:387", + "pc": [ + 1926, + 1927 + ] + }, + { + "teal": 1985, + "source": "contracts/NFDInstance.algo.ts:388", + "pc": [ + 1928, + 1929 + ] + }, + { + "teal": 1986, + "source": "contracts/NFDInstance.algo.ts:388", + "pc": [ + 1930 + ] + }, + { + "teal": 1987, + "source": "contracts/NFDInstance.algo.ts:388", + "pc": [ + 1931 + ] + }, + { + "teal": 1988, + "source": "contracts/NFDInstance.algo.ts:388", + "pc": [ + 1932 + ] + }, + { + "teal": 1989, + "source": "contracts/NFDInstance.algo.ts:388", + "pc": [ + 1933 + ] + }, + { + "teal": 1990, + "source": "contracts/NFDInstance.algo.ts:388", + "pc": [ + 1934, + 1935, + 1936 + ] + }, + { + "teal": 1995, + "source": "contracts/NFDInstance.algo.ts:389", + "pc": [ + 1937 + ] + }, + { + "teal": 1996, + "source": "contracts/NFDInstance.algo.ts:389", + "pc": [ + 1938, + 1939, + 1940 + ] + }, + { + "teal": 2001, + "source": "contracts/NFDInstance.algo.ts:392", + "pc": [ + 1941, + 1942 + ] + }, + { + "teal": 2002, + "source": "contracts/NFDInstance.algo.ts:392", + "pc": [ + 1943 + ] + }, + { + "teal": 2005, + "source": "contracts/NFDInstance.algo.ts:392", + "errorMessage": "box value does not exist: this.boxes(boxName).value", + "pc": [ + 1944 + ] + }, + { + "teal": 2006, + "source": "contracts/NFDInstance.algo.ts:392", + "pc": [ + 1945, + 1946 + ] + }, + { + "teal": 2010, + "source": "contracts/NFDInstance.algo.ts:393", + "pc": [ + 1947, + 1948 + ] + }, + { + "teal": 2011, + "source": "contracts/NFDInstance.algo.ts:393", + "pc": [ + 1949, + 1950, + 1951, + 1952 + ] + }, + { + "teal": 2012, + "source": "contracts/NFDInstance.algo.ts:393", + "pc": [ + 1953 + ] + }, + { + "teal": 2013, + "source": "contracts/NFDInstance.algo.ts:393", + "pc": [ + 1954, + 1955 + ] + }, + { + "teal": 2017, + "source": "contracts/NFDInstance.algo.ts:394", + "pc": [ + 1956 + ] + }, + { + "teal": 2018, + "source": "contracts/NFDInstance.algo.ts:394", + "pc": [ + 1957, + 1958 + ] + }, + { + "teal": 2023, + "source": "contracts/NFDInstance.algo.ts:394", + "pc": [ + 1959, + 1960 + ] + }, + { + "teal": 2024, + "source": "contracts/NFDInstance.algo.ts:394", + "pc": [ + 1961, + 1962 + ] + }, + { + "teal": 2025, + "source": "contracts/NFDInstance.algo.ts:394", + "pc": [ + 1963 + ] + }, + { + "teal": 2026, + "source": "contracts/NFDInstance.algo.ts:394", + "pc": [ + 1964, + 1965, + 1966 + ] + }, + { + "teal": 2030, + "source": "contracts/NFDInstance.algo.ts:395", + "pc": [ + 1967, + 1968 + ] + }, + { + "teal": 2031, + "source": "contracts/NFDInstance.algo.ts:395", + "pc": [ + 1969, + 1970 + ] + }, + { + "teal": 2032, + "source": "contracts/NFDInstance.algo.ts:395", + "pc": [ + 1971, + 1972, + 1973 + ] + }, + { + "teal": 2033, + "source": "contracts/NFDInstance.algo.ts:395", + "pc": [ + 1974 + ] + }, + { + "teal": 2034, + "source": "contracts/NFDInstance.algo.ts:395", + "pc": [ + 1975, + 1976 + ] + }, + { + "teal": 2039, + "source": "contracts/NFDInstance.algo.ts:396", + "pc": [ + 1977, + 1978 + ] + }, + { + "teal": 2040, + "source": "contracts/NFDInstance.algo.ts:396", + "pc": [ + 1979 + ] + }, + { + "teal": 2041, + "source": "contracts/NFDInstance.algo.ts:396", + "pc": [ + 1980 + ] + }, + { + "teal": 2042, + "source": "contracts/NFDInstance.algo.ts:396", + "pc": [ + 1981 + ] + }, + { + "teal": 2043, + "source": "contracts/NFDInstance.algo.ts:396", + "pc": [ + 1982 + ] + }, + { + "teal": 2044, + "source": "contracts/NFDInstance.algo.ts:396", + "pc": [ + 1983, + 1984, + 1985 + ] + }, + { + "teal": 2047, + "source": "contracts/NFDInstance.algo.ts:397", + "pc": [ + 1986, + 1987, + 1988 + ] + }, + { + "teal": 2052, + "source": "contracts/NFDInstance.algo.ts:400", + "pc": [ + 1989, + 1990 + ] + }, + { + "teal": 2053, + "source": "contracts/NFDInstance.algo.ts:400", + "pc": [ + 1991, + 1992 + ] + }, + { + "teal": 2054, + "source": "contracts/NFDInstance.algo.ts:400", + "pc": [ + 1993 + ] + }, + { + "teal": 2057, + "source": "contracts/NFDInstance.algo.ts:400", + "errorMessage": "box value does not exist: this.boxes(boxName).value", + "pc": [ + 1994 + ] + }, + { + "teal": 2058, + "source": "contracts/NFDInstance.algo.ts:400", + "pc": [ + 1995 + ] + }, + { + "teal": 2059, + "source": "contracts/NFDInstance.algo.ts:400", + "pc": [ + 1996, + 1997 + ] + }, + { + "teal": 2064, + "source": "contracts/NFDInstance.algo.ts:394", + "pc": [ + 1998, + 1999 + ] + }, + { + "teal": 2065, + "source": "contracts/NFDInstance.algo.ts:394", + "pc": [ + 2000 + ] + }, + { + "teal": 2066, + "source": "contracts/NFDInstance.algo.ts:394", + "pc": [ + 2001 + ] + }, + { + "teal": 2067, + "source": "contracts/NFDInstance.algo.ts:394", + "pc": [ + 2002, + 2003 + ] + }, + { + "teal": 2068, + "source": "contracts/NFDInstance.algo.ts:394", + "pc": [ + 2004, + 2005, + 2006 + ] + }, + { + "teal": 2073, + "source": "contracts/NFDInstance.algo.ts:402", + "pc": [ + 2007, + 2008 + ] + }, + { + "teal": 2077, + "source": "contracts/NFDInstance.algo.ts:371", + "pc": [ + 2009, + 2010 + ] + }, + { + "teal": 2080, + "source": "contracts/NFDInstance.algo.ts:371", + "pc": [ + 2011, + 2012 + ] + }, + { + "teal": 2081, + "source": "contracts/NFDInstance.algo.ts:371", + "pc": [ + 2013 + ] + }, + { + "teal": 2086, + "source": "contracts/NFDInstance.algo.ts:407", + "pc": [ + 2014, + 2015, + 2016 + ] + }, + { + "teal": 2087, + "source": "contracts/NFDInstance.algo.ts:407", + "pc": [ + 2017 + ] + }, + { + "teal": 2088, + "source": "contracts/NFDInstance.algo.ts:407", + "pc": [ + 2018 + ] + }, + { + "teal": 2089, + "source": "contracts/NFDInstance.algo.ts:407", + "pc": [ + 2019 + ] + }, + { + "teal": 2090, + "source": "contracts/NFDInstance.algo.ts:407", + "pc": [ + 2020 + ] + }, + { + "teal": 2093, + "source": "contracts/NFDInstance.algo.ts:407", + "errorMessage": "argument 0 (reservedFor) for offerForSale must be a address", + "pc": [ + 2021 + ] + }, + { + "teal": 2096, + "source": "contracts/NFDInstance.algo.ts:407", + "pc": [ + 2022, + 2023, + 2024 + ] + }, + { + "teal": 2097, + "source": "contracts/NFDInstance.algo.ts:407", + "pc": [ + 2025 + ] + }, + { + "teal": 2100, + "source": "contracts/NFDInstance.algo.ts:407", + "pc": [ + 2026, + 2027, + 2028 + ] + }, + { + "teal": 2101, + "source": "contracts/NFDInstance.algo.ts:407", + "pc": [ + 2029 + ] + }, + { + "teal": 2102, + "source": "contracts/NFDInstance.algo.ts:407", + "pc": [ + 2030 + ] + }, + { + "teal": 2106, + "source": "contracts/NFDInstance.algo.ts:407", + "pc": [ + 2031, + 2032, + 2033 + ] + }, + { + "teal": 2109, + "source": "contracts/NFDInstance.algo.ts:407", + "pc": [ + 2034 + ] + }, + { + "teal": 2113, + "source": "contracts/NFDInstance.algo.ts:408", + "pc": [ + 2035, + 2036, + 2037 + ] + }, + { + "teal": 2114, + "source": "contracts/NFDInstance.algo.ts:408", + "pc": [ + 2038 + ] + }, + { + "teal": 2117, + "source": "contracts/NFDInstance.algo.ts:408", + "errorMessage": "can't sell if NFD expired", + "pc": [ + 2039 + ] + }, + { + "teal": 2121, + "source": "contracts/NFDInstance.algo.ts:409", + "pc": [ + 2040, + 2041, + 2042 + ] + }, + { + "teal": 2122, + "source": "contracts/NFDInstance.algo.ts:409", + "pc": [ + 2043 + ] + }, + { + "teal": 2123, + "source": "contracts/NFDInstance.algo.ts:409", + "pc": [ + 2044 + ] + }, + { + "teal": 2124, + "source": "contracts/NFDInstance.algo.ts:409", + "pc": [ + 2045 + ] + }, + { + "teal": 2125, + "source": "contracts/NFDInstance.algo.ts:409", + "pc": [ + 2046 + ] + }, + { + "teal": 2126, + "source": "contracts/NFDInstance.algo.ts:409", + "pc": [ + 2047 + ] + }, + { + "teal": 2127, + "source": "contracts/NFDInstance.algo.ts:409", + "pc": [ + 2048 + ] + }, + { + "teal": 2131, + "source": "contracts/NFDInstance.algo.ts:410", + "pc": [ + 2049, + 2050, + 2051 + ] + }, + { + "teal": 2135, + "source": "contracts/NFDInstance.algo.ts:411", + "pc": [ + 2052, + 2053 + ] + }, + { + "teal": 2136, + "source": "contracts/NFDInstance.algo.ts:411", + "pc": [ + 2054, + 2055 + ] + }, + { + "teal": 2137, + "source": "contracts/NFDInstance.algo.ts:411", + "pc": [ + 2056 + ] + }, + { + "teal": 2138, + "source": "contracts/NFDInstance.algo.ts:411", + "pc": [ + 2057, + 2058 + ] + }, + { + "teal": 2143, + "source": "contracts/NFDInstance.algo.ts:416", + "pc": [ + 2059, + 2060 + ] + }, + { + "teal": 2144, + "source": "contracts/NFDInstance.algo.ts:416", + "pc": [ + 2061 + ] + }, + { + "teal": 2145, + "source": "contracts/NFDInstance.algo.ts:416", + "pc": [ + 2062 + ] + }, + { + "teal": 2146, + "source": "contracts/NFDInstance.algo.ts:416", + "pc": [ + 2063, + 2064, + 2065 + ] + }, + { + "teal": 2151, + "source": "contracts/NFDInstance.algo.ts:417", + "pc": [ + 2066, + 2067, + 2068, + 2069, + 2070, + 2071, + 2072, + 2073, + 2074, + 2075, + 2076, + 2077 + ] + }, + { + "teal": 2152, + "source": "contracts/NFDInstance.algo.ts:417", + "pc": [ + 2078, + 2079 + ] + }, + { + "teal": 2153, + "source": "contracts/NFDInstance.algo.ts:417", + "pc": [ + 2080, + 2081, + 2082 + ] + }, + { + "teal": 2154, + "source": "contracts/NFDInstance.algo.ts:417", + "pc": [ + 2083 + ] + }, + { + "teal": 2155, + "source": "contracts/NFDInstance.algo.ts:417", + "pc": [ + 2084 + ] + }, + { + "teal": 2160, + "source": "contracts/NFDInstance.algo.ts:419", + "pc": [ + 2085, + 2086 + ] + }, + { + "teal": 2161, + "source": "contracts/NFDInstance.algo.ts:419", + "pc": [ + 2087 + ] + }, + { + "teal": 2162, + "source": "contracts/NFDInstance.algo.ts:419", + "pc": [ + 2088 + ] + }, + { + "teal": 2165, + "source": "contracts/NFDInstance.algo.ts:419", + "errorMessage": "can only be sold if no user-defined or verified properties remain", + "pc": [ + 2089 + ] + }, + { + "teal": 2170, + "source": "contracts/NFDInstance.algo.ts:422", + "pc": [ + 2090, + 2091 + ] + }, + { + "teal": 2171, + "source": "contracts/NFDInstance.algo.ts:422", + "pc": [ + 2092, + 2093, + 2094 + ] + }, + { + "teal": 2172, + "source": "contracts/NFDInstance.algo.ts:422", + "pc": [ + 2095 + ] + }, + { + "teal": 2173, + "source": "contracts/NFDInstance.algo.ts:422", + "pc": [ + 2096 + ] + }, + { + "teal": 2174, + "source": "contracts/NFDInstance.algo.ts:422", + "pc": [ + 2097 + ] + }, + { + "teal": 2175, + "source": "contracts/NFDInstance.algo.ts:422", + "pc": [ + 2098, + 2099, + 2100 + ] + }, + { + "teal": 2180, + "source": "contracts/NFDInstance.algo.ts:423", + "pc": [ + 2101, + 2102 + ] + }, + { + "teal": 2181, + "source": "contracts/NFDInstance.algo.ts:423", + "pc": [ + 2103, + 2104 + ] + }, + { + "teal": 2182, + "source": "contracts/NFDInstance.algo.ts:423", + "pc": [ + 2105 + ] + }, + { + "teal": 2185, + "source": "contracts/NFDInstance.algo.ts:423", + "errorMessage": "must be sold for at least MIN amount", + "pc": [ + 2106 + ] + }, + { + "teal": 2190, + "source": "contracts/NFDInstance.algo.ts:425", + "pc": [ + 2107 + ] + }, + { + "teal": 2191, + "source": "contracts/NFDInstance.algo.ts:425", + "pc": [ + 2108, + 2109 + ] + }, + { + "teal": 2192, + "source": "contracts/NFDInstance.algo.ts:425", + "pc": [ + 2110 + ] + }, + { + "teal": 2193, + "source": "contracts/NFDInstance.algo.ts:425", + "pc": [ + 2111 + ] + }, + { + "teal": 2197, + "source": "contracts/NFDInstance.algo.ts:427", + "pc": [ + 2112, + 2113 + ] + }, + { + "teal": 2198, + "source": "contracts/NFDInstance.algo.ts:427", + "pc": [ + 2114, + 2115 + ] + }, + { + "teal": 2199, + "source": "contracts/NFDInstance.algo.ts:427", + "pc": [ + 2116 + ] + }, + { + "teal": 2203, + "source": "contracts/NFDInstance.algo.ts:432", + "pc": [ + 2117, + 2118 + ] + }, + { + "teal": 2204, + "source": "contracts/NFDInstance.algo.ts:432", + "pc": [ + 2119, + 2120 + ] + }, + { + "teal": 2205, + "source": "contracts/NFDInstance.algo.ts:432", + "pc": [ + 2121 + ] + }, + { + "teal": 2206, + "source": "contracts/NFDInstance.algo.ts:432", + "pc": [ + 2122 + ] + }, + { + "teal": 2211, + "source": "contracts/NFDInstance.algo.ts:442", + "pc": [ + 2123, + 2124 + ] + }, + { + "teal": 2212, + "source": "contracts/NFDInstance.algo.ts:442", + "pc": [ + 2125, + 2126 + ] + }, + { + "teal": 2213, + "source": "contracts/NFDInstance.algo.ts:442", + "pc": [ + 2127 + ] + }, + { + "teal": 2214, + "source": "contracts/NFDInstance.algo.ts:442", + "pc": [ + 2128 + ] + }, + { + "teal": 2215, + "source": "contracts/NFDInstance.algo.ts:442", + "pc": [ + 2129, + 2130, + 2131 + ] + }, + { + "teal": 2216, + "source": "contracts/NFDInstance.algo.ts:442", + "pc": [ + 2132, + 2133 + ] + }, + { + "teal": 2217, + "source": "contracts/NFDInstance.algo.ts:442", + "pc": [ + 2134 + ] + }, + { + "teal": 2218, + "source": "contracts/NFDInstance.algo.ts:442", + "pc": [ + 2135, + 2136, + 2137 + ] + }, + { + "teal": 2219, + "source": "contracts/NFDInstance.algo.ts:442", + "pc": [ + 2138 + ] + }, + { + "teal": 2220, + "source": "contracts/NFDInstance.algo.ts:442", + "pc": [ + 2139 + ] + }, + { + "teal": 2223, + "source": "contracts/NFDInstance.algo.ts:442", + "pc": [ + 2140, + 2141, + 2142 + ] + }, + { + "teal": 2228, + "source": "contracts/NFDInstance.algo.ts:443", + "pc": [ + 2143, + 2144 + ] + }, + { + "teal": 2229, + "source": "contracts/NFDInstance.algo.ts:443", + "pc": [ + 2145, + 2146 + ] + }, + { + "teal": 2230, + "source": "contracts/NFDInstance.algo.ts:443", + "pc": [ + 2147 + ] + }, + { + "teal": 2231, + "source": "contracts/NFDInstance.algo.ts:442", + "pc": [ + 2148, + 2149, + 2150 + ] + }, + { + "teal": 2237, + "source": "contracts/NFDInstance.algo.ts:445", + "pc": [ + 2151, + 2152 + ] + }, + { + "teal": 2238, + "source": "contracts/NFDInstance.algo.ts:445", + "pc": [ + 2153, + 2154, + 2155 + ] + }, + { + "teal": 2239, + "source": "contracts/NFDInstance.algo.ts:445", + "pc": [ + 2156 + ] + }, + { + "teal": 2240, + "source": "contracts/NFDInstance.algo.ts:445", + "pc": [ + 2157 + ] + }, + { + "teal": 2241, + "source": "contracts/NFDInstance.algo.ts:445", + "pc": [ + 2158 + ] + }, + { + "teal": 2242, + "source": "contracts/NFDInstance.algo.ts:445", + "pc": [ + 2159, + 2160, + 2161 + ] + }, + { + "teal": 2243, + "source": "contracts/NFDInstance.algo.ts:446", + "pc": [ + 2162, + 2163 + ] + }, + { + "teal": 2244, + "source": "contracts/NFDInstance.algo.ts:446", + "pc": [ + 2164, + 2165 + ] + }, + { + "teal": 2245, + "source": "contracts/NFDInstance.algo.ts:446", + "pc": [ + 2166, + 2167, + 2168 + ] + }, + { + "teal": 2246, + "source": "contracts/NFDInstance.algo.ts:446", + "pc": [ + 2169 + ] + }, + { + "teal": 2247, + "source": "contracts/NFDInstance.algo.ts:445", + "pc": [ + 2170 + ] + }, + { + "teal": 2250, + "source": "contracts/NFDInstance.algo.ts:444", + "pc": [ + 2171, + 2172, + 2173 + ] + }, + { + "teal": 2255, + "source": "contracts/NFDInstance.algo.ts:448", + "pc": [ + 2174, + 2175 + ] + }, + { + "teal": 2256, + "source": "contracts/NFDInstance.algo.ts:448", + "pc": [ + 2176, + 2177 + ] + }, + { + "teal": 2257, + "source": "contracts/NFDInstance.algo.ts:448", + "pc": [ + 2178 + ] + }, + { + "teal": 2258, + "source": "contracts/NFDInstance.algo.ts:448", + "pc": [ + 2179 + ] + }, + { + "teal": 2259, + "source": "contracts/NFDInstance.algo.ts:444", + "pc": [ + 2180, + 2181, + 2182 + ] + }, + { + "teal": 2264, + "source": "contracts/NFDInstance.algo.ts:450", + "pc": [ + 2183, + 2184 + ] + }, + { + "teal": 2265, + "source": "contracts/NFDInstance.algo.ts:450", + "pc": [ + 2185 + ] + }, + { + "teal": 2276, + "source": "contracts/NFDInstance.algo.ts:453", + "pc": [ + 2186, + 2187, + 2188, + 2189, + 2190, + 2191 + ] + }, + { + "teal": 2277, + "source": "contracts/NFDInstance.algo.ts:453", + "pc": [ + 2192 + ] + }, + { + "teal": 2278, + "source": "contracts/NFDInstance.algo.ts:453", + "pc": [ + 2193 + ] + }, + { + "teal": 2279, + "source": "contracts/NFDInstance.algo.ts:453", + "pc": [ + 2194, + 2195, + 2196, + 2197 + ] + }, + { + "teal": 2280, + "source": "contracts/NFDInstance.algo.ts:454", + "pc": [ + 2198, + 2199, + 2200 + ] + }, + { + "teal": 2281, + "source": "contracts/NFDInstance.algo.ts:454", + "pc": [ + 2201 + ] + }, + { + "teal": 2282, + "source": "contracts/NFDInstance.algo.ts:454", + "pc": [ + 2202, + 2203, + 2204 + ] + }, + { + "teal": 2283, + "source": "contracts/NFDInstance.algo.ts:455", + "pc": [ + 2205, + 2206 + ] + }, + { + "teal": 2284, + "source": "contracts/NFDInstance.algo.ts:455", + "pc": [ + 2207 + ] + }, + { + "teal": 2285, + "source": "contracts/NFDInstance.algo.ts:455", + "pc": [ + 2208 + ] + }, + { + "teal": 2286, + "source": "contracts/NFDInstance.algo.ts:455", + "pc": [ + 2209 + ] + }, + { + "teal": 2287, + "source": "contracts/NFDInstance.algo.ts:455", + "pc": [ + 2210 + ] + }, + { + "teal": 2288, + "source": "contracts/NFDInstance.algo.ts:455", + "pc": [ + 2211, + 2212, + 2213 + ] + }, + { + "teal": 2289, + "source": "contracts/NFDInstance.algo.ts:455", + "pc": [ + 2214 + ] + }, + { + "teal": 2290, + "source": "contracts/NFDInstance.algo.ts:455", + "pc": [ + 2215 + ] + }, + { + "teal": 2291, + "source": "contracts/NFDInstance.algo.ts:455", + "pc": [ + 2216, + 2217, + 2218 + ] + }, + { + "teal": 2292, + "source": "contracts/NFDInstance.algo.ts:456", + "pc": [ + 2219 + ] + }, + { + "teal": 2293, + "source": "contracts/NFDInstance.algo.ts:456", + "pc": [ + 2220 + ] + }, + { + "teal": 2294, + "source": "contracts/NFDInstance.algo.ts:456", + "pc": [ + 2221, + 2222, + 2223 + ] + }, + { + "teal": 2295, + "source": "contracts/NFDInstance.algo.ts:457", + "pc": [ + 2224, + 2225 + ] + }, + { + "teal": 2296, + "source": "contracts/NFDInstance.algo.ts:457", + "pc": [ + 2226 + ] + }, + { + "teal": 2297, + "source": "contracts/NFDInstance.algo.ts:457", + "pc": [ + 2227, + 2228, + 2229 + ] + }, + { + "teal": 2298, + "source": "contracts/NFDInstance.algo.ts:458", + "pc": [ + 2230, + 2231 + ] + }, + { + "teal": 2299, + "source": "contracts/NFDInstance.algo.ts:458", + "pc": [ + 2232, + 2233, + 2234 + ] + }, + { + "teal": 2300, + "source": "contracts/NFDInstance.algo.ts:453", + "pc": [ + 2235 + ] + }, + { + "teal": 2301, + "source": "contracts/NFDInstance.algo.ts:453", + "pc": [ + 2236 + ] + }, + { + "teal": 2302, + "source": "contracts/NFDInstance.algo.ts:453", + "pc": [ + 2237 + ] + }, + { + "teal": 2303, + "source": "contracts/NFDInstance.algo.ts:453", + "pc": [ + 2238 + ] + }, + { + "teal": 2304, + "source": "contracts/NFDInstance.algo.ts:407", + "pc": [ + 2239 + ] + }, + { + "teal": 2309, + "source": "contracts/NFDInstance.algo.ts:464", + "pc": [ + 2240, + 2241, + 2242 + ] + }, + { + "teal": 2310, + "source": "contracts/NFDInstance.algo.ts:464", + "pc": [ + 2243 + ] + }, + { + "teal": 2311, + "source": "contracts/NFDInstance.algo.ts:464", + "pc": [ + 2244 + ] + }, + { + "teal": 2315, + "source": "contracts/NFDInstance.algo.ts:464", + "pc": [ + 2245, + 2246, + 2247 + ] + }, + { + "teal": 2319, + "source": "contracts/NFDInstance.algo.ts:465", + "pc": [ + 2248, + 2249, + 2250 + ] + }, + { + "teal": 2320, + "source": "contracts/NFDInstance.algo.ts:465", + "pc": [ + 2251 + ] + }, + { + "teal": 2323, + "source": "contracts/NFDInstance.algo.ts:465", + "errorMessage": "can't update fields if NFD expired", + "pc": [ + 2252 + ] + }, + { + "teal": 2327, + "source": "contracts/NFDInstance.algo.ts:466", + "pc": [ + 2253, + 2254, + 2255 + ] + }, + { + "teal": 2328, + "source": "contracts/NFDInstance.algo.ts:466", + "pc": [ + 2256 + ] + }, + { + "teal": 2329, + "source": "contracts/NFDInstance.algo.ts:466", + "pc": [ + 2257 + ] + }, + { + "teal": 2330, + "source": "contracts/NFDInstance.algo.ts:466", + "pc": [ + 2258 + ] + }, + { + "teal": 2331, + "source": "contracts/NFDInstance.algo.ts:466", + "pc": [ + 2259 + ] + }, + { + "teal": 2332, + "source": "contracts/NFDInstance.algo.ts:466", + "pc": [ + 2260 + ] + }, + { + "teal": 2333, + "source": "contracts/NFDInstance.algo.ts:466", + "pc": [ + 2261 + ] + }, + { + "teal": 2337, + "source": "contracts/NFDInstance.algo.ts:467", + "pc": [ + 2262, + 2263, + 2264 + ] + }, + { + "teal": 2340, + "source": "contracts/NFDInstance.algo.ts:467", + "errorMessage": "must be for sale", + "pc": [ + 2265 + ] + }, + { + "teal": 2344, + "source": "contracts/NFDInstance.algo.ts:468", + "pc": [ + 2266, + 2267, + 2268 + ] + }, + { + "teal": 2348, + "source": "contracts/NFDInstance.algo.ts:469", + "pc": [ + 2269, + 2270 + ] + }, + { + "teal": 2349, + "source": "contracts/NFDInstance.algo.ts:469", + "pc": [ + 2271 + ] + }, + { + "teal": 2353, + "source": "contracts/NFDInstance.algo.ts:470", + "pc": [ + 2272, + 2273 + ] + }, + { + "teal": 2354, + "source": "contracts/NFDInstance.algo.ts:470", + "pc": [ + 2274 + ] + }, + { + "teal": 2358, + "source": "contracts/NFDInstance.algo.ts:471", + "pc": [ + 2275 + ] + }, + { + "teal": 2359, + "source": "contracts/NFDInstance.algo.ts:471", + "pc": [ + 2276, + 2277 + ] + }, + { + "teal": 2360, + "source": "contracts/NFDInstance.algo.ts:471", + "pc": [ + 2278 + ] + }, + { + "teal": 2361, + "source": "contracts/NFDInstance.algo.ts:471", + "pc": [ + 2279 + ] + }, + { + "teal": 2365, + "source": "contracts/NFDInstance.algo.ts:473", + "pc": [ + 2280, + 2281 + ] + }, + { + "teal": 2366, + "source": "contracts/NFDInstance.algo.ts:473", + "pc": [ + 2282 + ] + }, + { + "teal": 2367, + "source": "contracts/NFDInstance.algo.ts:473", + "pc": [ + 2283 + ] + }, + { + "teal": 2368, + "source": "contracts/NFDInstance.algo.ts:473", + "pc": [ + 2284, + 2285 + ] + }, + { + "teal": 2369, + "source": "contracts/NFDInstance.algo.ts:473", + "pc": [ + 2286, + 2287, + 2288 + ] + }, + { + "teal": 2370, + "source": "contracts/NFDInstance.algo.ts:473", + "pc": [ + 2289 + ] + }, + { + "teal": 2371, + "source": "contracts/NFDInstance.algo.ts:473", + "pc": [ + 2290, + 2291, + 2292 + ] + }, + { + "teal": 2372, + "source": "contracts/NFDInstance.algo.ts:473", + "pc": [ + 2293, + 2294 + ] + }, + { + "teal": 2373, + "source": "contracts/NFDInstance.algo.ts:473", + "pc": [ + 2295 + ] + }, + { + "teal": 2374, + "source": "contracts/NFDInstance.algo.ts:473", + "pc": [ + 2296 + ] + }, + { + "teal": 2375, + "source": "contracts/NFDInstance.algo.ts:473", + "pc": [ + 2297 + ] + }, + { + "teal": 2376, + "source": "contracts/NFDInstance.algo.ts:473", + "pc": [ + 2298 + ] + }, + { + "teal": 2377, + "source": "contracts/NFDInstance.algo.ts:473", + "pc": [ + 2299, + 2300, + 2301 + ] + }, + { + "teal": 2378, + "source": "contracts/NFDInstance.algo.ts:473", + "pc": [ + 2302 + ] + }, + { + "teal": 2379, + "source": "contracts/NFDInstance.algo.ts:473", + "pc": [ + 2303 + ] + }, + { + "teal": 2380, + "source": "contracts/NFDInstance.algo.ts:473", + "pc": [ + 2304, + 2305, + 2306 + ] + }, + { + "teal": 2381, + "source": "contracts/NFDInstance.algo.ts:473", + "pc": [ + 2307 + ] + }, + { + "teal": 2382, + "source": "contracts/NFDInstance.algo.ts:473", + "pc": [ + 2308 + ] + }, + { + "teal": 2383, + "source": "contracts/NFDInstance.algo.ts:473", + "pc": [ + 2309 + ] + }, + { + "teal": 2384, + "source": "contracts/NFDInstance.algo.ts:473", + "pc": [ + 2310 + ] + }, + { + "teal": 2385, + "source": "contracts/NFDInstance.algo.ts:464", + "pc": [ + 2311 + ] + }, + { + "teal": 2390, + "source": "contracts/NFDInstance.algo.ts:479", + "pc": [ + 2312, + 2313, + 2314 + ] + }, + { + "teal": 2391, + "source": "contracts/NFDInstance.algo.ts:479", + "pc": [ + 2315, + 2316, + 2317 + ] + }, + { + "teal": 2394, + "source": "contracts/NFDInstance.algo.ts:479", + "pc": [ + 2318, + 2319, + 2320 + ] + }, + { + "teal": 2395, + "source": "contracts/NFDInstance.algo.ts:479", + "pc": [ + 2321 + ] + }, + { + "teal": 2398, + "source": "contracts/NFDInstance.algo.ts:479", + "pc": [ + 2322, + 2323, + 2324 + ] + }, + { + "teal": 2399, + "source": "contracts/NFDInstance.algo.ts:479", + "pc": [ + 2325 + ] + }, + { + "teal": 2400, + "source": "contracts/NFDInstance.algo.ts:479", + "pc": [ + 2326 + ] + }, + { + "teal": 2404, + "source": "contracts/NFDInstance.algo.ts:479", + "pc": [ + 2327, + 2328, + 2329 + ] + }, + { + "teal": 2414, + "source": "contracts/NFDInstance.algo.ts:480", + "pc": [ + 2330, + 2331, + 2332, + 2333, + 2334, + 2335 + ] + }, + { + "teal": 2415, + "source": "contracts/NFDInstance.algo.ts:480", + "pc": [ + 2336 + ] + }, + { + "teal": 2416, + "source": "contracts/NFDInstance.algo.ts:480", + "pc": [ + 2337 + ] + }, + { + "teal": 2417, + "source": "contracts/NFDInstance.algo.ts:480", + "pc": [ + 2338, + 2339, + 2340, + 2341 + ] + }, + { + "teal": 2418, + "source": "contracts/NFDInstance.algo.ts:481", + "pc": [ + 2342, + 2343, + 2344 + ] + }, + { + "teal": 2419, + "source": "contracts/NFDInstance.algo.ts:481", + "pc": [ + 2345 + ] + }, + { + "teal": 2420, + "source": "contracts/NFDInstance.algo.ts:481", + "pc": [ + 2346, + 2347, + 2348 + ] + }, + { + "teal": 2421, + "source": "contracts/NFDInstance.algo.ts:482", + "pc": [ + 2349, + 2350 + ] + }, + { + "teal": 2422, + "source": "contracts/NFDInstance.algo.ts:482", + "pc": [ + 2351 + ] + }, + { + "teal": 2423, + "source": "contracts/NFDInstance.algo.ts:482", + "pc": [ + 2352 + ] + }, + { + "teal": 2424, + "source": "contracts/NFDInstance.algo.ts:482", + "pc": [ + 2353 + ] + }, + { + "teal": 2425, + "source": "contracts/NFDInstance.algo.ts:482", + "pc": [ + 2354 + ] + }, + { + "teal": 2426, + "source": "contracts/NFDInstance.algo.ts:482", + "pc": [ + 2355, + 2356, + 2357 + ] + }, + { + "teal": 2427, + "source": "contracts/NFDInstance.algo.ts:482", + "pc": [ + 2358 + ] + }, + { + "teal": 2428, + "source": "contracts/NFDInstance.algo.ts:482", + "pc": [ + 2359 + ] + }, + { + "teal": 2429, + "source": "contracts/NFDInstance.algo.ts:482", + "pc": [ + 2360, + 2361, + 2362 + ] + }, + { + "teal": 2430, + "source": "contracts/NFDInstance.algo.ts:483", + "pc": [ + 2363, + 2364 + ] + }, + { + "teal": 2431, + "source": "contracts/NFDInstance.algo.ts:483", + "pc": [ + 2365, + 2366, + 2367 + ] + }, + { + "teal": 2432, + "source": "contracts/NFDInstance.algo.ts:484", + "pc": [ + 2368, + 2369 + ] + }, + { + "teal": 2433, + "source": "contracts/NFDInstance.algo.ts:484", + "pc": [ + 2370 + ] + }, + { + "teal": 2434, + "source": "contracts/NFDInstance.algo.ts:484", + "pc": [ + 2371, + 2372, + 2373 + ] + }, + { + "teal": 2435, + "source": "contracts/NFDInstance.algo.ts:485", + "pc": [ + 2374, + 2375 + ] + }, + { + "teal": 2436, + "source": "contracts/NFDInstance.algo.ts:485", + "pc": [ + 2376 + ] + }, + { + "teal": 2437, + "source": "contracts/NFDInstance.algo.ts:485", + "pc": [ + 2377 + ] + }, + { + "teal": 2438, + "source": "contracts/NFDInstance.algo.ts:485", + "pc": [ + 2378 + ] + }, + { + "teal": 2439, + "source": "contracts/NFDInstance.algo.ts:485", + "pc": [ + 2379, + 2380, + 2381 + ] + }, + { + "teal": 2440, + "source": "contracts/NFDInstance.algo.ts:485", + "pc": [ + 2382 + ] + }, + { + "teal": 2441, + "source": "contracts/NFDInstance.algo.ts:485", + "pc": [ + 2383 + ] + }, + { + "teal": 2442, + "source": "contracts/NFDInstance.algo.ts:485", + "pc": [ + 2384, + 2385, + 2386 + ] + }, + { + "teal": 2443, + "source": "contracts/NFDInstance.algo.ts:480", + "pc": [ + 2387 + ] + }, + { + "teal": 2444, + "source": "contracts/NFDInstance.algo.ts:480", + "pc": [ + 2388 + ] + }, + { + "teal": 2445, + "source": "contracts/NFDInstance.algo.ts:480", + "pc": [ + 2389 + ] + }, + { + "teal": 2446, + "source": "contracts/NFDInstance.algo.ts:480", + "pc": [ + 2390 + ] + }, + { + "teal": 2447, + "source": "contracts/NFDInstance.algo.ts:479", + "pc": [ + 2391 + ] + }, + { + "teal": 2452, + "source": "contracts/NFDInstance.algo.ts:491", + "pc": [ + 2392, + 2393 + ] + }, + { + "teal": 2455, + "source": "contracts/NFDInstance.algo.ts:491", + "pc": [ + 2394, + 2395, + 2396 + ] + }, + { + "teal": 2456, + "source": "contracts/NFDInstance.algo.ts:491", + "pc": [ + 2397 + ] + }, + { + "teal": 2459, + "source": "contracts/NFDInstance.algo.ts:491", + "pc": [ + 2398, + 2399, + 2400 + ] + }, + { + "teal": 2460, + "source": "contracts/NFDInstance.algo.ts:491", + "pc": [ + 2401 + ] + }, + { + "teal": 2463, + "source": "contracts/NFDInstance.algo.ts:491", + "pc": [ + 2402, + 2403, + 2404 + ] + }, + { + "teal": 2464, + "source": "contracts/NFDInstance.algo.ts:491", + "pc": [ + 2405 + ] + }, + { + "teal": 2465, + "source": "contracts/NFDInstance.algo.ts:491", + "pc": [ + 2406 + ] + }, + { + "teal": 2466, + "source": "contracts/NFDInstance.algo.ts:491", + "pc": [ + 2407 + ] + }, + { + "teal": 2467, + "source": "contracts/NFDInstance.algo.ts:491", + "pc": [ + 2408 + ] + }, + { + "teal": 2471, + "source": "contracts/NFDInstance.algo.ts:491", + "pc": [ + 2409, + 2410, + 2411 + ] + }, + { + "teal": 2474, + "source": "contracts/NFDInstance.algo.ts:491", + "pc": [ + 2412 + ] + }, + { + "teal": 2475, + "source": "contracts/NFDInstance.algo.ts:491", + "pc": [ + 2413, + 2414 + ] + }, + { + "teal": 2479, + "source": "contracts/NFDInstance.algo.ts:492", + "pc": [ + 2415, + 2416 + ] + }, + { + "teal": 2480, + "source": "contracts/NFDInstance.algo.ts:492", + "pc": [ + 2417, + 2418 + ] + }, + { + "teal": 2481, + "source": "contracts/NFDInstance.algo.ts:492", + "pc": [ + 2419 + ] + }, + { + "teal": 2484, + "source": "contracts/NFDInstance.algo.ts:492", + "errorMessage": "caller must be NFD registry!", + "pc": [ + 2420 + ] + }, + { + "teal": 2488, + "source": "contracts/NFDInstance.algo.ts:493", + "pc": [ + 2421 + ] + }, + { + "teal": 2489, + "source": "contracts/NFDInstance.algo.ts:493", + "pc": [ + 2422, + 2423, + 2424 + ] + }, + { + "teal": 2490, + "source": "contracts/NFDInstance.algo.ts:493", + "pc": [ + 2425, + 2426 + ] + }, + { + "teal": 2491, + "source": "contracts/NFDInstance.algo.ts:493", + "pc": [ + 2427 + ] + }, + { + "teal": 2492, + "source": "contracts/NFDInstance.algo.ts:493", + "pc": [ + 2428 + ] + }, + { + "teal": 2496, + "source": "contracts/NFDInstance.algo.ts:495", + "pc": [ + 2429, + 2430 + ] + }, + { + "teal": 2497, + "source": "contracts/NFDInstance.algo.ts:495", + "pc": [ + 2431, + 2432, + 2433 + ] + }, + { + "teal": 2498, + "source": "contracts/NFDInstance.algo.ts:495", + "pc": [ + 2434, + 2435 + ] + }, + { + "teal": 2502, + "source": "contracts/NFDInstance.algo.ts:498", + "pc": [ + 2436, + 2437 + ] + }, + { + "teal": 2503, + "source": "contracts/NFDInstance.algo.ts:498", + "pc": [ + 2438, + 2439 + ] + }, + { + "teal": 2508, + "source": "contracts/NFDInstance.algo.ts:503", + "pc": [ + 2440, + 2441 + ] + }, + { + "teal": 2509, + "source": "contracts/NFDInstance.algo.ts:503", + "pc": [ + 2442, + 2443, + 2444 + ] + }, + { + "teal": 2510, + "source": "contracts/NFDInstance.algo.ts:503", + "pc": [ + 2445 + ] + }, + { + "teal": 2511, + "source": "contracts/NFDInstance.algo.ts:503", + "pc": [ + 2446 + ] + }, + { + "teal": 2512, + "source": "contracts/NFDInstance.algo.ts:503", + "pc": [ + 2447 + ] + }, + { + "teal": 2513, + "source": "contracts/NFDInstance.algo.ts:503", + "pc": [ + 2448, + 2449, + 2450 + ] + }, + { + "teal": 2518, + "source": "contracts/NFDInstance.algo.ts:507", + "pc": [ + 2451, + 2452 + ] + }, + { + "teal": 2519, + "source": "contracts/NFDInstance.algo.ts:507", + "pc": [ + 2453, + 2454 + ] + }, + { + "teal": 2523, + "source": "contracts/NFDInstance.algo.ts:509", + "pc": [ + 2455, + 2456 + ] + }, + { + "teal": 2524, + "source": "contracts/NFDInstance.algo.ts:509", + "pc": [ + 2457, + 2458 + ] + }, + { + "teal": 2525, + "source": "contracts/NFDInstance.algo.ts:509", + "pc": [ + 2459 + ] + }, + { + "teal": 2526, + "source": "contracts/NFDInstance.algo.ts:509", + "pc": [ + 2460, + 2461 + ] + }, + { + "teal": 2527, + "source": "contracts/NFDInstance.algo.ts:509", + "pc": [ + 2462 + ] + }, + { + "teal": 2528, + "source": "contracts/NFDInstance.algo.ts:509", + "pc": [ + 2463, + 2464 + ] + }, + { + "teal": 2532, + "source": "contracts/NFDInstance.algo.ts:511", + "pc": [ + 2465, + 2466 + ] + }, + { + "teal": 2533, + "source": "contracts/NFDInstance.algo.ts:511", + "pc": [ + 2467, + 2468 + ] + }, + { + "teal": 2534, + "source": "contracts/NFDInstance.algo.ts:511", + "pc": [ + 2469 + ] + }, + { + "teal": 2535, + "source": "contracts/NFDInstance.algo.ts:511", + "pc": [ + 2470, + 2471 + ] + }, + { + "teal": 2536, + "source": "contracts/NFDInstance.algo.ts:511", + "pc": [ + 2472 + ] + }, + { + "teal": 2537, + "source": "contracts/NFDInstance.algo.ts:511", + "pc": [ + 2473, + 2474 + ] + }, + { + "teal": 2542, + "source": "contracts/NFDInstance.algo.ts:512", + "pc": [ + 2475, + 2476 + ] + }, + { + "teal": 2543, + "source": "contracts/NFDInstance.algo.ts:512", + "pc": [ + 2477, + 2478 + ] + }, + { + "teal": 2544, + "source": "contracts/NFDInstance.algo.ts:512", + "pc": [ + 2479 + ] + }, + { + "teal": 2545, + "source": "contracts/NFDInstance.algo.ts:512", + "pc": [ + 2480, + 2481, + 2482 + ] + }, + { + "teal": 2550, + "source": "contracts/NFDInstance.algo.ts:513", + "pc": [ + 2483, + 2484 + ] + }, + { + "teal": 2551, + "source": "contracts/NFDInstance.algo.ts:513", + "pc": [ + 2485, + 2486 + ] + }, + { + "teal": 2557, + "source": "contracts/NFDInstance.algo.ts:515", + "pc": [ + 2487, + 2488 + ] + }, + { + "teal": 2558, + "source": "contracts/NFDInstance.algo.ts:515", + "pc": [ + 2489, + 2490 + ] + }, + { + "teal": 2559, + "source": "contracts/NFDInstance.algo.ts:515", + "pc": [ + 2491 + ] + }, + { + "teal": 2560, + "source": "contracts/NFDInstance.algo.ts:515", + "pc": [ + 2492, + 2493, + 2494 + ] + }, + { + "teal": 2565, + "source": "contracts/NFDInstance.algo.ts:516", + "pc": [ + 2495, + 2496 + ] + }, + { + "teal": 2566, + "source": "contracts/NFDInstance.algo.ts:516", + "pc": [ + 2497, + 2498 + ] + }, + { + "teal": 2571, + "source": "contracts/NFDInstance.algo.ts:519", + "pc": [ + 2499, + 2500 + ] + }, + { + "teal": 2572, + "source": "contracts/NFDInstance.algo.ts:519", + "pc": [ + 2501, + 2502 + ] + }, + { + "teal": 2573, + "source": "contracts/NFDInstance.algo.ts:519", + "pc": [ + 2503 + ] + }, + { + "teal": 2574, + "source": "contracts/NFDInstance.algo.ts:519", + "pc": [ + 2504, + 2505 + ] + }, + { + "teal": 2575, + "source": "contracts/NFDInstance.algo.ts:503", + "pc": [ + 2506, + 2507, + 2508 + ] + }, + { + "teal": 2580, + "source": "contracts/NFDInstance.algo.ts:522", + "pc": [ + 2509 + ] + }, + { + "teal": 2581, + "source": "contracts/NFDInstance.algo.ts:522", + "pc": [ + 2510, + 2511 + ] + }, + { + "teal": 2586, + "source": "contracts/NFDInstance.algo.ts:526", + "pc": [ + 2512 + ] + }, + { + "teal": 2587, + "source": "contracts/NFDInstance.algo.ts:526", + "pc": [ + 2513, + 2514 + ] + }, + { + "teal": 2592, + "source": "contracts/NFDInstance.algo.ts:527", + "pc": [ + 2515, + 2516 + ] + }, + { + "teal": 2593, + "source": "contracts/NFDInstance.algo.ts:527", + "pc": [ + 2517, + 2518, + 2519 + ] + }, + { + "teal": 2594, + "source": "contracts/NFDInstance.algo.ts:527", + "pc": [ + 2520 + ] + }, + { + "teal": 2595, + "source": "contracts/NFDInstance.algo.ts:527", + "pc": [ + 2521 + ] + }, + { + "teal": 2596, + "source": "contracts/NFDInstance.algo.ts:527", + "pc": [ + 2522, + 2523, + 2524 + ] + }, + { + "teal": 2601, + "source": "contracts/NFDInstance.algo.ts:529", + "pc": [ + 2525 + ] + }, + { + "teal": 2602, + "source": "contracts/NFDInstance.algo.ts:529", + "pc": [ + 2526, + 2527 + ] + }, + { + "teal": 2603, + "source": "contracts/NFDInstance.algo.ts:527", + "pc": [ + 2528, + 2529, + 2530 + ] + }, + { + "teal": 2608, + "source": "contracts/NFDInstance.algo.ts:533", + "pc": [ + 2531, + 2532 + ] + }, + { + "teal": 2609, + "source": "contracts/NFDInstance.algo.ts:533", + "pc": [ + 2533, + 2534 + ] + }, + { + "teal": 2610, + "source": "contracts/NFDInstance.algo.ts:533", + "pc": [ + 2535, + 2536, + 2537 + ] + }, + { + "teal": 2611, + "source": "contracts/NFDInstance.algo.ts:533", + "pc": [ + 2538 + ] + }, + { + "teal": 2612, + "source": "contracts/NFDInstance.algo.ts:533", + "pc": [ + 2539, + 2540 + ] + }, + { + "teal": 2613, + "source": "contracts/NFDInstance.algo.ts:533", + "pc": [ + 2541 + ] + }, + { + "teal": 2614, + "source": "contracts/NFDInstance.algo.ts:533", + "pc": [ + 2542, + 2543 + ] + }, + { + "teal": 2619, + "source": "contracts/NFDInstance.algo.ts:536", + "pc": [ + 2544, + 2545 + ] + }, + { + "teal": 2620, + "source": "contracts/NFDInstance.algo.ts:536", + "pc": [ + 2546, + 2547 + ] + }, + { + "teal": 2624, + "source": "contracts/NFDInstance.algo.ts:537", + "pc": [ + 2548, + 2549 + ] + }, + { + "teal": 2625, + "source": "contracts/NFDInstance.algo.ts:537", + "pc": [ + 2550, + 2551 + ] + }, + { + "teal": 2630, + "source": "contracts/NFDInstance.algo.ts:539", + "pc": [ + 2552, + 2553, + 2554 + ] + }, + { + "teal": 2631, + "source": "contracts/NFDInstance.algo.ts:539", + "pc": [ + 2555, + 2556 + ] + }, + { + "teal": 2632, + "source": "contracts/NFDInstance.algo.ts:539", + "pc": [ + 2557 + ] + }, + { + "teal": 2633, + "source": "contracts/NFDInstance.algo.ts:539", + "pc": [ + 2558 + ] + }, + { + "teal": 2634, + "source": "contracts/NFDInstance.algo.ts:539", + "pc": [ + 2559 + ] + }, + { + "teal": 2635, + "source": "contracts/NFDInstance.algo.ts:539", + "pc": [ + 2560, + 2561, + 2562 + ] + }, + { + "teal": 2640, + "source": "contracts/NFDInstance.algo.ts:540", + "pc": [ + 2563, + 2564 + ] + }, + { + "teal": 2641, + "source": "contracts/NFDInstance.algo.ts:540", + "pc": [ + 2565 + ] + }, + { + "teal": 2642, + "source": "contracts/NFDInstance.algo.ts:540", + "pc": [ + 2566, + 2567 + ] + }, + { + "teal": 2648, + "source": "contracts/NFDInstance.algo.ts:542", + "pc": [ + 2568, + 2569, + 2570 + ] + }, + { + "teal": 2649, + "source": "contracts/NFDInstance.algo.ts:542", + "pc": [ + 2571, + 2572 + ] + }, + { + "teal": 2650, + "source": "contracts/NFDInstance.algo.ts:542", + "pc": [ + 2573 + ] + }, + { + "teal": 2651, + "source": "contracts/NFDInstance.algo.ts:542", + "pc": [ + 2574 + ] + }, + { + "teal": 2652, + "source": "contracts/NFDInstance.algo.ts:542", + "pc": [ + 2575 + ] + }, + { + "teal": 2653, + "source": "contracts/NFDInstance.algo.ts:542", + "pc": [ + 2576, + 2577, + 2578 + ] + }, + { + "teal": 2658, + "source": "contracts/NFDInstance.algo.ts:543", + "pc": [ + 2579, + 2580 + ] + }, + { + "teal": 2659, + "source": "contracts/NFDInstance.algo.ts:543", + "pc": [ + 2581 + ] + }, + { + "teal": 2660, + "source": "contracts/NFDInstance.algo.ts:543", + "pc": [ + 2582, + 2583 + ] + }, + { + "teal": 2671, + "source": "contracts/NFDInstance.algo.ts:552", + "pc": [ + 2584, + 2585 + ] + }, + { + "teal": 2672, + "source": "contracts/NFDInstance.algo.ts:552", + "pc": [ + 2586 + ] + }, + { + "teal": 2673, + "source": "contracts/NFDInstance.algo.ts:551", + "pc": [ + 2587, + 2588 + ] + }, + { + "teal": 2674, + "source": "contracts/NFDInstance.algo.ts:550", + "pc": [ + 2589, + 2590 + ] + }, + { + "teal": 2675, + "source": "contracts/NFDInstance.algo.ts:549", + "pc": [ + 2591, + 2592 + ] + }, + { + "teal": 2676, + "source": "contracts/NFDInstance.algo.ts:549", + "pc": [ + 2593 + ] + }, + { + "teal": 2677, + "source": "contracts/NFDInstance.algo.ts:548", + "pc": [ + 2594, + 2595 + ] + }, + { + "teal": 2678, + "source": "contracts/NFDInstance.algo.ts:547", + "pc": [ + 2596, + 2597, + 2598 + ] + }, + { + "teal": 2682, + "source": "contracts/NFDInstance.algo.ts:556", + "pc": [ + 2599, + 2600 + ] + }, + { + "teal": 2683, + "source": "contracts/NFDInstance.algo.ts:556", + "pc": [ + 2601 + ] + }, + { + "teal": 2684, + "source": "contracts/NFDInstance.algo.ts:556", + "pc": [ + 2602 + ] + }, + { + "teal": 2685, + "source": "contracts/NFDInstance.algo.ts:556", + "pc": [ + 2603 + ] + }, + { + "teal": 2689, + "source": "contracts/NFDInstance.algo.ts:558", + "pc": [ + 2604, + 2605 + ] + }, + { + "teal": 2690, + "source": "contracts/NFDInstance.algo.ts:558", + "pc": [ + 2606, + 2607 + ] + }, + { + "teal": 2691, + "source": "contracts/NFDInstance.algo.ts:558", + "pc": [ + 2608 + ] + }, + { + "teal": 2692, + "source": "contracts/NFDInstance.algo.ts:558", + "pc": [ + 2609 + ] + }, + { + "teal": 2696, + "source": "contracts/NFDInstance.algo.ts:559", + "pc": [ + 2610 + ] + }, + { + "teal": 2697, + "source": "contracts/NFDInstance.algo.ts:559", + "pc": [ + 2611 + ] + }, + { + "teal": 2701, + "source": "contracts/NFDInstance.algo.ts:560", + "pc": [ + 2612, + 2613 + ] + }, + { + "teal": 2702, + "source": "contracts/NFDInstance.algo.ts:560", + "pc": [ + 2614 + ] + }, + { + "teal": 2706, + "source": "contracts/NFDInstance.algo.ts:562", + "pc": [ + 2615, + 2616 + ] + }, + { + "teal": 2707, + "source": "contracts/NFDInstance.algo.ts:562", + "pc": [ + 2617 + ] + }, + { + "teal": 2717, + "source": "contracts/NFDInstance.algo.ts:565", + "pc": [ + 2618, + 2619 + ] + }, + { + "teal": 2718, + "source": "contracts/NFDInstance.algo.ts:565", + "pc": [ + 2620, + 2621 + ] + }, + { + "teal": 2719, + "source": "contracts/NFDInstance.algo.ts:565", + "pc": [ + 2622 + ] + }, + { + "teal": 2720, + "source": "contracts/NFDInstance.algo.ts:565", + "pc": [ + 2623 + ] + }, + { + "teal": 2721, + "source": "contracts/NFDInstance.algo.ts:566", + "pc": [ + 2624, + 2625 + ] + }, + { + "teal": 2722, + "source": "contracts/NFDInstance.algo.ts:566", + "pc": [ + 2626 + ] + }, + { + "teal": 2723, + "source": "contracts/NFDInstance.algo.ts:567", + "pc": [ + 2627, + 2628 + ] + }, + { + "teal": 2724, + "source": "contracts/NFDInstance.algo.ts:567", + "pc": [ + 2629 + ] + }, + { + "teal": 2725, + "source": "contracts/NFDInstance.algo.ts:567", + "pc": [ + 2630 + ] + }, + { + "teal": 2726, + "source": "contracts/NFDInstance.algo.ts:568", + "pc": [ + 2631, + 2632 + ] + }, + { + "teal": 2727, + "source": "contracts/NFDInstance.algo.ts:568", + "pc": [ + 2633 + ] + }, + { + "teal": 2728, + "source": "contracts/NFDInstance.algo.ts:569", + "pc": [ + 2634, + 2635 + ] + }, + { + "teal": 2729, + "source": "contracts/NFDInstance.algo.ts:569", + "pc": [ + 2636 + ] + }, + { + "teal": 2730, + "source": "contracts/NFDInstance.algo.ts:569", + "pc": [ + 2637 + ] + }, + { + "teal": 2733, + "source": "contracts/NFDInstance.algo.ts:491", + "pc": [ + 2638, + 2639 + ] + }, + { + "teal": 2736, + "source": "contracts/NFDInstance.algo.ts:491", + "pc": [ + 2640, + 2641 + ] + }, + { + "teal": 2737, + "source": "contracts/NFDInstance.algo.ts:491", + "pc": [ + 2642 + ] + }, + { + "teal": 2742, + "source": "contracts/NFDInstance.algo.ts:573", + "pc": [ + 2643, + 2644 + ] + }, + { + "teal": 2743, + "source": "contracts/NFDInstance.algo.ts:573", + "pc": [ + 2645 + ] + }, + { + "teal": 2744, + "source": "contracts/NFDInstance.algo.ts:573", + "pc": [ + 2646 + ] + }, + { + "teal": 2745, + "source": "contracts/NFDInstance.algo.ts:573", + "pc": [ + 2647 + ] + }, + { + "teal": 2746, + "source": "contracts/NFDInstance.algo.ts:573", + "pc": [ + 2648, + 2649 + ] + }, + { + "teal": 2747, + "source": "contracts/NFDInstance.algo.ts:573", + "pc": [ + 2650 + ] + }, + { + "teal": 2748, + "source": "contracts/NFDInstance.algo.ts:573", + "pc": [ + 2651 + ] + }, + { + "teal": 2751, + "source": "contracts/NFDInstance.algo.ts:573", + "errorMessage": "argument 0 (payment) for purchase must be a pay transaction", + "pc": [ + 2652 + ] + }, + { + "teal": 2754, + "source": "contracts/NFDInstance.algo.ts:573", + "pc": [ + 2653, + 2654, + 2655 + ] + }, + { + "teal": 2755, + "source": "contracts/NFDInstance.algo.ts:573", + "pc": [ + 2656 + ] + }, + { + "teal": 2756, + "source": "contracts/NFDInstance.algo.ts:573", + "pc": [ + 2657 + ] + }, + { + "teal": 2760, + "source": "contracts/NFDInstance.algo.ts:573", + "pc": [ + 2658, + 2659, + 2660 + ] + }, + { + "teal": 2763, + "source": "contracts/NFDInstance.algo.ts:573", + "pc": [ + 2661 + ] + }, + { + "teal": 2764, + "source": "contracts/NFDInstance.algo.ts:573", + "pc": [ + 2662, + 2663 + ] + }, + { + "teal": 2768, + "source": "contracts/NFDInstance.algo.ts:574", + "pc": [ + 2664, + 2665, + 2666 + ] + }, + { + "teal": 2769, + "source": "contracts/NFDInstance.algo.ts:574", + "pc": [ + 2667 + ] + }, + { + "teal": 2770, + "source": "contracts/NFDInstance.algo.ts:574", + "pc": [ + 2668 + ] + }, + { + "teal": 2771, + "source": "contracts/NFDInstance.algo.ts:574", + "pc": [ + 2669 + ] + }, + { + "teal": 2772, + "source": "contracts/NFDInstance.algo.ts:574", + "pc": [ + 2670 + ] + }, + { + "teal": 2773, + "source": "contracts/NFDInstance.algo.ts:574", + "pc": [ + 2671 + ] + }, + { + "teal": 2774, + "source": "contracts/NFDInstance.algo.ts:574", + "pc": [ + 2672 + ] + }, + { + "teal": 2778, + "source": "contracts/NFDInstance.algo.ts:575", + "pc": [ + 2673, + 2674, + 2675 + ] + }, + { + "teal": 2779, + "source": "contracts/NFDInstance.algo.ts:575", + "pc": [ + 2676 + ] + }, + { + "teal": 2782, + "source": "contracts/NFDInstance.algo.ts:575", + "errorMessage": "can't be expired", + "pc": [ + 2677 + ] + }, + { + "teal": 2786, + "source": "contracts/NFDInstance.algo.ts:576", + "pc": [ + 2678, + 2679, + 2680 + ] + }, + { + "teal": 2789, + "source": "contracts/NFDInstance.algo.ts:576", + "errorMessage": "must be for sale", + "pc": [ + 2681 + ] + }, + { + "teal": 2793, + "source": "contracts/NFDInstance.algo.ts:577", + "pc": [ + 2682, + 2683 + ] + }, + { + "teal": 2794, + "source": "contracts/NFDInstance.algo.ts:577", + "pc": [ + 2684, + 2685, + 2686 + ] + }, + { + "teal": 2795, + "source": "contracts/NFDInstance.algo.ts:577", + "pc": [ + 2687, + 2688 + ] + }, + { + "teal": 2799, + "source": "contracts/NFDInstance.algo.ts:578", + "pc": [ + 2689, + 2690 + ] + }, + { + "teal": 2800, + "source": "contracts/NFDInstance.algo.ts:578", + "pc": [ + 2691, + 2692, + 2693 + ] + }, + { + "teal": 2801, + "source": "contracts/NFDInstance.algo.ts:578", + "pc": [ + 2694, + 2695 + ] + }, + { + "teal": 2805, + "source": "contracts/NFDInstance.algo.ts:579", + "pc": [ + 2696, + 2697 + ] + }, + { + "teal": 2806, + "source": "contracts/NFDInstance.algo.ts:579", + "pc": [ + 2698, + 2699 + ] + }, + { + "teal": 2807, + "source": "contracts/NFDInstance.algo.ts:579", + "pc": [ + 2700, + 2701 + ] + }, + { + "teal": 2811, + "source": "contracts/NFDInstance.algo.ts:580", + "pc": [ + 2702, + 2703 + ] + }, + { + "teal": 2812, + "source": "contracts/NFDInstance.algo.ts:580", + "pc": [ + 2704, + 2705 + ] + }, + { + "teal": 2816, + "source": "contracts/NFDInstance.algo.ts:581", + "pc": [ + 2706, + 2707, + 2708, + 2709, + 2710, + 2711, + 2712, + 2713, + 2714, + 2715, + 2716, + 2717, + 2718 + ] + }, + { + "teal": 2817, + "source": "contracts/NFDInstance.algo.ts:581", + "pc": [ + 2719, + 2720 + ] + }, + { + "teal": 2818, + "source": "contracts/NFDInstance.algo.ts:581", + "pc": [ + 2721, + 2722, + 2723 + ] + }, + { + "teal": 2819, + "source": "contracts/NFDInstance.algo.ts:581", + "pc": [ + 2724 + ] + }, + { + "teal": 2820, + "source": "contracts/NFDInstance.algo.ts:581", + "pc": [ + 2725 + ] + }, + { + "teal": 2824, + "source": "contracts/NFDInstance.algo.ts:583", + "pc": [ + 2726, + 2727 + ] + }, + { + "teal": 2825, + "source": "contracts/NFDInstance.algo.ts:583", + "pc": [ + 2728, + 2729 + ] + }, + { + "teal": 2826, + "source": "contracts/NFDInstance.algo.ts:583", + "pc": [ + 2730, + 2731 + ] + }, + { + "teal": 2827, + "source": "contracts/NFDInstance.algo.ts:583", + "pc": [ + 2732 + ] + }, + { + "teal": 2830, + "source": "contracts/NFDInstance.algo.ts:583", + "errorMessage": "payment sender must be same as purchase caller", + "pc": [ + 2733 + ] + }, + { + "teal": 2835, + "source": "contracts/NFDInstance.algo.ts:585", + "pc": [ + 2734, + 2735 + ] + }, + { + "teal": 2836, + "source": "contracts/NFDInstance.algo.ts:585", + "pc": [ + 2736 + ] + }, + { + "teal": 2837, + "source": "contracts/NFDInstance.algo.ts:585", + "pc": [ + 2737 + ] + }, + { + "teal": 2838, + "source": "contracts/NFDInstance.algo.ts:585", + "pc": [ + 2738 + ] + }, + { + "teal": 2839, + "source": "contracts/NFDInstance.algo.ts:585", + "pc": [ + 2739, + 2740, + 2741 + ] + }, + { + "teal": 2847, + "source": "contracts/NFDInstance.algo.ts:587", + "pc": [ + 2742, + 2743 + ] + }, + { + "teal": 2848, + "source": "contracts/NFDInstance.algo.ts:587", + "pc": [ + 2744, + 2745 + ] + }, + { + "teal": 2849, + "source": "contracts/NFDInstance.algo.ts:587", + "pc": [ + 2746, + 2747 + ] + }, + { + "teal": 2850, + "source": "contracts/NFDInstance.algo.ts:587", + "pc": [ + 2748 + ] + }, + { + "teal": 2853, + "source": "contracts/NFDInstance.algo.ts:586", + "errorMessage": "Reserved owner set, but sender isn't the reserved address", + "pc": [ + 2749 + ] + }, + { + "teal": 2858, + "source": "contracts/NFDInstance.algo.ts:594", + "pc": [ + 2750, + 2751 + ] + }, + { + "teal": 2859, + "source": "contracts/NFDInstance.algo.ts:594", + "pc": [ + 2752, + 2753 + ] + }, + { + "teal": 2860, + "source": "contracts/NFDInstance.algo.ts:594", + "pc": [ + 2754, + 2755 + ] + }, + { + "teal": 2865, + "source": "contracts/NFDInstance.algo.ts:599", + "pc": [ + 2756, + 2757 + ] + }, + { + "teal": 2866, + "source": "contracts/NFDInstance.algo.ts:599", + "pc": [ + 2758, + 2759, + 2760 + ] + }, + { + "teal": 2867, + "source": "contracts/NFDInstance.algo.ts:599", + "pc": [ + 2761, + 2762 + ] + }, + { + "teal": 2868, + "source": "contracts/NFDInstance.algo.ts:599", + "pc": [ + 2763, + 2764 + ] + }, + { + "teal": 2869, + "source": "contracts/NFDInstance.algo.ts:599", + "pc": [ + 2765 + ] + }, + { + "teal": 2870, + "source": "contracts/NFDInstance.algo.ts:599", + "pc": [ + 2766, + 2767, + 2768 + ] + }, + { + "teal": 2875, + "source": "contracts/NFDInstance.algo.ts:600", + "pc": [ + 2769, + 2770 + ] + }, + { + "teal": 2876, + "source": "contracts/NFDInstance.algo.ts:600", + "pc": [ + 2771, + 2772 + ] + }, + { + "teal": 2877, + "source": "contracts/NFDInstance.algo.ts:600", + "pc": [ + 2773, + 2774, + 2775 + ] + }, + { + "teal": 2878, + "source": "contracts/NFDInstance.algo.ts:600", + "pc": [ + 2776 + ] + }, + { + "teal": 2879, + "source": "contracts/NFDInstance.algo.ts:600", + "pc": [ + 2777, + 2778 + ] + }, + { + "teal": 2885, + "source": "contracts/NFDInstance.algo.ts:603", + "pc": [ + 2779, + 2780 + ] + }, + { + "teal": 2886, + "source": "contracts/NFDInstance.algo.ts:603", + "pc": [ + 2781, + 2782, + 2783 + ] + }, + { + "teal": 2887, + "source": "contracts/NFDInstance.algo.ts:603", + "pc": [ + 2784 + ] + }, + { + "teal": 2888, + "source": "contracts/NFDInstance.algo.ts:603", + "pc": [ + 2785 + ] + }, + { + "teal": 2889, + "source": "contracts/NFDInstance.algo.ts:603", + "pc": [ + 2786 + ] + }, + { + "teal": 2890, + "source": "contracts/NFDInstance.algo.ts:603", + "pc": [ + 2787, + 2788, + 2789 + ] + }, + { + "teal": 2895, + "source": "contracts/NFDInstance.algo.ts:604", + "pc": [ + 2790, + 2791 + ] + }, + { + "teal": 2896, + "source": "contracts/NFDInstance.algo.ts:604", + "pc": [ + 2792, + 2793 + ] + }, + { + "teal": 2897, + "source": "contracts/NFDInstance.algo.ts:604", + "pc": [ + 2794 + ] + }, + { + "teal": 2900, + "source": "contracts/NFDInstance.algo.ts:604", + "errorMessage": "offer must be at least min amount", + "pc": [ + 2795 + ] + }, + { + "teal": 2905, + "source": "contracts/NFDInstance.algo.ts:607", + "pc": [ + 2796, + 2797 + ] + }, + { + "teal": 2906, + "source": "contracts/NFDInstance.algo.ts:607", + "pc": [ + 2798, + 2799 + ] + }, + { + "teal": 2907, + "source": "contracts/NFDInstance.algo.ts:607", + "pc": [ + 2800 + ] + }, + { + "teal": 2910, + "source": "contracts/NFDInstance.algo.ts:607", + "errorMessage": "offer must be at least sell amount", + "pc": [ + 2801 + ] + }, + { + "teal": 2914, + "source": "contracts/NFDInstance.algo.ts:610", + "pc": [ + 2802, + 2803 + ] + }, + { + "teal": 2915, + "source": "contracts/NFDInstance.algo.ts:610", + "pc": [ + 2804, + 2805 + ] + }, + { + "teal": 2916, + "source": "contracts/NFDInstance.algo.ts:610", + "pc": [ + 2806 + ] + }, + { + "teal": 2917, + "source": "contracts/NFDInstance.algo.ts:610", + "pc": [ + 2807, + 2808 + ] + }, + { + "teal": 2921, + "source": "contracts/NFDInstance.algo.ts:611", + "pc": [ + 2809, + 2810 + ] + }, + { + "teal": 2922, + "source": "contracts/NFDInstance.algo.ts:611", + "pc": [ + 2811, + 2812 + ] + }, + { + "teal": 2923, + "source": "contracts/NFDInstance.algo.ts:611", + "pc": [ + 2813 + ] + }, + { + "teal": 2924, + "source": "contracts/NFDInstance.algo.ts:611", + "pc": [ + 2814, + 2815 + ] + }, + { + "teal": 2929, + "source": "contracts/NFDInstance.algo.ts:614", + "pc": [ + 2816, + 2817 + ] + }, + { + "teal": 2930, + "source": "contracts/NFDInstance.algo.ts:614", + "pc": [ + 2818, + 2819 + ] + }, + { + "teal": 2931, + "source": "contracts/NFDInstance.algo.ts:614", + "pc": [ + 2820, + 2821 + ] + }, + { + "teal": 2932, + "source": "contracts/NFDInstance.algo.ts:614", + "pc": [ + 2822 + ] + }, + { + "teal": 2935, + "source": "contracts/NFDInstance.algo.ts:614", + "errorMessage": "transaction verification failed: {\"txn\":\"payment\",\"field\":\"amount\",\"expected\":\"origOfferamt\"}", + "pc": [ + 2823 + ] + }, + { + "teal": 2938, + "source": "contracts/NFDInstance.algo.ts:614", + "pc": [ + 2824, + 2825 + ] + }, + { + "teal": 2939, + "source": "contracts/NFDInstance.algo.ts:614", + "pc": [ + 2826, + 2827 + ] + }, + { + "teal": 2940, + "source": "contracts/NFDInstance.algo.ts:614", + "pc": [ + 2828, + 2829 + ] + }, + { + "teal": 2941, + "source": "contracts/NFDInstance.algo.ts:614", + "pc": [ + 2830 + ] + }, + { + "teal": 2944, + "source": "contracts/NFDInstance.algo.ts:614", + "errorMessage": "transaction verification failed: {\"txn\":\"payment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", + "pc": [ + 2831 + ] + }, + { + "teal": 2948, + "source": "contracts/NFDInstance.algo.ts:617", + "pc": [ + 2832 + ] + }, + { + "teal": 2949, + "source": "contracts/NFDInstance.algo.ts:617", + "pc": [ + 2833, + 2834 + ] + }, + { + "teal": 2954, + "source": "contracts/NFDInstance.algo.ts:618", + "pc": [ + 2835, + 2836 + ] + }, + { + "teal": 2955, + "source": "contracts/NFDInstance.algo.ts:618", + "pc": [ + 2837, + 2838, + 2839 + ] + }, + { + "teal": 2956, + "source": "contracts/NFDInstance.algo.ts:618", + "pc": [ + 2840 + ] + }, + { + "teal": 2957, + "source": "contracts/NFDInstance.algo.ts:618", + "pc": [ + 2841 + ] + }, + { + "teal": 2958, + "source": "contracts/NFDInstance.algo.ts:618", + "pc": [ + 2842, + 2843, + 2844 + ] + }, + { + "teal": 2963, + "source": "contracts/NFDInstance.algo.ts:620", + "pc": [ + 2845 + ] + }, + { + "teal": 2964, + "source": "contracts/NFDInstance.algo.ts:620", + "pc": [ + 2846, + 2847 + ] + }, + { + "teal": 2965, + "source": "contracts/NFDInstance.algo.ts:618", + "pc": [ + 2848, + 2849, + 2850 + ] + }, + { + "teal": 2970, + "source": "contracts/NFDInstance.algo.ts:624", + "pc": [ + 2851, + 2852 + ] + }, + { + "teal": 2971, + "source": "contracts/NFDInstance.algo.ts:624", + "pc": [ + 2853, + 2854 + ] + }, + { + "teal": 2972, + "source": "contracts/NFDInstance.algo.ts:624", + "pc": [ + 2855, + 2856, + 2857 + ] + }, + { + "teal": 2973, + "source": "contracts/NFDInstance.algo.ts:624", + "pc": [ + 2858 + ] + }, + { + "teal": 2974, + "source": "contracts/NFDInstance.algo.ts:624", + "pc": [ + 2859, + 2860 + ] + }, + { + "teal": 2975, + "source": "contracts/NFDInstance.algo.ts:624", + "pc": [ + 2861 + ] + }, + { + "teal": 2976, + "source": "contracts/NFDInstance.algo.ts:624", + "pc": [ + 2862, + 2863 + ] + }, + { + "teal": 2981, + "source": "contracts/NFDInstance.algo.ts:627", + "pc": [ + 2864, + 2865 + ] + }, + { + "teal": 2982, + "source": "contracts/NFDInstance.algo.ts:627", + "pc": [ + 2866, + 2867 + ] + }, + { + "teal": 2986, + "source": "contracts/NFDInstance.algo.ts:628", + "pc": [ + 2868 + ] + }, + { + "teal": 2987, + "source": "contracts/NFDInstance.algo.ts:628", + "pc": [ + 2869, + 2870 + ] + }, + { + "teal": 2992, + "source": "contracts/NFDInstance.algo.ts:629", + "pc": [ + 2871, + 2872 + ] + }, + { + "teal": 2993, + "source": "contracts/NFDInstance.algo.ts:629", + "pc": [ + 2873 + ] + }, + { + "teal": 2994, + "source": "contracts/NFDInstance.algo.ts:629", + "pc": [ + 2874 + ] + }, + { + "teal": 2995, + "source": "contracts/NFDInstance.algo.ts:629", + "pc": [ + 2875, + 2876, + 2877 + ] + }, + { + "teal": 3000, + "source": "contracts/NFDInstance.algo.ts:630", + "pc": [ + 2878, + 2879 + ] + }, + { + "teal": 3001, + "source": "contracts/NFDInstance.algo.ts:630", + "pc": [ + 2880 + ] + }, + { + "teal": 3002, + "source": "contracts/NFDInstance.algo.ts:630", + "pc": [ + 2881 + ] + }, + { + "teal": 3003, + "source": "contracts/NFDInstance.algo.ts:630", + "pc": [ + 2882, + 2883 + ] + }, + { + "teal": 3010, + "source": "contracts/NFDInstance.algo.ts:632", + "pc": [ + 2884, + 2885 + ] + }, + { + "teal": 3011, + "source": "contracts/NFDInstance.algo.ts:632", + "pc": [ + 2886, + 2887 + ] + }, + { + "teal": 3012, + "source": "contracts/NFDInstance.algo.ts:632", + "pc": [ + 2888 + ] + }, + { + "teal": 3013, + "source": "contracts/NFDInstance.algo.ts:632", + "pc": [ + 2889 + ] + }, + { + "teal": 3014, + "source": "contracts/NFDInstance.algo.ts:632", + "pc": [ + 2890 + ] + }, + { + "teal": 3015, + "source": "contracts/NFDInstance.algo.ts:632", + "pc": [ + 2891, + 2892, + 2893 + ] + }, + { + "teal": 3016, + "source": "contracts/NFDInstance.algo.ts:633", + "pc": [ + 2894, + 2895 + ] + }, + { + "teal": 3017, + "source": "contracts/NFDInstance.algo.ts:633", + "pc": [ + 2896, + 2897 + ] + }, + { + "teal": 3018, + "source": "contracts/NFDInstance.algo.ts:633", + "pc": [ + 2898, + 2899 + ] + }, + { + "teal": 3019, + "source": "contracts/NFDInstance.algo.ts:633", + "pc": [ + 2900 + ] + }, + { + "teal": 3020, + "source": "contracts/NFDInstance.algo.ts:632", + "pc": [ + 2901 + ] + }, + { + "teal": 3023, + "source": "contracts/NFDInstance.algo.ts:633", + "pc": [ + 2902 + ] + }, + { + "teal": 3024, + "source": "contracts/NFDInstance.algo.ts:633", + "pc": [ + 2903, + 2904, + 2905 + ] + }, + { + "teal": 3025, + "source": "contracts/NFDInstance.algo.ts:634", + "pc": [ + 2906, + 2907 + ] + }, + { + "teal": 3026, + "source": "contracts/NFDInstance.algo.ts:634", + "pc": [ + 2908, + 2909 + ] + }, + { + "teal": 3027, + "source": "contracts/NFDInstance.algo.ts:634", + "pc": [ + 2910, + 2911, + 2912, + 2913, + 2914, + 2915, + 2916, + 2917, + 2918, + 2919, + 2920 + ] + }, + { + "teal": 3028, + "source": "contracts/NFDInstance.algo.ts:634", + "pc": [ + 2921 + ] + }, + { + "teal": 3029, + "source": "contracts/NFDInstance.algo.ts:633", + "pc": [ + 2922 + ] + }, + { + "teal": 3032, + "source": "contracts/NFDInstance.algo.ts:631", + "pc": [ + 2923, + 2924, + 2925 + ] + }, + { + "teal": 3037, + "source": "contracts/NFDInstance.algo.ts:636", + "pc": [ + 2926, + 2927 + ] + }, + { + "teal": 3038, + "source": "contracts/NFDInstance.algo.ts:636", + "pc": [ + 2928, + 2929 + ] + }, + { + "teal": 3039, + "source": "contracts/NFDInstance.algo.ts:636", + "pc": [ + 2930, + 2931 + ] + }, + { + "teal": 3043, + "source": "contracts/NFDInstance.algo.ts:637", + "pc": [ + 2932, + 2933 + ] + }, + { + "teal": 3044, + "source": "contracts/NFDInstance.algo.ts:637", + "pc": [ + 2934, + 2935 + ] + }, + { + "teal": 3045, + "source": "contracts/NFDInstance.algo.ts:637", + "pc": [ + 2936, + 2937 + ] + }, + { + "teal": 3060, + "source": "contracts/NFDInstance.algo.ts:641", + "pc": [ + 2938 + ] + }, + { + "teal": 3061, + "source": "contracts/NFDInstance.algo.ts:641", + "pc": [ + 2939, + 2940 + ] + }, + { + "teal": 3062, + "source": "contracts/NFDInstance.algo.ts:641", + "pc": [ + 2941, + 2942 + ] + }, + { + "teal": 3063, + "source": "contracts/NFDInstance.algo.ts:641", + "pc": [ + 2943, + 2944, + 2945, + 2946, + 2947, + 2948 + ] + }, + { + "teal": 3064, + "source": "contracts/NFDInstance.algo.ts:641", + "pc": [ + 2949, + 2950 + ] + }, + { + "teal": 3068, + "source": "contracts/NFDInstance.algo.ts:642", + "pc": [ + 2951, + 2952 + ] + }, + { + "teal": 3069, + "source": "contracts/NFDInstance.algo.ts:642", + "pc": [ + 2953, + 2954 + ] + }, + { + "teal": 3078, + "source": "contracts/NFDInstance.algo.ts:644", + "pc": [ + 2955, + 2956 + ] + }, + { + "teal": 3079, + "source": "contracts/NFDInstance.algo.ts:644", + "pc": [ + 2957 + ] + }, + { + "teal": 3080, + "source": "contracts/NFDInstance.algo.ts:644", + "pc": [ + 2958 + ] + }, + { + "teal": 3081, + "source": "contracts/NFDInstance.algo.ts:644", + "pc": [ + 2959 + ] + }, + { + "teal": 3082, + "source": "contracts/NFDInstance.algo.ts:644", + "pc": [ + 2960 + ] + }, + { + "teal": 3083, + "source": "contracts/NFDInstance.algo.ts:644", + "pc": [ + 2961, + 2962, + 2963 + ] + }, + { + "teal": 3084, + "source": "contracts/NFDInstance.algo.ts:644", + "pc": [ + 2964 + ] + }, + { + "teal": 3085, + "source": "contracts/NFDInstance.algo.ts:644", + "pc": [ + 2965 + ] + }, + { + "teal": 3086, + "source": "contracts/NFDInstance.algo.ts:644", + "pc": [ + 2966, + 2967 + ] + }, + { + "teal": 3087, + "source": "contracts/NFDInstance.algo.ts:645", + "pc": [ + 2968, + 2969, + 2970 + ] + }, + { + "teal": 3088, + "source": "contracts/NFDInstance.algo.ts:645", + "pc": [ + 2971 + ] + }, + { + "teal": 3089, + "source": "contracts/NFDInstance.algo.ts:645", + "pc": [ + 2972, + 2973 + ] + }, + { + "teal": 3090, + "source": "contracts/NFDInstance.algo.ts:646", + "pc": [ + 2974 + ] + }, + { + "teal": 3091, + "source": "contracts/NFDInstance.algo.ts:646", + "pc": [ + 2975 + ] + }, + { + "teal": 3092, + "source": "contracts/NFDInstance.algo.ts:646", + "pc": [ + 2976, + 2977 + ] + }, + { + "teal": 3093, + "source": "contracts/NFDInstance.algo.ts:647", + "pc": [ + 2978, + 2979 + ] + }, + { + "teal": 3094, + "source": "contracts/NFDInstance.algo.ts:647", + "pc": [ + 2980, + 2981 + ] + }, + { + "teal": 3097, + "source": "contracts/NFDInstance.algo.ts:641", + "pc": [ + 2982 + ] + }, + { + "teal": 3098, + "source": "contracts/NFDInstance.algo.ts:641", + "pc": [ + 2983, + 2984 + ] + }, + { + "teal": 3101, + "source": "contracts/NFDInstance.algo.ts:641", + "pc": [ + 2985 + ] + }, + { + "teal": 3115, + "source": "contracts/NFDInstance.algo.ts:651", + "pc": [ + 2986, + 2987, + 2988, + 2989, + 2990, + 2991 + ] + }, + { + "teal": 3116, + "source": "contracts/NFDInstance.algo.ts:651", + "pc": [ + 2992 + ] + }, + { + "teal": 3117, + "source": "contracts/NFDInstance.algo.ts:651", + "pc": [ + 2993 + ] + }, + { + "teal": 3118, + "source": "contracts/NFDInstance.algo.ts:651", + "pc": [ + 2994, + 2995, + 2996, + 2997 + ] + }, + { + "teal": 3119, + "source": "contracts/NFDInstance.algo.ts:652", + "pc": [ + 2998, + 2999, + 3000 + ] + }, + { + "teal": 3120, + "source": "contracts/NFDInstance.algo.ts:652", + "pc": [ + 3001 + ] + }, + { + "teal": 3121, + "source": "contracts/NFDInstance.algo.ts:652", + "pc": [ + 3002, + 3003, + 3004 + ] + }, + { + "teal": 3122, + "source": "contracts/NFDInstance.algo.ts:653", + "pc": [ + 3005, + 3006 + ] + }, + { + "teal": 3123, + "source": "contracts/NFDInstance.algo.ts:653", + "pc": [ + 3007 + ] + }, + { + "teal": 3124, + "source": "contracts/NFDInstance.algo.ts:653", + "pc": [ + 3008 + ] + }, + { + "teal": 3125, + "source": "contracts/NFDInstance.algo.ts:653", + "pc": [ + 3009 + ] + }, + { + "teal": 3126, + "source": "contracts/NFDInstance.algo.ts:653", + "pc": [ + 3010 + ] + }, + { + "teal": 3127, + "source": "contracts/NFDInstance.algo.ts:653", + "pc": [ + 3011, + 3012, + 3013 + ] + }, + { + "teal": 3128, + "source": "contracts/NFDInstance.algo.ts:653", + "pc": [ + 3014 + ] + }, + { + "teal": 3129, + "source": "contracts/NFDInstance.algo.ts:653", + "pc": [ + 3015 + ] + }, + { + "teal": 3130, + "source": "contracts/NFDInstance.algo.ts:653", + "pc": [ + 3016, + 3017, + 3018 + ] + }, + { + "teal": 3131, + "source": "contracts/NFDInstance.algo.ts:654", + "pc": [ + 3019 + ] + }, + { + "teal": 3132, + "source": "contracts/NFDInstance.algo.ts:654", + "pc": [ + 3020 + ] + }, + { + "teal": 3133, + "source": "contracts/NFDInstance.algo.ts:654", + "pc": [ + 3021, + 3022, + 3023 + ] + }, + { + "teal": 3134, + "source": "contracts/NFDInstance.algo.ts:655", + "pc": [ + 3024, + 3025 + ] + }, + { + "teal": 3135, + "source": "contracts/NFDInstance.algo.ts:655", + "pc": [ + 3026, + 3027, + 3028 + ] + }, + { + "teal": 3136, + "source": "contracts/NFDInstance.algo.ts:656", + "pc": [ + 3029, + 3030 + ] + }, + { + "teal": 3137, + "source": "contracts/NFDInstance.algo.ts:656", + "pc": [ + 3031 + ] + }, + { + "teal": 3138, + "source": "contracts/NFDInstance.algo.ts:656", + "pc": [ + 3032, + 3033, + 3034 + ] + }, + { + "teal": 3139, + "source": "contracts/NFDInstance.algo.ts:657", + "pc": [ + 3035, + 3036 + ] + }, + { + "teal": 3140, + "source": "contracts/NFDInstance.algo.ts:657", + "pc": [ + 3037 + ] + }, + { + "teal": 3141, + "source": "contracts/NFDInstance.algo.ts:657", + "pc": [ + 3038, + 3039, + 3040 + ] + }, + { + "teal": 3142, + "source": "contracts/NFDInstance.algo.ts:658", + "pc": [ + 3041, + 3042 + ] + }, + { + "teal": 3143, + "source": "contracts/NFDInstance.algo.ts:658", + "pc": [ + 3043 + ] + }, + { + "teal": 3144, + "source": "contracts/NFDInstance.algo.ts:658", + "pc": [ + 3044, + 3045, + 3046 + ] + }, + { + "teal": 3145, + "source": "contracts/NFDInstance.algo.ts:659", + "pc": [ + 3047, + 3048 + ] + }, + { + "teal": 3146, + "source": "contracts/NFDInstance.algo.ts:659", + "pc": [ + 3049, + 3050, + 3051 + ] + }, + { + "teal": 3147, + "source": "contracts/NFDInstance.algo.ts:660", + "pc": [ + 3052, + 3053 + ] + }, + { + "teal": 3148, + "source": "contracts/NFDInstance.algo.ts:660", + "pc": [ + 3054 + ] + }, + { + "teal": 3149, + "source": "contracts/NFDInstance.algo.ts:660", + "pc": [ + 3055, + 3056, + 3057 + ] + }, + { + "teal": 3150, + "source": "contracts/NFDInstance.algo.ts:651", + "pc": [ + 3058 + ] + }, + { + "teal": 3151, + "source": "contracts/NFDInstance.algo.ts:651", + "pc": [ + 3059 + ] + }, + { + "teal": 3152, + "source": "contracts/NFDInstance.algo.ts:651", + "pc": [ + 3060 + ] + }, + { + "teal": 3153, + "source": "contracts/NFDInstance.algo.ts:651", + "pc": [ + 3061 + ] + }, + { + "teal": 3158, + "source": "contracts/NFDInstance.algo.ts:664", + "pc": [ + 3062, + 3063 + ] + }, + { + "teal": 3159, + "source": "contracts/NFDInstance.algo.ts:664", + "pc": [ + 3064 + ] + }, + { + "teal": 3160, + "source": "contracts/NFDInstance.algo.ts:664", + "pc": [ + 3065 + ] + }, + { + "teal": 3161, + "source": "contracts/NFDInstance.algo.ts:664", + "pc": [ + 3066, + 3067, + 3068 + ] + }, + { + "teal": 3170, + "source": "contracts/NFDInstance.algo.ts:665", + "pc": [ + 3069 + ] + }, + { + "teal": 3171, + "source": "contracts/NFDInstance.algo.ts:665", + "pc": [ + 3070 + ] + }, + { + "teal": 3172, + "source": "contracts/NFDInstance.algo.ts:665", + "pc": [ + 3071, + 3072 + ] + }, + { + "teal": 3176, + "source": "contracts/NFDInstance.algo.ts:666", + "pc": [ + 3073, + 3074 + ] + }, + { + "teal": 3177, + "source": "contracts/NFDInstance.algo.ts:666", + "pc": [ + 3075, + 3076 + ] + }, + { + "teal": 3181, + "source": "contracts/NFDInstance.algo.ts:667", + "pc": [ + 3077, + 3078 + ] + }, + { + "teal": 3182, + "source": "contracts/NFDInstance.algo.ts:667", + "pc": [ + 3079, + 3080 + ] + }, + { + "teal": 3183, + "source": "contracts/NFDInstance.algo.ts:667", + "pc": [ + 3081, + 3082 + ] + }, + { + "teal": 3187, + "source": "contracts/NFDInstance.algo.ts:668", + "pc": [ + 3083, + 3084, + 3085, + 3086, + 3087, + 3088, + 3089, + 3090, + 3091, + 3092, + 3093, + 3094, + 3095, + 3096, + 3097, + 3098, + 3099, + 3100, + 3101 + ] + }, + { + "teal": 3188, + "source": "contracts/NFDInstance.algo.ts:668", + "pc": [ + 3102, + 3103 + ] + }, + { + "teal": 3191, + "source": "contracts/NFDInstance.algo.ts:665", + "pc": [ + 3104 + ] + }, + { + "teal": 3192, + "source": "contracts/NFDInstance.algo.ts:665", + "pc": [ + 3105, + 3106 + ] + }, + { + "teal": 3195, + "source": "contracts/NFDInstance.algo.ts:665", + "pc": [ + 3107 + ] + }, + { + "teal": 3206, + "source": "contracts/NFDInstance.algo.ts:676", + "pc": [ + 3108, + 3109 + ] + }, + { + "teal": 3207, + "source": "contracts/NFDInstance.algo.ts:675", + "pc": [ + 3110 + ] + }, + { + "teal": 3208, + "source": "contracts/NFDInstance.algo.ts:674", + "pc": [ + 3111, + 3112 + ] + }, + { + "teal": 3209, + "source": "contracts/NFDInstance.algo.ts:673", + "pc": [ + 3113, + 3114 + ] + }, + { + "teal": 3210, + "source": "contracts/NFDInstance.algo.ts:673", + "pc": [ + 3115 + ] + }, + { + "teal": 3211, + "source": "contracts/NFDInstance.algo.ts:672", + "pc": [ + 3116, + 3117 + ] + }, + { + "teal": 3212, + "source": "contracts/NFDInstance.algo.ts:671", + "pc": [ + 3118, + 3119, + 3120 + ] + }, + { + "teal": 3216, + "source": "contracts/NFDInstance.algo.ts:679", + "pc": [ + 3121 + ] + }, + { + "teal": 3217, + "source": "contracts/NFDInstance.algo.ts:679", + "pc": [ + 3122, + 3123 + ] + }, + { + "teal": 3218, + "source": "contracts/NFDInstance.algo.ts:679", + "pc": [ + 3124, + 3125 + ] + }, + { + "teal": 3219, + "source": "contracts/NFDInstance.algo.ts:679", + "pc": [ + 3126 + ] + }, + { + "teal": 3220, + "source": "contracts/NFDInstance.algo.ts:679", + "pc": [ + 3127, + 3128 + ] + }, + { + "teal": 3221, + "source": "contracts/NFDInstance.algo.ts:679", + "pc": [ + 3129, + 3130 + ] + }, + { + "teal": 3222, + "source": "contracts/NFDInstance.algo.ts:679", + "pc": [ + 3131 + ] + }, + { + "teal": 3223, + "source": "contracts/NFDInstance.algo.ts:679", + "pc": [ + 3132, + 3133 + ] + }, + { + "teal": 3224, + "source": "contracts/NFDInstance.algo.ts:679", + "pc": [ + 3134, + 3135 + ] + }, + { + "teal": 3225, + "source": "contracts/NFDInstance.algo.ts:679", + "pc": [ + 3136, + 3137 + ] + }, + { + "teal": 3226, + "source": "contracts/NFDInstance.algo.ts:679", + "pc": [ + 3138, + 3139 + ] + }, + { + "teal": 3227, + "source": "contracts/NFDInstance.algo.ts:679", + "pc": [ + 3140 + ] + }, + { + "teal": 3232, + "source": "contracts/NFDInstance.algo.ts:684", + "pc": [ + 3141, + 3142 + ] + }, + { + "teal": 3233, + "source": "contracts/NFDInstance.algo.ts:684", + "pc": [ + 3143, + 3144, + 3145 + ] + }, + { + "teal": 3234, + "source": "contracts/NFDInstance.algo.ts:684", + "pc": [ + 3146 + ] + }, + { + "teal": 3235, + "source": "contracts/NFDInstance.algo.ts:684", + "pc": [ + 3147 + ] + }, + { + "teal": 3236, + "source": "contracts/NFDInstance.algo.ts:684", + "pc": [ + 3148 + ] + }, + { + "teal": 3237, + "source": "contracts/NFDInstance.algo.ts:684", + "pc": [ + 3149, + 3150, + 3151 + ] + }, + { + "teal": 3244, + "source": "contracts/NFDInstance.algo.ts:686", + "pc": [ + 3152, + 3153 + ] + }, + { + "teal": 3245, + "source": "contracts/NFDInstance.algo.ts:686", + "pc": [ + 3154 + ] + }, + { + "teal": 3246, + "source": "contracts/NFDInstance.algo.ts:686", + "pc": [ + 3155, + 3156 + ] + }, + { + "teal": 3247, + "source": "contracts/NFDInstance.algo.ts:686", + "pc": [ + 3157, + 3158 + ] + }, + { + "teal": 3248, + "source": "contracts/NFDInstance.algo.ts:686", + "pc": [ + 3159 + ] + }, + { + "teal": 3249, + "source": "contracts/NFDInstance.algo.ts:686", + "pc": [ + 3160 + ] + }, + { + "teal": 3250, + "source": "contracts/NFDInstance.algo.ts:686", + "pc": [ + 3161, + 3162, + 3163 + ] + }, + { + "teal": 3251, + "source": "contracts/NFDInstance.algo.ts:687", + "pc": [ + 3164 + ] + }, + { + "teal": 3252, + "source": "contracts/NFDInstance.algo.ts:687", + "pc": [ + 3165, + 3166, + 3167 + ] + }, + { + "teal": 3253, + "source": "contracts/NFDInstance.algo.ts:687", + "pc": [ + 3168 + ] + }, + { + "teal": 3254, + "source": "contracts/NFDInstance.algo.ts:687", + "pc": [ + 3169 + ] + }, + { + "teal": 3255, + "source": "contracts/NFDInstance.algo.ts:687", + "pc": [ + 3170 + ] + }, + { + "teal": 3256, + "source": "contracts/NFDInstance.algo.ts:686", + "pc": [ + 3171 + ] + }, + { + "teal": 3259, + "source": "contracts/NFDInstance.algo.ts:685", + "pc": [ + 3172, + 3173, + 3174 + ] + }, + { + "teal": 3268, + "source": "contracts/NFDInstance.algo.ts:689", + "pc": [ + 3175 + ] + }, + { + "teal": 3269, + "source": "contracts/NFDInstance.algo.ts:689", + "pc": [ + 3176 + ] + }, + { + "teal": 3270, + "source": "contracts/NFDInstance.algo.ts:689", + "pc": [ + 3177, + 3178 + ] + }, + { + "teal": 3274, + "source": "contracts/NFDInstance.algo.ts:690", + "pc": [ + 3179, + 3180 + ] + }, + { + "teal": 3275, + "source": "contracts/NFDInstance.algo.ts:690", + "pc": [ + 3181, + 3182, + 3183 + ] + }, + { + "teal": 3276, + "source": "contracts/NFDInstance.algo.ts:690", + "pc": [ + 3184, + 3185 + ] + }, + { + "teal": 3280, + "source": "contracts/NFDInstance.algo.ts:691", + "pc": [ + 3186, + 3187 + ] + }, + { + "teal": 3281, + "source": "contracts/NFDInstance.algo.ts:691", + "pc": [ + 3188 + ] + }, + { + "teal": 3282, + "source": "contracts/NFDInstance.algo.ts:691", + "pc": [ + 3189, + 3190 + ] + }, + { + "teal": 3286, + "source": "contracts/NFDInstance.algo.ts:692", + "pc": [ + 3191, + 3192, + 3193, + 3194, + 3195, + 3196, + 3197, + 3198, + 3199, + 3200, + 3201, + 3202, + 3203, + 3204 + ] + }, + { + "teal": 3287, + "source": "contracts/NFDInstance.algo.ts:692", + "pc": [ + 3205, + 3206 + ] + }, + { + "teal": 3290, + "source": "contracts/NFDInstance.algo.ts:689", + "pc": [ + 3207 + ] + }, + { + "teal": 3291, + "source": "contracts/NFDInstance.algo.ts:689", + "pc": [ + 3208, + 3209 + ] + }, + { + "teal": 3294, + "source": "contracts/NFDInstance.algo.ts:689", + "pc": [ + 3210 + ] + }, + { + "teal": 3301, + "source": "contracts/NFDInstance.algo.ts:698", + "pc": [ + 3211, + 3212 + ] + }, + { + "teal": 3302, + "source": "contracts/NFDInstance.algo.ts:698", + "pc": [ + 3213 + ] + }, + { + "teal": 3303, + "source": "contracts/NFDInstance.algo.ts:698", + "pc": [ + 3214 + ] + }, + { + "teal": 3304, + "source": "contracts/NFDInstance.algo.ts:698", + "pc": [ + 3215, + 3216, + 3217 + ] + }, + { + "teal": 3308, + "source": "contracts/NFDInstance.algo.ts:711", + "pc": [ + 3218 + ] + }, + { + "teal": 3309, + "source": "contracts/NFDInstance.algo.ts:711", + "pc": [ + 3219, + 3220 + ] + }, + { + "teal": 3310, + "source": "contracts/NFDInstance.algo.ts:711", + "pc": [ + 3221 + ] + }, + { + "teal": 3314, + "source": "contracts/NFDInstance.algo.ts:712", + "pc": [ + 3222, + 3223 + ] + }, + { + "teal": 3315, + "source": "contracts/NFDInstance.algo.ts:712", + "pc": [ + 3224, + 3225 + ] + }, + { + "teal": 3316, + "source": "contracts/NFDInstance.algo.ts:712", + "pc": [ + 3226 + ] + }, + { + "teal": 3321, + "source": "contracts/NFDInstance.algo.ts:713", + "pc": [ + 3227, + 3228 + ] + }, + { + "teal": 3322, + "source": "contracts/NFDInstance.algo.ts:713", + "pc": [ + 3229, + 3230 + ] + }, + { + "teal": 3323, + "source": "contracts/NFDInstance.algo.ts:713", + "pc": [ + 3231, + 3232, + 3233 + ] + }, + { + "teal": 3324, + "source": "contracts/NFDInstance.algo.ts:713", + "pc": [ + 3234 + ] + }, + { + "teal": 3325, + "source": "contracts/NFDInstance.algo.ts:713", + "pc": [ + 3235, + 3236, + 3237 + ] + }, + { + "teal": 3330, + "source": "contracts/NFDInstance.algo.ts:714", + "pc": [ + 3238, + 3239 + ] + }, + { + "teal": 3331, + "source": "contracts/NFDInstance.algo.ts:714", + "pc": [ + 3240, + 3241 + ] + }, + { + "teal": 3332, + "source": "contracts/NFDInstance.algo.ts:714", + "pc": [ + 3242 + ] + }, + { + "teal": 3333, + "source": "contracts/NFDInstance.algo.ts:714", + "pc": [ + 3243 + ] + }, + { + "teal": 3338, + "source": "contracts/NFDInstance.algo.ts:716", + "pc": [ + 3244 + ] + }, + { + "teal": 3339, + "source": "contracts/NFDInstance.algo.ts:716", + "pc": [ + 3245, + 3246 + ] + }, + { + "teal": 3340, + "source": "contracts/NFDInstance.algo.ts:716", + "pc": [ + 3247 + ] + }, + { + "teal": 3341, + "source": "contracts/NFDInstance.algo.ts:716", + "pc": [ + 3248 + ] + }, + { + "teal": 3345, + "source": "contracts/NFDInstance.algo.ts:717", + "pc": [ + 3249, + 3250 + ] + }, + { + "teal": 3346, + "source": "contracts/NFDInstance.algo.ts:717", + "pc": [ + 3251, + 3252 + ] + }, + { + "teal": 3347, + "source": "contracts/NFDInstance.algo.ts:717", + "pc": [ + 3253 + ] + }, + { + "teal": 3348, + "source": "contracts/NFDInstance.algo.ts:717", + "pc": [ + 3254 + ] + }, + { + "teal": 3352, + "source": "contracts/NFDInstance.algo.ts:718", + "pc": [ + 3255 + ] + }, + { + "teal": 3353, + "source": "contracts/NFDInstance.algo.ts:718", + "pc": [ + 3256 + ] + }, + { + "teal": 3357, + "source": "contracts/NFDInstance.algo.ts:719", + "pc": [ + 3257, + 3258 + ] + }, + { + "teal": 3358, + "source": "contracts/NFDInstance.algo.ts:719", + "pc": [ + 3259 + ] + }, + { + "teal": 3362, + "source": "contracts/NFDInstance.algo.ts:720", + "pc": [ + 3260, + 3261 + ] + }, + { + "teal": 3363, + "source": "contracts/NFDInstance.algo.ts:720", + "pc": [ + 3262 + ] + }, + { + "teal": 3367, + "source": "contracts/NFDInstance.algo.ts:721", + "pc": [ + 3263, + 3264 + ] + }, + { + "teal": 3368, + "source": "contracts/NFDInstance.algo.ts:721", + "pc": [ + 3265 + ] + }, + { + "teal": 3372, + "source": "contracts/NFDInstance.algo.ts:722", + "pc": [ + 3266, + 3267 + ] + }, + { + "teal": 3373, + "source": "contracts/NFDInstance.algo.ts:722", + "pc": [ + 3268 + ] + }, + { + "teal": 3377, + "source": "contracts/NFDInstance.algo.ts:723", + "pc": [ + 3269, + 3270 + ] + }, + { + "teal": 3378, + "source": "contracts/NFDInstance.algo.ts:723", + "pc": [ + 3271 + ] + }, + { + "teal": 3382, + "source": "contracts/NFDInstance.algo.ts:725", + "pc": [ + 3272, + 3273 + ] + }, + { + "teal": 3383, + "source": "contracts/NFDInstance.algo.ts:725", + "pc": [ + 3274, + 3275 + ] + }, + { + "teal": 3384, + "source": "contracts/NFDInstance.algo.ts:725", + "pc": [ + 3276 + ] + }, + { + "teal": 3388, + "source": "contracts/NFDInstance.algo.ts:726", + "pc": [ + 3277, + 3278 + ] + }, + { + "teal": 3389, + "source": "contracts/NFDInstance.algo.ts:726", + "pc": [ + 3279 + ] + }, + { + "teal": 3390, + "source": "contracts/NFDInstance.algo.ts:726", + "pc": [ + 3280 + ] + }, + { + "teal": 3391, + "source": "contracts/NFDInstance.algo.ts:573", + "pc": [ + 3281 + ] + }, + { + "teal": 3396, + "source": "contracts/NFDInstance.algo.ts:729", + "pc": [ + 3282, + 3283 + ] + }, + { + "teal": 3399, + "source": "contracts/NFDInstance.algo.ts:730", + "pc": [ + 3284, + 3285, + 3286 + ] + }, + { + "teal": 3400, + "source": "contracts/NFDInstance.algo.ts:730", + "pc": [ + 3287 + ] + }, + { + "teal": 3401, + "source": "contracts/NFDInstance.algo.ts:730", + "pc": [ + 3288 + ] + }, + { + "teal": 3402, + "source": "contracts/NFDInstance.algo.ts:730", + "pc": [ + 3289 + ] + }, + { + "teal": 3403, + "source": "contracts/NFDInstance.algo.ts:730", + "pc": [ + 3290 + ] + }, + { + "teal": 3406, + "source": "contracts/NFDInstance.algo.ts:730", + "errorMessage": "argument 0 (address) for isAddressInField must be a address", + "pc": [ + 3291 + ] + }, + { + "teal": 3409, + "source": "contracts/NFDInstance.algo.ts:730", + "pc": [ + 3292, + 3293, + 3294 + ] + }, + { + "teal": 3410, + "source": "contracts/NFDInstance.algo.ts:730", + "pc": [ + 3295, + 3296, + 3297 + ] + }, + { + "teal": 3413, + "source": "contracts/NFDInstance.algo.ts:729", + "pc": [ + 3298, + 3299, + 3300 + ] + }, + { + "teal": 3414, + "source": "contracts/NFDInstance.algo.ts:729", + "pc": [ + 3301, + 3302 + ] + }, + { + "teal": 3415, + "source": "contracts/NFDInstance.algo.ts:729", + "pc": [ + 3303 + ] + }, + { + "teal": 3416, + "source": "contracts/NFDInstance.algo.ts:729", + "pc": [ + 3304, + 3305 + ] + }, + { + "teal": 3417, + "source": "contracts/NFDInstance.algo.ts:729", + "pc": [ + 3306 + ] + }, + { + "teal": 3418, + "source": "contracts/NFDInstance.algo.ts:729", + "pc": [ + 3307 + ] + }, + { + "teal": 3419, + "source": "contracts/NFDInstance.algo.ts:729", + "pc": [ + 3308 + ] + }, + { + "teal": 3420, + "source": "contracts/NFDInstance.algo.ts:729", + "pc": [ + 3309 + ] + }, + { + "teal": 3421, + "source": "contracts/NFDInstance.algo.ts:729", + "pc": [ + 3310 + ] + }, + { + "teal": 3425, + "source": "contracts/NFDInstance.algo.ts:729", + "pc": [ + 3311, + 3312, + 3313 + ] + }, + { + "teal": 3429, + "source": "contracts/NFDInstance.algo.ts:731", + "pc": [ + 3314, + 3315 + ] + }, + { + "teal": 3430, + "source": "contracts/NFDInstance.algo.ts:731", + "pc": [ + 3316, + 3317 + ] + }, + { + "teal": 3431, + "source": "contracts/NFDInstance.algo.ts:731", + "pc": [ + 3318 + ] + }, + { + "teal": 3432, + "source": "contracts/NFDInstance.algo.ts:731", + "pc": [ + 3319 + ] + }, + { + "teal": 3437, + "source": "contracts/NFDInstance.algo.ts:732", + "pc": [ + 3320, + 3321 + ] + }, + { + "teal": 3438, + "source": "contracts/NFDInstance.algo.ts:732", + "pc": [ + 3322 + ] + }, + { + "teal": 3439, + "source": "contracts/NFDInstance.algo.ts:732", + "pc": [ + 3323 + ] + }, + { + "teal": 3440, + "source": "contracts/NFDInstance.algo.ts:732", + "pc": [ + 3324 + ] + }, + { + "teal": 3441, + "source": "contracts/NFDInstance.algo.ts:732", + "pc": [ + 3325 + ] + }, + { + "teal": 3442, + "source": "contracts/NFDInstance.algo.ts:732", + "pc": [ + 3326, + 3327, + 3328 + ] + }, + { + "teal": 3447, + "source": "contracts/NFDInstance.algo.ts:733", + "pc": [ + 3329 + ] + }, + { + "teal": 3448, + "source": "contracts/NFDInstance.algo.ts:733", + "pc": [ + 3330 + ] + }, + { + "teal": 3453, + "source": "contracts/NFDInstance.algo.ts:735", + "pc": [ + 3331, + 3332 + ] + }, + { + "teal": 3454, + "source": "contracts/NFDInstance.algo.ts:735", + "pc": [ + 3333, + 3334 + ] + }, + { + "teal": 3455, + "source": "contracts/NFDInstance.algo.ts:735", + "pc": [ + 3335 + ] + }, + { + "teal": 3458, + "source": "contracts/NFDInstance.algo.ts:735", + "errorMessage": "box value does not exist: this.boxes(fieldName).value", + "pc": [ + 3336 + ] + }, + { + "teal": 3459, + "source": "contracts/NFDInstance.algo.ts:735", + "pc": [ + 3337, + 3338, + 3339 + ] + }, + { + "teal": 3460, + "source": "contracts/NFDInstance.algo.ts:729", + "pc": [ + 3340 + ] + }, + { + "teal": 3464, + "source": "contracts/NFDInstance.algo.ts:797", + "pc": [ + 3341, + 3342, + 3343 + ] + }, + { + "teal": 3467, + "source": "contracts/NFDInstance.algo.ts:797", + "pc": [ + 3344 + ] + }, + { + "teal": 3475, + "source": "contracts/NFDInstance.algo.ts:806", + "pc": [ + 3345 + ] + }, + { + "teal": 3476, + "source": "contracts/NFDInstance.algo.ts:806", + "pc": [ + 3346 + ] + }, + { + "teal": 3477, + "source": "contracts/NFDInstance.algo.ts:806", + "pc": [ + 3347, + 3348 + ] + }, + { + "teal": 3481, + "source": "contracts/NFDInstance.algo.ts:807", + "pc": [ + 3349, + 3350 + ] + }, + { + "teal": 3482, + "source": "contracts/NFDInstance.algo.ts:807", + "pc": [ + 3351, + 3352 + ] + }, + { + "teal": 3483, + "source": "contracts/NFDInstance.algo.ts:807", + "pc": [ + 3353 + ] + }, + { + "teal": 3484, + "source": "contracts/NFDInstance.algo.ts:807", + "pc": [ + 3354, + 3355 + ] + }, + { + "teal": 3488, + "source": "contracts/NFDInstance.algo.ts:808", + "pc": [ + 3356, + 3357 + ] + }, + { + "teal": 3489, + "source": "contracts/NFDInstance.algo.ts:808", + "pc": [ + 3358, + 3359 + ] + }, + { + "teal": 3493, + "source": "contracts/NFDInstance.algo.ts:809", + "pc": [ + 3360, + 3361, + 3362, + 3363, + 3364, + 3365, + 3366, + 3367 + ] + }, + { + "teal": 3494, + "source": "contracts/NFDInstance.algo.ts:809", + "pc": [ + 3368, + 3369 + ] + }, + { + "teal": 3497, + "source": "contracts/NFDInstance.algo.ts:806", + "pc": [ + 3370 + ] + }, + { + "teal": 3498, + "source": "contracts/NFDInstance.algo.ts:806", + "pc": [ + 3371, + 3372 + ] + }, + { + "teal": 3501, + "source": "contracts/NFDInstance.algo.ts:806", + "pc": [ + 3373 + ] + }, + { + "teal": 3505, + "source": "contracts/NFDInstance.algo.ts:811", + "pc": [ + 3374, + 3375 + ] + }, + { + "teal": 3506, + "source": "contracts/NFDInstance.algo.ts:811", + "pc": [ + 3376, + 3377 + ] + }, + { + "teal": 3511, + "source": "contracts/NFDInstance.algo.ts:814", + "pc": [ + 3378, + 3379 + ] + }, + { + "teal": 3512, + "source": "contracts/NFDInstance.algo.ts:814", + "pc": [ + 3380, + 3381, + 3382 + ] + }, + { + "teal": 3513, + "source": "contracts/NFDInstance.algo.ts:814", + "pc": [ + 3383 + ] + }, + { + "teal": 3514, + "source": "contracts/NFDInstance.algo.ts:814", + "pc": [ + 3384 + ] + }, + { + "teal": 3515, + "source": "contracts/NFDInstance.algo.ts:814", + "pc": [ + 3385 + ] + }, + { + "teal": 3516, + "source": "contracts/NFDInstance.algo.ts:814", + "pc": [ + 3386, + 3387, + 3388 + ] + }, + { + "teal": 3521, + "source": "contracts/NFDInstance.algo.ts:815", + "pc": [ + 3389, + 3390 + ] + }, + { + "teal": 3522, + "source": "contracts/NFDInstance.algo.ts:815", + "pc": [ + 3391 + ] + }, + { + "teal": 3523, + "source": "contracts/NFDInstance.algo.ts:815", + "pc": [ + 3392, + 3393 + ] + }, + { + "teal": 3531, + "source": "contracts/NFDInstance.algo.ts:816", + "pc": [ + 3394 + ] + }, + { + "teal": 3532, + "source": "contracts/NFDInstance.algo.ts:816", + "pc": [ + 3395 + ] + }, + { + "teal": 3533, + "source": "contracts/NFDInstance.algo.ts:816", + "pc": [ + 3396, + 3397 + ] + }, + { + "teal": 3537, + "source": "contracts/NFDInstance.algo.ts:817", + "pc": [ + 3398, + 3399 + ] + }, + { + "teal": 3538, + "source": "contracts/NFDInstance.algo.ts:817", + "pc": [ + 3400, + 3401 + ] + }, + { + "teal": 3542, + "source": "contracts/NFDInstance.algo.ts:818", + "pc": [ + 3402, + 3403 + ] + }, + { + "teal": 3543, + "source": "contracts/NFDInstance.algo.ts:818", + "pc": [ + 3404, + 3405 + ] + }, + { + "teal": 3547, + "source": "contracts/NFDInstance.algo.ts:819", + "pc": [ + 3406, + 3407, + 3408, + 3409, + 3410, + 3411, + 3412, + 3413, + 3414, + 3415, + 3416, + 3417 + ] + }, + { + "teal": 3548, + "source": "contracts/NFDInstance.algo.ts:819", + "pc": [ + 3418, + 3419 + ] + }, + { + "teal": 3551, + "source": "contracts/NFDInstance.algo.ts:816", + "pc": [ + 3420 + ] + }, + { + "teal": 3552, + "source": "contracts/NFDInstance.algo.ts:816", + "pc": [ + 3421, + 3422 + ] + }, + { + "teal": 3555, + "source": "contracts/NFDInstance.algo.ts:816", + "pc": [ + 3423 + ] + }, + { + "teal": 3560, + "source": "contracts/NFDInstance.algo.ts:825", + "pc": [ + 3424, + 3425 + ] + }, + { + "teal": 3561, + "source": "contracts/NFDInstance.algo.ts:825", + "pc": [ + 3426, + 3427, + 3428 + ] + }, + { + "teal": 3562, + "source": "contracts/NFDInstance.algo.ts:825", + "pc": [ + 3429 + ] + }, + { + "teal": 3563, + "source": "contracts/NFDInstance.algo.ts:825", + "pc": [ + 3430 + ] + }, + { + "teal": 3564, + "source": "contracts/NFDInstance.algo.ts:825", + "pc": [ + 3431 + ] + }, + { + "teal": 3565, + "source": "contracts/NFDInstance.algo.ts:825", + "pc": [ + 3432, + 3433, + 3434 + ] + }, + { + "teal": 3570, + "source": "contracts/NFDInstance.algo.ts:826", + "pc": [ + 3435, + 3436 + ] + }, + { + "teal": 3571, + "source": "contracts/NFDInstance.algo.ts:826", + "pc": [ + 3437 + ] + }, + { + "teal": 3575, + "source": "contracts/NFDInstance.algo.ts:827", + "pc": [ + 3438, + 3439 + ] + }, + { + "teal": 3576, + "source": "contracts/NFDInstance.algo.ts:827", + "pc": [ + 3440 + ] + }, + { + "teal": 3577, + "source": "contracts/NFDInstance.algo.ts:825", + "pc": [ + 3441, + 3442, + 3443 + ] + }, + { + "teal": 3582, + "source": "contracts/NFDInstance.algo.ts:829", + "pc": [ + 3444, + 3445 + ] + }, + { + "teal": 3583, + "source": "contracts/NFDInstance.algo.ts:829", + "pc": [ + 3446, + 3447 + ] + }, + { + "teal": 3584, + "source": "contracts/NFDInstance.algo.ts:829", + "pc": [ + 3448 + ] + }, + { + "teal": 3585, + "source": "contracts/NFDInstance.algo.ts:829", + "pc": [ + 3449 + ] + }, + { + "teal": 3589, + "source": "contracts/NFDInstance.algo.ts:830", + "pc": [ + 3450, + 3451 + ] + }, + { + "teal": 3590, + "source": "contracts/NFDInstance.algo.ts:830", + "pc": [ + 3452, + 3453 + ] + }, + { + "teal": 3591, + "source": "contracts/NFDInstance.algo.ts:830", + "pc": [ + 3454 + ] + }, + { + "teal": 3592, + "source": "contracts/NFDInstance.algo.ts:830", + "pc": [ + 3455 + ] + }, + { + "teal": 3596, + "source": "contracts/NFDInstance.algo.ts:831", + "pc": [ + 3456, + 3457 + ] + }, + { + "teal": 3597, + "source": "contracts/NFDInstance.algo.ts:831", + "pc": [ + 3458 + ] + }, + { + "teal": 3601, + "source": "contracts/NFDInstance.algo.ts:832", + "pc": [ + 3459, + 3460 + ] + }, + { + "teal": 3602, + "source": "contracts/NFDInstance.algo.ts:832", + "pc": [ + 3461 + ] + }, + { + "teal": 3610, + "source": "contracts/NFDInstance.algo.ts:838", + "pc": [ + 3462, + 3463 + ] + }, + { + "teal": 3611, + "source": "contracts/NFDInstance.algo.ts:838", + "pc": [ + 3464 + ] + }, + { + "teal": 3612, + "source": "contracts/NFDInstance.algo.ts:838", + "pc": [ + 3465 + ] + }, + { + "teal": 3613, + "source": "contracts/NFDInstance.algo.ts:838", + "pc": [ + 3466, + 3467, + 3468 + ] + }, + { + "teal": 3622, + "source": "contracts/NFDInstance.algo.ts:839", + "pc": [ + 3469 + ] + }, + { + "teal": 3623, + "source": "contracts/NFDInstance.algo.ts:839", + "pc": [ + 3470 + ] + }, + { + "teal": 3624, + "source": "contracts/NFDInstance.algo.ts:839", + "pc": [ + 3471, + 3472 + ] + }, + { + "teal": 3628, + "source": "contracts/NFDInstance.algo.ts:840", + "pc": [ + 3473, + 3474 + ] + }, + { + "teal": 3629, + "source": "contracts/NFDInstance.algo.ts:840", + "pc": [ + 3475, + 3476 + ] + }, + { + "teal": 3633, + "source": "contracts/NFDInstance.algo.ts:841", + "pc": [ + 3477, + 3478 + ] + }, + { + "teal": 3634, + "source": "contracts/NFDInstance.algo.ts:841", + "pc": [ + 3479, + 3480 + ] + }, + { + "teal": 3638, + "source": "contracts/NFDInstance.algo.ts:842", + "pc": [ + 3481, + 3482, + 3483, + 3484, + 3485, + 3486, + 3487, + 3488, + 3489 + ] + }, + { + "teal": 3639, + "source": "contracts/NFDInstance.algo.ts:842", + "pc": [ + 3490, + 3491 + ] + }, + { + "teal": 3642, + "source": "contracts/NFDInstance.algo.ts:839", + "pc": [ + 3492 + ] + }, + { + "teal": 3643, + "source": "contracts/NFDInstance.algo.ts:839", + "pc": [ + 3493, + 3494 + ] + }, + { + "teal": 3646, + "source": "contracts/NFDInstance.algo.ts:839", + "pc": [ + 3495 + ] + }, + { + "teal": 3649, + "source": "contracts/NFDInstance.algo.ts:797", + "pc": [ + 3496 + ] + }, + { + "teal": 3654, + "source": "contracts/NFDInstance.algo.ts:848", + "pc": [ + 3497, + 3498 + ] + }, + { + "teal": 3657, + "source": "contracts/NFDInstance.algo.ts:848", + "pc": [ + 3499, + 3500, + 3501 + ] + }, + { + "teal": 3658, + "source": "contracts/NFDInstance.algo.ts:848", + "pc": [ + 3502 + ] + }, + { + "teal": 3659, + "source": "contracts/NFDInstance.algo.ts:848", + "pc": [ + 3503 + ] + }, + { + "teal": 3660, + "source": "contracts/NFDInstance.algo.ts:848", + "pc": [ + 3504 + ] + }, + { + "teal": 3661, + "source": "contracts/NFDInstance.algo.ts:848", + "pc": [ + 3505 + ] + }, + { + "teal": 3662, + "source": "contracts/NFDInstance.algo.ts:848", + "pc": [ + 3506 + ] + }, + { + "teal": 3666, + "source": "contracts/NFDInstance.algo.ts:848", + "pc": [ + 3507, + 3508, + 3509 + ] + }, + { + "teal": 3670, + "source": "contracts/NFDInstance.algo.ts:850", + "pc": [ + 3510, + 3511 + ] + }, + { + "teal": 3671, + "source": "contracts/NFDInstance.algo.ts:850", + "pc": [ + 3512, + 3513, + 3514 + ] + }, + { + "teal": 3672, + "source": "contracts/NFDInstance.algo.ts:850", + "pc": [ + 3515, + 3516 + ] + }, + { + "teal": 3673, + "source": "contracts/NFDInstance.algo.ts:850", + "pc": [ + 3517, + 3518 + ] + }, + { + "teal": 3674, + "source": "contracts/NFDInstance.algo.ts:850", + "pc": [ + 3519, + 3520, + 3521 + ] + }, + { + "teal": 3675, + "source": "contracts/NFDInstance.algo.ts:850", + "pc": [ + 3522 + ] + }, + { + "teal": 3676, + "source": "contracts/NFDInstance.algo.ts:848", + "pc": [ + 3523 + ] + }, + { + "teal": 3681, + "source": "contracts/NFDInstance.algo.ts:855", + "pc": [ + 3524, + 3525, + 3526 + ] + }, + { + "teal": 3682, + "source": "contracts/NFDInstance.algo.ts:855", + "pc": [ + 3527, + 3528, + 3529 + ] + }, + { + "teal": 3685, + "source": "contracts/NFDInstance.algo.ts:855", + "pc": [ + 3530, + 3531, + 3532 + ] + }, + { + "teal": 3686, + "source": "contracts/NFDInstance.algo.ts:855", + "pc": [ + 3533 + ] + }, + { + "teal": 3687, + "source": "contracts/NFDInstance.algo.ts:855", + "pc": [ + 3534 + ] + }, + { + "teal": 3691, + "source": "contracts/NFDInstance.algo.ts:855", + "pc": [ + 3535, + 3536, + 3537 + ] + }, + { + "teal": 3698, + "source": "contracts/NFDInstance.algo.ts:857", + "pc": [ + 3538, + 3539 + ] + }, + { + "teal": 3699, + "source": "contracts/NFDInstance.algo.ts:857", + "pc": [ + 3540 + ] + }, + { + "teal": 3700, + "source": "contracts/NFDInstance.algo.ts:857", + "pc": [ + 3541 + ] + }, + { + "teal": 3701, + "source": "contracts/NFDInstance.algo.ts:857", + "pc": [ + 3542 + ] + }, + { + "teal": 3702, + "source": "contracts/NFDInstance.algo.ts:857", + "pc": [ + 3543 + ] + }, + { + "teal": 3703, + "source": "contracts/NFDInstance.algo.ts:857", + "pc": [ + 3544, + 3545, + 3546 + ] + }, + { + "teal": 3704, + "source": "contracts/NFDInstance.algo.ts:857", + "pc": [ + 3547, + 3548 + ] + }, + { + "teal": 3705, + "source": "contracts/NFDInstance.algo.ts:857", + "pc": [ + 3549, + 3550 + ] + }, + { + "teal": 3706, + "source": "contracts/NFDInstance.algo.ts:857", + "pc": [ + 3551 + ] + }, + { + "teal": 3707, + "source": "contracts/NFDInstance.algo.ts:857", + "pc": [ + 3552 + ] + }, + { + "teal": 3711, + "source": "contracts/NFDInstance.algo.ts:856", + "errorMessage": "must pass 32-byte hash that isn't 0", + "pc": [ + 3553 + ] + }, + { + "teal": 3718, + "source": "contracts/NFDInstance.algo.ts:862", + "pc": [ + 3554, + 3555 + ] + }, + { + "teal": 3719, + "source": "contracts/NFDInstance.algo.ts:862", + "pc": [ + 3556 + ] + }, + { + "teal": 3720, + "source": "contracts/NFDInstance.algo.ts:862", + "pc": [ + 3557 + ] + }, + { + "teal": 3721, + "source": "contracts/NFDInstance.algo.ts:862", + "pc": [ + 3558 + ] + }, + { + "teal": 3722, + "source": "contracts/NFDInstance.algo.ts:862", + "pc": [ + 3559 + ] + }, + { + "teal": 3723, + "source": "contracts/NFDInstance.algo.ts:862", + "pc": [ + 3560, + 3561, + 3562 + ] + }, + { + "teal": 3724, + "source": "contracts/NFDInstance.algo.ts:862", + "pc": [ + 3563, + 3564, + 3565 + ] + }, + { + "teal": 3725, + "source": "contracts/NFDInstance.algo.ts:862", + "pc": [ + 3566 + ] + }, + { + "teal": 3729, + "source": "contracts/NFDInstance.algo.ts:861", + "errorMessage": "only txnlab or owner can request an nfd nft hash update", + "pc": [ + 3567 + ] + }, + { + "teal": 3738, + "source": "contracts/NFDInstance.algo.ts:865", + "pc": [ + 3568 + ] + }, + { + "teal": 3739, + "source": "contracts/NFDInstance.algo.ts:865", + "pc": [ + 3569, + 3570 + ] + }, + { + "teal": 3740, + "source": "contracts/NFDInstance.algo.ts:865", + "pc": [ + 3571, + 3572 + ] + }, + { + "teal": 3744, + "source": "contracts/NFDInstance.algo.ts:866", + "pc": [ + 3573, + 3574 + ] + }, + { + "teal": 3745, + "source": "contracts/NFDInstance.algo.ts:866", + "pc": [ + 3575 + ] + }, + { + "teal": 3746, + "source": "contracts/NFDInstance.algo.ts:866", + "pc": [ + 3576 + ] + }, + { + "teal": 3747, + "source": "contracts/NFDInstance.algo.ts:866", + "pc": [ + 3577, + 3578 + ] + }, + { + "teal": 3751, + "source": "contracts/NFDInstance.algo.ts:867", + "pc": [ + 3579, + 3580 + ] + }, + { + "teal": 3752, + "source": "contracts/NFDInstance.algo.ts:867", + "pc": [ + 3581, + 3582 + ] + }, + { + "teal": 3756, + "source": "contracts/NFDInstance.algo.ts:868", + "pc": [ + 3583, + 3584 + ] + }, + { + "teal": 3757, + "source": "contracts/NFDInstance.algo.ts:868", + "pc": [ + 3585, + 3586 + ] + }, + { + "teal": 3761, + "source": "contracts/NFDInstance.algo.ts:869", + "pc": [ + 3587, + 3588 + ] + }, + { + "teal": 3762, + "source": "contracts/NFDInstance.algo.ts:869", + "pc": [ + 3589, + 3590 + ] + }, + { + "teal": 3765, + "source": "contracts/NFDInstance.algo.ts:865", + "pc": [ + 3591 + ] + }, + { + "teal": 3766, + "source": "contracts/NFDInstance.algo.ts:865", + "pc": [ + 3592, + 3593 + ] + }, + { + "teal": 3769, + "source": "contracts/NFDInstance.algo.ts:865", + "pc": [ + 3594 + ] + }, + { + "teal": 3770, + "source": "contracts/NFDInstance.algo.ts:855", + "pc": [ + 3595 + ] + }, + { + "teal": 3775, + "source": "contracts/NFDInstance.algo.ts:876", + "pc": [ + 3596, + 3597, + 3598 + ] + }, + { + "teal": 3776, + "source": "contracts/NFDInstance.algo.ts:876", + "pc": [ + 3599 + ] + }, + { + "teal": 3777, + "source": "contracts/NFDInstance.algo.ts:876", + "pc": [ + 3600 + ] + }, + { + "teal": 3778, + "source": "contracts/NFDInstance.algo.ts:876", + "pc": [ + 3601 + ] + }, + { + "teal": 3779, + "source": "contracts/NFDInstance.algo.ts:876", + "pc": [ + 3602 + ] + }, + { + "teal": 3782, + "source": "contracts/NFDInstance.algo.ts:876", + "errorMessage": "argument 0 (lock) for contractLock must be a bool", + "pc": [ + 3603 + ] + }, + { + "teal": 3783, + "source": "contracts/NFDInstance.algo.ts:876", + "pc": [ + 3604 + ] + }, + { + "teal": 3784, + "source": "contracts/NFDInstance.algo.ts:876", + "pc": [ + 3605 + ] + }, + { + "teal": 3787, + "source": "contracts/NFDInstance.algo.ts:876", + "pc": [ + 3606, + 3607, + 3608 + ] + }, + { + "teal": 3788, + "source": "contracts/NFDInstance.algo.ts:876", + "pc": [ + 3609 + ] + }, + { + "teal": 3789, + "source": "contracts/NFDInstance.algo.ts:876", + "pc": [ + 3610 + ] + }, + { + "teal": 3793, + "source": "contracts/NFDInstance.algo.ts:876", + "pc": [ + 3611, + 3612, + 3613 + ] + }, + { + "teal": 3797, + "source": "contracts/NFDInstance.algo.ts:877", + "pc": [ + 3614, + 3615, + 3616 + ] + }, + { + "teal": 3801, + "source": "contracts/NFDInstance.algo.ts:878", + "pc": [ + 3617 + ] + }, + { + "teal": 3802, + "source": "contracts/NFDInstance.algo.ts:878", + "pc": [ + 3618, + 3619 + ] + }, + { + "teal": 3803, + "source": "contracts/NFDInstance.algo.ts:878", + "pc": [ + 3620 + ] + }, + { + "teal": 3804, + "source": "contracts/NFDInstance.algo.ts:878", + "pc": [ + 3621 + ] + }, + { + "teal": 3808, + "source": "contracts/NFDInstance.algo.ts:879", + "pc": [ + 3622, + 3623 + ] + }, + { + "teal": 3809, + "source": "contracts/NFDInstance.algo.ts:879", + "pc": [ + 3624, + 3625 + ] + }, + { + "teal": 3810, + "source": "contracts/NFDInstance.algo.ts:879", + "pc": [ + 3626, + 3627, + 3628 + ] + }, + { + "teal": 3811, + "source": "contracts/NFDInstance.algo.ts:879", + "pc": [ + 3629, + 3630 + ] + }, + { + "teal": 3812, + "source": "contracts/NFDInstance.algo.ts:879", + "pc": [ + 3631, + 3632, + 3633 + ] + }, + { + "teal": 3815, + "source": "contracts/NFDInstance.algo.ts:879", + "pc": [ + 3634, + 3635 + ] + }, + { + "teal": 3818, + "source": "contracts/NFDInstance.algo.ts:879", + "pc": [ + 3636 + ] + }, + { + "teal": 3819, + "source": "contracts/NFDInstance.algo.ts:876", + "pc": [ + 3637 + ] + }, + { + "teal": 3824, + "source": "contracts/NFDInstance.algo.ts:884", + "pc": [ + 3638, + 3639, + 3640 + ] + }, + { + "teal": 3825, + "source": "contracts/NFDInstance.algo.ts:884", + "pc": [ + 3641 + ] + }, + { + "teal": 3828, + "source": "contracts/NFDInstance.algo.ts:884", + "pc": [ + 3642, + 3643, + 3644 + ] + }, + { + "teal": 3829, + "source": "contracts/NFDInstance.algo.ts:884", + "pc": [ + 3645 + ] + }, + { + "teal": 3830, + "source": "contracts/NFDInstance.algo.ts:884", + "pc": [ + 3646 + ] + }, + { + "teal": 3831, + "source": "contracts/NFDInstance.algo.ts:884", + "pc": [ + 3647 + ] + }, + { + "teal": 3832, + "source": "contracts/NFDInstance.algo.ts:884", + "pc": [ + 3648 + ] + }, + { + "teal": 3835, + "source": "contracts/NFDInstance.algo.ts:884", + "errorMessage": "argument 1 (lock) for segmentLock must be a bool", + "pc": [ + 3649 + ] + }, + { + "teal": 3836, + "source": "contracts/NFDInstance.algo.ts:884", + "pc": [ + 3650 + ] + }, + { + "teal": 3837, + "source": "contracts/NFDInstance.algo.ts:884", + "pc": [ + 3651 + ] + }, + { + "teal": 3840, + "source": "contracts/NFDInstance.algo.ts:884", + "pc": [ + 3652, + 3653, + 3654 + ] + }, + { + "teal": 3841, + "source": "contracts/NFDInstance.algo.ts:884", + "pc": [ + 3655 + ] + }, + { + "teal": 3842, + "source": "contracts/NFDInstance.algo.ts:884", + "pc": [ + 3656 + ] + }, + { + "teal": 3846, + "source": "contracts/NFDInstance.algo.ts:884", + "pc": [ + 3657, + 3658, + 3659 + ] + }, + { + "teal": 3849, + "source": "contracts/NFDInstance.algo.ts:884", + "pc": [ + 3660 + ] + }, + { + "teal": 3853, + "source": "contracts/NFDInstance.algo.ts:885", + "pc": [ + 3661, + 3662, + 3663 + ] + }, + { + "teal": 3857, + "source": "contracts/NFDInstance.algo.ts:886", + "pc": [ + 3664 + ] + }, + { + "teal": 3858, + "source": "contracts/NFDInstance.algo.ts:886", + "pc": [ + 3665, + 3666 + ] + }, + { + "teal": 3859, + "source": "contracts/NFDInstance.algo.ts:886", + "pc": [ + 3667 + ] + }, + { + "teal": 3860, + "source": "contracts/NFDInstance.algo.ts:886", + "pc": [ + 3668 + ] + }, + { + "teal": 3864, + "source": "contracts/NFDInstance.algo.ts:887", + "pc": [ + 3669, + 3670 + ] + }, + { + "teal": 3865, + "source": "contracts/NFDInstance.algo.ts:887", + "pc": [ + 3671, + 3672 + ] + }, + { + "teal": 3866, + "source": "contracts/NFDInstance.algo.ts:887", + "pc": [ + 3673, + 3674, + 3675 + ] + }, + { + "teal": 3867, + "source": "contracts/NFDInstance.algo.ts:887", + "pc": [ + 3676, + 3677 + ] + }, + { + "teal": 3868, + "source": "contracts/NFDInstance.algo.ts:887", + "pc": [ + 3678, + 3679, + 3680 + ] + }, + { + "teal": 3871, + "source": "contracts/NFDInstance.algo.ts:887", + "pc": [ + 3681, + 3682 + ] + }, + { + "teal": 3874, + "source": "contracts/NFDInstance.algo.ts:887", + "pc": [ + 3683 + ] + }, + { + "teal": 3879, + "source": "contracts/NFDInstance.algo.ts:888", + "pc": [ + 3684, + 3685 + ] + }, + { + "teal": 3880, + "source": "contracts/NFDInstance.algo.ts:888", + "pc": [ + 3686, + 3687, + 3688 + ] + }, + { + "teal": 3885, + "source": "contracts/NFDInstance.algo.ts:889", + "pc": [ + 3689, + 3690 + ] + }, + { + "teal": 3886, + "source": "contracts/NFDInstance.algo.ts:889", + "pc": [ + 3691 + ] + }, + { + "teal": 3887, + "source": "contracts/NFDInstance.algo.ts:888", + "pc": [ + 3692, + 3693, + 3694 + ] + }, + { + "teal": 3894, + "source": "contracts/NFDInstance.algo.ts:892", + "pc": [ + 3695 + ] + }, + { + "teal": 3895, + "source": "contracts/NFDInstance.algo.ts:892", + "pc": [ + 3696, + 3697 + ] + }, + { + "teal": 3896, + "source": "contracts/NFDInstance.algo.ts:892", + "pc": [ + 3698, + 3699 + ] + }, + { + "teal": 3897, + "source": "contracts/NFDInstance.algo.ts:892", + "pc": [ + 3700, + 3701 + ] + }, + { + "teal": 3898, + "source": "contracts/NFDInstance.algo.ts:892", + "pc": [ + 3702, + 3703 + ] + }, + { + "teal": 3902, + "source": "contracts/NFDInstance.algo.ts:893", + "pc": [ + 3704, + 3705 + ] + }, + { + "teal": 3903, + "source": "contracts/NFDInstance.algo.ts:893", + "pc": [ + 3706, + 3707 + ] + }, + { + "teal": 3906, + "source": "contracts/NFDInstance.algo.ts:892", + "pc": [ + 3708 + ] + }, + { + "teal": 3907, + "source": "contracts/NFDInstance.algo.ts:892", + "pc": [ + 3709, + 3710 + ] + }, + { + "teal": 3910, + "source": "contracts/NFDInstance.algo.ts:892", + "pc": [ + 3711 + ] + }, + { + "teal": 3911, + "source": "contracts/NFDInstance.algo.ts:892", + "pc": [ + 3712, + 3713 + ] + }, + { + "teal": 3912, + "source": "contracts/NFDInstance.algo.ts:892", + "pc": [ + 3714 + ] + }, + { + "teal": 3913, + "source": "contracts/NFDInstance.algo.ts:892", + "pc": [ + 3715 + ] + }, + { + "teal": 3914, + "source": "contracts/NFDInstance.algo.ts:892", + "pc": [ + 3716, + 3717 + ] + }, + { + "teal": 3915, + "source": "contracts/NFDInstance.algo.ts:892", + "pc": [ + 3718, + 3719, + 3720 + ] + }, + { + "teal": 3916, + "source": "contracts/NFDInstance.algo.ts:892", + "pc": [ + 3721, + 3722 + ] + }, + { + "teal": 3923, + "source": "contracts/NFDInstance.algo.ts:896", + "pc": [ + 3723, + 3724 + ] + }, + { + "teal": 3924, + "source": "contracts/NFDInstance.algo.ts:896", + "pc": [ + 3725, + 3726 + ] + }, + { + "teal": 3925, + "source": "contracts/NFDInstance.algo.ts:896", + "pc": [ + 3727, + 3728, + 3729 + ] + }, + { + "teal": 3926, + "source": "contracts/NFDInstance.algo.ts:896", + "pc": [ + 3730 + ] + }, + { + "teal": 3927, + "source": "contracts/NFDInstance.algo.ts:896", + "pc": [ + 3731 + ] + }, + { + "teal": 3930, + "source": "contracts/NFDInstance.algo.ts:895", + "errorMessage": "amount must be at least NFD_MIN_SEGMENT_USD dollars in algo", + "pc": [ + 3732 + ] + }, + { + "teal": 3934, + "source": "contracts/NFDInstance.algo.ts:899", + "pc": [ + 3733, + 3734 + ] + }, + { + "teal": 3935, + "source": "contracts/NFDInstance.algo.ts:899", + "pc": [ + 3735, + 3736 + ] + }, + { + "teal": 3936, + "source": "contracts/NFDInstance.algo.ts:899", + "pc": [ + 3737 + ] + }, + { + "teal": 3937, + "source": "contracts/NFDInstance.algo.ts:899", + "pc": [ + 3738 + ] + }, + { + "teal": 3940, + "source": "contracts/NFDInstance.algo.ts:884", + "pc": [ + 3739 + ] + }, + { + "teal": 3945, + "source": "contracts/NFDInstance.algo.ts:907", + "pc": [ + 3740, + 3741, + 3742 + ] + }, + { + "teal": 3946, + "source": "contracts/NFDInstance.algo.ts:907", + "pc": [ + 3743 + ] + }, + { + "teal": 3947, + "source": "contracts/NFDInstance.algo.ts:907", + "pc": [ + 3744 + ] + }, + { + "teal": 3948, + "source": "contracts/NFDInstance.algo.ts:907", + "pc": [ + 3745 + ] + }, + { + "teal": 3949, + "source": "contracts/NFDInstance.algo.ts:907", + "pc": [ + 3746 + ] + }, + { + "teal": 3952, + "source": "contracts/NFDInstance.algo.ts:907", + "errorMessage": "argument 0 (lock) for vaultOptInLock must be a bool", + "pc": [ + 3747 + ] + }, + { + "teal": 3953, + "source": "contracts/NFDInstance.algo.ts:907", + "pc": [ + 3748 + ] + }, + { + "teal": 3954, + "source": "contracts/NFDInstance.algo.ts:907", + "pc": [ + 3749 + ] + }, + { + "teal": 3957, + "source": "contracts/NFDInstance.algo.ts:907", + "pc": [ + 3750, + 3751, + 3752 + ] + }, + { + "teal": 3958, + "source": "contracts/NFDInstance.algo.ts:907", + "pc": [ + 3753 + ] + }, + { + "teal": 3959, + "source": "contracts/NFDInstance.algo.ts:907", + "pc": [ + 3754 + ] + }, + { + "teal": 3963, + "source": "contracts/NFDInstance.algo.ts:907", + "pc": [ + 3755, + 3756, + 3757 + ] + }, + { + "teal": 3967, + "source": "contracts/NFDInstance.algo.ts:908", + "pc": [ + 3758, + 3759, + 3760 + ] + }, + { + "teal": 3971, + "source": "contracts/NFDInstance.algo.ts:909", + "pc": [ + 3761 + ] + }, + { + "teal": 3972, + "source": "contracts/NFDInstance.algo.ts:909", + "pc": [ + 3762, + 3763 + ] + }, + { + "teal": 3973, + "source": "contracts/NFDInstance.algo.ts:909", + "pc": [ + 3764 + ] + }, + { + "teal": 3974, + "source": "contracts/NFDInstance.algo.ts:909", + "pc": [ + 3765 + ] + }, + { + "teal": 3978, + "source": "contracts/NFDInstance.algo.ts:910", + "pc": [ + 3766, + 3767 + ] + }, + { + "teal": 3979, + "source": "contracts/NFDInstance.algo.ts:910", + "pc": [ + 3768, + 3769 + ] + }, + { + "teal": 3980, + "source": "contracts/NFDInstance.algo.ts:910", + "pc": [ + 3770, + 3771, + 3772 + ] + }, + { + "teal": 3981, + "source": "contracts/NFDInstance.algo.ts:910", + "pc": [ + 3773, + 3774 + ] + }, + { + "teal": 3982, + "source": "contracts/NFDInstance.algo.ts:910", + "pc": [ + 3775, + 3776, + 3777 + ] + }, + { + "teal": 3985, + "source": "contracts/NFDInstance.algo.ts:910", + "pc": [ + 3778, + 3779 + ] + }, + { + "teal": 3988, + "source": "contracts/NFDInstance.algo.ts:910", + "pc": [ + 3780 + ] + }, + { + "teal": 3989, + "source": "contracts/NFDInstance.algo.ts:907", + "pc": [ + 3781 + ] + }, + { + "teal": 3994, + "source": "contracts/NFDInstance.algo.ts:919", + "pc": [ + 3782, + 3783, + 3784 + ] + }, + { + "teal": 3995, + "source": "contracts/NFDInstance.algo.ts:919", + "pc": [ + 3785, + 3786, + 3787 + ] + }, + { + "teal": 3998, + "source": "contracts/NFDInstance.algo.ts:919", + "pc": [ + 3788, + 3789, + 3790 + ] + }, + { + "teal": 3999, + "source": "contracts/NFDInstance.algo.ts:919", + "pc": [ + 3791 + ] + }, + { + "teal": 4000, + "source": "contracts/NFDInstance.algo.ts:919", + "pc": [ + 3792 + ] + }, + { + "teal": 4004, + "source": "contracts/NFDInstance.algo.ts:919", + "pc": [ + 3793, + 3794, + 3795 + ] + }, + { + "teal": 4007, + "source": "contracts/NFDInstance.algo.ts:919", + "pc": [ + 3796 + ] + }, + { + "teal": 4008, + "source": "contracts/NFDInstance.algo.ts:919", + "pc": [ + 3797 + ] + }, + { + "teal": 4012, + "source": "contracts/NFDInstance.algo.ts:920", + "pc": [ + 3798, + 3799, + 3800 + ] + }, + { + "teal": 4017, + "source": "contracts/NFDInstance.algo.ts:924", + "pc": [ + 3801, + 3802, + 3803 + ] + }, + { + "teal": 4018, + "source": "contracts/NFDInstance.algo.ts:924", + "pc": [ + 3804, + 3805, + 3806 + ] + }, + { + "teal": 4026, + "source": "contracts/NFDInstance.algo.ts:926", + "pc": [ + 3807, + 3808 + ] + }, + { + "teal": 4027, + "source": "contracts/NFDInstance.algo.ts:926", + "pc": [ + 3809 + ] + }, + { + "teal": 4028, + "source": "contracts/NFDInstance.algo.ts:926", + "pc": [ + 3810 + ] + }, + { + "teal": 4029, + "source": "contracts/NFDInstance.algo.ts:926", + "pc": [ + 3811 + ] + }, + { + "teal": 4032, + "source": "contracts/NFDInstance.algo.ts:925", + "errorMessage": "sender must be owner when vault locked", + "pc": [ + 3812 + ] + }, + { + "teal": 4037, + "source": "contracts/NFDInstance.algo.ts:931", + "pc": [ + 3813, + 3814 + ] + }, + { + "teal": 4038, + "source": "contracts/NFDInstance.algo.ts:931", + "pc": [ + 3815 + ] + }, + { + "teal": 4039, + "source": "contracts/NFDInstance.algo.ts:931", + "pc": [ + 3816 + ] + }, + { + "teal": 4042, + "source": "contracts/NFDInstance.algo.ts:931", + "errorMessage": "part of opt-in for new asset, must have prior txn paying MBR", + "pc": [ + 3817 + ] + }, + { + "teal": 4049, + "source": "contracts/NFDInstance.algo.ts:933", + "pc": [ + 3818, + 3819 + ] + }, + { + "teal": 4050, + "source": "contracts/NFDInstance.algo.ts:933", + "pc": [ + 3820 + ] + }, + { + "teal": 4051, + "source": "contracts/NFDInstance.algo.ts:933", + "pc": [ + 3821 + ] + }, + { + "teal": 4052, + "source": "contracts/NFDInstance.algo.ts:933", + "pc": [ + 3822, + 3823 + ] + }, + { + "teal": 4055, + "source": "contracts/NFDInstance.algo.ts:933", + "pc": [ + 3824, + 3825 + ] + }, + { + "teal": 4056, + "source": "contracts/NFDInstance.algo.ts:933", + "pc": [ + 3826, + 3827 + ] + }, + { + "teal": 4057, + "source": "contracts/NFDInstance.algo.ts:933", + "pc": [ + 3828 + ] + }, + { + "teal": 4058, + "source": "contracts/NFDInstance.algo.ts:933", + "pc": [ + 3829 + ] + }, + { + "teal": 4061, + "source": "contracts/NFDInstance.algo.ts:933", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"typeEnum\",\"expected\":\"pay\"}", + "pc": [ + 3830 + ] + }, + { + "teal": 4064, + "source": "contracts/NFDInstance.algo.ts:934", + "pc": [ + 3831, + 3832 + ] + }, + { + "teal": 4065, + "source": "contracts/NFDInstance.algo.ts:934", + "pc": [ + 3833, + 3834 + ] + }, + { + "teal": 4066, + "source": "contracts/NFDInstance.algo.ts:934", + "pc": [ + 3835, + 3836 + ] + }, + { + "teal": 4067, + "source": "contracts/NFDInstance.algo.ts:934", + "pc": [ + 3837 + ] + }, + { + "teal": 4070, + "source": "contracts/NFDInstance.algo.ts:934", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", + "pc": [ + 3838 + ] + }, + { + "teal": 4073, + "source": "contracts/NFDInstance.algo.ts:935", + "pc": [ + 3839, + 3840 + ] + }, + { + "teal": 4074, + "source": "contracts/NFDInstance.algo.ts:935", + "pc": [ + 3841, + 3842 + ] + }, + { + "teal": 4075, + "source": "contracts/NFDInstance.algo.ts:935", + "pc": [ + 3843, + 3844 + ] + }, + { + "teal": 4076, + "source": "contracts/NFDInstance.algo.ts:935", + "pc": [ + 3845, + 3846 + ] + }, + { + "teal": 4077, + "source": "contracts/NFDInstance.algo.ts:935", + "pc": [ + 3847 + ] + }, + { + "teal": 4078, + "source": "contracts/NFDInstance.algo.ts:935", + "pc": [ + 3848, + 3849 + ] + }, + { + "teal": 4079, + "source": "contracts/NFDInstance.algo.ts:935", + "pc": [ + 3850 + ] + }, + { + "teal": 4080, + "source": "contracts/NFDInstance.algo.ts:935", + "pc": [ + 3851 + ] + }, + { + "teal": 4081, + "source": "contracts/NFDInstance.algo.ts:935", + "pc": [ + 3852 + ] + }, + { + "teal": 4084, + "source": "contracts/NFDInstance.algo.ts:935", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"amount\",\"expected\":\"100_000 * assets.length\"}", + "pc": [ + 3853 + ] + }, + { + "teal": 4088, + "source": "contracts/NFDInstance.algo.ts:937", + "pc": [ + 3854 + ] + }, + { + "teal": 4089, + "source": "contracts/NFDInstance.algo.ts:937", + "pc": [ + 3855, + 3856 + ] + }, + { + "teal": 4094, + "source": "contracts/NFDInstance.algo.ts:937", + "pc": [ + 3857, + 3858 + ] + }, + { + "teal": 4095, + "source": "contracts/NFDInstance.algo.ts:937", + "pc": [ + 3859, + 3860 + ] + }, + { + "teal": 4096, + "source": "contracts/NFDInstance.algo.ts:937", + "pc": [ + 3861 + ] + }, + { + "teal": 4097, + "source": "contracts/NFDInstance.algo.ts:937", + "pc": [ + 3862, + 3863 + ] + }, + { + "teal": 4098, + "source": "contracts/NFDInstance.algo.ts:937", + "pc": [ + 3864 + ] + }, + { + "teal": 4099, + "source": "contracts/NFDInstance.algo.ts:937", + "pc": [ + 3865 + ] + }, + { + "teal": 4100, + "source": "contracts/NFDInstance.algo.ts:937", + "pc": [ + 3866, + 3867, + 3868 + ] + }, + { + "teal": 4104, + "source": "contracts/NFDInstance.algo.ts:938", + "pc": [ + 3869, + 3870 + ] + }, + { + "teal": 4105, + "source": "contracts/NFDInstance.algo.ts:938", + "pc": [ + 3871, + 3872 + ] + }, + { + "teal": 4106, + "source": "contracts/NFDInstance.algo.ts:938", + "pc": [ + 3873 + ] + }, + { + "teal": 4107, + "source": "contracts/NFDInstance.algo.ts:938", + "pc": [ + 3874, + 3875 + ] + }, + { + "teal": 4108, + "source": "contracts/NFDInstance.algo.ts:938", + "pc": [ + 3876, + 3877 + ] + }, + { + "teal": 4109, + "source": "contracts/NFDInstance.algo.ts:938", + "pc": [ + 3878 + ] + }, + { + "teal": 4110, + "source": "contracts/NFDInstance.algo.ts:938", + "pc": [ + 3879 + ] + }, + { + "teal": 4111, + "source": "contracts/NFDInstance.algo.ts:938", + "pc": [ + 3880, + 3881 + ] + }, + { + "teal": 4112, + "source": "contracts/NFDInstance.algo.ts:938", + "pc": [ + 3882 + ] + }, + { + "teal": 4113, + "source": "contracts/NFDInstance.algo.ts:938", + "pc": [ + 3883, + 3884 + ] + }, + { + "teal": 4114, + "source": "contracts/NFDInstance.algo.ts:938", + "pc": [ + 3885 + ] + }, + { + "teal": 4115, + "source": "contracts/NFDInstance.algo.ts:938", + "pc": [ + 3886 + ] + }, + { + "teal": 4116, + "source": "contracts/NFDInstance.algo.ts:938", + "pc": [ + 3887, + 3888 + ] + }, + { + "teal": 4121, + "source": "contracts/NFDInstance.algo.ts:940", + "pc": [ + 3889, + 3890 + ] + }, + { + "teal": 4122, + "source": "contracts/NFDInstance.algo.ts:940", + "pc": [ + 3891, + 3892 + ] + }, + { + "teal": 4123, + "source": "contracts/NFDInstance.algo.ts:940", + "pc": [ + 3893, + 3894 + ] + }, + { + "teal": 4124, + "source": "contracts/NFDInstance.algo.ts:940", + "pc": [ + 3895 + ] + }, + { + "teal": 4125, + "source": "contracts/NFDInstance.algo.ts:940", + "pc": [ + 3896 + ] + }, + { + "teal": 4126, + "source": "contracts/NFDInstance.algo.ts:940", + "pc": [ + 3897 + ] + }, + { + "teal": 4127, + "source": "contracts/NFDInstance.algo.ts:940", + "pc": [ + 3898, + 3899, + 3900 + ] + }, + { + "teal": 4136, + "source": "contracts/NFDInstance.algo.ts:941", + "pc": [ + 3901 + ] + }, + { + "teal": 4137, + "source": "contracts/NFDInstance.algo.ts:941", + "pc": [ + 3902, + 3903 + ] + }, + { + "teal": 4138, + "source": "contracts/NFDInstance.algo.ts:941", + "pc": [ + 3904, + 3905 + ] + }, + { + "teal": 4142, + "source": "contracts/NFDInstance.algo.ts:942", + "pc": [ + 3906, + 3907 + ] + }, + { + "teal": 4143, + "source": "contracts/NFDInstance.algo.ts:942", + "pc": [ + 3908, + 3909 + ] + }, + { + "teal": 4147, + "source": "contracts/NFDInstance.algo.ts:943", + "pc": [ + 3910, + 3911 + ] + }, + { + "teal": 4148, + "source": "contracts/NFDInstance.algo.ts:943", + "pc": [ + 3912, + 3913 + ] + }, + { + "teal": 4152, + "source": "contracts/NFDInstance.algo.ts:944", + "pc": [ + 3914 + ] + }, + { + "teal": 4153, + "source": "contracts/NFDInstance.algo.ts:944", + "pc": [ + 3915, + 3916 + ] + }, + { + "teal": 4156, + "source": "contracts/NFDInstance.algo.ts:941", + "pc": [ + 3917 + ] + }, + { + "teal": 4157, + "source": "contracts/NFDInstance.algo.ts:941", + "pc": [ + 3918, + 3919 + ] + }, + { + "teal": 4160, + "source": "contracts/NFDInstance.algo.ts:941", + "pc": [ + 3920 + ] + }, + { + "teal": 4167, + "source": "contracts/NFDInstance.algo.ts:937", + "pc": [ + 3921, + 3922 + ] + }, + { + "teal": 4168, + "source": "contracts/NFDInstance.algo.ts:937", + "pc": [ + 3923 + ] + }, + { + "teal": 4169, + "source": "contracts/NFDInstance.algo.ts:937", + "pc": [ + 3924 + ] + }, + { + "teal": 4170, + "source": "contracts/NFDInstance.algo.ts:937", + "pc": [ + 3925, + 3926 + ] + }, + { + "teal": 4171, + "source": "contracts/NFDInstance.algo.ts:937", + "pc": [ + 3927, + 3928, + 3929 + ] + }, + { + "teal": 4174, + "source": "contracts/NFDInstance.algo.ts:919", + "pc": [ + 3930 + ] + }, + { + "teal": 4179, + "source": "contracts/NFDInstance.algo.ts:958", + "pc": [ + 3931, + 3932, + 3933 + ] + }, + { + "teal": 4180, + "source": "contracts/NFDInstance.algo.ts:958", + "pc": [ + 3934, + 3935, + 3936 + ] + }, + { + "teal": 4183, + "source": "contracts/NFDInstance.algo.ts:958", + "pc": [ + 3937, + 3938, + 3939 + ] + }, + { + "teal": 4184, + "source": "contracts/NFDInstance.algo.ts:958", + "pc": [ + 3940 + ] + }, + { + "teal": 4187, + "source": "contracts/NFDInstance.algo.ts:958", + "pc": [ + 3941, + 3942, + 3943 + ] + }, + { + "teal": 4188, + "source": "contracts/NFDInstance.algo.ts:958", + "pc": [ + 3944, + 3945, + 3946 + ] + }, + { + "teal": 4191, + "source": "contracts/NFDInstance.algo.ts:958", + "pc": [ + 3947, + 3948, + 3949 + ] + }, + { + "teal": 4192, + "source": "contracts/NFDInstance.algo.ts:958", + "pc": [ + 3950 + ] + }, + { + "teal": 4193, + "source": "contracts/NFDInstance.algo.ts:958", + "pc": [ + 3951 + ] + }, + { + "teal": 4194, + "source": "contracts/NFDInstance.algo.ts:958", + "pc": [ + 3952 + ] + }, + { + "teal": 4195, + "source": "contracts/NFDInstance.algo.ts:958", + "pc": [ + 3953 + ] + }, + { + "teal": 4198, + "source": "contracts/NFDInstance.algo.ts:958", + "errorMessage": "argument 3 (receiver) for vaultSend must be a address", + "pc": [ + 3954 + ] + }, + { + "teal": 4201, + "source": "contracts/NFDInstance.algo.ts:958", + "pc": [ + 3955, + 3956, + 3957 + ] + }, + { + "teal": 4202, + "source": "contracts/NFDInstance.algo.ts:958", + "pc": [ + 3958 + ] + }, + { + "teal": 4205, + "source": "contracts/NFDInstance.algo.ts:958", + "pc": [ + 3959, + 3960, + 3961 + ] + }, + { + "teal": 4206, + "source": "contracts/NFDInstance.algo.ts:958", + "pc": [ + 3962 + ] + }, + { + "teal": 4207, + "source": "contracts/NFDInstance.algo.ts:958", + "pc": [ + 3963 + ] + }, + { + "teal": 4211, + "source": "contracts/NFDInstance.algo.ts:958", + "pc": [ + 3964, + 3965, + 3966 + ] + }, + { + "teal": 4214, + "source": "contracts/NFDInstance.algo.ts:958", + "pc": [ + 3967 + ] + }, + { + "teal": 4215, + "source": "contracts/NFDInstance.algo.ts:958", + "pc": [ + 3968, + 3969 + ] + }, + { + "teal": 4219, + "source": "contracts/NFDInstance.algo.ts:964", + "pc": [ + 3970, + 3971, + 3972 + ] + }, + { + "teal": 4223, + "source": "contracts/NFDInstance.algo.ts:965", + "pc": [ + 3973, + 3974 + ] + }, + { + "teal": 4224, + "source": "contracts/NFDInstance.algo.ts:965", + "pc": [ + 3975, + 3976 + ] + }, + { + "teal": 4225, + "source": "contracts/NFDInstance.algo.ts:965", + "pc": [ + 3977 + ] + }, + { + "teal": 4226, + "source": "contracts/NFDInstance.algo.ts:965", + "pc": [ + 3978 + ] + }, + { + "teal": 4231, + "source": "contracts/NFDInstance.algo.ts:967", + "pc": [ + 3979, + 3980 + ] + }, + { + "teal": 4232, + "source": "contracts/NFDInstance.algo.ts:967", + "pc": [ + 3981 + ] + }, + { + "teal": 4233, + "source": "contracts/NFDInstance.algo.ts:967", + "pc": [ + 3982 + ] + }, + { + "teal": 4234, + "source": "contracts/NFDInstance.algo.ts:967", + "pc": [ + 3983, + 3984, + 3985 + ] + }, + { + "teal": 4239, + "source": "contracts/NFDInstance.algo.ts:968", + "pc": [ + 3986, + 3987 + ] + }, + { + "teal": 4240, + "source": "contracts/NFDInstance.algo.ts:968", + "pc": [ + 3988 + ] + }, + { + "teal": 4241, + "source": "contracts/NFDInstance.algo.ts:968", + "pc": [ + 3989, + 3990 + ] + }, + { + "teal": 4242, + "source": "contracts/NFDInstance.algo.ts:968", + "pc": [ + 3991 + ] + }, + { + "teal": 4243, + "source": "contracts/NFDInstance.algo.ts:968", + "pc": [ + 3992 + ] + }, + { + "teal": 4244, + "source": "contracts/NFDInstance.algo.ts:968", + "pc": [ + 3993 + ] + }, + { + "teal": 4247, + "source": "contracts/NFDInstance.algo.ts:968", + "errorMessage": "can't specify other assets if sending algo from vault", + "pc": [ + 3994 + ] + }, + { + "teal": 4251, + "source": "contracts/NFDInstance.algo.ts:969", + "pc": [ + 3995, + 3996 + ] + }, + { + "teal": 4252, + "source": "contracts/NFDInstance.algo.ts:969", + "pc": [ + 3997 + ] + }, + { + "teal": 4253, + "source": "contracts/NFDInstance.algo.ts:969", + "pc": [ + 3998 + ] + }, + { + "teal": 4254, + "source": "contracts/NFDInstance.algo.ts:969", + "pc": [ + 3999 + ] + }, + { + "teal": 4258, + "source": "contracts/NFDInstance.algo.ts:971", + "pc": [ + 4000, + 4001 + ] + }, + { + "teal": 4259, + "source": "contracts/NFDInstance.algo.ts:971", + "pc": [ + 4002, + 4003 + ] + }, + { + "teal": 4260, + "source": "contracts/NFDInstance.algo.ts:971", + "pc": [ + 4004 + ] + }, + { + "teal": 4261, + "source": "contracts/NFDInstance.algo.ts:971", + "pc": [ + 4005, + 4006 + ] + }, + { + "teal": 4262, + "source": "contracts/NFDInstance.algo.ts:971", + "pc": [ + 4007, + 4008, + 4009 + ] + }, + { + "teal": 4263, + "source": "contracts/NFDInstance.algo.ts:971", + "pc": [ + 4010 + ] + }, + { + "teal": 4264, + "source": "contracts/NFDInstance.algo.ts:971", + "pc": [ + 4011, + 4012 + ] + }, + { + "teal": 4268, + "source": "contracts/NFDInstance.algo.ts:973", + "pc": [ + 4013, + 4014 + ] + }, + { + "teal": 4269, + "source": "contracts/NFDInstance.algo.ts:973", + "pc": [ + 4015, + 4016 + ] + }, + { + "teal": 4270, + "source": "contracts/NFDInstance.algo.ts:973", + "pc": [ + 4017 + ] + }, + { + "teal": 4271, + "source": "contracts/NFDInstance.algo.ts:973", + "pc": [ + 4018, + 4019 + ] + }, + { + "teal": 4272, + "source": "contracts/NFDInstance.algo.ts:973", + "pc": [ + 4020 + ] + }, + { + "teal": 4273, + "source": "contracts/NFDInstance.algo.ts:973", + "pc": [ + 4021, + 4022 + ] + }, + { + "teal": 4274, + "source": "contracts/NFDInstance.algo.ts:973", + "pc": [ + 4023 + ] + }, + { + "teal": 4275, + "source": "contracts/NFDInstance.algo.ts:973", + "pc": [ + 4024 + ] + }, + { + "teal": 4279, + "source": "contracts/NFDInstance.algo.ts:974", + "pc": [ + 4025 + ] + }, + { + "teal": 4280, + "source": "contracts/NFDInstance.algo.ts:974", + "pc": [ + 4026 + ] + }, + { + "teal": 4281, + "source": "contracts/NFDInstance.algo.ts:974", + "pc": [ + 4027, + 4028 + ] + }, + { + "teal": 4285, + "source": "contracts/NFDInstance.algo.ts:974", + "pc": [ + 4029, + 4030 + ] + }, + { + "teal": 4286, + "source": "contracts/NFDInstance.algo.ts:974", + "pc": [ + 4031, + 4032 + ] + }, + { + "teal": 4290, + "source": "contracts/NFDInstance.algo.ts:974", + "pc": [ + 4033, + 4034 + ] + }, + { + "teal": 4291, + "source": "contracts/NFDInstance.algo.ts:974", + "pc": [ + 4035, + 4036 + ] + }, + { + "teal": 4295, + "source": "contracts/NFDInstance.algo.ts:974", + "pc": [ + 4037, + 4038 + ] + }, + { + "teal": 4296, + "source": "contracts/NFDInstance.algo.ts:974", + "pc": [ + 4039, + 4040 + ] + }, + { + "teal": 4299, + "source": "contracts/NFDInstance.algo.ts:974", + "pc": [ + 4041 + ] + }, + { + "teal": 4300, + "source": "contracts/NFDInstance.algo.ts:974", + "pc": [ + 4042, + 4043 + ] + }, + { + "teal": 4303, + "source": "contracts/NFDInstance.algo.ts:974", + "pc": [ + 4044 + ] + }, + { + "teal": 4307, + "source": "contracts/NFDInstance.algo.ts:975", + "pc": [ + 4045 + ] + }, + { + "teal": 4313, + "source": "contracts/NFDInstance.algo.ts:979", + "pc": [ + 4046, + 4047 + ] + }, + { + "teal": 4314, + "source": "contracts/NFDInstance.algo.ts:979", + "pc": [ + 4048 + ] + }, + { + "teal": 4315, + "source": "contracts/NFDInstance.algo.ts:979", + "pc": [ + 4049 + ] + }, + { + "teal": 4316, + "source": "contracts/NFDInstance.algo.ts:979", + "pc": [ + 4050, + 4051, + 4052 + ] + }, + { + "teal": 4321, + "source": "contracts/NFDInstance.algo.ts:980", + "pc": [ + 4053, + 4054 + ] + }, + { + "teal": 4322, + "source": "contracts/NFDInstance.algo.ts:980", + "pc": [ + 4055 + ] + }, + { + "teal": 4323, + "source": "contracts/NFDInstance.algo.ts:980", + "pc": [ + 4056, + 4057 + ] + }, + { + "teal": 4324, + "source": "contracts/NFDInstance.algo.ts:980", + "pc": [ + 4058 + ] + }, + { + "teal": 4325, + "source": "contracts/NFDInstance.algo.ts:980", + "pc": [ + 4059 + ] + }, + { + "teal": 4326, + "source": "contracts/NFDInstance.algo.ts:980", + "pc": [ + 4060 + ] + }, + { + "teal": 4329, + "source": "contracts/NFDInstance.algo.ts:980", + "errorMessage": "can only send one asset if amount == 0", + "pc": [ + 4061 + ] + }, + { + "teal": 4334, + "source": "contracts/NFDInstance.algo.ts:982", + "pc": [ + 4062 + ] + }, + { + "teal": 4335, + "source": "contracts/NFDInstance.algo.ts:982", + "pc": [ + 4063, + 4064 + ] + }, + { + "teal": 4340, + "source": "contracts/NFDInstance.algo.ts:982", + "pc": [ + 4065, + 4066 + ] + }, + { + "teal": 4341, + "source": "contracts/NFDInstance.algo.ts:982", + "pc": [ + 4067, + 4068 + ] + }, + { + "teal": 4342, + "source": "contracts/NFDInstance.algo.ts:982", + "pc": [ + 4069 + ] + }, + { + "teal": 4343, + "source": "contracts/NFDInstance.algo.ts:982", + "pc": [ + 4070, + 4071 + ] + }, + { + "teal": 4344, + "source": "contracts/NFDInstance.algo.ts:982", + "pc": [ + 4072 + ] + }, + { + "teal": 4345, + "source": "contracts/NFDInstance.algo.ts:982", + "pc": [ + 4073 + ] + }, + { + "teal": 4346, + "source": "contracts/NFDInstance.algo.ts:982", + "pc": [ + 4074, + 4075, + 4076 + ] + }, + { + "teal": 4351, + "source": "contracts/NFDInstance.algo.ts:986", + "pc": [ + 4077, + 4078 + ] + }, + { + "teal": 4352, + "source": "contracts/NFDInstance.algo.ts:986", + "pc": [ + 4079 + ] + }, + { + "teal": 4353, + "source": "contracts/NFDInstance.algo.ts:986", + "pc": [ + 4080 + ] + }, + { + "teal": 4354, + "source": "contracts/NFDInstance.algo.ts:986", + "pc": [ + 4081, + 4082, + 4083 + ] + }, + { + "teal": 4359, + "source": "contracts/NFDInstance.algo.ts:987", + "pc": [ + 4084, + 4085 + ] + }, + { + "teal": 4360, + "source": "contracts/NFDInstance.algo.ts:987", + "pc": [ + 4086, + 4087 + ] + }, + { + "teal": 4361, + "source": "contracts/NFDInstance.algo.ts:986", + "pc": [ + 4088, + 4089, + 4090 + ] + }, + { + "teal": 4366, + "source": "contracts/NFDInstance.algo.ts:989", + "pc": [ + 4091, + 4092 + ] + }, + { + "teal": 4367, + "source": "contracts/NFDInstance.algo.ts:989", + "pc": [ + 4093, + 4094 + ] + }, + { + "teal": 4368, + "source": "contracts/NFDInstance.algo.ts:989", + "pc": [ + 4095 + ] + }, + { + "teal": 4369, + "source": "contracts/NFDInstance.algo.ts:989", + "pc": [ + 4096, + 4097 + ] + }, + { + "teal": 4370, + "source": "contracts/NFDInstance.algo.ts:989", + "pc": [ + 4098 + ] + }, + { + "teal": 4371, + "source": "contracts/NFDInstance.algo.ts:989", + "pc": [ + 4099 + ] + }, + { + "teal": 4372, + "source": "contracts/NFDInstance.algo.ts:989", + "pc": [ + 4100, + 4101 + ] + }, + { + "teal": 4373, + "source": "contracts/NFDInstance.algo.ts:989", + "pc": [ + 4102 + ] + }, + { + "teal": 4374, + "source": "contracts/NFDInstance.algo.ts:989", + "pc": [ + 4103 + ] + }, + { + "teal": 4375, + "source": "contracts/NFDInstance.algo.ts:989", + "pc": [ + 4104, + 4105 + ] + }, + { + "teal": 4376, + "source": "contracts/NFDInstance.algo.ts:989", + "pc": [ + 4106 + ] + }, + { + "teal": 4377, + "source": "contracts/NFDInstance.algo.ts:989", + "pc": [ + 4107, + 4108 + ] + }, + { + "teal": 4378, + "source": "contracts/NFDInstance.algo.ts:989", + "pc": [ + 4109 + ] + }, + { + "teal": 4379, + "source": "contracts/NFDInstance.algo.ts:989", + "pc": [ + 4110 + ] + }, + { + "teal": 4380, + "source": "contracts/NFDInstance.algo.ts:989", + "pc": [ + 4111, + 4112 + ] + }, + { + "teal": 4386, + "source": "contracts/NFDInstance.algo.ts:992", + "pc": [ + 4113, + 4114 + ] + }, + { + "teal": 4387, + "source": "contracts/NFDInstance.algo.ts:992", + "pc": [ + 4115, + 4116 + ] + }, + { + "teal": 4388, + "source": "contracts/NFDInstance.algo.ts:992", + "pc": [ + 4117 + ] + }, + { + "teal": 4389, + "source": "contracts/NFDInstance.algo.ts:992", + "pc": [ + 4118 + ] + }, + { + "teal": 4390, + "source": "contracts/NFDInstance.algo.ts:992", + "pc": [ + 4119 + ] + }, + { + "teal": 4391, + "source": "contracts/NFDInstance.algo.ts:992", + "pc": [ + 4120, + 4121, + 4122 + ] + }, + { + "teal": 4396, + "source": "contracts/NFDInstance.algo.ts:993", + "pc": [ + 4123, + 4124 + ] + }, + { + "teal": 4397, + "source": "contracts/NFDInstance.algo.ts:993", + "pc": [ + 4125 + ] + }, + { + "teal": 4398, + "source": "contracts/NFDInstance.algo.ts:993", + "pc": [ + 4126 + ] + }, + { + "teal": 4399, + "source": "contracts/NFDInstance.algo.ts:993", + "pc": [ + 4127 + ] + }, + { + "teal": 4402, + "source": "contracts/NFDInstance.algo.ts:993", + "errorMessage": "receiver must be owner", + "pc": [ + 4128 + ] + }, + { + "teal": 4406, + "source": "contracts/NFDInstance.algo.ts:994", + "pc": [ + 4129, + 4130 + ] + }, + { + "teal": 4407, + "source": "contracts/NFDInstance.algo.ts:994", + "pc": [ + 4131, + 4132 + ] + }, + { + "teal": 4408, + "source": "contracts/NFDInstance.algo.ts:994", + "pc": [ + 4133, + 4134, + 4135 + ] + }, + { + "teal": 4409, + "source": "contracts/NFDInstance.algo.ts:995", + "pc": [ + 4136, + 4137, + 4138 + ] + }, + { + "teal": 4414, + "source": "contracts/NFDInstance.algo.ts:997", + "pc": [ + 4139, + 4140 + ] + }, + { + "teal": 4415, + "source": "contracts/NFDInstance.algo.ts:997", + "pc": [ + 4141, + 4142 + ] + }, + { + "teal": 4416, + "source": "contracts/NFDInstance.algo.ts:997", + "pc": [ + 4143, + 4144 + ] + }, + { + "teal": 4417, + "source": "contracts/NFDInstance.algo.ts:997", + "pc": [ + 4145 + ] + }, + { + "teal": 4418, + "source": "contracts/NFDInstance.algo.ts:997", + "pc": [ + 4146, + 4147 + ] + }, + { + "teal": 4423, + "source": "contracts/NFDInstance.algo.ts:998", + "pc": [ + 4148, + 4149 + ] + }, + { + "teal": 4424, + "source": "contracts/NFDInstance.algo.ts:998", + "pc": [ + 4150 + ] + }, + { + "teal": 4425, + "source": "contracts/NFDInstance.algo.ts:998", + "pc": [ + 4151 + ] + }, + { + "teal": 4426, + "source": "contracts/NFDInstance.algo.ts:998", + "pc": [ + 4152 + ] + }, + { + "teal": 4427, + "source": "contracts/NFDInstance.algo.ts:998", + "pc": [ + 4153, + 4154, + 4155 + ] + }, + { + "teal": 4428, + "source": "contracts/NFDInstance.algo.ts:998", + "pc": [ + 4156, + 4157 + ] + }, + { + "teal": 4429, + "source": "contracts/NFDInstance.algo.ts:998", + "pc": [ + 4158, + 4159 + ] + }, + { + "teal": 4430, + "source": "contracts/NFDInstance.algo.ts:998", + "pc": [ + 4160, + 4161 + ] + }, + { + "teal": 4431, + "source": "contracts/NFDInstance.algo.ts:998", + "pc": [ + 4162 + ] + }, + { + "teal": 4432, + "source": "contracts/NFDInstance.algo.ts:998", + "pc": [ + 4163, + 4164 + ] + }, + { + "teal": 4433, + "source": "contracts/NFDInstance.algo.ts:998", + "pc": [ + 4165 + ] + }, + { + "teal": 4434, + "source": "contracts/NFDInstance.algo.ts:998", + "pc": [ + 4166 + ] + }, + { + "teal": 4437, + "source": "contracts/NFDInstance.algo.ts:998", + "pc": [ + 4167, + 4168, + 4169 + ] + }, + { + "teal": 4448, + "source": "contracts/NFDInstance.algo.ts:1000", + "pc": [ + 4170 + ] + }, + { + "teal": 4449, + "source": "contracts/NFDInstance.algo.ts:1000", + "pc": [ + 4171, + 4172 + ] + }, + { + "teal": 4450, + "source": "contracts/NFDInstance.algo.ts:1000", + "pc": [ + 4173, + 4174 + ] + }, + { + "teal": 4454, + "source": "contracts/NFDInstance.algo.ts:1001", + "pc": [ + 4175, + 4176 + ] + }, + { + "teal": 4455, + "source": "contracts/NFDInstance.algo.ts:1001", + "pc": [ + 4177, + 4178 + ] + }, + { + "teal": 4459, + "source": "contracts/NFDInstance.algo.ts:1002", + "pc": [ + 4179, + 4180 + ] + }, + { + "teal": 4460, + "source": "contracts/NFDInstance.algo.ts:1002", + "pc": [ + 4181, + 4182 + ] + }, + { + "teal": 4464, + "source": "contracts/NFDInstance.algo.ts:1003", + "pc": [ + 4183, + 4184 + ] + }, + { + "teal": 4465, + "source": "contracts/NFDInstance.algo.ts:1003", + "pc": [ + 4185, + 4186 + ] + }, + { + "teal": 4469, + "source": "contracts/NFDInstance.algo.ts:1004", + "pc": [ + 4187, + 4188 + ] + }, + { + "teal": 4470, + "source": "contracts/NFDInstance.algo.ts:1004", + "pc": [ + 4189, + 4190 + ] + }, + { + "teal": 4474, + "source": "contracts/NFDInstance.algo.ts:1005", + "pc": [ + 4191, + 4192 + ] + }, + { + "teal": 4475, + "source": "contracts/NFDInstance.algo.ts:1005", + "pc": [ + 4193, + 4194 + ] + }, + { + "teal": 4478, + "source": "contracts/NFDInstance.algo.ts:1000", + "pc": [ + 4195 + ] + }, + { + "teal": 4479, + "source": "contracts/NFDInstance.algo.ts:1000", + "pc": [ + 4196, + 4197 + ] + }, + { + "teal": 4482, + "source": "contracts/NFDInstance.algo.ts:1000", + "pc": [ + 4198 + ] + }, + { + "teal": 4483, + "source": "contracts/NFDInstance.algo.ts:998", + "pc": [ + 4199, + 4200, + 4201 + ] + }, + { + "teal": 4488, + "source": "contracts/NFDInstance.algo.ts:1008", + "pc": [ + 4202 + ] + }, + { + "teal": 4489, + "source": "contracts/NFDInstance.algo.ts:1008", + "pc": [ + 4203, + 4204 + ] + }, + { + "teal": 4490, + "source": "contracts/NFDInstance.algo.ts:1008", + "pc": [ + 4205, + 4206 + ] + }, + { + "teal": 4494, + "source": "contracts/NFDInstance.algo.ts:1008", + "pc": [ + 4207, + 4208 + ] + }, + { + "teal": 4495, + "source": "contracts/NFDInstance.algo.ts:1008", + "pc": [ + 4209, + 4210 + ] + }, + { + "teal": 4499, + "source": "contracts/NFDInstance.algo.ts:1008", + "pc": [ + 4211, + 4212 + ] + }, + { + "teal": 4500, + "source": "contracts/NFDInstance.algo.ts:1008", + "pc": [ + 4213, + 4214 + ] + }, + { + "teal": 4504, + "source": "contracts/NFDInstance.algo.ts:1008", + "pc": [ + 4215, + 4216 + ] + }, + { + "teal": 4505, + "source": "contracts/NFDInstance.algo.ts:1008", + "pc": [ + 4217, + 4218 + ] + }, + { + "teal": 4509, + "source": "contracts/NFDInstance.algo.ts:1008", + "pc": [ + 4219, + 4220 + ] + }, + { + "teal": 4510, + "source": "contracts/NFDInstance.algo.ts:1008", + "pc": [ + 4221, + 4222 + ] + }, + { + "teal": 4513, + "source": "contracts/NFDInstance.algo.ts:1008", + "pc": [ + 4223 + ] + }, + { + "teal": 4514, + "source": "contracts/NFDInstance.algo.ts:1008", + "pc": [ + 4224, + 4225 + ] + }, + { + "teal": 4517, + "source": "contracts/NFDInstance.algo.ts:1008", + "pc": [ + 4226 + ] + }, + { + "teal": 4524, + "source": "contracts/NFDInstance.algo.ts:982", + "pc": [ + 4227, + 4228 + ] + }, + { + "teal": 4525, + "source": "contracts/NFDInstance.algo.ts:982", + "pc": [ + 4229 + ] + }, + { + "teal": 4526, + "source": "contracts/NFDInstance.algo.ts:982", + "pc": [ + 4230 + ] + }, + { + "teal": 4527, + "source": "contracts/NFDInstance.algo.ts:982", + "pc": [ + 4231, + 4232 + ] + }, + { + "teal": 4528, + "source": "contracts/NFDInstance.algo.ts:982", + "pc": [ + 4233, + 4234, + 4235 + ] + }, + { + "teal": 4531, + "source": "contracts/NFDInstance.algo.ts:958", + "pc": [ + 4236 + ] + }, + { + "teal": 4536, + "source": "contracts/NFDInstance.algo.ts:1030", + "pc": [ + 4237, + 4238 + ] + }, + { + "teal": 4537, + "source": "contracts/NFDInstance.algo.ts:1030", + "pc": [ + 4239 + ] + }, + { + "teal": 4538, + "source": "contracts/NFDInstance.algo.ts:1030", + "pc": [ + 4240 + ] + }, + { + "teal": 4539, + "source": "contracts/NFDInstance.algo.ts:1030", + "pc": [ + 4241 + ] + }, + { + "teal": 4540, + "source": "contracts/NFDInstance.algo.ts:1030", + "pc": [ + 4242, + 4243 + ] + }, + { + "teal": 4541, + "source": "contracts/NFDInstance.algo.ts:1030", + "pc": [ + 4244 + ] + }, + { + "teal": 4542, + "source": "contracts/NFDInstance.algo.ts:1030", + "pc": [ + 4245 + ] + }, + { + "teal": 4545, + "source": "contracts/NFDInstance.algo.ts:1030", + "errorMessage": "argument 0 (payment) for renew must be a pay transaction", + "pc": [ + 4246 + ] + }, + { + "teal": 4548, + "source": "contracts/NFDInstance.algo.ts:1030", + "pc": [ + 4247, + 4248, + 4249 + ] + }, + { + "teal": 4549, + "source": "contracts/NFDInstance.algo.ts:1030", + "pc": [ + 4250 + ] + }, + { + "teal": 4550, + "source": "contracts/NFDInstance.algo.ts:1030", + "pc": [ + 4251 + ] + }, + { + "teal": 4570, + "source": "contracts/NFDInstance.algo.ts:1030", + "pc": [ + 4252, + 4253, + 4254 + ] + }, + { + "teal": 4573, + "source": "contracts/NFDInstance.algo.ts:1030", + "pc": [ + 4255 + ] + }, + { + "teal": 4574, + "source": "contracts/NFDInstance.algo.ts:1030", + "pc": [ + 4256, + 4257 + ] + }, + { + "teal": 4579, + "source": "contracts/NFDInstance.algo.ts:1031", + "pc": [ + 4258, + 4259 + ] + }, + { + "teal": 4580, + "source": "contracts/NFDInstance.algo.ts:1031", + "pc": [ + 4260, + 4261 + ] + }, + { + "teal": 4581, + "source": "contracts/NFDInstance.algo.ts:1031", + "pc": [ + 4262, + 4263 + ] + }, + { + "teal": 4582, + "source": "contracts/NFDInstance.algo.ts:1031", + "pc": [ + 4264 + ] + }, + { + "teal": 4585, + "source": "contracts/NFDInstance.algo.ts:1031", + "errorMessage": "transaction verification failed: {\"txn\":\"payment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", + "pc": [ + 4265 + ] + }, + { + "teal": 4589, + "source": "contracts/NFDInstance.algo.ts:1034", + "pc": [ + 4266, + 4267 + ] + }, + { + "teal": 4590, + "source": "contracts/NFDInstance.algo.ts:1034", + "pc": [ + 4268, + 4269, + 4270 + ] + }, + { + "teal": 4591, + "source": "contracts/NFDInstance.algo.ts:1034", + "pc": [ + 4271, + 4272 + ] + }, + { + "teal": 4596, + "source": "contracts/NFDInstance.algo.ts:1035", + "pc": [ + 4273, + 4274 + ] + }, + { + "teal": 4597, + "source": "contracts/NFDInstance.algo.ts:1035", + "pc": [ + 4275, + 4276 + ] + }, + { + "teal": 4598, + "source": "contracts/NFDInstance.algo.ts:1035", + "pc": [ + 4277 + ] + }, + { + "teal": 4599, + "source": "contracts/NFDInstance.algo.ts:1035", + "pc": [ + 4278, + 4279, + 4280 + ] + }, + { + "teal": 4604, + "source": "contracts/NFDInstance.algo.ts:1036", + "pc": [ + 4281 + ] + }, + { + "teal": 4605, + "source": "contracts/NFDInstance.algo.ts:1036", + "pc": [ + 4282, + 4283 + ] + }, + { + "teal": 4606, + "source": "contracts/NFDInstance.algo.ts:1036", + "pc": [ + 4284, + 4285 + ] + }, + { + "teal": 4607, + "source": "contracts/NFDInstance.algo.ts:1036", + "pc": [ + 4286 + ] + }, + { + "teal": 4608, + "source": "contracts/NFDInstance.algo.ts:1036", + "pc": [ + 4287, + 4288 + ] + }, + { + "teal": 4609, + "source": "contracts/NFDInstance.algo.ts:1036", + "pc": [ + 4289, + 4290 + ] + }, + { + "teal": 4610, + "source": "contracts/NFDInstance.algo.ts:1036", + "pc": [ + 4291 + ] + }, + { + "teal": 4611, + "source": "contracts/NFDInstance.algo.ts:1036", + "pc": [ + 4292, + 4293 + ] + }, + { + "teal": 4612, + "source": "contracts/NFDInstance.algo.ts:1036", + "pc": [ + 4294, + 4295 + ] + }, + { + "teal": 4613, + "source": "contracts/NFDInstance.algo.ts:1036", + "pc": [ + 4296, + 4297 + ] + }, + { + "teal": 4614, + "source": "contracts/NFDInstance.algo.ts:1036", + "pc": [ + 4298, + 4299 + ] + }, + { + "teal": 4615, + "source": "contracts/NFDInstance.algo.ts:1036", + "pc": [ + 4300 + ] + }, + { + "teal": 4622, + "source": "contracts/NFDInstance.algo.ts:1038", + "pc": [ + 4301 + ] + }, + { + "teal": 4623, + "source": "contracts/NFDInstance.algo.ts:1038", + "pc": [ + 4302, + 4303 + ] + }, + { + "teal": 4624, + "source": "contracts/NFDInstance.algo.ts:1038", + "pc": [ + 4304, + 4305 + ] + }, + { + "teal": 4625, + "source": "contracts/NFDInstance.algo.ts:1038", + "pc": [ + 4306, + 4307 + ] + }, + { + "teal": 4626, + "source": "contracts/NFDInstance.algo.ts:1038", + "pc": [ + 4308, + 4309 + ] + }, + { + "teal": 4630, + "source": "contracts/NFDInstance.algo.ts:1039", + "pc": [ + 4310, + 4311 + ] + }, + { + "teal": 4631, + "source": "contracts/NFDInstance.algo.ts:1039", + "pc": [ + 4312, + 4313 + ] + }, + { + "teal": 4634, + "source": "contracts/NFDInstance.algo.ts:1038", + "pc": [ + 4314 + ] + }, + { + "teal": 4635, + "source": "contracts/NFDInstance.algo.ts:1038", + "pc": [ + 4315, + 4316 + ] + }, + { + "teal": 4638, + "source": "contracts/NFDInstance.algo.ts:1038", + "pc": [ + 4317 + ] + }, + { + "teal": 4639, + "source": "contracts/NFDInstance.algo.ts:1038", + "pc": [ + 4318, + 4319 + ] + }, + { + "teal": 4640, + "source": "contracts/NFDInstance.algo.ts:1038", + "pc": [ + 4320 + ] + }, + { + "teal": 4641, + "source": "contracts/NFDInstance.algo.ts:1038", + "pc": [ + 4321 + ] + }, + { + "teal": 4642, + "source": "contracts/NFDInstance.algo.ts:1038", + "pc": [ + 4322, + 4323 + ] + }, + { + "teal": 4643, + "source": "contracts/NFDInstance.algo.ts:1038", + "pc": [ + 4324, + 4325, + 4326 + ] + }, + { + "teal": 4644, + "source": "contracts/NFDInstance.algo.ts:1038", + "pc": [ + 4327, + 4328 + ] + }, + { + "teal": 4648, + "source": "contracts/NFDInstance.algo.ts:1041", + "pc": [ + 4329, + 4330 + ] + }, + { + "teal": 4649, + "source": "contracts/NFDInstance.algo.ts:1041", + "pc": [ + 4331, + 4332 + ] + }, + { + "teal": 4650, + "source": "contracts/NFDInstance.algo.ts:1041", + "pc": [ + 4333, + 4334 + ] + }, + { + "teal": 4651, + "source": "contracts/NFDInstance.algo.ts:1041", + "pc": [ + 4335, + 4336, + 4337 + ] + }, + { + "teal": 4652, + "source": "contracts/NFDInstance.algo.ts:1041", + "pc": [ + 4338 + ] + }, + { + "teal": 4653, + "source": "contracts/NFDInstance.algo.ts:1041", + "pc": [ + 4339, + 4340 + ] + }, + { + "teal": 4657, + "source": "contracts/NFDInstance.algo.ts:1042", + "pc": [ + 4341, + 4342 + ] + }, + { + "teal": 4658, + "source": "contracts/NFDInstance.algo.ts:1042", + "pc": [ + 4343, + 4344, + 4345 + ] + }, + { + "teal": 4659, + "source": "contracts/NFDInstance.algo.ts:1042", + "pc": [ + 4346 + ] + }, + { + "teal": 4660, + "source": "contracts/NFDInstance.algo.ts:1042", + "pc": [ + 4347, + 4348 + ] + }, + { + "teal": 4664, + "source": "contracts/NFDInstance.algo.ts:1043", + "pc": [ + 4349, + 4350 + ] + }, + { + "teal": 4665, + "source": "contracts/NFDInstance.algo.ts:1043", + "pc": [ + 4351 + ] + }, + { + "teal": 4666, + "source": "contracts/NFDInstance.algo.ts:1043", + "pc": [ + 4352 + ] + }, + { + "teal": 4667, + "source": "contracts/NFDInstance.algo.ts:1043", + "pc": [ + 4353 + ] + }, + { + "teal": 4671, + "source": "contracts/NFDInstance.algo.ts:1044", + "pc": [ + 4354 + ] + }, + { + "teal": 4672, + "source": "contracts/NFDInstance.algo.ts:1044", + "pc": [ + 4355 + ] + }, + { + "teal": 4673, + "source": "contracts/NFDInstance.algo.ts:1044", + "pc": [ + 4356, + 4357 + ] + }, + { + "teal": 4677, + "source": "contracts/NFDInstance.algo.ts:1046", + "pc": [ + 4358, + 4359 + ] + }, + { + "teal": 4678, + "source": "contracts/NFDInstance.algo.ts:1046", + "pc": [ + 4360, + 4361, + 4362 + ] + }, + { + "teal": 4679, + "source": "contracts/NFDInstance.algo.ts:1046", + "pc": [ + 4363, + 4364 + ] + }, + { + "teal": 4684, + "source": "contracts/NFDInstance.algo.ts:1047", + "pc": [ + 4365, + 4366 + ] + }, + { + "teal": 4685, + "source": "contracts/NFDInstance.algo.ts:1047", + "pc": [ + 4367 + ] + }, + { + "teal": 4686, + "source": "contracts/NFDInstance.algo.ts:1047", + "pc": [ + 4368 + ] + }, + { + "teal": 4687, + "source": "contracts/NFDInstance.algo.ts:1047", + "pc": [ + 4369 + ] + }, + { + "teal": 4688, + "source": "contracts/NFDInstance.algo.ts:1047", + "pc": [ + 4370, + 4371, + 4372 + ] + }, + { + "teal": 4689, + "source": "contracts/NFDInstance.algo.ts:1047", + "pc": [ + 4373, + 4374, + 4375 + ] + }, + { + "teal": 4690, + "source": "contracts/NFDInstance.algo.ts:1047", + "pc": [ + 4376 + ] + }, + { + "teal": 4693, + "source": "contracts/NFDInstance.algo.ts:1047", + "pc": [ + 4377, + 4378, + 4379 + ] + }, + { + "teal": 4699, + "source": "contracts/NFDInstance.algo.ts:1052", + "pc": [ + 4380, + 4381 + ] + }, + { + "teal": 4700, + "source": "contracts/NFDInstance.algo.ts:1052", + "pc": [ + 4382, + 4383 + ] + }, + { + "teal": 4701, + "source": "contracts/NFDInstance.algo.ts:1052", + "pc": [ + 4384 + ] + }, + { + "teal": 4702, + "source": "contracts/NFDInstance.algo.ts:1052", + "pc": [ + 4385, + 4386, + 4387 + ] + }, + { + "teal": 4707, + "source": "contracts/NFDInstance.algo.ts:1053", + "pc": [ + 4388, + 4389 + ] + }, + { + "teal": 4708, + "source": "contracts/NFDInstance.algo.ts:1053", + "pc": [ + 4390, + 4391 + ] + }, + { + "teal": 4709, + "source": "contracts/NFDInstance.algo.ts:1053", + "pc": [ + 4392 + ] + }, + { + "teal": 4710, + "source": "contracts/NFDInstance.algo.ts:1053", + "pc": [ + 4393 + ] + }, + { + "teal": 4711, + "source": "contracts/NFDInstance.algo.ts:1053", + "pc": [ + 4394 + ] + }, + { + "teal": 4714, + "source": "contracts/NFDInstance.algo.ts:1053", + "errorMessage": "can't claim expired nfd unless all metadata is cleared", + "pc": [ + 4395 + ] + }, + { + "teal": 4721, + "source": "contracts/NFDInstance.algo.ts:1059", + "pc": [ + 4396, + 4397 + ] + }, + { + "teal": 4722, + "source": "contracts/NFDInstance.algo.ts:1059", + "pc": [ + 4398, + 4399 + ] + }, + { + "teal": 4723, + "source": "contracts/NFDInstance.algo.ts:1059", + "pc": [ + 4400, + 4401 + ] + }, + { + "teal": 4724, + "source": "contracts/NFDInstance.algo.ts:1059", + "pc": [ + 4402 + ] + }, + { + "teal": 4727, + "source": "contracts/NFDInstance.algo.ts:1059", + "errorMessage": "must pay at least minimum renewal price", + "pc": [ + 4403 + ] + }, + { + "teal": 4732, + "source": "contracts/NFDInstance.algo.ts:1060", + "pc": [ + 4404, + 4405 + ] + }, + { + "teal": 4733, + "source": "contracts/NFDInstance.algo.ts:1060", + "pc": [ + 4406 + ] + }, + { + "teal": 4734, + "source": "contracts/NFDInstance.algo.ts:1060", + "pc": [ + 4407 + ] + }, + { + "teal": 4735, + "source": "contracts/NFDInstance.algo.ts:1060", + "pc": [ + 4408, + 4409, + 4410 + ] + }, + { + "teal": 4740, + "source": "contracts/NFDInstance.algo.ts:1061", + "pc": [ + 4411, + 4412 + ] + }, + { + "teal": 4741, + "source": "contracts/NFDInstance.algo.ts:1061", + "pc": [ + 4413, + 4414 + ] + }, + { + "teal": 4742, + "source": "contracts/NFDInstance.algo.ts:1061", + "pc": [ + 4415 + ] + }, + { + "teal": 4743, + "source": "contracts/NFDInstance.algo.ts:1061", + "pc": [ + 4416 + ] + }, + { + "teal": 4747, + "source": "contracts/NFDInstance.algo.ts:1063", + "pc": [ + 4417, + 4418 + ] + }, + { + "teal": 4748, + "source": "contracts/NFDInstance.algo.ts:1063", + "pc": [ + 4419, + 4420 + ] + }, + { + "teal": 4752, + "source": "contracts/NFDInstance.algo.ts:1065", + "pc": [ + 4421, + 4422 + ] + }, + { + "teal": 4753, + "source": "contracts/NFDInstance.algo.ts:1065", + "pc": [ + 4423 + ] + }, + { + "teal": 4757, + "source": "contracts/NFDInstance.algo.ts:1066", + "pc": [ + 4424, + 4425 + ] + }, + { + "teal": 4758, + "source": "contracts/NFDInstance.algo.ts:1066", + "pc": [ + 4426 + ] + }, + { + "teal": 4762, + "source": "contracts/NFDInstance.algo.ts:1067", + "pc": [ + 4427, + 4428 + ] + }, + { + "teal": 4763, + "source": "contracts/NFDInstance.algo.ts:1067", + "pc": [ + 4429 + ] + }, + { + "teal": 4767, + "source": "contracts/NFDInstance.algo.ts:1068", + "pc": [ + 4430, + 4431 + ] + }, + { + "teal": 4768, + "source": "contracts/NFDInstance.algo.ts:1068", + "pc": [ + 4432 + ] + }, + { + "teal": 4769, + "source": "contracts/NFDInstance.algo.ts:1060", + "pc": [ + 4433, + 4434, + 4435 + ] + }, + { + "teal": 4774, + "source": "contracts/NFDInstance.algo.ts:1069", + "pc": [ + 4436, + 4437, + 4438 + ] + }, + { + "teal": 4775, + "source": "contracts/NFDInstance.algo.ts:1069", + "pc": [ + 4439, + 4440, + 4441 + ] + }, + { + "teal": 4780, + "source": "contracts/NFDInstance.algo.ts:1071", + "pc": [ + 4442, + 4443 + ] + }, + { + "teal": 4781, + "source": "contracts/NFDInstance.algo.ts:1071", + "pc": [ + 4444, + 4445 + ] + }, + { + "teal": 4785, + "source": "contracts/NFDInstance.algo.ts:1073", + "pc": [ + 4446 + ] + }, + { + "teal": 4786, + "source": "contracts/NFDInstance.algo.ts:1073", + "pc": [ + 4447, + 4448 + ] + }, + { + "teal": 4787, + "source": "contracts/NFDInstance.algo.ts:1073", + "pc": [ + 4449, + 4450 + ] + }, + { + "teal": 4788, + "source": "contracts/NFDInstance.algo.ts:1073", + "pc": [ + 4451 + ] + }, + { + "teal": 4792, + "source": "contracts/NFDInstance.algo.ts:1074", + "pc": [ + 4452, + 4453 + ] + }, + { + "teal": 4793, + "source": "contracts/NFDInstance.algo.ts:1074", + "pc": [ + 4454, + 4455 + ] + }, + { + "teal": 4794, + "source": "contracts/NFDInstance.algo.ts:1074", + "pc": [ + 4456, + 4457 + ] + }, + { + "teal": 4795, + "source": "contracts/NFDInstance.algo.ts:1074", + "pc": [ + 4458 + ] + }, + { + "teal": 4799, + "source": "contracts/NFDInstance.algo.ts:1075", + "pc": [ + 4459, + 4460 + ] + }, + { + "teal": 4800, + "source": "contracts/NFDInstance.algo.ts:1075", + "pc": [ + 4461 + ] + }, + { + "teal": 4805, + "source": "contracts/NFDInstance.algo.ts:1076", + "pc": [ + 4462, + 4463, + 4464 + ] + }, + { + "teal": 4806, + "source": "contracts/NFDInstance.algo.ts:1076", + "pc": [ + 4465, + 4466, + 4467 + ] + }, + { + "teal": 4811, + "source": "contracts/NFDInstance.algo.ts:1078", + "pc": [ + 4468, + 4469 + ] + }, + { + "teal": 4812, + "source": "contracts/NFDInstance.algo.ts:1078", + "pc": [ + 4470 + ] + }, + { + "teal": 4813, + "source": "contracts/NFDInstance.algo.ts:1078", + "pc": [ + 4471 + ] + }, + { + "teal": 4814, + "source": "contracts/NFDInstance.algo.ts:1078", + "pc": [ + 4472, + 4473 + ] + }, + { + "teal": 4815, + "source": "contracts/NFDInstance.algo.ts:1078", + "pc": [ + 4474, + 4475, + 4476 + ] + }, + { + "teal": 4816, + "source": "contracts/NFDInstance.algo.ts:1078", + "pc": [ + 4477 + ] + }, + { + "teal": 4817, + "source": "contracts/NFDInstance.algo.ts:1078", + "pc": [ + 4478, + 4479, + 4480 + ] + }, + { + "teal": 4818, + "source": "contracts/NFDInstance.algo.ts:1078", + "pc": [ + 4481, + 4482 + ] + }, + { + "teal": 4819, + "source": "contracts/NFDInstance.algo.ts:1078", + "pc": [ + 4483 + ] + }, + { + "teal": 4820, + "source": "contracts/NFDInstance.algo.ts:1078", + "pc": [ + 4484 + ] + }, + { + "teal": 4821, + "source": "contracts/NFDInstance.algo.ts:1078", + "pc": [ + 4485 + ] + }, + { + "teal": 4822, + "source": "contracts/NFDInstance.algo.ts:1078", + "pc": [ + 4486 + ] + }, + { + "teal": 4823, + "source": "contracts/NFDInstance.algo.ts:1078", + "pc": [ + 4487, + 4488, + 4489 + ] + }, + { + "teal": 4824, + "source": "contracts/NFDInstance.algo.ts:1078", + "pc": [ + 4490 + ] + }, + { + "teal": 4825, + "source": "contracts/NFDInstance.algo.ts:1078", + "pc": [ + 4491 + ] + }, + { + "teal": 4826, + "source": "contracts/NFDInstance.algo.ts:1078", + "pc": [ + 4492, + 4493, + 4494 + ] + }, + { + "teal": 4827, + "source": "contracts/NFDInstance.algo.ts:1078", + "pc": [ + 4495 + ] + }, + { + "teal": 4828, + "source": "contracts/NFDInstance.algo.ts:1078", + "pc": [ + 4496 + ] + }, + { + "teal": 4829, + "source": "contracts/NFDInstance.algo.ts:1078", + "pc": [ + 4497 + ] + }, + { + "teal": 4830, + "source": "contracts/NFDInstance.algo.ts:1078", + "pc": [ + 4498 + ] + }, + { + "teal": 4834, + "source": "contracts/NFDInstance.algo.ts:1079", + "pc": [ + 4499, + 4500 + ] + }, + { + "teal": 4835, + "source": "contracts/NFDInstance.algo.ts:1079", + "pc": [ + 4501 + ] + }, + { + "teal": 4844, + "source": "contracts/NFDInstance.algo.ts:1083", + "pc": [ + 4502, + 4503 + ] + }, + { + "teal": 4845, + "source": "contracts/NFDInstance.algo.ts:1084", + "pc": [ + 4504, + 4505 + ] + }, + { + "teal": 4846, + "source": "contracts/NFDInstance.algo.ts:1084", + "pc": [ + 4506, + 4507 + ] + }, + { + "teal": 4847, + "source": "contracts/NFDInstance.algo.ts:1084", + "pc": [ + 4508, + 4509 + ] + }, + { + "teal": 4848, + "source": "contracts/NFDInstance.algo.ts:1084", + "pc": [ + 4510, + 4511 + ] + }, + { + "teal": 4849, + "source": "contracts/NFDInstance.algo.ts:1084", + "pc": [ + 4512, + 4513 + ] + }, + { + "teal": 4850, + "source": "contracts/NFDInstance.algo.ts:1084", + "pc": [ + 4514, + 4515, + 4516 + ] + }, + { + "teal": 4851, + "source": "contracts/NFDInstance.algo.ts:1083", + "pc": [ + 4517 + ] + }, + { + "teal": 4852, + "source": "contracts/NFDInstance.algo.ts:1083", + "pc": [ + 4518 + ] + }, + { + "teal": 4856, + "source": "contracts/NFDInstance.algo.ts:1086", + "pc": [ + 4519 + ] + }, + { + "teal": 4857, + "source": "contracts/NFDInstance.algo.ts:1086", + "pc": [ + 4520, + 4521 + ] + }, + { + "teal": 4858, + "source": "contracts/NFDInstance.algo.ts:1086", + "pc": [ + 4522 + ] + }, + { + "teal": 4859, + "source": "contracts/NFDInstance.algo.ts:1086", + "pc": [ + 4523 + ] + }, + { + "teal": 4863, + "source": "contracts/NFDInstance.algo.ts:1089", + "pc": [ + 4524, + 4525 + ] + }, + { + "teal": 4864, + "source": "contracts/NFDInstance.algo.ts:1089", + "pc": [ + 4526, + 4527 + ] + }, + { + "teal": 4865, + "source": "contracts/NFDInstance.algo.ts:1089", + "pc": [ + 4528, + 4529 + ] + }, + { + "teal": 4869, + "source": "contracts/NFDInstance.algo.ts:1090", + "pc": [ + 4530, + 4531 + ] + }, + { + "teal": 4870, + "source": "contracts/NFDInstance.algo.ts:1090", + "pc": [ + 4532, + 4533 + ] + }, + { + "teal": 4874, + "source": "contracts/NFDInstance.algo.ts:1092", + "pc": [ + 4534, + 4535 + ] + }, + { + "teal": 4875, + "source": "contracts/NFDInstance.algo.ts:1092", + "pc": [ + 4536, + 4537 + ] + }, + { + "teal": 4880, + "source": "contracts/NFDInstance.algo.ts:1097", + "pc": [ + 4538, + 4539 + ] + }, + { + "teal": 4881, + "source": "contracts/NFDInstance.algo.ts:1097", + "pc": [ + 4540, + 4541, + 4542 + ] + }, + { + "teal": 4882, + "source": "contracts/NFDInstance.algo.ts:1097", + "pc": [ + 4543 + ] + }, + { + "teal": 4883, + "source": "contracts/NFDInstance.algo.ts:1097", + "pc": [ + 4544 + ] + }, + { + "teal": 4884, + "source": "contracts/NFDInstance.algo.ts:1097", + "pc": [ + 4545, + 4546, + 4547 + ] + }, + { + "teal": 4889, + "source": "contracts/NFDInstance.algo.ts:1098", + "pc": [ + 4548, + 4549 + ] + }, + { + "teal": 4890, + "source": "contracts/NFDInstance.algo.ts:1098", + "pc": [ + 4550, + 4551, + 4552 + ] + }, + { + "teal": 4891, + "source": "contracts/NFDInstance.algo.ts:1098", + "pc": [ + 4553, + 4554 + ] + }, + { + "teal": 4895, + "source": "contracts/NFDInstance.algo.ts:1099", + "pc": [ + 4555, + 4556 + ] + }, + { + "teal": 4896, + "source": "contracts/NFDInstance.algo.ts:1099", + "pc": [ + 4557 + ] + }, + { + "teal": 4897, + "source": "contracts/NFDInstance.algo.ts:1099", + "pc": [ + 4558 + ] + }, + { + "teal": 4900, + "source": "contracts/NFDInstance.algo.ts:1099", + "errorMessage": "global state value does not exist: parentAppId.globalState(NFD_KEY_OWNER)", + "pc": [ + 4559 + ] + }, + { + "teal": 4901, + "source": "contracts/NFDInstance.algo.ts:1099", + "pc": [ + 4560, + 4561 + ] + }, + { + "teal": 4905, + "source": "contracts/NFDInstance.algo.ts:1104", + "pc": [ + 4562, + 4563 + ] + }, + { + "teal": 4906, + "source": "contracts/NFDInstance.algo.ts:1104", + "pc": [ + 4564, + 4565 + ] + }, + { + "teal": 4907, + "source": "contracts/NFDInstance.algo.ts:1104", + "pc": [ + 4566 + ] + }, + { + "teal": 4908, + "source": "contracts/NFDInstance.algo.ts:1104", + "pc": [ + 4567, + 4568 + ] + }, + { + "teal": 4909, + "source": "contracts/NFDInstance.algo.ts:1104", + "pc": [ + 4569 + ] + }, + { + "teal": 4910, + "source": "contracts/NFDInstance.algo.ts:1104", + "pc": [ + 4570, + 4571 + ] + }, + { + "teal": 4914, + "source": "contracts/NFDInstance.algo.ts:1106", + "pc": [ + 4572, + 4573 + ] + }, + { + "teal": 4915, + "source": "contracts/NFDInstance.algo.ts:1106", + "pc": [ + 4574, + 4575 + ] + }, + { + "teal": 4916, + "source": "contracts/NFDInstance.algo.ts:1106", + "pc": [ + 4576, + 4577, + 4578 + ] + }, + { + "teal": 4917, + "source": "contracts/NFDInstance.algo.ts:1106", + "pc": [ + 4579 + ] + }, + { + "teal": 4918, + "source": "contracts/NFDInstance.algo.ts:1106", + "pc": [ + 4580 + ] + }, + { + "teal": 4919, + "source": "contracts/NFDInstance.algo.ts:1106", + "pc": [ + 4581, + 4582 + ] + }, + { + "teal": 4920, + "source": "contracts/NFDInstance.algo.ts:1106", + "pc": [ + 4583 + ] + }, + { + "teal": 4921, + "source": "contracts/NFDInstance.algo.ts:1106", + "pc": [ + 4584, + 4585 + ] + }, + { + "teal": 4926, + "source": "contracts/NFDInstance.algo.ts:1107", + "pc": [ + 4586, + 4587 + ] + }, + { + "teal": 4927, + "source": "contracts/NFDInstance.algo.ts:1107", + "pc": [ + 4588, + 4589 + ] + }, + { + "teal": 4928, + "source": "contracts/NFDInstance.algo.ts:1107", + "pc": [ + 4590, + 4591, + 4592 + ] + }, + { + "teal": 4929, + "source": "contracts/NFDInstance.algo.ts:1107", + "pc": [ + 4593 + ] + }, + { + "teal": 4930, + "source": "contracts/NFDInstance.algo.ts:1107", + "pc": [ + 4594 + ] + }, + { + "teal": 4931, + "source": "contracts/NFDInstance.algo.ts:1107", + "pc": [ + 4595, + 4596, + 4597 + ] + }, + { + "teal": 4936, + "source": "contracts/NFDInstance.algo.ts:1108", + "pc": [ + 4598, + 4599 + ] + }, + { + "teal": 4937, + "source": "contracts/NFDInstance.algo.ts:1108", + "pc": [ + 4600, + 4601, + 4602 + ] + }, + { + "teal": 4938, + "source": "contracts/NFDInstance.algo.ts:1108", + "pc": [ + 4603 + ] + }, + { + "teal": 4939, + "source": "contracts/NFDInstance.algo.ts:1108", + "pc": [ + 4604, + 4605 + ] + }, + { + "teal": 4945, + "source": "contracts/NFDInstance.algo.ts:1110", + "pc": [ + 4606, + 4607 + ] + }, + { + "teal": 4946, + "source": "contracts/NFDInstance.algo.ts:1110", + "pc": [ + 4608, + 4609 + ] + }, + { + "teal": 4947, + "source": "contracts/NFDInstance.algo.ts:1110", + "pc": [ + 4610 + ] + }, + { + "teal": 4948, + "source": "contracts/NFDInstance.algo.ts:1110", + "pc": [ + 4611, + 4612, + 4613 + ] + }, + { + "teal": 4953, + "source": "contracts/NFDInstance.algo.ts:1111", + "pc": [ + 4614, + 4615 + ] + }, + { + "teal": 4954, + "source": "contracts/NFDInstance.algo.ts:1111", + "pc": [ + 4616, + 4617 + ] + }, + { + "teal": 4959, + "source": "contracts/NFDInstance.algo.ts:1114", + "pc": [ + 4618, + 4619 + ] + }, + { + "teal": 4960, + "source": "contracts/NFDInstance.algo.ts:1114", + "pc": [ + 4620, + 4621 + ] + }, + { + "teal": 4961, + "source": "contracts/NFDInstance.algo.ts:1114", + "pc": [ + 4622 + ] + }, + { + "teal": 4962, + "source": "contracts/NFDInstance.algo.ts:1114", + "pc": [ + 4623, + 4624 + ] + }, + { + "teal": 4963, + "source": "contracts/NFDInstance.algo.ts:1097", + "pc": [ + 4625, + 4626, + 4627 + ] + }, + { + "teal": 4968, + "source": "contracts/NFDInstance.algo.ts:1117", + "pc": [ + 4628 + ] + }, + { + "teal": 4969, + "source": "contracts/NFDInstance.algo.ts:1117", + "pc": [ + 4629, + 4630 + ] + }, + { + "teal": 4980, + "source": "contracts/NFDInstance.algo.ts:1124", + "pc": [ + 4631, + 4632 + ] + }, + { + "teal": 4981, + "source": "contracts/NFDInstance.algo.ts:1123", + "pc": [ + 4633, + 4634 + ] + }, + { + "teal": 4982, + "source": "contracts/NFDInstance.algo.ts:1122", + "pc": [ + 4635 + ] + }, + { + "teal": 4983, + "source": "contracts/NFDInstance.algo.ts:1121", + "pc": [ + 4636, + 4637 + ] + }, + { + "teal": 4984, + "source": "contracts/NFDInstance.algo.ts:1121", + "pc": [ + 4638, + 4639, + 4640 + ] + }, + { + "teal": 4985, + "source": "contracts/NFDInstance.algo.ts:1120", + "pc": [ + 4641, + 4642 + ] + }, + { + "teal": 4986, + "source": "contracts/NFDInstance.algo.ts:1119", + "pc": [ + 4643, + 4644, + 4645 + ] + }, + { + "teal": 4998, + "source": "contracts/NFDInstance.algo.ts:1126", + "pc": [ + 4646, + 4647, + 4648, + 4649, + 4650, + 4651 + ] + }, + { + "teal": 4999, + "source": "contracts/NFDInstance.algo.ts:1126", + "pc": [ + 4652 + ] + }, + { + "teal": 5000, + "source": "contracts/NFDInstance.algo.ts:1126", + "pc": [ + 4653 + ] + }, + { + "teal": 5001, + "source": "contracts/NFDInstance.algo.ts:1126", + "pc": [ + 4654, + 4655, + 4656, + 4657 + ] + }, + { + "teal": 5002, + "source": "contracts/NFDInstance.algo.ts:1127", + "pc": [ + 4658, + 4659, + 4660 + ] + }, + { + "teal": 5003, + "source": "contracts/NFDInstance.algo.ts:1127", + "pc": [ + 4661 + ] + }, + { + "teal": 5004, + "source": "contracts/NFDInstance.algo.ts:1127", + "pc": [ + 4662, + 4663, + 4664 + ] + }, + { + "teal": 5005, + "source": "contracts/NFDInstance.algo.ts:1128", + "pc": [ + 4665, + 4666 + ] + }, + { + "teal": 5006, + "source": "contracts/NFDInstance.algo.ts:1128", + "pc": [ + 4667 + ] + }, + { + "teal": 5007, + "source": "contracts/NFDInstance.algo.ts:1128", + "pc": [ + 4668 + ] + }, + { + "teal": 5008, + "source": "contracts/NFDInstance.algo.ts:1128", + "pc": [ + 4669 + ] + }, + { + "teal": 5009, + "source": "contracts/NFDInstance.algo.ts:1128", + "pc": [ + 4670 + ] + }, + { + "teal": 5010, + "source": "contracts/NFDInstance.algo.ts:1128", + "pc": [ + 4671, + 4672, + 4673 + ] + }, + { + "teal": 5011, + "source": "contracts/NFDInstance.algo.ts:1128", + "pc": [ + 4674 + ] + }, + { + "teal": 5012, + "source": "contracts/NFDInstance.algo.ts:1128", + "pc": [ + 4675 + ] + }, + { + "teal": 5013, + "source": "contracts/NFDInstance.algo.ts:1128", + "pc": [ + 4676, + 4677, + 4678 + ] + }, + { + "teal": 5014, + "source": "contracts/NFDInstance.algo.ts:1129", + "pc": [ + 4679, + 4680 + ] + }, + { + "teal": 5015, + "source": "contracts/NFDInstance.algo.ts:1129", + "pc": [ + 4681, + 4682, + 4683 + ] + }, + { + "teal": 5016, + "source": "contracts/NFDInstance.algo.ts:1130", + "pc": [ + 4684, + 4685 + ] + }, + { + "teal": 5017, + "source": "contracts/NFDInstance.algo.ts:1130", + "pc": [ + 4686, + 4687 + ] + }, + { + "teal": 5018, + "source": "contracts/NFDInstance.algo.ts:1130", + "pc": [ + 4688, + 4689, + 4690 + ] + }, + { + "teal": 5019, + "source": "contracts/NFDInstance.algo.ts:1131", + "pc": [ + 4691, + 4692 + ] + }, + { + "teal": 5020, + "source": "contracts/NFDInstance.algo.ts:1131", + "pc": [ + 4693 + ] + }, + { + "teal": 5021, + "source": "contracts/NFDInstance.algo.ts:1131", + "pc": [ + 4694, + 4695, + 4696 + ] + }, + { + "teal": 5022, + "source": "contracts/NFDInstance.algo.ts:1132", + "pc": [ + 4697, + 4698 + ] + }, + { + "teal": 5023, + "source": "contracts/NFDInstance.algo.ts:1132", + "pc": [ + 4699, + 4700 + ] + }, + { + "teal": 5024, + "source": "contracts/NFDInstance.algo.ts:1132", + "pc": [ + 4701 + ] + }, + { + "teal": 5025, + "source": "contracts/NFDInstance.algo.ts:1132", + "pc": [ + 4702, + 4703, + 4704 + ] + }, + { + "teal": 5026, + "source": "contracts/NFDInstance.algo.ts:1133", + "pc": [ + 4705, + 4706 + ] + }, + { + "teal": 5027, + "source": "contracts/NFDInstance.algo.ts:1133", + "pc": [ + 4707 + ] + }, + { + "teal": 5028, + "source": "contracts/NFDInstance.algo.ts:1133", + "pc": [ + 4708 + ] + }, + { + "teal": 5029, + "source": "contracts/NFDInstance.algo.ts:1133", + "pc": [ + 4709 + ] + }, + { + "teal": 5030, + "source": "contracts/NFDInstance.algo.ts:1133", + "pc": [ + 4710, + 4711, + 4712 + ] + }, + { + "teal": 5031, + "source": "contracts/NFDInstance.algo.ts:1126", + "pc": [ + 4713 + ] + }, + { + "teal": 5032, + "source": "contracts/NFDInstance.algo.ts:1126", + "pc": [ + 4714 + ] + }, + { + "teal": 5033, + "source": "contracts/NFDInstance.algo.ts:1126", + "pc": [ + 4715 + ] + }, + { + "teal": 5034, + "source": "contracts/NFDInstance.algo.ts:1126", + "pc": [ + 4716 + ] + }, + { + "teal": 5035, + "source": "contracts/NFDInstance.algo.ts:1030", + "pc": [ + 4717 + ] + }, + { + "teal": 5040, + "source": "contracts/NFDInstance.algo.ts:1138", + "pc": [ + 4718, + 4719, + 4720 + ] + }, + { + "teal": 5041, + "source": "contracts/NFDInstance.algo.ts:1138", + "pc": [ + 4721 + ] + }, + { + "teal": 5042, + "source": "contracts/NFDInstance.algo.ts:1138", + "pc": [ + 4722 + ] + }, + { + "teal": 5043, + "source": "contracts/NFDInstance.algo.ts:1138", + "pc": [ + 4723 + ] + }, + { + "teal": 5044, + "source": "contracts/NFDInstance.algo.ts:1138", + "pc": [ + 4724 + ] + }, + { + "teal": 5047, + "source": "contracts/NFDInstance.algo.ts:1138", + "errorMessage": "argument 0 (address) for setPrimaryAddress must be a address", + "pc": [ + 4725 + ] + }, + { + "teal": 5050, + "source": "contracts/NFDInstance.algo.ts:1138", + "pc": [ + 4726, + 4727, + 4728 + ] + }, + { + "teal": 5051, + "source": "contracts/NFDInstance.algo.ts:1138", + "pc": [ + 4729, + 4730, + 4731 + ] + }, + { + "teal": 5054, + "source": "contracts/NFDInstance.algo.ts:1138", + "pc": [ + 4732, + 4733, + 4734 + ] + }, + { + "teal": 5055, + "source": "contracts/NFDInstance.algo.ts:1138", + "pc": [ + 4735 + ] + }, + { + "teal": 5056, + "source": "contracts/NFDInstance.algo.ts:1138", + "pc": [ + 4736 + ] + }, + { + "teal": 5060, + "source": "contracts/NFDInstance.algo.ts:1138", + "pc": [ + 4737, + 4738, + 4739 + ] + }, + { + "teal": 5064, + "source": "contracts/NFDInstance.algo.ts:1139", + "pc": [ + 4740, + 4741, + 4742 + ] + }, + { + "teal": 5068, + "source": "contracts/NFDInstance.algo.ts:1141", + "pc": [ + 4743, + 4744 + ] + }, + { + "teal": 5069, + "source": "contracts/NFDInstance.algo.ts:1141", + "pc": [ + 4745, + 4746, + 4747, + 4748, + 4749, + 4750, + 4751, + 4752, + 4753, + 4754, + 4755, + 4756, + 4757, + 4758, + 4759 + ] + }, + { + "teal": 5070, + "source": "contracts/NFDInstance.algo.ts:1141", + "pc": [ + 4760 + ] + }, + { + "teal": 5071, + "source": "contracts/NFDInstance.algo.ts:1141", + "pc": [ + 4761 + ] + }, + { + "teal": 5075, + "source": "contracts/NFDInstance.algo.ts:1142", + "pc": [ + 4762 + ] + }, + { + "teal": 5076, + "source": "contracts/NFDInstance.algo.ts:1142", + "pc": [ + 4763, + 4764 + ] + }, + { + "teal": 5077, + "source": "contracts/NFDInstance.algo.ts:1142", + "pc": [ + 4765 + ] + }, + { + "teal": 5078, + "source": "contracts/NFDInstance.algo.ts:1142", + "pc": [ + 4766 + ] + }, + { + "teal": 5082, + "source": "contracts/NFDInstance.algo.ts:1143", + "pc": [ + 4767, + 4768 + ] + }, + { + "teal": 5083, + "source": "contracts/NFDInstance.algo.ts:1143", + "pc": [ + 4769, + 4770 + ] + }, + { + "teal": 5084, + "source": "contracts/NFDInstance.algo.ts:1143", + "pc": [ + 4771, + 4772, + 4773 + ] + }, + { + "teal": 5085, + "source": "contracts/NFDInstance.algo.ts:1138", + "pc": [ + 4774 + ] + }, + { + "teal": 5090, + "source": "contracts/NFDInstance.algo.ts:1156", + "pc": [ + 4775, + 4776 + ] + }, + { + "teal": 5093, + "source": "contracts/NFDInstance.algo.ts:1156", + "pc": [ + 4777, + 4778, + 4779 + ] + }, + { + "teal": 5094, + "source": "contracts/NFDInstance.algo.ts:1156", + "pc": [ + 4780, + 4781, + 4782 + ] + }, + { + "teal": 5097, + "source": "contracts/NFDInstance.algo.ts:1156", + "pc": [ + 4783, + 4784, + 4785 + ] + }, + { + "teal": 5098, + "source": "contracts/NFDInstance.algo.ts:1156", + "pc": [ + 4786, + 4787, + 4788 + ] + }, + { + "teal": 5101, + "source": "contracts/NFDInstance.algo.ts:1156", + "pc": [ + 4789, + 4790, + 4791 + ] + }, + { + "teal": 5102, + "source": "contracts/NFDInstance.algo.ts:1156", + "pc": [ + 4792, + 4793 + ] + }, + { + "teal": 5103, + "source": "contracts/NFDInstance.algo.ts:1156", + "pc": [ + 4794 + ] + }, + { + "teal": 5104, + "source": "contracts/NFDInstance.algo.ts:1156", + "pc": [ + 4795, + 4796 + ] + }, + { + "teal": 5105, + "source": "contracts/NFDInstance.algo.ts:1156", + "pc": [ + 4797 + ] + }, + { + "teal": 5106, + "source": "contracts/NFDInstance.algo.ts:1156", + "pc": [ + 4798 + ] + }, + { + "teal": 5107, + "source": "contracts/NFDInstance.algo.ts:1156", + "pc": [ + 4799 + ] + }, + { + "teal": 5108, + "source": "contracts/NFDInstance.algo.ts:1156", + "pc": [ + 4800 + ] + }, + { + "teal": 5109, + "source": "contracts/NFDInstance.algo.ts:1156", + "pc": [ + 4801 + ] + }, + { + "teal": 5122, + "source": "contracts/NFDInstance.algo.ts:1156", + "pc": [ + 4802, + 4803, + 4804 + ] + }, + { + "teal": 5125, + "source": "contracts/NFDInstance.algo.ts:1156", + "pc": [ + 4805 + ] + }, + { + "teal": 5129, + "source": "contracts/NFDInstance.algo.ts:1157", + "pc": [ + 4806, + 4807 + ] + }, + { + "teal": 5130, + "source": "contracts/NFDInstance.algo.ts:1157", + "pc": [ + 4808, + 4809 + ] + }, + { + "teal": 5131, + "source": "contracts/NFDInstance.algo.ts:1157", + "pc": [ + 4810 + ] + }, + { + "teal": 5134, + "source": "contracts/NFDInstance.algo.ts:1157", + "errorMessage": "caller must be NFD registry!", + "pc": [ + 4811 + ] + }, + { + "teal": 5138, + "source": "contracts/NFDInstance.algo.ts:1158", + "pc": [ + 4812, + 4813, + 4814 + ] + }, + { + "teal": 5142, + "source": "contracts/NFDInstance.algo.ts:1159", + "pc": [ + 4815, + 4816 + ] + }, + { + "teal": 5143, + "source": "contracts/NFDInstance.algo.ts:1159", + "pc": [ + 4817, + 4818, + 4819 + ] + }, + { + "teal": 5144, + "source": "contracts/NFDInstance.algo.ts:1159", + "pc": [ + 4820, + 4821, + 4822, + 4823, + 4824, + 4825, + 4826, + 4827 + ] + }, + { + "teal": 5145, + "source": "contracts/NFDInstance.algo.ts:1159", + "pc": [ + 4828 + ] + }, + { + "teal": 5148, + "source": "contracts/NFDInstance.algo.ts:1159", + "errorMessage": "field being verified MUST START with u.cav", + "pc": [ + 4829 + ] + }, + { + "teal": 5152, + "source": "contracts/NFDInstance.algo.ts:1160", + "pc": [ + 4830, + 4831 + ] + }, + { + "teal": 5153, + "source": "contracts/NFDInstance.algo.ts:1160", + "pc": [ + 4832, + 4833, + 4834 + ] + }, + { + "teal": 5154, + "source": "contracts/NFDInstance.algo.ts:1160", + "pc": [ + 4835, + 4836 + ] + }, + { + "teal": 5155, + "source": "contracts/NFDInstance.algo.ts:1160", + "pc": [ + 4837 + ] + }, + { + "teal": 5158, + "source": "contracts/NFDInstance.algo.ts:1160", + "errorMessage": "destination field MUST START with v.ca[....]", + "pc": [ + 4838 + ] + }, + { + "teal": 5162, + "source": "contracts/NFDInstance.algo.ts:1161", + "pc": [ + 4839, + 4840 + ] + }, + { + "teal": 5163, + "source": "contracts/NFDInstance.algo.ts:1161", + "pc": [ + 4841, + 4842 + ] + }, + { + "teal": 5164, + "source": "contracts/NFDInstance.algo.ts:1161", + "pc": [ + 4843 + ] + }, + { + "teal": 5165, + "source": "contracts/NFDInstance.algo.ts:1161", + "pc": [ + 4844, + 4845 + ] + }, + { + "teal": 5166, + "source": "contracts/NFDInstance.algo.ts:1161", + "pc": [ + 4846 + ] + }, + { + "teal": 5167, + "source": "contracts/NFDInstance.algo.ts:1161", + "pc": [ + 4847, + 4848 + ] + }, + { + "teal": 5168, + "source": "contracts/NFDInstance.algo.ts:1161", + "pc": [ + 4849 + ] + }, + { + "teal": 5169, + "source": "contracts/NFDInstance.algo.ts:1161", + "pc": [ + 4850, + 4851 + ] + }, + { + "teal": 5170, + "source": "contracts/NFDInstance.algo.ts:1161", + "pc": [ + 4852 + ] + }, + { + "teal": 5173, + "source": "contracts/NFDInstance.algo.ts:1161", + "errorMessage": "destination field must end END with .as", + "pc": [ + 4853 + ] + }, + { + "teal": 5180, + "source": "contracts/NFDInstance.algo.ts:1163", + "pc": [ + 4854, + 4855 + ] + }, + { + "teal": 5181, + "source": "contracts/NFDInstance.algo.ts:1163", + "pc": [ + 4856 + ] + }, + { + "teal": 5182, + "source": "contracts/NFDInstance.algo.ts:1163", + "pc": [ + 4857 + ] + }, + { + "teal": 5183, + "source": "contracts/NFDInstance.algo.ts:1163", + "pc": [ + 4858 + ] + }, + { + "teal": 5186, + "source": "contracts/NFDInstance.algo.ts:1162", + "errorMessage": "referenced field to add as verified address must have value in box storage", + "pc": [ + 4859 + ] + }, + { + "teal": 5190, + "source": "contracts/NFDInstance.algo.ts:1166", + "pc": [ + 4860 + ] + }, + { + "teal": 5191, + "source": "contracts/NFDInstance.algo.ts:1166", + "pc": [ + 4861, + 4862 + ] + }, + { + "teal": 5192, + "source": "contracts/NFDInstance.algo.ts:1166", + "pc": [ + 4863 + ] + }, + { + "teal": 5193, + "source": "contracts/NFDInstance.algo.ts:1166", + "pc": [ + 4864 + ] + }, + { + "teal": 5197, + "source": "contracts/NFDInstance.algo.ts:1168", + "pc": [ + 4865, + 4866 + ] + }, + { + "teal": 5198, + "source": "contracts/NFDInstance.algo.ts:1168", + "pc": [ + 4867 + ] + }, + { + "teal": 5201, + "source": "contracts/NFDInstance.algo.ts:1168", + "errorMessage": "box value does not exist: this.boxes(fieldBeingVerified).value", + "pc": [ + 4868 + ] + }, + { + "teal": 5202, + "source": "contracts/NFDInstance.algo.ts:1168", + "pc": [ + 4869, + 4870 + ] + }, + { + "teal": 5206, + "source": "contracts/NFDInstance.algo.ts:1169", + "pc": [ + 4871, + 4872 + ] + }, + { + "teal": 5207, + "source": "contracts/NFDInstance.algo.ts:1169", + "pc": [ + 4873 + ] + }, + { + "teal": 5215, + "source": "contracts/NFDInstance.algo.ts:1171", + "pc": [ + 4874, + 4875, + 4876, + 4877, + 4878, + 4879 + ] + }, + { + "teal": 5216, + "source": "contracts/NFDInstance.algo.ts:1171", + "pc": [ + 4880 + ] + }, + { + "teal": 5217, + "source": "contracts/NFDInstance.algo.ts:1171", + "pc": [ + 4881 + ] + }, + { + "teal": 5218, + "source": "contracts/NFDInstance.algo.ts:1171", + "pc": [ + 4882, + 4883 + ] + }, + { + "teal": 5219, + "source": "contracts/NFDInstance.algo.ts:1172", + "pc": [ + 4884, + 4885, + 4886 + ] + }, + { + "teal": 5220, + "source": "contracts/NFDInstance.algo.ts:1172", + "pc": [ + 4887 + ] + }, + { + "teal": 5221, + "source": "contracts/NFDInstance.algo.ts:1172", + "pc": [ + 4888, + 4889, + 4890 + ] + }, + { + "teal": 5222, + "source": "contracts/NFDInstance.algo.ts:1173", + "pc": [ + 4891, + 4892 + ] + }, + { + "teal": 5223, + "source": "contracts/NFDInstance.algo.ts:1173", + "pc": [ + 4893 + ] + }, + { + "teal": 5224, + "source": "contracts/NFDInstance.algo.ts:1173", + "pc": [ + 4894 + ] + }, + { + "teal": 5225, + "source": "contracts/NFDInstance.algo.ts:1173", + "pc": [ + 4895 + ] + }, + { + "teal": 5226, + "source": "contracts/NFDInstance.algo.ts:1173", + "pc": [ + 4896 + ] + }, + { + "teal": 5227, + "source": "contracts/NFDInstance.algo.ts:1173", + "pc": [ + 4897, + 4898, + 4899 + ] + }, + { + "teal": 5228, + "source": "contracts/NFDInstance.algo.ts:1173", + "pc": [ + 4900 + ] + }, + { + "teal": 5229, + "source": "contracts/NFDInstance.algo.ts:1173", + "pc": [ + 4901 + ] + }, + { + "teal": 5230, + "source": "contracts/NFDInstance.algo.ts:1173", + "pc": [ + 4902, + 4903, + 4904 + ] + }, + { + "teal": 5231, + "source": "contracts/NFDInstance.algo.ts:1174", + "pc": [ + 4905, + 4906 + ] + }, + { + "teal": 5232, + "source": "contracts/NFDInstance.algo.ts:1174", + "pc": [ + 4907, + 4908, + 4909 + ] + }, + { + "teal": 5233, + "source": "contracts/NFDInstance.algo.ts:1171", + "pc": [ + 4910 + ] + }, + { + "teal": 5234, + "source": "contracts/NFDInstance.algo.ts:1171", + "pc": [ + 4911 + ] + }, + { + "teal": 5235, + "source": "contracts/NFDInstance.algo.ts:1171", + "pc": [ + 4912 + ] + }, + { + "teal": 5236, + "source": "contracts/NFDInstance.algo.ts:1171", + "pc": [ + 4913 + ] + }, + { + "teal": 5240, + "source": "contracts/NFDInstance.algo.ts:1177", + "pc": [ + 4914, + 4915 + ] + }, + { + "teal": 5241, + "source": "contracts/NFDInstance.algo.ts:1177", + "pc": [ + 4916, + 4917 + ] + }, + { + "teal": 5242, + "source": "contracts/NFDInstance.algo.ts:1177", + "pc": [ + 4918, + 4919, + 4920 + ] + }, + { + "teal": 5245, + "source": "contracts/NFDInstance.algo.ts:1156", + "pc": [ + 4921, + 4922 + ] + }, + { + "teal": 5246, + "source": "contracts/NFDInstance.algo.ts:1156", + "pc": [ + 4923 + ] + }, + { + "teal": 5251, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 4924, + 4925 + ] + }, + { + "teal": 5254, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 4926, + 4927, + 4928 + ] + }, + { + "teal": 5255, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 4929 + ] + }, + { + "teal": 5256, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 4930 + ] + }, + { + "teal": 5257, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 4931 + ] + }, + { + "teal": 5258, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 4932 + ] + }, + { + "teal": 5261, + "source": "contracts/NFDInstance.algo.ts:1188", + "errorMessage": "argument 0 (mbrRefundDest) for registryRemovingVerifiedAddress must be a address", + "pc": [ + 4933 + ] + }, + { + "teal": 5264, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 4934, + 4935, + 4936 + ] + }, + { + "teal": 5265, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 4937 + ] + }, + { + "teal": 5266, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 4938 + ] + }, + { + "teal": 5267, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 4939 + ] + }, + { + "teal": 5268, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 4940 + ] + }, + { + "teal": 5271, + "source": "contracts/NFDInstance.algo.ts:1188", + "errorMessage": "argument 1 (address) for registryRemovingVerifiedAddress must be a address", + "pc": [ + 4941 + ] + }, + { + "teal": 5274, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 4942, + 4943, + 4944 + ] + }, + { + "teal": 5275, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 4945, + 4946, + 4947 + ] + }, + { + "teal": 5278, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 4948, + 4949, + 4950 + ] + }, + { + "teal": 5279, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 4951, + 4952 + ] + }, + { + "teal": 5280, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 4953 + ] + }, + { + "teal": 5281, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 4954, + 4955 + ] + }, + { + "teal": 5282, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 4956 + ] + }, + { + "teal": 5283, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 4957 + ] + }, + { + "teal": 5284, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 4958 + ] + }, + { + "teal": 5285, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 4959 + ] + }, + { + "teal": 5286, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 4960 + ] + }, + { + "teal": 5297, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 4961, + 4962, + 4963 + ] + }, + { + "teal": 5300, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 4964 + ] + }, + { + "teal": 5301, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 4965 + ] + }, + { + "teal": 5305, + "source": "contracts/NFDInstance.algo.ts:1189", + "pc": [ + 4966, + 4967 + ] + }, + { + "teal": 5306, + "source": "contracts/NFDInstance.algo.ts:1189", + "pc": [ + 4968, + 4969 + ] + }, + { + "teal": 5307, + "source": "contracts/NFDInstance.algo.ts:1189", + "pc": [ + 4970 + ] + }, + { + "teal": 5310, + "source": "contracts/NFDInstance.algo.ts:1189", + "errorMessage": "caller must be NFD registry!", + "pc": [ + 4971 + ] + }, + { + "teal": 5315, + "source": "contracts/NFDInstance.algo.ts:1191", + "pc": [ + 4972, + 4973, + 4974 + ] + }, + { + "teal": 5316, + "source": "contracts/NFDInstance.algo.ts:1191", + "pc": [ + 4975 + ] + }, + { + "teal": 5317, + "source": "contracts/NFDInstance.algo.ts:1191", + "pc": [ + 4976, + 4977, + 4978 + ] + }, + { + "teal": 5322, + "source": "contracts/NFDInstance.algo.ts:1192", + "pc": [ + 4979, + 4980, + 4981 + ] + }, + { + "teal": 5323, + "source": "contracts/NFDInstance.algo.ts:1192", + "pc": [ + 4982 + ] + }, + { + "teal": 5326, + "source": "contracts/NFDInstance.algo.ts:1192", + "errorMessage": "can't be for sale", + "pc": [ + 4983 + ] + }, + { + "teal": 5331, + "source": "contracts/NFDInstance.algo.ts:1194", + "pc": [ + 4984, + 4985 + ] + }, + { + "teal": 5332, + "source": "contracts/NFDInstance.algo.ts:1194", + "pc": [ + 4986, + 4987, + 4988 + ] + }, + { + "teal": 5333, + "source": "contracts/NFDInstance.algo.ts:1194", + "pc": [ + 4989, + 4990 + ] + }, + { + "teal": 5334, + "source": "contracts/NFDInstance.algo.ts:1194", + "pc": [ + 4991 + ] + }, + { + "teal": 5337, + "source": "contracts/NFDInstance.algo.ts:1194", + "errorMessage": "verified field MUST START with v.ca[....]", + "pc": [ + 4992 + ] + }, + { + "teal": 5344, + "source": "contracts/NFDInstance.algo.ts:1196", + "pc": [ + 4993, + 4994 + ] + }, + { + "teal": 5345, + "source": "contracts/NFDInstance.algo.ts:1196", + "pc": [ + 4995, + 4996 + ] + }, + { + "teal": 5346, + "source": "contracts/NFDInstance.algo.ts:1196", + "pc": [ + 4997 + ] + }, + { + "teal": 5347, + "source": "contracts/NFDInstance.algo.ts:1196", + "pc": [ + 4998, + 4999 + ] + }, + { + "teal": 5348, + "source": "contracts/NFDInstance.algo.ts:1196", + "pc": [ + 5000 + ] + }, + { + "teal": 5349, + "source": "contracts/NFDInstance.algo.ts:1196", + "pc": [ + 5001, + 5002 + ] + }, + { + "teal": 5350, + "source": "contracts/NFDInstance.algo.ts:1196", + "pc": [ + 5003 + ] + }, + { + "teal": 5351, + "source": "contracts/NFDInstance.algo.ts:1196", + "pc": [ + 5004, + 5005 + ] + }, + { + "teal": 5352, + "source": "contracts/NFDInstance.algo.ts:1196", + "pc": [ + 5006 + ] + }, + { + "teal": 5355, + "source": "contracts/NFDInstance.algo.ts:1195", + "errorMessage": "verified field must end END with .as", + "pc": [ + 5007 + ] + }, + { + "teal": 5359, + "source": "contracts/NFDInstance.algo.ts:1199", + "pc": [ + 5008 + ] + }, + { + "teal": 5360, + "source": "contracts/NFDInstance.algo.ts:1199", + "pc": [ + 5009, + 5010 + ] + }, + { + "teal": 5361, + "source": "contracts/NFDInstance.algo.ts:1199", + "pc": [ + 5011 + ] + }, + { + "teal": 5362, + "source": "contracts/NFDInstance.algo.ts:1199", + "pc": [ + 5012 + ] + }, + { + "teal": 5366, + "source": "contracts/NFDInstance.algo.ts:1201", + "pc": [ + 5013, + 5014 + ] + }, + { + "teal": 5367, + "source": "contracts/NFDInstance.algo.ts:1201", + "pc": [ + 5015 + ] + }, + { + "teal": 5370, + "source": "contracts/NFDInstance.algo.ts:1201", + "errorMessage": "box value does not exist: this.boxes(fieldBeingChanged).size", + "pc": [ + 5016 + ] + }, + { + "teal": 5371, + "source": "contracts/NFDInstance.algo.ts:1201", + "pc": [ + 5017, + 5018 + ] + }, + { + "teal": 5375, + "source": "contracts/NFDInstance.algo.ts:1202", + "pc": [ + 5019, + 5020 + ] + }, + { + "teal": 5376, + "source": "contracts/NFDInstance.algo.ts:1202", + "pc": [ + 5021, + 5022 + ] + }, + { + "teal": 5377, + "source": "contracts/NFDInstance.algo.ts:1202", + "pc": [ + 5023, + 5024, + 5025 + ] + }, + { + "teal": 5378, + "source": "contracts/NFDInstance.algo.ts:1202", + "pc": [ + 5026, + 5027 + ] + }, + { + "teal": 5386, + "source": "contracts/NFDInstance.algo.ts:1204", + "pc": [ + 5028, + 5029, + 5030, + 5031, + 5032, + 5033 + ] + }, + { + "teal": 5387, + "source": "contracts/NFDInstance.algo.ts:1204", + "pc": [ + 5034 + ] + }, + { + "teal": 5388, + "source": "contracts/NFDInstance.algo.ts:1204", + "pc": [ + 5035 + ] + }, + { + "teal": 5389, + "source": "contracts/NFDInstance.algo.ts:1204", + "pc": [ + 5036, + 5037 + ] + }, + { + "teal": 5390, + "source": "contracts/NFDInstance.algo.ts:1205", + "pc": [ + 5038, + 5039, + 5040 + ] + }, + { + "teal": 5391, + "source": "contracts/NFDInstance.algo.ts:1205", + "pc": [ + 5041 + ] + }, + { + "teal": 5392, + "source": "contracts/NFDInstance.algo.ts:1205", + "pc": [ + 5042, + 5043, + 5044 + ] + }, + { + "teal": 5393, + "source": "contracts/NFDInstance.algo.ts:1206", + "pc": [ + 5045, + 5046 + ] + }, + { + "teal": 5394, + "source": "contracts/NFDInstance.algo.ts:1206", + "pc": [ + 5047 + ] + }, + { + "teal": 5395, + "source": "contracts/NFDInstance.algo.ts:1206", + "pc": [ + 5048 + ] + }, + { + "teal": 5396, + "source": "contracts/NFDInstance.algo.ts:1206", + "pc": [ + 5049 + ] + }, + { + "teal": 5397, + "source": "contracts/NFDInstance.algo.ts:1206", + "pc": [ + 5050 + ] + }, + { + "teal": 5398, + "source": "contracts/NFDInstance.algo.ts:1206", + "pc": [ + 5051, + 5052, + 5053 + ] + }, + { + "teal": 5399, + "source": "contracts/NFDInstance.algo.ts:1206", + "pc": [ + 5054 + ] + }, + { + "teal": 5400, + "source": "contracts/NFDInstance.algo.ts:1206", + "pc": [ + 5055 + ] + }, + { + "teal": 5401, + "source": "contracts/NFDInstance.algo.ts:1206", + "pc": [ + 5056, + 5057, + 5058 + ] + }, + { + "teal": 5402, + "source": "contracts/NFDInstance.algo.ts:1207", + "pc": [ + 5059, + 5060 + ] + }, + { + "teal": 5403, + "source": "contracts/NFDInstance.algo.ts:1207", + "pc": [ + 5061, + 5062, + 5063 + ] + }, + { + "teal": 5404, + "source": "contracts/NFDInstance.algo.ts:1204", + "pc": [ + 5064 + ] + }, + { + "teal": 5405, + "source": "contracts/NFDInstance.algo.ts:1204", + "pc": [ + 5065 + ] + }, + { + "teal": 5406, + "source": "contracts/NFDInstance.algo.ts:1204", + "pc": [ + 5066 + ] + }, + { + "teal": 5407, + "source": "contracts/NFDInstance.algo.ts:1204", + "pc": [ + 5067 + ] + }, + { + "teal": 5412, + "source": "contracts/NFDInstance.algo.ts:1210", + "pc": [ + 5068, + 5069 + ] + }, + { + "teal": 5413, + "source": "contracts/NFDInstance.algo.ts:1210", + "pc": [ + 5070 + ] + }, + { + "teal": 5414, + "source": "contracts/NFDInstance.algo.ts:1210", + "pc": [ + 5071 + ] + }, + { + "teal": 5415, + "source": "contracts/NFDInstance.algo.ts:1210", + "pc": [ + 5072 + ] + }, + { + "teal": 5416, + "source": "contracts/NFDInstance.algo.ts:1210", + "pc": [ + 5073 + ] + }, + { + "teal": 5417, + "source": "contracts/NFDInstance.algo.ts:1210", + "pc": [ + 5074, + 5075, + 5076 + ] + }, + { + "teal": 5426, + "source": "contracts/NFDInstance.algo.ts:1212", + "pc": [ + 5077 + ] + }, + { + "teal": 5427, + "source": "contracts/NFDInstance.algo.ts:1212", + "pc": [ + 5078 + ] + }, + { + "teal": 5428, + "source": "contracts/NFDInstance.algo.ts:1212", + "pc": [ + 5079, + 5080 + ] + }, + { + "teal": 5432, + "source": "contracts/NFDInstance.algo.ts:1213", + "pc": [ + 5081, + 5082 + ] + }, + { + "teal": 5433, + "source": "contracts/NFDInstance.algo.ts:1213", + "pc": [ + 5083, + 5084 + ] + }, + { + "teal": 5434, + "source": "contracts/NFDInstance.algo.ts:1213", + "pc": [ + 5085, + 5086 + ] + }, + { + "teal": 5435, + "source": "contracts/NFDInstance.algo.ts:1213", + "pc": [ + 5087 + ] + }, + { + "teal": 5436, + "source": "contracts/NFDInstance.algo.ts:1213", + "pc": [ + 5088, + 5089 + ] + }, + { + "teal": 5437, + "source": "contracts/NFDInstance.algo.ts:1213", + "pc": [ + 5090 + ] + }, + { + "teal": 5438, + "source": "contracts/NFDInstance.algo.ts:1213", + "pc": [ + 5091 + ] + }, + { + "teal": 5439, + "source": "contracts/NFDInstance.algo.ts:1213", + "pc": [ + 5092 + ] + }, + { + "teal": 5440, + "source": "contracts/NFDInstance.algo.ts:1213", + "pc": [ + 5093, + 5094 + ] + }, + { + "teal": 5444, + "source": "contracts/NFDInstance.algo.ts:1214", + "pc": [ + 5095, + 5096 + ] + }, + { + "teal": 5445, + "source": "contracts/NFDInstance.algo.ts:1214", + "pc": [ + 5097, + 5098 + ] + }, + { + "teal": 5449, + "source": "contracts/NFDInstance.algo.ts:1215", + "pc": [ + 5099, + 5100 + ] + }, + { + "teal": 5450, + "source": "contracts/NFDInstance.algo.ts:1215", + "pc": [ + 5101, + 5102 + ] + }, + { + "teal": 5453, + "source": "contracts/NFDInstance.algo.ts:1212", + "pc": [ + 5103 + ] + }, + { + "teal": 5454, + "source": "contracts/NFDInstance.algo.ts:1212", + "pc": [ + 5104, + 5105 + ] + }, + { + "teal": 5457, + "source": "contracts/NFDInstance.algo.ts:1212", + "pc": [ + 5106 + ] + }, + { + "teal": 5462, + "source": "contracts/NFDInstance.algo.ts:1219", + "pc": [ + 5107, + 5108 + ] + }, + { + "teal": 5465, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 5109, + 5110 + ] + }, + { + "teal": 5468, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 5111, + 5112 + ] + }, + { + "teal": 5469, + "source": "contracts/NFDInstance.algo.ts:1188", + "pc": [ + 5113 + ] + }, + { + "teal": 5478, + "source": "contracts/NFDInstance.algo.ts:1228", + "pc": [ + 5114, + 5115, + 5116 + ] + }, + { + "teal": 5485, + "source": "contracts/NFDInstance.algo.ts:1230", + "pc": [ + 5117 + ] + }, + { + "teal": 5486, + "source": "contracts/NFDInstance.algo.ts:1230", + "pc": [ + 5118, + 5119 + ] + }, + { + "teal": 5487, + "source": "contracts/NFDInstance.algo.ts:1230", + "pc": [ + 5120, + 5121 + ] + }, + { + "teal": 5488, + "source": "contracts/NFDInstance.algo.ts:1230", + "pc": [ + 5122, + 5123, + 5124, + 5125, + 5126, + 5127 + ] + }, + { + "teal": 5489, + "source": "contracts/NFDInstance.algo.ts:1230", + "pc": [ + 5128, + 5129 + ] + }, + { + "teal": 5493, + "source": "contracts/NFDInstance.algo.ts:1231", + "pc": [ + 5130, + 5131 + ] + }, + { + "teal": 5494, + "source": "contracts/NFDInstance.algo.ts:1231", + "pc": [ + 5132, + 5133 + ] + }, + { + "teal": 5498, + "source": "contracts/NFDInstance.algo.ts:1232", + "pc": [ + 5134, + 5135 + ] + }, + { + "teal": 5499, + "source": "contracts/NFDInstance.algo.ts:1232", + "pc": [ + 5136 + ] + }, + { + "teal": 5500, + "source": "contracts/NFDInstance.algo.ts:1232", + "pc": [ + 5137 + ] + }, + { + "teal": 5501, + "source": "contracts/NFDInstance.algo.ts:1232", + "pc": [ + 5138 + ] + }, + { + "teal": 5502, + "source": "contracts/NFDInstance.algo.ts:1232", + "pc": [ + 5139 + ] + }, + { + "teal": 5503, + "source": "contracts/NFDInstance.algo.ts:1232", + "pc": [ + 5140, + 5141, + 5142 + ] + }, + { + "teal": 5504, + "source": "contracts/NFDInstance.algo.ts:1232", + "pc": [ + 5143 + ] + }, + { + "teal": 5505, + "source": "contracts/NFDInstance.algo.ts:1232", + "pc": [ + 5144 + ] + }, + { + "teal": 5506, + "source": "contracts/NFDInstance.algo.ts:1232", + "pc": [ + 5145, + 5146 + ] + }, + { + "teal": 5507, + "source": "contracts/NFDInstance.algo.ts:1232", + "pc": [ + 5147, + 5148 + ] + }, + { + "teal": 5508, + "source": "contracts/NFDInstance.algo.ts:1232", + "pc": [ + 5149, + 5150 + ] + }, + { + "teal": 5511, + "source": "contracts/NFDInstance.algo.ts:1230", + "pc": [ + 5151 + ] + }, + { + "teal": 5512, + "source": "contracts/NFDInstance.algo.ts:1230", + "pc": [ + 5152, + 5153 + ] + }, + { + "teal": 5515, + "source": "contracts/NFDInstance.algo.ts:1230", + "pc": [ + 5154 + ] + }, + { + "teal": 5516, + "source": "contracts/NFDInstance.algo.ts:1230", + "pc": [ + 5155, + 5156 + ] + }, + { + "teal": 5517, + "source": "contracts/NFDInstance.algo.ts:1230", + "pc": [ + 5157 + ] + }, + { + "teal": 5518, + "source": "contracts/NFDInstance.algo.ts:1230", + "pc": [ + 5158 + ] + }, + { + "teal": 5519, + "source": "contracts/NFDInstance.algo.ts:1230", + "pc": [ + 5159, + 5160 + ] + }, + { + "teal": 5520, + "source": "contracts/NFDInstance.algo.ts:1230", + "pc": [ + 5161, + 5162, + 5163 + ] + }, + { + "teal": 5521, + "source": "contracts/NFDInstance.algo.ts:1228", + "pc": [ + 5164 + ] + }, + { + "teal": 5525, + "source": "contracts/NFDInstance.algo.ts:1242", + "pc": [ + 5165, + 5166, + 5167 + ] + }, + { + "teal": 5528, + "source": "contracts/NFDInstance.algo.ts:1242", + "pc": [ + 5168 + ] + }, + { + "teal": 5529, + "source": "contracts/NFDInstance.algo.ts:1242", + "pc": [ + 5169 + ] + }, + { + "teal": 5533, + "source": "contracts/NFDInstance.algo.ts:1243", + "pc": [ + 5170, + 5171, + 5172 + ] + }, + { + "teal": 5538, + "source": "contracts/NFDInstance.algo.ts:1247", + "pc": [ + 5173, + 5174, + 5175 + ] + }, + { + "teal": 5539, + "source": "contracts/NFDInstance.algo.ts:1247", + "pc": [ + 5176, + 5177, + 5178 + ] + }, + { + "teal": 5544, + "source": "contracts/NFDInstance.algo.ts:1248", + "pc": [ + 5179, + 5180 + ] + }, + { + "teal": 5545, + "source": "contracts/NFDInstance.algo.ts:1248", + "pc": [ + 5181 + ] + }, + { + "teal": 5546, + "source": "contracts/NFDInstance.algo.ts:1248", + "pc": [ + 5182 + ] + }, + { + "teal": 5547, + "source": "contracts/NFDInstance.algo.ts:1248", + "pc": [ + 5183 + ] + }, + { + "teal": 5550, + "source": "contracts/NFDInstance.algo.ts:1248", + "errorMessage": "sender must be owner", + "pc": [ + 5184 + ] + }, + { + "teal": 5555, + "source": "contracts/NFDInstance.algo.ts:1251", + "pc": [ + 5185, + 5186 + ] + }, + { + "teal": 5556, + "source": "contracts/NFDInstance.algo.ts:1251", + "pc": [ + 5187 + ] + }, + { + "teal": 5557, + "source": "contracts/NFDInstance.algo.ts:1251", + "pc": [ + 5188 + ] + }, + { + "teal": 5560, + "source": "contracts/NFDInstance.algo.ts:1251", + "errorMessage": "part of opt-in for new asset, must have prior txn paying MBR", + "pc": [ + 5189 + ] + }, + { + "teal": 5567, + "source": "contracts/NFDInstance.algo.ts:1253", + "pc": [ + 5190, + 5191 + ] + }, + { + "teal": 5568, + "source": "contracts/NFDInstance.algo.ts:1253", + "pc": [ + 5192 + ] + }, + { + "teal": 5569, + "source": "contracts/NFDInstance.algo.ts:1253", + "pc": [ + 5193 + ] + }, + { + "teal": 5570, + "source": "contracts/NFDInstance.algo.ts:1253", + "pc": [ + 5194, + 5195 + ] + }, + { + "teal": 5573, + "source": "contracts/NFDInstance.algo.ts:1253", + "pc": [ + 5196, + 5197 + ] + }, + { + "teal": 5574, + "source": "contracts/NFDInstance.algo.ts:1253", + "pc": [ + 5198, + 5199 + ] + }, + { + "teal": 5575, + "source": "contracts/NFDInstance.algo.ts:1253", + "pc": [ + 5200 + ] + }, + { + "teal": 5576, + "source": "contracts/NFDInstance.algo.ts:1253", + "pc": [ + 5201 + ] + }, + { + "teal": 5579, + "source": "contracts/NFDInstance.algo.ts:1253", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"typeEnum\",\"expected\":\"pay\"}", + "pc": [ + 5202 + ] + }, + { + "teal": 5582, + "source": "contracts/NFDInstance.algo.ts:1254", + "pc": [ + 5203, + 5204 + ] + }, + { + "teal": 5583, + "source": "contracts/NFDInstance.algo.ts:1254", + "pc": [ + 5205, + 5206 + ] + }, + { + "teal": 5584, + "source": "contracts/NFDInstance.algo.ts:1254", + "pc": [ + 5207, + 5208 + ] + }, + { + "teal": 5585, + "source": "contracts/NFDInstance.algo.ts:1254", + "pc": [ + 5209 + ] + }, + { + "teal": 5588, + "source": "contracts/NFDInstance.algo.ts:1254", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", + "pc": [ + 5210 + ] + }, + { + "teal": 5591, + "source": "contracts/NFDInstance.algo.ts:1255", + "pc": [ + 5211, + 5212 + ] + }, + { + "teal": 5592, + "source": "contracts/NFDInstance.algo.ts:1255", + "pc": [ + 5213, + 5214 + ] + }, + { + "teal": 5593, + "source": "contracts/NFDInstance.algo.ts:1255", + "pc": [ + 5215, + 5216 + ] + }, + { + "teal": 5594, + "source": "contracts/NFDInstance.algo.ts:1255", + "pc": [ + 5217, + 5218 + ] + }, + { + "teal": 5595, + "source": "contracts/NFDInstance.algo.ts:1255", + "pc": [ + 5219 + ] + }, + { + "teal": 5596, + "source": "contracts/NFDInstance.algo.ts:1255", + "pc": [ + 5220 + ] + }, + { + "teal": 5597, + "source": "contracts/NFDInstance.algo.ts:1255", + "pc": [ + 5221 + ] + }, + { + "teal": 5598, + "source": "contracts/NFDInstance.algo.ts:1255", + "pc": [ + 5222 + ] + }, + { + "teal": 5601, + "source": "contracts/NFDInstance.algo.ts:1255", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"amount\",\"expected\":\"100_000 * (this.txn.numAppArgs - 1)\"}", + "pc": [ + 5223 + ] + }, + { + "teal": 5605, + "source": "contracts/NFDInstance.algo.ts:1257", + "pc": [ + 5224 + ] + }, + { + "teal": 5606, + "source": "contracts/NFDInstance.algo.ts:1257", + "pc": [ + 5225, + 5226 + ] + }, + { + "teal": 5611, + "source": "contracts/NFDInstance.algo.ts:1257", + "pc": [ + 5227, + 5228 + ] + }, + { + "teal": 5612, + "source": "contracts/NFDInstance.algo.ts:1257", + "pc": [ + 5229, + 5230 + ] + }, + { + "teal": 5613, + "source": "contracts/NFDInstance.algo.ts:1257", + "pc": [ + 5231 + ] + }, + { + "teal": 5614, + "source": "contracts/NFDInstance.algo.ts:1257", + "pc": [ + 5232, + 5233, + 5234 + ] + }, + { + "teal": 5618, + "source": "contracts/NFDInstance.algo.ts:1258", + "pc": [ + 5235, + 5236 + ] + }, + { + "teal": 5619, + "source": "contracts/NFDInstance.algo.ts:1258", + "pc": [ + 5237, + 5238 + ] + }, + { + "teal": 5620, + "source": "contracts/NFDInstance.algo.ts:1258", + "pc": [ + 5239 + ] + }, + { + "teal": 5621, + "source": "contracts/NFDInstance.algo.ts:1258", + "pc": [ + 5240, + 5241 + ] + }, + { + "teal": 5626, + "source": "contracts/NFDInstance.algo.ts:1260", + "pc": [ + 5242, + 5243 + ] + }, + { + "teal": 5627, + "source": "contracts/NFDInstance.algo.ts:1260", + "pc": [ + 5244, + 5245 + ] + }, + { + "teal": 5628, + "source": "contracts/NFDInstance.algo.ts:1260", + "pc": [ + 5246, + 5247 + ] + }, + { + "teal": 5629, + "source": "contracts/NFDInstance.algo.ts:1260", + "pc": [ + 5248 + ] + }, + { + "teal": 5630, + "source": "contracts/NFDInstance.algo.ts:1260", + "pc": [ + 5249 + ] + }, + { + "teal": 5631, + "source": "contracts/NFDInstance.algo.ts:1260", + "pc": [ + 5250 + ] + }, + { + "teal": 5632, + "source": "contracts/NFDInstance.algo.ts:1260", + "pc": [ + 5251, + 5252, + 5253 + ] + }, + { + "teal": 5641, + "source": "contracts/NFDInstance.algo.ts:1261", + "pc": [ + 5254 + ] + }, + { + "teal": 5642, + "source": "contracts/NFDInstance.algo.ts:1261", + "pc": [ + 5255, + 5256 + ] + }, + { + "teal": 5643, + "source": "contracts/NFDInstance.algo.ts:1261", + "pc": [ + 5257, + 5258 + ] + }, + { + "teal": 5647, + "source": "contracts/NFDInstance.algo.ts:1262", + "pc": [ + 5259, + 5260 + ] + }, + { + "teal": 5648, + "source": "contracts/NFDInstance.algo.ts:1262", + "pc": [ + 5261, + 5262 + ] + }, + { + "teal": 5652, + "source": "contracts/NFDInstance.algo.ts:1263", + "pc": [ + 5263, + 5264 + ] + }, + { + "teal": 5653, + "source": "contracts/NFDInstance.algo.ts:1263", + "pc": [ + 5265, + 5266 + ] + }, + { + "teal": 5657, + "source": "contracts/NFDInstance.algo.ts:1264", + "pc": [ + 5267 + ] + }, + { + "teal": 5658, + "source": "contracts/NFDInstance.algo.ts:1264", + "pc": [ + 5268, + 5269 + ] + }, + { + "teal": 5661, + "source": "contracts/NFDInstance.algo.ts:1261", + "pc": [ + 5270 + ] + }, + { + "teal": 5662, + "source": "contracts/NFDInstance.algo.ts:1261", + "pc": [ + 5271, + 5272 + ] + }, + { + "teal": 5665, + "source": "contracts/NFDInstance.algo.ts:1261", + "pc": [ + 5273 + ] + }, + { + "teal": 5672, + "source": "contracts/NFDInstance.algo.ts:1257", + "pc": [ + 5274, + 5275 + ] + }, + { + "teal": 5673, + "source": "contracts/NFDInstance.algo.ts:1257", + "pc": [ + 5276 + ] + }, + { + "teal": 5674, + "source": "contracts/NFDInstance.algo.ts:1257", + "pc": [ + 5277 + ] + }, + { + "teal": 5675, + "source": "contracts/NFDInstance.algo.ts:1257", + "pc": [ + 5278, + 5279 + ] + }, + { + "teal": 5676, + "source": "contracts/NFDInstance.algo.ts:1257", + "pc": [ + 5280, + 5281, + 5282 + ] + }, + { + "teal": 5679, + "source": "contracts/NFDInstance.algo.ts:1242", + "pc": [ + 5283 + ] + }, + { + "teal": 5683, + "source": "contracts/NFDInstance.algo.ts:1270", + "pc": [ + 5284, + 5285, + 5286 + ] + }, + { + "teal": 5688, + "source": "contracts/NFDInstance.algo.ts:1271", + "pc": [ + 5287, + 5288, + 5289 + ] + }, + { + "teal": 5689, + "source": "contracts/NFDInstance.algo.ts:1271", + "pc": [ + 5290, + 5291 + ] + }, + { + "teal": 5690, + "source": "contracts/NFDInstance.algo.ts:1271", + "pc": [ + 5292 + ] + }, + { + "teal": 5691, + "source": "contracts/NFDInstance.algo.ts:1271", + "pc": [ + 5293 + ] + }, + { + "teal": 5692, + "source": "contracts/NFDInstance.algo.ts:1271", + "pc": [ + 5294 + ] + }, + { + "teal": 5693, + "source": "contracts/NFDInstance.algo.ts:1271", + "pc": [ + 5295 + ] + }, + { + "teal": 5694, + "source": "contracts/NFDInstance.algo.ts:1271", + "pc": [ + 5296, + 5297, + 5298 + ] + }, + { + "teal": 5699, + "source": "contracts/NFDInstance.algo.ts:1272", + "pc": [ + 5299 + ] + }, + { + "teal": 5700, + "source": "contracts/NFDInstance.algo.ts:1272", + "pc": [ + 5300 + ] + }, + { + "teal": 5705, + "source": "contracts/NFDInstance.algo.ts:1274", + "pc": [ + 5301, + 5302 + ] + }, + { + "teal": 5706, + "source": "contracts/NFDInstance.algo.ts:1274", + "pc": [ + 5303 + ] + }, + { + "teal": 5707, + "source": "contracts/NFDInstance.algo.ts:1270", + "pc": [ + 5304 + ] + }, + { + "teal": 5711, + "source": "contracts/NFDInstance.algo.ts:1277", + "pc": [ + 5305, + 5306, + 5307 + ] + }, + { + "teal": 5716, + "source": "contracts/NFDInstance.algo.ts:1278", + "pc": [ + 5308, + 5309 + ] + }, + { + "teal": 5717, + "source": "contracts/NFDInstance.algo.ts:1278", + "pc": [ + 5310, + 5311 + ] + }, + { + "teal": 5718, + "source": "contracts/NFDInstance.algo.ts:1278", + "pc": [ + 5312 + ] + }, + { + "teal": 5719, + "source": "contracts/NFDInstance.algo.ts:1278", + "pc": [ + 5313 + ] + }, + { + "teal": 5720, + "source": "contracts/NFDInstance.algo.ts:1278", + "pc": [ + 5314 + ] + }, + { + "teal": 5721, + "source": "contracts/NFDInstance.algo.ts:1278", + "pc": [ + 5315 + ] + }, + { + "teal": 5722, + "source": "contracts/NFDInstance.algo.ts:1278", + "pc": [ + 5316, + 5317, + 5318 + ] + }, + { + "teal": 5727, + "source": "contracts/NFDInstance.algo.ts:1279", + "pc": [ + 5319 + ] + }, + { + "teal": 5728, + "source": "contracts/NFDInstance.algo.ts:1279", + "pc": [ + 5320 + ] + }, + { + "teal": 5733, + "source": "contracts/NFDInstance.algo.ts:1281", + "pc": [ + 5321, + 5322 + ] + }, + { + "teal": 5734, + "source": "contracts/NFDInstance.algo.ts:1281", + "pc": [ + 5323, + 5324 + ] + }, + { + "teal": 5735, + "source": "contracts/NFDInstance.algo.ts:1281", + "pc": [ + 5325 + ] + }, + { + "teal": 5738, + "source": "contracts/NFDInstance.algo.ts:1281", + "errorMessage": "global state value does not exist: AppID.fromUint64(appId).globalState(key)", + "pc": [ + 5326 + ] + }, + { + "teal": 5739, + "source": "contracts/NFDInstance.algo.ts:1277", + "pc": [ + 5327 + ] + }, + { + "teal": 5743, + "source": "contracts/NFDInstance.algo.ts:1284", + "pc": [ + 5328, + 5329, + 5330 + ] + }, + { + "teal": 5748, + "source": "contracts/NFDInstance.algo.ts:1285", + "pc": [ + 5331, + 5332, + 5333 + ] + }, + { + "teal": 5749, + "source": "contracts/NFDInstance.algo.ts:1285", + "pc": [ + 5334, + 5335 + ] + }, + { + "teal": 5750, + "source": "contracts/NFDInstance.algo.ts:1285", + "pc": [ + 5336 + ] + }, + { + "teal": 5751, + "source": "contracts/NFDInstance.algo.ts:1285", + "pc": [ + 5337 + ] + }, + { + "teal": 5752, + "source": "contracts/NFDInstance.algo.ts:1285", + "pc": [ + 5338 + ] + }, + { + "teal": 5753, + "source": "contracts/NFDInstance.algo.ts:1285", + "pc": [ + 5339 + ] + }, + { + "teal": 5754, + "source": "contracts/NFDInstance.algo.ts:1285", + "pc": [ + 5340, + 5341, + 5342 + ] + }, + { + "teal": 5759, + "source": "contracts/NFDInstance.algo.ts:1286", + "pc": [ + 5343 + ] + }, + { + "teal": 5760, + "source": "contracts/NFDInstance.algo.ts:1286", + "pc": [ + 5344 + ] + }, + { + "teal": 5765, + "source": "contracts/NFDInstance.algo.ts:1288", + "pc": [ + 5345, + 5346 + ] + }, + { + "teal": 5766, + "source": "contracts/NFDInstance.algo.ts:1288", + "pc": [ + 5347 + ] + }, + { + "teal": 5767, + "source": "contracts/NFDInstance.algo.ts:1288", + "pc": [ + 5348 + ] + }, + { + "teal": 5768, + "source": "contracts/NFDInstance.algo.ts:1284", + "pc": [ + 5349 + ] + }, + { + "teal": 5772, + "source": "contracts/NFDInstance.algo.ts:1291", + "pc": [ + 5350, + 5351, + 5352 + ] + }, + { + "teal": 5776, + "source": "contracts/NFDInstance.algo.ts:1294", + "pc": [ + 5353, + 5354 + ] + }, + { + "teal": 5777, + "source": "contracts/NFDInstance.algo.ts:1294", + "pc": [ + 5355, + 5356 + ] + }, + { + "teal": 5778, + "source": "contracts/NFDInstance.algo.ts:1294", + "pc": [ + 5357, + 5358 + ] + }, + { + "teal": 5779, + "source": "contracts/NFDInstance.algo.ts:1294", + "pc": [ + 5359 + ] + }, + { + "teal": 5780, + "source": "contracts/NFDInstance.algo.ts:1294", + "pc": [ + 5360 + ] + }, + { + "teal": 5781, + "source": "contracts/NFDInstance.algo.ts:1294", + "pc": [ + 5361 + ] + }, + { + "teal": 5782, + "source": "contracts/NFDInstance.algo.ts:1291", + "pc": [ + 5362 + ] + }, + { + "teal": 5786, + "source": "contracts/NFDInstance.algo.ts:1310", + "pc": [ + 5363, + 5364, + 5365 + ] + }, + { + "teal": 5789, + "source": "contracts/NFDInstance.algo.ts:1310", + "pc": [ + 5366 + ] + }, + { + "teal": 5793, + "source": "contracts/NFDInstance.algo.ts:1312", + "pc": [ + 5367, + 5368 + ] + }, + { + "teal": 5794, + "source": "contracts/NFDInstance.algo.ts:1312", + "pc": [ + 5369, + 5370, + 5371 + ] + }, + { + "teal": 5795, + "source": "contracts/NFDInstance.algo.ts:1312", + "pc": [ + 5372, + 5373 + ] + }, + { + "teal": 5799, + "source": "contracts/NFDInstance.algo.ts:1314", + "pc": [ + 5374, + 5375 + ] + }, + { + "teal": 5800, + "source": "contracts/NFDInstance.algo.ts:1314", + "pc": [ + 5376, + 5377, + 5378 + ] + }, + { + "teal": 5801, + "source": "contracts/NFDInstance.algo.ts:1314", + "pc": [ + 5379 + ] + }, + { + "teal": 5804, + "source": "contracts/NFDInstance.algo.ts:1314", + "errorMessage": "internal fields can never be deleted", + "pc": [ + 5380 + ] + }, + { + "teal": 5809, + "source": "contracts/NFDInstance.algo.ts:1317", + "pc": [ + 5381, + 5382 + ] + }, + { + "teal": 5810, + "source": "contracts/NFDInstance.algo.ts:1317", + "pc": [ + 5383, + 5384, + 5385 + ] + }, + { + "teal": 5815, + "source": "contracts/NFDInstance.algo.ts:1318", + "pc": [ + 5386 + ] + }, + { + "teal": 5816, + "source": "contracts/NFDInstance.algo.ts:1318", + "pc": [ + 5387, + 5388, + 5389 + ] + }, + { + "teal": 5821, + "source": "contracts/NFDInstance.algo.ts:1321", + "pc": [ + 5390 + ] + }, + { + "teal": 5822, + "source": "contracts/NFDInstance.algo.ts:1321", + "pc": [ + 5391, + 5392, + 5393 + ] + }, + { + "teal": 5823, + "source": "contracts/NFDInstance.algo.ts:1321", + "pc": [ + 5394 + ] + }, + { + "teal": 5824, + "source": "contracts/NFDInstance.algo.ts:1321", + "pc": [ + 5395 + ] + }, + { + "teal": 5825, + "source": "contracts/NFDInstance.algo.ts:1321", + "pc": [ + 5396 + ] + }, + { + "teal": 5828, + "source": "contracts/NFDInstance.algo.ts:1321", + "errorMessage": "must be owned", + "pc": [ + 5397 + ] + }, + { + "teal": 5833, + "source": "contracts/NFDInstance.algo.ts:1323", + "pc": [ + 5398, + 5399, + 5400 + ] + }, + { + "teal": 5834, + "source": "contracts/NFDInstance.algo.ts:1323", + "pc": [ + 5401 + ] + }, + { + "teal": 5835, + "source": "contracts/NFDInstance.algo.ts:1323", + "pc": [ + 5402, + 5403, + 5404 + ] + }, + { + "teal": 5840, + "source": "contracts/NFDInstance.algo.ts:1324", + "pc": [ + 5405, + 5406, + 5407 + ] + }, + { + "teal": 5841, + "source": "contracts/NFDInstance.algo.ts:1324", + "pc": [ + 5408 + ] + }, + { + "teal": 5844, + "source": "contracts/NFDInstance.algo.ts:1324", + "errorMessage": "can't be for sale", + "pc": [ + 5409 + ] + }, + { + "teal": 5848, + "source": "contracts/NFDInstance.algo.ts:1325", + "pc": [ + 5410, + 5411, + 5412 + ] + }, + { + "teal": 5854, + "source": "contracts/NFDInstance.algo.ts:1328", + "pc": [ + 5413, + 5414 + ] + }, + { + "teal": 5855, + "source": "contracts/NFDInstance.algo.ts:1328", + "pc": [ + 5415, + 5416, + 5417 + ] + }, + { + "teal": 5856, + "source": "contracts/NFDInstance.algo.ts:1328", + "pc": [ + 5418, + 5419, + 5420 + ] + }, + { + "teal": 5861, + "source": "contracts/NFDInstance.algo.ts:1329", + "pc": [ + 5421 + ] + }, + { + "teal": 5862, + "source": "contracts/NFDInstance.algo.ts:1329", + "pc": [ + 5422, + 5423, + 5424 + ] + }, + { + "teal": 5867, + "source": "contracts/NFDInstance.algo.ts:1332", + "pc": [ + 5425, + 5426 + ] + }, + { + "teal": 5868, + "source": "contracts/NFDInstance.algo.ts:1332", + "pc": [ + 5427, + 5428, + 5429 + ] + }, + { + "teal": 5869, + "source": "contracts/NFDInstance.algo.ts:1332", + "pc": [ + 5430 + ] + }, + { + "teal": 5870, + "source": "contracts/NFDInstance.algo.ts:1332", + "pc": [ + 5431, + 5432, + 5433 + ] + }, + { + "teal": 5871, + "source": "contracts/NFDInstance.algo.ts:1332", + "pc": [ + 5434, + 5435 + ] + }, + { + "teal": 5872, + "source": "contracts/NFDInstance.algo.ts:1332", + "pc": [ + 5436, + 5437, + 5438 + ] + }, + { + "teal": 5873, + "source": "contracts/NFDInstance.algo.ts:1332", + "pc": [ + 5439, + 5440 + ] + }, + { + "teal": 5874, + "source": "contracts/NFDInstance.algo.ts:1332", + "pc": [ + 5441 + ] + }, + { + "teal": 5875, + "source": "contracts/NFDInstance.algo.ts:1332", + "pc": [ + 5442 + ] + }, + { + "teal": 5876, + "source": "contracts/NFDInstance.algo.ts:1332", + "pc": [ + 5443 + ] + }, + { + "teal": 5882, + "source": "contracts/NFDInstance.algo.ts:1310", + "pc": [ + 5444, + 5445 + ] + }, + { + "teal": 5883, + "source": "contracts/NFDInstance.algo.ts:1310", + "pc": [ + 5446 + ] + }, + { + "teal": 5887, + "source": "contracts/NFDInstance.algo.ts:1346", + "pc": [ + 5447, + 5448, + 5449 + ] + }, + { + "teal": 5890, + "source": "contracts/NFDInstance.algo.ts:1346", + "pc": [ + 5450 + ] + }, + { + "teal": 5891, + "source": "contracts/NFDInstance.algo.ts:1346", + "pc": [ + 5451, + 5452 + ] + }, + { + "teal": 5895, + "source": "contracts/NFDInstance.algo.ts:1348", + "pc": [ + 5453, + 5454 + ] + }, + { + "teal": 5896, + "source": "contracts/NFDInstance.algo.ts:1348", + "pc": [ + 5455, + 5456, + 5457 + ] + }, + { + "teal": 5897, + "source": "contracts/NFDInstance.algo.ts:1348", + "pc": [ + 5458, + 5459 + ] + }, + { + "teal": 5901, + "source": "contracts/NFDInstance.algo.ts:1350", + "pc": [ + 5460, + 5461 + ] + }, + { + "teal": 5902, + "source": "contracts/NFDInstance.algo.ts:1350", + "pc": [ + 5462, + 5463, + 5464 + ] + }, + { + "teal": 5903, + "source": "contracts/NFDInstance.algo.ts:1350", + "pc": [ + 5465 + ] + }, + { + "teal": 5906, + "source": "contracts/NFDInstance.algo.ts:1350", + "errorMessage": "internal fields can never be updated", + "pc": [ + 5466 + ] + }, + { + "teal": 5910, + "source": "contracts/NFDInstance.algo.ts:1351", + "pc": [ + 5467, + 5468 + ] + }, + { + "teal": 5911, + "source": "contracts/NFDInstance.algo.ts:1351", + "pc": [ + 5469, + 5470, + 5471 + ] + }, + { + "teal": 5912, + "source": "contracts/NFDInstance.algo.ts:1351", + "pc": [ + 5472, + 5473 + ] + }, + { + "teal": 5916, + "source": "contracts/NFDInstance.algo.ts:1352", + "pc": [ + 5474, + 5475 + ] + }, + { + "teal": 5917, + "source": "contracts/NFDInstance.algo.ts:1352", + "pc": [ + 5476, + 5477, + 5478 + ] + }, + { + "teal": 5918, + "source": "contracts/NFDInstance.algo.ts:1352", + "pc": [ + 5479, + 5480 + ] + }, + { + "teal": 5923, + "source": "contracts/NFDInstance.algo.ts:1354", + "pc": [ + 5481, + 5482 + ] + }, + { + "teal": 5924, + "source": "contracts/NFDInstance.algo.ts:1354", + "pc": [ + 5483 + ] + }, + { + "teal": 5925, + "source": "contracts/NFDInstance.algo.ts:1354", + "pc": [ + 5484, + 5485, + 5486 + ] + }, + { + "teal": 5926, + "source": "contracts/NFDInstance.algo.ts:1354", + "pc": [ + 5487, + 5488 + ] + }, + { + "teal": 5927, + "source": "contracts/NFDInstance.algo.ts:1354", + "pc": [ + 5489 + ] + }, + { + "teal": 5928, + "source": "contracts/NFDInstance.algo.ts:1354", + "pc": [ + 5490, + 5491, + 5492 + ] + }, + { + "teal": 5929, + "source": "contracts/NFDInstance.algo.ts:1354", + "pc": [ + 5493, + 5494 + ] + }, + { + "teal": 5930, + "source": "contracts/NFDInstance.algo.ts:1354", + "pc": [ + 5495 + ] + }, + { + "teal": 5931, + "source": "contracts/NFDInstance.algo.ts:1354", + "pc": [ + 5496, + 5497, + 5498 + ] + }, + { + "teal": 5932, + "source": "contracts/NFDInstance.algo.ts:1354", + "pc": [ + 5499, + 5500 + ] + }, + { + "teal": 5933, + "source": "contracts/NFDInstance.algo.ts:1354", + "pc": [ + 5501 + ] + }, + { + "teal": 5934, + "source": "contracts/NFDInstance.algo.ts:1354", + "pc": [ + 5502 + ] + }, + { + "teal": 5935, + "source": "contracts/NFDInstance.algo.ts:1354", + "pc": [ + 5503 + ] + }, + { + "teal": 5936, + "source": "contracts/NFDInstance.algo.ts:1354", + "pc": [ + 5504 + ] + }, + { + "teal": 5939, + "source": "contracts/NFDInstance.algo.ts:1354", + "pc": [ + 5505 + ] + }, + { + "teal": 5942, + "source": "contracts/NFDInstance.algo.ts:1354", + "pc": [ + 5506 + ] + }, + { + "teal": 5945, + "source": "contracts/NFDInstance.algo.ts:1354", + "pc": [ + 5507, + 5508, + 5509 + ] + }, + { + "teal": 5950, + "source": "contracts/NFDInstance.algo.ts:1355", + "pc": [ + 5510 + ] + }, + { + "teal": 5951, + "source": "contracts/NFDInstance.algo.ts:1355", + "pc": [ + 5511, + 5512, + 5513 + ] + }, + { + "teal": 5956, + "source": "contracts/NFDInstance.algo.ts:1358", + "pc": [ + 5514 + ] + }, + { + "teal": 5957, + "source": "contracts/NFDInstance.algo.ts:1358", + "pc": [ + 5515, + 5516, + 5517 + ] + }, + { + "teal": 5958, + "source": "contracts/NFDInstance.algo.ts:1358", + "pc": [ + 5518 + ] + }, + { + "teal": 5959, + "source": "contracts/NFDInstance.algo.ts:1358", + "pc": [ + 5519 + ] + }, + { + "teal": 5960, + "source": "contracts/NFDInstance.algo.ts:1358", + "pc": [ + 5520 + ] + }, + { + "teal": 5963, + "source": "contracts/NFDInstance.algo.ts:1358", + "errorMessage": "must be owned", + "pc": [ + 5521 + ] + }, + { + "teal": 5967, + "source": "contracts/NFDInstance.algo.ts:1359", + "pc": [ + 5522, + 5523, + 5524 + ] + }, + { + "teal": 5968, + "source": "contracts/NFDInstance.algo.ts:1359", + "pc": [ + 5525 + ] + }, + { + "teal": 5971, + "source": "contracts/NFDInstance.algo.ts:1359", + "errorMessage": "can't be for sale", + "pc": [ + 5526 + ] + }, + { + "teal": 5975, + "source": "contracts/NFDInstance.algo.ts:1360", + "pc": [ + 5527, + 5528 + ] + }, + { + "teal": 5976, + "source": "contracts/NFDInstance.algo.ts:1360", + "pc": [ + 5529 + ] + }, + { + "teal": 5977, + "source": "contracts/NFDInstance.algo.ts:1360", + "pc": [ + 5530 + ] + }, + { + "teal": 5978, + "source": "contracts/NFDInstance.algo.ts:1360", + "pc": [ + 5531 + ] + }, + { + "teal": 5981, + "source": "contracts/NFDInstance.algo.ts:1360", + "errorMessage": "sender must be owner", + "pc": [ + 5532 + ] + }, + { + "teal": 5986, + "source": "contracts/NFDInstance.algo.ts:1362", + "pc": [ + 5533, + 5534 + ] + }, + { + "teal": 5987, + "source": "contracts/NFDInstance.algo.ts:1362", + "pc": [ + 5535, + 5536, + 5537 + ] + }, + { + "teal": 5992, + "source": "contracts/NFDInstance.algo.ts:1363", + "pc": [ + 5538 + ] + }, + { + "teal": 5993, + "source": "contracts/NFDInstance.algo.ts:1363", + "pc": [ + 5539, + 5540, + 5541 + ] + }, + { + "teal": 5999, + "source": "contracts/NFDInstance.algo.ts:1366", + "pc": [ + 5542, + 5543 + ] + }, + { + "teal": 6000, + "source": "contracts/NFDInstance.algo.ts:1366", + "pc": [ + 5544 + ] + }, + { + "teal": 6001, + "source": "contracts/NFDInstance.algo.ts:1366", + "pc": [ + 5545, + 5546 + ] + }, + { + "teal": 6002, + "source": "contracts/NFDInstance.algo.ts:1366", + "pc": [ + 5547 + ] + }, + { + "teal": 6003, + "source": "contracts/NFDInstance.algo.ts:1366", + "pc": [ + 5548, + 5549, + 5550 + ] + }, + { + "teal": 6009, + "source": "contracts/NFDInstance.algo.ts:1367", + "pc": [ + 5551, + 5552 + ] + }, + { + "teal": 6010, + "source": "contracts/NFDInstance.algo.ts:1367", + "pc": [ + 5553, + 5554, + 5555 + ] + }, + { + "teal": 6011, + "source": "contracts/NFDInstance.algo.ts:1367", + "pc": [ + 5556, + 5557 + ] + }, + { + "teal": 6012, + "source": "contracts/NFDInstance.algo.ts:1367", + "pc": [ + 5558 + ] + }, + { + "teal": 6013, + "source": "contracts/NFDInstance.algo.ts:1367", + "pc": [ + 5559, + 5560, + 5561 + ] + }, + { + "teal": 6017, + "source": "contracts/NFDInstance.algo.ts:1368", + "errorMessage": "updating v.caAlgo field isn't allowed via regular field update", + "pc": [ + 5562 + ] + }, + { + "teal": 6024, + "source": "contracts/NFDInstance.algo.ts:1372", + "pc": [ + 5563, + 5564 + ] + }, + { + "teal": 6025, + "source": "contracts/NFDInstance.algo.ts:1372", + "pc": [ + 5565 + ] + }, + { + "teal": 6026, + "source": "contracts/NFDInstance.algo.ts:1372", + "pc": [ + 5566, + 5567, + 5568 + ] + }, + { + "teal": 6027, + "source": "contracts/NFDInstance.algo.ts:1372", + "pc": [ + 5569, + 5570 + ] + }, + { + "teal": 6028, + "source": "contracts/NFDInstance.algo.ts:1372", + "pc": [ + 5571 + ] + }, + { + "teal": 6029, + "source": "contracts/NFDInstance.algo.ts:1372", + "pc": [ + 5572 + ] + }, + { + "teal": 6030, + "source": "contracts/NFDInstance.algo.ts:1372", + "pc": [ + 5573 + ] + }, + { + "teal": 6031, + "source": "contracts/NFDInstance.algo.ts:1372", + "pc": [ + 5574 + ] + }, + { + "teal": 6037, + "source": "contracts/NFDInstance.algo.ts:1346", + "pc": [ + 5575, + 5576 + ] + }, + { + "teal": 6040, + "source": "contracts/NFDInstance.algo.ts:1346", + "pc": [ + 5577, + 5578 + ] + }, + { + "teal": 6041, + "source": "contracts/NFDInstance.algo.ts:1346", + "pc": [ + 5579 + ] + }, + { + "teal": 6045, + "source": "contracts/NFDInstance.algo.ts:1376", + "pc": [ + 5580, + 5581, + 5582 + ] + }, + { + "teal": 6049, + "source": "contracts/NFDInstance.algo.ts:1377", + "pc": [ + 5583, + 5584 + ] + }, + { + "teal": 6050, + "source": "contracts/NFDInstance.algo.ts:1377", + "pc": [ + 5585, + 5586, + 5587, + 5588 + ] + }, + { + "teal": 6051, + "source": "contracts/NFDInstance.algo.ts:1377", + "pc": [ + 5589 + ] + }, + { + "teal": 6052, + "source": "contracts/NFDInstance.algo.ts:1376", + "pc": [ + 5590 + ] + }, + { + "teal": 6056, + "source": "contracts/NFDInstance.algo.ts:1381", + "pc": [ + 5591, + 5592, + 5593 + ] + }, + { + "teal": 6060, + "source": "contracts/NFDInstance.algo.ts:1382", + "pc": [ + 5594, + 5595 + ] + }, + { + "teal": 6061, + "source": "contracts/NFDInstance.algo.ts:1382", + "pc": [ + 5596, + 5597, + 5598, + 5599 + ] + }, + { + "teal": 6062, + "source": "contracts/NFDInstance.algo.ts:1382", + "pc": [ + 5600 + ] + }, + { + "teal": 6063, + "source": "contracts/NFDInstance.algo.ts:1381", + "pc": [ + 5601 + ] + }, + { + "teal": 6067, + "source": "contracts/NFDInstance.algo.ts:1386", + "pc": [ + 5602, + 5603, + 5604 + ] + }, + { + "teal": 6071, + "source": "contracts/NFDInstance.algo.ts:1387", + "pc": [ + 5605, + 5606 + ] + }, + { + "teal": 6072, + "source": "contracts/NFDInstance.algo.ts:1387", + "pc": [ + 5607, + 5608, + 5609, + 5610 + ] + }, + { + "teal": 6073, + "source": "contracts/NFDInstance.algo.ts:1387", + "pc": [ + 5611 + ] + }, + { + "teal": 6074, + "source": "contracts/NFDInstance.algo.ts:1386", + "pc": [ + 5612 + ] + }, + { + "teal": 6078, + "source": "contracts/NFDInstance.algo.ts:1390", + "pc": [ + 5613, + 5614, + 5615 + ] + }, + { + "teal": 6082, + "source": "contracts/NFDInstance.algo.ts:1391", + "pc": [ + 5616, + 5617 + ] + }, + { + "teal": 6083, + "source": "contracts/NFDInstance.algo.ts:1391", + "pc": [ + 5618, + 5619, + 5620 + ] + }, + { + "teal": 6084, + "source": "contracts/NFDInstance.algo.ts:1391", + "pc": [ + 5621 + ] + }, + { + "teal": 6085, + "source": "contracts/NFDInstance.algo.ts:1391", + "pc": [ + 5622 + ] + }, + { + "teal": 6086, + "source": "contracts/NFDInstance.algo.ts:1390", + "pc": [ + 5623 + ] + }, + { + "teal": 6090, + "source": "contracts/NFDInstance.algo.ts:1395", + "pc": [ + 5624, + 5625, + 5626 + ] + }, + { + "teal": 6093, + "source": "contracts/NFDInstance.algo.ts:1395", + "pc": [ + 5627 + ] + }, + { + "teal": 6097, + "source": "contracts/NFDInstance.algo.ts:1396", + "pc": [ + 5628, + 5629 + ] + }, + { + "teal": 6098, + "source": "contracts/NFDInstance.algo.ts:1396", + "pc": [ + 5630, + 5631, + 5632 + ] + }, + { + "teal": 6099, + "source": "contracts/NFDInstance.algo.ts:1396", + "pc": [ + 5633, + 5634 + ] + }, + { + "teal": 6104, + "source": "contracts/NFDInstance.algo.ts:1397", + "pc": [ + 5635, + 5636 + ] + }, + { + "teal": 6105, + "source": "contracts/NFDInstance.algo.ts:1397", + "pc": [ + 5637 + ] + }, + { + "teal": 6106, + "source": "contracts/NFDInstance.algo.ts:1397", + "pc": [ + 5638 + ] + }, + { + "teal": 6107, + "source": "contracts/NFDInstance.algo.ts:1397", + "pc": [ + 5639, + 5640, + 5641 + ] + }, + { + "teal": 6112, + "source": "contracts/NFDInstance.algo.ts:1399", + "pc": [ + 5642 + ] + }, + { + "teal": 6113, + "source": "contracts/NFDInstance.algo.ts:1399", + "pc": [ + 5643, + 5644, + 5645 + ] + }, + { + "teal": 6118, + "source": "contracts/NFDInstance.algo.ts:1401", + "pc": [ + 5646, + 5647 + ] + }, + { + "teal": 6119, + "source": "contracts/NFDInstance.algo.ts:1401", + "pc": [ + 5648, + 5649 + ] + }, + { + "teal": 6120, + "source": "contracts/NFDInstance.algo.ts:1401", + "pc": [ + 5650 + ] + }, + { + "teal": 6124, + "source": "contracts/NFDInstance.algo.ts:1395", + "pc": [ + 5651, + 5652 + ] + }, + { + "teal": 6125, + "source": "contracts/NFDInstance.algo.ts:1395", + "pc": [ + 5653 + ] + }, + { + "teal": 6129, + "source": "contracts/NFDInstance.algo.ts:1409", + "pc": [ + 5654, + 5655, + 5656 + ] + }, + { + "teal": 6133, + "source": "contracts/NFDInstance.algo.ts:1410", + "pc": [ + 5657, + 5658 + ] + }, + { + "teal": 6134, + "source": "contracts/NFDInstance.algo.ts:1410", + "pc": [ + 5659, + 5660, + 5661 + ] + }, + { + "teal": 6135, + "source": "contracts/NFDInstance.algo.ts:1410", + "pc": [ + 5662, + 5663 + ] + }, + { + "teal": 6136, + "source": "contracts/NFDInstance.algo.ts:1410", + "pc": [ + 5664 + ] + }, + { + "teal": 6137, + "source": "contracts/NFDInstance.algo.ts:1409", + "pc": [ + 5665 + ] + }, + { + "teal": 6141, + "source": "contracts/NFDInstance.algo.ts:1413", + "pc": [ + 5666, + 5667, + 5668 + ] + }, + { + "teal": 6145, + "source": "contracts/NFDInstance.algo.ts:1414", + "pc": [ + 5669, + 5670, + 5671 + ] + }, + { + "teal": 6149, + "source": "contracts/NFDInstance.algo.ts:1415", + "pc": [ + 5672, + 5673, + 5674 + ] + }, + { + "teal": 6150, + "source": "contracts/NFDInstance.algo.ts:1413", + "pc": [ + 5675 + ] + }, + { + "teal": 6154, + "source": "contracts/NFDInstance.algo.ts:1418", + "pc": [ + 5676, + 5677, + 5678 + ] + }, + { + "teal": 6158, + "source": "contracts/NFDInstance.algo.ts:1419", + "pc": [ + 5679, + 5680, + 5681 + ] + }, + { + "teal": 6159, + "source": "contracts/NFDInstance.algo.ts:1419", + "pc": [ + 5682 + ] + }, + { + "teal": 6162, + "source": "contracts/NFDInstance.algo.ts:1419", + "errorMessage": "can't be for sale", + "pc": [ + 5683 + ] + }, + { + "teal": 6166, + "source": "contracts/NFDInstance.algo.ts:1420", + "pc": [ + 5684, + 5685, + 5686 + ] + }, + { + "teal": 6167, + "source": "contracts/NFDInstance.algo.ts:1420", + "pc": [ + 5687 + ] + }, + { + "teal": 6170, + "source": "contracts/NFDInstance.algo.ts:1420", + "errorMessage": "can't be expired", + "pc": [ + 5688 + ] + }, + { + "teal": 6171, + "source": "contracts/NFDInstance.algo.ts:1418", + "pc": [ + 5689 + ] + }, + { + "teal": 6175, + "source": "contracts/NFDInstance.algo.ts:1424", + "pc": [ + 5690, + 5691, + 5692 + ] + }, + { + "teal": 6178, + "source": "contracts/NFDInstance.algo.ts:1424", + "pc": [ + 5693 + ] + }, + { + "teal": 6182, + "source": "contracts/NFDInstance.algo.ts:1425", + "pc": [ + 5694 + ] + }, + { + "teal": 6183, + "source": "contracts/NFDInstance.algo.ts:1425", + "pc": [ + 5695, + 5696 + ] + }, + { + "teal": 6188, + "source": "contracts/NFDInstance.algo.ts:1425", + "pc": [ + 5697, + 5698 + ] + }, + { + "teal": 6189, + "source": "contracts/NFDInstance.algo.ts:1425", + "pc": [ + 5699, + 5700 + ] + }, + { + "teal": 6190, + "source": "contracts/NFDInstance.algo.ts:1425", + "pc": [ + 5701 + ] + }, + { + "teal": 6191, + "source": "contracts/NFDInstance.algo.ts:1425", + "pc": [ + 5702, + 5703, + 5704 + ] + }, + { + "teal": 6196, + "source": "contracts/NFDInstance.algo.ts:1426", + "pc": [ + 5705, + 5706 + ] + }, + { + "teal": 6197, + "source": "contracts/NFDInstance.algo.ts:1426", + "pc": [ + 5707, + 5708 + ] + }, + { + "teal": 6198, + "source": "contracts/NFDInstance.algo.ts:1426", + "pc": [ + 5709 + ] + }, + { + "teal": 6199, + "source": "contracts/NFDInstance.algo.ts:1426", + "pc": [ + 5710 + ] + }, + { + "teal": 6200, + "source": "contracts/NFDInstance.algo.ts:1426", + "pc": [ + 5711, + 5712 + ] + }, + { + "teal": 6201, + "source": "contracts/NFDInstance.algo.ts:1426", + "pc": [ + 5713 + ] + }, + { + "teal": 6202, + "source": "contracts/NFDInstance.algo.ts:1426", + "pc": [ + 5714, + 5715, + 5716 + ] + }, + { + "teal": 6207, + "source": "contracts/NFDInstance.algo.ts:1427", + "pc": [ + 5717 + ] + }, + { + "teal": 6208, + "source": "contracts/NFDInstance.algo.ts:1427", + "pc": [ + 5718, + 5719, + 5720 + ] + }, + { + "teal": 6215, + "source": "contracts/NFDInstance.algo.ts:1425", + "pc": [ + 5721, + 5722 + ] + }, + { + "teal": 6216, + "source": "contracts/NFDInstance.algo.ts:1425", + "pc": [ + 5723 + ] + }, + { + "teal": 6217, + "source": "contracts/NFDInstance.algo.ts:1425", + "pc": [ + 5724 + ] + }, + { + "teal": 6218, + "source": "contracts/NFDInstance.algo.ts:1425", + "pc": [ + 5725, + 5726 + ] + }, + { + "teal": 6219, + "source": "contracts/NFDInstance.algo.ts:1425", + "pc": [ + 5727, + 5728, + 5729 + ] + }, + { + "teal": 6224, + "source": "contracts/NFDInstance.algo.ts:1430", + "pc": [ + 5730 + ] + }, + { + "teal": 6228, + "source": "contracts/NFDInstance.algo.ts:1424", + "pc": [ + 5731, + 5732 + ] + }, + { + "teal": 6229, + "source": "contracts/NFDInstance.algo.ts:1424", + "pc": [ + 5733 + ] + }, + { + "teal": 6242, + "source": "contracts/NFDInstance.algo.ts:1443", + "pc": [ + 5734, + 5735, + 5736 + ] + }, + { + "teal": 6245, + "source": "contracts/NFDInstance.algo.ts:1443", + "pc": [ + 5737 + ] + }, + { + "teal": 6246, + "source": "contracts/NFDInstance.algo.ts:1443", + "pc": [ + 5738 + ] + }, + { + "teal": 6250, + "source": "contracts/NFDInstance.algo.ts:1444", + "pc": [ + 5739, + 5740 + ] + }, + { + "teal": 6251, + "source": "contracts/NFDInstance.algo.ts:1444", + "pc": [ + 5741, + 5742 + ] + }, + { + "teal": 6252, + "source": "contracts/NFDInstance.algo.ts:1444", + "pc": [ + 5743 + ] + }, + { + "teal": 6253, + "source": "contracts/config.algo.ts:5", + "pc": [ + 5744, + 5745 + ] + }, + { + "teal": 6254, + "source": "contracts/NFDInstance.algo.ts:1444", + "pc": [ + 5746 + ] + }, + { + "teal": 6255, + "source": "contracts/NFDInstance.algo.ts:1444", + "pc": [ + 5747, + 5748 + ] + }, + { + "teal": 6256, + "source": "contracts/NFDInstance.algo.ts:1444", + "pc": [ + 5749 + ] + }, + { + "teal": 6257, + "source": "contracts/NFDInstance.algo.ts:1444", + "pc": [ + 5750, + 5751 + ] + }, + { + "teal": 6261, + "source": "contracts/NFDInstance.algo.ts:1445", + "pc": [ + 5752, + 5753 + ] + }, + { + "teal": 6262, + "source": "contracts/NFDInstance.algo.ts:1445", + "pc": [ + 5754, + 5755 + ] + }, + { + "teal": 6263, + "source": "contracts/NFDInstance.algo.ts:1445", + "pc": [ + 5756 + ] + }, + { + "teal": 6264, + "source": "contracts/NFDInstance.algo.ts:1445", + "pc": [ + 5757, + 5758 + ] + }, + { + "teal": 6271, + "source": "contracts/NFDInstance.algo.ts:1448", + "pc": [ + 5759, + 5760 + ] + }, + { + "teal": 6272, + "source": "contracts/NFDInstance.algo.ts:1448", + "pc": [ + 5761, + 5762 + ] + }, + { + "teal": 6273, + "source": "contracts/NFDInstance.algo.ts:1448", + "pc": [ + 5763, + 5764 + ] + }, + { + "teal": 6274, + "source": "contracts/NFDInstance.algo.ts:1448", + "pc": [ + 5765, + 5766 + ] + }, + { + "teal": 6275, + "source": "contracts/NFDInstance.algo.ts:1448", + "pc": [ + 5767 + ] + }, + { + "teal": 6276, + "source": "contracts/config.algo.ts:5", + "pc": [ + 5768, + 5769 + ] + }, + { + "teal": 6277, + "source": "contracts/NFDInstance.algo.ts:1448", + "pc": [ + 5770 + ] + }, + { + "teal": 6278, + "source": "contracts/NFDInstance.algo.ts:1448", + "pc": [ + 5771 + ] + }, + { + "teal": 6279, + "source": "contracts/NFDInstance.algo.ts:1448", + "pc": [ + 5772 + ] + }, + { + "teal": 6282, + "source": "contracts/NFDInstance.algo.ts:1447", + "errorMessage": "max expiration exceeded parameters defined by registry", + "pc": [ + 5773 + ] + }, + { + "teal": 6286, + "source": "contracts/NFDInstance.algo.ts:1451", + "pc": [ + 5774, + 5775 + ] + }, + { + "teal": 6289, + "source": "contracts/NFDInstance.algo.ts:1443", + "pc": [ + 5776, + 5777 + ] + }, + { + "teal": 6292, + "source": "contracts/NFDInstance.algo.ts:1443", + "pc": [ + 5778, + 5779 + ] + }, + { + "teal": 6293, + "source": "contracts/NFDInstance.algo.ts:1443", + "pc": [ + 5780 + ] + }, + { + "teal": 6297, + "source": "contracts/NFDInstance.algo.ts:1454", + "pc": [ + 5781, + 5782, + 5783 + ] + }, + { + "teal": 6300, + "source": "contracts/NFDInstance.algo.ts:1454", + "pc": [ + 5784 + ] + }, + { + "teal": 6301, + "source": "contracts/NFDInstance.algo.ts:1454", + "pc": [ + 5785 + ] + }, + { + "teal": 6305, + "source": "contracts/NFDInstance.algo.ts:1455", + "pc": [ + 5786, + 5787 + ] + }, + { + "teal": 6306, + "source": "contracts/NFDInstance.algo.ts:1455", + "pc": [ + 5788, + 5789 + ] + }, + { + "teal": 6307, + "source": "contracts/NFDInstance.algo.ts:1455", + "pc": [ + 5790 + ] + }, + { + "teal": 6308, + "source": "contracts/NFDInstance.algo.ts:1455", + "pc": [ + 5791, + 5792 + ] + }, + { + "teal": 6309, + "source": "contracts/NFDInstance.algo.ts:1455", + "pc": [ + 5793, + 5794 + ] + }, + { + "teal": 6313, + "source": "contracts/NFDInstance.algo.ts:1456", + "pc": [ + 5795, + 5796 + ] + }, + { + "teal": 6316, + "source": "contracts/NFDInstance.algo.ts:1454", + "pc": [ + 5797, + 5798 + ] + }, + { + "teal": 6319, + "source": "contracts/NFDInstance.algo.ts:1454", + "pc": [ + 5799, + 5800 + ] + }, + { + "teal": 6320, + "source": "contracts/NFDInstance.algo.ts:1454", + "pc": [ + 5801 + ] + }, + { + "teal": 6324, + "source": "contracts/NFDInstance.algo.ts:1459", + "pc": [ + 5802, + 5803, + 5804 + ] + }, + { + "teal": 6327, + "source": "contracts/NFDInstance.algo.ts:1459", + "pc": [ + 5805 + ] + }, + { + "teal": 6328, + "source": "contracts/NFDInstance.algo.ts:1459", + "pc": [ + 5806 + ] + }, + { + "teal": 6332, + "source": "contracts/NFDInstance.algo.ts:1462", + "pc": [ + 5807, + 5808 + ] + }, + { + "teal": 6333, + "source": "contracts/NFDInstance.algo.ts:1462", + "pc": [ + 5809, + 5810 + ] + }, + { + "teal": 6334, + "source": "contracts/NFDInstance.algo.ts:1462", + "pc": [ + 5811 + ] + }, + { + "teal": 6335, + "source": "contracts/NFDInstance.algo.ts:1462", + "pc": [ + 5812 + ] + }, + { + "teal": 6336, + "source": "contracts/NFDInstance.algo.ts:1462", + "pc": [ + 5813, + 5814 + ] + }, + { + "teal": 6337, + "source": "contracts/NFDInstance.algo.ts:1462", + "pc": [ + 5815 + ] + }, + { + "teal": 6338, + "source": "contracts/NFDInstance.algo.ts:1462", + "pc": [ + 5816, + 5817 + ] + }, + { + "teal": 6343, + "source": "contracts/NFDInstance.algo.ts:1464", + "pc": [ + 5818, + 5819 + ] + }, + { + "teal": 6344, + "source": "contracts/NFDInstance.algo.ts:1464", + "pc": [ + 5820 + ] + }, + { + "teal": 6345, + "source": "contracts/NFDInstance.algo.ts:1464", + "pc": [ + 5821 + ] + }, + { + "teal": 6346, + "source": "contracts/NFDInstance.algo.ts:1464", + "pc": [ + 5822, + 5823, + 5824 + ] + }, + { + "teal": 6351, + "source": "contracts/NFDInstance.algo.ts:1465", + "pc": [ + 5825, + 5826 + ] + }, + { + "teal": 6352, + "source": "contracts/NFDInstance.algo.ts:1465", + "pc": [ + 5827, + 5828 + ] + }, + { + "teal": 6353, + "source": "contracts/NFDInstance.algo.ts:1464", + "pc": [ + 5829, + 5830, + 5831 + ] + }, + { + "teal": 6358, + "source": "contracts/NFDInstance.algo.ts:1468", + "pc": [ + 5832, + 5833 + ] + }, + { + "teal": 6359, + "source": "contracts/NFDInstance.algo.ts:1468", + "pc": [ + 5834, + 5835 + ] + }, + { + "teal": 6365, + "source": "contracts/NFDInstance.algo.ts:1470", + "pc": [ + 5836, + 5837 + ] + }, + { + "teal": 6366, + "source": "contracts/NFDInstance.algo.ts:1470", + "pc": [ + 5838, + 5839 + ] + }, + { + "teal": 6367, + "source": "contracts/NFDInstance.algo.ts:1470", + "pc": [ + 5840 + ] + }, + { + "teal": 6368, + "source": "contracts/NFDInstance.algo.ts:1470", + "pc": [ + 5841, + 5842, + 5843 + ] + }, + { + "teal": 6373, + "source": "contracts/NFDInstance.algo.ts:1471", + "pc": [ + 5844 + ] + }, + { + "teal": 6384, + "source": "contracts/NFDInstance.algo.ts:1473", + "pc": [ + 5845 + ] + }, + { + "teal": 6385, + "source": "contracts/NFDInstance.algo.ts:1473", + "pc": [ + 5846, + 5847 + ] + }, + { + "teal": 6386, + "source": "contracts/NFDInstance.algo.ts:1473", + "pc": [ + 5848, + 5849 + ] + }, + { + "teal": 6390, + "source": "contracts/NFDInstance.algo.ts:1474", + "pc": [ + 5850, + 5851 + ] + }, + { + "teal": 6391, + "source": "contracts/NFDInstance.algo.ts:1474", + "pc": [ + 5852 + ] + }, + { + "teal": 6392, + "source": "contracts/NFDInstance.algo.ts:1474", + "pc": [ + 5853 + ] + }, + { + "teal": 6393, + "source": "contracts/NFDInstance.algo.ts:1474", + "pc": [ + 5854, + 5855 + ] + }, + { + "teal": 6397, + "source": "contracts/NFDInstance.algo.ts:1475", + "pc": [ + 5856 + ] + }, + { + "teal": 6398, + "source": "contracts/NFDInstance.algo.ts:1475", + "pc": [ + 5857, + 5858 + ] + }, + { + "teal": 6402, + "source": "contracts/NFDInstance.algo.ts:1476", + "pc": [ + 5859, + 5860 + ] + }, + { + "teal": 6403, + "source": "contracts/NFDInstance.algo.ts:1476", + "pc": [ + 5861, + 5862 + ] + }, + { + "teal": 6407, + "source": "contracts/NFDInstance.algo.ts:1477", + "pc": [ + 5863, + 5864 + ] + }, + { + "teal": 6408, + "source": "contracts/NFDInstance.algo.ts:1477", + "pc": [ + 5865, + 5866 + ] + }, + { + "teal": 6412, + "source": "contracts/NFDInstance.algo.ts:1478", + "pc": [ + 5867, + 5868 + ] + }, + { + "teal": 6413, + "source": "contracts/NFDInstance.algo.ts:1478", + "pc": [ + 5869, + 5870 + ] + }, + { + "teal": 6416, + "source": "contracts/NFDInstance.algo.ts:1473", + "pc": [ + 5871 + ] + }, + { + "teal": 6417, + "source": "contracts/NFDInstance.algo.ts:1473", + "pc": [ + 5872, + 5873 + ] + }, + { + "teal": 6420, + "source": "contracts/NFDInstance.algo.ts:1473", + "pc": [ + 5874 + ] + }, + { + "teal": 6421, + "source": "contracts/NFDInstance.algo.ts:1459", + "pc": [ + 5875 + ] + }, + { + "teal": 6431, + "source": "contracts/NFDInstance.algo.ts:1489", + "pc": [ + 5876, + 5877, + 5878 + ] + }, + { + "teal": 6434, + "source": "contracts/NFDInstance.algo.ts:1489", + "pc": [ + 5879 + ] + }, + { + "teal": 6435, + "source": "contracts/NFDInstance.algo.ts:1489", + "pc": [ + 5880 + ] + }, + { + "teal": 6439, + "source": "contracts/NFDInstance.algo.ts:1490", + "pc": [ + 5881, + 5882 + ] + }, + { + "teal": 6440, + "source": "contracts/NFDInstance.algo.ts:1490", + "pc": [ + 5883 + ] + }, + { + "teal": 6441, + "source": "contracts/NFDInstance.algo.ts:1490", + "pc": [ + 5884 + ] + }, + { + "teal": 6442, + "source": "contracts/NFDInstance.algo.ts:1490", + "pc": [ + 5885 + ] + }, + { + "teal": 6443, + "source": "contracts/NFDInstance.algo.ts:1490", + "pc": [ + 5886, + 5887 + ] + }, + { + "teal": 6447, + "source": "contracts/NFDInstance.algo.ts:1491", + "pc": [ + 5888 + ] + }, + { + "teal": 6448, + "source": "contracts/NFDInstance.algo.ts:1491", + "pc": [ + 5889, + 5890 + ] + }, + { + "teal": 6453, + "source": "contracts/NFDInstance.algo.ts:1491", + "pc": [ + 5891, + 5892 + ] + }, + { + "teal": 6454, + "source": "contracts/NFDInstance.algo.ts:1491", + "pc": [ + 5893, + 5894 + ] + }, + { + "teal": 6455, + "source": "contracts/NFDInstance.algo.ts:1491", + "pc": [ + 5895 + ] + }, + { + "teal": 6456, + "source": "contracts/NFDInstance.algo.ts:1491", + "pc": [ + 5896, + 5897, + 5898 + ] + }, + { + "teal": 6461, + "source": "contracts/NFDInstance.algo.ts:1492", + "pc": [ + 5899, + 5900 + ] + }, + { + "teal": 6462, + "source": "contracts/NFDInstance.algo.ts:1492", + "pc": [ + 5901, + 5902 + ] + }, + { + "teal": 6463, + "source": "contracts/NFDInstance.algo.ts:1492", + "pc": [ + 5903 + ] + }, + { + "teal": 6464, + "source": "contracts/NFDInstance.algo.ts:1492", + "pc": [ + 5904 + ] + }, + { + "teal": 6465, + "source": "contracts/NFDInstance.algo.ts:1492", + "pc": [ + 5905 + ] + }, + { + "teal": 6466, + "source": "contracts/NFDInstance.algo.ts:1492", + "pc": [ + 5906 + ] + }, + { + "teal": 6467, + "source": "contracts/NFDInstance.algo.ts:1492", + "pc": [ + 5907, + 5908 + ] + }, + { + "teal": 6468, + "source": "contracts/NFDInstance.algo.ts:1492", + "pc": [ + 5909 + ] + }, + { + "teal": 6469, + "source": "contracts/NFDInstance.algo.ts:1492", + "pc": [ + 5910, + 5911, + 5912 + ] + }, + { + "teal": 6474, + "source": "contracts/NFDInstance.algo.ts:1493", + "pc": [ + 5913 + ] + }, + { + "teal": 6475, + "source": "contracts/NFDInstance.algo.ts:1493", + "pc": [ + 5914, + 5915, + 5916 + ] + }, + { + "teal": 6482, + "source": "contracts/NFDInstance.algo.ts:1491", + "pc": [ + 5917, + 5918 + ] + }, + { + "teal": 6483, + "source": "contracts/NFDInstance.algo.ts:1491", + "pc": [ + 5919 + ] + }, + { + "teal": 6484, + "source": "contracts/NFDInstance.algo.ts:1491", + "pc": [ + 5920 + ] + }, + { + "teal": 6485, + "source": "contracts/NFDInstance.algo.ts:1491", + "pc": [ + 5921, + 5922 + ] + }, + { + "teal": 6486, + "source": "contracts/NFDInstance.algo.ts:1491", + "pc": [ + 5923, + 5924, + 5925 + ] + }, + { + "teal": 6491, + "source": "contracts/NFDInstance.algo.ts:1496", + "pc": [ + 5926 + ] + }, + { + "teal": 6495, + "source": "contracts/NFDInstance.algo.ts:1489", + "pc": [ + 5927, + 5928 + ] + }, + { + "teal": 6498, + "source": "contracts/NFDInstance.algo.ts:1489", + "pc": [ + 5929, + 5930 + ] + }, + { + "teal": 6499, + "source": "contracts/NFDInstance.algo.ts:1489", + "pc": [ + 5931 + ] + }, + { + "teal": 6503, + "source": "contracts/NFDInstance.algo.ts:1500", + "pc": [ + 5932, + 5933, + 5934 + ] + }, + { + "teal": 6506, + "source": "contracts/NFDInstance.algo.ts:1500", + "pc": [ + 5935 + ] + }, + { + "teal": 6507, + "source": "contracts/NFDInstance.algo.ts:1500", + "pc": [ + 5936, + 5937 + ] + }, + { + "teal": 6511, + "source": "contracts/NFDInstance.algo.ts:1501", + "pc": [ + 5938, + 5939 + ] + }, + { + "teal": 6512, + "source": "contracts/NFDInstance.algo.ts:1501", + "pc": [ + 5940 + ] + }, + { + "teal": 6515, + "source": "contracts/NFDInstance.algo.ts:1501", + "errorMessage": "box value does not exist: this.boxes(key).value", + "pc": [ + 5941 + ] + }, + { + "teal": 6516, + "source": "contracts/NFDInstance.algo.ts:1501", + "pc": [ + 5942, + 5943 + ] + }, + { + "teal": 6520, + "source": "contracts/NFDInstance.algo.ts:1503", + "pc": [ + 5944, + 5945 + ] + }, + { + "teal": 6521, + "source": "contracts/NFDInstance.algo.ts:1503", + "pc": [ + 5946, + 5947 + ] + }, + { + "teal": 6522, + "source": "contracts/NFDInstance.algo.ts:1503", + "pc": [ + 5948 + ] + }, + { + "teal": 6523, + "source": "contracts/NFDInstance.algo.ts:1503", + "pc": [ + 5949 + ] + }, + { + "teal": 6527, + "source": "contracts/NFDInstance.algo.ts:1505", + "pc": [ + 5950, + 5951 + ] + }, + { + "teal": 6528, + "source": "contracts/NFDInstance.algo.ts:1505", + "pc": [ + 5952 + ] + }, + { + "teal": 6529, + "source": "contracts/NFDInstance.algo.ts:1505", + "pc": [ + 5953, + 5954 + ] + }, + { + "teal": 6530, + "source": "contracts/NFDInstance.algo.ts:1505", + "pc": [ + 5955 + ] + }, + { + "teal": 6533, + "source": "contracts/NFDInstance.algo.ts:1505", + "errorMessage": "address 'set' should already have at least two values", + "pc": [ + 5956 + ] + }, + { + "teal": 6538, + "source": "contracts/NFDInstance.algo.ts:1508", + "pc": [ + 5957, + 5958 + ] + }, + { + "teal": 6539, + "source": "contracts/NFDInstance.algo.ts:1508", + "pc": [ + 5959, + 5960, + 5961 + ] + }, + { + "teal": 6540, + "source": "contracts/NFDInstance.algo.ts:1508", + "pc": [ + 5962, + 5963 + ] + }, + { + "teal": 6541, + "source": "contracts/NFDInstance.algo.ts:1508", + "pc": [ + 5964 + ] + }, + { + "teal": 6542, + "source": "contracts/NFDInstance.algo.ts:1508", + "pc": [ + 5965, + 5966, + 5967 + ] + }, + { + "teal": 6547, + "source": "contracts/NFDInstance.algo.ts:1509", + "pc": [ + 5968 + ] + }, + { + "teal": 6552, + "source": "contracts/NFDInstance.algo.ts:1512", + "pc": [ + 5969, + 5970 + ] + }, + { + "teal": 6553, + "source": "contracts/NFDInstance.algo.ts:1512", + "pc": [ + 5971 + ] + }, + { + "teal": 6554, + "source": "contracts/NFDInstance.algo.ts:1512", + "pc": [ + 5972 + ] + }, + { + "teal": 6555, + "source": "contracts/NFDInstance.algo.ts:1512", + "pc": [ + 5973 + ] + }, + { + "teal": 6556, + "source": "contracts/NFDInstance.algo.ts:1512", + "pc": [ + 5974, + 5975 + ] + }, + { + "teal": 6560, + "source": "contracts/NFDInstance.algo.ts:1513", + "pc": [ + 5976 + ] + }, + { + "teal": 6561, + "source": "contracts/NFDInstance.algo.ts:1513", + "pc": [ + 5977, + 5978 + ] + }, + { + "teal": 6565, + "source": "contracts/NFDInstance.algo.ts:1515", + "pc": [ + 5979 + ] + }, + { + "teal": 6566, + "source": "contracts/NFDInstance.algo.ts:1515", + "pc": [ + 5980, + 5981 + ] + }, + { + "teal": 6571, + "source": "contracts/NFDInstance.algo.ts:1515", + "pc": [ + 5982, + 5983 + ] + }, + { + "teal": 6572, + "source": "contracts/NFDInstance.algo.ts:1515", + "pc": [ + 5984, + 5985 + ] + }, + { + "teal": 6573, + "source": "contracts/NFDInstance.algo.ts:1515", + "pc": [ + 5986 + ] + }, + { + "teal": 6574, + "source": "contracts/NFDInstance.algo.ts:1515", + "pc": [ + 5987, + 5988, + 5989 + ] + }, + { + "teal": 6579, + "source": "contracts/NFDInstance.algo.ts:1516", + "pc": [ + 5990, + 5991 + ] + }, + { + "teal": 6580, + "source": "contracts/NFDInstance.algo.ts:1516", + "pc": [ + 5992, + 5993 + ] + }, + { + "teal": 6581, + "source": "contracts/NFDInstance.algo.ts:1516", + "pc": [ + 5994 + ] + }, + { + "teal": 6582, + "source": "contracts/NFDInstance.algo.ts:1516", + "pc": [ + 5995 + ] + }, + { + "teal": 6583, + "source": "contracts/NFDInstance.algo.ts:1516", + "pc": [ + 5996 + ] + }, + { + "teal": 6584, + "source": "contracts/NFDInstance.algo.ts:1516", + "pc": [ + 5997 + ] + }, + { + "teal": 6585, + "source": "contracts/NFDInstance.algo.ts:1516", + "pc": [ + 5998, + 5999 + ] + }, + { + "teal": 6586, + "source": "contracts/NFDInstance.algo.ts:1516", + "pc": [ + 6000 + ] + }, + { + "teal": 6587, + "source": "contracts/NFDInstance.algo.ts:1516", + "pc": [ + 6001, + 6002, + 6003 + ] + }, + { + "teal": 6592, + "source": "contracts/NFDInstance.algo.ts:1517", + "pc": [ + 6004, + 6005 + ] + }, + { + "teal": 6593, + "source": "contracts/NFDInstance.algo.ts:1517", + "pc": [ + 6006, + 6007 + ] + }, + { + "teal": 6594, + "source": "contracts/NFDInstance.algo.ts:1518", + "pc": [ + 6008, + 6009, + 6010 + ] + }, + { + "teal": 6601, + "source": "contracts/NFDInstance.algo.ts:1515", + "pc": [ + 6011, + 6012 + ] + }, + { + "teal": 6602, + "source": "contracts/NFDInstance.algo.ts:1515", + "pc": [ + 6013 + ] + }, + { + "teal": 6603, + "source": "contracts/NFDInstance.algo.ts:1515", + "pc": [ + 6014 + ] + }, + { + "teal": 6604, + "source": "contracts/NFDInstance.algo.ts:1515", + "pc": [ + 6015, + 6016 + ] + }, + { + "teal": 6605, + "source": "contracts/NFDInstance.algo.ts:1515", + "pc": [ + 6017, + 6018, + 6019 + ] + }, + { + "teal": 6610, + "source": "contracts/NFDInstance.algo.ts:1521", + "pc": [ + 6020, + 6021 + ] + }, + { + "teal": 6611, + "source": "contracts/NFDInstance.algo.ts:1521", + "pc": [ + 6022 + ] + }, + { + "teal": 6612, + "source": "contracts/NFDInstance.algo.ts:1521", + "pc": [ + 6023 + ] + }, + { + "teal": 6615, + "source": "contracts/NFDInstance.algo.ts:1521", + "errorMessage": "address must be found in set in order to move it", + "pc": [ + 6024 + ] + }, + { + "teal": 6619, + "source": "contracts/NFDInstance.algo.ts:1523", + "pc": [ + 6025, + 6026 + ] + }, + { + "teal": 6620, + "source": "contracts/NFDInstance.algo.ts:1523", + "pc": [ + 6027, + 6028, + 6029 + ] + }, + { + "teal": 6621, + "source": "contracts/NFDInstance.algo.ts:1523", + "pc": [ + 6030, + 6031 + ] + }, + { + "teal": 6625, + "source": "contracts/NFDInstance.algo.ts:1525", + "pc": [ + 6032, + 6033 + ] + }, + { + "teal": 6626, + "source": "contracts/NFDInstance.algo.ts:1525", + "pc": [ + 6034 + ] + }, + { + "teal": 6627, + "source": "contracts/NFDInstance.algo.ts:1525", + "pc": [ + 6035, + 6036 + ] + }, + { + "teal": 6628, + "source": "contracts/NFDInstance.algo.ts:1525", + "pc": [ + 6037 + ] + }, + { + "teal": 6629, + "source": "contracts/NFDInstance.algo.ts:1525", + "pc": [ + 6038, + 6039 + ] + }, + { + "teal": 6633, + "source": "contracts/NFDInstance.algo.ts:1527", + "pc": [ + 6040, + 6041 + ] + }, + { + "teal": 6634, + "source": "contracts/NFDInstance.algo.ts:1527", + "pc": [ + 6042, + 6043 + ] + }, + { + "teal": 6635, + "source": "contracts/NFDInstance.algo.ts:1527", + "pc": [ + 6044, + 6045 + ] + }, + { + "teal": 6636, + "source": "contracts/NFDInstance.algo.ts:1527", + "pc": [ + 6046 + ] + }, + { + "teal": 6637, + "source": "contracts/NFDInstance.algo.ts:1527", + "pc": [ + 6047 + ] + }, + { + "teal": 6638, + "source": "contracts/NFDInstance.algo.ts:1527", + "pc": [ + 6048, + 6049 + ] + }, + { + "teal": 6639, + "source": "contracts/NFDInstance.algo.ts:1527", + "pc": [ + 6050 + ] + }, + { + "teal": 6640, + "source": "contracts/NFDInstance.algo.ts:1527", + "pc": [ + 6051 + ] + }, + { + "teal": 6641, + "source": "contracts/NFDInstance.algo.ts:1500", + "pc": [ + 6052 + ] + }, + { + "teal": 6651, + "source": "contracts/NFDInstance.algo.ts:1537", + "pc": [ + 6053, + 6054, + 6055 + ] + }, + { + "teal": 6654, + "source": "contracts/NFDInstance.algo.ts:1537", + "pc": [ + 6056 + ] + }, + { + "teal": 6655, + "source": "contracts/NFDInstance.algo.ts:1537", + "pc": [ + 6057, + 6058 + ] + }, + { + "teal": 6660, + "source": "contracts/NFDInstance.algo.ts:1538", + "pc": [ + 6059, + 6060 + ] + }, + { + "teal": 6661, + "source": "contracts/NFDInstance.algo.ts:1538", + "pc": [ + 6061 + ] + }, + { + "teal": 6662, + "source": "contracts/NFDInstance.algo.ts:1538", + "pc": [ + 6062 + ] + }, + { + "teal": 6663, + "source": "contracts/NFDInstance.algo.ts:1538", + "pc": [ + 6063 + ] + }, + { + "teal": 6664, + "source": "contracts/NFDInstance.algo.ts:1538", + "pc": [ + 6064 + ] + }, + { + "teal": 6665, + "source": "contracts/NFDInstance.algo.ts:1538", + "pc": [ + 6065, + 6066, + 6067 + ] + }, + { + "teal": 6670, + "source": "contracts/NFDInstance.algo.ts:1540", + "pc": [ + 6068, + 6069 + ] + }, + { + "teal": 6671, + "source": "contracts/NFDInstance.algo.ts:1540", + "pc": [ + 6070, + 6071 + ] + }, + { + "teal": 6672, + "source": "contracts/NFDInstance.algo.ts:1540", + "pc": [ + 6072 + ] + }, + { + "teal": 6676, + "source": "contracts/NFDInstance.algo.ts:1541", + "pc": [ + 6073 + ] + }, + { + "teal": 6677, + "source": "contracts/NFDInstance.algo.ts:1541", + "pc": [ + 6074, + 6075, + 6076 + ] + }, + { + "teal": 6682, + "source": "contracts/NFDInstance.algo.ts:1543", + "pc": [ + 6077, + 6078 + ] + }, + { + "teal": 6683, + "source": "contracts/NFDInstance.algo.ts:1543", + "pc": [ + 6079 + ] + }, + { + "teal": 6684, + "source": "contracts/NFDInstance.algo.ts:1543", + "pc": [ + 6080, + 6081 + ] + }, + { + "teal": 6688, + "source": "contracts/NFDInstance.algo.ts:1544", + "pc": [ + 6082, + 6083 + ] + }, + { + "teal": 6689, + "source": "contracts/NFDInstance.algo.ts:1544", + "pc": [ + 6084 + ] + }, + { + "teal": 6690, + "source": "contracts/NFDInstance.algo.ts:1544", + "pc": [ + 6085, + 6086 + ] + }, + { + "teal": 6694, + "source": "contracts/NFDInstance.algo.ts:1545", + "pc": [ + 6087, + 6088 + ] + }, + { + "teal": 6695, + "source": "contracts/NFDInstance.algo.ts:1545", + "pc": [ + 6089 + ] + }, + { + "teal": 6698, + "source": "contracts/NFDInstance.algo.ts:1545", + "errorMessage": "box value does not exist: this.boxes(key).value", + "pc": [ + 6090 + ] + }, + { + "teal": 6699, + "source": "contracts/NFDInstance.algo.ts:1545", + "pc": [ + 6091, + 6092 + ] + }, + { + "teal": 6703, + "source": "contracts/NFDInstance.algo.ts:1546", + "pc": [ + 6093, + 6094 + ] + }, + { + "teal": 6704, + "source": "contracts/NFDInstance.algo.ts:1546", + "pc": [ + 6095 + ] + }, + { + "teal": 6705, + "source": "contracts/NFDInstance.algo.ts:1546", + "pc": [ + 6096, + 6097 + ] + }, + { + "teal": 6706, + "source": "contracts/NFDInstance.algo.ts:1546", + "pc": [ + 6098 + ] + }, + { + "teal": 6707, + "source": "contracts/NFDInstance.algo.ts:1546", + "pc": [ + 6099, + 6100 + ] + }, + { + "teal": 6711, + "source": "contracts/NFDInstance.algo.ts:1548", + "pc": [ + 6101, + 6102 + ] + }, + { + "teal": 6712, + "source": "contracts/NFDInstance.algo.ts:1548", + "pc": [ + 6103 + ] + }, + { + "teal": 6713, + "source": "contracts/NFDInstance.algo.ts:1548", + "pc": [ + 6104, + 6105 + ] + }, + { + "teal": 6714, + "source": "contracts/NFDInstance.algo.ts:1548", + "pc": [ + 6106 + ] + }, + { + "teal": 6715, + "source": "contracts/NFDInstance.algo.ts:1548", + "pc": [ + 6107 + ] + }, + { + "teal": 6716, + "source": "contracts/NFDInstance.algo.ts:1548", + "pc": [ + 6108 + ] + }, + { + "teal": 6719, + "source": "contracts/NFDInstance.algo.ts:1548", + "errorMessage": "existing set must be multiple of key being added", + "pc": [ + 6109 + ] + }, + { + "teal": 6723, + "source": "contracts/NFDInstance.algo.ts:1549", + "pc": [ + 6110 + ] + }, + { + "teal": 6724, + "source": "contracts/NFDInstance.algo.ts:1549", + "pc": [ + 6111, + 6112 + ] + }, + { + "teal": 6729, + "source": "contracts/NFDInstance.algo.ts:1549", + "pc": [ + 6113, + 6114 + ] + }, + { + "teal": 6730, + "source": "contracts/NFDInstance.algo.ts:1549", + "pc": [ + 6115, + 6116 + ] + }, + { + "teal": 6731, + "source": "contracts/NFDInstance.algo.ts:1549", + "pc": [ + 6117 + ] + }, + { + "teal": 6732, + "source": "contracts/NFDInstance.algo.ts:1549", + "pc": [ + 6118, + 6119, + 6120 + ] + }, + { + "teal": 6736, + "source": "contracts/NFDInstance.algo.ts:1550", + "pc": [ + 6121, + 6122 + ] + }, + { + "teal": 6737, + "source": "contracts/NFDInstance.algo.ts:1550", + "pc": [ + 6123, + 6124 + ] + }, + { + "teal": 6738, + "source": "contracts/NFDInstance.algo.ts:1550", + "pc": [ + 6125, + 6126 + ] + }, + { + "teal": 6739, + "source": "contracts/NFDInstance.algo.ts:1550", + "pc": [ + 6127 + ] + }, + { + "teal": 6740, + "source": "contracts/NFDInstance.algo.ts:1550", + "pc": [ + 6128, + 6129 + ] + }, + { + "teal": 6741, + "source": "contracts/NFDInstance.algo.ts:1550", + "pc": [ + 6130 + ] + }, + { + "teal": 6742, + "source": "contracts/NFDInstance.algo.ts:1550", + "pc": [ + 6131, + 6132 + ] + }, + { + "teal": 6747, + "source": "contracts/NFDInstance.algo.ts:1552", + "pc": [ + 6133, + 6134 + ] + }, + { + "teal": 6748, + "source": "contracts/NFDInstance.algo.ts:1552", + "pc": [ + 6135, + 6136 + ] + }, + { + "teal": 6749, + "source": "contracts/NFDInstance.algo.ts:1552", + "pc": [ + 6137 + ] + }, + { + "teal": 6750, + "source": "contracts/NFDInstance.algo.ts:1552", + "pc": [ + 6138, + 6139, + 6140 + ] + }, + { + "teal": 6755, + "source": "contracts/NFDInstance.algo.ts:1554", + "pc": [ + 6141, + 6142 + ] + }, + { + "teal": 6756, + "source": "contracts/NFDInstance.algo.ts:1554", + "pc": [ + 6143, + 6144 + ] + }, + { + "teal": 6757, + "source": "contracts/NFDInstance.algo.ts:1554", + "pc": [ + 6145, + 6146 + ] + }, + { + "teal": 6758, + "source": "contracts/NFDInstance.algo.ts:1554", + "pc": [ + 6147 + ] + }, + { + "teal": 6759, + "source": "contracts/NFDInstance.algo.ts:1554", + "pc": [ + 6148, + 6149 + ] + }, + { + "teal": 6760, + "source": "contracts/NFDInstance.algo.ts:1554", + "pc": [ + 6150 + ] + }, + { + "teal": 6764, + "source": "contracts/NFDInstance.algo.ts:1555", + "pc": [ + 6151 + ] + }, + { + "teal": 6765, + "source": "contracts/NFDInstance.algo.ts:1555", + "pc": [ + 6152, + 6153, + 6154 + ] + }, + { + "teal": 6771, + "source": "contracts/NFDInstance.algo.ts:1557", + "pc": [ + 6155, + 6156 + ] + }, + { + "teal": 6772, + "source": "contracts/NFDInstance.algo.ts:1557", + "pc": [ + 6157, + 6158 + ] + }, + { + "teal": 6773, + "source": "contracts/NFDInstance.algo.ts:1557", + "pc": [ + 6159 + ] + }, + { + "teal": 6774, + "source": "contracts/NFDInstance.algo.ts:1557", + "pc": [ + 6160, + 6161, + 6162 + ] + }, + { + "teal": 6779, + "source": "contracts/NFDInstance.algo.ts:1558", + "pc": [ + 6163 + ] + }, + { + "teal": 6780, + "source": "contracts/NFDInstance.algo.ts:1558", + "pc": [ + 6164, + 6165, + 6166 + ] + }, + { + "teal": 6787, + "source": "contracts/NFDInstance.algo.ts:1549", + "pc": [ + 6167, + 6168 + ] + }, + { + "teal": 6788, + "source": "contracts/NFDInstance.algo.ts:1549", + "pc": [ + 6169 + ] + }, + { + "teal": 6789, + "source": "contracts/NFDInstance.algo.ts:1549", + "pc": [ + 6170 + ] + }, + { + "teal": 6790, + "source": "contracts/NFDInstance.algo.ts:1549", + "pc": [ + 6171, + 6172 + ] + }, + { + "teal": 6791, + "source": "contracts/NFDInstance.algo.ts:1549", + "pc": [ + 6173, + 6174, + 6175 + ] + }, + { + "teal": 6797, + "source": "contracts/NFDInstance.algo.ts:1562", + "pc": [ + 6176, + 6177 + ] + }, + { + "teal": 6798, + "source": "contracts/NFDInstance.algo.ts:1562", + "pc": [ + 6178 + ] + }, + { + "teal": 6799, + "source": "contracts/NFDInstance.algo.ts:1562", + "pc": [ + 6179, + 6180, + 6181 + ] + }, + { + "teal": 6800, + "source": "contracts/NFDInstance.algo.ts:1562", + "pc": [ + 6182 + ] + }, + { + "teal": 6801, + "source": "contracts/NFDInstance.algo.ts:1562", + "pc": [ + 6183, + 6184, + 6185 + ] + }, + { + "teal": 6806, + "source": "contracts/NFDInstance.algo.ts:1563", + "pc": [ + 6186, + 6187 + ] + }, + { + "teal": 6807, + "source": "contracts/NFDInstance.algo.ts:1563", + "pc": [ + 6188 + ] + }, + { + "teal": 6811, + "source": "contracts/NFDInstance.algo.ts:1564", + "pc": [ + 6189, + 6190 + ] + }, + { + "teal": 6812, + "source": "contracts/NFDInstance.algo.ts:1564", + "pc": [ + 6191, + 6192 + ] + }, + { + "teal": 6813, + "source": "contracts/NFDInstance.algo.ts:1564", + "pc": [ + 6193, + 6194 + ] + }, + { + "teal": 6814, + "source": "contracts/NFDInstance.algo.ts:1564", + "pc": [ + 6195 + ] + }, + { + "teal": 6815, + "source": "contracts/NFDInstance.algo.ts:1564", + "pc": [ + 6196 + ] + }, + { + "teal": 6819, + "source": "contracts/NFDInstance.algo.ts:1565", + "pc": [ + 6197 + ] + }, + { + "teal": 6820, + "source": "contracts/NFDInstance.algo.ts:1565", + "pc": [ + 6198, + 6199, + 6200 + ] + }, + { + "teal": 6825, + "source": "contracts/NFDInstance.algo.ts:1568", + "pc": [ + 6201 + ] + }, + { + "teal": 6829, + "source": "contracts/NFDInstance.algo.ts:1537", + "pc": [ + 6202, + 6203 + ] + }, + { + "teal": 6832, + "source": "contracts/NFDInstance.algo.ts:1537", + "pc": [ + 6204, + 6205 + ] + }, + { + "teal": 6833, + "source": "contracts/NFDInstance.algo.ts:1537", + "pc": [ + 6206 + ] + }, + { + "teal": 6843, + "source": "contracts/NFDInstance.algo.ts:1578", + "pc": [ + 6207, + 6208, + 6209 + ] + }, + { + "teal": 6846, + "source": "contracts/NFDInstance.algo.ts:1578", + "pc": [ + 6210 + ] + }, + { + "teal": 6847, + "source": "contracts/NFDInstance.algo.ts:1578", + "pc": [ + 6211, + 6212 + ] + }, + { + "teal": 6851, + "source": "contracts/NFDInstance.algo.ts:1579", + "pc": [ + 6213, + 6214 + ] + }, + { + "teal": 6852, + "source": "contracts/NFDInstance.algo.ts:1579", + "pc": [ + 6215 + ] + }, + { + "teal": 6855, + "source": "contracts/NFDInstance.algo.ts:1579", + "errorMessage": "box value does not exist: this.boxes(key).value", + "pc": [ + 6216 + ] + }, + { + "teal": 6856, + "source": "contracts/NFDInstance.algo.ts:1579", + "pc": [ + 6217, + 6218 + ] + }, + { + "teal": 6860, + "source": "contracts/NFDInstance.algo.ts:1580", + "pc": [ + 6219, + 6220 + ] + }, + { + "teal": 6861, + "source": "contracts/NFDInstance.algo.ts:1580", + "pc": [ + 6221 + ] + }, + { + "teal": 6862, + "source": "contracts/NFDInstance.algo.ts:1580", + "pc": [ + 6222 + ] + }, + { + "teal": 6863, + "source": "contracts/NFDInstance.algo.ts:1580", + "pc": [ + 6223 + ] + }, + { + "teal": 6864, + "source": "contracts/NFDInstance.algo.ts:1580", + "pc": [ + 6224, + 6225 + ] + }, + { + "teal": 6868, + "source": "contracts/NFDInstance.algo.ts:1582", + "pc": [ + 6226, + 6227 + ] + }, + { + "teal": 6869, + "source": "contracts/NFDInstance.algo.ts:1582", + "pc": [ + 6228, + 6229 + ] + }, + { + "teal": 6870, + "source": "contracts/NFDInstance.algo.ts:1582", + "pc": [ + 6230 + ] + }, + { + "teal": 6871, + "source": "contracts/NFDInstance.algo.ts:1582", + "pc": [ + 6231 + ] + }, + { + "teal": 6875, + "source": "contracts/NFDInstance.algo.ts:1584", + "pc": [ + 6232 + ] + }, + { + "teal": 6876, + "source": "contracts/NFDInstance.algo.ts:1584", + "pc": [ + 6233, + 6234 + ] + }, + { + "teal": 6881, + "source": "contracts/NFDInstance.algo.ts:1584", + "pc": [ + 6235, + 6236 + ] + }, + { + "teal": 6882, + "source": "contracts/NFDInstance.algo.ts:1584", + "pc": [ + 6237, + 6238 + ] + }, + { + "teal": 6883, + "source": "contracts/NFDInstance.algo.ts:1584", + "pc": [ + 6239 + ] + }, + { + "teal": 6884, + "source": "contracts/NFDInstance.algo.ts:1584", + "pc": [ + 6240, + 6241, + 6242 + ] + }, + { + "teal": 6889, + "source": "contracts/NFDInstance.algo.ts:1585", + "pc": [ + 6243, + 6244 + ] + }, + { + "teal": 6890, + "source": "contracts/NFDInstance.algo.ts:1585", + "pc": [ + 6245, + 6246 + ] + }, + { + "teal": 6891, + "source": "contracts/NFDInstance.algo.ts:1585", + "pc": [ + 6247 + ] + }, + { + "teal": 6892, + "source": "contracts/NFDInstance.algo.ts:1585", + "pc": [ + 6248 + ] + }, + { + "teal": 6893, + "source": "contracts/NFDInstance.algo.ts:1585", + "pc": [ + 6249 + ] + }, + { + "teal": 6894, + "source": "contracts/NFDInstance.algo.ts:1585", + "pc": [ + 6250 + ] + }, + { + "teal": 6895, + "source": "contracts/NFDInstance.algo.ts:1585", + "pc": [ + 6251, + 6252 + ] + }, + { + "teal": 6896, + "source": "contracts/NFDInstance.algo.ts:1585", + "pc": [ + 6253 + ] + }, + { + "teal": 6897, + "source": "contracts/NFDInstance.algo.ts:1585", + "pc": [ + 6254, + 6255, + 6256 + ] + }, + { + "teal": 6903, + "source": "contracts/NFDInstance.algo.ts:1586", + "pc": [ + 6257, + 6258 + ] + }, + { + "teal": 6904, + "source": "contracts/NFDInstance.algo.ts:1586", + "pc": [ + 6259, + 6260 + ] + }, + { + "teal": 6905, + "source": "contracts/NFDInstance.algo.ts:1586", + "pc": [ + 6261 + ] + }, + { + "teal": 6906, + "source": "contracts/NFDInstance.algo.ts:1586", + "pc": [ + 6262 + ] + }, + { + "teal": 6907, + "source": "contracts/NFDInstance.algo.ts:1586", + "pc": [ + 6263 + ] + }, + { + "teal": 6908, + "source": "contracts/NFDInstance.algo.ts:1586", + "pc": [ + 6264, + 6265, + 6266 + ] + }, + { + "teal": 6913, + "source": "contracts/NFDInstance.algo.ts:1587", + "pc": [ + 6267, + 6268 + ] + }, + { + "teal": 6914, + "source": "contracts/NFDInstance.algo.ts:1587", + "pc": [ + 6269 + ] + }, + { + "teal": 6919, + "source": "contracts/NFDInstance.algo.ts:1590", + "pc": [ + 6270, + 6271 + ] + }, + { + "teal": 6920, + "source": "contracts/NFDInstance.algo.ts:1590", + "pc": [ + 6272 + ] + }, + { + "teal": 6921, + "source": "contracts/NFDInstance.algo.ts:1590", + "pc": [ + 6273 + ] + }, + { + "teal": 6922, + "source": "contracts/NFDInstance.algo.ts:1590", + "pc": [ + 6274, + 6275, + 6276 + ] + }, + { + "teal": 6927, + "source": "contracts/NFDInstance.algo.ts:1591", + "pc": [ + 6277, + 6278 + ] + }, + { + "teal": 6928, + "source": "contracts/NFDInstance.algo.ts:1591", + "pc": [ + 6279, + 6280 + ] + }, + { + "teal": 6929, + "source": "contracts/NFDInstance.algo.ts:1591", + "pc": [ + 6281 + ] + }, + { + "teal": 6930, + "source": "contracts/NFDInstance.algo.ts:1591", + "pc": [ + 6282, + 6283 + ] + }, + { + "teal": 6931, + "source": "contracts/NFDInstance.algo.ts:1591", + "pc": [ + 6284 + ] + }, + { + "teal": 6932, + "source": "contracts/NFDInstance.algo.ts:1591", + "pc": [ + 6285 + ] + }, + { + "teal": 6933, + "source": "contracts/NFDInstance.algo.ts:1591", + "pc": [ + 6286 + ] + }, + { + "teal": 6934, + "source": "contracts/NFDInstance.algo.ts:1591", + "pc": [ + 6287 + ] + }, + { + "teal": 6938, + "source": "contracts/NFDInstance.algo.ts:1593", + "pc": [ + 6288 + ] + }, + { + "teal": 6939, + "source": "contracts/NFDInstance.algo.ts:1593", + "pc": [ + 6289, + 6290 + ] + }, + { + "teal": 6943, + "source": "contracts/NFDInstance.algo.ts:1594", + "pc": [ + 6291, + 6292 + ] + }, + { + "teal": 6944, + "source": "contracts/NFDInstance.algo.ts:1594", + "pc": [ + 6293, + 6294 + ] + }, + { + "teal": 6948, + "source": "contracts/NFDInstance.algo.ts:1595", + "pc": [ + 6295 + ] + }, + { + "teal": 6949, + "source": "contracts/NFDInstance.algo.ts:1595", + "pc": [ + 6296, + 6297 + ] + }, + { + "teal": 6954, + "source": "contracts/NFDInstance.algo.ts:1595", + "pc": [ + 6298, + 6299 + ] + }, + { + "teal": 6955, + "source": "contracts/NFDInstance.algo.ts:1595", + "pc": [ + 6300, + 6301 + ] + }, + { + "teal": 6956, + "source": "contracts/NFDInstance.algo.ts:1595", + "pc": [ + 6302 + ] + }, + { + "teal": 6957, + "source": "contracts/NFDInstance.algo.ts:1595", + "pc": [ + 6303 + ] + }, + { + "teal": 6958, + "source": "contracts/NFDInstance.algo.ts:1595", + "pc": [ + 6304 + ] + }, + { + "teal": 6959, + "source": "contracts/NFDInstance.algo.ts:1595", + "pc": [ + 6305, + 6306, + 6307 + ] + }, + { + "teal": 6964, + "source": "contracts/NFDInstance.algo.ts:1596", + "pc": [ + 6308, + 6309 + ] + }, + { + "teal": 6965, + "source": "contracts/NFDInstance.algo.ts:1596", + "pc": [ + 6310, + 6311 + ] + }, + { + "teal": 6966, + "source": "contracts/NFDInstance.algo.ts:1596", + "pc": [ + 6312 + ] + }, + { + "teal": 6967, + "source": "contracts/NFDInstance.algo.ts:1596", + "pc": [ + 6313 + ] + }, + { + "teal": 6968, + "source": "contracts/NFDInstance.algo.ts:1596", + "pc": [ + 6314 + ] + }, + { + "teal": 6969, + "source": "contracts/NFDInstance.algo.ts:1596", + "pc": [ + 6315 + ] + }, + { + "teal": 6970, + "source": "contracts/NFDInstance.algo.ts:1596", + "pc": [ + 6316, + 6317 + ] + }, + { + "teal": 6971, + "source": "contracts/NFDInstance.algo.ts:1596", + "pc": [ + 6318 + ] + }, + { + "teal": 6972, + "source": "contracts/NFDInstance.algo.ts:1596", + "pc": [ + 6319, + 6320, + 6321 + ] + }, + { + "teal": 6977, + "source": "contracts/NFDInstance.algo.ts:1597", + "pc": [ + 6322 + ] + }, + { + "teal": 6978, + "source": "contracts/NFDInstance.algo.ts:1597", + "pc": [ + 6323, + 6324 + ] + }, + { + "teal": 6979, + "source": "contracts/NFDInstance.algo.ts:1598", + "pc": [ + 6325, + 6326, + 6327 + ] + }, + { + "teal": 6986, + "source": "contracts/NFDInstance.algo.ts:1595", + "pc": [ + 6328, + 6329 + ] + }, + { + "teal": 6987, + "source": "contracts/NFDInstance.algo.ts:1595", + "pc": [ + 6330 + ] + }, + { + "teal": 6988, + "source": "contracts/NFDInstance.algo.ts:1595", + "pc": [ + 6331 + ] + }, + { + "teal": 6989, + "source": "contracts/NFDInstance.algo.ts:1595", + "pc": [ + 6332, + 6333 + ] + }, + { + "teal": 6990, + "source": "contracts/NFDInstance.algo.ts:1595", + "pc": [ + 6334, + 6335, + 6336 + ] + }, + { + "teal": 6996, + "source": "contracts/NFDInstance.algo.ts:1601", + "pc": [ + 6337, + 6338 + ] + }, + { + "teal": 6997, + "source": "contracts/NFDInstance.algo.ts:1601", + "pc": [ + 6339, + 6340, + 6341 + ] + }, + { + "teal": 7002, + "source": "contracts/NFDInstance.algo.ts:1602", + "pc": [ + 6342, + 6343 + ] + }, + { + "teal": 7003, + "source": "contracts/NFDInstance.algo.ts:1602", + "pc": [ + 6344 + ] + }, + { + "teal": 7010, + "source": "contracts/NFDInstance.algo.ts:1605", + "pc": [ + 6345 + ] + }, + { + "teal": 7011, + "source": "contracts/NFDInstance.algo.ts:1605", + "pc": [ + 6346, + 6347, + 6348 + ] + }, + { + "teal": 7016, + "source": "contracts/NFDInstance.algo.ts:1608", + "pc": [ + 6349, + 6350 + ] + }, + { + "teal": 7017, + "source": "contracts/NFDInstance.algo.ts:1608", + "pc": [ + 6351, + 6352 + ] + }, + { + "teal": 7018, + "source": "contracts/NFDInstance.algo.ts:1608", + "pc": [ + 6353 + ] + }, + { + "teal": 7019, + "source": "contracts/NFDInstance.algo.ts:1608", + "pc": [ + 6354 + ] + }, + { + "teal": 7020, + "source": "contracts/NFDInstance.algo.ts:1608", + "pc": [ + 6355, + 6356 + ] + }, + { + "teal": 7021, + "source": "contracts/NFDInstance.algo.ts:1608", + "pc": [ + 6357 + ] + }, + { + "teal": 7025, + "source": "contracts/NFDInstance.algo.ts:1609", + "pc": [ + 6358 + ] + }, + { + "teal": 7026, + "source": "contracts/NFDInstance.algo.ts:1609", + "pc": [ + 6359, + 6360, + 6361 + ] + }, + { + "teal": 7033, + "source": "contracts/NFDInstance.algo.ts:1584", + "pc": [ + 6362, + 6363 + ] + }, + { + "teal": 7034, + "source": "contracts/NFDInstance.algo.ts:1584", + "pc": [ + 6364 + ] + }, + { + "teal": 7035, + "source": "contracts/NFDInstance.algo.ts:1584", + "pc": [ + 6365 + ] + }, + { + "teal": 7036, + "source": "contracts/NFDInstance.algo.ts:1584", + "pc": [ + 6366, + 6367 + ] + }, + { + "teal": 7037, + "source": "contracts/NFDInstance.algo.ts:1584", + "pc": [ + 6368, + 6369, + 6370 + ] + }, + { + "teal": 7042, + "source": "contracts/NFDInstance.algo.ts:1612", + "pc": [ + 6371 + ] + }, + { + "teal": 7046, + "source": "contracts/NFDInstance.algo.ts:1578", + "pc": [ + 6372, + 6373 + ] + }, + { + "teal": 7049, + "source": "contracts/NFDInstance.algo.ts:1578", + "pc": [ + 6374, + 6375 + ] + }, + { + "teal": 7050, + "source": "contracts/NFDInstance.algo.ts:1578", + "pc": [ + 6376 + ] + }, + { + "teal": 7054, + "source": "contracts/NFDInstance.algo.ts:1615", + "pc": [ + 6377, + 6378, + 6379 + ] + }, + { + "teal": 7058, + "source": "contracts/NFDInstance.algo.ts:1617", + "pc": [ + 6380, + 6381 + ] + }, + { + "teal": 7059, + "source": "contracts/NFDInstance.algo.ts:1617", + "pc": [ + 6382 + ] + }, + { + "teal": 7060, + "source": "contracts/NFDInstance.algo.ts:1617", + "pc": [ + 6383 + ] + }, + { + "teal": 7061, + "source": "contracts/NFDInstance.algo.ts:1617", + "pc": [ + 6384 + ] + }, + { + "teal": 7064, + "source": "contracts/NFDInstance.algo.ts:1617", + "errorMessage": "sender must be owner", + "pc": [ + 6385 + ] + }, + { + "teal": 7065, + "source": "contracts/NFDInstance.algo.ts:1615", + "pc": [ + 6386 + ] + }, + { + "teal": 7068, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6387, + 6388, + 6389, + 6390, + 6391, + 6392 + ] + }, + { + "teal": 7069, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6393, + 6394, + 6395 + ] + }, + { + "teal": 7070, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6396, + 6397, + 6398, + 6399 + ] + }, + { + "teal": 7073, + "source": "contracts/NFDInstance.algo.ts:17", + "errorMessage": "this contract does not implement the given ABI method for create NoOp", + "pc": [ + 6400 + ] + }, + { + "teal": 7076, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6401, + 6402, + 6403, + 6404, + 6405, + 6406 + ] + }, + { + "teal": 7077, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6407, + 6408, + 6409, + 6410, + 6411, + 6412 + ] + }, + { + "teal": 7078, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6413, + 6414, + 6415, + 6416, + 6417, + 6418 + ] + }, + { + "teal": 7079, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6419, + 6420, + 6421, + 6422, + 6423, + 6424 + ] + }, + { + "teal": 7080, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6425, + 6426, + 6427, + 6428, + 6429, + 6430 + ] + }, + { + "teal": 7081, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6431, + 6432, + 6433, + 6434, + 6435, + 6436 + ] + }, + { + "teal": 7082, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6437, + 6438, + 6439, + 6440, + 6441, + 6442 + ] + }, + { + "teal": 7083, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6443, + 6444, + 6445, + 6446, + 6447, + 6448 + ] + }, + { + "teal": 7084, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6449, + 6450, + 6451, + 6452, + 6453, + 6454 + ] + }, + { + "teal": 7085, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6455, + 6456, + 6457, + 6458, + 6459, + 6460 + ] + }, + { + "teal": 7086, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6461, + 6462, + 6463, + 6464, + 6465, + 6466 + ] + }, + { + "teal": 7087, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6467, + 6468, + 6469, + 6470, + 6471, + 6472 + ] + }, + { + "teal": 7088, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6473, + 6474, + 6475, + 6476, + 6477, + 6478 + ] + }, + { + "teal": 7089, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6479, + 6480, + 6481, + 6482, + 6483, + 6484 + ] + }, + { + "teal": 7090, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6485, + 6486, + 6487, + 6488, + 6489, + 6490 + ] + }, + { + "teal": 7091, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6491, + 6492, + 6493, + 6494, + 6495, + 6496 + ] + }, + { + "teal": 7092, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6497, + 6498, + 6499, + 6500, + 6501, + 6502 + ] + }, + { + "teal": 7093, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6503, + 6504, + 6505, + 6506, + 6507, + 6508 + ] + }, + { + "teal": 7094, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6509, + 6510, + 6511, + 6512, + 6513, + 6514 + ] + }, + { + "teal": 7095, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6515, + 6516, + 6517, + 6518, + 6519, + 6520 + ] + }, + { + "teal": 7096, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6521, + 6522, + 6523, + 6524, + 6525, + 6526 + ] + }, + { + "teal": 7097, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6527, + 6528, + 6529, + 6530, + 6531, + 6532 + ] + }, + { + "teal": 7098, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6533, + 6534, + 6535, + 6536, + 6537, + 6538 + ] + }, + { + "teal": 7099, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6539, + 6540, + 6541, + 6542, + 6543, + 6544 + ] + }, + { + "teal": 7100, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6545, + 6546, + 6547 + ] + }, + { + "teal": 7101, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6548, + 6549, + 6550, + 6551, + 6552, + 6553, + 6554, + 6555, + 6556, + 6557, + 6558, + 6559, + 6560, + 6561, + 6562, + 6563, + 6564, + 6565, + 6566, + 6567, + 6568, + 6569, + 6570, + 6571, + 6572, + 6573, + 6574, + 6575, + 6576, + 6577, + 6578, + 6579, + 6580, + 6581, + 6582, + 6583, + 6584, + 6585, + 6586, + 6587, + 6588, + 6589, + 6590, + 6591, + 6592, + 6593, + 6594, + 6595, + 6596, + 6597 + ] + }, + { + "teal": 7104, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6598, + 6599, + 6600 + ] + }, + { + "teal": 7105, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6601 + ] + }, + { + "teal": 7106, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6602 + ] + }, + { + "teal": 7109, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6603, + 6604, + 6605, + 6606, + 6607, + 6608 + ] + }, + { + "teal": 7110, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6609, + 6610, + 6611 + ] + }, + { + "teal": 7111, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6612, + 6613, + 6614, + 6615 + ] + }, + { + "teal": 7114, + "source": "contracts/NFDInstance.algo.ts:17", + "errorMessage": "this contract does not implement the given ABI method for call UpdateApplication", + "pc": [ + 6616 + ] + }, + { + "teal": 7117, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6617, + 6618, + 6619 + ] + }, + { + "teal": 7118, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6620, + 6621, + 6622, + 6623, + 6624, + 6625, + 6626, + 6627, + 6628, + 6629, + 6630, + 6631 + ] + }, + { + "teal": 7119, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6632, + 6633 + ] + }, + { + "teal": 7120, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6634 + ] + }, + { + "teal": 7121, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6635 + ] + }, + { + "teal": 7122, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6636 + ] + }, + { + "teal": 7126, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6637, + 6638, + 6639 + ] + }, + { + "teal": 7127, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6640, + 6641 + ] + }, + { + "teal": 7128, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6642 + ] + }, + { + "teal": 7129, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6643 + ] + }, + { + "teal": 7130, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6644, + 6645, + 6646 + ] + }, + { + "teal": 7131, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6647, + 6648 + ] + }, + { + "teal": 7132, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6649 + ] + }, + { + "teal": 7135, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6650, + 6651 + ] + }, + { + "teal": 7136, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6652, + 6653 + ] + }, + { + "teal": 7137, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6654 + ] + }, + { + "teal": 7138, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6655 + ] + }, + { + "teal": 7139, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6656 + ] + }, + { + "teal": 7140, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6657, + 6658, + 6659 + ] + }, + { + "teal": 7141, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6660, + 6661 + ] + }, + { + "teal": 7142, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6662, + 6663 + ] + }, + { + "teal": 7143, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6664 + ] + }, + { + "teal": 7144, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6665, + 6666, + 6667 + ] + }, + { + "teal": 7145, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6668, + 6669, + 6670 + ] + }, + { + "teal": 7148, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6671 + ] + }, + { + "teal": 7151, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6672, + 6673 + ] + }, + { + "teal": 7152, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6674, + 6675 + ] + }, + { + "teal": 7153, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6676 + ] + }, + { + "teal": 7154, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6677, + 6678, + 6679 + ] + }, + { + "teal": 7155, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6680 + ] + }, + { + "teal": 7156, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6681 + ] + }, + { + "teal": 7159, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6682, + 6683, + 6684 + ] + }, + { + "teal": 7160, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6685, + 6686 + ] + }, + { + "teal": 7161, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6687, + 6688 + ] + }, + { + "teal": 7162, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6689 + ] + }, + { + "teal": 7163, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6690, + 6691 + ] + }, + { + "teal": 7164, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6692, + 6693 + ] + }, + { + "teal": 7165, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6694 + ] + }, + { + "teal": 7168, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6695, + 6696, + 6697 + ] + }, + { + "teal": 7169, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6698, + 6699 + ] + }, + { + "teal": 7170, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6700, + 6701 + ] + }, + { + "teal": 7171, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6702 + ] + }, + { + "teal": 7172, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6703, + 6704 + ] + }, + { + "teal": 7173, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6705, + 6706 + ] + }, + { + "teal": 7174, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6707 + ] + }, + { + "teal": 7175, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6708 + ] + }, + { + "teal": 7176, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6709, + 6710 + ] + }, + { + "teal": 7177, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6711 + ] + }, + { + "teal": 7178, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6712 + ] + }, + { + "teal": 7179, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6713 + ] + }, + { + "teal": 7180, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6714, + 6715, + 6716 + ] + }, + { + "teal": 7181, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6717, + 6718 + ] + }, + { + "teal": 7182, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6719, + 6720 + ] + }, + { + "teal": 7183, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6721 + ] + }, + { + "teal": 7184, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6722 + ] + }, + { + "teal": 7185, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6723, + 6724 + ] + }, + { + "teal": 7186, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6725, + 6726 + ] + }, + { + "teal": 7187, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6727, + 6728 + ] + }, + { + "teal": 7188, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6729, + 6730 + ] + }, + { + "teal": 7189, + "source": "contracts/NFDInstance.algo.ts:17", + "pc": [ + 6731 + ] + } + ], + "pcOffsetMethod": "cblocks" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } + }, + "source": { + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAwIDEgMiAzMiBUTVBMX3JlZ2lzdHJ5QXBwSWQgOCAzIDYgMzY1IDQwMCA0IDEwIDI1MDAgNSA4NjQwMCAxMDAwMDAwIDEwMF8wMDAgNTAwIDEwMDAgMjAwIFRNUExfYWRtaW5Bc2FJZApieXRlY2Jsb2NrIDB4ICJpLm93bmVyLmEiICJpLnRpbWVDaGFuZ2VkIiAiaS5taW50aW5nIiAiaS5uYW1lIiAiaS5jb21taXNzaW9uMUFnZW50LmEiICJpLnNlbGxhbXQiICJpLmNvbW1pc3Npb24xIiAiaS5yZXNlcnZlZE93bmVyLmEiICJpLnNlZ21lbnRBZ2VudC5hIiAiaS5zZWxsZXIuYSIgMHgxNTFmN2M3NSAiaS5taW50aW5nS2lja29mZkNyZWF0b3IuYSIgImkubWludGluZ0tpY2tvZmZBbW91bnQiIDB4MGE4MTAxIDB4MzEgImkuY29tbWlzc2lvbjJBZ2VudC5hIiAiaS5leHBpcmF0aW9uVGltZSIgImkuYXNhaWQiICIxIiAiaS52YXVsdE9wdEluTG9ja2VkIiAiaS5zZWdtZW50TG9ja2VkIiAiaS5jb21taXNzaW9uMiIgMHgzMCAiMCIgImkuY29udHJhY3RMb2NrZWQiICJpLmhpZ2hlc3RTb2xkQW10IiAiaS5wYXJlbnRBcHBJRCIgMHgyZSAweDAwICIyIiAweDYyNmY3ODUyNjU2Njc1NmU2NCAiaS5zZWdtZW50UHJpY2VVc2QiIDB4NzYyZTYzNjE0MTZjNjc2ZiAiaS50aW1lUHVyY2hhc2VkIiAiaS5zZWdtZW50Q291bnQiIDB4NDM2NWVkOTAgMHg3MDNiOGNlNyAweDc2MmU2MzYxIDB4MmU2MTczICJpLnZlciIgMHgwMDBhIDB4MDAyYQoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDUuNQovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vICEhISEgV0FSTklORzogVGhpcyBjb250cmFjdCBpcyAqTk9UKiBBUkM0IGNvbXBsaWFudC4gSXQgbWF5IGNvbnRhaW4gQUJJIG1ldGhvZHMsIGJ1dCBpdCBhbHNvIGFsbG93cyBhcHAgY2FsbHMgd2hlcmUgdGhlIGZpcnN0IGFyZ3VtZW50IGRvZXMgTk9UIG1hdGNoIGFuIEFCSSBzZWxlY3RvcgoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKaW50YyA3IC8vIDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNhbGxfVXBkYXRlQXBwbGljYXRpb24gKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKHN0cmluZyxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CgkvLyBzZWdtZW50Um9vdENvbW1pc3Npb25BZGRyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxMQoJZHVwCglsZW4KCWludGMgMyAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChzZWdtZW50Um9vdENvbW1pc3Npb25BZGRyKSBmb3IgY3JlYXRlQXBwbGljYXRpb24gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHNlZ21lbnRSb290QXBwSWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMTAKCWJ0b2kKCgkvLyBjb21taXNzaW9uMlBjdDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA5CglidG9pCgoJLy8gY29tbWlzc2lvbjJBZGRyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA4CglkdXAKCWxlbgoJaW50YyAzIC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDMgKGNvbW1pc3Npb24yQWRkcikgZm9yIGNyZWF0ZUFwcGxpY2F0aW9uIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBjb21taXNzaW9uMVBjdDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA3CglidG9pCgoJLy8gY29tbWlzc2lvbjFBZGRyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA2CglkdXAKCWxlbgoJaW50YyAzIC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDUgKGNvbW1pc3Npb24xQWRkcikgZm9yIGNyZWF0ZUFwcGxpY2F0aW9uIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleHBUaW1lOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDUKCWJ0b2kKCgkvLyBwdXJjaGFzZUFtb3VudDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA0CglidG9pCgoJLy8gYnV5ZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnRjIDMgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgOCAoYnV5ZXIpIGZvciBjcmVhdGVBcHBsaWNhdGlvbiBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gc2VsbGVyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50YyAzIC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDkgKHNlbGxlcikgZm9yIGNyZWF0ZUFwcGxpY2F0aW9uIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBuZmROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBjcmVhdGVBcHBsaWNhdGlvbihzdHJpbmcsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYWRkcmVzcyx1aW50NjQsYWRkcmVzcyx1aW50NjQsdWludDY0LGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBjcmVhdGVBcHBsaWNhdGlvbgoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gY3JlYXRlQXBwbGljYXRpb24obmZkTmFtZTogc3RyaW5nLCBzZWxsZXI6IEFkZHJlc3MsIGJ1eWVyOiBBZGRyZXNzLCBwdXJjaGFzZUFtb3VudDogdWludDY0LCBleHBUaW1lOiB1aW50NjQsIGNvbW1pc3Npb24xQWRkcjogQWRkcmVzcywgY29tbWlzc2lvbjFQY3Q6IHVpbnQ2NCwgY29tbWlzc2lvbjJBZGRyOiBBZGRyZXNzLCBjb21taXNzaW9uMlBjdDogdWludDY0LCBzZWdtZW50Um9vdEFwcElkOiB1aW50NjQsIHNlZ21lbnRSb290Q29tbWlzc2lvbkFkZHI6IEFkZHJlc3MpOiB2b2lkCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMTEgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDUKCS8vIGFzc2VydChnbG9iYWxzLmNhbGxlckFwcGxpY2F0aW9uSUQgPT09IEFwcElELmZyb21VaW50NjQodGhpcy5yZWdpc3RyeUFwcElkKSwgJ2NhbGxlciBtdXN0IGJlIE5GRCByZWdpc3RyeSEnKQoJZ2xvYmFsIENhbGxlckFwcGxpY2F0aW9uSUQKCWludGMgNCAvLyBUTVBMX3JlZ2lzdHJ5QXBwSWQKCT09CgoJLy8gY2FsbGVyIG11c3QgYmUgTkZEIHJlZ2lzdHJ5IQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDYKCS8vIGFzc2VydChwdXJjaGFzZUFtb3VudCA+IDApCglmcmFtZV9kaWcgLTQgLy8gcHVyY2hhc2VBbW91bnQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT4KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQ4CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfSVNMT0NLRUQpLnZhbHVlID0gTkZEX0xPQ0tFRF9WQUxfRkFMU0UKCWJ5dGVjIDI1IC8vICJpLmNvbnRyYWN0TG9ja2VkIgoJYnl0ZWMgMjQgLy8gIjAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQ5CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVkVSU0lPTikudmFsdWUgPSBORkRfQ1VSUkVOVF9WRVJTSU9OCglieXRlYyA0MCAvLyAiaS52ZXIiCglwdXNoYnl0ZXMgIjMuOCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTAKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HKS52YWx1ZSA9IE5GRF9NSU5USU5HX1NUQVRFX1BSRUFTQQoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJYnl0ZWMgMTkgLy8gIjEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjUxCgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNSRUFURUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCXB1c2hieXRlcyAiaS50aW1lQ3JlYXRlZCIKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTIKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9USU1FQ0hBTkdFRCkudmFsdWUgPSBpdG9iKGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wKQoJYnl0ZWMgMiAvLyAiaS50aW1lQ2hhbmdlZCIKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTMKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9USU1FUFVSQ0hBU0VEKS52YWx1ZSA9IGl0b2IoZ2xvYmFscy5sYXRlc3RUaW1lc3RhbXApCglieXRlYyAzNCAvLyAiaS50aW1lUHVyY2hhc2VkIgoJZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAoJaXRvYgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1NAoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0lTU0VHTUVOVExPQ0tFRCkudmFsdWUgPSBORkRfTE9DS0VEX1ZBTF9UUlVFCglieXRlYyAyMSAvLyAiaS5zZWdtZW50TG9ja2VkIgoJYnl0ZWMgMTkgLy8gIjEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjU1CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfTkFNRSkudmFsdWUgPSBuZmROYW1lCglieXRlYyA0IC8vICJpLm5hbWUiCglmcmFtZV9kaWcgLTEgLy8gbmZkTmFtZTogc3RyaW5nCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjU2CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpLnZhbHVlID0gcmF3Qnl0ZXMoYnV5ZXIpCglieXRlYyAxIC8vICJpLm93bmVyLmEiCglmcmFtZV9kaWcgLTMgLy8gYnV5ZXI6IEFkZHJlc3MKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTcKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUxMRVIpLnZhbHVlID0gcmF3Qnl0ZXMoc2VsbGVyKQoJYnl0ZWMgMTAgLy8gImkuc2VsbGVyLmEiCglmcmFtZV9kaWcgLTIgLy8gc2VsbGVyOiBBZGRyZXNzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjU4CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfU0VMTF9BTU9VTlQpLnZhbHVlID0gaXRvYihwdXJjaGFzZUFtb3VudCkKCWJ5dGVjIDYgLy8gImkuc2VsbGFtdCIKCWZyYW1lX2RpZyAtNCAvLyBwdXJjaGFzZUFtb3VudDogdWludDY0CglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1OQoJLy8gY29tbWlzc2lvbjFBZGRyICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzCglmcmFtZV9kaWcgLTYgLy8gY29tbWlzc2lvbjFBZGRyOiBBZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9CglieiAqaWYwX2VuZAoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjAKCS8vIGFzc2VydChjb21taXNzaW9uMVBjdCA+PSAxICYmIGNvbW1pc3Npb24xUGN0IDw9IDUwMCwgJ2NvbW1pc3Npb24gbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDUwJScpCglmcmFtZV9kaWcgLTcgLy8gY29tbWlzc2lvbjFQY3Q6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCT49CglkdXAKCWJ6ICpza2lwX2FuZDAKCWZyYW1lX2RpZyAtNyAvLyBjb21taXNzaW9uMVBjdDogdWludDY0CglpbnRjIDE3IC8vIDUwMAoJPD0KCSYmCgoqc2tpcF9hbmQwOgoJLy8gY29tbWlzc2lvbiBtdXN0IGJlIGJldHdlZW4gMSBhbmQgNTAlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2MQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04xX0FHRU5UKS52YWx1ZSA9IHJhd0J5dGVzKGNvbW1pc3Npb24xQWRkcikKCWJ5dGVjIDUgLy8gImkuY29tbWlzc2lvbjFBZ2VudC5hIgoJZnJhbWVfZGlnIC02IC8vIGNvbW1pc3Npb24xQWRkcjogQWRkcmVzcwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2MgoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04xKS52YWx1ZSA9IGl0b2IoY29tbWlzc2lvbjFQY3QpCglieXRlYyA3IC8vICJpLmNvbW1pc3Npb24xIgoJZnJhbWVfZGlnIC03IC8vIGNvbW1pc3Npb24xUGN0OiB1aW50NjQKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CgoJLy8gKmlmMV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjYzCgkvLyBjb21taXNzaW9uMkFkZHIgIT09IGdsb2JhbHMuemVyb0FkZHJlc3MKCWZyYW1lX2RpZyAtOCAvLyBjb21taXNzaW9uMkFkZHI6IEFkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NAoJLy8gYXNzZXJ0KGNvbW1pc3Npb24yUGN0ID49IDEgJiYgY29tbWlzc2lvbjJQY3QgPD0gNTAwLCAnY29tbWlzc2lvbiBtdXN0IGJlIGJldHdlZW4gMSBhbmQgNTAlJykKCWZyYW1lX2RpZyAtOSAvLyBjb21taXNzaW9uMlBjdDogdWludDY0CglpbnRjIDEgLy8gMQoJPj0KCWR1cAoJYnogKnNraXBfYW5kMQoJZnJhbWVfZGlnIC05IC8vIGNvbW1pc3Npb24yUGN0OiB1aW50NjQKCWludGMgMTcgLy8gNTAwCgk8PQoJJiYKCipza2lwX2FuZDE6CgkvLyBjb21taXNzaW9uIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA1MCUKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjY1CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfQ09NTUlTU0lPTjJfQUdFTlQpLnZhbHVlID0gcmF3Qnl0ZXMoY29tbWlzc2lvbjJBZGRyKQoJYnl0ZWMgMTYgLy8gImkuY29tbWlzc2lvbjJBZ2VudC5hIgoJZnJhbWVfZGlnIC04IC8vIGNvbW1pc3Npb24yQWRkcjogQWRkcmVzcwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NgoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04yKS52YWx1ZSA9IGl0b2IoY29tbWlzc2lvbjJQY3QpCglieXRlYyAyMiAvLyAiaS5jb21taXNzaW9uMiIKCWZyYW1lX2RpZyAtOSAvLyBjb21taXNzaW9uMlBjdDogdWludDY0CglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKKmlmMV9lbmQ6CgoqaWYwX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjY5CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfQ0FURUdPUlkpLnZhbHVlID0gJ2NvbW1vbicKCXB1c2hieXRlcyAiaS5jYXRlZ29yeSIKCXB1c2hieXRlcyAweDYzNmY2ZDZkNmY2ZSAvLyAiY29tbW9uIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3MAoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1NBTEVUWVBFKS52YWx1ZSA9ICdidXlJdE5vdycKCXB1c2hieXRlcyAiaS5zYWxlVHlwZSIKCXB1c2hieXRlcyAweDYyNzU3OTQ5NzQ0ZTZmNzcgLy8gImJ1eUl0Tm93IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3MgoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0VYUElSQVRJT05USU1FKS52YWx1ZSA9IGl0b2IoZXhwVGltZSkKCWJ5dGVjIDE3IC8vICJpLmV4cGlyYXRpb25UaW1lIgoJZnJhbWVfZGlnIC01IC8vIGV4cFRpbWU6IHVpbnQ2NAoJaXRvYgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3NQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0lTVkFVTFRPUFRJTkxPQ0tFRCkudmFsdWUgPSBORkRfTE9DS0VEX1ZBTF9GQUxTRQoJYnl0ZWMgMjAgLy8gImkudmF1bHRPcHRJbkxvY2tlZCIKCWJ5dGVjIDI0IC8vICIwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyAqaWYyX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NzcKCS8vIHNlZ21lbnRSb290QXBwSWQgIT09IDAKCWZyYW1lX2RpZyAtMTAgLy8gc2VnbWVudFJvb3RBcHBJZDogdWludDY0CglpbnRjIDAgLy8gMAoJIT0KCWJ6ICppZjJfZW5kCgoJLy8gKmlmMl9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3OAoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1BBUkVOVF9JRCkudmFsdWUgPSBpdG9iKHNlZ21lbnRSb290QXBwSWQpCglieXRlYyAyNyAvLyAiaS5wYXJlbnRBcHBJRCIKCWZyYW1lX2RpZyAtMTAgLy8gc2VnbWVudFJvb3RBcHBJZDogdWludDY0CglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgxCgkvLyBwYXJlbnROYW1lID0gdGhpcy5zYWZlR2xvYmFsQnl0ZUdldEV4KHNlZ21lbnRSb290QXBwSWQsIE5GRF9LRVlfTkFNRSkKCWJ5dGVjIDQgLy8gImkubmFtZSIKCWZyYW1lX2RpZyAtMTAgLy8gc2VnbWVudFJvb3RBcHBJZDogdWludDY0CgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0RXgKCWZyYW1lX2J1cnkgMCAvLyBwYXJlbnROYW1lOiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4NAoJLy8gYXNzZXJ0KGV4dHJhY3QzKG5mZE5hbWUsIGxlbihuZmROYW1lKSAtIGxlbihwYXJlbnROYW1lKSAtIDEsIGxlbihwYXJlbnROYW1lKSArIDEpID09PSAnLicgKyBwYXJlbnROYW1lKQoJZnJhbWVfZGlnIC0xIC8vIG5mZE5hbWU6IHN0cmluZwoJZnJhbWVfZGlnIC0xIC8vIG5mZE5hbWU6IHN0cmluZwoJbGVuCglmcmFtZV9kaWcgMCAvLyBwYXJlbnROYW1lOiBieXRlW10KCWxlbgoJLQoJaW50YyAxIC8vIDEKCS0KCWZyYW1lX2RpZyAwIC8vIHBhcmVudE5hbWU6IGJ5dGVbXQoJbGVuCglpbnRjIDEgLy8gMQoJKwoJZXh0cmFjdDMKCWJ5dGVjIDI4IC8vICAiLiIKCWZyYW1lX2RpZyAwIC8vIHBhcmVudE5hbWU6IGJ5dGVbXQoJY29uY2F0Cgk9PQoJYXNzZXJ0CgoJLy8gKmlmM19jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjg4CgkvLyB0aGlzLnNhZmVHbG9iYWxCeXRlR2V0RXgoc2VnbWVudFJvb3RBcHBJZCwgTkZEX0tFWV9JU1NFR01FTlRMT0NLRUQpID09PSBORkRfTE9DS0VEX1ZBTF9GQUxTRQoJYnl0ZWMgMjEgLy8gImkuc2VnbWVudExvY2tlZCIKCWZyYW1lX2RpZyAtMTAgLy8gc2VnbWVudFJvb3RBcHBJZDogdWludDY0CgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0RXgKCWJ5dGVjIDI0IC8vICIwIgoJPT0KCWJ6ICppZjNfZW5kCgoJLy8gKmlmM19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5MAoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgICAgICAgICBzZWdtZW50Um9vdENvbW1pc3Npb25BZGRyICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzLAoJLy8gICAgICAgICAgICAgICAgICAgICAncGFyZW50IGNvbW1pc3Npb24gYWRkcmVzcyBtdXN0IGJlIHNldCBpZiBwYXJlbnQgYXBwIGlkIGlzIHNldCBhbmQgcGFyZW50IGlzIHVubG9ja2VkJywKCS8vICAgICAgICAgICAgICAgICApCglmcmFtZV9kaWcgLTExIC8vIHNlZ21lbnRSb290Q29tbWlzc2lvbkFkZHI6IEFkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCgkvLyBwYXJlbnQgY29tbWlzc2lvbiBhZGRyZXNzIG11c3QgYmUgc2V0IGlmIHBhcmVudCBhcHAgaWQgaXMgc2V0IGFuZCBwYXJlbnQgaXMgdW5sb2NrZWQKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk3CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2FmZUdsb2JhbEJ5dGVHZXRFeChzZWdtZW50Um9vdEFwcElkLCBORkRfS0VZX1NFTExFUikgPT09IHJhd0J5dGVzKHNlZ21lbnRSb290Q29tbWlzc2lvbkFkZHIpLAoJLy8gICAgICAgICAgICAgICAgICAgICAidGhlIHNlZ21lbnQgY29tbWlzc2lvbiBhZ2VudCBzaG91bGQgYmUgdGhlIHBhcmVudCBuZmQncyBzZWxsZXIiLAoJLy8gICAgICAgICAgICAgICAgICkKCWJ5dGVjIDEwIC8vICJpLnNlbGxlci5hIgoJZnJhbWVfZGlnIC0xMCAvLyBzZWdtZW50Um9vdEFwcElkOiB1aW50NjQKCWNhbGxzdWIgc2FmZUdsb2JhbEJ5dGVHZXRFeAoJZnJhbWVfZGlnIC0xMSAvLyBzZWdtZW50Um9vdENvbW1pc3Npb25BZGRyOiBBZGRyZXNzCgk9PQoKCS8vIHRoZSBzZWdtZW50IGNvbW1pc3Npb24gYWdlbnQgc2hvdWxkIGJlIHRoZSBwYXJlbnQgbmZkJ3Mgc2VsbGVyCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDEKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUdNRU5UX0NPTU1JU1NJT05fQUdFTlQpLnZhbHVlID0gcmF3Qnl0ZXMoc2VnbWVudFJvb3RDb21taXNzaW9uQWRkcikKCWJ5dGVjIDkgLy8gImkuc2VnbWVudEFnZW50LmEiCglmcmFtZV9kaWcgLTExIC8vIHNlZ21lbnRSb290Q29tbWlzc2lvbkFkZHI6IEFkZHJlc3MKCWFwcF9nbG9iYWxfcHV0CgoqaWYzX2VuZDoKCippZjJfZW5kOgoJcmV0c3ViCgovLyB1cGRhdGVBcHBsaWNhdGlvbihzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX3VwZGF0ZUFwcGxpY2F0aW9uOgoJLy8gdmVyc2lvbk51bTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgdXBkYXRlQXBwbGljYXRpb24oc3RyaW5nKXZvaWQKCWNhbGxzdWIgdXBkYXRlQXBwbGljYXRpb24KCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHVwZGF0ZUFwcGxpY2F0aW9uKHZlcnNpb25OdW06IHN0cmluZyk6IHZvaWQKdXBkYXRlQXBwbGljYXRpb246Cglwcm90byAxIDAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTAKCS8vIGFzc2VydCh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfSVNMT0NLRUQpLnZhbHVlICE9PSBORkRfTE9DS0VEX1ZBTF9UUlVFLCAnY29udHJhY3QgbXVzdCBiZSB1bmxvY2tlZCB0byB1cGdyYWRlJykKCWJ5dGVjIDI1IC8vICJpLmNvbnRyYWN0TG9ja2VkIgoJYXBwX2dsb2JhbF9nZXQKCWJ5dGVjIDE5IC8vICIxIgoJIT0KCgkvLyBjb250cmFjdCBtdXN0IGJlIHVubG9ja2VkIHRvIHVwZ3JhZGUKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExMwoJLy8gYXNzZXJ0KGdsb2JhbHMuY2FsbGVyQXBwbGljYXRpb25JRCA9PT0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnJlZ2lzdHJ5QXBwSWQpLCAnY2FsbGVyIG11c3QgYmUgTkZEIHJlZ2lzdHJ5IScpCglnbG9iYWwgQ2FsbGVyQXBwbGljYXRpb25JRAoJaW50YyA0IC8vIFRNUExfcmVnaXN0cnlBcHBJZAoJPT0KCgkvLyBjYWxsZXIgbXVzdCBiZSBORkQgcmVnaXN0cnkhCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTQKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9WRVJTSU9OKS52YWx1ZSA9IHZlcnNpb25OdW0KCWJ5dGVjIDQwIC8vICJpLnZlciIKCWZyYW1lX2RpZyAtMSAvLyB2ZXJzaW9uTnVtOiBzdHJpbmcKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTE1CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBvbkNhbGwoKTogdm9pZApvbkNhbGw6Cglwcm90byAwIDAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjAKCS8vIGFzc2VydCghdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX01JTlRJTkcpLmV4aXN0cywgImNhbid0IHN0aWxsIGJlIGluIG1pbnRpbmcgc3RhdGUiKQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJIQoKCS8vIGNhbid0IHN0aWxsIGJlIGluIG1pbnRpbmcgc3RhdGUKCWFzc2VydAoKCS8vICppZjRfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjEKCS8vIHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbMF0gPT09ICdnYXMnCgl0eG4gQXBwbGljYXRpb25BcmdzIDAKCXB1c2hieXRlcyAweDY3NjE3MyAvLyAiZ2FzIgoJPT0KCWJ6ICppZjRfZW5kCgoJLy8gKmlmNF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjEKCS8vIHJldHVybgoJcmV0c3ViCgoqaWY0X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyNQoJLy8gYXNzZXJ0KCF0aGlzLmlzRXhwaXJlZCgpLCAiTkZEIGNhbid0IGJlIGV4cGlyZWQgZm9yIHRoZXNlIHYxL3YyIG9wZXJhdGlvbnMiKQoJY2FsbHN1YiBpc0V4cGlyZWQKCSEKCgkvLyBORkQgY2FuJ3QgYmUgZXhwaXJlZCBmb3IgdGhlc2UgdjEvdjIgb3BlcmF0aW9ucwoJYXNzZXJ0CgoJLy8gKmlmNV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyNwoJLy8gdGhpcy50eG4ubnVtQXBwQXJncyA+PSAzICYmIHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbMF0gPT09IE5GRF9DQUxMX1VQREFURV9GSUVMRAoJdHhuIE51bUFwcEFyZ3MKCWludGMgNiAvLyAzCgk+PQoJZHVwCglieiAqc2tpcF9hbmQyCgl0eG4gQXBwbGljYXRpb25BcmdzIDAKCXB1c2hieXRlcyAidXBkYXRlX2ZpZWxkIgoJPT0KCSYmCgoqc2tpcF9hbmQyOgoJYnogKmlmNV9lbmQKCgkvLyAqaWY1X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzMwoJLy8gdGhpcy51cGRhdGVGaWVsZHNGcm9tQXJncygpCgljYWxsc3ViIHVwZGF0ZUZpZWxkc0Zyb21BcmdzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTM0CgkvLyByZXR1cm4KCXJldHN1YgoKKmlmNV9lbmQ6CgkvLyAqaWY2X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTM2CgkvLyB0aGlzLnR4bi5udW1BcHBBcmdzID49IDEgJiYgdGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVswXSA9PT0gTkZEX0NBTExfREVMRVRFX0ZJRUxECgl0eG4gTnVtQXBwQXJncwoJaW50YyAxIC8vIDEKCT49CglkdXAKCWJ6ICpza2lwX2FuZDMKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMAoJcHVzaGJ5dGVzICJkZWxldGVfZmllbGQiCgk9PQoJJiYKCipza2lwX2FuZDM6CglieiAqaWY2X2VuZAoKCS8vICppZjZfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQxCgkvLyB0aGlzLmRlbGV0ZUZpZWxkc0Zyb21BcmdzKCkKCWNhbGxzdWIgZGVsZXRlRmllbGRzRnJvbUFyZ3MKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDIKCS8vIHJldHVybgoJcmV0c3ViCgoqaWY2X2VuZDoKCS8vICppZjdfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDQKCS8vIHRoaXMudHhuLm51bUFwcEFyZ3MgPT09IDIgJiYgdGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVswXSA9PT0gTkZEX0NBTExfUkVBRF9QUk9QRVJUWQoJdHhuIE51bUFwcEFyZ3MKCWludGMgMiAvLyAyCgk9PQoJZHVwCglieiAqc2tpcF9hbmQ0Cgl0eG4gQXBwbGljYXRpb25BcmdzIDAKCXB1c2hieXRlcyAicmVhZF9wcm9wZXJ0eSIKCT09CgkmJgoKKnNraXBfYW5kNDoKCWJ6ICppZjdfZW5kCgoJLy8gKmlmN19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDkKCS8vIGxvZyh0aGlzLnJlYWRGaWVsZCh0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzFdIGFzIGJ5dGVzKSkKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMQoJY2FsbHN1YiByZWFkRmllbGQKCWxvZwoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MAoJLy8gcmV0dXJuCglyZXRzdWIKCippZjdfZW5kOgoJLy8gKmlmOF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MwoJLy8gdGhpcy50eG4ubnVtQXBwQXJncyA9PT0gMiAmJiB0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzBdID09PSBORkRfQ0FMTF9VUERBVEVfSEFTSAoJdHhuIE51bUFwcEFyZ3MKCWludGMgMiAvLyAyCgk9PQoJZHVwCglieiAqc2tpcF9hbmQ1Cgl0eG4gQXBwbGljYXRpb25BcmdzIDAKCXB1c2hieXRlcyAidXBkYXRlX2hhc2giCgk9PQoJJiYKCipza2lwX2FuZDU6CglieiAqaWY4X2VuZAoKCS8vICppZjhfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU0CgkvLyB0aGlzLnVwZGF0ZUhhc2godGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVsxXSBhcyBieXRlcykKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMQoJY2FsbHN1YiB1cGRhdGVIYXNoCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU1CgkvLyByZXR1cm4KCXJldHN1YgoKKmlmOF9lbmQ6CgkvLyAqaWY5X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU5CgkvLyB0aGlzLnR4bi5udW1BcHBBcmdzID09PSAyICYmIHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbMF0gPT09IE5GRF9DQUxMX0NPTlRSQUNUX0xPQ0sKCXR4biBOdW1BcHBBcmdzCglpbnRjIDIgLy8gMgoJPT0KCWR1cAoJYnogKnNraXBfYW5kNgoJdHhuIEFwcGxpY2F0aW9uQXJncyAwCglwdXNoYnl0ZXMgImNvbnRyYWN0X2xvY2siCgk9PQoJJiYKCipza2lwX2FuZDY6CglieiAqaWY5X2VuZAoKCS8vICppZjlfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTYwCgkvLyB0aGlzLmNvbnRyYWN0TG9jayh0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzFdID09PSAnMScpCgl0eG4gQXBwbGljYXRpb25BcmdzIDEKCWJ5dGVjIDE1IC8vICAiMSIKCT09CgljYWxsc3ViIGNvbnRyYWN0TG9jawoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE2MQoJLy8gcmV0dXJuCglyZXRzdWIKCippZjlfZW5kOgoJLy8gKmlmMTBfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNjYKCS8vIHRoaXMudHhuLm51bUFwcEFyZ3MgPT09IDMgJiYgdGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVswXSA9PT0gTkZEX0NBTExfU0VHTUVOVF9MT0NLCgl0eG4gTnVtQXBwQXJncwoJaW50YyA2IC8vIDMKCT09CglkdXAKCWJ6ICpza2lwX2FuZDcKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMAoJcHVzaGJ5dGVzICJzZWdtZW50X2xvY2siCgk9PQoJJiYKCipza2lwX2FuZDc6CglieiAqaWYxMF9lbmQKCgkvLyAqaWYxMF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNjcKCS8vIHRoaXMuc2VnbWVudExvY2sodGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVsxXSA9PT0gJzEnLCBidG9pKHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbMl0pKQoJdHhuIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgl0eG4gQXBwbGljYXRpb25BcmdzIDEKCWJ5dGVjIDE1IC8vICAiMSIKCT09CgljYWxsc3ViIHNlZ21lbnRMb2NrCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTY4CgkvLyByZXR1cm4KCXJldHN1YgoKKmlmMTBfZW5kOgoJLy8gKmlmMTFfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNzUKCS8vIHRoaXMudHhuLm51bUFwcEFyZ3MgPj0gMiAmJiB0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzBdID09PSBORkRfQ0FMTF9WQVVMVF9PUFRJTgoJdHhuIE51bUFwcEFyZ3MKCWludGMgMiAvLyAyCgk+PQoJZHVwCglieiAqc2tpcF9hbmQ4Cgl0eG4gQXBwbGljYXRpb25BcmdzIDAKCXB1c2hieXRlcyAidmF1bHRfb3B0aW4iCgk9PQoJJiYKCipza2lwX2FuZDg6CglieiAqaWYxMV9lbmQKCgkvLyAqaWYxMV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNzYKCS8vIHRoaXMudmF1bHRPcHRJbkZyb21BcmdzKCkKCWNhbGxzdWIgdmF1bHRPcHRJbkZyb21BcmdzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTc3CgkvLyByZXR1cm4KCXJldHN1YgoKKmlmMTFfZW5kOgoJLy8gdW5rbm93biBtZXRob2QKCWVycgoJcmV0c3ViCgovLyBnYXMoKXZvaWQKKmFiaV9yb3V0ZV9nYXM6CgkvLyBleGVjdXRlIGdhcygpdm9pZAoJY2FsbHN1YiBnYXMKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdhcygpOiB2b2lkCmdhczoKCXByb3RvIDAgMAoJcmV0c3ViCgovLyBtaW50QXNhKHN0cmluZyxzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX21pbnRBc2E6CgkvLyB1cmw6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBuZmROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBtaW50QXNhKHN0cmluZyxzdHJpbmcpdm9pZAoJY2FsbHN1YiBtaW50QXNhCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBtaW50QXNhKG5mZE5hbWU6IHN0cmluZywgdXJsOiBzdHJpbmcpOiB2b2lkCm1pbnRBc2E6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE5MAoJLy8gYXNzZXJ0KGdsb2JhbHMuY2FsbGVyQXBwbGljYXRpb25JRCA9PT0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnJlZ2lzdHJ5QXBwSWQpLCAnY2FsbGVyIG11c3QgYmUgTkZEIHJlZ2lzdHJ5IScpCglnbG9iYWwgQ2FsbGVyQXBwbGljYXRpb25JRAoJaW50YyA0IC8vIFRNUExfcmVnaXN0cnlBcHBJZAoJPT0KCgkvLyBjYWxsZXIgbXVzdCBiZSBORkQgcmVnaXN0cnkhCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxOTEKCS8vIGFzc2VydCh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfTUlOVElORykudmFsdWUgPT09IE5GRF9NSU5USU5HX1NUQVRFX1BSRUFTQSkKCWJ5dGVjIDMgLy8gImkubWludGluZyIKCWFwcF9nbG9iYWxfZ2V0CglieXRlYyAxOSAvLyAiMSIKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxOTMKCS8vIGFzc2V0ID0gc2VuZEFzc2V0Q3JlYXRpb24oewoJLy8gICAgICAgICAgICAgY29uZmlnQXNzZXRVbml0TmFtZTogJ05GRCcsCgkvLyAgICAgICAgICAgICBjb25maWdBc3NldE5hbWU6IG5mZE5hbWUsCgkvLyAgICAgICAgICAgICBjb25maWdBc3NldFRvdGFsOiAxLAoJLy8gICAgICAgICAgICAgY29uZmlnQXNzZXREZWNpbWFsczogMCwKCS8vICAgICAgICAgICAgIGNvbmZpZ0Fzc2V0RGVmYXVsdEZyb3plbjogMSwKCS8vICAgICAgICAgICAgIGNvbmZpZ0Fzc2V0VVJMOiB1cmwsCgkvLyAgICAgICAgICAgICBjb25maWdBc3NldE1hbmFnZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICAgICAgICBjb25maWdBc3NldFJlc2VydmU6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICAgICAgICBjb25maWdBc3NldENsYXdiYWNrOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyA2IC8vICBhY2ZnCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTk0CgkvLyBjb25maWdBc3NldFVuaXROYW1lOiAnTkZEJwoJcHVzaGJ5dGVzIDB4NGU0NjQ0IC8vICJORkQiCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VW5pdE5hbWUKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxOTUKCS8vIGNvbmZpZ0Fzc2V0TmFtZTogbmZkTmFtZQoJZnJhbWVfZGlnIC0xIC8vIG5mZE5hbWU6IHN0cmluZwoJaXR4bl9maWVsZCBDb25maWdBc3NldE5hbWUKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxOTYKCS8vIGNvbmZpZ0Fzc2V0VG90YWw6IDEKCWludGMgMSAvLyAxCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VG90YWwKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxOTcKCS8vIGNvbmZpZ0Fzc2V0RGVjaW1hbHM6IDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0RGVjaW1hbHMKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxOTgKCS8vIGNvbmZpZ0Fzc2V0RGVmYXVsdEZyb3plbjogMQoJaW50YyAxIC8vIDEKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXREZWZhdWx0RnJvemVuCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTk5CgkvLyBjb25maWdBc3NldFVSTDogdXJsCglmcmFtZV9kaWcgLTIgLy8gdXJsOiBzdHJpbmcKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRVUkwKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyMDAKCS8vIGNvbmZpZ0Fzc2V0TWFuYWdlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRNYW5hZ2VyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjAxCgkvLyBjb25maWdBc3NldFJlc2VydmU6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0UmVzZXJ2ZQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIwMgoJLy8gY29uZmlnQXNzZXRDbGF3YmFjazogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRDbGF3YmFjawoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gQ3JlYXRlZEFzc2V0SUQKCWZyYW1lX2J1cnkgMCAvLyBhc3NldDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjA0CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfQVNBSUQpLnZhbHVlID0gaXRvYihhc3NldC5pZCkKCWJ5dGVjIDE4IC8vICJpLmFzYWlkIgoJZnJhbWVfZGlnIDAgLy8gYXNzZXQ6IHVpbnQ2NAoJaXRvYgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyMDUKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HKS52YWx1ZSA9IE5GRF9NSU5USU5HX1NUQVRFX1BPU1RBU0EKCWJ5dGVjIDMgLy8gImkubWludGluZyIKCWJ5dGVjIDMwIC8vICIyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyMDYKCS8vIGxvZyhpdG9iKGFzc2V0LmlkKSkKCWZyYW1lX2RpZyAwIC8vIGFzc2V0OiB1aW50NjQKCWl0b2IKCWxvZwoJcmV0c3ViCgovLyBkZWxldGVGaWVsZHMoYnl0ZVtdW10pdm9pZAoqYWJpX3JvdXRlX2RlbGV0ZUZpZWxkczoKCS8vIGZpZWxkTmFtZXM6IGJ5dGVbXVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCgoJLy8gZXhlY3V0ZSBkZWxldGVGaWVsZHMoYnl0ZVtdW10pdm9pZAoJY2FsbHN1YiBkZWxldGVGaWVsZHMKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGRlbGV0ZUZpZWxkcyhmaWVsZE5hbWVzOiBieXRlc1tdKTogdm9pZApkZWxldGVGaWVsZHM6Cglwcm90byAxIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwbiA0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjE0CgkvLyBhc3NlcnQoIXRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HKS5leGlzdHMpCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlYyAzIC8vICJpLm1pbnRpbmciCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCgkhCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyMTUKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9USU1FQ0hBTkdFRCkudmFsdWUgPSBpdG9iKGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wKQoJYnl0ZWMgMiAvLyAiaS50aW1lQ2hhbmdlZCIKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjE3CgkvLyBhZG1pblJpZ2h0cyA9IHRoaXMuaXNDdXJyZW50VHhuQ29udHJhY3RBdXRob3JpdHkoKQoJY2FsbHN1YiBpc0N1cnJlbnRUeG5Db250cmFjdEF1dGhvcml0eQoJZnJhbWVfYnVyeSAwIC8vIGFkbWluUmlnaHRzOiBib29sCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjE4CgkvLyBib3hDb3N0cyA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDEgLy8gYm94Q29zdHM6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIxOQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBmaWVsZE5hbWVzLmxlbmd0aDsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCipmb3JfMDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIxOQoJLy8gaSA8IGZpZWxkTmFtZXMubGVuZ3RoCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZE5hbWVzOiBieXRlc1tdCglpbnRjIDAgLy8gMAoJZXh0cmFjdF91aW50MTYKCTwKCWJ6ICpmb3JfMF9lbmQKCgkvLyAqaWYxMl9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIyMAoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAyMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludGMgMTkgLy8gMjAwCgk8CglieiAqaWYxMl9lbmQKCgkvLyAqaWYxMl9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyMjEKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyAxNCAvLyAgI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50YyAxMyAvLyAgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMTJfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjIzCgkvLyBuYW1lID0gZmllbGROYW1lc1tpXQoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkTmFtZXM6IGJ5dGVzW10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnRjIDAgLy8gIGluaXRpYWwgb2Zmc2V0CglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMiAvLyAyCgkqIC8vIGFjYyAqIDIKCSsKCWludGMgMiAvLyAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJaW50YyAyIC8vIDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludGMgMSAvLyAgZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnRjIDIgLy8gMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWV4dHJhY3QzCglleHRyYWN0IDIgMAoJZnJhbWVfYnVyeSAzIC8vIG5hbWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIyNAoJLy8gYXNzZXJ0KHRoaXMuaXNGaWVsZERlbGV0ZUFsbG93ZWQobmFtZSwgYWRtaW5SaWdodHMpLCAnZmllbGQgbm90IHJlbW92YWJsZSBvciBubyBwZXJtaXNzaW9ucyB0byByZW1vdmUnKQoJZnJhbWVfZGlnIDAgLy8gYWRtaW5SaWdodHM6IGJvb2wKCWZyYW1lX2RpZyAzIC8vIG5hbWU6IGJ5dGVbXQoJY2FsbHN1YiBpc0ZpZWxkRGVsZXRlQWxsb3dlZAoKCS8vIGZpZWxkIG5vdCByZW1vdmFibGUgb3Igbm8gcGVybWlzc2lvbnMgdG8gcmVtb3ZlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyMjUKCS8vIGJveFNpemUgPSB0aGlzLmJveGVzKG5hbWUpLnNpemUKCWZyYW1lX2RpZyAzIC8vIG5hbWU6IGJ5dGVbXQoJYm94X2xlbgoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hlcyhuYW1lKS5zaXplCglhc3NlcnQKCWZyYW1lX2J1cnkgNCAvLyBib3hTaXplOiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyMjYKCS8vIHRoaXMuYm94ZXMobmFtZSkuZGVsZXRlKCkKCWZyYW1lX2RpZyAzIC8vIG5hbWU6IGJ5dGVbXQoJYm94X2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIyNwoJLy8gYm94Q29zdHMgKz0gU0NCT1hfUEVSQk9YICsgKG5hbWUubGVuZ3RoICsgYm94U2l6ZSkgKiBTQ0JPWF9QRVJCWVRFCglmcmFtZV9kaWcgMSAvLyBib3hDb3N0czogdWludDY0CglpbnRjIDEyIC8vIDI1MDAKCWZyYW1lX2RpZyAzIC8vIG5hbWU6IGJ5dGVbXQoJbGVuCglmcmFtZV9kaWcgNCAvLyBib3hTaXplOiB1aW50NjQKCSsKCWludGMgOSAvLyA0MDAKCSoKCSsKCSsKCWZyYW1lX2J1cnkgMSAvLyBib3hDb3N0czogdWludDY0CgoqZm9yXzBfY29udGludWU6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyMTkKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzAKCipmb3JfMF9lbmQ6CgkvLyAqaWYxM19jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIyOQoJLy8gYm94Q29zdHMgPiAwCglmcmFtZV9kaWcgMSAvLyBib3hDb3N0czogdWludDY0CglpbnRjIDAgLy8gMAoJPgoJYnogKmlmMTNfZW5kCgoJLy8gKmlmMTNfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjMwCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICAgICAgICAgICAgYW1vdW50OiBib3hDb3N0cywKCS8vICAgICAgICAgICAgICAgICByZWNlaXZlcjogdGhpcy50eG4uc2VuZGVyLAoJLy8gICAgICAgICAgICAgICAgIG5vdGU6ICdib3hSZWZ1bmQnLAoJLy8gICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMSAvLyAgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjMxCgkvLyBhbW91bnQ6IGJveENvc3RzCglmcmFtZV9kaWcgMSAvLyBib3hDb3N0czogdWludDY0CglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIzMgoJLy8gcmVjZWl2ZXI6IHRoaXMudHhuLnNlbmRlcgoJdHhuIFNlbmRlcgoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIzMwoJLy8gbm90ZTogJ2JveFJlZnVuZCcKCWJ5dGVjIDMxIC8vICAiYm94UmVmdW5kIgoJaXR4bl9maWVsZCBOb3RlCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMTNfZW5kOgoJcmV0c3ViCgovLyBkZWxldGVGaWVsZHNGcm9tQXJncygpOiB2b2lkCmRlbGV0ZUZpZWxkc0Zyb21BcmdzOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gMgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIzOQoJLy8gYXNzZXJ0KCF0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfTUlOVElORykuZXhpc3RzKQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJIQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjQxCgkvLyBhZG1pblJpZ2h0cyA9IHRoaXMuaXNDdXJyZW50VHhuQ29udHJhY3RBdXRob3JpdHkoKQoJY2FsbHN1YiBpc0N1cnJlbnRUeG5Db250cmFjdEF1dGhvcml0eQoJZnJhbWVfYnVyeSAwIC8vIGFkbWluUmlnaHRzOiBib29sCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjQyCgkvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAxOyBpIDwgdGhpcy50eG4ubnVtQXBwQXJnczsgaSArPSAxKQoJaW50YyAxIC8vIDEKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCipmb3JfMToKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI0MgoJLy8gaSA8IHRoaXMudHhuLm51bUFwcEFyZ3MKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJdHhuIE51bUFwcEFyZ3MKCTwKCWJ6ICpmb3JfMV9lbmQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyNDMKCS8vIG5hbWUgPSB0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhW2ldIGFzIGJ5dGVzCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCXR4bmFzIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfYnVyeSAyIC8vIG5hbWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI0NAoJLy8gYXNzZXJ0KHRoaXMuaXNGaWVsZERlbGV0ZUFsbG93ZWQobmFtZSwgYWRtaW5SaWdodHMpLCAnZmllbGQgbm90IHJlbW92YWJsZSBvciBubyBwZXJtaXNzaW9ucyB0byByZW1vdmUnKQoJZnJhbWVfZGlnIDAgLy8gYWRtaW5SaWdodHM6IGJvb2wKCWZyYW1lX2RpZyAyIC8vIG5hbWU6IGJ5dGVbXQoJY2FsbHN1YiBpc0ZpZWxkRGVsZXRlQWxsb3dlZAoKCS8vIGZpZWxkIG5vdCByZW1vdmFibGUgb3Igbm8gcGVybWlzc2lvbnMgdG8gcmVtb3ZlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyNDUKCS8vIHRoaXMuYm94ZXMobmFtZSkuZGVsZXRlKCkKCWZyYW1lX2RpZyAyIC8vIG5hbWU6IGJ5dGVbXQoJYm94X2RlbAoKKmZvcl8xX2NvbnRpbnVlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjQyCgkvLyBpICs9IDEKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCWIgKmZvcl8xCgoqZm9yXzFfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjQ3CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyB1cGRhdGVTZWdtZW50Q291bnQoc3RyaW5nLHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfdXBkYXRlU2VnbWVudENvdW50OgoJLy8gY2hpbGROZmRBcHBJRDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gY2hpbGROZmROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSB1cGRhdGVTZWdtZW50Q291bnQoc3RyaW5nLHVpbnQ2NCl2b2lkCgljYWxsc3ViIHVwZGF0ZVNlZ21lbnRDb3VudAoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gdXBkYXRlU2VnbWVudENvdW50KGNoaWxkTmZkTmFtZTogc3RyaW5nLCBjaGlsZE5mZEFwcElEOiB1aW50NjQpOiB2b2lkCnVwZGF0ZVNlZ21lbnRDb3VudDoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyNTgKCS8vIGFzc2VydChnbG9iYWxzLmNhbGxlckFwcGxpY2F0aW9uSUQgPT09IEFwcElELmZyb21VaW50NjQodGhpcy5yZWdpc3RyeUFwcElkKSwgJ2NhbGxlciBtdXN0IGJlIE5GRCByZWdpc3RyeSEnKQoJZ2xvYmFsIENhbGxlckFwcGxpY2F0aW9uSUQKCWludGMgNCAvLyBUTVBMX3JlZ2lzdHJ5QXBwSWQKCT09CgoJLy8gY2FsbGVyIG11c3QgYmUgTkZEIHJlZ2lzdHJ5IQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjU5CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgICAgICB0aGlzLnNhZmVHbG9iYWxCeXRlR2V0RXgoY2hpbGROZmRBcHBJRCwgTkZEX0tFWV9NSU5USU5HKSA9PT0gTkZEX01JTlRJTkdfU1RBVEVfUE9TVEFTQSwKCS8vICAgICAgICAgICAgICdjaGlsZCBORkQgTVVTVCBzdGlsbCBiZSBpbiBwcmUtY2xhaW0gc3RhdGUhJywKCS8vICAgICAgICAgKQoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJZnJhbWVfZGlnIC0yIC8vIGNoaWxkTmZkQXBwSUQ6IHVpbnQ2NAoJY2FsbHN1YiBzYWZlR2xvYmFsQnl0ZUdldEV4CglieXRlYyAzMCAvLyAiMiIKCT09CgoJLy8gY2hpbGQgTkZEIE1VU1Qgc3RpbGwgYmUgaW4gcHJlLWNsYWltIHN0YXRlIQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjYzCgkvLyBhc3NlcnQoIXRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HKS5leGlzdHMpCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlYyAzIC8vICJpLm1pbnRpbmciCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCgkhCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyNjQKCS8vIHRoaXMubm90Rm9yU2FsZU9yRXhwaXJlZCgpCgljYWxsc3ViIG5vdEZvclNhbGVPckV4cGlyZWQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyNjYKCS8vIGFzc2VydCgKCS8vICAgICAgICAgICAgIHRoaXMuc2FmZUdsb2JhbEJ5dGVHZXRFeChjaGlsZE5mZEFwcElELCBORkRfS0VZX05BTUUpID09PSBjaGlsZE5mZE5hbWUsCgkvLyAgICAgICAgICAgICAncGFzc2VkIGluIGNoaWxkIG5hbWUgbXVzdCBtYXRjaCBuYW1lIGluIGNyZWF0ZWQgbmZkIHN0YXRlJywKCS8vICAgICAgICAgKQoJYnl0ZWMgNCAvLyAiaS5uYW1lIgoJZnJhbWVfZGlnIC0yIC8vIGNoaWxkTmZkQXBwSUQ6IHVpbnQ2NAoJY2FsbHN1YiBzYWZlR2xvYmFsQnl0ZUdldEV4CglmcmFtZV9kaWcgLTEgLy8gY2hpbGROZmROYW1lOiBzdHJpbmcKCT09CgoJLy8gcGFzc2VkIGluIGNoaWxkIG5hbWUgbXVzdCBtYXRjaCBuYW1lIGluIGNyZWF0ZWQgbmZkIHN0YXRlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyNzAKCS8vIHRoaXNQYXJlbnROYW1lID0gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlCglieXRlYyA0IC8vICJpLm5hbWUiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfYnVyeSAwIC8vIHRoaXNQYXJlbnROYW1lOiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyNzUKCS8vIGluZGV4Q2hlY2tTdG9wID0gbGVuKGNoaWxkTmZkTmFtZSkgLSBsZW4odGhpc1BhcmVudE5hbWUpIC0gMQoJZnJhbWVfZGlnIC0xIC8vIGNoaWxkTmZkTmFtZTogc3RyaW5nCglsZW4KCWZyYW1lX2RpZyAwIC8vIHRoaXNQYXJlbnROYW1lOiBieXRlW10KCWxlbgoJLQoJaW50YyAxIC8vIDEKCS0KCWZyYW1lX2J1cnkgMSAvLyBpbmRleENoZWNrU3RvcDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Mjc2CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgICAgICBleHRyYWN0MyhjaGlsZE5mZE5hbWUsIGluZGV4Q2hlY2tTdG9wLCBsZW4odGhpc1BhcmVudE5hbWUpICsgMSkgPT09ICcuJyArIHRoaXNQYXJlbnROYW1lLAoJLy8gICAgICAgICAgICAgJ3BhcmVudCBtdXN0IGJlIHN1ZmZpeCBvZiBjaGlsZCcsCgkvLyAgICAgICAgICkKCWZyYW1lX2RpZyAtMSAvLyBjaGlsZE5mZE5hbWU6IHN0cmluZwoJZnJhbWVfZGlnIDEgLy8gaW5kZXhDaGVja1N0b3A6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gdGhpc1BhcmVudE5hbWU6IGJ5dGVbXQoJbGVuCglpbnRjIDEgLy8gMQoJKwoJZXh0cmFjdDMKCWJ5dGVjIDI4IC8vICAiLiIKCWZyYW1lX2RpZyAwIC8vIHRoaXNQYXJlbnROYW1lOiBieXRlW10KCWNvbmNhdAoJPT0KCgkvLyBwYXJlbnQgbXVzdCBiZSBzdWZmaXggb2YgY2hpbGQKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI4MAoJLy8gYXNzZXJ0KHRoaXMubm9QZXJpb2RCZWZvcmVJbmRleChjaGlsZE5mZE5hbWUsIGluZGV4Q2hlY2tTdG9wKSkKCWZyYW1lX2RpZyAxIC8vIGluZGV4Q2hlY2tTdG9wOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBjaGlsZE5mZE5hbWU6IHN0cmluZwoJY2FsbHN1YiBub1BlcmlvZEJlZm9yZUluZGV4Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyODEKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUdNRU5UQ09VTlQpLnZhbHVlID0gaXRvYih0aGlzLnNhZmVHbG9iYWxJbnRHZXQoTkZEX0tFWV9TRUdNRU5UQ09VTlQpICsgMSkKCWJ5dGVjIDM1IC8vICJpLnNlZ21lbnRDb3VudCIKCWR1cAoJY2FsbHN1YiBzYWZlR2xvYmFsSW50R2V0CglpbnRjIDEgLy8gMQoJKwoJaXRvYgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyODIKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9USU1FQ0hBTkdFRCkudmFsdWUgPSBpdG9iKGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wKQoJYnl0ZWMgMiAvLyAiaS50aW1lQ2hhbmdlZCIKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGdldEZpZWxkVXBkYXRlQ29zdChieXRlW11bXSl1aW50NjQKKmFiaV9yb3V0ZV9nZXRGaWVsZFVwZGF0ZUNvc3Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDExIC8vIDB4MTUxZjdjNzUKCgkvLyBmaWVsZEFuZFZhbHM6IGJ5dGVbXVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCgoJLy8gZXhlY3V0ZSBnZXRGaWVsZFVwZGF0ZUNvc3QoYnl0ZVtdW10pdWludDY0CgljYWxsc3ViIGdldEZpZWxkVXBkYXRlQ29zdAoJaXRvYgoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldEZpZWxkVXBkYXRlQ29zdChmaWVsZEFuZFZhbHM6IGJ5dGVzW10pOiB1aW50NjQKZ2V0RmllbGRVcGRhdGVDb3N0OgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gNgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI4NwoJLy8gY29zdCA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDAgLy8gY29zdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Mjg4CgkvLyByZW1vdmVkQ29zdCA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDEgLy8gcmVtb3ZlZENvc3Q6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI5MAoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBmaWVsZEFuZFZhbHMubGVuZ3RoOyBpICs9IDIpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoKKmZvcl8yOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjkwCgkvLyBpIDwgZmllbGRBbmRWYWxzLmxlbmd0aAoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gZmllbGRBbmRWYWxzOiBieXRlc1tdCglpbnRjIDAgLy8gMAoJZXh0cmFjdF91aW50MTYKCTwKCWJ6ICpmb3JfMl9lbmQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyOTEKCS8vIG5hbWUgPSBmaWVsZEFuZFZhbHNbaV0KCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEFuZFZhbHM6IGJ5dGVzW10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnRjIDAgLy8gIGluaXRpYWwgb2Zmc2V0CglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMiAvLyAyCgkqIC8vIGFjYyAqIDIKCSsKCWludGMgMiAvLyAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJaW50YyAyIC8vIDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludGMgMSAvLyAgZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnRjIDIgLy8gMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWV4dHJhY3QzCglleHRyYWN0IDIgMAoJZnJhbWVfYnVyeSAzIC8vIG5hbWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI5MgoJLy8gdmFsdWUgPSBmaWVsZEFuZFZhbHNbaSArIDFdCglmcmFtZV9kaWcgLTEgLy8gZmllbGRBbmRWYWxzOiBieXRlc1tdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50YyAwIC8vICBpbml0aWFsIG9mZnNldAoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJaW50YyAyIC8vIDIKCSogLy8gYWNjICogMgoJKwoJaW50YyAyIC8vIDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglpbnRjIDIgLy8gMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50YyAxIC8vICBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludGMgMiAvLyAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCglmcmFtZV9idXJ5IDQgLy8gdmFsdWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI5MwoJLy8gZXhpc3RzID0gdGhpcy5ib3hlcyhuYW1lKS5leGlzdHMKCWZyYW1lX2RpZyAzIC8vIG5hbWU6IGJ5dGVbXQoJYm94X2xlbgoJc3dhcAoJcG9wCglmcmFtZV9idXJ5IDUgLy8gZXhpc3RzOiBib29sCgoJLy8gKmlmMTRfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyOTUKCS8vIGxlbih2YWx1ZSkgPT09IDAKCWZyYW1lX2RpZyA0IC8vIHZhbHVlOiBieXRlW10KCWxlbgoJaW50YyAwIC8vIDAKCT09CglieiAqaWYxNF9lbmQKCgkvLyAqaWYxNF9jb25zZXF1ZW50CgkvLyAqaWYxNV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI5NgoJLy8gZXhpc3RzCglmcmFtZV9kaWcgNSAvLyBleGlzdHM6IGJvb2wKCWJ6ICppZjE1X2VuZAoKCS8vICppZjE1X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI5OAoJLy8gcmVtb3ZlZENvc3QgKz0gU0NCT1hfUEVSQk9YICsgU0NCT1hfUEVSQllURSAqIChsZW4obmFtZSkgKyB0aGlzLmJveGVzKG5hbWUpLnNpemUpCglmcmFtZV9kaWcgMSAvLyByZW1vdmVkQ29zdDogdWludDY0CglpbnRjIDEyIC8vIDI1MDAKCWludGMgOSAvLyA0MDAKCWZyYW1lX2RpZyAzIC8vIG5hbWU6IGJ5dGVbXQoJbGVuCglmcmFtZV9kaWcgMyAvLyBuYW1lOiBieXRlW10KCWJveF9sZW4KCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94ZXMobmFtZSkuc2l6ZQoJYXNzZXJ0CgkrCgkqCgkrCgkrCglmcmFtZV9idXJ5IDEgLy8gcmVtb3ZlZENvc3Q6IHVpbnQ2NAoKKmlmMTVfZW5kOgoJYiAqZm9yXzJfY29udGludWUKCippZjE0X2VuZDoKCS8vICppZjE2X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzAyCgkvLyAhZXhpc3RzCglmcmFtZV9kaWcgNSAvLyBleGlzdHM6IGJvb2wKCSEKCWJ6ICppZjE2X2VuZAoKCS8vICppZjE2X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjMwNAoJLy8gY29zdCArPSBTQ0JPWF9QRVJCT1ggKyBTQ0JPWF9QRVJCWVRFICogKGxlbihuYW1lKSArIGxlbih2YWx1ZSkpCglmcmFtZV9kaWcgMCAvLyBjb3N0OiB1aW50NjQKCWludGMgMTIgLy8gMjUwMAoJaW50YyA5IC8vIDQwMAoJZnJhbWVfZGlnIDMgLy8gbmFtZTogYnl0ZVtdCglsZW4KCWZyYW1lX2RpZyA0IC8vIHZhbHVlOiBieXRlW10KCWxlbgoJKwoJKgoJKwoJKwoJZnJhbWVfYnVyeSAwIC8vIGNvc3Q6IHVpbnQ2NAoJYiAqZm9yXzJfY29udGludWUKCippZjE2X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjMwNwoJLy8gZXhpc3RpbmdMZW5ndGggPSB0aGlzLmJveGVzKG5hbWUpLnNpemUKCWZyYW1lX2RpZyAzIC8vIG5hbWU6IGJ5dGVbXQoJYm94X2xlbgoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hlcyhuYW1lKS5zaXplCglhc3NlcnQKCWZyYW1lX2J1cnkgNiAvLyBleGlzdGluZ0xlbmd0aDogdWludDY0CgoJLy8gKmlmMTdfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMDgKCS8vIGxlbih2YWx1ZSkgPD0gZXhpc3RpbmdMZW5ndGgKCWZyYW1lX2RpZyA0IC8vIHZhbHVlOiBieXRlW10KCWxlbgoJZnJhbWVfZGlnIDYgLy8gZXhpc3RpbmdMZW5ndGg6IHVpbnQ2NAoJPD0KCWJ6ICppZjE3X2Vsc2UKCgkvLyAqaWYxN19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMDkKCS8vIHJlbW92ZWRDb3N0ICs9IFNDQk9YX1BFUkJZVEUgKiAoZXhpc3RpbmdMZW5ndGggLSBsZW4odmFsdWUpKQoJZnJhbWVfZGlnIDEgLy8gcmVtb3ZlZENvc3Q6IHVpbnQ2NAoJaW50YyA5IC8vIDQwMAoJZnJhbWVfZGlnIDYgLy8gZXhpc3RpbmdMZW5ndGg6IHVpbnQ2NAoJZnJhbWVfZGlnIDQgLy8gdmFsdWU6IGJ5dGVbXQoJbGVuCgktCgkqCgkrCglmcmFtZV9idXJ5IDEgLy8gcmVtb3ZlZENvc3Q6IHVpbnQ2NAoJYiAqaWYxN19lbmQKCippZjE3X2Vsc2U6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMTEKCS8vIGNvc3QgKz0gU0NCT1hfUEVSQllURSAqIChsZW4odmFsdWUpIC0gZXhpc3RpbmdMZW5ndGgpCglmcmFtZV9kaWcgMCAvLyBjb3N0OiB1aW50NjQKCWludGMgOSAvLyA0MDAKCWZyYW1lX2RpZyA0IC8vIHZhbHVlOiBieXRlW10KCWxlbgoJZnJhbWVfZGlnIDYgLy8gZXhpc3RpbmdMZW5ndGg6IHVpbnQ2NAoJLQoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIGNvc3Q6IHVpbnQ2NAoKKmlmMTdfZW5kOgoKKmZvcl8yX2NvbnRpbnVlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjkwCgkvLyBpICs9IDIKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAyIC8vIDIKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl8yCgoqZm9yXzJfZW5kOgoJLy8gKmlmMThfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMTUKCS8vIHJlbW92ZWRDb3N0ID4gY29zdAoJZnJhbWVfZGlnIDEgLy8gcmVtb3ZlZENvc3Q6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gY29zdDogdWludDY0Cgk+CglieiAqaWYxOF9lbmQKCgkvLyAqaWYxOF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMTYKCS8vIHJldHVybiAwCglpbnRjIDAgLy8gMAoJYiAqZ2V0RmllbGRVcGRhdGVDb3N0KnJldHVybgoKKmlmMThfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzE4CgkvLyByZXR1cm4gY29zdCAtIHJlbW92ZWRDb3N0CglmcmFtZV9kaWcgMCAvLyBjb3N0OiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIHJlbW92ZWRDb3N0OiB1aW50NjQKCS0KCipnZXRGaWVsZFVwZGF0ZUNvc3QqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNgoJcmV0c3ViCgovLyB1cGRhdGVGaWVsZHMoYnl0ZVtdW10pdm9pZAoqYWJpX3JvdXRlX3VwZGF0ZUZpZWxkczoKCS8vIGZpZWxkQW5kVmFsczogYnl0ZVtdW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCgkvLyBleGVjdXRlIHVwZGF0ZUZpZWxkcyhieXRlW11bXSl2b2lkCgljYWxsc3ViIHVwZGF0ZUZpZWxkcwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gdXBkYXRlRmllbGRzKGZpZWxkQW5kVmFsczogYnl0ZXNbXSk6IHZvaWQKdXBkYXRlRmllbGRzOgoJcHJvdG8gMSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gMwoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjMyMgoJLy8gYXNzZXJ0KCF0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfTUlOVElORykuZXhpc3RzKQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJIQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzIzCgkvLyBhc3NlcnQoIXRoaXMuaXNFeHBpcmVkKCksICJjYW4ndCB1cGRhdGUgZmllbGRzIGlmIE5GRCBleHBpcmVkIikKCWNhbGxzdWIgaXNFeHBpcmVkCgkhCgoJLy8gY2FuJ3QgdXBkYXRlIGZpZWxkcyBpZiBORkQgZXhwaXJlZAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzI1CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vICppZjE5X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzI4CgkvLyBnbG9iYWxzLmNhbGxlckFwcGxpY2F0aW9uSUQgPT09IEFwcElELmZyb21VaW50NjQodGhpcy5yZWdpc3RyeUFwcElkKQoJZ2xvYmFsIENhbGxlckFwcGxpY2F0aW9uSUQKCWludGMgNCAvLyBUTVBMX3JlZ2lzdHJ5QXBwSWQKCT09CglieiAqaWYxOV9lbmQKCgkvLyAqaWYxOV9jb25zZXF1ZW50CgkvLyAqaWYyMF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjMyOQoJLy8gZmllbGRBbmRWYWxzLmxlbmd0aCA9PT0gMiAmJiBmaWVsZEFuZFZhbHNbMF0gPT09IE5GRF9GSUVMRF9DQV9UT19WRVJJRlkKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEFuZFZhbHM6IGJ5dGVzW10KCWludGMgMCAvLyAwCglleHRyYWN0X3VpbnQxNgoJaW50YyAyIC8vIDIKCT09CglkdXAKCWJ6ICpza2lwX2FuZDkKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEFuZFZhbHM6IGJ5dGVzW10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnRjIDIgLy8gMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJaW50YyAyIC8vIDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludGMgMSAvLyAgZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnRjIDIgLy8gMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWV4dHJhY3QzCglleHRyYWN0IDIgMAoJcHVzaGJ5dGVzICJ1LmNhdi5hbGdvLmEiCgk9PQoJJiYKCipza2lwX2FuZDk6CglieiAqaWYyMF9lbmQKCgkvLyAqaWYyMF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMzAKCS8vIHRoaXMuYm94ZXMoZmllbGRBbmRWYWxzWzBdKS52YWx1ZSA9IGZpZWxkQW5kVmFsc1sxXQoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkQW5kVmFsczogYnl0ZXNbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludGMgMiAvLyAyCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglpbnRjIDIgLy8gMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50YyAxIC8vICBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludGMgMiAvLyAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCglmcmFtZV9kaWcgLTEgLy8gZmllbGRBbmRWYWxzOiBieXRlc1tdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50YyAxMCAvLyA0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglpbnRjIDIgLy8gMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50YyAxIC8vICBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludGMgMiAvLyAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCglib3hfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzMxCgkvLyByZXR1cm4KCXJldHN1YgoKKmlmMjBfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzMzCgkvLyBhc3NlcnQoZmFsc2UsICdpbnZhbGlkIHVwZGF0ZSBjYWxsIGJ5IHJlZ2lzdHJ5JykKCWludGMgMCAvLyAwCgoJLy8gaW52YWxpZCB1cGRhdGUgY2FsbCBieSByZWdpc3RyeQoJYXNzZXJ0CgoqaWYxOV9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMzYKCS8vIGFkbWluUmlnaHRzID0gdGhpcy5pc0N1cnJlbnRUeG5Db250cmFjdEF1dGhvcml0eSgpCgljYWxsc3ViIGlzQ3VycmVudFR4bkNvbnRyYWN0QXV0aG9yaXR5CglmcmFtZV9idXJ5IDAgLy8gYWRtaW5SaWdodHM6IGJvb2wKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMzcKCS8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBmaWVsZEFuZFZhbHMubGVuZ3RoOyBpICs9IDIpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoKKmZvcl8zOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzM3CgkvLyBpIDwgZmllbGRBbmRWYWxzLmxlbmd0aAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gZmllbGRBbmRWYWxzOiBieXRlc1tdCglpbnRjIDAgLy8gMAoJZXh0cmFjdF91aW50MTYKCTwKCWJ6ICpmb3JfM19lbmQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMzgKCS8vIG5hbWUgPSBmaWVsZEFuZFZhbHNbaV0KCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEFuZFZhbHM6IGJ5dGVzW10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnRjIDAgLy8gIGluaXRpYWwgb2Zmc2V0CglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWludGMgMiAvLyAyCgkqIC8vIGFjYyAqIDIKCSsKCWludGMgMiAvLyAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJaW50YyAyIC8vIDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludGMgMSAvLyAgZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnRjIDIgLy8gMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWV4dHJhY3QzCglleHRyYWN0IDIgMAoJZnJhbWVfYnVyeSAyIC8vIG5hbWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjMzOQoJLy8gdmFsdWUgPSBmaWVsZEFuZFZhbHNbaSArIDFdCglmcmFtZV9kaWcgLTEgLy8gZmllbGRBbmRWYWxzOiBieXRlc1tdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50YyAwIC8vICBpbml0aWFsIG9mZnNldAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJaW50YyAyIC8vIDIKCSogLy8gYWNjICogMgoJKwoJaW50YyAyIC8vIDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglpbnRjIDIgLy8gMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50YyAxIC8vICBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludGMgMiAvLyAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCglmcmFtZV9idXJ5IDMgLy8gdmFsdWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjM0MAoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgICAgIHRoaXMuaXNGaWVsZFVwZGF0ZUFsbG93ZWQobmFtZSwgdmFsdWUsIGFkbWluUmlnaHRzKSwKCS8vICAgICAgICAgICAgICAgICAnZmllbGQgbm90IHVwZGF0YWJsZSBvciBubyBwZXJtaXNzaW9ucyB0byB1cGRhdGUnLAoJLy8gICAgICAgICAgICAgKQoJZnJhbWVfZGlnIDAgLy8gYWRtaW5SaWdodHM6IGJvb2wKCWZyYW1lX2RpZyAzIC8vIHZhbHVlOiBieXRlW10KCWZyYW1lX2RpZyAyIC8vIG5hbWU6IGJ5dGVbXQoJY2FsbHN1YiBpc0ZpZWxkVXBkYXRlQWxsb3dlZAoKCS8vIGZpZWxkIG5vdCB1cGRhdGFibGUgb3Igbm8gcGVybWlzc2lvbnMgdG8gdXBkYXRlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozNDQKCS8vIHRoaXMuYm94ZXMobmFtZSkuZGVsZXRlKCkKCWZyYW1lX2RpZyAyIC8vIG5hbWU6IGJ5dGVbXQoJYm94X2RlbAoKCS8vICppZjIxX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzQ1CgkvLyBsZW4odmFsdWUpID4gMAoJZnJhbWVfZGlnIDMgLy8gdmFsdWU6IGJ5dGVbXQoJbGVuCglpbnRjIDAgLy8gMAoJPgoJYnogKmlmMjFfZW5kCgoJLy8gKmlmMjFfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzQ2CgkvLyB0aGlzLmJveGVzKG5hbWUpLnZhbHVlID0gdmFsdWUKCWZyYW1lX2RpZyAyIC8vIG5hbWU6IGJ5dGVbXQoJZnJhbWVfZGlnIDMgLy8gdmFsdWU6IGJ5dGVbXQoJYm94X3B1dAoKKmlmMjFfZW5kOgoKKmZvcl8zX2NvbnRpbnVlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzM3CgkvLyBpICs9IDIKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50YyAyIC8vIDIKCSsKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCWIgKmZvcl8zCgoqZm9yXzNfZW5kOgoJcmV0c3ViCgovLyB1cGRhdGVGaWVsZHNGcm9tQXJncygpOiB2b2lkCnVwZGF0ZUZpZWxkc0Zyb21BcmdzOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gMwoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjM1MgoJLy8gYXNzZXJ0KCF0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfTUlOVElORykuZXhpc3RzKQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJIQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzUzCgkvLyBhc3NlcnQoIXRoaXMuaXNFeHBpcmVkKCksICJjYW4ndCB1cGRhdGUgZmllbGRzIGlmIE5GRCBleHBpcmVkIikKCWNhbGxzdWIgaXNFeHBpcmVkCgkhCgoJLy8gY2FuJ3QgdXBkYXRlIGZpZWxkcyBpZiBORkQgZXhwaXJlZAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzU1CgkvLyBhZG1pblJpZ2h0cyA9IHRoaXMuaXNDdXJyZW50VHhuQ29udHJhY3RBdXRob3JpdHkoKQoJY2FsbHN1YiBpc0N1cnJlbnRUeG5Db250cmFjdEF1dGhvcml0eQoJZnJhbWVfYnVyeSAwIC8vIGFkbWluUmlnaHRzOiBib29sCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzU2CgkvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAxOyBpIDwgdGhpcy50eG4ubnVtQXBwQXJnczsgaSArPSAyKQoJaW50YyAxIC8vIDEKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCipmb3JfNDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjM1NgoJLy8gaSA8IHRoaXMudHhuLm51bUFwcEFyZ3MKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJdHhuIE51bUFwcEFyZ3MKCTwKCWJ6ICpmb3JfNF9lbmQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozNTcKCS8vIG5hbWUgPSB0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhW2ldIGFzIGJ5dGVzCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCXR4bmFzIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfYnVyeSAyIC8vIG5hbWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjM1OAoJLy8gdmFsdWUgPSB0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhW2kgKyAxXSBhcyBieXRlcwoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJdHhuYXMgQXBwbGljYXRpb25BcmdzCglmcmFtZV9idXJ5IDMgLy8gdmFsdWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjM1OQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgICAgIHRoaXMuaXNGaWVsZFVwZGF0ZUFsbG93ZWQobmFtZSwgdmFsdWUsIGFkbWluUmlnaHRzKSwKCS8vICAgICAgICAgICAgICAgICAnZmllbGQgbm90IHVwZGF0YWJsZSBvciBubyBwZXJtaXNzaW9ucyB0byB1cGRhdGUnLAoJLy8gICAgICAgICAgICAgKQoJZnJhbWVfZGlnIDAgLy8gYWRtaW5SaWdodHM6IGJvb2wKCWZyYW1lX2RpZyAzIC8vIHZhbHVlOiBieXRlW10KCWZyYW1lX2RpZyAyIC8vIG5hbWU6IGJ5dGVbXQoJY2FsbHN1YiBpc0ZpZWxkVXBkYXRlQWxsb3dlZAoKCS8vIGZpZWxkIG5vdCB1cGRhdGFibGUgb3Igbm8gcGVybWlzc2lvbnMgdG8gdXBkYXRlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozNjMKCS8vIHRoaXMuYm94ZXMobmFtZSkuZGVsZXRlKCkKCWZyYW1lX2RpZyAyIC8vIG5hbWU6IGJ5dGVbXQoJYm94X2RlbAoKCS8vICppZjIyX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzY0CgkvLyBsZW4odmFsdWUpID4gMAoJZnJhbWVfZGlnIDMgLy8gdmFsdWU6IGJ5dGVbXQoJbGVuCglpbnRjIDAgLy8gMAoJPgoJYnogKmlmMjJfZW5kCgoJLy8gKmlmMjJfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzY1CgkvLyB0aGlzLmJveGVzKG5hbWUpLnZhbHVlID0gdmFsdWUKCWZyYW1lX2RpZyAyIC8vIG5hbWU6IGJ5dGVbXQoJZnJhbWVfZGlnIDMgLy8gdmFsdWU6IGJ5dGVbXQoJYm94X3B1dAoKKmlmMjJfZW5kOgoKKmZvcl80X2NvbnRpbnVlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzU2CgkvLyBpICs9IDIKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50YyAyIC8vIDIKCSsKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCWIgKmZvcl80CgoqZm9yXzRfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzY4CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyByZWFkRmllbGQoYnl0ZVtdKWJ5dGVbXQoqYWJpX3JvdXRlX3JlYWRGaWVsZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMTEgLy8gMHgxNTFmN2M3NQoKCS8vIGZpZWxkTmFtZTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgcmVhZEZpZWxkKGJ5dGVbXSlieXRlW10KCWNhbGxzdWIgcmVhZEZpZWxkCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHJlYWRGaWVsZChmaWVsZE5hbWU6IGJ5dGVzKTogYnl0ZXMKcmVhZEZpZWxkOgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gNAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjM3NAoJLy8gdHJ1c3RUeXBlID0gZXh0cmFjdDMoZmllbGROYW1lLCAwLCAyKQoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkTmFtZTogYnl0ZXMKCWV4dHJhY3QgMCAyCglmcmFtZV9idXJ5IDAgLy8gdHJ1c3RUeXBlOiBieXRlW10KCgkvLyAqaWYyM19jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjM3NgoJLy8gdGhpcy5pc0ludGVybmFsRmllbGQodHJ1c3RUeXBlKQoJZnJhbWVfZGlnIDAgLy8gdHJ1c3RUeXBlOiBieXRlW10KCWNhbGxzdWIgaXNJbnRlcm5hbEZpZWxkCglieiAqaWYyM19lbmQKCgkvLyAqaWYyM19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozNzcKCS8vIHJldHVybiB0aGlzLnNhZmVHbG9iYWxCeXRlR2V0KGZpZWxkTmFtZSkKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZE5hbWU6IGJ5dGVzCgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0CgliICpyZWFkRmllbGQqcmV0dXJuCgoqaWYyM19lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozNzkKCS8vIGFzc2VydCgKCS8vICAgICAgICAgICAgIHRoaXMuaXNVc2VyRmllbGQodHJ1c3RUeXBlKSB8fCB0aGlzLmlzVmVyaWZpZWRGaWVsZCh0cnVzdFR5cGUpLAoJLy8gICAgICAgICAgICAgJ211c3QgYmUgdXNlci1kZWZpbmVkIG9yIHZlcmlmaWVkIGZpZWxkIHRvIGZldGNoJywKCS8vICAgICAgICAgKQoJZnJhbWVfZGlnIDAgLy8gdHJ1c3RUeXBlOiBieXRlW10KCWNhbGxzdWIgaXNVc2VyRmllbGQKCWR1cAoJYm56ICpza2lwX29yMAoJZnJhbWVfZGlnIDAgLy8gdHJ1c3RUeXBlOiBieXRlW10KCWNhbGxzdWIgaXNWZXJpZmllZEZpZWxkCgl8fAoKKnNraXBfb3IwOgoJLy8gbXVzdCBiZSB1c2VyLWRlZmluZWQgb3IgdmVyaWZpZWQgZmllbGQgdG8gZmV0Y2gKCWFzc2VydAoKCS8vICppZjI0X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzgzCgkvLyB0aGlzLmJveGVzKGZpZWxkTmFtZSkuZXhpc3RzCglmcmFtZV9kaWcgLTEgLy8gZmllbGROYW1lOiBieXRlcwoJYm94X2xlbgoJc3dhcAoJcG9wCglieiAqaWYyNF9lbmQKCgkvLyAqaWYyNF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozODQKCS8vIHJldHVybiB0aGlzLmJveGVzKGZpZWxkTmFtZSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZE5hbWU6IGJ5dGVzCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJveGVzKGZpZWxkTmFtZSkudmFsdWUKCWFzc2VydAoJYiAqcmVhZEZpZWxkKnJldHVybgoKKmlmMjRfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Mzg3CgkvLyBib3hOYW1lID0gZmllbGROYW1lICsgJ18wMCcKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZE5hbWU6IGJ5dGVzCglwdXNoYnl0ZXMgMHg1ZjMwMzAgLy8gIl8wMCIKCWNvbmNhdAoJZnJhbWVfYnVyeSAxIC8vIGJveE5hbWU6IGJ5dGVbXQoKCS8vICppZjI1X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Mzg4CgkvLyAhdGhpcy5ib3hlcyhib3hOYW1lKS5leGlzdHMKCWZyYW1lX2RpZyAxIC8vIGJveE5hbWU6IGJ5dGVbXQoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCglieiAqaWYyNV9lbmQKCgkvLyAqaWYyNV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozODkKCS8vIHJldHVybiAnJwoJYnl0ZWMgMCAvLyAgIiIKCWIgKnJlYWRGaWVsZCpyZXR1cm4KCippZjI1X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjM5MgoJLy8gcmV0VmFsdWUgPSB0aGlzLmJveGVzKGJveE5hbWUpLnZhbHVlIGFzIGJ5dGVzCglmcmFtZV9kaWcgMSAvLyBib3hOYW1lOiBieXRlW10KCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94ZXMoYm94TmFtZSkudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSAyIC8vIHJldFZhbHVlOiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozOTMKCS8vIG5hbWVQcmVmaXggPSBmaWVsZE5hbWUgKyAnXzAnCglmcmFtZV9kaWcgLTEgLy8gZmllbGROYW1lOiBieXRlcwoJcHVzaGJ5dGVzIDB4NWYzMCAvLyAiXzAiCgljb25jYXQKCWZyYW1lX2J1cnkgMyAvLyBuYW1lUHJlZml4OiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozOTQKCS8vIGZvciAobGV0IGkgPSAxOyBpIDwgMTA7IGkgKz0gMSkKCWludGMgMSAvLyAxCglmcmFtZV9idXJ5IDQgLy8gaTogdWludDY0CgoqZm9yXzU6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozOTQKCS8vIGkgPCAxMAoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnRjIDExIC8vIDEwCgk8CglieiAqZm9yXzVfZW5kCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Mzk1CgkvLyBib3hOYW1lID0gbmFtZVByZWZpeCArIGkudG9TdHJpbmcoKQoJZnJhbWVfZGlnIDMgLy8gbmFtZVByZWZpeDogYnl0ZVtdCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWNhbGxzdWIgKml0b2EKCWNvbmNhdAoJZnJhbWVfYnVyeSAxIC8vIGJveE5hbWU6IGJ5dGVbXQoKCS8vICppZjI2X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Mzk2CgkvLyAhdGhpcy5ib3hlcyhib3hOYW1lKS5leGlzdHMKCWZyYW1lX2RpZyAxIC8vIGJveE5hbWU6IGJ5dGVbXQoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCglieiAqaWYyNl9lbmQKCgkvLyAqaWYyNl9jb25zZXF1ZW50CgliICpmb3JfNV9lbmQKCippZjI2X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQwMAoJLy8gcmV0VmFsdWUgPSBjb25jYXQocmV0VmFsdWUsIHRoaXMuYm94ZXMoYm94TmFtZSkudmFsdWUpCglmcmFtZV9kaWcgMiAvLyByZXRWYWx1ZTogYnl0ZVtdCglmcmFtZV9kaWcgMSAvLyBib3hOYW1lOiBieXRlW10KCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94ZXMoYm94TmFtZSkudmFsdWUKCWFzc2VydAoJY29uY2F0CglmcmFtZV9idXJ5IDIgLy8gcmV0VmFsdWU6IGJ5dGVbXQoKKmZvcl81X2NvbnRpbnVlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Mzk0CgkvLyBpICs9IDEKCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgNCAvLyBpOiB1aW50NjQKCWIgKmZvcl81CgoqZm9yXzVfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDAyCgkvLyByZXR1cm4gcmV0VmFsdWUKCWZyYW1lX2RpZyAyIC8vIHJldFZhbHVlOiBieXRlW10KCipyZWFkRmllbGQqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNAoJcmV0c3ViCgovLyBvZmZlckZvclNhbGUodWludDY0LGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX29mZmVyRm9yU2FsZToKCS8vIHJlc2VydmVkRm9yOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50YyAzIC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHJlc2VydmVkRm9yKSBmb3Igb2ZmZXJGb3JTYWxlIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBzZWxsQW1vdW50OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIG9mZmVyRm9yU2FsZSh1aW50NjQsYWRkcmVzcyl2b2lkCgljYWxsc3ViIG9mZmVyRm9yU2FsZQoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gb2ZmZXJGb3JTYWxlKHNlbGxBbW91bnQ6IHVpbnQ2NCwgcmVzZXJ2ZWRGb3I6IEFkZHJlc3MpOiB2b2lkCm9mZmVyRm9yU2FsZToKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDA4CgkvLyBhc3NlcnQoIXRoaXMuaXNFeHBpcmVkKCksICJjYW4ndCBzZWxsIGlmIE5GRCBleHBpcmVkIikKCWNhbGxzdWIgaXNFeHBpcmVkCgkhCgoJLy8gY2FuJ3Qgc2VsbCBpZiBORkQgZXhwaXJlZAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDA5CgkvLyBhc3NlcnQoIXRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HKS5leGlzdHMpCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlYyAzIC8vICJpLm1pbnRpbmciCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCgkhCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0MTAKCS8vIHRoaXMubXVzdEJlQ2FsbGVkQnlPd25lcigpCgljYWxsc3ViIG11c3RCZUNhbGxlZEJ5T3duZXIKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0MTEKCS8vIG91ckJveENvdW50ID0gdGhpcy5hcHAuYWRkcmVzcy50b3RhbEJveGVzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCglwb3AKCWZyYW1lX2J1cnkgMCAvLyBvdXJCb3hDb3VudDogdWludDY0CgoJLy8gKmlmMjdfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0MTYKCS8vIG91ckJveENvdW50ID4gMAoJZnJhbWVfZGlnIDAgLy8gb3VyQm94Q291bnQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT4KCWJ6ICppZjI3X2VuZAoKCS8vICppZjI3X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQxNwoJLy8gbG9nKCdib3ggY291bnQ6JyArIG91ckJveENvdW50LnRvU3RyaW5nKCkpCglwdXNoYnl0ZXMgMHg2MjZmNzgyMDYzNmY3NTZlNzQzYSAvLyAiYm94IGNvdW50OiIKCWZyYW1lX2RpZyAwIC8vIG91ckJveENvdW50OiB1aW50NjQKCWNhbGxzdWIgKml0b2EKCWNvbmNhdAoJbG9nCgoqaWYyN19lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0MTkKCS8vIGFzc2VydChvdXJCb3hDb3VudCA9PT0gMCwgJ2NhbiBvbmx5IGJlIHNvbGQgaWYgbm8gdXNlci1kZWZpbmVkIG9yIHZlcmlmaWVkIHByb3BlcnRpZXMgcmVtYWluJykKCWZyYW1lX2RpZyAwIC8vIG91ckJveENvdW50OiB1aW50NjQKCWludGMgMCAvLyAwCgk9PQoKCS8vIGNhbiBvbmx5IGJlIHNvbGQgaWYgbm8gdXNlci1kZWZpbmVkIG9yIHZlcmlmaWVkIHByb3BlcnRpZXMgcmVtYWluCglhc3NlcnQKCgkvLyAqaWYyOF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQyMgoJLy8gbGVuKHRoaXMuc2FmZUdsb2JhbEJ5dGVHZXQoTkZEX0tFWV9DT01NSVNTSU9OMV9BR0VOVCkpICE9PSAwCglieXRlYyA1IC8vICJpLmNvbW1pc3Npb24xQWdlbnQuYSIKCWNhbGxzdWIgc2FmZUdsb2JhbEJ5dGVHZXQKCWxlbgoJaW50YyAwIC8vIDAKCSE9CglieiAqaWYyOF9lbmQKCgkvLyAqaWYyOF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0MjMKCS8vIGFzc2VydChzZWxsQW1vdW50ID49IE5GRF9NSU5fU0VMTEFNT1VOVF9XX0NPTU1JU1NJT05TLCAnbXVzdCBiZSBzb2xkIGZvciBhdCBsZWFzdCBNSU4gYW1vdW50JykKCWZyYW1lX2RpZyAtMSAvLyBzZWxsQW1vdW50OiB1aW50NjQKCWludGMgMTUgLy8gMTAwMDAwMAoJPj0KCgkvLyBtdXN0IGJlIHNvbGQgZm9yIGF0IGxlYXN0IE1JTiBhbW91bnQKCWFzc2VydAoKKmlmMjhfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDI1CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQyNwoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0lTU0VHTUVOVExPQ0tFRCkudmFsdWUgPSBORkRfTE9DS0VEX1ZBTF9UUlVFCglieXRlYyAyMSAvLyAiaS5zZWdtZW50TG9ja2VkIgoJYnl0ZWMgMTkgLy8gIjEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQzMgoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1NFTExfQU1PVU5UKS52YWx1ZSA9IGl0b2Ioc2VsbEFtb3VudCkKCWJ5dGVjIDYgLy8gImkuc2VsbGFtdCIKCWZyYW1lX2RpZyAtMSAvLyBzZWxsQW1vdW50OiB1aW50NjQKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CgoJLy8gKmlmMjlfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0NDIKCS8vIHJlc2VydmVkRm9yICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzICYmIHJhd0J5dGVzKHJlc2VydmVkRm9yKSAhPT0gdGhpcy5zYWZlR2xvYmFsQnl0ZUdldChORkRfS0VZX09XTkVSKQoJZnJhbWVfZGlnIC0yIC8vIHJlc2VydmVkRm9yOiBBZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9CglkdXAKCWJ6ICpza2lwX2FuZDEwCglmcmFtZV9kaWcgLTIgLy8gcmVzZXJ2ZWRGb3I6IEFkZHJlc3MKCWJ5dGVjIDEgLy8gImkub3duZXIuYSIKCWNhbGxzdWIgc2FmZUdsb2JhbEJ5dGVHZXQKCSE9CgkmJgoKKnNraXBfYW5kMTA6CglieiAqaWYyOV9lbHNlaWYxX2NvbmRpdGlvbgoKCS8vICppZjI5X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQ0MwoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1JFU0VSVkVEX09XTkVSKS52YWx1ZSA9IHJhd0J5dGVzKHJlc2VydmVkRm9yKQoJYnl0ZWMgOCAvLyAiaS5yZXNlcnZlZE93bmVyLmEiCglmcmFtZV9kaWcgLTIgLy8gcmVzZXJ2ZWRGb3I6IEFkZHJlc3MKCWFwcF9nbG9iYWxfcHV0CgliICppZjI5X2VuZAoKKmlmMjlfZWxzZWlmMV9jb25kaXRpb246CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0NDUKCS8vIHRoaXMuc2FmZUdsb2JhbEludEdldChORkRfS0VZX01JTlRJTkdfS0lDS09GRl9BTU9VTlQpID4gMCAmJgoJLy8gICAgICAgICAgICAgc2VsbEFtb3VudCA8PSB0aGlzLnNhZmVHbG9iYWxJbnRHZXQoTkZEX0tFWV9NSU5USU5HX0tJQ0tPRkZfQU1PVU5UKQoJYnl0ZWMgMTMgLy8gImkubWludGluZ0tpY2tvZmZBbW91bnQiCgljYWxsc3ViIHNhZmVHbG9iYWxJbnRHZXQKCWludGMgMCAvLyAwCgk+CglkdXAKCWJ6ICpza2lwX2FuZDExCglmcmFtZV9kaWcgLTEgLy8gc2VsbEFtb3VudDogdWludDY0CglieXRlYyAxMyAvLyAiaS5taW50aW5nS2lja29mZkFtb3VudCIKCWNhbGxzdWIgc2FmZUdsb2JhbEludEdldAoJPD0KCSYmCgoqc2tpcF9hbmQxMToKCWJ6ICppZjI5X2Vsc2UKCgkvLyAqaWYyOV9lbHNlaWYxX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQ0OAoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1JFU0VSVkVEX09XTkVSKS52YWx1ZSA9IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HX0tJQ0tPRkZfQ1JFQVRPUikudmFsdWUKCWJ5dGVjIDggLy8gImkucmVzZXJ2ZWRPd25lci5hIgoJYnl0ZWMgMTIgLy8gImkubWludGluZ0tpY2tvZmZDcmVhdG9yLmEiCglhcHBfZ2xvYmFsX2dldAoJYXBwX2dsb2JhbF9wdXQKCWIgKmlmMjlfZW5kCgoqaWYyOV9lbHNlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDUwCgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfUkVTRVJWRURfT1dORVIpLmRlbGV0ZSgpCglieXRlYyA4IC8vICJpLnJlc2VydmVkT3duZXIuYSIKCWFwcF9nbG9iYWxfZGVsCgoqaWYyOV9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0NTMKCS8vIHRoaXMubmZkX29mZmVyRm9yU2FsZS5sb2coewoJLy8gICAgICAgICAgICAgYXBwSWQ6IHRoaXMuYXBwLmlkLAoJLy8gICAgICAgICAgICAgbmFtZTogdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlLAoJLy8gICAgICAgICAgICAgc2VsbGVyOiBBZGRyZXNzLmZyb21CeXRlcyh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpLnZhbHVlKSwKCS8vICAgICAgICAgICAgIGFtb3VudDogc2VsbEFtb3VudCwKCS8vICAgICAgICAgICAgIHJlc2VydmVkRm9yOiByZXNlcnZlZEZvciwKCS8vICAgICAgICAgfSkKCXB1c2hieXRlcyAweGMyNGI1YWQ2IC8vIG5mZF9vZmZlckZvclNhbGUodWludDY0LHN0cmluZyxhZGRyZXNzLHVpbnQ2NCxhZGRyZXNzKQoJYnl0ZWMgMCAvLyAgaW5pdGlhbCBoZWFkCglieXRlYyAwIC8vICBpbml0aWFsIHRhaWwKCXB1c2hieXRlcyAweDAwNTIgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZWMgNCAvLyAiaS5uYW1lIgoJYXBwX2dsb2JhbF9nZXQKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZWMgMSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXQKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMSAvLyBzZWxsQW1vdW50OiB1aW50NjQKCWl0b2IKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMiAvLyByZXNlcnZlZEZvcjogQWRkcmVzcwoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCgljb25jYXQKCWxvZwoJcmV0c3ViCgovLyBjYW5jZWxTYWxlKCl2b2lkCiphYmlfcm91dGVfY2FuY2VsU2FsZToKCS8vIGV4ZWN1dGUgY2FuY2VsU2FsZSgpdm9pZAoJY2FsbHN1YiBjYW5jZWxTYWxlCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBjYW5jZWxTYWxlKCk6IHZvaWQKY2FuY2VsU2FsZToKCXByb3RvIDAgMAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQ2NQoJLy8gYXNzZXJ0KCF0aGlzLmlzRXhwaXJlZCgpLCAiY2FuJ3QgdXBkYXRlIGZpZWxkcyBpZiBORkQgZXhwaXJlZCIpCgljYWxsc3ViIGlzRXhwaXJlZAoJIQoKCS8vIGNhbid0IHVwZGF0ZSBmaWVsZHMgaWYgTkZEIGV4cGlyZWQKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQ2NgoJLy8gYXNzZXJ0KCF0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfTUlOVElORykuZXhpc3RzKQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJIQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDY3CgkvLyBhc3NlcnQodGhpcy5pc0ZvclNhbGUoKSwgJ211c3QgYmUgZm9yIHNhbGUnKQoJY2FsbHN1YiBpc0ZvclNhbGUKCgkvLyBtdXN0IGJlIGZvciBzYWxlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0NjgKCS8vIHRoaXMubXVzdEJlQ2FsbGVkQnlPd25lcigpCgljYWxsc3ViIG11c3RCZUNhbGxlZEJ5T3duZXIKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0NjkKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUxMX0FNT1VOVCkuZGVsZXRlKCkKCWJ5dGVjIDYgLy8gImkuc2VsbGFtdCIKCWFwcF9nbG9iYWxfZGVsCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDcwCgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfUkVTRVJWRURfT1dORVIpLmRlbGV0ZSgpCglieXRlYyA4IC8vICJpLnJlc2VydmVkT3duZXIuYSIKCWFwcF9nbG9iYWxfZGVsCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDcxCgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQ3MwoJLy8gdGhpcy5uZmRfc2FsZUNhbmNlbGxlZC5sb2coeyBhcHBJZDogdGhpcy5hcHAuaWQsIG5hbWU6IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9OQU1FKS52YWx1ZSB9KQoJYnl0ZWMgMzYgLy8gIG5mZF9zYWxlQ2FuY2VsbGVkKHVpbnQ2NCxzdHJpbmcpCglieXRlYyAwIC8vICBpbml0aWFsIGhlYWQKCWJ5dGVjIDAgLy8gIGluaXRpYWwgdGFpbAoJYnl0ZWMgNDEgLy8gIGluaXRpYWwgaGVhZCBvZmZzZXQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGVjIDQgLy8gImkubmFtZSIKCWFwcF9nbG9iYWxfZ2V0CglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJY29uY2F0Cglsb2cKCXJldHN1YgoKLy8gcG9zdE9mZmVyKHVpbnQ2NCxzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX3Bvc3RPZmZlcjoKCS8vIG5vdGU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBvZmZlcjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBwb3N0T2ZmZXIodWludDY0LHN0cmluZyl2b2lkCgljYWxsc3ViIHBvc3RPZmZlcgoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gcG9zdE9mZmVyKG9mZmVyOiB1aW50NjQsIG5vdGU6IHN0cmluZyk6IHZvaWQKcG9zdE9mZmVyOgoJcHJvdG8gMiAwCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDgwCgkvLyB0aGlzLm5mZF9wb3N0ZWRPZmZlci5sb2coewoJLy8gICAgICAgICAgICAgYXBwSWQ6IHRoaXMuYXBwLmlkLAoJLy8gICAgICAgICAgICAgbmFtZTogdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlLAoJLy8gICAgICAgICAgICAgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICAgICAgICBhbW91bnQ6IG9mZmVyLAoJLy8gICAgICAgICAgICAgbm90ZTogbm90ZSwKCS8vICAgICAgICAgfSkKCXB1c2hieXRlcyAweDUyNTMyYjcwIC8vIG5mZF9wb3N0ZWRPZmZlcih1aW50NjQsc3RyaW5nLGFkZHJlc3MsdWludDY0LHN0cmluZykKCWJ5dGVjIDAgLy8gIGluaXRpYWwgaGVhZAoJYnl0ZWMgMCAvLyAgaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDM0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGVjIDQgLy8gImkubmFtZSIKCWFwcF9nbG9iYWxfZ2V0CglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXR4biBTZW5kZXIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMSAvLyBvZmZlcjogdWludDY0CglpdG9iCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTIgLy8gbm90ZTogc3RyaW5nCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJY29uY2F0Cglsb2cKCXJldHN1YgoKLy8gbWludFBheW91dCh1aW50NjQsdWludDY0KSh1aW50NjQsYWRkcmVzcyx1aW50NjQsYWRkcmVzcyx1aW50NjQpCiphYmlfcm91dGVfbWludFBheW91dDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMTEgLy8gMHgxNTFmN2M3NQoKCS8vIHNlZ21lbnRQbGF0Zm9ybUNvc3RJbkFsZ286IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIG9uZVllYXJQcmljZTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBtaW50UGF5b3V0KHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCkKCWNhbGxzdWIgbWludFBheW91dAoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIG1pbnRQYXlvdXQob25lWWVhclByaWNlOiB1aW50NjQsIHNlZ21lbnRQbGF0Zm9ybUNvc3RJbkFsZ286IHVpbnQ2NCk6IFBheW91dEluZm8KbWludFBheW91dDoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXBuIDYKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0OTIKCS8vIGFzc2VydChnbG9iYWxzLmNhbGxlckFwcGxpY2F0aW9uSUQgPT09IEFwcElELmZyb21VaW50NjQodGhpcy5yZWdpc3RyeUFwcElkKSwgJ2NhbGxlciBtdXN0IGJlIE5GRCByZWdpc3RyeSEnKQoJZ2xvYmFsIENhbGxlckFwcGxpY2F0aW9uSUQKCWludGMgNCAvLyBUTVBMX3JlZ2lzdHJ5QXBwSWQKCT09CgoJLy8gY2FsbGVyIG11c3QgYmUgTkZEIHJlZ2lzdHJ5IQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDkzCgkvLyBhc3NlcnQodGhpcy5zYWZlR2xvYmFsQnl0ZUdldChORkRfS0VZX01JTlRJTkcpID09PSBORkRfTUlOVElOR19TVEFURV9QT1NUQVNBKQoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJY2FsbHN1YiBzYWZlR2xvYmFsQnl0ZUdldAoJYnl0ZWMgMzAgLy8gIjIiCgk9PQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDk1CgkvLyBvZmZlckFtdCA9IHRoaXMuc2FmZUdsb2JhbEludEdldChORkRfS0VZX1NFTExfQU1PVU5UKQoJYnl0ZWMgNiAvLyAiaS5zZWxsYW10IgoJY2FsbHN1YiBzYWZlR2xvYmFsSW50R2V0CglmcmFtZV9idXJ5IDAgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQ5OAoJLy8gZ3Jvc3NUb1RyZWFzdXJ5ID0gb2ZmZXJBbXQKCWZyYW1lX2RpZyAwIC8vIG9mZmVyQW10OiB1aW50NjQKCWZyYW1lX2J1cnkgMSAvLyBncm9zc1RvVHJlYXN1cnk6IHVpbnQ2NAoKCS8vICppZjMwX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTAzCgkvLyBsZW4odGhpcy5zYWZlR2xvYmFsQnl0ZUdldChORkRfS0VZX1NFR01FTlRfQ09NTUlTU0lPTl9BR0VOVCkpID4gMAoJYnl0ZWMgOSAvLyAiaS5zZWdtZW50QWdlbnQuYSIKCWNhbGxzdWIgc2FmZUdsb2JhbEJ5dGVHZXQKCWxlbgoJaW50YyAwIC8vIDAKCT4KCWJ6ICppZjMwX2Vsc2UKCgkvLyAqaWYzMF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1MDcKCS8vIGdyb3NzVG9UcmVhc3VyeSA9IHNlZ21lbnRQbGF0Zm9ybUNvc3RJbkFsZ28KCWZyYW1lX2RpZyAtMiAvLyBzZWdtZW50UGxhdGZvcm1Db3N0SW5BbGdvOiB1aW50NjQKCWZyYW1lX2J1cnkgMSAvLyBncm9zc1RvVHJlYXN1cnk6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjUwOQoJLy8gZXh0cmFEYXlzID0gKDM2NSAqIG9mZmVyQW10KSAvIG9uZVllYXJQcmljZQoJaW50YyA4IC8vIDM2NQoJZnJhbWVfZGlnIDAgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoJKgoJZnJhbWVfZGlnIC0xIC8vIG9uZVllYXJQcmljZTogdWludDY0CgkvCglmcmFtZV9idXJ5IDMgLy8gZXh0cmFEYXlzOiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1MTEKCS8vIGdyb3NzVG9UcmVhc3VyeSA9IChleHRyYURheXMgKiBzZWdtZW50UGxhdGZvcm1Db3N0SW5BbGdvKSAvIDM2NQoJZnJhbWVfZGlnIDMgLy8gZXh0cmFEYXlzOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBzZWdtZW50UGxhdGZvcm1Db3N0SW5BbGdvOiB1aW50NjQKCSoKCWludGMgOCAvLyAzNjUKCS8KCWZyYW1lX2J1cnkgMSAvLyBncm9zc1RvVHJlYXN1cnk6IHVpbnQ2NAoKCS8vICppZjMxX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTEyCgkvLyBncm9zc1RvVHJlYXN1cnkgPCBzZWdtZW50UGxhdGZvcm1Db3N0SW5BbGdvCglmcmFtZV9kaWcgMSAvLyBncm9zc1RvVHJlYXN1cnk6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIHNlZ21lbnRQbGF0Zm9ybUNvc3RJbkFsZ286IHVpbnQ2NAoJPAoJYnogKmlmMzFfZW5kCgoJLy8gKmlmMzFfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTEzCgkvLyBncm9zc1RvVHJlYXN1cnkgPSBzZWdtZW50UGxhdGZvcm1Db3N0SW5BbGdvCglmcmFtZV9kaWcgLTIgLy8gc2VnbWVudFBsYXRmb3JtQ29zdEluQWxnbzogdWludDY0CglmcmFtZV9idXJ5IDEgLy8gZ3Jvc3NUb1RyZWFzdXJ5OiB1aW50NjQKCippZjMxX2VuZDoKCS8vICppZjMyX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTE1CgkvLyBncm9zc1RvVHJlYXN1cnkgPj0gb2ZmZXJBbXQKCWZyYW1lX2RpZyAxIC8vIGdyb3NzVG9UcmVhc3VyeTogdWludDY0CglmcmFtZV9kaWcgMCAvLyBvZmZlckFtdDogdWludDY0Cgk+PQoJYnogKmlmMzJfZW5kCgoJLy8gKmlmMzJfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTE2CgkvLyBncm9zc1RvVHJlYXN1cnkgPSBvZmZlckFtdAoJZnJhbWVfZGlnIDAgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoJZnJhbWVfYnVyeSAxIC8vIGdyb3NzVG9UcmVhc3VyeTogdWludDY0CgoqaWYzMl9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1MTkKCS8vIHNlZ21lbnRDb21taXNzaW9uVG9QYXkgPSBvZmZlckFtdCAtIGdyb3NzVG9UcmVhc3VyeQoJZnJhbWVfZGlnIDAgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gZ3Jvc3NUb1RyZWFzdXJ5OiB1aW50NjQKCS0KCWZyYW1lX2J1cnkgMiAvLyBzZWdtZW50Q29tbWlzc2lvblRvUGF5OiB1aW50NjQKCWIgKmlmMzBfZW5kCgoqaWYzMF9lbHNlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTIyCgkvLyBzZWdtZW50Q29tbWlzc2lvblRvUGF5ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBzZWdtZW50Q29tbWlzc2lvblRvUGF5OiB1aW50NjQKCippZjMwX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjUyNgoJLy8gY29tbWlzc2lvblRvUGF5ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgNCAvLyBjb21taXNzaW9uVG9QYXk6IHVpbnQ2NAoKCS8vICppZjMzX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTI3CgkvLyB0aGlzLnNhZmVHbG9iYWxJbnRHZXQoTkZEX0tFWV9DT01NSVNTSU9OMSkgPT09IDAKCWJ5dGVjIDcgLy8gImkuY29tbWlzc2lvbjEiCgljYWxsc3ViIHNhZmVHbG9iYWxJbnRHZXQKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmMzNfZWxzZQoKCS8vICppZjMzX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjUyOQoJLy8gY29tbWlzc2lvblRvUGF5ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgNCAvLyBjb21taXNzaW9uVG9QYXk6IHVpbnQ2NAoJYiAqaWYzM19lbmQKCippZjMzX2Vsc2U6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1MzMKCS8vIGNvbW1pc3Npb25Ub1BheSA9IChncm9zc1RvVHJlYXN1cnkgKiB0aGlzLnNhZmVHbG9iYWxJbnRHZXQoTkZEX0tFWV9DT01NSVNTSU9OMSkpIC8gMTAwMAoJZnJhbWVfZGlnIDEgLy8gZ3Jvc3NUb1RyZWFzdXJ5OiB1aW50NjQKCWJ5dGVjIDcgLy8gImkuY29tbWlzc2lvbjEiCgljYWxsc3ViIHNhZmVHbG9iYWxJbnRHZXQKCSoKCWludGMgMTggLy8gMTAwMAoJLwoJZnJhbWVfYnVyeSA0IC8vIGNvbW1pc3Npb25Ub1BheTogdWludDY0CgoqaWYzM19lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1MzYKCS8vIGNvbW1pc3Npb25BZ2VudCA9IGdsb2JhbHMuemVyb0FkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJZnJhbWVfYnVyeSA1IC8vIGNvbW1pc3Npb25BZ2VudDogYWRkcmVzcwoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjUzNwoJLy8gc2VnbWVudFJvb3RPd25lciA9IGdsb2JhbHMuemVyb0FkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJZnJhbWVfYnVyeSA2IC8vIHNlZ21lbnRSb290T3duZXI6IGFkZHJlc3MKCgkvLyAqaWYzNF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjUzOQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04xX0FHRU5UKS5leGlzdHMKCXR4bmEgQXBwbGljYXRpb25zIDAKCWJ5dGVjIDUgLy8gImkuY29tbWlzc2lvbjFBZ2VudC5hIgoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJYnogKmlmMzRfZW5kCgoJLy8gKmlmMzRfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTQwCgkvLyBjb21taXNzaW9uQWdlbnQgPSBBZGRyZXNzLmZyb21CeXRlcyh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfQ09NTUlTU0lPTjFfQUdFTlQpLnZhbHVlKQoJYnl0ZWMgNSAvLyAiaS5jb21taXNzaW9uMUFnZW50LmEiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfYnVyeSA1IC8vIGNvbW1pc3Npb25BZ2VudDogYWRkcmVzcwoKKmlmMzRfZW5kOgoJLy8gKmlmMzVfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1NDIKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUdNRU5UX0NPTU1JU1NJT05fQUdFTlQpLmV4aXN0cwoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZWMgOSAvLyAiaS5zZWdtZW50QWdlbnQuYSIKCWFwcF9nbG9iYWxfZ2V0X2V4Cglzd2FwCglwb3AKCWJ6ICppZjM1X2VuZAoKCS8vICppZjM1X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjU0MwoJLy8gc2VnbWVudFJvb3RPd25lciA9IEFkZHJlc3MuZnJvbUJ5dGVzKHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUdNRU5UX0NPTU1JU1NJT05fQUdFTlQpLnZhbHVlKQoJYnl0ZWMgOSAvLyAiaS5zZWdtZW50QWdlbnQuYSIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9idXJ5IDYgLy8gc2VnbWVudFJvb3RPd25lcjogYWRkcmVzcwoKKmlmMzVfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTQ3CgkvLyB0aGlzLmRvUGF5b3V0cygKCS8vICAgICAgICAgICAgIGdyb3NzVG9UcmVhc3VyeSwKCS8vICAgICAgICAgICAgIEFkZHJlc3MuZnJvbUJ5dGVzKHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUxMRVIpLnZhbHVlKSwKCS8vICAgICAgICAgICAgIGNvbW1pc3Npb25Ub1BheSwKCS8vICAgICAgICAgICAgIHNlZ21lbnRDb21taXNzaW9uVG9QYXksCgkvLyAgICAgICAgICAgICBBZGRyZXNzLmZyb21CeXRlcyh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfU0VHTUVOVF9DT01NSVNTSU9OX0FHRU5UKS52YWx1ZSksCgkvLyAgICAgICAgICkKCWJ5dGVjIDkgLy8gImkuc2VnbWVudEFnZW50LmEiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDIgLy8gc2VnbWVudENvbW1pc3Npb25Ub1BheTogdWludDY0CglmcmFtZV9kaWcgNCAvLyBjb21taXNzaW9uVG9QYXk6IHVpbnQ2NAoJYnl0ZWMgMTAgLy8gImkuc2VsbGVyLmEiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDEgLy8gZ3Jvc3NUb1RyZWFzdXJ5OiB1aW50NjQKCWNhbGxzdWIgZG9QYXlvdXRzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTU2CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfU0VMTEVSKS52YWx1ZSA9IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9PV05FUikudmFsdWUKCWJ5dGVjIDEwIC8vICJpLnNlbGxlci5hIgoJYnl0ZWMgMSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTU4CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfSElHSEVTVF9TT0xEX0FNT1VOVCkudmFsdWUgPSBpdG9iKG9mZmVyQW10KQoJYnl0ZWMgMjYgLy8gImkuaGlnaGVzdFNvbGRBbXQiCglmcmFtZV9kaWcgMCAvLyBvZmZlckFtdDogdWludDY0CglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjU1OQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX01JTlRJTkcpLmRlbGV0ZSgpCglieXRlYyAzIC8vICJpLm1pbnRpbmciCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjU2MAoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1NFTExfQU1PVU5UKS5kZWxldGUoKQoJYnl0ZWMgNiAvLyAiaS5zZWxsYW10IgoJYXBwX2dsb2JhbF9kZWwKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1NjIKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUdNRU5UX0NPTU1JU1NJT05fQUdFTlQpLmRlbGV0ZSgpCglieXRlYyA5IC8vICJpLnNlZ21lbnRBZ2VudC5hIgoJYXBwX2dsb2JhbF9kZWwKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1NjQKCS8vIHJldHVybiB7CgkvLyAgICAgICAgICAgICBhbW91bnRUb1NlbGxlcjogZ3Jvc3NUb1RyZWFzdXJ5IC0gY29tbWlzc2lvblRvUGF5LAoJLy8gICAgICAgICAgICAgY29tbWlzc2lvbkFkZHJlc3M6IGNvbW1pc3Npb25BZ2VudCwKCS8vICAgICAgICAgICAgIGFtb3VudFRvQ29tbWlzc2lvbjogY29tbWlzc2lvblRvUGF5LAoJLy8gICAgICAgICAgICAgc2VnbWVudFJvb3RPd25lcjogc2VnbWVudFJvb3RPd25lciwKCS8vICAgICAgICAgICAgIGFtb3VudFRvU2VnbWVudFJvb3Q6IHNlZ21lbnRDb21taXNzaW9uVG9QYXksCgkvLyAgICAgICAgIH0KCWZyYW1lX2RpZyAxIC8vIGdyb3NzVG9UcmVhc3VyeTogdWludDY0CglmcmFtZV9kaWcgNCAvLyBjb21taXNzaW9uVG9QYXk6IHVpbnQ2NAoJLQoJaXRvYgoJZnJhbWVfZGlnIDUgLy8gY29tbWlzc2lvbkFnZW50OiBhZGRyZXNzCgljb25jYXQKCWZyYW1lX2RpZyA0IC8vIGNvbW1pc3Npb25Ub1BheTogdWludDY0CglpdG9iCgljb25jYXQKCWZyYW1lX2RpZyA2IC8vIHNlZ21lbnRSb290T3duZXI6IGFkZHJlc3MKCWNvbmNhdAoJZnJhbWVfZGlnIDIgLy8gc2VnbWVudENvbW1pc3Npb25Ub1BheTogdWludDY0CglpdG9iCgljb25jYXQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA2CglyZXRzdWIKCi8vIHB1cmNoYXNlKHBheSl2b2lkCiphYmlfcm91dGVfcHVyY2hhc2U6CgkvLyBwYXltZW50OiBwYXkKCXR4biBHcm91cEluZGV4CglpbnRjIDEgLy8gMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50YyAxIC8vICBwYXkKCT09CgoJLy8gYXJndW1lbnQgMCAocGF5bWVudCkgZm9yIHB1cmNoYXNlIG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGV4ZWN1dGUgcHVyY2hhc2UocGF5KXZvaWQKCWNhbGxzdWIgcHVyY2hhc2UKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHB1cmNoYXNlKHBheW1lbnQ6IFBheVR4bik6IHZvaWQKcHVyY2hhc2U6Cglwcm90byAxIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwbiA4CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTc0CgkvLyBhc3NlcnQoIXRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HKS5leGlzdHMpCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlYyAzIC8vICJpLm1pbnRpbmciCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCgkhCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1NzUKCS8vIGFzc2VydCghdGhpcy5pc0V4cGlyZWQoKSwgImNhbid0IGJlIGV4cGlyZWQiKQoJY2FsbHN1YiBpc0V4cGlyZWQKCSEKCgkvLyBjYW4ndCBiZSBleHBpcmVkCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1NzYKCS8vIGFzc2VydCh0aGlzLmlzRm9yU2FsZSgpLCAnbXVzdCBiZSBmb3Igc2FsZScpCgljYWxsc3ViIGlzRm9yU2FsZQoKCS8vIG11c3QgYmUgZm9yIHNhbGUKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjU3NwoJLy8gc2VsbEFtdCA9IHRoaXMuc2FmZUdsb2JhbEludEdldChORkRfS0VZX1NFTExfQU1PVU5UKQoJYnl0ZWMgNiAvLyAiaS5zZWxsYW10IgoJY2FsbHN1YiBzYWZlR2xvYmFsSW50R2V0CglmcmFtZV9idXJ5IDAgLy8gc2VsbEFtdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTc4CgkvLyByZXNlcnZlZE93bmVyID0gdGhpcy5zYWZlR2xvYmFsQnl0ZUdldChORkRfS0VZX1JFU0VSVkVEX09XTkVSKQoJYnl0ZWMgOCAvLyAiaS5yZXNlcnZlZE93bmVyLmEiCgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0CglmcmFtZV9idXJ5IDEgLy8gcmVzZXJ2ZWRPd25lcjogYnl0ZVtdCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTc5CgkvLyBvZmZlckFtdCA9IHBheW1lbnQuYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2J1cnkgMiAvLyBvZmZlckFtdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTgwCgkvLyBvcmlnT2ZmZXJhbXQgPSBvZmZlckFtdAoJZnJhbWVfZGlnIDIgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoJZnJhbWVfYnVyeSAzIC8vIG9yaWdPZmZlcmFtdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTgxCgkvLyBsb2coJ29yaWdfb2ZmZXI6JyArIG9mZmVyQW10LnRvU3RyaW5nKCkpCglwdXNoYnl0ZXMgMHg2ZjcyNjk2NzVmNmY2NjY2NjU3MjNhIC8vICJvcmlnX29mZmVyOiIKCWZyYW1lX2RpZyAyIC8vIG9mZmVyQW10OiB1aW50NjQKCWNhbGxzdWIgKml0b2EKCWNvbmNhdAoJbG9nCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTgzCgkvLyBhc3NlcnQocGF5bWVudC5zZW5kZXIgPT09IHRoaXMudHhuLnNlbmRlciwgJ3BheW1lbnQgc2VuZGVyIG11c3QgYmUgc2FtZSBhcyBwdXJjaGFzZSBjYWxsZXInKQoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCgl0eG4gU2VuZGVyCgk9PQoKCS8vIHBheW1lbnQgc2VuZGVyIG11c3QgYmUgc2FtZSBhcyBwdXJjaGFzZSBjYWxsZXIKCWFzc2VydAoKCS8vICppZjM2X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTg1CgkvLyBsZW4ocmVzZXJ2ZWRPd25lcikgPiAwCglmcmFtZV9kaWcgMSAvLyByZXNlcnZlZE93bmVyOiBieXRlW10KCWxlbgoJaW50YyAwIC8vIDAKCT4KCWJ6ICppZjM2X2VuZAoKCS8vICppZjM2X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjU4NgoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgICAgIHJlc2VydmVkT3duZXIgPT09IHJhd0J5dGVzKHBheW1lbnQuc2VuZGVyKSwKCS8vICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQgb3duZXIgc2V0LCBidXQgc2VuZGVyIGlzbid0IHRoZSByZXNlcnZlZCBhZGRyZXNzIiwKCS8vICAgICAgICAgICAgICkKCWZyYW1lX2RpZyAxIC8vIHJlc2VydmVkT3duZXI6IGJ5dGVbXQoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCgk9PQoKCS8vIFJlc2VydmVkIG93bmVyIHNldCwgYnV0IHNlbmRlciBpc24ndCB0aGUgcmVzZXJ2ZWQgYWRkcmVzcwoJYXNzZXJ0CgoqaWYzNl9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1OTQKCS8vIHJlc2VydmVkT3duZXIgPSByYXdCeXRlcyhwYXltZW50LnNlbmRlcikKCWZyYW1lX2RpZyAtMSAvLyBwYXltZW50OiBQYXlUeG4KCWd0eG5zIFNlbmRlcgoJZnJhbWVfYnVyeSAxIC8vIHJlc2VydmVkT3duZXI6IGJ5dGVbXQoKCS8vICppZjM3X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTk5CgkvLyB0aGlzLnNhZmVHbG9iYWxCeXRlR2V0KE5GRF9LRVlfTUlOVElOR19LSUNLT0ZGX0NSRUFUT1IpID09PSByYXdCeXRlcyhwYXltZW50LnNlbmRlcikKCWJ5dGVjIDEyIC8vICJpLm1pbnRpbmdLaWNrb2ZmQ3JlYXRvci5hIgoJY2FsbHN1YiBzYWZlR2xvYmFsQnl0ZUdldAoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCgk9PQoJYnogKmlmMzdfZW5kCgoJLy8gKmlmMzdfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjAwCgkvLyBvZmZlckFtdCArPSB0aGlzLnNhZmVHbG9iYWxJbnRHZXQoTkZEX0tFWV9NSU5USU5HX0tJQ0tPRkZfQU1PVU5UKQoJZnJhbWVfZGlnIDIgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoJYnl0ZWMgMTMgLy8gImkubWludGluZ0tpY2tvZmZBbW91bnQiCgljYWxsc3ViIHNhZmVHbG9iYWxJbnRHZXQKCSsKCWZyYW1lX2J1cnkgMiAvLyBvZmZlckFtdDogdWludDY0CgoqaWYzN19lbmQ6CgkvLyAqaWYzOF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjYwMwoJLy8gbGVuKHRoaXMuc2FmZUdsb2JhbEJ5dGVHZXQoTkZEX0tFWV9DT01NSVNTSU9OMV9BR0VOVCkpID4gMAoJYnl0ZWMgNSAvLyAiaS5jb21taXNzaW9uMUFnZW50LmEiCgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0CglsZW4KCWludGMgMCAvLyAwCgk+CglieiAqaWYzOF9lbmQKCgkvLyAqaWYzOF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2MDQKCS8vIGFzc2VydChvZmZlckFtdCA+IE5GRF9NSU5fU0VMTEFNT1VOVF9XX0NPTU1JU1NJT05TLCAnb2ZmZXIgbXVzdCBiZSBhdCBsZWFzdCBtaW4gYW1vdW50JykKCWZyYW1lX2RpZyAyIC8vIG9mZmVyQW10OiB1aW50NjQKCWludGMgMTUgLy8gMTAwMDAwMAoJPgoKCS8vIG9mZmVyIG11c3QgYmUgYXQgbGVhc3QgbWluIGFtb3VudAoJYXNzZXJ0CgoqaWYzOF9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2MDcKCS8vIGFzc2VydChvZmZlckFtdCA+PSBzZWxsQW10LCAnb2ZmZXIgbXVzdCBiZSBhdCBsZWFzdCBzZWxsIGFtb3VudCcpCglmcmFtZV9kaWcgMiAvLyBvZmZlckFtdDogdWludDY0CglmcmFtZV9kaWcgMCAvLyBzZWxsQW10OiB1aW50NjQKCT49CgoJLy8gb2ZmZXIgbXVzdCBiZSBhdCBsZWFzdCBzZWxsIGFtb3VudAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjEwCgkvLyByZWZ1bmRBbXQgPSBvZmZlckFtdCAtIHNlbGxBbXQKCWZyYW1lX2RpZyAyIC8vIG9mZmVyQW10OiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHNlbGxBbXQ6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSA0IC8vIHJlZnVuZEFtdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjExCgkvLyBvZmZlckFtdCAtPSByZWZ1bmRBbXQKCWZyYW1lX2RpZyAyIC8vIG9mZmVyQW10OiB1aW50NjQKCWZyYW1lX2RpZyA0IC8vIHJlZnVuZEFtdDogdWludDY0CgktCglmcmFtZV9idXJ5IDIgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjYxNAoJLy8gdmVyaWZ5UGF5VHhuKHBheW1lbnQsIHsgYW1vdW50OiBvcmlnT2ZmZXJhbXQsIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzIH0pCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAzIC8vIG9yaWdPZmZlcmFtdDogdWludDY0Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoicGF5bWVudCIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiJvcmlnT2ZmZXJhbXQifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJwYXltZW50IiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2MTcKCS8vIGNvbW1pc3Npb25Ub1BheSA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDUgLy8gY29tbWlzc2lvblRvUGF5OiB1aW50NjQKCgkvLyAqaWYzOV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjYxOAoJLy8gdGhpcy5zYWZlR2xvYmFsSW50R2V0KE5GRF9LRVlfQ09NTUlTU0lPTjEpID09PSAwCglieXRlYyA3IC8vICJpLmNvbW1pc3Npb24xIgoJY2FsbHN1YiBzYWZlR2xvYmFsSW50R2V0CglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppZjM5X2Vsc2UKCgkvLyAqaWYzOV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2MjAKCS8vIGNvbW1pc3Npb25Ub1BheSA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDUgLy8gY29tbWlzc2lvblRvUGF5OiB1aW50NjQKCWIgKmlmMzlfZW5kCgoqaWYzOV9lbHNlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjI0CgkvLyBjb21taXNzaW9uVG9QYXkgPSAob2ZmZXJBbXQgKiB0aGlzLnNhZmVHbG9iYWxJbnRHZXQoTkZEX0tFWV9DT01NSVNTSU9OMSkpIC8gMTAwMAoJZnJhbWVfZGlnIDIgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoJYnl0ZWMgNyAvLyAiaS5jb21taXNzaW9uMSIKCWNhbGxzdWIgc2FmZUdsb2JhbEludEdldAoJKgoJaW50YyAxOCAvLyAxMDAwCgkvCglmcmFtZV9idXJ5IDUgLy8gY29tbWlzc2lvblRvUGF5OiB1aW50NjQKCippZjM5X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjYyNwoJLy8gY29udkZlZUFkZHIgPSBnbG9iYWxzLnplcm9BZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCWZyYW1lX2J1cnkgNiAvLyBjb252RmVlQWRkcjogYWRkcmVzcwoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjYyOAoJLy8gY29udkZlZSA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDcgLy8gY29udkZlZTogdWludDY0CgoJLy8gKmlmNDBfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2MjkKCS8vIHRoaXMudHhuLmdyb3VwSW5kZXggPj0gMgoJdHhuIEdyb3VwSW5kZXgKCWludGMgMiAvLyAyCgk+PQoJYnogKmlmNDBfZW5kCgoJLy8gKmlmNDBfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjMwCgkvLyBjb252RmVlVHhuID0gdGhpcy50eG5Hcm91cFt0aGlzLnR4bi5ncm91cEluZGV4IC0gMl0KCXR4biBHcm91cEluZGV4CglpbnRjIDIgLy8gMgoJLQoJZnJhbWVfYnVyeSA4IC8vIGNvbnZGZWVUeG46IHR4bgoKCS8vICppZjQxX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjMyCgkvLyBjb252RmVlVHhuLnR5cGVFbnVtID09PSBUcmFuc2FjdGlvblR5cGUuUGF5bWVudCAmJgoJLy8gICAgICAgICAgICAgICAgIGNvbnZGZWVUeG4uc2VuZGVyID09PSB0aGlzLnR4bi5zZW5kZXIgJiYKCS8vICAgICAgICAgICAgICAgICBjb252RmVlVHhuLm5vdGUgPT09ICdjb252LiBmZWUnCglmcmFtZV9kaWcgOCAvLyBjb252RmVlVHhuOiB0eG4KCWd0eG5zIFR5cGVFbnVtCglpbnRjIDEgLy8gIHBheQoJPT0KCWR1cAoJYnogKnNraXBfYW5kMTIKCWZyYW1lX2RpZyA4IC8vIGNvbnZGZWVUeG46IHR4bgoJZ3R4bnMgU2VuZGVyCgl0eG4gU2VuZGVyCgk9PQoJJiYKCipza2lwX2FuZDEyOgoJZHVwCglieiAqc2tpcF9hbmQxMwoJZnJhbWVfZGlnIDggLy8gY29udkZlZVR4bjogdHhuCglndHhucyBOb3RlCglwdXNoYnl0ZXMgMHg2MzZmNmU3NjJlMjA2NjY1NjUgLy8gImNvbnYuIGZlZSIKCT09CgkmJgoKKnNraXBfYW5kMTM6CglieiAqaWY0MV9lbmQKCgkvLyAqaWY0MV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2MzYKCS8vIGNvbnZGZWVBZGRyID0gY29udkZlZVR4bi5yZWNlaXZlcgoJZnJhbWVfZGlnIDggLy8gY29udkZlZVR4bjogdHhuCglndHhucyBSZWNlaXZlcgoJZnJhbWVfYnVyeSA2IC8vIGNvbnZGZWVBZGRyOiBhZGRyZXNzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjM3CgkvLyBjb252RmVlID0gY29udkZlZVR4bi5hbW91bnQKCWZyYW1lX2RpZyA4IC8vIGNvbnZGZWVUeG46IHR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9idXJ5IDcgLy8gY29udkZlZTogdWludDY0CgoqaWY0MV9lbmQ6CgoqaWY0MF9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NDEKCS8vIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBORkRSZWdpc3RyeS5wcm90b3R5cGUub3duZXJzaGlwQ2hhbmdlZD4oewoJLy8gICAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnJlZ2lzdHJ5QXBwSWQpLAoJLy8gICAgICAgICAgICAgbWV0aG9kQXJnczogWwoJLy8gICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9OQU1FKS52YWx1ZSwKCS8vICAgICAgICAgICAgICAgICB0aGlzLmFwcC5pZCwKCS8vICAgICAgICAgICAgICAgICBBZGRyZXNzLmZyb21CeXRlcyh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpLnZhbHVlKSwKCS8vICAgICAgICAgICAgICAgICBBZGRyZXNzLmZyb21CeXRlcyhyZXNlcnZlZE93bmVyKSwKCS8vICAgICAgICAgICAgIF0sCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDcgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCXB1c2hieXRlcyAweGYyMmM1N2YyIC8vIG1ldGhvZCAib3duZXJzaGlwQ2hhbmdlZChzdHJpbmcsdWludDY0LGFkZHJlc3MsYWRkcmVzcyl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NDIKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5yZWdpc3RyeUFwcElkKQoJaW50YyA0IC8vIFRNUExfcmVnaXN0cnlBcHBJZAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjQzCgkvLyBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlLAoJLy8gICAgICAgICAgICAgICAgIHRoaXMuYXBwLmlkLAoJLy8gICAgICAgICAgICAgICAgIEFkZHJlc3MuZnJvbUJ5dGVzKHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9PV05FUikudmFsdWUpLAoJLy8gICAgICAgICAgICAgICAgIEFkZHJlc3MuZnJvbUJ5dGVzKHJlc2VydmVkT3duZXIpLAoJLy8gICAgICAgICAgICAgXQoJYnl0ZWMgNCAvLyAiaS5uYW1lIgoJYXBwX2dsb2JhbF9nZXQKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWJ5dGVjIDEgLy8gImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDEgLy8gcmVzZXJ2ZWRPd25lcjogYnl0ZVtdCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NTEKCS8vIHRoaXMubmZkX3B1cmNoYXNlZC5sb2coewoJLy8gICAgICAgICAgICAgYXBwSWQ6IHRoaXMuYXBwLmlkLAoJLy8gICAgICAgICAgICAgbmFtZTogdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlLAoJLy8gICAgICAgICAgICAgc2VsbGVyOiBBZGRyZXNzLmZyb21CeXRlcyh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpLnZhbHVlKSwKCS8vICAgICAgICAgICAgIGJ1eWVyOiBBZGRyZXNzLmZyb21CeXRlcyhyZXNlcnZlZE93bmVyKSwKCS8vICAgICAgICAgICAgIHNlbGxBbW91bnQ6IHNlbGxBbXQsCgkvLyAgICAgICAgICAgICBvZmZlckFtb3VudDogb2ZmZXJBbXQsCgkvLyAgICAgICAgICAgICBvdmVycGF5bWVudFJlZnVuZDogcmVmdW5kQW10LAoJLy8gICAgICAgICAgICAgY29udkZlZUFkZHI6IGNvbnZGZWVBZGRyLAoJLy8gICAgICAgICAgICAgY29udkZlZUFtb3VudDogY29udkZlZSwKCS8vICAgICAgICAgfSkKCXB1c2hieXRlcyAweDc4ZGM4OWUzIC8vIG5mZF9wdXJjaGFzZWQodWludDY0LHN0cmluZyxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsYWRkcmVzcyx1aW50NjQpCglieXRlYyAwIC8vICBpbml0aWFsIGhlYWQKCWJ5dGVjIDAgLy8gIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDA4YSAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0Cgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlYyA0IC8vICJpLm5hbWUiCglhcHBfZ2xvYmFsX2dldAoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlYyAxIC8vICJpLm93bmVyLmEiCglhcHBfZ2xvYmFsX2dldAoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIDEgLy8gcmVzZXJ2ZWRPd25lcjogYnl0ZVtdCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgMCAvLyBzZWxsQW10OiB1aW50NjQKCWl0b2IKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAyIC8vIG9mZmVyQW10OiB1aW50NjQKCWl0b2IKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyA0IC8vIHJlZnVuZEFtdDogdWludDY0CglpdG9iCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgNiAvLyBjb252RmVlQWRkcjogYWRkcmVzcwoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIDcgLy8gY29udkZlZTogdWludDY0CglpdG9iCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWNvbmNhdAoJbG9nCgoJLy8gKmlmNDJfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NjQKCS8vIHJlZnVuZEFtdCA+IDAKCWZyYW1lX2RpZyA0IC8vIHJlZnVuZEFtdDogdWludDY0CglpbnRjIDAgLy8gMAoJPgoJYnogKmlmNDJfZW5kCgoJLy8gKmlmNDJfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjY1CgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICAgICAgICAgICAgYW1vdW50OiByZWZ1bmRBbXQsCgkvLyAgICAgICAgICAgICAgICAgcmVjZWl2ZXI6IHBheW1lbnQuc2VuZGVyLAoJLy8gICAgICAgICAgICAgICAgIG5vdGU6ICdvdmVycGF5bWVudFJlZnVuZCcsCgkvLyAgICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxIC8vICBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NjYKCS8vIGFtb3VudDogcmVmdW5kQW10CglmcmFtZV9kaWcgNCAvLyByZWZ1bmRBbXQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NjcKCS8vIHJlY2VpdmVyOiBwYXltZW50LnNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjY4CgkvLyBub3RlOiAnb3ZlcnBheW1lbnRSZWZ1bmQnCglwdXNoYnl0ZXMgMHg2Zjc2NjU3MjcwNjE3OTZkNjU2ZTc0NTI2NTY2NzU2ZTY0IC8vICJvdmVycGF5bWVudFJlZnVuZCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCippZjQyX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjY3MQoJLy8gdGhpcy5kb1BheW91dHMoCgkvLyAgICAgICAgICAgICBvZmZlckFtdCwKCS8vICAgICAgICAgICAgIEFkZHJlc3MuZnJvbUJ5dGVzKHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUxMRVIpLnZhbHVlKSwKCS8vICAgICAgICAgICAgIGNvbW1pc3Npb25Ub1BheSwKCS8vICAgICAgICAgICAgIDAsCgkvLyAgICAgICAgICAgICBnbG9iYWxzLnplcm9BZGRyZXNzLAoJLy8gICAgICAgICApCglnbG9iYWwgWmVyb0FkZHJlc3MKCWludGMgMCAvLyAwCglmcmFtZV9kaWcgNSAvLyBjb21taXNzaW9uVG9QYXk6IHVpbnQ2NAoJYnl0ZWMgMTAgLy8gImkuc2VsbGVyLmEiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDIgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoJY2FsbHN1YiBkb1BheW91dHMKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NzkKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyAxNCAvLyAgI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50YyAxMyAvLyAgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vICppZjQzX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Njg0CgkvLyBsZW4odGhpcy5zYWZlR2xvYmFsQnl0ZUdldChORkRfS0VZX01JTlRJTkdfS0lDS09GRl9DUkVBVE9SKSkgIT09IDAKCWJ5dGVjIDEyIC8vICJpLm1pbnRpbmdLaWNrb2ZmQ3JlYXRvci5hIgoJY2FsbHN1YiBzYWZlR2xvYmFsQnl0ZUdldAoJbGVuCglpbnRjIDAgLy8gMAoJIT0KCWJ6ICppZjQzX2VuZAoKCS8vICppZjQzX2NvbnNlcXVlbnQKCS8vICppZjQ0X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Njg2CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfTUlOVElOR19LSUNLT0ZGX0NSRUFUT1IpLnZhbHVlICE9PSByYXdCeXRlcyhwYXltZW50LnNlbmRlcikgJiYKCS8vICAgICAgICAgICAgICAgICBsZW4odGhpcy5zYWZlR2xvYmFsQnl0ZUdldChORkRfS0VZX01JTlRJTkcpKSA9PT0gMAoJYnl0ZWMgMTIgLy8gImkubWludGluZ0tpY2tvZmZDcmVhdG9yLmEiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCgkhPQoJZHVwCglieiAqc2tpcF9hbmQxNAoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJY2FsbHN1YiBzYWZlR2xvYmFsQnl0ZUdldAoJbGVuCglpbnRjIDAgLy8gMAoJPT0KCSYmCgoqc2tpcF9hbmQxNDoKCWJ6ICppZjQ0X2VuZAoKCS8vICppZjQ0X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjY4OQoJLy8gc2VuZFBheW1lbnQoewoJLy8gICAgICAgICAgICAgICAgICAgICBhbW91bnQ6IHRoaXMuc2FmZUdsb2JhbEludEdldChORkRfS0VZX01JTlRJTkdfS0lDS09GRl9BTU9VTlQpLAoJLy8gICAgICAgICAgICAgICAgICAgICByZWNlaXZlcjogQWRkcmVzcy5mcm9tQnl0ZXModGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX01JTlRJTkdfS0lDS09GRl9DUkVBVE9SKS52YWx1ZSksCgkvLyAgICAgICAgICAgICAgICAgICAgIG5vdGU6ICdlc2Nyb3dSZWZ1bmQnLAoJLy8gICAgICAgICAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDEgLy8gIHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjY5MAoJLy8gYW1vdW50OiB0aGlzLnNhZmVHbG9iYWxJbnRHZXQoTkZEX0tFWV9NSU5USU5HX0tJQ0tPRkZfQU1PVU5UKQoJYnl0ZWMgMTMgLy8gImkubWludGluZ0tpY2tvZmZBbW91bnQiCgljYWxsc3ViIHNhZmVHbG9iYWxJbnRHZXQKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjkxCgkvLyByZWNlaXZlcjogQWRkcmVzcy5mcm9tQnl0ZXModGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX01JTlRJTkdfS0lDS09GRl9DUkVBVE9SKS52YWx1ZSkKCWJ5dGVjIDEyIC8vICJpLm1pbnRpbmdLaWNrb2ZmQ3JlYXRvci5hIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2OTIKCS8vIG5vdGU6ICdlc2Nyb3dSZWZ1bmQnCglwdXNoYnl0ZXMgMHg2NTczNjM3MjZmNzc1MjY1NjY3NTZlNjQgLy8gImVzY3Jvd1JlZnVuZCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCippZjQ0X2VuZDoKCippZjQzX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjY5OAoJLy8gdGhpcy5jbGF3QXNhRnJvbVRvKEFkZHJlc3MuZnJvbUJ5dGVzKHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9PV05FUikudmFsdWUpLCB0aGlzLmFwcC5hZGRyZXNzKQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWJ5dGVjIDEgLy8gImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0CgljYWxsc3ViIGNsYXdBc2FGcm9tVG8KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3MTEKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9PV05FUikudmFsdWUgPSByZXNlcnZlZE93bmVyCglieXRlYyAxIC8vICJpLm93bmVyLmEiCglmcmFtZV9kaWcgMSAvLyByZXNlcnZlZE93bmVyOiBieXRlW10KCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NzEyCgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfU0VMTEVSKS52YWx1ZSA9IHJlc2VydmVkT3duZXIKCWJ5dGVjIDEwIC8vICJpLnNlbGxlci5hIgoJZnJhbWVfZGlnIDEgLy8gcmVzZXJ2ZWRPd25lcjogYnl0ZVtdCglhcHBfZ2xvYmFsX3B1dAoKCS8vICppZjQ1X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NzEzCgkvLyBvZmZlckFtdCA+IHRoaXMuc2FmZUdsb2JhbEludEdldChORkRfS0VZX0hJR0hFU1RfU09MRF9BTU9VTlQpCglmcmFtZV9kaWcgMiAvLyBvZmZlckFtdDogdWludDY0CglieXRlYyAyNiAvLyAiaS5oaWdoZXN0U29sZEFtdCIKCWNhbGxzdWIgc2FmZUdsb2JhbEludEdldAoJPgoJYnogKmlmNDVfZW5kCgoJLy8gKmlmNDVfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NzE0CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfSElHSEVTVF9TT0xEX0FNT1VOVCkudmFsdWUgPSBpdG9iKG9mZmVyQW10KQoJYnl0ZWMgMjYgLy8gImkuaGlnaGVzdFNvbGRBbXQiCglmcmFtZV9kaWcgMiAvLyBvZmZlckFtdDogdWludDY0CglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKKmlmNDVfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NzE2CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjcxNwoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1RJTUVQVVJDSEFTRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDM0IC8vICJpLnRpbWVQdXJjaGFzZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjcxOAoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX01JTlRJTkcpLmRlbGV0ZSgpCglieXRlYyAzIC8vICJpLm1pbnRpbmciCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjcxOQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1JFU0VSVkVEX09XTkVSKS5kZWxldGUoKQoJYnl0ZWMgOCAvLyAiaS5yZXNlcnZlZE93bmVyLmEiCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjcyMAoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1NFTExfQU1PVU5UKS5kZWxldGUoKQoJYnl0ZWMgNiAvLyAiaS5zZWxsYW10IgoJYXBwX2dsb2JhbF9kZWwKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3MjEKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HX0tJQ0tPRkZfQ1JFQVRPUikuZGVsZXRlKCkKCWJ5dGVjIDEyIC8vICJpLm1pbnRpbmdLaWNrb2ZmQ3JlYXRvci5hIgoJYXBwX2dsb2JhbF9kZWwKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3MjIKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HX0tJQ0tPRkZfQU1PVU5UKS5kZWxldGUoKQoJYnl0ZWMgMTMgLy8gImkubWludGluZ0tpY2tvZmZBbW91bnQiCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjcyMwoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1NFR01FTlRfQ09NTUlTU0lPTl9BR0VOVCkuZGVsZXRlKCkKCWJ5dGVjIDkgLy8gImkuc2VnbWVudEFnZW50LmEiCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjcyNQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0lTVkFVTFRPUFRJTkxPQ0tFRCkudmFsdWUgPSBORkRfTE9DS0VEX1ZBTF9GQUxTRQoJYnl0ZWMgMjAgLy8gImkudmF1bHRPcHRJbkxvY2tlZCIKCWJ5dGVjIDI0IC8vICIwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3MjYKCS8vIGxvZyhpdG9iKG9mZmVyQW10KSkKCWZyYW1lX2RpZyAyIC8vIG9mZmVyQW10OiB1aW50NjQKCWl0b2IKCWxvZwoJcmV0c3ViCgovLyBpc0FkZHJlc3NJbkZpZWxkKHN0cmluZyxhZGRyZXNzKWJvb2wKKmFiaV9yb3V0ZV9pc0FkZHJlc3NJbkZpZWxkOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAxMSAvLyAweDE1MWY3Yzc1CgoJLy8gYWRkcmVzczogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludGMgMyAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhZGRyZXNzKSBmb3IgaXNBZGRyZXNzSW5GaWVsZCBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZmllbGROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBpc0FkZHJlc3NJbkZpZWxkKHN0cmluZyxhZGRyZXNzKWJvb2wKCWNhbGxzdWIgaXNBZGRyZXNzSW5GaWVsZAoJYnl0ZWMgMjkgLy8gMHgwMAoJaW50YyAwIC8vIDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gaXNBZGRyZXNzSW5GaWVsZChmaWVsZE5hbWU6IHN0cmluZywgYWRkcmVzczogQWRkcmVzcyk6IGJvb2xlYW4KaXNBZGRyZXNzSW5GaWVsZDoKCXByb3RvIDIgMQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjczMQoJLy8gYXNzZXJ0KGFkZHJlc3MgIT09IGdsb2JhbHMuemVyb0FkZHJlc3MpCglmcmFtZV9kaWcgLTIgLy8gYWRkcmVzczogQWRkcmVzcwoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoJYXNzZXJ0CgoJLy8gKmlmNDZfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3MzIKCS8vICF0aGlzLmJveGVzKGZpZWxkTmFtZSkuZXhpc3RzCglmcmFtZV9kaWcgLTEgLy8gZmllbGROYW1lOiBzdHJpbmcKCWJveF9sZW4KCXN3YXAKCXBvcAoJIQoJYnogKmlmNDZfZW5kCgoJLy8gKmlmNDZfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NzMzCgkvLyByZXR1cm4gZmFsc2UKCWludGMgMCAvLyAwCglyZXRzdWIKCippZjQ2X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjczNQoJLy8gcmV0dXJuIHRoaXMuZmluZEFkZHJJbkJ5dGVzKHRoaXMuYm94ZXMoZmllbGROYW1lKS52YWx1ZSwgYWRkcmVzcykKCWZyYW1lX2RpZyAtMiAvLyBhZGRyZXNzOiBBZGRyZXNzCglmcmFtZV9kaWcgLTEgLy8gZmllbGROYW1lOiBzdHJpbmcKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94ZXMoZmllbGROYW1lKS52YWx1ZQoJYXNzZXJ0CgljYWxsc3ViIGZpbmRBZGRySW5CeXRlcwoJcmV0c3ViCgovLyBkb1BheW91dHMoZ3Jvc3NUb1NlbGxlcjogdWludDY0LCBzZWxsZXJBZGRyZXNzOiBBZGRyZXNzLCBjb21taXNzaW9uVG9QYXk6IHVpbnQ2NCwgc2VnbWVudENvbW1pc3Npb25Ub1BheTogdWludDY0LCBzZWdtZW50Q29tbWlzc2lvbkFkZHJlc3M6IEFkZHJlc3MpOiB2b2lkCmRvUGF5b3V0czoKCXByb3RvIDUgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODA2CgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICAgICAgICBhbW91bnQ6IGdyb3NzVG9TZWxsZXIgLSBjb21taXNzaW9uVG9QYXksCgkvLyAgICAgICAgICAgICByZWNlaXZlcjogc2VsbGVyQWRkcmVzcywKCS8vICAgICAgICAgICAgIG5vdGU6ICdzZWxsZXInLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxIC8vICBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4MDcKCS8vIGFtb3VudDogZ3Jvc3NUb1NlbGxlciAtIGNvbW1pc3Npb25Ub1BheQoJZnJhbWVfZGlnIC0xIC8vIGdyb3NzVG9TZWxsZXI6IHVpbnQ2NAoJZnJhbWVfZGlnIC0zIC8vIGNvbW1pc3Npb25Ub1BheTogdWludDY0CgktCglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgwOAoJLy8gcmVjZWl2ZXI6IHNlbGxlckFkZHJlc3MKCWZyYW1lX2RpZyAtMiAvLyBzZWxsZXJBZGRyZXNzOiBBZGRyZXNzCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODA5CgkvLyBub3RlOiAnc2VsbGVyJwoJcHVzaGJ5dGVzIDB4NzM2NTZjNmM2NTcyIC8vICJzZWxsZXIiCglpdHhuX2ZpZWxkIE5vdGUKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODExCgkvLyBjb21taXNzaW9uQWRkcmVzcyA9IGdsb2JhbHMuemVyb0FkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJZnJhbWVfYnVyeSAwIC8vIGNvbW1pc3Npb25BZGRyZXNzOiBhZGRyZXNzCgoJLy8gKmlmNDdfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4MTQKCS8vIGxlbih0aGlzLnNhZmVHbG9iYWxCeXRlR2V0KE5GRF9LRVlfQ09NTUlTU0lPTjFfQUdFTlQpKSAhPT0gMAoJYnl0ZWMgNSAvLyAiaS5jb21taXNzaW9uMUFnZW50LmEiCgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0CglsZW4KCWludGMgMCAvLyAwCgkhPQoJYnogKmlmNDdfZW5kCgoJLy8gKmlmNDdfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODE1CgkvLyBjb21taXNzaW9uQWRkcmVzcyA9IEFkZHJlc3MuZnJvbUJ5dGVzKHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9DT01NSVNTSU9OMV9BR0VOVCkudmFsdWUpCglieXRlYyA1IC8vICJpLmNvbW1pc3Npb24xQWdlbnQuYSIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9idXJ5IDAgLy8gY29tbWlzc2lvbkFkZHJlc3M6IGFkZHJlc3MKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4MTYKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgICAgICAgICAgICBhbW91bnQ6IGNvbW1pc3Npb25Ub1BheSwKCS8vICAgICAgICAgICAgICAgICByZWNlaXZlcjogY29tbWlzc2lvbkFkZHJlc3MsCgkvLyAgICAgICAgICAgICAgICAgbm90ZTogJ2NvbW1pc3Npb24nLAoJLy8gICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMSAvLyAgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODE3CgkvLyBhbW91bnQ6IGNvbW1pc3Npb25Ub1BheQoJZnJhbWVfZGlnIC0zIC8vIGNvbW1pc3Npb25Ub1BheTogdWludDY0CglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgxOAoJLy8gcmVjZWl2ZXI6IGNvbW1pc3Npb25BZGRyZXNzCglmcmFtZV9kaWcgMCAvLyBjb21taXNzaW9uQWRkcmVzczogYWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgxOQoJLy8gbm90ZTogJ2NvbW1pc3Npb24nCglwdXNoYnl0ZXMgMHg2MzZmNmQ2ZDY5NzM3MzY5NmY2ZSAvLyAiY29tbWlzc2lvbiIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyAqaWY0OF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgyNQoJLy8gbGVuKHRoaXMuc2FmZUdsb2JhbEJ5dGVHZXQoTkZEX0tFWV9DT01NSVNTSU9OMl9BR0VOVCkpID09PSAwCglieXRlYyAxNiAvLyAiaS5jb21taXNzaW9uMkFnZW50LmEiCgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0CglsZW4KCWludGMgMCAvLyAwCgk9PQoJYnogKmlmNDhfZWxzZQoKCS8vICppZjQ4X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgyNgoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04xX0FHRU5UKS5kZWxldGUoKQoJYnl0ZWMgNSAvLyAiaS5jb21taXNzaW9uMUFnZW50LmEiCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgyNwoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04xKS5kZWxldGUoKQoJYnl0ZWMgNyAvLyAiaS5jb21taXNzaW9uMSIKCWFwcF9nbG9iYWxfZGVsCgliICppZjQ4X2VuZAoKKmlmNDhfZWxzZToKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgyOQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04xX0FHRU5UKS52YWx1ZSA9IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9DT01NSVNTSU9OMl9BR0VOVCkudmFsdWUKCWJ5dGVjIDUgLy8gImkuY29tbWlzc2lvbjFBZ2VudC5hIgoJYnl0ZWMgMTYgLy8gImkuY29tbWlzc2lvbjJBZ2VudC5hIgoJYXBwX2dsb2JhbF9nZXQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODMwCgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfQ09NTUlTU0lPTjEpLnZhbHVlID0gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04yKS52YWx1ZQoJYnl0ZWMgNyAvLyAiaS5jb21taXNzaW9uMSIKCWJ5dGVjIDIyIC8vICJpLmNvbW1pc3Npb24yIgoJYXBwX2dsb2JhbF9nZXQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODMxCgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfQ09NTUlTU0lPTjJfQUdFTlQpLmRlbGV0ZSgpCglieXRlYyAxNiAvLyAiaS5jb21taXNzaW9uMkFnZW50LmEiCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgzMgoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04yKS5kZWxldGUoKQoJYnl0ZWMgMjIgLy8gImkuY29tbWlzc2lvbjIiCglhcHBfZ2xvYmFsX2RlbAoKKmlmNDhfZW5kOgoKKmlmNDdfZW5kOgoJLy8gKmlmNDlfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4MzgKCS8vIHNlZ21lbnRDb21taXNzaW9uVG9QYXkgIT09IDAKCWZyYW1lX2RpZyAtNCAvLyBzZWdtZW50Q29tbWlzc2lvblRvUGF5OiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoJYnogKmlmNDlfZW5kCgoJLy8gKmlmNDlfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODM5CgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICAgICAgICAgICAgYW1vdW50OiBzZWdtZW50Q29tbWlzc2lvblRvUGF5LAoJLy8gICAgICAgICAgICAgICAgIHJlY2VpdmVyOiBzZWdtZW50Q29tbWlzc2lvbkFkZHJlc3MsCgkvLyAgICAgICAgICAgICAgICAgbm90ZTogJ3NlZ21lbnQnLAoJLy8gICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMSAvLyAgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODQwCgkvLyBhbW91bnQ6IHNlZ21lbnRDb21taXNzaW9uVG9QYXkKCWZyYW1lX2RpZyAtNCAvLyBzZWdtZW50Q29tbWlzc2lvblRvUGF5OiB1aW50NjQKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODQxCgkvLyByZWNlaXZlcjogc2VnbWVudENvbW1pc3Npb25BZGRyZXNzCglmcmFtZV9kaWcgLTUgLy8gc2VnbWVudENvbW1pc3Npb25BZGRyZXNzOiBBZGRyZXNzCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODQyCgkvLyBub3RlOiAnc2VnbWVudCcKCXB1c2hieXRlcyAweDczNjU2NzZkNjU2ZTc0IC8vICJzZWdtZW50IgoJaXR4bl9maWVsZCBOb3RlCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKKmlmNDlfZW5kOgoJcmV0c3ViCgovLyBnZXRSZW5ld1ByaWNlKCl1aW50NjQKKmFiaV9yb3V0ZV9nZXRSZW5ld1ByaWNlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAxMSAvLyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBnZXRSZW5ld1ByaWNlKCl1aW50NjQKCWNhbGxzdWIgZ2V0UmVuZXdQcmljZQoJaXRvYgoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldFJlbmV3UHJpY2UoKTogdWludDY0CmdldFJlbmV3UHJpY2U6Cglwcm90byAwIDEKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4NTAKCS8vIHJldHVybiB0aGlzLmdldFJlbmV3UHJpY2VEYXRhKHRoaXMudHhuLnNlbmRlcikub25lWWVhclByaWNlCgl0eG4gU2VuZGVyCgljYWxsc3ViIGdldFJlbmV3UHJpY2VEYXRhCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAwIDgKCWJ0b2kKCXJldHN1YgoKLy8gdXBkYXRlSGFzaChieXRlW10pdm9pZAoqYWJpX3JvdXRlX3VwZGF0ZUhhc2g6CgkvLyBoYXNoOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSB1cGRhdGVIYXNoKGJ5dGVbXSl2b2lkCgljYWxsc3ViIHVwZGF0ZUhhc2gKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHVwZGF0ZUhhc2goaGFzaDogYnl0ZXMpOiB2b2lkCnVwZGF0ZUhhc2g6Cglwcm90byAxIDAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4NTYKCS8vIGFzc2VydCgKCS8vICAgICAgICAgICAgIGxlbihoYXNoKSA9PT0gMzIgJiYgQWRkcmVzcy5mcm9tQnl0ZXMoaGFzaCkgIT09IGdsb2JhbHMuemVyb0FkZHJlc3MsCgkvLyAgICAgICAgICAgICAibXVzdCBwYXNzIDMyLWJ5dGUgaGFzaCB0aGF0IGlzbid0IDAiLAoJLy8gICAgICAgICApCglmcmFtZV9kaWcgLTEgLy8gaGFzaDogYnl0ZXMKCWxlbgoJaW50YyAzIC8vIDMyCgk9PQoJZHVwCglieiAqc2tpcF9hbmQxNQoJZnJhbWVfZGlnIC0xIC8vIGhhc2g6IGJ5dGVzCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9CgkmJgoKKnNraXBfYW5kMTU6CgkvLyBtdXN0IHBhc3MgMzItYnl0ZSBoYXNoIHRoYXQgaXNuJ3QgMAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODYxCgkvLyBhc3NlcnQoCgkvLyAgICAgICAgICAgICByYXdCeXRlcyh0aGlzLnR4bi5zZW5kZXIpID09PSB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpLnZhbHVlIHx8IHRoaXMuaXNDdXJyZW50VHhuQ29udHJhY3RBdXRob3JpdHkoKSwKCS8vICAgICAgICAgICAgICdvbmx5IHR4bmxhYiBvciBvd25lciBjYW4gcmVxdWVzdCBhbiBuZmQgbmZ0IGhhc2ggdXBkYXRlJywKCS8vICAgICAgICAgKQoJdHhuIFNlbmRlcgoJYnl0ZWMgMSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXQKCT09CglkdXAKCWJueiAqc2tpcF9vcjEKCWNhbGxzdWIgaXNDdXJyZW50VHhuQ29udHJhY3RBdXRob3JpdHkKCXx8Cgoqc2tpcF9vcjE6CgkvLyBvbmx5IHR4bmxhYiBvciBvd25lciBjYW4gcmVxdWVzdCBhbiBuZmQgbmZ0IGhhc2ggdXBkYXRlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4NjUKCS8vIHNlbmRBc3NldENvbmZpZyh7CgkvLyAgICAgICAgICAgICBjb25maWdBc3NldDogQXNzZXRJRC5mcm9tVWludDY0KGJ0b2kodGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0FTQUlEKS52YWx1ZSkpLAoJLy8gICAgICAgICAgICAgY29uZmlnQXNzZXRNYW5hZ2VyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgICAgICAgY29uZmlnQXNzZXRSZXNlcnZlOiBBZGRyZXNzLmZyb21CeXRlcyhoYXNoKSwKCS8vICAgICAgICAgICAgIGNvbmZpZ0Fzc2V0Q2xhd2JhY2s6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDYgLy8gIGFjZmcKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4NjYKCS8vIGNvbmZpZ0Fzc2V0OiBBc3NldElELmZyb21VaW50NjQoYnRvaSh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfQVNBSUQpLnZhbHVlKSkKCWJ5dGVjIDE4IC8vICJpLmFzYWlkIgoJYXBwX2dsb2JhbF9nZXQKCWJ0b2kKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4NjcKCS8vIGNvbmZpZ0Fzc2V0TWFuYWdlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRNYW5hZ2VyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODY4CgkvLyBjb25maWdBc3NldFJlc2VydmU6IEFkZHJlc3MuZnJvbUJ5dGVzKGhhc2gpCglmcmFtZV9kaWcgLTEgLy8gaGFzaDogYnl0ZXMKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRSZXNlcnZlCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODY5CgkvLyBjb25maWdBc3NldENsYXdiYWNrOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBDb25maWdBc3NldENsYXdiYWNrCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBjb250cmFjdExvY2soYm9vbCl2b2lkCiphYmlfcm91dGVfY29udHJhY3RMb2NrOgoJLy8gbG9jazogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludGMgMSAvLyAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGxvY2spIGZvciBjb250cmFjdExvY2sgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50YyAwIC8vIDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgY29udHJhY3RMb2NrKGJvb2wpdm9pZAoJY2FsbHN1YiBjb250cmFjdExvY2sKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGNvbnRyYWN0TG9jayhsb2NrOiBib29sZWFuKTogdm9pZApjb250cmFjdExvY2s6Cglwcm90byAxIDAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4NzcKCS8vIHRoaXMuYXNzZXJ0T3duZXJDYWxsZWROb3RGb3JTYWxlT3JFeHBpcmVkKCkKCWNhbGxzdWIgYXNzZXJ0T3duZXJDYWxsZWROb3RGb3JTYWxlT3JFeHBpcmVkCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODc4CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjg3OQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0lTTE9DS0VEKS52YWx1ZSA9IGxvY2sgPyAnMScgOiAnMCcKCWJ5dGVjIDI1IC8vICJpLmNvbnRyYWN0TG9ja2VkIgoJZnJhbWVfZGlnIC0xIC8vIGxvY2s6IGJvb2xlYW4KCWJ6ICp0ZXJuYXJ5MF9mYWxzZQoJYnl0ZWMgMTUgLy8gICIxIgoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglieXRlYyAyMyAvLyAgIjAiCgoqdGVybmFyeTBfZW5kOgoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gc2VnbWVudExvY2soYm9vbCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX3NlZ21lbnRMb2NrOgoJLy8gdXNkUHJpY2U6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGxvY2s6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDEgLy8gMQoJPT0KCgkvLyBhcmd1bWVudCAxIChsb2NrKSBmb3Igc2VnbWVudExvY2sgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50YyAwIC8vIDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgc2VnbWVudExvY2soYm9vbCx1aW50NjQpdm9pZAoJY2FsbHN1YiBzZWdtZW50TG9jawoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gc2VnbWVudExvY2sobG9jazogYm9vbGVhbiwgdXNkUHJpY2U6IHVpbnQ2NCk6IHZvaWQKc2VnbWVudExvY2s6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjg4NQoJLy8gdGhpcy5hc3NlcnRPd25lckNhbGxlZE5vdEZvclNhbGVPckV4cGlyZWQoKQoJY2FsbHN1YiBhc3NlcnRPd25lckNhbGxlZE5vdEZvclNhbGVPckV4cGlyZWQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4ODYKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9USU1FQ0hBTkdFRCkudmFsdWUgPSBpdG9iKGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wKQoJYnl0ZWMgMiAvLyAiaS50aW1lQ2hhbmdlZCIKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODg3CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfSVNTRUdNRU5UTE9DS0VEKS52YWx1ZSA9IGxvY2sgPyAnMScgOiAnMCcKCWJ5dGVjIDIxIC8vICJpLnNlZ21lbnRMb2NrZWQiCglmcmFtZV9kaWcgLTEgLy8gbG9jazogYm9vbGVhbgoJYnogKnRlcm5hcnkxX2ZhbHNlCglieXRlYyAxNSAvLyAgIjEiCgliICp0ZXJuYXJ5MV9lbmQKCip0ZXJuYXJ5MV9mYWxzZToKCWJ5dGVjIDIzIC8vICAiMCIKCip0ZXJuYXJ5MV9lbmQ6CglhcHBfZ2xvYmFsX3B1dAoKCS8vICppZjUwX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODg4CgkvLyBsb2NrCglmcmFtZV9kaWcgLTEgLy8gbG9jazogYm9vbGVhbgoJYnogKmlmNTBfZWxzZQoKCS8vICppZjUwX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjg4OQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1NFR01FTlRfVVNEX1BSSUNFKS5kZWxldGUoKQoJYnl0ZWMgMzIgLy8gImkuc2VnbWVudFByaWNlVXNkIgoJYXBwX2dsb2JhbF9kZWwKCWIgKmlmNTBfZW5kCgoqaWY1MF9lbHNlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODkyCgkvLyBjb25zdHJhaW50RGF0YSA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBORkRSZWdpc3RyeS5wcm90b3R5cGUuZ2V0Q29uc3RyYWludHM+KHsKCS8vICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMucmVnaXN0cnlBcHBJZCksCgkvLyAgICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlYyAzNyAvLyAgbWV0aG9kICJnZXRDb25zdHJhaW50cygpKHVpbnQ2NCx1aW50NjQsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4OTMKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5yZWdpc3RyeUFwcElkKQoJaW50YyA0IC8vIFRNUExfcmVnaXN0cnlBcHBJZAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnRjIDEgLy8gMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglmcmFtZV9idXJ5IDAgLy8gY29uc3RyYWludERhdGE6ICh1aW50NjQsdWludDY0LHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjg5NQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgICAgIHVzZFByaWNlID49IGNvbnN0cmFpbnREYXRhLnNlZ21lbnRQbGF0Zm9ybUNvc3RJblVzZCwKCS8vICAgICAgICAgICAgICAgICAnYW1vdW50IG11c3QgYmUgYXQgbGVhc3QgTkZEX01JTl9TRUdNRU5UX1VTRCBkb2xsYXJzIGluIGFsZ28nLAoJLy8gICAgICAgICAgICAgKQoJZnJhbWVfZGlnIC0yIC8vIHVzZFByaWNlOiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIGNvbnN0cmFpbnREYXRhOiAodWludDY0LHVpbnQ2NCx1aW50NjQsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMCA4CglidG9pCgk+PQoKCS8vIGFtb3VudCBtdXN0IGJlIGF0IGxlYXN0IE5GRF9NSU5fU0VHTUVOVF9VU0QgZG9sbGFycyBpbiBhbGdvCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4OTkKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUdNRU5UX1VTRF9QUklDRSkudmFsdWUgPSBpdG9iKHVzZFByaWNlKQoJYnl0ZWMgMzIgLy8gImkuc2VnbWVudFByaWNlVXNkIgoJZnJhbWVfZGlnIC0yIC8vIHVzZFByaWNlOiB1aW50NjQKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CgoqaWY1MF9lbmQ6CglyZXRzdWIKCi8vIHZhdWx0T3B0SW5Mb2NrKGJvb2wpdm9pZAoqYWJpX3JvdXRlX3ZhdWx0T3B0SW5Mb2NrOgoJLy8gbG9jazogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludGMgMSAvLyAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGxvY2spIGZvciB2YXVsdE9wdEluTG9jayBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnRjIDAgLy8gMAoJZ2V0Yml0CgoJLy8gZXhlY3V0ZSB2YXVsdE9wdEluTG9jayhib29sKXZvaWQKCWNhbGxzdWIgdmF1bHRPcHRJbkxvY2sKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHZhdWx0T3B0SW5Mb2NrKGxvY2s6IGJvb2xlYW4pOiB2b2lkCnZhdWx0T3B0SW5Mb2NrOgoJcHJvdG8gMSAwCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTA4CgkvLyB0aGlzLmFzc2VydE93bmVyQ2FsbGVkTm90Rm9yU2FsZU9yRXhwaXJlZCgpCgljYWxsc3ViIGFzc2VydE93bmVyQ2FsbGVkTm90Rm9yU2FsZU9yRXhwaXJlZAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjkwOQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1RJTUVDSEFOR0VEKS52YWx1ZSA9IGl0b2IoZ2xvYmFscy5sYXRlc3RUaW1lc3RhbXApCglieXRlYyAyIC8vICJpLnRpbWVDaGFuZ2VkIgoJZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAoJaXRvYgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5MTAKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9JU1ZBVUxUT1BUSU5MT0NLRUQpLnZhbHVlID0gbG9jayA/ICcxJyA6ICcwJwoJYnl0ZWMgMjAgLy8gImkudmF1bHRPcHRJbkxvY2tlZCIKCWZyYW1lX2RpZyAtMSAvLyBsb2NrOiBib29sZWFuCglieiAqdGVybmFyeTJfZmFsc2UKCWJ5dGVjIDE1IC8vICAiMSIKCWIgKnRlcm5hcnkyX2VuZAoKKnRlcm5hcnkyX2ZhbHNlOgoJYnl0ZWMgMjMgLy8gICIwIgoKKnRlcm5hcnkyX2VuZDoKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIHZhdWx0T3B0SW4odWludDY0W10pdm9pZAoqYWJpX3JvdXRlX3ZhdWx0T3B0SW46CgkvLyBhc3NldHM6IHVpbnQ2NFtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgdmF1bHRPcHRJbih1aW50NjRbXSl2b2lkCgljYWxsc3ViIHZhdWx0T3B0SW4KCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHZhdWx0T3B0SW4oYXNzZXRzOiBBc3NldElEW10pOiB2b2lkCnZhdWx0T3B0SW46Cglwcm90byAxIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTIwCgkvLyB0aGlzLm5vdEZvclNhbGVPckV4cGlyZWQoKQoJY2FsbHN1YiBub3RGb3JTYWxlT3JFeHBpcmVkCgoJLy8gKmlmNTFfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5MjQKCS8vIHRoaXMuaXNWYXVsdEF1dG9PcHRJbkxvY2tlZCgpCgljYWxsc3ViIGlzVmF1bHRBdXRvT3B0SW5Mb2NrZWQKCWJ6ICppZjUxX2VuZAoKCS8vICppZjUxX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjkyNQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgICAgIHJhd0J5dGVzKHRoaXMudHhuLnNlbmRlcikgPT09IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9PV05FUikudmFsdWUsCgkvLyAgICAgICAgICAgICAgICAgJ3NlbmRlciBtdXN0IGJlIG93bmVyIHdoZW4gdmF1bHQgbG9ja2VkJywKCS8vICAgICAgICAgICAgICkKCXR4biBTZW5kZXIKCWJ5dGVjIDEgLy8gImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoKCS8vIHNlbmRlciBtdXN0IGJlIG93bmVyIHdoZW4gdmF1bHQgbG9ja2VkCglhc3NlcnQKCippZjUxX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjkzMQoJLy8gYXNzZXJ0KHRoaXMudHhuLmdyb3VwSW5kZXggPiAwLCAncGFydCBvZiBvcHQtaW4gZm9yIG5ldyBhc3NldCwgbXVzdCBoYXZlIHByaW9yIHR4biBwYXlpbmcgTUJSJykKCXR4biBHcm91cEluZGV4CglpbnRjIDAgLy8gMAoJPgoKCS8vIHBhcnQgb2Ygb3B0LWluIGZvciBuZXcgYXNzZXQsIG11c3QgaGF2ZSBwcmlvciB0eG4gcGF5aW5nIE1CUgoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTMzCgkvLyB2ZXJpZnlQYXlUeG4odGhpcy50eG5Hcm91cFt0aGlzLnR4bi5ncm91cEluZGV4IC0gMV0sIHsKCS8vICAgICAgICAgICAgIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgICAgICAgYW1vdW50OiAxMDBfMDAwICogYXNzZXRzLmxlbmd0aCwKCS8vICAgICAgICAgfSkKCXR4biBHcm91cEluZGV4CglpbnRjIDEgLy8gMQoJLQoJc3RvcmUgMjQ4IC8vIHZlcmlmeVR4biBpbmRleAoKCS8vIHZlcmlmeSBwYXkKCWxvYWQgMjQ4IC8vIHZlcmlmeVR4biBpbmRleAoJZ3R4bnMgVHlwZUVudW0KCWludGMgMSAvLyAgcGF5Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG5Hcm91cFt0aGlzLnR4bi5ncm91cEluZGV4IC0gMV0iLCJmaWVsZCI6InR5cGVFbnVtIiwiZXhwZWN0ZWQiOiJwYXkifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHJlY2VpdmVyCglsb2FkIDI0OCAvLyB2ZXJpZnlUeG4gaW5kZXgKCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuR3JvdXBbdGhpcy50eG4uZ3JvdXBJbmRleCAtIDFdIiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50Cglsb2FkIDI0OCAvLyB2ZXJpZnlUeG4gaW5kZXgKCWd0eG5zIEFtb3VudAoJaW50YyAxNiAvLyAxMDBfMDAwCglmcmFtZV9kaWcgLTEgLy8gYXNzZXRzOiBBc3NldElEW10KCWxlbgoJaW50YyA1IC8vIDgKCS8KCSoKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwW3RoaXMudHhuLmdyb3VwSW5kZXggLSAxXSIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiIxMDBfMDAwICogYXNzZXRzLmxlbmd0aCJ9Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5MzcKCS8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBhc3NldHMubGVuZ3RoOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl82OgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTM3CgkvLyBpIDwgYXNzZXRzLmxlbmd0aAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gYXNzZXRzOiBBc3NldElEW10KCWxlbgoJaW50YyA1IC8vIDgKCS8KCTwKCWJ6ICpmb3JfNl9lbmQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5MzgKCS8vIGFzc2V0SWQgPSBhc3NldHNbaV0KCWZyYW1lX2RpZyAtMSAvLyBhc3NldHM6IEFzc2V0SURbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludGMgMCAvLyAgaW5pdGlhbCBvZmZzZXQKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50YyA1IC8vIDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJaW50YyA1IC8vIDgKCWV4dHJhY3QzCglidG9pCglmcmFtZV9idXJ5IDEgLy8gYXNzZXRJZDogdWludDY0CgoJLy8gKmlmNTJfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5NDAKCS8vICF0aGlzLmFwcC5hZGRyZXNzLmlzT3B0ZWRJblRvQXNzZXQoYXNzZXRJZCkKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgMSAvLyBhc3NldElkOiB1aW50NjQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJc3dhcAoJcG9wCgkhCglieiAqaWY1Ml9lbmQKCgkvLyAqaWY1Ml9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5NDEKCS8vIHNlbmRBc3NldFRyYW5zZmVyKHsKCS8vICAgICAgICAgICAgICAgICAgICAgeGZlckFzc2V0OiBhc3NldElkLAoJLy8gICAgICAgICAgICAgICAgICAgICBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgICAgICAgICAgICAgICBhc3NldEFtb3VudDogMCwKCS8vICAgICAgICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxMCAvLyAgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5NDIKCS8vIHhmZXJBc3NldDogYXNzZXRJZAoJZnJhbWVfZGlnIDEgLy8gYXNzZXRJZDogdWludDY0CglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk0MwoJLy8gYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk0NAoJLy8gYXNzZXRBbW91bnQ6IDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKKmlmNTJfZW5kOgoKKmZvcl82X2NvbnRpbnVlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTM3CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKmZvcl82CgoqZm9yXzZfZW5kOgoJcmV0c3ViCgovLyB2YXVsdFNlbmQodWludDY0LGFkZHJlc3Msc3RyaW5nLHVpbnQ2NCx1aW50NjRbXSl2b2lkCiphYmlfcm91dGVfdmF1bHRTZW5kOgoJLy8gb3RoZXJBc3NldHM6IHVpbnQ2NFtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA1CglleHRyYWN0IDIgMAoKCS8vIGFzc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDQKCWJ0b2kKCgkvLyBub3RlOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWV4dHJhY3QgMiAwCgoJLy8gcmVjZWl2ZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnRjIDMgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMyAocmVjZWl2ZXIpIGZvciB2YXVsdFNlbmQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGFtb3VudDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSB2YXVsdFNlbmQodWludDY0LGFkZHJlc3Msc3RyaW5nLHVpbnQ2NCx1aW50NjRbXSl2b2lkCgljYWxsc3ViIHZhdWx0U2VuZAoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gdmF1bHRTZW5kKGFtb3VudDogdWludDY0LCByZWNlaXZlcjogQWRkcmVzcywgbm90ZTogc3RyaW5nLCBhc3NldDogdWludDY0LCBvdGhlckFzc2V0czogQXNzZXRJRFtdKTogdm9pZAp2YXVsdFNlbmQ6Cglwcm90byA1IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwbiAzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTY0CgkvLyB0aGlzLmFzc2VydE93bmVyQ2FsbGVkTm90Rm9yU2FsZU9yRXhwaXJlZCgpCgljYWxsc3ViIGFzc2VydE93bmVyQ2FsbGVkTm90Rm9yU2FsZU9yRXhwaXJlZAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk2NQoJLy8gYXNzZXJ0KHJlY2VpdmVyICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzKQoJZnJhbWVfZGlnIC0yIC8vIHJlY2VpdmVyOiBBZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9Cglhc3NlcnQKCgkvLyAqaWY1M19jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk2NwoJLy8gYXNzZXQgPT09IDAKCWZyYW1lX2RpZyAtNCAvLyBhc3NldDogdWludDY0CglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppZjUzX2VuZAoKCS8vICppZjUzX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk2OAoJLy8gYXNzZXJ0KG90aGVyQXNzZXRzLmxlbmd0aCA9PT0gMCwgImNhbid0IHNwZWNpZnkgb3RoZXIgYXNzZXRzIGlmIHNlbmRpbmcgYWxnbyBmcm9tIHZhdWx0IikKCWZyYW1lX2RpZyAtNSAvLyBvdGhlckFzc2V0czogQXNzZXRJRFtdCglsZW4KCWludGMgNSAvLyA4CgkvCglpbnRjIDAgLy8gMAoJPT0KCgkvLyBjYW4ndCBzcGVjaWZ5IG90aGVyIGFzc2V0cyBpZiBzZW5kaW5nIGFsZ28gZnJvbSB2YXVsdAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTY5CgkvLyBhc3NlcnQoYW1vdW50ID4gMCkKCWZyYW1lX2RpZyAtMSAvLyBhbW91bnQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT4KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk3MQoJLy8gbWluQmFsYW5jZSA9IHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZSArIHRoaXMuc2FmZUdsb2JhbEludEdldChORkRfS0VZX01JTlRJTkdfS0lDS09GRl9BTU9VTlQpCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCWJ5dGVjIDEzIC8vICJpLm1pbnRpbmdLaWNrb2ZmQW1vdW50IgoJY2FsbHN1YiBzYWZlR2xvYmFsSW50R2V0CgkrCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsYW5jZTogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTczCgkvLyBhc3NlcnQodGhpcy5hcHAuYWRkcmVzcy5iYWxhbmNlIC0gYW1vdW50ID49IG1pbkJhbGFuY2UpCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAtMSAvLyBhbW91bnQ6IHVpbnQ2NAoJLQoJZnJhbWVfZGlnIDAgLy8gbWluQmFsYW5jZTogdWludDY0Cgk+PQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTc0CgkvLyBzZW5kUGF5bWVudCh7IHJlY2VpdmVyOiByZWNlaXZlciwgYW1vdW50OiBhbW91bnQsIG5vdGU6IG5vdGUgfSkKCWl0eG5fYmVnaW4KCWludGMgMSAvLyAgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTc0CgkvLyByZWNlaXZlcjogcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMiAvLyByZWNlaXZlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk3NAoJLy8gYW1vdW50OiBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBhbW91bnQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5NzQKCS8vIG5vdGU6IG5vdGUKCWZyYW1lX2RpZyAtMyAvLyBub3RlOiBzdHJpbmcKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5NzUKCS8vIHJldHVybgoJcmV0c3ViCgoqaWY1M19lbmQ6CgkvLyAqaWY1NF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk3OQoJLy8gYW1vdW50ICE9PSAwCglmcmFtZV9kaWcgLTEgLy8gYW1vdW50OiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoJYnogKmlmNTRfZW5kCgoJLy8gKmlmNTRfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTgwCgkvLyBhc3NlcnQob3RoZXJBc3NldHMubGVuZ3RoID09PSAwLCAnY2FuIG9ubHkgc2VuZCBvbmUgYXNzZXQgaWYgYW1vdW50ID09IDAnKQoJZnJhbWVfZGlnIC01IC8vIG90aGVyQXNzZXRzOiBBc3NldElEW10KCWxlbgoJaW50YyA1IC8vIDgKCS8KCWludGMgMCAvLyAwCgk9PQoKCS8vIGNhbiBvbmx5IHNlbmQgb25lIGFzc2V0IGlmIGFtb3VudCA9PSAwCglhc3NlcnQKCippZjU0X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk4MgoJLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8PSBvdGhlckFzc2V0cy5sZW5ndGg7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDEgLy8gaTogdWludDY0CgoqZm9yXzc6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5ODIKCS8vIGkgPD0gb3RoZXJBc3NldHMubGVuZ3RoCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyAtNSAvLyBvdGhlckFzc2V0czogQXNzZXRJRFtdCglsZW4KCWludGMgNSAvLyA4CgkvCgk8PQoJYnogKmZvcl83X2VuZAoKCS8vICppZjU1X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTg2CgkvLyBpID09PSAwCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmNTVfZWxzZQoKCS8vICppZjU1X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk4NwoJLy8gYXNzZXRJZCA9IEFzc2V0SUQuZnJvbVVpbnQ2NChhc3NldCkKCWZyYW1lX2RpZyAtNCAvLyBhc3NldDogdWludDY0CglmcmFtZV9idXJ5IDIgLy8gYXNzZXRJZDogQXNzZXRJRAoJYiAqaWY1NV9lbmQKCippZjU1X2Vsc2U6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5ODkKCS8vIGFzc2V0SWQgPSBvdGhlckFzc2V0c1tpIC0gMV0KCWZyYW1lX2RpZyAtNSAvLyBvdGhlckFzc2V0czogQXNzZXRJRFtdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50YyAwIC8vICBpbml0aWFsIG9mZnNldAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJLQoJaW50YyA1IC8vIDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJaW50YyA1IC8vIDgKCWV4dHJhY3QzCglidG9pCglmcmFtZV9idXJ5IDIgLy8gYXNzZXRJZDogQXNzZXRJRAoKKmlmNTVfZW5kOgoJLy8gKmlmNTZfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5OTIKCS8vIGFzc2V0SWQuaWQgPT09IGJ0b2kodGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0FTQUlEKS52YWx1ZSkKCWZyYW1lX2RpZyAyIC8vIGFzc2V0SWQ6IEFzc2V0SUQKCWJ5dGVjIDE4IC8vICJpLmFzYWlkIgoJYXBwX2dsb2JhbF9nZXQKCWJ0b2kKCT09CglieiAqaWY1Nl9lbmQKCgkvLyAqaWY1Nl9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5OTMKCS8vIGFzc2VydChyYXdCeXRlcyhyZWNlaXZlcikgPT09IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9PV05FUikudmFsdWUsICdyZWNlaXZlciBtdXN0IGJlIG93bmVyJykKCWZyYW1lX2RpZyAtMiAvLyByZWNlaXZlcjogQWRkcmVzcwoJYnl0ZWMgMSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXQKCT09CgoJLy8gcmVjZWl2ZXIgbXVzdCBiZSBvd25lcgoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTk0CgkvLyB0aGlzLmNsYXdBc2FGcm9tVG8odGhpcy5hcHAuYWRkcmVzcywgcmVjZWl2ZXIpCglmcmFtZV9kaWcgLTIgLy8gcmVjZWl2ZXI6IEFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgljYWxsc3ViIGNsYXdBc2FGcm9tVG8KCWIgKmZvcl83X2NvbnRpbnVlCgoqaWY1Nl9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5OTcKCS8vIGFzc2V0QmFsID0gcmVjZWl2ZXIuYXNzZXRCYWxhbmNlKGFzc2V0SWQpCglmcmFtZV9kaWcgLTIgLy8gcmVjZWl2ZXI6IEFkZHJlc3MKCWZyYW1lX2RpZyAyIC8vIGFzc2V0SWQ6IEFzc2V0SUQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9idXJ5IDMgLy8gYXNzZXRCYWw6IHVpbnQ2NAoKCS8vICppZjU3X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTk4CgkvLyBhbW91bnQgPT09IDAgfHwgdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UoYXNzZXRJZCkgPT09IGFzc2V0QmFsCglmcmFtZV9kaWcgLTEgLy8gYW1vdW50OiB1aW50NjQKCWludGMgMCAvLyAwCgk9PQoJZHVwCglibnogKnNraXBfb3IyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIDIgLy8gYXNzZXRJZDogQXNzZXRJRAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAzIC8vIGFzc2V0QmFsOiB1aW50NjQKCT09Cgl8fAoKKnNraXBfb3IyOgoJYnogKmlmNTdfZWxzZQoKCS8vICppZjU3X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwMDAKCS8vIHNlbmRBc3NldFRyYW5zZmVyKHsKCS8vICAgICAgICAgICAgICAgICAgICAgeGZlckFzc2V0OiBhc3NldElkLAoJLy8gICAgICAgICAgICAgICAgICAgICBhc3NldFJlY2VpdmVyOiByZWNlaXZlciwKCS8vICAgICAgICAgICAgICAgICAgICAgYXNzZXRDbG9zZVRvOiByZWNlaXZlciwKCS8vICAgICAgICAgICAgICAgICAgICAgYXNzZXRBbW91bnQ6IGFtb3VudCwKCS8vICAgICAgICAgICAgICAgICAgICAgbm90ZTogbm90ZSwKCS8vICAgICAgICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxMCAvLyAgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDAxCgkvLyB4ZmVyQXNzZXQ6IGFzc2V0SWQKCWZyYW1lX2RpZyAyIC8vIGFzc2V0SWQ6IEFzc2V0SUQKCWl0eG5fZmllbGQgWGZlckFzc2V0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTAwMgoJLy8gYXNzZXRSZWNlaXZlcjogcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMiAvLyByZWNlaXZlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTAwMwoJLy8gYXNzZXRDbG9zZVRvOiByZWNlaXZlcgoJZnJhbWVfZGlnIC0yIC8vIHJlY2VpdmVyOiBBZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0Q2xvc2VUbwoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwMDQKCS8vIGFzc2V0QW1vdW50OiBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBhbW91bnQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBc3NldEFtb3VudAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwMDUKCS8vIG5vdGU6IG5vdGUKCWZyYW1lX2RpZyAtMyAvLyBub3RlOiBzdHJpbmcKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWIgKmlmNTdfZW5kCgoqaWY1N19lbHNlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTAwOAoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoeyB4ZmVyQXNzZXQ6IGFzc2V0SWQsIGFzc2V0UmVjZWl2ZXI6IHJlY2VpdmVyLCBhc3NldEFtb3VudDogYW1vdW50LCBub3RlOiBub3RlIH0pCglpdHhuX2JlZ2luCglpbnRjIDEwIC8vICBheGZlcgoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwMDgKCS8vIHhmZXJBc3NldDogYXNzZXRJZAoJZnJhbWVfZGlnIDIgLy8gYXNzZXRJZDogQXNzZXRJRAoJaXR4bl9maWVsZCBYZmVyQXNzZXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDA4CgkvLyBhc3NldFJlY2VpdmVyOiByZWNlaXZlcgoJZnJhbWVfZGlnIC0yIC8vIHJlY2VpdmVyOiBBZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDA4CgkvLyBhc3NldEFtb3VudDogYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gYW1vdW50OiB1aW50NjQKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDA4CgkvLyBub3RlOiBub3RlCglmcmFtZV9kaWcgLTMgLy8gbm90ZTogc3RyaW5nCglpdHhuX2ZpZWxkIE5vdGUKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoqaWY1N19lbmQ6CgoqZm9yXzdfY29udGludWU6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5ODIKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzcKCipmb3JfN19lbmQ6CglyZXRzdWIKCi8vIHJlbmV3KHBheSl2b2lkCiphYmlfcm91dGVfcmVuZXc6CgkvLyBwYXltZW50OiBwYXkKCXR4biBHcm91cEluZGV4CglpbnRjIDEgLy8gMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50YyAxIC8vICBwYXkKCT09CgoJLy8gYXJndW1lbnQgMCAocGF5bWVudCkgZm9yIHJlbmV3IG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGV4ZWN1dGUgcmVuZXcocGF5KXZvaWQKCWNhbGxzdWIgcmVuZXcKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHJlbmV3KHBheW1lbnQ6IFBheVR4bik6IHZvaWQKLy8KLy8gUmVuZXcgYWRkcyBtb3JlIHRpbWUgdG8gYW4gZXhpc3RpbmcgTkZEcyBleHBpcmF0aW9uLCBvciByZW5ld3MgaXQgaWYgZXhwaXJlZC4KLy8KLy8gQXMgcGFydCBvZiB2Mi0+djMgdXBncmFkZSwgdGhlIE5GRHMgYXJlIGNvbnZlcnRlZCBmcm9tIGxpZmV0aW1lIE5GRHMgdG8gcmVuZXdhbCBORkRzLiBUaGUgdjIgY29udHJhY3QgaXMgdXBncmFkZWQKLy8gdG8gdjMsIHRoZW4gcmVuZXcgaXMgY2FsbGVkIG9uIHRoZSAobm93IHYzKSBuZmQgdG8gdHVybiBpdCBpbnRvIGEgcmVuZXdhbCAobm90ZSB0aGUgaWYgY3VyRXhwaXJhdGlvbiA9PT0gMCBjaGVjaykKLy8KLy8gSWYgYWxyZWFkeSByZW5ld2FsLCB0aGVuIGl0IGV4dGVuZHMgdGhlIGN1cnJlbnQgZXhwaXJhdGlvbiB0aW1lIGJ5IHRoZSB0aW1lIHNwZWNpZmllZCAobWluaW11bSAxIHlyKSAoMzY1IC8gcHJpY2UgcGFpZCAqIG1pbnQgcHJpY2UpCi8vIEV4cGlyYXRpb25zIGNhbiBuZXZlciBiZSBtb3JlIHRoYW4gTkZEX01BWF9FWFBJUkFUSU9OX0RBWVMgZGF5cyBpbiB0aGUgZnV0dXJlLgovLwovLyBJRiB0aGUgTkZEIGlzIGV4cGlyZWQ6Ci8vIHggVGhlIGN1cnJlbnQgb3duZXIgY2FuIHRha2UgaXQgYmFjayBvdmVyIGF0IGJhc2UgcHJpY2UgLSBhbmQgTkZEIG1ldGFkYXRhIGRvZXNuJ3QgaGF2ZSB0byBiZSBjbGVhcmVkIC0gdGhleQovLyBnZXQgaXQgYmFjayBhcy1pcy4KLy8geCBJZiBub3QgY3VycmVudCBvd25lciwgdGhlbiB0aGUgcHJpY2UgZ29lcyBmcm9tIGhpZ2ggb2YgYmFzZSBwcmljZSAqIDEwLDAwMCBkb3duIHRvIGJhc2UgcHJpY2Ugb3ZlciAyNCBocnMgd2hlcmUKLy8gJ2J1eWVyJyBoYXMgdG8gcGF5IGF0IGxlYXN0IHRoYXQgcHJpY2UuICBUaGUgTkZEIE1VU1QgQUxSRUFEWSBIQVZFIElUUyBNRVRBREFUQSBDTEVBUkVEIQovLwovLyBAcGFyYW0ge1BheVR4bn0gcGF5bWVudCAtIFRoZSBwYXltZW50IHRyYW5zYWN0aW9uIGZyb20gd2hpY2ggdGhlIHJlbmV3YWwgcGVyaW9kIGlzIGRldGVybWluZWQuLgpyZW5ldzoKCXByb3RvIDEgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXBuIDExCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTAzMQoJLy8gdmVyaWZ5UGF5VHhuKHBheW1lbnQsIHsgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MgfSkKCS8vIHZlcmlmeSByZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgUmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoicGF5bWVudCIsImZpZWxkIjoicmVjZWl2ZXIiLCJleHBlY3RlZCI6InRoaXMuYXBwLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTAzNAoJLy8gcHJpY2VJbmZvID0gdGhpcy5nZXRSZW5ld1ByaWNlRGF0YSh0aGlzLnR4bi5zZW5kZXIpCgl0eG4gU2VuZGVyCgljYWxsc3ViIGdldFJlbmV3UHJpY2VEYXRhCglmcmFtZV9idXJ5IDAgLy8gcHJpY2VJbmZvOiAodWludDY0LHVpbnQ2NCxib29sLGJvb2wsYm9vbCkKCgkvLyAqaWY1OF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwMzUKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgMjAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglpbnRjIDE5IC8vIDIwMAoJPAoJYnogKmlmNThfZW5kCgoJLy8gKmlmNThfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTAzNgoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGVjIDE0IC8vICAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnRjIDEzIC8vICBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoqaWY1OF9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDM4CgkvLyBjb25zdHJhaW50RGF0YSA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBORkRSZWdpc3RyeS5wcm90b3R5cGUuZ2V0Q29uc3RyYWludHM+KHsKCS8vICAgICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5yZWdpc3RyeUFwcElkKSwKCS8vICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZWMgMzcgLy8gIG1ldGhvZCAiZ2V0Q29uc3RyYWludHMoKSh1aW50NjQsdWludDY0LHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0KSIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTAzOQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnJlZ2lzdHJ5QXBwSWQpCglpbnRjIDQgLy8gVE1QTF9yZWdpc3RyeUFwcElkCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludGMgMSAvLyAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgMSAvLyBjb25zdHJhaW50RGF0YTogKHVpbnQ2NCx1aW50NjQsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA0MQoJLy8gcmVxUHJpY2UgPSBwcmljZUluZm8ub25lWWVhclByaWNlCglmcmFtZV9kaWcgMCAvLyBwcmljZUluZm86ICh1aW50NjQsdWludDY0LGJvb2wsYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgMCA4CglidG9pCglmcmFtZV9idXJ5IDIgLy8gcmVxUHJpY2U6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwNDIKCS8vIG1heEV4cFllYXJzID0gY29uc3RyYWludERhdGEubWF4WWVhcnNBbGxvd2VkCglmcmFtZV9kaWcgMSAvLyBjb25zdHJhaW50RGF0YTogKHVpbnQ2NCx1aW50NjQsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE2IDgKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyBtYXhFeHBZZWFyczogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA0MwoJLy8gYXNzZXJ0KHJlcVByaWNlID4gMCkKCWZyYW1lX2RpZyAyIC8vIHJlcVByaWNlOiB1aW50NjQKCWludGMgMCAvLyAwCgk+Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDQ0CgkvLyBvcmlnT3duZXIgPSBBZGRyZXNzLmZyb21CeXRlcyh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpLnZhbHVlKQoJYnl0ZWMgMSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2J1cnkgNCAvLyBvcmlnT3duZXI6IGFkZHJlc3MKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDQ2CgkvLyBjdXJFeHBpcmF0aW9uID0gdGhpcy5zYWZlR2xvYmFsSW50R2V0KE5GRF9LRVlfRVhQSVJBVElPTlRJTUUpCglieXRlYyAxNyAvLyAiaS5leHBpcmF0aW9uVGltZSIKCWNhbGxzdWIgc2FmZUdsb2JhbEludEdldAoJZnJhbWVfYnVyeSA1IC8vIGN1ckV4cGlyYXRpb246IHVpbnQ2NAoKCS8vICppZjU5X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA0NwoJLy8gY3VyRXhwaXJhdGlvbiAhPT0gMCAmJiB0aGlzLmlzRXhwaXJlZCgpCglmcmFtZV9kaWcgNSAvLyBjdXJFeHBpcmF0aW9uOiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoJZHVwCglieiAqc2tpcF9hbmQxNgoJY2FsbHN1YiBpc0V4cGlyZWQKCSYmCgoqc2tpcF9hbmQxNjoKCWJ6ICppZjU5X2VuZAoKCS8vICppZjU5X2NvbnNlcXVlbnQKCS8vICppZjYwX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA1MgoJLy8gdGhpcy50eG4uc2VuZGVyICE9PSBvcmlnT3duZXIKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyA0IC8vIG9yaWdPd25lcjogYWRkcmVzcwoJIT0KCWJ6ICppZjYwX2VuZAoKCS8vICppZjYwX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwNTMKCS8vIGFzc2VydCh0aGlzLmFwcC5hZGRyZXNzLnRvdGFsQm94ZXMgPT09IDAsICJjYW4ndCBjbGFpbSBleHBpcmVkIG5mZCB1bmxlc3MgYWxsIG1ldGFkYXRhIGlzIGNsZWFyZWQiKQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwoJcG9wCglpbnRjIDAgLy8gMAoJPT0KCgkvLyBjYW4ndCBjbGFpbSBleHBpcmVkIG5mZCB1bmxlc3MgYWxsIG1ldGFkYXRhIGlzIGNsZWFyZWQKCWFzc2VydAoKKmlmNjBfZW5kOgoKKmlmNTlfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA1OQoJLy8gYXNzZXJ0KHBheW1lbnQuYW1vdW50ID49IHJlcVByaWNlLCAnbXVzdCBwYXkgYXQgbGVhc3QgbWluaW11bSByZW5ld2FsIHByaWNlJykKCWZyYW1lX2RpZyAtMSAvLyBwYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfZGlnIDIgLy8gcmVxUHJpY2U6IHVpbnQ2NAoJPj0KCgkvLyBtdXN0IHBheSBhdCBsZWFzdCBtaW5pbXVtIHJlbmV3YWwgcHJpY2UKCWFzc2VydAoKCS8vICppZjYxX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA2MAoJLy8gY3VyRXhwaXJhdGlvbiA9PT0gMAoJZnJhbWVfZGlnIDUgLy8gY3VyRXhwaXJhdGlvbjogdWludDY0CglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppZjYxX2Vsc2VpZjFfY29uZGl0aW9uCgoJLy8gKmlmNjFfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA2MQoJLy8gYXNzZXJ0KHRoaXMudHhuLnNlbmRlciA9PT0gb3JpZ093bmVyKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIDQgLy8gb3JpZ093bmVyOiBhZGRyZXNzCgk9PQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA2MwoJLy8gY3VyRXhwaXJhdGlvbiA9IGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglmcmFtZV9idXJ5IDUgLy8gY3VyRXhwaXJhdGlvbjogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA2NQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04xX0FHRU5UKS5kZWxldGUoKQoJYnl0ZWMgNSAvLyAiaS5jb21taXNzaW9uMUFnZW50LmEiCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwNjYKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9DT01NSVNTSU9OMSkuZGVsZXRlKCkKCWJ5dGVjIDcgLy8gImkuY29tbWlzc2lvbjEiCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwNjcKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9DT01NSVNTSU9OMl9BR0VOVCkuZGVsZXRlKCkKCWJ5dGVjIDE2IC8vICJpLmNvbW1pc3Npb24yQWdlbnQuYSIKCWFwcF9nbG9iYWxfZGVsCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA2OAoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04yKS5kZWxldGUoKQoJYnl0ZWMgMjIgLy8gImkuY29tbWlzc2lvbjIiCglhcHBfZ2xvYmFsX2RlbAoJYiAqaWY2MV9lbmQKCippZjYxX2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA2OQoJLy8gdGhpcy5pc0V4cGlyZWQoKQoJY2FsbHN1YiBpc0V4cGlyZWQKCWJ6ICppZjYxX2VuZAoKCS8vICppZjYxX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA3MQoJLy8gY3VyRXhwaXJhdGlvbiA9IGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglmcmFtZV9idXJ5IDUgLy8gY3VyRXhwaXJhdGlvbjogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA3MwoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX09XTkVSKS52YWx1ZSA9IHJhd0J5dGVzKHBheW1lbnQuc2VuZGVyKQoJYnl0ZWMgMSAvLyAiaS5vd25lci5hIgoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwNzQKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUxMRVIpLnZhbHVlID0gcmF3Qnl0ZXMocGF5bWVudC5zZW5kZXIpCglieXRlYyAxMCAvLyAiaS5zZWxsZXIuYSIKCWZyYW1lX2RpZyAtMSAvLyBwYXltZW50OiBQYXlUeG4KCWd0eG5zIFNlbmRlcgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDc1CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfUkVTRVJWRURfT1dORVIpLmRlbGV0ZSgpCglieXRlYyA4IC8vICJpLnJlc2VydmVkT3duZXIuYSIKCWFwcF9nbG9iYWxfZGVsCgoJLy8gKmlmNjJfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDc2CgkvLyB0aGlzLmlzRm9yU2FsZSgpCgljYWxsc3ViIGlzRm9yU2FsZQoJYnogKmlmNjJfZW5kCgoJLy8gKmlmNjJfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA3OAoJLy8gdGhpcy5uZmRfc2FsZUNhbmNlbGxlZC5sb2coeyBhcHBJZDogdGhpcy5hcHAuaWQsIG5hbWU6IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9OQU1FKS52YWx1ZSB9KQoJYnl0ZWMgMzYgLy8gIG5mZF9zYWxlQ2FuY2VsbGVkKHVpbnQ2NCxzdHJpbmcpCglieXRlYyAwIC8vICBpbml0aWFsIGhlYWQKCWJ5dGVjIDAgLy8gIGluaXRpYWwgdGFpbAoJYnl0ZWMgNDEgLy8gIGluaXRpYWwgaGVhZCBvZmZzZXQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGVjIDQgLy8gImkubmFtZSIKCWFwcF9nbG9iYWxfZ2V0CglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJY29uY2F0Cglsb2cKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDc5CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfU0VMTF9BTU9VTlQpLmRlbGV0ZSgpCglieXRlYyA2IC8vICJpLnNlbGxhbXQiCglhcHBfZ2xvYmFsX2RlbAoKKmlmNjJfZW5kOgoKKmlmNjFfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA4MwoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0VYUElSQVRJT05USU1FKS52YWx1ZSA9IGl0b2IoCgkvLyAgICAgICAgICAgICB0aGlzLmNhbGNFeHBpcmF0aW9uKHJlcVByaWNlLCBwYXltZW50LmFtb3VudCwgY3VyRXhwaXJhdGlvbiwgbWF4RXhwWWVhcnMpLAoJLy8gICAgICAgICApCglieXRlYyAxNyAvLyAiaS5leHBpcmF0aW9uVGltZSIKCWZyYW1lX2RpZyAzIC8vIG1heEV4cFllYXJzOiB1aW50NjQKCWZyYW1lX2RpZyA1IC8vIGN1ckV4cGlyYXRpb246IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9kaWcgMiAvLyByZXFQcmljZTogdWludDY0CgljYWxsc3ViIGNhbGNFeHBpcmF0aW9uCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwODYKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9USU1FQ0hBTkdFRCkudmFsdWUgPSBpdG9iKGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wKQoJYnl0ZWMgMiAvLyAiaS50aW1lQ2hhbmdlZCIKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA4OQoJLy8gcmVuZXdBbXQgPSBwYXltZW50LmFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9idXJ5IDYgLy8gcmVuZXdBbXQ6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwOTAKCS8vIGdyb3NzVG9UcmVhc3VyeSA9IHJlbmV3QW10CglmcmFtZV9kaWcgNiAvLyByZW5ld0FtdDogdWludDY0CglmcmFtZV9idXJ5IDcgLy8gZ3Jvc3NUb1RyZWFzdXJ5OiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDkyCgkvLyBzZWdtZW50Q29tbWlzc2lvbkFkZHJlc3MgPSBnbG9iYWxzLnplcm9BZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCWZyYW1lX2J1cnkgOSAvLyBzZWdtZW50Q29tbWlzc2lvbkFkZHJlc3M6IGFkZHJlc3MKCgkvLyAqaWY2M19jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwOTcKCS8vIHRoaXMuc2FmZUdsb2JhbEludEdldChORkRfS0VZX1BBUkVOVF9JRCkgIT09IDAKCWJ5dGVjIDI3IC8vICJpLnBhcmVudEFwcElEIgoJY2FsbHN1YiBzYWZlR2xvYmFsSW50R2V0CglpbnRjIDAgLy8gMAoJIT0KCWJ6ICppZjYzX2Vsc2UKCgkvLyAqaWY2M19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDk4CgkvLyBwYXJlbnRBcHBJZCA9IEFwcElELmZyb21VaW50NjQodGhpcy5zYWZlR2xvYmFsSW50R2V0KE5GRF9LRVlfUEFSRU5UX0lEKSkKCWJ5dGVjIDI3IC8vICJpLnBhcmVudEFwcElEIgoJY2FsbHN1YiBzYWZlR2xvYmFsSW50R2V0CglmcmFtZV9idXJ5IDEwIC8vIHBhcmVudEFwcElkOiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDk5CgkvLyBzZWdtZW50Q29tbWlzc2lvbkFkZHJlc3MgPSBBZGRyZXNzLmZyb21CeXRlcyhwYXJlbnRBcHBJZC5nbG9iYWxTdGF0ZShORkRfS0VZX09XTkVSKSBhcyBBZGRyZXNzKQoJZnJhbWVfZGlnIDEwIC8vIHBhcmVudEFwcElkOiB1aW50NjQKCWJ5dGVjIDEgLy8gImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBwYXJlbnRBcHBJZC5nbG9iYWxTdGF0ZShORkRfS0VZX09XTkVSKQoJYXNzZXJ0CglmcmFtZV9idXJ5IDkgLy8gc2VnbWVudENvbW1pc3Npb25BZGRyZXNzOiBhZGRyZXNzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTEwNAoJLy8gZXh0cmFEYXlzID0gKDM2NSAqIHJlbmV3QW10KSAvIHJlcVByaWNlCglpbnRjIDggLy8gMzY1CglmcmFtZV9kaWcgNiAvLyByZW5ld0FtdDogdWludDY0CgkqCglmcmFtZV9kaWcgMiAvLyByZXFQcmljZTogdWludDY0CgkvCglmcmFtZV9idXJ5IDExIC8vIGV4dHJhRGF5czogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTEwNgoJLy8gZ3Jvc3NUb1RyZWFzdXJ5ID0gKGV4dHJhRGF5cyAqIGNvbnN0cmFpbnREYXRhLnNlZ21lbnRQbGF0Zm9ybUNvc3RJbkFsZ28pIC8gMzY1CglmcmFtZV9kaWcgMTEgLy8gZXh0cmFEYXlzOiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIGNvbnN0cmFpbnREYXRhOiAodWludDY0LHVpbnQ2NCx1aW50NjQsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgOCA4CglidG9pCgkqCglpbnRjIDggLy8gMzY1CgkvCglmcmFtZV9idXJ5IDcgLy8gZ3Jvc3NUb1RyZWFzdXJ5OiB1aW50NjQKCgkvLyAqaWY2NF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExMDcKCS8vIGdyb3NzVG9UcmVhc3VyeSA8IGNvbnN0cmFpbnREYXRhLnNlZ21lbnRQbGF0Zm9ybUNvc3RJbkFsZ28KCWZyYW1lX2RpZyA3IC8vIGdyb3NzVG9UcmVhc3VyeTogdWludDY0CglmcmFtZV9kaWcgMSAvLyBjb25zdHJhaW50RGF0YTogKHVpbnQ2NCx1aW50NjQsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDggOAoJYnRvaQoJPAoJYnogKmlmNjRfZW5kCgoJLy8gKmlmNjRfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTEwOAoJLy8gZ3Jvc3NUb1RyZWFzdXJ5ID0gY29uc3RyYWludERhdGEuc2VnbWVudFBsYXRmb3JtQ29zdEluQWxnbwoJZnJhbWVfZGlnIDEgLy8gY29uc3RyYWludERhdGE6ICh1aW50NjQsdWludDY0LHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWZyYW1lX2J1cnkgNyAvLyBncm9zc1RvVHJlYXN1cnk6IHVpbnQ2NAoKKmlmNjRfZW5kOgoJLy8gKmlmNjVfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTEwCgkvLyBncm9zc1RvVHJlYXN1cnkgPj0gcmVuZXdBbXQKCWZyYW1lX2RpZyA3IC8vIGdyb3NzVG9UcmVhc3VyeTogdWludDY0CglmcmFtZV9kaWcgNiAvLyByZW5ld0FtdDogdWludDY0Cgk+PQoJYnogKmlmNjVfZW5kCgoJLy8gKmlmNjVfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTExMQoJLy8gZ3Jvc3NUb1RyZWFzdXJ5ID0gcmVuZXdBbXQKCWZyYW1lX2RpZyA2IC8vIHJlbmV3QW10OiB1aW50NjQKCWZyYW1lX2J1cnkgNyAvLyBncm9zc1RvVHJlYXN1cnk6IHVpbnQ2NAoKKmlmNjVfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTExNAoJLy8gc2VnbWVudENvbW1pc3Npb25Ub1BheSA9IHJlbmV3QW10IC0gZ3Jvc3NUb1RyZWFzdXJ5CglmcmFtZV9kaWcgNiAvLyByZW5ld0FtdDogdWludDY0CglmcmFtZV9kaWcgNyAvLyBncm9zc1RvVHJlYXN1cnk6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSA4IC8vIHNlZ21lbnRDb21taXNzaW9uVG9QYXk6IHVpbnQ2NAoJYiAqaWY2M19lbmQKCippZjYzX2Vsc2U6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTE3CgkvLyBzZWdtZW50Q29tbWlzc2lvblRvUGF5ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgOCAvLyBzZWdtZW50Q29tbWlzc2lvblRvUGF5OiB1aW50NjQKCippZjYzX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExMTkKCS8vIHRoaXMuZG9QYXlvdXRzKAoJLy8gICAgICAgICAgICAgZ3Jvc3NUb1RyZWFzdXJ5LAoJLy8gICAgICAgICAgICAgY29uc3RyYWludERhdGEudHJlYXN1cnlBZGRyZXNzLAoJLy8gICAgICAgICAgICAgMCwKCS8vICAgICAgICAgICAgIHNlZ21lbnRDb21taXNzaW9uVG9QYXksCgkvLyAgICAgICAgICAgICBzZWdtZW50Q29tbWlzc2lvbkFkZHJlc3MsCgkvLyAgICAgICAgICkKCWZyYW1lX2RpZyA5IC8vIHNlZ21lbnRDb21taXNzaW9uQWRkcmVzczogYWRkcmVzcwoJZnJhbWVfZGlnIDggLy8gc2VnbWVudENvbW1pc3Npb25Ub1BheTogdWludDY0CglpbnRjIDAgLy8gMAoJZnJhbWVfZGlnIDEgLy8gY29uc3RyYWludERhdGE6ICh1aW50NjQsdWludDY0LHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAyNCAzMgoJZnJhbWVfZGlnIDcgLy8gZ3Jvc3NUb1RyZWFzdXJ5OiB1aW50NjQKCWNhbGxzdWIgZG9QYXlvdXRzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTEyNgoJLy8gdGhpcy5uZmRfcmVuZXdlZC5sb2coewoJLy8gICAgICAgICAgICAgYXBwSWQ6IHRoaXMuYXBwLmlkLAoJLy8gICAgICAgICAgICAgbmFtZTogdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlLAoJLy8gICAgICAgICAgICAgb3JpZ093bmVyOiBvcmlnT3duZXIsCgkvLyAgICAgICAgICAgICBidXllcjogcGF5bWVudC5zZW5kZXIsCgkvLyAgICAgICAgICAgICBwcmljZU9uZVllYXI6IHJlcVByaWNlLAoJLy8gICAgICAgICAgICAgcmVuZXdBbW91bnQ6IHBheW1lbnQuYW1vdW50LAoJLy8gICAgICAgICAgICAgZXhwVGltZTogYnRvaSh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfRVhQSVJBVElPTlRJTUUpLnZhbHVlKSwKCS8vICAgICAgICAgfSkKCXB1c2hieXRlcyAweDE0YTc2YTNlIC8vIG5mZF9yZW5ld2VkKHVpbnQ2NCxzdHJpbmcsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYnl0ZWMgMCAvLyAgaW5pdGlhbCBoZWFkCglieXRlYyAwIC8vICBpbml0aWFsIHRhaWwKCXB1c2hieXRlcyAweDAwNjIgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZWMgNCAvLyAiaS5uYW1lIgoJYXBwX2dsb2JhbF9nZXQKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIDQgLy8gb3JpZ093bmVyOiBhZGRyZXNzCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBTZW5kZXIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAyIC8vIHJlcVByaWNlOiB1aW50NjQKCWl0b2IKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMSAvLyBwYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJaXRvYgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZWMgMTcgLy8gImkuZXhwaXJhdGlvblRpbWUiCglhcHBfZ2xvYmFsX2dldAoJYnRvaQoJaXRvYgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCgljb25jYXQKCWxvZwoJcmV0c3ViCgovLyBzZXRQcmltYXJ5QWRkcmVzcyhzdHJpbmcsYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfc2V0UHJpbWFyeUFkZHJlc3M6CgkvLyBhZGRyZXNzOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50YyAzIC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFkZHJlc3MpIGZvciBzZXRQcmltYXJ5QWRkcmVzcyBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZmllbGROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBzZXRQcmltYXJ5QWRkcmVzcyhzdHJpbmcsYWRkcmVzcyl2b2lkCgljYWxsc3ViIHNldFByaW1hcnlBZGRyZXNzCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBzZXRQcmltYXJ5QWRkcmVzcyhmaWVsZE5hbWU6IHN0cmluZywgYWRkcmVzczogQWRkcmVzcyk6IHZvaWQKc2V0UHJpbWFyeUFkZHJlc3M6Cglwcm90byAyIDAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTM5CgkvLyB0aGlzLmFzc2VydE93bmVyQ2FsbGVkTm90Rm9yU2FsZU9yRXhwaXJlZCgpCgljYWxsc3ViIGFzc2VydE93bmVyQ2FsbGVkTm90Rm9yU2FsZU9yRXhwaXJlZAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExNDEKCS8vIGFzc2VydChmaWVsZE5hbWUgPT09IE5GRF9GSUVMRF9DQV9WRVJJRklFRF9TRVQpCglmcmFtZV9kaWcgLTEgLy8gZmllbGROYW1lOiBzdHJpbmcKCXB1c2hieXRlcyAidi5jYUFsZ28uMC5hcyIKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTQyCgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExNDMKCS8vIHRoaXMuZmluZEFkZHJBbmRTZXRGaXJzdChmaWVsZE5hbWUsIGFkZHJlc3MpCglmcmFtZV9kaWcgLTIgLy8gYWRkcmVzczogQWRkcmVzcwoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkTmFtZTogc3RyaW5nCgljYWxsc3ViIGZpbmRBZGRyQW5kU2V0Rmlyc3QKCXJldHN1YgoKLy8gcmVnaXN0cnlBZGRpbmdWZXJpZmllZEFkZHJlc3Moc3RyaW5nLHN0cmluZylib29sCiphYmlfcm91dGVfcmVnaXN0cnlBZGRpbmdWZXJpZmllZEFkZHJlc3M6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDExIC8vIDB4MTUxZjdjNzUKCgkvLyBmaWVsZFNldE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBmaWVsZEJlaW5nVmVyaWZpZWQ6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHJlZ2lzdHJ5QWRkaW5nVmVyaWZpZWRBZGRyZXNzKHN0cmluZyxzdHJpbmcpYm9vbAoJY2FsbHN1YiByZWdpc3RyeUFkZGluZ1ZlcmlmaWVkQWRkcmVzcwoJYnl0ZWMgMjkgLy8gMHgwMAoJaW50YyAwIC8vIDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gcmVnaXN0cnlBZGRpbmdWZXJpZmllZEFkZHJlc3MoZmllbGRCZWluZ1ZlcmlmaWVkOiBzdHJpbmcsIGZpZWxkU2V0TmFtZTogc3RyaW5nKTogYm9vbGVhbgovLwovLyBBcHByb3ZlZCBjYWxsIGZyb20gcmVnaXN0cnkgaW5zdHJ1Y3RpbmcgdXMgdG8gbW92ZSB0aGUgc3BlY2lmaWVkIHUuY2F2Lnh4IGZpZWxkIGFuZCBhZGQgdG8gdGhlIHNwZWNpZmllZAovLyB2ZXJpZmllZCBmaWVsZC4KLy8KLy8gQHBhcmFtIGZpZWxkQmVpbmdWZXJpZmllZCAtIHt1c2VyLWRlZmluZWQgZmllbGQgdG8gJ3ZlcmlmeScgLSBieSBhZGRpbmcgdG8gc3BlY2lmaWVkIHZlcmlmaWVkIHNldAovLyBpZTogdS5jYXYuYWxnby5hIC0gdXNlci1kZWZpbmVkIHByZS12ZXJpZnl9IC0gTVVTVCBTVEFSVCB3aXRoIHUuY2F2LiAoISkKLy8gZ2V0cyAnYWRkZWQnIHRvICdzZXQnIGluIG5leHQgYXJnIC0gbXVzdCBiZSBmaXhlZC1zaXplZCBieXRlcwovLyBAcGFyYW0gZmllbGRTZXROYW1lIC0ge2ZpZWxkIHNldCBuYW1lIC0gaWU6IHYuY2FBbGdvLjAuYXMsIHYuY2FFdGguMC5hc30gKG11c3QgQkUgdi5jYVsuLi5dLmFzKQovLyBAcmV0dXJucyB0cnVlIGlmIGFkZGVkIG9yIGFscmVhZHkgcHJlc2VudCwgZmFsc2Ugb3RoZXJ3aXNlCnJlZ2lzdHJ5QWRkaW5nVmVyaWZpZWRBZGRyZXNzOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTU3CgkvLyBhc3NlcnQoZ2xvYmFscy5jYWxsZXJBcHBsaWNhdGlvbklEID09PSBBcHBJRC5mcm9tVWludDY0KHRoaXMucmVnaXN0cnlBcHBJZCksICdjYWxsZXIgbXVzdCBiZSBORkQgcmVnaXN0cnkhJykKCWdsb2JhbCBDYWxsZXJBcHBsaWNhdGlvbklECglpbnRjIDQgLy8gVE1QTF9yZWdpc3RyeUFwcElkCgk9PQoKCS8vIGNhbGxlciBtdXN0IGJlIE5GRCByZWdpc3RyeSEKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExNTgKCS8vIHRoaXMubm90Rm9yU2FsZU9yRXhwaXJlZCgpCgljYWxsc3ViIG5vdEZvclNhbGVPckV4cGlyZWQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTU5CgkvLyBhc3NlcnQoZXh0cmFjdDMoZmllbGRCZWluZ1ZlcmlmaWVkLCAwLCA2KSA9PT0gJ3UuY2F2LicsICdmaWVsZCBiZWluZyB2ZXJpZmllZCBNVVNUIFNUQVJUIHdpdGggdS5jYXYnKQoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkQmVpbmdWZXJpZmllZDogc3RyaW5nCglleHRyYWN0IDAgNgoJcHVzaGJ5dGVzIDB4NzUyZTYzNjE3NjJlIC8vICJ1LmNhdi4iCgk9PQoKCS8vIGZpZWxkIGJlaW5nIHZlcmlmaWVkIE1VU1QgU1RBUlQgd2l0aCB1LmNhdgoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTE2MAoJLy8gYXNzZXJ0KGV4dHJhY3QzKGZpZWxkU2V0TmFtZSwgMCwgNCkgPT09ICd2LmNhJywgJ2Rlc3RpbmF0aW9uIGZpZWxkIE1VU1QgU1RBUlQgd2l0aCB2LmNhWy4uLi5dJykKCWZyYW1lX2RpZyAtMiAvLyBmaWVsZFNldE5hbWU6IHN0cmluZwoJZXh0cmFjdCAwIDQKCWJ5dGVjIDM4IC8vICAidi5jYSIKCT09CgoJLy8gZGVzdGluYXRpb24gZmllbGQgTVVTVCBTVEFSVCB3aXRoIHYuY2FbLi4uLl0KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExNjEKCS8vIGFzc2VydChleHRyYWN0MyhmaWVsZFNldE5hbWUsIGxlbihmaWVsZFNldE5hbWUpIC0gMywgMykgPT09ICcuYXMnLCAnZGVzdGluYXRpb24gZmllbGQgbXVzdCBlbmQgRU5EIHdpdGggLmFzJykKCWZyYW1lX2RpZyAtMiAvLyBmaWVsZFNldE5hbWU6IHN0cmluZwoJZnJhbWVfZGlnIC0yIC8vIGZpZWxkU2V0TmFtZTogc3RyaW5nCglsZW4KCWludGMgNiAvLyAzCgktCglpbnRjIDYgLy8gMwoJZXh0cmFjdDMKCWJ5dGVjIDM5IC8vICAiLmFzIgoJPT0KCgkvLyBkZXN0aW5hdGlvbiBmaWVsZCBtdXN0IGVuZCBFTkQgd2l0aCAuYXMKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExNjIKCS8vIGFzc2VydCgKCS8vICAgICAgICAgICAgIHRoaXMuYm94ZXMoZmllbGRCZWluZ1ZlcmlmaWVkKS5leGlzdHMsCgkvLyAgICAgICAgICAgICAncmVmZXJlbmNlZCBmaWVsZCB0byBhZGQgYXMgdmVyaWZpZWQgYWRkcmVzcyBtdXN0IGhhdmUgdmFsdWUgaW4gYm94IHN0b3JhZ2UnLAoJLy8gICAgICAgICApCglmcmFtZV9kaWcgLTEgLy8gZmllbGRCZWluZ1ZlcmlmaWVkOiBzdHJpbmcKCWJveF9sZW4KCXN3YXAKCXBvcAoKCS8vIHJlZmVyZW5jZWQgZmllbGQgdG8gYWRkIGFzIHZlcmlmaWVkIGFkZHJlc3MgbXVzdCBoYXZlIHZhbHVlIGluIGJveCBzdG9yYWdlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTY2CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExNjgKCS8vIGZpZWxkVmFsdWUgPSB0aGlzLmJveGVzKGZpZWxkQmVpbmdWZXJpZmllZCkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEJlaW5nVmVyaWZpZWQ6IHN0cmluZwoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hlcyhmaWVsZEJlaW5nVmVyaWZpZWQpLnZhbHVlCglhc3NlcnQKCWZyYW1lX2J1cnkgMCAvLyBmaWVsZFZhbHVlOiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTY5CgkvLyB0aGlzLmJveGVzKGZpZWxkQmVpbmdWZXJpZmllZCkuZGVsZXRlKCkKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEJlaW5nVmVyaWZpZWQ6IHN0cmluZwoJYm94X2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExNzEKCS8vIHRoaXMubmZkX2FkZHJlc3NMaW5rZWQubG9nKHsKCS8vICAgICAgICAgICAgIGFwcElkOiB0aGlzLmFwcC5pZCwKCS8vICAgICAgICAgICAgIG5hbWU6IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9OQU1FKS52YWx1ZSwKCS8vICAgICAgICAgICAgIGFkZHJlc3M6IEFkZHJlc3MuZnJvbUJ5dGVzKGZpZWxkVmFsdWUpLAoJLy8gICAgICAgICB9KQoJcHVzaGJ5dGVzIDB4Y2Y5ZDFlMjQgLy8gbmZkX2FkZHJlc3NMaW5rZWQodWludDY0LHN0cmluZyxhZGRyZXNzKQoJYnl0ZWMgMCAvLyAgaW5pdGlhbCBoZWFkCglieXRlYyAwIC8vICBpbml0aWFsIHRhaWwKCWJ5dGVjIDQyIC8vICBpbml0aWFsIGhlYWQgb2Zmc2V0Cgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlYyA0IC8vICJpLm5hbWUiCglhcHBfZ2xvYmFsX2dldAoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgMCAvLyBmaWVsZFZhbHVlOiBieXRlW10KCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJY29uY2F0Cglsb2cKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTc3CgkvLyByZXR1cm4gdGhpcy5hZGRCeXRlc1RvU2V0KGZpZWxkU2V0TmFtZSwgZmllbGRWYWx1ZSkKCWZyYW1lX2RpZyAwIC8vIGZpZWxkVmFsdWU6IGJ5dGVbXQoJZnJhbWVfZGlnIC0yIC8vIGZpZWxkU2V0TmFtZTogc3RyaW5nCgljYWxsc3ViIGFkZEJ5dGVzVG9TZXQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gcmVnaXN0cnlSZW1vdmluZ1ZlcmlmaWVkQWRkcmVzcyhzdHJpbmcsYWRkcmVzcyxhZGRyZXNzKWJvb2wKKmFiaV9yb3V0ZV9yZWdpc3RyeVJlbW92aW5nVmVyaWZpZWRBZGRyZXNzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAxMSAvLyAweDE1MWY3Yzc1CgoJLy8gbWJyUmVmdW5kRGVzdDogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZHVwCglsZW4KCWludGMgMyAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChtYnJSZWZ1bmREZXN0KSBmb3IgcmVnaXN0cnlSZW1vdmluZ1ZlcmlmaWVkQWRkcmVzcyBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gYWRkcmVzczogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludGMgMyAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhZGRyZXNzKSBmb3IgcmVnaXN0cnlSZW1vdmluZ1ZlcmlmaWVkQWRkcmVzcyBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZmllbGRCZWluZ0NoYW5nZWQ6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHJlZ2lzdHJ5UmVtb3ZpbmdWZXJpZmllZEFkZHJlc3Moc3RyaW5nLGFkZHJlc3MsYWRkcmVzcylib29sCgljYWxsc3ViIHJlZ2lzdHJ5UmVtb3ZpbmdWZXJpZmllZEFkZHJlc3MKCWJ5dGVjIDI5IC8vIDB4MDAKCWludGMgMCAvLyAwCgl1bmNvdmVyIDIKCXNldGJpdAoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHJlZ2lzdHJ5UmVtb3ZpbmdWZXJpZmllZEFkZHJlc3MoZmllbGRCZWluZ0NoYW5nZWQ6IHN0cmluZywgYWRkcmVzczogQWRkcmVzcywgbWJyUmVmdW5kRGVzdDogQWRkcmVzcyk6IGJvb2xlYW4KLy8KLy8gQXBwcm92ZWQgY2FsbCBmcm9tIHJlZ2lzdHJ5IGluc3RydWN0aW5nIHVzIHRvIFJFTU9WRSBhbiBhZGRyZXNzIGZyb20gdGhlIHNwZWNpZmllZCB2ZXJpZmllZCBhZGRyZXNzIHNldAovLwovLyBAcGFyYW0ge3N0cmluZ30gZmllbGRCZWluZ0NoYW5nZWQgLSBUaGUgZmllbGQgYmVpbmcgY2hhbmdlZCBpbiB0aGUgYWRkcmVzcyByZWdpc3RyeS4KLy8gQHBhcmFtIHtBZGRyZXNzfSBhZGRyZXNzIC0gVGhlIGFkZHJlc3MgdG8gYmUgcmVtb3ZlZCBmcm9tIHRoZSBmaWVsZC4KLy8gQHBhcmFtIHtBZGRyZXNzfSBtYnJSZWZ1bmREZXN0IC0gdGhlIGFkZHJlc3MgdG8gc2VuZCByZWNsYWltZWQgTUJSIChpZiBhbnkpCi8vIEByZXR1cm4ge2Jvb2xlYW59IC0gdHJ1ZSBpZiB2YWxpZCByZW1vdmVkCnJlZ2lzdHJ5UmVtb3ZpbmdWZXJpZmllZEFkZHJlc3M6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTE4OQoJLy8gYXNzZXJ0KGdsb2JhbHMuY2FsbGVyQXBwbGljYXRpb25JRCA9PT0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnJlZ2lzdHJ5QXBwSWQpLCAnY2FsbGVyIG11c3QgYmUgTkZEIHJlZ2lzdHJ5IScpCglnbG9iYWwgQ2FsbGVyQXBwbGljYXRpb25JRAoJaW50YyA0IC8vIFRNUExfcmVnaXN0cnlBcHBJZAoJPT0KCgkvLyBjYWxsZXIgbXVzdCBiZSBORkQgcmVnaXN0cnkhCglhc3NlcnQKCgkvLyAqaWY2Nl9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExOTEKCS8vICF0aGlzLmlzRXhwaXJlZCgpCgljYWxsc3ViIGlzRXhwaXJlZAoJIQoJYnogKmlmNjZfZW5kCgoJLy8gKmlmNjZfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTE5MgoJLy8gYXNzZXJ0KCF0aGlzLmlzRm9yU2FsZSgpLCAiY2FuJ3QgYmUgZm9yIHNhbGUiKQoJY2FsbHN1YiBpc0ZvclNhbGUKCSEKCgkvLyBjYW4ndCBiZSBmb3Igc2FsZQoJYXNzZXJ0CgoqaWY2Nl9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTk0CgkvLyBhc3NlcnQoZXh0cmFjdDMoZmllbGRCZWluZ0NoYW5nZWQsIDAsIDQpID09PSAndi5jYScsICd2ZXJpZmllZCBmaWVsZCBNVVNUIFNUQVJUIHdpdGggdi5jYVsuLi4uXScpCglmcmFtZV9kaWcgLTEgLy8gZmllbGRCZWluZ0NoYW5nZWQ6IHN0cmluZwoJZXh0cmFjdCAwIDQKCWJ5dGVjIDM4IC8vICAidi5jYSIKCT09CgoJLy8gdmVyaWZpZWQgZmllbGQgTVVTVCBTVEFSVCB3aXRoIHYuY2FbLi4uLl0KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExOTUKCS8vIGFzc2VydCgKCS8vICAgICAgICAgICAgIGV4dHJhY3QzKGZpZWxkQmVpbmdDaGFuZ2VkLCBsZW4oZmllbGRCZWluZ0NoYW5nZWQpIC0gMywgMykgPT09ICcuYXMnLAoJLy8gICAgICAgICAgICAgJ3ZlcmlmaWVkIGZpZWxkIG11c3QgZW5kIEVORCB3aXRoIC5hcycsCgkvLyAgICAgICAgICkKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEJlaW5nQ2hhbmdlZDogc3RyaW5nCglmcmFtZV9kaWcgLTEgLy8gZmllbGRCZWluZ0NoYW5nZWQ6IHN0cmluZwoJbGVuCglpbnRjIDYgLy8gMwoJLQoJaW50YyA2IC8vIDMKCWV4dHJhY3QzCglieXRlYyAzOSAvLyAgIi5hcyIKCT09CgoJLy8gdmVyaWZpZWQgZmllbGQgbXVzdCBlbmQgRU5EIHdpdGggLmFzCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTk5CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyMDEKCS8vIGV4aXN0aW5nU2l6ZSA9IHRoaXMuYm94ZXMoZmllbGRCZWluZ0NoYW5nZWQpLnNpemUKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEJlaW5nQ2hhbmdlZDogc3RyaW5nCglib3hfbGVuCgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJveGVzKGZpZWxkQmVpbmdDaGFuZ2VkKS5zaXplCglhc3NlcnQKCWZyYW1lX2J1cnkgMCAvLyBleGlzdGluZ1NpemU6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyMDIKCS8vIHJlbW92ZWQgPSB0aGlzLnJlbW92ZUFkZHJGcm9tU2V0KGZpZWxkQmVpbmdDaGFuZ2VkLCBhZGRyZXNzKQoJZnJhbWVfZGlnIC0yIC8vIGFkZHJlc3M6IEFkZHJlc3MKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEJlaW5nQ2hhbmdlZDogc3RyaW5nCgljYWxsc3ViIHJlbW92ZUFkZHJGcm9tU2V0CglmcmFtZV9idXJ5IDEgLy8gcmVtb3ZlZDogYm9vbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyMDQKCS8vIHRoaXMubmZkX2FkZHJlc3NVbmxpbmtlZC5sb2coewoJLy8gICAgICAgICAgICAgYXBwSWQ6IHRoaXMuYXBwLmlkLAoJLy8gICAgICAgICAgICAgbmFtZTogdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlLAoJLy8gICAgICAgICAgICAgYWRkcmVzczogYWRkcmVzcywKCS8vICAgICAgICAgfSkKCXB1c2hieXRlcyAweGE0ZDNiOWE3IC8vIG5mZF9hZGRyZXNzVW5saW5rZWQodWludDY0LHN0cmluZyxhZGRyZXNzKQoJYnl0ZWMgMCAvLyAgaW5pdGlhbCBoZWFkCglieXRlYyAwIC8vICBpbml0aWFsIHRhaWwKCWJ5dGVjIDQyIC8vICBpbml0aWFsIGhlYWQgb2Zmc2V0Cgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlYyA0IC8vICJpLm5hbWUiCglhcHBfZ2xvYmFsX2dldAoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTIgLy8gYWRkcmVzczogQWRkcmVzcwoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCgljb25jYXQKCWxvZwoKCS8vICppZjY3X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTIxMAoJLy8gIXRoaXMuYm94ZXMoZmllbGRCZWluZ0NoYW5nZWQpLmV4aXN0cwoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkQmVpbmdDaGFuZ2VkOiBzdHJpbmcKCWJveF9sZW4KCXN3YXAKCXBvcAoJIQoJYnogKmlmNjdfZW5kCgoJLy8gKmlmNjdfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTIxMgoJLy8gc2VuZFBheW1lbnQoewoJLy8gICAgICAgICAgICAgICAgIGFtb3VudDogU0NCT1hfUEVSQk9YICsgU0NCT1hfUEVSQllURSAqIChmaWVsZEJlaW5nQ2hhbmdlZC5sZW5ndGggKyBleGlzdGluZ1NpemUpLAoJLy8gICAgICAgICAgICAgICAgIHJlY2VpdmVyOiBtYnJSZWZ1bmREZXN0LAoJLy8gICAgICAgICAgICAgICAgIG5vdGU6ICdib3hSZWZ1bmQnLAoJLy8gICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMSAvLyAgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTIxMwoJLy8gYW1vdW50OiBTQ0JPWF9QRVJCT1ggKyBTQ0JPWF9QRVJCWVRFICogKGZpZWxkQmVpbmdDaGFuZ2VkLmxlbmd0aCArIGV4aXN0aW5nU2l6ZSkKCWludGMgMTIgLy8gMjUwMAoJaW50YyA5IC8vIDQwMAoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkQmVpbmdDaGFuZ2VkOiBzdHJpbmcKCWxlbgoJZnJhbWVfZGlnIDAgLy8gZXhpc3RpbmdTaXplOiB1aW50NjQKCSsKCSoKCSsKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTIxNAoJLy8gcmVjZWl2ZXI6IG1iclJlZnVuZERlc3QKCWZyYW1lX2RpZyAtMyAvLyBtYnJSZWZ1bmREZXN0OiBBZGRyZXNzCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTIxNQoJLy8gbm90ZTogJ2JveFJlZnVuZCcKCWJ5dGVjIDMxIC8vICAiYm94UmVmdW5kIgoJaXR4bl9maWVsZCBOb3RlCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKKmlmNjdfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTIxOQoJLy8gcmV0dXJuIHJlbW92ZWQKCWZyYW1lX2RpZyAxIC8vIHJlbW92ZWQ6IGJvb2wKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGdldFJlbmV3UHJpY2VEYXRhKGNhbGxlcjogQWRkcmVzcyk6IFByaWNlSW5mbwovLwovLyBSZXRyaWV2ZXMgdGhlIHJlbmV3IHByaWNlIGRhdGEgZm9yIGEgZ2l2ZW4gc2VuZGVyIGFkZHJlc3MuCi8vCi8vIEBwYXJhbSBjYWxsZXIgLSBUaGUgYWRkcmVzcyBvZiB0aGUgc2VuZGVyLgovLyBAcmV0dXJucyB7UHJpY2VJbmZvfQpnZXRSZW5ld1ByaWNlRGF0YToKCXByb3RvIDEgMQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyMzAKCS8vIHJldHVybiBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgTkZEUmVnaXN0cnkucHJvdG90eXBlLmdldFByaWNlPih7CgkvLyAgICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMucmVnaXN0cnlBcHBJZCksCgkvLyAgICAgICAgICAgICBtZXRob2RBcmdzOiBbdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlLCBjYWxsZXJdLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglwdXNoYnl0ZXMgMHhmZmMyMzAzYyAvLyBtZXRob2QgImdldFByaWNlKHN0cmluZyxhZGRyZXNzKSh1aW50NjQsdWludDY0LGJvb2wsYm9vbCxib29sKSIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTIzMQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnJlZ2lzdHJ5QXBwSWQpCglpbnRjIDQgLy8gVE1QTF9yZWdpc3RyeUFwcElkCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjMyCgkvLyBtZXRob2RBcmdzOiBbdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlLCBjYWxsZXJdCglieXRlYyA0IC8vICJpLm5hbWUiCglhcHBfZ2xvYmFsX2dldAoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTEgLy8gY2FsbGVyOiBBZGRyZXNzCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50YyAxIC8vIDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJcmV0c3ViCgovLyB2YXVsdE9wdEluRnJvbUFyZ3MoKTogdm9pZAp2YXVsdE9wdEluRnJvbUFyZ3M6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI0MwoJLy8gdGhpcy5ub3RGb3JTYWxlT3JFeHBpcmVkKCkKCWNhbGxzdWIgbm90Rm9yU2FsZU9yRXhwaXJlZAoKCS8vICppZjY4X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI0NwoJLy8gdGhpcy5pc1ZhdWx0QXV0b09wdEluTG9ja2VkKCkKCWNhbGxzdWIgaXNWYXVsdEF1dG9PcHRJbkxvY2tlZAoJYnogKmlmNjhfZW5kCgoJLy8gKmlmNjhfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI0OAoJLy8gYXNzZXJ0KHJhd0J5dGVzKHRoaXMudHhuLnNlbmRlcikgPT09IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9PV05FUikudmFsdWUsICdzZW5kZXIgbXVzdCBiZSBvd25lcicpCgl0eG4gU2VuZGVyCglieXRlYyAxIC8vICJpLm93bmVyLmEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCgkvLyBzZW5kZXIgbXVzdCBiZSBvd25lcgoJYXNzZXJ0CgoqaWY2OF9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjUxCgkvLyBhc3NlcnQodGhpcy50eG4uZ3JvdXBJbmRleCA+IDAsICdwYXJ0IG9mIG9wdC1pbiBmb3IgbmV3IGFzc2V0LCBtdXN0IGhhdmUgcHJpb3IgdHhuIHBheWluZyBNQlInKQoJdHhuIEdyb3VwSW5kZXgKCWludGMgMCAvLyAwCgk+CgoJLy8gcGFydCBvZiBvcHQtaW4gZm9yIG5ldyBhc3NldCwgbXVzdCBoYXZlIHByaW9yIHR4biBwYXlpbmcgTUJSCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjUzCgkvLyB2ZXJpZnlQYXlUeG4odGhpcy50eG5Hcm91cFt0aGlzLnR4bi5ncm91cEluZGV4IC0gMV0sIHsKCS8vICAgICAgICAgICAgIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgICAgICAgYW1vdW50OiAxMDBfMDAwICogKHRoaXMudHhuLm51bUFwcEFyZ3MgLSAxKSwKCS8vICAgICAgICAgfSkKCXR4biBHcm91cEluZGV4CglpbnRjIDEgLy8gMQoJLQoJc3RvcmUgMjQ4IC8vIHZlcmlmeVR4biBpbmRleAoKCS8vIHZlcmlmeSBwYXkKCWxvYWQgMjQ4IC8vIHZlcmlmeVR4biBpbmRleAoJZ3R4bnMgVHlwZUVudW0KCWludGMgMSAvLyAgcGF5Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG5Hcm91cFt0aGlzLnR4bi5ncm91cEluZGV4IC0gMV0iLCJmaWVsZCI6InR5cGVFbnVtIiwiZXhwZWN0ZWQiOiJwYXkifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHJlY2VpdmVyCglsb2FkIDI0OCAvLyB2ZXJpZnlUeG4gaW5kZXgKCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuR3JvdXBbdGhpcy50eG4uZ3JvdXBJbmRleCAtIDFdIiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50Cglsb2FkIDI0OCAvLyB2ZXJpZnlUeG4gaW5kZXgKCWd0eG5zIEFtb3VudAoJaW50YyAxNiAvLyAxMDBfMDAwCgl0eG4gTnVtQXBwQXJncwoJaW50YyAxIC8vIDEKCS0KCSoKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwW3RoaXMudHhuLmdyb3VwSW5kZXggLSAxXSIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiIxMDBfMDAwICogKHRoaXMudHhuLm51bUFwcEFyZ3MgLSAxKSJ9Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjU3CgkvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAxOyBpIDwgdGhpcy50eG4ubnVtQXBwQXJnczsgaSArPSAxKQoJaW50YyAxIC8vIDEKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCipmb3JfODoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyNTcKCS8vIGkgPCB0aGlzLnR4bi5udW1BcHBBcmdzCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCXR4biBOdW1BcHBBcmdzCgk8CglieiAqZm9yXzhfZW5kCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI1OAoJLy8gYXNzZXRJZCA9IEFzc2V0SUQuZnJvbVVpbnQ2NChidG9pKHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbaV0pKQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0Cgl0eG5hcyBBcHBsaWNhdGlvbkFyZ3MKCWJ0b2kKCWZyYW1lX2J1cnkgMSAvLyBhc3NldElkOiB1aW50NjQKCgkvLyAqaWY2OV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyNjAKCS8vICF0aGlzLmFwcC5hZGRyZXNzLmlzT3B0ZWRJblRvQXNzZXQoYXNzZXRJZCkKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgMSAvLyBhc3NldElkOiB1aW50NjQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJc3dhcAoJcG9wCgkhCglieiAqaWY2OV9lbmQKCgkvLyAqaWY2OV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjYxCgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICAgICAgICAgICAgICAgIHhmZXJBc3NldDogYXNzZXRJZCwKCS8vICAgICAgICAgICAgICAgICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgICAgICAgICAgICAgICAgYXNzZXRBbW91bnQ6IDAsCgkvLyAgICAgICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMTAgLy8gIGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI2MgoJLy8geGZlckFzc2V0OiBhc3NldElkCglmcmFtZV9kaWcgMSAvLyBhc3NldElkOiB1aW50NjQKCWl0eG5fZmllbGQgWGZlckFzc2V0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI2MwoJLy8gYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyNjQKCS8vIGFzc2V0QW1vdW50OiAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBBc3NldEFtb3VudAoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCippZjY5X2VuZDoKCipmb3JfOF9jb250aW51ZToKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyNTcKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzgKCipmb3JfOF9lbmQ6CglyZXRzdWIKCi8vIHNhZmVHbG9iYWxCeXRlR2V0KGtleTogYnl0ZXMpOiBieXRlcwpzYWZlR2xvYmFsQnl0ZUdldDoKCXByb3RvIDEgMQoKCS8vICppZjcwX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI3MQoJLy8gIXRoaXMuZ2xvYmFsU3RhdGUoa2V5KS5leGlzdHMKCXR4bmEgQXBwbGljYXRpb25zIDAKCWZyYW1lX2RpZyAtMSAvLyBrZXk6IGJ5dGVzCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCgkhCglieiAqaWY3MF9lbmQKCgkvLyAqaWY3MF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjcyCgkvLyByZXR1cm4gJycKCWJ5dGVjIDAgLy8gICIiCglyZXRzdWIKCippZjcwX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyNzQKCS8vIHJldHVybiB0aGlzLmdsb2JhbFN0YXRlKGtleSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBrZXk6IGJ5dGVzCglhcHBfZ2xvYmFsX2dldAoJcmV0c3ViCgovLyBzYWZlR2xvYmFsQnl0ZUdldEV4KGFwcElkOiB1aW50NjQsIGtleTogYnl0ZXMpOiBieXRlcwpzYWZlR2xvYmFsQnl0ZUdldEV4OgoJcHJvdG8gMiAxCgoJLy8gKmlmNzFfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjc4CgkvLyAhQXBwSUQuZnJvbVVpbnQ2NChhcHBJZCkuZ2xvYmFsU3RhdGVFeGlzdHMoa2V5KQoJZnJhbWVfZGlnIC0xIC8vIGFwcElkOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBrZXk6IGJ5dGVzCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCgkhCglieiAqaWY3MV9lbmQKCgkvLyAqaWY3MV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjc5CgkvLyByZXR1cm4gJycKCWJ5dGVjIDAgLy8gICIiCglyZXRzdWIKCippZjcxX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyODEKCS8vIHJldHVybiBBcHBJRC5mcm9tVWludDY0KGFwcElkKS5nbG9iYWxTdGF0ZShrZXkpIGFzIGJ5dGVzCglmcmFtZV9kaWcgLTEgLy8gYXBwSWQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGtleTogYnl0ZXMKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KGFwcElkKS5nbG9iYWxTdGF0ZShrZXkpCglhc3NlcnQKCXJldHN1YgoKLy8gc2FmZUdsb2JhbEludEdldChrZXk6IGJ5dGVzKTogdWludDY0CnNhZmVHbG9iYWxJbnRHZXQ6Cglwcm90byAxIDEKCgkvLyAqaWY3Ml9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyODUKCS8vICF0aGlzLmdsb2JhbFN0YXRlKGtleSkuZXhpc3RzCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglmcmFtZV9kaWcgLTEgLy8ga2V5OiBieXRlcwoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJIQoJYnogKmlmNzJfZW5kCgoJLy8gKmlmNzJfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI4NgoJLy8gcmV0dXJuIDAKCWludGMgMCAvLyAwCglyZXRzdWIKCippZjcyX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyODgKCS8vIHJldHVybiBidG9pKHRoaXMuZ2xvYmFsU3RhdGUoa2V5KS52YWx1ZSkKCWZyYW1lX2RpZyAtMSAvLyBrZXk6IGJ5dGVzCglhcHBfZ2xvYmFsX2dldAoJYnRvaQoJcmV0c3ViCgovLyBpc0N1cnJlbnRUeG5Db250cmFjdEF1dGhvcml0eSgpOiBib29sZWFuCmlzQ3VycmVudFR4bkNvbnRyYWN0QXV0aG9yaXR5OgoJcHJvdG8gMCAxCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI5NAoJLy8gcmV0dXJuIHRoaXMudHhuLnNlbmRlci5hc3NldEJhbGFuY2UodGhpcy5hZG1pbkFzYUlkKSA9PT0gMQoJdHhuIFNlbmRlcgoJaW50YyAyMCAvLyBUTVBMX2FkbWluQXNhSWQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglpbnRjIDEgLy8gMQoJPT0KCXJldHN1YgoKLy8gaXNGaWVsZERlbGV0ZUFsbG93ZWQoZmllbGROYW1lOiBieXRlcywgYWRtaW5SaWdodHM6IGJvb2xlYW4pOiBib29sZWFuCmlzRmllbGREZWxldGVBbGxvd2VkOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzEyCgkvLyB0cnVzdFR5cGUgPSBleHRyYWN0MyhmaWVsZE5hbWUsIDAsIDIpCglmcmFtZV9kaWcgLTEgLy8gZmllbGROYW1lOiBieXRlcwoJZXh0cmFjdCAwIDIKCWZyYW1lX2J1cnkgMCAvLyB0cnVzdFR5cGU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzMTQKCS8vIGFzc2VydCghdGhpcy5pc0ludGVybmFsRmllbGQodHJ1c3RUeXBlKSwgJ2ludGVybmFsIGZpZWxkcyBjYW4gbmV2ZXIgYmUgZGVsZXRlZCcpCglmcmFtZV9kaWcgMCAvLyB0cnVzdFR5cGU6IGJ5dGVbXQoJY2FsbHN1YiBpc0ludGVybmFsRmllbGQKCSEKCgkvLyBpbnRlcm5hbCBmaWVsZHMgY2FuIG5ldmVyIGJlIGRlbGV0ZWQKCWFzc2VydAoKCS8vICppZjczX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTMxNwoJLy8gYWRtaW5SaWdodHMKCWZyYW1lX2RpZyAtMiAvLyBhZG1pblJpZ2h0czogYm9vbGVhbgoJYnogKmlmNzNfZW5kCgoJLy8gKmlmNzNfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTMxOAoJLy8gcmV0dXJuIHRydWUKCWludGMgMSAvLyAxCgliICppc0ZpZWxkRGVsZXRlQWxsb3dlZCpyZXR1cm4KCippZjczX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzMjEKCS8vIGFzc2VydChsZW4odGhpcy5zYWZlR2xvYmFsQnl0ZUdldChORkRfS0VZX09XTkVSKSkgPT09IDMyLCAnbXVzdCBiZSBvd25lZCcpCglieXRlYyAxIC8vICJpLm93bmVyLmEiCgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0CglsZW4KCWludGMgMyAvLyAzMgoJPT0KCgkvLyBtdXN0IGJlIG93bmVkCglhc3NlcnQKCgkvLyAqaWY3NF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzMjMKCS8vICF0aGlzLmlzRXhwaXJlZCgpCgljYWxsc3ViIGlzRXhwaXJlZAoJIQoJYnogKmlmNzRfZW5kCgoJLy8gKmlmNzRfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTMyNAoJLy8gYXNzZXJ0KCF0aGlzLmlzRm9yU2FsZSgpLCAiY2FuJ3QgYmUgZm9yIHNhbGUiKQoJY2FsbHN1YiBpc0ZvclNhbGUKCSEKCgkvLyBjYW4ndCBiZSBmb3Igc2FsZQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTMyNQoJLy8gdGhpcy5tdXN0QmVDYWxsZWRCeU93bmVyKCkKCWNhbGxzdWIgbXVzdEJlQ2FsbGVkQnlPd25lcgoKKmlmNzRfZW5kOgoJLy8gKmlmNzVfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzI4CgkvLyB0aGlzLmlzVXNlckZpZWxkKHRydXN0VHlwZSkKCWZyYW1lX2RpZyAwIC8vIHRydXN0VHlwZTogYnl0ZVtdCgljYWxsc3ViIGlzVXNlckZpZWxkCglieiAqaWY3NV9lbmQKCgkvLyAqaWY3NV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzI5CgkvLyByZXR1cm4gdHJ1ZQoJaW50YyAxIC8vIDEKCWIgKmlzRmllbGREZWxldGVBbGxvd2VkKnJldHVybgoKKmlmNzVfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTMzMgoJLy8gcmV0dXJuIHRoaXMuaXNWZXJpZmllZEZpZWxkKHRydXN0VHlwZSkgJiYgIShleHRyYWN0MyhmaWVsZE5hbWUsIDAsIDgpID09PSAndi5jYUFsZ28nKQoJZnJhbWVfZGlnIDAgLy8gdHJ1c3RUeXBlOiBieXRlW10KCWNhbGxzdWIgaXNWZXJpZmllZEZpZWxkCglkdXAKCWJ6ICpza2lwX2FuZDE3CglmcmFtZV9kaWcgLTEgLy8gZmllbGROYW1lOiBieXRlcwoJZXh0cmFjdCAwIDgKCWJ5dGVjIDMzIC8vICAidi5jYUFsZ28iCgk9PQoJIQoJJiYKCipza2lwX2FuZDE3OgoKKmlzRmllbGREZWxldGVBbGxvd2VkKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBpc0ZpZWxkVXBkYXRlQWxsb3dlZChuYW1lOiBieXRlcywgdmFsdWU6IGJ5dGVzLCBhZG1pblJpZ2h0czogYm9vbGVhbik6IGJvb2xlYW4KaXNGaWVsZFVwZGF0ZUFsbG93ZWQ6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwbiAyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTM0OAoJLy8gdHJ1c3RUeXBlID0gZXh0cmFjdDMobmFtZSwgMCwgMikKCWZyYW1lX2RpZyAtMSAvLyBuYW1lOiBieXRlcwoJZXh0cmFjdCAwIDIKCWZyYW1lX2J1cnkgMCAvLyB0cnVzdFR5cGU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzNTAKCS8vIGFzc2VydCghdGhpcy5pc0ludGVybmFsRmllbGQodHJ1c3RUeXBlKSwgJ2ludGVybmFsIGZpZWxkcyBjYW4gbmV2ZXIgYmUgdXBkYXRlZCcpCglmcmFtZV9kaWcgMCAvLyB0cnVzdFR5cGU6IGJ5dGVbXQoJY2FsbHN1YiBpc0ludGVybmFsRmllbGQKCSEKCgkvLyBpbnRlcm5hbCBmaWVsZHMgY2FuIG5ldmVyIGJlIHVwZGF0ZWQKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzNTEKCS8vIGlzVXNlckZpZWxkID0gdGhpcy5pc1VzZXJGaWVsZCh0cnVzdFR5cGUpCglmcmFtZV9kaWcgMCAvLyB0cnVzdFR5cGU6IGJ5dGVbXQoJY2FsbHN1YiBpc1VzZXJGaWVsZAoJZnJhbWVfYnVyeSAxIC8vIGlzVXNlckZpZWxkOiBib29sCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTM1MgoJLy8gaXNWZXJpZmllZEZpZWxkID0gdGhpcy5pc1ZlcmlmaWVkRmllbGQodHJ1c3RUeXBlKQoJZnJhbWVfZGlnIDAgLy8gdHJ1c3RUeXBlOiBieXRlW10KCWNhbGxzdWIgaXNWZXJpZmllZEZpZWxkCglmcmFtZV9idXJ5IDIgLy8gaXNWZXJpZmllZEZpZWxkOiBib29sCgoJLy8gKmlmNzZfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzU0CgkvLyBhZG1pblJpZ2h0cyAmJiAoaXNWZXJpZmllZEZpZWxkIHx8IChpc1VzZXJGaWVsZCAmJiBsZW4odmFsdWUpID09PSAwKSkKCWZyYW1lX2RpZyAtMyAvLyBhZG1pblJpZ2h0czogYm9vbGVhbgoJZHVwCglieiAqc2tpcF9hbmQxOAoJZnJhbWVfZGlnIDIgLy8gaXNWZXJpZmllZEZpZWxkOiBib29sCglkdXAKCWJueiAqc2tpcF9vcjMKCWZyYW1lX2RpZyAxIC8vIGlzVXNlckZpZWxkOiBib29sCglkdXAKCWJ6ICpza2lwX2FuZDE5CglmcmFtZV9kaWcgLTIgLy8gdmFsdWU6IGJ5dGVzCglsZW4KCWludGMgMCAvLyAwCgk9PQoJJiYKCipza2lwX2FuZDE5OgoJfHwKCipza2lwX29yMzoKCSYmCgoqc2tpcF9hbmQxODoKCWJ6ICppZjc2X2VuZAoKCS8vICppZjc2X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzNTUKCS8vIHJldHVybiB0cnVlCglpbnRjIDEgLy8gMQoJYiAqaXNGaWVsZFVwZGF0ZUFsbG93ZWQqcmV0dXJuCgoqaWY3Nl9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzU4CgkvLyBhc3NlcnQobGVuKHRoaXMuc2FmZUdsb2JhbEJ5dGVHZXQoTkZEX0tFWV9PV05FUikpID09PSAzMiwgJ211c3QgYmUgb3duZWQnKQoJYnl0ZWMgMSAvLyAiaS5vd25lci5hIgoJY2FsbHN1YiBzYWZlR2xvYmFsQnl0ZUdldAoJbGVuCglpbnRjIDMgLy8gMzIKCT09CgoJLy8gbXVzdCBiZSBvd25lZAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTM1OQoJLy8gYXNzZXJ0KCF0aGlzLmlzRm9yU2FsZSgpLCAiY2FuJ3QgYmUgZm9yIHNhbGUiKQoJY2FsbHN1YiBpc0ZvclNhbGUKCSEKCgkvLyBjYW4ndCBiZSBmb3Igc2FsZQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTM2MAoJLy8gYXNzZXJ0KHRoaXMudHhuLnNlbmRlciA9PT0gQWRkcmVzcy5mcm9tQnl0ZXModGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX09XTkVSKS52YWx1ZSksICdzZW5kZXIgbXVzdCBiZSBvd25lcicpCgl0eG4gU2VuZGVyCglieXRlYyAxIC8vICJpLm93bmVyLmEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCgkvLyBzZW5kZXIgbXVzdCBiZSBvd25lcgoJYXNzZXJ0CgoJLy8gKmlmNzdfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzYyCgkvLyBpc1VzZXJGaWVsZAoJZnJhbWVfZGlnIDEgLy8gaXNVc2VyRmllbGQ6IGJvb2wKCWJ6ICppZjc3X2VuZAoKCS8vICppZjc3X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzNjMKCS8vIHJldHVybiB0cnVlCglpbnRjIDEgLy8gMQoJYiAqaXNGaWVsZFVwZGF0ZUFsbG93ZWQqcmV0dXJuCgoqaWY3N19lbmQ6CgkvLyAqaWY3OF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzNjYKCS8vIGxlbihuYW1lKSA+IDgKCWZyYW1lX2RpZyAtMSAvLyBuYW1lOiBieXRlcwoJbGVuCglpbnRjIDUgLy8gOAoJPgoJYnogKmlmNzhfZW5kCgoJLy8gKmlmNzhfY29uc2VxdWVudAoJLy8gKmlmNzlfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzY3CgkvLyBleHRyYWN0MyhuYW1lLCAwLCA4KSA9PT0gJ3YuY2FBbGdvJwoJZnJhbWVfZGlnIC0xIC8vIG5hbWU6IGJ5dGVzCglleHRyYWN0IDAgOAoJYnl0ZWMgMzMgLy8gICJ2LmNhQWxnbyIKCT09CglieiAqaWY3OV9lbmQKCgkvLyAqaWY3OV9jb25zZXF1ZW50CgkvLyB1cGRhdGluZyB2LmNhQWxnbyBmaWVsZCBpc24ndCBhbGxvd2VkIHZpYSByZWd1bGFyIGZpZWxkIHVwZGF0ZQoJZXJyCgoqaWY3OV9lbmQ6CgoqaWY3OF9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzcyCgkvLyByZXR1cm4gaXNWZXJpZmllZEZpZWxkICYmIGxlbih2YWx1ZSkgPT09IDAKCWZyYW1lX2RpZyAyIC8vIGlzVmVyaWZpZWRGaWVsZDogYm9vbAoJZHVwCglieiAqc2tpcF9hbmQyMAoJZnJhbWVfZGlnIC0yIC8vIHZhbHVlOiBieXRlcwoJbGVuCglpbnRjIDAgLy8gMAoJPT0KCSYmCgoqc2tpcF9hbmQyMDoKCippc0ZpZWxkVXBkYXRlQWxsb3dlZCpyZXR1cm46CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAyCglyZXRzdWIKCi8vIGlzSW50ZXJuYWxGaWVsZCh0cnVzdFR5cGU6IHN0cmluZyk6IGJvb2xlYW4KaXNJbnRlcm5hbEZpZWxkOgoJcHJvdG8gMSAxCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTM3NwoJLy8gcmV0dXJuIHRydXN0VHlwZSA9PT0gJ2kuJwoJZnJhbWVfZGlnIC0xIC8vIHRydXN0VHlwZTogc3RyaW5nCglwdXNoYnl0ZXMgMHg2OTJlIC8vICJpLiIKCT09CglyZXRzdWIKCi8vIGlzVXNlckZpZWxkKHRydXN0VHlwZTogc3RyaW5nKTogYm9vbGVhbgppc1VzZXJGaWVsZDoKCXByb3RvIDEgMQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzODIKCS8vIHJldHVybiB0cnVzdFR5cGUgPT09ICd1LicKCWZyYW1lX2RpZyAtMSAvLyB0cnVzdFR5cGU6IHN0cmluZwoJcHVzaGJ5dGVzIDB4NzUyZSAvLyAidS4iCgk9PQoJcmV0c3ViCgovLyBpc1ZlcmlmaWVkRmllbGQodHJ1c3RUeXBlOiBzdHJpbmcpOiBib29sZWFuCmlzVmVyaWZpZWRGaWVsZDoKCXByb3RvIDEgMQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzODcKCS8vIHJldHVybiB0cnVzdFR5cGUgPT09ICd2LicKCWZyYW1lX2RpZyAtMSAvLyB0cnVzdFR5cGU6IHN0cmluZwoJcHVzaGJ5dGVzIDB4NzYyZSAvLyAidi4iCgk9PQoJcmV0c3ViCgovLyBpc0ZvclNhbGUoKTogYm9vbGVhbgppc0ZvclNhbGU6Cglwcm90byAwIDEKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzkxCgkvLyByZXR1cm4gdGhpcy5zYWZlR2xvYmFsSW50R2V0KE5GRF9LRVlfU0VMTF9BTU9VTlQpICE9PSAwCglieXRlYyA2IC8vICJpLnNlbGxhbXQiCgljYWxsc3ViIHNhZmVHbG9iYWxJbnRHZXQKCWludGMgMCAvLyAwCgkhPQoJcmV0c3ViCgovLyBpc0V4cGlyZWQoKTogYm9vbGVhbgppc0V4cGlyZWQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzOTYKCS8vIGV4cFRpbWUgPSB0aGlzLnNhZmVHbG9iYWxJbnRHZXQoTkZEX0tFWV9FWFBJUkFUSU9OVElNRSkKCWJ5dGVjIDE3IC8vICJpLmV4cGlyYXRpb25UaW1lIgoJY2FsbHN1YiBzYWZlR2xvYmFsSW50R2V0CglmcmFtZV9idXJ5IDAgLy8gZXhwVGltZTogdWludDY0CgoJLy8gKmlmODBfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzk3CgkvLyBleHBUaW1lID09PSAwCglmcmFtZV9kaWcgMCAvLyBleHBUaW1lOiB1aW50NjQKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmODBfZW5kCgoJLy8gKmlmODBfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTM5OQoJLy8gcmV0dXJuIGZhbHNlCglpbnRjIDAgLy8gMAoJYiAqaXNFeHBpcmVkKnJldHVybgoKKmlmODBfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQwMQoJLy8gcmV0dXJuIGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wID4gZXhwVGltZQoJZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAoJZnJhbWVfZGlnIDAgLy8gZXhwVGltZTogdWludDY0Cgk+CgoqaXNFeHBpcmVkKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBpc1ZhdWx0QXV0b09wdEluTG9ja2VkKCk6IGJvb2xlYW4KaXNWYXVsdEF1dG9PcHRJbkxvY2tlZDoKCXByb3RvIDAgMQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0MTAKCS8vIHJldHVybiB0aGlzLnNhZmVHbG9iYWxCeXRlR2V0KE5GRF9LRVlfSVNWQVVMVE9QVElOTE9DS0VEKSA9PT0gJzEnCglieXRlYyAyMCAvLyAiaS52YXVsdE9wdEluTG9ja2VkIgoJY2FsbHN1YiBzYWZlR2xvYmFsQnl0ZUdldAoJYnl0ZWMgMTUgLy8gICIxIgoJPT0KCXJldHN1YgoKLy8gYXNzZXJ0T3duZXJDYWxsZWROb3RGb3JTYWxlT3JFeHBpcmVkKCk6IHZvaWQKYXNzZXJ0T3duZXJDYWxsZWROb3RGb3JTYWxlT3JFeHBpcmVkOgoJcHJvdG8gMCAwCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQxNAoJLy8gdGhpcy5tdXN0QmVDYWxsZWRCeU93bmVyKCkKCWNhbGxzdWIgbXVzdEJlQ2FsbGVkQnlPd25lcgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0MTUKCS8vIHRoaXMubm90Rm9yU2FsZU9yRXhwaXJlZCgpCgljYWxsc3ViIG5vdEZvclNhbGVPckV4cGlyZWQKCXJldHN1YgoKLy8gbm90Rm9yU2FsZU9yRXhwaXJlZCgpOiB2b2lkCm5vdEZvclNhbGVPckV4cGlyZWQ6Cglwcm90byAwIDAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDE5CgkvLyBhc3NlcnQoIXRoaXMuaXNGb3JTYWxlKCksICJjYW4ndCBiZSBmb3Igc2FsZSIpCgljYWxsc3ViIGlzRm9yU2FsZQoJIQoKCS8vIGNhbid0IGJlIGZvciBzYWxlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDIwCgkvLyBhc3NlcnQoIXRoaXMuaXNFeHBpcmVkKCksICJjYW4ndCBiZSBleHBpcmVkIikKCWNhbGxzdWIgaXNFeHBpcmVkCgkhCgoJLy8gY2FuJ3QgYmUgZXhwaXJlZAoJYXNzZXJ0CglyZXRzdWIKCi8vIG5vUGVyaW9kQmVmb3JlSW5kZXgobmFtZTogc3RyaW5nLCBzdG9wSW5kZXg6IHVpbnQ2NCk6IGJvb2xlYW4Kbm9QZXJpb2RCZWZvcmVJbmRleDoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQyNQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBzdG9wSW5kZXg7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoqZm9yXzk6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDI1CgkvLyBpIDwgc3RvcEluZGV4CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBzdG9wSW5kZXg6IHVpbnQ2NAoJPAoJYnogKmZvcl85X2VuZAoKCS8vICppZjgxX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQyNgoJLy8gZXh0cmFjdDMobmFtZSwgaSwgMSkgPT09ICcuJwoJZnJhbWVfZGlnIC0xIC8vIG5hbWU6IHN0cmluZwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJZXh0cmFjdDMKCWJ5dGVjIDI4IC8vICAiLiIKCT09CglieiAqaWY4MV9lbmQKCgkvLyAqaWY4MV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDI3CgkvLyByZXR1cm4gZmFsc2UKCWludGMgMCAvLyAwCgliICpub1BlcmlvZEJlZm9yZUluZGV4KnJldHVybgoKKmlmODFfZW5kOgoKKmZvcl85X2NvbnRpbnVlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQyNQoJLy8gaSArPSAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgliICpmb3JfOQoKKmZvcl85X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0MzAKCS8vIHJldHVybiB0cnVlCglpbnRjIDEgLy8gMQoKKm5vUGVyaW9kQmVmb3JlSW5kZXgqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGNhbGNFeHBpcmF0aW9uKHJlbmV3YWxQcmljZTogdWludDY0LCBhbXRQYWlkOiB1aW50NjQsIGN1clRpbWU6IHVpbnQ2NCwgbWF4WWVhcnNBbGxvd2VkOiB1aW50NjQpOiB1aW50NjQKLy8KLy8gQ2FsY3VsYXRlcyB0aGUgbmV3IGV4cGlyYXRpb24gdGltZSBiYXNlZCBvbiB0aGUgcmVuZXdhbCBwcmljZSwgYW1vdW50IHBhaWQsIGN1cnJlbnQgdGltZSwgYW5kIG1heGltdW0geWVhcnMgYWxsb3dlZC4KLy8KLy8gQHBhcmFtIHJlbmV3YWxQcmljZSAtIFRoZSBwcmljZSBmb3IgcmVuZXdpbmcgdGhlIGV4cGlyYXRpb24uCi8vIEBwYXJhbSBhbXRQYWlkIC0gVGhlIGFtb3VudCBwYWlkIGZvciB0aGUgcmVuZXdhbC4KLy8gQHBhcmFtIGN1clRpbWUgLSBUaGUgY3VycmVudCB0aW1lIGluIHVuaXggdGltZSBzZWNvbmRzLgovLyBAcGFyYW0gbWF4WWVhcnNBbGxvd2VkIC0gVGhlIG1heGltdW0gbnVtYmVyIG9mIHllYXJzIGFsbG93ZWQgZm9yIHRoZSBleHBpcmF0aW9uLgovLwovLyBAcmV0dXJuIFRoZSBuZXcgZXhwaXJhdGlvbiB0aW1lIGluIHVuaXh0aW1lIHNlY29uZHMKY2FsY0V4cGlyYXRpb246Cglwcm90byA0IDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQ0NAoJLy8gZXh0cmFTZWNvbmRzID0gKDM2NSAqIGFtdFBhaWQgKiBTRUNTX0lOX0RBWSkgLyByZW5ld2FsUHJpY2UKCWludGMgOCAvLyAzNjUKCWZyYW1lX2RpZyAtMiAvLyBhbXRQYWlkOiB1aW50NjQKCSoKCWludGMgMTQgLy8gODY0MDAKCSoKCWZyYW1lX2RpZyAtMSAvLyByZW5ld2FsUHJpY2U6IHVpbnQ2NAoJLwoJZnJhbWVfYnVyeSAwIC8vIGV4dHJhU2Vjb25kczogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQ0NQoJLy8gbmV3RXhwaXJhdGlvbiA9IGN1clRpbWUgKyBleHRyYVNlY29uZHMKCWZyYW1lX2RpZyAtMyAvLyBjdXJUaW1lOiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIGV4dHJhU2Vjb25kczogdWludDY0CgkrCglmcmFtZV9idXJ5IDEgLy8gbmV3RXhwaXJhdGlvbjogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQ0NwoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgbmV3RXhwaXJhdGlvbiA8PSBnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCArIDM2NSAqIG1heFllYXJzQWxsb3dlZCAqIFNFQ1NfSU5fREFZLAoJLy8gICAgICAgICAgICAgJ21heCBleHBpcmF0aW9uIGV4Y2VlZGVkIHBhcmFtZXRlcnMgZGVmaW5lZCBieSByZWdpc3RyeScsCgkvLyAgICAgICAgICkKCWZyYW1lX2RpZyAxIC8vIG5ld0V4cGlyYXRpb246IHVpbnQ2NAoJZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAoJaW50YyA4IC8vIDM2NQoJZnJhbWVfZGlnIC00IC8vIG1heFllYXJzQWxsb3dlZDogdWludDY0CgkqCglpbnRjIDE0IC8vIDg2NDAwCgkqCgkrCgk8PQoKCS8vIG1heCBleHBpcmF0aW9uIGV4Y2VlZGVkIHBhcmFtZXRlcnMgZGVmaW5lZCBieSByZWdpc3RyeQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQ1MQoJLy8gcmV0dXJuIG5ld0V4cGlyYXRpb24KCWZyYW1lX2RpZyAxIC8vIG5ld0V4cGlyYXRpb246IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gcG93MTAoZGVjaW1hbHM6IHVpbnQ2NCk6IHVpbnQ2NApwb3cxMDoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDU1CgkvLyBleHBSZXN1bHQgPSBleHB3KDEwLCBkZWNpbWFscykKCWludGMgMTEgLy8gMTAKCWZyYW1lX2RpZyAtMSAvLyBkZWNpbWFsczogdWludDY0CglleHB3CglmcmFtZV9idXJ5IDAgLy8gZXhwUmVzdWx0IGxvdzogdWludDY0CglmcmFtZV9idXJ5IDEgLy8gZXhwUmVzdWx0IGhpZ2g6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0NTYKCS8vIHJldHVybiBleHBSZXN1bHQubG93CglmcmFtZV9kaWcgMCAvLyBleHBSZXN1bHQgbG93OiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGNsYXdBc2FGcm9tVG8oZnJvbTogQWRkcmVzcywgdG86IEFkZHJlc3MpOiB2b2lkCmNsYXdBc2FGcm9tVG86Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQ2MgoJLy8gZnJvbUJhbGFuY2UgPSBmcm9tLmFzc2V0QmFsYW5jZShBc3NldElELmZyb21VaW50NjQoYnRvaSh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfQVNBSUQpLnZhbHVlKSkpCglmcmFtZV9kaWcgLTEgLy8gZnJvbTogQWRkcmVzcwoJYnl0ZWMgMTggLy8gImkuYXNhaWQiCglhcHBfZ2xvYmFsX2dldAoJYnRvaQoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2J1cnkgMCAvLyBmcm9tQmFsYW5jZTogdWludDY0CgoJLy8gKmlmODJfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDY0CgkvLyBmcm9tQmFsYW5jZSAhPT0gMAoJZnJhbWVfZGlnIDAgLy8gZnJvbUJhbGFuY2U6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCSE9CglieiAqaWY4Ml9lbHNlCgoJLy8gKmlmODJfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQ2NQoJLy8gc2VuZEZyb20gPSBmcm9tCglmcmFtZV9kaWcgLTEgLy8gZnJvbTogQWRkcmVzcwoJZnJhbWVfYnVyeSAxIC8vIHNlbmRGcm9tOiBBZGRyZXNzCgliICppZjgyX2VuZAoKKmlmODJfZWxzZToKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0NjgKCS8vIHNlbmRGcm9tID0gdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2J1cnkgMSAvLyBzZW5kRnJvbTogQWRkcmVzcwoKKmlmODJfZW5kOgoJLy8gKmlmODNfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDcwCgkvLyBzZW5kRnJvbSA9PT0gdG8KCWZyYW1lX2RpZyAxIC8vIHNlbmRGcm9tOiBBZGRyZXNzCglmcmFtZV9kaWcgLTIgLy8gdG86IEFkZHJlc3MKCT09CglieiAqaWY4M19lbmQKCgkvLyAqaWY4M19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDcxCgkvLyByZXR1cm4KCXJldHN1YgoKKmlmODNfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQ3MwoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgICAgICAgeGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQoYnRvaSh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfQVNBSUQpLnZhbHVlKSksCgkvLyAgICAgICAgICAgICBhc3NldEFtb3VudDogMSwKCS8vICAgICAgICAgICAgIHNlbmRlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgICAgICAgIGFzc2V0U2VuZGVyOiBzZW5kRnJvbSwKCS8vICAgICAgICAgICAgIGFzc2V0UmVjZWl2ZXI6IHRvLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxMCAvLyAgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDc0CgkvLyB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NChidG9pKHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9BU0FJRCkudmFsdWUpKQoJYnl0ZWMgMTggLy8gImkuYXNhaWQiCglhcHBfZ2xvYmFsX2dldAoJYnRvaQoJaXR4bl9maWVsZCBYZmVyQXNzZXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDc1CgkvLyBhc3NldEFtb3VudDogMQoJaW50YyAxIC8vIDEKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDc2CgkvLyBzZW5kZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIFNlbmRlcgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0NzcKCS8vIGFzc2V0U2VuZGVyOiBzZW5kRnJvbQoJZnJhbWVfZGlnIDEgLy8gc2VuZEZyb206IEFkZHJlc3MKCWl0eG5fZmllbGQgQXNzZXRTZW5kZXIKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDc4CgkvLyBhc3NldFJlY2VpdmVyOiB0bwoJZnJhbWVfZGlnIC0yIC8vIHRvOiBBZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGZpbmRBZGRySW5CeXRlcyhieXRlc09mU2V0OiBieXRlcywgYWRkcmVzczogQWRkcmVzcyk6IGJvb2xlYW4KLy8KLy8gQ2hlY2tzIGlmIHRoZSBzcGVjaWZpZWQgYWRkcmVzcyBpcyBwcmVzZW50IHdpdGhpbiB0aGUgZ2l2ZW4gc2V0IG9mIGJ5dGVzLgovLwovLyBAcGFyYW0ge2J5dGVzfSBieXRlc09mU2V0IC0gVGhlIHNldCBvZiBieXRlcyB0byBzZWFyY2ggdGhyb3VnaC4KLy8gQHBhcmFtIHtBZGRyZXNzfSBhZGRyZXNzIC0gVGhlIGFkZHJlc3MgdG8gZmluZCB3aXRoaW4gdGhlIHNldCBvZiBieXRlcy4KLy8gQHJldHVybiB7Ym9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGFkZHJlc3MgaXMgZm91bmQgaW4gdGhlIGJ5dGVzLCBvdGhlcndpc2UgZmFsc2UuCmZpbmRBZGRySW5CeXRlczoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDkwCgkvLyBsaW1pdCA9IGJ5dGVzT2ZTZXQubGVuZ3RoIC8gMzIKCWZyYW1lX2RpZyAtMSAvLyBieXRlc09mU2V0OiBieXRlcwoJbGVuCglpbnRjIDMgLy8gMzIKCS8KCWZyYW1lX2J1cnkgMCAvLyBsaW1pdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQ5MQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBsaW1pdDsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCipmb3JfMTA6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDkxCgkvLyBpIDwgbGltaXQKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gbGltaXQ6IHVpbnQ2NAoJPAoJYnogKmZvcl8xMF9lbmQKCgkvLyAqaWY4NF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0OTIKCS8vIGV4dHJhY3QzKGJ5dGVzT2ZTZXQsIGkgKiAzMiwgMzIpID09PSByYXdCeXRlcyhhZGRyZXNzKQoJZnJhbWVfZGlnIC0xIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVzCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWludGMgMyAvLyAzMgoJKgoJaW50YyAzIC8vIDMyCglleHRyYWN0MwoJZnJhbWVfZGlnIC0yIC8vIGFkZHJlc3M6IEFkZHJlc3MKCT09CglieiAqaWY4NF9lbmQKCgkvLyAqaWY4NF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDkzCgkvLyByZXR1cm4gdHJ1ZQoJaW50YyAxIC8vIDEKCWIgKmZpbmRBZGRySW5CeXRlcypyZXR1cm4KCippZjg0X2VuZDoKCipmb3JfMTBfY29udGludWU6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDkxCgkvLyBpICs9IDEKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCWIgKmZvcl8xMAoKKmZvcl8xMF9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDk2CgkvLyByZXR1cm4gZmFsc2UKCWludGMgMCAvLyAwCgoqZmluZEFkZHJJbkJ5dGVzKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gZmluZEFkZHJBbmRTZXRGaXJzdChrZXk6IGJ5dGVzLCBhZGRyZXNzOiBBZGRyZXNzKTogdm9pZApmaW5kQWRkckFuZFNldEZpcnN0OgoJcHJvdG8gMiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gNAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MDEKCS8vIGJ5dGVzT2ZTZXQgPSB0aGlzLmJveGVzKGtleSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBrZXk6IGJ5dGVzCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJveGVzKGtleSkudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSAwIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MDMKCS8vIGFzc2VydChhZGRyZXNzICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzKQoJZnJhbWVfZGlnIC0yIC8vIGFkZHJlc3M6IEFkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MDUKCS8vIGFzc2VydChieXRlc09mU2V0Lmxlbmd0aCA+PSA2NCwgImFkZHJlc3MgJ3NldCcgc2hvdWxkIGFscmVhZHkgaGF2ZSBhdCBsZWFzdCB0d28gdmFsdWVzIikKCWZyYW1lX2RpZyAwIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoJbGVuCglwdXNoaW50IDY0Cgk+PQoKCS8vIGFkZHJlc3MgJ3NldCcgc2hvdWxkIGFscmVhZHkgaGF2ZSBhdCBsZWFzdCB0d28gdmFsdWVzCglhc3NlcnQKCgkvLyAqaWY4NV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MDgKCS8vIGV4dHJhY3QzKGJ5dGVzT2ZTZXQsIDAsIDMyKSA9PT0gcmF3Qnl0ZXMoYWRkcmVzcykKCWZyYW1lX2RpZyAwIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoJZXh0cmFjdCAwIDMyCglmcmFtZV9kaWcgLTIgLy8gYWRkcmVzczogQWRkcmVzcwoJPT0KCWJ6ICppZjg1X2VuZAoKCS8vICppZjg1X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MDkKCS8vIHJldHVybgoJcmV0c3ViCgoqaWY4NV9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTEyCgkvLyBsaW1pdCA9IGJ5dGVzT2ZTZXQubGVuZ3RoIC8gMzIKCWZyYW1lX2RpZyAwIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoJbGVuCglpbnRjIDMgLy8gMzIKCS8KCWZyYW1lX2J1cnkgMSAvLyBsaW1pdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTUxMwoJLy8gZm91bmRTbG90ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBmb3VuZFNsb3Q6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MTUKCS8vIGZvciAobGV0IGkgPSAxOyBpIDwgbGltaXQ7IGkgKz0gMSkKCWludGMgMSAvLyAxCglmcmFtZV9idXJ5IDMgLy8gaTogdWludDY0CgoqZm9yXzExOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTUxNQoJLy8gaSA8IGxpbWl0CglmcmFtZV9kaWcgMyAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIGxpbWl0OiB1aW50NjQKCTwKCWJ6ICpmb3JfMTFfZW5kCgoJLy8gKmlmODZfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTE2CgkvLyBleHRyYWN0MyhieXRlc09mU2V0LCBpICogMzIsIDMyKSA9PT0gcmF3Qnl0ZXMoYWRkcmVzcykKCWZyYW1lX2RpZyAwIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoJZnJhbWVfZGlnIDMgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMzIKCSoKCWludGMgMyAvLyAzMgoJZXh0cmFjdDMKCWZyYW1lX2RpZyAtMiAvLyBhZGRyZXNzOiBBZGRyZXNzCgk9PQoJYnogKmlmODZfZW5kCgoJLy8gKmlmODZfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTUxNwoJLy8gZm91bmRTbG90ID0gaQoJZnJhbWVfZGlnIDMgLy8gaTogdWludDY0CglmcmFtZV9idXJ5IDIgLy8gZm91bmRTbG90OiB1aW50NjQKCWIgKmZvcl8xMV9lbmQKCippZjg2X2VuZDoKCipmb3JfMTFfY29udGludWU6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTE1CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAzIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMyAvLyBpOiB1aW50NjQKCWIgKmZvcl8xMQoKKmZvcl8xMV9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTIxCgkvLyBhc3NlcnQoZm91bmRTbG90ICE9PSAwLCAnYWRkcmVzcyBtdXN0IGJlIGZvdW5kIGluIHNldCBpbiBvcmRlciB0byBtb3ZlIGl0JykKCWZyYW1lX2RpZyAyIC8vIGZvdW5kU2xvdDogdWludDY0CglpbnRjIDAgLy8gMAoJIT0KCgkvLyBhZGRyZXNzIG11c3QgYmUgZm91bmQgaW4gc2V0IGluIG9yZGVyIHRvIG1vdmUgaXQKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MjMKCS8vIGFkZHJlc3NBdEZyb250ID0gZXh0cmFjdDMoYnl0ZXNPZlNldCwgMCwgMzIpCglmcmFtZV9kaWcgMCAvLyBieXRlc09mU2V0OiBieXRlW10KCWV4dHJhY3QgMCAzMgoJZnJhbWVfYnVyeSA0IC8vIGFkZHJlc3NBdEZyb250OiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTI1CgkvLyBieXRlc09mU2V0ID0gcmVwbGFjZTMoYnl0ZXNPZlNldCwgMCwgYWRkcmVzcykKCWZyYW1lX2RpZyAwIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyAtMiAvLyBhZGRyZXNzOiBBZGRyZXNzCglyZXBsYWNlMwoJZnJhbWVfYnVyeSAwIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MjcKCS8vIHRoaXMuYm94ZXMoa2V5KS52YWx1ZSA9IHJlcGxhY2UzKGJ5dGVzT2ZTZXQsIGZvdW5kU2xvdCAqIDMyLCBhZGRyZXNzQXRGcm9udCkKCWZyYW1lX2RpZyAtMSAvLyBrZXk6IGJ5dGVzCglmcmFtZV9kaWcgMCAvLyBieXRlc09mU2V0OiBieXRlW10KCWZyYW1lX2RpZyAyIC8vIGZvdW5kU2xvdDogdWludDY0CglpbnRjIDMgLy8gMzIKCSoKCWZyYW1lX2RpZyA0IC8vIGFkZHJlc3NBdEZyb250OiBieXRlW10KCXJlcGxhY2UzCglib3hfcHV0CglyZXRzdWIKCi8vIGFkZEJ5dGVzVG9TZXQoa2V5OiBieXRlcywgYnl0ZXNWYWw6IGJ5dGVzKTogYm9vbGVhbgovLwovLyBBZGRzIGJ5dGVzIHRvIGEgc2V0IGlkZW50aWZpZWQgYnkgdGhlIGdpdmVuIGtleS4KLy8KLy8gQHBhcmFtIHtieXRlc30ga2V5IC0gVGhlIGtleSB0byBpZGVudGlmeSB0aGUgc2V0LgovLyBAcGFyYW0ge2J5dGVzfSBieXRlc1ZhbCAtIFRoZSBieXRlcyB0byBiZSBhZGRlZCB0byB0aGUgc2V0LgovLyBAcmV0dXJuIHtib29sZWFufSB0cnVlIGlmIHRoZSBieXRlcyB3ZXJlIHN1Y2Nlc3NmdWxseSBhZGRlZCB0byB0aGUgc2V0LCBmYWxzZSBvdGhlcndpc2UuCmFkZEJ5dGVzVG9TZXQ6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwbiA1CgoJLy8gKmlmODdfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTM4CgkvLyAhdGhpcy5ib3hlcyhrZXkpLmV4aXN0cwoJZnJhbWVfZGlnIC0xIC8vIGtleTogYnl0ZXMKCWJveF9sZW4KCXN3YXAKCXBvcAoJIQoJYnogKmlmODdfZW5kCgoJLy8gKmlmODdfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU0MAoJLy8gdGhpcy5ib3hlcyhrZXkpLnZhbHVlID0gYnl0ZXNWYWwKCWZyYW1lX2RpZyAtMSAvLyBrZXk6IGJ5dGVzCglmcmFtZV9kaWcgLTIgLy8gYnl0ZXNWYWw6IGJ5dGVzCglib3hfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU0MQoJLy8gcmV0dXJuIHRydWUKCWludGMgMSAvLyAxCgliICphZGRCeXRlc1RvU2V0KnJldHVybgoKKmlmODdfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU0MwoJLy8gc2l6ZU9mS2V5ID0gbGVuKGJ5dGVzVmFsKQoJZnJhbWVfZGlnIC0yIC8vIGJ5dGVzVmFsOiBieXRlcwoJbGVuCglmcmFtZV9idXJ5IDAgLy8gc2l6ZU9mS2V5OiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTQ0CgkvLyB6ZXJvS2V5ID0gYnplcm8oc2l6ZU9mS2V5KQoJZnJhbWVfZGlnIDAgLy8gc2l6ZU9mS2V5OiB1aW50NjQKCWJ6ZXJvCglmcmFtZV9idXJ5IDEgLy8gemVyb0tleTogYnl0ZVtdCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU0NQoJLy8gYnl0ZXNPZlNldCA9IHRoaXMuYm94ZXMoa2V5KS52YWx1ZQoJZnJhbWVfZGlnIC0xIC8vIGtleTogYnl0ZXMKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94ZXMoa2V5KS52YWx1ZQoJYXNzZXJ0CglmcmFtZV9idXJ5IDIgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU0NgoJLy8gbGltaXQgPSBieXRlc09mU2V0Lmxlbmd0aCAvIHNpemVPZktleQoJZnJhbWVfZGlnIDIgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCglsZW4KCWZyYW1lX2RpZyAwIC8vIHNpemVPZktleTogdWludDY0CgkvCglmcmFtZV9idXJ5IDMgLy8gbGltaXQ6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1NDgKCS8vIGFzc2VydChsZW4oYnl0ZXNWYWwpICUgc2l6ZU9mS2V5ID09PSAwLCAnZXhpc3Rpbmcgc2V0IG11c3QgYmUgbXVsdGlwbGUgb2Yga2V5IGJlaW5nIGFkZGVkJykKCWZyYW1lX2RpZyAtMiAvLyBieXRlc1ZhbDogYnl0ZXMKCWxlbgoJZnJhbWVfZGlnIDAgLy8gc2l6ZU9mS2V5OiB1aW50NjQKCSUKCWludGMgMCAvLyAwCgk9PQoKCS8vIGV4aXN0aW5nIHNldCBtdXN0IGJlIG11bHRpcGxlIG9mIGtleSBiZWluZyBhZGRlZAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU0OQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBsaW1pdDsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgNCAvLyBpOiB1aW50NjQKCipmb3JfMTI6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTQ5CgkvLyBpIDwgbGltaXQKCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gbGltaXQ6IHVpbnQ2NAoJPAoJYnogKmZvcl8xMl9lbmQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTUwCgkvLyBjdXJyZW50VmFsSW5TbG90ID0gZXh0cmFjdDMoYnl0ZXNPZlNldCwgaSAqIHNpemVPZktleSwgc2l6ZU9mS2V5KQoJZnJhbWVfZGlnIDIgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHNpemVPZktleTogdWludDY0CgkqCglmcmFtZV9kaWcgMCAvLyBzaXplT2ZLZXk6IHVpbnQ2NAoJZXh0cmFjdDMKCWZyYW1lX2J1cnkgNSAvLyBjdXJyZW50VmFsSW5TbG90OiBieXRlW10KCgkvLyAqaWY4OF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1NTIKCS8vIGN1cnJlbnRWYWxJblNsb3QgPT09IHplcm9LZXkKCWZyYW1lX2RpZyA1IC8vIGN1cnJlbnRWYWxJblNsb3Q6IGJ5dGVbXQoJZnJhbWVfZGlnIDEgLy8gemVyb0tleTogYnl0ZVtdCgk9PQoJYnogKmlmODhfZW5kCgoJLy8gKmlmODhfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU1NAoJLy8gdGhpcy5ib3hlcyhrZXkpLnJlcGxhY2UoaSAqIHNpemVPZktleSwgYnl0ZXNWYWwpCglmcmFtZV9kaWcgLTEgLy8ga2V5OiBieXRlcwoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglmcmFtZV9kaWcgMCAvLyBzaXplT2ZLZXk6IHVpbnQ2NAoJKgoJZnJhbWVfZGlnIC0yIC8vIGJ5dGVzVmFsOiBieXRlcwoJYm94X3JlcGxhY2UKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTU1CgkvLyByZXR1cm4gdHJ1ZQoJaW50YyAxIC8vIDEKCWIgKmFkZEJ5dGVzVG9TZXQqcmV0dXJuCgoqaWY4OF9lbmQ6CgkvLyAqaWY4OV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1NTcKCS8vIGN1cnJlbnRWYWxJblNsb3QgPT09IGJ5dGVzVmFsCglmcmFtZV9kaWcgNSAvLyBjdXJyZW50VmFsSW5TbG90OiBieXRlW10KCWZyYW1lX2RpZyAtMiAvLyBieXRlc1ZhbDogYnl0ZXMKCT09CglieiAqaWY4OV9lbmQKCgkvLyAqaWY4OV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTU4CgkvLyByZXR1cm4gdHJ1ZQoJaW50YyAxIC8vIDEKCWIgKmFkZEJ5dGVzVG9TZXQqcmV0dXJuCgoqaWY4OV9lbmQ6CgoqZm9yXzEyX2NvbnRpbnVlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU0OQoJLy8gaSArPSAxCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDQgLy8gaTogdWludDY0CgliICpmb3JfMTIKCipmb3JfMTJfZW5kOgoJLy8gKmlmOTBfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTYyCgkvLyBieXRlc09mU2V0Lmxlbmd0aCA8IDEwMTAKCWZyYW1lX2RpZyAyIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoJbGVuCglwdXNoaW50IDEwMTAKCTwKCWJ6ICppZjkwX2VuZAoKCS8vICppZjkwX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1NjMKCS8vIHRoaXMuYm94ZXMoa2V5KS5kZWxldGUoKQoJZnJhbWVfZGlnIC0xIC8vIGtleTogYnl0ZXMKCWJveF9kZWwKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTY0CgkvLyB0aGlzLmJveGVzKGtleSkudmFsdWUgPSBjb25jYXQoYnl0ZXNPZlNldCwgYnl0ZXNWYWwpCglmcmFtZV9kaWcgLTEgLy8ga2V5OiBieXRlcwoJZnJhbWVfZGlnIDIgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCglmcmFtZV9kaWcgLTIgLy8gYnl0ZXNWYWw6IGJ5dGVzCgljb25jYXQKCWJveF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTY1CgkvLyByZXR1cm4gdHJ1ZQoJaW50YyAxIC8vIDEKCWIgKmFkZEJ5dGVzVG9TZXQqcmV0dXJuCgoqaWY5MF9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTY4CgkvLyByZXR1cm4gZmFsc2UKCWludGMgMCAvLyAwCgoqYWRkQnl0ZXNUb1NldCpyZXR1cm46CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA1CglyZXRzdWIKCi8vIHJlbW92ZUFkZHJGcm9tU2V0KGtleTogYnl0ZXMsIGFkZHJlc3M6IEFkZHJlc3MpOiBib29sZWFuCi8vCi8vIFJlbW92ZXMgdGhlIHNwZWNpZmllZCBhZGRyZXNzIGZyb20gdGhlIHNldCBpZGVudGlmaWVkIGJ5IHRoZSBnaXZlbiBrZXkuCi8vCi8vIEBwYXJhbSB7Ynl0ZXN9IGtleSAtIFRoZSBrZXkgdGhhdCBpZGVudGlmaWVzIHRoZSBzZXQuCi8vIEBwYXJhbSB7QWRkcmVzc30gYWRkcmVzcyAtIFRoZSBhZGRyZXNzIHRvIHJlbW92ZSBmcm9tIHRoZSBzZXQuCi8vIEByZXR1cm5zIHtib29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgYWRkcmVzcyB3YXMgc3VjY2Vzc2Z1bGx5IHJlbW92ZWQsIGZhbHNlIG90aGVyd2lzZS4KcmVtb3ZlQWRkckZyb21TZXQ6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwbiA1CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU3OQoJLy8gYnl0ZXNPZlNldCA9IHRoaXMuYm94ZXMoa2V5KS52YWx1ZQoJZnJhbWVfZGlnIC0xIC8vIGtleTogYnl0ZXMKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94ZXMoa2V5KS52YWx1ZQoJYXNzZXJ0CglmcmFtZV9idXJ5IDAgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU4MAoJLy8gbGltaXQgPSBieXRlc09mU2V0Lmxlbmd0aCAvIDMyCglmcmFtZV9kaWcgMCAvLyBieXRlc09mU2V0OiBieXRlW10KCWxlbgoJaW50YyAzIC8vIDMyCgkvCglmcmFtZV9idXJ5IDEgLy8gbGltaXQ6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1ODIKCS8vIGFzc2VydChhZGRyZXNzICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzKQoJZnJhbWVfZGlnIC0yIC8vIGFkZHJlc3M6IEFkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1ODQKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgbGltaXQ7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDIgLy8gaTogdWludDY0CgoqZm9yXzEzOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU4NAoJLy8gaSA8IGxpbWl0CglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIGxpbWl0OiB1aW50NjQKCTwKCWJ6ICpmb3JfMTNfZW5kCgoJLy8gKmlmOTFfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTg1CgkvLyBleHRyYWN0MyhieXRlc09mU2V0LCBpICogMzIsIDMyKSA9PT0gcmF3Qnl0ZXMoYWRkcmVzcykKCWZyYW1lX2RpZyAwIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMzIKCSoKCWludGMgMyAvLyAzMgoJZXh0cmFjdDMKCWZyYW1lX2RpZyAtMiAvLyBhZGRyZXNzOiBBZGRyZXNzCgk9PQoJYnogKmlmOTFfZW5kCgoJLy8gKmlmOTFfY29uc2VxdWVudAoJLy8gKmlmOTJfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTg2CgkvLyBpID09PSBsaW1pdCAtIDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gbGltaXQ6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCS0KCT09CglieiAqaWY5Ml9lbmQKCgkvLyAqaWY5Ml9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTg3CgkvLyB0aGlzLmJveGVzKGtleSkuZGVsZXRlKCkKCWZyYW1lX2RpZyAtMSAvLyBrZXk6IGJ5dGVzCglib3hfZGVsCgoJLy8gKmlmOTNfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTkwCgkvLyBpID4gMAoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDAgLy8gMAoJPgoJYnogKmlmOTNfZW5kCgoJLy8gKmlmOTNfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU5MQoJLy8gdGhpcy5ib3hlcyhrZXkpLnZhbHVlID0gZXh0cmFjdDMoYnl0ZXNPZlNldCwgMCwgaSAqIDMyKQoJZnJhbWVfZGlnIC0xIC8vIGtleTogYnl0ZXMKCWZyYW1lX2RpZyAwIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDMyCgkqCglleHRyYWN0MwoJYm94X3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1OTMKCS8vIGFsbFplcm8gPSB0cnVlCglpbnRjIDEgLy8gMQoJZnJhbWVfYnVyeSAzIC8vIGFsbFplcm86IGJvb2wKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTk0CgkvLyB6ZXJvQWRkciA9IGdsb2JhbHMuemVyb0FkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJZnJhbWVfYnVyeSA0IC8vIHplcm9BZGRyOiBhZGRyZXNzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU5NQoJLy8gZm9yIChsZXQgaiA9IDA7IGogPCBsaW1pdCAtIDE7IGogKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDUgLy8gajogdWludDY0CgoqZm9yXzE0OgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU5NQoJLy8gaiA8IGxpbWl0IC0gMQoJZnJhbWVfZGlnIDUgLy8gajogdWludDY0CglmcmFtZV9kaWcgMSAvLyBsaW1pdDogdWludDY0CglpbnRjIDEgLy8gMQoJLQoJPAoJYnogKmZvcl8xNF9lbmQKCgkvLyAqaWY5NF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1OTYKCS8vIGV4dHJhY3QzKGJ5dGVzT2ZTZXQsIGogKiAzMiwgMzIpICE9PSByYXdCeXRlcyh6ZXJvQWRkcikKCWZyYW1lX2RpZyAwIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoJZnJhbWVfZGlnIDUgLy8gajogdWludDY0CglpbnRjIDMgLy8gMzIKCSoKCWludGMgMyAvLyAzMgoJZXh0cmFjdDMKCWZyYW1lX2RpZyA0IC8vIHplcm9BZGRyOiBhZGRyZXNzCgkhPQoJYnogKmlmOTRfZW5kCgoJLy8gKmlmOTRfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU5NwoJLy8gYWxsWmVybyA9IGZhbHNlCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAzIC8vIGFsbFplcm86IGJvb2wKCWIgKmZvcl8xNF9lbmQKCippZjk0X2VuZDoKCipmb3JfMTRfY29udGludWU6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTk1CgkvLyBqICs9IDEKCWZyYW1lX2RpZyA1IC8vIGo6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgNSAvLyBqOiB1aW50NjQKCWIgKmZvcl8xNAoKKmZvcl8xNF9lbmQ6CgkvLyAqaWY5NV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE2MDEKCS8vIGFsbFplcm8KCWZyYW1lX2RpZyAzIC8vIGFsbFplcm86IGJvb2wKCWJ6ICppZjk1X2VuZAoKCS8vICppZjk1X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE2MDIKCS8vIHRoaXMuYm94ZXMoa2V5KS5kZWxldGUoKQoJZnJhbWVfZGlnIC0xIC8vIGtleTogYnl0ZXMKCWJveF9kZWwKCippZjk1X2VuZDoKCippZjkzX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE2MDUKCS8vIHJldHVybiB0cnVlCglpbnRjIDEgLy8gMQoJYiAqcmVtb3ZlQWRkckZyb21TZXQqcmV0dXJuCgoqaWY5Ml9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNjA4CgkvLyB0aGlzLmJveGVzKGtleSkucmVwbGFjZShpICogMzIsIHJhd0J5dGVzKGdsb2JhbHMuemVyb0FkZHJlc3MpKQoJZnJhbWVfZGlnIC0xIC8vIGtleTogYnl0ZXMKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDMyCgkqCglnbG9iYWwgWmVyb0FkZHJlc3MKCWJveF9yZXBsYWNlCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTYwOQoJLy8gcmV0dXJuIHRydWUKCWludGMgMSAvLyAxCgliICpyZW1vdmVBZGRyRnJvbVNldCpyZXR1cm4KCippZjkxX2VuZDoKCipmb3JfMTNfY29udGludWU6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTg0CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl8xMwoKKmZvcl8xM19lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNjEyCgkvLyByZXR1cm4gZmFsc2UKCWludGMgMCAvLyAwCgoqcmVtb3ZlQWRkckZyb21TZXQqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNQoJcmV0c3ViCgovLyBtdXN0QmVDYWxsZWRCeU93bmVyKCk6IHZvaWQKbXVzdEJlQ2FsbGVkQnlPd25lcjoKCXByb3RvIDAgMAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE2MTcKCS8vIGFzc2VydChyYXdCeXRlcyh0aGlzLnR4bi5zZW5kZXIpID09PSB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpLnZhbHVlLCAnc2VuZGVyIG11c3QgYmUgb3duZXInKQoJdHhuIFNlbmRlcgoJYnl0ZWMgMSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXQKCT09CgoJLy8gc2VuZGVyIG11c3QgYmUgb3duZXIKCWFzc2VydAoJcmV0c3ViCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHgwZGNhNTJjMSAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKHN0cmluZyxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYWRkcmVzcyl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MzE3MmNhOWQgLy8gbWV0aG9kICJnYXMoKXZvaWQiCglwdXNoYnl0ZXMgMHgwNmRmMmU1YiAvLyBtZXRob2QgIm1pbnRBc2Eoc3RyaW5nLHN0cmluZyl2b2lkIgoJcHVzaGJ5dGVzIDB4NTEzMmRmNzUgLy8gbWV0aG9kICJkZWxldGVGaWVsZHMoYnl0ZVtdW10pdm9pZCIKCXB1c2hieXRlcyAweDBkMjZjNTkxIC8vIG1ldGhvZCAidXBkYXRlU2VnbWVudENvdW50KHN0cmluZyx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweDdjNWFlNDk1IC8vIG1ldGhvZCAiZ2V0RmllbGRVcGRhdGVDb3N0KGJ5dGVbXVtdKXVpbnQ2NCIKCXB1c2hieXRlcyAweDc4ZjQyNzExIC8vIG1ldGhvZCAidXBkYXRlRmllbGRzKGJ5dGVbXVtdKXZvaWQiCglwdXNoYnl0ZXMgMHg2YzEzZWRlNCAvLyBtZXRob2QgInJlYWRGaWVsZChieXRlW10pYnl0ZVtdIgoJcHVzaGJ5dGVzIDB4NTA3NmQ5Y2EgLy8gbWV0aG9kICJvZmZlckZvclNhbGUodWludDY0LGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweDk5ZjVkNTBkIC8vIG1ldGhvZCAiY2FuY2VsU2FsZSgpdm9pZCIKCXB1c2hieXRlcyAweDkxMzExMmVmIC8vIG1ldGhvZCAicG9zdE9mZmVyKHVpbnQ2NCxzdHJpbmcpdm9pZCIKCXB1c2hieXRlcyAweGQ4NTMzN2M0IC8vIG1ldGhvZCAibWludFBheW91dCh1aW50NjQsdWludDY0KSh1aW50NjQsYWRkcmVzcyx1aW50NjQsYWRkcmVzcyx1aW50NjQpIgoJcHVzaGJ5dGVzIDB4YTM5MmFlODIgLy8gbWV0aG9kICJwdXJjaGFzZShwYXkpdm9pZCIKCXB1c2hieXRlcyAweGQ0NDM5NTJhIC8vIG1ldGhvZCAiaXNBZGRyZXNzSW5GaWVsZChzdHJpbmcsYWRkcmVzcylib29sIgoJcHVzaGJ5dGVzIDB4NTBmNDkwYzIgLy8gbWV0aG9kICJnZXRSZW5ld1ByaWNlKCl1aW50NjQiCglwdXNoYnl0ZXMgMHg3NjJlODJkYSAvLyBtZXRob2QgInVwZGF0ZUhhc2goYnl0ZVtdKXZvaWQiCglwdXNoYnl0ZXMgMHg4ZWJjMmM4MyAvLyBtZXRob2QgImNvbnRyYWN0TG9jayhib29sKXZvaWQiCglwdXNoYnl0ZXMgMHhjZDUzNThhNiAvLyBtZXRob2QgInNlZ21lbnRMb2NrKGJvb2wsdWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHgzYTY1N2Q3NyAvLyBtZXRob2QgInZhdWx0T3B0SW5Mb2NrKGJvb2wpdm9pZCIKCXB1c2hieXRlcyAweDQxM2QxNTIzIC8vIG1ldGhvZCAidmF1bHRPcHRJbih1aW50NjRbXSl2b2lkIgoJcHVzaGJ5dGVzIDB4NjY4MjFjMWEgLy8gbWV0aG9kICJ2YXVsdFNlbmQodWludDY0LGFkZHJlc3Msc3RyaW5nLHVpbnQ2NCx1aW50NjRbXSl2b2lkIgoJcHVzaGJ5dGVzIDB4NzdmZDViNzQgLy8gbWV0aG9kICJyZW5ldyhwYXkpdm9pZCIKCXB1c2hieXRlcyAweDk3YjZkODZjIC8vIG1ldGhvZCAic2V0UHJpbWFyeUFkZHJlc3Moc3RyaW5nLGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweDg1Y2NlZDU3IC8vIG1ldGhvZCAicmVnaXN0cnlBZGRpbmdWZXJpZmllZEFkZHJlc3Moc3RyaW5nLHN0cmluZylib29sIgoJcHVzaGJ5dGVzIDB4YjE4OTBhNzUgLy8gbWV0aG9kICJyZWdpc3RyeVJlbW92aW5nVmVyaWZpZWRBZGRyZXNzKHN0cmluZyxhZGRyZXNzLGFkZHJlc3MpYm9vbCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZ2FzICphYmlfcm91dGVfbWludEFzYSAqYWJpX3JvdXRlX2RlbGV0ZUZpZWxkcyAqYWJpX3JvdXRlX3VwZGF0ZVNlZ21lbnRDb3VudCAqYWJpX3JvdXRlX2dldEZpZWxkVXBkYXRlQ29zdCAqYWJpX3JvdXRlX3VwZGF0ZUZpZWxkcyAqYWJpX3JvdXRlX3JlYWRGaWVsZCAqYWJpX3JvdXRlX29mZmVyRm9yU2FsZSAqYWJpX3JvdXRlX2NhbmNlbFNhbGUgKmFiaV9yb3V0ZV9wb3N0T2ZmZXIgKmFiaV9yb3V0ZV9taW50UGF5b3V0ICphYmlfcm91dGVfcHVyY2hhc2UgKmFiaV9yb3V0ZV9pc0FkZHJlc3NJbkZpZWxkICphYmlfcm91dGVfZ2V0UmVuZXdQcmljZSAqYWJpX3JvdXRlX3VwZGF0ZUhhc2ggKmFiaV9yb3V0ZV9jb250cmFjdExvY2sgKmFiaV9yb3V0ZV9zZWdtZW50TG9jayAqYWJpX3JvdXRlX3ZhdWx0T3B0SW5Mb2NrICphYmlfcm91dGVfdmF1bHRPcHRJbiAqYWJpX3JvdXRlX3ZhdWx0U2VuZCAqYWJpX3JvdXRlX3JlbmV3ICphYmlfcm91dGVfc2V0UHJpbWFyeUFkZHJlc3MgKmFiaV9yb3V0ZV9yZWdpc3RyeUFkZGluZ1ZlcmlmaWVkQWRkcmVzcyAqYWJpX3JvdXRlX3JlZ2lzdHJ5UmVtb3ZpbmdWZXJpZmllZEFkZHJlc3MKCgkvLyAhISEhIFdBUk5JTkc6IG5vbi1BQkkgcm91dGluZwoJY2FsbHN1YiBvbkNhbGwKCWludGMgMSAvLyAxCglyZXR1cm4KCipjYWxsX1VwZGF0ZUFwcGxpY2F0aW9uOgoJcHVzaGJ5dGVzIDB4MTc0NzQwNWIgLy8gbWV0aG9kICJ1cGRhdGVBcHBsaWNhdGlvbihzdHJpbmcpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdXBkYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBVcGRhdGVBcHBsaWNhdGlvbgoJZXJyCgoqaW50VG9Bc2NpaToKCXByb3RvIDEgMQoJcHVzaGJ5dGVzIDB4MzAzMTMyMzMzNDM1MzYzNzM4MzkgLy8gIjAxMjM0NTY3ODkiCglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJZXh0cmFjdDMKCXJldHN1YgoJCgoqaXRvYToKCXByb3RvIDEgMQoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglieiAqaXRvYV9pZl9lbmQKCWJ5dGVjIDIzIC8vIDB4MzAKCXJldHN1YgoKKml0b2FfaWZfZW5kOgoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJaW50YyAxMSAvLyAxMAoJLwoJaW50YyAwIC8vIDAKCT4KCWJ6ICppdG9hX3Rlcm5hcnlfZmFsc2UKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCWludGMgMTEgLy8gMTAKCS8KCWNhbGxzdWIgKml0b2EKCWIgKml0b2FfdGVybmFyeV9lbmQKCippdG9hX3Rlcm5hcnlfZmFsc2U6CglieXRlYyAwIC8vICAiIgoKKml0b2FfdGVybmFyeV9lbmQ6CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglpbnRjIDExIC8vIDEwCgklCgljYWxsc3ViICppbnRUb0FzY2lpCgljb25jYXQKCXJldHN1YgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" + }, + "templateVariables": { + "adminAsaId": { + "type": "uint64" + }, + "registryAppId": { + "type": "uint64" + } + }, + "scratchVariables": { + "adminAsaId": { + "type": "uint64", + "slot": 200 + }, + "registryAppId": { + "type": "uint64", + "slot": 201 + } + }, + "compilerInfo": { + "compiler": "algod", + "compilerVersion": { + "major": 3, + "minor": 26, + "patch": 229321, + "commitHash": "43cb5632" + } + } +} diff --git a/examples/nfd/client.ts b/examples/nfd/client.ts new file mode 100644 index 0000000..6ea8d01 --- /dev/null +++ b/examples/nfd/client.ts @@ -0,0 +1,2725 @@ +/* eslint-disable */ +/** + * This file was automatically generated by @algorandfoundation/algokit-client-generator. + * DO NOT MODIFY IT BY HAND. + * requires: @algorandfoundation/algokit-utils: ^7 + */ +import { AlgorandClientInterface } from '@algorandfoundation/algokit-utils/types/algorand-client-interface' +import { ABIReturn, AppReturn, SendAppTransactionResult } from '@algorandfoundation/algokit-utils/types/app' +import { Arc56Contract, getArc56ReturnValue, getABIStructFromABITuple } from '@algorandfoundation/algokit-utils/types/app-arc56' +import { + AppClient as _AppClient, + AppClientMethodCallParams, + AppClientParams, + AppClientBareCallParams, + CallOnComplete, + AppClientCompilationParams, + ResolveAppClientByCreatorAndName, + ResolveAppClientByNetwork, + CloneAppClientParams, +} from '@algorandfoundation/algokit-utils/types/app-client' +import { AppFactory as _AppFactory, AppFactoryAppClientParams, AppFactoryResolveAppClientByCreatorAndNameParams, AppFactoryDeployParams, AppFactoryParams, CreateSchema } from '@algorandfoundation/algokit-utils/types/app-factory' +import { TransactionComposer, AppCallMethodCall, AppMethodCallTransactionArgument, SimulateOptions, RawSimulateOptions, SkipSignaturesSimulateOptions } from '@algorandfoundation/algokit-utils/types/composer' +import { SendParams, SendSingleTransactionResult, SendAtomicTransactionComposerResults } from '@algorandfoundation/algokit-utils/types/transaction' +import { Address, encodeAddress, modelsv2, OnApplicationComplete, Transaction, TransactionSigner } from 'algosdk' +import SimulateResponse = modelsv2.SimulateResponse + +export const APP_SPEC: Arc56Contract = {"name":"NFDInstance","desc":"","methods":[{"name":"createApplication","args":[{"name":"nfdName","type":"string"},{"name":"seller","type":"address"},{"name":"buyer","type":"address"},{"name":"purchaseAmount","type":"uint64"},{"name":"expTime","type":"uint64"},{"name":"commission1Addr","type":"address"},{"name":"commission1Pct","type":"uint64"},{"name":"commission2Addr","type":"address"},{"name":"commission2Pct","type":"uint64"},{"name":"segmentRootAppId","type":"uint64"},{"name":"segmentRootCommissionAddr","type":"address"}],"returns":{"type":"void"},"actions":{"create":["NoOp"],"call":[]}},{"name":"updateApplication","args":[{"name":"versionNum","type":"string"}],"returns":{"type":"void"},"actions":{"create":[],"call":["UpdateApplication"]}},{"name":"gas","args":[],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"mintAsa","args":[{"name":"nfdName","type":"string"},{"name":"url","type":"string"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"deleteFields","args":[{"name":"fieldNames","type":"byte[][]"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"updateSegmentCount","args":[{"name":"childNfdName","type":"string"},{"name":"childNfdAppID","type":"uint64"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"getFieldUpdateCost","readonly":true,"args":[{"name":"fieldAndVals","type":"byte[][]"}],"returns":{"type":"uint64"},"actions":{"create":[],"call":["NoOp"]}},{"name":"updateFields","args":[{"name":"fieldAndVals","type":"byte[][]"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"readField","readonly":true,"args":[{"name":"fieldName","type":"byte[]"}],"returns":{"type":"byte[]"},"actions":{"create":[],"call":["NoOp"]}},{"name":"offerForSale","args":[{"name":"sellAmount","type":"uint64"},{"name":"reservedFor","type":"address"}],"returns":{"type":"void"},"events":[{"name":"nfd_offerForSale","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"seller","type":"address"},{"name":"amount","type":"uint64"},{"name":"reservedFor","type":"address"}],"desc":""}],"actions":{"create":[],"call":["NoOp"]}},{"name":"cancelSale","args":[],"returns":{"type":"void"},"events":[{"name":"nfd_saleCancelled","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"}],"desc":""}],"actions":{"create":[],"call":["NoOp"]}},{"name":"postOffer","args":[{"name":"offer","type":"uint64"},{"name":"note","type":"string"}],"returns":{"type":"void"},"events":[{"name":"nfd_postedOffer","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"sender","type":"address"},{"name":"amount","type":"uint64"},{"name":"note","type":"string"}],"desc":""}],"actions":{"create":[],"call":["NoOp"]}},{"name":"mintPayout","args":[{"name":"oneYearPrice","type":"uint64"},{"name":"segmentPlatformCostInAlgo","type":"uint64"}],"returns":{"type":"(uint64,address,uint64,address,uint64)","struct":"PayoutInfo"},"actions":{"create":[],"call":["NoOp"]}},{"name":"purchase","args":[{"name":"payment","type":"pay"}],"returns":{"type":"void"},"events":[{"name":"nfd_purchased","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"seller","type":"address"},{"name":"buyer","type":"address"},{"name":"sellAmount","type":"uint64"},{"name":"offerAmount","type":"uint64"},{"name":"overpaymentRefund","type":"uint64"},{"name":"convFeeAddr","type":"address"},{"name":"convFeeAmount","type":"uint64"}],"desc":""}],"actions":{"create":[],"call":["NoOp"]}},{"name":"isAddressInField","readonly":true,"args":[{"name":"fieldName","type":"string"},{"name":"address","type":"address"}],"returns":{"type":"bool"},"actions":{"create":[],"call":["NoOp"]}},{"name":"getRenewPrice","readonly":true,"args":[],"returns":{"type":"uint64"},"actions":{"create":[],"call":["NoOp"]}},{"name":"updateHash","args":[{"name":"hash","type":"byte[]"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"contractLock","args":[{"name":"lock","type":"bool"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"segmentLock","args":[{"name":"lock","type":"bool"},{"name":"usdPrice","type":"uint64"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"vaultOptInLock","args":[{"name":"lock","type":"bool"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"vaultOptIn","args":[{"name":"assets","type":"uint64[]"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"vaultSend","args":[{"name":"amount","type":"uint64"},{"name":"receiver","type":"address"},{"name":"note","type":"string"},{"name":"asset","type":"uint64"},{"name":"otherAssets","type":"uint64[]"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"renew","desc":"Renew adds more time to an existing NFDs expiration, or renews it if expired.\n\n\nAs part of v2-v3 upgrade, the NFDs are converted from lifetime NFDs to renewal NFDs. The v2 contract is upgraded\nto v3, then renew is called on the (now v3) nfd to turn it into a renewal (note the if curExpiration === 0 check)\n\n\nIf already renewal, then it extends the current expiration time by the time specified (minimum 1 yr) (365 / price paid * mint price)\nExpirations can never be more than NFD_MAX_EXPIRATION_DAYS days in the future.\n\n\nIF the NFD is expired:\n x The current owner can take it back over at base price - and NFD metadata doesn't have to be cleared - they\n get it back as-is.\n x If not current owner, then the price goes from high of base price * 10,000 down to base price over 24 hrs where\n 'buyer' has to pay at least that price. The NFD MUST ALREADY HAVE ITS METADATA CLEARED!","args":[{"name":"payment","type":"pay","desc":"The payment transaction from which the renewal period is determined.."}],"returns":{"type":"void"},"events":[{"name":"nfd_saleCancelled","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"}],"desc":""},{"name":"nfd_renewed","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"origOwner","type":"address"},{"name":"buyer","type":"address"},{"name":"priceOneYear","type":"uint64"},{"name":"renewAmount","type":"uint64"},{"name":"expTime","type":"uint64"}],"desc":""}],"actions":{"create":[],"call":["NoOp"]}},{"name":"setPrimaryAddress","args":[{"name":"fieldName","type":"string"},{"name":"address","type":"address"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]}},{"name":"registryAddingVerifiedAddress","desc":"Approved call from registry instructing us to move the specified u.cav.xx field and add to the specified\nverified field.","args":[{"name":"fieldBeingVerified","type":"string","desc":"- MUST START with u.cav. (!)\ngets 'added' to 'set' in next arg - must be fixed-sized bytes"},{"name":"fieldSetName","type":"string","desc":"(must BE v.ca[...].as)"}],"returns":{"type":"bool","desc":"true if added or already present, false otherwise"},"events":[{"name":"nfd_addressLinked","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"address","type":"address"}],"desc":""}],"actions":{"create":[],"call":["NoOp"]}},{"name":"registryRemovingVerifiedAddress","desc":"Approved call from registry instructing us to REMOVE an address from the specified verified address set","args":[{"name":"fieldBeingChanged","type":"string","desc":"The field being changed in the address registry."},{"name":"address","type":"address","desc":"The address to be removed from the field."},{"name":"mbrRefundDest","type":"address","desc":"the address to send reclaimed MBR (if any)\n boolean - true if valid removed"}],"returns":{"type":"bool"},"events":[{"name":"nfd_addressUnlinked","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"address","type":"address"}],"desc":""}],"actions":{"create":[],"call":["NoOp"]}}],"events":[{"name":"nfd_offerForSale","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"seller","type":"address"},{"name":"amount","type":"uint64"},{"name":"reservedFor","type":"address"}],"desc":""},{"name":"nfd_saleCancelled","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"}],"desc":""},{"name":"nfd_postedOffer","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"sender","type":"address"},{"name":"amount","type":"uint64"},{"name":"note","type":"string"}],"desc":""},{"name":"nfd_purchased","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"seller","type":"address"},{"name":"buyer","type":"address"},{"name":"sellAmount","type":"uint64"},{"name":"offerAmount","type":"uint64"},{"name":"overpaymentRefund","type":"uint64"},{"name":"convFeeAddr","type":"address"},{"name":"convFeeAmount","type":"uint64"}],"desc":""},{"name":"nfd_renewed","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"origOwner","type":"address"},{"name":"buyer","type":"address"},{"name":"priceOneYear","type":"uint64"},{"name":"renewAmount","type":"uint64"},{"name":"expTime","type":"uint64"}],"desc":""},{"name":"nfd_addressLinked","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"address","type":"address"}],"desc":""},{"name":"nfd_addressUnlinked","args":[{"name":"appId","type":"uint64"},{"name":"name","type":"string"},{"name":"address","type":"address"}],"desc":""}],"arcs":[4,56],"structs":{"PayoutInfo":[{"name":"amountToSeller","type":"uint64"},{"name":"commissionAddress","type":"address"},{"name":"amountToCommission","type":"uint64"},{"name":"segmentRootOwner","type":"address"},{"name":"amountToSegmentRoot","type":"uint64"}]},"state":{"schema":{"global":{"bytes":30,"ints":0},"local":{"bytes":0,"ints":0}},"keys":{"global":{},"local":{},"box":{}},"maps":{"global":{"globalState":{"keyType":"AVMBytes","valueType":"AVMBytes"}},"local":{},"box":{"boxes":{"keyType":"AVMBytes","valueType":"AVMBytes"}}}},"bareActions":{"create":[],"call":[]},"sourceInfo":{"approval":{"sourceInfo":[{"teal":15,"source":"contracts/NFDInstance.algo.ts:17","pc":[1,2]},{"teal":16,"source":"contracts/NFDInstance.algo.ts:17","pc":[3]},{"teal":17,"source":"contracts/NFDInstance.algo.ts:17","pc":[4,5]},{"teal":18,"source":"contracts/NFDInstance.algo.ts:17","pc":[6]},{"teal":19,"source":"contracts/NFDInstance.algo.ts:17","pc":[7,8]},{"teal":20,"source":"contracts/NFDInstance.algo.ts:17","pc":[9]},{"teal":21,"source":"contracts/NFDInstance.algo.ts:17","pc":[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]},{"teal":25,"source":"contracts/NFDInstance.algo.ts:17","errorMessage":"The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?","pc":[36]},{"teal":30,"source":"contracts/NFDInstance.algo.ts:43","pc":[37,38,39]},{"teal":31,"source":"contracts/NFDInstance.algo.ts:43","pc":[40]},{"teal":32,"source":"contracts/NFDInstance.algo.ts:43","pc":[41]},{"teal":33,"source":"contracts/NFDInstance.algo.ts:43","pc":[42]},{"teal":34,"source":"contracts/NFDInstance.algo.ts:43","pc":[43]},{"teal":37,"source":"contracts/NFDInstance.algo.ts:43","errorMessage":"argument 0 (segmentRootCommissionAddr) for createApplication must be a address","pc":[44]},{"teal":40,"source":"contracts/NFDInstance.algo.ts:42","pc":[45,46,47]},{"teal":41,"source":"contracts/NFDInstance.algo.ts:42","pc":[48]},{"teal":44,"source":"contracts/NFDInstance.algo.ts:41","pc":[49,50,51]},{"teal":45,"source":"contracts/NFDInstance.algo.ts:41","pc":[52]},{"teal":48,"source":"contracts/NFDInstance.algo.ts:40","pc":[53,54,55]},{"teal":49,"source":"contracts/NFDInstance.algo.ts:40","pc":[56]},{"teal":50,"source":"contracts/NFDInstance.algo.ts:40","pc":[57]},{"teal":51,"source":"contracts/NFDInstance.algo.ts:40","pc":[58]},{"teal":52,"source":"contracts/NFDInstance.algo.ts:40","pc":[59]},{"teal":55,"source":"contracts/NFDInstance.algo.ts:40","errorMessage":"argument 3 (commission2Addr) for createApplication must be a address","pc":[60]},{"teal":58,"source":"contracts/NFDInstance.algo.ts:39","pc":[61,62,63]},{"teal":59,"source":"contracts/NFDInstance.algo.ts:39","pc":[64]},{"teal":62,"source":"contracts/NFDInstance.algo.ts:38","pc":[65,66,67]},{"teal":63,"source":"contracts/NFDInstance.algo.ts:38","pc":[68]},{"teal":64,"source":"contracts/NFDInstance.algo.ts:38","pc":[69]},{"teal":65,"source":"contracts/NFDInstance.algo.ts:38","pc":[70]},{"teal":66,"source":"contracts/NFDInstance.algo.ts:38","pc":[71]},{"teal":69,"source":"contracts/NFDInstance.algo.ts:38","errorMessage":"argument 5 (commission1Addr) for createApplication must be a address","pc":[72]},{"teal":72,"source":"contracts/NFDInstance.algo.ts:37","pc":[73,74,75]},{"teal":73,"source":"contracts/NFDInstance.algo.ts:37","pc":[76]},{"teal":76,"source":"contracts/NFDInstance.algo.ts:36","pc":[77,78,79]},{"teal":77,"source":"contracts/NFDInstance.algo.ts:36","pc":[80]},{"teal":80,"source":"contracts/NFDInstance.algo.ts:35","pc":[81,82,83]},{"teal":81,"source":"contracts/NFDInstance.algo.ts:35","pc":[84]},{"teal":82,"source":"contracts/NFDInstance.algo.ts:35","pc":[85]},{"teal":83,"source":"contracts/NFDInstance.algo.ts:35","pc":[86]},{"teal":84,"source":"contracts/NFDInstance.algo.ts:35","pc":[87]},{"teal":87,"source":"contracts/NFDInstance.algo.ts:35","errorMessage":"argument 8 (buyer) for createApplication must be a address","pc":[88]},{"teal":90,"source":"contracts/NFDInstance.algo.ts:34","pc":[89,90,91]},{"teal":91,"source":"contracts/NFDInstance.algo.ts:34","pc":[92]},{"teal":92,"source":"contracts/NFDInstance.algo.ts:34","pc":[93]},{"teal":93,"source":"contracts/NFDInstance.algo.ts:34","pc":[94]},{"teal":94,"source":"contracts/NFDInstance.algo.ts:34","pc":[95]},{"teal":97,"source":"contracts/NFDInstance.algo.ts:34","errorMessage":"argument 9 (seller) for createApplication must be a address","pc":[96]},{"teal":100,"source":"contracts/NFDInstance.algo.ts:33","pc":[97,98,99]},{"teal":101,"source":"contracts/NFDInstance.algo.ts:33","pc":[100,101,102]},{"teal":104,"source":"contracts/NFDInstance.algo.ts:32","pc":[103,104,105]},{"teal":105,"source":"contracts/NFDInstance.algo.ts:32","pc":[106]},{"teal":106,"source":"contracts/NFDInstance.algo.ts:32","pc":[107]},{"teal":110,"source":"contracts/NFDInstance.algo.ts:32","pc":[108,109,110]},{"teal":113,"source":"contracts/NFDInstance.algo.ts:32","pc":[111]},{"teal":117,"source":"contracts/NFDInstance.algo.ts:45","pc":[112,113]},{"teal":118,"source":"contracts/NFDInstance.algo.ts:45","pc":[114,115]},{"teal":119,"source":"contracts/NFDInstance.algo.ts:45","pc":[116]},{"teal":122,"source":"contracts/NFDInstance.algo.ts:45","errorMessage":"caller must be NFD registry!","pc":[117]},{"teal":126,"source":"contracts/NFDInstance.algo.ts:46","pc":[118,119]},{"teal":127,"source":"contracts/NFDInstance.algo.ts:46","pc":[120]},{"teal":128,"source":"contracts/NFDInstance.algo.ts:46","pc":[121]},{"teal":129,"source":"contracts/NFDInstance.algo.ts:46","pc":[122]},{"teal":133,"source":"contracts/NFDInstance.algo.ts:48","pc":[123,124]},{"teal":134,"source":"contracts/NFDInstance.algo.ts:48","pc":[125,126]},{"teal":135,"source":"contracts/NFDInstance.algo.ts:48","pc":[127]},{"teal":139,"source":"contracts/NFDInstance.algo.ts:49","pc":[128,129]},{"teal":140,"source":"contracts/NFDInstance.algo.ts:49","pc":[130,131,132,133,134]},{"teal":141,"source":"contracts/NFDInstance.algo.ts:49","pc":[135]},{"teal":145,"source":"contracts/NFDInstance.algo.ts:50","pc":[136]},{"teal":146,"source":"contracts/NFDInstance.algo.ts:50","pc":[137,138]},{"teal":147,"source":"contracts/NFDInstance.algo.ts:50","pc":[139]},{"teal":151,"source":"contracts/NFDInstance.algo.ts:51","pc":[140,141,142,143,144,145,146,147,148,149,150,151,152,153,154]},{"teal":152,"source":"contracts/NFDInstance.algo.ts:51","pc":[155,156]},{"teal":153,"source":"contracts/NFDInstance.algo.ts:51","pc":[157]},{"teal":154,"source":"contracts/NFDInstance.algo.ts:51","pc":[158]},{"teal":158,"source":"contracts/NFDInstance.algo.ts:52","pc":[159]},{"teal":159,"source":"contracts/NFDInstance.algo.ts:52","pc":[160,161]},{"teal":160,"source":"contracts/NFDInstance.algo.ts:52","pc":[162]},{"teal":161,"source":"contracts/NFDInstance.algo.ts:52","pc":[163]},{"teal":165,"source":"contracts/NFDInstance.algo.ts:53","pc":[164,165]},{"teal":166,"source":"contracts/NFDInstance.algo.ts:53","pc":[166,167]},{"teal":167,"source":"contracts/NFDInstance.algo.ts:53","pc":[168]},{"teal":168,"source":"contracts/NFDInstance.algo.ts:53","pc":[169]},{"teal":172,"source":"contracts/NFDInstance.algo.ts:54","pc":[170,171]},{"teal":173,"source":"contracts/NFDInstance.algo.ts:54","pc":[172,173]},{"teal":174,"source":"contracts/NFDInstance.algo.ts:54","pc":[174]},{"teal":178,"source":"contracts/NFDInstance.algo.ts:55","pc":[175,176]},{"teal":179,"source":"contracts/NFDInstance.algo.ts:55","pc":[177,178]},{"teal":180,"source":"contracts/NFDInstance.algo.ts:55","pc":[179]},{"teal":184,"source":"contracts/NFDInstance.algo.ts:56","pc":[180]},{"teal":185,"source":"contracts/NFDInstance.algo.ts:56","pc":[181,182]},{"teal":186,"source":"contracts/NFDInstance.algo.ts:56","pc":[183]},{"teal":190,"source":"contracts/NFDInstance.algo.ts:57","pc":[184,185]},{"teal":191,"source":"contracts/NFDInstance.algo.ts:57","pc":[186,187]},{"teal":192,"source":"contracts/NFDInstance.algo.ts:57","pc":[188]},{"teal":196,"source":"contracts/NFDInstance.algo.ts:58","pc":[189,190]},{"teal":197,"source":"contracts/NFDInstance.algo.ts:58","pc":[191,192]},{"teal":198,"source":"contracts/NFDInstance.algo.ts:58","pc":[193]},{"teal":199,"source":"contracts/NFDInstance.algo.ts:58","pc":[194]},{"teal":204,"source":"contracts/NFDInstance.algo.ts:59","pc":[195,196]},{"teal":205,"source":"contracts/NFDInstance.algo.ts:59","pc":[197,198]},{"teal":206,"source":"contracts/NFDInstance.algo.ts:59","pc":[199]},{"teal":207,"source":"contracts/NFDInstance.algo.ts:59","pc":[200,201,202]},{"teal":212,"source":"contracts/NFDInstance.algo.ts:60","pc":[203,204]},{"teal":213,"source":"contracts/NFDInstance.algo.ts:60","pc":[205]},{"teal":214,"source":"contracts/NFDInstance.algo.ts:60","pc":[206]},{"teal":215,"source":"contracts/NFDInstance.algo.ts:60","pc":[207]},{"teal":216,"source":"contracts/NFDInstance.algo.ts:60","pc":[208,209,210]},{"teal":217,"source":"contracts/NFDInstance.algo.ts:60","pc":[211,212]},{"teal":218,"source":"contracts/NFDInstance.algo.ts:60","pc":[213,214]},{"teal":219,"source":"contracts/NFDInstance.algo.ts:60","pc":[215]},{"teal":220,"source":"contracts/NFDInstance.algo.ts:60","pc":[216]},{"teal":224,"source":"contracts/NFDInstance.algo.ts:60","errorMessage":"commission must be between 1 and 50%","pc":[217]},{"teal":228,"source":"contracts/NFDInstance.algo.ts:61","pc":[218,219]},{"teal":229,"source":"contracts/NFDInstance.algo.ts:61","pc":[220,221]},{"teal":230,"source":"contracts/NFDInstance.algo.ts:61","pc":[222]},{"teal":234,"source":"contracts/NFDInstance.algo.ts:62","pc":[223,224]},{"teal":235,"source":"contracts/NFDInstance.algo.ts:62","pc":[225,226]},{"teal":236,"source":"contracts/NFDInstance.algo.ts:62","pc":[227]},{"teal":237,"source":"contracts/NFDInstance.algo.ts:62","pc":[228]},{"teal":242,"source":"contracts/NFDInstance.algo.ts:63","pc":[229,230]},{"teal":243,"source":"contracts/NFDInstance.algo.ts:63","pc":[231,232]},{"teal":244,"source":"contracts/NFDInstance.algo.ts:63","pc":[233]},{"teal":245,"source":"contracts/NFDInstance.algo.ts:63","pc":[234,235,236]},{"teal":250,"source":"contracts/NFDInstance.algo.ts:64","pc":[237,238]},{"teal":251,"source":"contracts/NFDInstance.algo.ts:64","pc":[239]},{"teal":252,"source":"contracts/NFDInstance.algo.ts:64","pc":[240]},{"teal":253,"source":"contracts/NFDInstance.algo.ts:64","pc":[241]},{"teal":254,"source":"contracts/NFDInstance.algo.ts:64","pc":[242,243,244]},{"teal":255,"source":"contracts/NFDInstance.algo.ts:64","pc":[245,246]},{"teal":256,"source":"contracts/NFDInstance.algo.ts:64","pc":[247,248]},{"teal":257,"source":"contracts/NFDInstance.algo.ts:64","pc":[249]},{"teal":258,"source":"contracts/NFDInstance.algo.ts:64","pc":[250]},{"teal":262,"source":"contracts/NFDInstance.algo.ts:64","errorMessage":"commission must be between 1 and 50%","pc":[251]},{"teal":266,"source":"contracts/NFDInstance.algo.ts:65","pc":[252,253]},{"teal":267,"source":"contracts/NFDInstance.algo.ts:65","pc":[254,255]},{"teal":268,"source":"contracts/NFDInstance.algo.ts:65","pc":[256]},{"teal":272,"source":"contracts/NFDInstance.algo.ts:66","pc":[257,258]},{"teal":273,"source":"contracts/NFDInstance.algo.ts:66","pc":[259,260]},{"teal":274,"source":"contracts/NFDInstance.algo.ts:66","pc":[261]},{"teal":275,"source":"contracts/NFDInstance.algo.ts:66","pc":[262]},{"teal":282,"source":"contracts/NFDInstance.algo.ts:69","pc":[263,264,265,266,267,268,269,270,271,272,273,274]},{"teal":283,"source":"contracts/NFDInstance.algo.ts:69","pc":[275,276,277,278,279,280,281,282]},{"teal":284,"source":"contracts/NFDInstance.algo.ts:69","pc":[283]},{"teal":288,"source":"contracts/NFDInstance.algo.ts:70","pc":[284,285,286,287,288,289,290,291,292,293,294,295]},{"teal":289,"source":"contracts/NFDInstance.algo.ts:70","pc":[296,297,298,299,300,301,302,303,304,305]},{"teal":290,"source":"contracts/NFDInstance.algo.ts:70","pc":[306]},{"teal":294,"source":"contracts/NFDInstance.algo.ts:72","pc":[307,308]},{"teal":295,"source":"contracts/NFDInstance.algo.ts:72","pc":[309,310]},{"teal":296,"source":"contracts/NFDInstance.algo.ts:72","pc":[311]},{"teal":297,"source":"contracts/NFDInstance.algo.ts:72","pc":[312]},{"teal":301,"source":"contracts/NFDInstance.algo.ts:75","pc":[313,314]},{"teal":302,"source":"contracts/NFDInstance.algo.ts:75","pc":[315,316]},{"teal":303,"source":"contracts/NFDInstance.algo.ts:75","pc":[317]},{"teal":308,"source":"contracts/NFDInstance.algo.ts:77","pc":[318,319]},{"teal":309,"source":"contracts/NFDInstance.algo.ts:77","pc":[320]},{"teal":310,"source":"contracts/NFDInstance.algo.ts:77","pc":[321]},{"teal":311,"source":"contracts/NFDInstance.algo.ts:77","pc":[322,323,324]},{"teal":316,"source":"contracts/NFDInstance.algo.ts:78","pc":[325,326]},{"teal":317,"source":"contracts/NFDInstance.algo.ts:78","pc":[327,328]},{"teal":318,"source":"contracts/NFDInstance.algo.ts:78","pc":[329]},{"teal":319,"source":"contracts/NFDInstance.algo.ts:78","pc":[330]},{"teal":323,"source":"contracts/NFDInstance.algo.ts:81","pc":[331,332]},{"teal":324,"source":"contracts/NFDInstance.algo.ts:81","pc":[333,334]},{"teal":325,"source":"contracts/NFDInstance.algo.ts:81","pc":[335,336,337]},{"teal":326,"source":"contracts/NFDInstance.algo.ts:81","pc":[338,339]},{"teal":330,"source":"contracts/NFDInstance.algo.ts:84","pc":[340,341]},{"teal":331,"source":"contracts/NFDInstance.algo.ts:84","pc":[342,343]},{"teal":332,"source":"contracts/NFDInstance.algo.ts:84","pc":[344]},{"teal":333,"source":"contracts/NFDInstance.algo.ts:84","pc":[345,346]},{"teal":334,"source":"contracts/NFDInstance.algo.ts:84","pc":[347]},{"teal":335,"source":"contracts/NFDInstance.algo.ts:84","pc":[348]},{"teal":336,"source":"contracts/NFDInstance.algo.ts:84","pc":[349]},{"teal":337,"source":"contracts/NFDInstance.algo.ts:84","pc":[350]},{"teal":338,"source":"contracts/NFDInstance.algo.ts:84","pc":[351,352]},{"teal":339,"source":"contracts/NFDInstance.algo.ts:84","pc":[353]},{"teal":340,"source":"contracts/NFDInstance.algo.ts:84","pc":[354]},{"teal":341,"source":"contracts/NFDInstance.algo.ts:84","pc":[355]},{"teal":342,"source":"contracts/NFDInstance.algo.ts:84","pc":[356]},{"teal":343,"source":"contracts/NFDInstance.algo.ts:84","pc":[357,358]},{"teal":344,"source":"contracts/NFDInstance.algo.ts:84","pc":[359,360]},{"teal":345,"source":"contracts/NFDInstance.algo.ts:84","pc":[361]},{"teal":346,"source":"contracts/NFDInstance.algo.ts:84","pc":[362]},{"teal":347,"source":"contracts/NFDInstance.algo.ts:84","pc":[363]},{"teal":352,"source":"contracts/NFDInstance.algo.ts:88","pc":[364,365]},{"teal":353,"source":"contracts/NFDInstance.algo.ts:88","pc":[366,367]},{"teal":354,"source":"contracts/NFDInstance.algo.ts:88","pc":[368,369,370]},{"teal":355,"source":"contracts/NFDInstance.algo.ts:88","pc":[371,372]},{"teal":356,"source":"contracts/NFDInstance.algo.ts:88","pc":[373]},{"teal":357,"source":"contracts/NFDInstance.algo.ts:88","pc":[374,375,376]},{"teal":365,"source":"contracts/NFDInstance.algo.ts:91","pc":[377,378]},{"teal":366,"source":"contracts/NFDInstance.algo.ts:91","pc":[379,380]},{"teal":367,"source":"contracts/NFDInstance.algo.ts:91","pc":[381]},{"teal":370,"source":"contracts/NFDInstance.algo.ts:90","errorMessage":"parent commission address must be set if parent app id is set and parent is unlocked","pc":[382]},{"teal":377,"source":"contracts/NFDInstance.algo.ts:98","pc":[383,384]},{"teal":378,"source":"contracts/NFDInstance.algo.ts:98","pc":[385,386]},{"teal":379,"source":"contracts/NFDInstance.algo.ts:98","pc":[387,388,389]},{"teal":380,"source":"contracts/NFDInstance.algo.ts:98","pc":[390,391]},{"teal":381,"source":"contracts/NFDInstance.algo.ts:98","pc":[392]},{"teal":384,"source":"contracts/NFDInstance.algo.ts:97","errorMessage":"the segment commission agent should be the parent nfd's seller","pc":[393]},{"teal":388,"source":"contracts/NFDInstance.algo.ts:101","pc":[394,395]},{"teal":389,"source":"contracts/NFDInstance.algo.ts:101","pc":[396,397]},{"teal":390,"source":"contracts/NFDInstance.algo.ts:101","pc":[398]},{"teal":395,"source":"contracts/NFDInstance.algo.ts:32","pc":[399]},{"teal":400,"source":"contracts/NFDInstance.algo.ts:106","pc":[400,401,402]},{"teal":401,"source":"contracts/NFDInstance.algo.ts:106","pc":[403,404,405]},{"teal":404,"source":"contracts/NFDInstance.algo.ts:106","pc":[406,407,408]},{"teal":405,"source":"contracts/NFDInstance.algo.ts:106","pc":[409]},{"teal":406,"source":"contracts/NFDInstance.algo.ts:106","pc":[410]},{"teal":410,"source":"contracts/NFDInstance.algo.ts:106","pc":[411,412,413]},{"teal":414,"source":"contracts/NFDInstance.algo.ts:110","pc":[414,415]},{"teal":415,"source":"contracts/NFDInstance.algo.ts:110","pc":[416]},{"teal":416,"source":"contracts/NFDInstance.algo.ts:110","pc":[417,418]},{"teal":417,"source":"contracts/NFDInstance.algo.ts:110","pc":[419]},{"teal":420,"source":"contracts/NFDInstance.algo.ts:110","errorMessage":"contract must be unlocked to upgrade","pc":[420]},{"teal":424,"source":"contracts/NFDInstance.algo.ts:113","pc":[421,422]},{"teal":425,"source":"contracts/NFDInstance.algo.ts:113","pc":[423,424]},{"teal":426,"source":"contracts/NFDInstance.algo.ts:113","pc":[425]},{"teal":429,"source":"contracts/NFDInstance.algo.ts:113","errorMessage":"caller must be NFD registry!","pc":[426]},{"teal":433,"source":"contracts/NFDInstance.algo.ts:114","pc":[427,428]},{"teal":434,"source":"contracts/NFDInstance.algo.ts:114","pc":[429,430]},{"teal":435,"source":"contracts/NFDInstance.algo.ts:114","pc":[431]},{"teal":439,"source":"contracts/NFDInstance.algo.ts:115","pc":[432]},{"teal":440,"source":"contracts/NFDInstance.algo.ts:115","pc":[433,434]},{"teal":441,"source":"contracts/NFDInstance.algo.ts:115","pc":[435]},{"teal":442,"source":"contracts/NFDInstance.algo.ts:115","pc":[436]},{"teal":443,"source":"contracts/NFDInstance.algo.ts:106","pc":[437]},{"teal":447,"source":"contracts/NFDInstance.algo.ts:118","pc":[438,439,440]},{"teal":451,"source":"contracts/NFDInstance.algo.ts:120","pc":[441,442,443]},{"teal":452,"source":"contracts/NFDInstance.algo.ts:120","pc":[444]},{"teal":453,"source":"contracts/NFDInstance.algo.ts:120","pc":[445]},{"teal":454,"source":"contracts/NFDInstance.algo.ts:120","pc":[446]},{"teal":455,"source":"contracts/NFDInstance.algo.ts:120","pc":[447]},{"teal":456,"source":"contracts/NFDInstance.algo.ts:120","pc":[448]},{"teal":459,"source":"contracts/NFDInstance.algo.ts:120","errorMessage":"can't still be in minting state","pc":[449]},{"teal":464,"source":"contracts/NFDInstance.algo.ts:121","pc":[450,451,452]},{"teal":465,"source":"contracts/NFDInstance.algo.ts:121","pc":[453,454,455,456,457]},{"teal":466,"source":"contracts/NFDInstance.algo.ts:121","pc":[458]},{"teal":467,"source":"contracts/NFDInstance.algo.ts:121","pc":[459,460,461]},{"teal":472,"source":"contracts/NFDInstance.algo.ts:121","pc":[462]},{"teal":477,"source":"contracts/NFDInstance.algo.ts:125","pc":[463,464,465]},{"teal":478,"source":"contracts/NFDInstance.algo.ts:125","pc":[466]},{"teal":481,"source":"contracts/NFDInstance.algo.ts:125","errorMessage":"NFD can't be expired for these v1/v2 operations","pc":[467]},{"teal":486,"source":"contracts/NFDInstance.algo.ts:127","pc":[468,469]},{"teal":487,"source":"contracts/NFDInstance.algo.ts:127","pc":[470,471]},{"teal":488,"source":"contracts/NFDInstance.algo.ts:127","pc":[472]},{"teal":489,"source":"contracts/NFDInstance.algo.ts:127","pc":[473]},{"teal":490,"source":"contracts/NFDInstance.algo.ts:127","pc":[474,475,476]},{"teal":491,"source":"contracts/NFDInstance.algo.ts:127","pc":[477,478,479]},{"teal":492,"source":"contracts/NFDInstance.algo.ts:127","pc":[480,481,482,483,484,485,486,487,488,489,490,491,492,493]},{"teal":493,"source":"contracts/NFDInstance.algo.ts:127","pc":[494]},{"teal":494,"source":"contracts/NFDInstance.algo.ts:127","pc":[495]},{"teal":497,"source":"contracts/NFDInstance.algo.ts:127","pc":[496,497,498]},{"teal":502,"source":"contracts/NFDInstance.algo.ts:133","pc":[499,500,501]},{"teal":506,"source":"contracts/NFDInstance.algo.ts:134","pc":[502]},{"teal":512,"source":"contracts/NFDInstance.algo.ts:136","pc":[503,504]},{"teal":513,"source":"contracts/NFDInstance.algo.ts:136","pc":[505]},{"teal":514,"source":"contracts/NFDInstance.algo.ts:136","pc":[506]},{"teal":515,"source":"contracts/NFDInstance.algo.ts:136","pc":[507]},{"teal":516,"source":"contracts/NFDInstance.algo.ts:136","pc":[508,509,510]},{"teal":517,"source":"contracts/NFDInstance.algo.ts:136","pc":[511,512,513]},{"teal":518,"source":"contracts/NFDInstance.algo.ts:136","pc":[514,515,516,517,518,519,520,521,522,523,524,525,526,527]},{"teal":519,"source":"contracts/NFDInstance.algo.ts:136","pc":[528]},{"teal":520,"source":"contracts/NFDInstance.algo.ts:136","pc":[529]},{"teal":523,"source":"contracts/NFDInstance.algo.ts:136","pc":[530,531,532]},{"teal":528,"source":"contracts/NFDInstance.algo.ts:141","pc":[533,534,535]},{"teal":532,"source":"contracts/NFDInstance.algo.ts:142","pc":[536]},{"teal":538,"source":"contracts/NFDInstance.algo.ts:144","pc":[537,538]},{"teal":539,"source":"contracts/NFDInstance.algo.ts:144","pc":[539]},{"teal":540,"source":"contracts/NFDInstance.algo.ts:144","pc":[540]},{"teal":541,"source":"contracts/NFDInstance.algo.ts:144","pc":[541]},{"teal":542,"source":"contracts/NFDInstance.algo.ts:144","pc":[542,543,544]},{"teal":543,"source":"contracts/NFDInstance.algo.ts:144","pc":[545,546,547]},{"teal":544,"source":"contracts/NFDInstance.algo.ts:144","pc":[548,549,550,551,552,553,554,555,556,557,558,559,560,561,562]},{"teal":545,"source":"contracts/NFDInstance.algo.ts:144","pc":[563]},{"teal":546,"source":"contracts/NFDInstance.algo.ts:144","pc":[564]},{"teal":549,"source":"contracts/NFDInstance.algo.ts:144","pc":[565,566,567]},{"teal":554,"source":"contracts/NFDInstance.algo.ts:149","pc":[568,569,570]},{"teal":555,"source":"contracts/NFDInstance.algo.ts:149","pc":[571,572,573]},{"teal":556,"source":"contracts/NFDInstance.algo.ts:149","pc":[574]},{"teal":560,"source":"contracts/NFDInstance.algo.ts:150","pc":[575]},{"teal":566,"source":"contracts/NFDInstance.algo.ts:153","pc":[576,577]},{"teal":567,"source":"contracts/NFDInstance.algo.ts:153","pc":[578]},{"teal":568,"source":"contracts/NFDInstance.algo.ts:153","pc":[579]},{"teal":569,"source":"contracts/NFDInstance.algo.ts:153","pc":[580]},{"teal":570,"source":"contracts/NFDInstance.algo.ts:153","pc":[581,582,583]},{"teal":571,"source":"contracts/NFDInstance.algo.ts:153","pc":[584,585,586]},{"teal":572,"source":"contracts/NFDInstance.algo.ts:153","pc":[587,588,589,590,591,592,593,594,595,596,597,598,599]},{"teal":573,"source":"contracts/NFDInstance.algo.ts:153","pc":[600]},{"teal":574,"source":"contracts/NFDInstance.algo.ts:153","pc":[601]},{"teal":577,"source":"contracts/NFDInstance.algo.ts:153","pc":[602,603,604]},{"teal":582,"source":"contracts/NFDInstance.algo.ts:154","pc":[605,606,607]},{"teal":583,"source":"contracts/NFDInstance.algo.ts:154","pc":[608,609,610]},{"teal":587,"source":"contracts/NFDInstance.algo.ts:155","pc":[611]},{"teal":593,"source":"contracts/NFDInstance.algo.ts:159","pc":[612,613]},{"teal":594,"source":"contracts/NFDInstance.algo.ts:159","pc":[614]},{"teal":595,"source":"contracts/NFDInstance.algo.ts:159","pc":[615]},{"teal":596,"source":"contracts/NFDInstance.algo.ts:159","pc":[616]},{"teal":597,"source":"contracts/NFDInstance.algo.ts:159","pc":[617,618,619]},{"teal":598,"source":"contracts/NFDInstance.algo.ts:159","pc":[620,621,622]},{"teal":599,"source":"contracts/NFDInstance.algo.ts:159","pc":[623,624,625,626,627,628,629,630,631,632,633,634,635,636,637]},{"teal":600,"source":"contracts/NFDInstance.algo.ts:159","pc":[638]},{"teal":601,"source":"contracts/NFDInstance.algo.ts:159","pc":[639]},{"teal":604,"source":"contracts/NFDInstance.algo.ts:159","pc":[640,641,642]},{"teal":609,"source":"contracts/NFDInstance.algo.ts:160","pc":[643,644,645]},{"teal":610,"source":"contracts/NFDInstance.algo.ts:160","pc":[646,647]},{"teal":611,"source":"contracts/NFDInstance.algo.ts:160","pc":[648]},{"teal":612,"source":"contracts/NFDInstance.algo.ts:160","pc":[649,650,651]},{"teal":616,"source":"contracts/NFDInstance.algo.ts:161","pc":[652]},{"teal":622,"source":"contracts/NFDInstance.algo.ts:166","pc":[653,654]},{"teal":623,"source":"contracts/NFDInstance.algo.ts:166","pc":[655,656]},{"teal":624,"source":"contracts/NFDInstance.algo.ts:166","pc":[657]},{"teal":625,"source":"contracts/NFDInstance.algo.ts:166","pc":[658]},{"teal":626,"source":"contracts/NFDInstance.algo.ts:166","pc":[659,660,661]},{"teal":627,"source":"contracts/NFDInstance.algo.ts:166","pc":[662,663,664]},{"teal":628,"source":"contracts/NFDInstance.algo.ts:166","pc":[665,666,667,668,669,670,671,672,673,674,675,676,677,678]},{"teal":629,"source":"contracts/NFDInstance.algo.ts:166","pc":[679]},{"teal":630,"source":"contracts/NFDInstance.algo.ts:166","pc":[680]},{"teal":633,"source":"contracts/NFDInstance.algo.ts:166","pc":[681,682,683]},{"teal":638,"source":"contracts/NFDInstance.algo.ts:167","pc":[684,685,686]},{"teal":639,"source":"contracts/NFDInstance.algo.ts:167","pc":[687]},{"teal":640,"source":"contracts/NFDInstance.algo.ts:167","pc":[688,689,690]},{"teal":641,"source":"contracts/NFDInstance.algo.ts:167","pc":[691,692]},{"teal":642,"source":"contracts/NFDInstance.algo.ts:167","pc":[693]},{"teal":643,"source":"contracts/NFDInstance.algo.ts:167","pc":[694,695,696]},{"teal":647,"source":"contracts/NFDInstance.algo.ts:168","pc":[697]},{"teal":653,"source":"contracts/NFDInstance.algo.ts:175","pc":[698,699]},{"teal":654,"source":"contracts/NFDInstance.algo.ts:175","pc":[700]},{"teal":655,"source":"contracts/NFDInstance.algo.ts:175","pc":[701]},{"teal":656,"source":"contracts/NFDInstance.algo.ts:175","pc":[702]},{"teal":657,"source":"contracts/NFDInstance.algo.ts:175","pc":[703,704,705]},{"teal":658,"source":"contracts/NFDInstance.algo.ts:175","pc":[706,707,708]},{"teal":659,"source":"contracts/NFDInstance.algo.ts:175","pc":[709,710,711,712,713,714,715,716,717,718,719,720,721]},{"teal":660,"source":"contracts/NFDInstance.algo.ts:175","pc":[722]},{"teal":661,"source":"contracts/NFDInstance.algo.ts:175","pc":[723]},{"teal":664,"source":"contracts/NFDInstance.algo.ts:175","pc":[724,725,726]},{"teal":669,"source":"contracts/NFDInstance.algo.ts:176","pc":[727,728,729]},{"teal":673,"source":"contracts/NFDInstance.algo.ts:177","pc":[730]},{"teal":677,"source":"contracts/NFDInstance.algo.ts:180","errorMessage":"unknown method","pc":[731]},{"teal":678,"source":"contracts/NFDInstance.algo.ts:118","pc":[732]},{"teal":683,"source":"contracts/NFDInstance.algo.ts:184","pc":[733,734,735]},{"teal":684,"source":"contracts/NFDInstance.algo.ts:184","pc":[736]},{"teal":685,"source":"contracts/NFDInstance.algo.ts:184","pc":[737]},{"teal":689,"source":"contracts/NFDInstance.algo.ts:184","pc":[738,739,740]},{"teal":690,"source":"contracts/NFDInstance.algo.ts:184","pc":[741]},{"teal":695,"source":"contracts/NFDInstance.algo.ts:189","pc":[742,743,744]},{"teal":696,"source":"contracts/NFDInstance.algo.ts:189","pc":[745,746,747]},{"teal":699,"source":"contracts/NFDInstance.algo.ts:189","pc":[748,749,750]},{"teal":700,"source":"contracts/NFDInstance.algo.ts:189","pc":[751,752,753]},{"teal":703,"source":"contracts/NFDInstance.algo.ts:189","pc":[754,755,756]},{"teal":704,"source":"contracts/NFDInstance.algo.ts:189","pc":[757]},{"teal":705,"source":"contracts/NFDInstance.algo.ts:189","pc":[758]},{"teal":709,"source":"contracts/NFDInstance.algo.ts:189","pc":[759,760,761]},{"teal":712,"source":"contracts/NFDInstance.algo.ts:189","pc":[762]},{"teal":716,"source":"contracts/NFDInstance.algo.ts:190","pc":[763,764]},{"teal":717,"source":"contracts/NFDInstance.algo.ts:190","pc":[765,766]},{"teal":718,"source":"contracts/NFDInstance.algo.ts:190","pc":[767]},{"teal":721,"source":"contracts/NFDInstance.algo.ts:190","errorMessage":"caller must be NFD registry!","pc":[768]},{"teal":725,"source":"contracts/NFDInstance.algo.ts:191","pc":[769]},{"teal":726,"source":"contracts/NFDInstance.algo.ts:191","pc":[770]},{"teal":727,"source":"contracts/NFDInstance.algo.ts:191","pc":[771,772]},{"teal":728,"source":"contracts/NFDInstance.algo.ts:191","pc":[773]},{"teal":729,"source":"contracts/NFDInstance.algo.ts:191","pc":[774]},{"teal":743,"source":"contracts/NFDInstance.algo.ts:193","pc":[775]},{"teal":744,"source":"contracts/NFDInstance.algo.ts:193","pc":[776,777]},{"teal":745,"source":"contracts/NFDInstance.algo.ts:193","pc":[778,779]},{"teal":749,"source":"contracts/NFDInstance.algo.ts:194","pc":[780,781,782,783,784]},{"teal":750,"source":"contracts/NFDInstance.algo.ts:194","pc":[785,786]},{"teal":754,"source":"contracts/NFDInstance.algo.ts:195","pc":[787,788]},{"teal":755,"source":"contracts/NFDInstance.algo.ts:195","pc":[789,790]},{"teal":759,"source":"contracts/NFDInstance.algo.ts:196","pc":[791]},{"teal":760,"source":"contracts/NFDInstance.algo.ts:196","pc":[792,793]},{"teal":764,"source":"contracts/NFDInstance.algo.ts:197","pc":[794]},{"teal":765,"source":"contracts/NFDInstance.algo.ts:197","pc":[795,796]},{"teal":769,"source":"contracts/NFDInstance.algo.ts:198","pc":[797]},{"teal":770,"source":"contracts/NFDInstance.algo.ts:198","pc":[798,799]},{"teal":774,"source":"contracts/NFDInstance.algo.ts:199","pc":[800,801]},{"teal":775,"source":"contracts/NFDInstance.algo.ts:199","pc":[802,803]},{"teal":779,"source":"contracts/NFDInstance.algo.ts:200","pc":[804,805]},{"teal":780,"source":"contracts/NFDInstance.algo.ts:200","pc":[806,807]},{"teal":784,"source":"contracts/NFDInstance.algo.ts:201","pc":[808,809]},{"teal":785,"source":"contracts/NFDInstance.algo.ts:201","pc":[810,811]},{"teal":789,"source":"contracts/NFDInstance.algo.ts:202","pc":[812,813]},{"teal":790,"source":"contracts/NFDInstance.algo.ts:202","pc":[814,815]},{"teal":793,"source":"contracts/NFDInstance.algo.ts:193","pc":[816]},{"teal":794,"source":"contracts/NFDInstance.algo.ts:193","pc":[817,818]},{"teal":797,"source":"contracts/NFDInstance.algo.ts:193","pc":[819]},{"teal":798,"source":"contracts/NFDInstance.algo.ts:193","pc":[820,821]},{"teal":799,"source":"contracts/NFDInstance.algo.ts:193","pc":[822,823]},{"teal":803,"source":"contracts/NFDInstance.algo.ts:204","pc":[824,825]},{"teal":804,"source":"contracts/NFDInstance.algo.ts:204","pc":[826,827]},{"teal":805,"source":"contracts/NFDInstance.algo.ts:204","pc":[828]},{"teal":806,"source":"contracts/NFDInstance.algo.ts:204","pc":[829]},{"teal":810,"source":"contracts/NFDInstance.algo.ts:205","pc":[830]},{"teal":811,"source":"contracts/NFDInstance.algo.ts:205","pc":[831,832]},{"teal":812,"source":"contracts/NFDInstance.algo.ts:205","pc":[833]},{"teal":816,"source":"contracts/NFDInstance.algo.ts:206","pc":[834,835]},{"teal":817,"source":"contracts/NFDInstance.algo.ts:206","pc":[836]},{"teal":818,"source":"contracts/NFDInstance.algo.ts:206","pc":[837]},{"teal":819,"source":"contracts/NFDInstance.algo.ts:189","pc":[838]},{"teal":824,"source":"contracts/NFDInstance.algo.ts:213","pc":[839,840,841]},{"teal":827,"source":"contracts/NFDInstance.algo.ts:213","pc":[842,843,844]},{"teal":828,"source":"contracts/NFDInstance.algo.ts:213","pc":[845]},{"teal":829,"source":"contracts/NFDInstance.algo.ts:213","pc":[846]},{"teal":833,"source":"contracts/NFDInstance.algo.ts:213","pc":[847,848,849]},{"teal":836,"source":"contracts/NFDInstance.algo.ts:213","pc":[850]},{"teal":837,"source":"contracts/NFDInstance.algo.ts:213","pc":[851,852]},{"teal":841,"source":"contracts/NFDInstance.algo.ts:214","pc":[853,854,855]},{"teal":842,"source":"contracts/NFDInstance.algo.ts:214","pc":[856]},{"teal":843,"source":"contracts/NFDInstance.algo.ts:214","pc":[857]},{"teal":844,"source":"contracts/NFDInstance.algo.ts:214","pc":[858]},{"teal":845,"source":"contracts/NFDInstance.algo.ts:214","pc":[859]},{"teal":846,"source":"contracts/NFDInstance.algo.ts:214","pc":[860]},{"teal":847,"source":"contracts/NFDInstance.algo.ts:214","pc":[861]},{"teal":851,"source":"contracts/NFDInstance.algo.ts:215","pc":[862]},{"teal":852,"source":"contracts/NFDInstance.algo.ts:215","pc":[863,864]},{"teal":853,"source":"contracts/NFDInstance.algo.ts:215","pc":[865]},{"teal":854,"source":"contracts/NFDInstance.algo.ts:215","pc":[866]},{"teal":858,"source":"contracts/NFDInstance.algo.ts:217","pc":[867,868,869]},{"teal":859,"source":"contracts/NFDInstance.algo.ts:217","pc":[870,871]},{"teal":863,"source":"contracts/NFDInstance.algo.ts:218","pc":[872]},{"teal":864,"source":"contracts/NFDInstance.algo.ts:218","pc":[873,874]},{"teal":868,"source":"contracts/NFDInstance.algo.ts:219","pc":[875]},{"teal":869,"source":"contracts/NFDInstance.algo.ts:219","pc":[876,877]},{"teal":874,"source":"contracts/NFDInstance.algo.ts:219","pc":[878,879]},{"teal":875,"source":"contracts/NFDInstance.algo.ts:219","pc":[880,881]},{"teal":876,"source":"contracts/NFDInstance.algo.ts:219","pc":[882]},{"teal":877,"source":"contracts/NFDInstance.algo.ts:219","pc":[883]},{"teal":878,"source":"contracts/NFDInstance.algo.ts:219","pc":[884]},{"teal":879,"source":"contracts/NFDInstance.algo.ts:219","pc":[885,886,887]},{"teal":884,"source":"contracts/NFDInstance.algo.ts:220","pc":[888,889]},{"teal":885,"source":"contracts/NFDInstance.algo.ts:220","pc":[890,891]},{"teal":886,"source":"contracts/NFDInstance.algo.ts:220","pc":[892]},{"teal":887,"source":"contracts/NFDInstance.algo.ts:220","pc":[893,894,895]},{"teal":892,"source":"contracts/NFDInstance.algo.ts:221","pc":[896]},{"teal":893,"source":"contracts/NFDInstance.algo.ts:221","pc":[897,898]},{"teal":894,"source":"contracts/NFDInstance.algo.ts:221","pc":[899,900]},{"teal":895,"source":"contracts/NFDInstance.algo.ts:221","pc":[901]},{"teal":896,"source":"contracts/NFDInstance.algo.ts:221","pc":[902,903]},{"teal":897,"source":"contracts/NFDInstance.algo.ts:221","pc":[904,905]},{"teal":898,"source":"contracts/NFDInstance.algo.ts:221","pc":[906]},{"teal":899,"source":"contracts/NFDInstance.algo.ts:221","pc":[907,908]},{"teal":900,"source":"contracts/NFDInstance.algo.ts:221","pc":[909,910]},{"teal":901,"source":"contracts/NFDInstance.algo.ts:221","pc":[911,912]},{"teal":902,"source":"contracts/NFDInstance.algo.ts:221","pc":[913,914]},{"teal":903,"source":"contracts/NFDInstance.algo.ts:221","pc":[915]},{"teal":908,"source":"contracts/NFDInstance.algo.ts:223","pc":[916,917]},{"teal":909,"source":"contracts/NFDInstance.algo.ts:223","pc":[918,919]},{"teal":910,"source":"contracts/NFDInstance.algo.ts:223","pc":[920]},{"teal":911,"source":"contracts/NFDInstance.algo.ts:223","pc":[921,922]},{"teal":912,"source":"contracts/NFDInstance.algo.ts:223","pc":[923]},{"teal":913,"source":"contracts/NFDInstance.algo.ts:223","pc":[924]},{"teal":914,"source":"contracts/NFDInstance.algo.ts:223","pc":[925]},{"teal":915,"source":"contracts/NFDInstance.algo.ts:223","pc":[926]},{"teal":916,"source":"contracts/NFDInstance.algo.ts:223","pc":[927]},{"teal":917,"source":"contracts/NFDInstance.algo.ts:223","pc":[928,929]},{"teal":918,"source":"contracts/NFDInstance.algo.ts:223","pc":[930,931]},{"teal":919,"source":"contracts/NFDInstance.algo.ts:223","pc":[932,933]},{"teal":920,"source":"contracts/NFDInstance.algo.ts:223","pc":[934]},{"teal":921,"source":"contracts/NFDInstance.algo.ts:223","pc":[935]},{"teal":922,"source":"contracts/NFDInstance.algo.ts:223","pc":[936]},{"teal":923,"source":"contracts/NFDInstance.algo.ts:223","pc":[937]},{"teal":924,"source":"contracts/NFDInstance.algo.ts:223","pc":[938,939]},{"teal":925,"source":"contracts/NFDInstance.algo.ts:223","pc":[940]},{"teal":926,"source":"contracts/NFDInstance.algo.ts:223","pc":[941]},{"teal":927,"source":"contracts/NFDInstance.algo.ts:223","pc":[942]},{"teal":928,"source":"contracts/NFDInstance.algo.ts:223","pc":[943]},{"teal":929,"source":"contracts/NFDInstance.algo.ts:223","pc":[944]},{"teal":930,"source":"contracts/NFDInstance.algo.ts:223","pc":[945]},{"teal":931,"source":"contracts/NFDInstance.algo.ts:223","pc":[946]},{"teal":932,"source":"contracts/NFDInstance.algo.ts:223","pc":[947,948,949]},{"teal":933,"source":"contracts/NFDInstance.algo.ts:223","pc":[950,951]},{"teal":937,"source":"contracts/NFDInstance.algo.ts:224","pc":[952,953]},{"teal":938,"source":"contracts/NFDInstance.algo.ts:224","pc":[954,955]},{"teal":939,"source":"contracts/NFDInstance.algo.ts:224","pc":[956,957,958]},{"teal":942,"source":"contracts/NFDInstance.algo.ts:224","errorMessage":"field not removable or no permissions to remove","pc":[959]},{"teal":946,"source":"contracts/NFDInstance.algo.ts:225","pc":[960,961]},{"teal":947,"source":"contracts/NFDInstance.algo.ts:225","pc":[962]},{"teal":950,"source":"contracts/NFDInstance.algo.ts:225","errorMessage":"box value does not exist: this.boxes(name).size","pc":[963]},{"teal":951,"source":"contracts/NFDInstance.algo.ts:225","pc":[964,965]},{"teal":955,"source":"contracts/NFDInstance.algo.ts:226","pc":[966,967]},{"teal":956,"source":"contracts/NFDInstance.algo.ts:226","pc":[968]},{"teal":960,"source":"contracts/NFDInstance.algo.ts:227","pc":[969,970]},{"teal":961,"source":"contracts/NFDInstance.algo.ts:227","pc":[971,972]},{"teal":962,"source":"contracts/NFDInstance.algo.ts:227","pc":[973,974]},{"teal":963,"source":"contracts/NFDInstance.algo.ts:227","pc":[975]},{"teal":964,"source":"contracts/NFDInstance.algo.ts:227","pc":[976,977]},{"teal":965,"source":"contracts/NFDInstance.algo.ts:227","pc":[978]},{"teal":966,"source":"contracts/NFDInstance.algo.ts:227","pc":[979,980]},{"teal":967,"source":"contracts/NFDInstance.algo.ts:227","pc":[981]},{"teal":968,"source":"contracts/NFDInstance.algo.ts:227","pc":[982]},{"teal":969,"source":"contracts/NFDInstance.algo.ts:227","pc":[983]},{"teal":970,"source":"contracts/NFDInstance.algo.ts:227","pc":[984,985]},{"teal":975,"source":"contracts/NFDInstance.algo.ts:219","pc":[986,987]},{"teal":976,"source":"contracts/NFDInstance.algo.ts:219","pc":[988]},{"teal":977,"source":"contracts/NFDInstance.algo.ts:219","pc":[989]},{"teal":978,"source":"contracts/NFDInstance.algo.ts:219","pc":[990,991]},{"teal":979,"source":"contracts/NFDInstance.algo.ts:219","pc":[992,993,994]},{"teal":985,"source":"contracts/NFDInstance.algo.ts:229","pc":[995,996]},{"teal":986,"source":"contracts/NFDInstance.algo.ts:229","pc":[997]},{"teal":987,"source":"contracts/NFDInstance.algo.ts:229","pc":[998]},{"teal":988,"source":"contracts/NFDInstance.algo.ts:229","pc":[999,1000,1001]},{"teal":997,"source":"contracts/NFDInstance.algo.ts:230","pc":[1002]},{"teal":998,"source":"contracts/NFDInstance.algo.ts:230","pc":[1003]},{"teal":999,"source":"contracts/NFDInstance.algo.ts:230","pc":[1004,1005]},{"teal":1003,"source":"contracts/NFDInstance.algo.ts:231","pc":[1006,1007]},{"teal":1004,"source":"contracts/NFDInstance.algo.ts:231","pc":[1008,1009]},{"teal":1008,"source":"contracts/NFDInstance.algo.ts:232","pc":[1010,1011]},{"teal":1009,"source":"contracts/NFDInstance.algo.ts:232","pc":[1012,1013]},{"teal":1013,"source":"contracts/NFDInstance.algo.ts:233","pc":[1014,1015]},{"teal":1014,"source":"contracts/NFDInstance.algo.ts:233","pc":[1016,1017]},{"teal":1017,"source":"contracts/NFDInstance.algo.ts:230","pc":[1018]},{"teal":1018,"source":"contracts/NFDInstance.algo.ts:230","pc":[1019,1020]},{"teal":1021,"source":"contracts/NFDInstance.algo.ts:230","pc":[1021]},{"teal":1024,"source":"contracts/NFDInstance.algo.ts:213","pc":[1022]},{"teal":1028,"source":"contracts/NFDInstance.algo.ts:238","pc":[1023,1024,1025]},{"teal":1031,"source":"contracts/NFDInstance.algo.ts:238","pc":[1026]},{"teal":1032,"source":"contracts/NFDInstance.algo.ts:238","pc":[1027,1028]},{"teal":1036,"source":"contracts/NFDInstance.algo.ts:239","pc":[1029,1030,1031]},{"teal":1037,"source":"contracts/NFDInstance.algo.ts:239","pc":[1032]},{"teal":1038,"source":"contracts/NFDInstance.algo.ts:239","pc":[1033]},{"teal":1039,"source":"contracts/NFDInstance.algo.ts:239","pc":[1034]},{"teal":1040,"source":"contracts/NFDInstance.algo.ts:239","pc":[1035]},{"teal":1041,"source":"contracts/NFDInstance.algo.ts:239","pc":[1036]},{"teal":1042,"source":"contracts/NFDInstance.algo.ts:239","pc":[1037]},{"teal":1046,"source":"contracts/NFDInstance.algo.ts:241","pc":[1038,1039,1040]},{"teal":1047,"source":"contracts/NFDInstance.algo.ts:241","pc":[1041,1042]},{"teal":1051,"source":"contracts/NFDInstance.algo.ts:242","pc":[1043]},{"teal":1052,"source":"contracts/NFDInstance.algo.ts:242","pc":[1044,1045]},{"teal":1057,"source":"contracts/NFDInstance.algo.ts:242","pc":[1046,1047]},{"teal":1058,"source":"contracts/NFDInstance.algo.ts:242","pc":[1048,1049]},{"teal":1059,"source":"contracts/NFDInstance.algo.ts:242","pc":[1050]},{"teal":1060,"source":"contracts/NFDInstance.algo.ts:242","pc":[1051,1052,1053]},{"teal":1064,"source":"contracts/NFDInstance.algo.ts:243","pc":[1054,1055]},{"teal":1065,"source":"contracts/NFDInstance.algo.ts:243","pc":[1056,1057]},{"teal":1066,"source":"contracts/NFDInstance.algo.ts:243","pc":[1058,1059]},{"teal":1070,"source":"contracts/NFDInstance.algo.ts:244","pc":[1060,1061]},{"teal":1071,"source":"contracts/NFDInstance.algo.ts:244","pc":[1062,1063]},{"teal":1072,"source":"contracts/NFDInstance.algo.ts:244","pc":[1064,1065,1066]},{"teal":1075,"source":"contracts/NFDInstance.algo.ts:244","errorMessage":"field not removable or no permissions to remove","pc":[1067]},{"teal":1079,"source":"contracts/NFDInstance.algo.ts:245","pc":[1068,1069]},{"teal":1080,"source":"contracts/NFDInstance.algo.ts:245","pc":[1070]},{"teal":1085,"source":"contracts/NFDInstance.algo.ts:242","pc":[1071,1072]},{"teal":1086,"source":"contracts/NFDInstance.algo.ts:242","pc":[1073]},{"teal":1087,"source":"contracts/NFDInstance.algo.ts:242","pc":[1074]},{"teal":1088,"source":"contracts/NFDInstance.algo.ts:242","pc":[1075,1076]},{"teal":1089,"source":"contracts/NFDInstance.algo.ts:242","pc":[1077,1078,1079]},{"teal":1094,"source":"contracts/NFDInstance.algo.ts:247","pc":[1080]},{"teal":1095,"source":"contracts/NFDInstance.algo.ts:247","pc":[1081,1082]},{"teal":1096,"source":"contracts/NFDInstance.algo.ts:247","pc":[1083]},{"teal":1097,"source":"contracts/NFDInstance.algo.ts:247","pc":[1084]},{"teal":1098,"source":"contracts/NFDInstance.algo.ts:238","pc":[1085]},{"teal":1103,"source":"contracts/NFDInstance.algo.ts:257","pc":[1086,1087,1088]},{"teal":1104,"source":"contracts/NFDInstance.algo.ts:257","pc":[1089]},{"teal":1107,"source":"contracts/NFDInstance.algo.ts:257","pc":[1090,1091,1092]},{"teal":1108,"source":"contracts/NFDInstance.algo.ts:257","pc":[1093,1094,1095]},{"teal":1111,"source":"contracts/NFDInstance.algo.ts:257","pc":[1096,1097,1098]},{"teal":1112,"source":"contracts/NFDInstance.algo.ts:257","pc":[1099]},{"teal":1113,"source":"contracts/NFDInstance.algo.ts:257","pc":[1100]},{"teal":1117,"source":"contracts/NFDInstance.algo.ts:257","pc":[1101,1102,1103]},{"teal":1120,"source":"contracts/NFDInstance.algo.ts:257","pc":[1104]},{"teal":1121,"source":"contracts/NFDInstance.algo.ts:257","pc":[1105]},{"teal":1125,"source":"contracts/NFDInstance.algo.ts:258","pc":[1106,1107]},{"teal":1126,"source":"contracts/NFDInstance.algo.ts:258","pc":[1108,1109]},{"teal":1127,"source":"contracts/NFDInstance.algo.ts:258","pc":[1110]},{"teal":1130,"source":"contracts/NFDInstance.algo.ts:258","errorMessage":"caller must be NFD registry!","pc":[1111]},{"teal":1137,"source":"contracts/NFDInstance.algo.ts:260","pc":[1112]},{"teal":1138,"source":"contracts/NFDInstance.algo.ts:260","pc":[1113,1114]},{"teal":1139,"source":"contracts/NFDInstance.algo.ts:260","pc":[1115,1116,1117]},{"teal":1140,"source":"contracts/NFDInstance.algo.ts:260","pc":[1118,1119]},{"teal":1141,"source":"contracts/NFDInstance.algo.ts:260","pc":[1120]},{"teal":1144,"source":"contracts/NFDInstance.algo.ts:259","errorMessage":"child NFD MUST still be in pre-claim state!","pc":[1121]},{"teal":1148,"source":"contracts/NFDInstance.algo.ts:263","pc":[1122,1123,1124]},{"teal":1149,"source":"contracts/NFDInstance.algo.ts:263","pc":[1125]},{"teal":1150,"source":"contracts/NFDInstance.algo.ts:263","pc":[1126]},{"teal":1151,"source":"contracts/NFDInstance.algo.ts:263","pc":[1127]},{"teal":1152,"source":"contracts/NFDInstance.algo.ts:263","pc":[1128]},{"teal":1153,"source":"contracts/NFDInstance.algo.ts:263","pc":[1129]},{"teal":1154,"source":"contracts/NFDInstance.algo.ts:263","pc":[1130]},{"teal":1158,"source":"contracts/NFDInstance.algo.ts:264","pc":[1131,1132,1133]},{"teal":1165,"source":"contracts/NFDInstance.algo.ts:267","pc":[1134,1135]},{"teal":1166,"source":"contracts/NFDInstance.algo.ts:267","pc":[1136,1137]},{"teal":1167,"source":"contracts/NFDInstance.algo.ts:267","pc":[1138,1139,1140]},{"teal":1168,"source":"contracts/NFDInstance.algo.ts:267","pc":[1141,1142]},{"teal":1169,"source":"contracts/NFDInstance.algo.ts:267","pc":[1143]},{"teal":1172,"source":"contracts/NFDInstance.algo.ts:266","errorMessage":"passed in child name must match name in created nfd state","pc":[1144]},{"teal":1176,"source":"contracts/NFDInstance.algo.ts:270","pc":[1145,1146]},{"teal":1177,"source":"contracts/NFDInstance.algo.ts:270","pc":[1147]},{"teal":1178,"source":"contracts/NFDInstance.algo.ts:270","pc":[1148,1149]},{"teal":1182,"source":"contracts/NFDInstance.algo.ts:275","pc":[1150,1151]},{"teal":1183,"source":"contracts/NFDInstance.algo.ts:275","pc":[1152]},{"teal":1184,"source":"contracts/NFDInstance.algo.ts:275","pc":[1153,1154]},{"teal":1185,"source":"contracts/NFDInstance.algo.ts:275","pc":[1155]},{"teal":1186,"source":"contracts/NFDInstance.algo.ts:275","pc":[1156]},{"teal":1187,"source":"contracts/NFDInstance.algo.ts:275","pc":[1157]},{"teal":1188,"source":"contracts/NFDInstance.algo.ts:275","pc":[1158]},{"teal":1189,"source":"contracts/NFDInstance.algo.ts:275","pc":[1159,1160]},{"teal":1196,"source":"contracts/NFDInstance.algo.ts:277","pc":[1161,1162]},{"teal":1197,"source":"contracts/NFDInstance.algo.ts:277","pc":[1163,1164]},{"teal":1198,"source":"contracts/NFDInstance.algo.ts:277","pc":[1165,1166]},{"teal":1199,"source":"contracts/NFDInstance.algo.ts:277","pc":[1167]},{"teal":1200,"source":"contracts/NFDInstance.algo.ts:277","pc":[1168]},{"teal":1201,"source":"contracts/NFDInstance.algo.ts:277","pc":[1169]},{"teal":1202,"source":"contracts/NFDInstance.algo.ts:277","pc":[1170]},{"teal":1203,"source":"contracts/NFDInstance.algo.ts:277","pc":[1171,1172]},{"teal":1204,"source":"contracts/NFDInstance.algo.ts:277","pc":[1173,1174]},{"teal":1205,"source":"contracts/NFDInstance.algo.ts:277","pc":[1175]},{"teal":1206,"source":"contracts/NFDInstance.algo.ts:277","pc":[1176]},{"teal":1209,"source":"contracts/NFDInstance.algo.ts:276","errorMessage":"parent must be suffix of child","pc":[1177]},{"teal":1213,"source":"contracts/NFDInstance.algo.ts:280","pc":[1178,1179]},{"teal":1214,"source":"contracts/NFDInstance.algo.ts:280","pc":[1180,1181]},{"teal":1215,"source":"contracts/NFDInstance.algo.ts:280","pc":[1182,1183,1184]},{"teal":1216,"source":"contracts/NFDInstance.algo.ts:280","pc":[1185]},{"teal":1220,"source":"contracts/NFDInstance.algo.ts:281","pc":[1186,1187]},{"teal":1221,"source":"contracts/NFDInstance.algo.ts:281","pc":[1188]},{"teal":1222,"source":"contracts/NFDInstance.algo.ts:281","pc":[1189,1190,1191]},{"teal":1223,"source":"contracts/NFDInstance.algo.ts:281","pc":[1192]},{"teal":1224,"source":"contracts/NFDInstance.algo.ts:281","pc":[1193]},{"teal":1225,"source":"contracts/NFDInstance.algo.ts:281","pc":[1194]},{"teal":1226,"source":"contracts/NFDInstance.algo.ts:281","pc":[1195]},{"teal":1230,"source":"contracts/NFDInstance.algo.ts:282","pc":[1196]},{"teal":1231,"source":"contracts/NFDInstance.algo.ts:282","pc":[1197,1198]},{"teal":1232,"source":"contracts/NFDInstance.algo.ts:282","pc":[1199]},{"teal":1233,"source":"contracts/NFDInstance.algo.ts:282","pc":[1200]},{"teal":1234,"source":"contracts/NFDInstance.algo.ts:257","pc":[1201]},{"teal":1239,"source":"contracts/NFDInstance.algo.ts:285","pc":[1202,1203]},{"teal":1242,"source":"contracts/NFDInstance.algo.ts:286","pc":[1204,1205,1206]},{"teal":1245,"source":"contracts/NFDInstance.algo.ts:285","pc":[1207,1208,1209]},{"teal":1246,"source":"contracts/NFDInstance.algo.ts:285","pc":[1210]},{"teal":1247,"source":"contracts/NFDInstance.algo.ts:285","pc":[1211]},{"teal":1248,"source":"contracts/NFDInstance.algo.ts:285","pc":[1212]},{"teal":1249,"source":"contracts/NFDInstance.algo.ts:285","pc":[1213]},{"teal":1250,"source":"contracts/NFDInstance.algo.ts:285","pc":[1214]},{"teal":1254,"source":"contracts/NFDInstance.algo.ts:285","pc":[1215,1216,1217]},{"teal":1257,"source":"contracts/NFDInstance.algo.ts:285","pc":[1218]},{"teal":1258,"source":"contracts/NFDInstance.algo.ts:285","pc":[1219,1220]},{"teal":1262,"source":"contracts/NFDInstance.algo.ts:287","pc":[1221]},{"teal":1263,"source":"contracts/NFDInstance.algo.ts:287","pc":[1222,1223]},{"teal":1267,"source":"contracts/NFDInstance.algo.ts:288","pc":[1224]},{"teal":1268,"source":"contracts/NFDInstance.algo.ts:288","pc":[1225,1226]},{"teal":1272,"source":"contracts/NFDInstance.algo.ts:290","pc":[1227]},{"teal":1273,"source":"contracts/NFDInstance.algo.ts:290","pc":[1228,1229]},{"teal":1278,"source":"contracts/NFDInstance.algo.ts:290","pc":[1230,1231]},{"teal":1279,"source":"contracts/NFDInstance.algo.ts:290","pc":[1232,1233]},{"teal":1280,"source":"contracts/NFDInstance.algo.ts:290","pc":[1234]},{"teal":1281,"source":"contracts/NFDInstance.algo.ts:290","pc":[1235]},{"teal":1282,"source":"contracts/NFDInstance.algo.ts:290","pc":[1236]},{"teal":1283,"source":"contracts/NFDInstance.algo.ts:290","pc":[1237,1238,1239]},{"teal":1287,"source":"contracts/NFDInstance.algo.ts:291","pc":[1240,1241]},{"teal":1288,"source":"contracts/NFDInstance.algo.ts:291","pc":[1242,1243]},{"teal":1289,"source":"contracts/NFDInstance.algo.ts:291","pc":[1244]},{"teal":1290,"source":"contracts/NFDInstance.algo.ts:291","pc":[1245,1246]},{"teal":1291,"source":"contracts/NFDInstance.algo.ts:291","pc":[1247]},{"teal":1292,"source":"contracts/NFDInstance.algo.ts:291","pc":[1248]},{"teal":1293,"source":"contracts/NFDInstance.algo.ts:291","pc":[1249]},{"teal":1294,"source":"contracts/NFDInstance.algo.ts:291","pc":[1250]},{"teal":1295,"source":"contracts/NFDInstance.algo.ts:291","pc":[1251]},{"teal":1296,"source":"contracts/NFDInstance.algo.ts:291","pc":[1252,1253]},{"teal":1297,"source":"contracts/NFDInstance.algo.ts:291","pc":[1254,1255]},{"teal":1298,"source":"contracts/NFDInstance.algo.ts:291","pc":[1256,1257]},{"teal":1299,"source":"contracts/NFDInstance.algo.ts:291","pc":[1258]},{"teal":1300,"source":"contracts/NFDInstance.algo.ts:291","pc":[1259]},{"teal":1301,"source":"contracts/NFDInstance.algo.ts:291","pc":[1260]},{"teal":1302,"source":"contracts/NFDInstance.algo.ts:291","pc":[1261]},{"teal":1303,"source":"contracts/NFDInstance.algo.ts:291","pc":[1262,1263]},{"teal":1304,"source":"contracts/NFDInstance.algo.ts:291","pc":[1264]},{"teal":1305,"source":"contracts/NFDInstance.algo.ts:291","pc":[1265]},{"teal":1306,"source":"contracts/NFDInstance.algo.ts:291","pc":[1266]},{"teal":1307,"source":"contracts/NFDInstance.algo.ts:291","pc":[1267]},{"teal":1308,"source":"contracts/NFDInstance.algo.ts:291","pc":[1268]},{"teal":1309,"source":"contracts/NFDInstance.algo.ts:291","pc":[1269]},{"teal":1310,"source":"contracts/NFDInstance.algo.ts:291","pc":[1270]},{"teal":1311,"source":"contracts/NFDInstance.algo.ts:291","pc":[1271,1272,1273]},{"teal":1312,"source":"contracts/NFDInstance.algo.ts:291","pc":[1274,1275]},{"teal":1316,"source":"contracts/NFDInstance.algo.ts:292","pc":[1276,1277]},{"teal":1317,"source":"contracts/NFDInstance.algo.ts:292","pc":[1278,1279]},{"teal":1318,"source":"contracts/NFDInstance.algo.ts:292","pc":[1280]},{"teal":1319,"source":"contracts/NFDInstance.algo.ts:292","pc":[1281,1282]},{"teal":1320,"source":"contracts/NFDInstance.algo.ts:292","pc":[1283]},{"teal":1321,"source":"contracts/NFDInstance.algo.ts:292","pc":[1284]},{"teal":1322,"source":"contracts/NFDInstance.algo.ts:292","pc":[1285]},{"teal":1323,"source":"contracts/NFDInstance.algo.ts:292","pc":[1286]},{"teal":1324,"source":"contracts/NFDInstance.algo.ts:292","pc":[1287]},{"teal":1325,"source":"contracts/NFDInstance.algo.ts:292","pc":[1288]},{"teal":1326,"source":"contracts/NFDInstance.algo.ts:292","pc":[1289]},{"teal":1327,"source":"contracts/NFDInstance.algo.ts:292","pc":[1290,1291]},{"teal":1328,"source":"contracts/NFDInstance.algo.ts:292","pc":[1292,1293]},{"teal":1329,"source":"contracts/NFDInstance.algo.ts:292","pc":[1294,1295]},{"teal":1330,"source":"contracts/NFDInstance.algo.ts:292","pc":[1296]},{"teal":1331,"source":"contracts/NFDInstance.algo.ts:292","pc":[1297]},{"teal":1332,"source":"contracts/NFDInstance.algo.ts:292","pc":[1298]},{"teal":1333,"source":"contracts/NFDInstance.algo.ts:292","pc":[1299]},{"teal":1334,"source":"contracts/NFDInstance.algo.ts:292","pc":[1300,1301]},{"teal":1335,"source":"contracts/NFDInstance.algo.ts:292","pc":[1302]},{"teal":1336,"source":"contracts/NFDInstance.algo.ts:292","pc":[1303]},{"teal":1337,"source":"contracts/NFDInstance.algo.ts:292","pc":[1304]},{"teal":1338,"source":"contracts/NFDInstance.algo.ts:292","pc":[1305]},{"teal":1339,"source":"contracts/NFDInstance.algo.ts:292","pc":[1306]},{"teal":1340,"source":"contracts/NFDInstance.algo.ts:292","pc":[1307]},{"teal":1341,"source":"contracts/NFDInstance.algo.ts:292","pc":[1308]},{"teal":1342,"source":"contracts/NFDInstance.algo.ts:292","pc":[1309,1310,1311]},{"teal":1343,"source":"contracts/NFDInstance.algo.ts:292","pc":[1312,1313]},{"teal":1347,"source":"contracts/NFDInstance.algo.ts:293","pc":[1314,1315]},{"teal":1348,"source":"contracts/NFDInstance.algo.ts:293","pc":[1316]},{"teal":1349,"source":"contracts/NFDInstance.algo.ts:293","pc":[1317]},{"teal":1350,"source":"contracts/NFDInstance.algo.ts:293","pc":[1318]},{"teal":1351,"source":"contracts/NFDInstance.algo.ts:293","pc":[1319,1320]},{"teal":1356,"source":"contracts/NFDInstance.algo.ts:295","pc":[1321,1322]},{"teal":1357,"source":"contracts/NFDInstance.algo.ts:295","pc":[1323]},{"teal":1358,"source":"contracts/NFDInstance.algo.ts:295","pc":[1324]},{"teal":1359,"source":"contracts/NFDInstance.algo.ts:295","pc":[1325]},{"teal":1360,"source":"contracts/NFDInstance.algo.ts:295","pc":[1326,1327,1328]},{"teal":1366,"source":"contracts/NFDInstance.algo.ts:296","pc":[1329,1330]},{"teal":1367,"source":"contracts/NFDInstance.algo.ts:296","pc":[1331,1332,1333]},{"teal":1372,"source":"contracts/NFDInstance.algo.ts:298","pc":[1334,1335]},{"teal":1373,"source":"contracts/NFDInstance.algo.ts:298","pc":[1336,1337]},{"teal":1374,"source":"contracts/NFDInstance.algo.ts:298","pc":[1338,1339]},{"teal":1375,"source":"contracts/NFDInstance.algo.ts:298","pc":[1340,1341]},{"teal":1376,"source":"contracts/NFDInstance.algo.ts:298","pc":[1342]},{"teal":1377,"source":"contracts/NFDInstance.algo.ts:298","pc":[1343,1344]},{"teal":1378,"source":"contracts/NFDInstance.algo.ts:298","pc":[1345]},{"teal":1381,"source":"contracts/NFDInstance.algo.ts:298","errorMessage":"box value does not exist: this.boxes(name).size","pc":[1346]},{"teal":1382,"source":"contracts/NFDInstance.algo.ts:298","pc":[1347]},{"teal":1383,"source":"contracts/NFDInstance.algo.ts:298","pc":[1348]},{"teal":1384,"source":"contracts/NFDInstance.algo.ts:298","pc":[1349]},{"teal":1385,"source":"contracts/NFDInstance.algo.ts:298","pc":[1350]},{"teal":1386,"source":"contracts/NFDInstance.algo.ts:298","pc":[1351,1352]},{"teal":1389,"source":"contracts/NFDInstance.algo.ts:300","pc":[1353,1354,1355]},{"teal":1395,"source":"contracts/NFDInstance.algo.ts:302","pc":[1356,1357]},{"teal":1396,"source":"contracts/NFDInstance.algo.ts:302","pc":[1358]},{"teal":1397,"source":"contracts/NFDInstance.algo.ts:302","pc":[1359,1360,1361]},{"teal":1402,"source":"contracts/NFDInstance.algo.ts:304","pc":[1362,1363]},{"teal":1403,"source":"contracts/NFDInstance.algo.ts:304","pc":[1364,1365]},{"teal":1404,"source":"contracts/NFDInstance.algo.ts:304","pc":[1366,1367]},{"teal":1405,"source":"contracts/NFDInstance.algo.ts:304","pc":[1368,1369]},{"teal":1406,"source":"contracts/NFDInstance.algo.ts:304","pc":[1370]},{"teal":1407,"source":"contracts/NFDInstance.algo.ts:304","pc":[1371,1372]},{"teal":1408,"source":"contracts/NFDInstance.algo.ts:304","pc":[1373]},{"teal":1409,"source":"contracts/NFDInstance.algo.ts:304","pc":[1374]},{"teal":1410,"source":"contracts/NFDInstance.algo.ts:304","pc":[1375]},{"teal":1411,"source":"contracts/NFDInstance.algo.ts:304","pc":[1376]},{"teal":1412,"source":"contracts/NFDInstance.algo.ts:304","pc":[1377]},{"teal":1413,"source":"contracts/NFDInstance.algo.ts:304","pc":[1378,1379]},{"teal":1414,"source":"contracts/NFDInstance.algo.ts:305","pc":[1380,1381,1382]},{"teal":1419,"source":"contracts/NFDInstance.algo.ts:307","pc":[1383,1384]},{"teal":1420,"source":"contracts/NFDInstance.algo.ts:307","pc":[1385]},{"teal":1423,"source":"contracts/NFDInstance.algo.ts:307","errorMessage":"box value does not exist: this.boxes(name).size","pc":[1386]},{"teal":1424,"source":"contracts/NFDInstance.algo.ts:307","pc":[1387,1388]},{"teal":1429,"source":"contracts/NFDInstance.algo.ts:308","pc":[1389,1390]},{"teal":1430,"source":"contracts/NFDInstance.algo.ts:308","pc":[1391]},{"teal":1431,"source":"contracts/NFDInstance.algo.ts:308","pc":[1392,1393]},{"teal":1432,"source":"contracts/NFDInstance.algo.ts:308","pc":[1394]},{"teal":1433,"source":"contracts/NFDInstance.algo.ts:308","pc":[1395,1396,1397]},{"teal":1438,"source":"contracts/NFDInstance.algo.ts:309","pc":[1398,1399]},{"teal":1439,"source":"contracts/NFDInstance.algo.ts:309","pc":[1400,1401]},{"teal":1440,"source":"contracts/NFDInstance.algo.ts:309","pc":[1402,1403]},{"teal":1441,"source":"contracts/NFDInstance.algo.ts:309","pc":[1404,1405]},{"teal":1442,"source":"contracts/NFDInstance.algo.ts:309","pc":[1406]},{"teal":1443,"source":"contracts/NFDInstance.algo.ts:309","pc":[1407]},{"teal":1444,"source":"contracts/NFDInstance.algo.ts:309","pc":[1408]},{"teal":1445,"source":"contracts/NFDInstance.algo.ts:309","pc":[1409]},{"teal":1446,"source":"contracts/NFDInstance.algo.ts:309","pc":[1410,1411]},{"teal":1447,"source":"contracts/NFDInstance.algo.ts:308","pc":[1412,1413,1414]},{"teal":1452,"source":"contracts/NFDInstance.algo.ts:311","pc":[1415,1416]},{"teal":1453,"source":"contracts/NFDInstance.algo.ts:311","pc":[1417,1418]},{"teal":1454,"source":"contracts/NFDInstance.algo.ts:311","pc":[1419,1420]},{"teal":1455,"source":"contracts/NFDInstance.algo.ts:311","pc":[1421]},{"teal":1456,"source":"contracts/NFDInstance.algo.ts:311","pc":[1422,1423]},{"teal":1457,"source":"contracts/NFDInstance.algo.ts:311","pc":[1424]},{"teal":1458,"source":"contracts/NFDInstance.algo.ts:311","pc":[1425]},{"teal":1459,"source":"contracts/NFDInstance.algo.ts:311","pc":[1426]},{"teal":1460,"source":"contracts/NFDInstance.algo.ts:311","pc":[1427,1428]},{"teal":1467,"source":"contracts/NFDInstance.algo.ts:290","pc":[1429,1430]},{"teal":1468,"source":"contracts/NFDInstance.algo.ts:290","pc":[1431]},{"teal":1469,"source":"contracts/NFDInstance.algo.ts:290","pc":[1432]},{"teal":1470,"source":"contracts/NFDInstance.algo.ts:290","pc":[1433,1434]},{"teal":1471,"source":"contracts/NFDInstance.algo.ts:290","pc":[1435,1436,1437]},{"teal":1477,"source":"contracts/NFDInstance.algo.ts:315","pc":[1438,1439]},{"teal":1478,"source":"contracts/NFDInstance.algo.ts:315","pc":[1440,1441]},{"teal":1479,"source":"contracts/NFDInstance.algo.ts:315","pc":[1442]},{"teal":1480,"source":"contracts/NFDInstance.algo.ts:315","pc":[1443,1444,1445]},{"teal":1485,"source":"contracts/NFDInstance.algo.ts:316","pc":[1446]},{"teal":1486,"source":"contracts/NFDInstance.algo.ts:316","pc":[1447,1448,1449]},{"teal":1491,"source":"contracts/NFDInstance.algo.ts:318","pc":[1450,1451]},{"teal":1492,"source":"contracts/NFDInstance.algo.ts:318","pc":[1452,1453]},{"teal":1493,"source":"contracts/NFDInstance.algo.ts:318","pc":[1454]},{"teal":1497,"source":"contracts/NFDInstance.algo.ts:285","pc":[1455,1456]},{"teal":1500,"source":"contracts/NFDInstance.algo.ts:285","pc":[1457,1458]},{"teal":1501,"source":"contracts/NFDInstance.algo.ts:285","pc":[1459]},{"teal":1506,"source":"contracts/NFDInstance.algo.ts:321","pc":[1460,1461,1462]},{"teal":1509,"source":"contracts/NFDInstance.algo.ts:321","pc":[1463,1464,1465]},{"teal":1510,"source":"contracts/NFDInstance.algo.ts:321","pc":[1466]},{"teal":1511,"source":"contracts/NFDInstance.algo.ts:321","pc":[1467]},{"teal":1515,"source":"contracts/NFDInstance.algo.ts:321","pc":[1468,1469,1470]},{"teal":1518,"source":"contracts/NFDInstance.algo.ts:321","pc":[1471]},{"teal":1519,"source":"contracts/NFDInstance.algo.ts:321","pc":[1472,1473]},{"teal":1523,"source":"contracts/NFDInstance.algo.ts:322","pc":[1474,1475,1476]},{"teal":1524,"source":"contracts/NFDInstance.algo.ts:322","pc":[1477]},{"teal":1525,"source":"contracts/NFDInstance.algo.ts:322","pc":[1478]},{"teal":1526,"source":"contracts/NFDInstance.algo.ts:322","pc":[1479]},{"teal":1527,"source":"contracts/NFDInstance.algo.ts:322","pc":[1480]},{"teal":1528,"source":"contracts/NFDInstance.algo.ts:322","pc":[1481]},{"teal":1529,"source":"contracts/NFDInstance.algo.ts:322","pc":[1482]},{"teal":1533,"source":"contracts/NFDInstance.algo.ts:323","pc":[1483,1484,1485]},{"teal":1534,"source":"contracts/NFDInstance.algo.ts:323","pc":[1486]},{"teal":1537,"source":"contracts/NFDInstance.algo.ts:323","errorMessage":"can't update fields if NFD expired","pc":[1487]},{"teal":1541,"source":"contracts/NFDInstance.algo.ts:325","pc":[1488]},{"teal":1542,"source":"contracts/NFDInstance.algo.ts:325","pc":[1489,1490]},{"teal":1543,"source":"contracts/NFDInstance.algo.ts:325","pc":[1491]},{"teal":1544,"source":"contracts/NFDInstance.algo.ts:325","pc":[1492]},{"teal":1549,"source":"contracts/NFDInstance.algo.ts:328","pc":[1493,1494]},{"teal":1550,"source":"contracts/NFDInstance.algo.ts:328","pc":[1495,1496]},{"teal":1551,"source":"contracts/NFDInstance.algo.ts:328","pc":[1497]},{"teal":1552,"source":"contracts/NFDInstance.algo.ts:328","pc":[1498,1499,1500]},{"teal":1558,"source":"contracts/NFDInstance.algo.ts:329","pc":[1501,1502]},{"teal":1559,"source":"contracts/NFDInstance.algo.ts:329","pc":[1503]},{"teal":1560,"source":"contracts/NFDInstance.algo.ts:329","pc":[1504]},{"teal":1561,"source":"contracts/NFDInstance.algo.ts:329","pc":[1505]},{"teal":1562,"source":"contracts/NFDInstance.algo.ts:329","pc":[1506]},{"teal":1563,"source":"contracts/NFDInstance.algo.ts:329","pc":[1507]},{"teal":1564,"source":"contracts/NFDInstance.algo.ts:329","pc":[1508,1509,1510]},{"teal":1565,"source":"contracts/NFDInstance.algo.ts:329","pc":[1511,1512]},{"teal":1566,"source":"contracts/NFDInstance.algo.ts:329","pc":[1513,1514]},{"teal":1567,"source":"contracts/NFDInstance.algo.ts:329","pc":[1515]},{"teal":1568,"source":"contracts/NFDInstance.algo.ts:329","pc":[1516,1517]},{"teal":1569,"source":"contracts/NFDInstance.algo.ts:329","pc":[1518,1519]},{"teal":1570,"source":"contracts/NFDInstance.algo.ts:329","pc":[1520,1521]},{"teal":1571,"source":"contracts/NFDInstance.algo.ts:329","pc":[1522]},{"teal":1572,"source":"contracts/NFDInstance.algo.ts:329","pc":[1523]},{"teal":1573,"source":"contracts/NFDInstance.algo.ts:329","pc":[1524]},{"teal":1574,"source":"contracts/NFDInstance.algo.ts:329","pc":[1525]},{"teal":1575,"source":"contracts/NFDInstance.algo.ts:329","pc":[1526,1527]},{"teal":1576,"source":"contracts/NFDInstance.algo.ts:329","pc":[1528]},{"teal":1577,"source":"contracts/NFDInstance.algo.ts:329","pc":[1529]},{"teal":1578,"source":"contracts/NFDInstance.algo.ts:329","pc":[1530]},{"teal":1579,"source":"contracts/NFDInstance.algo.ts:329","pc":[1531]},{"teal":1580,"source":"contracts/NFDInstance.algo.ts:329","pc":[1532]},{"teal":1581,"source":"contracts/NFDInstance.algo.ts:329","pc":[1533]},{"teal":1582,"source":"contracts/NFDInstance.algo.ts:329","pc":[1534]},{"teal":1583,"source":"contracts/NFDInstance.algo.ts:329","pc":[1535,1536,1537]},{"teal":1584,"source":"contracts/NFDInstance.algo.ts:329","pc":[1538,1539,1540,1541,1542,1543,1544,1545,1546,1547,1548,1549,1550,1551]},{"teal":1585,"source":"contracts/NFDInstance.algo.ts:329","pc":[1552]},{"teal":1586,"source":"contracts/NFDInstance.algo.ts:329","pc":[1553]},{"teal":1589,"source":"contracts/NFDInstance.algo.ts:329","pc":[1554,1555,1556]},{"teal":1594,"source":"contracts/NFDInstance.algo.ts:330","pc":[1557,1558]},{"teal":1595,"source":"contracts/NFDInstance.algo.ts:330","pc":[1559,1560]},{"teal":1596,"source":"contracts/NFDInstance.algo.ts:330","pc":[1561]},{"teal":1597,"source":"contracts/NFDInstance.algo.ts:330","pc":[1562,1563]},{"teal":1598,"source":"contracts/NFDInstance.algo.ts:330","pc":[1564,1565]},{"teal":1599,"source":"contracts/NFDInstance.algo.ts:330","pc":[1566,1567]},{"teal":1600,"source":"contracts/NFDInstance.algo.ts:330","pc":[1568]},{"teal":1601,"source":"contracts/NFDInstance.algo.ts:330","pc":[1569]},{"teal":1602,"source":"contracts/NFDInstance.algo.ts:330","pc":[1570]},{"teal":1603,"source":"contracts/NFDInstance.algo.ts:330","pc":[1571]},{"teal":1604,"source":"contracts/NFDInstance.algo.ts:330","pc":[1572,1573]},{"teal":1605,"source":"contracts/NFDInstance.algo.ts:330","pc":[1574]},{"teal":1606,"source":"contracts/NFDInstance.algo.ts:330","pc":[1575]},{"teal":1607,"source":"contracts/NFDInstance.algo.ts:330","pc":[1576]},{"teal":1608,"source":"contracts/NFDInstance.algo.ts:330","pc":[1577]},{"teal":1609,"source":"contracts/NFDInstance.algo.ts:330","pc":[1578]},{"teal":1610,"source":"contracts/NFDInstance.algo.ts:330","pc":[1579]},{"teal":1611,"source":"contracts/NFDInstance.algo.ts:330","pc":[1580]},{"teal":1612,"source":"contracts/NFDInstance.algo.ts:330","pc":[1581,1582,1583]},{"teal":1613,"source":"contracts/NFDInstance.algo.ts:330","pc":[1584,1585]},{"teal":1614,"source":"contracts/NFDInstance.algo.ts:330","pc":[1586,1587]},{"teal":1615,"source":"contracts/NFDInstance.algo.ts:330","pc":[1588,1589]},{"teal":1616,"source":"contracts/NFDInstance.algo.ts:330","pc":[1590,1591]},{"teal":1617,"source":"contracts/NFDInstance.algo.ts:330","pc":[1592,1593]},{"teal":1618,"source":"contracts/NFDInstance.algo.ts:330","pc":[1594,1595]},{"teal":1619,"source":"contracts/NFDInstance.algo.ts:330","pc":[1596]},{"teal":1620,"source":"contracts/NFDInstance.algo.ts:330","pc":[1597]},{"teal":1621,"source":"contracts/NFDInstance.algo.ts:330","pc":[1598]},{"teal":1622,"source":"contracts/NFDInstance.algo.ts:330","pc":[1599]},{"teal":1623,"source":"contracts/NFDInstance.algo.ts:330","pc":[1600,1601]},{"teal":1624,"source":"contracts/NFDInstance.algo.ts:330","pc":[1602]},{"teal":1625,"source":"contracts/NFDInstance.algo.ts:330","pc":[1603]},{"teal":1626,"source":"contracts/NFDInstance.algo.ts:330","pc":[1604]},{"teal":1627,"source":"contracts/NFDInstance.algo.ts:330","pc":[1605]},{"teal":1628,"source":"contracts/NFDInstance.algo.ts:330","pc":[1606]},{"teal":1629,"source":"contracts/NFDInstance.algo.ts:330","pc":[1607]},{"teal":1630,"source":"contracts/NFDInstance.algo.ts:330","pc":[1608]},{"teal":1631,"source":"contracts/NFDInstance.algo.ts:330","pc":[1609,1610,1611]},{"teal":1632,"source":"contracts/NFDInstance.algo.ts:330","pc":[1612]},{"teal":1636,"source":"contracts/NFDInstance.algo.ts:331","pc":[1613]},{"teal":1641,"source":"contracts/NFDInstance.algo.ts:333","pc":[1614]},{"teal":1644,"source":"contracts/NFDInstance.algo.ts:333","errorMessage":"invalid update call by registry","pc":[1615]},{"teal":1649,"source":"contracts/NFDInstance.algo.ts:336","pc":[1616,1617,1618]},{"teal":1650,"source":"contracts/NFDInstance.algo.ts:336","pc":[1619,1620]},{"teal":1654,"source":"contracts/NFDInstance.algo.ts:337","pc":[1621]},{"teal":1655,"source":"contracts/NFDInstance.algo.ts:337","pc":[1622,1623]},{"teal":1660,"source":"contracts/NFDInstance.algo.ts:337","pc":[1624,1625]},{"teal":1661,"source":"contracts/NFDInstance.algo.ts:337","pc":[1626,1627]},{"teal":1662,"source":"contracts/NFDInstance.algo.ts:337","pc":[1628]},{"teal":1663,"source":"contracts/NFDInstance.algo.ts:337","pc":[1629]},{"teal":1664,"source":"contracts/NFDInstance.algo.ts:337","pc":[1630]},{"teal":1665,"source":"contracts/NFDInstance.algo.ts:337","pc":[1631,1632,1633]},{"teal":1669,"source":"contracts/NFDInstance.algo.ts:338","pc":[1634,1635]},{"teal":1670,"source":"contracts/NFDInstance.algo.ts:338","pc":[1636,1637]},{"teal":1671,"source":"contracts/NFDInstance.algo.ts:338","pc":[1638]},{"teal":1672,"source":"contracts/NFDInstance.algo.ts:338","pc":[1639,1640]},{"teal":1673,"source":"contracts/NFDInstance.algo.ts:338","pc":[1641]},{"teal":1674,"source":"contracts/NFDInstance.algo.ts:338","pc":[1642]},{"teal":1675,"source":"contracts/NFDInstance.algo.ts:338","pc":[1643]},{"teal":1676,"source":"contracts/NFDInstance.algo.ts:338","pc":[1644]},{"teal":1677,"source":"contracts/NFDInstance.algo.ts:338","pc":[1645]},{"teal":1678,"source":"contracts/NFDInstance.algo.ts:338","pc":[1646,1647]},{"teal":1679,"source":"contracts/NFDInstance.algo.ts:338","pc":[1648,1649]},{"teal":1680,"source":"contracts/NFDInstance.algo.ts:338","pc":[1650,1651]},{"teal":1681,"source":"contracts/NFDInstance.algo.ts:338","pc":[1652]},{"teal":1682,"source":"contracts/NFDInstance.algo.ts:338","pc":[1653]},{"teal":1683,"source":"contracts/NFDInstance.algo.ts:338","pc":[1654]},{"teal":1684,"source":"contracts/NFDInstance.algo.ts:338","pc":[1655]},{"teal":1685,"source":"contracts/NFDInstance.algo.ts:338","pc":[1656,1657]},{"teal":1686,"source":"contracts/NFDInstance.algo.ts:338","pc":[1658]},{"teal":1687,"source":"contracts/NFDInstance.algo.ts:338","pc":[1659]},{"teal":1688,"source":"contracts/NFDInstance.algo.ts:338","pc":[1660]},{"teal":1689,"source":"contracts/NFDInstance.algo.ts:338","pc":[1661]},{"teal":1690,"source":"contracts/NFDInstance.algo.ts:338","pc":[1662]},{"teal":1691,"source":"contracts/NFDInstance.algo.ts:338","pc":[1663]},{"teal":1692,"source":"contracts/NFDInstance.algo.ts:338","pc":[1664]},{"teal":1693,"source":"contracts/NFDInstance.algo.ts:338","pc":[1665,1666,1667]},{"teal":1694,"source":"contracts/NFDInstance.algo.ts:338","pc":[1668,1669]},{"teal":1698,"source":"contracts/NFDInstance.algo.ts:339","pc":[1670,1671]},{"teal":1699,"source":"contracts/NFDInstance.algo.ts:339","pc":[1672,1673]},{"teal":1700,"source":"contracts/NFDInstance.algo.ts:339","pc":[1674]},{"teal":1701,"source":"contracts/NFDInstance.algo.ts:339","pc":[1675,1676]},{"teal":1702,"source":"contracts/NFDInstance.algo.ts:339","pc":[1677]},{"teal":1703,"source":"contracts/NFDInstance.algo.ts:339","pc":[1678]},{"teal":1704,"source":"contracts/NFDInstance.algo.ts:339","pc":[1679]},{"teal":1705,"source":"contracts/NFDInstance.algo.ts:339","pc":[1680]},{"teal":1706,"source":"contracts/NFDInstance.algo.ts:339","pc":[1681]},{"teal":1707,"source":"contracts/NFDInstance.algo.ts:339","pc":[1682]},{"teal":1708,"source":"contracts/NFDInstance.algo.ts:339","pc":[1683]},{"teal":1709,"source":"contracts/NFDInstance.algo.ts:339","pc":[1684,1685]},{"teal":1710,"source":"contracts/NFDInstance.algo.ts:339","pc":[1686,1687]},{"teal":1711,"source":"contracts/NFDInstance.algo.ts:339","pc":[1688,1689]},{"teal":1712,"source":"contracts/NFDInstance.algo.ts:339","pc":[1690]},{"teal":1713,"source":"contracts/NFDInstance.algo.ts:339","pc":[1691]},{"teal":1714,"source":"contracts/NFDInstance.algo.ts:339","pc":[1692]},{"teal":1715,"source":"contracts/NFDInstance.algo.ts:339","pc":[1693]},{"teal":1716,"source":"contracts/NFDInstance.algo.ts:339","pc":[1694,1695]},{"teal":1717,"source":"contracts/NFDInstance.algo.ts:339","pc":[1696]},{"teal":1718,"source":"contracts/NFDInstance.algo.ts:339","pc":[1697]},{"teal":1719,"source":"contracts/NFDInstance.algo.ts:339","pc":[1698]},{"teal":1720,"source":"contracts/NFDInstance.algo.ts:339","pc":[1699]},{"teal":1721,"source":"contracts/NFDInstance.algo.ts:339","pc":[1700]},{"teal":1722,"source":"contracts/NFDInstance.algo.ts:339","pc":[1701]},{"teal":1723,"source":"contracts/NFDInstance.algo.ts:339","pc":[1702]},{"teal":1724,"source":"contracts/NFDInstance.algo.ts:339","pc":[1703,1704,1705]},{"teal":1725,"source":"contracts/NFDInstance.algo.ts:339","pc":[1706,1707]},{"teal":1732,"source":"contracts/NFDInstance.algo.ts:341","pc":[1708,1709]},{"teal":1733,"source":"contracts/NFDInstance.algo.ts:341","pc":[1710,1711]},{"teal":1734,"source":"contracts/NFDInstance.algo.ts:341","pc":[1712,1713]},{"teal":1735,"source":"contracts/NFDInstance.algo.ts:341","pc":[1714,1715,1716]},{"teal":1738,"source":"contracts/NFDInstance.algo.ts:340","errorMessage":"field not updatable or no permissions to update","pc":[1717]},{"teal":1742,"source":"contracts/NFDInstance.algo.ts:344","pc":[1718,1719]},{"teal":1743,"source":"contracts/NFDInstance.algo.ts:344","pc":[1720]},{"teal":1748,"source":"contracts/NFDInstance.algo.ts:345","pc":[1721,1722]},{"teal":1749,"source":"contracts/NFDInstance.algo.ts:345","pc":[1723]},{"teal":1750,"source":"contracts/NFDInstance.algo.ts:345","pc":[1724]},{"teal":1751,"source":"contracts/NFDInstance.algo.ts:345","pc":[1725]},{"teal":1752,"source":"contracts/NFDInstance.algo.ts:345","pc":[1726,1727,1728]},{"teal":1757,"source":"contracts/NFDInstance.algo.ts:346","pc":[1729,1730]},{"teal":1758,"source":"contracts/NFDInstance.algo.ts:346","pc":[1731,1732]},{"teal":1759,"source":"contracts/NFDInstance.algo.ts:346","pc":[1733]},{"teal":1766,"source":"contracts/NFDInstance.algo.ts:337","pc":[1734,1735]},{"teal":1767,"source":"contracts/NFDInstance.algo.ts:337","pc":[1736]},{"teal":1768,"source":"contracts/NFDInstance.algo.ts:337","pc":[1737]},{"teal":1769,"source":"contracts/NFDInstance.algo.ts:337","pc":[1738,1739]},{"teal":1770,"source":"contracts/NFDInstance.algo.ts:337","pc":[1740,1741,1742]},{"teal":1773,"source":"contracts/NFDInstance.algo.ts:321","pc":[1743]},{"teal":1777,"source":"contracts/NFDInstance.algo.ts:351","pc":[1744,1745,1746]},{"teal":1780,"source":"contracts/NFDInstance.algo.ts:351","pc":[1747]},{"teal":1781,"source":"contracts/NFDInstance.algo.ts:351","pc":[1748,1749]},{"teal":1785,"source":"contracts/NFDInstance.algo.ts:352","pc":[1750,1751,1752]},{"teal":1786,"source":"contracts/NFDInstance.algo.ts:352","pc":[1753]},{"teal":1787,"source":"contracts/NFDInstance.algo.ts:352","pc":[1754]},{"teal":1788,"source":"contracts/NFDInstance.algo.ts:352","pc":[1755]},{"teal":1789,"source":"contracts/NFDInstance.algo.ts:352","pc":[1756]},{"teal":1790,"source":"contracts/NFDInstance.algo.ts:352","pc":[1757]},{"teal":1791,"source":"contracts/NFDInstance.algo.ts:352","pc":[1758]},{"teal":1795,"source":"contracts/NFDInstance.algo.ts:353","pc":[1759,1760,1761]},{"teal":1796,"source":"contracts/NFDInstance.algo.ts:353","pc":[1762]},{"teal":1799,"source":"contracts/NFDInstance.algo.ts:353","errorMessage":"can't update fields if NFD expired","pc":[1763]},{"teal":1803,"source":"contracts/NFDInstance.algo.ts:355","pc":[1764,1765,1766]},{"teal":1804,"source":"contracts/NFDInstance.algo.ts:355","pc":[1767,1768]},{"teal":1808,"source":"contracts/NFDInstance.algo.ts:356","pc":[1769]},{"teal":1809,"source":"contracts/NFDInstance.algo.ts:356","pc":[1770,1771]},{"teal":1814,"source":"contracts/NFDInstance.algo.ts:356","pc":[1772,1773]},{"teal":1815,"source":"contracts/NFDInstance.algo.ts:356","pc":[1774,1775]},{"teal":1816,"source":"contracts/NFDInstance.algo.ts:356","pc":[1776]},{"teal":1817,"source":"contracts/NFDInstance.algo.ts:356","pc":[1777,1778,1779]},{"teal":1821,"source":"contracts/NFDInstance.algo.ts:357","pc":[1780,1781]},{"teal":1822,"source":"contracts/NFDInstance.algo.ts:357","pc":[1782,1783]},{"teal":1823,"source":"contracts/NFDInstance.algo.ts:357","pc":[1784,1785]},{"teal":1827,"source":"contracts/NFDInstance.algo.ts:358","pc":[1786,1787]},{"teal":1828,"source":"contracts/NFDInstance.algo.ts:358","pc":[1788]},{"teal":1829,"source":"contracts/NFDInstance.algo.ts:358","pc":[1789]},{"teal":1830,"source":"contracts/NFDInstance.algo.ts:358","pc":[1790,1791]},{"teal":1831,"source":"contracts/NFDInstance.algo.ts:358","pc":[1792,1793]},{"teal":1838,"source":"contracts/NFDInstance.algo.ts:360","pc":[1794,1795]},{"teal":1839,"source":"contracts/NFDInstance.algo.ts:360","pc":[1796,1797]},{"teal":1840,"source":"contracts/NFDInstance.algo.ts:360","pc":[1798,1799]},{"teal":1841,"source":"contracts/NFDInstance.algo.ts:360","pc":[1800,1801,1802]},{"teal":1844,"source":"contracts/NFDInstance.algo.ts:359","errorMessage":"field not updatable or no permissions to update","pc":[1803]},{"teal":1848,"source":"contracts/NFDInstance.algo.ts:363","pc":[1804,1805]},{"teal":1849,"source":"contracts/NFDInstance.algo.ts:363","pc":[1806]},{"teal":1854,"source":"contracts/NFDInstance.algo.ts:364","pc":[1807,1808]},{"teal":1855,"source":"contracts/NFDInstance.algo.ts:364","pc":[1809]},{"teal":1856,"source":"contracts/NFDInstance.algo.ts:364","pc":[1810]},{"teal":1857,"source":"contracts/NFDInstance.algo.ts:364","pc":[1811]},{"teal":1858,"source":"contracts/NFDInstance.algo.ts:364","pc":[1812,1813,1814]},{"teal":1863,"source":"contracts/NFDInstance.algo.ts:365","pc":[1815,1816]},{"teal":1864,"source":"contracts/NFDInstance.algo.ts:365","pc":[1817,1818]},{"teal":1865,"source":"contracts/NFDInstance.algo.ts:365","pc":[1819]},{"teal":1872,"source":"contracts/NFDInstance.algo.ts:356","pc":[1820,1821]},{"teal":1873,"source":"contracts/NFDInstance.algo.ts:356","pc":[1822]},{"teal":1874,"source":"contracts/NFDInstance.algo.ts:356","pc":[1823]},{"teal":1875,"source":"contracts/NFDInstance.algo.ts:356","pc":[1824,1825]},{"teal":1876,"source":"contracts/NFDInstance.algo.ts:356","pc":[1826,1827,1828]},{"teal":1881,"source":"contracts/NFDInstance.algo.ts:368","pc":[1829]},{"teal":1882,"source":"contracts/NFDInstance.algo.ts:368","pc":[1830,1831]},{"teal":1883,"source":"contracts/NFDInstance.algo.ts:368","pc":[1832]},{"teal":1884,"source":"contracts/NFDInstance.algo.ts:368","pc":[1833]},{"teal":1885,"source":"contracts/NFDInstance.algo.ts:351","pc":[1834]},{"teal":1890,"source":"contracts/NFDInstance.algo.ts:371","pc":[1835,1836]},{"teal":1893,"source":"contracts/NFDInstance.algo.ts:372","pc":[1837,1838,1839]},{"teal":1894,"source":"contracts/NFDInstance.algo.ts:372","pc":[1840,1841,1842]},{"teal":1897,"source":"contracts/NFDInstance.algo.ts:371","pc":[1843,1844,1845]},{"teal":1898,"source":"contracts/NFDInstance.algo.ts:371","pc":[1846]},{"teal":1899,"source":"contracts/NFDInstance.algo.ts:371","pc":[1847]},{"teal":1900,"source":"contracts/NFDInstance.algo.ts:371","pc":[1848]},{"teal":1901,"source":"contracts/NFDInstance.algo.ts:371","pc":[1849,1850,1851]},{"teal":1902,"source":"contracts/NFDInstance.algo.ts:371","pc":[1852]},{"teal":1903,"source":"contracts/NFDInstance.algo.ts:371","pc":[1853]},{"teal":1904,"source":"contracts/NFDInstance.algo.ts:371","pc":[1854]},{"teal":1905,"source":"contracts/NFDInstance.algo.ts:371","pc":[1855]},{"teal":1906,"source":"contracts/NFDInstance.algo.ts:371","pc":[1856]},{"teal":1907,"source":"contracts/NFDInstance.algo.ts:371","pc":[1857]},{"teal":1911,"source":"contracts/NFDInstance.algo.ts:371","pc":[1858,1859,1860]},{"teal":1914,"source":"contracts/NFDInstance.algo.ts:371","pc":[1861]},{"teal":1915,"source":"contracts/NFDInstance.algo.ts:371","pc":[1862,1863]},{"teal":1919,"source":"contracts/NFDInstance.algo.ts:374","pc":[1864,1865]},{"teal":1920,"source":"contracts/NFDInstance.algo.ts:374","pc":[1866,1867,1868]},{"teal":1921,"source":"contracts/NFDInstance.algo.ts:374","pc":[1869,1870]},{"teal":1926,"source":"contracts/NFDInstance.algo.ts:376","pc":[1871,1872]},{"teal":1927,"source":"contracts/NFDInstance.algo.ts:376","pc":[1873,1874,1875]},{"teal":1928,"source":"contracts/NFDInstance.algo.ts:376","pc":[1876,1877,1878]},{"teal":1933,"source":"contracts/NFDInstance.algo.ts:377","pc":[1879,1880]},{"teal":1934,"source":"contracts/NFDInstance.algo.ts:377","pc":[1881,1882,1883]},{"teal":1935,"source":"contracts/NFDInstance.algo.ts:377","pc":[1884,1885,1886]},{"teal":1943,"source":"contracts/NFDInstance.algo.ts:380","pc":[1887,1888]},{"teal":1944,"source":"contracts/NFDInstance.algo.ts:380","pc":[1889,1890,1891]},{"teal":1945,"source":"contracts/NFDInstance.algo.ts:380","pc":[1892]},{"teal":1946,"source":"contracts/NFDInstance.algo.ts:380","pc":[1893,1894,1895]},{"teal":1947,"source":"contracts/NFDInstance.algo.ts:380","pc":[1896,1897]},{"teal":1948,"source":"contracts/NFDInstance.algo.ts:380","pc":[1898,1899,1900]},{"teal":1949,"source":"contracts/NFDInstance.algo.ts:380","pc":[1901]},{"teal":1953,"source":"contracts/NFDInstance.algo.ts:379","errorMessage":"must be user-defined or verified field to fetch","pc":[1902]},{"teal":1958,"source":"contracts/NFDInstance.algo.ts:383","pc":[1903,1904]},{"teal":1959,"source":"contracts/NFDInstance.algo.ts:383","pc":[1905]},{"teal":1960,"source":"contracts/NFDInstance.algo.ts:383","pc":[1906]},{"teal":1961,"source":"contracts/NFDInstance.algo.ts:383","pc":[1907]},{"teal":1962,"source":"contracts/NFDInstance.algo.ts:383","pc":[1908,1909,1910]},{"teal":1967,"source":"contracts/NFDInstance.algo.ts:384","pc":[1911,1912]},{"teal":1968,"source":"contracts/NFDInstance.algo.ts:384","pc":[1913]},{"teal":1971,"source":"contracts/NFDInstance.algo.ts:384","errorMessage":"box value does not exist: this.boxes(fieldName).value","pc":[1914]},{"teal":1972,"source":"contracts/NFDInstance.algo.ts:384","pc":[1915,1916,1917]},{"teal":1977,"source":"contracts/NFDInstance.algo.ts:387","pc":[1918,1919]},{"teal":1978,"source":"contracts/NFDInstance.algo.ts:387","pc":[1920,1921,1922,1923,1924]},{"teal":1979,"source":"contracts/NFDInstance.algo.ts:387","pc":[1925]},{"teal":1980,"source":"contracts/NFDInstance.algo.ts:387","pc":[1926,1927]},{"teal":1985,"source":"contracts/NFDInstance.algo.ts:388","pc":[1928,1929]},{"teal":1986,"source":"contracts/NFDInstance.algo.ts:388","pc":[1930]},{"teal":1987,"source":"contracts/NFDInstance.algo.ts:388","pc":[1931]},{"teal":1988,"source":"contracts/NFDInstance.algo.ts:388","pc":[1932]},{"teal":1989,"source":"contracts/NFDInstance.algo.ts:388","pc":[1933]},{"teal":1990,"source":"contracts/NFDInstance.algo.ts:388","pc":[1934,1935,1936]},{"teal":1995,"source":"contracts/NFDInstance.algo.ts:389","pc":[1937]},{"teal":1996,"source":"contracts/NFDInstance.algo.ts:389","pc":[1938,1939,1940]},{"teal":2001,"source":"contracts/NFDInstance.algo.ts:392","pc":[1941,1942]},{"teal":2002,"source":"contracts/NFDInstance.algo.ts:392","pc":[1943]},{"teal":2005,"source":"contracts/NFDInstance.algo.ts:392","errorMessage":"box value does not exist: this.boxes(boxName).value","pc":[1944]},{"teal":2006,"source":"contracts/NFDInstance.algo.ts:392","pc":[1945,1946]},{"teal":2010,"source":"contracts/NFDInstance.algo.ts:393","pc":[1947,1948]},{"teal":2011,"source":"contracts/NFDInstance.algo.ts:393","pc":[1949,1950,1951,1952]},{"teal":2012,"source":"contracts/NFDInstance.algo.ts:393","pc":[1953]},{"teal":2013,"source":"contracts/NFDInstance.algo.ts:393","pc":[1954,1955]},{"teal":2017,"source":"contracts/NFDInstance.algo.ts:394","pc":[1956]},{"teal":2018,"source":"contracts/NFDInstance.algo.ts:394","pc":[1957,1958]},{"teal":2023,"source":"contracts/NFDInstance.algo.ts:394","pc":[1959,1960]},{"teal":2024,"source":"contracts/NFDInstance.algo.ts:394","pc":[1961,1962]},{"teal":2025,"source":"contracts/NFDInstance.algo.ts:394","pc":[1963]},{"teal":2026,"source":"contracts/NFDInstance.algo.ts:394","pc":[1964,1965,1966]},{"teal":2030,"source":"contracts/NFDInstance.algo.ts:395","pc":[1967,1968]},{"teal":2031,"source":"contracts/NFDInstance.algo.ts:395","pc":[1969,1970]},{"teal":2032,"source":"contracts/NFDInstance.algo.ts:395","pc":[1971,1972,1973]},{"teal":2033,"source":"contracts/NFDInstance.algo.ts:395","pc":[1974]},{"teal":2034,"source":"contracts/NFDInstance.algo.ts:395","pc":[1975,1976]},{"teal":2039,"source":"contracts/NFDInstance.algo.ts:396","pc":[1977,1978]},{"teal":2040,"source":"contracts/NFDInstance.algo.ts:396","pc":[1979]},{"teal":2041,"source":"contracts/NFDInstance.algo.ts:396","pc":[1980]},{"teal":2042,"source":"contracts/NFDInstance.algo.ts:396","pc":[1981]},{"teal":2043,"source":"contracts/NFDInstance.algo.ts:396","pc":[1982]},{"teal":2044,"source":"contracts/NFDInstance.algo.ts:396","pc":[1983,1984,1985]},{"teal":2047,"source":"contracts/NFDInstance.algo.ts:397","pc":[1986,1987,1988]},{"teal":2052,"source":"contracts/NFDInstance.algo.ts:400","pc":[1989,1990]},{"teal":2053,"source":"contracts/NFDInstance.algo.ts:400","pc":[1991,1992]},{"teal":2054,"source":"contracts/NFDInstance.algo.ts:400","pc":[1993]},{"teal":2057,"source":"contracts/NFDInstance.algo.ts:400","errorMessage":"box value does not exist: this.boxes(boxName).value","pc":[1994]},{"teal":2058,"source":"contracts/NFDInstance.algo.ts:400","pc":[1995]},{"teal":2059,"source":"contracts/NFDInstance.algo.ts:400","pc":[1996,1997]},{"teal":2064,"source":"contracts/NFDInstance.algo.ts:394","pc":[1998,1999]},{"teal":2065,"source":"contracts/NFDInstance.algo.ts:394","pc":[2000]},{"teal":2066,"source":"contracts/NFDInstance.algo.ts:394","pc":[2001]},{"teal":2067,"source":"contracts/NFDInstance.algo.ts:394","pc":[2002,2003]},{"teal":2068,"source":"contracts/NFDInstance.algo.ts:394","pc":[2004,2005,2006]},{"teal":2073,"source":"contracts/NFDInstance.algo.ts:402","pc":[2007,2008]},{"teal":2077,"source":"contracts/NFDInstance.algo.ts:371","pc":[2009,2010]},{"teal":2080,"source":"contracts/NFDInstance.algo.ts:371","pc":[2011,2012]},{"teal":2081,"source":"contracts/NFDInstance.algo.ts:371","pc":[2013]},{"teal":2086,"source":"contracts/NFDInstance.algo.ts:407","pc":[2014,2015,2016]},{"teal":2087,"source":"contracts/NFDInstance.algo.ts:407","pc":[2017]},{"teal":2088,"source":"contracts/NFDInstance.algo.ts:407","pc":[2018]},{"teal":2089,"source":"contracts/NFDInstance.algo.ts:407","pc":[2019]},{"teal":2090,"source":"contracts/NFDInstance.algo.ts:407","pc":[2020]},{"teal":2093,"source":"contracts/NFDInstance.algo.ts:407","errorMessage":"argument 0 (reservedFor) for offerForSale must be a address","pc":[2021]},{"teal":2096,"source":"contracts/NFDInstance.algo.ts:407","pc":[2022,2023,2024]},{"teal":2097,"source":"contracts/NFDInstance.algo.ts:407","pc":[2025]},{"teal":2100,"source":"contracts/NFDInstance.algo.ts:407","pc":[2026,2027,2028]},{"teal":2101,"source":"contracts/NFDInstance.algo.ts:407","pc":[2029]},{"teal":2102,"source":"contracts/NFDInstance.algo.ts:407","pc":[2030]},{"teal":2106,"source":"contracts/NFDInstance.algo.ts:407","pc":[2031,2032,2033]},{"teal":2109,"source":"contracts/NFDInstance.algo.ts:407","pc":[2034]},{"teal":2113,"source":"contracts/NFDInstance.algo.ts:408","pc":[2035,2036,2037]},{"teal":2114,"source":"contracts/NFDInstance.algo.ts:408","pc":[2038]},{"teal":2117,"source":"contracts/NFDInstance.algo.ts:408","errorMessage":"can't sell if NFD expired","pc":[2039]},{"teal":2121,"source":"contracts/NFDInstance.algo.ts:409","pc":[2040,2041,2042]},{"teal":2122,"source":"contracts/NFDInstance.algo.ts:409","pc":[2043]},{"teal":2123,"source":"contracts/NFDInstance.algo.ts:409","pc":[2044]},{"teal":2124,"source":"contracts/NFDInstance.algo.ts:409","pc":[2045]},{"teal":2125,"source":"contracts/NFDInstance.algo.ts:409","pc":[2046]},{"teal":2126,"source":"contracts/NFDInstance.algo.ts:409","pc":[2047]},{"teal":2127,"source":"contracts/NFDInstance.algo.ts:409","pc":[2048]},{"teal":2131,"source":"contracts/NFDInstance.algo.ts:410","pc":[2049,2050,2051]},{"teal":2135,"source":"contracts/NFDInstance.algo.ts:411","pc":[2052,2053]},{"teal":2136,"source":"contracts/NFDInstance.algo.ts:411","pc":[2054,2055]},{"teal":2137,"source":"contracts/NFDInstance.algo.ts:411","pc":[2056]},{"teal":2138,"source":"contracts/NFDInstance.algo.ts:411","pc":[2057,2058]},{"teal":2143,"source":"contracts/NFDInstance.algo.ts:416","pc":[2059,2060]},{"teal":2144,"source":"contracts/NFDInstance.algo.ts:416","pc":[2061]},{"teal":2145,"source":"contracts/NFDInstance.algo.ts:416","pc":[2062]},{"teal":2146,"source":"contracts/NFDInstance.algo.ts:416","pc":[2063,2064,2065]},{"teal":2151,"source":"contracts/NFDInstance.algo.ts:417","pc":[2066,2067,2068,2069,2070,2071,2072,2073,2074,2075,2076,2077]},{"teal":2152,"source":"contracts/NFDInstance.algo.ts:417","pc":[2078,2079]},{"teal":2153,"source":"contracts/NFDInstance.algo.ts:417","pc":[2080,2081,2082]},{"teal":2154,"source":"contracts/NFDInstance.algo.ts:417","pc":[2083]},{"teal":2155,"source":"contracts/NFDInstance.algo.ts:417","pc":[2084]},{"teal":2160,"source":"contracts/NFDInstance.algo.ts:419","pc":[2085,2086]},{"teal":2161,"source":"contracts/NFDInstance.algo.ts:419","pc":[2087]},{"teal":2162,"source":"contracts/NFDInstance.algo.ts:419","pc":[2088]},{"teal":2165,"source":"contracts/NFDInstance.algo.ts:419","errorMessage":"can only be sold if no user-defined or verified properties remain","pc":[2089]},{"teal":2170,"source":"contracts/NFDInstance.algo.ts:422","pc":[2090,2091]},{"teal":2171,"source":"contracts/NFDInstance.algo.ts:422","pc":[2092,2093,2094]},{"teal":2172,"source":"contracts/NFDInstance.algo.ts:422","pc":[2095]},{"teal":2173,"source":"contracts/NFDInstance.algo.ts:422","pc":[2096]},{"teal":2174,"source":"contracts/NFDInstance.algo.ts:422","pc":[2097]},{"teal":2175,"source":"contracts/NFDInstance.algo.ts:422","pc":[2098,2099,2100]},{"teal":2180,"source":"contracts/NFDInstance.algo.ts:423","pc":[2101,2102]},{"teal":2181,"source":"contracts/NFDInstance.algo.ts:423","pc":[2103,2104]},{"teal":2182,"source":"contracts/NFDInstance.algo.ts:423","pc":[2105]},{"teal":2185,"source":"contracts/NFDInstance.algo.ts:423","errorMessage":"must be sold for at least MIN amount","pc":[2106]},{"teal":2190,"source":"contracts/NFDInstance.algo.ts:425","pc":[2107]},{"teal":2191,"source":"contracts/NFDInstance.algo.ts:425","pc":[2108,2109]},{"teal":2192,"source":"contracts/NFDInstance.algo.ts:425","pc":[2110]},{"teal":2193,"source":"contracts/NFDInstance.algo.ts:425","pc":[2111]},{"teal":2197,"source":"contracts/NFDInstance.algo.ts:427","pc":[2112,2113]},{"teal":2198,"source":"contracts/NFDInstance.algo.ts:427","pc":[2114,2115]},{"teal":2199,"source":"contracts/NFDInstance.algo.ts:427","pc":[2116]},{"teal":2203,"source":"contracts/NFDInstance.algo.ts:432","pc":[2117,2118]},{"teal":2204,"source":"contracts/NFDInstance.algo.ts:432","pc":[2119,2120]},{"teal":2205,"source":"contracts/NFDInstance.algo.ts:432","pc":[2121]},{"teal":2206,"source":"contracts/NFDInstance.algo.ts:432","pc":[2122]},{"teal":2211,"source":"contracts/NFDInstance.algo.ts:442","pc":[2123,2124]},{"teal":2212,"source":"contracts/NFDInstance.algo.ts:442","pc":[2125,2126]},{"teal":2213,"source":"contracts/NFDInstance.algo.ts:442","pc":[2127]},{"teal":2214,"source":"contracts/NFDInstance.algo.ts:442","pc":[2128]},{"teal":2215,"source":"contracts/NFDInstance.algo.ts:442","pc":[2129,2130,2131]},{"teal":2216,"source":"contracts/NFDInstance.algo.ts:442","pc":[2132,2133]},{"teal":2217,"source":"contracts/NFDInstance.algo.ts:442","pc":[2134]},{"teal":2218,"source":"contracts/NFDInstance.algo.ts:442","pc":[2135,2136,2137]},{"teal":2219,"source":"contracts/NFDInstance.algo.ts:442","pc":[2138]},{"teal":2220,"source":"contracts/NFDInstance.algo.ts:442","pc":[2139]},{"teal":2223,"source":"contracts/NFDInstance.algo.ts:442","pc":[2140,2141,2142]},{"teal":2228,"source":"contracts/NFDInstance.algo.ts:443","pc":[2143,2144]},{"teal":2229,"source":"contracts/NFDInstance.algo.ts:443","pc":[2145,2146]},{"teal":2230,"source":"contracts/NFDInstance.algo.ts:443","pc":[2147]},{"teal":2231,"source":"contracts/NFDInstance.algo.ts:442","pc":[2148,2149,2150]},{"teal":2237,"source":"contracts/NFDInstance.algo.ts:445","pc":[2151,2152]},{"teal":2238,"source":"contracts/NFDInstance.algo.ts:445","pc":[2153,2154,2155]},{"teal":2239,"source":"contracts/NFDInstance.algo.ts:445","pc":[2156]},{"teal":2240,"source":"contracts/NFDInstance.algo.ts:445","pc":[2157]},{"teal":2241,"source":"contracts/NFDInstance.algo.ts:445","pc":[2158]},{"teal":2242,"source":"contracts/NFDInstance.algo.ts:445","pc":[2159,2160,2161]},{"teal":2243,"source":"contracts/NFDInstance.algo.ts:446","pc":[2162,2163]},{"teal":2244,"source":"contracts/NFDInstance.algo.ts:446","pc":[2164,2165]},{"teal":2245,"source":"contracts/NFDInstance.algo.ts:446","pc":[2166,2167,2168]},{"teal":2246,"source":"contracts/NFDInstance.algo.ts:446","pc":[2169]},{"teal":2247,"source":"contracts/NFDInstance.algo.ts:445","pc":[2170]},{"teal":2250,"source":"contracts/NFDInstance.algo.ts:444","pc":[2171,2172,2173]},{"teal":2255,"source":"contracts/NFDInstance.algo.ts:448","pc":[2174,2175]},{"teal":2256,"source":"contracts/NFDInstance.algo.ts:448","pc":[2176,2177]},{"teal":2257,"source":"contracts/NFDInstance.algo.ts:448","pc":[2178]},{"teal":2258,"source":"contracts/NFDInstance.algo.ts:448","pc":[2179]},{"teal":2259,"source":"contracts/NFDInstance.algo.ts:444","pc":[2180,2181,2182]},{"teal":2264,"source":"contracts/NFDInstance.algo.ts:450","pc":[2183,2184]},{"teal":2265,"source":"contracts/NFDInstance.algo.ts:450","pc":[2185]},{"teal":2276,"source":"contracts/NFDInstance.algo.ts:453","pc":[2186,2187,2188,2189,2190,2191]},{"teal":2277,"source":"contracts/NFDInstance.algo.ts:453","pc":[2192]},{"teal":2278,"source":"contracts/NFDInstance.algo.ts:453","pc":[2193]},{"teal":2279,"source":"contracts/NFDInstance.algo.ts:453","pc":[2194,2195,2196,2197]},{"teal":2280,"source":"contracts/NFDInstance.algo.ts:454","pc":[2198,2199,2200]},{"teal":2281,"source":"contracts/NFDInstance.algo.ts:454","pc":[2201]},{"teal":2282,"source":"contracts/NFDInstance.algo.ts:454","pc":[2202,2203,2204]},{"teal":2283,"source":"contracts/NFDInstance.algo.ts:455","pc":[2205,2206]},{"teal":2284,"source":"contracts/NFDInstance.algo.ts:455","pc":[2207]},{"teal":2285,"source":"contracts/NFDInstance.algo.ts:455","pc":[2208]},{"teal":2286,"source":"contracts/NFDInstance.algo.ts:455","pc":[2209]},{"teal":2287,"source":"contracts/NFDInstance.algo.ts:455","pc":[2210]},{"teal":2288,"source":"contracts/NFDInstance.algo.ts:455","pc":[2211,2212,2213]},{"teal":2289,"source":"contracts/NFDInstance.algo.ts:455","pc":[2214]},{"teal":2290,"source":"contracts/NFDInstance.algo.ts:455","pc":[2215]},{"teal":2291,"source":"contracts/NFDInstance.algo.ts:455","pc":[2216,2217,2218]},{"teal":2292,"source":"contracts/NFDInstance.algo.ts:456","pc":[2219]},{"teal":2293,"source":"contracts/NFDInstance.algo.ts:456","pc":[2220]},{"teal":2294,"source":"contracts/NFDInstance.algo.ts:456","pc":[2221,2222,2223]},{"teal":2295,"source":"contracts/NFDInstance.algo.ts:457","pc":[2224,2225]},{"teal":2296,"source":"contracts/NFDInstance.algo.ts:457","pc":[2226]},{"teal":2297,"source":"contracts/NFDInstance.algo.ts:457","pc":[2227,2228,2229]},{"teal":2298,"source":"contracts/NFDInstance.algo.ts:458","pc":[2230,2231]},{"teal":2299,"source":"contracts/NFDInstance.algo.ts:458","pc":[2232,2233,2234]},{"teal":2300,"source":"contracts/NFDInstance.algo.ts:453","pc":[2235]},{"teal":2301,"source":"contracts/NFDInstance.algo.ts:453","pc":[2236]},{"teal":2302,"source":"contracts/NFDInstance.algo.ts:453","pc":[2237]},{"teal":2303,"source":"contracts/NFDInstance.algo.ts:453","pc":[2238]},{"teal":2304,"source":"contracts/NFDInstance.algo.ts:407","pc":[2239]},{"teal":2309,"source":"contracts/NFDInstance.algo.ts:464","pc":[2240,2241,2242]},{"teal":2310,"source":"contracts/NFDInstance.algo.ts:464","pc":[2243]},{"teal":2311,"source":"contracts/NFDInstance.algo.ts:464","pc":[2244]},{"teal":2315,"source":"contracts/NFDInstance.algo.ts:464","pc":[2245,2246,2247]},{"teal":2319,"source":"contracts/NFDInstance.algo.ts:465","pc":[2248,2249,2250]},{"teal":2320,"source":"contracts/NFDInstance.algo.ts:465","pc":[2251]},{"teal":2323,"source":"contracts/NFDInstance.algo.ts:465","errorMessage":"can't update fields if NFD expired","pc":[2252]},{"teal":2327,"source":"contracts/NFDInstance.algo.ts:466","pc":[2253,2254,2255]},{"teal":2328,"source":"contracts/NFDInstance.algo.ts:466","pc":[2256]},{"teal":2329,"source":"contracts/NFDInstance.algo.ts:466","pc":[2257]},{"teal":2330,"source":"contracts/NFDInstance.algo.ts:466","pc":[2258]},{"teal":2331,"source":"contracts/NFDInstance.algo.ts:466","pc":[2259]},{"teal":2332,"source":"contracts/NFDInstance.algo.ts:466","pc":[2260]},{"teal":2333,"source":"contracts/NFDInstance.algo.ts:466","pc":[2261]},{"teal":2337,"source":"contracts/NFDInstance.algo.ts:467","pc":[2262,2263,2264]},{"teal":2340,"source":"contracts/NFDInstance.algo.ts:467","errorMessage":"must be for sale","pc":[2265]},{"teal":2344,"source":"contracts/NFDInstance.algo.ts:468","pc":[2266,2267,2268]},{"teal":2348,"source":"contracts/NFDInstance.algo.ts:469","pc":[2269,2270]},{"teal":2349,"source":"contracts/NFDInstance.algo.ts:469","pc":[2271]},{"teal":2353,"source":"contracts/NFDInstance.algo.ts:470","pc":[2272,2273]},{"teal":2354,"source":"contracts/NFDInstance.algo.ts:470","pc":[2274]},{"teal":2358,"source":"contracts/NFDInstance.algo.ts:471","pc":[2275]},{"teal":2359,"source":"contracts/NFDInstance.algo.ts:471","pc":[2276,2277]},{"teal":2360,"source":"contracts/NFDInstance.algo.ts:471","pc":[2278]},{"teal":2361,"source":"contracts/NFDInstance.algo.ts:471","pc":[2279]},{"teal":2365,"source":"contracts/NFDInstance.algo.ts:473","pc":[2280,2281]},{"teal":2366,"source":"contracts/NFDInstance.algo.ts:473","pc":[2282]},{"teal":2367,"source":"contracts/NFDInstance.algo.ts:473","pc":[2283]},{"teal":2368,"source":"contracts/NFDInstance.algo.ts:473","pc":[2284,2285]},{"teal":2369,"source":"contracts/NFDInstance.algo.ts:473","pc":[2286,2287,2288]},{"teal":2370,"source":"contracts/NFDInstance.algo.ts:473","pc":[2289]},{"teal":2371,"source":"contracts/NFDInstance.algo.ts:473","pc":[2290,2291,2292]},{"teal":2372,"source":"contracts/NFDInstance.algo.ts:473","pc":[2293,2294]},{"teal":2373,"source":"contracts/NFDInstance.algo.ts:473","pc":[2295]},{"teal":2374,"source":"contracts/NFDInstance.algo.ts:473","pc":[2296]},{"teal":2375,"source":"contracts/NFDInstance.algo.ts:473","pc":[2297]},{"teal":2376,"source":"contracts/NFDInstance.algo.ts:473","pc":[2298]},{"teal":2377,"source":"contracts/NFDInstance.algo.ts:473","pc":[2299,2300,2301]},{"teal":2378,"source":"contracts/NFDInstance.algo.ts:473","pc":[2302]},{"teal":2379,"source":"contracts/NFDInstance.algo.ts:473","pc":[2303]},{"teal":2380,"source":"contracts/NFDInstance.algo.ts:473","pc":[2304,2305,2306]},{"teal":2381,"source":"contracts/NFDInstance.algo.ts:473","pc":[2307]},{"teal":2382,"source":"contracts/NFDInstance.algo.ts:473","pc":[2308]},{"teal":2383,"source":"contracts/NFDInstance.algo.ts:473","pc":[2309]},{"teal":2384,"source":"contracts/NFDInstance.algo.ts:473","pc":[2310]},{"teal":2385,"source":"contracts/NFDInstance.algo.ts:464","pc":[2311]},{"teal":2390,"source":"contracts/NFDInstance.algo.ts:479","pc":[2312,2313,2314]},{"teal":2391,"source":"contracts/NFDInstance.algo.ts:479","pc":[2315,2316,2317]},{"teal":2394,"source":"contracts/NFDInstance.algo.ts:479","pc":[2318,2319,2320]},{"teal":2395,"source":"contracts/NFDInstance.algo.ts:479","pc":[2321]},{"teal":2398,"source":"contracts/NFDInstance.algo.ts:479","pc":[2322,2323,2324]},{"teal":2399,"source":"contracts/NFDInstance.algo.ts:479","pc":[2325]},{"teal":2400,"source":"contracts/NFDInstance.algo.ts:479","pc":[2326]},{"teal":2404,"source":"contracts/NFDInstance.algo.ts:479","pc":[2327,2328,2329]},{"teal":2414,"source":"contracts/NFDInstance.algo.ts:480","pc":[2330,2331,2332,2333,2334,2335]},{"teal":2415,"source":"contracts/NFDInstance.algo.ts:480","pc":[2336]},{"teal":2416,"source":"contracts/NFDInstance.algo.ts:480","pc":[2337]},{"teal":2417,"source":"contracts/NFDInstance.algo.ts:480","pc":[2338,2339,2340,2341]},{"teal":2418,"source":"contracts/NFDInstance.algo.ts:481","pc":[2342,2343,2344]},{"teal":2419,"source":"contracts/NFDInstance.algo.ts:481","pc":[2345]},{"teal":2420,"source":"contracts/NFDInstance.algo.ts:481","pc":[2346,2347,2348]},{"teal":2421,"source":"contracts/NFDInstance.algo.ts:482","pc":[2349,2350]},{"teal":2422,"source":"contracts/NFDInstance.algo.ts:482","pc":[2351]},{"teal":2423,"source":"contracts/NFDInstance.algo.ts:482","pc":[2352]},{"teal":2424,"source":"contracts/NFDInstance.algo.ts:482","pc":[2353]},{"teal":2425,"source":"contracts/NFDInstance.algo.ts:482","pc":[2354]},{"teal":2426,"source":"contracts/NFDInstance.algo.ts:482","pc":[2355,2356,2357]},{"teal":2427,"source":"contracts/NFDInstance.algo.ts:482","pc":[2358]},{"teal":2428,"source":"contracts/NFDInstance.algo.ts:482","pc":[2359]},{"teal":2429,"source":"contracts/NFDInstance.algo.ts:482","pc":[2360,2361,2362]},{"teal":2430,"source":"contracts/NFDInstance.algo.ts:483","pc":[2363,2364]},{"teal":2431,"source":"contracts/NFDInstance.algo.ts:483","pc":[2365,2366,2367]},{"teal":2432,"source":"contracts/NFDInstance.algo.ts:484","pc":[2368,2369]},{"teal":2433,"source":"contracts/NFDInstance.algo.ts:484","pc":[2370]},{"teal":2434,"source":"contracts/NFDInstance.algo.ts:484","pc":[2371,2372,2373]},{"teal":2435,"source":"contracts/NFDInstance.algo.ts:485","pc":[2374,2375]},{"teal":2436,"source":"contracts/NFDInstance.algo.ts:485","pc":[2376]},{"teal":2437,"source":"contracts/NFDInstance.algo.ts:485","pc":[2377]},{"teal":2438,"source":"contracts/NFDInstance.algo.ts:485","pc":[2378]},{"teal":2439,"source":"contracts/NFDInstance.algo.ts:485","pc":[2379,2380,2381]},{"teal":2440,"source":"contracts/NFDInstance.algo.ts:485","pc":[2382]},{"teal":2441,"source":"contracts/NFDInstance.algo.ts:485","pc":[2383]},{"teal":2442,"source":"contracts/NFDInstance.algo.ts:485","pc":[2384,2385,2386]},{"teal":2443,"source":"contracts/NFDInstance.algo.ts:480","pc":[2387]},{"teal":2444,"source":"contracts/NFDInstance.algo.ts:480","pc":[2388]},{"teal":2445,"source":"contracts/NFDInstance.algo.ts:480","pc":[2389]},{"teal":2446,"source":"contracts/NFDInstance.algo.ts:480","pc":[2390]},{"teal":2447,"source":"contracts/NFDInstance.algo.ts:479","pc":[2391]},{"teal":2452,"source":"contracts/NFDInstance.algo.ts:491","pc":[2392,2393]},{"teal":2455,"source":"contracts/NFDInstance.algo.ts:491","pc":[2394,2395,2396]},{"teal":2456,"source":"contracts/NFDInstance.algo.ts:491","pc":[2397]},{"teal":2459,"source":"contracts/NFDInstance.algo.ts:491","pc":[2398,2399,2400]},{"teal":2460,"source":"contracts/NFDInstance.algo.ts:491","pc":[2401]},{"teal":2463,"source":"contracts/NFDInstance.algo.ts:491","pc":[2402,2403,2404]},{"teal":2464,"source":"contracts/NFDInstance.algo.ts:491","pc":[2405]},{"teal":2465,"source":"contracts/NFDInstance.algo.ts:491","pc":[2406]},{"teal":2466,"source":"contracts/NFDInstance.algo.ts:491","pc":[2407]},{"teal":2467,"source":"contracts/NFDInstance.algo.ts:491","pc":[2408]},{"teal":2471,"source":"contracts/NFDInstance.algo.ts:491","pc":[2409,2410,2411]},{"teal":2474,"source":"contracts/NFDInstance.algo.ts:491","pc":[2412]},{"teal":2475,"source":"contracts/NFDInstance.algo.ts:491","pc":[2413,2414]},{"teal":2479,"source":"contracts/NFDInstance.algo.ts:492","pc":[2415,2416]},{"teal":2480,"source":"contracts/NFDInstance.algo.ts:492","pc":[2417,2418]},{"teal":2481,"source":"contracts/NFDInstance.algo.ts:492","pc":[2419]},{"teal":2484,"source":"contracts/NFDInstance.algo.ts:492","errorMessage":"caller must be NFD registry!","pc":[2420]},{"teal":2488,"source":"contracts/NFDInstance.algo.ts:493","pc":[2421]},{"teal":2489,"source":"contracts/NFDInstance.algo.ts:493","pc":[2422,2423,2424]},{"teal":2490,"source":"contracts/NFDInstance.algo.ts:493","pc":[2425,2426]},{"teal":2491,"source":"contracts/NFDInstance.algo.ts:493","pc":[2427]},{"teal":2492,"source":"contracts/NFDInstance.algo.ts:493","pc":[2428]},{"teal":2496,"source":"contracts/NFDInstance.algo.ts:495","pc":[2429,2430]},{"teal":2497,"source":"contracts/NFDInstance.algo.ts:495","pc":[2431,2432,2433]},{"teal":2498,"source":"contracts/NFDInstance.algo.ts:495","pc":[2434,2435]},{"teal":2502,"source":"contracts/NFDInstance.algo.ts:498","pc":[2436,2437]},{"teal":2503,"source":"contracts/NFDInstance.algo.ts:498","pc":[2438,2439]},{"teal":2508,"source":"contracts/NFDInstance.algo.ts:503","pc":[2440,2441]},{"teal":2509,"source":"contracts/NFDInstance.algo.ts:503","pc":[2442,2443,2444]},{"teal":2510,"source":"contracts/NFDInstance.algo.ts:503","pc":[2445]},{"teal":2511,"source":"contracts/NFDInstance.algo.ts:503","pc":[2446]},{"teal":2512,"source":"contracts/NFDInstance.algo.ts:503","pc":[2447]},{"teal":2513,"source":"contracts/NFDInstance.algo.ts:503","pc":[2448,2449,2450]},{"teal":2518,"source":"contracts/NFDInstance.algo.ts:507","pc":[2451,2452]},{"teal":2519,"source":"contracts/NFDInstance.algo.ts:507","pc":[2453,2454]},{"teal":2523,"source":"contracts/NFDInstance.algo.ts:509","pc":[2455,2456]},{"teal":2524,"source":"contracts/NFDInstance.algo.ts:509","pc":[2457,2458]},{"teal":2525,"source":"contracts/NFDInstance.algo.ts:509","pc":[2459]},{"teal":2526,"source":"contracts/NFDInstance.algo.ts:509","pc":[2460,2461]},{"teal":2527,"source":"contracts/NFDInstance.algo.ts:509","pc":[2462]},{"teal":2528,"source":"contracts/NFDInstance.algo.ts:509","pc":[2463,2464]},{"teal":2532,"source":"contracts/NFDInstance.algo.ts:511","pc":[2465,2466]},{"teal":2533,"source":"contracts/NFDInstance.algo.ts:511","pc":[2467,2468]},{"teal":2534,"source":"contracts/NFDInstance.algo.ts:511","pc":[2469]},{"teal":2535,"source":"contracts/NFDInstance.algo.ts:511","pc":[2470,2471]},{"teal":2536,"source":"contracts/NFDInstance.algo.ts:511","pc":[2472]},{"teal":2537,"source":"contracts/NFDInstance.algo.ts:511","pc":[2473,2474]},{"teal":2542,"source":"contracts/NFDInstance.algo.ts:512","pc":[2475,2476]},{"teal":2543,"source":"contracts/NFDInstance.algo.ts:512","pc":[2477,2478]},{"teal":2544,"source":"contracts/NFDInstance.algo.ts:512","pc":[2479]},{"teal":2545,"source":"contracts/NFDInstance.algo.ts:512","pc":[2480,2481,2482]},{"teal":2550,"source":"contracts/NFDInstance.algo.ts:513","pc":[2483,2484]},{"teal":2551,"source":"contracts/NFDInstance.algo.ts:513","pc":[2485,2486]},{"teal":2557,"source":"contracts/NFDInstance.algo.ts:515","pc":[2487,2488]},{"teal":2558,"source":"contracts/NFDInstance.algo.ts:515","pc":[2489,2490]},{"teal":2559,"source":"contracts/NFDInstance.algo.ts:515","pc":[2491]},{"teal":2560,"source":"contracts/NFDInstance.algo.ts:515","pc":[2492,2493,2494]},{"teal":2565,"source":"contracts/NFDInstance.algo.ts:516","pc":[2495,2496]},{"teal":2566,"source":"contracts/NFDInstance.algo.ts:516","pc":[2497,2498]},{"teal":2571,"source":"contracts/NFDInstance.algo.ts:519","pc":[2499,2500]},{"teal":2572,"source":"contracts/NFDInstance.algo.ts:519","pc":[2501,2502]},{"teal":2573,"source":"contracts/NFDInstance.algo.ts:519","pc":[2503]},{"teal":2574,"source":"contracts/NFDInstance.algo.ts:519","pc":[2504,2505]},{"teal":2575,"source":"contracts/NFDInstance.algo.ts:503","pc":[2506,2507,2508]},{"teal":2580,"source":"contracts/NFDInstance.algo.ts:522","pc":[2509]},{"teal":2581,"source":"contracts/NFDInstance.algo.ts:522","pc":[2510,2511]},{"teal":2586,"source":"contracts/NFDInstance.algo.ts:526","pc":[2512]},{"teal":2587,"source":"contracts/NFDInstance.algo.ts:526","pc":[2513,2514]},{"teal":2592,"source":"contracts/NFDInstance.algo.ts:527","pc":[2515,2516]},{"teal":2593,"source":"contracts/NFDInstance.algo.ts:527","pc":[2517,2518,2519]},{"teal":2594,"source":"contracts/NFDInstance.algo.ts:527","pc":[2520]},{"teal":2595,"source":"contracts/NFDInstance.algo.ts:527","pc":[2521]},{"teal":2596,"source":"contracts/NFDInstance.algo.ts:527","pc":[2522,2523,2524]},{"teal":2601,"source":"contracts/NFDInstance.algo.ts:529","pc":[2525]},{"teal":2602,"source":"contracts/NFDInstance.algo.ts:529","pc":[2526,2527]},{"teal":2603,"source":"contracts/NFDInstance.algo.ts:527","pc":[2528,2529,2530]},{"teal":2608,"source":"contracts/NFDInstance.algo.ts:533","pc":[2531,2532]},{"teal":2609,"source":"contracts/NFDInstance.algo.ts:533","pc":[2533,2534]},{"teal":2610,"source":"contracts/NFDInstance.algo.ts:533","pc":[2535,2536,2537]},{"teal":2611,"source":"contracts/NFDInstance.algo.ts:533","pc":[2538]},{"teal":2612,"source":"contracts/NFDInstance.algo.ts:533","pc":[2539,2540]},{"teal":2613,"source":"contracts/NFDInstance.algo.ts:533","pc":[2541]},{"teal":2614,"source":"contracts/NFDInstance.algo.ts:533","pc":[2542,2543]},{"teal":2619,"source":"contracts/NFDInstance.algo.ts:536","pc":[2544,2545]},{"teal":2620,"source":"contracts/NFDInstance.algo.ts:536","pc":[2546,2547]},{"teal":2624,"source":"contracts/NFDInstance.algo.ts:537","pc":[2548,2549]},{"teal":2625,"source":"contracts/NFDInstance.algo.ts:537","pc":[2550,2551]},{"teal":2630,"source":"contracts/NFDInstance.algo.ts:539","pc":[2552,2553,2554]},{"teal":2631,"source":"contracts/NFDInstance.algo.ts:539","pc":[2555,2556]},{"teal":2632,"source":"contracts/NFDInstance.algo.ts:539","pc":[2557]},{"teal":2633,"source":"contracts/NFDInstance.algo.ts:539","pc":[2558]},{"teal":2634,"source":"contracts/NFDInstance.algo.ts:539","pc":[2559]},{"teal":2635,"source":"contracts/NFDInstance.algo.ts:539","pc":[2560,2561,2562]},{"teal":2640,"source":"contracts/NFDInstance.algo.ts:540","pc":[2563,2564]},{"teal":2641,"source":"contracts/NFDInstance.algo.ts:540","pc":[2565]},{"teal":2642,"source":"contracts/NFDInstance.algo.ts:540","pc":[2566,2567]},{"teal":2648,"source":"contracts/NFDInstance.algo.ts:542","pc":[2568,2569,2570]},{"teal":2649,"source":"contracts/NFDInstance.algo.ts:542","pc":[2571,2572]},{"teal":2650,"source":"contracts/NFDInstance.algo.ts:542","pc":[2573]},{"teal":2651,"source":"contracts/NFDInstance.algo.ts:542","pc":[2574]},{"teal":2652,"source":"contracts/NFDInstance.algo.ts:542","pc":[2575]},{"teal":2653,"source":"contracts/NFDInstance.algo.ts:542","pc":[2576,2577,2578]},{"teal":2658,"source":"contracts/NFDInstance.algo.ts:543","pc":[2579,2580]},{"teal":2659,"source":"contracts/NFDInstance.algo.ts:543","pc":[2581]},{"teal":2660,"source":"contracts/NFDInstance.algo.ts:543","pc":[2582,2583]},{"teal":2671,"source":"contracts/NFDInstance.algo.ts:552","pc":[2584,2585]},{"teal":2672,"source":"contracts/NFDInstance.algo.ts:552","pc":[2586]},{"teal":2673,"source":"contracts/NFDInstance.algo.ts:551","pc":[2587,2588]},{"teal":2674,"source":"contracts/NFDInstance.algo.ts:550","pc":[2589,2590]},{"teal":2675,"source":"contracts/NFDInstance.algo.ts:549","pc":[2591,2592]},{"teal":2676,"source":"contracts/NFDInstance.algo.ts:549","pc":[2593]},{"teal":2677,"source":"contracts/NFDInstance.algo.ts:548","pc":[2594,2595]},{"teal":2678,"source":"contracts/NFDInstance.algo.ts:547","pc":[2596,2597,2598]},{"teal":2682,"source":"contracts/NFDInstance.algo.ts:556","pc":[2599,2600]},{"teal":2683,"source":"contracts/NFDInstance.algo.ts:556","pc":[2601]},{"teal":2684,"source":"contracts/NFDInstance.algo.ts:556","pc":[2602]},{"teal":2685,"source":"contracts/NFDInstance.algo.ts:556","pc":[2603]},{"teal":2689,"source":"contracts/NFDInstance.algo.ts:558","pc":[2604,2605]},{"teal":2690,"source":"contracts/NFDInstance.algo.ts:558","pc":[2606,2607]},{"teal":2691,"source":"contracts/NFDInstance.algo.ts:558","pc":[2608]},{"teal":2692,"source":"contracts/NFDInstance.algo.ts:558","pc":[2609]},{"teal":2696,"source":"contracts/NFDInstance.algo.ts:559","pc":[2610]},{"teal":2697,"source":"contracts/NFDInstance.algo.ts:559","pc":[2611]},{"teal":2701,"source":"contracts/NFDInstance.algo.ts:560","pc":[2612,2613]},{"teal":2702,"source":"contracts/NFDInstance.algo.ts:560","pc":[2614]},{"teal":2706,"source":"contracts/NFDInstance.algo.ts:562","pc":[2615,2616]},{"teal":2707,"source":"contracts/NFDInstance.algo.ts:562","pc":[2617]},{"teal":2717,"source":"contracts/NFDInstance.algo.ts:565","pc":[2618,2619]},{"teal":2718,"source":"contracts/NFDInstance.algo.ts:565","pc":[2620,2621]},{"teal":2719,"source":"contracts/NFDInstance.algo.ts:565","pc":[2622]},{"teal":2720,"source":"contracts/NFDInstance.algo.ts:565","pc":[2623]},{"teal":2721,"source":"contracts/NFDInstance.algo.ts:566","pc":[2624,2625]},{"teal":2722,"source":"contracts/NFDInstance.algo.ts:566","pc":[2626]},{"teal":2723,"source":"contracts/NFDInstance.algo.ts:567","pc":[2627,2628]},{"teal":2724,"source":"contracts/NFDInstance.algo.ts:567","pc":[2629]},{"teal":2725,"source":"contracts/NFDInstance.algo.ts:567","pc":[2630]},{"teal":2726,"source":"contracts/NFDInstance.algo.ts:568","pc":[2631,2632]},{"teal":2727,"source":"contracts/NFDInstance.algo.ts:568","pc":[2633]},{"teal":2728,"source":"contracts/NFDInstance.algo.ts:569","pc":[2634,2635]},{"teal":2729,"source":"contracts/NFDInstance.algo.ts:569","pc":[2636]},{"teal":2730,"source":"contracts/NFDInstance.algo.ts:569","pc":[2637]},{"teal":2733,"source":"contracts/NFDInstance.algo.ts:491","pc":[2638,2639]},{"teal":2736,"source":"contracts/NFDInstance.algo.ts:491","pc":[2640,2641]},{"teal":2737,"source":"contracts/NFDInstance.algo.ts:491","pc":[2642]},{"teal":2742,"source":"contracts/NFDInstance.algo.ts:573","pc":[2643,2644]},{"teal":2743,"source":"contracts/NFDInstance.algo.ts:573","pc":[2645]},{"teal":2744,"source":"contracts/NFDInstance.algo.ts:573","pc":[2646]},{"teal":2745,"source":"contracts/NFDInstance.algo.ts:573","pc":[2647]},{"teal":2746,"source":"contracts/NFDInstance.algo.ts:573","pc":[2648,2649]},{"teal":2747,"source":"contracts/NFDInstance.algo.ts:573","pc":[2650]},{"teal":2748,"source":"contracts/NFDInstance.algo.ts:573","pc":[2651]},{"teal":2751,"source":"contracts/NFDInstance.algo.ts:573","errorMessage":"argument 0 (payment) for purchase must be a pay transaction","pc":[2652]},{"teal":2754,"source":"contracts/NFDInstance.algo.ts:573","pc":[2653,2654,2655]},{"teal":2755,"source":"contracts/NFDInstance.algo.ts:573","pc":[2656]},{"teal":2756,"source":"contracts/NFDInstance.algo.ts:573","pc":[2657]},{"teal":2760,"source":"contracts/NFDInstance.algo.ts:573","pc":[2658,2659,2660]},{"teal":2763,"source":"contracts/NFDInstance.algo.ts:573","pc":[2661]},{"teal":2764,"source":"contracts/NFDInstance.algo.ts:573","pc":[2662,2663]},{"teal":2768,"source":"contracts/NFDInstance.algo.ts:574","pc":[2664,2665,2666]},{"teal":2769,"source":"contracts/NFDInstance.algo.ts:574","pc":[2667]},{"teal":2770,"source":"contracts/NFDInstance.algo.ts:574","pc":[2668]},{"teal":2771,"source":"contracts/NFDInstance.algo.ts:574","pc":[2669]},{"teal":2772,"source":"contracts/NFDInstance.algo.ts:574","pc":[2670]},{"teal":2773,"source":"contracts/NFDInstance.algo.ts:574","pc":[2671]},{"teal":2774,"source":"contracts/NFDInstance.algo.ts:574","pc":[2672]},{"teal":2778,"source":"contracts/NFDInstance.algo.ts:575","pc":[2673,2674,2675]},{"teal":2779,"source":"contracts/NFDInstance.algo.ts:575","pc":[2676]},{"teal":2782,"source":"contracts/NFDInstance.algo.ts:575","errorMessage":"can't be expired","pc":[2677]},{"teal":2786,"source":"contracts/NFDInstance.algo.ts:576","pc":[2678,2679,2680]},{"teal":2789,"source":"contracts/NFDInstance.algo.ts:576","errorMessage":"must be for sale","pc":[2681]},{"teal":2793,"source":"contracts/NFDInstance.algo.ts:577","pc":[2682,2683]},{"teal":2794,"source":"contracts/NFDInstance.algo.ts:577","pc":[2684,2685,2686]},{"teal":2795,"source":"contracts/NFDInstance.algo.ts:577","pc":[2687,2688]},{"teal":2799,"source":"contracts/NFDInstance.algo.ts:578","pc":[2689,2690]},{"teal":2800,"source":"contracts/NFDInstance.algo.ts:578","pc":[2691,2692,2693]},{"teal":2801,"source":"contracts/NFDInstance.algo.ts:578","pc":[2694,2695]},{"teal":2805,"source":"contracts/NFDInstance.algo.ts:579","pc":[2696,2697]},{"teal":2806,"source":"contracts/NFDInstance.algo.ts:579","pc":[2698,2699]},{"teal":2807,"source":"contracts/NFDInstance.algo.ts:579","pc":[2700,2701]},{"teal":2811,"source":"contracts/NFDInstance.algo.ts:580","pc":[2702,2703]},{"teal":2812,"source":"contracts/NFDInstance.algo.ts:580","pc":[2704,2705]},{"teal":2816,"source":"contracts/NFDInstance.algo.ts:581","pc":[2706,2707,2708,2709,2710,2711,2712,2713,2714,2715,2716,2717,2718]},{"teal":2817,"source":"contracts/NFDInstance.algo.ts:581","pc":[2719,2720]},{"teal":2818,"source":"contracts/NFDInstance.algo.ts:581","pc":[2721,2722,2723]},{"teal":2819,"source":"contracts/NFDInstance.algo.ts:581","pc":[2724]},{"teal":2820,"source":"contracts/NFDInstance.algo.ts:581","pc":[2725]},{"teal":2824,"source":"contracts/NFDInstance.algo.ts:583","pc":[2726,2727]},{"teal":2825,"source":"contracts/NFDInstance.algo.ts:583","pc":[2728,2729]},{"teal":2826,"source":"contracts/NFDInstance.algo.ts:583","pc":[2730,2731]},{"teal":2827,"source":"contracts/NFDInstance.algo.ts:583","pc":[2732]},{"teal":2830,"source":"contracts/NFDInstance.algo.ts:583","errorMessage":"payment sender must be same as purchase caller","pc":[2733]},{"teal":2835,"source":"contracts/NFDInstance.algo.ts:585","pc":[2734,2735]},{"teal":2836,"source":"contracts/NFDInstance.algo.ts:585","pc":[2736]},{"teal":2837,"source":"contracts/NFDInstance.algo.ts:585","pc":[2737]},{"teal":2838,"source":"contracts/NFDInstance.algo.ts:585","pc":[2738]},{"teal":2839,"source":"contracts/NFDInstance.algo.ts:585","pc":[2739,2740,2741]},{"teal":2847,"source":"contracts/NFDInstance.algo.ts:587","pc":[2742,2743]},{"teal":2848,"source":"contracts/NFDInstance.algo.ts:587","pc":[2744,2745]},{"teal":2849,"source":"contracts/NFDInstance.algo.ts:587","pc":[2746,2747]},{"teal":2850,"source":"contracts/NFDInstance.algo.ts:587","pc":[2748]},{"teal":2853,"source":"contracts/NFDInstance.algo.ts:586","errorMessage":"Reserved owner set, but sender isn't the reserved address","pc":[2749]},{"teal":2858,"source":"contracts/NFDInstance.algo.ts:594","pc":[2750,2751]},{"teal":2859,"source":"contracts/NFDInstance.algo.ts:594","pc":[2752,2753]},{"teal":2860,"source":"contracts/NFDInstance.algo.ts:594","pc":[2754,2755]},{"teal":2865,"source":"contracts/NFDInstance.algo.ts:599","pc":[2756,2757]},{"teal":2866,"source":"contracts/NFDInstance.algo.ts:599","pc":[2758,2759,2760]},{"teal":2867,"source":"contracts/NFDInstance.algo.ts:599","pc":[2761,2762]},{"teal":2868,"source":"contracts/NFDInstance.algo.ts:599","pc":[2763,2764]},{"teal":2869,"source":"contracts/NFDInstance.algo.ts:599","pc":[2765]},{"teal":2870,"source":"contracts/NFDInstance.algo.ts:599","pc":[2766,2767,2768]},{"teal":2875,"source":"contracts/NFDInstance.algo.ts:600","pc":[2769,2770]},{"teal":2876,"source":"contracts/NFDInstance.algo.ts:600","pc":[2771,2772]},{"teal":2877,"source":"contracts/NFDInstance.algo.ts:600","pc":[2773,2774,2775]},{"teal":2878,"source":"contracts/NFDInstance.algo.ts:600","pc":[2776]},{"teal":2879,"source":"contracts/NFDInstance.algo.ts:600","pc":[2777,2778]},{"teal":2885,"source":"contracts/NFDInstance.algo.ts:603","pc":[2779,2780]},{"teal":2886,"source":"contracts/NFDInstance.algo.ts:603","pc":[2781,2782,2783]},{"teal":2887,"source":"contracts/NFDInstance.algo.ts:603","pc":[2784]},{"teal":2888,"source":"contracts/NFDInstance.algo.ts:603","pc":[2785]},{"teal":2889,"source":"contracts/NFDInstance.algo.ts:603","pc":[2786]},{"teal":2890,"source":"contracts/NFDInstance.algo.ts:603","pc":[2787,2788,2789]},{"teal":2895,"source":"contracts/NFDInstance.algo.ts:604","pc":[2790,2791]},{"teal":2896,"source":"contracts/NFDInstance.algo.ts:604","pc":[2792,2793]},{"teal":2897,"source":"contracts/NFDInstance.algo.ts:604","pc":[2794]},{"teal":2900,"source":"contracts/NFDInstance.algo.ts:604","errorMessage":"offer must be at least min amount","pc":[2795]},{"teal":2905,"source":"contracts/NFDInstance.algo.ts:607","pc":[2796,2797]},{"teal":2906,"source":"contracts/NFDInstance.algo.ts:607","pc":[2798,2799]},{"teal":2907,"source":"contracts/NFDInstance.algo.ts:607","pc":[2800]},{"teal":2910,"source":"contracts/NFDInstance.algo.ts:607","errorMessage":"offer must be at least sell amount","pc":[2801]},{"teal":2914,"source":"contracts/NFDInstance.algo.ts:610","pc":[2802,2803]},{"teal":2915,"source":"contracts/NFDInstance.algo.ts:610","pc":[2804,2805]},{"teal":2916,"source":"contracts/NFDInstance.algo.ts:610","pc":[2806]},{"teal":2917,"source":"contracts/NFDInstance.algo.ts:610","pc":[2807,2808]},{"teal":2921,"source":"contracts/NFDInstance.algo.ts:611","pc":[2809,2810]},{"teal":2922,"source":"contracts/NFDInstance.algo.ts:611","pc":[2811,2812]},{"teal":2923,"source":"contracts/NFDInstance.algo.ts:611","pc":[2813]},{"teal":2924,"source":"contracts/NFDInstance.algo.ts:611","pc":[2814,2815]},{"teal":2929,"source":"contracts/NFDInstance.algo.ts:614","pc":[2816,2817]},{"teal":2930,"source":"contracts/NFDInstance.algo.ts:614","pc":[2818,2819]},{"teal":2931,"source":"contracts/NFDInstance.algo.ts:614","pc":[2820,2821]},{"teal":2932,"source":"contracts/NFDInstance.algo.ts:614","pc":[2822]},{"teal":2935,"source":"contracts/NFDInstance.algo.ts:614","errorMessage":"transaction verification failed: {\"txn\":\"payment\",\"field\":\"amount\",\"expected\":\"origOfferamt\"}","pc":[2823]},{"teal":2938,"source":"contracts/NFDInstance.algo.ts:614","pc":[2824,2825]},{"teal":2939,"source":"contracts/NFDInstance.algo.ts:614","pc":[2826,2827]},{"teal":2940,"source":"contracts/NFDInstance.algo.ts:614","pc":[2828,2829]},{"teal":2941,"source":"contracts/NFDInstance.algo.ts:614","pc":[2830]},{"teal":2944,"source":"contracts/NFDInstance.algo.ts:614","errorMessage":"transaction verification failed: {\"txn\":\"payment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}","pc":[2831]},{"teal":2948,"source":"contracts/NFDInstance.algo.ts:617","pc":[2832]},{"teal":2949,"source":"contracts/NFDInstance.algo.ts:617","pc":[2833,2834]},{"teal":2954,"source":"contracts/NFDInstance.algo.ts:618","pc":[2835,2836]},{"teal":2955,"source":"contracts/NFDInstance.algo.ts:618","pc":[2837,2838,2839]},{"teal":2956,"source":"contracts/NFDInstance.algo.ts:618","pc":[2840]},{"teal":2957,"source":"contracts/NFDInstance.algo.ts:618","pc":[2841]},{"teal":2958,"source":"contracts/NFDInstance.algo.ts:618","pc":[2842,2843,2844]},{"teal":2963,"source":"contracts/NFDInstance.algo.ts:620","pc":[2845]},{"teal":2964,"source":"contracts/NFDInstance.algo.ts:620","pc":[2846,2847]},{"teal":2965,"source":"contracts/NFDInstance.algo.ts:618","pc":[2848,2849,2850]},{"teal":2970,"source":"contracts/NFDInstance.algo.ts:624","pc":[2851,2852]},{"teal":2971,"source":"contracts/NFDInstance.algo.ts:624","pc":[2853,2854]},{"teal":2972,"source":"contracts/NFDInstance.algo.ts:624","pc":[2855,2856,2857]},{"teal":2973,"source":"contracts/NFDInstance.algo.ts:624","pc":[2858]},{"teal":2974,"source":"contracts/NFDInstance.algo.ts:624","pc":[2859,2860]},{"teal":2975,"source":"contracts/NFDInstance.algo.ts:624","pc":[2861]},{"teal":2976,"source":"contracts/NFDInstance.algo.ts:624","pc":[2862,2863]},{"teal":2981,"source":"contracts/NFDInstance.algo.ts:627","pc":[2864,2865]},{"teal":2982,"source":"contracts/NFDInstance.algo.ts:627","pc":[2866,2867]},{"teal":2986,"source":"contracts/NFDInstance.algo.ts:628","pc":[2868]},{"teal":2987,"source":"contracts/NFDInstance.algo.ts:628","pc":[2869,2870]},{"teal":2992,"source":"contracts/NFDInstance.algo.ts:629","pc":[2871,2872]},{"teal":2993,"source":"contracts/NFDInstance.algo.ts:629","pc":[2873]},{"teal":2994,"source":"contracts/NFDInstance.algo.ts:629","pc":[2874]},{"teal":2995,"source":"contracts/NFDInstance.algo.ts:629","pc":[2875,2876,2877]},{"teal":3000,"source":"contracts/NFDInstance.algo.ts:630","pc":[2878,2879]},{"teal":3001,"source":"contracts/NFDInstance.algo.ts:630","pc":[2880]},{"teal":3002,"source":"contracts/NFDInstance.algo.ts:630","pc":[2881]},{"teal":3003,"source":"contracts/NFDInstance.algo.ts:630","pc":[2882,2883]},{"teal":3010,"source":"contracts/NFDInstance.algo.ts:632","pc":[2884,2885]},{"teal":3011,"source":"contracts/NFDInstance.algo.ts:632","pc":[2886,2887]},{"teal":3012,"source":"contracts/NFDInstance.algo.ts:632","pc":[2888]},{"teal":3013,"source":"contracts/NFDInstance.algo.ts:632","pc":[2889]},{"teal":3014,"source":"contracts/NFDInstance.algo.ts:632","pc":[2890]},{"teal":3015,"source":"contracts/NFDInstance.algo.ts:632","pc":[2891,2892,2893]},{"teal":3016,"source":"contracts/NFDInstance.algo.ts:633","pc":[2894,2895]},{"teal":3017,"source":"contracts/NFDInstance.algo.ts:633","pc":[2896,2897]},{"teal":3018,"source":"contracts/NFDInstance.algo.ts:633","pc":[2898,2899]},{"teal":3019,"source":"contracts/NFDInstance.algo.ts:633","pc":[2900]},{"teal":3020,"source":"contracts/NFDInstance.algo.ts:632","pc":[2901]},{"teal":3023,"source":"contracts/NFDInstance.algo.ts:633","pc":[2902]},{"teal":3024,"source":"contracts/NFDInstance.algo.ts:633","pc":[2903,2904,2905]},{"teal":3025,"source":"contracts/NFDInstance.algo.ts:634","pc":[2906,2907]},{"teal":3026,"source":"contracts/NFDInstance.algo.ts:634","pc":[2908,2909]},{"teal":3027,"source":"contracts/NFDInstance.algo.ts:634","pc":[2910,2911,2912,2913,2914,2915,2916,2917,2918,2919,2920]},{"teal":3028,"source":"contracts/NFDInstance.algo.ts:634","pc":[2921]},{"teal":3029,"source":"contracts/NFDInstance.algo.ts:633","pc":[2922]},{"teal":3032,"source":"contracts/NFDInstance.algo.ts:631","pc":[2923,2924,2925]},{"teal":3037,"source":"contracts/NFDInstance.algo.ts:636","pc":[2926,2927]},{"teal":3038,"source":"contracts/NFDInstance.algo.ts:636","pc":[2928,2929]},{"teal":3039,"source":"contracts/NFDInstance.algo.ts:636","pc":[2930,2931]},{"teal":3043,"source":"contracts/NFDInstance.algo.ts:637","pc":[2932,2933]},{"teal":3044,"source":"contracts/NFDInstance.algo.ts:637","pc":[2934,2935]},{"teal":3045,"source":"contracts/NFDInstance.algo.ts:637","pc":[2936,2937]},{"teal":3060,"source":"contracts/NFDInstance.algo.ts:641","pc":[2938]},{"teal":3061,"source":"contracts/NFDInstance.algo.ts:641","pc":[2939,2940]},{"teal":3062,"source":"contracts/NFDInstance.algo.ts:641","pc":[2941,2942]},{"teal":3063,"source":"contracts/NFDInstance.algo.ts:641","pc":[2943,2944,2945,2946,2947,2948]},{"teal":3064,"source":"contracts/NFDInstance.algo.ts:641","pc":[2949,2950]},{"teal":3068,"source":"contracts/NFDInstance.algo.ts:642","pc":[2951,2952]},{"teal":3069,"source":"contracts/NFDInstance.algo.ts:642","pc":[2953,2954]},{"teal":3078,"source":"contracts/NFDInstance.algo.ts:644","pc":[2955,2956]},{"teal":3079,"source":"contracts/NFDInstance.algo.ts:644","pc":[2957]},{"teal":3080,"source":"contracts/NFDInstance.algo.ts:644","pc":[2958]},{"teal":3081,"source":"contracts/NFDInstance.algo.ts:644","pc":[2959]},{"teal":3082,"source":"contracts/NFDInstance.algo.ts:644","pc":[2960]},{"teal":3083,"source":"contracts/NFDInstance.algo.ts:644","pc":[2961,2962,2963]},{"teal":3084,"source":"contracts/NFDInstance.algo.ts:644","pc":[2964]},{"teal":3085,"source":"contracts/NFDInstance.algo.ts:644","pc":[2965]},{"teal":3086,"source":"contracts/NFDInstance.algo.ts:644","pc":[2966,2967]},{"teal":3087,"source":"contracts/NFDInstance.algo.ts:645","pc":[2968,2969,2970]},{"teal":3088,"source":"contracts/NFDInstance.algo.ts:645","pc":[2971]},{"teal":3089,"source":"contracts/NFDInstance.algo.ts:645","pc":[2972,2973]},{"teal":3090,"source":"contracts/NFDInstance.algo.ts:646","pc":[2974]},{"teal":3091,"source":"contracts/NFDInstance.algo.ts:646","pc":[2975]},{"teal":3092,"source":"contracts/NFDInstance.algo.ts:646","pc":[2976,2977]},{"teal":3093,"source":"contracts/NFDInstance.algo.ts:647","pc":[2978,2979]},{"teal":3094,"source":"contracts/NFDInstance.algo.ts:647","pc":[2980,2981]},{"teal":3097,"source":"contracts/NFDInstance.algo.ts:641","pc":[2982]},{"teal":3098,"source":"contracts/NFDInstance.algo.ts:641","pc":[2983,2984]},{"teal":3101,"source":"contracts/NFDInstance.algo.ts:641","pc":[2985]},{"teal":3115,"source":"contracts/NFDInstance.algo.ts:651","pc":[2986,2987,2988,2989,2990,2991]},{"teal":3116,"source":"contracts/NFDInstance.algo.ts:651","pc":[2992]},{"teal":3117,"source":"contracts/NFDInstance.algo.ts:651","pc":[2993]},{"teal":3118,"source":"contracts/NFDInstance.algo.ts:651","pc":[2994,2995,2996,2997]},{"teal":3119,"source":"contracts/NFDInstance.algo.ts:652","pc":[2998,2999,3000]},{"teal":3120,"source":"contracts/NFDInstance.algo.ts:652","pc":[3001]},{"teal":3121,"source":"contracts/NFDInstance.algo.ts:652","pc":[3002,3003,3004]},{"teal":3122,"source":"contracts/NFDInstance.algo.ts:653","pc":[3005,3006]},{"teal":3123,"source":"contracts/NFDInstance.algo.ts:653","pc":[3007]},{"teal":3124,"source":"contracts/NFDInstance.algo.ts:653","pc":[3008]},{"teal":3125,"source":"contracts/NFDInstance.algo.ts:653","pc":[3009]},{"teal":3126,"source":"contracts/NFDInstance.algo.ts:653","pc":[3010]},{"teal":3127,"source":"contracts/NFDInstance.algo.ts:653","pc":[3011,3012,3013]},{"teal":3128,"source":"contracts/NFDInstance.algo.ts:653","pc":[3014]},{"teal":3129,"source":"contracts/NFDInstance.algo.ts:653","pc":[3015]},{"teal":3130,"source":"contracts/NFDInstance.algo.ts:653","pc":[3016,3017,3018]},{"teal":3131,"source":"contracts/NFDInstance.algo.ts:654","pc":[3019]},{"teal":3132,"source":"contracts/NFDInstance.algo.ts:654","pc":[3020]},{"teal":3133,"source":"contracts/NFDInstance.algo.ts:654","pc":[3021,3022,3023]},{"teal":3134,"source":"contracts/NFDInstance.algo.ts:655","pc":[3024,3025]},{"teal":3135,"source":"contracts/NFDInstance.algo.ts:655","pc":[3026,3027,3028]},{"teal":3136,"source":"contracts/NFDInstance.algo.ts:656","pc":[3029,3030]},{"teal":3137,"source":"contracts/NFDInstance.algo.ts:656","pc":[3031]},{"teal":3138,"source":"contracts/NFDInstance.algo.ts:656","pc":[3032,3033,3034]},{"teal":3139,"source":"contracts/NFDInstance.algo.ts:657","pc":[3035,3036]},{"teal":3140,"source":"contracts/NFDInstance.algo.ts:657","pc":[3037]},{"teal":3141,"source":"contracts/NFDInstance.algo.ts:657","pc":[3038,3039,3040]},{"teal":3142,"source":"contracts/NFDInstance.algo.ts:658","pc":[3041,3042]},{"teal":3143,"source":"contracts/NFDInstance.algo.ts:658","pc":[3043]},{"teal":3144,"source":"contracts/NFDInstance.algo.ts:658","pc":[3044,3045,3046]},{"teal":3145,"source":"contracts/NFDInstance.algo.ts:659","pc":[3047,3048]},{"teal":3146,"source":"contracts/NFDInstance.algo.ts:659","pc":[3049,3050,3051]},{"teal":3147,"source":"contracts/NFDInstance.algo.ts:660","pc":[3052,3053]},{"teal":3148,"source":"contracts/NFDInstance.algo.ts:660","pc":[3054]},{"teal":3149,"source":"contracts/NFDInstance.algo.ts:660","pc":[3055,3056,3057]},{"teal":3150,"source":"contracts/NFDInstance.algo.ts:651","pc":[3058]},{"teal":3151,"source":"contracts/NFDInstance.algo.ts:651","pc":[3059]},{"teal":3152,"source":"contracts/NFDInstance.algo.ts:651","pc":[3060]},{"teal":3153,"source":"contracts/NFDInstance.algo.ts:651","pc":[3061]},{"teal":3158,"source":"contracts/NFDInstance.algo.ts:664","pc":[3062,3063]},{"teal":3159,"source":"contracts/NFDInstance.algo.ts:664","pc":[3064]},{"teal":3160,"source":"contracts/NFDInstance.algo.ts:664","pc":[3065]},{"teal":3161,"source":"contracts/NFDInstance.algo.ts:664","pc":[3066,3067,3068]},{"teal":3170,"source":"contracts/NFDInstance.algo.ts:665","pc":[3069]},{"teal":3171,"source":"contracts/NFDInstance.algo.ts:665","pc":[3070]},{"teal":3172,"source":"contracts/NFDInstance.algo.ts:665","pc":[3071,3072]},{"teal":3176,"source":"contracts/NFDInstance.algo.ts:666","pc":[3073,3074]},{"teal":3177,"source":"contracts/NFDInstance.algo.ts:666","pc":[3075,3076]},{"teal":3181,"source":"contracts/NFDInstance.algo.ts:667","pc":[3077,3078]},{"teal":3182,"source":"contracts/NFDInstance.algo.ts:667","pc":[3079,3080]},{"teal":3183,"source":"contracts/NFDInstance.algo.ts:667","pc":[3081,3082]},{"teal":3187,"source":"contracts/NFDInstance.algo.ts:668","pc":[3083,3084,3085,3086,3087,3088,3089,3090,3091,3092,3093,3094,3095,3096,3097,3098,3099,3100,3101]},{"teal":3188,"source":"contracts/NFDInstance.algo.ts:668","pc":[3102,3103]},{"teal":3191,"source":"contracts/NFDInstance.algo.ts:665","pc":[3104]},{"teal":3192,"source":"contracts/NFDInstance.algo.ts:665","pc":[3105,3106]},{"teal":3195,"source":"contracts/NFDInstance.algo.ts:665","pc":[3107]},{"teal":3206,"source":"contracts/NFDInstance.algo.ts:676","pc":[3108,3109]},{"teal":3207,"source":"contracts/NFDInstance.algo.ts:675","pc":[3110]},{"teal":3208,"source":"contracts/NFDInstance.algo.ts:674","pc":[3111,3112]},{"teal":3209,"source":"contracts/NFDInstance.algo.ts:673","pc":[3113,3114]},{"teal":3210,"source":"contracts/NFDInstance.algo.ts:673","pc":[3115]},{"teal":3211,"source":"contracts/NFDInstance.algo.ts:672","pc":[3116,3117]},{"teal":3212,"source":"contracts/NFDInstance.algo.ts:671","pc":[3118,3119,3120]},{"teal":3216,"source":"contracts/NFDInstance.algo.ts:679","pc":[3121]},{"teal":3217,"source":"contracts/NFDInstance.algo.ts:679","pc":[3122,3123]},{"teal":3218,"source":"contracts/NFDInstance.algo.ts:679","pc":[3124,3125]},{"teal":3219,"source":"contracts/NFDInstance.algo.ts:679","pc":[3126]},{"teal":3220,"source":"contracts/NFDInstance.algo.ts:679","pc":[3127,3128]},{"teal":3221,"source":"contracts/NFDInstance.algo.ts:679","pc":[3129,3130]},{"teal":3222,"source":"contracts/NFDInstance.algo.ts:679","pc":[3131]},{"teal":3223,"source":"contracts/NFDInstance.algo.ts:679","pc":[3132,3133]},{"teal":3224,"source":"contracts/NFDInstance.algo.ts:679","pc":[3134,3135]},{"teal":3225,"source":"contracts/NFDInstance.algo.ts:679","pc":[3136,3137]},{"teal":3226,"source":"contracts/NFDInstance.algo.ts:679","pc":[3138,3139]},{"teal":3227,"source":"contracts/NFDInstance.algo.ts:679","pc":[3140]},{"teal":3232,"source":"contracts/NFDInstance.algo.ts:684","pc":[3141,3142]},{"teal":3233,"source":"contracts/NFDInstance.algo.ts:684","pc":[3143,3144,3145]},{"teal":3234,"source":"contracts/NFDInstance.algo.ts:684","pc":[3146]},{"teal":3235,"source":"contracts/NFDInstance.algo.ts:684","pc":[3147]},{"teal":3236,"source":"contracts/NFDInstance.algo.ts:684","pc":[3148]},{"teal":3237,"source":"contracts/NFDInstance.algo.ts:684","pc":[3149,3150,3151]},{"teal":3244,"source":"contracts/NFDInstance.algo.ts:686","pc":[3152,3153]},{"teal":3245,"source":"contracts/NFDInstance.algo.ts:686","pc":[3154]},{"teal":3246,"source":"contracts/NFDInstance.algo.ts:686","pc":[3155,3156]},{"teal":3247,"source":"contracts/NFDInstance.algo.ts:686","pc":[3157,3158]},{"teal":3248,"source":"contracts/NFDInstance.algo.ts:686","pc":[3159]},{"teal":3249,"source":"contracts/NFDInstance.algo.ts:686","pc":[3160]},{"teal":3250,"source":"contracts/NFDInstance.algo.ts:686","pc":[3161,3162,3163]},{"teal":3251,"source":"contracts/NFDInstance.algo.ts:687","pc":[3164]},{"teal":3252,"source":"contracts/NFDInstance.algo.ts:687","pc":[3165,3166,3167]},{"teal":3253,"source":"contracts/NFDInstance.algo.ts:687","pc":[3168]},{"teal":3254,"source":"contracts/NFDInstance.algo.ts:687","pc":[3169]},{"teal":3255,"source":"contracts/NFDInstance.algo.ts:687","pc":[3170]},{"teal":3256,"source":"contracts/NFDInstance.algo.ts:686","pc":[3171]},{"teal":3259,"source":"contracts/NFDInstance.algo.ts:685","pc":[3172,3173,3174]},{"teal":3268,"source":"contracts/NFDInstance.algo.ts:689","pc":[3175]},{"teal":3269,"source":"contracts/NFDInstance.algo.ts:689","pc":[3176]},{"teal":3270,"source":"contracts/NFDInstance.algo.ts:689","pc":[3177,3178]},{"teal":3274,"source":"contracts/NFDInstance.algo.ts:690","pc":[3179,3180]},{"teal":3275,"source":"contracts/NFDInstance.algo.ts:690","pc":[3181,3182,3183]},{"teal":3276,"source":"contracts/NFDInstance.algo.ts:690","pc":[3184,3185]},{"teal":3280,"source":"contracts/NFDInstance.algo.ts:691","pc":[3186,3187]},{"teal":3281,"source":"contracts/NFDInstance.algo.ts:691","pc":[3188]},{"teal":3282,"source":"contracts/NFDInstance.algo.ts:691","pc":[3189,3190]},{"teal":3286,"source":"contracts/NFDInstance.algo.ts:692","pc":[3191,3192,3193,3194,3195,3196,3197,3198,3199,3200,3201,3202,3203,3204]},{"teal":3287,"source":"contracts/NFDInstance.algo.ts:692","pc":[3205,3206]},{"teal":3290,"source":"contracts/NFDInstance.algo.ts:689","pc":[3207]},{"teal":3291,"source":"contracts/NFDInstance.algo.ts:689","pc":[3208,3209]},{"teal":3294,"source":"contracts/NFDInstance.algo.ts:689","pc":[3210]},{"teal":3301,"source":"contracts/NFDInstance.algo.ts:698","pc":[3211,3212]},{"teal":3302,"source":"contracts/NFDInstance.algo.ts:698","pc":[3213]},{"teal":3303,"source":"contracts/NFDInstance.algo.ts:698","pc":[3214]},{"teal":3304,"source":"contracts/NFDInstance.algo.ts:698","pc":[3215,3216,3217]},{"teal":3308,"source":"contracts/NFDInstance.algo.ts:711","pc":[3218]},{"teal":3309,"source":"contracts/NFDInstance.algo.ts:711","pc":[3219,3220]},{"teal":3310,"source":"contracts/NFDInstance.algo.ts:711","pc":[3221]},{"teal":3314,"source":"contracts/NFDInstance.algo.ts:712","pc":[3222,3223]},{"teal":3315,"source":"contracts/NFDInstance.algo.ts:712","pc":[3224,3225]},{"teal":3316,"source":"contracts/NFDInstance.algo.ts:712","pc":[3226]},{"teal":3321,"source":"contracts/NFDInstance.algo.ts:713","pc":[3227,3228]},{"teal":3322,"source":"contracts/NFDInstance.algo.ts:713","pc":[3229,3230]},{"teal":3323,"source":"contracts/NFDInstance.algo.ts:713","pc":[3231,3232,3233]},{"teal":3324,"source":"contracts/NFDInstance.algo.ts:713","pc":[3234]},{"teal":3325,"source":"contracts/NFDInstance.algo.ts:713","pc":[3235,3236,3237]},{"teal":3330,"source":"contracts/NFDInstance.algo.ts:714","pc":[3238,3239]},{"teal":3331,"source":"contracts/NFDInstance.algo.ts:714","pc":[3240,3241]},{"teal":3332,"source":"contracts/NFDInstance.algo.ts:714","pc":[3242]},{"teal":3333,"source":"contracts/NFDInstance.algo.ts:714","pc":[3243]},{"teal":3338,"source":"contracts/NFDInstance.algo.ts:716","pc":[3244]},{"teal":3339,"source":"contracts/NFDInstance.algo.ts:716","pc":[3245,3246]},{"teal":3340,"source":"contracts/NFDInstance.algo.ts:716","pc":[3247]},{"teal":3341,"source":"contracts/NFDInstance.algo.ts:716","pc":[3248]},{"teal":3345,"source":"contracts/NFDInstance.algo.ts:717","pc":[3249,3250]},{"teal":3346,"source":"contracts/NFDInstance.algo.ts:717","pc":[3251,3252]},{"teal":3347,"source":"contracts/NFDInstance.algo.ts:717","pc":[3253]},{"teal":3348,"source":"contracts/NFDInstance.algo.ts:717","pc":[3254]},{"teal":3352,"source":"contracts/NFDInstance.algo.ts:718","pc":[3255]},{"teal":3353,"source":"contracts/NFDInstance.algo.ts:718","pc":[3256]},{"teal":3357,"source":"contracts/NFDInstance.algo.ts:719","pc":[3257,3258]},{"teal":3358,"source":"contracts/NFDInstance.algo.ts:719","pc":[3259]},{"teal":3362,"source":"contracts/NFDInstance.algo.ts:720","pc":[3260,3261]},{"teal":3363,"source":"contracts/NFDInstance.algo.ts:720","pc":[3262]},{"teal":3367,"source":"contracts/NFDInstance.algo.ts:721","pc":[3263,3264]},{"teal":3368,"source":"contracts/NFDInstance.algo.ts:721","pc":[3265]},{"teal":3372,"source":"contracts/NFDInstance.algo.ts:722","pc":[3266,3267]},{"teal":3373,"source":"contracts/NFDInstance.algo.ts:722","pc":[3268]},{"teal":3377,"source":"contracts/NFDInstance.algo.ts:723","pc":[3269,3270]},{"teal":3378,"source":"contracts/NFDInstance.algo.ts:723","pc":[3271]},{"teal":3382,"source":"contracts/NFDInstance.algo.ts:725","pc":[3272,3273]},{"teal":3383,"source":"contracts/NFDInstance.algo.ts:725","pc":[3274,3275]},{"teal":3384,"source":"contracts/NFDInstance.algo.ts:725","pc":[3276]},{"teal":3388,"source":"contracts/NFDInstance.algo.ts:726","pc":[3277,3278]},{"teal":3389,"source":"contracts/NFDInstance.algo.ts:726","pc":[3279]},{"teal":3390,"source":"contracts/NFDInstance.algo.ts:726","pc":[3280]},{"teal":3391,"source":"contracts/NFDInstance.algo.ts:573","pc":[3281]},{"teal":3396,"source":"contracts/NFDInstance.algo.ts:729","pc":[3282,3283]},{"teal":3399,"source":"contracts/NFDInstance.algo.ts:730","pc":[3284,3285,3286]},{"teal":3400,"source":"contracts/NFDInstance.algo.ts:730","pc":[3287]},{"teal":3401,"source":"contracts/NFDInstance.algo.ts:730","pc":[3288]},{"teal":3402,"source":"contracts/NFDInstance.algo.ts:730","pc":[3289]},{"teal":3403,"source":"contracts/NFDInstance.algo.ts:730","pc":[3290]},{"teal":3406,"source":"contracts/NFDInstance.algo.ts:730","errorMessage":"argument 0 (address) for isAddressInField must be a address","pc":[3291]},{"teal":3409,"source":"contracts/NFDInstance.algo.ts:730","pc":[3292,3293,3294]},{"teal":3410,"source":"contracts/NFDInstance.algo.ts:730","pc":[3295,3296,3297]},{"teal":3413,"source":"contracts/NFDInstance.algo.ts:729","pc":[3298,3299,3300]},{"teal":3414,"source":"contracts/NFDInstance.algo.ts:729","pc":[3301,3302]},{"teal":3415,"source":"contracts/NFDInstance.algo.ts:729","pc":[3303]},{"teal":3416,"source":"contracts/NFDInstance.algo.ts:729","pc":[3304,3305]},{"teal":3417,"source":"contracts/NFDInstance.algo.ts:729","pc":[3306]},{"teal":3418,"source":"contracts/NFDInstance.algo.ts:729","pc":[3307]},{"teal":3419,"source":"contracts/NFDInstance.algo.ts:729","pc":[3308]},{"teal":3420,"source":"contracts/NFDInstance.algo.ts:729","pc":[3309]},{"teal":3421,"source":"contracts/NFDInstance.algo.ts:729","pc":[3310]},{"teal":3425,"source":"contracts/NFDInstance.algo.ts:729","pc":[3311,3312,3313]},{"teal":3429,"source":"contracts/NFDInstance.algo.ts:731","pc":[3314,3315]},{"teal":3430,"source":"contracts/NFDInstance.algo.ts:731","pc":[3316,3317]},{"teal":3431,"source":"contracts/NFDInstance.algo.ts:731","pc":[3318]},{"teal":3432,"source":"contracts/NFDInstance.algo.ts:731","pc":[3319]},{"teal":3437,"source":"contracts/NFDInstance.algo.ts:732","pc":[3320,3321]},{"teal":3438,"source":"contracts/NFDInstance.algo.ts:732","pc":[3322]},{"teal":3439,"source":"contracts/NFDInstance.algo.ts:732","pc":[3323]},{"teal":3440,"source":"contracts/NFDInstance.algo.ts:732","pc":[3324]},{"teal":3441,"source":"contracts/NFDInstance.algo.ts:732","pc":[3325]},{"teal":3442,"source":"contracts/NFDInstance.algo.ts:732","pc":[3326,3327,3328]},{"teal":3447,"source":"contracts/NFDInstance.algo.ts:733","pc":[3329]},{"teal":3448,"source":"contracts/NFDInstance.algo.ts:733","pc":[3330]},{"teal":3453,"source":"contracts/NFDInstance.algo.ts:735","pc":[3331,3332]},{"teal":3454,"source":"contracts/NFDInstance.algo.ts:735","pc":[3333,3334]},{"teal":3455,"source":"contracts/NFDInstance.algo.ts:735","pc":[3335]},{"teal":3458,"source":"contracts/NFDInstance.algo.ts:735","errorMessage":"box value does not exist: this.boxes(fieldName).value","pc":[3336]},{"teal":3459,"source":"contracts/NFDInstance.algo.ts:735","pc":[3337,3338,3339]},{"teal":3460,"source":"contracts/NFDInstance.algo.ts:729","pc":[3340]},{"teal":3464,"source":"contracts/NFDInstance.algo.ts:797","pc":[3341,3342,3343]},{"teal":3467,"source":"contracts/NFDInstance.algo.ts:797","pc":[3344]},{"teal":3475,"source":"contracts/NFDInstance.algo.ts:806","pc":[3345]},{"teal":3476,"source":"contracts/NFDInstance.algo.ts:806","pc":[3346]},{"teal":3477,"source":"contracts/NFDInstance.algo.ts:806","pc":[3347,3348]},{"teal":3481,"source":"contracts/NFDInstance.algo.ts:807","pc":[3349,3350]},{"teal":3482,"source":"contracts/NFDInstance.algo.ts:807","pc":[3351,3352]},{"teal":3483,"source":"contracts/NFDInstance.algo.ts:807","pc":[3353]},{"teal":3484,"source":"contracts/NFDInstance.algo.ts:807","pc":[3354,3355]},{"teal":3488,"source":"contracts/NFDInstance.algo.ts:808","pc":[3356,3357]},{"teal":3489,"source":"contracts/NFDInstance.algo.ts:808","pc":[3358,3359]},{"teal":3493,"source":"contracts/NFDInstance.algo.ts:809","pc":[3360,3361,3362,3363,3364,3365,3366,3367]},{"teal":3494,"source":"contracts/NFDInstance.algo.ts:809","pc":[3368,3369]},{"teal":3497,"source":"contracts/NFDInstance.algo.ts:806","pc":[3370]},{"teal":3498,"source":"contracts/NFDInstance.algo.ts:806","pc":[3371,3372]},{"teal":3501,"source":"contracts/NFDInstance.algo.ts:806","pc":[3373]},{"teal":3505,"source":"contracts/NFDInstance.algo.ts:811","pc":[3374,3375]},{"teal":3506,"source":"contracts/NFDInstance.algo.ts:811","pc":[3376,3377]},{"teal":3511,"source":"contracts/NFDInstance.algo.ts:814","pc":[3378,3379]},{"teal":3512,"source":"contracts/NFDInstance.algo.ts:814","pc":[3380,3381,3382]},{"teal":3513,"source":"contracts/NFDInstance.algo.ts:814","pc":[3383]},{"teal":3514,"source":"contracts/NFDInstance.algo.ts:814","pc":[3384]},{"teal":3515,"source":"contracts/NFDInstance.algo.ts:814","pc":[3385]},{"teal":3516,"source":"contracts/NFDInstance.algo.ts:814","pc":[3386,3387,3388]},{"teal":3521,"source":"contracts/NFDInstance.algo.ts:815","pc":[3389,3390]},{"teal":3522,"source":"contracts/NFDInstance.algo.ts:815","pc":[3391]},{"teal":3523,"source":"contracts/NFDInstance.algo.ts:815","pc":[3392,3393]},{"teal":3531,"source":"contracts/NFDInstance.algo.ts:816","pc":[3394]},{"teal":3532,"source":"contracts/NFDInstance.algo.ts:816","pc":[3395]},{"teal":3533,"source":"contracts/NFDInstance.algo.ts:816","pc":[3396,3397]},{"teal":3537,"source":"contracts/NFDInstance.algo.ts:817","pc":[3398,3399]},{"teal":3538,"source":"contracts/NFDInstance.algo.ts:817","pc":[3400,3401]},{"teal":3542,"source":"contracts/NFDInstance.algo.ts:818","pc":[3402,3403]},{"teal":3543,"source":"contracts/NFDInstance.algo.ts:818","pc":[3404,3405]},{"teal":3547,"source":"contracts/NFDInstance.algo.ts:819","pc":[3406,3407,3408,3409,3410,3411,3412,3413,3414,3415,3416,3417]},{"teal":3548,"source":"contracts/NFDInstance.algo.ts:819","pc":[3418,3419]},{"teal":3551,"source":"contracts/NFDInstance.algo.ts:816","pc":[3420]},{"teal":3552,"source":"contracts/NFDInstance.algo.ts:816","pc":[3421,3422]},{"teal":3555,"source":"contracts/NFDInstance.algo.ts:816","pc":[3423]},{"teal":3560,"source":"contracts/NFDInstance.algo.ts:825","pc":[3424,3425]},{"teal":3561,"source":"contracts/NFDInstance.algo.ts:825","pc":[3426,3427,3428]},{"teal":3562,"source":"contracts/NFDInstance.algo.ts:825","pc":[3429]},{"teal":3563,"source":"contracts/NFDInstance.algo.ts:825","pc":[3430]},{"teal":3564,"source":"contracts/NFDInstance.algo.ts:825","pc":[3431]},{"teal":3565,"source":"contracts/NFDInstance.algo.ts:825","pc":[3432,3433,3434]},{"teal":3570,"source":"contracts/NFDInstance.algo.ts:826","pc":[3435,3436]},{"teal":3571,"source":"contracts/NFDInstance.algo.ts:826","pc":[3437]},{"teal":3575,"source":"contracts/NFDInstance.algo.ts:827","pc":[3438,3439]},{"teal":3576,"source":"contracts/NFDInstance.algo.ts:827","pc":[3440]},{"teal":3577,"source":"contracts/NFDInstance.algo.ts:825","pc":[3441,3442,3443]},{"teal":3582,"source":"contracts/NFDInstance.algo.ts:829","pc":[3444,3445]},{"teal":3583,"source":"contracts/NFDInstance.algo.ts:829","pc":[3446,3447]},{"teal":3584,"source":"contracts/NFDInstance.algo.ts:829","pc":[3448]},{"teal":3585,"source":"contracts/NFDInstance.algo.ts:829","pc":[3449]},{"teal":3589,"source":"contracts/NFDInstance.algo.ts:830","pc":[3450,3451]},{"teal":3590,"source":"contracts/NFDInstance.algo.ts:830","pc":[3452,3453]},{"teal":3591,"source":"contracts/NFDInstance.algo.ts:830","pc":[3454]},{"teal":3592,"source":"contracts/NFDInstance.algo.ts:830","pc":[3455]},{"teal":3596,"source":"contracts/NFDInstance.algo.ts:831","pc":[3456,3457]},{"teal":3597,"source":"contracts/NFDInstance.algo.ts:831","pc":[3458]},{"teal":3601,"source":"contracts/NFDInstance.algo.ts:832","pc":[3459,3460]},{"teal":3602,"source":"contracts/NFDInstance.algo.ts:832","pc":[3461]},{"teal":3610,"source":"contracts/NFDInstance.algo.ts:838","pc":[3462,3463]},{"teal":3611,"source":"contracts/NFDInstance.algo.ts:838","pc":[3464]},{"teal":3612,"source":"contracts/NFDInstance.algo.ts:838","pc":[3465]},{"teal":3613,"source":"contracts/NFDInstance.algo.ts:838","pc":[3466,3467,3468]},{"teal":3622,"source":"contracts/NFDInstance.algo.ts:839","pc":[3469]},{"teal":3623,"source":"contracts/NFDInstance.algo.ts:839","pc":[3470]},{"teal":3624,"source":"contracts/NFDInstance.algo.ts:839","pc":[3471,3472]},{"teal":3628,"source":"contracts/NFDInstance.algo.ts:840","pc":[3473,3474]},{"teal":3629,"source":"contracts/NFDInstance.algo.ts:840","pc":[3475,3476]},{"teal":3633,"source":"contracts/NFDInstance.algo.ts:841","pc":[3477,3478]},{"teal":3634,"source":"contracts/NFDInstance.algo.ts:841","pc":[3479,3480]},{"teal":3638,"source":"contracts/NFDInstance.algo.ts:842","pc":[3481,3482,3483,3484,3485,3486,3487,3488,3489]},{"teal":3639,"source":"contracts/NFDInstance.algo.ts:842","pc":[3490,3491]},{"teal":3642,"source":"contracts/NFDInstance.algo.ts:839","pc":[3492]},{"teal":3643,"source":"contracts/NFDInstance.algo.ts:839","pc":[3493,3494]},{"teal":3646,"source":"contracts/NFDInstance.algo.ts:839","pc":[3495]},{"teal":3649,"source":"contracts/NFDInstance.algo.ts:797","pc":[3496]},{"teal":3654,"source":"contracts/NFDInstance.algo.ts:848","pc":[3497,3498]},{"teal":3657,"source":"contracts/NFDInstance.algo.ts:848","pc":[3499,3500,3501]},{"teal":3658,"source":"contracts/NFDInstance.algo.ts:848","pc":[3502]},{"teal":3659,"source":"contracts/NFDInstance.algo.ts:848","pc":[3503]},{"teal":3660,"source":"contracts/NFDInstance.algo.ts:848","pc":[3504]},{"teal":3661,"source":"contracts/NFDInstance.algo.ts:848","pc":[3505]},{"teal":3662,"source":"contracts/NFDInstance.algo.ts:848","pc":[3506]},{"teal":3666,"source":"contracts/NFDInstance.algo.ts:848","pc":[3507,3508,3509]},{"teal":3670,"source":"contracts/NFDInstance.algo.ts:850","pc":[3510,3511]},{"teal":3671,"source":"contracts/NFDInstance.algo.ts:850","pc":[3512,3513,3514]},{"teal":3672,"source":"contracts/NFDInstance.algo.ts:850","pc":[3515,3516]},{"teal":3673,"source":"contracts/NFDInstance.algo.ts:850","pc":[3517,3518]},{"teal":3674,"source":"contracts/NFDInstance.algo.ts:850","pc":[3519,3520,3521]},{"teal":3675,"source":"contracts/NFDInstance.algo.ts:850","pc":[3522]},{"teal":3676,"source":"contracts/NFDInstance.algo.ts:848","pc":[3523]},{"teal":3681,"source":"contracts/NFDInstance.algo.ts:855","pc":[3524,3525,3526]},{"teal":3682,"source":"contracts/NFDInstance.algo.ts:855","pc":[3527,3528,3529]},{"teal":3685,"source":"contracts/NFDInstance.algo.ts:855","pc":[3530,3531,3532]},{"teal":3686,"source":"contracts/NFDInstance.algo.ts:855","pc":[3533]},{"teal":3687,"source":"contracts/NFDInstance.algo.ts:855","pc":[3534]},{"teal":3691,"source":"contracts/NFDInstance.algo.ts:855","pc":[3535,3536,3537]},{"teal":3698,"source":"contracts/NFDInstance.algo.ts:857","pc":[3538,3539]},{"teal":3699,"source":"contracts/NFDInstance.algo.ts:857","pc":[3540]},{"teal":3700,"source":"contracts/NFDInstance.algo.ts:857","pc":[3541]},{"teal":3701,"source":"contracts/NFDInstance.algo.ts:857","pc":[3542]},{"teal":3702,"source":"contracts/NFDInstance.algo.ts:857","pc":[3543]},{"teal":3703,"source":"contracts/NFDInstance.algo.ts:857","pc":[3544,3545,3546]},{"teal":3704,"source":"contracts/NFDInstance.algo.ts:857","pc":[3547,3548]},{"teal":3705,"source":"contracts/NFDInstance.algo.ts:857","pc":[3549,3550]},{"teal":3706,"source":"contracts/NFDInstance.algo.ts:857","pc":[3551]},{"teal":3707,"source":"contracts/NFDInstance.algo.ts:857","pc":[3552]},{"teal":3711,"source":"contracts/NFDInstance.algo.ts:856","errorMessage":"must pass 32-byte hash that isn't 0","pc":[3553]},{"teal":3718,"source":"contracts/NFDInstance.algo.ts:862","pc":[3554,3555]},{"teal":3719,"source":"contracts/NFDInstance.algo.ts:862","pc":[3556]},{"teal":3720,"source":"contracts/NFDInstance.algo.ts:862","pc":[3557]},{"teal":3721,"source":"contracts/NFDInstance.algo.ts:862","pc":[3558]},{"teal":3722,"source":"contracts/NFDInstance.algo.ts:862","pc":[3559]},{"teal":3723,"source":"contracts/NFDInstance.algo.ts:862","pc":[3560,3561,3562]},{"teal":3724,"source":"contracts/NFDInstance.algo.ts:862","pc":[3563,3564,3565]},{"teal":3725,"source":"contracts/NFDInstance.algo.ts:862","pc":[3566]},{"teal":3729,"source":"contracts/NFDInstance.algo.ts:861","errorMessage":"only txnlab or owner can request an nfd nft hash update","pc":[3567]},{"teal":3738,"source":"contracts/NFDInstance.algo.ts:865","pc":[3568]},{"teal":3739,"source":"contracts/NFDInstance.algo.ts:865","pc":[3569,3570]},{"teal":3740,"source":"contracts/NFDInstance.algo.ts:865","pc":[3571,3572]},{"teal":3744,"source":"contracts/NFDInstance.algo.ts:866","pc":[3573,3574]},{"teal":3745,"source":"contracts/NFDInstance.algo.ts:866","pc":[3575]},{"teal":3746,"source":"contracts/NFDInstance.algo.ts:866","pc":[3576]},{"teal":3747,"source":"contracts/NFDInstance.algo.ts:866","pc":[3577,3578]},{"teal":3751,"source":"contracts/NFDInstance.algo.ts:867","pc":[3579,3580]},{"teal":3752,"source":"contracts/NFDInstance.algo.ts:867","pc":[3581,3582]},{"teal":3756,"source":"contracts/NFDInstance.algo.ts:868","pc":[3583,3584]},{"teal":3757,"source":"contracts/NFDInstance.algo.ts:868","pc":[3585,3586]},{"teal":3761,"source":"contracts/NFDInstance.algo.ts:869","pc":[3587,3588]},{"teal":3762,"source":"contracts/NFDInstance.algo.ts:869","pc":[3589,3590]},{"teal":3765,"source":"contracts/NFDInstance.algo.ts:865","pc":[3591]},{"teal":3766,"source":"contracts/NFDInstance.algo.ts:865","pc":[3592,3593]},{"teal":3769,"source":"contracts/NFDInstance.algo.ts:865","pc":[3594]},{"teal":3770,"source":"contracts/NFDInstance.algo.ts:855","pc":[3595]},{"teal":3775,"source":"contracts/NFDInstance.algo.ts:876","pc":[3596,3597,3598]},{"teal":3776,"source":"contracts/NFDInstance.algo.ts:876","pc":[3599]},{"teal":3777,"source":"contracts/NFDInstance.algo.ts:876","pc":[3600]},{"teal":3778,"source":"contracts/NFDInstance.algo.ts:876","pc":[3601]},{"teal":3779,"source":"contracts/NFDInstance.algo.ts:876","pc":[3602]},{"teal":3782,"source":"contracts/NFDInstance.algo.ts:876","errorMessage":"argument 0 (lock) for contractLock must be a bool","pc":[3603]},{"teal":3783,"source":"contracts/NFDInstance.algo.ts:876","pc":[3604]},{"teal":3784,"source":"contracts/NFDInstance.algo.ts:876","pc":[3605]},{"teal":3787,"source":"contracts/NFDInstance.algo.ts:876","pc":[3606,3607,3608]},{"teal":3788,"source":"contracts/NFDInstance.algo.ts:876","pc":[3609]},{"teal":3789,"source":"contracts/NFDInstance.algo.ts:876","pc":[3610]},{"teal":3793,"source":"contracts/NFDInstance.algo.ts:876","pc":[3611,3612,3613]},{"teal":3797,"source":"contracts/NFDInstance.algo.ts:877","pc":[3614,3615,3616]},{"teal":3801,"source":"contracts/NFDInstance.algo.ts:878","pc":[3617]},{"teal":3802,"source":"contracts/NFDInstance.algo.ts:878","pc":[3618,3619]},{"teal":3803,"source":"contracts/NFDInstance.algo.ts:878","pc":[3620]},{"teal":3804,"source":"contracts/NFDInstance.algo.ts:878","pc":[3621]},{"teal":3808,"source":"contracts/NFDInstance.algo.ts:879","pc":[3622,3623]},{"teal":3809,"source":"contracts/NFDInstance.algo.ts:879","pc":[3624,3625]},{"teal":3810,"source":"contracts/NFDInstance.algo.ts:879","pc":[3626,3627,3628]},{"teal":3811,"source":"contracts/NFDInstance.algo.ts:879","pc":[3629,3630]},{"teal":3812,"source":"contracts/NFDInstance.algo.ts:879","pc":[3631,3632,3633]},{"teal":3815,"source":"contracts/NFDInstance.algo.ts:879","pc":[3634,3635]},{"teal":3818,"source":"contracts/NFDInstance.algo.ts:879","pc":[3636]},{"teal":3819,"source":"contracts/NFDInstance.algo.ts:876","pc":[3637]},{"teal":3824,"source":"contracts/NFDInstance.algo.ts:884","pc":[3638,3639,3640]},{"teal":3825,"source":"contracts/NFDInstance.algo.ts:884","pc":[3641]},{"teal":3828,"source":"contracts/NFDInstance.algo.ts:884","pc":[3642,3643,3644]},{"teal":3829,"source":"contracts/NFDInstance.algo.ts:884","pc":[3645]},{"teal":3830,"source":"contracts/NFDInstance.algo.ts:884","pc":[3646]},{"teal":3831,"source":"contracts/NFDInstance.algo.ts:884","pc":[3647]},{"teal":3832,"source":"contracts/NFDInstance.algo.ts:884","pc":[3648]},{"teal":3835,"source":"contracts/NFDInstance.algo.ts:884","errorMessage":"argument 1 (lock) for segmentLock must be a bool","pc":[3649]},{"teal":3836,"source":"contracts/NFDInstance.algo.ts:884","pc":[3650]},{"teal":3837,"source":"contracts/NFDInstance.algo.ts:884","pc":[3651]},{"teal":3840,"source":"contracts/NFDInstance.algo.ts:884","pc":[3652,3653,3654]},{"teal":3841,"source":"contracts/NFDInstance.algo.ts:884","pc":[3655]},{"teal":3842,"source":"contracts/NFDInstance.algo.ts:884","pc":[3656]},{"teal":3846,"source":"contracts/NFDInstance.algo.ts:884","pc":[3657,3658,3659]},{"teal":3849,"source":"contracts/NFDInstance.algo.ts:884","pc":[3660]},{"teal":3853,"source":"contracts/NFDInstance.algo.ts:885","pc":[3661,3662,3663]},{"teal":3857,"source":"contracts/NFDInstance.algo.ts:886","pc":[3664]},{"teal":3858,"source":"contracts/NFDInstance.algo.ts:886","pc":[3665,3666]},{"teal":3859,"source":"contracts/NFDInstance.algo.ts:886","pc":[3667]},{"teal":3860,"source":"contracts/NFDInstance.algo.ts:886","pc":[3668]},{"teal":3864,"source":"contracts/NFDInstance.algo.ts:887","pc":[3669,3670]},{"teal":3865,"source":"contracts/NFDInstance.algo.ts:887","pc":[3671,3672]},{"teal":3866,"source":"contracts/NFDInstance.algo.ts:887","pc":[3673,3674,3675]},{"teal":3867,"source":"contracts/NFDInstance.algo.ts:887","pc":[3676,3677]},{"teal":3868,"source":"contracts/NFDInstance.algo.ts:887","pc":[3678,3679,3680]},{"teal":3871,"source":"contracts/NFDInstance.algo.ts:887","pc":[3681,3682]},{"teal":3874,"source":"contracts/NFDInstance.algo.ts:887","pc":[3683]},{"teal":3879,"source":"contracts/NFDInstance.algo.ts:888","pc":[3684,3685]},{"teal":3880,"source":"contracts/NFDInstance.algo.ts:888","pc":[3686,3687,3688]},{"teal":3885,"source":"contracts/NFDInstance.algo.ts:889","pc":[3689,3690]},{"teal":3886,"source":"contracts/NFDInstance.algo.ts:889","pc":[3691]},{"teal":3887,"source":"contracts/NFDInstance.algo.ts:888","pc":[3692,3693,3694]},{"teal":3894,"source":"contracts/NFDInstance.algo.ts:892","pc":[3695]},{"teal":3895,"source":"contracts/NFDInstance.algo.ts:892","pc":[3696,3697]},{"teal":3896,"source":"contracts/NFDInstance.algo.ts:892","pc":[3698,3699]},{"teal":3897,"source":"contracts/NFDInstance.algo.ts:892","pc":[3700,3701]},{"teal":3898,"source":"contracts/NFDInstance.algo.ts:892","pc":[3702,3703]},{"teal":3902,"source":"contracts/NFDInstance.algo.ts:893","pc":[3704,3705]},{"teal":3903,"source":"contracts/NFDInstance.algo.ts:893","pc":[3706,3707]},{"teal":3906,"source":"contracts/NFDInstance.algo.ts:892","pc":[3708]},{"teal":3907,"source":"contracts/NFDInstance.algo.ts:892","pc":[3709,3710]},{"teal":3910,"source":"contracts/NFDInstance.algo.ts:892","pc":[3711]},{"teal":3911,"source":"contracts/NFDInstance.algo.ts:892","pc":[3712,3713]},{"teal":3912,"source":"contracts/NFDInstance.algo.ts:892","pc":[3714]},{"teal":3913,"source":"contracts/NFDInstance.algo.ts:892","pc":[3715]},{"teal":3914,"source":"contracts/NFDInstance.algo.ts:892","pc":[3716,3717]},{"teal":3915,"source":"contracts/NFDInstance.algo.ts:892","pc":[3718,3719,3720]},{"teal":3916,"source":"contracts/NFDInstance.algo.ts:892","pc":[3721,3722]},{"teal":3923,"source":"contracts/NFDInstance.algo.ts:896","pc":[3723,3724]},{"teal":3924,"source":"contracts/NFDInstance.algo.ts:896","pc":[3725,3726]},{"teal":3925,"source":"contracts/NFDInstance.algo.ts:896","pc":[3727,3728,3729]},{"teal":3926,"source":"contracts/NFDInstance.algo.ts:896","pc":[3730]},{"teal":3927,"source":"contracts/NFDInstance.algo.ts:896","pc":[3731]},{"teal":3930,"source":"contracts/NFDInstance.algo.ts:895","errorMessage":"amount must be at least NFD_MIN_SEGMENT_USD dollars in algo","pc":[3732]},{"teal":3934,"source":"contracts/NFDInstance.algo.ts:899","pc":[3733,3734]},{"teal":3935,"source":"contracts/NFDInstance.algo.ts:899","pc":[3735,3736]},{"teal":3936,"source":"contracts/NFDInstance.algo.ts:899","pc":[3737]},{"teal":3937,"source":"contracts/NFDInstance.algo.ts:899","pc":[3738]},{"teal":3940,"source":"contracts/NFDInstance.algo.ts:884","pc":[3739]},{"teal":3945,"source":"contracts/NFDInstance.algo.ts:907","pc":[3740,3741,3742]},{"teal":3946,"source":"contracts/NFDInstance.algo.ts:907","pc":[3743]},{"teal":3947,"source":"contracts/NFDInstance.algo.ts:907","pc":[3744]},{"teal":3948,"source":"contracts/NFDInstance.algo.ts:907","pc":[3745]},{"teal":3949,"source":"contracts/NFDInstance.algo.ts:907","pc":[3746]},{"teal":3952,"source":"contracts/NFDInstance.algo.ts:907","errorMessage":"argument 0 (lock) for vaultOptInLock must be a bool","pc":[3747]},{"teal":3953,"source":"contracts/NFDInstance.algo.ts:907","pc":[3748]},{"teal":3954,"source":"contracts/NFDInstance.algo.ts:907","pc":[3749]},{"teal":3957,"source":"contracts/NFDInstance.algo.ts:907","pc":[3750,3751,3752]},{"teal":3958,"source":"contracts/NFDInstance.algo.ts:907","pc":[3753]},{"teal":3959,"source":"contracts/NFDInstance.algo.ts:907","pc":[3754]},{"teal":3963,"source":"contracts/NFDInstance.algo.ts:907","pc":[3755,3756,3757]},{"teal":3967,"source":"contracts/NFDInstance.algo.ts:908","pc":[3758,3759,3760]},{"teal":3971,"source":"contracts/NFDInstance.algo.ts:909","pc":[3761]},{"teal":3972,"source":"contracts/NFDInstance.algo.ts:909","pc":[3762,3763]},{"teal":3973,"source":"contracts/NFDInstance.algo.ts:909","pc":[3764]},{"teal":3974,"source":"contracts/NFDInstance.algo.ts:909","pc":[3765]},{"teal":3978,"source":"contracts/NFDInstance.algo.ts:910","pc":[3766,3767]},{"teal":3979,"source":"contracts/NFDInstance.algo.ts:910","pc":[3768,3769]},{"teal":3980,"source":"contracts/NFDInstance.algo.ts:910","pc":[3770,3771,3772]},{"teal":3981,"source":"contracts/NFDInstance.algo.ts:910","pc":[3773,3774]},{"teal":3982,"source":"contracts/NFDInstance.algo.ts:910","pc":[3775,3776,3777]},{"teal":3985,"source":"contracts/NFDInstance.algo.ts:910","pc":[3778,3779]},{"teal":3988,"source":"contracts/NFDInstance.algo.ts:910","pc":[3780]},{"teal":3989,"source":"contracts/NFDInstance.algo.ts:907","pc":[3781]},{"teal":3994,"source":"contracts/NFDInstance.algo.ts:919","pc":[3782,3783,3784]},{"teal":3995,"source":"contracts/NFDInstance.algo.ts:919","pc":[3785,3786,3787]},{"teal":3998,"source":"contracts/NFDInstance.algo.ts:919","pc":[3788,3789,3790]},{"teal":3999,"source":"contracts/NFDInstance.algo.ts:919","pc":[3791]},{"teal":4000,"source":"contracts/NFDInstance.algo.ts:919","pc":[3792]},{"teal":4004,"source":"contracts/NFDInstance.algo.ts:919","pc":[3793,3794,3795]},{"teal":4007,"source":"contracts/NFDInstance.algo.ts:919","pc":[3796]},{"teal":4008,"source":"contracts/NFDInstance.algo.ts:919","pc":[3797]},{"teal":4012,"source":"contracts/NFDInstance.algo.ts:920","pc":[3798,3799,3800]},{"teal":4017,"source":"contracts/NFDInstance.algo.ts:924","pc":[3801,3802,3803]},{"teal":4018,"source":"contracts/NFDInstance.algo.ts:924","pc":[3804,3805,3806]},{"teal":4026,"source":"contracts/NFDInstance.algo.ts:926","pc":[3807,3808]},{"teal":4027,"source":"contracts/NFDInstance.algo.ts:926","pc":[3809]},{"teal":4028,"source":"contracts/NFDInstance.algo.ts:926","pc":[3810]},{"teal":4029,"source":"contracts/NFDInstance.algo.ts:926","pc":[3811]},{"teal":4032,"source":"contracts/NFDInstance.algo.ts:925","errorMessage":"sender must be owner when vault locked","pc":[3812]},{"teal":4037,"source":"contracts/NFDInstance.algo.ts:931","pc":[3813,3814]},{"teal":4038,"source":"contracts/NFDInstance.algo.ts:931","pc":[3815]},{"teal":4039,"source":"contracts/NFDInstance.algo.ts:931","pc":[3816]},{"teal":4042,"source":"contracts/NFDInstance.algo.ts:931","errorMessage":"part of opt-in for new asset, must have prior txn paying MBR","pc":[3817]},{"teal":4049,"source":"contracts/NFDInstance.algo.ts:933","pc":[3818,3819]},{"teal":4050,"source":"contracts/NFDInstance.algo.ts:933","pc":[3820]},{"teal":4051,"source":"contracts/NFDInstance.algo.ts:933","pc":[3821]},{"teal":4052,"source":"contracts/NFDInstance.algo.ts:933","pc":[3822,3823]},{"teal":4055,"source":"contracts/NFDInstance.algo.ts:933","pc":[3824,3825]},{"teal":4056,"source":"contracts/NFDInstance.algo.ts:933","pc":[3826,3827]},{"teal":4057,"source":"contracts/NFDInstance.algo.ts:933","pc":[3828]},{"teal":4058,"source":"contracts/NFDInstance.algo.ts:933","pc":[3829]},{"teal":4061,"source":"contracts/NFDInstance.algo.ts:933","errorMessage":"transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"typeEnum\",\"expected\":\"pay\"}","pc":[3830]},{"teal":4064,"source":"contracts/NFDInstance.algo.ts:934","pc":[3831,3832]},{"teal":4065,"source":"contracts/NFDInstance.algo.ts:934","pc":[3833,3834]},{"teal":4066,"source":"contracts/NFDInstance.algo.ts:934","pc":[3835,3836]},{"teal":4067,"source":"contracts/NFDInstance.algo.ts:934","pc":[3837]},{"teal":4070,"source":"contracts/NFDInstance.algo.ts:934","errorMessage":"transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}","pc":[3838]},{"teal":4073,"source":"contracts/NFDInstance.algo.ts:935","pc":[3839,3840]},{"teal":4074,"source":"contracts/NFDInstance.algo.ts:935","pc":[3841,3842]},{"teal":4075,"source":"contracts/NFDInstance.algo.ts:935","pc":[3843,3844]},{"teal":4076,"source":"contracts/NFDInstance.algo.ts:935","pc":[3845,3846]},{"teal":4077,"source":"contracts/NFDInstance.algo.ts:935","pc":[3847]},{"teal":4078,"source":"contracts/NFDInstance.algo.ts:935","pc":[3848,3849]},{"teal":4079,"source":"contracts/NFDInstance.algo.ts:935","pc":[3850]},{"teal":4080,"source":"contracts/NFDInstance.algo.ts:935","pc":[3851]},{"teal":4081,"source":"contracts/NFDInstance.algo.ts:935","pc":[3852]},{"teal":4084,"source":"contracts/NFDInstance.algo.ts:935","errorMessage":"transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"amount\",\"expected\":\"100_000 * assets.length\"}","pc":[3853]},{"teal":4088,"source":"contracts/NFDInstance.algo.ts:937","pc":[3854]},{"teal":4089,"source":"contracts/NFDInstance.algo.ts:937","pc":[3855,3856]},{"teal":4094,"source":"contracts/NFDInstance.algo.ts:937","pc":[3857,3858]},{"teal":4095,"source":"contracts/NFDInstance.algo.ts:937","pc":[3859,3860]},{"teal":4096,"source":"contracts/NFDInstance.algo.ts:937","pc":[3861]},{"teal":4097,"source":"contracts/NFDInstance.algo.ts:937","pc":[3862,3863]},{"teal":4098,"source":"contracts/NFDInstance.algo.ts:937","pc":[3864]},{"teal":4099,"source":"contracts/NFDInstance.algo.ts:937","pc":[3865]},{"teal":4100,"source":"contracts/NFDInstance.algo.ts:937","pc":[3866,3867,3868]},{"teal":4104,"source":"contracts/NFDInstance.algo.ts:938","pc":[3869,3870]},{"teal":4105,"source":"contracts/NFDInstance.algo.ts:938","pc":[3871,3872]},{"teal":4106,"source":"contracts/NFDInstance.algo.ts:938","pc":[3873]},{"teal":4107,"source":"contracts/NFDInstance.algo.ts:938","pc":[3874,3875]},{"teal":4108,"source":"contracts/NFDInstance.algo.ts:938","pc":[3876,3877]},{"teal":4109,"source":"contracts/NFDInstance.algo.ts:938","pc":[3878]},{"teal":4110,"source":"contracts/NFDInstance.algo.ts:938","pc":[3879]},{"teal":4111,"source":"contracts/NFDInstance.algo.ts:938","pc":[3880,3881]},{"teal":4112,"source":"contracts/NFDInstance.algo.ts:938","pc":[3882]},{"teal":4113,"source":"contracts/NFDInstance.algo.ts:938","pc":[3883,3884]},{"teal":4114,"source":"contracts/NFDInstance.algo.ts:938","pc":[3885]},{"teal":4115,"source":"contracts/NFDInstance.algo.ts:938","pc":[3886]},{"teal":4116,"source":"contracts/NFDInstance.algo.ts:938","pc":[3887,3888]},{"teal":4121,"source":"contracts/NFDInstance.algo.ts:940","pc":[3889,3890]},{"teal":4122,"source":"contracts/NFDInstance.algo.ts:940","pc":[3891,3892]},{"teal":4123,"source":"contracts/NFDInstance.algo.ts:940","pc":[3893,3894]},{"teal":4124,"source":"contracts/NFDInstance.algo.ts:940","pc":[3895]},{"teal":4125,"source":"contracts/NFDInstance.algo.ts:940","pc":[3896]},{"teal":4126,"source":"contracts/NFDInstance.algo.ts:940","pc":[3897]},{"teal":4127,"source":"contracts/NFDInstance.algo.ts:940","pc":[3898,3899,3900]},{"teal":4136,"source":"contracts/NFDInstance.algo.ts:941","pc":[3901]},{"teal":4137,"source":"contracts/NFDInstance.algo.ts:941","pc":[3902,3903]},{"teal":4138,"source":"contracts/NFDInstance.algo.ts:941","pc":[3904,3905]},{"teal":4142,"source":"contracts/NFDInstance.algo.ts:942","pc":[3906,3907]},{"teal":4143,"source":"contracts/NFDInstance.algo.ts:942","pc":[3908,3909]},{"teal":4147,"source":"contracts/NFDInstance.algo.ts:943","pc":[3910,3911]},{"teal":4148,"source":"contracts/NFDInstance.algo.ts:943","pc":[3912,3913]},{"teal":4152,"source":"contracts/NFDInstance.algo.ts:944","pc":[3914]},{"teal":4153,"source":"contracts/NFDInstance.algo.ts:944","pc":[3915,3916]},{"teal":4156,"source":"contracts/NFDInstance.algo.ts:941","pc":[3917]},{"teal":4157,"source":"contracts/NFDInstance.algo.ts:941","pc":[3918,3919]},{"teal":4160,"source":"contracts/NFDInstance.algo.ts:941","pc":[3920]},{"teal":4167,"source":"contracts/NFDInstance.algo.ts:937","pc":[3921,3922]},{"teal":4168,"source":"contracts/NFDInstance.algo.ts:937","pc":[3923]},{"teal":4169,"source":"contracts/NFDInstance.algo.ts:937","pc":[3924]},{"teal":4170,"source":"contracts/NFDInstance.algo.ts:937","pc":[3925,3926]},{"teal":4171,"source":"contracts/NFDInstance.algo.ts:937","pc":[3927,3928,3929]},{"teal":4174,"source":"contracts/NFDInstance.algo.ts:919","pc":[3930]},{"teal":4179,"source":"contracts/NFDInstance.algo.ts:958","pc":[3931,3932,3933]},{"teal":4180,"source":"contracts/NFDInstance.algo.ts:958","pc":[3934,3935,3936]},{"teal":4183,"source":"contracts/NFDInstance.algo.ts:958","pc":[3937,3938,3939]},{"teal":4184,"source":"contracts/NFDInstance.algo.ts:958","pc":[3940]},{"teal":4187,"source":"contracts/NFDInstance.algo.ts:958","pc":[3941,3942,3943]},{"teal":4188,"source":"contracts/NFDInstance.algo.ts:958","pc":[3944,3945,3946]},{"teal":4191,"source":"contracts/NFDInstance.algo.ts:958","pc":[3947,3948,3949]},{"teal":4192,"source":"contracts/NFDInstance.algo.ts:958","pc":[3950]},{"teal":4193,"source":"contracts/NFDInstance.algo.ts:958","pc":[3951]},{"teal":4194,"source":"contracts/NFDInstance.algo.ts:958","pc":[3952]},{"teal":4195,"source":"contracts/NFDInstance.algo.ts:958","pc":[3953]},{"teal":4198,"source":"contracts/NFDInstance.algo.ts:958","errorMessage":"argument 3 (receiver) for vaultSend must be a address","pc":[3954]},{"teal":4201,"source":"contracts/NFDInstance.algo.ts:958","pc":[3955,3956,3957]},{"teal":4202,"source":"contracts/NFDInstance.algo.ts:958","pc":[3958]},{"teal":4205,"source":"contracts/NFDInstance.algo.ts:958","pc":[3959,3960,3961]},{"teal":4206,"source":"contracts/NFDInstance.algo.ts:958","pc":[3962]},{"teal":4207,"source":"contracts/NFDInstance.algo.ts:958","pc":[3963]},{"teal":4211,"source":"contracts/NFDInstance.algo.ts:958","pc":[3964,3965,3966]},{"teal":4214,"source":"contracts/NFDInstance.algo.ts:958","pc":[3967]},{"teal":4215,"source":"contracts/NFDInstance.algo.ts:958","pc":[3968,3969]},{"teal":4219,"source":"contracts/NFDInstance.algo.ts:964","pc":[3970,3971,3972]},{"teal":4223,"source":"contracts/NFDInstance.algo.ts:965","pc":[3973,3974]},{"teal":4224,"source":"contracts/NFDInstance.algo.ts:965","pc":[3975,3976]},{"teal":4225,"source":"contracts/NFDInstance.algo.ts:965","pc":[3977]},{"teal":4226,"source":"contracts/NFDInstance.algo.ts:965","pc":[3978]},{"teal":4231,"source":"contracts/NFDInstance.algo.ts:967","pc":[3979,3980]},{"teal":4232,"source":"contracts/NFDInstance.algo.ts:967","pc":[3981]},{"teal":4233,"source":"contracts/NFDInstance.algo.ts:967","pc":[3982]},{"teal":4234,"source":"contracts/NFDInstance.algo.ts:967","pc":[3983,3984,3985]},{"teal":4239,"source":"contracts/NFDInstance.algo.ts:968","pc":[3986,3987]},{"teal":4240,"source":"contracts/NFDInstance.algo.ts:968","pc":[3988]},{"teal":4241,"source":"contracts/NFDInstance.algo.ts:968","pc":[3989,3990]},{"teal":4242,"source":"contracts/NFDInstance.algo.ts:968","pc":[3991]},{"teal":4243,"source":"contracts/NFDInstance.algo.ts:968","pc":[3992]},{"teal":4244,"source":"contracts/NFDInstance.algo.ts:968","pc":[3993]},{"teal":4247,"source":"contracts/NFDInstance.algo.ts:968","errorMessage":"can't specify other assets if sending algo from vault","pc":[3994]},{"teal":4251,"source":"contracts/NFDInstance.algo.ts:969","pc":[3995,3996]},{"teal":4252,"source":"contracts/NFDInstance.algo.ts:969","pc":[3997]},{"teal":4253,"source":"contracts/NFDInstance.algo.ts:969","pc":[3998]},{"teal":4254,"source":"contracts/NFDInstance.algo.ts:969","pc":[3999]},{"teal":4258,"source":"contracts/NFDInstance.algo.ts:971","pc":[4000,4001]},{"teal":4259,"source":"contracts/NFDInstance.algo.ts:971","pc":[4002,4003]},{"teal":4260,"source":"contracts/NFDInstance.algo.ts:971","pc":[4004]},{"teal":4261,"source":"contracts/NFDInstance.algo.ts:971","pc":[4005,4006]},{"teal":4262,"source":"contracts/NFDInstance.algo.ts:971","pc":[4007,4008,4009]},{"teal":4263,"source":"contracts/NFDInstance.algo.ts:971","pc":[4010]},{"teal":4264,"source":"contracts/NFDInstance.algo.ts:971","pc":[4011,4012]},{"teal":4268,"source":"contracts/NFDInstance.algo.ts:973","pc":[4013,4014]},{"teal":4269,"source":"contracts/NFDInstance.algo.ts:973","pc":[4015,4016]},{"teal":4270,"source":"contracts/NFDInstance.algo.ts:973","pc":[4017]},{"teal":4271,"source":"contracts/NFDInstance.algo.ts:973","pc":[4018,4019]},{"teal":4272,"source":"contracts/NFDInstance.algo.ts:973","pc":[4020]},{"teal":4273,"source":"contracts/NFDInstance.algo.ts:973","pc":[4021,4022]},{"teal":4274,"source":"contracts/NFDInstance.algo.ts:973","pc":[4023]},{"teal":4275,"source":"contracts/NFDInstance.algo.ts:973","pc":[4024]},{"teal":4279,"source":"contracts/NFDInstance.algo.ts:974","pc":[4025]},{"teal":4280,"source":"contracts/NFDInstance.algo.ts:974","pc":[4026]},{"teal":4281,"source":"contracts/NFDInstance.algo.ts:974","pc":[4027,4028]},{"teal":4285,"source":"contracts/NFDInstance.algo.ts:974","pc":[4029,4030]},{"teal":4286,"source":"contracts/NFDInstance.algo.ts:974","pc":[4031,4032]},{"teal":4290,"source":"contracts/NFDInstance.algo.ts:974","pc":[4033,4034]},{"teal":4291,"source":"contracts/NFDInstance.algo.ts:974","pc":[4035,4036]},{"teal":4295,"source":"contracts/NFDInstance.algo.ts:974","pc":[4037,4038]},{"teal":4296,"source":"contracts/NFDInstance.algo.ts:974","pc":[4039,4040]},{"teal":4299,"source":"contracts/NFDInstance.algo.ts:974","pc":[4041]},{"teal":4300,"source":"contracts/NFDInstance.algo.ts:974","pc":[4042,4043]},{"teal":4303,"source":"contracts/NFDInstance.algo.ts:974","pc":[4044]},{"teal":4307,"source":"contracts/NFDInstance.algo.ts:975","pc":[4045]},{"teal":4313,"source":"contracts/NFDInstance.algo.ts:979","pc":[4046,4047]},{"teal":4314,"source":"contracts/NFDInstance.algo.ts:979","pc":[4048]},{"teal":4315,"source":"contracts/NFDInstance.algo.ts:979","pc":[4049]},{"teal":4316,"source":"contracts/NFDInstance.algo.ts:979","pc":[4050,4051,4052]},{"teal":4321,"source":"contracts/NFDInstance.algo.ts:980","pc":[4053,4054]},{"teal":4322,"source":"contracts/NFDInstance.algo.ts:980","pc":[4055]},{"teal":4323,"source":"contracts/NFDInstance.algo.ts:980","pc":[4056,4057]},{"teal":4324,"source":"contracts/NFDInstance.algo.ts:980","pc":[4058]},{"teal":4325,"source":"contracts/NFDInstance.algo.ts:980","pc":[4059]},{"teal":4326,"source":"contracts/NFDInstance.algo.ts:980","pc":[4060]},{"teal":4329,"source":"contracts/NFDInstance.algo.ts:980","errorMessage":"can only send one asset if amount == 0","pc":[4061]},{"teal":4334,"source":"contracts/NFDInstance.algo.ts:982","pc":[4062]},{"teal":4335,"source":"contracts/NFDInstance.algo.ts:982","pc":[4063,4064]},{"teal":4340,"source":"contracts/NFDInstance.algo.ts:982","pc":[4065,4066]},{"teal":4341,"source":"contracts/NFDInstance.algo.ts:982","pc":[4067,4068]},{"teal":4342,"source":"contracts/NFDInstance.algo.ts:982","pc":[4069]},{"teal":4343,"source":"contracts/NFDInstance.algo.ts:982","pc":[4070,4071]},{"teal":4344,"source":"contracts/NFDInstance.algo.ts:982","pc":[4072]},{"teal":4345,"source":"contracts/NFDInstance.algo.ts:982","pc":[4073]},{"teal":4346,"source":"contracts/NFDInstance.algo.ts:982","pc":[4074,4075,4076]},{"teal":4351,"source":"contracts/NFDInstance.algo.ts:986","pc":[4077,4078]},{"teal":4352,"source":"contracts/NFDInstance.algo.ts:986","pc":[4079]},{"teal":4353,"source":"contracts/NFDInstance.algo.ts:986","pc":[4080]},{"teal":4354,"source":"contracts/NFDInstance.algo.ts:986","pc":[4081,4082,4083]},{"teal":4359,"source":"contracts/NFDInstance.algo.ts:987","pc":[4084,4085]},{"teal":4360,"source":"contracts/NFDInstance.algo.ts:987","pc":[4086,4087]},{"teal":4361,"source":"contracts/NFDInstance.algo.ts:986","pc":[4088,4089,4090]},{"teal":4366,"source":"contracts/NFDInstance.algo.ts:989","pc":[4091,4092]},{"teal":4367,"source":"contracts/NFDInstance.algo.ts:989","pc":[4093,4094]},{"teal":4368,"source":"contracts/NFDInstance.algo.ts:989","pc":[4095]},{"teal":4369,"source":"contracts/NFDInstance.algo.ts:989","pc":[4096,4097]},{"teal":4370,"source":"contracts/NFDInstance.algo.ts:989","pc":[4098]},{"teal":4371,"source":"contracts/NFDInstance.algo.ts:989","pc":[4099]},{"teal":4372,"source":"contracts/NFDInstance.algo.ts:989","pc":[4100,4101]},{"teal":4373,"source":"contracts/NFDInstance.algo.ts:989","pc":[4102]},{"teal":4374,"source":"contracts/NFDInstance.algo.ts:989","pc":[4103]},{"teal":4375,"source":"contracts/NFDInstance.algo.ts:989","pc":[4104,4105]},{"teal":4376,"source":"contracts/NFDInstance.algo.ts:989","pc":[4106]},{"teal":4377,"source":"contracts/NFDInstance.algo.ts:989","pc":[4107,4108]},{"teal":4378,"source":"contracts/NFDInstance.algo.ts:989","pc":[4109]},{"teal":4379,"source":"contracts/NFDInstance.algo.ts:989","pc":[4110]},{"teal":4380,"source":"contracts/NFDInstance.algo.ts:989","pc":[4111,4112]},{"teal":4386,"source":"contracts/NFDInstance.algo.ts:992","pc":[4113,4114]},{"teal":4387,"source":"contracts/NFDInstance.algo.ts:992","pc":[4115,4116]},{"teal":4388,"source":"contracts/NFDInstance.algo.ts:992","pc":[4117]},{"teal":4389,"source":"contracts/NFDInstance.algo.ts:992","pc":[4118]},{"teal":4390,"source":"contracts/NFDInstance.algo.ts:992","pc":[4119]},{"teal":4391,"source":"contracts/NFDInstance.algo.ts:992","pc":[4120,4121,4122]},{"teal":4396,"source":"contracts/NFDInstance.algo.ts:993","pc":[4123,4124]},{"teal":4397,"source":"contracts/NFDInstance.algo.ts:993","pc":[4125]},{"teal":4398,"source":"contracts/NFDInstance.algo.ts:993","pc":[4126]},{"teal":4399,"source":"contracts/NFDInstance.algo.ts:993","pc":[4127]},{"teal":4402,"source":"contracts/NFDInstance.algo.ts:993","errorMessage":"receiver must be owner","pc":[4128]},{"teal":4406,"source":"contracts/NFDInstance.algo.ts:994","pc":[4129,4130]},{"teal":4407,"source":"contracts/NFDInstance.algo.ts:994","pc":[4131,4132]},{"teal":4408,"source":"contracts/NFDInstance.algo.ts:994","pc":[4133,4134,4135]},{"teal":4409,"source":"contracts/NFDInstance.algo.ts:995","pc":[4136,4137,4138]},{"teal":4414,"source":"contracts/NFDInstance.algo.ts:997","pc":[4139,4140]},{"teal":4415,"source":"contracts/NFDInstance.algo.ts:997","pc":[4141,4142]},{"teal":4416,"source":"contracts/NFDInstance.algo.ts:997","pc":[4143,4144]},{"teal":4417,"source":"contracts/NFDInstance.algo.ts:997","pc":[4145]},{"teal":4418,"source":"contracts/NFDInstance.algo.ts:997","pc":[4146,4147]},{"teal":4423,"source":"contracts/NFDInstance.algo.ts:998","pc":[4148,4149]},{"teal":4424,"source":"contracts/NFDInstance.algo.ts:998","pc":[4150]},{"teal":4425,"source":"contracts/NFDInstance.algo.ts:998","pc":[4151]},{"teal":4426,"source":"contracts/NFDInstance.algo.ts:998","pc":[4152]},{"teal":4427,"source":"contracts/NFDInstance.algo.ts:998","pc":[4153,4154,4155]},{"teal":4428,"source":"contracts/NFDInstance.algo.ts:998","pc":[4156,4157]},{"teal":4429,"source":"contracts/NFDInstance.algo.ts:998","pc":[4158,4159]},{"teal":4430,"source":"contracts/NFDInstance.algo.ts:998","pc":[4160,4161]},{"teal":4431,"source":"contracts/NFDInstance.algo.ts:998","pc":[4162]},{"teal":4432,"source":"contracts/NFDInstance.algo.ts:998","pc":[4163,4164]},{"teal":4433,"source":"contracts/NFDInstance.algo.ts:998","pc":[4165]},{"teal":4434,"source":"contracts/NFDInstance.algo.ts:998","pc":[4166]},{"teal":4437,"source":"contracts/NFDInstance.algo.ts:998","pc":[4167,4168,4169]},{"teal":4448,"source":"contracts/NFDInstance.algo.ts:1000","pc":[4170]},{"teal":4449,"source":"contracts/NFDInstance.algo.ts:1000","pc":[4171,4172]},{"teal":4450,"source":"contracts/NFDInstance.algo.ts:1000","pc":[4173,4174]},{"teal":4454,"source":"contracts/NFDInstance.algo.ts:1001","pc":[4175,4176]},{"teal":4455,"source":"contracts/NFDInstance.algo.ts:1001","pc":[4177,4178]},{"teal":4459,"source":"contracts/NFDInstance.algo.ts:1002","pc":[4179,4180]},{"teal":4460,"source":"contracts/NFDInstance.algo.ts:1002","pc":[4181,4182]},{"teal":4464,"source":"contracts/NFDInstance.algo.ts:1003","pc":[4183,4184]},{"teal":4465,"source":"contracts/NFDInstance.algo.ts:1003","pc":[4185,4186]},{"teal":4469,"source":"contracts/NFDInstance.algo.ts:1004","pc":[4187,4188]},{"teal":4470,"source":"contracts/NFDInstance.algo.ts:1004","pc":[4189,4190]},{"teal":4474,"source":"contracts/NFDInstance.algo.ts:1005","pc":[4191,4192]},{"teal":4475,"source":"contracts/NFDInstance.algo.ts:1005","pc":[4193,4194]},{"teal":4478,"source":"contracts/NFDInstance.algo.ts:1000","pc":[4195]},{"teal":4479,"source":"contracts/NFDInstance.algo.ts:1000","pc":[4196,4197]},{"teal":4482,"source":"contracts/NFDInstance.algo.ts:1000","pc":[4198]},{"teal":4483,"source":"contracts/NFDInstance.algo.ts:998","pc":[4199,4200,4201]},{"teal":4488,"source":"contracts/NFDInstance.algo.ts:1008","pc":[4202]},{"teal":4489,"source":"contracts/NFDInstance.algo.ts:1008","pc":[4203,4204]},{"teal":4490,"source":"contracts/NFDInstance.algo.ts:1008","pc":[4205,4206]},{"teal":4494,"source":"contracts/NFDInstance.algo.ts:1008","pc":[4207,4208]},{"teal":4495,"source":"contracts/NFDInstance.algo.ts:1008","pc":[4209,4210]},{"teal":4499,"source":"contracts/NFDInstance.algo.ts:1008","pc":[4211,4212]},{"teal":4500,"source":"contracts/NFDInstance.algo.ts:1008","pc":[4213,4214]},{"teal":4504,"source":"contracts/NFDInstance.algo.ts:1008","pc":[4215,4216]},{"teal":4505,"source":"contracts/NFDInstance.algo.ts:1008","pc":[4217,4218]},{"teal":4509,"source":"contracts/NFDInstance.algo.ts:1008","pc":[4219,4220]},{"teal":4510,"source":"contracts/NFDInstance.algo.ts:1008","pc":[4221,4222]},{"teal":4513,"source":"contracts/NFDInstance.algo.ts:1008","pc":[4223]},{"teal":4514,"source":"contracts/NFDInstance.algo.ts:1008","pc":[4224,4225]},{"teal":4517,"source":"contracts/NFDInstance.algo.ts:1008","pc":[4226]},{"teal":4524,"source":"contracts/NFDInstance.algo.ts:982","pc":[4227,4228]},{"teal":4525,"source":"contracts/NFDInstance.algo.ts:982","pc":[4229]},{"teal":4526,"source":"contracts/NFDInstance.algo.ts:982","pc":[4230]},{"teal":4527,"source":"contracts/NFDInstance.algo.ts:982","pc":[4231,4232]},{"teal":4528,"source":"contracts/NFDInstance.algo.ts:982","pc":[4233,4234,4235]},{"teal":4531,"source":"contracts/NFDInstance.algo.ts:958","pc":[4236]},{"teal":4536,"source":"contracts/NFDInstance.algo.ts:1030","pc":[4237,4238]},{"teal":4537,"source":"contracts/NFDInstance.algo.ts:1030","pc":[4239]},{"teal":4538,"source":"contracts/NFDInstance.algo.ts:1030","pc":[4240]},{"teal":4539,"source":"contracts/NFDInstance.algo.ts:1030","pc":[4241]},{"teal":4540,"source":"contracts/NFDInstance.algo.ts:1030","pc":[4242,4243]},{"teal":4541,"source":"contracts/NFDInstance.algo.ts:1030","pc":[4244]},{"teal":4542,"source":"contracts/NFDInstance.algo.ts:1030","pc":[4245]},{"teal":4545,"source":"contracts/NFDInstance.algo.ts:1030","errorMessage":"argument 0 (payment) for renew must be a pay transaction","pc":[4246]},{"teal":4548,"source":"contracts/NFDInstance.algo.ts:1030","pc":[4247,4248,4249]},{"teal":4549,"source":"contracts/NFDInstance.algo.ts:1030","pc":[4250]},{"teal":4550,"source":"contracts/NFDInstance.algo.ts:1030","pc":[4251]},{"teal":4570,"source":"contracts/NFDInstance.algo.ts:1030","pc":[4252,4253,4254]},{"teal":4573,"source":"contracts/NFDInstance.algo.ts:1030","pc":[4255]},{"teal":4574,"source":"contracts/NFDInstance.algo.ts:1030","pc":[4256,4257]},{"teal":4579,"source":"contracts/NFDInstance.algo.ts:1031","pc":[4258,4259]},{"teal":4580,"source":"contracts/NFDInstance.algo.ts:1031","pc":[4260,4261]},{"teal":4581,"source":"contracts/NFDInstance.algo.ts:1031","pc":[4262,4263]},{"teal":4582,"source":"contracts/NFDInstance.algo.ts:1031","pc":[4264]},{"teal":4585,"source":"contracts/NFDInstance.algo.ts:1031","errorMessage":"transaction verification failed: {\"txn\":\"payment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}","pc":[4265]},{"teal":4589,"source":"contracts/NFDInstance.algo.ts:1034","pc":[4266,4267]},{"teal":4590,"source":"contracts/NFDInstance.algo.ts:1034","pc":[4268,4269,4270]},{"teal":4591,"source":"contracts/NFDInstance.algo.ts:1034","pc":[4271,4272]},{"teal":4596,"source":"contracts/NFDInstance.algo.ts:1035","pc":[4273,4274]},{"teal":4597,"source":"contracts/NFDInstance.algo.ts:1035","pc":[4275,4276]},{"teal":4598,"source":"contracts/NFDInstance.algo.ts:1035","pc":[4277]},{"teal":4599,"source":"contracts/NFDInstance.algo.ts:1035","pc":[4278,4279,4280]},{"teal":4604,"source":"contracts/NFDInstance.algo.ts:1036","pc":[4281]},{"teal":4605,"source":"contracts/NFDInstance.algo.ts:1036","pc":[4282,4283]},{"teal":4606,"source":"contracts/NFDInstance.algo.ts:1036","pc":[4284,4285]},{"teal":4607,"source":"contracts/NFDInstance.algo.ts:1036","pc":[4286]},{"teal":4608,"source":"contracts/NFDInstance.algo.ts:1036","pc":[4287,4288]},{"teal":4609,"source":"contracts/NFDInstance.algo.ts:1036","pc":[4289,4290]},{"teal":4610,"source":"contracts/NFDInstance.algo.ts:1036","pc":[4291]},{"teal":4611,"source":"contracts/NFDInstance.algo.ts:1036","pc":[4292,4293]},{"teal":4612,"source":"contracts/NFDInstance.algo.ts:1036","pc":[4294,4295]},{"teal":4613,"source":"contracts/NFDInstance.algo.ts:1036","pc":[4296,4297]},{"teal":4614,"source":"contracts/NFDInstance.algo.ts:1036","pc":[4298,4299]},{"teal":4615,"source":"contracts/NFDInstance.algo.ts:1036","pc":[4300]},{"teal":4622,"source":"contracts/NFDInstance.algo.ts:1038","pc":[4301]},{"teal":4623,"source":"contracts/NFDInstance.algo.ts:1038","pc":[4302,4303]},{"teal":4624,"source":"contracts/NFDInstance.algo.ts:1038","pc":[4304,4305]},{"teal":4625,"source":"contracts/NFDInstance.algo.ts:1038","pc":[4306,4307]},{"teal":4626,"source":"contracts/NFDInstance.algo.ts:1038","pc":[4308,4309]},{"teal":4630,"source":"contracts/NFDInstance.algo.ts:1039","pc":[4310,4311]},{"teal":4631,"source":"contracts/NFDInstance.algo.ts:1039","pc":[4312,4313]},{"teal":4634,"source":"contracts/NFDInstance.algo.ts:1038","pc":[4314]},{"teal":4635,"source":"contracts/NFDInstance.algo.ts:1038","pc":[4315,4316]},{"teal":4638,"source":"contracts/NFDInstance.algo.ts:1038","pc":[4317]},{"teal":4639,"source":"contracts/NFDInstance.algo.ts:1038","pc":[4318,4319]},{"teal":4640,"source":"contracts/NFDInstance.algo.ts:1038","pc":[4320]},{"teal":4641,"source":"contracts/NFDInstance.algo.ts:1038","pc":[4321]},{"teal":4642,"source":"contracts/NFDInstance.algo.ts:1038","pc":[4322,4323]},{"teal":4643,"source":"contracts/NFDInstance.algo.ts:1038","pc":[4324,4325,4326]},{"teal":4644,"source":"contracts/NFDInstance.algo.ts:1038","pc":[4327,4328]},{"teal":4648,"source":"contracts/NFDInstance.algo.ts:1041","pc":[4329,4330]},{"teal":4649,"source":"contracts/NFDInstance.algo.ts:1041","pc":[4331,4332]},{"teal":4650,"source":"contracts/NFDInstance.algo.ts:1041","pc":[4333,4334]},{"teal":4651,"source":"contracts/NFDInstance.algo.ts:1041","pc":[4335,4336,4337]},{"teal":4652,"source":"contracts/NFDInstance.algo.ts:1041","pc":[4338]},{"teal":4653,"source":"contracts/NFDInstance.algo.ts:1041","pc":[4339,4340]},{"teal":4657,"source":"contracts/NFDInstance.algo.ts:1042","pc":[4341,4342]},{"teal":4658,"source":"contracts/NFDInstance.algo.ts:1042","pc":[4343,4344,4345]},{"teal":4659,"source":"contracts/NFDInstance.algo.ts:1042","pc":[4346]},{"teal":4660,"source":"contracts/NFDInstance.algo.ts:1042","pc":[4347,4348]},{"teal":4664,"source":"contracts/NFDInstance.algo.ts:1043","pc":[4349,4350]},{"teal":4665,"source":"contracts/NFDInstance.algo.ts:1043","pc":[4351]},{"teal":4666,"source":"contracts/NFDInstance.algo.ts:1043","pc":[4352]},{"teal":4667,"source":"contracts/NFDInstance.algo.ts:1043","pc":[4353]},{"teal":4671,"source":"contracts/NFDInstance.algo.ts:1044","pc":[4354]},{"teal":4672,"source":"contracts/NFDInstance.algo.ts:1044","pc":[4355]},{"teal":4673,"source":"contracts/NFDInstance.algo.ts:1044","pc":[4356,4357]},{"teal":4677,"source":"contracts/NFDInstance.algo.ts:1046","pc":[4358,4359]},{"teal":4678,"source":"contracts/NFDInstance.algo.ts:1046","pc":[4360,4361,4362]},{"teal":4679,"source":"contracts/NFDInstance.algo.ts:1046","pc":[4363,4364]},{"teal":4684,"source":"contracts/NFDInstance.algo.ts:1047","pc":[4365,4366]},{"teal":4685,"source":"contracts/NFDInstance.algo.ts:1047","pc":[4367]},{"teal":4686,"source":"contracts/NFDInstance.algo.ts:1047","pc":[4368]},{"teal":4687,"source":"contracts/NFDInstance.algo.ts:1047","pc":[4369]},{"teal":4688,"source":"contracts/NFDInstance.algo.ts:1047","pc":[4370,4371,4372]},{"teal":4689,"source":"contracts/NFDInstance.algo.ts:1047","pc":[4373,4374,4375]},{"teal":4690,"source":"contracts/NFDInstance.algo.ts:1047","pc":[4376]},{"teal":4693,"source":"contracts/NFDInstance.algo.ts:1047","pc":[4377,4378,4379]},{"teal":4699,"source":"contracts/NFDInstance.algo.ts:1052","pc":[4380,4381]},{"teal":4700,"source":"contracts/NFDInstance.algo.ts:1052","pc":[4382,4383]},{"teal":4701,"source":"contracts/NFDInstance.algo.ts:1052","pc":[4384]},{"teal":4702,"source":"contracts/NFDInstance.algo.ts:1052","pc":[4385,4386,4387]},{"teal":4707,"source":"contracts/NFDInstance.algo.ts:1053","pc":[4388,4389]},{"teal":4708,"source":"contracts/NFDInstance.algo.ts:1053","pc":[4390,4391]},{"teal":4709,"source":"contracts/NFDInstance.algo.ts:1053","pc":[4392]},{"teal":4710,"source":"contracts/NFDInstance.algo.ts:1053","pc":[4393]},{"teal":4711,"source":"contracts/NFDInstance.algo.ts:1053","pc":[4394]},{"teal":4714,"source":"contracts/NFDInstance.algo.ts:1053","errorMessage":"can't claim expired nfd unless all metadata is cleared","pc":[4395]},{"teal":4721,"source":"contracts/NFDInstance.algo.ts:1059","pc":[4396,4397]},{"teal":4722,"source":"contracts/NFDInstance.algo.ts:1059","pc":[4398,4399]},{"teal":4723,"source":"contracts/NFDInstance.algo.ts:1059","pc":[4400,4401]},{"teal":4724,"source":"contracts/NFDInstance.algo.ts:1059","pc":[4402]},{"teal":4727,"source":"contracts/NFDInstance.algo.ts:1059","errorMessage":"must pay at least minimum renewal price","pc":[4403]},{"teal":4732,"source":"contracts/NFDInstance.algo.ts:1060","pc":[4404,4405]},{"teal":4733,"source":"contracts/NFDInstance.algo.ts:1060","pc":[4406]},{"teal":4734,"source":"contracts/NFDInstance.algo.ts:1060","pc":[4407]},{"teal":4735,"source":"contracts/NFDInstance.algo.ts:1060","pc":[4408,4409,4410]},{"teal":4740,"source":"contracts/NFDInstance.algo.ts:1061","pc":[4411,4412]},{"teal":4741,"source":"contracts/NFDInstance.algo.ts:1061","pc":[4413,4414]},{"teal":4742,"source":"contracts/NFDInstance.algo.ts:1061","pc":[4415]},{"teal":4743,"source":"contracts/NFDInstance.algo.ts:1061","pc":[4416]},{"teal":4747,"source":"contracts/NFDInstance.algo.ts:1063","pc":[4417,4418]},{"teal":4748,"source":"contracts/NFDInstance.algo.ts:1063","pc":[4419,4420]},{"teal":4752,"source":"contracts/NFDInstance.algo.ts:1065","pc":[4421,4422]},{"teal":4753,"source":"contracts/NFDInstance.algo.ts:1065","pc":[4423]},{"teal":4757,"source":"contracts/NFDInstance.algo.ts:1066","pc":[4424,4425]},{"teal":4758,"source":"contracts/NFDInstance.algo.ts:1066","pc":[4426]},{"teal":4762,"source":"contracts/NFDInstance.algo.ts:1067","pc":[4427,4428]},{"teal":4763,"source":"contracts/NFDInstance.algo.ts:1067","pc":[4429]},{"teal":4767,"source":"contracts/NFDInstance.algo.ts:1068","pc":[4430,4431]},{"teal":4768,"source":"contracts/NFDInstance.algo.ts:1068","pc":[4432]},{"teal":4769,"source":"contracts/NFDInstance.algo.ts:1060","pc":[4433,4434,4435]},{"teal":4774,"source":"contracts/NFDInstance.algo.ts:1069","pc":[4436,4437,4438]},{"teal":4775,"source":"contracts/NFDInstance.algo.ts:1069","pc":[4439,4440,4441]},{"teal":4780,"source":"contracts/NFDInstance.algo.ts:1071","pc":[4442,4443]},{"teal":4781,"source":"contracts/NFDInstance.algo.ts:1071","pc":[4444,4445]},{"teal":4785,"source":"contracts/NFDInstance.algo.ts:1073","pc":[4446]},{"teal":4786,"source":"contracts/NFDInstance.algo.ts:1073","pc":[4447,4448]},{"teal":4787,"source":"contracts/NFDInstance.algo.ts:1073","pc":[4449,4450]},{"teal":4788,"source":"contracts/NFDInstance.algo.ts:1073","pc":[4451]},{"teal":4792,"source":"contracts/NFDInstance.algo.ts:1074","pc":[4452,4453]},{"teal":4793,"source":"contracts/NFDInstance.algo.ts:1074","pc":[4454,4455]},{"teal":4794,"source":"contracts/NFDInstance.algo.ts:1074","pc":[4456,4457]},{"teal":4795,"source":"contracts/NFDInstance.algo.ts:1074","pc":[4458]},{"teal":4799,"source":"contracts/NFDInstance.algo.ts:1075","pc":[4459,4460]},{"teal":4800,"source":"contracts/NFDInstance.algo.ts:1075","pc":[4461]},{"teal":4805,"source":"contracts/NFDInstance.algo.ts:1076","pc":[4462,4463,4464]},{"teal":4806,"source":"contracts/NFDInstance.algo.ts:1076","pc":[4465,4466,4467]},{"teal":4811,"source":"contracts/NFDInstance.algo.ts:1078","pc":[4468,4469]},{"teal":4812,"source":"contracts/NFDInstance.algo.ts:1078","pc":[4470]},{"teal":4813,"source":"contracts/NFDInstance.algo.ts:1078","pc":[4471]},{"teal":4814,"source":"contracts/NFDInstance.algo.ts:1078","pc":[4472,4473]},{"teal":4815,"source":"contracts/NFDInstance.algo.ts:1078","pc":[4474,4475,4476]},{"teal":4816,"source":"contracts/NFDInstance.algo.ts:1078","pc":[4477]},{"teal":4817,"source":"contracts/NFDInstance.algo.ts:1078","pc":[4478,4479,4480]},{"teal":4818,"source":"contracts/NFDInstance.algo.ts:1078","pc":[4481,4482]},{"teal":4819,"source":"contracts/NFDInstance.algo.ts:1078","pc":[4483]},{"teal":4820,"source":"contracts/NFDInstance.algo.ts:1078","pc":[4484]},{"teal":4821,"source":"contracts/NFDInstance.algo.ts:1078","pc":[4485]},{"teal":4822,"source":"contracts/NFDInstance.algo.ts:1078","pc":[4486]},{"teal":4823,"source":"contracts/NFDInstance.algo.ts:1078","pc":[4487,4488,4489]},{"teal":4824,"source":"contracts/NFDInstance.algo.ts:1078","pc":[4490]},{"teal":4825,"source":"contracts/NFDInstance.algo.ts:1078","pc":[4491]},{"teal":4826,"source":"contracts/NFDInstance.algo.ts:1078","pc":[4492,4493,4494]},{"teal":4827,"source":"contracts/NFDInstance.algo.ts:1078","pc":[4495]},{"teal":4828,"source":"contracts/NFDInstance.algo.ts:1078","pc":[4496]},{"teal":4829,"source":"contracts/NFDInstance.algo.ts:1078","pc":[4497]},{"teal":4830,"source":"contracts/NFDInstance.algo.ts:1078","pc":[4498]},{"teal":4834,"source":"contracts/NFDInstance.algo.ts:1079","pc":[4499,4500]},{"teal":4835,"source":"contracts/NFDInstance.algo.ts:1079","pc":[4501]},{"teal":4844,"source":"contracts/NFDInstance.algo.ts:1083","pc":[4502,4503]},{"teal":4845,"source":"contracts/NFDInstance.algo.ts:1084","pc":[4504,4505]},{"teal":4846,"source":"contracts/NFDInstance.algo.ts:1084","pc":[4506,4507]},{"teal":4847,"source":"contracts/NFDInstance.algo.ts:1084","pc":[4508,4509]},{"teal":4848,"source":"contracts/NFDInstance.algo.ts:1084","pc":[4510,4511]},{"teal":4849,"source":"contracts/NFDInstance.algo.ts:1084","pc":[4512,4513]},{"teal":4850,"source":"contracts/NFDInstance.algo.ts:1084","pc":[4514,4515,4516]},{"teal":4851,"source":"contracts/NFDInstance.algo.ts:1083","pc":[4517]},{"teal":4852,"source":"contracts/NFDInstance.algo.ts:1083","pc":[4518]},{"teal":4856,"source":"contracts/NFDInstance.algo.ts:1086","pc":[4519]},{"teal":4857,"source":"contracts/NFDInstance.algo.ts:1086","pc":[4520,4521]},{"teal":4858,"source":"contracts/NFDInstance.algo.ts:1086","pc":[4522]},{"teal":4859,"source":"contracts/NFDInstance.algo.ts:1086","pc":[4523]},{"teal":4863,"source":"contracts/NFDInstance.algo.ts:1089","pc":[4524,4525]},{"teal":4864,"source":"contracts/NFDInstance.algo.ts:1089","pc":[4526,4527]},{"teal":4865,"source":"contracts/NFDInstance.algo.ts:1089","pc":[4528,4529]},{"teal":4869,"source":"contracts/NFDInstance.algo.ts:1090","pc":[4530,4531]},{"teal":4870,"source":"contracts/NFDInstance.algo.ts:1090","pc":[4532,4533]},{"teal":4874,"source":"contracts/NFDInstance.algo.ts:1092","pc":[4534,4535]},{"teal":4875,"source":"contracts/NFDInstance.algo.ts:1092","pc":[4536,4537]},{"teal":4880,"source":"contracts/NFDInstance.algo.ts:1097","pc":[4538,4539]},{"teal":4881,"source":"contracts/NFDInstance.algo.ts:1097","pc":[4540,4541,4542]},{"teal":4882,"source":"contracts/NFDInstance.algo.ts:1097","pc":[4543]},{"teal":4883,"source":"contracts/NFDInstance.algo.ts:1097","pc":[4544]},{"teal":4884,"source":"contracts/NFDInstance.algo.ts:1097","pc":[4545,4546,4547]},{"teal":4889,"source":"contracts/NFDInstance.algo.ts:1098","pc":[4548,4549]},{"teal":4890,"source":"contracts/NFDInstance.algo.ts:1098","pc":[4550,4551,4552]},{"teal":4891,"source":"contracts/NFDInstance.algo.ts:1098","pc":[4553,4554]},{"teal":4895,"source":"contracts/NFDInstance.algo.ts:1099","pc":[4555,4556]},{"teal":4896,"source":"contracts/NFDInstance.algo.ts:1099","pc":[4557]},{"teal":4897,"source":"contracts/NFDInstance.algo.ts:1099","pc":[4558]},{"teal":4900,"source":"contracts/NFDInstance.algo.ts:1099","errorMessage":"global state value does not exist: parentAppId.globalState(NFD_KEY_OWNER)","pc":[4559]},{"teal":4901,"source":"contracts/NFDInstance.algo.ts:1099","pc":[4560,4561]},{"teal":4905,"source":"contracts/NFDInstance.algo.ts:1104","pc":[4562,4563]},{"teal":4906,"source":"contracts/NFDInstance.algo.ts:1104","pc":[4564,4565]},{"teal":4907,"source":"contracts/NFDInstance.algo.ts:1104","pc":[4566]},{"teal":4908,"source":"contracts/NFDInstance.algo.ts:1104","pc":[4567,4568]},{"teal":4909,"source":"contracts/NFDInstance.algo.ts:1104","pc":[4569]},{"teal":4910,"source":"contracts/NFDInstance.algo.ts:1104","pc":[4570,4571]},{"teal":4914,"source":"contracts/NFDInstance.algo.ts:1106","pc":[4572,4573]},{"teal":4915,"source":"contracts/NFDInstance.algo.ts:1106","pc":[4574,4575]},{"teal":4916,"source":"contracts/NFDInstance.algo.ts:1106","pc":[4576,4577,4578]},{"teal":4917,"source":"contracts/NFDInstance.algo.ts:1106","pc":[4579]},{"teal":4918,"source":"contracts/NFDInstance.algo.ts:1106","pc":[4580]},{"teal":4919,"source":"contracts/NFDInstance.algo.ts:1106","pc":[4581,4582]},{"teal":4920,"source":"contracts/NFDInstance.algo.ts:1106","pc":[4583]},{"teal":4921,"source":"contracts/NFDInstance.algo.ts:1106","pc":[4584,4585]},{"teal":4926,"source":"contracts/NFDInstance.algo.ts:1107","pc":[4586,4587]},{"teal":4927,"source":"contracts/NFDInstance.algo.ts:1107","pc":[4588,4589]},{"teal":4928,"source":"contracts/NFDInstance.algo.ts:1107","pc":[4590,4591,4592]},{"teal":4929,"source":"contracts/NFDInstance.algo.ts:1107","pc":[4593]},{"teal":4930,"source":"contracts/NFDInstance.algo.ts:1107","pc":[4594]},{"teal":4931,"source":"contracts/NFDInstance.algo.ts:1107","pc":[4595,4596,4597]},{"teal":4936,"source":"contracts/NFDInstance.algo.ts:1108","pc":[4598,4599]},{"teal":4937,"source":"contracts/NFDInstance.algo.ts:1108","pc":[4600,4601,4602]},{"teal":4938,"source":"contracts/NFDInstance.algo.ts:1108","pc":[4603]},{"teal":4939,"source":"contracts/NFDInstance.algo.ts:1108","pc":[4604,4605]},{"teal":4945,"source":"contracts/NFDInstance.algo.ts:1110","pc":[4606,4607]},{"teal":4946,"source":"contracts/NFDInstance.algo.ts:1110","pc":[4608,4609]},{"teal":4947,"source":"contracts/NFDInstance.algo.ts:1110","pc":[4610]},{"teal":4948,"source":"contracts/NFDInstance.algo.ts:1110","pc":[4611,4612,4613]},{"teal":4953,"source":"contracts/NFDInstance.algo.ts:1111","pc":[4614,4615]},{"teal":4954,"source":"contracts/NFDInstance.algo.ts:1111","pc":[4616,4617]},{"teal":4959,"source":"contracts/NFDInstance.algo.ts:1114","pc":[4618,4619]},{"teal":4960,"source":"contracts/NFDInstance.algo.ts:1114","pc":[4620,4621]},{"teal":4961,"source":"contracts/NFDInstance.algo.ts:1114","pc":[4622]},{"teal":4962,"source":"contracts/NFDInstance.algo.ts:1114","pc":[4623,4624]},{"teal":4963,"source":"contracts/NFDInstance.algo.ts:1097","pc":[4625,4626,4627]},{"teal":4968,"source":"contracts/NFDInstance.algo.ts:1117","pc":[4628]},{"teal":4969,"source":"contracts/NFDInstance.algo.ts:1117","pc":[4629,4630]},{"teal":4980,"source":"contracts/NFDInstance.algo.ts:1124","pc":[4631,4632]},{"teal":4981,"source":"contracts/NFDInstance.algo.ts:1123","pc":[4633,4634]},{"teal":4982,"source":"contracts/NFDInstance.algo.ts:1122","pc":[4635]},{"teal":4983,"source":"contracts/NFDInstance.algo.ts:1121","pc":[4636,4637]},{"teal":4984,"source":"contracts/NFDInstance.algo.ts:1121","pc":[4638,4639,4640]},{"teal":4985,"source":"contracts/NFDInstance.algo.ts:1120","pc":[4641,4642]},{"teal":4986,"source":"contracts/NFDInstance.algo.ts:1119","pc":[4643,4644,4645]},{"teal":4998,"source":"contracts/NFDInstance.algo.ts:1126","pc":[4646,4647,4648,4649,4650,4651]},{"teal":4999,"source":"contracts/NFDInstance.algo.ts:1126","pc":[4652]},{"teal":5000,"source":"contracts/NFDInstance.algo.ts:1126","pc":[4653]},{"teal":5001,"source":"contracts/NFDInstance.algo.ts:1126","pc":[4654,4655,4656,4657]},{"teal":5002,"source":"contracts/NFDInstance.algo.ts:1127","pc":[4658,4659,4660]},{"teal":5003,"source":"contracts/NFDInstance.algo.ts:1127","pc":[4661]},{"teal":5004,"source":"contracts/NFDInstance.algo.ts:1127","pc":[4662,4663,4664]},{"teal":5005,"source":"contracts/NFDInstance.algo.ts:1128","pc":[4665,4666]},{"teal":5006,"source":"contracts/NFDInstance.algo.ts:1128","pc":[4667]},{"teal":5007,"source":"contracts/NFDInstance.algo.ts:1128","pc":[4668]},{"teal":5008,"source":"contracts/NFDInstance.algo.ts:1128","pc":[4669]},{"teal":5009,"source":"contracts/NFDInstance.algo.ts:1128","pc":[4670]},{"teal":5010,"source":"contracts/NFDInstance.algo.ts:1128","pc":[4671,4672,4673]},{"teal":5011,"source":"contracts/NFDInstance.algo.ts:1128","pc":[4674]},{"teal":5012,"source":"contracts/NFDInstance.algo.ts:1128","pc":[4675]},{"teal":5013,"source":"contracts/NFDInstance.algo.ts:1128","pc":[4676,4677,4678]},{"teal":5014,"source":"contracts/NFDInstance.algo.ts:1129","pc":[4679,4680]},{"teal":5015,"source":"contracts/NFDInstance.algo.ts:1129","pc":[4681,4682,4683]},{"teal":5016,"source":"contracts/NFDInstance.algo.ts:1130","pc":[4684,4685]},{"teal":5017,"source":"contracts/NFDInstance.algo.ts:1130","pc":[4686,4687]},{"teal":5018,"source":"contracts/NFDInstance.algo.ts:1130","pc":[4688,4689,4690]},{"teal":5019,"source":"contracts/NFDInstance.algo.ts:1131","pc":[4691,4692]},{"teal":5020,"source":"contracts/NFDInstance.algo.ts:1131","pc":[4693]},{"teal":5021,"source":"contracts/NFDInstance.algo.ts:1131","pc":[4694,4695,4696]},{"teal":5022,"source":"contracts/NFDInstance.algo.ts:1132","pc":[4697,4698]},{"teal":5023,"source":"contracts/NFDInstance.algo.ts:1132","pc":[4699,4700]},{"teal":5024,"source":"contracts/NFDInstance.algo.ts:1132","pc":[4701]},{"teal":5025,"source":"contracts/NFDInstance.algo.ts:1132","pc":[4702,4703,4704]},{"teal":5026,"source":"contracts/NFDInstance.algo.ts:1133","pc":[4705,4706]},{"teal":5027,"source":"contracts/NFDInstance.algo.ts:1133","pc":[4707]},{"teal":5028,"source":"contracts/NFDInstance.algo.ts:1133","pc":[4708]},{"teal":5029,"source":"contracts/NFDInstance.algo.ts:1133","pc":[4709]},{"teal":5030,"source":"contracts/NFDInstance.algo.ts:1133","pc":[4710,4711,4712]},{"teal":5031,"source":"contracts/NFDInstance.algo.ts:1126","pc":[4713]},{"teal":5032,"source":"contracts/NFDInstance.algo.ts:1126","pc":[4714]},{"teal":5033,"source":"contracts/NFDInstance.algo.ts:1126","pc":[4715]},{"teal":5034,"source":"contracts/NFDInstance.algo.ts:1126","pc":[4716]},{"teal":5035,"source":"contracts/NFDInstance.algo.ts:1030","pc":[4717]},{"teal":5040,"source":"contracts/NFDInstance.algo.ts:1138","pc":[4718,4719,4720]},{"teal":5041,"source":"contracts/NFDInstance.algo.ts:1138","pc":[4721]},{"teal":5042,"source":"contracts/NFDInstance.algo.ts:1138","pc":[4722]},{"teal":5043,"source":"contracts/NFDInstance.algo.ts:1138","pc":[4723]},{"teal":5044,"source":"contracts/NFDInstance.algo.ts:1138","pc":[4724]},{"teal":5047,"source":"contracts/NFDInstance.algo.ts:1138","errorMessage":"argument 0 (address) for setPrimaryAddress must be a address","pc":[4725]},{"teal":5050,"source":"contracts/NFDInstance.algo.ts:1138","pc":[4726,4727,4728]},{"teal":5051,"source":"contracts/NFDInstance.algo.ts:1138","pc":[4729,4730,4731]},{"teal":5054,"source":"contracts/NFDInstance.algo.ts:1138","pc":[4732,4733,4734]},{"teal":5055,"source":"contracts/NFDInstance.algo.ts:1138","pc":[4735]},{"teal":5056,"source":"contracts/NFDInstance.algo.ts:1138","pc":[4736]},{"teal":5060,"source":"contracts/NFDInstance.algo.ts:1138","pc":[4737,4738,4739]},{"teal":5064,"source":"contracts/NFDInstance.algo.ts:1139","pc":[4740,4741,4742]},{"teal":5068,"source":"contracts/NFDInstance.algo.ts:1141","pc":[4743,4744]},{"teal":5069,"source":"contracts/NFDInstance.algo.ts:1141","pc":[4745,4746,4747,4748,4749,4750,4751,4752,4753,4754,4755,4756,4757,4758,4759]},{"teal":5070,"source":"contracts/NFDInstance.algo.ts:1141","pc":[4760]},{"teal":5071,"source":"contracts/NFDInstance.algo.ts:1141","pc":[4761]},{"teal":5075,"source":"contracts/NFDInstance.algo.ts:1142","pc":[4762]},{"teal":5076,"source":"contracts/NFDInstance.algo.ts:1142","pc":[4763,4764]},{"teal":5077,"source":"contracts/NFDInstance.algo.ts:1142","pc":[4765]},{"teal":5078,"source":"contracts/NFDInstance.algo.ts:1142","pc":[4766]},{"teal":5082,"source":"contracts/NFDInstance.algo.ts:1143","pc":[4767,4768]},{"teal":5083,"source":"contracts/NFDInstance.algo.ts:1143","pc":[4769,4770]},{"teal":5084,"source":"contracts/NFDInstance.algo.ts:1143","pc":[4771,4772,4773]},{"teal":5085,"source":"contracts/NFDInstance.algo.ts:1138","pc":[4774]},{"teal":5090,"source":"contracts/NFDInstance.algo.ts:1156","pc":[4775,4776]},{"teal":5093,"source":"contracts/NFDInstance.algo.ts:1156","pc":[4777,4778,4779]},{"teal":5094,"source":"contracts/NFDInstance.algo.ts:1156","pc":[4780,4781,4782]},{"teal":5097,"source":"contracts/NFDInstance.algo.ts:1156","pc":[4783,4784,4785]},{"teal":5098,"source":"contracts/NFDInstance.algo.ts:1156","pc":[4786,4787,4788]},{"teal":5101,"source":"contracts/NFDInstance.algo.ts:1156","pc":[4789,4790,4791]},{"teal":5102,"source":"contracts/NFDInstance.algo.ts:1156","pc":[4792,4793]},{"teal":5103,"source":"contracts/NFDInstance.algo.ts:1156","pc":[4794]},{"teal":5104,"source":"contracts/NFDInstance.algo.ts:1156","pc":[4795,4796]},{"teal":5105,"source":"contracts/NFDInstance.algo.ts:1156","pc":[4797]},{"teal":5106,"source":"contracts/NFDInstance.algo.ts:1156","pc":[4798]},{"teal":5107,"source":"contracts/NFDInstance.algo.ts:1156","pc":[4799]},{"teal":5108,"source":"contracts/NFDInstance.algo.ts:1156","pc":[4800]},{"teal":5109,"source":"contracts/NFDInstance.algo.ts:1156","pc":[4801]},{"teal":5122,"source":"contracts/NFDInstance.algo.ts:1156","pc":[4802,4803,4804]},{"teal":5125,"source":"contracts/NFDInstance.algo.ts:1156","pc":[4805]},{"teal":5129,"source":"contracts/NFDInstance.algo.ts:1157","pc":[4806,4807]},{"teal":5130,"source":"contracts/NFDInstance.algo.ts:1157","pc":[4808,4809]},{"teal":5131,"source":"contracts/NFDInstance.algo.ts:1157","pc":[4810]},{"teal":5134,"source":"contracts/NFDInstance.algo.ts:1157","errorMessage":"caller must be NFD registry!","pc":[4811]},{"teal":5138,"source":"contracts/NFDInstance.algo.ts:1158","pc":[4812,4813,4814]},{"teal":5142,"source":"contracts/NFDInstance.algo.ts:1159","pc":[4815,4816]},{"teal":5143,"source":"contracts/NFDInstance.algo.ts:1159","pc":[4817,4818,4819]},{"teal":5144,"source":"contracts/NFDInstance.algo.ts:1159","pc":[4820,4821,4822,4823,4824,4825,4826,4827]},{"teal":5145,"source":"contracts/NFDInstance.algo.ts:1159","pc":[4828]},{"teal":5148,"source":"contracts/NFDInstance.algo.ts:1159","errorMessage":"field being verified MUST START with u.cav","pc":[4829]},{"teal":5152,"source":"contracts/NFDInstance.algo.ts:1160","pc":[4830,4831]},{"teal":5153,"source":"contracts/NFDInstance.algo.ts:1160","pc":[4832,4833,4834]},{"teal":5154,"source":"contracts/NFDInstance.algo.ts:1160","pc":[4835,4836]},{"teal":5155,"source":"contracts/NFDInstance.algo.ts:1160","pc":[4837]},{"teal":5158,"source":"contracts/NFDInstance.algo.ts:1160","errorMessage":"destination field MUST START with v.ca[....]","pc":[4838]},{"teal":5162,"source":"contracts/NFDInstance.algo.ts:1161","pc":[4839,4840]},{"teal":5163,"source":"contracts/NFDInstance.algo.ts:1161","pc":[4841,4842]},{"teal":5164,"source":"contracts/NFDInstance.algo.ts:1161","pc":[4843]},{"teal":5165,"source":"contracts/NFDInstance.algo.ts:1161","pc":[4844,4845]},{"teal":5166,"source":"contracts/NFDInstance.algo.ts:1161","pc":[4846]},{"teal":5167,"source":"contracts/NFDInstance.algo.ts:1161","pc":[4847,4848]},{"teal":5168,"source":"contracts/NFDInstance.algo.ts:1161","pc":[4849]},{"teal":5169,"source":"contracts/NFDInstance.algo.ts:1161","pc":[4850,4851]},{"teal":5170,"source":"contracts/NFDInstance.algo.ts:1161","pc":[4852]},{"teal":5173,"source":"contracts/NFDInstance.algo.ts:1161","errorMessage":"destination field must end END with .as","pc":[4853]},{"teal":5180,"source":"contracts/NFDInstance.algo.ts:1163","pc":[4854,4855]},{"teal":5181,"source":"contracts/NFDInstance.algo.ts:1163","pc":[4856]},{"teal":5182,"source":"contracts/NFDInstance.algo.ts:1163","pc":[4857]},{"teal":5183,"source":"contracts/NFDInstance.algo.ts:1163","pc":[4858]},{"teal":5186,"source":"contracts/NFDInstance.algo.ts:1162","errorMessage":"referenced field to add as verified address must have value in box storage","pc":[4859]},{"teal":5190,"source":"contracts/NFDInstance.algo.ts:1166","pc":[4860]},{"teal":5191,"source":"contracts/NFDInstance.algo.ts:1166","pc":[4861,4862]},{"teal":5192,"source":"contracts/NFDInstance.algo.ts:1166","pc":[4863]},{"teal":5193,"source":"contracts/NFDInstance.algo.ts:1166","pc":[4864]},{"teal":5197,"source":"contracts/NFDInstance.algo.ts:1168","pc":[4865,4866]},{"teal":5198,"source":"contracts/NFDInstance.algo.ts:1168","pc":[4867]},{"teal":5201,"source":"contracts/NFDInstance.algo.ts:1168","errorMessage":"box value does not exist: this.boxes(fieldBeingVerified).value","pc":[4868]},{"teal":5202,"source":"contracts/NFDInstance.algo.ts:1168","pc":[4869,4870]},{"teal":5206,"source":"contracts/NFDInstance.algo.ts:1169","pc":[4871,4872]},{"teal":5207,"source":"contracts/NFDInstance.algo.ts:1169","pc":[4873]},{"teal":5215,"source":"contracts/NFDInstance.algo.ts:1171","pc":[4874,4875,4876,4877,4878,4879]},{"teal":5216,"source":"contracts/NFDInstance.algo.ts:1171","pc":[4880]},{"teal":5217,"source":"contracts/NFDInstance.algo.ts:1171","pc":[4881]},{"teal":5218,"source":"contracts/NFDInstance.algo.ts:1171","pc":[4882,4883]},{"teal":5219,"source":"contracts/NFDInstance.algo.ts:1172","pc":[4884,4885,4886]},{"teal":5220,"source":"contracts/NFDInstance.algo.ts:1172","pc":[4887]},{"teal":5221,"source":"contracts/NFDInstance.algo.ts:1172","pc":[4888,4889,4890]},{"teal":5222,"source":"contracts/NFDInstance.algo.ts:1173","pc":[4891,4892]},{"teal":5223,"source":"contracts/NFDInstance.algo.ts:1173","pc":[4893]},{"teal":5224,"source":"contracts/NFDInstance.algo.ts:1173","pc":[4894]},{"teal":5225,"source":"contracts/NFDInstance.algo.ts:1173","pc":[4895]},{"teal":5226,"source":"contracts/NFDInstance.algo.ts:1173","pc":[4896]},{"teal":5227,"source":"contracts/NFDInstance.algo.ts:1173","pc":[4897,4898,4899]},{"teal":5228,"source":"contracts/NFDInstance.algo.ts:1173","pc":[4900]},{"teal":5229,"source":"contracts/NFDInstance.algo.ts:1173","pc":[4901]},{"teal":5230,"source":"contracts/NFDInstance.algo.ts:1173","pc":[4902,4903,4904]},{"teal":5231,"source":"contracts/NFDInstance.algo.ts:1174","pc":[4905,4906]},{"teal":5232,"source":"contracts/NFDInstance.algo.ts:1174","pc":[4907,4908,4909]},{"teal":5233,"source":"contracts/NFDInstance.algo.ts:1171","pc":[4910]},{"teal":5234,"source":"contracts/NFDInstance.algo.ts:1171","pc":[4911]},{"teal":5235,"source":"contracts/NFDInstance.algo.ts:1171","pc":[4912]},{"teal":5236,"source":"contracts/NFDInstance.algo.ts:1171","pc":[4913]},{"teal":5240,"source":"contracts/NFDInstance.algo.ts:1177","pc":[4914,4915]},{"teal":5241,"source":"contracts/NFDInstance.algo.ts:1177","pc":[4916,4917]},{"teal":5242,"source":"contracts/NFDInstance.algo.ts:1177","pc":[4918,4919,4920]},{"teal":5245,"source":"contracts/NFDInstance.algo.ts:1156","pc":[4921,4922]},{"teal":5246,"source":"contracts/NFDInstance.algo.ts:1156","pc":[4923]},{"teal":5251,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4924,4925]},{"teal":5254,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4926,4927,4928]},{"teal":5255,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4929]},{"teal":5256,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4930]},{"teal":5257,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4931]},{"teal":5258,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4932]},{"teal":5261,"source":"contracts/NFDInstance.algo.ts:1188","errorMessage":"argument 0 (mbrRefundDest) for registryRemovingVerifiedAddress must be a address","pc":[4933]},{"teal":5264,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4934,4935,4936]},{"teal":5265,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4937]},{"teal":5266,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4938]},{"teal":5267,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4939]},{"teal":5268,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4940]},{"teal":5271,"source":"contracts/NFDInstance.algo.ts:1188","errorMessage":"argument 1 (address) for registryRemovingVerifiedAddress must be a address","pc":[4941]},{"teal":5274,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4942,4943,4944]},{"teal":5275,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4945,4946,4947]},{"teal":5278,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4948,4949,4950]},{"teal":5279,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4951,4952]},{"teal":5280,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4953]},{"teal":5281,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4954,4955]},{"teal":5282,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4956]},{"teal":5283,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4957]},{"teal":5284,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4958]},{"teal":5285,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4959]},{"teal":5286,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4960]},{"teal":5297,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4961,4962,4963]},{"teal":5300,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4964]},{"teal":5301,"source":"contracts/NFDInstance.algo.ts:1188","pc":[4965]},{"teal":5305,"source":"contracts/NFDInstance.algo.ts:1189","pc":[4966,4967]},{"teal":5306,"source":"contracts/NFDInstance.algo.ts:1189","pc":[4968,4969]},{"teal":5307,"source":"contracts/NFDInstance.algo.ts:1189","pc":[4970]},{"teal":5310,"source":"contracts/NFDInstance.algo.ts:1189","errorMessage":"caller must be NFD registry!","pc":[4971]},{"teal":5315,"source":"contracts/NFDInstance.algo.ts:1191","pc":[4972,4973,4974]},{"teal":5316,"source":"contracts/NFDInstance.algo.ts:1191","pc":[4975]},{"teal":5317,"source":"contracts/NFDInstance.algo.ts:1191","pc":[4976,4977,4978]},{"teal":5322,"source":"contracts/NFDInstance.algo.ts:1192","pc":[4979,4980,4981]},{"teal":5323,"source":"contracts/NFDInstance.algo.ts:1192","pc":[4982]},{"teal":5326,"source":"contracts/NFDInstance.algo.ts:1192","errorMessage":"can't be for sale","pc":[4983]},{"teal":5331,"source":"contracts/NFDInstance.algo.ts:1194","pc":[4984,4985]},{"teal":5332,"source":"contracts/NFDInstance.algo.ts:1194","pc":[4986,4987,4988]},{"teal":5333,"source":"contracts/NFDInstance.algo.ts:1194","pc":[4989,4990]},{"teal":5334,"source":"contracts/NFDInstance.algo.ts:1194","pc":[4991]},{"teal":5337,"source":"contracts/NFDInstance.algo.ts:1194","errorMessage":"verified field MUST START with v.ca[....]","pc":[4992]},{"teal":5344,"source":"contracts/NFDInstance.algo.ts:1196","pc":[4993,4994]},{"teal":5345,"source":"contracts/NFDInstance.algo.ts:1196","pc":[4995,4996]},{"teal":5346,"source":"contracts/NFDInstance.algo.ts:1196","pc":[4997]},{"teal":5347,"source":"contracts/NFDInstance.algo.ts:1196","pc":[4998,4999]},{"teal":5348,"source":"contracts/NFDInstance.algo.ts:1196","pc":[5000]},{"teal":5349,"source":"contracts/NFDInstance.algo.ts:1196","pc":[5001,5002]},{"teal":5350,"source":"contracts/NFDInstance.algo.ts:1196","pc":[5003]},{"teal":5351,"source":"contracts/NFDInstance.algo.ts:1196","pc":[5004,5005]},{"teal":5352,"source":"contracts/NFDInstance.algo.ts:1196","pc":[5006]},{"teal":5355,"source":"contracts/NFDInstance.algo.ts:1195","errorMessage":"verified field must end END with .as","pc":[5007]},{"teal":5359,"source":"contracts/NFDInstance.algo.ts:1199","pc":[5008]},{"teal":5360,"source":"contracts/NFDInstance.algo.ts:1199","pc":[5009,5010]},{"teal":5361,"source":"contracts/NFDInstance.algo.ts:1199","pc":[5011]},{"teal":5362,"source":"contracts/NFDInstance.algo.ts:1199","pc":[5012]},{"teal":5366,"source":"contracts/NFDInstance.algo.ts:1201","pc":[5013,5014]},{"teal":5367,"source":"contracts/NFDInstance.algo.ts:1201","pc":[5015]},{"teal":5370,"source":"contracts/NFDInstance.algo.ts:1201","errorMessage":"box value does not exist: this.boxes(fieldBeingChanged).size","pc":[5016]},{"teal":5371,"source":"contracts/NFDInstance.algo.ts:1201","pc":[5017,5018]},{"teal":5375,"source":"contracts/NFDInstance.algo.ts:1202","pc":[5019,5020]},{"teal":5376,"source":"contracts/NFDInstance.algo.ts:1202","pc":[5021,5022]},{"teal":5377,"source":"contracts/NFDInstance.algo.ts:1202","pc":[5023,5024,5025]},{"teal":5378,"source":"contracts/NFDInstance.algo.ts:1202","pc":[5026,5027]},{"teal":5386,"source":"contracts/NFDInstance.algo.ts:1204","pc":[5028,5029,5030,5031,5032,5033]},{"teal":5387,"source":"contracts/NFDInstance.algo.ts:1204","pc":[5034]},{"teal":5388,"source":"contracts/NFDInstance.algo.ts:1204","pc":[5035]},{"teal":5389,"source":"contracts/NFDInstance.algo.ts:1204","pc":[5036,5037]},{"teal":5390,"source":"contracts/NFDInstance.algo.ts:1205","pc":[5038,5039,5040]},{"teal":5391,"source":"contracts/NFDInstance.algo.ts:1205","pc":[5041]},{"teal":5392,"source":"contracts/NFDInstance.algo.ts:1205","pc":[5042,5043,5044]},{"teal":5393,"source":"contracts/NFDInstance.algo.ts:1206","pc":[5045,5046]},{"teal":5394,"source":"contracts/NFDInstance.algo.ts:1206","pc":[5047]},{"teal":5395,"source":"contracts/NFDInstance.algo.ts:1206","pc":[5048]},{"teal":5396,"source":"contracts/NFDInstance.algo.ts:1206","pc":[5049]},{"teal":5397,"source":"contracts/NFDInstance.algo.ts:1206","pc":[5050]},{"teal":5398,"source":"contracts/NFDInstance.algo.ts:1206","pc":[5051,5052,5053]},{"teal":5399,"source":"contracts/NFDInstance.algo.ts:1206","pc":[5054]},{"teal":5400,"source":"contracts/NFDInstance.algo.ts:1206","pc":[5055]},{"teal":5401,"source":"contracts/NFDInstance.algo.ts:1206","pc":[5056,5057,5058]},{"teal":5402,"source":"contracts/NFDInstance.algo.ts:1207","pc":[5059,5060]},{"teal":5403,"source":"contracts/NFDInstance.algo.ts:1207","pc":[5061,5062,5063]},{"teal":5404,"source":"contracts/NFDInstance.algo.ts:1204","pc":[5064]},{"teal":5405,"source":"contracts/NFDInstance.algo.ts:1204","pc":[5065]},{"teal":5406,"source":"contracts/NFDInstance.algo.ts:1204","pc":[5066]},{"teal":5407,"source":"contracts/NFDInstance.algo.ts:1204","pc":[5067]},{"teal":5412,"source":"contracts/NFDInstance.algo.ts:1210","pc":[5068,5069]},{"teal":5413,"source":"contracts/NFDInstance.algo.ts:1210","pc":[5070]},{"teal":5414,"source":"contracts/NFDInstance.algo.ts:1210","pc":[5071]},{"teal":5415,"source":"contracts/NFDInstance.algo.ts:1210","pc":[5072]},{"teal":5416,"source":"contracts/NFDInstance.algo.ts:1210","pc":[5073]},{"teal":5417,"source":"contracts/NFDInstance.algo.ts:1210","pc":[5074,5075,5076]},{"teal":5426,"source":"contracts/NFDInstance.algo.ts:1212","pc":[5077]},{"teal":5427,"source":"contracts/NFDInstance.algo.ts:1212","pc":[5078]},{"teal":5428,"source":"contracts/NFDInstance.algo.ts:1212","pc":[5079,5080]},{"teal":5432,"source":"contracts/NFDInstance.algo.ts:1213","pc":[5081,5082]},{"teal":5433,"source":"contracts/NFDInstance.algo.ts:1213","pc":[5083,5084]},{"teal":5434,"source":"contracts/NFDInstance.algo.ts:1213","pc":[5085,5086]},{"teal":5435,"source":"contracts/NFDInstance.algo.ts:1213","pc":[5087]},{"teal":5436,"source":"contracts/NFDInstance.algo.ts:1213","pc":[5088,5089]},{"teal":5437,"source":"contracts/NFDInstance.algo.ts:1213","pc":[5090]},{"teal":5438,"source":"contracts/NFDInstance.algo.ts:1213","pc":[5091]},{"teal":5439,"source":"contracts/NFDInstance.algo.ts:1213","pc":[5092]},{"teal":5440,"source":"contracts/NFDInstance.algo.ts:1213","pc":[5093,5094]},{"teal":5444,"source":"contracts/NFDInstance.algo.ts:1214","pc":[5095,5096]},{"teal":5445,"source":"contracts/NFDInstance.algo.ts:1214","pc":[5097,5098]},{"teal":5449,"source":"contracts/NFDInstance.algo.ts:1215","pc":[5099,5100]},{"teal":5450,"source":"contracts/NFDInstance.algo.ts:1215","pc":[5101,5102]},{"teal":5453,"source":"contracts/NFDInstance.algo.ts:1212","pc":[5103]},{"teal":5454,"source":"contracts/NFDInstance.algo.ts:1212","pc":[5104,5105]},{"teal":5457,"source":"contracts/NFDInstance.algo.ts:1212","pc":[5106]},{"teal":5462,"source":"contracts/NFDInstance.algo.ts:1219","pc":[5107,5108]},{"teal":5465,"source":"contracts/NFDInstance.algo.ts:1188","pc":[5109,5110]},{"teal":5468,"source":"contracts/NFDInstance.algo.ts:1188","pc":[5111,5112]},{"teal":5469,"source":"contracts/NFDInstance.algo.ts:1188","pc":[5113]},{"teal":5478,"source":"contracts/NFDInstance.algo.ts:1228","pc":[5114,5115,5116]},{"teal":5485,"source":"contracts/NFDInstance.algo.ts:1230","pc":[5117]},{"teal":5486,"source":"contracts/NFDInstance.algo.ts:1230","pc":[5118,5119]},{"teal":5487,"source":"contracts/NFDInstance.algo.ts:1230","pc":[5120,5121]},{"teal":5488,"source":"contracts/NFDInstance.algo.ts:1230","pc":[5122,5123,5124,5125,5126,5127]},{"teal":5489,"source":"contracts/NFDInstance.algo.ts:1230","pc":[5128,5129]},{"teal":5493,"source":"contracts/NFDInstance.algo.ts:1231","pc":[5130,5131]},{"teal":5494,"source":"contracts/NFDInstance.algo.ts:1231","pc":[5132,5133]},{"teal":5498,"source":"contracts/NFDInstance.algo.ts:1232","pc":[5134,5135]},{"teal":5499,"source":"contracts/NFDInstance.algo.ts:1232","pc":[5136]},{"teal":5500,"source":"contracts/NFDInstance.algo.ts:1232","pc":[5137]},{"teal":5501,"source":"contracts/NFDInstance.algo.ts:1232","pc":[5138]},{"teal":5502,"source":"contracts/NFDInstance.algo.ts:1232","pc":[5139]},{"teal":5503,"source":"contracts/NFDInstance.algo.ts:1232","pc":[5140,5141,5142]},{"teal":5504,"source":"contracts/NFDInstance.algo.ts:1232","pc":[5143]},{"teal":5505,"source":"contracts/NFDInstance.algo.ts:1232","pc":[5144]},{"teal":5506,"source":"contracts/NFDInstance.algo.ts:1232","pc":[5145,5146]},{"teal":5507,"source":"contracts/NFDInstance.algo.ts:1232","pc":[5147,5148]},{"teal":5508,"source":"contracts/NFDInstance.algo.ts:1232","pc":[5149,5150]},{"teal":5511,"source":"contracts/NFDInstance.algo.ts:1230","pc":[5151]},{"teal":5512,"source":"contracts/NFDInstance.algo.ts:1230","pc":[5152,5153]},{"teal":5515,"source":"contracts/NFDInstance.algo.ts:1230","pc":[5154]},{"teal":5516,"source":"contracts/NFDInstance.algo.ts:1230","pc":[5155,5156]},{"teal":5517,"source":"contracts/NFDInstance.algo.ts:1230","pc":[5157]},{"teal":5518,"source":"contracts/NFDInstance.algo.ts:1230","pc":[5158]},{"teal":5519,"source":"contracts/NFDInstance.algo.ts:1230","pc":[5159,5160]},{"teal":5520,"source":"contracts/NFDInstance.algo.ts:1230","pc":[5161,5162,5163]},{"teal":5521,"source":"contracts/NFDInstance.algo.ts:1228","pc":[5164]},{"teal":5525,"source":"contracts/NFDInstance.algo.ts:1242","pc":[5165,5166,5167]},{"teal":5528,"source":"contracts/NFDInstance.algo.ts:1242","pc":[5168]},{"teal":5529,"source":"contracts/NFDInstance.algo.ts:1242","pc":[5169]},{"teal":5533,"source":"contracts/NFDInstance.algo.ts:1243","pc":[5170,5171,5172]},{"teal":5538,"source":"contracts/NFDInstance.algo.ts:1247","pc":[5173,5174,5175]},{"teal":5539,"source":"contracts/NFDInstance.algo.ts:1247","pc":[5176,5177,5178]},{"teal":5544,"source":"contracts/NFDInstance.algo.ts:1248","pc":[5179,5180]},{"teal":5545,"source":"contracts/NFDInstance.algo.ts:1248","pc":[5181]},{"teal":5546,"source":"contracts/NFDInstance.algo.ts:1248","pc":[5182]},{"teal":5547,"source":"contracts/NFDInstance.algo.ts:1248","pc":[5183]},{"teal":5550,"source":"contracts/NFDInstance.algo.ts:1248","errorMessage":"sender must be owner","pc":[5184]},{"teal":5555,"source":"contracts/NFDInstance.algo.ts:1251","pc":[5185,5186]},{"teal":5556,"source":"contracts/NFDInstance.algo.ts:1251","pc":[5187]},{"teal":5557,"source":"contracts/NFDInstance.algo.ts:1251","pc":[5188]},{"teal":5560,"source":"contracts/NFDInstance.algo.ts:1251","errorMessage":"part of opt-in for new asset, must have prior txn paying MBR","pc":[5189]},{"teal":5567,"source":"contracts/NFDInstance.algo.ts:1253","pc":[5190,5191]},{"teal":5568,"source":"contracts/NFDInstance.algo.ts:1253","pc":[5192]},{"teal":5569,"source":"contracts/NFDInstance.algo.ts:1253","pc":[5193]},{"teal":5570,"source":"contracts/NFDInstance.algo.ts:1253","pc":[5194,5195]},{"teal":5573,"source":"contracts/NFDInstance.algo.ts:1253","pc":[5196,5197]},{"teal":5574,"source":"contracts/NFDInstance.algo.ts:1253","pc":[5198,5199]},{"teal":5575,"source":"contracts/NFDInstance.algo.ts:1253","pc":[5200]},{"teal":5576,"source":"contracts/NFDInstance.algo.ts:1253","pc":[5201]},{"teal":5579,"source":"contracts/NFDInstance.algo.ts:1253","errorMessage":"transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"typeEnum\",\"expected\":\"pay\"}","pc":[5202]},{"teal":5582,"source":"contracts/NFDInstance.algo.ts:1254","pc":[5203,5204]},{"teal":5583,"source":"contracts/NFDInstance.algo.ts:1254","pc":[5205,5206]},{"teal":5584,"source":"contracts/NFDInstance.algo.ts:1254","pc":[5207,5208]},{"teal":5585,"source":"contracts/NFDInstance.algo.ts:1254","pc":[5209]},{"teal":5588,"source":"contracts/NFDInstance.algo.ts:1254","errorMessage":"transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}","pc":[5210]},{"teal":5591,"source":"contracts/NFDInstance.algo.ts:1255","pc":[5211,5212]},{"teal":5592,"source":"contracts/NFDInstance.algo.ts:1255","pc":[5213,5214]},{"teal":5593,"source":"contracts/NFDInstance.algo.ts:1255","pc":[5215,5216]},{"teal":5594,"source":"contracts/NFDInstance.algo.ts:1255","pc":[5217,5218]},{"teal":5595,"source":"contracts/NFDInstance.algo.ts:1255","pc":[5219]},{"teal":5596,"source":"contracts/NFDInstance.algo.ts:1255","pc":[5220]},{"teal":5597,"source":"contracts/NFDInstance.algo.ts:1255","pc":[5221]},{"teal":5598,"source":"contracts/NFDInstance.algo.ts:1255","pc":[5222]},{"teal":5601,"source":"contracts/NFDInstance.algo.ts:1255","errorMessage":"transaction verification failed: {\"txn\":\"this.txnGroup[this.txn.groupIndex - 1]\",\"field\":\"amount\",\"expected\":\"100_000 * (this.txn.numAppArgs - 1)\"}","pc":[5223]},{"teal":5605,"source":"contracts/NFDInstance.algo.ts:1257","pc":[5224]},{"teal":5606,"source":"contracts/NFDInstance.algo.ts:1257","pc":[5225,5226]},{"teal":5611,"source":"contracts/NFDInstance.algo.ts:1257","pc":[5227,5228]},{"teal":5612,"source":"contracts/NFDInstance.algo.ts:1257","pc":[5229,5230]},{"teal":5613,"source":"contracts/NFDInstance.algo.ts:1257","pc":[5231]},{"teal":5614,"source":"contracts/NFDInstance.algo.ts:1257","pc":[5232,5233,5234]},{"teal":5618,"source":"contracts/NFDInstance.algo.ts:1258","pc":[5235,5236]},{"teal":5619,"source":"contracts/NFDInstance.algo.ts:1258","pc":[5237,5238]},{"teal":5620,"source":"contracts/NFDInstance.algo.ts:1258","pc":[5239]},{"teal":5621,"source":"contracts/NFDInstance.algo.ts:1258","pc":[5240,5241]},{"teal":5626,"source":"contracts/NFDInstance.algo.ts:1260","pc":[5242,5243]},{"teal":5627,"source":"contracts/NFDInstance.algo.ts:1260","pc":[5244,5245]},{"teal":5628,"source":"contracts/NFDInstance.algo.ts:1260","pc":[5246,5247]},{"teal":5629,"source":"contracts/NFDInstance.algo.ts:1260","pc":[5248]},{"teal":5630,"source":"contracts/NFDInstance.algo.ts:1260","pc":[5249]},{"teal":5631,"source":"contracts/NFDInstance.algo.ts:1260","pc":[5250]},{"teal":5632,"source":"contracts/NFDInstance.algo.ts:1260","pc":[5251,5252,5253]},{"teal":5641,"source":"contracts/NFDInstance.algo.ts:1261","pc":[5254]},{"teal":5642,"source":"contracts/NFDInstance.algo.ts:1261","pc":[5255,5256]},{"teal":5643,"source":"contracts/NFDInstance.algo.ts:1261","pc":[5257,5258]},{"teal":5647,"source":"contracts/NFDInstance.algo.ts:1262","pc":[5259,5260]},{"teal":5648,"source":"contracts/NFDInstance.algo.ts:1262","pc":[5261,5262]},{"teal":5652,"source":"contracts/NFDInstance.algo.ts:1263","pc":[5263,5264]},{"teal":5653,"source":"contracts/NFDInstance.algo.ts:1263","pc":[5265,5266]},{"teal":5657,"source":"contracts/NFDInstance.algo.ts:1264","pc":[5267]},{"teal":5658,"source":"contracts/NFDInstance.algo.ts:1264","pc":[5268,5269]},{"teal":5661,"source":"contracts/NFDInstance.algo.ts:1261","pc":[5270]},{"teal":5662,"source":"contracts/NFDInstance.algo.ts:1261","pc":[5271,5272]},{"teal":5665,"source":"contracts/NFDInstance.algo.ts:1261","pc":[5273]},{"teal":5672,"source":"contracts/NFDInstance.algo.ts:1257","pc":[5274,5275]},{"teal":5673,"source":"contracts/NFDInstance.algo.ts:1257","pc":[5276]},{"teal":5674,"source":"contracts/NFDInstance.algo.ts:1257","pc":[5277]},{"teal":5675,"source":"contracts/NFDInstance.algo.ts:1257","pc":[5278,5279]},{"teal":5676,"source":"contracts/NFDInstance.algo.ts:1257","pc":[5280,5281,5282]},{"teal":5679,"source":"contracts/NFDInstance.algo.ts:1242","pc":[5283]},{"teal":5683,"source":"contracts/NFDInstance.algo.ts:1270","pc":[5284,5285,5286]},{"teal":5688,"source":"contracts/NFDInstance.algo.ts:1271","pc":[5287,5288,5289]},{"teal":5689,"source":"contracts/NFDInstance.algo.ts:1271","pc":[5290,5291]},{"teal":5690,"source":"contracts/NFDInstance.algo.ts:1271","pc":[5292]},{"teal":5691,"source":"contracts/NFDInstance.algo.ts:1271","pc":[5293]},{"teal":5692,"source":"contracts/NFDInstance.algo.ts:1271","pc":[5294]},{"teal":5693,"source":"contracts/NFDInstance.algo.ts:1271","pc":[5295]},{"teal":5694,"source":"contracts/NFDInstance.algo.ts:1271","pc":[5296,5297,5298]},{"teal":5699,"source":"contracts/NFDInstance.algo.ts:1272","pc":[5299]},{"teal":5700,"source":"contracts/NFDInstance.algo.ts:1272","pc":[5300]},{"teal":5705,"source":"contracts/NFDInstance.algo.ts:1274","pc":[5301,5302]},{"teal":5706,"source":"contracts/NFDInstance.algo.ts:1274","pc":[5303]},{"teal":5707,"source":"contracts/NFDInstance.algo.ts:1270","pc":[5304]},{"teal":5711,"source":"contracts/NFDInstance.algo.ts:1277","pc":[5305,5306,5307]},{"teal":5716,"source":"contracts/NFDInstance.algo.ts:1278","pc":[5308,5309]},{"teal":5717,"source":"contracts/NFDInstance.algo.ts:1278","pc":[5310,5311]},{"teal":5718,"source":"contracts/NFDInstance.algo.ts:1278","pc":[5312]},{"teal":5719,"source":"contracts/NFDInstance.algo.ts:1278","pc":[5313]},{"teal":5720,"source":"contracts/NFDInstance.algo.ts:1278","pc":[5314]},{"teal":5721,"source":"contracts/NFDInstance.algo.ts:1278","pc":[5315]},{"teal":5722,"source":"contracts/NFDInstance.algo.ts:1278","pc":[5316,5317,5318]},{"teal":5727,"source":"contracts/NFDInstance.algo.ts:1279","pc":[5319]},{"teal":5728,"source":"contracts/NFDInstance.algo.ts:1279","pc":[5320]},{"teal":5733,"source":"contracts/NFDInstance.algo.ts:1281","pc":[5321,5322]},{"teal":5734,"source":"contracts/NFDInstance.algo.ts:1281","pc":[5323,5324]},{"teal":5735,"source":"contracts/NFDInstance.algo.ts:1281","pc":[5325]},{"teal":5738,"source":"contracts/NFDInstance.algo.ts:1281","errorMessage":"global state value does not exist: AppID.fromUint64(appId).globalState(key)","pc":[5326]},{"teal":5739,"source":"contracts/NFDInstance.algo.ts:1277","pc":[5327]},{"teal":5743,"source":"contracts/NFDInstance.algo.ts:1284","pc":[5328,5329,5330]},{"teal":5748,"source":"contracts/NFDInstance.algo.ts:1285","pc":[5331,5332,5333]},{"teal":5749,"source":"contracts/NFDInstance.algo.ts:1285","pc":[5334,5335]},{"teal":5750,"source":"contracts/NFDInstance.algo.ts:1285","pc":[5336]},{"teal":5751,"source":"contracts/NFDInstance.algo.ts:1285","pc":[5337]},{"teal":5752,"source":"contracts/NFDInstance.algo.ts:1285","pc":[5338]},{"teal":5753,"source":"contracts/NFDInstance.algo.ts:1285","pc":[5339]},{"teal":5754,"source":"contracts/NFDInstance.algo.ts:1285","pc":[5340,5341,5342]},{"teal":5759,"source":"contracts/NFDInstance.algo.ts:1286","pc":[5343]},{"teal":5760,"source":"contracts/NFDInstance.algo.ts:1286","pc":[5344]},{"teal":5765,"source":"contracts/NFDInstance.algo.ts:1288","pc":[5345,5346]},{"teal":5766,"source":"contracts/NFDInstance.algo.ts:1288","pc":[5347]},{"teal":5767,"source":"contracts/NFDInstance.algo.ts:1288","pc":[5348]},{"teal":5768,"source":"contracts/NFDInstance.algo.ts:1284","pc":[5349]},{"teal":5772,"source":"contracts/NFDInstance.algo.ts:1291","pc":[5350,5351,5352]},{"teal":5776,"source":"contracts/NFDInstance.algo.ts:1294","pc":[5353,5354]},{"teal":5777,"source":"contracts/NFDInstance.algo.ts:1294","pc":[5355,5356]},{"teal":5778,"source":"contracts/NFDInstance.algo.ts:1294","pc":[5357,5358]},{"teal":5779,"source":"contracts/NFDInstance.algo.ts:1294","pc":[5359]},{"teal":5780,"source":"contracts/NFDInstance.algo.ts:1294","pc":[5360]},{"teal":5781,"source":"contracts/NFDInstance.algo.ts:1294","pc":[5361]},{"teal":5782,"source":"contracts/NFDInstance.algo.ts:1291","pc":[5362]},{"teal":5786,"source":"contracts/NFDInstance.algo.ts:1310","pc":[5363,5364,5365]},{"teal":5789,"source":"contracts/NFDInstance.algo.ts:1310","pc":[5366]},{"teal":5793,"source":"contracts/NFDInstance.algo.ts:1312","pc":[5367,5368]},{"teal":5794,"source":"contracts/NFDInstance.algo.ts:1312","pc":[5369,5370,5371]},{"teal":5795,"source":"contracts/NFDInstance.algo.ts:1312","pc":[5372,5373]},{"teal":5799,"source":"contracts/NFDInstance.algo.ts:1314","pc":[5374,5375]},{"teal":5800,"source":"contracts/NFDInstance.algo.ts:1314","pc":[5376,5377,5378]},{"teal":5801,"source":"contracts/NFDInstance.algo.ts:1314","pc":[5379]},{"teal":5804,"source":"contracts/NFDInstance.algo.ts:1314","errorMessage":"internal fields can never be deleted","pc":[5380]},{"teal":5809,"source":"contracts/NFDInstance.algo.ts:1317","pc":[5381,5382]},{"teal":5810,"source":"contracts/NFDInstance.algo.ts:1317","pc":[5383,5384,5385]},{"teal":5815,"source":"contracts/NFDInstance.algo.ts:1318","pc":[5386]},{"teal":5816,"source":"contracts/NFDInstance.algo.ts:1318","pc":[5387,5388,5389]},{"teal":5821,"source":"contracts/NFDInstance.algo.ts:1321","pc":[5390]},{"teal":5822,"source":"contracts/NFDInstance.algo.ts:1321","pc":[5391,5392,5393]},{"teal":5823,"source":"contracts/NFDInstance.algo.ts:1321","pc":[5394]},{"teal":5824,"source":"contracts/NFDInstance.algo.ts:1321","pc":[5395]},{"teal":5825,"source":"contracts/NFDInstance.algo.ts:1321","pc":[5396]},{"teal":5828,"source":"contracts/NFDInstance.algo.ts:1321","errorMessage":"must be owned","pc":[5397]},{"teal":5833,"source":"contracts/NFDInstance.algo.ts:1323","pc":[5398,5399,5400]},{"teal":5834,"source":"contracts/NFDInstance.algo.ts:1323","pc":[5401]},{"teal":5835,"source":"contracts/NFDInstance.algo.ts:1323","pc":[5402,5403,5404]},{"teal":5840,"source":"contracts/NFDInstance.algo.ts:1324","pc":[5405,5406,5407]},{"teal":5841,"source":"contracts/NFDInstance.algo.ts:1324","pc":[5408]},{"teal":5844,"source":"contracts/NFDInstance.algo.ts:1324","errorMessage":"can't be for sale","pc":[5409]},{"teal":5848,"source":"contracts/NFDInstance.algo.ts:1325","pc":[5410,5411,5412]},{"teal":5854,"source":"contracts/NFDInstance.algo.ts:1328","pc":[5413,5414]},{"teal":5855,"source":"contracts/NFDInstance.algo.ts:1328","pc":[5415,5416,5417]},{"teal":5856,"source":"contracts/NFDInstance.algo.ts:1328","pc":[5418,5419,5420]},{"teal":5861,"source":"contracts/NFDInstance.algo.ts:1329","pc":[5421]},{"teal":5862,"source":"contracts/NFDInstance.algo.ts:1329","pc":[5422,5423,5424]},{"teal":5867,"source":"contracts/NFDInstance.algo.ts:1332","pc":[5425,5426]},{"teal":5868,"source":"contracts/NFDInstance.algo.ts:1332","pc":[5427,5428,5429]},{"teal":5869,"source":"contracts/NFDInstance.algo.ts:1332","pc":[5430]},{"teal":5870,"source":"contracts/NFDInstance.algo.ts:1332","pc":[5431,5432,5433]},{"teal":5871,"source":"contracts/NFDInstance.algo.ts:1332","pc":[5434,5435]},{"teal":5872,"source":"contracts/NFDInstance.algo.ts:1332","pc":[5436,5437,5438]},{"teal":5873,"source":"contracts/NFDInstance.algo.ts:1332","pc":[5439,5440]},{"teal":5874,"source":"contracts/NFDInstance.algo.ts:1332","pc":[5441]},{"teal":5875,"source":"contracts/NFDInstance.algo.ts:1332","pc":[5442]},{"teal":5876,"source":"contracts/NFDInstance.algo.ts:1332","pc":[5443]},{"teal":5882,"source":"contracts/NFDInstance.algo.ts:1310","pc":[5444,5445]},{"teal":5883,"source":"contracts/NFDInstance.algo.ts:1310","pc":[5446]},{"teal":5887,"source":"contracts/NFDInstance.algo.ts:1346","pc":[5447,5448,5449]},{"teal":5890,"source":"contracts/NFDInstance.algo.ts:1346","pc":[5450]},{"teal":5891,"source":"contracts/NFDInstance.algo.ts:1346","pc":[5451,5452]},{"teal":5895,"source":"contracts/NFDInstance.algo.ts:1348","pc":[5453,5454]},{"teal":5896,"source":"contracts/NFDInstance.algo.ts:1348","pc":[5455,5456,5457]},{"teal":5897,"source":"contracts/NFDInstance.algo.ts:1348","pc":[5458,5459]},{"teal":5901,"source":"contracts/NFDInstance.algo.ts:1350","pc":[5460,5461]},{"teal":5902,"source":"contracts/NFDInstance.algo.ts:1350","pc":[5462,5463,5464]},{"teal":5903,"source":"contracts/NFDInstance.algo.ts:1350","pc":[5465]},{"teal":5906,"source":"contracts/NFDInstance.algo.ts:1350","errorMessage":"internal fields can never be updated","pc":[5466]},{"teal":5910,"source":"contracts/NFDInstance.algo.ts:1351","pc":[5467,5468]},{"teal":5911,"source":"contracts/NFDInstance.algo.ts:1351","pc":[5469,5470,5471]},{"teal":5912,"source":"contracts/NFDInstance.algo.ts:1351","pc":[5472,5473]},{"teal":5916,"source":"contracts/NFDInstance.algo.ts:1352","pc":[5474,5475]},{"teal":5917,"source":"contracts/NFDInstance.algo.ts:1352","pc":[5476,5477,5478]},{"teal":5918,"source":"contracts/NFDInstance.algo.ts:1352","pc":[5479,5480]},{"teal":5923,"source":"contracts/NFDInstance.algo.ts:1354","pc":[5481,5482]},{"teal":5924,"source":"contracts/NFDInstance.algo.ts:1354","pc":[5483]},{"teal":5925,"source":"contracts/NFDInstance.algo.ts:1354","pc":[5484,5485,5486]},{"teal":5926,"source":"contracts/NFDInstance.algo.ts:1354","pc":[5487,5488]},{"teal":5927,"source":"contracts/NFDInstance.algo.ts:1354","pc":[5489]},{"teal":5928,"source":"contracts/NFDInstance.algo.ts:1354","pc":[5490,5491,5492]},{"teal":5929,"source":"contracts/NFDInstance.algo.ts:1354","pc":[5493,5494]},{"teal":5930,"source":"contracts/NFDInstance.algo.ts:1354","pc":[5495]},{"teal":5931,"source":"contracts/NFDInstance.algo.ts:1354","pc":[5496,5497,5498]},{"teal":5932,"source":"contracts/NFDInstance.algo.ts:1354","pc":[5499,5500]},{"teal":5933,"source":"contracts/NFDInstance.algo.ts:1354","pc":[5501]},{"teal":5934,"source":"contracts/NFDInstance.algo.ts:1354","pc":[5502]},{"teal":5935,"source":"contracts/NFDInstance.algo.ts:1354","pc":[5503]},{"teal":5936,"source":"contracts/NFDInstance.algo.ts:1354","pc":[5504]},{"teal":5939,"source":"contracts/NFDInstance.algo.ts:1354","pc":[5505]},{"teal":5942,"source":"contracts/NFDInstance.algo.ts:1354","pc":[5506]},{"teal":5945,"source":"contracts/NFDInstance.algo.ts:1354","pc":[5507,5508,5509]},{"teal":5950,"source":"contracts/NFDInstance.algo.ts:1355","pc":[5510]},{"teal":5951,"source":"contracts/NFDInstance.algo.ts:1355","pc":[5511,5512,5513]},{"teal":5956,"source":"contracts/NFDInstance.algo.ts:1358","pc":[5514]},{"teal":5957,"source":"contracts/NFDInstance.algo.ts:1358","pc":[5515,5516,5517]},{"teal":5958,"source":"contracts/NFDInstance.algo.ts:1358","pc":[5518]},{"teal":5959,"source":"contracts/NFDInstance.algo.ts:1358","pc":[5519]},{"teal":5960,"source":"contracts/NFDInstance.algo.ts:1358","pc":[5520]},{"teal":5963,"source":"contracts/NFDInstance.algo.ts:1358","errorMessage":"must be owned","pc":[5521]},{"teal":5967,"source":"contracts/NFDInstance.algo.ts:1359","pc":[5522,5523,5524]},{"teal":5968,"source":"contracts/NFDInstance.algo.ts:1359","pc":[5525]},{"teal":5971,"source":"contracts/NFDInstance.algo.ts:1359","errorMessage":"can't be for sale","pc":[5526]},{"teal":5975,"source":"contracts/NFDInstance.algo.ts:1360","pc":[5527,5528]},{"teal":5976,"source":"contracts/NFDInstance.algo.ts:1360","pc":[5529]},{"teal":5977,"source":"contracts/NFDInstance.algo.ts:1360","pc":[5530]},{"teal":5978,"source":"contracts/NFDInstance.algo.ts:1360","pc":[5531]},{"teal":5981,"source":"contracts/NFDInstance.algo.ts:1360","errorMessage":"sender must be owner","pc":[5532]},{"teal":5986,"source":"contracts/NFDInstance.algo.ts:1362","pc":[5533,5534]},{"teal":5987,"source":"contracts/NFDInstance.algo.ts:1362","pc":[5535,5536,5537]},{"teal":5992,"source":"contracts/NFDInstance.algo.ts:1363","pc":[5538]},{"teal":5993,"source":"contracts/NFDInstance.algo.ts:1363","pc":[5539,5540,5541]},{"teal":5999,"source":"contracts/NFDInstance.algo.ts:1366","pc":[5542,5543]},{"teal":6000,"source":"contracts/NFDInstance.algo.ts:1366","pc":[5544]},{"teal":6001,"source":"contracts/NFDInstance.algo.ts:1366","pc":[5545,5546]},{"teal":6002,"source":"contracts/NFDInstance.algo.ts:1366","pc":[5547]},{"teal":6003,"source":"contracts/NFDInstance.algo.ts:1366","pc":[5548,5549,5550]},{"teal":6009,"source":"contracts/NFDInstance.algo.ts:1367","pc":[5551,5552]},{"teal":6010,"source":"contracts/NFDInstance.algo.ts:1367","pc":[5553,5554,5555]},{"teal":6011,"source":"contracts/NFDInstance.algo.ts:1367","pc":[5556,5557]},{"teal":6012,"source":"contracts/NFDInstance.algo.ts:1367","pc":[5558]},{"teal":6013,"source":"contracts/NFDInstance.algo.ts:1367","pc":[5559,5560,5561]},{"teal":6017,"source":"contracts/NFDInstance.algo.ts:1368","errorMessage":"updating v.caAlgo field isn't allowed via regular field update","pc":[5562]},{"teal":6024,"source":"contracts/NFDInstance.algo.ts:1372","pc":[5563,5564]},{"teal":6025,"source":"contracts/NFDInstance.algo.ts:1372","pc":[5565]},{"teal":6026,"source":"contracts/NFDInstance.algo.ts:1372","pc":[5566,5567,5568]},{"teal":6027,"source":"contracts/NFDInstance.algo.ts:1372","pc":[5569,5570]},{"teal":6028,"source":"contracts/NFDInstance.algo.ts:1372","pc":[5571]},{"teal":6029,"source":"contracts/NFDInstance.algo.ts:1372","pc":[5572]},{"teal":6030,"source":"contracts/NFDInstance.algo.ts:1372","pc":[5573]},{"teal":6031,"source":"contracts/NFDInstance.algo.ts:1372","pc":[5574]},{"teal":6037,"source":"contracts/NFDInstance.algo.ts:1346","pc":[5575,5576]},{"teal":6040,"source":"contracts/NFDInstance.algo.ts:1346","pc":[5577,5578]},{"teal":6041,"source":"contracts/NFDInstance.algo.ts:1346","pc":[5579]},{"teal":6045,"source":"contracts/NFDInstance.algo.ts:1376","pc":[5580,5581,5582]},{"teal":6049,"source":"contracts/NFDInstance.algo.ts:1377","pc":[5583,5584]},{"teal":6050,"source":"contracts/NFDInstance.algo.ts:1377","pc":[5585,5586,5587,5588]},{"teal":6051,"source":"contracts/NFDInstance.algo.ts:1377","pc":[5589]},{"teal":6052,"source":"contracts/NFDInstance.algo.ts:1376","pc":[5590]},{"teal":6056,"source":"contracts/NFDInstance.algo.ts:1381","pc":[5591,5592,5593]},{"teal":6060,"source":"contracts/NFDInstance.algo.ts:1382","pc":[5594,5595]},{"teal":6061,"source":"contracts/NFDInstance.algo.ts:1382","pc":[5596,5597,5598,5599]},{"teal":6062,"source":"contracts/NFDInstance.algo.ts:1382","pc":[5600]},{"teal":6063,"source":"contracts/NFDInstance.algo.ts:1381","pc":[5601]},{"teal":6067,"source":"contracts/NFDInstance.algo.ts:1386","pc":[5602,5603,5604]},{"teal":6071,"source":"contracts/NFDInstance.algo.ts:1387","pc":[5605,5606]},{"teal":6072,"source":"contracts/NFDInstance.algo.ts:1387","pc":[5607,5608,5609,5610]},{"teal":6073,"source":"contracts/NFDInstance.algo.ts:1387","pc":[5611]},{"teal":6074,"source":"contracts/NFDInstance.algo.ts:1386","pc":[5612]},{"teal":6078,"source":"contracts/NFDInstance.algo.ts:1390","pc":[5613,5614,5615]},{"teal":6082,"source":"contracts/NFDInstance.algo.ts:1391","pc":[5616,5617]},{"teal":6083,"source":"contracts/NFDInstance.algo.ts:1391","pc":[5618,5619,5620]},{"teal":6084,"source":"contracts/NFDInstance.algo.ts:1391","pc":[5621]},{"teal":6085,"source":"contracts/NFDInstance.algo.ts:1391","pc":[5622]},{"teal":6086,"source":"contracts/NFDInstance.algo.ts:1390","pc":[5623]},{"teal":6090,"source":"contracts/NFDInstance.algo.ts:1395","pc":[5624,5625,5626]},{"teal":6093,"source":"contracts/NFDInstance.algo.ts:1395","pc":[5627]},{"teal":6097,"source":"contracts/NFDInstance.algo.ts:1396","pc":[5628,5629]},{"teal":6098,"source":"contracts/NFDInstance.algo.ts:1396","pc":[5630,5631,5632]},{"teal":6099,"source":"contracts/NFDInstance.algo.ts:1396","pc":[5633,5634]},{"teal":6104,"source":"contracts/NFDInstance.algo.ts:1397","pc":[5635,5636]},{"teal":6105,"source":"contracts/NFDInstance.algo.ts:1397","pc":[5637]},{"teal":6106,"source":"contracts/NFDInstance.algo.ts:1397","pc":[5638]},{"teal":6107,"source":"contracts/NFDInstance.algo.ts:1397","pc":[5639,5640,5641]},{"teal":6112,"source":"contracts/NFDInstance.algo.ts:1399","pc":[5642]},{"teal":6113,"source":"contracts/NFDInstance.algo.ts:1399","pc":[5643,5644,5645]},{"teal":6118,"source":"contracts/NFDInstance.algo.ts:1401","pc":[5646,5647]},{"teal":6119,"source":"contracts/NFDInstance.algo.ts:1401","pc":[5648,5649]},{"teal":6120,"source":"contracts/NFDInstance.algo.ts:1401","pc":[5650]},{"teal":6124,"source":"contracts/NFDInstance.algo.ts:1395","pc":[5651,5652]},{"teal":6125,"source":"contracts/NFDInstance.algo.ts:1395","pc":[5653]},{"teal":6129,"source":"contracts/NFDInstance.algo.ts:1409","pc":[5654,5655,5656]},{"teal":6133,"source":"contracts/NFDInstance.algo.ts:1410","pc":[5657,5658]},{"teal":6134,"source":"contracts/NFDInstance.algo.ts:1410","pc":[5659,5660,5661]},{"teal":6135,"source":"contracts/NFDInstance.algo.ts:1410","pc":[5662,5663]},{"teal":6136,"source":"contracts/NFDInstance.algo.ts:1410","pc":[5664]},{"teal":6137,"source":"contracts/NFDInstance.algo.ts:1409","pc":[5665]},{"teal":6141,"source":"contracts/NFDInstance.algo.ts:1413","pc":[5666,5667,5668]},{"teal":6145,"source":"contracts/NFDInstance.algo.ts:1414","pc":[5669,5670,5671]},{"teal":6149,"source":"contracts/NFDInstance.algo.ts:1415","pc":[5672,5673,5674]},{"teal":6150,"source":"contracts/NFDInstance.algo.ts:1413","pc":[5675]},{"teal":6154,"source":"contracts/NFDInstance.algo.ts:1418","pc":[5676,5677,5678]},{"teal":6158,"source":"contracts/NFDInstance.algo.ts:1419","pc":[5679,5680,5681]},{"teal":6159,"source":"contracts/NFDInstance.algo.ts:1419","pc":[5682]},{"teal":6162,"source":"contracts/NFDInstance.algo.ts:1419","errorMessage":"can't be for sale","pc":[5683]},{"teal":6166,"source":"contracts/NFDInstance.algo.ts:1420","pc":[5684,5685,5686]},{"teal":6167,"source":"contracts/NFDInstance.algo.ts:1420","pc":[5687]},{"teal":6170,"source":"contracts/NFDInstance.algo.ts:1420","errorMessage":"can't be expired","pc":[5688]},{"teal":6171,"source":"contracts/NFDInstance.algo.ts:1418","pc":[5689]},{"teal":6175,"source":"contracts/NFDInstance.algo.ts:1424","pc":[5690,5691,5692]},{"teal":6178,"source":"contracts/NFDInstance.algo.ts:1424","pc":[5693]},{"teal":6182,"source":"contracts/NFDInstance.algo.ts:1425","pc":[5694]},{"teal":6183,"source":"contracts/NFDInstance.algo.ts:1425","pc":[5695,5696]},{"teal":6188,"source":"contracts/NFDInstance.algo.ts:1425","pc":[5697,5698]},{"teal":6189,"source":"contracts/NFDInstance.algo.ts:1425","pc":[5699,5700]},{"teal":6190,"source":"contracts/NFDInstance.algo.ts:1425","pc":[5701]},{"teal":6191,"source":"contracts/NFDInstance.algo.ts:1425","pc":[5702,5703,5704]},{"teal":6196,"source":"contracts/NFDInstance.algo.ts:1426","pc":[5705,5706]},{"teal":6197,"source":"contracts/NFDInstance.algo.ts:1426","pc":[5707,5708]},{"teal":6198,"source":"contracts/NFDInstance.algo.ts:1426","pc":[5709]},{"teal":6199,"source":"contracts/NFDInstance.algo.ts:1426","pc":[5710]},{"teal":6200,"source":"contracts/NFDInstance.algo.ts:1426","pc":[5711,5712]},{"teal":6201,"source":"contracts/NFDInstance.algo.ts:1426","pc":[5713]},{"teal":6202,"source":"contracts/NFDInstance.algo.ts:1426","pc":[5714,5715,5716]},{"teal":6207,"source":"contracts/NFDInstance.algo.ts:1427","pc":[5717]},{"teal":6208,"source":"contracts/NFDInstance.algo.ts:1427","pc":[5718,5719,5720]},{"teal":6215,"source":"contracts/NFDInstance.algo.ts:1425","pc":[5721,5722]},{"teal":6216,"source":"contracts/NFDInstance.algo.ts:1425","pc":[5723]},{"teal":6217,"source":"contracts/NFDInstance.algo.ts:1425","pc":[5724]},{"teal":6218,"source":"contracts/NFDInstance.algo.ts:1425","pc":[5725,5726]},{"teal":6219,"source":"contracts/NFDInstance.algo.ts:1425","pc":[5727,5728,5729]},{"teal":6224,"source":"contracts/NFDInstance.algo.ts:1430","pc":[5730]},{"teal":6228,"source":"contracts/NFDInstance.algo.ts:1424","pc":[5731,5732]},{"teal":6229,"source":"contracts/NFDInstance.algo.ts:1424","pc":[5733]},{"teal":6242,"source":"contracts/NFDInstance.algo.ts:1443","pc":[5734,5735,5736]},{"teal":6245,"source":"contracts/NFDInstance.algo.ts:1443","pc":[5737]},{"teal":6246,"source":"contracts/NFDInstance.algo.ts:1443","pc":[5738]},{"teal":6250,"source":"contracts/NFDInstance.algo.ts:1444","pc":[5739,5740]},{"teal":6251,"source":"contracts/NFDInstance.algo.ts:1444","pc":[5741,5742]},{"teal":6252,"source":"contracts/NFDInstance.algo.ts:1444","pc":[5743]},{"teal":6253,"source":"contracts/config.algo.ts:5","pc":[5744,5745]},{"teal":6254,"source":"contracts/NFDInstance.algo.ts:1444","pc":[5746]},{"teal":6255,"source":"contracts/NFDInstance.algo.ts:1444","pc":[5747,5748]},{"teal":6256,"source":"contracts/NFDInstance.algo.ts:1444","pc":[5749]},{"teal":6257,"source":"contracts/NFDInstance.algo.ts:1444","pc":[5750,5751]},{"teal":6261,"source":"contracts/NFDInstance.algo.ts:1445","pc":[5752,5753]},{"teal":6262,"source":"contracts/NFDInstance.algo.ts:1445","pc":[5754,5755]},{"teal":6263,"source":"contracts/NFDInstance.algo.ts:1445","pc":[5756]},{"teal":6264,"source":"contracts/NFDInstance.algo.ts:1445","pc":[5757,5758]},{"teal":6271,"source":"contracts/NFDInstance.algo.ts:1448","pc":[5759,5760]},{"teal":6272,"source":"contracts/NFDInstance.algo.ts:1448","pc":[5761,5762]},{"teal":6273,"source":"contracts/NFDInstance.algo.ts:1448","pc":[5763,5764]},{"teal":6274,"source":"contracts/NFDInstance.algo.ts:1448","pc":[5765,5766]},{"teal":6275,"source":"contracts/NFDInstance.algo.ts:1448","pc":[5767]},{"teal":6276,"source":"contracts/config.algo.ts:5","pc":[5768,5769]},{"teal":6277,"source":"contracts/NFDInstance.algo.ts:1448","pc":[5770]},{"teal":6278,"source":"contracts/NFDInstance.algo.ts:1448","pc":[5771]},{"teal":6279,"source":"contracts/NFDInstance.algo.ts:1448","pc":[5772]},{"teal":6282,"source":"contracts/NFDInstance.algo.ts:1447","errorMessage":"max expiration exceeded parameters defined by registry","pc":[5773]},{"teal":6286,"source":"contracts/NFDInstance.algo.ts:1451","pc":[5774,5775]},{"teal":6289,"source":"contracts/NFDInstance.algo.ts:1443","pc":[5776,5777]},{"teal":6292,"source":"contracts/NFDInstance.algo.ts:1443","pc":[5778,5779]},{"teal":6293,"source":"contracts/NFDInstance.algo.ts:1443","pc":[5780]},{"teal":6297,"source":"contracts/NFDInstance.algo.ts:1454","pc":[5781,5782,5783]},{"teal":6300,"source":"contracts/NFDInstance.algo.ts:1454","pc":[5784]},{"teal":6301,"source":"contracts/NFDInstance.algo.ts:1454","pc":[5785]},{"teal":6305,"source":"contracts/NFDInstance.algo.ts:1455","pc":[5786,5787]},{"teal":6306,"source":"contracts/NFDInstance.algo.ts:1455","pc":[5788,5789]},{"teal":6307,"source":"contracts/NFDInstance.algo.ts:1455","pc":[5790]},{"teal":6308,"source":"contracts/NFDInstance.algo.ts:1455","pc":[5791,5792]},{"teal":6309,"source":"contracts/NFDInstance.algo.ts:1455","pc":[5793,5794]},{"teal":6313,"source":"contracts/NFDInstance.algo.ts:1456","pc":[5795,5796]},{"teal":6316,"source":"contracts/NFDInstance.algo.ts:1454","pc":[5797,5798]},{"teal":6319,"source":"contracts/NFDInstance.algo.ts:1454","pc":[5799,5800]},{"teal":6320,"source":"contracts/NFDInstance.algo.ts:1454","pc":[5801]},{"teal":6324,"source":"contracts/NFDInstance.algo.ts:1459","pc":[5802,5803,5804]},{"teal":6327,"source":"contracts/NFDInstance.algo.ts:1459","pc":[5805]},{"teal":6328,"source":"contracts/NFDInstance.algo.ts:1459","pc":[5806]},{"teal":6332,"source":"contracts/NFDInstance.algo.ts:1462","pc":[5807,5808]},{"teal":6333,"source":"contracts/NFDInstance.algo.ts:1462","pc":[5809,5810]},{"teal":6334,"source":"contracts/NFDInstance.algo.ts:1462","pc":[5811]},{"teal":6335,"source":"contracts/NFDInstance.algo.ts:1462","pc":[5812]},{"teal":6336,"source":"contracts/NFDInstance.algo.ts:1462","pc":[5813,5814]},{"teal":6337,"source":"contracts/NFDInstance.algo.ts:1462","pc":[5815]},{"teal":6338,"source":"contracts/NFDInstance.algo.ts:1462","pc":[5816,5817]},{"teal":6343,"source":"contracts/NFDInstance.algo.ts:1464","pc":[5818,5819]},{"teal":6344,"source":"contracts/NFDInstance.algo.ts:1464","pc":[5820]},{"teal":6345,"source":"contracts/NFDInstance.algo.ts:1464","pc":[5821]},{"teal":6346,"source":"contracts/NFDInstance.algo.ts:1464","pc":[5822,5823,5824]},{"teal":6351,"source":"contracts/NFDInstance.algo.ts:1465","pc":[5825,5826]},{"teal":6352,"source":"contracts/NFDInstance.algo.ts:1465","pc":[5827,5828]},{"teal":6353,"source":"contracts/NFDInstance.algo.ts:1464","pc":[5829,5830,5831]},{"teal":6358,"source":"contracts/NFDInstance.algo.ts:1468","pc":[5832,5833]},{"teal":6359,"source":"contracts/NFDInstance.algo.ts:1468","pc":[5834,5835]},{"teal":6365,"source":"contracts/NFDInstance.algo.ts:1470","pc":[5836,5837]},{"teal":6366,"source":"contracts/NFDInstance.algo.ts:1470","pc":[5838,5839]},{"teal":6367,"source":"contracts/NFDInstance.algo.ts:1470","pc":[5840]},{"teal":6368,"source":"contracts/NFDInstance.algo.ts:1470","pc":[5841,5842,5843]},{"teal":6373,"source":"contracts/NFDInstance.algo.ts:1471","pc":[5844]},{"teal":6384,"source":"contracts/NFDInstance.algo.ts:1473","pc":[5845]},{"teal":6385,"source":"contracts/NFDInstance.algo.ts:1473","pc":[5846,5847]},{"teal":6386,"source":"contracts/NFDInstance.algo.ts:1473","pc":[5848,5849]},{"teal":6390,"source":"contracts/NFDInstance.algo.ts:1474","pc":[5850,5851]},{"teal":6391,"source":"contracts/NFDInstance.algo.ts:1474","pc":[5852]},{"teal":6392,"source":"contracts/NFDInstance.algo.ts:1474","pc":[5853]},{"teal":6393,"source":"contracts/NFDInstance.algo.ts:1474","pc":[5854,5855]},{"teal":6397,"source":"contracts/NFDInstance.algo.ts:1475","pc":[5856]},{"teal":6398,"source":"contracts/NFDInstance.algo.ts:1475","pc":[5857,5858]},{"teal":6402,"source":"contracts/NFDInstance.algo.ts:1476","pc":[5859,5860]},{"teal":6403,"source":"contracts/NFDInstance.algo.ts:1476","pc":[5861,5862]},{"teal":6407,"source":"contracts/NFDInstance.algo.ts:1477","pc":[5863,5864]},{"teal":6408,"source":"contracts/NFDInstance.algo.ts:1477","pc":[5865,5866]},{"teal":6412,"source":"contracts/NFDInstance.algo.ts:1478","pc":[5867,5868]},{"teal":6413,"source":"contracts/NFDInstance.algo.ts:1478","pc":[5869,5870]},{"teal":6416,"source":"contracts/NFDInstance.algo.ts:1473","pc":[5871]},{"teal":6417,"source":"contracts/NFDInstance.algo.ts:1473","pc":[5872,5873]},{"teal":6420,"source":"contracts/NFDInstance.algo.ts:1473","pc":[5874]},{"teal":6421,"source":"contracts/NFDInstance.algo.ts:1459","pc":[5875]},{"teal":6431,"source":"contracts/NFDInstance.algo.ts:1489","pc":[5876,5877,5878]},{"teal":6434,"source":"contracts/NFDInstance.algo.ts:1489","pc":[5879]},{"teal":6435,"source":"contracts/NFDInstance.algo.ts:1489","pc":[5880]},{"teal":6439,"source":"contracts/NFDInstance.algo.ts:1490","pc":[5881,5882]},{"teal":6440,"source":"contracts/NFDInstance.algo.ts:1490","pc":[5883]},{"teal":6441,"source":"contracts/NFDInstance.algo.ts:1490","pc":[5884]},{"teal":6442,"source":"contracts/NFDInstance.algo.ts:1490","pc":[5885]},{"teal":6443,"source":"contracts/NFDInstance.algo.ts:1490","pc":[5886,5887]},{"teal":6447,"source":"contracts/NFDInstance.algo.ts:1491","pc":[5888]},{"teal":6448,"source":"contracts/NFDInstance.algo.ts:1491","pc":[5889,5890]},{"teal":6453,"source":"contracts/NFDInstance.algo.ts:1491","pc":[5891,5892]},{"teal":6454,"source":"contracts/NFDInstance.algo.ts:1491","pc":[5893,5894]},{"teal":6455,"source":"contracts/NFDInstance.algo.ts:1491","pc":[5895]},{"teal":6456,"source":"contracts/NFDInstance.algo.ts:1491","pc":[5896,5897,5898]},{"teal":6461,"source":"contracts/NFDInstance.algo.ts:1492","pc":[5899,5900]},{"teal":6462,"source":"contracts/NFDInstance.algo.ts:1492","pc":[5901,5902]},{"teal":6463,"source":"contracts/NFDInstance.algo.ts:1492","pc":[5903]},{"teal":6464,"source":"contracts/NFDInstance.algo.ts:1492","pc":[5904]},{"teal":6465,"source":"contracts/NFDInstance.algo.ts:1492","pc":[5905]},{"teal":6466,"source":"contracts/NFDInstance.algo.ts:1492","pc":[5906]},{"teal":6467,"source":"contracts/NFDInstance.algo.ts:1492","pc":[5907,5908]},{"teal":6468,"source":"contracts/NFDInstance.algo.ts:1492","pc":[5909]},{"teal":6469,"source":"contracts/NFDInstance.algo.ts:1492","pc":[5910,5911,5912]},{"teal":6474,"source":"contracts/NFDInstance.algo.ts:1493","pc":[5913]},{"teal":6475,"source":"contracts/NFDInstance.algo.ts:1493","pc":[5914,5915,5916]},{"teal":6482,"source":"contracts/NFDInstance.algo.ts:1491","pc":[5917,5918]},{"teal":6483,"source":"contracts/NFDInstance.algo.ts:1491","pc":[5919]},{"teal":6484,"source":"contracts/NFDInstance.algo.ts:1491","pc":[5920]},{"teal":6485,"source":"contracts/NFDInstance.algo.ts:1491","pc":[5921,5922]},{"teal":6486,"source":"contracts/NFDInstance.algo.ts:1491","pc":[5923,5924,5925]},{"teal":6491,"source":"contracts/NFDInstance.algo.ts:1496","pc":[5926]},{"teal":6495,"source":"contracts/NFDInstance.algo.ts:1489","pc":[5927,5928]},{"teal":6498,"source":"contracts/NFDInstance.algo.ts:1489","pc":[5929,5930]},{"teal":6499,"source":"contracts/NFDInstance.algo.ts:1489","pc":[5931]},{"teal":6503,"source":"contracts/NFDInstance.algo.ts:1500","pc":[5932,5933,5934]},{"teal":6506,"source":"contracts/NFDInstance.algo.ts:1500","pc":[5935]},{"teal":6507,"source":"contracts/NFDInstance.algo.ts:1500","pc":[5936,5937]},{"teal":6511,"source":"contracts/NFDInstance.algo.ts:1501","pc":[5938,5939]},{"teal":6512,"source":"contracts/NFDInstance.algo.ts:1501","pc":[5940]},{"teal":6515,"source":"contracts/NFDInstance.algo.ts:1501","errorMessage":"box value does not exist: this.boxes(key).value","pc":[5941]},{"teal":6516,"source":"contracts/NFDInstance.algo.ts:1501","pc":[5942,5943]},{"teal":6520,"source":"contracts/NFDInstance.algo.ts:1503","pc":[5944,5945]},{"teal":6521,"source":"contracts/NFDInstance.algo.ts:1503","pc":[5946,5947]},{"teal":6522,"source":"contracts/NFDInstance.algo.ts:1503","pc":[5948]},{"teal":6523,"source":"contracts/NFDInstance.algo.ts:1503","pc":[5949]},{"teal":6527,"source":"contracts/NFDInstance.algo.ts:1505","pc":[5950,5951]},{"teal":6528,"source":"contracts/NFDInstance.algo.ts:1505","pc":[5952]},{"teal":6529,"source":"contracts/NFDInstance.algo.ts:1505","pc":[5953,5954]},{"teal":6530,"source":"contracts/NFDInstance.algo.ts:1505","pc":[5955]},{"teal":6533,"source":"contracts/NFDInstance.algo.ts:1505","errorMessage":"address 'set' should already have at least two values","pc":[5956]},{"teal":6538,"source":"contracts/NFDInstance.algo.ts:1508","pc":[5957,5958]},{"teal":6539,"source":"contracts/NFDInstance.algo.ts:1508","pc":[5959,5960,5961]},{"teal":6540,"source":"contracts/NFDInstance.algo.ts:1508","pc":[5962,5963]},{"teal":6541,"source":"contracts/NFDInstance.algo.ts:1508","pc":[5964]},{"teal":6542,"source":"contracts/NFDInstance.algo.ts:1508","pc":[5965,5966,5967]},{"teal":6547,"source":"contracts/NFDInstance.algo.ts:1509","pc":[5968]},{"teal":6552,"source":"contracts/NFDInstance.algo.ts:1512","pc":[5969,5970]},{"teal":6553,"source":"contracts/NFDInstance.algo.ts:1512","pc":[5971]},{"teal":6554,"source":"contracts/NFDInstance.algo.ts:1512","pc":[5972]},{"teal":6555,"source":"contracts/NFDInstance.algo.ts:1512","pc":[5973]},{"teal":6556,"source":"contracts/NFDInstance.algo.ts:1512","pc":[5974,5975]},{"teal":6560,"source":"contracts/NFDInstance.algo.ts:1513","pc":[5976]},{"teal":6561,"source":"contracts/NFDInstance.algo.ts:1513","pc":[5977,5978]},{"teal":6565,"source":"contracts/NFDInstance.algo.ts:1515","pc":[5979]},{"teal":6566,"source":"contracts/NFDInstance.algo.ts:1515","pc":[5980,5981]},{"teal":6571,"source":"contracts/NFDInstance.algo.ts:1515","pc":[5982,5983]},{"teal":6572,"source":"contracts/NFDInstance.algo.ts:1515","pc":[5984,5985]},{"teal":6573,"source":"contracts/NFDInstance.algo.ts:1515","pc":[5986]},{"teal":6574,"source":"contracts/NFDInstance.algo.ts:1515","pc":[5987,5988,5989]},{"teal":6579,"source":"contracts/NFDInstance.algo.ts:1516","pc":[5990,5991]},{"teal":6580,"source":"contracts/NFDInstance.algo.ts:1516","pc":[5992,5993]},{"teal":6581,"source":"contracts/NFDInstance.algo.ts:1516","pc":[5994]},{"teal":6582,"source":"contracts/NFDInstance.algo.ts:1516","pc":[5995]},{"teal":6583,"source":"contracts/NFDInstance.algo.ts:1516","pc":[5996]},{"teal":6584,"source":"contracts/NFDInstance.algo.ts:1516","pc":[5997]},{"teal":6585,"source":"contracts/NFDInstance.algo.ts:1516","pc":[5998,5999]},{"teal":6586,"source":"contracts/NFDInstance.algo.ts:1516","pc":[6000]},{"teal":6587,"source":"contracts/NFDInstance.algo.ts:1516","pc":[6001,6002,6003]},{"teal":6592,"source":"contracts/NFDInstance.algo.ts:1517","pc":[6004,6005]},{"teal":6593,"source":"contracts/NFDInstance.algo.ts:1517","pc":[6006,6007]},{"teal":6594,"source":"contracts/NFDInstance.algo.ts:1518","pc":[6008,6009,6010]},{"teal":6601,"source":"contracts/NFDInstance.algo.ts:1515","pc":[6011,6012]},{"teal":6602,"source":"contracts/NFDInstance.algo.ts:1515","pc":[6013]},{"teal":6603,"source":"contracts/NFDInstance.algo.ts:1515","pc":[6014]},{"teal":6604,"source":"contracts/NFDInstance.algo.ts:1515","pc":[6015,6016]},{"teal":6605,"source":"contracts/NFDInstance.algo.ts:1515","pc":[6017,6018,6019]},{"teal":6610,"source":"contracts/NFDInstance.algo.ts:1521","pc":[6020,6021]},{"teal":6611,"source":"contracts/NFDInstance.algo.ts:1521","pc":[6022]},{"teal":6612,"source":"contracts/NFDInstance.algo.ts:1521","pc":[6023]},{"teal":6615,"source":"contracts/NFDInstance.algo.ts:1521","errorMessage":"address must be found in set in order to move it","pc":[6024]},{"teal":6619,"source":"contracts/NFDInstance.algo.ts:1523","pc":[6025,6026]},{"teal":6620,"source":"contracts/NFDInstance.algo.ts:1523","pc":[6027,6028,6029]},{"teal":6621,"source":"contracts/NFDInstance.algo.ts:1523","pc":[6030,6031]},{"teal":6625,"source":"contracts/NFDInstance.algo.ts:1525","pc":[6032,6033]},{"teal":6626,"source":"contracts/NFDInstance.algo.ts:1525","pc":[6034]},{"teal":6627,"source":"contracts/NFDInstance.algo.ts:1525","pc":[6035,6036]},{"teal":6628,"source":"contracts/NFDInstance.algo.ts:1525","pc":[6037]},{"teal":6629,"source":"contracts/NFDInstance.algo.ts:1525","pc":[6038,6039]},{"teal":6633,"source":"contracts/NFDInstance.algo.ts:1527","pc":[6040,6041]},{"teal":6634,"source":"contracts/NFDInstance.algo.ts:1527","pc":[6042,6043]},{"teal":6635,"source":"contracts/NFDInstance.algo.ts:1527","pc":[6044,6045]},{"teal":6636,"source":"contracts/NFDInstance.algo.ts:1527","pc":[6046]},{"teal":6637,"source":"contracts/NFDInstance.algo.ts:1527","pc":[6047]},{"teal":6638,"source":"contracts/NFDInstance.algo.ts:1527","pc":[6048,6049]},{"teal":6639,"source":"contracts/NFDInstance.algo.ts:1527","pc":[6050]},{"teal":6640,"source":"contracts/NFDInstance.algo.ts:1527","pc":[6051]},{"teal":6641,"source":"contracts/NFDInstance.algo.ts:1500","pc":[6052]},{"teal":6651,"source":"contracts/NFDInstance.algo.ts:1537","pc":[6053,6054,6055]},{"teal":6654,"source":"contracts/NFDInstance.algo.ts:1537","pc":[6056]},{"teal":6655,"source":"contracts/NFDInstance.algo.ts:1537","pc":[6057,6058]},{"teal":6660,"source":"contracts/NFDInstance.algo.ts:1538","pc":[6059,6060]},{"teal":6661,"source":"contracts/NFDInstance.algo.ts:1538","pc":[6061]},{"teal":6662,"source":"contracts/NFDInstance.algo.ts:1538","pc":[6062]},{"teal":6663,"source":"contracts/NFDInstance.algo.ts:1538","pc":[6063]},{"teal":6664,"source":"contracts/NFDInstance.algo.ts:1538","pc":[6064]},{"teal":6665,"source":"contracts/NFDInstance.algo.ts:1538","pc":[6065,6066,6067]},{"teal":6670,"source":"contracts/NFDInstance.algo.ts:1540","pc":[6068,6069]},{"teal":6671,"source":"contracts/NFDInstance.algo.ts:1540","pc":[6070,6071]},{"teal":6672,"source":"contracts/NFDInstance.algo.ts:1540","pc":[6072]},{"teal":6676,"source":"contracts/NFDInstance.algo.ts:1541","pc":[6073]},{"teal":6677,"source":"contracts/NFDInstance.algo.ts:1541","pc":[6074,6075,6076]},{"teal":6682,"source":"contracts/NFDInstance.algo.ts:1543","pc":[6077,6078]},{"teal":6683,"source":"contracts/NFDInstance.algo.ts:1543","pc":[6079]},{"teal":6684,"source":"contracts/NFDInstance.algo.ts:1543","pc":[6080,6081]},{"teal":6688,"source":"contracts/NFDInstance.algo.ts:1544","pc":[6082,6083]},{"teal":6689,"source":"contracts/NFDInstance.algo.ts:1544","pc":[6084]},{"teal":6690,"source":"contracts/NFDInstance.algo.ts:1544","pc":[6085,6086]},{"teal":6694,"source":"contracts/NFDInstance.algo.ts:1545","pc":[6087,6088]},{"teal":6695,"source":"contracts/NFDInstance.algo.ts:1545","pc":[6089]},{"teal":6698,"source":"contracts/NFDInstance.algo.ts:1545","errorMessage":"box value does not exist: this.boxes(key).value","pc":[6090]},{"teal":6699,"source":"contracts/NFDInstance.algo.ts:1545","pc":[6091,6092]},{"teal":6703,"source":"contracts/NFDInstance.algo.ts:1546","pc":[6093,6094]},{"teal":6704,"source":"contracts/NFDInstance.algo.ts:1546","pc":[6095]},{"teal":6705,"source":"contracts/NFDInstance.algo.ts:1546","pc":[6096,6097]},{"teal":6706,"source":"contracts/NFDInstance.algo.ts:1546","pc":[6098]},{"teal":6707,"source":"contracts/NFDInstance.algo.ts:1546","pc":[6099,6100]},{"teal":6711,"source":"contracts/NFDInstance.algo.ts:1548","pc":[6101,6102]},{"teal":6712,"source":"contracts/NFDInstance.algo.ts:1548","pc":[6103]},{"teal":6713,"source":"contracts/NFDInstance.algo.ts:1548","pc":[6104,6105]},{"teal":6714,"source":"contracts/NFDInstance.algo.ts:1548","pc":[6106]},{"teal":6715,"source":"contracts/NFDInstance.algo.ts:1548","pc":[6107]},{"teal":6716,"source":"contracts/NFDInstance.algo.ts:1548","pc":[6108]},{"teal":6719,"source":"contracts/NFDInstance.algo.ts:1548","errorMessage":"existing set must be multiple of key being added","pc":[6109]},{"teal":6723,"source":"contracts/NFDInstance.algo.ts:1549","pc":[6110]},{"teal":6724,"source":"contracts/NFDInstance.algo.ts:1549","pc":[6111,6112]},{"teal":6729,"source":"contracts/NFDInstance.algo.ts:1549","pc":[6113,6114]},{"teal":6730,"source":"contracts/NFDInstance.algo.ts:1549","pc":[6115,6116]},{"teal":6731,"source":"contracts/NFDInstance.algo.ts:1549","pc":[6117]},{"teal":6732,"source":"contracts/NFDInstance.algo.ts:1549","pc":[6118,6119,6120]},{"teal":6736,"source":"contracts/NFDInstance.algo.ts:1550","pc":[6121,6122]},{"teal":6737,"source":"contracts/NFDInstance.algo.ts:1550","pc":[6123,6124]},{"teal":6738,"source":"contracts/NFDInstance.algo.ts:1550","pc":[6125,6126]},{"teal":6739,"source":"contracts/NFDInstance.algo.ts:1550","pc":[6127]},{"teal":6740,"source":"contracts/NFDInstance.algo.ts:1550","pc":[6128,6129]},{"teal":6741,"source":"contracts/NFDInstance.algo.ts:1550","pc":[6130]},{"teal":6742,"source":"contracts/NFDInstance.algo.ts:1550","pc":[6131,6132]},{"teal":6747,"source":"contracts/NFDInstance.algo.ts:1552","pc":[6133,6134]},{"teal":6748,"source":"contracts/NFDInstance.algo.ts:1552","pc":[6135,6136]},{"teal":6749,"source":"contracts/NFDInstance.algo.ts:1552","pc":[6137]},{"teal":6750,"source":"contracts/NFDInstance.algo.ts:1552","pc":[6138,6139,6140]},{"teal":6755,"source":"contracts/NFDInstance.algo.ts:1554","pc":[6141,6142]},{"teal":6756,"source":"contracts/NFDInstance.algo.ts:1554","pc":[6143,6144]},{"teal":6757,"source":"contracts/NFDInstance.algo.ts:1554","pc":[6145,6146]},{"teal":6758,"source":"contracts/NFDInstance.algo.ts:1554","pc":[6147]},{"teal":6759,"source":"contracts/NFDInstance.algo.ts:1554","pc":[6148,6149]},{"teal":6760,"source":"contracts/NFDInstance.algo.ts:1554","pc":[6150]},{"teal":6764,"source":"contracts/NFDInstance.algo.ts:1555","pc":[6151]},{"teal":6765,"source":"contracts/NFDInstance.algo.ts:1555","pc":[6152,6153,6154]},{"teal":6771,"source":"contracts/NFDInstance.algo.ts:1557","pc":[6155,6156]},{"teal":6772,"source":"contracts/NFDInstance.algo.ts:1557","pc":[6157,6158]},{"teal":6773,"source":"contracts/NFDInstance.algo.ts:1557","pc":[6159]},{"teal":6774,"source":"contracts/NFDInstance.algo.ts:1557","pc":[6160,6161,6162]},{"teal":6779,"source":"contracts/NFDInstance.algo.ts:1558","pc":[6163]},{"teal":6780,"source":"contracts/NFDInstance.algo.ts:1558","pc":[6164,6165,6166]},{"teal":6787,"source":"contracts/NFDInstance.algo.ts:1549","pc":[6167,6168]},{"teal":6788,"source":"contracts/NFDInstance.algo.ts:1549","pc":[6169]},{"teal":6789,"source":"contracts/NFDInstance.algo.ts:1549","pc":[6170]},{"teal":6790,"source":"contracts/NFDInstance.algo.ts:1549","pc":[6171,6172]},{"teal":6791,"source":"contracts/NFDInstance.algo.ts:1549","pc":[6173,6174,6175]},{"teal":6797,"source":"contracts/NFDInstance.algo.ts:1562","pc":[6176,6177]},{"teal":6798,"source":"contracts/NFDInstance.algo.ts:1562","pc":[6178]},{"teal":6799,"source":"contracts/NFDInstance.algo.ts:1562","pc":[6179,6180,6181]},{"teal":6800,"source":"contracts/NFDInstance.algo.ts:1562","pc":[6182]},{"teal":6801,"source":"contracts/NFDInstance.algo.ts:1562","pc":[6183,6184,6185]},{"teal":6806,"source":"contracts/NFDInstance.algo.ts:1563","pc":[6186,6187]},{"teal":6807,"source":"contracts/NFDInstance.algo.ts:1563","pc":[6188]},{"teal":6811,"source":"contracts/NFDInstance.algo.ts:1564","pc":[6189,6190]},{"teal":6812,"source":"contracts/NFDInstance.algo.ts:1564","pc":[6191,6192]},{"teal":6813,"source":"contracts/NFDInstance.algo.ts:1564","pc":[6193,6194]},{"teal":6814,"source":"contracts/NFDInstance.algo.ts:1564","pc":[6195]},{"teal":6815,"source":"contracts/NFDInstance.algo.ts:1564","pc":[6196]},{"teal":6819,"source":"contracts/NFDInstance.algo.ts:1565","pc":[6197]},{"teal":6820,"source":"contracts/NFDInstance.algo.ts:1565","pc":[6198,6199,6200]},{"teal":6825,"source":"contracts/NFDInstance.algo.ts:1568","pc":[6201]},{"teal":6829,"source":"contracts/NFDInstance.algo.ts:1537","pc":[6202,6203]},{"teal":6832,"source":"contracts/NFDInstance.algo.ts:1537","pc":[6204,6205]},{"teal":6833,"source":"contracts/NFDInstance.algo.ts:1537","pc":[6206]},{"teal":6843,"source":"contracts/NFDInstance.algo.ts:1578","pc":[6207,6208,6209]},{"teal":6846,"source":"contracts/NFDInstance.algo.ts:1578","pc":[6210]},{"teal":6847,"source":"contracts/NFDInstance.algo.ts:1578","pc":[6211,6212]},{"teal":6851,"source":"contracts/NFDInstance.algo.ts:1579","pc":[6213,6214]},{"teal":6852,"source":"contracts/NFDInstance.algo.ts:1579","pc":[6215]},{"teal":6855,"source":"contracts/NFDInstance.algo.ts:1579","errorMessage":"box value does not exist: this.boxes(key).value","pc":[6216]},{"teal":6856,"source":"contracts/NFDInstance.algo.ts:1579","pc":[6217,6218]},{"teal":6860,"source":"contracts/NFDInstance.algo.ts:1580","pc":[6219,6220]},{"teal":6861,"source":"contracts/NFDInstance.algo.ts:1580","pc":[6221]},{"teal":6862,"source":"contracts/NFDInstance.algo.ts:1580","pc":[6222]},{"teal":6863,"source":"contracts/NFDInstance.algo.ts:1580","pc":[6223]},{"teal":6864,"source":"contracts/NFDInstance.algo.ts:1580","pc":[6224,6225]},{"teal":6868,"source":"contracts/NFDInstance.algo.ts:1582","pc":[6226,6227]},{"teal":6869,"source":"contracts/NFDInstance.algo.ts:1582","pc":[6228,6229]},{"teal":6870,"source":"contracts/NFDInstance.algo.ts:1582","pc":[6230]},{"teal":6871,"source":"contracts/NFDInstance.algo.ts:1582","pc":[6231]},{"teal":6875,"source":"contracts/NFDInstance.algo.ts:1584","pc":[6232]},{"teal":6876,"source":"contracts/NFDInstance.algo.ts:1584","pc":[6233,6234]},{"teal":6881,"source":"contracts/NFDInstance.algo.ts:1584","pc":[6235,6236]},{"teal":6882,"source":"contracts/NFDInstance.algo.ts:1584","pc":[6237,6238]},{"teal":6883,"source":"contracts/NFDInstance.algo.ts:1584","pc":[6239]},{"teal":6884,"source":"contracts/NFDInstance.algo.ts:1584","pc":[6240,6241,6242]},{"teal":6889,"source":"contracts/NFDInstance.algo.ts:1585","pc":[6243,6244]},{"teal":6890,"source":"contracts/NFDInstance.algo.ts:1585","pc":[6245,6246]},{"teal":6891,"source":"contracts/NFDInstance.algo.ts:1585","pc":[6247]},{"teal":6892,"source":"contracts/NFDInstance.algo.ts:1585","pc":[6248]},{"teal":6893,"source":"contracts/NFDInstance.algo.ts:1585","pc":[6249]},{"teal":6894,"source":"contracts/NFDInstance.algo.ts:1585","pc":[6250]},{"teal":6895,"source":"contracts/NFDInstance.algo.ts:1585","pc":[6251,6252]},{"teal":6896,"source":"contracts/NFDInstance.algo.ts:1585","pc":[6253]},{"teal":6897,"source":"contracts/NFDInstance.algo.ts:1585","pc":[6254,6255,6256]},{"teal":6903,"source":"contracts/NFDInstance.algo.ts:1586","pc":[6257,6258]},{"teal":6904,"source":"contracts/NFDInstance.algo.ts:1586","pc":[6259,6260]},{"teal":6905,"source":"contracts/NFDInstance.algo.ts:1586","pc":[6261]},{"teal":6906,"source":"contracts/NFDInstance.algo.ts:1586","pc":[6262]},{"teal":6907,"source":"contracts/NFDInstance.algo.ts:1586","pc":[6263]},{"teal":6908,"source":"contracts/NFDInstance.algo.ts:1586","pc":[6264,6265,6266]},{"teal":6913,"source":"contracts/NFDInstance.algo.ts:1587","pc":[6267,6268]},{"teal":6914,"source":"contracts/NFDInstance.algo.ts:1587","pc":[6269]},{"teal":6919,"source":"contracts/NFDInstance.algo.ts:1590","pc":[6270,6271]},{"teal":6920,"source":"contracts/NFDInstance.algo.ts:1590","pc":[6272]},{"teal":6921,"source":"contracts/NFDInstance.algo.ts:1590","pc":[6273]},{"teal":6922,"source":"contracts/NFDInstance.algo.ts:1590","pc":[6274,6275,6276]},{"teal":6927,"source":"contracts/NFDInstance.algo.ts:1591","pc":[6277,6278]},{"teal":6928,"source":"contracts/NFDInstance.algo.ts:1591","pc":[6279,6280]},{"teal":6929,"source":"contracts/NFDInstance.algo.ts:1591","pc":[6281]},{"teal":6930,"source":"contracts/NFDInstance.algo.ts:1591","pc":[6282,6283]},{"teal":6931,"source":"contracts/NFDInstance.algo.ts:1591","pc":[6284]},{"teal":6932,"source":"contracts/NFDInstance.algo.ts:1591","pc":[6285]},{"teal":6933,"source":"contracts/NFDInstance.algo.ts:1591","pc":[6286]},{"teal":6934,"source":"contracts/NFDInstance.algo.ts:1591","pc":[6287]},{"teal":6938,"source":"contracts/NFDInstance.algo.ts:1593","pc":[6288]},{"teal":6939,"source":"contracts/NFDInstance.algo.ts:1593","pc":[6289,6290]},{"teal":6943,"source":"contracts/NFDInstance.algo.ts:1594","pc":[6291,6292]},{"teal":6944,"source":"contracts/NFDInstance.algo.ts:1594","pc":[6293,6294]},{"teal":6948,"source":"contracts/NFDInstance.algo.ts:1595","pc":[6295]},{"teal":6949,"source":"contracts/NFDInstance.algo.ts:1595","pc":[6296,6297]},{"teal":6954,"source":"contracts/NFDInstance.algo.ts:1595","pc":[6298,6299]},{"teal":6955,"source":"contracts/NFDInstance.algo.ts:1595","pc":[6300,6301]},{"teal":6956,"source":"contracts/NFDInstance.algo.ts:1595","pc":[6302]},{"teal":6957,"source":"contracts/NFDInstance.algo.ts:1595","pc":[6303]},{"teal":6958,"source":"contracts/NFDInstance.algo.ts:1595","pc":[6304]},{"teal":6959,"source":"contracts/NFDInstance.algo.ts:1595","pc":[6305,6306,6307]},{"teal":6964,"source":"contracts/NFDInstance.algo.ts:1596","pc":[6308,6309]},{"teal":6965,"source":"contracts/NFDInstance.algo.ts:1596","pc":[6310,6311]},{"teal":6966,"source":"contracts/NFDInstance.algo.ts:1596","pc":[6312]},{"teal":6967,"source":"contracts/NFDInstance.algo.ts:1596","pc":[6313]},{"teal":6968,"source":"contracts/NFDInstance.algo.ts:1596","pc":[6314]},{"teal":6969,"source":"contracts/NFDInstance.algo.ts:1596","pc":[6315]},{"teal":6970,"source":"contracts/NFDInstance.algo.ts:1596","pc":[6316,6317]},{"teal":6971,"source":"contracts/NFDInstance.algo.ts:1596","pc":[6318]},{"teal":6972,"source":"contracts/NFDInstance.algo.ts:1596","pc":[6319,6320,6321]},{"teal":6977,"source":"contracts/NFDInstance.algo.ts:1597","pc":[6322]},{"teal":6978,"source":"contracts/NFDInstance.algo.ts:1597","pc":[6323,6324]},{"teal":6979,"source":"contracts/NFDInstance.algo.ts:1598","pc":[6325,6326,6327]},{"teal":6986,"source":"contracts/NFDInstance.algo.ts:1595","pc":[6328,6329]},{"teal":6987,"source":"contracts/NFDInstance.algo.ts:1595","pc":[6330]},{"teal":6988,"source":"contracts/NFDInstance.algo.ts:1595","pc":[6331]},{"teal":6989,"source":"contracts/NFDInstance.algo.ts:1595","pc":[6332,6333]},{"teal":6990,"source":"contracts/NFDInstance.algo.ts:1595","pc":[6334,6335,6336]},{"teal":6996,"source":"contracts/NFDInstance.algo.ts:1601","pc":[6337,6338]},{"teal":6997,"source":"contracts/NFDInstance.algo.ts:1601","pc":[6339,6340,6341]},{"teal":7002,"source":"contracts/NFDInstance.algo.ts:1602","pc":[6342,6343]},{"teal":7003,"source":"contracts/NFDInstance.algo.ts:1602","pc":[6344]},{"teal":7010,"source":"contracts/NFDInstance.algo.ts:1605","pc":[6345]},{"teal":7011,"source":"contracts/NFDInstance.algo.ts:1605","pc":[6346,6347,6348]},{"teal":7016,"source":"contracts/NFDInstance.algo.ts:1608","pc":[6349,6350]},{"teal":7017,"source":"contracts/NFDInstance.algo.ts:1608","pc":[6351,6352]},{"teal":7018,"source":"contracts/NFDInstance.algo.ts:1608","pc":[6353]},{"teal":7019,"source":"contracts/NFDInstance.algo.ts:1608","pc":[6354]},{"teal":7020,"source":"contracts/NFDInstance.algo.ts:1608","pc":[6355,6356]},{"teal":7021,"source":"contracts/NFDInstance.algo.ts:1608","pc":[6357]},{"teal":7025,"source":"contracts/NFDInstance.algo.ts:1609","pc":[6358]},{"teal":7026,"source":"contracts/NFDInstance.algo.ts:1609","pc":[6359,6360,6361]},{"teal":7033,"source":"contracts/NFDInstance.algo.ts:1584","pc":[6362,6363]},{"teal":7034,"source":"contracts/NFDInstance.algo.ts:1584","pc":[6364]},{"teal":7035,"source":"contracts/NFDInstance.algo.ts:1584","pc":[6365]},{"teal":7036,"source":"contracts/NFDInstance.algo.ts:1584","pc":[6366,6367]},{"teal":7037,"source":"contracts/NFDInstance.algo.ts:1584","pc":[6368,6369,6370]},{"teal":7042,"source":"contracts/NFDInstance.algo.ts:1612","pc":[6371]},{"teal":7046,"source":"contracts/NFDInstance.algo.ts:1578","pc":[6372,6373]},{"teal":7049,"source":"contracts/NFDInstance.algo.ts:1578","pc":[6374,6375]},{"teal":7050,"source":"contracts/NFDInstance.algo.ts:1578","pc":[6376]},{"teal":7054,"source":"contracts/NFDInstance.algo.ts:1615","pc":[6377,6378,6379]},{"teal":7058,"source":"contracts/NFDInstance.algo.ts:1617","pc":[6380,6381]},{"teal":7059,"source":"contracts/NFDInstance.algo.ts:1617","pc":[6382]},{"teal":7060,"source":"contracts/NFDInstance.algo.ts:1617","pc":[6383]},{"teal":7061,"source":"contracts/NFDInstance.algo.ts:1617","pc":[6384]},{"teal":7064,"source":"contracts/NFDInstance.algo.ts:1617","errorMessage":"sender must be owner","pc":[6385]},{"teal":7065,"source":"contracts/NFDInstance.algo.ts:1615","pc":[6386]},{"teal":7068,"source":"contracts/NFDInstance.algo.ts:17","pc":[6387,6388,6389,6390,6391,6392]},{"teal":7069,"source":"contracts/NFDInstance.algo.ts:17","pc":[6393,6394,6395]},{"teal":7070,"source":"contracts/NFDInstance.algo.ts:17","pc":[6396,6397,6398,6399]},{"teal":7073,"source":"contracts/NFDInstance.algo.ts:17","errorMessage":"this contract does not implement the given ABI method for create NoOp","pc":[6400]},{"teal":7076,"source":"contracts/NFDInstance.algo.ts:17","pc":[6401,6402,6403,6404,6405,6406]},{"teal":7077,"source":"contracts/NFDInstance.algo.ts:17","pc":[6407,6408,6409,6410,6411,6412]},{"teal":7078,"source":"contracts/NFDInstance.algo.ts:17","pc":[6413,6414,6415,6416,6417,6418]},{"teal":7079,"source":"contracts/NFDInstance.algo.ts:17","pc":[6419,6420,6421,6422,6423,6424]},{"teal":7080,"source":"contracts/NFDInstance.algo.ts:17","pc":[6425,6426,6427,6428,6429,6430]},{"teal":7081,"source":"contracts/NFDInstance.algo.ts:17","pc":[6431,6432,6433,6434,6435,6436]},{"teal":7082,"source":"contracts/NFDInstance.algo.ts:17","pc":[6437,6438,6439,6440,6441,6442]},{"teal":7083,"source":"contracts/NFDInstance.algo.ts:17","pc":[6443,6444,6445,6446,6447,6448]},{"teal":7084,"source":"contracts/NFDInstance.algo.ts:17","pc":[6449,6450,6451,6452,6453,6454]},{"teal":7085,"source":"contracts/NFDInstance.algo.ts:17","pc":[6455,6456,6457,6458,6459,6460]},{"teal":7086,"source":"contracts/NFDInstance.algo.ts:17","pc":[6461,6462,6463,6464,6465,6466]},{"teal":7087,"source":"contracts/NFDInstance.algo.ts:17","pc":[6467,6468,6469,6470,6471,6472]},{"teal":7088,"source":"contracts/NFDInstance.algo.ts:17","pc":[6473,6474,6475,6476,6477,6478]},{"teal":7089,"source":"contracts/NFDInstance.algo.ts:17","pc":[6479,6480,6481,6482,6483,6484]},{"teal":7090,"source":"contracts/NFDInstance.algo.ts:17","pc":[6485,6486,6487,6488,6489,6490]},{"teal":7091,"source":"contracts/NFDInstance.algo.ts:17","pc":[6491,6492,6493,6494,6495,6496]},{"teal":7092,"source":"contracts/NFDInstance.algo.ts:17","pc":[6497,6498,6499,6500,6501,6502]},{"teal":7093,"source":"contracts/NFDInstance.algo.ts:17","pc":[6503,6504,6505,6506,6507,6508]},{"teal":7094,"source":"contracts/NFDInstance.algo.ts:17","pc":[6509,6510,6511,6512,6513,6514]},{"teal":7095,"source":"contracts/NFDInstance.algo.ts:17","pc":[6515,6516,6517,6518,6519,6520]},{"teal":7096,"source":"contracts/NFDInstance.algo.ts:17","pc":[6521,6522,6523,6524,6525,6526]},{"teal":7097,"source":"contracts/NFDInstance.algo.ts:17","pc":[6527,6528,6529,6530,6531,6532]},{"teal":7098,"source":"contracts/NFDInstance.algo.ts:17","pc":[6533,6534,6535,6536,6537,6538]},{"teal":7099,"source":"contracts/NFDInstance.algo.ts:17","pc":[6539,6540,6541,6542,6543,6544]},{"teal":7100,"source":"contracts/NFDInstance.algo.ts:17","pc":[6545,6546,6547]},{"teal":7101,"source":"contracts/NFDInstance.algo.ts:17","pc":[6548,6549,6550,6551,6552,6553,6554,6555,6556,6557,6558,6559,6560,6561,6562,6563,6564,6565,6566,6567,6568,6569,6570,6571,6572,6573,6574,6575,6576,6577,6578,6579,6580,6581,6582,6583,6584,6585,6586,6587,6588,6589,6590,6591,6592,6593,6594,6595,6596,6597]},{"teal":7104,"source":"contracts/NFDInstance.algo.ts:17","pc":[6598,6599,6600]},{"teal":7105,"source":"contracts/NFDInstance.algo.ts:17","pc":[6601]},{"teal":7106,"source":"contracts/NFDInstance.algo.ts:17","pc":[6602]},{"teal":7109,"source":"contracts/NFDInstance.algo.ts:17","pc":[6603,6604,6605,6606,6607,6608]},{"teal":7110,"source":"contracts/NFDInstance.algo.ts:17","pc":[6609,6610,6611]},{"teal":7111,"source":"contracts/NFDInstance.algo.ts:17","pc":[6612,6613,6614,6615]},{"teal":7114,"source":"contracts/NFDInstance.algo.ts:17","errorMessage":"this contract does not implement the given ABI method for call UpdateApplication","pc":[6616]},{"teal":7117,"source":"contracts/NFDInstance.algo.ts:17","pc":[6617,6618,6619]},{"teal":7118,"source":"contracts/NFDInstance.algo.ts:17","pc":[6620,6621,6622,6623,6624,6625,6626,6627,6628,6629,6630,6631]},{"teal":7119,"source":"contracts/NFDInstance.algo.ts:17","pc":[6632,6633]},{"teal":7120,"source":"contracts/NFDInstance.algo.ts:17","pc":[6634]},{"teal":7121,"source":"contracts/NFDInstance.algo.ts:17","pc":[6635]},{"teal":7122,"source":"contracts/NFDInstance.algo.ts:17","pc":[6636]},{"teal":7126,"source":"contracts/NFDInstance.algo.ts:17","pc":[6637,6638,6639]},{"teal":7127,"source":"contracts/NFDInstance.algo.ts:17","pc":[6640,6641]},{"teal":7128,"source":"contracts/NFDInstance.algo.ts:17","pc":[6642]},{"teal":7129,"source":"contracts/NFDInstance.algo.ts:17","pc":[6643]},{"teal":7130,"source":"contracts/NFDInstance.algo.ts:17","pc":[6644,6645,6646]},{"teal":7131,"source":"contracts/NFDInstance.algo.ts:17","pc":[6647,6648]},{"teal":7132,"source":"contracts/NFDInstance.algo.ts:17","pc":[6649]},{"teal":7135,"source":"contracts/NFDInstance.algo.ts:17","pc":[6650,6651]},{"teal":7136,"source":"contracts/NFDInstance.algo.ts:17","pc":[6652,6653]},{"teal":7137,"source":"contracts/NFDInstance.algo.ts:17","pc":[6654]},{"teal":7138,"source":"contracts/NFDInstance.algo.ts:17","pc":[6655]},{"teal":7139,"source":"contracts/NFDInstance.algo.ts:17","pc":[6656]},{"teal":7140,"source":"contracts/NFDInstance.algo.ts:17","pc":[6657,6658,6659]},{"teal":7141,"source":"contracts/NFDInstance.algo.ts:17","pc":[6660,6661]},{"teal":7142,"source":"contracts/NFDInstance.algo.ts:17","pc":[6662,6663]},{"teal":7143,"source":"contracts/NFDInstance.algo.ts:17","pc":[6664]},{"teal":7144,"source":"contracts/NFDInstance.algo.ts:17","pc":[6665,6666,6667]},{"teal":7145,"source":"contracts/NFDInstance.algo.ts:17","pc":[6668,6669,6670]},{"teal":7148,"source":"contracts/NFDInstance.algo.ts:17","pc":[6671]},{"teal":7151,"source":"contracts/NFDInstance.algo.ts:17","pc":[6672,6673]},{"teal":7152,"source":"contracts/NFDInstance.algo.ts:17","pc":[6674,6675]},{"teal":7153,"source":"contracts/NFDInstance.algo.ts:17","pc":[6676]},{"teal":7154,"source":"contracts/NFDInstance.algo.ts:17","pc":[6677,6678,6679]},{"teal":7155,"source":"contracts/NFDInstance.algo.ts:17","pc":[6680]},{"teal":7156,"source":"contracts/NFDInstance.algo.ts:17","pc":[6681]},{"teal":7159,"source":"contracts/NFDInstance.algo.ts:17","pc":[6682,6683,6684]},{"teal":7160,"source":"contracts/NFDInstance.algo.ts:17","pc":[6685,6686]},{"teal":7161,"source":"contracts/NFDInstance.algo.ts:17","pc":[6687,6688]},{"teal":7162,"source":"contracts/NFDInstance.algo.ts:17","pc":[6689]},{"teal":7163,"source":"contracts/NFDInstance.algo.ts:17","pc":[6690,6691]},{"teal":7164,"source":"contracts/NFDInstance.algo.ts:17","pc":[6692,6693]},{"teal":7165,"source":"contracts/NFDInstance.algo.ts:17","pc":[6694]},{"teal":7168,"source":"contracts/NFDInstance.algo.ts:17","pc":[6695,6696,6697]},{"teal":7169,"source":"contracts/NFDInstance.algo.ts:17","pc":[6698,6699]},{"teal":7170,"source":"contracts/NFDInstance.algo.ts:17","pc":[6700,6701]},{"teal":7171,"source":"contracts/NFDInstance.algo.ts:17","pc":[6702]},{"teal":7172,"source":"contracts/NFDInstance.algo.ts:17","pc":[6703,6704]},{"teal":7173,"source":"contracts/NFDInstance.algo.ts:17","pc":[6705,6706]},{"teal":7174,"source":"contracts/NFDInstance.algo.ts:17","pc":[6707]},{"teal":7175,"source":"contracts/NFDInstance.algo.ts:17","pc":[6708]},{"teal":7176,"source":"contracts/NFDInstance.algo.ts:17","pc":[6709,6710]},{"teal":7177,"source":"contracts/NFDInstance.algo.ts:17","pc":[6711]},{"teal":7178,"source":"contracts/NFDInstance.algo.ts:17","pc":[6712]},{"teal":7179,"source":"contracts/NFDInstance.algo.ts:17","pc":[6713]},{"teal":7180,"source":"contracts/NFDInstance.algo.ts:17","pc":[6714,6715,6716]},{"teal":7181,"source":"contracts/NFDInstance.algo.ts:17","pc":[6717,6718]},{"teal":7182,"source":"contracts/NFDInstance.algo.ts:17","pc":[6719,6720]},{"teal":7183,"source":"contracts/NFDInstance.algo.ts:17","pc":[6721]},{"teal":7184,"source":"contracts/NFDInstance.algo.ts:17","pc":[6722]},{"teal":7185,"source":"contracts/NFDInstance.algo.ts:17","pc":[6723,6724]},{"teal":7186,"source":"contracts/NFDInstance.algo.ts:17","pc":[6725,6726]},{"teal":7187,"source":"contracts/NFDInstance.algo.ts:17","pc":[6727,6728]},{"teal":7188,"source":"contracts/NFDInstance.algo.ts:17","pc":[6729,6730]},{"teal":7189,"source":"contracts/NFDInstance.algo.ts:17","pc":[6731]}],"pcOffsetMethod":"cblocks"},"clear":{"sourceInfo":[],"pcOffsetMethod":"none"}},"source":{"approval":"I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAwIDEgMiAzMiBUTVBMX3JlZ2lzdHJ5QXBwSWQgOCAzIDYgMzY1IDQwMCA0IDEwIDI1MDAgNSA4NjQwMCAxMDAwMDAwIDEwMF8wMDAgNTAwIDEwMDAgMjAwIFRNUExfYWRtaW5Bc2FJZApieXRlY2Jsb2NrIDB4ICJpLm93bmVyLmEiICJpLnRpbWVDaGFuZ2VkIiAiaS5taW50aW5nIiAiaS5uYW1lIiAiaS5jb21taXNzaW9uMUFnZW50LmEiICJpLnNlbGxhbXQiICJpLmNvbW1pc3Npb24xIiAiaS5yZXNlcnZlZE93bmVyLmEiICJpLnNlZ21lbnRBZ2VudC5hIiAiaS5zZWxsZXIuYSIgMHgxNTFmN2M3NSAiaS5taW50aW5nS2lja29mZkNyZWF0b3IuYSIgImkubWludGluZ0tpY2tvZmZBbW91bnQiIDB4MGE4MTAxIDB4MzEgImkuY29tbWlzc2lvbjJBZ2VudC5hIiAiaS5leHBpcmF0aW9uVGltZSIgImkuYXNhaWQiICIxIiAiaS52YXVsdE9wdEluTG9ja2VkIiAiaS5zZWdtZW50TG9ja2VkIiAiaS5jb21taXNzaW9uMiIgMHgzMCAiMCIgImkuY29udHJhY3RMb2NrZWQiICJpLmhpZ2hlc3RTb2xkQW10IiAiaS5wYXJlbnRBcHBJRCIgMHgyZSAweDAwICIyIiAweDYyNmY3ODUyNjU2Njc1NmU2NCAiaS5zZWdtZW50UHJpY2VVc2QiIDB4NzYyZTYzNjE0MTZjNjc2ZiAiaS50aW1lUHVyY2hhc2VkIiAiaS5zZWdtZW50Q291bnQiIDB4NDM2NWVkOTAgMHg3MDNiOGNlNyAweDc2MmU2MzYxIDB4MmU2MTczICJpLnZlciIgMHgwMDBhIDB4MDAyYQoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDUuNQovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vICEhISEgV0FSTklORzogVGhpcyBjb250cmFjdCBpcyAqTk9UKiBBUkM0IGNvbXBsaWFudC4gSXQgbWF5IGNvbnRhaW4gQUJJIG1ldGhvZHMsIGJ1dCBpdCBhbHNvIGFsbG93cyBhcHAgY2FsbHMgd2hlcmUgdGhlIGZpcnN0IGFyZ3VtZW50IGRvZXMgTk9UIG1hdGNoIGFuIEFCSSBzZWxlY3RvcgoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKaW50YyA3IC8vIDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNhbGxfVXBkYXRlQXBwbGljYXRpb24gKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKHN0cmluZyxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CgkvLyBzZWdtZW50Um9vdENvbW1pc3Npb25BZGRyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxMQoJZHVwCglsZW4KCWludGMgMyAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChzZWdtZW50Um9vdENvbW1pc3Npb25BZGRyKSBmb3IgY3JlYXRlQXBwbGljYXRpb24gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHNlZ21lbnRSb290QXBwSWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMTAKCWJ0b2kKCgkvLyBjb21taXNzaW9uMlBjdDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA5CglidG9pCgoJLy8gY29tbWlzc2lvbjJBZGRyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA4CglkdXAKCWxlbgoJaW50YyAzIC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDMgKGNvbW1pc3Npb24yQWRkcikgZm9yIGNyZWF0ZUFwcGxpY2F0aW9uIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBjb21taXNzaW9uMVBjdDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA3CglidG9pCgoJLy8gY29tbWlzc2lvbjFBZGRyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA2CglkdXAKCWxlbgoJaW50YyAzIC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDUgKGNvbW1pc3Npb24xQWRkcikgZm9yIGNyZWF0ZUFwcGxpY2F0aW9uIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleHBUaW1lOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDUKCWJ0b2kKCgkvLyBwdXJjaGFzZUFtb3VudDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA0CglidG9pCgoJLy8gYnV5ZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnRjIDMgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgOCAoYnV5ZXIpIGZvciBjcmVhdGVBcHBsaWNhdGlvbiBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gc2VsbGVyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50YyAzIC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDkgKHNlbGxlcikgZm9yIGNyZWF0ZUFwcGxpY2F0aW9uIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBuZmROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBjcmVhdGVBcHBsaWNhdGlvbihzdHJpbmcsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYWRkcmVzcyx1aW50NjQsYWRkcmVzcyx1aW50NjQsdWludDY0LGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBjcmVhdGVBcHBsaWNhdGlvbgoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gY3JlYXRlQXBwbGljYXRpb24obmZkTmFtZTogc3RyaW5nLCBzZWxsZXI6IEFkZHJlc3MsIGJ1eWVyOiBBZGRyZXNzLCBwdXJjaGFzZUFtb3VudDogdWludDY0LCBleHBUaW1lOiB1aW50NjQsIGNvbW1pc3Npb24xQWRkcjogQWRkcmVzcywgY29tbWlzc2lvbjFQY3Q6IHVpbnQ2NCwgY29tbWlzc2lvbjJBZGRyOiBBZGRyZXNzLCBjb21taXNzaW9uMlBjdDogdWludDY0LCBzZWdtZW50Um9vdEFwcElkOiB1aW50NjQsIHNlZ21lbnRSb290Q29tbWlzc2lvbkFkZHI6IEFkZHJlc3MpOiB2b2lkCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMTEgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDUKCS8vIGFzc2VydChnbG9iYWxzLmNhbGxlckFwcGxpY2F0aW9uSUQgPT09IEFwcElELmZyb21VaW50NjQodGhpcy5yZWdpc3RyeUFwcElkKSwgJ2NhbGxlciBtdXN0IGJlIE5GRCByZWdpc3RyeSEnKQoJZ2xvYmFsIENhbGxlckFwcGxpY2F0aW9uSUQKCWludGMgNCAvLyBUTVBMX3JlZ2lzdHJ5QXBwSWQKCT09CgoJLy8gY2FsbGVyIG11c3QgYmUgTkZEIHJlZ2lzdHJ5IQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDYKCS8vIGFzc2VydChwdXJjaGFzZUFtb3VudCA+IDApCglmcmFtZV9kaWcgLTQgLy8gcHVyY2hhc2VBbW91bnQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT4KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQ4CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfSVNMT0NLRUQpLnZhbHVlID0gTkZEX0xPQ0tFRF9WQUxfRkFMU0UKCWJ5dGVjIDI1IC8vICJpLmNvbnRyYWN0TG9ja2VkIgoJYnl0ZWMgMjQgLy8gIjAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQ5CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVkVSU0lPTikudmFsdWUgPSBORkRfQ1VSUkVOVF9WRVJTSU9OCglieXRlYyA0MCAvLyAiaS52ZXIiCglwdXNoYnl0ZXMgIjMuOCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTAKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HKS52YWx1ZSA9IE5GRF9NSU5USU5HX1NUQVRFX1BSRUFTQQoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJYnl0ZWMgMTkgLy8gIjEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjUxCgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNSRUFURUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCXB1c2hieXRlcyAiaS50aW1lQ3JlYXRlZCIKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTIKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9USU1FQ0hBTkdFRCkudmFsdWUgPSBpdG9iKGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wKQoJYnl0ZWMgMiAvLyAiaS50aW1lQ2hhbmdlZCIKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTMKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9USU1FUFVSQ0hBU0VEKS52YWx1ZSA9IGl0b2IoZ2xvYmFscy5sYXRlc3RUaW1lc3RhbXApCglieXRlYyAzNCAvLyAiaS50aW1lUHVyY2hhc2VkIgoJZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAoJaXRvYgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1NAoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0lTU0VHTUVOVExPQ0tFRCkudmFsdWUgPSBORkRfTE9DS0VEX1ZBTF9UUlVFCglieXRlYyAyMSAvLyAiaS5zZWdtZW50TG9ja2VkIgoJYnl0ZWMgMTkgLy8gIjEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjU1CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfTkFNRSkudmFsdWUgPSBuZmROYW1lCglieXRlYyA0IC8vICJpLm5hbWUiCglmcmFtZV9kaWcgLTEgLy8gbmZkTmFtZTogc3RyaW5nCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjU2CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpLnZhbHVlID0gcmF3Qnl0ZXMoYnV5ZXIpCglieXRlYyAxIC8vICJpLm93bmVyLmEiCglmcmFtZV9kaWcgLTMgLy8gYnV5ZXI6IEFkZHJlc3MKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTcKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUxMRVIpLnZhbHVlID0gcmF3Qnl0ZXMoc2VsbGVyKQoJYnl0ZWMgMTAgLy8gImkuc2VsbGVyLmEiCglmcmFtZV9kaWcgLTIgLy8gc2VsbGVyOiBBZGRyZXNzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjU4CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfU0VMTF9BTU9VTlQpLnZhbHVlID0gaXRvYihwdXJjaGFzZUFtb3VudCkKCWJ5dGVjIDYgLy8gImkuc2VsbGFtdCIKCWZyYW1lX2RpZyAtNCAvLyBwdXJjaGFzZUFtb3VudDogdWludDY0CglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1OQoJLy8gY29tbWlzc2lvbjFBZGRyICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzCglmcmFtZV9kaWcgLTYgLy8gY29tbWlzc2lvbjFBZGRyOiBBZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9CglieiAqaWYwX2VuZAoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjAKCS8vIGFzc2VydChjb21taXNzaW9uMVBjdCA+PSAxICYmIGNvbW1pc3Npb24xUGN0IDw9IDUwMCwgJ2NvbW1pc3Npb24gbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDUwJScpCglmcmFtZV9kaWcgLTcgLy8gY29tbWlzc2lvbjFQY3Q6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCT49CglkdXAKCWJ6ICpza2lwX2FuZDAKCWZyYW1lX2RpZyAtNyAvLyBjb21taXNzaW9uMVBjdDogdWludDY0CglpbnRjIDE3IC8vIDUwMAoJPD0KCSYmCgoqc2tpcF9hbmQwOgoJLy8gY29tbWlzc2lvbiBtdXN0IGJlIGJldHdlZW4gMSBhbmQgNTAlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2MQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04xX0FHRU5UKS52YWx1ZSA9IHJhd0J5dGVzKGNvbW1pc3Npb24xQWRkcikKCWJ5dGVjIDUgLy8gImkuY29tbWlzc2lvbjFBZ2VudC5hIgoJZnJhbWVfZGlnIC02IC8vIGNvbW1pc3Npb24xQWRkcjogQWRkcmVzcwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2MgoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04xKS52YWx1ZSA9IGl0b2IoY29tbWlzc2lvbjFQY3QpCglieXRlYyA3IC8vICJpLmNvbW1pc3Npb24xIgoJZnJhbWVfZGlnIC03IC8vIGNvbW1pc3Npb24xUGN0OiB1aW50NjQKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CgoJLy8gKmlmMV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjYzCgkvLyBjb21taXNzaW9uMkFkZHIgIT09IGdsb2JhbHMuemVyb0FkZHJlc3MKCWZyYW1lX2RpZyAtOCAvLyBjb21taXNzaW9uMkFkZHI6IEFkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NAoJLy8gYXNzZXJ0KGNvbW1pc3Npb24yUGN0ID49IDEgJiYgY29tbWlzc2lvbjJQY3QgPD0gNTAwLCAnY29tbWlzc2lvbiBtdXN0IGJlIGJldHdlZW4gMSBhbmQgNTAlJykKCWZyYW1lX2RpZyAtOSAvLyBjb21taXNzaW9uMlBjdDogdWludDY0CglpbnRjIDEgLy8gMQoJPj0KCWR1cAoJYnogKnNraXBfYW5kMQoJZnJhbWVfZGlnIC05IC8vIGNvbW1pc3Npb24yUGN0OiB1aW50NjQKCWludGMgMTcgLy8gNTAwCgk8PQoJJiYKCipza2lwX2FuZDE6CgkvLyBjb21taXNzaW9uIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA1MCUKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjY1CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfQ09NTUlTU0lPTjJfQUdFTlQpLnZhbHVlID0gcmF3Qnl0ZXMoY29tbWlzc2lvbjJBZGRyKQoJYnl0ZWMgMTYgLy8gImkuY29tbWlzc2lvbjJBZ2VudC5hIgoJZnJhbWVfZGlnIC04IC8vIGNvbW1pc3Npb24yQWRkcjogQWRkcmVzcwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NgoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04yKS52YWx1ZSA9IGl0b2IoY29tbWlzc2lvbjJQY3QpCglieXRlYyAyMiAvLyAiaS5jb21taXNzaW9uMiIKCWZyYW1lX2RpZyAtOSAvLyBjb21taXNzaW9uMlBjdDogdWludDY0CglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKKmlmMV9lbmQ6CgoqaWYwX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjY5CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfQ0FURUdPUlkpLnZhbHVlID0gJ2NvbW1vbicKCXB1c2hieXRlcyAiaS5jYXRlZ29yeSIKCXB1c2hieXRlcyAweDYzNmY2ZDZkNmY2ZSAvLyAiY29tbW9uIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3MAoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1NBTEVUWVBFKS52YWx1ZSA9ICdidXlJdE5vdycKCXB1c2hieXRlcyAiaS5zYWxlVHlwZSIKCXB1c2hieXRlcyAweDYyNzU3OTQ5NzQ0ZTZmNzcgLy8gImJ1eUl0Tm93IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3MgoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0VYUElSQVRJT05USU1FKS52YWx1ZSA9IGl0b2IoZXhwVGltZSkKCWJ5dGVjIDE3IC8vICJpLmV4cGlyYXRpb25UaW1lIgoJZnJhbWVfZGlnIC01IC8vIGV4cFRpbWU6IHVpbnQ2NAoJaXRvYgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3NQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0lTVkFVTFRPUFRJTkxPQ0tFRCkudmFsdWUgPSBORkRfTE9DS0VEX1ZBTF9GQUxTRQoJYnl0ZWMgMjAgLy8gImkudmF1bHRPcHRJbkxvY2tlZCIKCWJ5dGVjIDI0IC8vICIwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyAqaWYyX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NzcKCS8vIHNlZ21lbnRSb290QXBwSWQgIT09IDAKCWZyYW1lX2RpZyAtMTAgLy8gc2VnbWVudFJvb3RBcHBJZDogdWludDY0CglpbnRjIDAgLy8gMAoJIT0KCWJ6ICppZjJfZW5kCgoJLy8gKmlmMl9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3OAoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1BBUkVOVF9JRCkudmFsdWUgPSBpdG9iKHNlZ21lbnRSb290QXBwSWQpCglieXRlYyAyNyAvLyAiaS5wYXJlbnRBcHBJRCIKCWZyYW1lX2RpZyAtMTAgLy8gc2VnbWVudFJvb3RBcHBJZDogdWludDY0CglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgxCgkvLyBwYXJlbnROYW1lID0gdGhpcy5zYWZlR2xvYmFsQnl0ZUdldEV4KHNlZ21lbnRSb290QXBwSWQsIE5GRF9LRVlfTkFNRSkKCWJ5dGVjIDQgLy8gImkubmFtZSIKCWZyYW1lX2RpZyAtMTAgLy8gc2VnbWVudFJvb3RBcHBJZDogdWludDY0CgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0RXgKCWZyYW1lX2J1cnkgMCAvLyBwYXJlbnROYW1lOiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4NAoJLy8gYXNzZXJ0KGV4dHJhY3QzKG5mZE5hbWUsIGxlbihuZmROYW1lKSAtIGxlbihwYXJlbnROYW1lKSAtIDEsIGxlbihwYXJlbnROYW1lKSArIDEpID09PSAnLicgKyBwYXJlbnROYW1lKQoJZnJhbWVfZGlnIC0xIC8vIG5mZE5hbWU6IHN0cmluZwoJZnJhbWVfZGlnIC0xIC8vIG5mZE5hbWU6IHN0cmluZwoJbGVuCglmcmFtZV9kaWcgMCAvLyBwYXJlbnROYW1lOiBieXRlW10KCWxlbgoJLQoJaW50YyAxIC8vIDEKCS0KCWZyYW1lX2RpZyAwIC8vIHBhcmVudE5hbWU6IGJ5dGVbXQoJbGVuCglpbnRjIDEgLy8gMQoJKwoJZXh0cmFjdDMKCWJ5dGVjIDI4IC8vICAiLiIKCWZyYW1lX2RpZyAwIC8vIHBhcmVudE5hbWU6IGJ5dGVbXQoJY29uY2F0Cgk9PQoJYXNzZXJ0CgoJLy8gKmlmM19jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjg4CgkvLyB0aGlzLnNhZmVHbG9iYWxCeXRlR2V0RXgoc2VnbWVudFJvb3RBcHBJZCwgTkZEX0tFWV9JU1NFR01FTlRMT0NLRUQpID09PSBORkRfTE9DS0VEX1ZBTF9GQUxTRQoJYnl0ZWMgMjEgLy8gImkuc2VnbWVudExvY2tlZCIKCWZyYW1lX2RpZyAtMTAgLy8gc2VnbWVudFJvb3RBcHBJZDogdWludDY0CgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0RXgKCWJ5dGVjIDI0IC8vICIwIgoJPT0KCWJ6ICppZjNfZW5kCgoJLy8gKmlmM19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5MAoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgICAgICAgICBzZWdtZW50Um9vdENvbW1pc3Npb25BZGRyICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzLAoJLy8gICAgICAgICAgICAgICAgICAgICAncGFyZW50IGNvbW1pc3Npb24gYWRkcmVzcyBtdXN0IGJlIHNldCBpZiBwYXJlbnQgYXBwIGlkIGlzIHNldCBhbmQgcGFyZW50IGlzIHVubG9ja2VkJywKCS8vICAgICAgICAgICAgICAgICApCglmcmFtZV9kaWcgLTExIC8vIHNlZ21lbnRSb290Q29tbWlzc2lvbkFkZHI6IEFkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCgkvLyBwYXJlbnQgY29tbWlzc2lvbiBhZGRyZXNzIG11c3QgYmUgc2V0IGlmIHBhcmVudCBhcHAgaWQgaXMgc2V0IGFuZCBwYXJlbnQgaXMgdW5sb2NrZWQKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk3CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2FmZUdsb2JhbEJ5dGVHZXRFeChzZWdtZW50Um9vdEFwcElkLCBORkRfS0VZX1NFTExFUikgPT09IHJhd0J5dGVzKHNlZ21lbnRSb290Q29tbWlzc2lvbkFkZHIpLAoJLy8gICAgICAgICAgICAgICAgICAgICAidGhlIHNlZ21lbnQgY29tbWlzc2lvbiBhZ2VudCBzaG91bGQgYmUgdGhlIHBhcmVudCBuZmQncyBzZWxsZXIiLAoJLy8gICAgICAgICAgICAgICAgICkKCWJ5dGVjIDEwIC8vICJpLnNlbGxlci5hIgoJZnJhbWVfZGlnIC0xMCAvLyBzZWdtZW50Um9vdEFwcElkOiB1aW50NjQKCWNhbGxzdWIgc2FmZUdsb2JhbEJ5dGVHZXRFeAoJZnJhbWVfZGlnIC0xMSAvLyBzZWdtZW50Um9vdENvbW1pc3Npb25BZGRyOiBBZGRyZXNzCgk9PQoKCS8vIHRoZSBzZWdtZW50IGNvbW1pc3Npb24gYWdlbnQgc2hvdWxkIGJlIHRoZSBwYXJlbnQgbmZkJ3Mgc2VsbGVyCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDEKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUdNRU5UX0NPTU1JU1NJT05fQUdFTlQpLnZhbHVlID0gcmF3Qnl0ZXMoc2VnbWVudFJvb3RDb21taXNzaW9uQWRkcikKCWJ5dGVjIDkgLy8gImkuc2VnbWVudEFnZW50LmEiCglmcmFtZV9kaWcgLTExIC8vIHNlZ21lbnRSb290Q29tbWlzc2lvbkFkZHI6IEFkZHJlc3MKCWFwcF9nbG9iYWxfcHV0CgoqaWYzX2VuZDoKCippZjJfZW5kOgoJcmV0c3ViCgovLyB1cGRhdGVBcHBsaWNhdGlvbihzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX3VwZGF0ZUFwcGxpY2F0aW9uOgoJLy8gdmVyc2lvbk51bTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgdXBkYXRlQXBwbGljYXRpb24oc3RyaW5nKXZvaWQKCWNhbGxzdWIgdXBkYXRlQXBwbGljYXRpb24KCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHVwZGF0ZUFwcGxpY2F0aW9uKHZlcnNpb25OdW06IHN0cmluZyk6IHZvaWQKdXBkYXRlQXBwbGljYXRpb246Cglwcm90byAxIDAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTAKCS8vIGFzc2VydCh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfSVNMT0NLRUQpLnZhbHVlICE9PSBORkRfTE9DS0VEX1ZBTF9UUlVFLCAnY29udHJhY3QgbXVzdCBiZSB1bmxvY2tlZCB0byB1cGdyYWRlJykKCWJ5dGVjIDI1IC8vICJpLmNvbnRyYWN0TG9ja2VkIgoJYXBwX2dsb2JhbF9nZXQKCWJ5dGVjIDE5IC8vICIxIgoJIT0KCgkvLyBjb250cmFjdCBtdXN0IGJlIHVubG9ja2VkIHRvIHVwZ3JhZGUKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExMwoJLy8gYXNzZXJ0KGdsb2JhbHMuY2FsbGVyQXBwbGljYXRpb25JRCA9PT0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnJlZ2lzdHJ5QXBwSWQpLCAnY2FsbGVyIG11c3QgYmUgTkZEIHJlZ2lzdHJ5IScpCglnbG9iYWwgQ2FsbGVyQXBwbGljYXRpb25JRAoJaW50YyA0IC8vIFRNUExfcmVnaXN0cnlBcHBJZAoJPT0KCgkvLyBjYWxsZXIgbXVzdCBiZSBORkQgcmVnaXN0cnkhCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTQKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9WRVJTSU9OKS52YWx1ZSA9IHZlcnNpb25OdW0KCWJ5dGVjIDQwIC8vICJpLnZlciIKCWZyYW1lX2RpZyAtMSAvLyB2ZXJzaW9uTnVtOiBzdHJpbmcKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTE1CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBvbkNhbGwoKTogdm9pZApvbkNhbGw6Cglwcm90byAwIDAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjAKCS8vIGFzc2VydCghdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX01JTlRJTkcpLmV4aXN0cywgImNhbid0IHN0aWxsIGJlIGluIG1pbnRpbmcgc3RhdGUiKQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJIQoKCS8vIGNhbid0IHN0aWxsIGJlIGluIG1pbnRpbmcgc3RhdGUKCWFzc2VydAoKCS8vICppZjRfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjEKCS8vIHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbMF0gPT09ICdnYXMnCgl0eG4gQXBwbGljYXRpb25BcmdzIDAKCXB1c2hieXRlcyAweDY3NjE3MyAvLyAiZ2FzIgoJPT0KCWJ6ICppZjRfZW5kCgoJLy8gKmlmNF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjEKCS8vIHJldHVybgoJcmV0c3ViCgoqaWY0X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyNQoJLy8gYXNzZXJ0KCF0aGlzLmlzRXhwaXJlZCgpLCAiTkZEIGNhbid0IGJlIGV4cGlyZWQgZm9yIHRoZXNlIHYxL3YyIG9wZXJhdGlvbnMiKQoJY2FsbHN1YiBpc0V4cGlyZWQKCSEKCgkvLyBORkQgY2FuJ3QgYmUgZXhwaXJlZCBmb3IgdGhlc2UgdjEvdjIgb3BlcmF0aW9ucwoJYXNzZXJ0CgoJLy8gKmlmNV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyNwoJLy8gdGhpcy50eG4ubnVtQXBwQXJncyA+PSAzICYmIHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbMF0gPT09IE5GRF9DQUxMX1VQREFURV9GSUVMRAoJdHhuIE51bUFwcEFyZ3MKCWludGMgNiAvLyAzCgk+PQoJZHVwCglieiAqc2tpcF9hbmQyCgl0eG4gQXBwbGljYXRpb25BcmdzIDAKCXB1c2hieXRlcyAidXBkYXRlX2ZpZWxkIgoJPT0KCSYmCgoqc2tpcF9hbmQyOgoJYnogKmlmNV9lbmQKCgkvLyAqaWY1X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzMwoJLy8gdGhpcy51cGRhdGVGaWVsZHNGcm9tQXJncygpCgljYWxsc3ViIHVwZGF0ZUZpZWxkc0Zyb21BcmdzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTM0CgkvLyByZXR1cm4KCXJldHN1YgoKKmlmNV9lbmQ6CgkvLyAqaWY2X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTM2CgkvLyB0aGlzLnR4bi5udW1BcHBBcmdzID49IDEgJiYgdGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVswXSA9PT0gTkZEX0NBTExfREVMRVRFX0ZJRUxECgl0eG4gTnVtQXBwQXJncwoJaW50YyAxIC8vIDEKCT49CglkdXAKCWJ6ICpza2lwX2FuZDMKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMAoJcHVzaGJ5dGVzICJkZWxldGVfZmllbGQiCgk9PQoJJiYKCipza2lwX2FuZDM6CglieiAqaWY2X2VuZAoKCS8vICppZjZfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQxCgkvLyB0aGlzLmRlbGV0ZUZpZWxkc0Zyb21BcmdzKCkKCWNhbGxzdWIgZGVsZXRlRmllbGRzRnJvbUFyZ3MKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDIKCS8vIHJldHVybgoJcmV0c3ViCgoqaWY2X2VuZDoKCS8vICppZjdfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDQKCS8vIHRoaXMudHhuLm51bUFwcEFyZ3MgPT09IDIgJiYgdGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVswXSA9PT0gTkZEX0NBTExfUkVBRF9QUk9QRVJUWQoJdHhuIE51bUFwcEFyZ3MKCWludGMgMiAvLyAyCgk9PQoJZHVwCglieiAqc2tpcF9hbmQ0Cgl0eG4gQXBwbGljYXRpb25BcmdzIDAKCXB1c2hieXRlcyAicmVhZF9wcm9wZXJ0eSIKCT09CgkmJgoKKnNraXBfYW5kNDoKCWJ6ICppZjdfZW5kCgoJLy8gKmlmN19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDkKCS8vIGxvZyh0aGlzLnJlYWRGaWVsZCh0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzFdIGFzIGJ5dGVzKSkKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMQoJY2FsbHN1YiByZWFkRmllbGQKCWxvZwoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MAoJLy8gcmV0dXJuCglyZXRzdWIKCippZjdfZW5kOgoJLy8gKmlmOF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MwoJLy8gdGhpcy50eG4ubnVtQXBwQXJncyA9PT0gMiAmJiB0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzBdID09PSBORkRfQ0FMTF9VUERBVEVfSEFTSAoJdHhuIE51bUFwcEFyZ3MKCWludGMgMiAvLyAyCgk9PQoJZHVwCglieiAqc2tpcF9hbmQ1Cgl0eG4gQXBwbGljYXRpb25BcmdzIDAKCXB1c2hieXRlcyAidXBkYXRlX2hhc2giCgk9PQoJJiYKCipza2lwX2FuZDU6CglieiAqaWY4X2VuZAoKCS8vICppZjhfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU0CgkvLyB0aGlzLnVwZGF0ZUhhc2godGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVsxXSBhcyBieXRlcykKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMQoJY2FsbHN1YiB1cGRhdGVIYXNoCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU1CgkvLyByZXR1cm4KCXJldHN1YgoKKmlmOF9lbmQ6CgkvLyAqaWY5X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU5CgkvLyB0aGlzLnR4bi5udW1BcHBBcmdzID09PSAyICYmIHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbMF0gPT09IE5GRF9DQUxMX0NPTlRSQUNUX0xPQ0sKCXR4biBOdW1BcHBBcmdzCglpbnRjIDIgLy8gMgoJPT0KCWR1cAoJYnogKnNraXBfYW5kNgoJdHhuIEFwcGxpY2F0aW9uQXJncyAwCglwdXNoYnl0ZXMgImNvbnRyYWN0X2xvY2siCgk9PQoJJiYKCipza2lwX2FuZDY6CglieiAqaWY5X2VuZAoKCS8vICppZjlfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTYwCgkvLyB0aGlzLmNvbnRyYWN0TG9jayh0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzFdID09PSAnMScpCgl0eG4gQXBwbGljYXRpb25BcmdzIDEKCWJ5dGVjIDE1IC8vICAiMSIKCT09CgljYWxsc3ViIGNvbnRyYWN0TG9jawoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE2MQoJLy8gcmV0dXJuCglyZXRzdWIKCippZjlfZW5kOgoJLy8gKmlmMTBfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNjYKCS8vIHRoaXMudHhuLm51bUFwcEFyZ3MgPT09IDMgJiYgdGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVswXSA9PT0gTkZEX0NBTExfU0VHTUVOVF9MT0NLCgl0eG4gTnVtQXBwQXJncwoJaW50YyA2IC8vIDMKCT09CglkdXAKCWJ6ICpza2lwX2FuZDcKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMAoJcHVzaGJ5dGVzICJzZWdtZW50X2xvY2siCgk9PQoJJiYKCipza2lwX2FuZDc6CglieiAqaWYxMF9lbmQKCgkvLyAqaWYxMF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNjcKCS8vIHRoaXMuc2VnbWVudExvY2sodGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVsxXSA9PT0gJzEnLCBidG9pKHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbMl0pKQoJdHhuIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgl0eG4gQXBwbGljYXRpb25BcmdzIDEKCWJ5dGVjIDE1IC8vICAiMSIKCT09CgljYWxsc3ViIHNlZ21lbnRMb2NrCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTY4CgkvLyByZXR1cm4KCXJldHN1YgoKKmlmMTBfZW5kOgoJLy8gKmlmMTFfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNzUKCS8vIHRoaXMudHhuLm51bUFwcEFyZ3MgPj0gMiAmJiB0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzBdID09PSBORkRfQ0FMTF9WQVVMVF9PUFRJTgoJdHhuIE51bUFwcEFyZ3MKCWludGMgMiAvLyAyCgk+PQoJZHVwCglieiAqc2tpcF9hbmQ4Cgl0eG4gQXBwbGljYXRpb25BcmdzIDAKCXB1c2hieXRlcyAidmF1bHRfb3B0aW4iCgk9PQoJJiYKCipza2lwX2FuZDg6CglieiAqaWYxMV9lbmQKCgkvLyAqaWYxMV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNzYKCS8vIHRoaXMudmF1bHRPcHRJbkZyb21BcmdzKCkKCWNhbGxzdWIgdmF1bHRPcHRJbkZyb21BcmdzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTc3CgkvLyByZXR1cm4KCXJldHN1YgoKKmlmMTFfZW5kOgoJLy8gdW5rbm93biBtZXRob2QKCWVycgoJcmV0c3ViCgovLyBnYXMoKXZvaWQKKmFiaV9yb3V0ZV9nYXM6CgkvLyBleGVjdXRlIGdhcygpdm9pZAoJY2FsbHN1YiBnYXMKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdhcygpOiB2b2lkCmdhczoKCXByb3RvIDAgMAoJcmV0c3ViCgovLyBtaW50QXNhKHN0cmluZyxzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX21pbnRBc2E6CgkvLyB1cmw6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBuZmROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBtaW50QXNhKHN0cmluZyxzdHJpbmcpdm9pZAoJY2FsbHN1YiBtaW50QXNhCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBtaW50QXNhKG5mZE5hbWU6IHN0cmluZywgdXJsOiBzdHJpbmcpOiB2b2lkCm1pbnRBc2E6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE5MAoJLy8gYXNzZXJ0KGdsb2JhbHMuY2FsbGVyQXBwbGljYXRpb25JRCA9PT0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnJlZ2lzdHJ5QXBwSWQpLCAnY2FsbGVyIG11c3QgYmUgTkZEIHJlZ2lzdHJ5IScpCglnbG9iYWwgQ2FsbGVyQXBwbGljYXRpb25JRAoJaW50YyA0IC8vIFRNUExfcmVnaXN0cnlBcHBJZAoJPT0KCgkvLyBjYWxsZXIgbXVzdCBiZSBORkQgcmVnaXN0cnkhCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxOTEKCS8vIGFzc2VydCh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfTUlOVElORykudmFsdWUgPT09IE5GRF9NSU5USU5HX1NUQVRFX1BSRUFTQSkKCWJ5dGVjIDMgLy8gImkubWludGluZyIKCWFwcF9nbG9iYWxfZ2V0CglieXRlYyAxOSAvLyAiMSIKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxOTMKCS8vIGFzc2V0ID0gc2VuZEFzc2V0Q3JlYXRpb24oewoJLy8gICAgICAgICAgICAgY29uZmlnQXNzZXRVbml0TmFtZTogJ05GRCcsCgkvLyAgICAgICAgICAgICBjb25maWdBc3NldE5hbWU6IG5mZE5hbWUsCgkvLyAgICAgICAgICAgICBjb25maWdBc3NldFRvdGFsOiAxLAoJLy8gICAgICAgICAgICAgY29uZmlnQXNzZXREZWNpbWFsczogMCwKCS8vICAgICAgICAgICAgIGNvbmZpZ0Fzc2V0RGVmYXVsdEZyb3plbjogMSwKCS8vICAgICAgICAgICAgIGNvbmZpZ0Fzc2V0VVJMOiB1cmwsCgkvLyAgICAgICAgICAgICBjb25maWdBc3NldE1hbmFnZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICAgICAgICBjb25maWdBc3NldFJlc2VydmU6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICAgICAgICBjb25maWdBc3NldENsYXdiYWNrOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyA2IC8vICBhY2ZnCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTk0CgkvLyBjb25maWdBc3NldFVuaXROYW1lOiAnTkZEJwoJcHVzaGJ5dGVzIDB4NGU0NjQ0IC8vICJORkQiCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VW5pdE5hbWUKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxOTUKCS8vIGNvbmZpZ0Fzc2V0TmFtZTogbmZkTmFtZQoJZnJhbWVfZGlnIC0xIC8vIG5mZE5hbWU6IHN0cmluZwoJaXR4bl9maWVsZCBDb25maWdBc3NldE5hbWUKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxOTYKCS8vIGNvbmZpZ0Fzc2V0VG90YWw6IDEKCWludGMgMSAvLyAxCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VG90YWwKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxOTcKCS8vIGNvbmZpZ0Fzc2V0RGVjaW1hbHM6IDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0RGVjaW1hbHMKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxOTgKCS8vIGNvbmZpZ0Fzc2V0RGVmYXVsdEZyb3plbjogMQoJaW50YyAxIC8vIDEKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXREZWZhdWx0RnJvemVuCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTk5CgkvLyBjb25maWdBc3NldFVSTDogdXJsCglmcmFtZV9kaWcgLTIgLy8gdXJsOiBzdHJpbmcKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRVUkwKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyMDAKCS8vIGNvbmZpZ0Fzc2V0TWFuYWdlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRNYW5hZ2VyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjAxCgkvLyBjb25maWdBc3NldFJlc2VydmU6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0UmVzZXJ2ZQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIwMgoJLy8gY29uZmlnQXNzZXRDbGF3YmFjazogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRDbGF3YmFjawoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gQ3JlYXRlZEFzc2V0SUQKCWZyYW1lX2J1cnkgMCAvLyBhc3NldDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjA0CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfQVNBSUQpLnZhbHVlID0gaXRvYihhc3NldC5pZCkKCWJ5dGVjIDE4IC8vICJpLmFzYWlkIgoJZnJhbWVfZGlnIDAgLy8gYXNzZXQ6IHVpbnQ2NAoJaXRvYgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyMDUKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HKS52YWx1ZSA9IE5GRF9NSU5USU5HX1NUQVRFX1BPU1RBU0EKCWJ5dGVjIDMgLy8gImkubWludGluZyIKCWJ5dGVjIDMwIC8vICIyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyMDYKCS8vIGxvZyhpdG9iKGFzc2V0LmlkKSkKCWZyYW1lX2RpZyAwIC8vIGFzc2V0OiB1aW50NjQKCWl0b2IKCWxvZwoJcmV0c3ViCgovLyBkZWxldGVGaWVsZHMoYnl0ZVtdW10pdm9pZAoqYWJpX3JvdXRlX2RlbGV0ZUZpZWxkczoKCS8vIGZpZWxkTmFtZXM6IGJ5dGVbXVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCgoJLy8gZXhlY3V0ZSBkZWxldGVGaWVsZHMoYnl0ZVtdW10pdm9pZAoJY2FsbHN1YiBkZWxldGVGaWVsZHMKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGRlbGV0ZUZpZWxkcyhmaWVsZE5hbWVzOiBieXRlc1tdKTogdm9pZApkZWxldGVGaWVsZHM6Cglwcm90byAxIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwbiA0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjE0CgkvLyBhc3NlcnQoIXRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HKS5leGlzdHMpCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlYyAzIC8vICJpLm1pbnRpbmciCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCgkhCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyMTUKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9USU1FQ0hBTkdFRCkudmFsdWUgPSBpdG9iKGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wKQoJYnl0ZWMgMiAvLyAiaS50aW1lQ2hhbmdlZCIKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjE3CgkvLyBhZG1pblJpZ2h0cyA9IHRoaXMuaXNDdXJyZW50VHhuQ29udHJhY3RBdXRob3JpdHkoKQoJY2FsbHN1YiBpc0N1cnJlbnRUeG5Db250cmFjdEF1dGhvcml0eQoJZnJhbWVfYnVyeSAwIC8vIGFkbWluUmlnaHRzOiBib29sCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjE4CgkvLyBib3hDb3N0cyA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDEgLy8gYm94Q29zdHM6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIxOQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBmaWVsZE5hbWVzLmxlbmd0aDsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCipmb3JfMDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIxOQoJLy8gaSA8IGZpZWxkTmFtZXMubGVuZ3RoCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZE5hbWVzOiBieXRlc1tdCglpbnRjIDAgLy8gMAoJZXh0cmFjdF91aW50MTYKCTwKCWJ6ICpmb3JfMF9lbmQKCgkvLyAqaWYxMl9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIyMAoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAyMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludGMgMTkgLy8gMjAwCgk8CglieiAqaWYxMl9lbmQKCgkvLyAqaWYxMl9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyMjEKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyAxNCAvLyAgI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50YyAxMyAvLyAgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMTJfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjIzCgkvLyBuYW1lID0gZmllbGROYW1lc1tpXQoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkTmFtZXM6IGJ5dGVzW10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnRjIDAgLy8gIGluaXRpYWwgb2Zmc2V0CglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMiAvLyAyCgkqIC8vIGFjYyAqIDIKCSsKCWludGMgMiAvLyAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJaW50YyAyIC8vIDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludGMgMSAvLyAgZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnRjIDIgLy8gMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWV4dHJhY3QzCglleHRyYWN0IDIgMAoJZnJhbWVfYnVyeSAzIC8vIG5hbWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIyNAoJLy8gYXNzZXJ0KHRoaXMuaXNGaWVsZERlbGV0ZUFsbG93ZWQobmFtZSwgYWRtaW5SaWdodHMpLCAnZmllbGQgbm90IHJlbW92YWJsZSBvciBubyBwZXJtaXNzaW9ucyB0byByZW1vdmUnKQoJZnJhbWVfZGlnIDAgLy8gYWRtaW5SaWdodHM6IGJvb2wKCWZyYW1lX2RpZyAzIC8vIG5hbWU6IGJ5dGVbXQoJY2FsbHN1YiBpc0ZpZWxkRGVsZXRlQWxsb3dlZAoKCS8vIGZpZWxkIG5vdCByZW1vdmFibGUgb3Igbm8gcGVybWlzc2lvbnMgdG8gcmVtb3ZlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyMjUKCS8vIGJveFNpemUgPSB0aGlzLmJveGVzKG5hbWUpLnNpemUKCWZyYW1lX2RpZyAzIC8vIG5hbWU6IGJ5dGVbXQoJYm94X2xlbgoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hlcyhuYW1lKS5zaXplCglhc3NlcnQKCWZyYW1lX2J1cnkgNCAvLyBib3hTaXplOiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyMjYKCS8vIHRoaXMuYm94ZXMobmFtZSkuZGVsZXRlKCkKCWZyYW1lX2RpZyAzIC8vIG5hbWU6IGJ5dGVbXQoJYm94X2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIyNwoJLy8gYm94Q29zdHMgKz0gU0NCT1hfUEVSQk9YICsgKG5hbWUubGVuZ3RoICsgYm94U2l6ZSkgKiBTQ0JPWF9QRVJCWVRFCglmcmFtZV9kaWcgMSAvLyBib3hDb3N0czogdWludDY0CglpbnRjIDEyIC8vIDI1MDAKCWZyYW1lX2RpZyAzIC8vIG5hbWU6IGJ5dGVbXQoJbGVuCglmcmFtZV9kaWcgNCAvLyBib3hTaXplOiB1aW50NjQKCSsKCWludGMgOSAvLyA0MDAKCSoKCSsKCSsKCWZyYW1lX2J1cnkgMSAvLyBib3hDb3N0czogdWludDY0CgoqZm9yXzBfY29udGludWU6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyMTkKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzAKCipmb3JfMF9lbmQ6CgkvLyAqaWYxM19jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIyOQoJLy8gYm94Q29zdHMgPiAwCglmcmFtZV9kaWcgMSAvLyBib3hDb3N0czogdWludDY0CglpbnRjIDAgLy8gMAoJPgoJYnogKmlmMTNfZW5kCgoJLy8gKmlmMTNfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjMwCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICAgICAgICAgICAgYW1vdW50OiBib3hDb3N0cywKCS8vICAgICAgICAgICAgICAgICByZWNlaXZlcjogdGhpcy50eG4uc2VuZGVyLAoJLy8gICAgICAgICAgICAgICAgIG5vdGU6ICdib3hSZWZ1bmQnLAoJLy8gICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMSAvLyAgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjMxCgkvLyBhbW91bnQ6IGJveENvc3RzCglmcmFtZV9kaWcgMSAvLyBib3hDb3N0czogdWludDY0CglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIzMgoJLy8gcmVjZWl2ZXI6IHRoaXMudHhuLnNlbmRlcgoJdHhuIFNlbmRlcgoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIzMwoJLy8gbm90ZTogJ2JveFJlZnVuZCcKCWJ5dGVjIDMxIC8vICAiYm94UmVmdW5kIgoJaXR4bl9maWVsZCBOb3RlCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMTNfZW5kOgoJcmV0c3ViCgovLyBkZWxldGVGaWVsZHNGcm9tQXJncygpOiB2b2lkCmRlbGV0ZUZpZWxkc0Zyb21BcmdzOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gMgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjIzOQoJLy8gYXNzZXJ0KCF0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfTUlOVElORykuZXhpc3RzKQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJIQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjQxCgkvLyBhZG1pblJpZ2h0cyA9IHRoaXMuaXNDdXJyZW50VHhuQ29udHJhY3RBdXRob3JpdHkoKQoJY2FsbHN1YiBpc0N1cnJlbnRUeG5Db250cmFjdEF1dGhvcml0eQoJZnJhbWVfYnVyeSAwIC8vIGFkbWluUmlnaHRzOiBib29sCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjQyCgkvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAxOyBpIDwgdGhpcy50eG4ubnVtQXBwQXJnczsgaSArPSAxKQoJaW50YyAxIC8vIDEKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCipmb3JfMToKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI0MgoJLy8gaSA8IHRoaXMudHhuLm51bUFwcEFyZ3MKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJdHhuIE51bUFwcEFyZ3MKCTwKCWJ6ICpmb3JfMV9lbmQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyNDMKCS8vIG5hbWUgPSB0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhW2ldIGFzIGJ5dGVzCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCXR4bmFzIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfYnVyeSAyIC8vIG5hbWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI0NAoJLy8gYXNzZXJ0KHRoaXMuaXNGaWVsZERlbGV0ZUFsbG93ZWQobmFtZSwgYWRtaW5SaWdodHMpLCAnZmllbGQgbm90IHJlbW92YWJsZSBvciBubyBwZXJtaXNzaW9ucyB0byByZW1vdmUnKQoJZnJhbWVfZGlnIDAgLy8gYWRtaW5SaWdodHM6IGJvb2wKCWZyYW1lX2RpZyAyIC8vIG5hbWU6IGJ5dGVbXQoJY2FsbHN1YiBpc0ZpZWxkRGVsZXRlQWxsb3dlZAoKCS8vIGZpZWxkIG5vdCByZW1vdmFibGUgb3Igbm8gcGVybWlzc2lvbnMgdG8gcmVtb3ZlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyNDUKCS8vIHRoaXMuYm94ZXMobmFtZSkuZGVsZXRlKCkKCWZyYW1lX2RpZyAyIC8vIG5hbWU6IGJ5dGVbXQoJYm94X2RlbAoKKmZvcl8xX2NvbnRpbnVlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjQyCgkvLyBpICs9IDEKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCWIgKmZvcl8xCgoqZm9yXzFfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjQ3CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyB1cGRhdGVTZWdtZW50Q291bnQoc3RyaW5nLHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfdXBkYXRlU2VnbWVudENvdW50OgoJLy8gY2hpbGROZmRBcHBJRDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gY2hpbGROZmROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSB1cGRhdGVTZWdtZW50Q291bnQoc3RyaW5nLHVpbnQ2NCl2b2lkCgljYWxsc3ViIHVwZGF0ZVNlZ21lbnRDb3VudAoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gdXBkYXRlU2VnbWVudENvdW50KGNoaWxkTmZkTmFtZTogc3RyaW5nLCBjaGlsZE5mZEFwcElEOiB1aW50NjQpOiB2b2lkCnVwZGF0ZVNlZ21lbnRDb3VudDoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyNTgKCS8vIGFzc2VydChnbG9iYWxzLmNhbGxlckFwcGxpY2F0aW9uSUQgPT09IEFwcElELmZyb21VaW50NjQodGhpcy5yZWdpc3RyeUFwcElkKSwgJ2NhbGxlciBtdXN0IGJlIE5GRCByZWdpc3RyeSEnKQoJZ2xvYmFsIENhbGxlckFwcGxpY2F0aW9uSUQKCWludGMgNCAvLyBUTVBMX3JlZ2lzdHJ5QXBwSWQKCT09CgoJLy8gY2FsbGVyIG11c3QgYmUgTkZEIHJlZ2lzdHJ5IQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjU5CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgICAgICB0aGlzLnNhZmVHbG9iYWxCeXRlR2V0RXgoY2hpbGROZmRBcHBJRCwgTkZEX0tFWV9NSU5USU5HKSA9PT0gTkZEX01JTlRJTkdfU1RBVEVfUE9TVEFTQSwKCS8vICAgICAgICAgICAgICdjaGlsZCBORkQgTVVTVCBzdGlsbCBiZSBpbiBwcmUtY2xhaW0gc3RhdGUhJywKCS8vICAgICAgICAgKQoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJZnJhbWVfZGlnIC0yIC8vIGNoaWxkTmZkQXBwSUQ6IHVpbnQ2NAoJY2FsbHN1YiBzYWZlR2xvYmFsQnl0ZUdldEV4CglieXRlYyAzMCAvLyAiMiIKCT09CgoJLy8gY2hpbGQgTkZEIE1VU1Qgc3RpbGwgYmUgaW4gcHJlLWNsYWltIHN0YXRlIQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjYzCgkvLyBhc3NlcnQoIXRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HKS5leGlzdHMpCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlYyAzIC8vICJpLm1pbnRpbmciCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCgkhCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyNjQKCS8vIHRoaXMubm90Rm9yU2FsZU9yRXhwaXJlZCgpCgljYWxsc3ViIG5vdEZvclNhbGVPckV4cGlyZWQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyNjYKCS8vIGFzc2VydCgKCS8vICAgICAgICAgICAgIHRoaXMuc2FmZUdsb2JhbEJ5dGVHZXRFeChjaGlsZE5mZEFwcElELCBORkRfS0VZX05BTUUpID09PSBjaGlsZE5mZE5hbWUsCgkvLyAgICAgICAgICAgICAncGFzc2VkIGluIGNoaWxkIG5hbWUgbXVzdCBtYXRjaCBuYW1lIGluIGNyZWF0ZWQgbmZkIHN0YXRlJywKCS8vICAgICAgICAgKQoJYnl0ZWMgNCAvLyAiaS5uYW1lIgoJZnJhbWVfZGlnIC0yIC8vIGNoaWxkTmZkQXBwSUQ6IHVpbnQ2NAoJY2FsbHN1YiBzYWZlR2xvYmFsQnl0ZUdldEV4CglmcmFtZV9kaWcgLTEgLy8gY2hpbGROZmROYW1lOiBzdHJpbmcKCT09CgoJLy8gcGFzc2VkIGluIGNoaWxkIG5hbWUgbXVzdCBtYXRjaCBuYW1lIGluIGNyZWF0ZWQgbmZkIHN0YXRlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyNzAKCS8vIHRoaXNQYXJlbnROYW1lID0gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlCglieXRlYyA0IC8vICJpLm5hbWUiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfYnVyeSAwIC8vIHRoaXNQYXJlbnROYW1lOiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyNzUKCS8vIGluZGV4Q2hlY2tTdG9wID0gbGVuKGNoaWxkTmZkTmFtZSkgLSBsZW4odGhpc1BhcmVudE5hbWUpIC0gMQoJZnJhbWVfZGlnIC0xIC8vIGNoaWxkTmZkTmFtZTogc3RyaW5nCglsZW4KCWZyYW1lX2RpZyAwIC8vIHRoaXNQYXJlbnROYW1lOiBieXRlW10KCWxlbgoJLQoJaW50YyAxIC8vIDEKCS0KCWZyYW1lX2J1cnkgMSAvLyBpbmRleENoZWNrU3RvcDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Mjc2CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgICAgICBleHRyYWN0MyhjaGlsZE5mZE5hbWUsIGluZGV4Q2hlY2tTdG9wLCBsZW4odGhpc1BhcmVudE5hbWUpICsgMSkgPT09ICcuJyArIHRoaXNQYXJlbnROYW1lLAoJLy8gICAgICAgICAgICAgJ3BhcmVudCBtdXN0IGJlIHN1ZmZpeCBvZiBjaGlsZCcsCgkvLyAgICAgICAgICkKCWZyYW1lX2RpZyAtMSAvLyBjaGlsZE5mZE5hbWU6IHN0cmluZwoJZnJhbWVfZGlnIDEgLy8gaW5kZXhDaGVja1N0b3A6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gdGhpc1BhcmVudE5hbWU6IGJ5dGVbXQoJbGVuCglpbnRjIDEgLy8gMQoJKwoJZXh0cmFjdDMKCWJ5dGVjIDI4IC8vICAiLiIKCWZyYW1lX2RpZyAwIC8vIHRoaXNQYXJlbnROYW1lOiBieXRlW10KCWNvbmNhdAoJPT0KCgkvLyBwYXJlbnQgbXVzdCBiZSBzdWZmaXggb2YgY2hpbGQKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI4MAoJLy8gYXNzZXJ0KHRoaXMubm9QZXJpb2RCZWZvcmVJbmRleChjaGlsZE5mZE5hbWUsIGluZGV4Q2hlY2tTdG9wKSkKCWZyYW1lX2RpZyAxIC8vIGluZGV4Q2hlY2tTdG9wOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBjaGlsZE5mZE5hbWU6IHN0cmluZwoJY2FsbHN1YiBub1BlcmlvZEJlZm9yZUluZGV4Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyODEKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUdNRU5UQ09VTlQpLnZhbHVlID0gaXRvYih0aGlzLnNhZmVHbG9iYWxJbnRHZXQoTkZEX0tFWV9TRUdNRU5UQ09VTlQpICsgMSkKCWJ5dGVjIDM1IC8vICJpLnNlZ21lbnRDb3VudCIKCWR1cAoJY2FsbHN1YiBzYWZlR2xvYmFsSW50R2V0CglpbnRjIDEgLy8gMQoJKwoJaXRvYgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyODIKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9USU1FQ0hBTkdFRCkudmFsdWUgPSBpdG9iKGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wKQoJYnl0ZWMgMiAvLyAiaS50aW1lQ2hhbmdlZCIKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGdldEZpZWxkVXBkYXRlQ29zdChieXRlW11bXSl1aW50NjQKKmFiaV9yb3V0ZV9nZXRGaWVsZFVwZGF0ZUNvc3Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDExIC8vIDB4MTUxZjdjNzUKCgkvLyBmaWVsZEFuZFZhbHM6IGJ5dGVbXVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCgoJLy8gZXhlY3V0ZSBnZXRGaWVsZFVwZGF0ZUNvc3QoYnl0ZVtdW10pdWludDY0CgljYWxsc3ViIGdldEZpZWxkVXBkYXRlQ29zdAoJaXRvYgoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldEZpZWxkVXBkYXRlQ29zdChmaWVsZEFuZFZhbHM6IGJ5dGVzW10pOiB1aW50NjQKZ2V0RmllbGRVcGRhdGVDb3N0OgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gNgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI4NwoJLy8gY29zdCA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDAgLy8gY29zdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Mjg4CgkvLyByZW1vdmVkQ29zdCA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDEgLy8gcmVtb3ZlZENvc3Q6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI5MAoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBmaWVsZEFuZFZhbHMubGVuZ3RoOyBpICs9IDIpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoKKmZvcl8yOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjkwCgkvLyBpIDwgZmllbGRBbmRWYWxzLmxlbmd0aAoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gZmllbGRBbmRWYWxzOiBieXRlc1tdCglpbnRjIDAgLy8gMAoJZXh0cmFjdF91aW50MTYKCTwKCWJ6ICpmb3JfMl9lbmQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyOTEKCS8vIG5hbWUgPSBmaWVsZEFuZFZhbHNbaV0KCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEFuZFZhbHM6IGJ5dGVzW10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnRjIDAgLy8gIGluaXRpYWwgb2Zmc2V0CglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludGMgMiAvLyAyCgkqIC8vIGFjYyAqIDIKCSsKCWludGMgMiAvLyAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJaW50YyAyIC8vIDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludGMgMSAvLyAgZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnRjIDIgLy8gMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWV4dHJhY3QzCglleHRyYWN0IDIgMAoJZnJhbWVfYnVyeSAzIC8vIG5hbWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI5MgoJLy8gdmFsdWUgPSBmaWVsZEFuZFZhbHNbaSArIDFdCglmcmFtZV9kaWcgLTEgLy8gZmllbGRBbmRWYWxzOiBieXRlc1tdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50YyAwIC8vICBpbml0aWFsIG9mZnNldAoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJaW50YyAyIC8vIDIKCSogLy8gYWNjICogMgoJKwoJaW50YyAyIC8vIDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglpbnRjIDIgLy8gMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50YyAxIC8vICBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludGMgMiAvLyAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCglmcmFtZV9idXJ5IDQgLy8gdmFsdWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI5MwoJLy8gZXhpc3RzID0gdGhpcy5ib3hlcyhuYW1lKS5leGlzdHMKCWZyYW1lX2RpZyAzIC8vIG5hbWU6IGJ5dGVbXQoJYm94X2xlbgoJc3dhcAoJcG9wCglmcmFtZV9idXJ5IDUgLy8gZXhpc3RzOiBib29sCgoJLy8gKmlmMTRfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoyOTUKCS8vIGxlbih2YWx1ZSkgPT09IDAKCWZyYW1lX2RpZyA0IC8vIHZhbHVlOiBieXRlW10KCWxlbgoJaW50YyAwIC8vIDAKCT09CglieiAqaWYxNF9lbmQKCgkvLyAqaWYxNF9jb25zZXF1ZW50CgkvLyAqaWYxNV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI5NgoJLy8gZXhpc3RzCglmcmFtZV9kaWcgNSAvLyBleGlzdHM6IGJvb2wKCWJ6ICppZjE1X2VuZAoKCS8vICppZjE1X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjI5OAoJLy8gcmVtb3ZlZENvc3QgKz0gU0NCT1hfUEVSQk9YICsgU0NCT1hfUEVSQllURSAqIChsZW4obmFtZSkgKyB0aGlzLmJveGVzKG5hbWUpLnNpemUpCglmcmFtZV9kaWcgMSAvLyByZW1vdmVkQ29zdDogdWludDY0CglpbnRjIDEyIC8vIDI1MDAKCWludGMgOSAvLyA0MDAKCWZyYW1lX2RpZyAzIC8vIG5hbWU6IGJ5dGVbXQoJbGVuCglmcmFtZV9kaWcgMyAvLyBuYW1lOiBieXRlW10KCWJveF9sZW4KCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94ZXMobmFtZSkuc2l6ZQoJYXNzZXJ0CgkrCgkqCgkrCgkrCglmcmFtZV9idXJ5IDEgLy8gcmVtb3ZlZENvc3Q6IHVpbnQ2NAoKKmlmMTVfZW5kOgoJYiAqZm9yXzJfY29udGludWUKCippZjE0X2VuZDoKCS8vICppZjE2X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzAyCgkvLyAhZXhpc3RzCglmcmFtZV9kaWcgNSAvLyBleGlzdHM6IGJvb2wKCSEKCWJ6ICppZjE2X2VuZAoKCS8vICppZjE2X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjMwNAoJLy8gY29zdCArPSBTQ0JPWF9QRVJCT1ggKyBTQ0JPWF9QRVJCWVRFICogKGxlbihuYW1lKSArIGxlbih2YWx1ZSkpCglmcmFtZV9kaWcgMCAvLyBjb3N0OiB1aW50NjQKCWludGMgMTIgLy8gMjUwMAoJaW50YyA5IC8vIDQwMAoJZnJhbWVfZGlnIDMgLy8gbmFtZTogYnl0ZVtdCglsZW4KCWZyYW1lX2RpZyA0IC8vIHZhbHVlOiBieXRlW10KCWxlbgoJKwoJKgoJKwoJKwoJZnJhbWVfYnVyeSAwIC8vIGNvc3Q6IHVpbnQ2NAoJYiAqZm9yXzJfY29udGludWUKCippZjE2X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjMwNwoJLy8gZXhpc3RpbmdMZW5ndGggPSB0aGlzLmJveGVzKG5hbWUpLnNpemUKCWZyYW1lX2RpZyAzIC8vIG5hbWU6IGJ5dGVbXQoJYm94X2xlbgoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hlcyhuYW1lKS5zaXplCglhc3NlcnQKCWZyYW1lX2J1cnkgNiAvLyBleGlzdGluZ0xlbmd0aDogdWludDY0CgoJLy8gKmlmMTdfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMDgKCS8vIGxlbih2YWx1ZSkgPD0gZXhpc3RpbmdMZW5ndGgKCWZyYW1lX2RpZyA0IC8vIHZhbHVlOiBieXRlW10KCWxlbgoJZnJhbWVfZGlnIDYgLy8gZXhpc3RpbmdMZW5ndGg6IHVpbnQ2NAoJPD0KCWJ6ICppZjE3X2Vsc2UKCgkvLyAqaWYxN19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMDkKCS8vIHJlbW92ZWRDb3N0ICs9IFNDQk9YX1BFUkJZVEUgKiAoZXhpc3RpbmdMZW5ndGggLSBsZW4odmFsdWUpKQoJZnJhbWVfZGlnIDEgLy8gcmVtb3ZlZENvc3Q6IHVpbnQ2NAoJaW50YyA5IC8vIDQwMAoJZnJhbWVfZGlnIDYgLy8gZXhpc3RpbmdMZW5ndGg6IHVpbnQ2NAoJZnJhbWVfZGlnIDQgLy8gdmFsdWU6IGJ5dGVbXQoJbGVuCgktCgkqCgkrCglmcmFtZV9idXJ5IDEgLy8gcmVtb3ZlZENvc3Q6IHVpbnQ2NAoJYiAqaWYxN19lbmQKCippZjE3X2Vsc2U6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMTEKCS8vIGNvc3QgKz0gU0NCT1hfUEVSQllURSAqIChsZW4odmFsdWUpIC0gZXhpc3RpbmdMZW5ndGgpCglmcmFtZV9kaWcgMCAvLyBjb3N0OiB1aW50NjQKCWludGMgOSAvLyA0MDAKCWZyYW1lX2RpZyA0IC8vIHZhbHVlOiBieXRlW10KCWxlbgoJZnJhbWVfZGlnIDYgLy8gZXhpc3RpbmdMZW5ndGg6IHVpbnQ2NAoJLQoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIGNvc3Q6IHVpbnQ2NAoKKmlmMTdfZW5kOgoKKmZvcl8yX2NvbnRpbnVlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MjkwCgkvLyBpICs9IDIKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAyIC8vIDIKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl8yCgoqZm9yXzJfZW5kOgoJLy8gKmlmMThfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMTUKCS8vIHJlbW92ZWRDb3N0ID4gY29zdAoJZnJhbWVfZGlnIDEgLy8gcmVtb3ZlZENvc3Q6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gY29zdDogdWludDY0Cgk+CglieiAqaWYxOF9lbmQKCgkvLyAqaWYxOF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMTYKCS8vIHJldHVybiAwCglpbnRjIDAgLy8gMAoJYiAqZ2V0RmllbGRVcGRhdGVDb3N0KnJldHVybgoKKmlmMThfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzE4CgkvLyByZXR1cm4gY29zdCAtIHJlbW92ZWRDb3N0CglmcmFtZV9kaWcgMCAvLyBjb3N0OiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIHJlbW92ZWRDb3N0OiB1aW50NjQKCS0KCipnZXRGaWVsZFVwZGF0ZUNvc3QqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNgoJcmV0c3ViCgovLyB1cGRhdGVGaWVsZHMoYnl0ZVtdW10pdm9pZAoqYWJpX3JvdXRlX3VwZGF0ZUZpZWxkczoKCS8vIGZpZWxkQW5kVmFsczogYnl0ZVtdW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCgkvLyBleGVjdXRlIHVwZGF0ZUZpZWxkcyhieXRlW11bXSl2b2lkCgljYWxsc3ViIHVwZGF0ZUZpZWxkcwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gdXBkYXRlRmllbGRzKGZpZWxkQW5kVmFsczogYnl0ZXNbXSk6IHZvaWQKdXBkYXRlRmllbGRzOgoJcHJvdG8gMSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gMwoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjMyMgoJLy8gYXNzZXJ0KCF0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfTUlOVElORykuZXhpc3RzKQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJIQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzIzCgkvLyBhc3NlcnQoIXRoaXMuaXNFeHBpcmVkKCksICJjYW4ndCB1cGRhdGUgZmllbGRzIGlmIE5GRCBleHBpcmVkIikKCWNhbGxzdWIgaXNFeHBpcmVkCgkhCgoJLy8gY2FuJ3QgdXBkYXRlIGZpZWxkcyBpZiBORkQgZXhwaXJlZAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzI1CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vICppZjE5X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzI4CgkvLyBnbG9iYWxzLmNhbGxlckFwcGxpY2F0aW9uSUQgPT09IEFwcElELmZyb21VaW50NjQodGhpcy5yZWdpc3RyeUFwcElkKQoJZ2xvYmFsIENhbGxlckFwcGxpY2F0aW9uSUQKCWludGMgNCAvLyBUTVBMX3JlZ2lzdHJ5QXBwSWQKCT09CglieiAqaWYxOV9lbmQKCgkvLyAqaWYxOV9jb25zZXF1ZW50CgkvLyAqaWYyMF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjMyOQoJLy8gZmllbGRBbmRWYWxzLmxlbmd0aCA9PT0gMiAmJiBmaWVsZEFuZFZhbHNbMF0gPT09IE5GRF9GSUVMRF9DQV9UT19WRVJJRlkKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEFuZFZhbHM6IGJ5dGVzW10KCWludGMgMCAvLyAwCglleHRyYWN0X3VpbnQxNgoJaW50YyAyIC8vIDIKCT09CglkdXAKCWJ6ICpza2lwX2FuZDkKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEFuZFZhbHM6IGJ5dGVzW10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnRjIDIgLy8gMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJaW50YyAyIC8vIDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludGMgMSAvLyAgZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnRjIDIgLy8gMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWV4dHJhY3QzCglleHRyYWN0IDIgMAoJcHVzaGJ5dGVzICJ1LmNhdi5hbGdvLmEiCgk9PQoJJiYKCipza2lwX2FuZDk6CglieiAqaWYyMF9lbmQKCgkvLyAqaWYyMF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMzAKCS8vIHRoaXMuYm94ZXMoZmllbGRBbmRWYWxzWzBdKS52YWx1ZSA9IGZpZWxkQW5kVmFsc1sxXQoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkQW5kVmFsczogYnl0ZXNbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludGMgMiAvLyAyCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglpbnRjIDIgLy8gMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50YyAxIC8vICBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludGMgMiAvLyAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCglmcmFtZV9kaWcgLTEgLy8gZmllbGRBbmRWYWxzOiBieXRlc1tdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50YyAxMCAvLyA0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglpbnRjIDIgLy8gMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50YyAxIC8vICBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludGMgMiAvLyAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCglib3hfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzMxCgkvLyByZXR1cm4KCXJldHN1YgoKKmlmMjBfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzMzCgkvLyBhc3NlcnQoZmFsc2UsICdpbnZhbGlkIHVwZGF0ZSBjYWxsIGJ5IHJlZ2lzdHJ5JykKCWludGMgMCAvLyAwCgoJLy8gaW52YWxpZCB1cGRhdGUgY2FsbCBieSByZWdpc3RyeQoJYXNzZXJ0CgoqaWYxOV9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMzYKCS8vIGFkbWluUmlnaHRzID0gdGhpcy5pc0N1cnJlbnRUeG5Db250cmFjdEF1dGhvcml0eSgpCgljYWxsc3ViIGlzQ3VycmVudFR4bkNvbnRyYWN0QXV0aG9yaXR5CglmcmFtZV9idXJ5IDAgLy8gYWRtaW5SaWdodHM6IGJvb2wKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMzcKCS8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBmaWVsZEFuZFZhbHMubGVuZ3RoOyBpICs9IDIpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoKKmZvcl8zOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzM3CgkvLyBpIDwgZmllbGRBbmRWYWxzLmxlbmd0aAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gZmllbGRBbmRWYWxzOiBieXRlc1tdCglpbnRjIDAgLy8gMAoJZXh0cmFjdF91aW50MTYKCTwKCWJ6ICpmb3JfM19lbmQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozMzgKCS8vIG5hbWUgPSBmaWVsZEFuZFZhbHNbaV0KCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEFuZFZhbHM6IGJ5dGVzW10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnRjIDAgLy8gIGluaXRpYWwgb2Zmc2V0CglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWludGMgMiAvLyAyCgkqIC8vIGFjYyAqIDIKCSsKCWludGMgMiAvLyAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJaW50YyAyIC8vIDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludGMgMSAvLyAgZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnRjIDIgLy8gMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWV4dHJhY3QzCglleHRyYWN0IDIgMAoJZnJhbWVfYnVyeSAyIC8vIG5hbWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjMzOQoJLy8gdmFsdWUgPSBmaWVsZEFuZFZhbHNbaSArIDFdCglmcmFtZV9kaWcgLTEgLy8gZmllbGRBbmRWYWxzOiBieXRlc1tdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50YyAwIC8vICBpbml0aWFsIG9mZnNldAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJaW50YyAyIC8vIDIKCSogLy8gYWNjICogMgoJKwoJaW50YyAyIC8vIDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglpbnRjIDIgLy8gMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50YyAxIC8vICBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludGMgMiAvLyAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCglmcmFtZV9idXJ5IDMgLy8gdmFsdWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjM0MAoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgICAgIHRoaXMuaXNGaWVsZFVwZGF0ZUFsbG93ZWQobmFtZSwgdmFsdWUsIGFkbWluUmlnaHRzKSwKCS8vICAgICAgICAgICAgICAgICAnZmllbGQgbm90IHVwZGF0YWJsZSBvciBubyBwZXJtaXNzaW9ucyB0byB1cGRhdGUnLAoJLy8gICAgICAgICAgICAgKQoJZnJhbWVfZGlnIDAgLy8gYWRtaW5SaWdodHM6IGJvb2wKCWZyYW1lX2RpZyAzIC8vIHZhbHVlOiBieXRlW10KCWZyYW1lX2RpZyAyIC8vIG5hbWU6IGJ5dGVbXQoJY2FsbHN1YiBpc0ZpZWxkVXBkYXRlQWxsb3dlZAoKCS8vIGZpZWxkIG5vdCB1cGRhdGFibGUgb3Igbm8gcGVybWlzc2lvbnMgdG8gdXBkYXRlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozNDQKCS8vIHRoaXMuYm94ZXMobmFtZSkuZGVsZXRlKCkKCWZyYW1lX2RpZyAyIC8vIG5hbWU6IGJ5dGVbXQoJYm94X2RlbAoKCS8vICppZjIxX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzQ1CgkvLyBsZW4odmFsdWUpID4gMAoJZnJhbWVfZGlnIDMgLy8gdmFsdWU6IGJ5dGVbXQoJbGVuCglpbnRjIDAgLy8gMAoJPgoJYnogKmlmMjFfZW5kCgoJLy8gKmlmMjFfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzQ2CgkvLyB0aGlzLmJveGVzKG5hbWUpLnZhbHVlID0gdmFsdWUKCWZyYW1lX2RpZyAyIC8vIG5hbWU6IGJ5dGVbXQoJZnJhbWVfZGlnIDMgLy8gdmFsdWU6IGJ5dGVbXQoJYm94X3B1dAoKKmlmMjFfZW5kOgoKKmZvcl8zX2NvbnRpbnVlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzM3CgkvLyBpICs9IDIKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50YyAyIC8vIDIKCSsKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCWIgKmZvcl8zCgoqZm9yXzNfZW5kOgoJcmV0c3ViCgovLyB1cGRhdGVGaWVsZHNGcm9tQXJncygpOiB2b2lkCnVwZGF0ZUZpZWxkc0Zyb21BcmdzOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gMwoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjM1MgoJLy8gYXNzZXJ0KCF0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfTUlOVElORykuZXhpc3RzKQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJIQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzUzCgkvLyBhc3NlcnQoIXRoaXMuaXNFeHBpcmVkKCksICJjYW4ndCB1cGRhdGUgZmllbGRzIGlmIE5GRCBleHBpcmVkIikKCWNhbGxzdWIgaXNFeHBpcmVkCgkhCgoJLy8gY2FuJ3QgdXBkYXRlIGZpZWxkcyBpZiBORkQgZXhwaXJlZAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzU1CgkvLyBhZG1pblJpZ2h0cyA9IHRoaXMuaXNDdXJyZW50VHhuQ29udHJhY3RBdXRob3JpdHkoKQoJY2FsbHN1YiBpc0N1cnJlbnRUeG5Db250cmFjdEF1dGhvcml0eQoJZnJhbWVfYnVyeSAwIC8vIGFkbWluUmlnaHRzOiBib29sCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzU2CgkvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAxOyBpIDwgdGhpcy50eG4ubnVtQXBwQXJnczsgaSArPSAyKQoJaW50YyAxIC8vIDEKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCipmb3JfNDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjM1NgoJLy8gaSA8IHRoaXMudHhuLm51bUFwcEFyZ3MKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJdHhuIE51bUFwcEFyZ3MKCTwKCWJ6ICpmb3JfNF9lbmQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozNTcKCS8vIG5hbWUgPSB0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhW2ldIGFzIGJ5dGVzCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCXR4bmFzIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfYnVyeSAyIC8vIG5hbWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjM1OAoJLy8gdmFsdWUgPSB0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhW2kgKyAxXSBhcyBieXRlcwoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJdHhuYXMgQXBwbGljYXRpb25BcmdzCglmcmFtZV9idXJ5IDMgLy8gdmFsdWU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjM1OQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgICAgIHRoaXMuaXNGaWVsZFVwZGF0ZUFsbG93ZWQobmFtZSwgdmFsdWUsIGFkbWluUmlnaHRzKSwKCS8vICAgICAgICAgICAgICAgICAnZmllbGQgbm90IHVwZGF0YWJsZSBvciBubyBwZXJtaXNzaW9ucyB0byB1cGRhdGUnLAoJLy8gICAgICAgICAgICAgKQoJZnJhbWVfZGlnIDAgLy8gYWRtaW5SaWdodHM6IGJvb2wKCWZyYW1lX2RpZyAzIC8vIHZhbHVlOiBieXRlW10KCWZyYW1lX2RpZyAyIC8vIG5hbWU6IGJ5dGVbXQoJY2FsbHN1YiBpc0ZpZWxkVXBkYXRlQWxsb3dlZAoKCS8vIGZpZWxkIG5vdCB1cGRhdGFibGUgb3Igbm8gcGVybWlzc2lvbnMgdG8gdXBkYXRlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozNjMKCS8vIHRoaXMuYm94ZXMobmFtZSkuZGVsZXRlKCkKCWZyYW1lX2RpZyAyIC8vIG5hbWU6IGJ5dGVbXQoJYm94X2RlbAoKCS8vICppZjIyX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzY0CgkvLyBsZW4odmFsdWUpID4gMAoJZnJhbWVfZGlnIDMgLy8gdmFsdWU6IGJ5dGVbXQoJbGVuCglpbnRjIDAgLy8gMAoJPgoJYnogKmlmMjJfZW5kCgoJLy8gKmlmMjJfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzY1CgkvLyB0aGlzLmJveGVzKG5hbWUpLnZhbHVlID0gdmFsdWUKCWZyYW1lX2RpZyAyIC8vIG5hbWU6IGJ5dGVbXQoJZnJhbWVfZGlnIDMgLy8gdmFsdWU6IGJ5dGVbXQoJYm94X3B1dAoKKmlmMjJfZW5kOgoKKmZvcl80X2NvbnRpbnVlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzU2CgkvLyBpICs9IDIKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50YyAyIC8vIDIKCSsKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCWIgKmZvcl80CgoqZm9yXzRfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzY4CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyByZWFkRmllbGQoYnl0ZVtdKWJ5dGVbXQoqYWJpX3JvdXRlX3JlYWRGaWVsZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMTEgLy8gMHgxNTFmN2M3NQoKCS8vIGZpZWxkTmFtZTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgcmVhZEZpZWxkKGJ5dGVbXSlieXRlW10KCWNhbGxzdWIgcmVhZEZpZWxkCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHJlYWRGaWVsZChmaWVsZE5hbWU6IGJ5dGVzKTogYnl0ZXMKcmVhZEZpZWxkOgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gNAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjM3NAoJLy8gdHJ1c3RUeXBlID0gZXh0cmFjdDMoZmllbGROYW1lLCAwLCAyKQoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkTmFtZTogYnl0ZXMKCWV4dHJhY3QgMCAyCglmcmFtZV9idXJ5IDAgLy8gdHJ1c3RUeXBlOiBieXRlW10KCgkvLyAqaWYyM19jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjM3NgoJLy8gdGhpcy5pc0ludGVybmFsRmllbGQodHJ1c3RUeXBlKQoJZnJhbWVfZGlnIDAgLy8gdHJ1c3RUeXBlOiBieXRlW10KCWNhbGxzdWIgaXNJbnRlcm5hbEZpZWxkCglieiAqaWYyM19lbmQKCgkvLyAqaWYyM19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozNzcKCS8vIHJldHVybiB0aGlzLnNhZmVHbG9iYWxCeXRlR2V0KGZpZWxkTmFtZSkKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZE5hbWU6IGJ5dGVzCgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0CgliICpyZWFkRmllbGQqcmV0dXJuCgoqaWYyM19lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozNzkKCS8vIGFzc2VydCgKCS8vICAgICAgICAgICAgIHRoaXMuaXNVc2VyRmllbGQodHJ1c3RUeXBlKSB8fCB0aGlzLmlzVmVyaWZpZWRGaWVsZCh0cnVzdFR5cGUpLAoJLy8gICAgICAgICAgICAgJ211c3QgYmUgdXNlci1kZWZpbmVkIG9yIHZlcmlmaWVkIGZpZWxkIHRvIGZldGNoJywKCS8vICAgICAgICAgKQoJZnJhbWVfZGlnIDAgLy8gdHJ1c3RUeXBlOiBieXRlW10KCWNhbGxzdWIgaXNVc2VyRmllbGQKCWR1cAoJYm56ICpza2lwX29yMAoJZnJhbWVfZGlnIDAgLy8gdHJ1c3RUeXBlOiBieXRlW10KCWNhbGxzdWIgaXNWZXJpZmllZEZpZWxkCgl8fAoKKnNraXBfb3IwOgoJLy8gbXVzdCBiZSB1c2VyLWRlZmluZWQgb3IgdmVyaWZpZWQgZmllbGQgdG8gZmV0Y2gKCWFzc2VydAoKCS8vICppZjI0X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MzgzCgkvLyB0aGlzLmJveGVzKGZpZWxkTmFtZSkuZXhpc3RzCglmcmFtZV9kaWcgLTEgLy8gZmllbGROYW1lOiBieXRlcwoJYm94X2xlbgoJc3dhcAoJcG9wCglieiAqaWYyNF9lbmQKCgkvLyAqaWYyNF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozODQKCS8vIHJldHVybiB0aGlzLmJveGVzKGZpZWxkTmFtZSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZE5hbWU6IGJ5dGVzCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJveGVzKGZpZWxkTmFtZSkudmFsdWUKCWFzc2VydAoJYiAqcmVhZEZpZWxkKnJldHVybgoKKmlmMjRfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Mzg3CgkvLyBib3hOYW1lID0gZmllbGROYW1lICsgJ18wMCcKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZE5hbWU6IGJ5dGVzCglwdXNoYnl0ZXMgMHg1ZjMwMzAgLy8gIl8wMCIKCWNvbmNhdAoJZnJhbWVfYnVyeSAxIC8vIGJveE5hbWU6IGJ5dGVbXQoKCS8vICppZjI1X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Mzg4CgkvLyAhdGhpcy5ib3hlcyhib3hOYW1lKS5leGlzdHMKCWZyYW1lX2RpZyAxIC8vIGJveE5hbWU6IGJ5dGVbXQoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCglieiAqaWYyNV9lbmQKCgkvLyAqaWYyNV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozODkKCS8vIHJldHVybiAnJwoJYnl0ZWMgMCAvLyAgIiIKCWIgKnJlYWRGaWVsZCpyZXR1cm4KCippZjI1X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjM5MgoJLy8gcmV0VmFsdWUgPSB0aGlzLmJveGVzKGJveE5hbWUpLnZhbHVlIGFzIGJ5dGVzCglmcmFtZV9kaWcgMSAvLyBib3hOYW1lOiBieXRlW10KCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94ZXMoYm94TmFtZSkudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSAyIC8vIHJldFZhbHVlOiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozOTMKCS8vIG5hbWVQcmVmaXggPSBmaWVsZE5hbWUgKyAnXzAnCglmcmFtZV9kaWcgLTEgLy8gZmllbGROYW1lOiBieXRlcwoJcHVzaGJ5dGVzIDB4NWYzMCAvLyAiXzAiCgljb25jYXQKCWZyYW1lX2J1cnkgMyAvLyBuYW1lUHJlZml4OiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozOTQKCS8vIGZvciAobGV0IGkgPSAxOyBpIDwgMTA7IGkgKz0gMSkKCWludGMgMSAvLyAxCglmcmFtZV9idXJ5IDQgLy8gaTogdWludDY0CgoqZm9yXzU6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czozOTQKCS8vIGkgPCAxMAoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnRjIDExIC8vIDEwCgk8CglieiAqZm9yXzVfZW5kCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Mzk1CgkvLyBib3hOYW1lID0gbmFtZVByZWZpeCArIGkudG9TdHJpbmcoKQoJZnJhbWVfZGlnIDMgLy8gbmFtZVByZWZpeDogYnl0ZVtdCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWNhbGxzdWIgKml0b2EKCWNvbmNhdAoJZnJhbWVfYnVyeSAxIC8vIGJveE5hbWU6IGJ5dGVbXQoKCS8vICppZjI2X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Mzk2CgkvLyAhdGhpcy5ib3hlcyhib3hOYW1lKS5leGlzdHMKCWZyYW1lX2RpZyAxIC8vIGJveE5hbWU6IGJ5dGVbXQoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCglieiAqaWYyNl9lbmQKCgkvLyAqaWYyNl9jb25zZXF1ZW50CgliICpmb3JfNV9lbmQKCippZjI2X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQwMAoJLy8gcmV0VmFsdWUgPSBjb25jYXQocmV0VmFsdWUsIHRoaXMuYm94ZXMoYm94TmFtZSkudmFsdWUpCglmcmFtZV9kaWcgMiAvLyByZXRWYWx1ZTogYnl0ZVtdCglmcmFtZV9kaWcgMSAvLyBib3hOYW1lOiBieXRlW10KCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94ZXMoYm94TmFtZSkudmFsdWUKCWFzc2VydAoJY29uY2F0CglmcmFtZV9idXJ5IDIgLy8gcmV0VmFsdWU6IGJ5dGVbXQoKKmZvcl81X2NvbnRpbnVlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Mzk0CgkvLyBpICs9IDEKCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgNCAvLyBpOiB1aW50NjQKCWIgKmZvcl81CgoqZm9yXzVfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDAyCgkvLyByZXR1cm4gcmV0VmFsdWUKCWZyYW1lX2RpZyAyIC8vIHJldFZhbHVlOiBieXRlW10KCipyZWFkRmllbGQqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNAoJcmV0c3ViCgovLyBvZmZlckZvclNhbGUodWludDY0LGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX29mZmVyRm9yU2FsZToKCS8vIHJlc2VydmVkRm9yOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50YyAzIC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHJlc2VydmVkRm9yKSBmb3Igb2ZmZXJGb3JTYWxlIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBzZWxsQW1vdW50OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIG9mZmVyRm9yU2FsZSh1aW50NjQsYWRkcmVzcyl2b2lkCgljYWxsc3ViIG9mZmVyRm9yU2FsZQoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gb2ZmZXJGb3JTYWxlKHNlbGxBbW91bnQ6IHVpbnQ2NCwgcmVzZXJ2ZWRGb3I6IEFkZHJlc3MpOiB2b2lkCm9mZmVyRm9yU2FsZToKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDA4CgkvLyBhc3NlcnQoIXRoaXMuaXNFeHBpcmVkKCksICJjYW4ndCBzZWxsIGlmIE5GRCBleHBpcmVkIikKCWNhbGxzdWIgaXNFeHBpcmVkCgkhCgoJLy8gY2FuJ3Qgc2VsbCBpZiBORkQgZXhwaXJlZAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDA5CgkvLyBhc3NlcnQoIXRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HKS5leGlzdHMpCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlYyAzIC8vICJpLm1pbnRpbmciCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCgkhCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0MTAKCS8vIHRoaXMubXVzdEJlQ2FsbGVkQnlPd25lcigpCgljYWxsc3ViIG11c3RCZUNhbGxlZEJ5T3duZXIKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0MTEKCS8vIG91ckJveENvdW50ID0gdGhpcy5hcHAuYWRkcmVzcy50b3RhbEJveGVzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCglwb3AKCWZyYW1lX2J1cnkgMCAvLyBvdXJCb3hDb3VudDogdWludDY0CgoJLy8gKmlmMjdfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0MTYKCS8vIG91ckJveENvdW50ID4gMAoJZnJhbWVfZGlnIDAgLy8gb3VyQm94Q291bnQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT4KCWJ6ICppZjI3X2VuZAoKCS8vICppZjI3X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQxNwoJLy8gbG9nKCdib3ggY291bnQ6JyArIG91ckJveENvdW50LnRvU3RyaW5nKCkpCglwdXNoYnl0ZXMgMHg2MjZmNzgyMDYzNmY3NTZlNzQzYSAvLyAiYm94IGNvdW50OiIKCWZyYW1lX2RpZyAwIC8vIG91ckJveENvdW50OiB1aW50NjQKCWNhbGxzdWIgKml0b2EKCWNvbmNhdAoJbG9nCgoqaWYyN19lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0MTkKCS8vIGFzc2VydChvdXJCb3hDb3VudCA9PT0gMCwgJ2NhbiBvbmx5IGJlIHNvbGQgaWYgbm8gdXNlci1kZWZpbmVkIG9yIHZlcmlmaWVkIHByb3BlcnRpZXMgcmVtYWluJykKCWZyYW1lX2RpZyAwIC8vIG91ckJveENvdW50OiB1aW50NjQKCWludGMgMCAvLyAwCgk9PQoKCS8vIGNhbiBvbmx5IGJlIHNvbGQgaWYgbm8gdXNlci1kZWZpbmVkIG9yIHZlcmlmaWVkIHByb3BlcnRpZXMgcmVtYWluCglhc3NlcnQKCgkvLyAqaWYyOF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQyMgoJLy8gbGVuKHRoaXMuc2FmZUdsb2JhbEJ5dGVHZXQoTkZEX0tFWV9DT01NSVNTSU9OMV9BR0VOVCkpICE9PSAwCglieXRlYyA1IC8vICJpLmNvbW1pc3Npb24xQWdlbnQuYSIKCWNhbGxzdWIgc2FmZUdsb2JhbEJ5dGVHZXQKCWxlbgoJaW50YyAwIC8vIDAKCSE9CglieiAqaWYyOF9lbmQKCgkvLyAqaWYyOF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0MjMKCS8vIGFzc2VydChzZWxsQW1vdW50ID49IE5GRF9NSU5fU0VMTEFNT1VOVF9XX0NPTU1JU1NJT05TLCAnbXVzdCBiZSBzb2xkIGZvciBhdCBsZWFzdCBNSU4gYW1vdW50JykKCWZyYW1lX2RpZyAtMSAvLyBzZWxsQW1vdW50OiB1aW50NjQKCWludGMgMTUgLy8gMTAwMDAwMAoJPj0KCgkvLyBtdXN0IGJlIHNvbGQgZm9yIGF0IGxlYXN0IE1JTiBhbW91bnQKCWFzc2VydAoKKmlmMjhfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDI1CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQyNwoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0lTU0VHTUVOVExPQ0tFRCkudmFsdWUgPSBORkRfTE9DS0VEX1ZBTF9UUlVFCglieXRlYyAyMSAvLyAiaS5zZWdtZW50TG9ja2VkIgoJYnl0ZWMgMTkgLy8gIjEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQzMgoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1NFTExfQU1PVU5UKS52YWx1ZSA9IGl0b2Ioc2VsbEFtb3VudCkKCWJ5dGVjIDYgLy8gImkuc2VsbGFtdCIKCWZyYW1lX2RpZyAtMSAvLyBzZWxsQW1vdW50OiB1aW50NjQKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CgoJLy8gKmlmMjlfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0NDIKCS8vIHJlc2VydmVkRm9yICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzICYmIHJhd0J5dGVzKHJlc2VydmVkRm9yKSAhPT0gdGhpcy5zYWZlR2xvYmFsQnl0ZUdldChORkRfS0VZX09XTkVSKQoJZnJhbWVfZGlnIC0yIC8vIHJlc2VydmVkRm9yOiBBZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9CglkdXAKCWJ6ICpza2lwX2FuZDEwCglmcmFtZV9kaWcgLTIgLy8gcmVzZXJ2ZWRGb3I6IEFkZHJlc3MKCWJ5dGVjIDEgLy8gImkub3duZXIuYSIKCWNhbGxzdWIgc2FmZUdsb2JhbEJ5dGVHZXQKCSE9CgkmJgoKKnNraXBfYW5kMTA6CglieiAqaWYyOV9lbHNlaWYxX2NvbmRpdGlvbgoKCS8vICppZjI5X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQ0MwoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1JFU0VSVkVEX09XTkVSKS52YWx1ZSA9IHJhd0J5dGVzKHJlc2VydmVkRm9yKQoJYnl0ZWMgOCAvLyAiaS5yZXNlcnZlZE93bmVyLmEiCglmcmFtZV9kaWcgLTIgLy8gcmVzZXJ2ZWRGb3I6IEFkZHJlc3MKCWFwcF9nbG9iYWxfcHV0CgliICppZjI5X2VuZAoKKmlmMjlfZWxzZWlmMV9jb25kaXRpb246CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0NDUKCS8vIHRoaXMuc2FmZUdsb2JhbEludEdldChORkRfS0VZX01JTlRJTkdfS0lDS09GRl9BTU9VTlQpID4gMCAmJgoJLy8gICAgICAgICAgICAgc2VsbEFtb3VudCA8PSB0aGlzLnNhZmVHbG9iYWxJbnRHZXQoTkZEX0tFWV9NSU5USU5HX0tJQ0tPRkZfQU1PVU5UKQoJYnl0ZWMgMTMgLy8gImkubWludGluZ0tpY2tvZmZBbW91bnQiCgljYWxsc3ViIHNhZmVHbG9iYWxJbnRHZXQKCWludGMgMCAvLyAwCgk+CglkdXAKCWJ6ICpza2lwX2FuZDExCglmcmFtZV9kaWcgLTEgLy8gc2VsbEFtb3VudDogdWludDY0CglieXRlYyAxMyAvLyAiaS5taW50aW5nS2lja29mZkFtb3VudCIKCWNhbGxzdWIgc2FmZUdsb2JhbEludEdldAoJPD0KCSYmCgoqc2tpcF9hbmQxMToKCWJ6ICppZjI5X2Vsc2UKCgkvLyAqaWYyOV9lbHNlaWYxX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQ0OAoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1JFU0VSVkVEX09XTkVSKS52YWx1ZSA9IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HX0tJQ0tPRkZfQ1JFQVRPUikudmFsdWUKCWJ5dGVjIDggLy8gImkucmVzZXJ2ZWRPd25lci5hIgoJYnl0ZWMgMTIgLy8gImkubWludGluZ0tpY2tvZmZDcmVhdG9yLmEiCglhcHBfZ2xvYmFsX2dldAoJYXBwX2dsb2JhbF9wdXQKCWIgKmlmMjlfZW5kCgoqaWYyOV9lbHNlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDUwCgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfUkVTRVJWRURfT1dORVIpLmRlbGV0ZSgpCglieXRlYyA4IC8vICJpLnJlc2VydmVkT3duZXIuYSIKCWFwcF9nbG9iYWxfZGVsCgoqaWYyOV9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0NTMKCS8vIHRoaXMubmZkX29mZmVyRm9yU2FsZS5sb2coewoJLy8gICAgICAgICAgICAgYXBwSWQ6IHRoaXMuYXBwLmlkLAoJLy8gICAgICAgICAgICAgbmFtZTogdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlLAoJLy8gICAgICAgICAgICAgc2VsbGVyOiBBZGRyZXNzLmZyb21CeXRlcyh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpLnZhbHVlKSwKCS8vICAgICAgICAgICAgIGFtb3VudDogc2VsbEFtb3VudCwKCS8vICAgICAgICAgICAgIHJlc2VydmVkRm9yOiByZXNlcnZlZEZvciwKCS8vICAgICAgICAgfSkKCXB1c2hieXRlcyAweGMyNGI1YWQ2IC8vIG5mZF9vZmZlckZvclNhbGUodWludDY0LHN0cmluZyxhZGRyZXNzLHVpbnQ2NCxhZGRyZXNzKQoJYnl0ZWMgMCAvLyAgaW5pdGlhbCBoZWFkCglieXRlYyAwIC8vICBpbml0aWFsIHRhaWwKCXB1c2hieXRlcyAweDAwNTIgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZWMgNCAvLyAiaS5uYW1lIgoJYXBwX2dsb2JhbF9nZXQKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZWMgMSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXQKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMSAvLyBzZWxsQW1vdW50OiB1aW50NjQKCWl0b2IKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMiAvLyByZXNlcnZlZEZvcjogQWRkcmVzcwoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCgljb25jYXQKCWxvZwoJcmV0c3ViCgovLyBjYW5jZWxTYWxlKCl2b2lkCiphYmlfcm91dGVfY2FuY2VsU2FsZToKCS8vIGV4ZWN1dGUgY2FuY2VsU2FsZSgpdm9pZAoJY2FsbHN1YiBjYW5jZWxTYWxlCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBjYW5jZWxTYWxlKCk6IHZvaWQKY2FuY2VsU2FsZToKCXByb3RvIDAgMAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQ2NQoJLy8gYXNzZXJ0KCF0aGlzLmlzRXhwaXJlZCgpLCAiY2FuJ3QgdXBkYXRlIGZpZWxkcyBpZiBORkQgZXhwaXJlZCIpCgljYWxsc3ViIGlzRXhwaXJlZAoJIQoKCS8vIGNhbid0IHVwZGF0ZSBmaWVsZHMgaWYgTkZEIGV4cGlyZWQKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQ2NgoJLy8gYXNzZXJ0KCF0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfTUlOVElORykuZXhpc3RzKQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJIQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDY3CgkvLyBhc3NlcnQodGhpcy5pc0ZvclNhbGUoKSwgJ211c3QgYmUgZm9yIHNhbGUnKQoJY2FsbHN1YiBpc0ZvclNhbGUKCgkvLyBtdXN0IGJlIGZvciBzYWxlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0NjgKCS8vIHRoaXMubXVzdEJlQ2FsbGVkQnlPd25lcigpCgljYWxsc3ViIG11c3RCZUNhbGxlZEJ5T3duZXIKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0NjkKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUxMX0FNT1VOVCkuZGVsZXRlKCkKCWJ5dGVjIDYgLy8gImkuc2VsbGFtdCIKCWFwcF9nbG9iYWxfZGVsCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDcwCgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfUkVTRVJWRURfT1dORVIpLmRlbGV0ZSgpCglieXRlYyA4IC8vICJpLnJlc2VydmVkT3duZXIuYSIKCWFwcF9nbG9iYWxfZGVsCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDcxCgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQ3MwoJLy8gdGhpcy5uZmRfc2FsZUNhbmNlbGxlZC5sb2coeyBhcHBJZDogdGhpcy5hcHAuaWQsIG5hbWU6IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9OQU1FKS52YWx1ZSB9KQoJYnl0ZWMgMzYgLy8gIG5mZF9zYWxlQ2FuY2VsbGVkKHVpbnQ2NCxzdHJpbmcpCglieXRlYyAwIC8vICBpbml0aWFsIGhlYWQKCWJ5dGVjIDAgLy8gIGluaXRpYWwgdGFpbAoJYnl0ZWMgNDEgLy8gIGluaXRpYWwgaGVhZCBvZmZzZXQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGVjIDQgLy8gImkubmFtZSIKCWFwcF9nbG9iYWxfZ2V0CglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJY29uY2F0Cglsb2cKCXJldHN1YgoKLy8gcG9zdE9mZmVyKHVpbnQ2NCxzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX3Bvc3RPZmZlcjoKCS8vIG5vdGU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBvZmZlcjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBwb3N0T2ZmZXIodWludDY0LHN0cmluZyl2b2lkCgljYWxsc3ViIHBvc3RPZmZlcgoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gcG9zdE9mZmVyKG9mZmVyOiB1aW50NjQsIG5vdGU6IHN0cmluZyk6IHZvaWQKcG9zdE9mZmVyOgoJcHJvdG8gMiAwCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDgwCgkvLyB0aGlzLm5mZF9wb3N0ZWRPZmZlci5sb2coewoJLy8gICAgICAgICAgICAgYXBwSWQ6IHRoaXMuYXBwLmlkLAoJLy8gICAgICAgICAgICAgbmFtZTogdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlLAoJLy8gICAgICAgICAgICAgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICAgICAgICBhbW91bnQ6IG9mZmVyLAoJLy8gICAgICAgICAgICAgbm90ZTogbm90ZSwKCS8vICAgICAgICAgfSkKCXB1c2hieXRlcyAweDUyNTMyYjcwIC8vIG5mZF9wb3N0ZWRPZmZlcih1aW50NjQsc3RyaW5nLGFkZHJlc3MsdWludDY0LHN0cmluZykKCWJ5dGVjIDAgLy8gIGluaXRpYWwgaGVhZAoJYnl0ZWMgMCAvLyAgaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDM0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGVjIDQgLy8gImkubmFtZSIKCWFwcF9nbG9iYWxfZ2V0CglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXR4biBTZW5kZXIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMSAvLyBvZmZlcjogdWludDY0CglpdG9iCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTIgLy8gbm90ZTogc3RyaW5nCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJY29uY2F0Cglsb2cKCXJldHN1YgoKLy8gbWludFBheW91dCh1aW50NjQsdWludDY0KSh1aW50NjQsYWRkcmVzcyx1aW50NjQsYWRkcmVzcyx1aW50NjQpCiphYmlfcm91dGVfbWludFBheW91dDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZWMgMTEgLy8gMHgxNTFmN2M3NQoKCS8vIHNlZ21lbnRQbGF0Zm9ybUNvc3RJbkFsZ286IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIG9uZVllYXJQcmljZTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBtaW50UGF5b3V0KHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCkKCWNhbGxzdWIgbWludFBheW91dAoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIG1pbnRQYXlvdXQob25lWWVhclByaWNlOiB1aW50NjQsIHNlZ21lbnRQbGF0Zm9ybUNvc3RJbkFsZ286IHVpbnQ2NCk6IFBheW91dEluZm8KbWludFBheW91dDoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXBuIDYKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo0OTIKCS8vIGFzc2VydChnbG9iYWxzLmNhbGxlckFwcGxpY2F0aW9uSUQgPT09IEFwcElELmZyb21VaW50NjQodGhpcy5yZWdpc3RyeUFwcElkKSwgJ2NhbGxlciBtdXN0IGJlIE5GRCByZWdpc3RyeSEnKQoJZ2xvYmFsIENhbGxlckFwcGxpY2F0aW9uSUQKCWludGMgNCAvLyBUTVBMX3JlZ2lzdHJ5QXBwSWQKCT09CgoJLy8gY2FsbGVyIG11c3QgYmUgTkZEIHJlZ2lzdHJ5IQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDkzCgkvLyBhc3NlcnQodGhpcy5zYWZlR2xvYmFsQnl0ZUdldChORkRfS0VZX01JTlRJTkcpID09PSBORkRfTUlOVElOR19TVEFURV9QT1NUQVNBKQoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJY2FsbHN1YiBzYWZlR2xvYmFsQnl0ZUdldAoJYnl0ZWMgMzAgLy8gIjIiCgk9PQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NDk1CgkvLyBvZmZlckFtdCA9IHRoaXMuc2FmZUdsb2JhbEludEdldChORkRfS0VZX1NFTExfQU1PVU5UKQoJYnl0ZWMgNiAvLyAiaS5zZWxsYW10IgoJY2FsbHN1YiBzYWZlR2xvYmFsSW50R2V0CglmcmFtZV9idXJ5IDAgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjQ5OAoJLy8gZ3Jvc3NUb1RyZWFzdXJ5ID0gb2ZmZXJBbXQKCWZyYW1lX2RpZyAwIC8vIG9mZmVyQW10OiB1aW50NjQKCWZyYW1lX2J1cnkgMSAvLyBncm9zc1RvVHJlYXN1cnk6IHVpbnQ2NAoKCS8vICppZjMwX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTAzCgkvLyBsZW4odGhpcy5zYWZlR2xvYmFsQnl0ZUdldChORkRfS0VZX1NFR01FTlRfQ09NTUlTU0lPTl9BR0VOVCkpID4gMAoJYnl0ZWMgOSAvLyAiaS5zZWdtZW50QWdlbnQuYSIKCWNhbGxzdWIgc2FmZUdsb2JhbEJ5dGVHZXQKCWxlbgoJaW50YyAwIC8vIDAKCT4KCWJ6ICppZjMwX2Vsc2UKCgkvLyAqaWYzMF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1MDcKCS8vIGdyb3NzVG9UcmVhc3VyeSA9IHNlZ21lbnRQbGF0Zm9ybUNvc3RJbkFsZ28KCWZyYW1lX2RpZyAtMiAvLyBzZWdtZW50UGxhdGZvcm1Db3N0SW5BbGdvOiB1aW50NjQKCWZyYW1lX2J1cnkgMSAvLyBncm9zc1RvVHJlYXN1cnk6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjUwOQoJLy8gZXh0cmFEYXlzID0gKDM2NSAqIG9mZmVyQW10KSAvIG9uZVllYXJQcmljZQoJaW50YyA4IC8vIDM2NQoJZnJhbWVfZGlnIDAgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoJKgoJZnJhbWVfZGlnIC0xIC8vIG9uZVllYXJQcmljZTogdWludDY0CgkvCglmcmFtZV9idXJ5IDMgLy8gZXh0cmFEYXlzOiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1MTEKCS8vIGdyb3NzVG9UcmVhc3VyeSA9IChleHRyYURheXMgKiBzZWdtZW50UGxhdGZvcm1Db3N0SW5BbGdvKSAvIDM2NQoJZnJhbWVfZGlnIDMgLy8gZXh0cmFEYXlzOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBzZWdtZW50UGxhdGZvcm1Db3N0SW5BbGdvOiB1aW50NjQKCSoKCWludGMgOCAvLyAzNjUKCS8KCWZyYW1lX2J1cnkgMSAvLyBncm9zc1RvVHJlYXN1cnk6IHVpbnQ2NAoKCS8vICppZjMxX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTEyCgkvLyBncm9zc1RvVHJlYXN1cnkgPCBzZWdtZW50UGxhdGZvcm1Db3N0SW5BbGdvCglmcmFtZV9kaWcgMSAvLyBncm9zc1RvVHJlYXN1cnk6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIHNlZ21lbnRQbGF0Zm9ybUNvc3RJbkFsZ286IHVpbnQ2NAoJPAoJYnogKmlmMzFfZW5kCgoJLy8gKmlmMzFfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTEzCgkvLyBncm9zc1RvVHJlYXN1cnkgPSBzZWdtZW50UGxhdGZvcm1Db3N0SW5BbGdvCglmcmFtZV9kaWcgLTIgLy8gc2VnbWVudFBsYXRmb3JtQ29zdEluQWxnbzogdWludDY0CglmcmFtZV9idXJ5IDEgLy8gZ3Jvc3NUb1RyZWFzdXJ5OiB1aW50NjQKCippZjMxX2VuZDoKCS8vICppZjMyX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTE1CgkvLyBncm9zc1RvVHJlYXN1cnkgPj0gb2ZmZXJBbXQKCWZyYW1lX2RpZyAxIC8vIGdyb3NzVG9UcmVhc3VyeTogdWludDY0CglmcmFtZV9kaWcgMCAvLyBvZmZlckFtdDogdWludDY0Cgk+PQoJYnogKmlmMzJfZW5kCgoJLy8gKmlmMzJfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTE2CgkvLyBncm9zc1RvVHJlYXN1cnkgPSBvZmZlckFtdAoJZnJhbWVfZGlnIDAgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoJZnJhbWVfYnVyeSAxIC8vIGdyb3NzVG9UcmVhc3VyeTogdWludDY0CgoqaWYzMl9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1MTkKCS8vIHNlZ21lbnRDb21taXNzaW9uVG9QYXkgPSBvZmZlckFtdCAtIGdyb3NzVG9UcmVhc3VyeQoJZnJhbWVfZGlnIDAgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gZ3Jvc3NUb1RyZWFzdXJ5OiB1aW50NjQKCS0KCWZyYW1lX2J1cnkgMiAvLyBzZWdtZW50Q29tbWlzc2lvblRvUGF5OiB1aW50NjQKCWIgKmlmMzBfZW5kCgoqaWYzMF9lbHNlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTIyCgkvLyBzZWdtZW50Q29tbWlzc2lvblRvUGF5ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBzZWdtZW50Q29tbWlzc2lvblRvUGF5OiB1aW50NjQKCippZjMwX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjUyNgoJLy8gY29tbWlzc2lvblRvUGF5ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgNCAvLyBjb21taXNzaW9uVG9QYXk6IHVpbnQ2NAoKCS8vICppZjMzX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTI3CgkvLyB0aGlzLnNhZmVHbG9iYWxJbnRHZXQoTkZEX0tFWV9DT01NSVNTSU9OMSkgPT09IDAKCWJ5dGVjIDcgLy8gImkuY29tbWlzc2lvbjEiCgljYWxsc3ViIHNhZmVHbG9iYWxJbnRHZXQKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmMzNfZWxzZQoKCS8vICppZjMzX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjUyOQoJLy8gY29tbWlzc2lvblRvUGF5ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgNCAvLyBjb21taXNzaW9uVG9QYXk6IHVpbnQ2NAoJYiAqaWYzM19lbmQKCippZjMzX2Vsc2U6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1MzMKCS8vIGNvbW1pc3Npb25Ub1BheSA9IChncm9zc1RvVHJlYXN1cnkgKiB0aGlzLnNhZmVHbG9iYWxJbnRHZXQoTkZEX0tFWV9DT01NSVNTSU9OMSkpIC8gMTAwMAoJZnJhbWVfZGlnIDEgLy8gZ3Jvc3NUb1RyZWFzdXJ5OiB1aW50NjQKCWJ5dGVjIDcgLy8gImkuY29tbWlzc2lvbjEiCgljYWxsc3ViIHNhZmVHbG9iYWxJbnRHZXQKCSoKCWludGMgMTggLy8gMTAwMAoJLwoJZnJhbWVfYnVyeSA0IC8vIGNvbW1pc3Npb25Ub1BheTogdWludDY0CgoqaWYzM19lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1MzYKCS8vIGNvbW1pc3Npb25BZ2VudCA9IGdsb2JhbHMuemVyb0FkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJZnJhbWVfYnVyeSA1IC8vIGNvbW1pc3Npb25BZ2VudDogYWRkcmVzcwoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjUzNwoJLy8gc2VnbWVudFJvb3RPd25lciA9IGdsb2JhbHMuemVyb0FkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJZnJhbWVfYnVyeSA2IC8vIHNlZ21lbnRSb290T3duZXI6IGFkZHJlc3MKCgkvLyAqaWYzNF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjUzOQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04xX0FHRU5UKS5leGlzdHMKCXR4bmEgQXBwbGljYXRpb25zIDAKCWJ5dGVjIDUgLy8gImkuY29tbWlzc2lvbjFBZ2VudC5hIgoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJYnogKmlmMzRfZW5kCgoJLy8gKmlmMzRfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTQwCgkvLyBjb21taXNzaW9uQWdlbnQgPSBBZGRyZXNzLmZyb21CeXRlcyh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfQ09NTUlTU0lPTjFfQUdFTlQpLnZhbHVlKQoJYnl0ZWMgNSAvLyAiaS5jb21taXNzaW9uMUFnZW50LmEiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfYnVyeSA1IC8vIGNvbW1pc3Npb25BZ2VudDogYWRkcmVzcwoKKmlmMzRfZW5kOgoJLy8gKmlmMzVfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1NDIKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUdNRU5UX0NPTU1JU1NJT05fQUdFTlQpLmV4aXN0cwoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZWMgOSAvLyAiaS5zZWdtZW50QWdlbnQuYSIKCWFwcF9nbG9iYWxfZ2V0X2V4Cglzd2FwCglwb3AKCWJ6ICppZjM1X2VuZAoKCS8vICppZjM1X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjU0MwoJLy8gc2VnbWVudFJvb3RPd25lciA9IEFkZHJlc3MuZnJvbUJ5dGVzKHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUdNRU5UX0NPTU1JU1NJT05fQUdFTlQpLnZhbHVlKQoJYnl0ZWMgOSAvLyAiaS5zZWdtZW50QWdlbnQuYSIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9idXJ5IDYgLy8gc2VnbWVudFJvb3RPd25lcjogYWRkcmVzcwoKKmlmMzVfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTQ3CgkvLyB0aGlzLmRvUGF5b3V0cygKCS8vICAgICAgICAgICAgIGdyb3NzVG9UcmVhc3VyeSwKCS8vICAgICAgICAgICAgIEFkZHJlc3MuZnJvbUJ5dGVzKHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUxMRVIpLnZhbHVlKSwKCS8vICAgICAgICAgICAgIGNvbW1pc3Npb25Ub1BheSwKCS8vICAgICAgICAgICAgIHNlZ21lbnRDb21taXNzaW9uVG9QYXksCgkvLyAgICAgICAgICAgICBBZGRyZXNzLmZyb21CeXRlcyh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfU0VHTUVOVF9DT01NSVNTSU9OX0FHRU5UKS52YWx1ZSksCgkvLyAgICAgICAgICkKCWJ5dGVjIDkgLy8gImkuc2VnbWVudEFnZW50LmEiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDIgLy8gc2VnbWVudENvbW1pc3Npb25Ub1BheTogdWludDY0CglmcmFtZV9kaWcgNCAvLyBjb21taXNzaW9uVG9QYXk6IHVpbnQ2NAoJYnl0ZWMgMTAgLy8gImkuc2VsbGVyLmEiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDEgLy8gZ3Jvc3NUb1RyZWFzdXJ5OiB1aW50NjQKCWNhbGxzdWIgZG9QYXlvdXRzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTU2CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfU0VMTEVSKS52YWx1ZSA9IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9PV05FUikudmFsdWUKCWJ5dGVjIDEwIC8vICJpLnNlbGxlci5hIgoJYnl0ZWMgMSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTU4CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfSElHSEVTVF9TT0xEX0FNT1VOVCkudmFsdWUgPSBpdG9iKG9mZmVyQW10KQoJYnl0ZWMgMjYgLy8gImkuaGlnaGVzdFNvbGRBbXQiCglmcmFtZV9kaWcgMCAvLyBvZmZlckFtdDogdWludDY0CglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjU1OQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX01JTlRJTkcpLmRlbGV0ZSgpCglieXRlYyAzIC8vICJpLm1pbnRpbmciCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjU2MAoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1NFTExfQU1PVU5UKS5kZWxldGUoKQoJYnl0ZWMgNiAvLyAiaS5zZWxsYW10IgoJYXBwX2dsb2JhbF9kZWwKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1NjIKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUdNRU5UX0NPTU1JU1NJT05fQUdFTlQpLmRlbGV0ZSgpCglieXRlYyA5IC8vICJpLnNlZ21lbnRBZ2VudC5hIgoJYXBwX2dsb2JhbF9kZWwKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1NjQKCS8vIHJldHVybiB7CgkvLyAgICAgICAgICAgICBhbW91bnRUb1NlbGxlcjogZ3Jvc3NUb1RyZWFzdXJ5IC0gY29tbWlzc2lvblRvUGF5LAoJLy8gICAgICAgICAgICAgY29tbWlzc2lvbkFkZHJlc3M6IGNvbW1pc3Npb25BZ2VudCwKCS8vICAgICAgICAgICAgIGFtb3VudFRvQ29tbWlzc2lvbjogY29tbWlzc2lvblRvUGF5LAoJLy8gICAgICAgICAgICAgc2VnbWVudFJvb3RPd25lcjogc2VnbWVudFJvb3RPd25lciwKCS8vICAgICAgICAgICAgIGFtb3VudFRvU2VnbWVudFJvb3Q6IHNlZ21lbnRDb21taXNzaW9uVG9QYXksCgkvLyAgICAgICAgIH0KCWZyYW1lX2RpZyAxIC8vIGdyb3NzVG9UcmVhc3VyeTogdWludDY0CglmcmFtZV9kaWcgNCAvLyBjb21taXNzaW9uVG9QYXk6IHVpbnQ2NAoJLQoJaXRvYgoJZnJhbWVfZGlnIDUgLy8gY29tbWlzc2lvbkFnZW50OiBhZGRyZXNzCgljb25jYXQKCWZyYW1lX2RpZyA0IC8vIGNvbW1pc3Npb25Ub1BheTogdWludDY0CglpdG9iCgljb25jYXQKCWZyYW1lX2RpZyA2IC8vIHNlZ21lbnRSb290T3duZXI6IGFkZHJlc3MKCWNvbmNhdAoJZnJhbWVfZGlnIDIgLy8gc2VnbWVudENvbW1pc3Npb25Ub1BheTogdWludDY0CglpdG9iCgljb25jYXQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA2CglyZXRzdWIKCi8vIHB1cmNoYXNlKHBheSl2b2lkCiphYmlfcm91dGVfcHVyY2hhc2U6CgkvLyBwYXltZW50OiBwYXkKCXR4biBHcm91cEluZGV4CglpbnRjIDEgLy8gMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50YyAxIC8vICBwYXkKCT09CgoJLy8gYXJndW1lbnQgMCAocGF5bWVudCkgZm9yIHB1cmNoYXNlIG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGV4ZWN1dGUgcHVyY2hhc2UocGF5KXZvaWQKCWNhbGxzdWIgcHVyY2hhc2UKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHB1cmNoYXNlKHBheW1lbnQ6IFBheVR4bik6IHZvaWQKcHVyY2hhc2U6Cglwcm90byAxIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwbiA4CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTc0CgkvLyBhc3NlcnQoIXRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HKS5leGlzdHMpCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlYyAzIC8vICJpLm1pbnRpbmciCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCgkhCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1NzUKCS8vIGFzc2VydCghdGhpcy5pc0V4cGlyZWQoKSwgImNhbid0IGJlIGV4cGlyZWQiKQoJY2FsbHN1YiBpc0V4cGlyZWQKCSEKCgkvLyBjYW4ndCBiZSBleHBpcmVkCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1NzYKCS8vIGFzc2VydCh0aGlzLmlzRm9yU2FsZSgpLCAnbXVzdCBiZSBmb3Igc2FsZScpCgljYWxsc3ViIGlzRm9yU2FsZQoKCS8vIG11c3QgYmUgZm9yIHNhbGUKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjU3NwoJLy8gc2VsbEFtdCA9IHRoaXMuc2FmZUdsb2JhbEludEdldChORkRfS0VZX1NFTExfQU1PVU5UKQoJYnl0ZWMgNiAvLyAiaS5zZWxsYW10IgoJY2FsbHN1YiBzYWZlR2xvYmFsSW50R2V0CglmcmFtZV9idXJ5IDAgLy8gc2VsbEFtdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTc4CgkvLyByZXNlcnZlZE93bmVyID0gdGhpcy5zYWZlR2xvYmFsQnl0ZUdldChORkRfS0VZX1JFU0VSVkVEX09XTkVSKQoJYnl0ZWMgOCAvLyAiaS5yZXNlcnZlZE93bmVyLmEiCgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0CglmcmFtZV9idXJ5IDEgLy8gcmVzZXJ2ZWRPd25lcjogYnl0ZVtdCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTc5CgkvLyBvZmZlckFtdCA9IHBheW1lbnQuYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2J1cnkgMiAvLyBvZmZlckFtdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTgwCgkvLyBvcmlnT2ZmZXJhbXQgPSBvZmZlckFtdAoJZnJhbWVfZGlnIDIgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoJZnJhbWVfYnVyeSAzIC8vIG9yaWdPZmZlcmFtdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTgxCgkvLyBsb2coJ29yaWdfb2ZmZXI6JyArIG9mZmVyQW10LnRvU3RyaW5nKCkpCglwdXNoYnl0ZXMgMHg2ZjcyNjk2NzVmNmY2NjY2NjU3MjNhIC8vICJvcmlnX29mZmVyOiIKCWZyYW1lX2RpZyAyIC8vIG9mZmVyQW10OiB1aW50NjQKCWNhbGxzdWIgKml0b2EKCWNvbmNhdAoJbG9nCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTgzCgkvLyBhc3NlcnQocGF5bWVudC5zZW5kZXIgPT09IHRoaXMudHhuLnNlbmRlciwgJ3BheW1lbnQgc2VuZGVyIG11c3QgYmUgc2FtZSBhcyBwdXJjaGFzZSBjYWxsZXInKQoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCgl0eG4gU2VuZGVyCgk9PQoKCS8vIHBheW1lbnQgc2VuZGVyIG11c3QgYmUgc2FtZSBhcyBwdXJjaGFzZSBjYWxsZXIKCWFzc2VydAoKCS8vICppZjM2X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTg1CgkvLyBsZW4ocmVzZXJ2ZWRPd25lcikgPiAwCglmcmFtZV9kaWcgMSAvLyByZXNlcnZlZE93bmVyOiBieXRlW10KCWxlbgoJaW50YyAwIC8vIDAKCT4KCWJ6ICppZjM2X2VuZAoKCS8vICppZjM2X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjU4NgoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgICAgIHJlc2VydmVkT3duZXIgPT09IHJhd0J5dGVzKHBheW1lbnQuc2VuZGVyKSwKCS8vICAgICAgICAgICAgICAgICAiUmVzZXJ2ZWQgb3duZXIgc2V0LCBidXQgc2VuZGVyIGlzbid0IHRoZSByZXNlcnZlZCBhZGRyZXNzIiwKCS8vICAgICAgICAgICAgICkKCWZyYW1lX2RpZyAxIC8vIHJlc2VydmVkT3duZXI6IGJ5dGVbXQoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCgk9PQoKCS8vIFJlc2VydmVkIG93bmVyIHNldCwgYnV0IHNlbmRlciBpc24ndCB0aGUgcmVzZXJ2ZWQgYWRkcmVzcwoJYXNzZXJ0CgoqaWYzNl9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo1OTQKCS8vIHJlc2VydmVkT3duZXIgPSByYXdCeXRlcyhwYXltZW50LnNlbmRlcikKCWZyYW1lX2RpZyAtMSAvLyBwYXltZW50OiBQYXlUeG4KCWd0eG5zIFNlbmRlcgoJZnJhbWVfYnVyeSAxIC8vIHJlc2VydmVkT3duZXI6IGJ5dGVbXQoKCS8vICppZjM3X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NTk5CgkvLyB0aGlzLnNhZmVHbG9iYWxCeXRlR2V0KE5GRF9LRVlfTUlOVElOR19LSUNLT0ZGX0NSRUFUT1IpID09PSByYXdCeXRlcyhwYXltZW50LnNlbmRlcikKCWJ5dGVjIDEyIC8vICJpLm1pbnRpbmdLaWNrb2ZmQ3JlYXRvci5hIgoJY2FsbHN1YiBzYWZlR2xvYmFsQnl0ZUdldAoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCgk9PQoJYnogKmlmMzdfZW5kCgoJLy8gKmlmMzdfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjAwCgkvLyBvZmZlckFtdCArPSB0aGlzLnNhZmVHbG9iYWxJbnRHZXQoTkZEX0tFWV9NSU5USU5HX0tJQ0tPRkZfQU1PVU5UKQoJZnJhbWVfZGlnIDIgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoJYnl0ZWMgMTMgLy8gImkubWludGluZ0tpY2tvZmZBbW91bnQiCgljYWxsc3ViIHNhZmVHbG9iYWxJbnRHZXQKCSsKCWZyYW1lX2J1cnkgMiAvLyBvZmZlckFtdDogdWludDY0CgoqaWYzN19lbmQ6CgkvLyAqaWYzOF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjYwMwoJLy8gbGVuKHRoaXMuc2FmZUdsb2JhbEJ5dGVHZXQoTkZEX0tFWV9DT01NSVNTSU9OMV9BR0VOVCkpID4gMAoJYnl0ZWMgNSAvLyAiaS5jb21taXNzaW9uMUFnZW50LmEiCgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0CglsZW4KCWludGMgMCAvLyAwCgk+CglieiAqaWYzOF9lbmQKCgkvLyAqaWYzOF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2MDQKCS8vIGFzc2VydChvZmZlckFtdCA+IE5GRF9NSU5fU0VMTEFNT1VOVF9XX0NPTU1JU1NJT05TLCAnb2ZmZXIgbXVzdCBiZSBhdCBsZWFzdCBtaW4gYW1vdW50JykKCWZyYW1lX2RpZyAyIC8vIG9mZmVyQW10OiB1aW50NjQKCWludGMgMTUgLy8gMTAwMDAwMAoJPgoKCS8vIG9mZmVyIG11c3QgYmUgYXQgbGVhc3QgbWluIGFtb3VudAoJYXNzZXJ0CgoqaWYzOF9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2MDcKCS8vIGFzc2VydChvZmZlckFtdCA+PSBzZWxsQW10LCAnb2ZmZXIgbXVzdCBiZSBhdCBsZWFzdCBzZWxsIGFtb3VudCcpCglmcmFtZV9kaWcgMiAvLyBvZmZlckFtdDogdWludDY0CglmcmFtZV9kaWcgMCAvLyBzZWxsQW10OiB1aW50NjQKCT49CgoJLy8gb2ZmZXIgbXVzdCBiZSBhdCBsZWFzdCBzZWxsIGFtb3VudAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjEwCgkvLyByZWZ1bmRBbXQgPSBvZmZlckFtdCAtIHNlbGxBbXQKCWZyYW1lX2RpZyAyIC8vIG9mZmVyQW10OiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHNlbGxBbXQ6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSA0IC8vIHJlZnVuZEFtdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjExCgkvLyBvZmZlckFtdCAtPSByZWZ1bmRBbXQKCWZyYW1lX2RpZyAyIC8vIG9mZmVyQW10OiB1aW50NjQKCWZyYW1lX2RpZyA0IC8vIHJlZnVuZEFtdDogdWludDY0CgktCglmcmFtZV9idXJ5IDIgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjYxNAoJLy8gdmVyaWZ5UGF5VHhuKHBheW1lbnQsIHsgYW1vdW50OiBvcmlnT2ZmZXJhbXQsIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzIH0pCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAzIC8vIG9yaWdPZmZlcmFtdDogdWludDY0Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoicGF5bWVudCIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiJvcmlnT2ZmZXJhbXQifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJwYXltZW50IiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2MTcKCS8vIGNvbW1pc3Npb25Ub1BheSA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDUgLy8gY29tbWlzc2lvblRvUGF5OiB1aW50NjQKCgkvLyAqaWYzOV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjYxOAoJLy8gdGhpcy5zYWZlR2xvYmFsSW50R2V0KE5GRF9LRVlfQ09NTUlTU0lPTjEpID09PSAwCglieXRlYyA3IC8vICJpLmNvbW1pc3Npb24xIgoJY2FsbHN1YiBzYWZlR2xvYmFsSW50R2V0CglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppZjM5X2Vsc2UKCgkvLyAqaWYzOV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2MjAKCS8vIGNvbW1pc3Npb25Ub1BheSA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDUgLy8gY29tbWlzc2lvblRvUGF5OiB1aW50NjQKCWIgKmlmMzlfZW5kCgoqaWYzOV9lbHNlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjI0CgkvLyBjb21taXNzaW9uVG9QYXkgPSAob2ZmZXJBbXQgKiB0aGlzLnNhZmVHbG9iYWxJbnRHZXQoTkZEX0tFWV9DT01NSVNTSU9OMSkpIC8gMTAwMAoJZnJhbWVfZGlnIDIgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoJYnl0ZWMgNyAvLyAiaS5jb21taXNzaW9uMSIKCWNhbGxzdWIgc2FmZUdsb2JhbEludEdldAoJKgoJaW50YyAxOCAvLyAxMDAwCgkvCglmcmFtZV9idXJ5IDUgLy8gY29tbWlzc2lvblRvUGF5OiB1aW50NjQKCippZjM5X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjYyNwoJLy8gY29udkZlZUFkZHIgPSBnbG9iYWxzLnplcm9BZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCWZyYW1lX2J1cnkgNiAvLyBjb252RmVlQWRkcjogYWRkcmVzcwoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjYyOAoJLy8gY29udkZlZSA9IDAKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDcgLy8gY29udkZlZTogdWludDY0CgoJLy8gKmlmNDBfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2MjkKCS8vIHRoaXMudHhuLmdyb3VwSW5kZXggPj0gMgoJdHhuIEdyb3VwSW5kZXgKCWludGMgMiAvLyAyCgk+PQoJYnogKmlmNDBfZW5kCgoJLy8gKmlmNDBfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjMwCgkvLyBjb252RmVlVHhuID0gdGhpcy50eG5Hcm91cFt0aGlzLnR4bi5ncm91cEluZGV4IC0gMl0KCXR4biBHcm91cEluZGV4CglpbnRjIDIgLy8gMgoJLQoJZnJhbWVfYnVyeSA4IC8vIGNvbnZGZWVUeG46IHR4bgoKCS8vICppZjQxX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjMyCgkvLyBjb252RmVlVHhuLnR5cGVFbnVtID09PSBUcmFuc2FjdGlvblR5cGUuUGF5bWVudCAmJgoJLy8gICAgICAgICAgICAgICAgIGNvbnZGZWVUeG4uc2VuZGVyID09PSB0aGlzLnR4bi5zZW5kZXIgJiYKCS8vICAgICAgICAgICAgICAgICBjb252RmVlVHhuLm5vdGUgPT09ICdjb252LiBmZWUnCglmcmFtZV9kaWcgOCAvLyBjb252RmVlVHhuOiB0eG4KCWd0eG5zIFR5cGVFbnVtCglpbnRjIDEgLy8gIHBheQoJPT0KCWR1cAoJYnogKnNraXBfYW5kMTIKCWZyYW1lX2RpZyA4IC8vIGNvbnZGZWVUeG46IHR4bgoJZ3R4bnMgU2VuZGVyCgl0eG4gU2VuZGVyCgk9PQoJJiYKCipza2lwX2FuZDEyOgoJZHVwCglieiAqc2tpcF9hbmQxMwoJZnJhbWVfZGlnIDggLy8gY29udkZlZVR4bjogdHhuCglndHhucyBOb3RlCglwdXNoYnl0ZXMgMHg2MzZmNmU3NjJlMjA2NjY1NjUgLy8gImNvbnYuIGZlZSIKCT09CgkmJgoKKnNraXBfYW5kMTM6CglieiAqaWY0MV9lbmQKCgkvLyAqaWY0MV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2MzYKCS8vIGNvbnZGZWVBZGRyID0gY29udkZlZVR4bi5yZWNlaXZlcgoJZnJhbWVfZGlnIDggLy8gY29udkZlZVR4bjogdHhuCglndHhucyBSZWNlaXZlcgoJZnJhbWVfYnVyeSA2IC8vIGNvbnZGZWVBZGRyOiBhZGRyZXNzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjM3CgkvLyBjb252RmVlID0gY29udkZlZVR4bi5hbW91bnQKCWZyYW1lX2RpZyA4IC8vIGNvbnZGZWVUeG46IHR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9idXJ5IDcgLy8gY29udkZlZTogdWludDY0CgoqaWY0MV9lbmQ6CgoqaWY0MF9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NDEKCS8vIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBORkRSZWdpc3RyeS5wcm90b3R5cGUub3duZXJzaGlwQ2hhbmdlZD4oewoJLy8gICAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnJlZ2lzdHJ5QXBwSWQpLAoJLy8gICAgICAgICAgICAgbWV0aG9kQXJnczogWwoJLy8gICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9OQU1FKS52YWx1ZSwKCS8vICAgICAgICAgICAgICAgICB0aGlzLmFwcC5pZCwKCS8vICAgICAgICAgICAgICAgICBBZGRyZXNzLmZyb21CeXRlcyh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpLnZhbHVlKSwKCS8vICAgICAgICAgICAgICAgICBBZGRyZXNzLmZyb21CeXRlcyhyZXNlcnZlZE93bmVyKSwKCS8vICAgICAgICAgICAgIF0sCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDcgLy8gIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCXB1c2hieXRlcyAweGYyMmM1N2YyIC8vIG1ldGhvZCAib3duZXJzaGlwQ2hhbmdlZChzdHJpbmcsdWludDY0LGFkZHJlc3MsYWRkcmVzcyl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NDIKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5yZWdpc3RyeUFwcElkKQoJaW50YyA0IC8vIFRNUExfcmVnaXN0cnlBcHBJZAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjQzCgkvLyBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlLAoJLy8gICAgICAgICAgICAgICAgIHRoaXMuYXBwLmlkLAoJLy8gICAgICAgICAgICAgICAgIEFkZHJlc3MuZnJvbUJ5dGVzKHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9PV05FUikudmFsdWUpLAoJLy8gICAgICAgICAgICAgICAgIEFkZHJlc3MuZnJvbUJ5dGVzKHJlc2VydmVkT3duZXIpLAoJLy8gICAgICAgICAgICAgXQoJYnl0ZWMgNCAvLyAiaS5uYW1lIgoJYXBwX2dsb2JhbF9nZXQKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWJ5dGVjIDEgLy8gImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDEgLy8gcmVzZXJ2ZWRPd25lcjogYnl0ZVtdCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NTEKCS8vIHRoaXMubmZkX3B1cmNoYXNlZC5sb2coewoJLy8gICAgICAgICAgICAgYXBwSWQ6IHRoaXMuYXBwLmlkLAoJLy8gICAgICAgICAgICAgbmFtZTogdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlLAoJLy8gICAgICAgICAgICAgc2VsbGVyOiBBZGRyZXNzLmZyb21CeXRlcyh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpLnZhbHVlKSwKCS8vICAgICAgICAgICAgIGJ1eWVyOiBBZGRyZXNzLmZyb21CeXRlcyhyZXNlcnZlZE93bmVyKSwKCS8vICAgICAgICAgICAgIHNlbGxBbW91bnQ6IHNlbGxBbXQsCgkvLyAgICAgICAgICAgICBvZmZlckFtb3VudDogb2ZmZXJBbXQsCgkvLyAgICAgICAgICAgICBvdmVycGF5bWVudFJlZnVuZDogcmVmdW5kQW10LAoJLy8gICAgICAgICAgICAgY29udkZlZUFkZHI6IGNvbnZGZWVBZGRyLAoJLy8gICAgICAgICAgICAgY29udkZlZUFtb3VudDogY29udkZlZSwKCS8vICAgICAgICAgfSkKCXB1c2hieXRlcyAweDc4ZGM4OWUzIC8vIG5mZF9wdXJjaGFzZWQodWludDY0LHN0cmluZyxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsYWRkcmVzcyx1aW50NjQpCglieXRlYyAwIC8vICBpbml0aWFsIGhlYWQKCWJ5dGVjIDAgLy8gIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDA4YSAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0Cgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlYyA0IC8vICJpLm5hbWUiCglhcHBfZ2xvYmFsX2dldAoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlYyAxIC8vICJpLm93bmVyLmEiCglhcHBfZ2xvYmFsX2dldAoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIDEgLy8gcmVzZXJ2ZWRPd25lcjogYnl0ZVtdCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgMCAvLyBzZWxsQW10OiB1aW50NjQKCWl0b2IKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAyIC8vIG9mZmVyQW10OiB1aW50NjQKCWl0b2IKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyA0IC8vIHJlZnVuZEFtdDogdWludDY0CglpdG9iCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgNiAvLyBjb252RmVlQWRkcjogYWRkcmVzcwoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIDcgLy8gY29udkZlZTogdWludDY0CglpdG9iCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWNvbmNhdAoJbG9nCgoJLy8gKmlmNDJfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NjQKCS8vIHJlZnVuZEFtdCA+IDAKCWZyYW1lX2RpZyA0IC8vIHJlZnVuZEFtdDogdWludDY0CglpbnRjIDAgLy8gMAoJPgoJYnogKmlmNDJfZW5kCgoJLy8gKmlmNDJfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjY1CgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICAgICAgICAgICAgYW1vdW50OiByZWZ1bmRBbXQsCgkvLyAgICAgICAgICAgICAgICAgcmVjZWl2ZXI6IHBheW1lbnQuc2VuZGVyLAoJLy8gICAgICAgICAgICAgICAgIG5vdGU6ICdvdmVycGF5bWVudFJlZnVuZCcsCgkvLyAgICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxIC8vICBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NjYKCS8vIGFtb3VudDogcmVmdW5kQW10CglmcmFtZV9kaWcgNCAvLyByZWZ1bmRBbXQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NjcKCS8vIHJlY2VpdmVyOiBwYXltZW50LnNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjY4CgkvLyBub3RlOiAnb3ZlcnBheW1lbnRSZWZ1bmQnCglwdXNoYnl0ZXMgMHg2Zjc2NjU3MjcwNjE3OTZkNjU2ZTc0NTI2NTY2NzU2ZTY0IC8vICJvdmVycGF5bWVudFJlZnVuZCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCippZjQyX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjY3MQoJLy8gdGhpcy5kb1BheW91dHMoCgkvLyAgICAgICAgICAgICBvZmZlckFtdCwKCS8vICAgICAgICAgICAgIEFkZHJlc3MuZnJvbUJ5dGVzKHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUxMRVIpLnZhbHVlKSwKCS8vICAgICAgICAgICAgIGNvbW1pc3Npb25Ub1BheSwKCS8vICAgICAgICAgICAgIDAsCgkvLyAgICAgICAgICAgICBnbG9iYWxzLnplcm9BZGRyZXNzLAoJLy8gICAgICAgICApCglnbG9iYWwgWmVyb0FkZHJlc3MKCWludGMgMCAvLyAwCglmcmFtZV9kaWcgNSAvLyBjb21taXNzaW9uVG9QYXk6IHVpbnQ2NAoJYnl0ZWMgMTAgLy8gImkuc2VsbGVyLmEiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDIgLy8gb2ZmZXJBbXQ6IHVpbnQ2NAoJY2FsbHN1YiBkb1BheW91dHMKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2NzkKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCglieXRlYyAxNCAvLyAgI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50YyAxMyAvLyAgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vICppZjQzX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Njg0CgkvLyBsZW4odGhpcy5zYWZlR2xvYmFsQnl0ZUdldChORkRfS0VZX01JTlRJTkdfS0lDS09GRl9DUkVBVE9SKSkgIT09IDAKCWJ5dGVjIDEyIC8vICJpLm1pbnRpbmdLaWNrb2ZmQ3JlYXRvci5hIgoJY2FsbHN1YiBzYWZlR2xvYmFsQnl0ZUdldAoJbGVuCglpbnRjIDAgLy8gMAoJIT0KCWJ6ICppZjQzX2VuZAoKCS8vICppZjQzX2NvbnNlcXVlbnQKCS8vICppZjQ0X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6Njg2CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfTUlOVElOR19LSUNLT0ZGX0NSRUFUT1IpLnZhbHVlICE9PSByYXdCeXRlcyhwYXltZW50LnNlbmRlcikgJiYKCS8vICAgICAgICAgICAgICAgICBsZW4odGhpcy5zYWZlR2xvYmFsQnl0ZUdldChORkRfS0VZX01JTlRJTkcpKSA9PT0gMAoJYnl0ZWMgMTIgLy8gImkubWludGluZ0tpY2tvZmZDcmVhdG9yLmEiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCgkhPQoJZHVwCglieiAqc2tpcF9hbmQxNAoJYnl0ZWMgMyAvLyAiaS5taW50aW5nIgoJY2FsbHN1YiBzYWZlR2xvYmFsQnl0ZUdldAoJbGVuCglpbnRjIDAgLy8gMAoJPT0KCSYmCgoqc2tpcF9hbmQxNDoKCWJ6ICppZjQ0X2VuZAoKCS8vICppZjQ0X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjY4OQoJLy8gc2VuZFBheW1lbnQoewoJLy8gICAgICAgICAgICAgICAgICAgICBhbW91bnQ6IHRoaXMuc2FmZUdsb2JhbEludEdldChORkRfS0VZX01JTlRJTkdfS0lDS09GRl9BTU9VTlQpLAoJLy8gICAgICAgICAgICAgICAgICAgICByZWNlaXZlcjogQWRkcmVzcy5mcm9tQnl0ZXModGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX01JTlRJTkdfS0lDS09GRl9DUkVBVE9SKS52YWx1ZSksCgkvLyAgICAgICAgICAgICAgICAgICAgIG5vdGU6ICdlc2Nyb3dSZWZ1bmQnLAoJLy8gICAgICAgICAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDEgLy8gIHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjY5MAoJLy8gYW1vdW50OiB0aGlzLnNhZmVHbG9iYWxJbnRHZXQoTkZEX0tFWV9NSU5USU5HX0tJQ0tPRkZfQU1PVU5UKQoJYnl0ZWMgMTMgLy8gImkubWludGluZ0tpY2tvZmZBbW91bnQiCgljYWxsc3ViIHNhZmVHbG9iYWxJbnRHZXQKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NjkxCgkvLyByZWNlaXZlcjogQWRkcmVzcy5mcm9tQnl0ZXModGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX01JTlRJTkdfS0lDS09GRl9DUkVBVE9SKS52YWx1ZSkKCWJ5dGVjIDEyIC8vICJpLm1pbnRpbmdLaWNrb2ZmQ3JlYXRvci5hIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo2OTIKCS8vIG5vdGU6ICdlc2Nyb3dSZWZ1bmQnCglwdXNoYnl0ZXMgMHg2NTczNjM3MjZmNzc1MjY1NjY3NTZlNjQgLy8gImVzY3Jvd1JlZnVuZCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCippZjQ0X2VuZDoKCippZjQzX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjY5OAoJLy8gdGhpcy5jbGF3QXNhRnJvbVRvKEFkZHJlc3MuZnJvbUJ5dGVzKHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9PV05FUikudmFsdWUpLCB0aGlzLmFwcC5hZGRyZXNzKQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWJ5dGVjIDEgLy8gImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0CgljYWxsc3ViIGNsYXdBc2FGcm9tVG8KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3MTEKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9PV05FUikudmFsdWUgPSByZXNlcnZlZE93bmVyCglieXRlYyAxIC8vICJpLm93bmVyLmEiCglmcmFtZV9kaWcgMSAvLyByZXNlcnZlZE93bmVyOiBieXRlW10KCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NzEyCgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfU0VMTEVSKS52YWx1ZSA9IHJlc2VydmVkT3duZXIKCWJ5dGVjIDEwIC8vICJpLnNlbGxlci5hIgoJZnJhbWVfZGlnIDEgLy8gcmVzZXJ2ZWRPd25lcjogYnl0ZVtdCglhcHBfZ2xvYmFsX3B1dAoKCS8vICppZjQ1X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NzEzCgkvLyBvZmZlckFtdCA+IHRoaXMuc2FmZUdsb2JhbEludEdldChORkRfS0VZX0hJR0hFU1RfU09MRF9BTU9VTlQpCglmcmFtZV9kaWcgMiAvLyBvZmZlckFtdDogdWludDY0CglieXRlYyAyNiAvLyAiaS5oaWdoZXN0U29sZEFtdCIKCWNhbGxzdWIgc2FmZUdsb2JhbEludEdldAoJPgoJYnogKmlmNDVfZW5kCgoJLy8gKmlmNDVfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NzE0CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfSElHSEVTVF9TT0xEX0FNT1VOVCkudmFsdWUgPSBpdG9iKG9mZmVyQW10KQoJYnl0ZWMgMjYgLy8gImkuaGlnaGVzdFNvbGRBbXQiCglmcmFtZV9kaWcgMiAvLyBvZmZlckFtdDogdWludDY0CglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKKmlmNDVfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NzE2CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjcxNwoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1RJTUVQVVJDSEFTRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDM0IC8vICJpLnRpbWVQdXJjaGFzZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjcxOAoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX01JTlRJTkcpLmRlbGV0ZSgpCglieXRlYyAzIC8vICJpLm1pbnRpbmciCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjcxOQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1JFU0VSVkVEX09XTkVSKS5kZWxldGUoKQoJYnl0ZWMgOCAvLyAiaS5yZXNlcnZlZE93bmVyLmEiCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjcyMAoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1NFTExfQU1PVU5UKS5kZWxldGUoKQoJYnl0ZWMgNiAvLyAiaS5zZWxsYW10IgoJYXBwX2dsb2JhbF9kZWwKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3MjEKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HX0tJQ0tPRkZfQ1JFQVRPUikuZGVsZXRlKCkKCWJ5dGVjIDEyIC8vICJpLm1pbnRpbmdLaWNrb2ZmQ3JlYXRvci5hIgoJYXBwX2dsb2JhbF9kZWwKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3MjIKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9NSU5USU5HX0tJQ0tPRkZfQU1PVU5UKS5kZWxldGUoKQoJYnl0ZWMgMTMgLy8gImkubWludGluZ0tpY2tvZmZBbW91bnQiCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjcyMwoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1NFR01FTlRfQ09NTUlTU0lPTl9BR0VOVCkuZGVsZXRlKCkKCWJ5dGVjIDkgLy8gImkuc2VnbWVudEFnZW50LmEiCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjcyNQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0lTVkFVTFRPUFRJTkxPQ0tFRCkudmFsdWUgPSBORkRfTE9DS0VEX1ZBTF9GQUxTRQoJYnl0ZWMgMjAgLy8gImkudmF1bHRPcHRJbkxvY2tlZCIKCWJ5dGVjIDI0IC8vICIwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3MjYKCS8vIGxvZyhpdG9iKG9mZmVyQW10KSkKCWZyYW1lX2RpZyAyIC8vIG9mZmVyQW10OiB1aW50NjQKCWl0b2IKCWxvZwoJcmV0c3ViCgovLyBpc0FkZHJlc3NJbkZpZWxkKHN0cmluZyxhZGRyZXNzKWJvb2wKKmFiaV9yb3V0ZV9pc0FkZHJlc3NJbkZpZWxkOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAxMSAvLyAweDE1MWY3Yzc1CgoJLy8gYWRkcmVzczogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludGMgMyAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhZGRyZXNzKSBmb3IgaXNBZGRyZXNzSW5GaWVsZCBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZmllbGROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBpc0FkZHJlc3NJbkZpZWxkKHN0cmluZyxhZGRyZXNzKWJvb2wKCWNhbGxzdWIgaXNBZGRyZXNzSW5GaWVsZAoJYnl0ZWMgMjkgLy8gMHgwMAoJaW50YyAwIC8vIDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gaXNBZGRyZXNzSW5GaWVsZChmaWVsZE5hbWU6IHN0cmluZywgYWRkcmVzczogQWRkcmVzcyk6IGJvb2xlYW4KaXNBZGRyZXNzSW5GaWVsZDoKCXByb3RvIDIgMQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjczMQoJLy8gYXNzZXJ0KGFkZHJlc3MgIT09IGdsb2JhbHMuemVyb0FkZHJlc3MpCglmcmFtZV9kaWcgLTIgLy8gYWRkcmVzczogQWRkcmVzcwoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoJYXNzZXJ0CgoJLy8gKmlmNDZfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo3MzIKCS8vICF0aGlzLmJveGVzKGZpZWxkTmFtZSkuZXhpc3RzCglmcmFtZV9kaWcgLTEgLy8gZmllbGROYW1lOiBzdHJpbmcKCWJveF9sZW4KCXN3YXAKCXBvcAoJIQoJYnogKmlmNDZfZW5kCgoJLy8gKmlmNDZfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6NzMzCgkvLyByZXR1cm4gZmFsc2UKCWludGMgMCAvLyAwCglyZXRzdWIKCippZjQ2X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjczNQoJLy8gcmV0dXJuIHRoaXMuZmluZEFkZHJJbkJ5dGVzKHRoaXMuYm94ZXMoZmllbGROYW1lKS52YWx1ZSwgYWRkcmVzcykKCWZyYW1lX2RpZyAtMiAvLyBhZGRyZXNzOiBBZGRyZXNzCglmcmFtZV9kaWcgLTEgLy8gZmllbGROYW1lOiBzdHJpbmcKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94ZXMoZmllbGROYW1lKS52YWx1ZQoJYXNzZXJ0CgljYWxsc3ViIGZpbmRBZGRySW5CeXRlcwoJcmV0c3ViCgovLyBkb1BheW91dHMoZ3Jvc3NUb1NlbGxlcjogdWludDY0LCBzZWxsZXJBZGRyZXNzOiBBZGRyZXNzLCBjb21taXNzaW9uVG9QYXk6IHVpbnQ2NCwgc2VnbWVudENvbW1pc3Npb25Ub1BheTogdWludDY0LCBzZWdtZW50Q29tbWlzc2lvbkFkZHJlc3M6IEFkZHJlc3MpOiB2b2lkCmRvUGF5b3V0czoKCXByb3RvIDUgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODA2CgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICAgICAgICBhbW91bnQ6IGdyb3NzVG9TZWxsZXIgLSBjb21taXNzaW9uVG9QYXksCgkvLyAgICAgICAgICAgICByZWNlaXZlcjogc2VsbGVyQWRkcmVzcywKCS8vICAgICAgICAgICAgIG5vdGU6ICdzZWxsZXInLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxIC8vICBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4MDcKCS8vIGFtb3VudDogZ3Jvc3NUb1NlbGxlciAtIGNvbW1pc3Npb25Ub1BheQoJZnJhbWVfZGlnIC0xIC8vIGdyb3NzVG9TZWxsZXI6IHVpbnQ2NAoJZnJhbWVfZGlnIC0zIC8vIGNvbW1pc3Npb25Ub1BheTogdWludDY0CgktCglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgwOAoJLy8gcmVjZWl2ZXI6IHNlbGxlckFkZHJlc3MKCWZyYW1lX2RpZyAtMiAvLyBzZWxsZXJBZGRyZXNzOiBBZGRyZXNzCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODA5CgkvLyBub3RlOiAnc2VsbGVyJwoJcHVzaGJ5dGVzIDB4NzM2NTZjNmM2NTcyIC8vICJzZWxsZXIiCglpdHhuX2ZpZWxkIE5vdGUKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODExCgkvLyBjb21taXNzaW9uQWRkcmVzcyA9IGdsb2JhbHMuemVyb0FkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJZnJhbWVfYnVyeSAwIC8vIGNvbW1pc3Npb25BZGRyZXNzOiBhZGRyZXNzCgoJLy8gKmlmNDdfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4MTQKCS8vIGxlbih0aGlzLnNhZmVHbG9iYWxCeXRlR2V0KE5GRF9LRVlfQ09NTUlTU0lPTjFfQUdFTlQpKSAhPT0gMAoJYnl0ZWMgNSAvLyAiaS5jb21taXNzaW9uMUFnZW50LmEiCgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0CglsZW4KCWludGMgMCAvLyAwCgkhPQoJYnogKmlmNDdfZW5kCgoJLy8gKmlmNDdfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODE1CgkvLyBjb21taXNzaW9uQWRkcmVzcyA9IEFkZHJlc3MuZnJvbUJ5dGVzKHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9DT01NSVNTSU9OMV9BR0VOVCkudmFsdWUpCglieXRlYyA1IC8vICJpLmNvbW1pc3Npb24xQWdlbnQuYSIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9idXJ5IDAgLy8gY29tbWlzc2lvbkFkZHJlc3M6IGFkZHJlc3MKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4MTYKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgICAgICAgICAgICBhbW91bnQ6IGNvbW1pc3Npb25Ub1BheSwKCS8vICAgICAgICAgICAgICAgICByZWNlaXZlcjogY29tbWlzc2lvbkFkZHJlc3MsCgkvLyAgICAgICAgICAgICAgICAgbm90ZTogJ2NvbW1pc3Npb24nLAoJLy8gICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMSAvLyAgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODE3CgkvLyBhbW91bnQ6IGNvbW1pc3Npb25Ub1BheQoJZnJhbWVfZGlnIC0zIC8vIGNvbW1pc3Npb25Ub1BheTogdWludDY0CglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgxOAoJLy8gcmVjZWl2ZXI6IGNvbW1pc3Npb25BZGRyZXNzCglmcmFtZV9kaWcgMCAvLyBjb21taXNzaW9uQWRkcmVzczogYWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgxOQoJLy8gbm90ZTogJ2NvbW1pc3Npb24nCglwdXNoYnl0ZXMgMHg2MzZmNmQ2ZDY5NzM3MzY5NmY2ZSAvLyAiY29tbWlzc2lvbiIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyAqaWY0OF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgyNQoJLy8gbGVuKHRoaXMuc2FmZUdsb2JhbEJ5dGVHZXQoTkZEX0tFWV9DT01NSVNTSU9OMl9BR0VOVCkpID09PSAwCglieXRlYyAxNiAvLyAiaS5jb21taXNzaW9uMkFnZW50LmEiCgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0CglsZW4KCWludGMgMCAvLyAwCgk9PQoJYnogKmlmNDhfZWxzZQoKCS8vICppZjQ4X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgyNgoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04xX0FHRU5UKS5kZWxldGUoKQoJYnl0ZWMgNSAvLyAiaS5jb21taXNzaW9uMUFnZW50LmEiCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgyNwoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04xKS5kZWxldGUoKQoJYnl0ZWMgNyAvLyAiaS5jb21taXNzaW9uMSIKCWFwcF9nbG9iYWxfZGVsCgliICppZjQ4X2VuZAoKKmlmNDhfZWxzZToKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgyOQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04xX0FHRU5UKS52YWx1ZSA9IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9DT01NSVNTSU9OMl9BR0VOVCkudmFsdWUKCWJ5dGVjIDUgLy8gImkuY29tbWlzc2lvbjFBZ2VudC5hIgoJYnl0ZWMgMTYgLy8gImkuY29tbWlzc2lvbjJBZ2VudC5hIgoJYXBwX2dsb2JhbF9nZXQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODMwCgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfQ09NTUlTU0lPTjEpLnZhbHVlID0gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04yKS52YWx1ZQoJYnl0ZWMgNyAvLyAiaS5jb21taXNzaW9uMSIKCWJ5dGVjIDIyIC8vICJpLmNvbW1pc3Npb24yIgoJYXBwX2dsb2JhbF9nZXQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODMxCgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfQ09NTUlTU0lPTjJfQUdFTlQpLmRlbGV0ZSgpCglieXRlYyAxNiAvLyAiaS5jb21taXNzaW9uMkFnZW50LmEiCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjgzMgoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04yKS5kZWxldGUoKQoJYnl0ZWMgMjIgLy8gImkuY29tbWlzc2lvbjIiCglhcHBfZ2xvYmFsX2RlbAoKKmlmNDhfZW5kOgoKKmlmNDdfZW5kOgoJLy8gKmlmNDlfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4MzgKCS8vIHNlZ21lbnRDb21taXNzaW9uVG9QYXkgIT09IDAKCWZyYW1lX2RpZyAtNCAvLyBzZWdtZW50Q29tbWlzc2lvblRvUGF5OiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoJYnogKmlmNDlfZW5kCgoJLy8gKmlmNDlfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODM5CgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICAgICAgICAgICAgYW1vdW50OiBzZWdtZW50Q29tbWlzc2lvblRvUGF5LAoJLy8gICAgICAgICAgICAgICAgIHJlY2VpdmVyOiBzZWdtZW50Q29tbWlzc2lvbkFkZHJlc3MsCgkvLyAgICAgICAgICAgICAgICAgbm90ZTogJ3NlZ21lbnQnLAoJLy8gICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMSAvLyAgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODQwCgkvLyBhbW91bnQ6IHNlZ21lbnRDb21taXNzaW9uVG9QYXkKCWZyYW1lX2RpZyAtNCAvLyBzZWdtZW50Q29tbWlzc2lvblRvUGF5OiB1aW50NjQKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODQxCgkvLyByZWNlaXZlcjogc2VnbWVudENvbW1pc3Npb25BZGRyZXNzCglmcmFtZV9kaWcgLTUgLy8gc2VnbWVudENvbW1pc3Npb25BZGRyZXNzOiBBZGRyZXNzCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODQyCgkvLyBub3RlOiAnc2VnbWVudCcKCXB1c2hieXRlcyAweDczNjU2NzZkNjU2ZTc0IC8vICJzZWdtZW50IgoJaXR4bl9maWVsZCBOb3RlCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKKmlmNDlfZW5kOgoJcmV0c3ViCgovLyBnZXRSZW5ld1ByaWNlKCl1aW50NjQKKmFiaV9yb3V0ZV9nZXRSZW5ld1ByaWNlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAxMSAvLyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBnZXRSZW5ld1ByaWNlKCl1aW50NjQKCWNhbGxzdWIgZ2V0UmVuZXdQcmljZQoJaXRvYgoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGdldFJlbmV3UHJpY2UoKTogdWludDY0CmdldFJlbmV3UHJpY2U6Cglwcm90byAwIDEKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4NTAKCS8vIHJldHVybiB0aGlzLmdldFJlbmV3UHJpY2VEYXRhKHRoaXMudHhuLnNlbmRlcikub25lWWVhclByaWNlCgl0eG4gU2VuZGVyCgljYWxsc3ViIGdldFJlbmV3UHJpY2VEYXRhCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAwIDgKCWJ0b2kKCXJldHN1YgoKLy8gdXBkYXRlSGFzaChieXRlW10pdm9pZAoqYWJpX3JvdXRlX3VwZGF0ZUhhc2g6CgkvLyBoYXNoOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSB1cGRhdGVIYXNoKGJ5dGVbXSl2b2lkCgljYWxsc3ViIHVwZGF0ZUhhc2gKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHVwZGF0ZUhhc2goaGFzaDogYnl0ZXMpOiB2b2lkCnVwZGF0ZUhhc2g6Cglwcm90byAxIDAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4NTYKCS8vIGFzc2VydCgKCS8vICAgICAgICAgICAgIGxlbihoYXNoKSA9PT0gMzIgJiYgQWRkcmVzcy5mcm9tQnl0ZXMoaGFzaCkgIT09IGdsb2JhbHMuemVyb0FkZHJlc3MsCgkvLyAgICAgICAgICAgICAibXVzdCBwYXNzIDMyLWJ5dGUgaGFzaCB0aGF0IGlzbid0IDAiLAoJLy8gICAgICAgICApCglmcmFtZV9kaWcgLTEgLy8gaGFzaDogYnl0ZXMKCWxlbgoJaW50YyAzIC8vIDMyCgk9PQoJZHVwCglieiAqc2tpcF9hbmQxNQoJZnJhbWVfZGlnIC0xIC8vIGhhc2g6IGJ5dGVzCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9CgkmJgoKKnNraXBfYW5kMTU6CgkvLyBtdXN0IHBhc3MgMzItYnl0ZSBoYXNoIHRoYXQgaXNuJ3QgMAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODYxCgkvLyBhc3NlcnQoCgkvLyAgICAgICAgICAgICByYXdCeXRlcyh0aGlzLnR4bi5zZW5kZXIpID09PSB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpLnZhbHVlIHx8IHRoaXMuaXNDdXJyZW50VHhuQ29udHJhY3RBdXRob3JpdHkoKSwKCS8vICAgICAgICAgICAgICdvbmx5IHR4bmxhYiBvciBvd25lciBjYW4gcmVxdWVzdCBhbiBuZmQgbmZ0IGhhc2ggdXBkYXRlJywKCS8vICAgICAgICAgKQoJdHhuIFNlbmRlcgoJYnl0ZWMgMSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXQKCT09CglkdXAKCWJueiAqc2tpcF9vcjEKCWNhbGxzdWIgaXNDdXJyZW50VHhuQ29udHJhY3RBdXRob3JpdHkKCXx8Cgoqc2tpcF9vcjE6CgkvLyBvbmx5IHR4bmxhYiBvciBvd25lciBjYW4gcmVxdWVzdCBhbiBuZmQgbmZ0IGhhc2ggdXBkYXRlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4NjUKCS8vIHNlbmRBc3NldENvbmZpZyh7CgkvLyAgICAgICAgICAgICBjb25maWdBc3NldDogQXNzZXRJRC5mcm9tVWludDY0KGJ0b2kodGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0FTQUlEKS52YWx1ZSkpLAoJLy8gICAgICAgICAgICAgY29uZmlnQXNzZXRNYW5hZ2VyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgICAgICAgY29uZmlnQXNzZXRSZXNlcnZlOiBBZGRyZXNzLmZyb21CeXRlcyhoYXNoKSwKCS8vICAgICAgICAgICAgIGNvbmZpZ0Fzc2V0Q2xhd2JhY2s6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnRjIDYgLy8gIGFjZmcKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4NjYKCS8vIGNvbmZpZ0Fzc2V0OiBBc3NldElELmZyb21VaW50NjQoYnRvaSh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfQVNBSUQpLnZhbHVlKSkKCWJ5dGVjIDE4IC8vICJpLmFzYWlkIgoJYXBwX2dsb2JhbF9nZXQKCWJ0b2kKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4NjcKCS8vIGNvbmZpZ0Fzc2V0TWFuYWdlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRNYW5hZ2VyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODY4CgkvLyBjb25maWdBc3NldFJlc2VydmU6IEFkZHJlc3MuZnJvbUJ5dGVzKGhhc2gpCglmcmFtZV9kaWcgLTEgLy8gaGFzaDogYnl0ZXMKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRSZXNlcnZlCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODY5CgkvLyBjb25maWdBc3NldENsYXdiYWNrOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBDb25maWdBc3NldENsYXdiYWNrCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBjb250cmFjdExvY2soYm9vbCl2b2lkCiphYmlfcm91dGVfY29udHJhY3RMb2NrOgoJLy8gbG9jazogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludGMgMSAvLyAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGxvY2spIGZvciBjb250cmFjdExvY2sgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50YyAwIC8vIDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgY29udHJhY3RMb2NrKGJvb2wpdm9pZAoJY2FsbHN1YiBjb250cmFjdExvY2sKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIGNvbnRyYWN0TG9jayhsb2NrOiBib29sZWFuKTogdm9pZApjb250cmFjdExvY2s6Cglwcm90byAxIDAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4NzcKCS8vIHRoaXMuYXNzZXJ0T3duZXJDYWxsZWROb3RGb3JTYWxlT3JFeHBpcmVkKCkKCWNhbGxzdWIgYXNzZXJ0T3duZXJDYWxsZWROb3RGb3JTYWxlT3JFeHBpcmVkCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODc4CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjg3OQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0lTTE9DS0VEKS52YWx1ZSA9IGxvY2sgPyAnMScgOiAnMCcKCWJ5dGVjIDI1IC8vICJpLmNvbnRyYWN0TG9ja2VkIgoJZnJhbWVfZGlnIC0xIC8vIGxvY2s6IGJvb2xlYW4KCWJ6ICp0ZXJuYXJ5MF9mYWxzZQoJYnl0ZWMgMTUgLy8gICIxIgoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglieXRlYyAyMyAvLyAgIjAiCgoqdGVybmFyeTBfZW5kOgoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gc2VnbWVudExvY2soYm9vbCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX3NlZ21lbnRMb2NrOgoJLy8gdXNkUHJpY2U6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGxvY2s6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDEgLy8gMQoJPT0KCgkvLyBhcmd1bWVudCAxIChsb2NrKSBmb3Igc2VnbWVudExvY2sgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50YyAwIC8vIDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgc2VnbWVudExvY2soYm9vbCx1aW50NjQpdm9pZAoJY2FsbHN1YiBzZWdtZW50TG9jawoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gc2VnbWVudExvY2sobG9jazogYm9vbGVhbiwgdXNkUHJpY2U6IHVpbnQ2NCk6IHZvaWQKc2VnbWVudExvY2s6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjg4NQoJLy8gdGhpcy5hc3NlcnRPd25lckNhbGxlZE5vdEZvclNhbGVPckV4cGlyZWQoKQoJY2FsbHN1YiBhc3NlcnRPd25lckNhbGxlZE5vdEZvclNhbGVPckV4cGlyZWQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4ODYKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9USU1FQ0hBTkdFRCkudmFsdWUgPSBpdG9iKGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wKQoJYnl0ZWMgMiAvLyAiaS50aW1lQ2hhbmdlZCIKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODg3CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfSVNTRUdNRU5UTE9DS0VEKS52YWx1ZSA9IGxvY2sgPyAnMScgOiAnMCcKCWJ5dGVjIDIxIC8vICJpLnNlZ21lbnRMb2NrZWQiCglmcmFtZV9kaWcgLTEgLy8gbG9jazogYm9vbGVhbgoJYnogKnRlcm5hcnkxX2ZhbHNlCglieXRlYyAxNSAvLyAgIjEiCgliICp0ZXJuYXJ5MV9lbmQKCip0ZXJuYXJ5MV9mYWxzZToKCWJ5dGVjIDIzIC8vICAiMCIKCip0ZXJuYXJ5MV9lbmQ6CglhcHBfZ2xvYmFsX3B1dAoKCS8vICppZjUwX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODg4CgkvLyBsb2NrCglmcmFtZV9kaWcgLTEgLy8gbG9jazogYm9vbGVhbgoJYnogKmlmNTBfZWxzZQoKCS8vICppZjUwX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjg4OQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1NFR01FTlRfVVNEX1BSSUNFKS5kZWxldGUoKQoJYnl0ZWMgMzIgLy8gImkuc2VnbWVudFByaWNlVXNkIgoJYXBwX2dsb2JhbF9kZWwKCWIgKmlmNTBfZW5kCgoqaWY1MF9lbHNlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6ODkyCgkvLyBjb25zdHJhaW50RGF0YSA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBORkRSZWdpc3RyeS5wcm90b3R5cGUuZ2V0Q29uc3RyYWludHM+KHsKCS8vICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMucmVnaXN0cnlBcHBJZCksCgkvLyAgICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlYyAzNyAvLyAgbWV0aG9kICJnZXRDb25zdHJhaW50cygpKHVpbnQ2NCx1aW50NjQsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4OTMKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5yZWdpc3RyeUFwcElkKQoJaW50YyA0IC8vIFRNUExfcmVnaXN0cnlBcHBJZAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnRjIDEgLy8gMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglmcmFtZV9idXJ5IDAgLy8gY29uc3RyYWludERhdGE6ICh1aW50NjQsdWludDY0LHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjg5NQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgICAgIHVzZFByaWNlID49IGNvbnN0cmFpbnREYXRhLnNlZ21lbnRQbGF0Zm9ybUNvc3RJblVzZCwKCS8vICAgICAgICAgICAgICAgICAnYW1vdW50IG11c3QgYmUgYXQgbGVhc3QgTkZEX01JTl9TRUdNRU5UX1VTRCBkb2xsYXJzIGluIGFsZ28nLAoJLy8gICAgICAgICAgICAgKQoJZnJhbWVfZGlnIC0yIC8vIHVzZFByaWNlOiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIGNvbnN0cmFpbnREYXRhOiAodWludDY0LHVpbnQ2NCx1aW50NjQsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMCA4CglidG9pCgk+PQoKCS8vIGFtb3VudCBtdXN0IGJlIGF0IGxlYXN0IE5GRF9NSU5fU0VHTUVOVF9VU0QgZG9sbGFycyBpbiBhbGdvCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo4OTkKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUdNRU5UX1VTRF9QUklDRSkudmFsdWUgPSBpdG9iKHVzZFByaWNlKQoJYnl0ZWMgMzIgLy8gImkuc2VnbWVudFByaWNlVXNkIgoJZnJhbWVfZGlnIC0yIC8vIHVzZFByaWNlOiB1aW50NjQKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CgoqaWY1MF9lbmQ6CglyZXRzdWIKCi8vIHZhdWx0T3B0SW5Mb2NrKGJvb2wpdm9pZAoqYWJpX3JvdXRlX3ZhdWx0T3B0SW5Mb2NrOgoJLy8gbG9jazogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludGMgMSAvLyAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGxvY2spIGZvciB2YXVsdE9wdEluTG9jayBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnRjIDAgLy8gMAoJZ2V0Yml0CgoJLy8gZXhlY3V0ZSB2YXVsdE9wdEluTG9jayhib29sKXZvaWQKCWNhbGxzdWIgdmF1bHRPcHRJbkxvY2sKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHZhdWx0T3B0SW5Mb2NrKGxvY2s6IGJvb2xlYW4pOiB2b2lkCnZhdWx0T3B0SW5Mb2NrOgoJcHJvdG8gMSAwCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTA4CgkvLyB0aGlzLmFzc2VydE93bmVyQ2FsbGVkTm90Rm9yU2FsZU9yRXhwaXJlZCgpCgljYWxsc3ViIGFzc2VydE93bmVyQ2FsbGVkTm90Rm9yU2FsZU9yRXhwaXJlZAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjkwOQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX1RJTUVDSEFOR0VEKS52YWx1ZSA9IGl0b2IoZ2xvYmFscy5sYXRlc3RUaW1lc3RhbXApCglieXRlYyAyIC8vICJpLnRpbWVDaGFuZ2VkIgoJZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAoJaXRvYgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5MTAKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9JU1ZBVUxUT1BUSU5MT0NLRUQpLnZhbHVlID0gbG9jayA/ICcxJyA6ICcwJwoJYnl0ZWMgMjAgLy8gImkudmF1bHRPcHRJbkxvY2tlZCIKCWZyYW1lX2RpZyAtMSAvLyBsb2NrOiBib29sZWFuCglieiAqdGVybmFyeTJfZmFsc2UKCWJ5dGVjIDE1IC8vICAiMSIKCWIgKnRlcm5hcnkyX2VuZAoKKnRlcm5hcnkyX2ZhbHNlOgoJYnl0ZWMgMjMgLy8gICIwIgoKKnRlcm5hcnkyX2VuZDoKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIHZhdWx0T3B0SW4odWludDY0W10pdm9pZAoqYWJpX3JvdXRlX3ZhdWx0T3B0SW46CgkvLyBhc3NldHM6IHVpbnQ2NFtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgdmF1bHRPcHRJbih1aW50NjRbXSl2b2lkCgljYWxsc3ViIHZhdWx0T3B0SW4KCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHZhdWx0T3B0SW4oYXNzZXRzOiBBc3NldElEW10pOiB2b2lkCnZhdWx0T3B0SW46Cglwcm90byAxIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTIwCgkvLyB0aGlzLm5vdEZvclNhbGVPckV4cGlyZWQoKQoJY2FsbHN1YiBub3RGb3JTYWxlT3JFeHBpcmVkCgoJLy8gKmlmNTFfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5MjQKCS8vIHRoaXMuaXNWYXVsdEF1dG9PcHRJbkxvY2tlZCgpCgljYWxsc3ViIGlzVmF1bHRBdXRvT3B0SW5Mb2NrZWQKCWJ6ICppZjUxX2VuZAoKCS8vICppZjUxX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjkyNQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgICAgIHJhd0J5dGVzKHRoaXMudHhuLnNlbmRlcikgPT09IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9PV05FUikudmFsdWUsCgkvLyAgICAgICAgICAgICAgICAgJ3NlbmRlciBtdXN0IGJlIG93bmVyIHdoZW4gdmF1bHQgbG9ja2VkJywKCS8vICAgICAgICAgICAgICkKCXR4biBTZW5kZXIKCWJ5dGVjIDEgLy8gImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoKCS8vIHNlbmRlciBtdXN0IGJlIG93bmVyIHdoZW4gdmF1bHQgbG9ja2VkCglhc3NlcnQKCippZjUxX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjkzMQoJLy8gYXNzZXJ0KHRoaXMudHhuLmdyb3VwSW5kZXggPiAwLCAncGFydCBvZiBvcHQtaW4gZm9yIG5ldyBhc3NldCwgbXVzdCBoYXZlIHByaW9yIHR4biBwYXlpbmcgTUJSJykKCXR4biBHcm91cEluZGV4CglpbnRjIDAgLy8gMAoJPgoKCS8vIHBhcnQgb2Ygb3B0LWluIGZvciBuZXcgYXNzZXQsIG11c3QgaGF2ZSBwcmlvciB0eG4gcGF5aW5nIE1CUgoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTMzCgkvLyB2ZXJpZnlQYXlUeG4odGhpcy50eG5Hcm91cFt0aGlzLnR4bi5ncm91cEluZGV4IC0gMV0sIHsKCS8vICAgICAgICAgICAgIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgICAgICAgYW1vdW50OiAxMDBfMDAwICogYXNzZXRzLmxlbmd0aCwKCS8vICAgICAgICAgfSkKCXR4biBHcm91cEluZGV4CglpbnRjIDEgLy8gMQoJLQoJc3RvcmUgMjQ4IC8vIHZlcmlmeVR4biBpbmRleAoKCS8vIHZlcmlmeSBwYXkKCWxvYWQgMjQ4IC8vIHZlcmlmeVR4biBpbmRleAoJZ3R4bnMgVHlwZUVudW0KCWludGMgMSAvLyAgcGF5Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG5Hcm91cFt0aGlzLnR4bi5ncm91cEluZGV4IC0gMV0iLCJmaWVsZCI6InR5cGVFbnVtIiwiZXhwZWN0ZWQiOiJwYXkifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHJlY2VpdmVyCglsb2FkIDI0OCAvLyB2ZXJpZnlUeG4gaW5kZXgKCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuR3JvdXBbdGhpcy50eG4uZ3JvdXBJbmRleCAtIDFdIiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50Cglsb2FkIDI0OCAvLyB2ZXJpZnlUeG4gaW5kZXgKCWd0eG5zIEFtb3VudAoJaW50YyAxNiAvLyAxMDBfMDAwCglmcmFtZV9kaWcgLTEgLy8gYXNzZXRzOiBBc3NldElEW10KCWxlbgoJaW50YyA1IC8vIDgKCS8KCSoKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwW3RoaXMudHhuLmdyb3VwSW5kZXggLSAxXSIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiIxMDBfMDAwICogYXNzZXRzLmxlbmd0aCJ9Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5MzcKCS8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBhc3NldHMubGVuZ3RoOyBpICs9IDEpCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl82OgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTM3CgkvLyBpIDwgYXNzZXRzLmxlbmd0aAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gYXNzZXRzOiBBc3NldElEW10KCWxlbgoJaW50YyA1IC8vIDgKCS8KCTwKCWJ6ICpmb3JfNl9lbmQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5MzgKCS8vIGFzc2V0SWQgPSBhc3NldHNbaV0KCWZyYW1lX2RpZyAtMSAvLyBhc3NldHM6IEFzc2V0SURbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludGMgMCAvLyAgaW5pdGlhbCBvZmZzZXQKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50YyA1IC8vIDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJaW50YyA1IC8vIDgKCWV4dHJhY3QzCglidG9pCglmcmFtZV9idXJ5IDEgLy8gYXNzZXRJZDogdWludDY0CgoJLy8gKmlmNTJfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5NDAKCS8vICF0aGlzLmFwcC5hZGRyZXNzLmlzT3B0ZWRJblRvQXNzZXQoYXNzZXRJZCkKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgMSAvLyBhc3NldElkOiB1aW50NjQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJc3dhcAoJcG9wCgkhCglieiAqaWY1Ml9lbmQKCgkvLyAqaWY1Ml9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5NDEKCS8vIHNlbmRBc3NldFRyYW5zZmVyKHsKCS8vICAgICAgICAgICAgICAgICAgICAgeGZlckFzc2V0OiBhc3NldElkLAoJLy8gICAgICAgICAgICAgICAgICAgICBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgICAgICAgICAgICAgICBhc3NldEFtb3VudDogMCwKCS8vICAgICAgICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxMCAvLyAgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5NDIKCS8vIHhmZXJBc3NldDogYXNzZXRJZAoJZnJhbWVfZGlnIDEgLy8gYXNzZXRJZDogdWludDY0CglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk0MwoJLy8gYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk0NAoJLy8gYXNzZXRBbW91bnQ6IDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKKmlmNTJfZW5kOgoKKmZvcl82X2NvbnRpbnVlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTM3CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKmZvcl82CgoqZm9yXzZfZW5kOgoJcmV0c3ViCgovLyB2YXVsdFNlbmQodWludDY0LGFkZHJlc3Msc3RyaW5nLHVpbnQ2NCx1aW50NjRbXSl2b2lkCiphYmlfcm91dGVfdmF1bHRTZW5kOgoJLy8gb3RoZXJBc3NldHM6IHVpbnQ2NFtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA1CglleHRyYWN0IDIgMAoKCS8vIGFzc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDQKCWJ0b2kKCgkvLyBub3RlOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWV4dHJhY3QgMiAwCgoJLy8gcmVjZWl2ZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnRjIDMgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMyAocmVjZWl2ZXIpIGZvciB2YXVsdFNlbmQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGFtb3VudDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSB2YXVsdFNlbmQodWludDY0LGFkZHJlc3Msc3RyaW5nLHVpbnQ2NCx1aW50NjRbXSl2b2lkCgljYWxsc3ViIHZhdWx0U2VuZAoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gdmF1bHRTZW5kKGFtb3VudDogdWludDY0LCByZWNlaXZlcjogQWRkcmVzcywgbm90ZTogc3RyaW5nLCBhc3NldDogdWludDY0LCBvdGhlckFzc2V0czogQXNzZXRJRFtdKTogdm9pZAp2YXVsdFNlbmQ6Cglwcm90byA1IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwbiAzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTY0CgkvLyB0aGlzLmFzc2VydE93bmVyQ2FsbGVkTm90Rm9yU2FsZU9yRXhwaXJlZCgpCgljYWxsc3ViIGFzc2VydE93bmVyQ2FsbGVkTm90Rm9yU2FsZU9yRXhwaXJlZAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk2NQoJLy8gYXNzZXJ0KHJlY2VpdmVyICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzKQoJZnJhbWVfZGlnIC0yIC8vIHJlY2VpdmVyOiBBZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9Cglhc3NlcnQKCgkvLyAqaWY1M19jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk2NwoJLy8gYXNzZXQgPT09IDAKCWZyYW1lX2RpZyAtNCAvLyBhc3NldDogdWludDY0CglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppZjUzX2VuZAoKCS8vICppZjUzX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk2OAoJLy8gYXNzZXJ0KG90aGVyQXNzZXRzLmxlbmd0aCA9PT0gMCwgImNhbid0IHNwZWNpZnkgb3RoZXIgYXNzZXRzIGlmIHNlbmRpbmcgYWxnbyBmcm9tIHZhdWx0IikKCWZyYW1lX2RpZyAtNSAvLyBvdGhlckFzc2V0czogQXNzZXRJRFtdCglsZW4KCWludGMgNSAvLyA4CgkvCglpbnRjIDAgLy8gMAoJPT0KCgkvLyBjYW4ndCBzcGVjaWZ5IG90aGVyIGFzc2V0cyBpZiBzZW5kaW5nIGFsZ28gZnJvbSB2YXVsdAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTY5CgkvLyBhc3NlcnQoYW1vdW50ID4gMCkKCWZyYW1lX2RpZyAtMSAvLyBhbW91bnQ6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT4KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk3MQoJLy8gbWluQmFsYW5jZSA9IHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZSArIHRoaXMuc2FmZUdsb2JhbEludEdldChORkRfS0VZX01JTlRJTkdfS0lDS09GRl9BTU9VTlQpCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCWJ5dGVjIDEzIC8vICJpLm1pbnRpbmdLaWNrb2ZmQW1vdW50IgoJY2FsbHN1YiBzYWZlR2xvYmFsSW50R2V0CgkrCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsYW5jZTogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTczCgkvLyBhc3NlcnQodGhpcy5hcHAuYWRkcmVzcy5iYWxhbmNlIC0gYW1vdW50ID49IG1pbkJhbGFuY2UpCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAtMSAvLyBhbW91bnQ6IHVpbnQ2NAoJLQoJZnJhbWVfZGlnIDAgLy8gbWluQmFsYW5jZTogdWludDY0Cgk+PQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTc0CgkvLyBzZW5kUGF5bWVudCh7IHJlY2VpdmVyOiByZWNlaXZlciwgYW1vdW50OiBhbW91bnQsIG5vdGU6IG5vdGUgfSkKCWl0eG5fYmVnaW4KCWludGMgMSAvLyAgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTc0CgkvLyByZWNlaXZlcjogcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMiAvLyByZWNlaXZlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk3NAoJLy8gYW1vdW50OiBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBhbW91bnQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5NzQKCS8vIG5vdGU6IG5vdGUKCWZyYW1lX2RpZyAtMyAvLyBub3RlOiBzdHJpbmcKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5NzUKCS8vIHJldHVybgoJcmV0c3ViCgoqaWY1M19lbmQ6CgkvLyAqaWY1NF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk3OQoJLy8gYW1vdW50ICE9PSAwCglmcmFtZV9kaWcgLTEgLy8gYW1vdW50OiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoJYnogKmlmNTRfZW5kCgoJLy8gKmlmNTRfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTgwCgkvLyBhc3NlcnQob3RoZXJBc3NldHMubGVuZ3RoID09PSAwLCAnY2FuIG9ubHkgc2VuZCBvbmUgYXNzZXQgaWYgYW1vdW50ID09IDAnKQoJZnJhbWVfZGlnIC01IC8vIG90aGVyQXNzZXRzOiBBc3NldElEW10KCWxlbgoJaW50YyA1IC8vIDgKCS8KCWludGMgMCAvLyAwCgk9PQoKCS8vIGNhbiBvbmx5IHNlbmQgb25lIGFzc2V0IGlmIGFtb3VudCA9PSAwCglhc3NlcnQKCippZjU0X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk4MgoJLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8PSBvdGhlckFzc2V0cy5sZW5ndGg7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDEgLy8gaTogdWludDY0CgoqZm9yXzc6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5ODIKCS8vIGkgPD0gb3RoZXJBc3NldHMubGVuZ3RoCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyAtNSAvLyBvdGhlckFzc2V0czogQXNzZXRJRFtdCglsZW4KCWludGMgNSAvLyA4CgkvCgk8PQoJYnogKmZvcl83X2VuZAoKCS8vICppZjU1X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTg2CgkvLyBpID09PSAwCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmNTVfZWxzZQoKCS8vICppZjU1X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjk4NwoJLy8gYXNzZXRJZCA9IEFzc2V0SUQuZnJvbVVpbnQ2NChhc3NldCkKCWZyYW1lX2RpZyAtNCAvLyBhc3NldDogdWludDY0CglmcmFtZV9idXJ5IDIgLy8gYXNzZXRJZDogQXNzZXRJRAoJYiAqaWY1NV9lbmQKCippZjU1X2Vsc2U6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5ODkKCS8vIGFzc2V0SWQgPSBvdGhlckFzc2V0c1tpIC0gMV0KCWZyYW1lX2RpZyAtNSAvLyBvdGhlckFzc2V0czogQXNzZXRJRFtdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50YyAwIC8vICBpbml0aWFsIG9mZnNldAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJLQoJaW50YyA1IC8vIDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJaW50YyA1IC8vIDgKCWV4dHJhY3QzCglidG9pCglmcmFtZV9idXJ5IDIgLy8gYXNzZXRJZDogQXNzZXRJRAoKKmlmNTVfZW5kOgoJLy8gKmlmNTZfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5OTIKCS8vIGFzc2V0SWQuaWQgPT09IGJ0b2kodGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0FTQUlEKS52YWx1ZSkKCWZyYW1lX2RpZyAyIC8vIGFzc2V0SWQ6IEFzc2V0SUQKCWJ5dGVjIDE4IC8vICJpLmFzYWlkIgoJYXBwX2dsb2JhbF9nZXQKCWJ0b2kKCT09CglieiAqaWY1Nl9lbmQKCgkvLyAqaWY1Nl9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5OTMKCS8vIGFzc2VydChyYXdCeXRlcyhyZWNlaXZlcikgPT09IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9PV05FUikudmFsdWUsICdyZWNlaXZlciBtdXN0IGJlIG93bmVyJykKCWZyYW1lX2RpZyAtMiAvLyByZWNlaXZlcjogQWRkcmVzcwoJYnl0ZWMgMSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXQKCT09CgoJLy8gcmVjZWl2ZXIgbXVzdCBiZSBvd25lcgoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTk0CgkvLyB0aGlzLmNsYXdBc2FGcm9tVG8odGhpcy5hcHAuYWRkcmVzcywgcmVjZWl2ZXIpCglmcmFtZV9kaWcgLTIgLy8gcmVjZWl2ZXI6IEFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgljYWxsc3ViIGNsYXdBc2FGcm9tVG8KCWIgKmZvcl83X2NvbnRpbnVlCgoqaWY1Nl9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5OTcKCS8vIGFzc2V0QmFsID0gcmVjZWl2ZXIuYXNzZXRCYWxhbmNlKGFzc2V0SWQpCglmcmFtZV9kaWcgLTIgLy8gcmVjZWl2ZXI6IEFkZHJlc3MKCWZyYW1lX2RpZyAyIC8vIGFzc2V0SWQ6IEFzc2V0SUQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9idXJ5IDMgLy8gYXNzZXRCYWw6IHVpbnQ2NAoKCS8vICppZjU3X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6OTk4CgkvLyBhbW91bnQgPT09IDAgfHwgdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UoYXNzZXRJZCkgPT09IGFzc2V0QmFsCglmcmFtZV9kaWcgLTEgLy8gYW1vdW50OiB1aW50NjQKCWludGMgMCAvLyAwCgk9PQoJZHVwCglibnogKnNraXBfb3IyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIDIgLy8gYXNzZXRJZDogQXNzZXRJRAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAzIC8vIGFzc2V0QmFsOiB1aW50NjQKCT09Cgl8fAoKKnNraXBfb3IyOgoJYnogKmlmNTdfZWxzZQoKCS8vICppZjU3X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwMDAKCS8vIHNlbmRBc3NldFRyYW5zZmVyKHsKCS8vICAgICAgICAgICAgICAgICAgICAgeGZlckFzc2V0OiBhc3NldElkLAoJLy8gICAgICAgICAgICAgICAgICAgICBhc3NldFJlY2VpdmVyOiByZWNlaXZlciwKCS8vICAgICAgICAgICAgICAgICAgICAgYXNzZXRDbG9zZVRvOiByZWNlaXZlciwKCS8vICAgICAgICAgICAgICAgICAgICAgYXNzZXRBbW91bnQ6IGFtb3VudCwKCS8vICAgICAgICAgICAgICAgICAgICAgbm90ZTogbm90ZSwKCS8vICAgICAgICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxMCAvLyAgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDAxCgkvLyB4ZmVyQXNzZXQ6IGFzc2V0SWQKCWZyYW1lX2RpZyAyIC8vIGFzc2V0SWQ6IEFzc2V0SUQKCWl0eG5fZmllbGQgWGZlckFzc2V0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTAwMgoJLy8gYXNzZXRSZWNlaXZlcjogcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMiAvLyByZWNlaXZlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTAwMwoJLy8gYXNzZXRDbG9zZVRvOiByZWNlaXZlcgoJZnJhbWVfZGlnIC0yIC8vIHJlY2VpdmVyOiBBZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0Q2xvc2VUbwoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwMDQKCS8vIGFzc2V0QW1vdW50OiBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBhbW91bnQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBc3NldEFtb3VudAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwMDUKCS8vIG5vdGU6IG5vdGUKCWZyYW1lX2RpZyAtMyAvLyBub3RlOiBzdHJpbmcKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWIgKmlmNTdfZW5kCgoqaWY1N19lbHNlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTAwOAoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoeyB4ZmVyQXNzZXQ6IGFzc2V0SWQsIGFzc2V0UmVjZWl2ZXI6IHJlY2VpdmVyLCBhc3NldEFtb3VudDogYW1vdW50LCBub3RlOiBub3RlIH0pCglpdHhuX2JlZ2luCglpbnRjIDEwIC8vICBheGZlcgoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwMDgKCS8vIHhmZXJBc3NldDogYXNzZXRJZAoJZnJhbWVfZGlnIDIgLy8gYXNzZXRJZDogQXNzZXRJRAoJaXR4bl9maWVsZCBYZmVyQXNzZXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDA4CgkvLyBhc3NldFJlY2VpdmVyOiByZWNlaXZlcgoJZnJhbWVfZGlnIC0yIC8vIHJlY2VpdmVyOiBBZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDA4CgkvLyBhc3NldEFtb3VudDogYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gYW1vdW50OiB1aW50NjQKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDA4CgkvLyBub3RlOiBub3RlCglmcmFtZV9kaWcgLTMgLy8gbm90ZTogc3RyaW5nCglpdHhuX2ZpZWxkIE5vdGUKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoqaWY1N19lbmQ6CgoqZm9yXzdfY29udGludWU6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czo5ODIKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzcKCipmb3JfN19lbmQ6CglyZXRzdWIKCi8vIHJlbmV3KHBheSl2b2lkCiphYmlfcm91dGVfcmVuZXc6CgkvLyBwYXltZW50OiBwYXkKCXR4biBHcm91cEluZGV4CglpbnRjIDEgLy8gMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50YyAxIC8vICBwYXkKCT09CgoJLy8gYXJndW1lbnQgMCAocGF5bWVudCkgZm9yIHJlbmV3IG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGV4ZWN1dGUgcmVuZXcocGF5KXZvaWQKCWNhbGxzdWIgcmVuZXcKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHJlbmV3KHBheW1lbnQ6IFBheVR4bik6IHZvaWQKLy8KLy8gUmVuZXcgYWRkcyBtb3JlIHRpbWUgdG8gYW4gZXhpc3RpbmcgTkZEcyBleHBpcmF0aW9uLCBvciByZW5ld3MgaXQgaWYgZXhwaXJlZC4KLy8KLy8gQXMgcGFydCBvZiB2Mi0+djMgdXBncmFkZSwgdGhlIE5GRHMgYXJlIGNvbnZlcnRlZCBmcm9tIGxpZmV0aW1lIE5GRHMgdG8gcmVuZXdhbCBORkRzLiBUaGUgdjIgY29udHJhY3QgaXMgdXBncmFkZWQKLy8gdG8gdjMsIHRoZW4gcmVuZXcgaXMgY2FsbGVkIG9uIHRoZSAobm93IHYzKSBuZmQgdG8gdHVybiBpdCBpbnRvIGEgcmVuZXdhbCAobm90ZSB0aGUgaWYgY3VyRXhwaXJhdGlvbiA9PT0gMCBjaGVjaykKLy8KLy8gSWYgYWxyZWFkeSByZW5ld2FsLCB0aGVuIGl0IGV4dGVuZHMgdGhlIGN1cnJlbnQgZXhwaXJhdGlvbiB0aW1lIGJ5IHRoZSB0aW1lIHNwZWNpZmllZCAobWluaW11bSAxIHlyKSAoMzY1IC8gcHJpY2UgcGFpZCAqIG1pbnQgcHJpY2UpCi8vIEV4cGlyYXRpb25zIGNhbiBuZXZlciBiZSBtb3JlIHRoYW4gTkZEX01BWF9FWFBJUkFUSU9OX0RBWVMgZGF5cyBpbiB0aGUgZnV0dXJlLgovLwovLyBJRiB0aGUgTkZEIGlzIGV4cGlyZWQ6Ci8vIHggVGhlIGN1cnJlbnQgb3duZXIgY2FuIHRha2UgaXQgYmFjayBvdmVyIGF0IGJhc2UgcHJpY2UgLSBhbmQgTkZEIG1ldGFkYXRhIGRvZXNuJ3QgaGF2ZSB0byBiZSBjbGVhcmVkIC0gdGhleQovLyBnZXQgaXQgYmFjayBhcy1pcy4KLy8geCBJZiBub3QgY3VycmVudCBvd25lciwgdGhlbiB0aGUgcHJpY2UgZ29lcyBmcm9tIGhpZ2ggb2YgYmFzZSBwcmljZSAqIDEwLDAwMCBkb3duIHRvIGJhc2UgcHJpY2Ugb3ZlciAyNCBocnMgd2hlcmUKLy8gJ2J1eWVyJyBoYXMgdG8gcGF5IGF0IGxlYXN0IHRoYXQgcHJpY2UuICBUaGUgTkZEIE1VU1QgQUxSRUFEWSBIQVZFIElUUyBNRVRBREFUQSBDTEVBUkVEIQovLwovLyBAcGFyYW0ge1BheVR4bn0gcGF5bWVudCAtIFRoZSBwYXltZW50IHRyYW5zYWN0aW9uIGZyb20gd2hpY2ggdGhlIHJlbmV3YWwgcGVyaW9kIGlzIGRldGVybWluZWQuLgpyZW5ldzoKCXByb3RvIDEgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXBuIDExCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTAzMQoJLy8gdmVyaWZ5UGF5VHhuKHBheW1lbnQsIHsgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MgfSkKCS8vIHZlcmlmeSByZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgUmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoicGF5bWVudCIsImZpZWxkIjoicmVjZWl2ZXIiLCJleHBlY3RlZCI6InRoaXMuYXBwLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTAzNAoJLy8gcHJpY2VJbmZvID0gdGhpcy5nZXRSZW5ld1ByaWNlRGF0YSh0aGlzLnR4bi5zZW5kZXIpCgl0eG4gU2VuZGVyCgljYWxsc3ViIGdldFJlbmV3UHJpY2VEYXRhCglmcmFtZV9idXJ5IDAgLy8gcHJpY2VJbmZvOiAodWludDY0LHVpbnQ2NCxib29sLGJvb2wsYm9vbCkKCgkvLyAqaWY1OF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwMzUKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgMjAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglpbnRjIDE5IC8vIDIwMAoJPAoJYnogKmlmNThfZW5kCgoJLy8gKmlmNThfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTAzNgoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGVjIDE0IC8vICAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnRjIDEzIC8vICBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoqaWY1OF9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDM4CgkvLyBjb25zdHJhaW50RGF0YSA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBORkRSZWdpc3RyeS5wcm90b3R5cGUuZ2V0Q29uc3RyYWludHM+KHsKCS8vICAgICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5yZWdpc3RyeUFwcElkKSwKCS8vICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgNyAvLyAgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZWMgMzcgLy8gIG1ldGhvZCAiZ2V0Q29uc3RyYWludHMoKSh1aW50NjQsdWludDY0LHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0KSIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTAzOQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnJlZ2lzdHJ5QXBwSWQpCglpbnRjIDQgLy8gVE1QTF9yZWdpc3RyeUFwcElkCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludGMgMSAvLyAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgMSAvLyBjb25zdHJhaW50RGF0YTogKHVpbnQ2NCx1aW50NjQsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA0MQoJLy8gcmVxUHJpY2UgPSBwcmljZUluZm8ub25lWWVhclByaWNlCglmcmFtZV9kaWcgMCAvLyBwcmljZUluZm86ICh1aW50NjQsdWludDY0LGJvb2wsYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgMCA4CglidG9pCglmcmFtZV9idXJ5IDIgLy8gcmVxUHJpY2U6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwNDIKCS8vIG1heEV4cFllYXJzID0gY29uc3RyYWludERhdGEubWF4WWVhcnNBbGxvd2VkCglmcmFtZV9kaWcgMSAvLyBjb25zdHJhaW50RGF0YTogKHVpbnQ2NCx1aW50NjQsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE2IDgKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyBtYXhFeHBZZWFyczogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA0MwoJLy8gYXNzZXJ0KHJlcVByaWNlID4gMCkKCWZyYW1lX2RpZyAyIC8vIHJlcVByaWNlOiB1aW50NjQKCWludGMgMCAvLyAwCgk+Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDQ0CgkvLyBvcmlnT3duZXIgPSBBZGRyZXNzLmZyb21CeXRlcyh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpLnZhbHVlKQoJYnl0ZWMgMSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2J1cnkgNCAvLyBvcmlnT3duZXI6IGFkZHJlc3MKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDQ2CgkvLyBjdXJFeHBpcmF0aW9uID0gdGhpcy5zYWZlR2xvYmFsSW50R2V0KE5GRF9LRVlfRVhQSVJBVElPTlRJTUUpCglieXRlYyAxNyAvLyAiaS5leHBpcmF0aW9uVGltZSIKCWNhbGxzdWIgc2FmZUdsb2JhbEludEdldAoJZnJhbWVfYnVyeSA1IC8vIGN1ckV4cGlyYXRpb246IHVpbnQ2NAoKCS8vICppZjU5X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA0NwoJLy8gY3VyRXhwaXJhdGlvbiAhPT0gMCAmJiB0aGlzLmlzRXhwaXJlZCgpCglmcmFtZV9kaWcgNSAvLyBjdXJFeHBpcmF0aW9uOiB1aW50NjQKCWludGMgMCAvLyAwCgkhPQoJZHVwCglieiAqc2tpcF9hbmQxNgoJY2FsbHN1YiBpc0V4cGlyZWQKCSYmCgoqc2tpcF9hbmQxNjoKCWJ6ICppZjU5X2VuZAoKCS8vICppZjU5X2NvbnNlcXVlbnQKCS8vICppZjYwX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA1MgoJLy8gdGhpcy50eG4uc2VuZGVyICE9PSBvcmlnT3duZXIKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyA0IC8vIG9yaWdPd25lcjogYWRkcmVzcwoJIT0KCWJ6ICppZjYwX2VuZAoKCS8vICppZjYwX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwNTMKCS8vIGFzc2VydCh0aGlzLmFwcC5hZGRyZXNzLnRvdGFsQm94ZXMgPT09IDAsICJjYW4ndCBjbGFpbSBleHBpcmVkIG5mZCB1bmxlc3MgYWxsIG1ldGFkYXRhIGlzIGNsZWFyZWQiKQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwoJcG9wCglpbnRjIDAgLy8gMAoJPT0KCgkvLyBjYW4ndCBjbGFpbSBleHBpcmVkIG5mZCB1bmxlc3MgYWxsIG1ldGFkYXRhIGlzIGNsZWFyZWQKCWFzc2VydAoKKmlmNjBfZW5kOgoKKmlmNTlfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA1OQoJLy8gYXNzZXJ0KHBheW1lbnQuYW1vdW50ID49IHJlcVByaWNlLCAnbXVzdCBwYXkgYXQgbGVhc3QgbWluaW11bSByZW5ld2FsIHByaWNlJykKCWZyYW1lX2RpZyAtMSAvLyBwYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfZGlnIDIgLy8gcmVxUHJpY2U6IHVpbnQ2NAoJPj0KCgkvLyBtdXN0IHBheSBhdCBsZWFzdCBtaW5pbXVtIHJlbmV3YWwgcHJpY2UKCWFzc2VydAoKCS8vICppZjYxX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA2MAoJLy8gY3VyRXhwaXJhdGlvbiA9PT0gMAoJZnJhbWVfZGlnIDUgLy8gY3VyRXhwaXJhdGlvbjogdWludDY0CglpbnRjIDAgLy8gMAoJPT0KCWJ6ICppZjYxX2Vsc2VpZjFfY29uZGl0aW9uCgoJLy8gKmlmNjFfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA2MQoJLy8gYXNzZXJ0KHRoaXMudHhuLnNlbmRlciA9PT0gb3JpZ093bmVyKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIDQgLy8gb3JpZ093bmVyOiBhZGRyZXNzCgk9PQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA2MwoJLy8gY3VyRXhwaXJhdGlvbiA9IGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglmcmFtZV9idXJ5IDUgLy8gY3VyRXhwaXJhdGlvbjogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA2NQoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04xX0FHRU5UKS5kZWxldGUoKQoJYnl0ZWMgNSAvLyAiaS5jb21taXNzaW9uMUFnZW50LmEiCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwNjYKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9DT01NSVNTSU9OMSkuZGVsZXRlKCkKCWJ5dGVjIDcgLy8gImkuY29tbWlzc2lvbjEiCglhcHBfZ2xvYmFsX2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwNjcKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9DT01NSVNTSU9OMl9BR0VOVCkuZGVsZXRlKCkKCWJ5dGVjIDE2IC8vICJpLmNvbW1pc3Npb24yQWdlbnQuYSIKCWFwcF9nbG9iYWxfZGVsCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA2OAoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0NPTU1JU1NJT04yKS5kZWxldGUoKQoJYnl0ZWMgMjIgLy8gImkuY29tbWlzc2lvbjIiCglhcHBfZ2xvYmFsX2RlbAoJYiAqaWY2MV9lbmQKCippZjYxX2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA2OQoJLy8gdGhpcy5pc0V4cGlyZWQoKQoJY2FsbHN1YiBpc0V4cGlyZWQKCWJ6ICppZjYxX2VuZAoKCS8vICppZjYxX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA3MQoJLy8gY3VyRXhwaXJhdGlvbiA9IGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglmcmFtZV9idXJ5IDUgLy8gY3VyRXhwaXJhdGlvbjogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA3MwoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX09XTkVSKS52YWx1ZSA9IHJhd0J5dGVzKHBheW1lbnQuc2VuZGVyKQoJYnl0ZWMgMSAvLyAiaS5vd25lci5hIgoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwNzQKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9TRUxMRVIpLnZhbHVlID0gcmF3Qnl0ZXMocGF5bWVudC5zZW5kZXIpCglieXRlYyAxMCAvLyAiaS5zZWxsZXIuYSIKCWZyYW1lX2RpZyAtMSAvLyBwYXltZW50OiBQYXlUeG4KCWd0eG5zIFNlbmRlcgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDc1CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfUkVTRVJWRURfT1dORVIpLmRlbGV0ZSgpCglieXRlYyA4IC8vICJpLnJlc2VydmVkT3duZXIuYSIKCWFwcF9nbG9iYWxfZGVsCgoJLy8gKmlmNjJfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDc2CgkvLyB0aGlzLmlzRm9yU2FsZSgpCgljYWxsc3ViIGlzRm9yU2FsZQoJYnogKmlmNjJfZW5kCgoJLy8gKmlmNjJfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA3OAoJLy8gdGhpcy5uZmRfc2FsZUNhbmNlbGxlZC5sb2coeyBhcHBJZDogdGhpcy5hcHAuaWQsIG5hbWU6IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9OQU1FKS52YWx1ZSB9KQoJYnl0ZWMgMzYgLy8gIG5mZF9zYWxlQ2FuY2VsbGVkKHVpbnQ2NCxzdHJpbmcpCglieXRlYyAwIC8vICBpbml0aWFsIGhlYWQKCWJ5dGVjIDAgLy8gIGluaXRpYWwgdGFpbAoJYnl0ZWMgNDEgLy8gIGluaXRpYWwgaGVhZCBvZmZzZXQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGVjIDQgLy8gImkubmFtZSIKCWFwcF9nbG9iYWxfZ2V0CglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJY29uY2F0Cglsb2cKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDc5CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfU0VMTF9BTU9VTlQpLmRlbGV0ZSgpCglieXRlYyA2IC8vICJpLnNlbGxhbXQiCglhcHBfZ2xvYmFsX2RlbAoKKmlmNjJfZW5kOgoKKmlmNjFfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA4MwoJLy8gdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX0VYUElSQVRJT05USU1FKS52YWx1ZSA9IGl0b2IoCgkvLyAgICAgICAgICAgICB0aGlzLmNhbGNFeHBpcmF0aW9uKHJlcVByaWNlLCBwYXltZW50LmFtb3VudCwgY3VyRXhwaXJhdGlvbiwgbWF4RXhwWWVhcnMpLAoJLy8gICAgICAgICApCglieXRlYyAxNyAvLyAiaS5leHBpcmF0aW9uVGltZSIKCWZyYW1lX2RpZyAzIC8vIG1heEV4cFllYXJzOiB1aW50NjQKCWZyYW1lX2RpZyA1IC8vIGN1ckV4cGlyYXRpb246IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9kaWcgMiAvLyByZXFQcmljZTogdWludDY0CgljYWxsc3ViIGNhbGNFeHBpcmF0aW9uCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwODYKCS8vIHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9USU1FQ0hBTkdFRCkudmFsdWUgPSBpdG9iKGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wKQoJYnl0ZWMgMiAvLyAiaS50aW1lQ2hhbmdlZCIKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWl0b2IKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTA4OQoJLy8gcmVuZXdBbXQgPSBwYXltZW50LmFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9idXJ5IDYgLy8gcmVuZXdBbXQ6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwOTAKCS8vIGdyb3NzVG9UcmVhc3VyeSA9IHJlbmV3QW10CglmcmFtZV9kaWcgNiAvLyByZW5ld0FtdDogdWludDY0CglmcmFtZV9idXJ5IDcgLy8gZ3Jvc3NUb1RyZWFzdXJ5OiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDkyCgkvLyBzZWdtZW50Q29tbWlzc2lvbkFkZHJlc3MgPSBnbG9iYWxzLnplcm9BZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCWZyYW1lX2J1cnkgOSAvLyBzZWdtZW50Q29tbWlzc2lvbkFkZHJlc3M6IGFkZHJlc3MKCgkvLyAqaWY2M19jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEwOTcKCS8vIHRoaXMuc2FmZUdsb2JhbEludEdldChORkRfS0VZX1BBUkVOVF9JRCkgIT09IDAKCWJ5dGVjIDI3IC8vICJpLnBhcmVudEFwcElEIgoJY2FsbHN1YiBzYWZlR2xvYmFsSW50R2V0CglpbnRjIDAgLy8gMAoJIT0KCWJ6ICppZjYzX2Vsc2UKCgkvLyAqaWY2M19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDk4CgkvLyBwYXJlbnRBcHBJZCA9IEFwcElELmZyb21VaW50NjQodGhpcy5zYWZlR2xvYmFsSW50R2V0KE5GRF9LRVlfUEFSRU5UX0lEKSkKCWJ5dGVjIDI3IC8vICJpLnBhcmVudEFwcElEIgoJY2FsbHN1YiBzYWZlR2xvYmFsSW50R2V0CglmcmFtZV9idXJ5IDEwIC8vIHBhcmVudEFwcElkOiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMDk5CgkvLyBzZWdtZW50Q29tbWlzc2lvbkFkZHJlc3MgPSBBZGRyZXNzLmZyb21CeXRlcyhwYXJlbnRBcHBJZC5nbG9iYWxTdGF0ZShORkRfS0VZX09XTkVSKSBhcyBBZGRyZXNzKQoJZnJhbWVfZGlnIDEwIC8vIHBhcmVudEFwcElkOiB1aW50NjQKCWJ5dGVjIDEgLy8gImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBwYXJlbnRBcHBJZC5nbG9iYWxTdGF0ZShORkRfS0VZX09XTkVSKQoJYXNzZXJ0CglmcmFtZV9idXJ5IDkgLy8gc2VnbWVudENvbW1pc3Npb25BZGRyZXNzOiBhZGRyZXNzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTEwNAoJLy8gZXh0cmFEYXlzID0gKDM2NSAqIHJlbmV3QW10KSAvIHJlcVByaWNlCglpbnRjIDggLy8gMzY1CglmcmFtZV9kaWcgNiAvLyByZW5ld0FtdDogdWludDY0CgkqCglmcmFtZV9kaWcgMiAvLyByZXFQcmljZTogdWludDY0CgkvCglmcmFtZV9idXJ5IDExIC8vIGV4dHJhRGF5czogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTEwNgoJLy8gZ3Jvc3NUb1RyZWFzdXJ5ID0gKGV4dHJhRGF5cyAqIGNvbnN0cmFpbnREYXRhLnNlZ21lbnRQbGF0Zm9ybUNvc3RJbkFsZ28pIC8gMzY1CglmcmFtZV9kaWcgMTEgLy8gZXh0cmFEYXlzOiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIGNvbnN0cmFpbnREYXRhOiAodWludDY0LHVpbnQ2NCx1aW50NjQsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgOCA4CglidG9pCgkqCglpbnRjIDggLy8gMzY1CgkvCglmcmFtZV9idXJ5IDcgLy8gZ3Jvc3NUb1RyZWFzdXJ5OiB1aW50NjQKCgkvLyAqaWY2NF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExMDcKCS8vIGdyb3NzVG9UcmVhc3VyeSA8IGNvbnN0cmFpbnREYXRhLnNlZ21lbnRQbGF0Zm9ybUNvc3RJbkFsZ28KCWZyYW1lX2RpZyA3IC8vIGdyb3NzVG9UcmVhc3VyeTogdWludDY0CglmcmFtZV9kaWcgMSAvLyBjb25zdHJhaW50RGF0YTogKHVpbnQ2NCx1aW50NjQsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDggOAoJYnRvaQoJPAoJYnogKmlmNjRfZW5kCgoJLy8gKmlmNjRfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTEwOAoJLy8gZ3Jvc3NUb1RyZWFzdXJ5ID0gY29uc3RyYWludERhdGEuc2VnbWVudFBsYXRmb3JtQ29zdEluQWxnbwoJZnJhbWVfZGlnIDEgLy8gY29uc3RyYWludERhdGE6ICh1aW50NjQsdWludDY0LHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWZyYW1lX2J1cnkgNyAvLyBncm9zc1RvVHJlYXN1cnk6IHVpbnQ2NAoKKmlmNjRfZW5kOgoJLy8gKmlmNjVfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTEwCgkvLyBncm9zc1RvVHJlYXN1cnkgPj0gcmVuZXdBbXQKCWZyYW1lX2RpZyA3IC8vIGdyb3NzVG9UcmVhc3VyeTogdWludDY0CglmcmFtZV9kaWcgNiAvLyByZW5ld0FtdDogdWludDY0Cgk+PQoJYnogKmlmNjVfZW5kCgoJLy8gKmlmNjVfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTExMQoJLy8gZ3Jvc3NUb1RyZWFzdXJ5ID0gcmVuZXdBbXQKCWZyYW1lX2RpZyA2IC8vIHJlbmV3QW10OiB1aW50NjQKCWZyYW1lX2J1cnkgNyAvLyBncm9zc1RvVHJlYXN1cnk6IHVpbnQ2NAoKKmlmNjVfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTExNAoJLy8gc2VnbWVudENvbW1pc3Npb25Ub1BheSA9IHJlbmV3QW10IC0gZ3Jvc3NUb1RyZWFzdXJ5CglmcmFtZV9kaWcgNiAvLyByZW5ld0FtdDogdWludDY0CglmcmFtZV9kaWcgNyAvLyBncm9zc1RvVHJlYXN1cnk6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSA4IC8vIHNlZ21lbnRDb21taXNzaW9uVG9QYXk6IHVpbnQ2NAoJYiAqaWY2M19lbmQKCippZjYzX2Vsc2U6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTE3CgkvLyBzZWdtZW50Q29tbWlzc2lvblRvUGF5ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgOCAvLyBzZWdtZW50Q29tbWlzc2lvblRvUGF5OiB1aW50NjQKCippZjYzX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExMTkKCS8vIHRoaXMuZG9QYXlvdXRzKAoJLy8gICAgICAgICAgICAgZ3Jvc3NUb1RyZWFzdXJ5LAoJLy8gICAgICAgICAgICAgY29uc3RyYWludERhdGEudHJlYXN1cnlBZGRyZXNzLAoJLy8gICAgICAgICAgICAgMCwKCS8vICAgICAgICAgICAgIHNlZ21lbnRDb21taXNzaW9uVG9QYXksCgkvLyAgICAgICAgICAgICBzZWdtZW50Q29tbWlzc2lvbkFkZHJlc3MsCgkvLyAgICAgICAgICkKCWZyYW1lX2RpZyA5IC8vIHNlZ21lbnRDb21taXNzaW9uQWRkcmVzczogYWRkcmVzcwoJZnJhbWVfZGlnIDggLy8gc2VnbWVudENvbW1pc3Npb25Ub1BheTogdWludDY0CglpbnRjIDAgLy8gMAoJZnJhbWVfZGlnIDEgLy8gY29uc3RyYWludERhdGE6ICh1aW50NjQsdWludDY0LHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAyNCAzMgoJZnJhbWVfZGlnIDcgLy8gZ3Jvc3NUb1RyZWFzdXJ5OiB1aW50NjQKCWNhbGxzdWIgZG9QYXlvdXRzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTEyNgoJLy8gdGhpcy5uZmRfcmVuZXdlZC5sb2coewoJLy8gICAgICAgICAgICAgYXBwSWQ6IHRoaXMuYXBwLmlkLAoJLy8gICAgICAgICAgICAgbmFtZTogdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlLAoJLy8gICAgICAgICAgICAgb3JpZ093bmVyOiBvcmlnT3duZXIsCgkvLyAgICAgICAgICAgICBidXllcjogcGF5bWVudC5zZW5kZXIsCgkvLyAgICAgICAgICAgICBwcmljZU9uZVllYXI6IHJlcVByaWNlLAoJLy8gICAgICAgICAgICAgcmVuZXdBbW91bnQ6IHBheW1lbnQuYW1vdW50LAoJLy8gICAgICAgICAgICAgZXhwVGltZTogYnRvaSh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfRVhQSVJBVElPTlRJTUUpLnZhbHVlKSwKCS8vICAgICAgICAgfSkKCXB1c2hieXRlcyAweDE0YTc2YTNlIC8vIG5mZF9yZW5ld2VkKHVpbnQ2NCxzdHJpbmcsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYnl0ZWMgMCAvLyAgaW5pdGlhbCBoZWFkCglieXRlYyAwIC8vICBpbml0aWFsIHRhaWwKCXB1c2hieXRlcyAweDAwNjIgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZWMgNCAvLyAiaS5uYW1lIgoJYXBwX2dsb2JhbF9nZXQKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIDQgLy8gb3JpZ093bmVyOiBhZGRyZXNzCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBTZW5kZXIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAyIC8vIHJlcVByaWNlOiB1aW50NjQKCWl0b2IKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMSAvLyBwYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJaXRvYgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZWMgMTcgLy8gImkuZXhwaXJhdGlvblRpbWUiCglhcHBfZ2xvYmFsX2dldAoJYnRvaQoJaXRvYgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCgljb25jYXQKCWxvZwoJcmV0c3ViCgovLyBzZXRQcmltYXJ5QWRkcmVzcyhzdHJpbmcsYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfc2V0UHJpbWFyeUFkZHJlc3M6CgkvLyBhZGRyZXNzOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50YyAzIC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFkZHJlc3MpIGZvciBzZXRQcmltYXJ5QWRkcmVzcyBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZmllbGROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBzZXRQcmltYXJ5QWRkcmVzcyhzdHJpbmcsYWRkcmVzcyl2b2lkCgljYWxsc3ViIHNldFByaW1hcnlBZGRyZXNzCglpbnRjIDEgLy8gMQoJcmV0dXJuCgovLyBzZXRQcmltYXJ5QWRkcmVzcyhmaWVsZE5hbWU6IHN0cmluZywgYWRkcmVzczogQWRkcmVzcyk6IHZvaWQKc2V0UHJpbWFyeUFkZHJlc3M6Cglwcm90byAyIDAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTM5CgkvLyB0aGlzLmFzc2VydE93bmVyQ2FsbGVkTm90Rm9yU2FsZU9yRXhwaXJlZCgpCgljYWxsc3ViIGFzc2VydE93bmVyQ2FsbGVkTm90Rm9yU2FsZU9yRXhwaXJlZAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExNDEKCS8vIGFzc2VydChmaWVsZE5hbWUgPT09IE5GRF9GSUVMRF9DQV9WRVJJRklFRF9TRVQpCglmcmFtZV9kaWcgLTEgLy8gZmllbGROYW1lOiBzdHJpbmcKCXB1c2hieXRlcyAidi5jYUFsZ28uMC5hcyIKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTQyCgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExNDMKCS8vIHRoaXMuZmluZEFkZHJBbmRTZXRGaXJzdChmaWVsZE5hbWUsIGFkZHJlc3MpCglmcmFtZV9kaWcgLTIgLy8gYWRkcmVzczogQWRkcmVzcwoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkTmFtZTogc3RyaW5nCgljYWxsc3ViIGZpbmRBZGRyQW5kU2V0Rmlyc3QKCXJldHN1YgoKLy8gcmVnaXN0cnlBZGRpbmdWZXJpZmllZEFkZHJlc3Moc3RyaW5nLHN0cmluZylib29sCiphYmlfcm91dGVfcmVnaXN0cnlBZGRpbmdWZXJpZmllZEFkZHJlc3M6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGVjIDExIC8vIDB4MTUxZjdjNzUKCgkvLyBmaWVsZFNldE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBmaWVsZEJlaW5nVmVyaWZpZWQ6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHJlZ2lzdHJ5QWRkaW5nVmVyaWZpZWRBZGRyZXNzKHN0cmluZyxzdHJpbmcpYm9vbAoJY2FsbHN1YiByZWdpc3RyeUFkZGluZ1ZlcmlmaWVkQWRkcmVzcwoJYnl0ZWMgMjkgLy8gMHgwMAoJaW50YyAwIC8vIDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJaW50YyAxIC8vIDEKCXJldHVybgoKLy8gcmVnaXN0cnlBZGRpbmdWZXJpZmllZEFkZHJlc3MoZmllbGRCZWluZ1ZlcmlmaWVkOiBzdHJpbmcsIGZpZWxkU2V0TmFtZTogc3RyaW5nKTogYm9vbGVhbgovLwovLyBBcHByb3ZlZCBjYWxsIGZyb20gcmVnaXN0cnkgaW5zdHJ1Y3RpbmcgdXMgdG8gbW92ZSB0aGUgc3BlY2lmaWVkIHUuY2F2Lnh4IGZpZWxkIGFuZCBhZGQgdG8gdGhlIHNwZWNpZmllZAovLyB2ZXJpZmllZCBmaWVsZC4KLy8KLy8gQHBhcmFtIGZpZWxkQmVpbmdWZXJpZmllZCAtIHt1c2VyLWRlZmluZWQgZmllbGQgdG8gJ3ZlcmlmeScgLSBieSBhZGRpbmcgdG8gc3BlY2lmaWVkIHZlcmlmaWVkIHNldAovLyBpZTogdS5jYXYuYWxnby5hIC0gdXNlci1kZWZpbmVkIHByZS12ZXJpZnl9IC0gTVVTVCBTVEFSVCB3aXRoIHUuY2F2LiAoISkKLy8gZ2V0cyAnYWRkZWQnIHRvICdzZXQnIGluIG5leHQgYXJnIC0gbXVzdCBiZSBmaXhlZC1zaXplZCBieXRlcwovLyBAcGFyYW0gZmllbGRTZXROYW1lIC0ge2ZpZWxkIHNldCBuYW1lIC0gaWU6IHYuY2FBbGdvLjAuYXMsIHYuY2FFdGguMC5hc30gKG11c3QgQkUgdi5jYVsuLi5dLmFzKQovLyBAcmV0dXJucyB0cnVlIGlmIGFkZGVkIG9yIGFscmVhZHkgcHJlc2VudCwgZmFsc2Ugb3RoZXJ3aXNlCnJlZ2lzdHJ5QWRkaW5nVmVyaWZpZWRBZGRyZXNzOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTU3CgkvLyBhc3NlcnQoZ2xvYmFscy5jYWxsZXJBcHBsaWNhdGlvbklEID09PSBBcHBJRC5mcm9tVWludDY0KHRoaXMucmVnaXN0cnlBcHBJZCksICdjYWxsZXIgbXVzdCBiZSBORkQgcmVnaXN0cnkhJykKCWdsb2JhbCBDYWxsZXJBcHBsaWNhdGlvbklECglpbnRjIDQgLy8gVE1QTF9yZWdpc3RyeUFwcElkCgk9PQoKCS8vIGNhbGxlciBtdXN0IGJlIE5GRCByZWdpc3RyeSEKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExNTgKCS8vIHRoaXMubm90Rm9yU2FsZU9yRXhwaXJlZCgpCgljYWxsc3ViIG5vdEZvclNhbGVPckV4cGlyZWQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTU5CgkvLyBhc3NlcnQoZXh0cmFjdDMoZmllbGRCZWluZ1ZlcmlmaWVkLCAwLCA2KSA9PT0gJ3UuY2F2LicsICdmaWVsZCBiZWluZyB2ZXJpZmllZCBNVVNUIFNUQVJUIHdpdGggdS5jYXYnKQoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkQmVpbmdWZXJpZmllZDogc3RyaW5nCglleHRyYWN0IDAgNgoJcHVzaGJ5dGVzIDB4NzUyZTYzNjE3NjJlIC8vICJ1LmNhdi4iCgk9PQoKCS8vIGZpZWxkIGJlaW5nIHZlcmlmaWVkIE1VU1QgU1RBUlQgd2l0aCB1LmNhdgoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTE2MAoJLy8gYXNzZXJ0KGV4dHJhY3QzKGZpZWxkU2V0TmFtZSwgMCwgNCkgPT09ICd2LmNhJywgJ2Rlc3RpbmF0aW9uIGZpZWxkIE1VU1QgU1RBUlQgd2l0aCB2LmNhWy4uLi5dJykKCWZyYW1lX2RpZyAtMiAvLyBmaWVsZFNldE5hbWU6IHN0cmluZwoJZXh0cmFjdCAwIDQKCWJ5dGVjIDM4IC8vICAidi5jYSIKCT09CgoJLy8gZGVzdGluYXRpb24gZmllbGQgTVVTVCBTVEFSVCB3aXRoIHYuY2FbLi4uLl0KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExNjEKCS8vIGFzc2VydChleHRyYWN0MyhmaWVsZFNldE5hbWUsIGxlbihmaWVsZFNldE5hbWUpIC0gMywgMykgPT09ICcuYXMnLCAnZGVzdGluYXRpb24gZmllbGQgbXVzdCBlbmQgRU5EIHdpdGggLmFzJykKCWZyYW1lX2RpZyAtMiAvLyBmaWVsZFNldE5hbWU6IHN0cmluZwoJZnJhbWVfZGlnIC0yIC8vIGZpZWxkU2V0TmFtZTogc3RyaW5nCglsZW4KCWludGMgNiAvLyAzCgktCglpbnRjIDYgLy8gMwoJZXh0cmFjdDMKCWJ5dGVjIDM5IC8vICAiLmFzIgoJPT0KCgkvLyBkZXN0aW5hdGlvbiBmaWVsZCBtdXN0IGVuZCBFTkQgd2l0aCAuYXMKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExNjIKCS8vIGFzc2VydCgKCS8vICAgICAgICAgICAgIHRoaXMuYm94ZXMoZmllbGRCZWluZ1ZlcmlmaWVkKS5leGlzdHMsCgkvLyAgICAgICAgICAgICAncmVmZXJlbmNlZCBmaWVsZCB0byBhZGQgYXMgdmVyaWZpZWQgYWRkcmVzcyBtdXN0IGhhdmUgdmFsdWUgaW4gYm94IHN0b3JhZ2UnLAoJLy8gICAgICAgICApCglmcmFtZV9kaWcgLTEgLy8gZmllbGRCZWluZ1ZlcmlmaWVkOiBzdHJpbmcKCWJveF9sZW4KCXN3YXAKCXBvcAoKCS8vIHJlZmVyZW5jZWQgZmllbGQgdG8gYWRkIGFzIHZlcmlmaWVkIGFkZHJlc3MgbXVzdCBoYXZlIHZhbHVlIGluIGJveCBzdG9yYWdlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTY2CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExNjgKCS8vIGZpZWxkVmFsdWUgPSB0aGlzLmJveGVzKGZpZWxkQmVpbmdWZXJpZmllZCkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEJlaW5nVmVyaWZpZWQ6IHN0cmluZwoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hlcyhmaWVsZEJlaW5nVmVyaWZpZWQpLnZhbHVlCglhc3NlcnQKCWZyYW1lX2J1cnkgMCAvLyBmaWVsZFZhbHVlOiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTY5CgkvLyB0aGlzLmJveGVzKGZpZWxkQmVpbmdWZXJpZmllZCkuZGVsZXRlKCkKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEJlaW5nVmVyaWZpZWQ6IHN0cmluZwoJYm94X2RlbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExNzEKCS8vIHRoaXMubmZkX2FkZHJlc3NMaW5rZWQubG9nKHsKCS8vICAgICAgICAgICAgIGFwcElkOiB0aGlzLmFwcC5pZCwKCS8vICAgICAgICAgICAgIG5hbWU6IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9OQU1FKS52YWx1ZSwKCS8vICAgICAgICAgICAgIGFkZHJlc3M6IEFkZHJlc3MuZnJvbUJ5dGVzKGZpZWxkVmFsdWUpLAoJLy8gICAgICAgICB9KQoJcHVzaGJ5dGVzIDB4Y2Y5ZDFlMjQgLy8gbmZkX2FkZHJlc3NMaW5rZWQodWludDY0LHN0cmluZyxhZGRyZXNzKQoJYnl0ZWMgMCAvLyAgaW5pdGlhbCBoZWFkCglieXRlYyAwIC8vICBpbml0aWFsIHRhaWwKCWJ5dGVjIDQyIC8vICBpbml0aWFsIGhlYWQgb2Zmc2V0Cgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlYyA0IC8vICJpLm5hbWUiCglhcHBfZ2xvYmFsX2dldAoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgMCAvLyBmaWVsZFZhbHVlOiBieXRlW10KCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJY29uY2F0Cglsb2cKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTc3CgkvLyByZXR1cm4gdGhpcy5hZGRCeXRlc1RvU2V0KGZpZWxkU2V0TmFtZSwgZmllbGRWYWx1ZSkKCWZyYW1lX2RpZyAwIC8vIGZpZWxkVmFsdWU6IGJ5dGVbXQoJZnJhbWVfZGlnIC0yIC8vIGZpZWxkU2V0TmFtZTogc3RyaW5nCgljYWxsc3ViIGFkZEJ5dGVzVG9TZXQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gcmVnaXN0cnlSZW1vdmluZ1ZlcmlmaWVkQWRkcmVzcyhzdHJpbmcsYWRkcmVzcyxhZGRyZXNzKWJvb2wKKmFiaV9yb3V0ZV9yZWdpc3RyeVJlbW92aW5nVmVyaWZpZWRBZGRyZXNzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlYyAxMSAvLyAweDE1MWY3Yzc1CgoJLy8gbWJyUmVmdW5kRGVzdDogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZHVwCglsZW4KCWludGMgMyAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChtYnJSZWZ1bmREZXN0KSBmb3IgcmVnaXN0cnlSZW1vdmluZ1ZlcmlmaWVkQWRkcmVzcyBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gYWRkcmVzczogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludGMgMyAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhZGRyZXNzKSBmb3IgcmVnaXN0cnlSZW1vdmluZ1ZlcmlmaWVkQWRkcmVzcyBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZmllbGRCZWluZ0NoYW5nZWQ6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHJlZ2lzdHJ5UmVtb3ZpbmdWZXJpZmllZEFkZHJlc3Moc3RyaW5nLGFkZHJlc3MsYWRkcmVzcylib29sCgljYWxsc3ViIHJlZ2lzdHJ5UmVtb3ZpbmdWZXJpZmllZEFkZHJlc3MKCWJ5dGVjIDI5IC8vIDB4MDAKCWludGMgMCAvLyAwCgl1bmNvdmVyIDIKCXNldGJpdAoJY29uY2F0Cglsb2cKCWludGMgMSAvLyAxCglyZXR1cm4KCi8vIHJlZ2lzdHJ5UmVtb3ZpbmdWZXJpZmllZEFkZHJlc3MoZmllbGRCZWluZ0NoYW5nZWQ6IHN0cmluZywgYWRkcmVzczogQWRkcmVzcywgbWJyUmVmdW5kRGVzdDogQWRkcmVzcyk6IGJvb2xlYW4KLy8KLy8gQXBwcm92ZWQgY2FsbCBmcm9tIHJlZ2lzdHJ5IGluc3RydWN0aW5nIHVzIHRvIFJFTU9WRSBhbiBhZGRyZXNzIGZyb20gdGhlIHNwZWNpZmllZCB2ZXJpZmllZCBhZGRyZXNzIHNldAovLwovLyBAcGFyYW0ge3N0cmluZ30gZmllbGRCZWluZ0NoYW5nZWQgLSBUaGUgZmllbGQgYmVpbmcgY2hhbmdlZCBpbiB0aGUgYWRkcmVzcyByZWdpc3RyeS4KLy8gQHBhcmFtIHtBZGRyZXNzfSBhZGRyZXNzIC0gVGhlIGFkZHJlc3MgdG8gYmUgcmVtb3ZlZCBmcm9tIHRoZSBmaWVsZC4KLy8gQHBhcmFtIHtBZGRyZXNzfSBtYnJSZWZ1bmREZXN0IC0gdGhlIGFkZHJlc3MgdG8gc2VuZCByZWNsYWltZWQgTUJSIChpZiBhbnkpCi8vIEByZXR1cm4ge2Jvb2xlYW59IC0gdHJ1ZSBpZiB2YWxpZCByZW1vdmVkCnJlZ2lzdHJ5UmVtb3ZpbmdWZXJpZmllZEFkZHJlc3M6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTE4OQoJLy8gYXNzZXJ0KGdsb2JhbHMuY2FsbGVyQXBwbGljYXRpb25JRCA9PT0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnJlZ2lzdHJ5QXBwSWQpLCAnY2FsbGVyIG11c3QgYmUgTkZEIHJlZ2lzdHJ5IScpCglnbG9iYWwgQ2FsbGVyQXBwbGljYXRpb25JRAoJaW50YyA0IC8vIFRNUExfcmVnaXN0cnlBcHBJZAoJPT0KCgkvLyBjYWxsZXIgbXVzdCBiZSBORkQgcmVnaXN0cnkhCglhc3NlcnQKCgkvLyAqaWY2Nl9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExOTEKCS8vICF0aGlzLmlzRXhwaXJlZCgpCgljYWxsc3ViIGlzRXhwaXJlZAoJIQoJYnogKmlmNjZfZW5kCgoJLy8gKmlmNjZfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTE5MgoJLy8gYXNzZXJ0KCF0aGlzLmlzRm9yU2FsZSgpLCAiY2FuJ3QgYmUgZm9yIHNhbGUiKQoJY2FsbHN1YiBpc0ZvclNhbGUKCSEKCgkvLyBjYW4ndCBiZSBmb3Igc2FsZQoJYXNzZXJ0CgoqaWY2Nl9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTk0CgkvLyBhc3NlcnQoZXh0cmFjdDMoZmllbGRCZWluZ0NoYW5nZWQsIDAsIDQpID09PSAndi5jYScsICd2ZXJpZmllZCBmaWVsZCBNVVNUIFNUQVJUIHdpdGggdi5jYVsuLi4uXScpCglmcmFtZV9kaWcgLTEgLy8gZmllbGRCZWluZ0NoYW5nZWQ6IHN0cmluZwoJZXh0cmFjdCAwIDQKCWJ5dGVjIDM4IC8vICAidi5jYSIKCT09CgoJLy8gdmVyaWZpZWQgZmllbGQgTVVTVCBTVEFSVCB3aXRoIHYuY2FbLi4uLl0KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjExOTUKCS8vIGFzc2VydCgKCS8vICAgICAgICAgICAgIGV4dHJhY3QzKGZpZWxkQmVpbmdDaGFuZ2VkLCBsZW4oZmllbGRCZWluZ0NoYW5nZWQpIC0gMywgMykgPT09ICcuYXMnLAoJLy8gICAgICAgICAgICAgJ3ZlcmlmaWVkIGZpZWxkIG11c3QgZW5kIEVORCB3aXRoIC5hcycsCgkvLyAgICAgICAgICkKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEJlaW5nQ2hhbmdlZDogc3RyaW5nCglmcmFtZV9kaWcgLTEgLy8gZmllbGRCZWluZ0NoYW5nZWQ6IHN0cmluZwoJbGVuCglpbnRjIDYgLy8gMwoJLQoJaW50YyA2IC8vIDMKCWV4dHJhY3QzCglieXRlYyAzOSAvLyAgIi5hcyIKCT09CgoJLy8gdmVyaWZpZWQgZmllbGQgbXVzdCBlbmQgRU5EIHdpdGggLmFzCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMTk5CgkvLyB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfVElNRUNIQU5HRUQpLnZhbHVlID0gaXRvYihnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCkKCWJ5dGVjIDIgLy8gImkudGltZUNoYW5nZWQiCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglpdG9iCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyMDEKCS8vIGV4aXN0aW5nU2l6ZSA9IHRoaXMuYm94ZXMoZmllbGRCZWluZ0NoYW5nZWQpLnNpemUKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEJlaW5nQ2hhbmdlZDogc3RyaW5nCglib3hfbGVuCgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJveGVzKGZpZWxkQmVpbmdDaGFuZ2VkKS5zaXplCglhc3NlcnQKCWZyYW1lX2J1cnkgMCAvLyBleGlzdGluZ1NpemU6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyMDIKCS8vIHJlbW92ZWQgPSB0aGlzLnJlbW92ZUFkZHJGcm9tU2V0KGZpZWxkQmVpbmdDaGFuZ2VkLCBhZGRyZXNzKQoJZnJhbWVfZGlnIC0yIC8vIGFkZHJlc3M6IEFkZHJlc3MKCWZyYW1lX2RpZyAtMSAvLyBmaWVsZEJlaW5nQ2hhbmdlZDogc3RyaW5nCgljYWxsc3ViIHJlbW92ZUFkZHJGcm9tU2V0CglmcmFtZV9idXJ5IDEgLy8gcmVtb3ZlZDogYm9vbAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyMDQKCS8vIHRoaXMubmZkX2FkZHJlc3NVbmxpbmtlZC5sb2coewoJLy8gICAgICAgICAgICAgYXBwSWQ6IHRoaXMuYXBwLmlkLAoJLy8gICAgICAgICAgICAgbmFtZTogdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlLAoJLy8gICAgICAgICAgICAgYWRkcmVzczogYWRkcmVzcywKCS8vICAgICAgICAgfSkKCXB1c2hieXRlcyAweGE0ZDNiOWE3IC8vIG5mZF9hZGRyZXNzVW5saW5rZWQodWludDY0LHN0cmluZyxhZGRyZXNzKQoJYnl0ZWMgMCAvLyAgaW5pdGlhbCBoZWFkCglieXRlYyAwIC8vICBpbml0aWFsIHRhaWwKCWJ5dGVjIDQyIC8vICBpbml0aWFsIGhlYWQgb2Zmc2V0Cgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlYyA0IC8vICJpLm5hbWUiCglhcHBfZ2xvYmFsX2dldAoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTIgLy8gYWRkcmVzczogQWRkcmVzcwoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCgljb25jYXQKCWxvZwoKCS8vICppZjY3X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTIxMAoJLy8gIXRoaXMuYm94ZXMoZmllbGRCZWluZ0NoYW5nZWQpLmV4aXN0cwoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkQmVpbmdDaGFuZ2VkOiBzdHJpbmcKCWJveF9sZW4KCXN3YXAKCXBvcAoJIQoJYnogKmlmNjdfZW5kCgoJLy8gKmlmNjdfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTIxMgoJLy8gc2VuZFBheW1lbnQoewoJLy8gICAgICAgICAgICAgICAgIGFtb3VudDogU0NCT1hfUEVSQk9YICsgU0NCT1hfUEVSQllURSAqIChmaWVsZEJlaW5nQ2hhbmdlZC5sZW5ndGggKyBleGlzdGluZ1NpemUpLAoJLy8gICAgICAgICAgICAgICAgIHJlY2VpdmVyOiBtYnJSZWZ1bmREZXN0LAoJLy8gICAgICAgICAgICAgICAgIG5vdGU6ICdib3hSZWZ1bmQnLAoJLy8gICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMSAvLyAgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTIxMwoJLy8gYW1vdW50OiBTQ0JPWF9QRVJCT1ggKyBTQ0JPWF9QRVJCWVRFICogKGZpZWxkQmVpbmdDaGFuZ2VkLmxlbmd0aCArIGV4aXN0aW5nU2l6ZSkKCWludGMgMTIgLy8gMjUwMAoJaW50YyA5IC8vIDQwMAoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkQmVpbmdDaGFuZ2VkOiBzdHJpbmcKCWxlbgoJZnJhbWVfZGlnIDAgLy8gZXhpc3RpbmdTaXplOiB1aW50NjQKCSsKCSoKCSsKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTIxNAoJLy8gcmVjZWl2ZXI6IG1iclJlZnVuZERlc3QKCWZyYW1lX2RpZyAtMyAvLyBtYnJSZWZ1bmREZXN0OiBBZGRyZXNzCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTIxNQoJLy8gbm90ZTogJ2JveFJlZnVuZCcKCWJ5dGVjIDMxIC8vICAiYm94UmVmdW5kIgoJaXR4bl9maWVsZCBOb3RlCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAwIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKKmlmNjdfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTIxOQoJLy8gcmV0dXJuIHJlbW92ZWQKCWZyYW1lX2RpZyAxIC8vIHJlbW92ZWQ6IGJvb2wKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGdldFJlbmV3UHJpY2VEYXRhKGNhbGxlcjogQWRkcmVzcyk6IFByaWNlSW5mbwovLwovLyBSZXRyaWV2ZXMgdGhlIHJlbmV3IHByaWNlIGRhdGEgZm9yIGEgZ2l2ZW4gc2VuZGVyIGFkZHJlc3MuCi8vCi8vIEBwYXJhbSBjYWxsZXIgLSBUaGUgYWRkcmVzcyBvZiB0aGUgc2VuZGVyLgovLyBAcmV0dXJucyB7UHJpY2VJbmZvfQpnZXRSZW5ld1ByaWNlRGF0YToKCXByb3RvIDEgMQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyMzAKCS8vIHJldHVybiBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgTkZEUmVnaXN0cnkucHJvdG90eXBlLmdldFByaWNlPih7CgkvLyAgICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMucmVnaXN0cnlBcHBJZCksCgkvLyAgICAgICAgICAgICBtZXRob2RBcmdzOiBbdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlLCBjYWxsZXJdLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyA3IC8vICBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglwdXNoYnl0ZXMgMHhmZmMyMzAzYyAvLyBtZXRob2QgImdldFByaWNlKHN0cmluZyxhZGRyZXNzKSh1aW50NjQsdWludDY0LGJvb2wsYm9vbCxib29sKSIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTIzMQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnJlZ2lzdHJ5QXBwSWQpCglpbnRjIDQgLy8gVE1QTF9yZWdpc3RyeUFwcElkCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjMyCgkvLyBtZXRob2RBcmdzOiBbdGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX05BTUUpLnZhbHVlLCBjYWxsZXJdCglieXRlYyA0IC8vICJpLm5hbWUiCglhcHBfZ2xvYmFsX2dldAoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTEgLy8gY2FsbGVyOiBBZGRyZXNzCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50YyAxIC8vIDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJcmV0c3ViCgovLyB2YXVsdE9wdEluRnJvbUFyZ3MoKTogdm9pZAp2YXVsdE9wdEluRnJvbUFyZ3M6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI0MwoJLy8gdGhpcy5ub3RGb3JTYWxlT3JFeHBpcmVkKCkKCWNhbGxzdWIgbm90Rm9yU2FsZU9yRXhwaXJlZAoKCS8vICppZjY4X2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI0NwoJLy8gdGhpcy5pc1ZhdWx0QXV0b09wdEluTG9ja2VkKCkKCWNhbGxzdWIgaXNWYXVsdEF1dG9PcHRJbkxvY2tlZAoJYnogKmlmNjhfZW5kCgoJLy8gKmlmNjhfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI0OAoJLy8gYXNzZXJ0KHJhd0J5dGVzKHRoaXMudHhuLnNlbmRlcikgPT09IHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9PV05FUikudmFsdWUsICdzZW5kZXIgbXVzdCBiZSBvd25lcicpCgl0eG4gU2VuZGVyCglieXRlYyAxIC8vICJpLm93bmVyLmEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCgkvLyBzZW5kZXIgbXVzdCBiZSBvd25lcgoJYXNzZXJ0CgoqaWY2OF9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjUxCgkvLyBhc3NlcnQodGhpcy50eG4uZ3JvdXBJbmRleCA+IDAsICdwYXJ0IG9mIG9wdC1pbiBmb3IgbmV3IGFzc2V0LCBtdXN0IGhhdmUgcHJpb3IgdHhuIHBheWluZyBNQlInKQoJdHhuIEdyb3VwSW5kZXgKCWludGMgMCAvLyAwCgk+CgoJLy8gcGFydCBvZiBvcHQtaW4gZm9yIG5ldyBhc3NldCwgbXVzdCBoYXZlIHByaW9yIHR4biBwYXlpbmcgTUJSCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjUzCgkvLyB2ZXJpZnlQYXlUeG4odGhpcy50eG5Hcm91cFt0aGlzLnR4bi5ncm91cEluZGV4IC0gMV0sIHsKCS8vICAgICAgICAgICAgIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgICAgICAgYW1vdW50OiAxMDBfMDAwICogKHRoaXMudHhuLm51bUFwcEFyZ3MgLSAxKSwKCS8vICAgICAgICAgfSkKCXR4biBHcm91cEluZGV4CglpbnRjIDEgLy8gMQoJLQoJc3RvcmUgMjQ4IC8vIHZlcmlmeVR4biBpbmRleAoKCS8vIHZlcmlmeSBwYXkKCWxvYWQgMjQ4IC8vIHZlcmlmeVR4biBpbmRleAoJZ3R4bnMgVHlwZUVudW0KCWludGMgMSAvLyAgcGF5Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG5Hcm91cFt0aGlzLnR4bi5ncm91cEluZGV4IC0gMV0iLCJmaWVsZCI6InR5cGVFbnVtIiwiZXhwZWN0ZWQiOiJwYXkifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHJlY2VpdmVyCglsb2FkIDI0OCAvLyB2ZXJpZnlUeG4gaW5kZXgKCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuR3JvdXBbdGhpcy50eG4uZ3JvdXBJbmRleCAtIDFdIiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50Cglsb2FkIDI0OCAvLyB2ZXJpZnlUeG4gaW5kZXgKCWd0eG5zIEFtb3VudAoJaW50YyAxNiAvLyAxMDBfMDAwCgl0eG4gTnVtQXBwQXJncwoJaW50YyAxIC8vIDEKCS0KCSoKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwW3RoaXMudHhuLmdyb3VwSW5kZXggLSAxXSIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiIxMDBfMDAwICogKHRoaXMudHhuLm51bUFwcEFyZ3MgLSAxKSJ9Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjU3CgkvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAxOyBpIDwgdGhpcy50eG4ubnVtQXBwQXJnczsgaSArPSAxKQoJaW50YyAxIC8vIDEKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCipmb3JfODoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyNTcKCS8vIGkgPCB0aGlzLnR4bi5udW1BcHBBcmdzCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCXR4biBOdW1BcHBBcmdzCgk8CglieiAqZm9yXzhfZW5kCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI1OAoJLy8gYXNzZXRJZCA9IEFzc2V0SUQuZnJvbVVpbnQ2NChidG9pKHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbaV0pKQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0Cgl0eG5hcyBBcHBsaWNhdGlvbkFyZ3MKCWJ0b2kKCWZyYW1lX2J1cnkgMSAvLyBhc3NldElkOiB1aW50NjQKCgkvLyAqaWY2OV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyNjAKCS8vICF0aGlzLmFwcC5hZGRyZXNzLmlzT3B0ZWRJblRvQXNzZXQoYXNzZXRJZCkKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgMSAvLyBhc3NldElkOiB1aW50NjQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJc3dhcAoJcG9wCgkhCglieiAqaWY2OV9lbmQKCgkvLyAqaWY2OV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjYxCgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICAgICAgICAgICAgICAgIHhmZXJBc3NldDogYXNzZXRJZCwKCS8vICAgICAgICAgICAgICAgICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgICAgICAgICAgICAgICAgYXNzZXRBbW91bnQ6IDAsCgkvLyAgICAgICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludGMgMTAgLy8gIGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI2MgoJLy8geGZlckFzc2V0OiBhc3NldElkCglmcmFtZV9kaWcgMSAvLyBhc3NldElkOiB1aW50NjQKCWl0eG5fZmllbGQgWGZlckFzc2V0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI2MwoJLy8gYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyNjQKCS8vIGFzc2V0QW1vdW50OiAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBBc3NldEFtb3VudAoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludGMgMCAvLyAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCippZjY5X2VuZDoKCipmb3JfOF9jb250aW51ZToKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyNTcKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzgKCipmb3JfOF9lbmQ6CglyZXRzdWIKCi8vIHNhZmVHbG9iYWxCeXRlR2V0KGtleTogYnl0ZXMpOiBieXRlcwpzYWZlR2xvYmFsQnl0ZUdldDoKCXByb3RvIDEgMQoKCS8vICppZjcwX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI3MQoJLy8gIXRoaXMuZ2xvYmFsU3RhdGUoa2V5KS5leGlzdHMKCXR4bmEgQXBwbGljYXRpb25zIDAKCWZyYW1lX2RpZyAtMSAvLyBrZXk6IGJ5dGVzCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCgkhCglieiAqaWY3MF9lbmQKCgkvLyAqaWY3MF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjcyCgkvLyByZXR1cm4gJycKCWJ5dGVjIDAgLy8gICIiCglyZXRzdWIKCippZjcwX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyNzQKCS8vIHJldHVybiB0aGlzLmdsb2JhbFN0YXRlKGtleSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBrZXk6IGJ5dGVzCglhcHBfZ2xvYmFsX2dldAoJcmV0c3ViCgovLyBzYWZlR2xvYmFsQnl0ZUdldEV4KGFwcElkOiB1aW50NjQsIGtleTogYnl0ZXMpOiBieXRlcwpzYWZlR2xvYmFsQnl0ZUdldEV4OgoJcHJvdG8gMiAxCgoJLy8gKmlmNzFfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjc4CgkvLyAhQXBwSUQuZnJvbVVpbnQ2NChhcHBJZCkuZ2xvYmFsU3RhdGVFeGlzdHMoa2V5KQoJZnJhbWVfZGlnIC0xIC8vIGFwcElkOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBrZXk6IGJ5dGVzCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCgkhCglieiAqaWY3MV9lbmQKCgkvLyAqaWY3MV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMjc5CgkvLyByZXR1cm4gJycKCWJ5dGVjIDAgLy8gICIiCglyZXRzdWIKCippZjcxX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyODEKCS8vIHJldHVybiBBcHBJRC5mcm9tVWludDY0KGFwcElkKS5nbG9iYWxTdGF0ZShrZXkpIGFzIGJ5dGVzCglmcmFtZV9kaWcgLTEgLy8gYXBwSWQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGtleTogYnl0ZXMKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KGFwcElkKS5nbG9iYWxTdGF0ZShrZXkpCglhc3NlcnQKCXJldHN1YgoKLy8gc2FmZUdsb2JhbEludEdldChrZXk6IGJ5dGVzKTogdWludDY0CnNhZmVHbG9iYWxJbnRHZXQ6Cglwcm90byAxIDEKCgkvLyAqaWY3Ml9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyODUKCS8vICF0aGlzLmdsb2JhbFN0YXRlKGtleSkuZXhpc3RzCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglmcmFtZV9kaWcgLTEgLy8ga2V5OiBieXRlcwoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJIQoJYnogKmlmNzJfZW5kCgoJLy8gKmlmNzJfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI4NgoJLy8gcmV0dXJuIDAKCWludGMgMCAvLyAwCglyZXRzdWIKCippZjcyX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEyODgKCS8vIHJldHVybiBidG9pKHRoaXMuZ2xvYmFsU3RhdGUoa2V5KS52YWx1ZSkKCWZyYW1lX2RpZyAtMSAvLyBrZXk6IGJ5dGVzCglhcHBfZ2xvYmFsX2dldAoJYnRvaQoJcmV0c3ViCgovLyBpc0N1cnJlbnRUeG5Db250cmFjdEF1dGhvcml0eSgpOiBib29sZWFuCmlzQ3VycmVudFR4bkNvbnRyYWN0QXV0aG9yaXR5OgoJcHJvdG8gMCAxCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTI5NAoJLy8gcmV0dXJuIHRoaXMudHhuLnNlbmRlci5hc3NldEJhbGFuY2UodGhpcy5hZG1pbkFzYUlkKSA9PT0gMQoJdHhuIFNlbmRlcgoJaW50YyAyMCAvLyBUTVBMX2FkbWluQXNhSWQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglpbnRjIDEgLy8gMQoJPT0KCXJldHN1YgoKLy8gaXNGaWVsZERlbGV0ZUFsbG93ZWQoZmllbGROYW1lOiBieXRlcywgYWRtaW5SaWdodHM6IGJvb2xlYW4pOiBib29sZWFuCmlzRmllbGREZWxldGVBbGxvd2VkOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzEyCgkvLyB0cnVzdFR5cGUgPSBleHRyYWN0MyhmaWVsZE5hbWUsIDAsIDIpCglmcmFtZV9kaWcgLTEgLy8gZmllbGROYW1lOiBieXRlcwoJZXh0cmFjdCAwIDIKCWZyYW1lX2J1cnkgMCAvLyB0cnVzdFR5cGU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzMTQKCS8vIGFzc2VydCghdGhpcy5pc0ludGVybmFsRmllbGQodHJ1c3RUeXBlKSwgJ2ludGVybmFsIGZpZWxkcyBjYW4gbmV2ZXIgYmUgZGVsZXRlZCcpCglmcmFtZV9kaWcgMCAvLyB0cnVzdFR5cGU6IGJ5dGVbXQoJY2FsbHN1YiBpc0ludGVybmFsRmllbGQKCSEKCgkvLyBpbnRlcm5hbCBmaWVsZHMgY2FuIG5ldmVyIGJlIGRlbGV0ZWQKCWFzc2VydAoKCS8vICppZjczX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTMxNwoJLy8gYWRtaW5SaWdodHMKCWZyYW1lX2RpZyAtMiAvLyBhZG1pblJpZ2h0czogYm9vbGVhbgoJYnogKmlmNzNfZW5kCgoJLy8gKmlmNzNfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTMxOAoJLy8gcmV0dXJuIHRydWUKCWludGMgMSAvLyAxCgliICppc0ZpZWxkRGVsZXRlQWxsb3dlZCpyZXR1cm4KCippZjczX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzMjEKCS8vIGFzc2VydChsZW4odGhpcy5zYWZlR2xvYmFsQnl0ZUdldChORkRfS0VZX09XTkVSKSkgPT09IDMyLCAnbXVzdCBiZSBvd25lZCcpCglieXRlYyAxIC8vICJpLm93bmVyLmEiCgljYWxsc3ViIHNhZmVHbG9iYWxCeXRlR2V0CglsZW4KCWludGMgMyAvLyAzMgoJPT0KCgkvLyBtdXN0IGJlIG93bmVkCglhc3NlcnQKCgkvLyAqaWY3NF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzMjMKCS8vICF0aGlzLmlzRXhwaXJlZCgpCgljYWxsc3ViIGlzRXhwaXJlZAoJIQoJYnogKmlmNzRfZW5kCgoJLy8gKmlmNzRfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTMyNAoJLy8gYXNzZXJ0KCF0aGlzLmlzRm9yU2FsZSgpLCAiY2FuJ3QgYmUgZm9yIHNhbGUiKQoJY2FsbHN1YiBpc0ZvclNhbGUKCSEKCgkvLyBjYW4ndCBiZSBmb3Igc2FsZQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTMyNQoJLy8gdGhpcy5tdXN0QmVDYWxsZWRCeU93bmVyKCkKCWNhbGxzdWIgbXVzdEJlQ2FsbGVkQnlPd25lcgoKKmlmNzRfZW5kOgoJLy8gKmlmNzVfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzI4CgkvLyB0aGlzLmlzVXNlckZpZWxkKHRydXN0VHlwZSkKCWZyYW1lX2RpZyAwIC8vIHRydXN0VHlwZTogYnl0ZVtdCgljYWxsc3ViIGlzVXNlckZpZWxkCglieiAqaWY3NV9lbmQKCgkvLyAqaWY3NV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzI5CgkvLyByZXR1cm4gdHJ1ZQoJaW50YyAxIC8vIDEKCWIgKmlzRmllbGREZWxldGVBbGxvd2VkKnJldHVybgoKKmlmNzVfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTMzMgoJLy8gcmV0dXJuIHRoaXMuaXNWZXJpZmllZEZpZWxkKHRydXN0VHlwZSkgJiYgIShleHRyYWN0MyhmaWVsZE5hbWUsIDAsIDgpID09PSAndi5jYUFsZ28nKQoJZnJhbWVfZGlnIDAgLy8gdHJ1c3RUeXBlOiBieXRlW10KCWNhbGxzdWIgaXNWZXJpZmllZEZpZWxkCglkdXAKCWJ6ICpza2lwX2FuZDE3CglmcmFtZV9kaWcgLTEgLy8gZmllbGROYW1lOiBieXRlcwoJZXh0cmFjdCAwIDgKCWJ5dGVjIDMzIC8vICAidi5jYUFsZ28iCgk9PQoJIQoJJiYKCipza2lwX2FuZDE3OgoKKmlzRmllbGREZWxldGVBbGxvd2VkKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBpc0ZpZWxkVXBkYXRlQWxsb3dlZChuYW1lOiBieXRlcywgdmFsdWU6IGJ5dGVzLCBhZG1pblJpZ2h0czogYm9vbGVhbik6IGJvb2xlYW4KaXNGaWVsZFVwZGF0ZUFsbG93ZWQ6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwbiAyCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTM0OAoJLy8gdHJ1c3RUeXBlID0gZXh0cmFjdDMobmFtZSwgMCwgMikKCWZyYW1lX2RpZyAtMSAvLyBuYW1lOiBieXRlcwoJZXh0cmFjdCAwIDIKCWZyYW1lX2J1cnkgMCAvLyB0cnVzdFR5cGU6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzNTAKCS8vIGFzc2VydCghdGhpcy5pc0ludGVybmFsRmllbGQodHJ1c3RUeXBlKSwgJ2ludGVybmFsIGZpZWxkcyBjYW4gbmV2ZXIgYmUgdXBkYXRlZCcpCglmcmFtZV9kaWcgMCAvLyB0cnVzdFR5cGU6IGJ5dGVbXQoJY2FsbHN1YiBpc0ludGVybmFsRmllbGQKCSEKCgkvLyBpbnRlcm5hbCBmaWVsZHMgY2FuIG5ldmVyIGJlIHVwZGF0ZWQKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzNTEKCS8vIGlzVXNlckZpZWxkID0gdGhpcy5pc1VzZXJGaWVsZCh0cnVzdFR5cGUpCglmcmFtZV9kaWcgMCAvLyB0cnVzdFR5cGU6IGJ5dGVbXQoJY2FsbHN1YiBpc1VzZXJGaWVsZAoJZnJhbWVfYnVyeSAxIC8vIGlzVXNlckZpZWxkOiBib29sCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTM1MgoJLy8gaXNWZXJpZmllZEZpZWxkID0gdGhpcy5pc1ZlcmlmaWVkRmllbGQodHJ1c3RUeXBlKQoJZnJhbWVfZGlnIDAgLy8gdHJ1c3RUeXBlOiBieXRlW10KCWNhbGxzdWIgaXNWZXJpZmllZEZpZWxkCglmcmFtZV9idXJ5IDIgLy8gaXNWZXJpZmllZEZpZWxkOiBib29sCgoJLy8gKmlmNzZfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzU0CgkvLyBhZG1pblJpZ2h0cyAmJiAoaXNWZXJpZmllZEZpZWxkIHx8IChpc1VzZXJGaWVsZCAmJiBsZW4odmFsdWUpID09PSAwKSkKCWZyYW1lX2RpZyAtMyAvLyBhZG1pblJpZ2h0czogYm9vbGVhbgoJZHVwCglieiAqc2tpcF9hbmQxOAoJZnJhbWVfZGlnIDIgLy8gaXNWZXJpZmllZEZpZWxkOiBib29sCglkdXAKCWJueiAqc2tpcF9vcjMKCWZyYW1lX2RpZyAxIC8vIGlzVXNlckZpZWxkOiBib29sCglkdXAKCWJ6ICpza2lwX2FuZDE5CglmcmFtZV9kaWcgLTIgLy8gdmFsdWU6IGJ5dGVzCglsZW4KCWludGMgMCAvLyAwCgk9PQoJJiYKCipza2lwX2FuZDE5OgoJfHwKCipza2lwX29yMzoKCSYmCgoqc2tpcF9hbmQxODoKCWJ6ICppZjc2X2VuZAoKCS8vICppZjc2X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzNTUKCS8vIHJldHVybiB0cnVlCglpbnRjIDEgLy8gMQoJYiAqaXNGaWVsZFVwZGF0ZUFsbG93ZWQqcmV0dXJuCgoqaWY3Nl9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzU4CgkvLyBhc3NlcnQobGVuKHRoaXMuc2FmZUdsb2JhbEJ5dGVHZXQoTkZEX0tFWV9PV05FUikpID09PSAzMiwgJ211c3QgYmUgb3duZWQnKQoJYnl0ZWMgMSAvLyAiaS5vd25lci5hIgoJY2FsbHN1YiBzYWZlR2xvYmFsQnl0ZUdldAoJbGVuCglpbnRjIDMgLy8gMzIKCT09CgoJLy8gbXVzdCBiZSBvd25lZAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTM1OQoJLy8gYXNzZXJ0KCF0aGlzLmlzRm9yU2FsZSgpLCAiY2FuJ3QgYmUgZm9yIHNhbGUiKQoJY2FsbHN1YiBpc0ZvclNhbGUKCSEKCgkvLyBjYW4ndCBiZSBmb3Igc2FsZQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTM2MAoJLy8gYXNzZXJ0KHRoaXMudHhuLnNlbmRlciA9PT0gQWRkcmVzcy5mcm9tQnl0ZXModGhpcy5nbG9iYWxTdGF0ZShORkRfS0VZX09XTkVSKS52YWx1ZSksICdzZW5kZXIgbXVzdCBiZSBvd25lcicpCgl0eG4gU2VuZGVyCglieXRlYyAxIC8vICJpLm93bmVyLmEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCgkvLyBzZW5kZXIgbXVzdCBiZSBvd25lcgoJYXNzZXJ0CgoJLy8gKmlmNzdfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzYyCgkvLyBpc1VzZXJGaWVsZAoJZnJhbWVfZGlnIDEgLy8gaXNVc2VyRmllbGQ6IGJvb2wKCWJ6ICppZjc3X2VuZAoKCS8vICppZjc3X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzNjMKCS8vIHJldHVybiB0cnVlCglpbnRjIDEgLy8gMQoJYiAqaXNGaWVsZFVwZGF0ZUFsbG93ZWQqcmV0dXJuCgoqaWY3N19lbmQ6CgkvLyAqaWY3OF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzNjYKCS8vIGxlbihuYW1lKSA+IDgKCWZyYW1lX2RpZyAtMSAvLyBuYW1lOiBieXRlcwoJbGVuCglpbnRjIDUgLy8gOAoJPgoJYnogKmlmNzhfZW5kCgoJLy8gKmlmNzhfY29uc2VxdWVudAoJLy8gKmlmNzlfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzY3CgkvLyBleHRyYWN0MyhuYW1lLCAwLCA4KSA9PT0gJ3YuY2FBbGdvJwoJZnJhbWVfZGlnIC0xIC8vIG5hbWU6IGJ5dGVzCglleHRyYWN0IDAgOAoJYnl0ZWMgMzMgLy8gICJ2LmNhQWxnbyIKCT09CglieiAqaWY3OV9lbmQKCgkvLyAqaWY3OV9jb25zZXF1ZW50CgkvLyB1cGRhdGluZyB2LmNhQWxnbyBmaWVsZCBpc24ndCBhbGxvd2VkIHZpYSByZWd1bGFyIGZpZWxkIHVwZGF0ZQoJZXJyCgoqaWY3OV9lbmQ6CgoqaWY3OF9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzcyCgkvLyByZXR1cm4gaXNWZXJpZmllZEZpZWxkICYmIGxlbih2YWx1ZSkgPT09IDAKCWZyYW1lX2RpZyAyIC8vIGlzVmVyaWZpZWRGaWVsZDogYm9vbAoJZHVwCglieiAqc2tpcF9hbmQyMAoJZnJhbWVfZGlnIC0yIC8vIHZhbHVlOiBieXRlcwoJbGVuCglpbnRjIDAgLy8gMAoJPT0KCSYmCgoqc2tpcF9hbmQyMDoKCippc0ZpZWxkVXBkYXRlQWxsb3dlZCpyZXR1cm46CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAyCglyZXRzdWIKCi8vIGlzSW50ZXJuYWxGaWVsZCh0cnVzdFR5cGU6IHN0cmluZyk6IGJvb2xlYW4KaXNJbnRlcm5hbEZpZWxkOgoJcHJvdG8gMSAxCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTM3NwoJLy8gcmV0dXJuIHRydXN0VHlwZSA9PT0gJ2kuJwoJZnJhbWVfZGlnIC0xIC8vIHRydXN0VHlwZTogc3RyaW5nCglwdXNoYnl0ZXMgMHg2OTJlIC8vICJpLiIKCT09CglyZXRzdWIKCi8vIGlzVXNlckZpZWxkKHRydXN0VHlwZTogc3RyaW5nKTogYm9vbGVhbgppc1VzZXJGaWVsZDoKCXByb3RvIDEgMQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzODIKCS8vIHJldHVybiB0cnVzdFR5cGUgPT09ICd1LicKCWZyYW1lX2RpZyAtMSAvLyB0cnVzdFR5cGU6IHN0cmluZwoJcHVzaGJ5dGVzIDB4NzUyZSAvLyAidS4iCgk9PQoJcmV0c3ViCgovLyBpc1ZlcmlmaWVkRmllbGQodHJ1c3RUeXBlOiBzdHJpbmcpOiBib29sZWFuCmlzVmVyaWZpZWRGaWVsZDoKCXByb3RvIDEgMQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzODcKCS8vIHJldHVybiB0cnVzdFR5cGUgPT09ICd2LicKCWZyYW1lX2RpZyAtMSAvLyB0cnVzdFR5cGU6IHN0cmluZwoJcHVzaGJ5dGVzIDB4NzYyZSAvLyAidi4iCgk9PQoJcmV0c3ViCgovLyBpc0ZvclNhbGUoKTogYm9vbGVhbgppc0ZvclNhbGU6Cglwcm90byAwIDEKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzkxCgkvLyByZXR1cm4gdGhpcy5zYWZlR2xvYmFsSW50R2V0KE5GRF9LRVlfU0VMTF9BTU9VTlQpICE9PSAwCglieXRlYyA2IC8vICJpLnNlbGxhbXQiCgljYWxsc3ViIHNhZmVHbG9iYWxJbnRHZXQKCWludGMgMCAvLyAwCgkhPQoJcmV0c3ViCgovLyBpc0V4cGlyZWQoKTogYm9vbGVhbgppc0V4cGlyZWQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjEzOTYKCS8vIGV4cFRpbWUgPSB0aGlzLnNhZmVHbG9iYWxJbnRHZXQoTkZEX0tFWV9FWFBJUkFUSU9OVElNRSkKCWJ5dGVjIDE3IC8vICJpLmV4cGlyYXRpb25UaW1lIgoJY2FsbHN1YiBzYWZlR2xvYmFsSW50R2V0CglmcmFtZV9idXJ5IDAgLy8gZXhwVGltZTogdWludDY0CgoJLy8gKmlmODBfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxMzk3CgkvLyBleHBUaW1lID09PSAwCglmcmFtZV9kaWcgMCAvLyBleHBUaW1lOiB1aW50NjQKCWludGMgMCAvLyAwCgk9PQoJYnogKmlmODBfZW5kCgoJLy8gKmlmODBfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTM5OQoJLy8gcmV0dXJuIGZhbHNlCglpbnRjIDAgLy8gMAoJYiAqaXNFeHBpcmVkKnJldHVybgoKKmlmODBfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQwMQoJLy8gcmV0dXJuIGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wID4gZXhwVGltZQoJZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAoJZnJhbWVfZGlnIDAgLy8gZXhwVGltZTogdWludDY0Cgk+CgoqaXNFeHBpcmVkKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBpc1ZhdWx0QXV0b09wdEluTG9ja2VkKCk6IGJvb2xlYW4KaXNWYXVsdEF1dG9PcHRJbkxvY2tlZDoKCXByb3RvIDAgMQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0MTAKCS8vIHJldHVybiB0aGlzLnNhZmVHbG9iYWxCeXRlR2V0KE5GRF9LRVlfSVNWQVVMVE9QVElOTE9DS0VEKSA9PT0gJzEnCglieXRlYyAyMCAvLyAiaS52YXVsdE9wdEluTG9ja2VkIgoJY2FsbHN1YiBzYWZlR2xvYmFsQnl0ZUdldAoJYnl0ZWMgMTUgLy8gICIxIgoJPT0KCXJldHN1YgoKLy8gYXNzZXJ0T3duZXJDYWxsZWROb3RGb3JTYWxlT3JFeHBpcmVkKCk6IHZvaWQKYXNzZXJ0T3duZXJDYWxsZWROb3RGb3JTYWxlT3JFeHBpcmVkOgoJcHJvdG8gMCAwCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQxNAoJLy8gdGhpcy5tdXN0QmVDYWxsZWRCeU93bmVyKCkKCWNhbGxzdWIgbXVzdEJlQ2FsbGVkQnlPd25lcgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0MTUKCS8vIHRoaXMubm90Rm9yU2FsZU9yRXhwaXJlZCgpCgljYWxsc3ViIG5vdEZvclNhbGVPckV4cGlyZWQKCXJldHN1YgoKLy8gbm90Rm9yU2FsZU9yRXhwaXJlZCgpOiB2b2lkCm5vdEZvclNhbGVPckV4cGlyZWQ6Cglwcm90byAwIDAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDE5CgkvLyBhc3NlcnQoIXRoaXMuaXNGb3JTYWxlKCksICJjYW4ndCBiZSBmb3Igc2FsZSIpCgljYWxsc3ViIGlzRm9yU2FsZQoJIQoKCS8vIGNhbid0IGJlIGZvciBzYWxlCglhc3NlcnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDIwCgkvLyBhc3NlcnQoIXRoaXMuaXNFeHBpcmVkKCksICJjYW4ndCBiZSBleHBpcmVkIikKCWNhbGxzdWIgaXNFeHBpcmVkCgkhCgoJLy8gY2FuJ3QgYmUgZXhwaXJlZAoJYXNzZXJ0CglyZXRzdWIKCi8vIG5vUGVyaW9kQmVmb3JlSW5kZXgobmFtZTogc3RyaW5nLCBzdG9wSW5kZXg6IHVpbnQ2NCk6IGJvb2xlYW4Kbm9QZXJpb2RCZWZvcmVJbmRleDoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQyNQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBzdG9wSW5kZXg7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoqZm9yXzk6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDI1CgkvLyBpIDwgc3RvcEluZGV4CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBzdG9wSW5kZXg6IHVpbnQ2NAoJPAoJYnogKmZvcl85X2VuZAoKCS8vICppZjgxX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQyNgoJLy8gZXh0cmFjdDMobmFtZSwgaSwgMSkgPT09ICcuJwoJZnJhbWVfZGlnIC0xIC8vIG5hbWU6IHN0cmluZwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJZXh0cmFjdDMKCWJ5dGVjIDI4IC8vICAiLiIKCT09CglieiAqaWY4MV9lbmQKCgkvLyAqaWY4MV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDI3CgkvLyByZXR1cm4gZmFsc2UKCWludGMgMCAvLyAwCgliICpub1BlcmlvZEJlZm9yZUluZGV4KnJldHVybgoKKmlmODFfZW5kOgoKKmZvcl85X2NvbnRpbnVlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQyNQoJLy8gaSArPSAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgliICpmb3JfOQoKKmZvcl85X2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0MzAKCS8vIHJldHVybiB0cnVlCglpbnRjIDEgLy8gMQoKKm5vUGVyaW9kQmVmb3JlSW5kZXgqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGNhbGNFeHBpcmF0aW9uKHJlbmV3YWxQcmljZTogdWludDY0LCBhbXRQYWlkOiB1aW50NjQsIGN1clRpbWU6IHVpbnQ2NCwgbWF4WWVhcnNBbGxvd2VkOiB1aW50NjQpOiB1aW50NjQKLy8KLy8gQ2FsY3VsYXRlcyB0aGUgbmV3IGV4cGlyYXRpb24gdGltZSBiYXNlZCBvbiB0aGUgcmVuZXdhbCBwcmljZSwgYW1vdW50IHBhaWQsIGN1cnJlbnQgdGltZSwgYW5kIG1heGltdW0geWVhcnMgYWxsb3dlZC4KLy8KLy8gQHBhcmFtIHJlbmV3YWxQcmljZSAtIFRoZSBwcmljZSBmb3IgcmVuZXdpbmcgdGhlIGV4cGlyYXRpb24uCi8vIEBwYXJhbSBhbXRQYWlkIC0gVGhlIGFtb3VudCBwYWlkIGZvciB0aGUgcmVuZXdhbC4KLy8gQHBhcmFtIGN1clRpbWUgLSBUaGUgY3VycmVudCB0aW1lIGluIHVuaXggdGltZSBzZWNvbmRzLgovLyBAcGFyYW0gbWF4WWVhcnNBbGxvd2VkIC0gVGhlIG1heGltdW0gbnVtYmVyIG9mIHllYXJzIGFsbG93ZWQgZm9yIHRoZSBleHBpcmF0aW9uLgovLwovLyBAcmV0dXJuIFRoZSBuZXcgZXhwaXJhdGlvbiB0aW1lIGluIHVuaXh0aW1lIHNlY29uZHMKY2FsY0V4cGlyYXRpb246Cglwcm90byA0IDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQ0NAoJLy8gZXh0cmFTZWNvbmRzID0gKDM2NSAqIGFtdFBhaWQgKiBTRUNTX0lOX0RBWSkgLyByZW5ld2FsUHJpY2UKCWludGMgOCAvLyAzNjUKCWZyYW1lX2RpZyAtMiAvLyBhbXRQYWlkOiB1aW50NjQKCSoKCWludGMgMTQgLy8gODY0MDAKCSoKCWZyYW1lX2RpZyAtMSAvLyByZW5ld2FsUHJpY2U6IHVpbnQ2NAoJLwoJZnJhbWVfYnVyeSAwIC8vIGV4dHJhU2Vjb25kczogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQ0NQoJLy8gbmV3RXhwaXJhdGlvbiA9IGN1clRpbWUgKyBleHRyYVNlY29uZHMKCWZyYW1lX2RpZyAtMyAvLyBjdXJUaW1lOiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIGV4dHJhU2Vjb25kczogdWludDY0CgkrCglmcmFtZV9idXJ5IDEgLy8gbmV3RXhwaXJhdGlvbjogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQ0NwoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgICAgbmV3RXhwaXJhdGlvbiA8PSBnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCArIDM2NSAqIG1heFllYXJzQWxsb3dlZCAqIFNFQ1NfSU5fREFZLAoJLy8gICAgICAgICAgICAgJ21heCBleHBpcmF0aW9uIGV4Y2VlZGVkIHBhcmFtZXRlcnMgZGVmaW5lZCBieSByZWdpc3RyeScsCgkvLyAgICAgICAgICkKCWZyYW1lX2RpZyAxIC8vIG5ld0V4cGlyYXRpb246IHVpbnQ2NAoJZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAoJaW50YyA4IC8vIDM2NQoJZnJhbWVfZGlnIC00IC8vIG1heFllYXJzQWxsb3dlZDogdWludDY0CgkqCglpbnRjIDE0IC8vIDg2NDAwCgkqCgkrCgk8PQoKCS8vIG1heCBleHBpcmF0aW9uIGV4Y2VlZGVkIHBhcmFtZXRlcnMgZGVmaW5lZCBieSByZWdpc3RyeQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQ1MQoJLy8gcmV0dXJuIG5ld0V4cGlyYXRpb24KCWZyYW1lX2RpZyAxIC8vIG5ld0V4cGlyYXRpb246IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gcG93MTAoZGVjaW1hbHM6IHVpbnQ2NCk6IHVpbnQ2NApwb3cxMDoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDU1CgkvLyBleHBSZXN1bHQgPSBleHB3KDEwLCBkZWNpbWFscykKCWludGMgMTEgLy8gMTAKCWZyYW1lX2RpZyAtMSAvLyBkZWNpbWFsczogdWludDY0CglleHB3CglmcmFtZV9idXJ5IDAgLy8gZXhwUmVzdWx0IGxvdzogdWludDY0CglmcmFtZV9idXJ5IDEgLy8gZXhwUmVzdWx0IGhpZ2g6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0NTYKCS8vIHJldHVybiBleHBSZXN1bHQubG93CglmcmFtZV9kaWcgMCAvLyBleHBSZXN1bHQgbG93OiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGNsYXdBc2FGcm9tVG8oZnJvbTogQWRkcmVzcywgdG86IEFkZHJlc3MpOiB2b2lkCmNsYXdBc2FGcm9tVG86Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQ2MgoJLy8gZnJvbUJhbGFuY2UgPSBmcm9tLmFzc2V0QmFsYW5jZShBc3NldElELmZyb21VaW50NjQoYnRvaSh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfQVNBSUQpLnZhbHVlKSkpCglmcmFtZV9kaWcgLTEgLy8gZnJvbTogQWRkcmVzcwoJYnl0ZWMgMTggLy8gImkuYXNhaWQiCglhcHBfZ2xvYmFsX2dldAoJYnRvaQoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2J1cnkgMCAvLyBmcm9tQmFsYW5jZTogdWludDY0CgoJLy8gKmlmODJfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDY0CgkvLyBmcm9tQmFsYW5jZSAhPT0gMAoJZnJhbWVfZGlnIDAgLy8gZnJvbUJhbGFuY2U6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCSE9CglieiAqaWY4Ml9lbHNlCgoJLy8gKmlmODJfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQ2NQoJLy8gc2VuZEZyb20gPSBmcm9tCglmcmFtZV9kaWcgLTEgLy8gZnJvbTogQWRkcmVzcwoJZnJhbWVfYnVyeSAxIC8vIHNlbmRGcm9tOiBBZGRyZXNzCgliICppZjgyX2VuZAoKKmlmODJfZWxzZToKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0NjgKCS8vIHNlbmRGcm9tID0gdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2J1cnkgMSAvLyBzZW5kRnJvbTogQWRkcmVzcwoKKmlmODJfZW5kOgoJLy8gKmlmODNfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDcwCgkvLyBzZW5kRnJvbSA9PT0gdG8KCWZyYW1lX2RpZyAxIC8vIHNlbmRGcm9tOiBBZGRyZXNzCglmcmFtZV9kaWcgLTIgLy8gdG86IEFkZHJlc3MKCT09CglieiAqaWY4M19lbmQKCgkvLyAqaWY4M19jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDcxCgkvLyByZXR1cm4KCXJldHN1YgoKKmlmODNfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQ3MwoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgICAgICAgeGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQoYnRvaSh0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfQVNBSUQpLnZhbHVlKSksCgkvLyAgICAgICAgICAgICBhc3NldEFtb3VudDogMSwKCS8vICAgICAgICAgICAgIHNlbmRlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgICAgICAgIGFzc2V0U2VuZGVyOiBzZW5kRnJvbSwKCS8vICAgICAgICAgICAgIGFzc2V0UmVjZWl2ZXI6IHRvLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAxMCAvLyAgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDc0CgkvLyB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NChidG9pKHRoaXMuZ2xvYmFsU3RhdGUoTkZEX0tFWV9BU0FJRCkudmFsdWUpKQoJYnl0ZWMgMTggLy8gImkuYXNhaWQiCglhcHBfZ2xvYmFsX2dldAoJYnRvaQoJaXR4bl9maWVsZCBYZmVyQXNzZXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDc1CgkvLyBhc3NldEFtb3VudDogMQoJaW50YyAxIC8vIDEKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDc2CgkvLyBzZW5kZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIFNlbmRlcgoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0NzcKCS8vIGFzc2V0U2VuZGVyOiBzZW5kRnJvbQoJZnJhbWVfZGlnIDEgLy8gc2VuZEZyb206IEFkZHJlc3MKCWl0eG5fZmllbGQgQXNzZXRTZW5kZXIKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDc4CgkvLyBhc3NldFJlY2VpdmVyOiB0bwoJZnJhbWVfZGlnIC0yIC8vIHRvOiBBZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnRjIDAgLy8gMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGZpbmRBZGRySW5CeXRlcyhieXRlc09mU2V0OiBieXRlcywgYWRkcmVzczogQWRkcmVzcyk6IGJvb2xlYW4KLy8KLy8gQ2hlY2tzIGlmIHRoZSBzcGVjaWZpZWQgYWRkcmVzcyBpcyBwcmVzZW50IHdpdGhpbiB0aGUgZ2l2ZW4gc2V0IG9mIGJ5dGVzLgovLwovLyBAcGFyYW0ge2J5dGVzfSBieXRlc09mU2V0IC0gVGhlIHNldCBvZiBieXRlcyB0byBzZWFyY2ggdGhyb3VnaC4KLy8gQHBhcmFtIHtBZGRyZXNzfSBhZGRyZXNzIC0gVGhlIGFkZHJlc3MgdG8gZmluZCB3aXRoaW4gdGhlIHNldCBvZiBieXRlcy4KLy8gQHJldHVybiB7Ym9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGFkZHJlc3MgaXMgZm91bmQgaW4gdGhlIGJ5dGVzLCBvdGhlcndpc2UgZmFsc2UuCmZpbmRBZGRySW5CeXRlczoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXAKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDkwCgkvLyBsaW1pdCA9IGJ5dGVzT2ZTZXQubGVuZ3RoIC8gMzIKCWZyYW1lX2RpZyAtMSAvLyBieXRlc09mU2V0OiBieXRlcwoJbGVuCglpbnRjIDMgLy8gMzIKCS8KCWZyYW1lX2J1cnkgMCAvLyBsaW1pdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTQ5MQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBsaW1pdDsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCipmb3JfMTA6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDkxCgkvLyBpIDwgbGltaXQKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gbGltaXQ6IHVpbnQ2NAoJPAoJYnogKmZvcl8xMF9lbmQKCgkvLyAqaWY4NF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE0OTIKCS8vIGV4dHJhY3QzKGJ5dGVzT2ZTZXQsIGkgKiAzMiwgMzIpID09PSByYXdCeXRlcyhhZGRyZXNzKQoJZnJhbWVfZGlnIC0xIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVzCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWludGMgMyAvLyAzMgoJKgoJaW50YyAzIC8vIDMyCglleHRyYWN0MwoJZnJhbWVfZGlnIC0yIC8vIGFkZHJlc3M6IEFkZHJlc3MKCT09CglieiAqaWY4NF9lbmQKCgkvLyAqaWY4NF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDkzCgkvLyByZXR1cm4gdHJ1ZQoJaW50YyAxIC8vIDEKCWIgKmZpbmRBZGRySW5CeXRlcypyZXR1cm4KCippZjg0X2VuZDoKCipmb3JfMTBfY29udGludWU6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDkxCgkvLyBpICs9IDEKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCWIgKmZvcl8xMAoKKmZvcl8xMF9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNDk2CgkvLyByZXR1cm4gZmFsc2UKCWludGMgMCAvLyAwCgoqZmluZEFkZHJJbkJ5dGVzKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gZmluZEFkZHJBbmRTZXRGaXJzdChrZXk6IGJ5dGVzLCBhZGRyZXNzOiBBZGRyZXNzKTogdm9pZApmaW5kQWRkckFuZFNldEZpcnN0OgoJcHJvdG8gMiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cG4gNAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MDEKCS8vIGJ5dGVzT2ZTZXQgPSB0aGlzLmJveGVzKGtleSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBrZXk6IGJ5dGVzCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJveGVzKGtleSkudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSAwIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MDMKCS8vIGFzc2VydChhZGRyZXNzICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzKQoJZnJhbWVfZGlnIC0yIC8vIGFkZHJlc3M6IEFkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MDUKCS8vIGFzc2VydChieXRlc09mU2V0Lmxlbmd0aCA+PSA2NCwgImFkZHJlc3MgJ3NldCcgc2hvdWxkIGFscmVhZHkgaGF2ZSBhdCBsZWFzdCB0d28gdmFsdWVzIikKCWZyYW1lX2RpZyAwIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoJbGVuCglwdXNoaW50IDY0Cgk+PQoKCS8vIGFkZHJlc3MgJ3NldCcgc2hvdWxkIGFscmVhZHkgaGF2ZSBhdCBsZWFzdCB0d28gdmFsdWVzCglhc3NlcnQKCgkvLyAqaWY4NV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MDgKCS8vIGV4dHJhY3QzKGJ5dGVzT2ZTZXQsIDAsIDMyKSA9PT0gcmF3Qnl0ZXMoYWRkcmVzcykKCWZyYW1lX2RpZyAwIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoJZXh0cmFjdCAwIDMyCglmcmFtZV9kaWcgLTIgLy8gYWRkcmVzczogQWRkcmVzcwoJPT0KCWJ6ICppZjg1X2VuZAoKCS8vICppZjg1X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MDkKCS8vIHJldHVybgoJcmV0c3ViCgoqaWY4NV9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTEyCgkvLyBsaW1pdCA9IGJ5dGVzT2ZTZXQubGVuZ3RoIC8gMzIKCWZyYW1lX2RpZyAwIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoJbGVuCglpbnRjIDMgLy8gMzIKCS8KCWZyYW1lX2J1cnkgMSAvLyBsaW1pdDogdWludDY0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTUxMwoJLy8gZm91bmRTbG90ID0gMAoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgMiAvLyBmb3VuZFNsb3Q6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MTUKCS8vIGZvciAobGV0IGkgPSAxOyBpIDwgbGltaXQ7IGkgKz0gMSkKCWludGMgMSAvLyAxCglmcmFtZV9idXJ5IDMgLy8gaTogdWludDY0CgoqZm9yXzExOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTUxNQoJLy8gaSA8IGxpbWl0CglmcmFtZV9kaWcgMyAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIGxpbWl0OiB1aW50NjQKCTwKCWJ6ICpmb3JfMTFfZW5kCgoJLy8gKmlmODZfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTE2CgkvLyBleHRyYWN0MyhieXRlc09mU2V0LCBpICogMzIsIDMyKSA9PT0gcmF3Qnl0ZXMoYWRkcmVzcykKCWZyYW1lX2RpZyAwIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoJZnJhbWVfZGlnIDMgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMzIKCSoKCWludGMgMyAvLyAzMgoJZXh0cmFjdDMKCWZyYW1lX2RpZyAtMiAvLyBhZGRyZXNzOiBBZGRyZXNzCgk9PQoJYnogKmlmODZfZW5kCgoJLy8gKmlmODZfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTUxNwoJLy8gZm91bmRTbG90ID0gaQoJZnJhbWVfZGlnIDMgLy8gaTogdWludDY0CglmcmFtZV9idXJ5IDIgLy8gZm91bmRTbG90OiB1aW50NjQKCWIgKmZvcl8xMV9lbmQKCippZjg2X2VuZDoKCipmb3JfMTFfY29udGludWU6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTE1CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAzIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMyAvLyBpOiB1aW50NjQKCWIgKmZvcl8xMQoKKmZvcl8xMV9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTIxCgkvLyBhc3NlcnQoZm91bmRTbG90ICE9PSAwLCAnYWRkcmVzcyBtdXN0IGJlIGZvdW5kIGluIHNldCBpbiBvcmRlciB0byBtb3ZlIGl0JykKCWZyYW1lX2RpZyAyIC8vIGZvdW5kU2xvdDogdWludDY0CglpbnRjIDAgLy8gMAoJIT0KCgkvLyBhZGRyZXNzIG11c3QgYmUgZm91bmQgaW4gc2V0IGluIG9yZGVyIHRvIG1vdmUgaXQKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MjMKCS8vIGFkZHJlc3NBdEZyb250ID0gZXh0cmFjdDMoYnl0ZXNPZlNldCwgMCwgMzIpCglmcmFtZV9kaWcgMCAvLyBieXRlc09mU2V0OiBieXRlW10KCWV4dHJhY3QgMCAzMgoJZnJhbWVfYnVyeSA0IC8vIGFkZHJlc3NBdEZyb250OiBieXRlW10KCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTI1CgkvLyBieXRlc09mU2V0ID0gcmVwbGFjZTMoYnl0ZXNPZlNldCwgMCwgYWRkcmVzcykKCWZyYW1lX2RpZyAwIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyAtMiAvLyBhZGRyZXNzOiBBZGRyZXNzCglyZXBsYWNlMwoJZnJhbWVfYnVyeSAwIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1MjcKCS8vIHRoaXMuYm94ZXMoa2V5KS52YWx1ZSA9IHJlcGxhY2UzKGJ5dGVzT2ZTZXQsIGZvdW5kU2xvdCAqIDMyLCBhZGRyZXNzQXRGcm9udCkKCWZyYW1lX2RpZyAtMSAvLyBrZXk6IGJ5dGVzCglmcmFtZV9kaWcgMCAvLyBieXRlc09mU2V0OiBieXRlW10KCWZyYW1lX2RpZyAyIC8vIGZvdW5kU2xvdDogdWludDY0CglpbnRjIDMgLy8gMzIKCSoKCWZyYW1lX2RpZyA0IC8vIGFkZHJlc3NBdEZyb250OiBieXRlW10KCXJlcGxhY2UzCglib3hfcHV0CglyZXRzdWIKCi8vIGFkZEJ5dGVzVG9TZXQoa2V5OiBieXRlcywgYnl0ZXNWYWw6IGJ5dGVzKTogYm9vbGVhbgovLwovLyBBZGRzIGJ5dGVzIHRvIGEgc2V0IGlkZW50aWZpZWQgYnkgdGhlIGdpdmVuIGtleS4KLy8KLy8gQHBhcmFtIHtieXRlc30ga2V5IC0gVGhlIGtleSB0byBpZGVudGlmeSB0aGUgc2V0LgovLyBAcGFyYW0ge2J5dGVzfSBieXRlc1ZhbCAtIFRoZSBieXRlcyB0byBiZSBhZGRlZCB0byB0aGUgc2V0LgovLyBAcmV0dXJuIHtib29sZWFufSB0cnVlIGlmIHRoZSBieXRlcyB3ZXJlIHN1Y2Nlc3NmdWxseSBhZGRlZCB0byB0aGUgc2V0LCBmYWxzZSBvdGhlcndpc2UuCmFkZEJ5dGVzVG9TZXQ6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwbiA1CgoJLy8gKmlmODdfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTM4CgkvLyAhdGhpcy5ib3hlcyhrZXkpLmV4aXN0cwoJZnJhbWVfZGlnIC0xIC8vIGtleTogYnl0ZXMKCWJveF9sZW4KCXN3YXAKCXBvcAoJIQoJYnogKmlmODdfZW5kCgoJLy8gKmlmODdfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU0MAoJLy8gdGhpcy5ib3hlcyhrZXkpLnZhbHVlID0gYnl0ZXNWYWwKCWZyYW1lX2RpZyAtMSAvLyBrZXk6IGJ5dGVzCglmcmFtZV9kaWcgLTIgLy8gYnl0ZXNWYWw6IGJ5dGVzCglib3hfcHV0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU0MQoJLy8gcmV0dXJuIHRydWUKCWludGMgMSAvLyAxCgliICphZGRCeXRlc1RvU2V0KnJldHVybgoKKmlmODdfZW5kOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU0MwoJLy8gc2l6ZU9mS2V5ID0gbGVuKGJ5dGVzVmFsKQoJZnJhbWVfZGlnIC0yIC8vIGJ5dGVzVmFsOiBieXRlcwoJbGVuCglmcmFtZV9idXJ5IDAgLy8gc2l6ZU9mS2V5OiB1aW50NjQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTQ0CgkvLyB6ZXJvS2V5ID0gYnplcm8oc2l6ZU9mS2V5KQoJZnJhbWVfZGlnIDAgLy8gc2l6ZU9mS2V5OiB1aW50NjQKCWJ6ZXJvCglmcmFtZV9idXJ5IDEgLy8gemVyb0tleTogYnl0ZVtdCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU0NQoJLy8gYnl0ZXNPZlNldCA9IHRoaXMuYm94ZXMoa2V5KS52YWx1ZQoJZnJhbWVfZGlnIC0xIC8vIGtleTogYnl0ZXMKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94ZXMoa2V5KS52YWx1ZQoJYXNzZXJ0CglmcmFtZV9idXJ5IDIgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU0NgoJLy8gbGltaXQgPSBieXRlc09mU2V0Lmxlbmd0aCAvIHNpemVPZktleQoJZnJhbWVfZGlnIDIgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCglsZW4KCWZyYW1lX2RpZyAwIC8vIHNpemVPZktleTogdWludDY0CgkvCglmcmFtZV9idXJ5IDMgLy8gbGltaXQ6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1NDgKCS8vIGFzc2VydChsZW4oYnl0ZXNWYWwpICUgc2l6ZU9mS2V5ID09PSAwLCAnZXhpc3Rpbmcgc2V0IG11c3QgYmUgbXVsdGlwbGUgb2Yga2V5IGJlaW5nIGFkZGVkJykKCWZyYW1lX2RpZyAtMiAvLyBieXRlc1ZhbDogYnl0ZXMKCWxlbgoJZnJhbWVfZGlnIDAgLy8gc2l6ZU9mS2V5OiB1aW50NjQKCSUKCWludGMgMCAvLyAwCgk9PQoKCS8vIGV4aXN0aW5nIHNldCBtdXN0IGJlIG11bHRpcGxlIG9mIGtleSBiZWluZyBhZGRlZAoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU0OQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBsaW1pdDsgaSArPSAxKQoJaW50YyAwIC8vIDAKCWZyYW1lX2J1cnkgNCAvLyBpOiB1aW50NjQKCipmb3JfMTI6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTQ5CgkvLyBpIDwgbGltaXQKCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gbGltaXQ6IHVpbnQ2NAoJPAoJYnogKmZvcl8xMl9lbmQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTUwCgkvLyBjdXJyZW50VmFsSW5TbG90ID0gZXh0cmFjdDMoYnl0ZXNPZlNldCwgaSAqIHNpemVPZktleSwgc2l6ZU9mS2V5KQoJZnJhbWVfZGlnIDIgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHNpemVPZktleTogdWludDY0CgkqCglmcmFtZV9kaWcgMCAvLyBzaXplT2ZLZXk6IHVpbnQ2NAoJZXh0cmFjdDMKCWZyYW1lX2J1cnkgNSAvLyBjdXJyZW50VmFsSW5TbG90OiBieXRlW10KCgkvLyAqaWY4OF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1NTIKCS8vIGN1cnJlbnRWYWxJblNsb3QgPT09IHplcm9LZXkKCWZyYW1lX2RpZyA1IC8vIGN1cnJlbnRWYWxJblNsb3Q6IGJ5dGVbXQoJZnJhbWVfZGlnIDEgLy8gemVyb0tleTogYnl0ZVtdCgk9PQoJYnogKmlmODhfZW5kCgoJLy8gKmlmODhfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU1NAoJLy8gdGhpcy5ib3hlcyhrZXkpLnJlcGxhY2UoaSAqIHNpemVPZktleSwgYnl0ZXNWYWwpCglmcmFtZV9kaWcgLTEgLy8ga2V5OiBieXRlcwoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglmcmFtZV9kaWcgMCAvLyBzaXplT2ZLZXk6IHVpbnQ2NAoJKgoJZnJhbWVfZGlnIC0yIC8vIGJ5dGVzVmFsOiBieXRlcwoJYm94X3JlcGxhY2UKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTU1CgkvLyByZXR1cm4gdHJ1ZQoJaW50YyAxIC8vIDEKCWIgKmFkZEJ5dGVzVG9TZXQqcmV0dXJuCgoqaWY4OF9lbmQ6CgkvLyAqaWY4OV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1NTcKCS8vIGN1cnJlbnRWYWxJblNsb3QgPT09IGJ5dGVzVmFsCglmcmFtZV9kaWcgNSAvLyBjdXJyZW50VmFsSW5TbG90OiBieXRlW10KCWZyYW1lX2RpZyAtMiAvLyBieXRlc1ZhbDogYnl0ZXMKCT09CglieiAqaWY4OV9lbmQKCgkvLyAqaWY4OV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTU4CgkvLyByZXR1cm4gdHJ1ZQoJaW50YyAxIC8vIDEKCWIgKmFkZEJ5dGVzVG9TZXQqcmV0dXJuCgoqaWY4OV9lbmQ6CgoqZm9yXzEyX2NvbnRpbnVlOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU0OQoJLy8gaSArPSAxCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludGMgMSAvLyAxCgkrCglmcmFtZV9idXJ5IDQgLy8gaTogdWludDY0CgliICpmb3JfMTIKCipmb3JfMTJfZW5kOgoJLy8gKmlmOTBfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTYyCgkvLyBieXRlc09mU2V0Lmxlbmd0aCA8IDEwMTAKCWZyYW1lX2RpZyAyIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoJbGVuCglwdXNoaW50IDEwMTAKCTwKCWJ6ICppZjkwX2VuZAoKCS8vICppZjkwX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1NjMKCS8vIHRoaXMuYm94ZXMoa2V5KS5kZWxldGUoKQoJZnJhbWVfZGlnIC0xIC8vIGtleTogYnl0ZXMKCWJveF9kZWwKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTY0CgkvLyB0aGlzLmJveGVzKGtleSkudmFsdWUgPSBjb25jYXQoYnl0ZXNPZlNldCwgYnl0ZXNWYWwpCglmcmFtZV9kaWcgLTEgLy8ga2V5OiBieXRlcwoJZnJhbWVfZGlnIDIgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCglmcmFtZV9kaWcgLTIgLy8gYnl0ZXNWYWw6IGJ5dGVzCgljb25jYXQKCWJveF9wdXQKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTY1CgkvLyByZXR1cm4gdHJ1ZQoJaW50YyAxIC8vIDEKCWIgKmFkZEJ5dGVzVG9TZXQqcmV0dXJuCgoqaWY5MF9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTY4CgkvLyByZXR1cm4gZmFsc2UKCWludGMgMCAvLyAwCgoqYWRkQnl0ZXNUb1NldCpyZXR1cm46CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA1CglyZXRzdWIKCi8vIHJlbW92ZUFkZHJGcm9tU2V0KGtleTogYnl0ZXMsIGFkZHJlc3M6IEFkZHJlc3MpOiBib29sZWFuCi8vCi8vIFJlbW92ZXMgdGhlIHNwZWNpZmllZCBhZGRyZXNzIGZyb20gdGhlIHNldCBpZGVudGlmaWVkIGJ5IHRoZSBnaXZlbiBrZXkuCi8vCi8vIEBwYXJhbSB7Ynl0ZXN9IGtleSAtIFRoZSBrZXkgdGhhdCBpZGVudGlmaWVzIHRoZSBzZXQuCi8vIEBwYXJhbSB7QWRkcmVzc30gYWRkcmVzcyAtIFRoZSBhZGRyZXNzIHRvIHJlbW92ZSBmcm9tIHRoZSBzZXQuCi8vIEByZXR1cm5zIHtib29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgYWRkcmVzcyB3YXMgc3VjY2Vzc2Z1bGx5IHJlbW92ZWQsIGZhbHNlIG90aGVyd2lzZS4KcmVtb3ZlQWRkckZyb21TZXQ6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoJZHVwbiA1CgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU3OQoJLy8gYnl0ZXNPZlNldCA9IHRoaXMuYm94ZXMoa2V5KS52YWx1ZQoJZnJhbWVfZGlnIC0xIC8vIGtleTogYnl0ZXMKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94ZXMoa2V5KS52YWx1ZQoJYXNzZXJ0CglmcmFtZV9idXJ5IDAgLy8gYnl0ZXNPZlNldDogYnl0ZVtdCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU4MAoJLy8gbGltaXQgPSBieXRlc09mU2V0Lmxlbmd0aCAvIDMyCglmcmFtZV9kaWcgMCAvLyBieXRlc09mU2V0OiBieXRlW10KCWxlbgoJaW50YyAzIC8vIDMyCgkvCglmcmFtZV9idXJ5IDEgLy8gbGltaXQ6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1ODIKCS8vIGFzc2VydChhZGRyZXNzICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzKQoJZnJhbWVfZGlnIC0yIC8vIGFkZHJlc3M6IEFkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1ODQKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgbGltaXQ7IGkgKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDIgLy8gaTogdWludDY0CgoqZm9yXzEzOgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU4NAoJLy8gaSA8IGxpbWl0CglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIGxpbWl0OiB1aW50NjQKCTwKCWJ6ICpmb3JfMTNfZW5kCgoJLy8gKmlmOTFfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTg1CgkvLyBleHRyYWN0MyhieXRlc09mU2V0LCBpICogMzIsIDMyKSA9PT0gcmF3Qnl0ZXMoYWRkcmVzcykKCWZyYW1lX2RpZyAwIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDMgLy8gMzIKCSoKCWludGMgMyAvLyAzMgoJZXh0cmFjdDMKCWZyYW1lX2RpZyAtMiAvLyBhZGRyZXNzOiBBZGRyZXNzCgk9PQoJYnogKmlmOTFfZW5kCgoJLy8gKmlmOTFfY29uc2VxdWVudAoJLy8gKmlmOTJfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTg2CgkvLyBpID09PSBsaW1pdCAtIDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gbGltaXQ6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCS0KCT09CglieiAqaWY5Ml9lbmQKCgkvLyAqaWY5Ml9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTg3CgkvLyB0aGlzLmJveGVzKGtleSkuZGVsZXRlKCkKCWZyYW1lX2RpZyAtMSAvLyBrZXk6IGJ5dGVzCglib3hfZGVsCgoJLy8gKmlmOTNfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTkwCgkvLyBpID4gMAoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnRjIDAgLy8gMAoJPgoJYnogKmlmOTNfZW5kCgoJLy8gKmlmOTNfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU5MQoJLy8gdGhpcy5ib3hlcyhrZXkpLnZhbHVlID0gZXh0cmFjdDMoYnl0ZXNPZlNldCwgMCwgaSAqIDMyKQoJZnJhbWVfZGlnIC0xIC8vIGtleTogYnl0ZXMKCWZyYW1lX2RpZyAwIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoJaW50YyAwIC8vIDAKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDMyCgkqCglleHRyYWN0MwoJYm94X3B1dAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1OTMKCS8vIGFsbFplcm8gPSB0cnVlCglpbnRjIDEgLy8gMQoJZnJhbWVfYnVyeSAzIC8vIGFsbFplcm86IGJvb2wKCgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTk0CgkvLyB6ZXJvQWRkciA9IGdsb2JhbHMuemVyb0FkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJZnJhbWVfYnVyeSA0IC8vIHplcm9BZGRyOiBhZGRyZXNzCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU5NQoJLy8gZm9yIChsZXQgaiA9IDA7IGogPCBsaW1pdCAtIDE7IGogKz0gMSkKCWludGMgMCAvLyAwCglmcmFtZV9idXJ5IDUgLy8gajogdWludDY0CgoqZm9yXzE0OgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU5NQoJLy8gaiA8IGxpbWl0IC0gMQoJZnJhbWVfZGlnIDUgLy8gajogdWludDY0CglmcmFtZV9kaWcgMSAvLyBsaW1pdDogdWludDY0CglpbnRjIDEgLy8gMQoJLQoJPAoJYnogKmZvcl8xNF9lbmQKCgkvLyAqaWY5NF9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE1OTYKCS8vIGV4dHJhY3QzKGJ5dGVzT2ZTZXQsIGogKiAzMiwgMzIpICE9PSByYXdCeXRlcyh6ZXJvQWRkcikKCWZyYW1lX2RpZyAwIC8vIGJ5dGVzT2ZTZXQ6IGJ5dGVbXQoJZnJhbWVfZGlnIDUgLy8gajogdWludDY0CglpbnRjIDMgLy8gMzIKCSoKCWludGMgMyAvLyAzMgoJZXh0cmFjdDMKCWZyYW1lX2RpZyA0IC8vIHplcm9BZGRyOiBhZGRyZXNzCgkhPQoJYnogKmlmOTRfZW5kCgoJLy8gKmlmOTRfY29uc2VxdWVudAoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTU5NwoJLy8gYWxsWmVybyA9IGZhbHNlCglpbnRjIDAgLy8gMAoJZnJhbWVfYnVyeSAzIC8vIGFsbFplcm86IGJvb2wKCWIgKmZvcl8xNF9lbmQKCippZjk0X2VuZDoKCipmb3JfMTRfY29udGludWU6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTk1CgkvLyBqICs9IDEKCWZyYW1lX2RpZyA1IC8vIGo6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgNSAvLyBqOiB1aW50NjQKCWIgKmZvcl8xNAoKKmZvcl8xNF9lbmQ6CgkvLyAqaWY5NV9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE2MDEKCS8vIGFsbFplcm8KCWZyYW1lX2RpZyAzIC8vIGFsbFplcm86IGJvb2wKCWJ6ICppZjk1X2VuZAoKCS8vICppZjk1X2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE2MDIKCS8vIHRoaXMuYm94ZXMoa2V5KS5kZWxldGUoKQoJZnJhbWVfZGlnIC0xIC8vIGtleTogYnl0ZXMKCWJveF9kZWwKCippZjk1X2VuZDoKCippZjkzX2VuZDoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE2MDUKCS8vIHJldHVybiB0cnVlCglpbnRjIDEgLy8gMQoJYiAqcmVtb3ZlQWRkckZyb21TZXQqcmV0dXJuCgoqaWY5Ml9lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNjA4CgkvLyB0aGlzLmJveGVzKGtleSkucmVwbGFjZShpICogMzIsIHJhd0J5dGVzKGdsb2JhbHMuemVyb0FkZHJlc3MpKQoJZnJhbWVfZGlnIC0xIC8vIGtleTogYnl0ZXMKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAzIC8vIDMyCgkqCglnbG9iYWwgWmVyb0FkZHJlc3MKCWJveF9yZXBsYWNlCgoJLy8gY29udHJhY3RzL05GREluc3RhbmNlLmFsZ28udHM6MTYwOQoJLy8gcmV0dXJuIHRydWUKCWludGMgMSAvLyAxCgliICpyZW1vdmVBZGRyRnJvbVNldCpyZXR1cm4KCippZjkxX2VuZDoKCipmb3JfMTNfY29udGludWU6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNTg0CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50YyAxIC8vIDEKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl8xMwoKKmZvcl8xM19lbmQ6CgkvLyBjb250cmFjdHMvTkZESW5zdGFuY2UuYWxnby50czoxNjEyCgkvLyByZXR1cm4gZmFsc2UKCWludGMgMCAvLyAwCgoqcmVtb3ZlQWRkckZyb21TZXQqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNQoJcmV0c3ViCgovLyBtdXN0QmVDYWxsZWRCeU93bmVyKCk6IHZvaWQKbXVzdEJlQ2FsbGVkQnlPd25lcjoKCXByb3RvIDAgMAoKCS8vIGNvbnRyYWN0cy9ORkRJbnN0YW5jZS5hbGdvLnRzOjE2MTcKCS8vIGFzc2VydChyYXdCeXRlcyh0aGlzLnR4bi5zZW5kZXIpID09PSB0aGlzLmdsb2JhbFN0YXRlKE5GRF9LRVlfT1dORVIpLnZhbHVlLCAnc2VuZGVyIG11c3QgYmUgb3duZXInKQoJdHhuIFNlbmRlcgoJYnl0ZWMgMSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXQKCT09CgoJLy8gc2VuZGVyIG11c3QgYmUgb3duZXIKCWFzc2VydAoJcmV0c3ViCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHgwZGNhNTJjMSAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKHN0cmluZyxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYWRkcmVzcyl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MzE3MmNhOWQgLy8gbWV0aG9kICJnYXMoKXZvaWQiCglwdXNoYnl0ZXMgMHgwNmRmMmU1YiAvLyBtZXRob2QgIm1pbnRBc2Eoc3RyaW5nLHN0cmluZyl2b2lkIgoJcHVzaGJ5dGVzIDB4NTEzMmRmNzUgLy8gbWV0aG9kICJkZWxldGVGaWVsZHMoYnl0ZVtdW10pdm9pZCIKCXB1c2hieXRlcyAweDBkMjZjNTkxIC8vIG1ldGhvZCAidXBkYXRlU2VnbWVudENvdW50KHN0cmluZyx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweDdjNWFlNDk1IC8vIG1ldGhvZCAiZ2V0RmllbGRVcGRhdGVDb3N0KGJ5dGVbXVtdKXVpbnQ2NCIKCXB1c2hieXRlcyAweDc4ZjQyNzExIC8vIG1ldGhvZCAidXBkYXRlRmllbGRzKGJ5dGVbXVtdKXZvaWQiCglwdXNoYnl0ZXMgMHg2YzEzZWRlNCAvLyBtZXRob2QgInJlYWRGaWVsZChieXRlW10pYnl0ZVtdIgoJcHVzaGJ5dGVzIDB4NTA3NmQ5Y2EgLy8gbWV0aG9kICJvZmZlckZvclNhbGUodWludDY0LGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweDk5ZjVkNTBkIC8vIG1ldGhvZCAiY2FuY2VsU2FsZSgpdm9pZCIKCXB1c2hieXRlcyAweDkxMzExMmVmIC8vIG1ldGhvZCAicG9zdE9mZmVyKHVpbnQ2NCxzdHJpbmcpdm9pZCIKCXB1c2hieXRlcyAweGQ4NTMzN2M0IC8vIG1ldGhvZCAibWludFBheW91dCh1aW50NjQsdWludDY0KSh1aW50NjQsYWRkcmVzcyx1aW50NjQsYWRkcmVzcyx1aW50NjQpIgoJcHVzaGJ5dGVzIDB4YTM5MmFlODIgLy8gbWV0aG9kICJwdXJjaGFzZShwYXkpdm9pZCIKCXB1c2hieXRlcyAweGQ0NDM5NTJhIC8vIG1ldGhvZCAiaXNBZGRyZXNzSW5GaWVsZChzdHJpbmcsYWRkcmVzcylib29sIgoJcHVzaGJ5dGVzIDB4NTBmNDkwYzIgLy8gbWV0aG9kICJnZXRSZW5ld1ByaWNlKCl1aW50NjQiCglwdXNoYnl0ZXMgMHg3NjJlODJkYSAvLyBtZXRob2QgInVwZGF0ZUhhc2goYnl0ZVtdKXZvaWQiCglwdXNoYnl0ZXMgMHg4ZWJjMmM4MyAvLyBtZXRob2QgImNvbnRyYWN0TG9jayhib29sKXZvaWQiCglwdXNoYnl0ZXMgMHhjZDUzNThhNiAvLyBtZXRob2QgInNlZ21lbnRMb2NrKGJvb2wsdWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHgzYTY1N2Q3NyAvLyBtZXRob2QgInZhdWx0T3B0SW5Mb2NrKGJvb2wpdm9pZCIKCXB1c2hieXRlcyAweDQxM2QxNTIzIC8vIG1ldGhvZCAidmF1bHRPcHRJbih1aW50NjRbXSl2b2lkIgoJcHVzaGJ5dGVzIDB4NjY4MjFjMWEgLy8gbWV0aG9kICJ2YXVsdFNlbmQodWludDY0LGFkZHJlc3Msc3RyaW5nLHVpbnQ2NCx1aW50NjRbXSl2b2lkIgoJcHVzaGJ5dGVzIDB4NzdmZDViNzQgLy8gbWV0aG9kICJyZW5ldyhwYXkpdm9pZCIKCXB1c2hieXRlcyAweDk3YjZkODZjIC8vIG1ldGhvZCAic2V0UHJpbWFyeUFkZHJlc3Moc3RyaW5nLGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweDg1Y2NlZDU3IC8vIG1ldGhvZCAicmVnaXN0cnlBZGRpbmdWZXJpZmllZEFkZHJlc3Moc3RyaW5nLHN0cmluZylib29sIgoJcHVzaGJ5dGVzIDB4YjE4OTBhNzUgLy8gbWV0aG9kICJyZWdpc3RyeVJlbW92aW5nVmVyaWZpZWRBZGRyZXNzKHN0cmluZyxhZGRyZXNzLGFkZHJlc3MpYm9vbCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZ2FzICphYmlfcm91dGVfbWludEFzYSAqYWJpX3JvdXRlX2RlbGV0ZUZpZWxkcyAqYWJpX3JvdXRlX3VwZGF0ZVNlZ21lbnRDb3VudCAqYWJpX3JvdXRlX2dldEZpZWxkVXBkYXRlQ29zdCAqYWJpX3JvdXRlX3VwZGF0ZUZpZWxkcyAqYWJpX3JvdXRlX3JlYWRGaWVsZCAqYWJpX3JvdXRlX29mZmVyRm9yU2FsZSAqYWJpX3JvdXRlX2NhbmNlbFNhbGUgKmFiaV9yb3V0ZV9wb3N0T2ZmZXIgKmFiaV9yb3V0ZV9taW50UGF5b3V0ICphYmlfcm91dGVfcHVyY2hhc2UgKmFiaV9yb3V0ZV9pc0FkZHJlc3NJbkZpZWxkICphYmlfcm91dGVfZ2V0UmVuZXdQcmljZSAqYWJpX3JvdXRlX3VwZGF0ZUhhc2ggKmFiaV9yb3V0ZV9jb250cmFjdExvY2sgKmFiaV9yb3V0ZV9zZWdtZW50TG9jayAqYWJpX3JvdXRlX3ZhdWx0T3B0SW5Mb2NrICphYmlfcm91dGVfdmF1bHRPcHRJbiAqYWJpX3JvdXRlX3ZhdWx0U2VuZCAqYWJpX3JvdXRlX3JlbmV3ICphYmlfcm91dGVfc2V0UHJpbWFyeUFkZHJlc3MgKmFiaV9yb3V0ZV9yZWdpc3RyeUFkZGluZ1ZlcmlmaWVkQWRkcmVzcyAqYWJpX3JvdXRlX3JlZ2lzdHJ5UmVtb3ZpbmdWZXJpZmllZEFkZHJlc3MKCgkvLyAhISEhIFdBUk5JTkc6IG5vbi1BQkkgcm91dGluZwoJY2FsbHN1YiBvbkNhbGwKCWludGMgMSAvLyAxCglyZXR1cm4KCipjYWxsX1VwZGF0ZUFwcGxpY2F0aW9uOgoJcHVzaGJ5dGVzIDB4MTc0NzQwNWIgLy8gbWV0aG9kICJ1cGRhdGVBcHBsaWNhdGlvbihzdHJpbmcpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdXBkYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBVcGRhdGVBcHBsaWNhdGlvbgoJZXJyCgoqaW50VG9Bc2NpaToKCXByb3RvIDEgMQoJcHVzaGJ5dGVzIDB4MzAzMTMyMzMzNDM1MzYzNzM4MzkgLy8gIjAxMjM0NTY3ODkiCglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglpbnRjIDEgLy8gMQoJZXh0cmFjdDMKCXJldHN1YgoJCgoqaXRvYToKCXByb3RvIDEgMQoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJaW50YyAwIC8vIDAKCT09CglieiAqaXRvYV9pZl9lbmQKCWJ5dGVjIDIzIC8vIDB4MzAKCXJldHN1YgoKKml0b2FfaWZfZW5kOgoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJaW50YyAxMSAvLyAxMAoJLwoJaW50YyAwIC8vIDAKCT4KCWJ6ICppdG9hX3Rlcm5hcnlfZmFsc2UKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCWludGMgMTEgLy8gMTAKCS8KCWNhbGxzdWIgKml0b2EKCWIgKml0b2FfdGVybmFyeV9lbmQKCippdG9hX3Rlcm5hcnlfZmFsc2U6CglieXRlYyAwIC8vICAiIgoKKml0b2FfdGVybmFyeV9lbmQ6CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglpbnRjIDExIC8vIDEwCgklCgljYWxsc3ViICppbnRUb0FzY2lpCgljb25jYXQKCXJldHN1YgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi","clear":"I3ByYWdtYSB2ZXJzaW9uIDEw"},"templateVariables":{"adminAsaId":{"type":"uint64"},"registryAppId":{"type":"uint64"}},"scratchVariables":{"adminAsaId":{"type":"uint64","slot":200},"registryAppId":{"type":"uint64","slot":201}},"compilerInfo":{"compiler":"algod","compilerVersion":{"major":3,"minor":26,"patch":229321,"commitHash":"43cb5632"}}} as unknown as Arc56Contract + +/** + * A state record containing binary data + */ +export interface BinaryState { + /** + * Gets the state value as a Uint8Array + */ + asByteArray(): Uint8Array | undefined + /** + * Gets the state value as a string + */ + asString(): string | undefined +} + +class BinaryStateValue implements BinaryState { + constructor(private value: Uint8Array | undefined) {} + + asByteArray(): Uint8Array | undefined { + return this.value + } + + asString(): string | undefined { + return this.value !== undefined ? Buffer.from(this.value).toString('utf-8') : undefined + } +} + +/** + * Expands types for IntelliSense so they are more human readable + * See https://stackoverflow.com/a/69288824 + */ +export type Expand = T extends (...args: infer A) => infer R + ? (...args: Expand) => Expand + : T extends infer O + ? { [K in keyof O]: O[K] } + : never + + +// Type definitions for ARC-56 structs + +export type PayoutInfo = { + amountToSeller: bigint, + commissionAddress: string, + amountToCommission: bigint, + segmentRootOwner: string, + amountToSegmentRoot: bigint +} + + +/** + * Converts the ABI tuple representation of a PayoutInfo to the struct representation + */ +export function PayoutInfoFromTuple(abiTuple: [bigint, string, bigint, string, bigint]) { + return getABIStructFromABITuple(abiTuple, APP_SPEC.structs.PayoutInfo, APP_SPEC.structs) as PayoutInfo +} + +/** + * Deploy-time template variables + */ +export type TemplateVariables = { + adminAsaId: bigint, + registryAppId: bigint, +} + +/** + * The argument types for the NfdInstance contract + */ +export type NfdInstanceArgs = { + /** + * The object representation of the arguments for each method + */ + obj: { + 'createApplication(string,address,address,uint64,uint64,address,uint64,address,uint64,uint64,address)void': { + nfdName: string + seller: string + buyer: string + purchaseAmount: bigint | number + expTime: bigint | number + commission1Addr: string + commission1Pct: bigint | number + commission2Addr: string + commission2Pct: bigint | number + segmentRootAppId: bigint | number + segmentRootCommissionAddr: string + } + 'updateApplication(string)void': { + versionNum: string + } + 'gas()void': Record + 'mintAsa(string,string)void': { + nfdName: string + url: string + } + 'deleteFields(byte[][])void': { + fieldNames: Uint8Array[] + } + 'updateSegmentCount(string,uint64)void': { + childNfdName: string + childNfdAppId: bigint | number + } + 'getFieldUpdateCost(byte[][])uint64': { + fieldAndVals: Uint8Array[] + } + 'updateFields(byte[][])void': { + fieldAndVals: Uint8Array[] + } + 'readField(byte[])byte[]': { + fieldName: Uint8Array + } + 'offerForSale(uint64,address)void': { + sellAmount: bigint | number + reservedFor: string + } + 'cancelSale()void': Record + 'postOffer(uint64,string)void': { + offer: bigint | number + note: string + } + 'mintPayout(uint64,uint64)(uint64,address,uint64,address,uint64)': { + oneYearPrice: bigint | number + segmentPlatformCostInAlgo: bigint | number + } + 'purchase(pay)void': { + payment: AppMethodCallTransactionArgument + } + 'isAddressInField(string,address)bool': { + fieldName: string + address: string + } + 'getRenewPrice()uint64': Record + 'updateHash(byte[])void': { + hash: Uint8Array + } + 'contractLock(bool)void': { + lock: boolean + } + 'segmentLock(bool,uint64)void': { + lock: boolean + usdPrice: bigint | number + } + 'vaultOptInLock(bool)void': { + lock: boolean + } + 'vaultOptIn(uint64[])void': { + assets: bigint[] | number[] + } + 'vaultSend(uint64,address,string,uint64,uint64[])void': { + amount: bigint | number + receiver: string + note: string + asset: bigint | number + otherAssets: bigint[] | number[] + } + 'renew(pay)void': { + /** + * The payment transaction from which the renewal period is determined.. + */ + payment: AppMethodCallTransactionArgument + } + 'setPrimaryAddress(string,address)void': { + fieldName: string + address: string + } + 'registryAddingVerifiedAddress(string,string)bool': { + /** + * - MUST START with u.cav. (!) + gets 'added' to 'set' in next arg - must be fixed-sized bytes + + */ + fieldBeingVerified: string + /** + * (must BE v.ca[...].as) + */ + fieldSetName: string + } + 'registryRemovingVerifiedAddress(string,address,address)bool': { + /** + * The field being changed in the address registry. + */ + fieldBeingChanged: string + /** + * The address to be removed from the field. + */ + address: string + /** + * the address to send reclaimed MBR (if any) + boolean - true if valid removed + + */ + mbrRefundDest: string + } + } + /** + * The tuple representation of the arguments for each method + */ + tuple: { + 'createApplication(string,address,address,uint64,uint64,address,uint64,address,uint64,uint64,address)void': [nfdName: string, seller: string, buyer: string, purchaseAmount: bigint | number, expTime: bigint | number, commission1Addr: string, commission1Pct: bigint | number, commission2Addr: string, commission2Pct: bigint | number, segmentRootAppId: bigint | number, segmentRootCommissionAddr: string] + 'updateApplication(string)void': [versionNum: string] + 'gas()void': [] + 'mintAsa(string,string)void': [nfdName: string, url: string] + 'deleteFields(byte[][])void': [fieldNames: Uint8Array[]] + 'updateSegmentCount(string,uint64)void': [childNfdName: string, childNfdAppId: bigint | number] + 'getFieldUpdateCost(byte[][])uint64': [fieldAndVals: Uint8Array[]] + 'updateFields(byte[][])void': [fieldAndVals: Uint8Array[]] + 'readField(byte[])byte[]': [fieldName: Uint8Array] + 'offerForSale(uint64,address)void': [sellAmount: bigint | number, reservedFor: string] + 'cancelSale()void': [] + 'postOffer(uint64,string)void': [offer: bigint | number, note: string] + 'mintPayout(uint64,uint64)(uint64,address,uint64,address,uint64)': [oneYearPrice: bigint | number, segmentPlatformCostInAlgo: bigint | number] + 'purchase(pay)void': [payment: AppMethodCallTransactionArgument] + 'isAddressInField(string,address)bool': [fieldName: string, address: string] + 'getRenewPrice()uint64': [] + 'updateHash(byte[])void': [hash: Uint8Array] + 'contractLock(bool)void': [lock: boolean] + 'segmentLock(bool,uint64)void': [lock: boolean, usdPrice: bigint | number] + 'vaultOptInLock(bool)void': [lock: boolean] + 'vaultOptIn(uint64[])void': [assets: bigint[] | number[]] + 'vaultSend(uint64,address,string,uint64,uint64[])void': [amount: bigint | number, receiver: string, note: string, asset: bigint | number, otherAssets: bigint[] | number[]] + 'renew(pay)void': [payment: AppMethodCallTransactionArgument] + 'setPrimaryAddress(string,address)void': [fieldName: string, address: string] + 'registryAddingVerifiedAddress(string,string)bool': [fieldBeingVerified: string, fieldSetName: string] + 'registryRemovingVerifiedAddress(string,address,address)bool': [fieldBeingChanged: string, address: string, mbrRefundDest: string] + } +} + +/** + * The return type for each method + */ +export type NfdInstanceReturns = { + 'createApplication(string,address,address,uint64,uint64,address,uint64,address,uint64,uint64,address)void': void + 'updateApplication(string)void': void + 'gas()void': void + 'mintAsa(string,string)void': void + 'deleteFields(byte[][])void': void + 'updateSegmentCount(string,uint64)void': void + 'getFieldUpdateCost(byte[][])uint64': bigint + 'updateFields(byte[][])void': void + 'readField(byte[])byte[]': Uint8Array + 'offerForSale(uint64,address)void': void + 'cancelSale()void': void + 'postOffer(uint64,string)void': void + 'mintPayout(uint64,uint64)(uint64,address,uint64,address,uint64)': PayoutInfo + 'purchase(pay)void': void + 'isAddressInField(string,address)bool': boolean + 'getRenewPrice()uint64': bigint + 'updateHash(byte[])void': void + 'contractLock(bool)void': void + 'segmentLock(bool,uint64)void': void + 'vaultOptInLock(bool)void': void + 'vaultOptIn(uint64[])void': void + 'vaultSend(uint64,address,string,uint64,uint64[])void': void + 'renew(pay)void': void + 'setPrimaryAddress(string,address)void': void + 'registryAddingVerifiedAddress(string,string)bool': boolean + 'registryRemovingVerifiedAddress(string,address,address)bool': boolean +} + +/** + * Defines the types of available calls and state of the NfdInstance smart contract. + */ +export type NfdInstanceTypes = { + /** + * Maps method signatures / names to their argument and return types. + */ + methods: + & Record<'createApplication(string,address,address,uint64,uint64,address,uint64,address,uint64,uint64,address)void' | 'createApplication', { + argsObj: NfdInstanceArgs['obj']['createApplication(string,address,address,uint64,uint64,address,uint64,address,uint64,uint64,address)void'] + argsTuple: NfdInstanceArgs['tuple']['createApplication(string,address,address,uint64,uint64,address,uint64,address,uint64,uint64,address)void'] + returns: NfdInstanceReturns['createApplication(string,address,address,uint64,uint64,address,uint64,address,uint64,uint64,address)void'] + }> + & Record<'updateApplication(string)void' | 'updateApplication', { + argsObj: NfdInstanceArgs['obj']['updateApplication(string)void'] + argsTuple: NfdInstanceArgs['tuple']['updateApplication(string)void'] + returns: NfdInstanceReturns['updateApplication(string)void'] + }> + & Record<'gas()void' | 'gas', { + argsObj: NfdInstanceArgs['obj']['gas()void'] + argsTuple: NfdInstanceArgs['tuple']['gas()void'] + returns: NfdInstanceReturns['gas()void'] + }> + & Record<'mintAsa(string,string)void' | 'mintAsa', { + argsObj: NfdInstanceArgs['obj']['mintAsa(string,string)void'] + argsTuple: NfdInstanceArgs['tuple']['mintAsa(string,string)void'] + returns: NfdInstanceReturns['mintAsa(string,string)void'] + }> + & Record<'deleteFields(byte[][])void' | 'deleteFields', { + argsObj: NfdInstanceArgs['obj']['deleteFields(byte[][])void'] + argsTuple: NfdInstanceArgs['tuple']['deleteFields(byte[][])void'] + returns: NfdInstanceReturns['deleteFields(byte[][])void'] + }> + & Record<'updateSegmentCount(string,uint64)void' | 'updateSegmentCount', { + argsObj: NfdInstanceArgs['obj']['updateSegmentCount(string,uint64)void'] + argsTuple: NfdInstanceArgs['tuple']['updateSegmentCount(string,uint64)void'] + returns: NfdInstanceReturns['updateSegmentCount(string,uint64)void'] + }> + & Record<'getFieldUpdateCost(byte[][])uint64' | 'getFieldUpdateCost', { + argsObj: NfdInstanceArgs['obj']['getFieldUpdateCost(byte[][])uint64'] + argsTuple: NfdInstanceArgs['tuple']['getFieldUpdateCost(byte[][])uint64'] + returns: NfdInstanceReturns['getFieldUpdateCost(byte[][])uint64'] + }> + & Record<'updateFields(byte[][])void' | 'updateFields', { + argsObj: NfdInstanceArgs['obj']['updateFields(byte[][])void'] + argsTuple: NfdInstanceArgs['tuple']['updateFields(byte[][])void'] + returns: NfdInstanceReturns['updateFields(byte[][])void'] + }> + & Record<'readField(byte[])byte[]' | 'readField', { + argsObj: NfdInstanceArgs['obj']['readField(byte[])byte[]'] + argsTuple: NfdInstanceArgs['tuple']['readField(byte[])byte[]'] + returns: NfdInstanceReturns['readField(byte[])byte[]'] + }> + & Record<'offerForSale(uint64,address)void' | 'offerForSale', { + argsObj: NfdInstanceArgs['obj']['offerForSale(uint64,address)void'] + argsTuple: NfdInstanceArgs['tuple']['offerForSale(uint64,address)void'] + returns: NfdInstanceReturns['offerForSale(uint64,address)void'] + }> + & Record<'cancelSale()void' | 'cancelSale', { + argsObj: NfdInstanceArgs['obj']['cancelSale()void'] + argsTuple: NfdInstanceArgs['tuple']['cancelSale()void'] + returns: NfdInstanceReturns['cancelSale()void'] + }> + & Record<'postOffer(uint64,string)void' | 'postOffer', { + argsObj: NfdInstanceArgs['obj']['postOffer(uint64,string)void'] + argsTuple: NfdInstanceArgs['tuple']['postOffer(uint64,string)void'] + returns: NfdInstanceReturns['postOffer(uint64,string)void'] + }> + & Record<'mintPayout(uint64,uint64)(uint64,address,uint64,address,uint64)' | 'mintPayout', { + argsObj: NfdInstanceArgs['obj']['mintPayout(uint64,uint64)(uint64,address,uint64,address,uint64)'] + argsTuple: NfdInstanceArgs['tuple']['mintPayout(uint64,uint64)(uint64,address,uint64,address,uint64)'] + returns: NfdInstanceReturns['mintPayout(uint64,uint64)(uint64,address,uint64,address,uint64)'] + }> + & Record<'purchase(pay)void' | 'purchase', { + argsObj: NfdInstanceArgs['obj']['purchase(pay)void'] + argsTuple: NfdInstanceArgs['tuple']['purchase(pay)void'] + returns: NfdInstanceReturns['purchase(pay)void'] + }> + & Record<'isAddressInField(string,address)bool' | 'isAddressInField', { + argsObj: NfdInstanceArgs['obj']['isAddressInField(string,address)bool'] + argsTuple: NfdInstanceArgs['tuple']['isAddressInField(string,address)bool'] + returns: NfdInstanceReturns['isAddressInField(string,address)bool'] + }> + & Record<'getRenewPrice()uint64' | 'getRenewPrice', { + argsObj: NfdInstanceArgs['obj']['getRenewPrice()uint64'] + argsTuple: NfdInstanceArgs['tuple']['getRenewPrice()uint64'] + returns: NfdInstanceReturns['getRenewPrice()uint64'] + }> + & Record<'updateHash(byte[])void' | 'updateHash', { + argsObj: NfdInstanceArgs['obj']['updateHash(byte[])void'] + argsTuple: NfdInstanceArgs['tuple']['updateHash(byte[])void'] + returns: NfdInstanceReturns['updateHash(byte[])void'] + }> + & Record<'contractLock(bool)void' | 'contractLock', { + argsObj: NfdInstanceArgs['obj']['contractLock(bool)void'] + argsTuple: NfdInstanceArgs['tuple']['contractLock(bool)void'] + returns: NfdInstanceReturns['contractLock(bool)void'] + }> + & Record<'segmentLock(bool,uint64)void' | 'segmentLock', { + argsObj: NfdInstanceArgs['obj']['segmentLock(bool,uint64)void'] + argsTuple: NfdInstanceArgs['tuple']['segmentLock(bool,uint64)void'] + returns: NfdInstanceReturns['segmentLock(bool,uint64)void'] + }> + & Record<'vaultOptInLock(bool)void' | 'vaultOptInLock', { + argsObj: NfdInstanceArgs['obj']['vaultOptInLock(bool)void'] + argsTuple: NfdInstanceArgs['tuple']['vaultOptInLock(bool)void'] + returns: NfdInstanceReturns['vaultOptInLock(bool)void'] + }> + & Record<'vaultOptIn(uint64[])void' | 'vaultOptIn', { + argsObj: NfdInstanceArgs['obj']['vaultOptIn(uint64[])void'] + argsTuple: NfdInstanceArgs['tuple']['vaultOptIn(uint64[])void'] + returns: NfdInstanceReturns['vaultOptIn(uint64[])void'] + }> + & Record<'vaultSend(uint64,address,string,uint64,uint64[])void' | 'vaultSend', { + argsObj: NfdInstanceArgs['obj']['vaultSend(uint64,address,string,uint64,uint64[])void'] + argsTuple: NfdInstanceArgs['tuple']['vaultSend(uint64,address,string,uint64,uint64[])void'] + returns: NfdInstanceReturns['vaultSend(uint64,address,string,uint64,uint64[])void'] + }> + & Record<'renew(pay)void' | 'renew', { + argsObj: NfdInstanceArgs['obj']['renew(pay)void'] + argsTuple: NfdInstanceArgs['tuple']['renew(pay)void'] + returns: NfdInstanceReturns['renew(pay)void'] + }> + & Record<'setPrimaryAddress(string,address)void' | 'setPrimaryAddress', { + argsObj: NfdInstanceArgs['obj']['setPrimaryAddress(string,address)void'] + argsTuple: NfdInstanceArgs['tuple']['setPrimaryAddress(string,address)void'] + returns: NfdInstanceReturns['setPrimaryAddress(string,address)void'] + }> + & Record<'registryAddingVerifiedAddress(string,string)bool' | 'registryAddingVerifiedAddress', { + argsObj: NfdInstanceArgs['obj']['registryAddingVerifiedAddress(string,string)bool'] + argsTuple: NfdInstanceArgs['tuple']['registryAddingVerifiedAddress(string,string)bool'] + /** + * true if added or already present, false otherwise + */ + returns: NfdInstanceReturns['registryAddingVerifiedAddress(string,string)bool'] + }> + & Record<'registryRemovingVerifiedAddress(string,address,address)bool' | 'registryRemovingVerifiedAddress', { + argsObj: NfdInstanceArgs['obj']['registryRemovingVerifiedAddress(string,address,address)bool'] + argsTuple: NfdInstanceArgs['tuple']['registryRemovingVerifiedAddress(string,address,address)bool'] + returns: NfdInstanceReturns['registryRemovingVerifiedAddress(string,address,address)bool'] + }> + /** + * Defines the shape of the state of the application. + */ + state: { + global: { + keys: {} + maps: { + globalState: Map + } + } + box: { + keys: {} + maps: { + boxes: Map + } + } + } +} + +/** + * Defines the possible abi call signatures. + */ +export type NfdInstanceSignatures = keyof NfdInstanceTypes['methods'] +/** + * Defines the possible abi call signatures for methods that return a non-void value. + */ +export type NfdInstanceNonVoidMethodSignatures = keyof NfdInstanceTypes['methods'] extends infer T ? T extends keyof NfdInstanceTypes['methods'] ? MethodReturn extends void ? never : T : never : never +/** + * Defines an object containing all relevant parameters for a single call to the contract. + */ +export type CallParams = Expand< + Omit & + { + /** The args for the ABI method call, either as an ordered array or an object */ + args: Expand + } +> +/** + * Maps a method signature from the NfdInstance smart contract to the method's arguments in either tuple or struct form + */ +export type MethodArgs = NfdInstanceTypes['methods'][TSignature]['argsObj' | 'argsTuple'] +/** + * Maps a method signature from the NfdInstance smart contract to the method's return type + */ +export type MethodReturn = NfdInstanceTypes['methods'][TSignature]['returns'] + +/** + * Defines the shape of the keyed global state of the application. + */ +export type GlobalKeysState = NfdInstanceTypes['state']['global']['keys'] + +/** + * Defines the shape of the keyed box state of the application. + */ +export type BoxKeysState = NfdInstanceTypes['state']['box']['keys'] + + +/** + * Defines supported create method params for this smart contract + */ +export type NfdInstanceCreateCallParams = + | Expand & {method: 'createApplication'} & {onComplete?: OnApplicationComplete.NoOpOC} & CreateSchema> + | Expand & {method: 'createApplication(string,address,address,uint64,uint64,address,uint64,address,uint64,uint64,address)void'} & {onComplete?: OnApplicationComplete.NoOpOC} & CreateSchema> +/** + * Defines supported update method params for this smart contract + */ +export type NfdInstanceUpdateCallParams = + | Expand & {method: 'updateApplication'}> + | Expand & {method: 'updateApplication(string)void'}> +/** + * Defines arguments required for the deploy method. + */ +export type NfdInstanceDeployParams = Expand & { + /** + * Create transaction parameters to use if a create needs to be issued as part of deployment; use `method` to define ABI call (if available) or leave out for a bare call (if available) + */ + createParams?: NfdInstanceCreateCallParams + /** + * Update transaction parameters to use if a create needs to be issued as part of deployment; use `method` to define ABI call (if available) or leave out for a bare call (if available) + */ + updateParams?: NfdInstanceUpdateCallParams +}> + + +/** + * Exposes methods for constructing `AppClient` params objects for ABI calls to the NfdInstance smart contract + */ +export abstract class NfdInstanceParamsFactory { + /** + * Gets available create ABI call param factories + */ + static get create() { + return { + _resolveByMethod(params: TParams) { + switch(params.method) { + case 'createApplication': + case 'createApplication(string,address,address,uint64,uint64,address,uint64,address,uint64,uint64,address)void': + return NfdInstanceParamsFactory.create.createApplication(params) + } + throw new Error(`Unknown ' + verb + ' method`) + }, + + /** + * Constructs create ABI call params for the NFDInstance smart contract using the createApplication(string,address,address,uint64,uint64,address,uint64,address,uint64,uint64,address)void ABI method + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + createApplication(params: CallParams & AppClientCompilationParams & {onComplete?: OnApplicationComplete.NoOpOC}): AppClientMethodCallParams & AppClientCompilationParams & {onComplete?: OnApplicationComplete.NoOpOC} { + return { + ...params, + method: 'createApplication(string,address,address,uint64,uint64,address,uint64,address,uint64,uint64,address)void' as const, + args: Array.isArray(params.args) ? params.args : [params.args.nfdName, params.args.seller, params.args.buyer, params.args.purchaseAmount, params.args.expTime, params.args.commission1Addr, params.args.commission1Pct, params.args.commission2Addr, params.args.commission2Pct, params.args.segmentRootAppId, params.args.segmentRootCommissionAddr], + } + }, + } + } + + /** + * Gets available update ABI call param factories + */ + static get update() { + return { + _resolveByMethod(params: TParams) { + switch(params.method) { + case 'updateApplication': + case 'updateApplication(string)void': + return NfdInstanceParamsFactory.update.updateApplication(params) + } + throw new Error(`Unknown ' + verb + ' method`) + }, + + /** + * Constructs update ABI call params for the NFDInstance smart contract using the updateApplication(string)void ABI method + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + updateApplication(params: CallParams & AppClientCompilationParams): AppClientMethodCallParams & AppClientCompilationParams { + return { + ...params, + method: 'updateApplication(string)void' as const, + args: Array.isArray(params.args) ? params.args : [params.args.versionNum], + } + }, + } + } + + /** + * Constructs a no op call for the gas()void ABI method + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + static gas(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete { + return { + ...params, + method: 'gas()void' as const, + args: Array.isArray(params.args) ? params.args : [], + } + } + /** + * Constructs a no op call for the mintAsa(string,string)void ABI method + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + static mintAsa(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete { + return { + ...params, + method: 'mintAsa(string,string)void' as const, + args: Array.isArray(params.args) ? params.args : [params.args.nfdName, params.args.url], + } + } + /** + * Constructs a no op call for the deleteFields(byte[][])void ABI method + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + static deleteFields(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete { + return { + ...params, + method: 'deleteFields(byte[][])void' as const, + args: Array.isArray(params.args) ? params.args : [params.args.fieldNames], + } + } + /** + * Constructs a no op call for the updateSegmentCount(string,uint64)void ABI method + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + static updateSegmentCount(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete { + return { + ...params, + method: 'updateSegmentCount(string,uint64)void' as const, + args: Array.isArray(params.args) ? params.args : [params.args.childNfdName, params.args.childNfdAppId], + } + } + /** + * Constructs a no op call for the getFieldUpdateCost(byte[][])uint64 ABI method + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + static getFieldUpdateCost(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete { + return { + ...params, + method: 'getFieldUpdateCost(byte[][])uint64' as const, + args: Array.isArray(params.args) ? params.args : [params.args.fieldAndVals], + } + } + /** + * Constructs a no op call for the updateFields(byte[][])void ABI method + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + static updateFields(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete { + return { + ...params, + method: 'updateFields(byte[][])void' as const, + args: Array.isArray(params.args) ? params.args : [params.args.fieldAndVals], + } + } + /** + * Constructs a no op call for the readField(byte[])byte[] ABI method + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + static readField(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete { + return { + ...params, + method: 'readField(byte[])byte[]' as const, + args: Array.isArray(params.args) ? params.args : [params.args.fieldName], + } + } + /** + * Constructs a no op call for the offerForSale(uint64,address)void ABI method + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + static offerForSale(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete { + return { + ...params, + method: 'offerForSale(uint64,address)void' as const, + args: Array.isArray(params.args) ? params.args : [params.args.sellAmount, params.args.reservedFor], + } + } + /** + * Constructs a no op call for the cancelSale()void ABI method + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + static cancelSale(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete { + return { + ...params, + method: 'cancelSale()void' as const, + args: Array.isArray(params.args) ? params.args : [], + } + } + /** + * Constructs a no op call for the postOffer(uint64,string)void ABI method + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + static postOffer(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete { + return { + ...params, + method: 'postOffer(uint64,string)void' as const, + args: Array.isArray(params.args) ? params.args : [params.args.offer, params.args.note], + } + } + /** + * Constructs a no op call for the mintPayout(uint64,uint64)(uint64,address,uint64,address,uint64) ABI method + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + static mintPayout(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete { + return { + ...params, + method: 'mintPayout(uint64,uint64)(uint64,address,uint64,address,uint64)' as const, + args: Array.isArray(params.args) ? params.args : [params.args.oneYearPrice, params.args.segmentPlatformCostInAlgo], + } + } + /** + * Constructs a no op call for the purchase(pay)void ABI method + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + static purchase(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete { + return { + ...params, + method: 'purchase(pay)void' as const, + args: Array.isArray(params.args) ? params.args : [params.args.payment], + } + } + /** + * Constructs a no op call for the isAddressInField(string,address)bool ABI method + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + static isAddressInField(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete { + return { + ...params, + method: 'isAddressInField(string,address)bool' as const, + args: Array.isArray(params.args) ? params.args : [params.args.fieldName, params.args.address], + } + } + /** + * Constructs a no op call for the getRenewPrice()uint64 ABI method + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + static getRenewPrice(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete { + return { + ...params, + method: 'getRenewPrice()uint64' as const, + args: Array.isArray(params.args) ? params.args : [], + } + } + /** + * Constructs a no op call for the updateHash(byte[])void ABI method + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + static updateHash(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete { + return { + ...params, + method: 'updateHash(byte[])void' as const, + args: Array.isArray(params.args) ? params.args : [params.args.hash], + } + } + /** + * Constructs a no op call for the contractLock(bool)void ABI method + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + static contractLock(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete { + return { + ...params, + method: 'contractLock(bool)void' as const, + args: Array.isArray(params.args) ? params.args : [params.args.lock], + } + } + /** + * Constructs a no op call for the segmentLock(bool,uint64)void ABI method + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + static segmentLock(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete { + return { + ...params, + method: 'segmentLock(bool,uint64)void' as const, + args: Array.isArray(params.args) ? params.args : [params.args.lock, params.args.usdPrice], + } + } + /** + * Constructs a no op call for the vaultOptInLock(bool)void ABI method + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + static vaultOptInLock(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete { + return { + ...params, + method: 'vaultOptInLock(bool)void' as const, + args: Array.isArray(params.args) ? params.args : [params.args.lock], + } + } + /** + * Constructs a no op call for the vaultOptIn(uint64[])void ABI method + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + static vaultOptIn(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete { + return { + ...params, + method: 'vaultOptIn(uint64[])void' as const, + args: Array.isArray(params.args) ? params.args : [params.args.assets], + } + } + /** + * Constructs a no op call for the vaultSend(uint64,address,string,uint64,uint64[])void ABI method + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + static vaultSend(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete { + return { + ...params, + method: 'vaultSend(uint64,address,string,uint64,uint64[])void' as const, + args: Array.isArray(params.args) ? params.args : [params.args.amount, params.args.receiver, params.args.note, params.args.asset, params.args.otherAssets], + } + } + /** + * Constructs a no op call for the renew(pay)void ABI method + * + * Renew adds more time to an existing NFDs expiration, or renews it if expired. + + + As part of v2-v3 upgrade, the NFDs are converted from lifetime NFDs to renewal NFDs. The v2 contract is upgraded + to v3, then renew is called on the (now v3) nfd to turn it into a renewal (note the if curExpiration === 0 check) + + + If already renewal, then it extends the current expiration time by the time specified (minimum 1 yr) (365 / price paid * mint price) + Expirations can never be more than NFD_MAX_EXPIRATION_DAYS days in the future. + + + IF the NFD is expired: + x The current owner can take it back over at base price - and NFD metadata doesn't have to be cleared - they + get it back as-is. + x If not current owner, then the price goes from high of base price * 10,000 down to base price over 24 hrs where + 'buyer' has to pay at least that price. The NFD MUST ALREADY HAVE ITS METADATA CLEARED! + + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + static renew(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete { + return { + ...params, + method: 'renew(pay)void' as const, + args: Array.isArray(params.args) ? params.args : [params.args.payment], + } + } + /** + * Constructs a no op call for the setPrimaryAddress(string,address)void ABI method + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + static setPrimaryAddress(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete { + return { + ...params, + method: 'setPrimaryAddress(string,address)void' as const, + args: Array.isArray(params.args) ? params.args : [params.args.fieldName, params.args.address], + } + } + /** + * Constructs a no op call for the registryAddingVerifiedAddress(string,string)bool ABI method + * + * Approved call from registry instructing us to move the specified u.cav.xx field and add to the specified + verified field. + + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + static registryAddingVerifiedAddress(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete { + return { + ...params, + method: 'registryAddingVerifiedAddress(string,string)bool' as const, + args: Array.isArray(params.args) ? params.args : [params.args.fieldBeingVerified, params.args.fieldSetName], + } + } + /** + * Constructs a no op call for the registryRemovingVerifiedAddress(string,address,address)bool ABI method + * + * Approved call from registry instructing us to REMOVE an address from the specified verified address set + * + * @param params Parameters for the call + * @returns An `AppClientMethodCallParams` object for the call + */ + static registryRemovingVerifiedAddress(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete { + return { + ...params, + method: 'registryRemovingVerifiedAddress(string,address,address)bool' as const, + args: Array.isArray(params.args) ? params.args : [params.args.fieldBeingChanged, params.args.address, params.args.mbrRefundDest], + } + } +} + +/** + * A factory to create and deploy one or more instance of the NFDInstance smart contract and to create one or more app clients to interact with those (or other) app instances + */ +export class NfdInstanceFactory { + /** + * The underlying `AppFactory` for when you want to have more flexibility + */ + public readonly appFactory: _AppFactory + + /** + * Creates a new instance of `NfdInstanceFactory` + * + * @param params The parameters to initialise the app factory with + */ + constructor(params: Omit) { + this.appFactory = new _AppFactory({ + ...params, + appSpec: APP_SPEC, + }) + } + + /** The name of the app (from the ARC-32 / ARC-56 app spec or override). */ + public get appName() { + return this.appFactory.appName + } + + /** The ARC-56 app spec being used */ + get appSpec() { + return APP_SPEC + } + + /** A reference to the underlying `AlgorandClient` this app factory is using. */ + public get algorand(): AlgorandClientInterface { + return this.appFactory.algorand + } + + /** + * Returns a new `AppClient` client for an app instance of the given ID. + * + * Automatically populates appName, defaultSender and source maps from the factory + * if not specified in the params. + * @param params The parameters to create the app client + * @returns The `AppClient` + */ + public getAppClientById(params: AppFactoryAppClientParams) { + return new NfdInstanceClient(this.appFactory.getAppClientById(params)) + } + + /** + * Returns a new `AppClient` client, resolving the app by creator address and name + * using AlgoKit app deployment semantics (i.e. looking for the app creation transaction note). + * + * Automatically populates appName, defaultSender and source maps from the factory + * if not specified in the params. + * @param params The parameters to create the app client + * @returns The `AppClient` + */ + public async getAppClientByCreatorAndName( + params: AppFactoryResolveAppClientByCreatorAndNameParams, + ) { + return new NfdInstanceClient(await this.appFactory.getAppClientByCreatorAndName(params)) + } + + /** + * Idempotently deploys the NFDInstance smart contract. + * + * @param params The arguments for the contract calls and any additional parameters for the call + * @returns The deployment result + */ + public async deploy(params: NfdInstanceDeployParams = {}) { + const result = await this.appFactory.deploy({ + ...params, + createParams: params.createParams?.method ? NfdInstanceParamsFactory.create._resolveByMethod(params.createParams) : params.createParams, + updateParams: params.updateParams?.method ? NfdInstanceParamsFactory.update._resolveByMethod(params.updateParams) : params.updateParams, + }) + return { result: result.result, appClient: new NfdInstanceClient(result.appClient) } + } + + /** + * Get parameters to create transactions (create and deploy related calls) for the current app. A good mental model for this is that these parameters represent a deferred transaction creation. + */ + readonly params = { + /** + * Gets available create methods + */ + create: { + /** + * Creates a new instance of the NFDInstance smart contract using the createApplication(string,address,address,uint64,uint64,address,uint64,address,uint64,uint64,address)void ABI method. + * + * @param params The params for the smart contract call + * @returns The create params + */ + createApplication: (params: CallParams & AppClientCompilationParams & CreateSchema & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appFactory.params.create(NfdInstanceParamsFactory.create.createApplication(params)) + }, + }, + + /** + * Gets available deployUpdate methods + */ + deployUpdate: { + /** + * Updates an existing instance of the NFDInstance smart contract using the updateApplication(string)void ABI method. + * + * @param params The params for the smart contract call + * @returns The deployUpdate params + */ + updateApplication: (params: CallParams & AppClientCompilationParams) => { + return this.appFactory.params.deployUpdate(NfdInstanceParamsFactory.update.updateApplication(params)) + }, + }, + + } + + /** + * Create transactions for the current app + */ + readonly createTransaction = { + /** + * Gets available create methods + */ + create: { + /** + * Creates a new instance of the NFDInstance smart contract using the createApplication(string,address,address,uint64,uint64,address,uint64,address,uint64,uint64,address)void ABI method. + * + * @param params The params for the smart contract call + * @returns The create transaction + */ + createApplication: (params: CallParams & AppClientCompilationParams & CreateSchema & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appFactory.createTransaction.create(NfdInstanceParamsFactory.create.createApplication(params)) + }, + }, + + } + + /** + * Send calls to the current app + */ + readonly send = { + /** + * Gets available create methods + */ + create: { + /** + * Creates a new instance of the NFDInstance smart contract using an ABI method call using the createApplication(string,address,address,uint64,uint64,address,uint64,address,uint64,uint64,address)void ABI method. + * + * @param params The params for the smart contract call + * @returns The create result + */ + createApplication: async (params: CallParams & AppClientCompilationParams & CreateSchema & SendParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + const result = await this.appFactory.send.create(NfdInstanceParamsFactory.create.createApplication(params)) + return { result: { ...result.result, return: result.result.return as undefined | NfdInstanceReturns['createApplication(string,address,address,uint64,uint64,address,uint64,address,uint64,uint64,address)void'] }, appClient: new NfdInstanceClient(result.appClient) } + }, + }, + + } + +} +/** + * A client to make calls to the NFDInstance smart contract + */ +export class NfdInstanceClient { + /** + * The underlying `AppClient` for when you want to have more flexibility + */ + public readonly appClient: _AppClient + + /** + * Creates a new instance of `NfdInstanceClient` + * + * @param appClient An `AppClient` instance which has been created with the NfdInstance app spec + */ + constructor(appClient: _AppClient) + /** + * Creates a new instance of `NfdInstanceClient` + * + * @param params The parameters to initialise the app client with + */ + constructor(params: Omit) + constructor(appClientOrParams: _AppClient | Omit) { + this.appClient = appClientOrParams instanceof _AppClient ? appClientOrParams : new _AppClient({ + ...appClientOrParams, + appSpec: APP_SPEC, + }) + } + + /** + * Checks for decode errors on the given return value and maps the return value to the return type for the given method + * @returns The typed return value or undefined if there was no value + */ + decodeReturnValue(method: TSignature, returnValue: ABIReturn | undefined) { + return returnValue !== undefined ? getArc56ReturnValue>(returnValue, this.appClient.getABIMethod(method), APP_SPEC.structs) : undefined + } + + /** + * Returns a new `NfdInstanceClient` client, resolving the app by creator address and name + * using AlgoKit app deployment semantics (i.e. looking for the app creation transaction note). + * @param params The parameters to create the app client + */ + public static async fromCreatorAndName(params: Omit): Promise { + return new NfdInstanceClient(await _AppClient.fromCreatorAndName({...params, appSpec: APP_SPEC})) + } + + /** + * Returns an `NfdInstanceClient` instance for the current network based on + * pre-determined network-specific app IDs specified in the ARC-56 app spec. + * + * If no IDs are in the app spec or the network isn't recognised, an error is thrown. + * @param params The parameters to create the app client + */ + static async fromNetwork( + params: Omit + ): Promise { + return new NfdInstanceClient(await _AppClient.fromNetwork({...params, appSpec: APP_SPEC})) + } + + /** The ID of the app instance this client is linked to. */ + public get appId() { + return this.appClient.appId + } + + /** The app address of the app instance this client is linked to. */ + public get appAddress() { + return this.appClient.appAddress + } + + /** The name of the app. */ + public get appName() { + return this.appClient.appName + } + + /** The ARC-56 app spec being used */ + public get appSpec() { + return this.appClient.appSpec + } + + /** A reference to the underlying `AlgorandClient` this app client is using. */ + public get algorand(): AlgorandClientInterface { + return this.appClient.algorand + } + + /** + * Get parameters to create transactions for the current app. A good mental model for this is that these parameters represent a deferred transaction creation. + */ + readonly params = { + /** + * Gets available update methods + */ + update: { + /** + * Updates an existing instance of the NFDInstance smart contract using the `updateApplication(string)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The update params + */ + updateApplication: (params: CallParams & AppClientCompilationParams) => { + return this.appClient.params.update(NfdInstanceParamsFactory.update.updateApplication(params)) + }, + + }, + + /** + * Makes a clear_state call to an existing instance of the NFDInstance smart contract. + * + * @param params The params for the bare (raw) call + * @returns The clearState result + */ + clearState: (params?: Expand) => { + return this.appClient.params.bare.clearState(params) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `gas()void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call params + */ + gas: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC} = {args: []}) => { + return this.appClient.params.call(NfdInstanceParamsFactory.gas(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `mintAsa(string,string)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call params + */ + mintAsa: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.params.call(NfdInstanceParamsFactory.mintAsa(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `deleteFields(byte[][])void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call params + */ + deleteFields: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.params.call(NfdInstanceParamsFactory.deleteFields(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `updateSegmentCount(string,uint64)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call params + */ + updateSegmentCount: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.params.call(NfdInstanceParamsFactory.updateSegmentCount(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `getFieldUpdateCost(byte[][])uint64` ABI method. + * + * This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction. + * + * @param params The params for the smart contract call + * @returns The call params + */ + getFieldUpdateCost: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.params.call(NfdInstanceParamsFactory.getFieldUpdateCost(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `updateFields(byte[][])void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call params + */ + updateFields: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.params.call(NfdInstanceParamsFactory.updateFields(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `readField(byte[])byte[]` ABI method. + * + * This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction. + * + * @param params The params for the smart contract call + * @returns The call params + */ + readField: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.params.call(NfdInstanceParamsFactory.readField(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `offerForSale(uint64,address)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call params + */ + offerForSale: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.params.call(NfdInstanceParamsFactory.offerForSale(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `cancelSale()void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call params + */ + cancelSale: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC} = {args: []}) => { + return this.appClient.params.call(NfdInstanceParamsFactory.cancelSale(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `postOffer(uint64,string)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call params + */ + postOffer: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.params.call(NfdInstanceParamsFactory.postOffer(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `mintPayout(uint64,uint64)(uint64,address,uint64,address,uint64)` ABI method. + * + * @param params The params for the smart contract call + * @returns The call params + */ + mintPayout: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.params.call(NfdInstanceParamsFactory.mintPayout(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `purchase(pay)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call params + */ + purchase: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.params.call(NfdInstanceParamsFactory.purchase(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `isAddressInField(string,address)bool` ABI method. + * + * This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction. + * + * @param params The params for the smart contract call + * @returns The call params + */ + isAddressInField: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.params.call(NfdInstanceParamsFactory.isAddressInField(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `getRenewPrice()uint64` ABI method. + * + * This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction. + * + * @param params The params for the smart contract call + * @returns The call params + */ + getRenewPrice: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC} = {args: []}) => { + return this.appClient.params.call(NfdInstanceParamsFactory.getRenewPrice(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `updateHash(byte[])void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call params + */ + updateHash: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.params.call(NfdInstanceParamsFactory.updateHash(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `contractLock(bool)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call params + */ + contractLock: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.params.call(NfdInstanceParamsFactory.contractLock(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `segmentLock(bool,uint64)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call params + */ + segmentLock: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.params.call(NfdInstanceParamsFactory.segmentLock(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `vaultOptInLock(bool)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call params + */ + vaultOptInLock: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.params.call(NfdInstanceParamsFactory.vaultOptInLock(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `vaultOptIn(uint64[])void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call params + */ + vaultOptIn: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.params.call(NfdInstanceParamsFactory.vaultOptIn(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `vaultSend(uint64,address,string,uint64,uint64[])void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call params + */ + vaultSend: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.params.call(NfdInstanceParamsFactory.vaultSend(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `renew(pay)void` ABI method. + * + * Renew adds more time to an existing NFDs expiration, or renews it if expired. + + + As part of v2-v3 upgrade, the NFDs are converted from lifetime NFDs to renewal NFDs. The v2 contract is upgraded + to v3, then renew is called on the (now v3) nfd to turn it into a renewal (note the if curExpiration === 0 check) + + + If already renewal, then it extends the current expiration time by the time specified (minimum 1 yr) (365 / price paid * mint price) + Expirations can never be more than NFD_MAX_EXPIRATION_DAYS days in the future. + + + IF the NFD is expired: + x The current owner can take it back over at base price - and NFD metadata doesn't have to be cleared - they + get it back as-is. + x If not current owner, then the price goes from high of base price * 10,000 down to base price over 24 hrs where + 'buyer' has to pay at least that price. The NFD MUST ALREADY HAVE ITS METADATA CLEARED! + + * + * @param params The params for the smart contract call + * @returns The call params + */ + renew: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.params.call(NfdInstanceParamsFactory.renew(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `setPrimaryAddress(string,address)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call params + */ + setPrimaryAddress: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.params.call(NfdInstanceParamsFactory.setPrimaryAddress(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `registryAddingVerifiedAddress(string,string)bool` ABI method. + * + * Approved call from registry instructing us to move the specified u.cav.xx field and add to the specified + verified field. + + * + * @param params The params for the smart contract call + * @returns The call params: true if added or already present, false otherwise + */ + registryAddingVerifiedAddress: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.params.call(NfdInstanceParamsFactory.registryAddingVerifiedAddress(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `registryRemovingVerifiedAddress(string,address,address)bool` ABI method. + * + * Approved call from registry instructing us to REMOVE an address from the specified verified address set + * + * @param params The params for the smart contract call + * @returns The call params + */ + registryRemovingVerifiedAddress: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.params.call(NfdInstanceParamsFactory.registryRemovingVerifiedAddress(params)) + }, + + } + + /** + * Create transactions for the current app + */ + readonly createTransaction = { + /** + * Gets available update methods + */ + update: { + /** + * Updates an existing instance of the NFDInstance smart contract using the `updateApplication(string)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The update transaction + */ + updateApplication: (params: CallParams & AppClientCompilationParams) => { + return this.appClient.createTransaction.update(NfdInstanceParamsFactory.update.updateApplication(params)) + }, + + }, + + /** + * Makes a clear_state call to an existing instance of the NFDInstance smart contract. + * + * @param params The params for the bare (raw) call + * @returns The clearState result + */ + clearState: (params?: Expand) => { + return this.appClient.createTransaction.bare.clearState(params) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `gas()void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call transaction + */ + gas: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC} = {args: []}) => { + return this.appClient.createTransaction.call(NfdInstanceParamsFactory.gas(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `mintAsa(string,string)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call transaction + */ + mintAsa: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.createTransaction.call(NfdInstanceParamsFactory.mintAsa(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `deleteFields(byte[][])void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call transaction + */ + deleteFields: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.createTransaction.call(NfdInstanceParamsFactory.deleteFields(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `updateSegmentCount(string,uint64)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call transaction + */ + updateSegmentCount: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.createTransaction.call(NfdInstanceParamsFactory.updateSegmentCount(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `getFieldUpdateCost(byte[][])uint64` ABI method. + * + * This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction. + * + * @param params The params for the smart contract call + * @returns The call transaction + */ + getFieldUpdateCost: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.createTransaction.call(NfdInstanceParamsFactory.getFieldUpdateCost(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `updateFields(byte[][])void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call transaction + */ + updateFields: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.createTransaction.call(NfdInstanceParamsFactory.updateFields(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `readField(byte[])byte[]` ABI method. + * + * This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction. + * + * @param params The params for the smart contract call + * @returns The call transaction + */ + readField: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.createTransaction.call(NfdInstanceParamsFactory.readField(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `offerForSale(uint64,address)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call transaction + */ + offerForSale: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.createTransaction.call(NfdInstanceParamsFactory.offerForSale(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `cancelSale()void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call transaction + */ + cancelSale: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC} = {args: []}) => { + return this.appClient.createTransaction.call(NfdInstanceParamsFactory.cancelSale(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `postOffer(uint64,string)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call transaction + */ + postOffer: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.createTransaction.call(NfdInstanceParamsFactory.postOffer(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `mintPayout(uint64,uint64)(uint64,address,uint64,address,uint64)` ABI method. + * + * @param params The params for the smart contract call + * @returns The call transaction + */ + mintPayout: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.createTransaction.call(NfdInstanceParamsFactory.mintPayout(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `purchase(pay)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call transaction + */ + purchase: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.createTransaction.call(NfdInstanceParamsFactory.purchase(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `isAddressInField(string,address)bool` ABI method. + * + * This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction. + * + * @param params The params for the smart contract call + * @returns The call transaction + */ + isAddressInField: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.createTransaction.call(NfdInstanceParamsFactory.isAddressInField(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `getRenewPrice()uint64` ABI method. + * + * This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction. + * + * @param params The params for the smart contract call + * @returns The call transaction + */ + getRenewPrice: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC} = {args: []}) => { + return this.appClient.createTransaction.call(NfdInstanceParamsFactory.getRenewPrice(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `updateHash(byte[])void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call transaction + */ + updateHash: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.createTransaction.call(NfdInstanceParamsFactory.updateHash(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `contractLock(bool)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call transaction + */ + contractLock: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.createTransaction.call(NfdInstanceParamsFactory.contractLock(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `segmentLock(bool,uint64)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call transaction + */ + segmentLock: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.createTransaction.call(NfdInstanceParamsFactory.segmentLock(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `vaultOptInLock(bool)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call transaction + */ + vaultOptInLock: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.createTransaction.call(NfdInstanceParamsFactory.vaultOptInLock(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `vaultOptIn(uint64[])void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call transaction + */ + vaultOptIn: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.createTransaction.call(NfdInstanceParamsFactory.vaultOptIn(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `vaultSend(uint64,address,string,uint64,uint64[])void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call transaction + */ + vaultSend: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.createTransaction.call(NfdInstanceParamsFactory.vaultSend(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `renew(pay)void` ABI method. + * + * Renew adds more time to an existing NFDs expiration, or renews it if expired. + + + As part of v2-v3 upgrade, the NFDs are converted from lifetime NFDs to renewal NFDs. The v2 contract is upgraded + to v3, then renew is called on the (now v3) nfd to turn it into a renewal (note the if curExpiration === 0 check) + + + If already renewal, then it extends the current expiration time by the time specified (minimum 1 yr) (365 / price paid * mint price) + Expirations can never be more than NFD_MAX_EXPIRATION_DAYS days in the future. + + + IF the NFD is expired: + x The current owner can take it back over at base price - and NFD metadata doesn't have to be cleared - they + get it back as-is. + x If not current owner, then the price goes from high of base price * 10,000 down to base price over 24 hrs where + 'buyer' has to pay at least that price. The NFD MUST ALREADY HAVE ITS METADATA CLEARED! + + * + * @param params The params for the smart contract call + * @returns The call transaction + */ + renew: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.createTransaction.call(NfdInstanceParamsFactory.renew(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `setPrimaryAddress(string,address)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call transaction + */ + setPrimaryAddress: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.createTransaction.call(NfdInstanceParamsFactory.setPrimaryAddress(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `registryAddingVerifiedAddress(string,string)bool` ABI method. + * + * Approved call from registry instructing us to move the specified u.cav.xx field and add to the specified + verified field. + + * + * @param params The params for the smart contract call + * @returns The call transaction: true if added or already present, false otherwise + */ + registryAddingVerifiedAddress: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.createTransaction.call(NfdInstanceParamsFactory.registryAddingVerifiedAddress(params)) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `registryRemovingVerifiedAddress(string,address,address)bool` ABI method. + * + * Approved call from registry instructing us to REMOVE an address from the specified verified address set + * + * @param params The params for the smart contract call + * @returns The call transaction + */ + registryRemovingVerifiedAddress: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + return this.appClient.createTransaction.call(NfdInstanceParamsFactory.registryRemovingVerifiedAddress(params)) + }, + + } + + /** + * Send calls to the current app + */ + readonly send = { + /** + * Gets available update methods + */ + update: { + /** + * Updates an existing instance of the NFDInstance smart contract using the `updateApplication(string)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The update result + */ + updateApplication: async (params: CallParams & AppClientCompilationParams & SendParams) => { + const result = await this.appClient.send.update(NfdInstanceParamsFactory.update.updateApplication(params)) + return {...result, return: result.return as undefined | NfdInstanceReturns['updateApplication(string)void']} + }, + + }, + + /** + * Makes a clear_state call to an existing instance of the NFDInstance smart contract. + * + * @param params The params for the bare (raw) call + * @returns The clearState result + */ + clearState: (params?: Expand) => { + return this.appClient.send.bare.clearState(params) + }, + + /** + * Makes a call to the NFDInstance smart contract using the `gas()void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call result + */ + gas: async (params: CallParams & SendParams & {onComplete?: OnApplicationComplete.NoOpOC} = {args: []}) => { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.gas(params)) + return {...result, return: result.return as undefined | NfdInstanceReturns['gas()void']} + }, + + /** + * Makes a call to the NFDInstance smart contract using the `mintAsa(string,string)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call result + */ + mintAsa: async (params: CallParams & SendParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.mintAsa(params)) + return {...result, return: result.return as undefined | NfdInstanceReturns['mintAsa(string,string)void']} + }, + + /** + * Makes a call to the NFDInstance smart contract using the `deleteFields(byte[][])void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call result + */ + deleteFields: async (params: CallParams & SendParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.deleteFields(params)) + return {...result, return: result.return as undefined | NfdInstanceReturns['deleteFields(byte[][])void']} + }, + + /** + * Makes a call to the NFDInstance smart contract using the `updateSegmentCount(string,uint64)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call result + */ + updateSegmentCount: async (params: CallParams & SendParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.updateSegmentCount(params)) + return {...result, return: result.return as undefined | NfdInstanceReturns['updateSegmentCount(string,uint64)void']} + }, + + /** + * Makes a call to the NFDInstance smart contract using the `getFieldUpdateCost(byte[][])uint64` ABI method. + * + * This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction. + * + * @param params The params for the smart contract call + * @returns The call result + */ + getFieldUpdateCost: async (params: CallParams & SendParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.getFieldUpdateCost(params)) + return {...result, return: result.return as undefined | NfdInstanceReturns['getFieldUpdateCost(byte[][])uint64']} + }, + + /** + * Makes a call to the NFDInstance smart contract using the `updateFields(byte[][])void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call result + */ + updateFields: async (params: CallParams & SendParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.updateFields(params)) + return {...result, return: result.return as undefined | NfdInstanceReturns['updateFields(byte[][])void']} + }, + + /** + * Makes a call to the NFDInstance smart contract using the `readField(byte[])byte[]` ABI method. + * + * This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction. + * + * @param params The params for the smart contract call + * @returns The call result + */ + readField: async (params: CallParams & SendParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.readField(params)) + return {...result, return: result.return as undefined | NfdInstanceReturns['readField(byte[])byte[]']} + }, + + /** + * Makes a call to the NFDInstance smart contract using the `offerForSale(uint64,address)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call result + */ + offerForSale: async (params: CallParams & SendParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.offerForSale(params)) + return {...result, return: result.return as undefined | NfdInstanceReturns['offerForSale(uint64,address)void']} + }, + + /** + * Makes a call to the NFDInstance smart contract using the `cancelSale()void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call result + */ + cancelSale: async (params: CallParams & SendParams & {onComplete?: OnApplicationComplete.NoOpOC} = {args: []}) => { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.cancelSale(params)) + return {...result, return: result.return as undefined | NfdInstanceReturns['cancelSale()void']} + }, + + /** + * Makes a call to the NFDInstance smart contract using the `postOffer(uint64,string)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call result + */ + postOffer: async (params: CallParams & SendParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.postOffer(params)) + return {...result, return: result.return as undefined | NfdInstanceReturns['postOffer(uint64,string)void']} + }, + + /** + * Makes a call to the NFDInstance smart contract using the `mintPayout(uint64,uint64)(uint64,address,uint64,address,uint64)` ABI method. + * + * @param params The params for the smart contract call + * @returns The call result + */ + mintPayout: async (params: CallParams & SendParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.mintPayout(params)) + return {...result, return: result.return as undefined | NfdInstanceReturns['mintPayout(uint64,uint64)(uint64,address,uint64,address,uint64)']} + }, + + /** + * Makes a call to the NFDInstance smart contract using the `purchase(pay)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call result + */ + purchase: async (params: CallParams & SendParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.purchase(params)) + return {...result, return: result.return as undefined | NfdInstanceReturns['purchase(pay)void']} + }, + + /** + * Makes a call to the NFDInstance smart contract using the `isAddressInField(string,address)bool` ABI method. + * + * This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction. + * + * @param params The params for the smart contract call + * @returns The call result + */ + isAddressInField: async (params: CallParams & SendParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.isAddressInField(params)) + return {...result, return: result.return as undefined | NfdInstanceReturns['isAddressInField(string,address)bool']} + }, + + /** + * Makes a call to the NFDInstance smart contract using the `getRenewPrice()uint64` ABI method. + * + * This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction. + * + * @param params The params for the smart contract call + * @returns The call result + */ + getRenewPrice: async (params: CallParams & SendParams & {onComplete?: OnApplicationComplete.NoOpOC} = {args: []}) => { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.getRenewPrice(params)) + return {...result, return: result.return as undefined | NfdInstanceReturns['getRenewPrice()uint64']} + }, + + /** + * Makes a call to the NFDInstance smart contract using the `updateHash(byte[])void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call result + */ + updateHash: async (params: CallParams & SendParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.updateHash(params)) + return {...result, return: result.return as undefined | NfdInstanceReturns['updateHash(byte[])void']} + }, + + /** + * Makes a call to the NFDInstance smart contract using the `contractLock(bool)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call result + */ + contractLock: async (params: CallParams & SendParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.contractLock(params)) + return {...result, return: result.return as undefined | NfdInstanceReturns['contractLock(bool)void']} + }, + + /** + * Makes a call to the NFDInstance smart contract using the `segmentLock(bool,uint64)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call result + */ + segmentLock: async (params: CallParams & SendParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.segmentLock(params)) + return {...result, return: result.return as undefined | NfdInstanceReturns['segmentLock(bool,uint64)void']} + }, + + /** + * Makes a call to the NFDInstance smart contract using the `vaultOptInLock(bool)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call result + */ + vaultOptInLock: async (params: CallParams & SendParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.vaultOptInLock(params)) + return {...result, return: result.return as undefined | NfdInstanceReturns['vaultOptInLock(bool)void']} + }, + + /** + * Makes a call to the NFDInstance smart contract using the `vaultOptIn(uint64[])void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call result + */ + vaultOptIn: async (params: CallParams & SendParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.vaultOptIn(params)) + return {...result, return: result.return as undefined | NfdInstanceReturns['vaultOptIn(uint64[])void']} + }, + + /** + * Makes a call to the NFDInstance smart contract using the `vaultSend(uint64,address,string,uint64,uint64[])void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call result + */ + vaultSend: async (params: CallParams & SendParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.vaultSend(params)) + return {...result, return: result.return as undefined | NfdInstanceReturns['vaultSend(uint64,address,string,uint64,uint64[])void']} + }, + + /** + * Makes a call to the NFDInstance smart contract using the `renew(pay)void` ABI method. + * + * Renew adds more time to an existing NFDs expiration, or renews it if expired. + + + As part of v2-v3 upgrade, the NFDs are converted from lifetime NFDs to renewal NFDs. The v2 contract is upgraded + to v3, then renew is called on the (now v3) nfd to turn it into a renewal (note the if curExpiration === 0 check) + + + If already renewal, then it extends the current expiration time by the time specified (minimum 1 yr) (365 / price paid * mint price) + Expirations can never be more than NFD_MAX_EXPIRATION_DAYS days in the future. + + + IF the NFD is expired: + x The current owner can take it back over at base price - and NFD metadata doesn't have to be cleared - they + get it back as-is. + x If not current owner, then the price goes from high of base price * 10,000 down to base price over 24 hrs where + 'buyer' has to pay at least that price. The NFD MUST ALREADY HAVE ITS METADATA CLEARED! + + * + * @param params The params for the smart contract call + * @returns The call result + */ + renew: async (params: CallParams & SendParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.renew(params)) + return {...result, return: result.return as undefined | NfdInstanceReturns['renew(pay)void']} + }, + + /** + * Makes a call to the NFDInstance smart contract using the `setPrimaryAddress(string,address)void` ABI method. + * + * @param params The params for the smart contract call + * @returns The call result + */ + setPrimaryAddress: async (params: CallParams & SendParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.setPrimaryAddress(params)) + return {...result, return: result.return as undefined | NfdInstanceReturns['setPrimaryAddress(string,address)void']} + }, + + /** + * Makes a call to the NFDInstance smart contract using the `registryAddingVerifiedAddress(string,string)bool` ABI method. + * + * Approved call from registry instructing us to move the specified u.cav.xx field and add to the specified + verified field. + + * + * @param params The params for the smart contract call + * @returns The call result: true if added or already present, false otherwise + */ + registryAddingVerifiedAddress: async (params: CallParams & SendParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.registryAddingVerifiedAddress(params)) + return {...result, return: result.return as undefined | NfdInstanceReturns['registryAddingVerifiedAddress(string,string)bool']} + }, + + /** + * Makes a call to the NFDInstance smart contract using the `registryRemovingVerifiedAddress(string,address,address)bool` ABI method. + * + * Approved call from registry instructing us to REMOVE an address from the specified verified address set + * + * @param params The params for the smart contract call + * @returns The call result + */ + registryRemovingVerifiedAddress: async (params: CallParams & SendParams & {onComplete?: OnApplicationComplete.NoOpOC}) => { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.registryRemovingVerifiedAddress(params)) + return {...result, return: result.return as undefined | NfdInstanceReturns['registryRemovingVerifiedAddress(string,address,address)bool']} + }, + + } + + /** + * Clone this app client with different params + * + * @param params The params to use for the the cloned app client. Omit a param to keep the original value. Set a param to override the original value. Setting to undefined will clear the original value. + * @returns A new app client with the altered params + */ + public clone(params: CloneAppClientParams) { + return new NfdInstanceClient(this.appClient.clone(params)) + } + + /** + * Makes a readonly (simulated) call to the NFDInstance smart contract using the `getFieldUpdateCost(byte[][])uint64` ABI method. + * + * This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction. + * + * @param params The params for the smart contract call + * @returns The call result + */ + async getFieldUpdateCost(params: CallParams) { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.getFieldUpdateCost(params)) + return result.return as NfdInstanceReturns['getFieldUpdateCost(byte[][])uint64'] + } + + /** + * Makes a readonly (simulated) call to the NFDInstance smart contract using the `readField(byte[])byte[]` ABI method. + * + * This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction. + * + * @param params The params for the smart contract call + * @returns The call result + */ + async readField(params: CallParams) { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.readField(params)) + return result.return as NfdInstanceReturns['readField(byte[])byte[]'] + } + + /** + * Makes a readonly (simulated) call to the NFDInstance smart contract using the `isAddressInField(string,address)bool` ABI method. + * + * This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction. + * + * @param params The params for the smart contract call + * @returns The call result + */ + async isAddressInField(params: CallParams) { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.isAddressInField(params)) + return result.return as NfdInstanceReturns['isAddressInField(string,address)bool'] + } + + /** + * Makes a readonly (simulated) call to the NFDInstance smart contract using the `getRenewPrice()uint64` ABI method. + * + * This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction. + * + * @param params The params for the smart contract call + * @returns The call result + */ + async getRenewPrice(params: CallParams = {args: []}) { + const result = await this.appClient.send.call(NfdInstanceParamsFactory.getRenewPrice(params)) + return result.return as NfdInstanceReturns['getRenewPrice()uint64'] + } + + /** + * Methods to access state for the current NFDInstance app + */ + state = { + /** + * Methods to access global state for the current NFDInstance app + */ + global: { + /** + * Get all current keyed values from global state + */ + getAll: async (): Promise>> => { + const result = await this.appClient.state.global.getAll() + return { + } + }, + /** + * Get values from the globalState map in global state + */ + globalState: { + /** + * Get all current values of the globalState map in global state + */ + getMap: async (): Promise> => { return (await this.appClient.state.global.getMap("globalState")) as Map }, + /** + * Get a current value of the globalState map by key from global state + */ + value: async (key: Uint8Array | string): Promise => { return await this.appClient.state.global.getMapValue("globalState", key) as Uint8Array | undefined }, + }, + }, + /** + * Methods to access box state for the current NFDInstance app + */ + box: { + /** + * Get all current keyed values from box state + */ + getAll: async (): Promise>> => { + const result = await this.appClient.state.box.getAll() + return { + } + }, + /** + * Get values from the boxes map in box state + */ + boxes: { + /** + * Get all current values of the boxes map in box state + */ + getMap: async (): Promise> => { return (await this.appClient.state.box.getMap("boxes")) as Map }, + /** + * Get a current value of the boxes map by key from box state + */ + value: async (key: Uint8Array | string): Promise => { return await this.appClient.state.box.getMapValue("boxes", key) as Uint8Array | undefined }, + }, + }, + } + + public newGroup(): NfdInstanceComposer { + const client = this + const composer = this.algorand.newGroup() + let promiseChain:Promise = Promise.resolve() + const resultMappers: Array any)> = [] + return { + /** + * Add a gas()void method call against the NFDInstance contract + */ + gas(params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) { + promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.gas(params))) + resultMappers.push(undefined) + return this + }, + /** + * Add a mintAsa(string,string)void method call against the NFDInstance contract + */ + mintAsa(params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) { + promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.mintAsa(params))) + resultMappers.push(undefined) + return this + }, + /** + * Add a deleteFields(byte[][])void method call against the NFDInstance contract + */ + deleteFields(params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) { + promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.deleteFields(params))) + resultMappers.push(undefined) + return this + }, + /** + * Add a updateSegmentCount(string,uint64)void method call against the NFDInstance contract + */ + updateSegmentCount(params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) { + promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.updateSegmentCount(params))) + resultMappers.push(undefined) + return this + }, + /** + * Add a getFieldUpdateCost(byte[][])uint64 method call against the NFDInstance contract + */ + getFieldUpdateCost(params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) { + promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.getFieldUpdateCost(params))) + resultMappers.push((v) => client.decodeReturnValue('getFieldUpdateCost(byte[][])uint64', v)) + return this + }, + /** + * Add a updateFields(byte[][])void method call against the NFDInstance contract + */ + updateFields(params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) { + promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.updateFields(params))) + resultMappers.push(undefined) + return this + }, + /** + * Add a readField(byte[])byte[] method call against the NFDInstance contract + */ + readField(params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) { + promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.readField(params))) + resultMappers.push((v) => client.decodeReturnValue('readField(byte[])byte[]', v)) + return this + }, + /** + * Add a offerForSale(uint64,address)void method call against the NFDInstance contract + */ + offerForSale(params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) { + promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.offerForSale(params))) + resultMappers.push(undefined) + return this + }, + /** + * Add a cancelSale()void method call against the NFDInstance contract + */ + cancelSale(params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) { + promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.cancelSale(params))) + resultMappers.push(undefined) + return this + }, + /** + * Add a postOffer(uint64,string)void method call against the NFDInstance contract + */ + postOffer(params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) { + promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.postOffer(params))) + resultMappers.push(undefined) + return this + }, + /** + * Add a mintPayout(uint64,uint64)(uint64,address,uint64,address,uint64) method call against the NFDInstance contract + */ + mintPayout(params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) { + promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.mintPayout(params))) + resultMappers.push((v) => client.decodeReturnValue('mintPayout(uint64,uint64)(uint64,address,uint64,address,uint64)', v)) + return this + }, + /** + * Add a purchase(pay)void method call against the NFDInstance contract + */ + purchase(params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) { + promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.purchase(params))) + resultMappers.push(undefined) + return this + }, + /** + * Add a isAddressInField(string,address)bool method call against the NFDInstance contract + */ + isAddressInField(params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) { + promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.isAddressInField(params))) + resultMappers.push((v) => client.decodeReturnValue('isAddressInField(string,address)bool', v)) + return this + }, + /** + * Add a getRenewPrice()uint64 method call against the NFDInstance contract + */ + getRenewPrice(params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) { + promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.getRenewPrice(params))) + resultMappers.push((v) => client.decodeReturnValue('getRenewPrice()uint64', v)) + return this + }, + /** + * Add a updateHash(byte[])void method call against the NFDInstance contract + */ + updateHash(params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) { + promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.updateHash(params))) + resultMappers.push(undefined) + return this + }, + /** + * Add a contractLock(bool)void method call against the NFDInstance contract + */ + contractLock(params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) { + promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.contractLock(params))) + resultMappers.push(undefined) + return this + }, + /** + * Add a segmentLock(bool,uint64)void method call against the NFDInstance contract + */ + segmentLock(params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) { + promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.segmentLock(params))) + resultMappers.push(undefined) + return this + }, + /** + * Add a vaultOptInLock(bool)void method call against the NFDInstance contract + */ + vaultOptInLock(params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) { + promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.vaultOptInLock(params))) + resultMappers.push(undefined) + return this + }, + /** + * Add a vaultOptIn(uint64[])void method call against the NFDInstance contract + */ + vaultOptIn(params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) { + promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.vaultOptIn(params))) + resultMappers.push(undefined) + return this + }, + /** + * Add a vaultSend(uint64,address,string,uint64,uint64[])void method call against the NFDInstance contract + */ + vaultSend(params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) { + promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.vaultSend(params))) + resultMappers.push(undefined) + return this + }, + /** + * Add a renew(pay)void method call against the NFDInstance contract + */ + renew(params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) { + promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.renew(params))) + resultMappers.push(undefined) + return this + }, + /** + * Add a setPrimaryAddress(string,address)void method call against the NFDInstance contract + */ + setPrimaryAddress(params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) { + promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.setPrimaryAddress(params))) + resultMappers.push(undefined) + return this + }, + /** + * Add a registryAddingVerifiedAddress(string,string)bool method call against the NFDInstance contract + */ + registryAddingVerifiedAddress(params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) { + promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.registryAddingVerifiedAddress(params))) + resultMappers.push((v) => client.decodeReturnValue('registryAddingVerifiedAddress(string,string)bool', v)) + return this + }, + /** + * Add a registryRemovingVerifiedAddress(string,address,address)bool method call against the NFDInstance contract + */ + registryRemovingVerifiedAddress(params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) { + promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.registryRemovingVerifiedAddress(params))) + resultMappers.push((v) => client.decodeReturnValue('registryRemovingVerifiedAddress(string,address,address)bool', v)) + return this + }, + get update() { + return { + updateApplication: (params: CallParams & AppClientCompilationParams) => { + promiseChain = promiseChain.then(async () => composer.addAppUpdateMethodCall(await client.params.update.updateApplication(params))) + resultMappers.push(undefined) + return this + }, + } + }, + /** + * Add a clear state call to the NFDInstance contract + */ + clearState(params: AppClientBareCallParams) { + promiseChain = promiseChain.then(() => composer.addAppCall(client.params.clearState(params))) + return this + }, + addTransaction(txn: Transaction, signer?: TransactionSigner) { + promiseChain = promiseChain.then(() => composer.addTransaction(txn, signer)) + return this + }, + async composer() { + await promiseChain + return composer + }, + async simulate(options?: SimulateOptions) { + await promiseChain + const result = await (!options ? composer.simulate() : composer.simulate(options)) + return { + ...result, + returns: result.returns?.map((val, i) => resultMappers[i] !== undefined ? resultMappers[i]!(val) : val.returnValue) + } + }, + async send(params?: SendParams) { + await promiseChain + const result = await composer.send(params) + return { + ...result, + returns: result.returns?.map((val, i) => resultMappers[i] !== undefined ? resultMappers[i]!(val) : val.returnValue) + } + } + } as unknown as NfdInstanceComposer + } +} +export type NfdInstanceComposer = { + /** + * Calls the gas()void ABI method. + * + * @param args The arguments for the contract call + * @param params Any additional parameters for the call + * @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions + */ + gas(params?: CallParams): NfdInstanceComposer<[...TReturns, NfdInstanceReturns['gas()void'] | undefined]> + + /** + * Calls the mintAsa(string,string)void ABI method. + * + * @param args The arguments for the contract call + * @param params Any additional parameters for the call + * @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions + */ + mintAsa(params?: CallParams): NfdInstanceComposer<[...TReturns, NfdInstanceReturns['mintAsa(string,string)void'] | undefined]> + + /** + * Calls the deleteFields(byte[][])void ABI method. + * + * @param args The arguments for the contract call + * @param params Any additional parameters for the call + * @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions + */ + deleteFields(params?: CallParams): NfdInstanceComposer<[...TReturns, NfdInstanceReturns['deleteFields(byte[][])void'] | undefined]> + + /** + * Calls the updateSegmentCount(string,uint64)void ABI method. + * + * @param args The arguments for the contract call + * @param params Any additional parameters for the call + * @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions + */ + updateSegmentCount(params?: CallParams): NfdInstanceComposer<[...TReturns, NfdInstanceReturns['updateSegmentCount(string,uint64)void'] | undefined]> + + /** + * Calls the getFieldUpdateCost(byte[][])uint64 ABI method. + * + * @param args The arguments for the contract call + * @param params Any additional parameters for the call + * @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions + */ + getFieldUpdateCost(params?: CallParams): NfdInstanceComposer<[...TReturns, NfdInstanceReturns['getFieldUpdateCost(byte[][])uint64'] | undefined]> + + /** + * Calls the updateFields(byte[][])void ABI method. + * + * @param args The arguments for the contract call + * @param params Any additional parameters for the call + * @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions + */ + updateFields(params?: CallParams): NfdInstanceComposer<[...TReturns, NfdInstanceReturns['updateFields(byte[][])void'] | undefined]> + + /** + * Calls the readField(byte[])byte[] ABI method. + * + * @param args The arguments for the contract call + * @param params Any additional parameters for the call + * @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions + */ + readField(params?: CallParams): NfdInstanceComposer<[...TReturns, NfdInstanceReturns['readField(byte[])byte[]'] | undefined]> + + /** + * Calls the offerForSale(uint64,address)void ABI method. + * + * @param args The arguments for the contract call + * @param params Any additional parameters for the call + * @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions + */ + offerForSale(params?: CallParams): NfdInstanceComposer<[...TReturns, NfdInstanceReturns['offerForSale(uint64,address)void'] | undefined]> + + /** + * Calls the cancelSale()void ABI method. + * + * @param args The arguments for the contract call + * @param params Any additional parameters for the call + * @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions + */ + cancelSale(params?: CallParams): NfdInstanceComposer<[...TReturns, NfdInstanceReturns['cancelSale()void'] | undefined]> + + /** + * Calls the postOffer(uint64,string)void ABI method. + * + * @param args The arguments for the contract call + * @param params Any additional parameters for the call + * @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions + */ + postOffer(params?: CallParams): NfdInstanceComposer<[...TReturns, NfdInstanceReturns['postOffer(uint64,string)void'] | undefined]> + + /** + * Calls the mintPayout(uint64,uint64)(uint64,address,uint64,address,uint64) ABI method. + * + * @param args The arguments for the contract call + * @param params Any additional parameters for the call + * @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions + */ + mintPayout(params?: CallParams): NfdInstanceComposer<[...TReturns, NfdInstanceReturns['mintPayout(uint64,uint64)(uint64,address,uint64,address,uint64)'] | undefined]> + + /** + * Calls the purchase(pay)void ABI method. + * + * @param args The arguments for the contract call + * @param params Any additional parameters for the call + * @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions + */ + purchase(params?: CallParams): NfdInstanceComposer<[...TReturns, NfdInstanceReturns['purchase(pay)void'] | undefined]> + + /** + * Calls the isAddressInField(string,address)bool ABI method. + * + * @param args The arguments for the contract call + * @param params Any additional parameters for the call + * @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions + */ + isAddressInField(params?: CallParams): NfdInstanceComposer<[...TReturns, NfdInstanceReturns['isAddressInField(string,address)bool'] | undefined]> + + /** + * Calls the getRenewPrice()uint64 ABI method. + * + * @param args The arguments for the contract call + * @param params Any additional parameters for the call + * @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions + */ + getRenewPrice(params?: CallParams): NfdInstanceComposer<[...TReturns, NfdInstanceReturns['getRenewPrice()uint64'] | undefined]> + + /** + * Calls the updateHash(byte[])void ABI method. + * + * @param args The arguments for the contract call + * @param params Any additional parameters for the call + * @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions + */ + updateHash(params?: CallParams): NfdInstanceComposer<[...TReturns, NfdInstanceReturns['updateHash(byte[])void'] | undefined]> + + /** + * Calls the contractLock(bool)void ABI method. + * + * @param args The arguments for the contract call + * @param params Any additional parameters for the call + * @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions + */ + contractLock(params?: CallParams): NfdInstanceComposer<[...TReturns, NfdInstanceReturns['contractLock(bool)void'] | undefined]> + + /** + * Calls the segmentLock(bool,uint64)void ABI method. + * + * @param args The arguments for the contract call + * @param params Any additional parameters for the call + * @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions + */ + segmentLock(params?: CallParams): NfdInstanceComposer<[...TReturns, NfdInstanceReturns['segmentLock(bool,uint64)void'] | undefined]> + + /** + * Calls the vaultOptInLock(bool)void ABI method. + * + * @param args The arguments for the contract call + * @param params Any additional parameters for the call + * @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions + */ + vaultOptInLock(params?: CallParams): NfdInstanceComposer<[...TReturns, NfdInstanceReturns['vaultOptInLock(bool)void'] | undefined]> + + /** + * Calls the vaultOptIn(uint64[])void ABI method. + * + * @param args The arguments for the contract call + * @param params Any additional parameters for the call + * @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions + */ + vaultOptIn(params?: CallParams): NfdInstanceComposer<[...TReturns, NfdInstanceReturns['vaultOptIn(uint64[])void'] | undefined]> + + /** + * Calls the vaultSend(uint64,address,string,uint64,uint64[])void ABI method. + * + * @param args The arguments for the contract call + * @param params Any additional parameters for the call + * @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions + */ + vaultSend(params?: CallParams): NfdInstanceComposer<[...TReturns, NfdInstanceReturns['vaultSend(uint64,address,string,uint64,uint64[])void'] | undefined]> + + /** + * Calls the renew(pay)void ABI method. + * + * Renew adds more time to an existing NFDs expiration, or renews it if expired. + + + As part of v2-v3 upgrade, the NFDs are converted from lifetime NFDs to renewal NFDs. The v2 contract is upgraded + to v3, then renew is called on the (now v3) nfd to turn it into a renewal (note the if curExpiration === 0 check) + + + If already renewal, then it extends the current expiration time by the time specified (minimum 1 yr) (365 / price paid * mint price) + Expirations can never be more than NFD_MAX_EXPIRATION_DAYS days in the future. + + + IF the NFD is expired: + x The current owner can take it back over at base price - and NFD metadata doesn't have to be cleared - they + get it back as-is. + x If not current owner, then the price goes from high of base price * 10,000 down to base price over 24 hrs where + 'buyer' has to pay at least that price. The NFD MUST ALREADY HAVE ITS METADATA CLEARED! + + * + * @param args The arguments for the contract call + * @param params Any additional parameters for the call + * @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions + */ + renew(params?: CallParams): NfdInstanceComposer<[...TReturns, NfdInstanceReturns['renew(pay)void'] | undefined]> + + /** + * Calls the setPrimaryAddress(string,address)void ABI method. + * + * @param args The arguments for the contract call + * @param params Any additional parameters for the call + * @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions + */ + setPrimaryAddress(params?: CallParams): NfdInstanceComposer<[...TReturns, NfdInstanceReturns['setPrimaryAddress(string,address)void'] | undefined]> + + /** + * Calls the registryAddingVerifiedAddress(string,string)bool ABI method. + * + * Approved call from registry instructing us to move the specified u.cav.xx field and add to the specified + verified field. + + * + * @param args The arguments for the contract call + * @param params Any additional parameters for the call + * @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions + */ + registryAddingVerifiedAddress(params?: CallParams): NfdInstanceComposer<[...TReturns, NfdInstanceReturns['registryAddingVerifiedAddress(string,string)bool'] | undefined]> + + /** + * Calls the registryRemovingVerifiedAddress(string,address,address)bool ABI method. + * + * Approved call from registry instructing us to REMOVE an address from the specified verified address set + * + * @param args The arguments for the contract call + * @param params Any additional parameters for the call + * @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions + */ + registryRemovingVerifiedAddress(params?: CallParams): NfdInstanceComposer<[...TReturns, NfdInstanceReturns['registryRemovingVerifiedAddress(string,address,address)bool'] | undefined]> + + /** + * Makes a clear_state call to an existing instance of the NFDInstance smart contract. + * + * @param args The arguments for the bare call + * @returns The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions + */ + clearState(params?: AppClientBareCallParams): NfdInstanceComposer<[...TReturns, undefined]> + + /** + * Adds a transaction to the composer + * + * @param txn A transaction to add to the transaction group + * @param signer The optional signer to use when signing this transaction. + */ + addTransaction(txn: Transaction, signer?: TransactionSigner): NfdInstanceComposer + /** + * Returns the underlying AtomicTransactionComposer instance + */ + composer(): TransactionComposer + /** + * Simulates the transaction group and returns the result + */ + simulate(): Promise & { simulateResponse: SimulateResponse }> + simulate(options: SkipSignaturesSimulateOptions): Promise & { simulateResponse: SimulateResponse }> + simulate(options: RawSimulateOptions): Promise & { simulateResponse: SimulateResponse }> + /** + * Sends the transaction group to the network and returns the results + */ + send(params?: SendParams): Promise> +} +export type NfdInstanceComposerResults = Expand + diff --git a/examples/state/client.ts b/examples/state/client.ts index 84e773f..d9e6897 100644 --- a/examples/state/client.ts +++ b/examples/state/client.ts @@ -92,7 +92,7 @@ export type StateAppArgs = { } 'call_with_references(asset,account,application)uint64': { asset: bigint - account: string | Uint8Array + account: Uint8Array | string application: bigint } 'set_global(uint64,uint64,string,byte[4])void': { @@ -148,7 +148,7 @@ export type StateAppArgs = { 'call_abi_uint64_readonly(uint64)uint64': [input: bigint | number] 'call_abi(string)string': [value: string] 'call_abi_txn(pay,string)string': [txn: AppMethodCallTransactionArgument, value: string] - 'call_with_references(asset,account,application)uint64': [asset: bigint, account: string | Uint8Array, application: bigint] + 'call_with_references(asset,account,application)uint64': [asset: bigint, account: Uint8Array | string, application: bigint] 'set_global(uint64,uint64,string,byte[4])void': [int1: bigint | number, int2: bigint | number, bytes1: string, bytes2: Uint8Array] 'set_local(uint64,uint64,string,byte[4])void': [int1: bigint | number, int2: bigint | number, bytes1: string, bytes2: Uint8Array] 'set_box(byte[4],string)void': [name: Uint8Array, value: string] diff --git a/examples/voting/client.ts b/examples/voting/client.ts index 5833f1c..48cd9cb 100644 --- a/examples/voting/client.ts +++ b/examples/voting/client.ts @@ -94,7 +94,7 @@ export type VotingRoundAppArgs = { metadataIpfsCid: string startTime: bigint | number endTime: bigint | number - optionCounts: bigint | number[] + optionCounts: bigint[] | number[] quorum: bigint | number nftImageUrl: string } @@ -111,18 +111,18 @@ export type VotingRoundAppArgs = { 'vote(pay,byte[],uint8[])void': { fundMinBalReq: AppMethodCallTransactionArgument signature: Uint8Array - answerIds: bigint | number[] + answerIds: bigint[] | number[] } } /** * The tuple representation of the arguments for each method */ tuple: { - 'create(string,byte[],string,uint64,uint64,uint8[],uint64,string)void': [voteId: string, snapshotPublicKey: Uint8Array, metadataIpfsCid: string, startTime: bigint | number, endTime: bigint | number, optionCounts: bigint | number[], quorum: bigint | number, nftImageUrl: string] + 'create(string,byte[],string,uint64,uint64,uint8[],uint64,string)void': [voteId: string, snapshotPublicKey: Uint8Array, metadataIpfsCid: string, startTime: bigint | number, endTime: bigint | number, optionCounts: bigint[] | number[], quorum: bigint | number, nftImageUrl: string] 'bootstrap(pay)void': [fundMinBalReq: AppMethodCallTransactionArgument] 'close()void': [] 'get_preconditions(byte[])(uint64,uint64,uint64,uint64)': [signature: Uint8Array] - 'vote(pay,byte[],uint8[])void': [fundMinBalReq: AppMethodCallTransactionArgument, signature: Uint8Array, answerIds: bigint | number[]] + 'vote(pay,byte[],uint8[])void': [fundMinBalReq: AppMethodCallTransactionArgument, signature: Uint8Array, answerIds: bigint[] | number[]] } } diff --git a/package.json b/package.json index 8fe3141..402c73f 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,8 @@ "dev:duplicate_structs-pn": "tsx src/dev.ts generate -a ./examples/duplicate_structs/application.json -o ./examples/duplicate_structs/client.pn.generated.ts -pn", "dev:nested": "tsx src/dev.ts generate -a ./examples/nested/application.json -o ./examples/nested/client.generated.ts", "dev:nested-pn": "tsx src/dev.ts generate -a ./examples/nested/application.json -o ./examples/nested/client.pn.generated.ts -pn", + "dev:nfd": "tsx src/dev.ts generate -a ./examples/nfd/application.json -o ./examples/nfd/client.generated.ts", + "dev:nfd-pn": "tsx src/dev.ts generate -a ./examples/nfd/application.json -o ./examples/nfd/client.pn.generated.ts -pn", "build": "run-s build:*", "build:0-clean": "rimraf dist coverage", "build:1-schema-to-types": "cd src/schema && json2ts application.schema.json > application.d.ts", diff --git a/src/client/helpers/get-equivalent-type.ts b/src/client/helpers/get-equivalent-type.ts index 00302a2..60b80ab 100644 --- a/src/client/helpers/get-equivalent-type.ts +++ b/src/client/helpers/get-equivalent-type.ts @@ -15,6 +15,9 @@ import { } from 'algosdk' import { Sanitizer } from '../../util/sanitization' +const bigIntOrNumberType = 'bigint | number' +const bytesOrStringType = 'Uint8Array | string' + export function getEquivalentType( abiTypeStr: string, ioType: 'input' | 'output', @@ -25,7 +28,7 @@ export function getEquivalentType( return 'void' } if (abiTypeStr == 'AVMBytes') { - return ioType === 'input' ? 'Uint8Array | string' : 'Uint8Array' + return ioType === 'input' ? bytesOrStringType : 'Uint8Array' } if (abiTypeStr == 'AVMString') { return 'string' @@ -37,7 +40,7 @@ export function getEquivalentType( return 'AppMethodCallTransactionArgument' } if (abiTypeStr == ABIReferenceType.account) { - return 'string | Uint8Array' + return bytesOrStringType } if (abiTypeStr == ABIReferenceType.application || abiTypeStr == ABIReferenceType.asset) { return 'bigint' @@ -52,13 +55,19 @@ export function getEquivalentType( function abiTypeToTs(abiType: ABIType, ioType: 'input' | 'output'): string { if (abiType instanceof ABIUintType) { - if (abiType.bitSize < 53) return ioType === 'input' ? 'bigint | number' : 'number' - return ioType === 'input' ? 'bigint | number' : 'bigint' + if (abiType.bitSize < 53) return ioType === 'input' ? bigIntOrNumberType : 'number' + return ioType === 'input' ? bigIntOrNumberType : 'bigint' } if (abiType instanceof ABIArrayDynamicType) { if (abiType.childType instanceof ABIByteType) return 'Uint8Array' const childTsType = abiTypeToTs(abiType.childType, ioType) + if (childTsType === bigIntOrNumberType) { + return 'bigint[] | number[]' + } else if (childTsType === bytesOrStringType) { + return 'Uint8Array[] | string[]' + } + return `${childTsType}[]` } if (abiType instanceof ABIArrayStaticType) { diff --git a/src/tests/approval-tests.spec.ts b/src/tests/approval-tests.spec.ts index 96f4f34..025469a 100644 --- a/src/tests/approval-tests.spec.ts +++ b/src/tests/approval-tests.spec.ts @@ -17,6 +17,7 @@ const testContracts = [ 'reti', 'arc56_test', 'nested', + 'nfd', ] as const describe('When generating a ts client for a the contract', () => {