{ "name": "AlgoDID", "desc": "", "methods": [ { "name": "startUpload", "desc": "Allocate boxes to begin data upload process", "args": [ { "name": "pubKey", "type": "address", "desc": "The pubkey of the DID" }, { "name": "numBoxes", "type": "uint64", "desc": "The number of boxes that the data will take up" }, { "name": "endBoxSize", "type": "uint64", "desc": "The size of the last box" }, { "name": "mbrPayment", "type": "pay", "desc": "Payment from the uploader to cover the box MBR" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] } }, { "name": "upload", "desc": "Upload data to a specific offset in a box", "args": [ { "name": "pubKey", "type": "address", "desc": "The pubkey of the DID" }, { "name": "boxIndex", "type": "uint64", "desc": "The index of the box to upload the given chunk of data to" }, { "name": "offset", "type": "uint64", "desc": "The offset within the box to start writing the data" }, { "name": "data", "type": "byte[]", "desc": "The data to write" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] } }, { "name": "finishUpload", "desc": "Mark uploading as false", "args": [ { "name": "pubKey", "type": "address", "desc": "The address of the DID" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] } }, { "name": "startDelete", "desc": "Starts the deletion process for the data associated with a DID", "args": [ { "name": "pubKey", "type": "address", "desc": "The address of the DID" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] } }, { "name": "deleteData", "desc": "Deletes a box of data", "args": [ { "name": "pubKey", "type": "address", "desc": "The address of the DID" }, { "name": "boxIndex", "type": "uint64", "desc": "The index of the box to delete" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] } }, { "name": "updateApplication", "desc": "Allow the contract to be updated by the creator", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "UpdateApplication" ] } }, { "name": "dummy", "desc": "Dummy function to add extra box references for deleteData.\nBoxes are 32k, but a single app call can only include enough references to read/write 8k\nat a time. Thus when a box is deleted, we need to add additional dummy calls with box\nreferences to increase the total read/write budget to 32k.", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] } }, { "name": "createApplication", "args": [], "returns": { "type": "void" }, "actions": { "create": [ "NoOp" ], "call": [] } } ], "arcs": [ 4, 56 ], "structs": { "Metadata": [ { "name": "start", "type": "uint64" }, { "name": "end", "type": "uint64" }, { "name": "status", "type": "uint8" }, { "name": "endSize", "type": "uint64" }, { "name": "lastDeleted", "type": "uint64" } ] }, "state": { "schema": { "global": { "bytes": 0, "ints": 1 }, "local": { "bytes": 0, "ints": 0 } }, "keys": { "global": { "currentIndex": { "key": "Y3VycmVudEluZGV4", "keyType": "AVMBytes", "valueType": "uint64" } }, "local": {}, "box": {} }, "maps": { "global": {}, "local": {}, "box": { "dataBoxes": { "keyType": "uint64", "valueType": "AVMBytes" }, "metadata": { "keyType": "address", "valueType": "Metadata" } } } }, "bareActions": { "create": [], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "teal": 1, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 0 ] }, { "teal": 2, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ] }, { "teal": 3, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 ] }, { "teal": 15, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 32, 33 ] }, { "teal": 16, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 34 ] }, { "teal": 17, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 35, 36 ] }, { "teal": 18, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 37 ] }, { "teal": 19, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 38, 39 ] }, { "teal": 20, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 40 ] }, { "teal": 21, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66 ] }, { "teal": 25, "source": "contracts\\algo-did.algo.ts:39", "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", "pc": [ 67 ] }, { "teal": 30, "source": "contracts\\algo-did.algo.ts:62", "pc": [ 68, 69 ] }, { "teal": 31, "source": "contracts\\algo-did.algo.ts:62", "pc": [ 70 ] }, { "teal": 32, "source": "contracts\\algo-did.algo.ts:62", "pc": [ 71 ] }, { "teal": 33, "source": "contracts\\algo-did.algo.ts:62", "pc": [ 72 ] }, { "teal": 34, "source": "contracts\\algo-did.algo.ts:62", "pc": [ 73, 74 ] }, { "teal": 35, "source": "contracts\\algo-did.algo.ts:62", "pc": [ 75 ] }, { "teal": 36, "source": "contracts\\algo-did.algo.ts:62", "pc": [ 76 ] }, { "teal": 39, "source": "contracts\\algo-did.algo.ts:62", "errorMessage": "argument 0 (mbrPayment) for startUpload must be a pay transaction", "pc": [ 77 ] }, { "teal": 42, "source": "contracts\\algo-did.algo.ts:61", "pc": [ 78, 79, 80 ] }, { "teal": 43, "source": "contracts\\algo-did.algo.ts:61", "pc": [ 81 ] }, { "teal": 46, "source": "contracts\\algo-did.algo.ts:60", "pc": [ 82, 83, 84 ] }, { "teal": 47, "source": "contracts\\algo-did.algo.ts:60", "pc": [ 85 ] }, { "teal": 50, "source": "contracts\\algo-did.algo.ts:59", "pc": [ 86, 87, 88 ] }, { "teal": 51, "source": "contracts\\algo-did.algo.ts:59", "pc": [ 89 ] }, { "teal": 52, "source": "contracts\\algo-did.algo.ts:59", "pc": [ 90 ] }, { "teal": 53, "source": "contracts\\algo-did.algo.ts:59", "pc": [ 91, 92 ] }, { "teal": 54, "source": "contracts\\algo-did.algo.ts:59", "pc": [ 93 ] }, { "teal": 57, "source": "contracts\\algo-did.algo.ts:59", "errorMessage": "argument 3 (pubKey) for startUpload must be a address", "pc": [ 94 ] }, { "teal": 60, "source": "contracts\\algo-did.algo.ts:58", "pc": [ 95, 96, 97 ] }, { "teal": 61, "source": "contracts\\algo-did.algo.ts:58", "pc": [ 98 ] }, { "teal": 62, "source": "contracts\\algo-did.algo.ts:58", "pc": [ 99 ] }, { "teal": 74, "source": "contracts\\algo-did.algo.ts:58", "pc": [ 100, 101, 102 ] }, { "teal": 77, "source": "contracts\\algo-did.algo.ts:58", "pc": [ 103 ] }, { "teal": 78, "source": "contracts\\algo-did.algo.ts:58", "pc": [ 104, 105 ] }, { "teal": 82, "source": "contracts\\algo-did.algo.ts:64", "pc": [ 106, 107 ] }, { "teal": 83, "source": "contracts\\algo-did.algo.ts:64", "pc": [ 108, 109 ] }, { "teal": 84, "source": "contracts\\algo-did.algo.ts:64", "pc": [ 110 ] }, { "teal": 85, "source": "contracts\\algo-did.algo.ts:64", "pc": [ 111 ] }, { "teal": 89, "source": "contracts\\algo-did.algo.ts:66", "pc": [ 112 ] }, { "teal": 90, "source": "contracts\\algo-did.algo.ts:66", "pc": [ 113 ] }, { "teal": 91, "source": "contracts\\algo-did.algo.ts:66", "pc": [ 114, 115 ] }, { "teal": 95, "source": "contracts\\algo-did.algo.ts:67", "pc": [ 116, 117 ] }, { "teal": 96, "source": "contracts\\algo-did.algo.ts:67", "pc": [ 118, 119 ] }, { "teal": 97, "source": "contracts\\algo-did.algo.ts:67", "pc": [ 120 ] }, { "teal": 98, "source": "contracts\\algo-did.algo.ts:67", "pc": [ 121 ] }, { "teal": 99, "source": "contracts\\algo-did.algo.ts:67", "pc": [ 122 ] }, { "teal": 100, "source": "contracts\\algo-did.algo.ts:67", "pc": [ 123, 124 ] }, { "teal": 110, "source": "contracts\\algo-did.algo.ts:70", "pc": [ 125, 126 ] }, { "teal": 111, "source": "contracts\\algo-did.algo.ts:70", "pc": [ 127 ] }, { "teal": 112, "source": "contracts\\algo-did.algo.ts:71", "pc": [ 128, 129 ] }, { "teal": 113, "source": "contracts\\algo-did.algo.ts:71", "pc": [ 130 ] }, { "teal": 114, "source": "contracts\\algo-did.algo.ts:71", "pc": [ 131 ] }, { "teal": 115, "source": "contracts\\algo-did.algo.ts:72", "pc": [ 132, 133, 134 ] }, { "teal": 116, "source": "contracts\\algo-did.algo.ts:72", "pc": [ 135 ] }, { "teal": 117, "source": "contracts\\algo-did.algo.ts:73", "pc": [ 136, 137 ] }, { "teal": 118, "source": "contracts\\algo-did.algo.ts:73", "pc": [ 138 ] }, { "teal": 119, "source": "contracts\\algo-did.algo.ts:73", "pc": [ 139 ] }, { "teal": 120, "source": "contracts\\algo-did.algo.ts:74", "pc": [ 140, 141, 142, 143, 144, 145, 146, 147, 148, 149 ] }, { "teal": 121, "source": "contracts\\algo-did.algo.ts:74", "pc": [ 150 ] }, { "teal": 122, "source": "contracts\\algo-did.algo.ts:69", "pc": [ 151, 152 ] }, { "teal": 126, "source": "contracts\\algo-did.algo.ts:77", "pc": [ 153, 154 ] }, { "teal": 127, "source": "contracts\\algo-did.algo.ts:77", "pc": [ 155 ] }, { "teal": 128, "source": "contracts\\algo-did.algo.ts:77", "pc": [ 156 ] }, { "teal": 129, "source": "contracts\\algo-did.algo.ts:77", "pc": [ 157 ] }, { "teal": 130, "source": "contracts\\algo-did.algo.ts:77", "pc": [ 158 ] }, { "teal": 131, "source": "contracts\\algo-did.algo.ts:77", "pc": [ 159 ] }, { "teal": 135, "source": "contracts\\algo-did.algo.ts:79", "pc": [ 160, 161 ] }, { "teal": 136, "source": "contracts\\algo-did.algo.ts:79", "pc": [ 162, 163 ] }, { "teal": 137, "source": "contracts\\algo-did.algo.ts:79", "pc": [ 164 ] }, { "teal": 141, "source": "contracts\\algo-did.algo.ts:81", "pc": [ 165 ] }, { "teal": 142, "source": "contracts\\algo-did.algo.ts:81", "pc": [ 166, 167 ] }, { "teal": 143, "source": "contracts\\algo-did.algo.ts:81", "pc": [ 168 ] }, { "teal": 144, "source": "contracts\\algo-did.algo.ts:81", "pc": [ 169 ] }, { "teal": 145, "source": "contracts\\algo-did.algo.ts:81", "pc": [ 170 ] }, { "teal": 154, "source": "contracts\\algo-did.algo.ts:83", "pc": [ 171, 172 ] }, { "teal": 155, "source": "contracts\\algo-did.algo.ts:83", "pc": [ 173, 174 ] }, { "teal": 156, "source": "contracts\\algo-did.algo.ts:83", "pc": [ 175 ] }, { "teal": 157, "source": "contracts\\algo-did.algo.ts:84", "pc": [ 176, 177 ] }, { "teal": 158, "source": "contracts\\algo-did.algo.ts:84", "pc": [ 178 ] }, { "teal": 159, "source": "contracts\\algo-did.algo.ts:84", "pc": [ 179 ] }, { "teal": 160, "source": "contracts\\algo-did.algo.ts:84", "pc": [ 180, 181 ] }, { "teal": 161, "source": "contracts\\algo-did.algo.ts:84", "pc": [ 182 ] }, { "teal": 162, "source": "contracts\\algo-did.algo.ts:84", "pc": [ 183, 184 ] }, { "teal": 163, "source": "contracts\\algo-did.algo.ts:84", "pc": [ 185 ] }, { "teal": 164, "source": "contracts\\algo-did.algo.ts:83", "pc": [ 186 ] }, { "teal": 165, "source": "contracts\\algo-did.algo.ts:85", "pc": [ 187, 188 ] }, { "teal": 166, "source": "contracts\\algo-did.algo.ts:85", "pc": [ 189 ] }, { "teal": 167, "source": "contracts\\algo-did.algo.ts:85", "pc": [ 190 ] }, { "teal": 168, "source": "contracts\\algo-did.algo.ts:85", "pc": [ 191, 192 ] }, { "teal": 169, "source": "contracts\\algo-did.algo.ts:85", "pc": [ 193 ] }, { "teal": 170, "source": "contracts\\algo-did.algo.ts:84", "pc": [ 194 ] }, { "teal": 171, "source": "contracts\\algo-did.algo.ts:86", "pc": [ 195, 196 ] }, { "teal": 172, "source": "contracts\\algo-did.algo.ts:86", "pc": [ 197, 198 ] }, { "teal": 173, "source": "contracts\\algo-did.algo.ts:86", "pc": [ 199 ] }, { "teal": 174, "source": "contracts\\algo-did.algo.ts:85", "pc": [ 200 ] }, { "teal": 175, "source": "contracts\\algo-did.algo.ts:87", "pc": [ 201, 202 ] }, { "teal": 176, "source": "contracts\\algo-did.algo.ts:86", "pc": [ 203 ] }, { "teal": 177, "source": "contracts\\algo-did.algo.ts:88", "pc": [ 204, 205, 206, 207 ] }, { "teal": 178, "source": "contracts\\algo-did.algo.ts:87", "pc": [ 208 ] }, { "teal": 179, "source": "contracts\\algo-did.algo.ts:83", "pc": [ 209, 210 ] }, { "teal": 183, "source": "contracts\\algo-did.algo.ts:90", "pc": [ 211, 212 ] }, { "teal": 184, "source": "contracts\\algo-did.algo.ts:90", "pc": [ 213, 214 ] }, { "teal": 185, "source": "contracts\\algo-did.algo.ts:90", "pc": [ 215, 216 ] }, { "teal": 186, "source": "contracts\\algo-did.algo.ts:90", "pc": [ 217 ] }, { "teal": 187, "source": "contracts\\algo-did.algo.ts:90", "pc": [ 218 ] }, { "teal": 191, "source": "contracts\\algo-did.algo.ts:91", "pc": [ 219, 220 ] }, { "teal": 192, "source": "contracts\\algo-did.algo.ts:91", "pc": [ 221, 222 ] }, { "teal": 193, "source": "contracts\\algo-did.algo.ts:91", "pc": [ 223, 224 ] }, { "teal": 194, "source": "contracts\\algo-did.algo.ts:91", "pc": [ 225 ] }, { "teal": 195, "source": "contracts\\algo-did.algo.ts:91", "pc": [ 226 ] }, { "teal": 196, "source": "contracts\\algo-did.algo.ts:58", "pc": [ 227 ] }, { "teal": 201, "source": "contracts\\algo-did.algo.ts:103", "pc": [ 228, 229, 230 ] }, { "teal": 202, "source": "contracts\\algo-did.algo.ts:103", "pc": [ 231, 232, 233 ] }, { "teal": 205, "source": "contracts\\algo-did.algo.ts:103", "pc": [ 234, 235, 236 ] }, { "teal": 206, "source": "contracts\\algo-did.algo.ts:103", "pc": [ 237 ] }, { "teal": 209, "source": "contracts\\algo-did.algo.ts:103", "pc": [ 238, 239, 240 ] }, { "teal": 210, "source": "contracts\\algo-did.algo.ts:103", "pc": [ 241 ] }, { "teal": 213, "source": "contracts\\algo-did.algo.ts:103", "pc": [ 242, 243, 244 ] }, { "teal": 214, "source": "contracts\\algo-did.algo.ts:103", "pc": [ 245 ] }, { "teal": 215, "source": "contracts\\algo-did.algo.ts:103", "pc": [ 246 ] }, { "teal": 216, "source": "contracts\\algo-did.algo.ts:103", "pc": [ 247, 248 ] }, { "teal": 217, "source": "contracts\\algo-did.algo.ts:103", "pc": [ 249 ] }, { "teal": 220, "source": "contracts\\algo-did.algo.ts:103", "errorMessage": "argument 3 (pubKey) for upload must be a address", "pc": [ 250 ] }, { "teal": 223, "source": "contracts\\algo-did.algo.ts:103", "pc": [ 251, 252, 253 ] }, { "teal": 224, "source": "contracts\\algo-did.algo.ts:103", "pc": [ 254 ] }, { "teal": 225, "source": "contracts\\algo-did.algo.ts:103", "pc": [ 255 ] }, { "teal": 237, "source": "contracts\\algo-did.algo.ts:103", "pc": [ 256, 257, 258 ] }, { "teal": 240, "source": "contracts\\algo-did.algo.ts:103", "pc": [ 259 ] }, { "teal": 244, "source": "contracts\\algo-did.algo.ts:104", "pc": [ 260, 261 ] }, { "teal": 245, "source": "contracts\\algo-did.algo.ts:104", "pc": [ 262, 263 ] }, { "teal": 246, "source": "contracts\\algo-did.algo.ts:104", "pc": [ 264 ] }, { "teal": 247, "source": "contracts\\algo-did.algo.ts:104", "pc": [ 265 ] }, { "teal": 251, "source": "contracts\\algo-did.algo.ts:106", "pc": [ 266, 267 ] }, { "teal": 252, "source": "contracts\\algo-did.algo.ts:106", "pc": [ 268, 269 ] }, { "teal": 256, "source": "contracts\\algo-did.algo.ts:106", "pc": [ 270, 271 ] }, { "teal": 257, "source": "contracts\\algo-did.algo.ts:106", "pc": [ 272 ] }, { "teal": 258, "source": "contracts\\algo-did.algo.ts:106", "pc": [ 273 ] }, { "teal": 259, "source": "contracts\\algo-did.algo.ts:106", "pc": [ 274 ] }, { "teal": 260, "source": "contracts\\algo-did.algo.ts:107", "pc": [ 275 ] }, { "teal": 261, "source": "contracts\\algo-did.algo.ts:107", "pc": [ 276 ] }, { "teal": 262, "source": "contracts\\algo-did.algo.ts:107", "pc": [ 277 ] }, { "teal": 263, "source": "contracts\\algo-did.algo.ts:107", "pc": [ 278 ] }, { "teal": 267, "source": "contracts\\algo-did.algo.ts:106", "pc": [ 279, 280 ] }, { "teal": 268, "source": "contracts\\algo-did.algo.ts:106", "pc": [ 281 ] }, { "teal": 269, "source": "contracts\\algo-did.algo.ts:106", "pc": [ 282 ] }, { "teal": 270, "source": "contracts\\algo-did.algo.ts:106", "pc": [ 283 ] }, { "teal": 271, "source": "contracts\\algo-did.algo.ts:108", "pc": [ 284 ] }, { "teal": 272, "source": "contracts\\algo-did.algo.ts:108", "pc": [ 285, 286 ] }, { "teal": 273, "source": "contracts\\algo-did.algo.ts:108", "pc": [ 287 ] }, { "teal": 274, "source": "contracts\\algo-did.algo.ts:108", "pc": [ 288 ] }, { "teal": 275, "source": "contracts\\algo-did.algo.ts:108", "pc": [ 289, 290, 291 ] }, { "teal": 276, "source": "contracts\\algo-did.algo.ts:108", "pc": [ 292, 293 ] }, { "teal": 277, "source": "contracts\\algo-did.algo.ts:106", "pc": [ 294, 295 ] }, { "teal": 278, "source": "contracts\\algo-did.algo.ts:106", "pc": [ 296 ] }, { "teal": 279, "source": "contracts\\algo-did.algo.ts:106", "pc": [ 297 ] }, { "teal": 280, "source": "contracts\\algo-did.algo.ts:106", "pc": [ 298 ] }, { "teal": 281, "source": "contracts\\algo-did.algo.ts:108", "pc": [ 299 ] }, { "teal": 282, "source": "contracts\\algo-did.algo.ts:108", "pc": [ 300 ] }, { "teal": 283, "source": "contracts\\algo-did.algo.ts:108", "pc": [ 301 ] }, { "teal": 286, "source": "contracts\\algo-did.algo.ts:108", "pc": [ 302 ] }, { "teal": 291, "source": "contracts\\algo-did.algo.ts:110", "pc": [ 303, 304 ] }, { "teal": 292, "source": "contracts\\algo-did.algo.ts:110", "pc": [ 305 ] }, { "teal": 293, "source": "contracts\\algo-did.algo.ts:110", "pc": [ 306 ] }, { "teal": 294, "source": "contracts\\algo-did.algo.ts:110", "pc": [ 307, 308, 309 ] }, { "teal": 301, "source": "contracts\\algo-did.algo.ts:111", "pc": [ 310, 311 ] }, { "teal": 302, "source": "contracts\\algo-did.algo.ts:111", "pc": [ 312 ] }, { "teal": 303, "source": "contracts\\algo-did.algo.ts:112", "pc": [ 313, 314 ] }, { "teal": 304, "source": "contracts\\algo-did.algo.ts:106", "pc": [ 315, 316 ] }, { "teal": 305, "source": "contracts\\algo-did.algo.ts:106", "pc": [ 317 ] }, { "teal": 306, "source": "contracts\\algo-did.algo.ts:106", "pc": [ 318 ] }, { "teal": 307, "source": "contracts\\algo-did.algo.ts:106", "pc": [ 319 ] }, { "teal": 308, "source": "contracts\\algo-did.algo.ts:112", "pc": [ 320 ] }, { "teal": 309, "source": "contracts\\algo-did.algo.ts:112", "pc": [ 321 ] }, { "teal": 310, "source": "contracts\\algo-did.algo.ts:112", "pc": [ 322, 323, 324 ] }, { "teal": 311, "source": "contracts\\algo-did.algo.ts:106", "pc": [ 325, 326 ] }, { "teal": 312, "source": "contracts\\algo-did.algo.ts:106", "pc": [ 327, 328 ] }, { "teal": 313, "source": "contracts\\algo-did.algo.ts:106", "pc": [ 329 ] }, { "teal": 314, "source": "contracts\\algo-did.algo.ts:106", "pc": [ 330 ] }, { "teal": 315, "source": "contracts\\algo-did.algo.ts:112", "pc": [ 331 ] }, { "teal": 316, "source": "contracts\\algo-did.algo.ts:112", "pc": [ 332, 333, 334 ] }, { "teal": 319, "source": "contracts\\algo-did.algo.ts:112", "pc": [ 335, 336 ] }, { "teal": 322, "source": "contracts\\algo-did.algo.ts:111", "pc": [ 337 ] }, { "teal": 323, "source": "contracts\\algo-did.algo.ts:111", "pc": [ 338 ] }, { "teal": 328, "source": "contracts\\algo-did.algo.ts:116", "pc": [ 339, 340 ] }, { "teal": 329, "source": "contracts\\algo-did.algo.ts:116", "pc": [ 341 ] }, { "teal": 330, "source": "contracts\\algo-did.algo.ts:116", "pc": [ 342, 343 ] }, { "teal": 331, "source": "contracts\\algo-did.algo.ts:116", "pc": [ 344, 345 ] }, { "teal": 332, "source": "contracts\\algo-did.algo.ts:116", "pc": [ 346 ] }, { "teal": 333, "source": "contracts\\algo-did.algo.ts:103", "pc": [ 347 ] }, { "teal": 338, "source": "contracts\\algo-did.algo.ts:125", "pc": [ 348, 349, 350 ] }, { "teal": 339, "source": "contracts\\algo-did.algo.ts:125", "pc": [ 351 ] }, { "teal": 340, "source": "contracts\\algo-did.algo.ts:125", "pc": [ 352 ] }, { "teal": 341, "source": "contracts\\algo-did.algo.ts:125", "pc": [ 353, 354 ] }, { "teal": 342, "source": "contracts\\algo-did.algo.ts:125", "pc": [ 355 ] }, { "teal": 345, "source": "contracts\\algo-did.algo.ts:125", "errorMessage": "argument 0 (pubKey) for finishUpload must be a address", "pc": [ 356 ] }, { "teal": 348, "source": "contracts\\algo-did.algo.ts:125", "pc": [ 357, 358, 359 ] }, { "teal": 349, "source": "contracts\\algo-did.algo.ts:125", "pc": [ 360 ] }, { "teal": 350, "source": "contracts\\algo-did.algo.ts:125", "pc": [ 361 ] }, { "teal": 359, "source": "contracts\\algo-did.algo.ts:125", "pc": [ 362, 363, 364 ] }, { "teal": 363, "source": "contracts\\algo-did.algo.ts:126", "pc": [ 365, 366 ] }, { "teal": 364, "source": "contracts\\algo-did.algo.ts:126", "pc": [ 367, 368 ] }, { "teal": 365, "source": "contracts\\algo-did.algo.ts:126", "pc": [ 369 ] }, { "teal": 366, "source": "contracts\\algo-did.algo.ts:126", "pc": [ 370 ] }, { "teal": 370, "source": "contracts\\algo-did.algo.ts:128", "pc": [ 371, 372 ] }, { "teal": 371, "source": "contracts\\algo-did.algo.ts:128", "pc": [ 373 ] }, { "teal": 372, "source": "contracts\\algo-did.algo.ts:128", "pc": [ 374, 375, 376 ] }, { "teal": 373, "source": "contracts\\algo-did.algo.ts:128", "pc": [ 377 ] }, { "teal": 374, "source": "contracts\\algo-did.algo.ts:125", "pc": [ 378 ] }, { "teal": 379, "source": "contracts\\algo-did.algo.ts:136", "pc": [ 379, 380, 381 ] }, { "teal": 380, "source": "contracts\\algo-did.algo.ts:136", "pc": [ 382 ] }, { "teal": 381, "source": "contracts\\algo-did.algo.ts:136", "pc": [ 383 ] }, { "teal": 382, "source": "contracts\\algo-did.algo.ts:136", "pc": [ 384, 385 ] }, { "teal": 383, "source": "contracts\\algo-did.algo.ts:136", "pc": [ 386 ] }, { "teal": 386, "source": "contracts\\algo-did.algo.ts:136", "errorMessage": "argument 0 (pubKey) for startDelete must be a address", "pc": [ 387 ] }, { "teal": 389, "source": "contracts\\algo-did.algo.ts:136", "pc": [ 388, 389, 390 ] }, { "teal": 390, "source": "contracts\\algo-did.algo.ts:136", "pc": [ 391 ] }, { "teal": 391, "source": "contracts\\algo-did.algo.ts:136", "pc": [ 392 ] }, { "teal": 399, "source": "contracts\\algo-did.algo.ts:136", "pc": [ 393, 394, 395 ] }, { "teal": 402, "source": "contracts\\algo-did.algo.ts:136", "pc": [ 396 ] }, { "teal": 406, "source": "contracts\\algo-did.algo.ts:137", "pc": [ 397, 398 ] }, { "teal": 407, "source": "contracts\\algo-did.algo.ts:137", "pc": [ 399, 400 ] }, { "teal": 408, "source": "contracts\\algo-did.algo.ts:137", "pc": [ 401 ] }, { "teal": 409, "source": "contracts\\algo-did.algo.ts:137", "pc": [ 402 ] }, { "teal": 413, "source": "contracts\\algo-did.algo.ts:139", "pc": [ 403, 404 ] }, { "teal": 414, "source": "contracts\\algo-did.algo.ts:139", "pc": [ 405, 406 ] }, { "teal": 418, "source": "contracts\\algo-did.algo.ts:139", "pc": [ 407, 408 ] }, { "teal": 419, "source": "contracts\\algo-did.algo.ts:139", "pc": [ 409 ] }, { "teal": 420, "source": "contracts\\algo-did.algo.ts:139", "pc": [ 410 ] }, { "teal": 421, "source": "contracts\\algo-did.algo.ts:139", "pc": [ 411 ] }, { "teal": 422, "source": "contracts\\algo-did.algo.ts:140", "pc": [ 412 ] }, { "teal": 423, "source": "contracts\\algo-did.algo.ts:140", "pc": [ 413 ] }, { "teal": 424, "source": "contracts\\algo-did.algo.ts:140", "pc": [ 414 ] }, { "teal": 425, "source": "contracts\\algo-did.algo.ts:140", "pc": [ 415 ] }, { "teal": 429, "source": "contracts\\algo-did.algo.ts:139", "pc": [ 416, 417 ] }, { "teal": 430, "source": "contracts\\algo-did.algo.ts:139", "pc": [ 418 ] }, { "teal": 431, "source": "contracts\\algo-did.algo.ts:139", "pc": [ 419, 420, 421 ] }, { "teal": 432, "source": "contracts\\algo-did.algo.ts:139", "pc": [ 422 ] }, { "teal": 433, "source": "contracts\\algo-did.algo.ts:136", "pc": [ 423 ] }, { "teal": 438, "source": "contracts\\algo-did.algo.ts:151", "pc": [ 424, 425, 426 ] }, { "teal": 439, "source": "contracts\\algo-did.algo.ts:151", "pc": [ 427 ] }, { "teal": 442, "source": "contracts\\algo-did.algo.ts:151", "pc": [ 428, 429, 430 ] }, { "teal": 443, "source": "contracts\\algo-did.algo.ts:151", "pc": [ 431 ] }, { "teal": 444, "source": "contracts\\algo-did.algo.ts:151", "pc": [ 432 ] }, { "teal": 445, "source": "contracts\\algo-did.algo.ts:151", "pc": [ 433, 434 ] }, { "teal": 446, "source": "contracts\\algo-did.algo.ts:151", "pc": [ 435 ] }, { "teal": 449, "source": "contracts\\algo-did.algo.ts:151", "errorMessage": "argument 1 (pubKey) for deleteData must be a address", "pc": [ 436 ] }, { "teal": 452, "source": "contracts\\algo-did.algo.ts:151", "pc": [ 437, 438, 439 ] }, { "teal": 453, "source": "contracts\\algo-did.algo.ts:151", "pc": [ 440 ] }, { "teal": 454, "source": "contracts\\algo-did.algo.ts:151", "pc": [ 441 ] }, { "teal": 463, "source": "contracts\\algo-did.algo.ts:151", "pc": [ 442, 443, 444 ] }, { "teal": 466, "source": "contracts\\algo-did.algo.ts:151", "pc": [ 445 ] }, { "teal": 467, "source": "contracts\\algo-did.algo.ts:151", "pc": [ 446 ] }, { "teal": 471, "source": "contracts\\algo-did.algo.ts:152", "pc": [ 447, 448 ] }, { "teal": 472, "source": "contracts\\algo-did.algo.ts:152", "pc": [ 449, 450 ] }, { "teal": 473, "source": "contracts\\algo-did.algo.ts:152", "pc": [ 451 ] }, { "teal": 474, "source": "contracts\\algo-did.algo.ts:152", "pc": [ 452 ] }, { "teal": 478, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 453, 454 ] }, { "teal": 479, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 455, 456 ] }, { "teal": 483, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 457, 458 ] }, { "teal": 484, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 459 ] }, { "teal": 485, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 460 ] }, { "teal": 486, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 461 ] }, { "teal": 487, "source": "contracts\\algo-did.algo.ts:155", "pc": [ 462 ] }, { "teal": 488, "source": "contracts\\algo-did.algo.ts:155", "pc": [ 463, 464 ] }, { "teal": 489, "source": "contracts\\algo-did.algo.ts:155", "pc": [ 465 ] }, { "teal": 490, "source": "contracts\\algo-did.algo.ts:155", "pc": [ 466 ] }, { "teal": 494, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 467, 468 ] }, { "teal": 495, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 469 ] }, { "teal": 496, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 470 ] }, { "teal": 497, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 471 ] }, { "teal": 498, "source": "contracts\\algo-did.algo.ts:156", "pc": [ 472 ] }, { "teal": 499, "source": "contracts\\algo-did.algo.ts:156", "pc": [ 473, 474 ] }, { "teal": 500, "source": "contracts\\algo-did.algo.ts:156", "pc": [ 475 ] }, { "teal": 501, "source": "contracts\\algo-did.algo.ts:156", "pc": [ 476 ] }, { "teal": 502, "source": "contracts\\algo-did.algo.ts:156", "pc": [ 477, 478, 479 ] }, { "teal": 503, "source": "contracts\\algo-did.algo.ts:156", "pc": [ 480, 481 ] }, { "teal": 504, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 482, 483 ] }, { "teal": 505, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 484 ] }, { "teal": 506, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 485 ] }, { "teal": 507, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 486 ] }, { "teal": 508, "source": "contracts\\algo-did.algo.ts:156", "pc": [ 487 ] }, { "teal": 509, "source": "contracts\\algo-did.algo.ts:156", "pc": [ 488 ] }, { "teal": 510, "source": "contracts\\algo-did.algo.ts:156", "pc": [ 489 ] }, { "teal": 513, "source": "contracts\\algo-did.algo.ts:156", "pc": [ 490 ] }, { "teal": 518, "source": "contracts\\algo-did.algo.ts:158", "pc": [ 491, 492 ] }, { "teal": 519, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 493, 494 ] }, { "teal": 520, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 495 ] }, { "teal": 521, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 496 ] }, { "teal": 522, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 497 ] }, { "teal": 523, "source": "contracts\\algo-did.algo.ts:158", "pc": [ 498 ] }, { "teal": 524, "source": "contracts\\algo-did.algo.ts:158", "pc": [ 499 ] }, { "teal": 525, "source": "contracts\\algo-did.algo.ts:158", "pc": [ 500, 501, 502 ] }, { "teal": 530, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 503, 504 ] }, { "teal": 531, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 505, 506 ] }, { "teal": 532, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 507 ] }, { "teal": 533, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 508 ] }, { "teal": 534, "source": "contracts\\algo-did.algo.ts:159", "pc": [ 509 ] }, { "teal": 535, "source": "contracts\\algo-did.algo.ts:159", "pc": [ 510, 511 ] }, { "teal": 536, "source": "contracts\\algo-did.algo.ts:159", "pc": [ 512 ] }, { "teal": 537, "source": "contracts\\algo-did.algo.ts:159", "pc": [ 513 ] }, { "teal": 538, "source": "contracts\\algo-did.algo.ts:159", "pc": [ 514 ] }, { "teal": 539, "source": "contracts\\algo-did.algo.ts:159", "pc": [ 515 ] }, { "teal": 544, "source": "contracts\\algo-did.algo.ts:162", "pc": [ 516, 517 ] }, { "teal": 545, "source": "contracts\\algo-did.algo.ts:162", "pc": [ 518, 519 ] }, { "teal": 546, "source": "contracts\\algo-did.algo.ts:162", "pc": [ 520 ] }, { "teal": 547, "source": "contracts\\algo-did.algo.ts:162", "pc": [ 521, 522 ] }, { "teal": 551, "source": "contracts\\algo-did.algo.ts:164", "pc": [ 523, 524 ] }, { "teal": 552, "source": "contracts\\algo-did.algo.ts:164", "pc": [ 525 ] }, { "teal": 553, "source": "contracts\\algo-did.algo.ts:164", "pc": [ 526 ] }, { "teal": 558, "source": "contracts\\algo-did.algo.ts:166", "pc": [ 527, 528 ] }, { "teal": 559, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 529, 530 ] }, { "teal": 560, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 531 ] }, { "teal": 561, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 532 ] }, { "teal": 562, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 533 ] }, { "teal": 563, "source": "contracts\\algo-did.algo.ts:166", "pc": [ 534 ] }, { "teal": 564, "source": "contracts\\algo-did.algo.ts:166", "pc": [ 535 ] }, { "teal": 565, "source": "contracts\\algo-did.algo.ts:166", "pc": [ 536, 537, 538 ] }, { "teal": 570, "source": "contracts\\algo-did.algo.ts:166", "pc": [ 539, 540 ] }, { "teal": 571, "source": "contracts\\algo-did.algo.ts:166", "pc": [ 541 ] }, { "teal": 572, "source": "contracts\\algo-did.algo.ts:166", "pc": [ 542, 543, 544 ] }, { "teal": 577, "source": "contracts\\algo-did.algo.ts:167", "pc": [ 545, 546 ] }, { "teal": 578, "source": "contracts\\algo-did.algo.ts:167", "pc": [ 547, 548 ] }, { "teal": 579, "source": "contracts\\algo-did.algo.ts:167", "pc": [ 549 ] }, { "teal": 580, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 550, 551 ] }, { "teal": 581, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 552, 553 ] }, { "teal": 582, "source": "contracts\\algo-did.algo.ts:154", "pc": [ 554 ] }, { "teal": 590, "source": "contracts\\algo-did.algo.ts:169", "pc": [ 555 ] }, { "teal": 591, "source": "contracts\\algo-did.algo.ts:169", "pc": [ 556 ] }, { "teal": 592, "source": "contracts\\algo-did.algo.ts:169", "pc": [ 557, 558 ] }, { "teal": 596, "source": "contracts\\algo-did.algo.ts:170", "pc": [ 559, 560 ] }, { "teal": 597, "source": "contracts\\algo-did.algo.ts:170", "pc": [ 561, 562 ] }, { "teal": 598, "source": "contracts\\algo-did.algo.ts:170", "pc": [ 563, 564 ] }, { "teal": 599, "source": "contracts\\algo-did.algo.ts:170", "pc": [ 565 ] }, { "teal": 600, "source": "contracts\\algo-did.algo.ts:170", "pc": [ 566 ] }, { "teal": 601, "source": "contracts\\algo-did.algo.ts:170", "pc": [ 567, 568 ] }, { "teal": 605, "source": "contracts\\algo-did.algo.ts:171", "pc": [ 569, 570 ] }, { "teal": 606, "source": "contracts\\algo-did.algo.ts:171", "pc": [ 571, 572 ] }, { "teal": 609, "source": "contracts\\algo-did.algo.ts:169", "pc": [ 573 ] }, { "teal": 610, "source": "contracts\\algo-did.algo.ts:169", "pc": [ 574, 575 ] }, { "teal": 613, "source": "contracts\\algo-did.algo.ts:169", "pc": [ 576 ] }, { "teal": 614, "source": "contracts\\algo-did.algo.ts:151", "pc": [ 577 ] }, { "teal": 619, "source": "contracts\\algo-did.algo.ts:178", "pc": [ 578, 579, 580 ] }, { "teal": 620, "source": "contracts\\algo-did.algo.ts:178", "pc": [ 581 ] }, { "teal": 621, "source": "contracts\\algo-did.algo.ts:178", "pc": [ 582 ] }, { "teal": 627, "source": "contracts\\algo-did.algo.ts:178", "pc": [ 583, 584, 585 ] }, { "teal": 631, "source": "contracts\\algo-did.algo.ts:179", "pc": [ 586, 587 ] }, { "teal": 632, "source": "contracts\\algo-did.algo.ts:179", "pc": [ 588, 589 ] }, { "teal": 633, "source": "contracts\\algo-did.algo.ts:179", "pc": [ 590 ] }, { "teal": 634, "source": "contracts\\algo-did.algo.ts:179", "pc": [ 591 ] }, { "teal": 635, "source": "contracts\\algo-did.algo.ts:178", "pc": [ 592 ] }, { "teal": 640, "source": "contracts\\algo-did.algo.ts:188", "pc": [ 593, 594, 595 ] }, { "teal": 641, "source": "contracts\\algo-did.algo.ts:188", "pc": [ 596 ] }, { "teal": 642, "source": "contracts\\algo-did.algo.ts:188", "pc": [ 597 ] }, { "teal": 651, "source": "contracts\\algo-did.algo.ts:188", "pc": [ 598, 599, 600 ] }, { "teal": 652, "source": "contracts\\algo-did.algo.ts:188", "pc": [ 601 ] }, { "teal": 655, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 602 ] }, { "teal": 656, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 603 ] }, { "teal": 659, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 604, 605, 606, 607, 608, 609 ] }, { "teal": 660, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 610, 611, 612 ] }, { "teal": 661, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 613, 614, 615, 616 ] }, { "teal": 664, "source": "contracts\\algo-did.algo.ts:39", "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ 617 ] }, { "teal": 667, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 618, 619, 620, 621, 622, 623 ] }, { "teal": 668, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 624, 625, 626, 627, 628, 629 ] }, { "teal": 669, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 630, 631, 632, 633, 634, 635 ] }, { "teal": 670, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 636, 637, 638, 639, 640, 641 ] }, { "teal": 671, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 642, 643, 644, 645, 646, 647 ] }, { "teal": 672, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 648, 649, 650, 651, 652, 653 ] }, { "teal": 673, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 654, 655, 656 ] }, { "teal": 674, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670 ] }, { "teal": 677, "source": "contracts\\algo-did.algo.ts:39", "errorMessage": "this contract does not implement the given ABI method for call NoOp", "pc": [ 671 ] }, { "teal": 680, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 672, 673, 674, 675, 676, 677 ] }, { "teal": 681, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 678, 679, 680 ] }, { "teal": 682, "source": "contracts\\algo-did.algo.ts:39", "pc": [ 681, 682, 683, 684 ] }, { "teal": 685, "source": "contracts\\algo-did.algo.ts:39", "errorMessage": "this contract does not implement the given ABI method for call UpdateApplication", "pc": [ 685 ] } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIDggMCAxNiAzMiA0MDAgMjUwMCAzMjc2OCAyNQpieXRlY2Jsb2NrIDB4IDB4NjM3NTcyNzI2NTZlNzQ0OTZlNjQ2NTc4CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNi4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNhbGxfVXBkYXRlQXBwbGljYXRpb24gKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHN0YXJ0VXBsb2FkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCxwYXkpdm9pZAoqYWJpX3JvdXRlX3N0YXJ0VXBsb2FkOgoJLy8gbWJyUGF5bWVudDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50YyAwIC8vIDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludGMgMCAvLyAgcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKG1iclBheW1lbnQpIGZvciBzdGFydFVwbG9hZCBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBlbmRCb3hTaXplOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBudW1Cb3hlczogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gcHViS2V5OiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50YyA0IC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDMgKHB1YktleSkgZm9yIHN0YXJ0VXBsb2FkIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIHN0YXJ0VXBsb2FkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCxwYXkpdm9pZAoJY2FsbHN1YiBzdGFydFVwbG9hZAoJaW50YyAwIC8vIDEKCXJldHVybgoKLy8gc3RhcnRVcGxvYWQocHViS2V5OiBBZGRyZXNzLCBudW1Cb3hlczogdWludDY0LCBlbmRCb3hTaXplOiB1aW50NjQsIG1iclBheW1lbnQ6IFBheVR4bik6IHZvaWQKLy8KLy8KLy8gQWxsb2NhdGUgYm94ZXMgdG8gYmVnaW4gZGF0YSB1cGxvYWQgcHJvY2VzcwovLwovLyBAcGFyYW0gcHViS2V5IFRoZSBwdWJrZXkgb2YgdGhlIERJRAovLyBAcGFyYW0gbnVtQm94ZXMgVGhlIG51bWJlciBvZiBib3hlcyB0aGF0IHRoZSBkYXRhIHdpbGwgdGFrZSB1cAovLyBAcGFyYW0gZW5kQm94U2l6ZSBUaGUgc2l6ZSBvZiB0aGUgbGFzdCBib3gKLy8gQHBhcmFtIG1iclBheW1lbnQgUGF5bWVudCBmcm9tIHRoZSB1cGxvYWRlciB0byBjb3ZlciB0aGUgYm94IE1CUgpzdGFydFVwbG9hZDoKCXByb3RvIDQgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlYyAwIC8vIDB4CglkdXBuIDMKCgkvLyBjb250cmFjdHNcYWxnby1kaWQuYWxnby50czo2NAoJLy8gYXNzZXJ0KHRoaXMudHhuLnNlbmRlciA9PT0gZ2xvYmFscy5jcmVhdG9yQWRkcmVzcykKCXR4biBTZW5kZXIKCWdsb2JhbCBDcmVhdG9yQWRkcmVzcwoJPT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0c1xhbGdvLWRpZC5hbGdvLnRzOjY2CgkvLyBzdGFydEJveCA9IHRoaXMuY3VycmVudEluZGV4LnZhbHVlCglieXRlYyAxIC8vICAiY3VycmVudEluZGV4IgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2J1cnkgMCAvLyBzdGFydEJveDogdWludDY0CgoJLy8gY29udHJhY3RzXGFsZ28tZGlkLmFsZ28udHM6NjcKCS8vIGVuZEJveCA9IHN0YXJ0Qm94ICsgbnVtQm94ZXMgLSAxCglmcmFtZV9kaWcgMCAvLyBzdGFydEJveDogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gbnVtQm94ZXM6IHVpbnQ2NAoJKwoJaW50YyAwIC8vIDEKCS0KCWZyYW1lX2J1cnkgMSAvLyBlbmRCb3g6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0c1xhbGdvLWRpZC5hbGdvLnRzOjY5CgkvLyBtZXRhZGF0YTogTWV0YWRhdGEgPSB7CgkvLyAgICAgICBzdGFydDogc3RhcnRCb3gsCgkvLyAgICAgICBlbmQ6IGVuZEJveCwKCS8vICAgICAgIHN0YXR1czogVVBMT0FESU5HLAoJLy8gICAgICAgZW5kU2l6ZTogZW5kQm94U2l6ZSwKCS8vICAgICAgIGxhc3REZWxldGVkOiAwLAoJLy8gICAgIH0KCWZyYW1lX2RpZyAwIC8vIHN0YXJ0Qm94OiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyAxIC8vIGVuZEJveDogdWludDY0CglpdG9iCgljb25jYXQKCXB1c2hieXRlcyAweDAwCgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyBlbmRCb3hTaXplOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglmcmFtZV9idXJ5IDIgLy8gbWV0YWRhdGE6IE1ldGFkYXRhCgoJLy8gY29udHJhY3RzXGFsZ28tZGlkLmFsZ28udHM6NzcKCS8vIGFzc2VydCghdGhpcy5tZXRhZGF0YShwdWJLZXkpLmV4aXN0cykKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IEFkZHJlc3MKCWJveF9sZW4KCXN3YXAKCXBvcAoJIQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzXGFsZ28tZGlkLmFsZ28udHM6NzkKCS8vIHRoaXMubWV0YWRhdGEocHViS2V5KS52YWx1ZSA9IG1ldGFkYXRhCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglmcmFtZV9kaWcgMiAvLyBtZXRhZGF0YTogTWV0YWRhdGEKCWJveF9wdXQKCgkvLyBjb250cmFjdHNcYWxnby1kaWQuYWxnby50czo4MQoJLy8gdGhpcy5jdXJyZW50SW5kZXgudmFsdWUgPSBlbmRCb3ggKyAxCglieXRlYyAxIC8vICAiY3VycmVudEluZGV4IgoJZnJhbWVfZGlnIDEgLy8gZW5kQm94OiB1aW50NjQKCWludGMgMCAvLyAxCgkrCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGNvbnRyYWN0c1xhbGdvLWRpZC5hbGdvLnRzOjgzCgkvLyB0b3RhbENvc3QgPSBudW1Cb3hlcyAqIENPU1RfUEVSX0JPWCArIC8vIGNvc3Qgb2YgZGF0YSBib3hlcwoJLy8gICAgICAgKG51bUJveGVzIC0gMSkgKiBNQVhfQk9YX1NJWkUgKiBDT1NUX1BFUl9CWVRFICsgLy8gY29zdCBvZiBkYXRhCgkvLyAgICAgICBudW1Cb3hlcyAqIDggKiBDT1NUX1BFUl9CWVRFICsgLy8gY29zdCBvZiBkYXRhIGtleXMKCS8vICAgICAgIGVuZEJveFNpemUgKiBDT1NUX1BFUl9CWVRFICsgLy8gY29zdCBvZiBsYXN0IGRhdGEgYm94CgkvLyAgICAgICBDT1NUX1BFUl9CT1ggKwoJLy8gICAgICAgKDggKyA4ICsgMSArIDggKyAzMiArIDgpICogQ09TVF9QRVJfQllURQoJZnJhbWVfZGlnIC0yIC8vIG51bUJveGVzOiB1aW50NjQKCWludGMgNiAvLyAyNTAwCgkqCglmcmFtZV9kaWcgLTIgLy8gbnVtQm94ZXM6IHVpbnQ2NAoJaW50YyAwIC8vIDEKCS0KCWludGMgNyAvLyAzMjc2OAoJKgoJaW50YyA1IC8vIDQwMAoJKgoJKwoJZnJhbWVfZGlnIC0yIC8vIG51bUJveGVzOiB1aW50NjQKCWludGMgMSAvLyA4CgkqCglpbnRjIDUgLy8gNDAwCgkqCgkrCglmcmFtZV9kaWcgLTMgLy8gZW5kQm94U2l6ZTogdWludDY0CglpbnRjIDUgLy8gNDAwCgkqCgkrCglpbnRjIDYgLy8gMjUwMAoJKwoJcHVzaGludCAyNjAwMAoJKwoJZnJhbWVfYnVyeSAzIC8vIHRvdGFsQ29zdDogdWludDY0CgoJLy8gY29udHJhY3RzXGFsZ28tZGlkLmFsZ28udHM6OTAKCS8vIGFzc2VydChtYnJQYXltZW50LmFtb3VudCA9PT0gdG90YWxDb3N0KQoJZnJhbWVfZGlnIC00IC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9kaWcgMyAvLyB0b3RhbENvc3Q6IHVpbnQ2NAoJPT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0c1xhbGdvLWRpZC5hbGdvLnRzOjkxCgkvLyBhc3NlcnQobWJyUGF5bWVudC5yZWNlaXZlciA9PT0gdGhpcy5hcHAuYWRkcmVzcykKCWZyYW1lX2RpZyAtNCAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyB1cGxvYWQoYWRkcmVzcyx1aW50NjQsdWludDY0LGJ5dGVbXSl2b2lkCiphYmlfcm91dGVfdXBsb2FkOgoJLy8gZGF0YTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA0CglleHRyYWN0IDIgMAoKCS8vIG9mZnNldDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gYm94SW5kZXg6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHB1YktleTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAzIChwdWJLZXkpIGZvciB1cGxvYWQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdXBsb2FkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCxieXRlW10pdm9pZAoJY2FsbHN1YiB1cGxvYWQKCWludGMgMCAvLyAxCglyZXR1cm4KCi8vIHVwbG9hZChwdWJLZXk6IEFkZHJlc3MsIGJveEluZGV4OiB1aW50NjQsIG9mZnNldDogdWludDY0LCBkYXRhOiBieXRlcyk6IHZvaWQKLy8KLy8KLy8gVXBsb2FkIGRhdGEgdG8gYSBzcGVjaWZpYyBvZmZzZXQgaW4gYSBib3gKLy8KLy8gQHBhcmFtIHB1YktleSBUaGUgcHVia2V5IG9mIHRoZSBESUQKLy8gQHBhcmFtIGJveEluZGV4IFRoZSBpbmRleCBvZiB0aGUgYm94IHRvIHVwbG9hZCB0aGUgZ2l2ZW4gY2h1bmsgb2YgZGF0YSB0bwovLyBAcGFyYW0gb2Zmc2V0IFRoZSBvZmZzZXQgd2l0aGluIHRoZSBib3ggdG8gc3RhcnQgd3JpdGluZyB0aGUgZGF0YQovLyBAcGFyYW0gZGF0YSBUaGUgZGF0YSB0byB3cml0ZQp1cGxvYWQ6Cglwcm90byA0IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoKCS8vIGNvbnRyYWN0c1xhbGdvLWRpZC5hbGdvLnRzOjEwNAoJLy8gYXNzZXJ0KHRoaXMudHhuLnNlbmRlciA9PT0gZ2xvYmFscy5jcmVhdG9yQWRkcmVzcykKCXR4biBTZW5kZXIKCWdsb2JhbCBDcmVhdG9yQWRkcmVzcwoJPT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0c1xhbGdvLWRpZC5hbGdvLnRzOjEwNgoJLy8gbWV0YWRhdGEgPSB0aGlzLm1ldGFkYXRhKHB1YktleSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IEFkZHJlc3MKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCgkvLyBjb250cmFjdHNcYWxnby1kaWQuYWxnby50czoxMDcKCS8vIGFzc2VydChtZXRhZGF0YS5zdGF0dXMgPT09IFVQTE9BRElORykKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IEFkZHJlc3MKCWludGMgMyAvLyAgaGVhZE9mZnNldAoJaW50YyAwIC8vIDEKCWJveF9leHRyYWN0CglidG9pCglpbnRjIDIgLy8gMAoJPT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0c1xhbGdvLWRpZC5hbGdvLnRzOjEwOAoJLy8gYXNzZXJ0KG1ldGFkYXRhLnN0YXJ0IDw9IGJveEluZGV4ICYmIGJveEluZGV4IDw9IG1ldGFkYXRhLmVuZCkKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IEFkZHJlc3MKCWludGMgMiAvLyAwCglpbnRjIDEgLy8gOAoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0Cgk8PQoJZHVwCglieiAqc2tpcF9hbmQwCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50YyAxIC8vICBoZWFkT2Zmc2V0CglpbnRjIDEgLy8gOAoJYm94X2V4dHJhY3QKCWJ0b2kKCTw9CgkmJgoKKnNraXBfYW5kMDoKCWFzc2VydAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBjb250cmFjdHNcYWxnby1kaWQuYWxnby50czoxMTAKCS8vIG9mZnNldCA9PT0gMAoJZnJhbWVfZGlnIC0zIC8vIG9mZnNldDogdWludDY0CglpbnRjIDIgLy8gMAoJPT0KCWJ6ICppZjBfZW5kCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHNcYWxnby1kaWQuYWxnby50czoxMTEKCS8vIHRoaXMuZGF0YUJveGVzKGJveEluZGV4KS5jcmVhdGUoCgkvLyAgICAgICAgIGJveEluZGV4ID09PSBtZXRhZGF0YS5lbmQgPyBtZXRhZGF0YS5lbmRTaXplIDogTUFYX0JPWF9TSVpFLAoJLy8gICAgICAgKQoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglpbnRjIDEgLy8gIGhlYWRPZmZzZXQKCWludGMgMSAvLyA4Cglib3hfZXh0cmFjdAoJYnRvaQoJPT0KCWJ6ICp0ZXJuYXJ5MF9mYWxzZQoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJcHVzaGludCAxNyAvLyBoZWFkT2Zmc2V0CglpbnRjIDEgLy8gOAoJYm94X2V4dHJhY3QKCWJ0b2kKCWIgKnRlcm5hcnkwX2VuZAoKKnRlcm5hcnkwX2ZhbHNlOgoJaW50YyA3IC8vIDMyNzY4CgoqdGVybmFyeTBfZW5kOgoJYm94X2NyZWF0ZQoJcG9wCgoqaWYwX2VuZDoKCS8vIGNvbnRyYWN0c1xhbGdvLWRpZC5hbGdvLnRzOjExNgoJLy8gdGhpcy5kYXRhQm94ZXMoYm94SW5kZXgpLnJlcGxhY2Uob2Zmc2V0LCBkYXRhKQoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyAtMyAvLyBvZmZzZXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC00IC8vIGRhdGE6IGJ5dGVzCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBmaW5pc2hVcGxvYWQoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfZmluaXNoVXBsb2FkOgoJLy8gcHViS2V5OiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50YyA0IC8vIDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHB1YktleSkgZm9yIGZpbmlzaFVwbG9hZCBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBmaW5pc2hVcGxvYWQoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGZpbmlzaFVwbG9hZAoJaW50YyAwIC8vIDEKCXJldHVybgoKLy8gZmluaXNoVXBsb2FkKHB1YktleTogQWRkcmVzcyk6IHZvaWQKLy8KLy8KLy8gTWFyayB1cGxvYWRpbmcgYXMgZmFsc2UKLy8KLy8gQHBhcmFtIHB1YktleSBUaGUgYWRkcmVzcyBvZiB0aGUgRElECmZpbmlzaFVwbG9hZDoKCXByb3RvIDEgMAoKCS8vIGNvbnRyYWN0c1xhbGdvLWRpZC5hbGdvLnRzOjEyNgoJLy8gYXNzZXJ0KHRoaXMudHhuLnNlbmRlciA9PT0gZ2xvYmFscy5jcmVhdG9yQWRkcmVzcykKCXR4biBTZW5kZXIKCWdsb2JhbCBDcmVhdG9yQWRkcmVzcwoJPT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0c1xhbGdvLWRpZC5hbGdvLnRzOjEyOAoJLy8gdGhpcy5tZXRhZGF0YShwdWJLZXkpLnZhbHVlLnN0YXR1cyA9IFJFQURZCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglpbnRjIDMgLy8gIGhlYWRPZmZzZXQKCXB1c2hieXRlcyAweDAxCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBzdGFydERlbGV0ZShhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9zdGFydERlbGV0ZToKCS8vIHB1YktleTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludGMgNCAvLyAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChwdWJLZXkpIGZvciBzdGFydERlbGV0ZSBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzdGFydERlbGV0ZShhZGRyZXNzKXZvaWQKCWNhbGxzdWIgc3RhcnREZWxldGUKCWludGMgMCAvLyAxCglyZXR1cm4KCi8vIHN0YXJ0RGVsZXRlKHB1YktleTogQWRkcmVzcyk6IHZvaWQKLy8KLy8gU3RhcnRzIHRoZSBkZWxldGlvbiBwcm9jZXNzIGZvciB0aGUgZGF0YSBhc3NvY2lhdGVkIHdpdGggYSBESUQKLy8KLy8gQHBhcmFtIHB1YktleSBUaGUgYWRkcmVzcyBvZiB0aGUgRElECnN0YXJ0RGVsZXRlOgoJcHJvdG8gMSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCgkvLyBjb250cmFjdHNcYWxnby1kaWQuYWxnby50czoxMzcKCS8vIGFzc2VydCh0aGlzLnR4bi5zZW5kZXIgPT09IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MpCgl0eG4gU2VuZGVyCglnbG9iYWwgQ3JlYXRvckFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHNcYWxnby1kaWQuYWxnby50czoxMzkKCS8vIG1ldGFkYXRhID0gdGhpcy5tZXRhZGF0YShwdWJLZXkpLnZhbHVlCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglmcmFtZV9idXJ5IDAgLy8gc3RvcmFnZSBrZXkvL21ldGFkYXRhCgoJLy8gY29udHJhY3RzXGFsZ28tZGlkLmFsZ28udHM6MTQwCgkvLyBhc3NlcnQobWV0YWRhdGEuc3RhdHVzID09PSBSRUFEWSkKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IEFkZHJlc3MKCWludGMgMyAvLyAgaGVhZE9mZnNldAoJaW50YyAwIC8vIDEKCWJveF9leHRyYWN0CglidG9pCglpbnRjIDAgLy8gMQoJPT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0c1xhbGdvLWRpZC5hbGdvLnRzOjE0MgoJLy8gbWV0YWRhdGEuc3RhdHVzID0gREVMRVRJTkcKCWZyYW1lX2RpZyAwIC8vIHN0b3JhZ2Uga2V5Ly9tZXRhZGF0YQoJaW50YyAzIC8vICBoZWFkT2Zmc2V0CglwdXNoYnl0ZXMgMHgwMgoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gZGVsZXRlRGF0YShhZGRyZXNzLHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfZGVsZXRlRGF0YToKCS8vIGJveEluZGV4OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBwdWJLZXk6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnRjIDQgLy8gMzIKCT09CgoJLy8gYXJndW1lbnQgMSAocHViS2V5KSBmb3IgZGVsZXRlRGF0YSBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBkZWxldGVEYXRhKGFkZHJlc3MsdWludDY0KXZvaWQKCWNhbGxzdWIgZGVsZXRlRGF0YQoJaW50YyAwIC8vIDEKCXJldHVybgoKLy8gZGVsZXRlRGF0YShwdWJLZXk6IEFkZHJlc3MsIGJveEluZGV4OiB1aW50NjQpOiB2b2lkCi8vCi8vIERlbGV0ZXMgYSBib3ggb2YgZGF0YQovLwovLyBAcGFyYW0gcHViS2V5IFRoZSBhZGRyZXNzIG9mIHRoZSBESUQKLy8gQHBhcmFtIGJveEluZGV4IFRoZSBpbmRleCBvZiB0aGUgYm94IHRvIGRlbGV0ZQpkZWxldGVEYXRhOgoJcHJvdG8gMiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGVjIDAgLy8gMHgKCWR1cAoKCS8vIGNvbnRyYWN0c1xhbGdvLWRpZC5hbGdvLnRzOjE1MgoJLy8gYXNzZXJ0KHRoaXMudHhuLnNlbmRlciA9PT0gZ2xvYmFscy5jcmVhdG9yQWRkcmVzcykKCXR4biBTZW5kZXIKCWdsb2JhbCBDcmVhdG9yQWRkcmVzcwoJPT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0c1xhbGdvLWRpZC5hbGdvLnRzOjE1NAoJLy8gbWV0YWRhdGEgPSB0aGlzLm1ldGFkYXRhKHB1YktleSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IEFkZHJlc3MKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCgkvLyBjb250cmFjdHNcYWxnby1kaWQuYWxnby50czoxNTUKCS8vIGFzc2VydChtZXRhZGF0YS5zdGF0dXMgPT09IERFTEVUSU5HKQoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50YyAzIC8vICBoZWFkT2Zmc2V0CglpbnRjIDAgLy8gMQoJYm94X2V4dHJhY3QKCWJ0b2kKCXB1c2hpbnQgMgoJPT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0c1xhbGdvLWRpZC5hbGdvLnRzOjE1NgoJLy8gYXNzZXJ0KG1ldGFkYXRhLnN0YXJ0IDw9IGJveEluZGV4ICYmIGJveEluZGV4IDw9IG1ldGFkYXRhLmVuZCkKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IEFkZHJlc3MKCWludGMgMiAvLyAwCglpbnRjIDEgLy8gOAoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0Cgk8PQoJZHVwCglieiAqc2tpcF9hbmQxCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50YyAxIC8vICBoZWFkT2Zmc2V0CglpbnRjIDEgLy8gOAoJYm94X2V4dHJhY3QKCWJ0b2kKCTw9CgkmJgoKKnNraXBfYW5kMToKCWFzc2VydAoKCS8vICppZjFfY29uZGl0aW9uCgkvLyBjb250cmFjdHNcYWxnby1kaWQuYWxnby50czoxNTgKCS8vIGJveEluZGV4ICE9PSBtZXRhZGF0YS5zdGFydAoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IEFkZHJlc3MKCWludGMgMiAvLyAwCglpbnRjIDEgLy8gOAoJYm94X2V4dHJhY3QKCWJ0b2kKCSE9CglieiAqaWYxX2VuZAoKCS8vICppZjFfY29uc2VxdWVudAoJLy8gY29udHJhY3RzXGFsZ28tZGlkLmFsZ28udHM6MTU5CgkvLyBhc3NlcnQobWV0YWRhdGEubGFzdERlbGV0ZWQgPT09IGJveEluZGV4IC0gMSkKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IEFkZHJlc3MKCWludGMgOCAvLyAgaGVhZE9mZnNldAoJaW50YyAxIC8vIDgKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJaW50YyAwIC8vIDEKCS0KCT09Cglhc3NlcnQKCippZjFfZW5kOgoJLy8gY29udHJhY3RzXGFsZ28tZGlkLmFsZ28udHM6MTYyCgkvLyBwcmVNQlIgPSBnbG9iYWxzLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MubWluQmFsYW5jZQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQoJcG9wCglmcmFtZV9idXJ5IDEgLy8gcHJlTUJSOiB1aW50NjQKCgkvLyBjb250cmFjdHNcYWxnby1kaWQuYWxnby50czoxNjQKCS8vIHRoaXMuZGF0YUJveGVzKGJveEluZGV4KS5kZWxldGUoKQoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCWl0b2IKCWJveF9kZWwKCgkvLyAqaWYyX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzXGFsZ28tZGlkLmFsZ28udHM6MTY2CgkvLyBib3hJbmRleCA9PT0gbWV0YWRhdGEuZW5kCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50YyAxIC8vICBoZWFkT2Zmc2V0CglpbnRjIDEgLy8gOAoJYm94X2V4dHJhY3QKCWJ0b2kKCT09CglieiAqaWYyX2Vsc2UKCgkvLyAqaWYyX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0c1xhbGdvLWRpZC5hbGdvLnRzOjE2NgoJLy8gdGhpcy5tZXRhZGF0YShwdWJLZXkpLmRlbGV0ZSgpCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglib3hfZGVsCgliICppZjJfZW5kCgoqaWYyX2Vsc2U6CgkvLyBjb250cmFjdHNcYWxnby1kaWQuYWxnby50czoxNjcKCS8vIG1ldGFkYXRhLmxhc3REZWxldGVkID0gYm94SW5kZXgKCWludGMgOCAvLyAgaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyAwIC8vIHN0b3JhZ2Uga2V5Ly9tZXRhZGF0YQoJY292ZXIgMgoJYm94X3JlcGxhY2UKCippZjJfZW5kOgoJLy8gY29udHJhY3RzXGFsZ28tZGlkLmFsZ28udHM6MTY5CgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICBhbW91bnQ6IHByZU1CUiAtIGdsb2JhbHMuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcy5taW5CYWxhbmNlLAoJLy8gICAgICAgcmVjZWl2ZXI6IHRoaXMudHhuLnNlbmRlciwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50YyAwIC8vICBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBjb250cmFjdHNcYWxnby1kaWQuYWxnby50czoxNzAKCS8vIGFtb3VudDogcHJlTUJSIC0gZ2xvYmFscy5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLm1pbkJhbGFuY2UKCWZyYW1lX2RpZyAxIC8vIHByZU1CUjogdWludDY0CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCS0KCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gY29udHJhY3RzXGFsZ28tZGlkLmFsZ28udHM6MTcxCgkvLyByZWNlaXZlcjogdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50YyAyIC8vIDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyB1cGRhdGVBcHBsaWNhdGlvbigpdm9pZAoqYWJpX3JvdXRlX3VwZGF0ZUFwcGxpY2F0aW9uOgoJLy8gZXhlY3V0ZSB1cGRhdGVBcHBsaWNhdGlvbigpdm9pZAoJY2FsbHN1YiB1cGRhdGVBcHBsaWNhdGlvbgoJaW50YyAwIC8vIDEKCXJldHVybgoKLy8gdXBkYXRlQXBwbGljYXRpb24oKTogdm9pZAovLwovLyBBbGxvdyB0aGUgY29udHJhY3QgdG8gYmUgdXBkYXRlZCBieSB0aGUgY3JlYXRvcgp1cGRhdGVBcHBsaWNhdGlvbjoKCXByb3RvIDAgMAoKCS8vIGNvbnRyYWN0c1xhbGdvLWRpZC5hbGdvLnRzOjE3OQoJLy8gYXNzZXJ0KHRoaXMudHhuLnNlbmRlciA9PT0gZ2xvYmFscy5jcmVhdG9yQWRkcmVzcykKCXR4biBTZW5kZXIKCWdsb2JhbCBDcmVhdG9yQWRkcmVzcwoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBkdW1teSgpdm9pZAoqYWJpX3JvdXRlX2R1bW15OgoJLy8gZXhlY3V0ZSBkdW1teSgpdm9pZAoJY2FsbHN1YiBkdW1teQoJaW50YyAwIC8vIDEKCXJldHVybgoKLy8gZHVtbXkoKTogdm9pZAovLwovLyBEdW1teSBmdW5jdGlvbiB0byBhZGQgZXh0cmEgYm94IHJlZmVyZW5jZXMgZm9yIGRlbGV0ZURhdGEuCi8vIEJveGVzIGFyZSAzMmssIGJ1dCBhIHNpbmdsZSBhcHAgY2FsbCBjYW4gb25seSBpbmNsdWRlIGVub3VnaCByZWZlcmVuY2VzIHRvIHJlYWQvd3JpdGUgOGsKLy8gYXQgYSB0aW1lLiBUaHVzIHdoZW4gYSBib3ggaXMgZGVsZXRlZCwgd2UgbmVlZCB0byBhZGQgYWRkaXRpb25hbCBkdW1teSBjYWxscyB3aXRoIGJveAovLyByZWZlcmVuY2VzIHRvIGluY3JlYXNlIHRoZSB0b3RhbCByZWFkL3dyaXRlIGJ1ZGdldCB0byAzMmsuCmR1bW15OgoJcHJvdG8gMCAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnRjIDAgLy8gMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4NTY1YzY3NWQgLy8gbWV0aG9kICJzdGFydFVwbG9hZChhZGRyZXNzLHVpbnQ2NCx1aW50NjQscGF5KXZvaWQiCglwdXNoYnl0ZXMgMHg0ZGIxYzQxOCAvLyBtZXRob2QgInVwbG9hZChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYnl0ZVtdKXZvaWQiCglwdXNoYnl0ZXMgMHgwZTc4NzI1NyAvLyBtZXRob2QgImZpbmlzaFVwbG9hZChhZGRyZXNzKXZvaWQiCglwdXNoYnl0ZXMgMHhiZDJjODRlMiAvLyBtZXRob2QgInN0YXJ0RGVsZXRlKGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweDY4OTFiYTkwIC8vIG1ldGhvZCAiZGVsZXRlRGF0YShhZGRyZXNzLHVpbnQ2NCl2b2lkIgoJcHVzaGJ5dGVzIDB4YTMwY2U3ZmYgLy8gbWV0aG9kICJkdW1teSgpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhcnRVcGxvYWQgKmFiaV9yb3V0ZV91cGxvYWQgKmFiaV9yb3V0ZV9maW5pc2hVcGxvYWQgKmFiaV9yb3V0ZV9zdGFydERlbGV0ZSAqYWJpX3JvdXRlX2RlbGV0ZURhdGEgKmFiaV9yb3V0ZV9kdW1teQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKmNhbGxfVXBkYXRlQXBwbGljYXRpb246CglwdXNoYnl0ZXMgMHg0NmY3NjUzMyAvLyBtZXRob2QgInVwZGF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91cGRhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIFVwZGF0ZUFwcGxpY2F0aW9uCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { "approval": "CiAJAQgAECCQA8QTgIACGSYCAAxjdXJyZW50SW5kZXgxGBSBBgsxGQiNDAInAAAAAAAAAl0AAAIZAAAAAAAAAAAAAAAxFiIJSTgQIhJENhoDFzYaAhc2GgFJFSEEEkSIAAIiQ4oEAChHAzEAMgkSRClkjACLAIv+CCIJjAGLABaLARZQgAEAUIv9FlCACAAAAAAAAAAAUIwCi/+9TEgURIv/iwK/KYsBIghni/4hBguL/iIJIQcLIQULCIv+IwshBQsIi/0hBQsIIQYIgZDLAQiMA4v8OAiLAxJEi/w4BzIKEkSJNhoEVwIANhoDFzYaAhc2GgFJFSEEEkSIAAIiQ4oEACgxADIJEkSL/4wAi/8lIroXJBJEi/8kI7oXi/4OSUEACov+i/8jI7oXDhBEi/0kEkEAHYv+Fov+i/8jI7oXEkEACov/gREjuhdCAAIhB7lIi/4Wi/2L/LuJNhoBSRUhBBJEiAACIkOKAQAxADIJEkSL/yWAAQG7iTYaAUkVIQQSRIgAAiJDigEAKDEAMgkSRIv/jACL/yUiuhciEkSLACWAAQK7iTYaAhc2GgFJFSEEEkSIAAIiQ4oCAChJMQAyCRJEi/+MAIv/JSK6F4ECEkSL/yQjuheL/g5JQQAKi/6L/yMjuhcOEESL/ov/JCO6FxNBAA2L/yEII7oXi/4iCRJEMgpzAUiMAYv+FryL/ov/IyO6FxJBAAaL/7xCAAohCIv+FosATgK7sSKyEIsBMgpzAUgJsggxALIHJLIBs4mIAAIiQ4oAADEAMgkSRImIAAIiQ4oAAIkiQ4AEuER7NjYaAI4B//EAgARWXGddgARNscQYgAQOeHJXgAS9LITigARokbqQgASjDOf/NhoAjgb9pf5F/r3+3P8J/7IAgARG92UzNhoAjgH/lQA=", "clear": "Cg==" }, "compilerInfo": { "compiler": "algod", "compilerVersion": { "major": 4, "minor": 0, "patch": 2, "commitHash": "6b940281" } } }