{ "name": "Arc4EncodeDecode", "structs": { "TestObj": [ { "name": "a", "type": "uint64" }, { "name": "b", "type": "byte[]" } ] }, "methods": [ { "name": "testEncoding", "args": [ { "type": "uint64", "name": "a" }, { "type": "bool", "name": "b" }, { "type": "uint512", "name": "c" }, { "type": "byte[]", "name": "d" }, { "type": "string", "name": "e" }, { "type": "address", "name": "f" }, { "type": "byte[12]", "name": "g" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "testDecoding", "args": [ { "type": "uint64", "name": "a" }, { "type": "byte[]", "name": "a_bytes" }, { "type": "bool", "name": "b" }, { "type": "byte[]", "name": "b_bytes" }, { "type": "uint512", "name": "c" }, { "type": "byte[]", "name": "c_bytes" }, { "type": "string", "name": "d" }, { "type": "byte[]", "name": "d_bytes" }, { "type": "(uint64,byte[])", "struct": "TestObj", "name": "e" }, { "type": "byte[]", "name": "e_bytes" }, { "type": "address", "name": "f" }, { "type": "byte[]", "name": "f_bytes" }, { "type": "byte[12]", "name": "g" }, { "type": "byte[]", "name": "g_bytes" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} } ], "arcs": [ 22, 28 ], "networks": {}, "state": { "schema": { "global": { "ints": 0, "bytes": 0 }, "local": { "ints": 0, "bytes": 0 } }, "keys": { "global": {}, "local": {}, "box": {} }, "maps": { "global": {}, "local": {}, "box": {} } }, "bareActions": { "create": [ "NoOp" ], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 1851 ], "errorMessage": "Array of address matches" }, { "pc": [ 1675 ], "errorMessage": "Array of biguint matches" }, { "pc": [ 1634 ], "errorMessage": "Array of boolean matches" }, { "pc": [ 1720 ], "errorMessage": "Array of string matches" }, { "pc": [ 1811 ], "errorMessage": "Array of struct matches" }, { "pc": [ 1603 ], "errorMessage": "Array of uint64 matches" }, { "pc": [ 1512 ], "errorMessage": "assert target is match for conditions" }, { "pc": [ 1595, 1668, 1846 ], "errorMessage": "index access is out of bounds" }, { "pc": [ 301 ], "errorMessage": "index out of bounds" }, { "pc": [ 339, 357, 424, 452, 479, 497, 515, 551, 569, 596, 623, 1574, 1609, 1645, 1687, 1732, 1820 ], "errorMessage": "invalid array length header" }, { "pc": [ 322, 444 ], "errorMessage": "invalid number of bytes for arc4.bool" }, { "pc": [ 348, 366, 433, 461, 488, 506, 524, 578, 605, 632 ], "errorMessage": "invalid number of bytes for arc4.dynamic_array" }, { "pc": [ 387, 617 ], "errorMessage": "invalid number of bytes for arc4.static_array" }, { "pc": [ 378, 590 ], "errorMessage": "invalid number of bytes for arc4.static_array" }, { "pc": [ 333, 473 ], "errorMessage": "invalid number of bytes for arc4.uint512" }, { "pc": [ 313, 417 ], "errorMessage": "invalid number of bytes for arc4.uint64" }, { "pc": [ 563 ], "errorMessage": "invalid number of bytes for tests/approvals/arc4-encode-decode.algo.ts::TestObj" }, { "pc": [ 910, 939, 1130, 1369 ], "errorMessage": "invalid size" }, { "pc": [ 542 ], "errorMessage": "invalid tail pointer at index 1 of (uint64,(len+uint8[]))" }, { "pc": [ 537 ], "errorMessage": "invalid tuple encoding" }, { "pc": [ 708, 721, 986, 1003, 1198, 1212 ], "errorMessage": "overflow" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDggMgogICAgYnl0ZWNibG9jayAweCAweDAwIDB4MDY4MTAxCiAgICBiIG1haW5fYmxvY2tAMAoKbWFpbl9ibG9ja0AwOgogICAgYiBtYWluX2Jsb2NrQDEKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIEFyYzRFbmNvZGVEZWNvZGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5CiAgICBiIG1haW5fYWJpX3JvdXRpbmdAMgoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgQXJjNEVuY29kZURlY29kZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2NyZWF0ZV9Ob09wQDcKICAgIGIgbWFpbl9jYWxsX05vT3BAMwoKbWFpbl9jYWxsX05vT3BAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIEFyYzRFbmNvZGVEZWNvZGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgzNGIxNDZjMSAvLyBtZXRob2QgInRlc3RFbmNvZGluZyh1aW50NjQsYm9vbCx1aW50NTEyLGJ5dGVbXSxzdHJpbmcsYWRkcmVzcyxieXRlWzEyXSl2b2lkIgogICAgcHVzaGJ5dGVzIDB4MDBmZDI1MzQgLy8gbWV0aG9kICJ0ZXN0RGVjb2RpbmcodWludDY0LGJ5dGVbXSxib29sLGJ5dGVbXSx1aW50NTEyLGJ5dGVbXSxzdHJpbmcsYnl0ZVtdLCh1aW50NjQsYnl0ZVtdKSxieXRlW10sYWRkcmVzcyxieXRlW10sYnl0ZVsxMl0sYnl0ZVtdKXZvaWQiCiAgICB1bmNvdmVyIDIKICAgIG1hdGNoIG1haW5fdGVzdEVuY29kaW5nX3JvdXRlQDQgbWFpbl90ZXN0RGVjb2Rpbmdfcm91dGVANQogICAgYiBtYWluX3N3aXRjaF9jYXNlX25leHRANgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDY6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUA4CgptYWluX2FmdGVyX2lmX2Vsc2VAODoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEwCgptYWluX2FmdGVyX2lmX2Vsc2VAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6MjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBcmM0RW5jb2RlRGVjb2RlIGV4dGVuZHMgQ29udHJhY3QgewogICAgZXJyCgptYWluX3Rlc3REZWNvZGluZ19yb3V0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjY1LTgwCiAgICAvLyB0ZXN0RGVjb2RpbmcoCiAgICAvLyAgIGE6IHVpbnQ2NCwKICAgIC8vICAgYV9ieXRlczogYnl0ZXMsCiAgICAvLyAgIGI6IGJvb2xlYW4sCiAgICAvLyAgIGJfYnl0ZXM6IGJ5dGVzLAogICAgLy8gICBjOiBiaWd1aW50LAogICAgLy8gICBjX2J5dGVzOiBieXRlcywKICAgIC8vICAgZDogc3RyaW5nLAogICAgLy8gICBkX2J5dGVzOiBieXRlcywKICAgIC8vICAgZTogVGVzdE9iaiwKICAgIC8vICAgZV9ieXRlczogYnl0ZXMsCiAgICAvLyAgIGY6IEFkZHJlc3MsCiAgICAvLyAgIGZfYnl0ZXM6IGJ5dGVzLAogICAgLy8gICBnOiBieXRlczwxMj4sCiAgICAvLyAgIGdfYnl0ZXM6IGJ5dGVzLAogICAgLy8gKSB7CiAgICBjYWxsc3ViIHRlc3REZWNvZGluZwogICAgYiBtYWluX3N3aXRjaF9jYXNlX25leHRANgoKbWFpbl90ZXN0RW5jb2Rpbmdfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czoyNQogICAgLy8gdGVzdEVuY29kaW5nKGE6IHVpbnQ2NCwgYjogYm9vbGVhbiwgYzogYmlndWludCwgZDogYnl0ZXMsIGU6IHN0cmluZywgZjogQWRkcmVzcywgZzogYnl0ZXM8MTI+KSB7CiAgICBjYWxsc3ViIHRlc3RFbmNvZGluZwogICAgYiBtYWluX3N3aXRjaF9jYXNlX25leHRANgoKbWFpbl9jcmVhdGVfTm9PcEA3OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAOAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIEFyYzRFbmNvZGVEZWNvZGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgICYmCiAgICBhc3NlcnQKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgoKLy8gX3B1eWFfbGliLnV0aWwuZW5zdXJlX2J1ZGdldChyZXF1aXJlZF9idWRnZXQ6IHVpbnQ2NCwgZmVlX3NvdXJjZTogdWludDY0KSAtPiB2b2lkOgplbnN1cmVfYnVkZ2V0OgogICAgcHJvdG8gMiAwCiAgICBiIGVuc3VyZV9idWRnZXRfYmxvY2tAMAoKZW5zdXJlX2J1ZGdldF9ibG9ja0AwOgogICAgZnJhbWVfZGlnIC0yCiAgICBwdXNoaW50IDEwCiAgICArCiAgICBiIGVuc3VyZV9idWRnZXRfd2hpbGVfdG9wQDEKCmVuc3VyZV9idWRnZXRfd2hpbGVfdG9wQDE6CiAgICBnbG9iYWwgT3Bjb2RlQnVkZ2V0CiAgICBmcmFtZV9kaWcgMAogICAgPAogICAgYnogZW5zdXJlX2J1ZGdldF9hZnRlcl93aGlsZUA2CiAgICBiIGVuc3VyZV9idWRnZXRfd2hpbGVfYm9keUAyCgplbnN1cmVfYnVkZ2V0X3doaWxlX2JvZHlAMjoKICAgIGl0eG5fYmVnaW4KICAgIHB1c2hpbnQgNiAvLyBhcHBsCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBwdXNoaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICBieXRlY18yIC8vIDB4MDY4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQogICAgYnl0ZWNfMiAvLyAweDA2ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyAxCiAgICBmcmFtZV9kaWcgLTEKICAgIG1hdGNoIGVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfMEAzIGVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfMUA0CiAgICBiIGVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfbmV4dEA1CgplbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlX25leHRANToKICAgIGl0eG5fc3VibWl0CiAgICBiIGVuc3VyZV9idWRnZXRfd2hpbGVfdG9wQDEKCmVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfMUA0OgogICAgZ2xvYmFsIE1pblR4bkZlZQogICAgaXR4bl9maWVsZCBGZWUKICAgIGIgZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV9uZXh0QDUKCmVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfMEAzOgogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICBiIGVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfbmV4dEA1CgplbnN1cmVfYnVkZ2V0X2FmdGVyX3doaWxlQDY6CiAgICByZXRzdWIKCgovLyBfcHV5YV9saWIuYXJjNC5keW5hbWljX2FycmF5X3JlYWRfZHluYW1pY19lbGVtZW50KGFycmF5OiBieXRlcywgaW5kZXg6IHVpbnQ2NCkgLT4gYnl0ZXM6CmR5bmFtaWNfYXJyYXlfcmVhZF9keW5hbWljX2VsZW1lbnQ6CiAgICBwcm90byAyIDEKICAgIGIgZHluYW1pY19hcnJheV9yZWFkX2R5bmFtaWNfZWxlbWVudF9ibG9ja0AwCgpkeW5hbWljX2FycmF5X3JlYWRfZHluYW1pY19lbGVtZW50X2Jsb2NrQDA6CiAgICBmcmFtZV9kaWcgLTIKICAgIGV4dHJhY3QgMiAwCiAgICBmcmFtZV9kaWcgLTIKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgdW5jb3ZlciAxCiAgICBmcmFtZV9kaWcgLTEKICAgIHVuY292ZXIgMgogICAgY2FsbHN1YiBzdGF0aWNfYXJyYXlfcmVhZF9keW5hbWljX2VsZW1lbnQKICAgIHJldHN1YgoKCi8vIF9wdXlhX2xpYi5hcmM0LnN0YXRpY19hcnJheV9yZWFkX2R5bmFtaWNfZWxlbWVudChhcnJheV9oZWFkX2FuZF90YWlsOiBieXRlcywgaW5kZXg6IHVpbnQ2NCwgYXJyYXlfbGVuZ3RoOiB1aW50NjQpIC0+IGJ5dGVzOgpzdGF0aWNfYXJyYXlfcmVhZF9keW5hbWljX2VsZW1lbnQ6CiAgICBwcm90byAzIDEKICAgIGIgc3RhdGljX2FycmF5X3JlYWRfZHluYW1pY19lbGVtZW50X2Jsb2NrQDAKCnN0YXRpY19hcnJheV9yZWFkX2R5bmFtaWNfZWxlbWVudF9ibG9ja0AwOgogICAgZnJhbWVfZGlnIC0yCiAgICBpbnRjXzMgLy8gMgogICAgKgogICAgZnJhbWVfZGlnIC0zCiAgICB1bmNvdmVyIDEKICAgIGV4dHJhY3RfdWludDE2CiAgICBmcmFtZV9kaWcgLTMKICAgIGxlbgogICAgZnJhbWVfZGlnIC0yCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgZHVwCiAgICBpbnRjXzMgLy8gMgogICAgKgogICAgZnJhbWVfZGlnIC0zCiAgICB1bmNvdmVyIDEKICAgIGV4dHJhY3RfdWludDE2CiAgICBmcmFtZV9kaWcgLTEKICAgIHVuY292ZXIgMgogICAgLQogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgc2VsZWN0CiAgICBmcmFtZV9kaWcgLTMKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICByZXRzdWIKCgovLyBfcHV5YV9saWIuYXJjNC5keW5hbWljX2FycmF5X3JlYWRfYnl0ZV9sZW5ndGhfZWxlbWVudChhcnJheTogYnl0ZXMsIGluZGV4OiB1aW50NjQpIC0+IGJ5dGVzOgpkeW5hbWljX2FycmF5X3JlYWRfYnl0ZV9sZW5ndGhfZWxlbWVudDoKICAgIHByb3RvIDIgMQogICAgYiBkeW5hbWljX2FycmF5X3JlYWRfYnl0ZV9sZW5ndGhfZWxlbWVudF9ibG9ja0AwCgpkeW5hbWljX2FycmF5X3JlYWRfYnl0ZV9sZW5ndGhfZWxlbWVudF9ibG9ja0AwOgogICAgZnJhbWVfZGlnIC0yCiAgICBleHRyYWN0IDIgMAogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzMgLy8gMgogICAgKgogICAgZGlnIDEKICAgIHVuY292ZXIgMQogICAgZXh0cmFjdF91aW50MTYKICAgIGR1cDIKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzMgLy8gMgogICAgKwogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgZXh0cmFjdDMKICAgIHJldHN1YgoKCi8vIF9wdXlhX2xpYi5hcmM0LmR5bmFtaWNfYXNzZXJ0X2luZGV4KGFycmF5OiBieXRlcywgaW5kZXg6IHVpbnQ2NCkgLT4gdm9pZDoKZHluYW1pY19hc3NlcnRfaW5kZXg6CiAgICBwcm90byAyIDAKICAgIGIgZHluYW1pY19hc3NlcnRfaW5kZXhfYmxvY2tAMAoKZHluYW1pY19hc3NlcnRfaW5kZXhfYmxvY2tAMDoKICAgIGZyYW1lX2RpZyAtMgogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBmcmFtZV9kaWcgLTEKICAgID4KICAgIGFzc2VydCAvLyBpbmRleCBvdXQgb2YgYm91bmRzCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6OkFyYzRFbmNvZGVEZWNvZGUudGVzdEVuY29kaW5nW3JvdXRpbmddKCkgLT4gdm9pZDoKdGVzdEVuY29kaW5nOgogICAgYiB0ZXN0RW5jb2RpbmdfYmxvY2tAMAoKdGVzdEVuY29kaW5nX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6MjUKICAgIC8vIHRlc3RFbmNvZGluZyhhOiB1aW50NjQsIGI6IGJvb2xlYW4sIGM6IGJpZ3VpbnQsIGQ6IGJ5dGVzLCBlOiBzdHJpbmcsIGY6IEFkZHJlc3MsIGc6IGJ5dGVzPDEyPikgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIGludGNfMiAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyAxCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmJvb2wKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGR1cAogICAgbGVuCiAgICBwdXNoaW50IDY0CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ1MTIKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDQKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMSAvLyAxCiAgICAqCiAgICBpbnRjXzMgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDEKICAgICoKICAgIGludGNfMyAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA2CiAgICBkdXAKICAgIGxlbgogICAgcHVzaGludCAzMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5zdGF0aWNfYXJyYXk8YXJjNC51aW50OCwgMzI+CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA3CiAgICBkdXAKICAgIGxlbgogICAgcHVzaGludCAxMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5zdGF0aWNfYXJyYXk8YXJjNC51aW50OCwgMTI+CiAgICB1bmNvdmVyIDYKICAgIHVuY292ZXIgNgogICAgdW5jb3ZlciA2CiAgICB1bmNvdmVyIDYKICAgIHVuY292ZXIgNgogICAgdW5jb3ZlciA2CiAgICB1bmNvdmVyIDYKICAgIGNhbGxzdWIgdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjpBcmM0RW5jb2RlRGVjb2RlLnRlc3RFbmNvZGluZwogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo6QXJjNEVuY29kZURlY29kZS50ZXN0RGVjb2Rpbmdbcm91dGluZ10oKSAtPiB2b2lkOgp0ZXN0RGVjb2Rpbmc6CiAgICBiIHRlc3REZWNvZGluZ19ibG9ja0AwCgp0ZXN0RGVjb2RpbmdfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo2NS04MAogICAgLy8gdGVzdERlY29kaW5nKAogICAgLy8gICBhOiB1aW50NjQsCiAgICAvLyAgIGFfYnl0ZXM6IGJ5dGVzLAogICAgLy8gICBiOiBib29sZWFuLAogICAgLy8gICBiX2J5dGVzOiBieXRlcywKICAgIC8vICAgYzogYmlndWludCwKICAgIC8vICAgY19ieXRlczogYnl0ZXMsCiAgICAvLyAgIGQ6IHN0cmluZywKICAgIC8vICAgZF9ieXRlczogYnl0ZXMsCiAgICAvLyAgIGU6IFRlc3RPYmosCiAgICAvLyAgIGVfYnl0ZXM6IGJ5dGVzLAogICAgLy8gICBmOiBBZGRyZXNzLAogICAgLy8gICBmX2J5dGVzOiBieXRlcywKICAgIC8vICAgZzogYnl0ZXM8MTI+LAogICAgLy8gICBnX2J5dGVzOiBieXRlcywKICAgIC8vICkgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIGludGNfMiAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDEKICAgICoKICAgIGludGNfMyAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuYm9vbAogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDEKICAgICoKICAgIGludGNfMyAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA1CiAgICBkdXAKICAgIGxlbgogICAgcHVzaGludCA2NAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50NTEyCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA2CiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzEgLy8gMQogICAgKgogICAgaW50Y18zIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ4PgogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDcKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMSAvLyAxCiAgICAqCiAgICBpbnRjXzMgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgOAogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDEKICAgICoKICAgIGludGNfMyAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA5CiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzIgLy8gOAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgdHVwbGUgZW5jb2RpbmcKICAgIGR1cAogICAgcHVzaGludCAxMAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIHRhaWwgcG9pbnRlciBhdCBpbmRleCAxIG9mICh1aW50NjQsKGxlbit1aW50OFtdKSkKICAgIGRpZyAxCiAgICB1bmNvdmVyIDEKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMSAvLyAxCiAgICAqCiAgICBpbnRjXzMgLy8gMgogICAgKwogICAgcHVzaGludCAxMAogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjpUZXN0T2JqCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxMAogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDEKICAgICoKICAgIGludGNfMyAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxMQogICAgZHVwCiAgICBsZW4KICAgIHB1c2hpbnQgMzIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuc3RhdGljX2FycmF5PGFyYzQudWludDgsIDMyPgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMTIKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMSAvLyAxCiAgICAqCiAgICBpbnRjXzMgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMTMKICAgIGR1cAogICAgbGVuCiAgICBwdXNoaW50IDEyCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnN0YXRpY19hcnJheTxhcmM0LnVpbnQ4LCAxMj4KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDE0CiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzEgLy8gMQogICAgKgogICAgaW50Y18zIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ4PgogICAgZXh0cmFjdCAyIDAKICAgIHVuY292ZXIgMTMKICAgIHVuY292ZXIgMTMKICAgIHVuY292ZXIgMTMKICAgIHVuY292ZXIgMTMKICAgIHVuY292ZXIgMTMKICAgIHVuY292ZXIgMTMKICAgIHVuY292ZXIgMTMKICAgIHVuY292ZXIgMTMKICAgIHVuY292ZXIgMTMKICAgIHVuY292ZXIgMTMKICAgIHVuY292ZXIgMTMKICAgIHVuY292ZXIgMTMKICAgIHVuY292ZXIgMTMKICAgIHVuY292ZXIgMTMKICAgIGNhbGxzdWIgdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjpBcmM0RW5jb2RlRGVjb2RlLnRlc3REZWNvZGluZwogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo6QXJjNEVuY29kZURlY29kZS50ZXN0RW5jb2RpbmcoYTogdWludDY0LCBiOiB1aW50NjQsIGM6IGJ5dGVzLCBkOiBieXRlcywgZTogYnl0ZXMsIGY6IGJ5dGVzLCBnOiBieXRlcykgLT4gdm9pZDoKdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjpBcmM0RW5jb2RlRGVjb2RlLnRlc3RFbmNvZGluZzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czoyNQogICAgLy8gdGVzdEVuY29kaW5nKGE6IHVpbnQ2NCwgYjogYm9vbGVhbiwgYzogYmlndWludCwgZDogYnl0ZXMsIGU6IHN0cmluZywgZjogQWRkcmVzcywgZzogYnl0ZXM8MTI+KSB7CiAgICBwcm90byA3IDAKICAgIGIgdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjpBcmM0RW5jb2RlRGVjb2RlLnRlc3RFbmNvZGluZ19ibG9ja0AwCgp0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6OkFyYzRFbmNvZGVEZWNvZGUudGVzdEVuY29kaW5nX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6MjYKICAgIC8vIGVuc3VyZUJ1ZGdldCgxNDAwKQogICAgcHVzaGludCAxNDAwCiAgICBpbnRjXzAgLy8gMAogICAgY2FsbHN1YiBlbnN1cmVfYnVkZ2V0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6MjcKICAgIC8vIGFzc2VydChlbmNvZGVBcmM0KGEpID09PSBuZXcgVWludDY0KGEpLmJ5dGVzKQogICAgZnJhbWVfZGlnIC03CiAgICBpdG9iCiAgICBmcmFtZV9kaWcgLTcKICAgIGl0b2IKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czoyOAogICAgLy8gYXNzZXJ0KGVuY29kZUFyYzQoYikgPT09IG5ldyBCb29sKGIpLmJ5dGVzKQogICAgYnl0ZWNfMSAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgZnJhbWVfZGlnIC02CiAgICBzZXRiaXQKICAgIGJ5dGVjXzEgLy8gMHgwMAogICAgaW50Y18wIC8vIDAKICAgIGZyYW1lX2RpZyAtNgogICAgc2V0Yml0CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6MjkKICAgIC8vIGFzc2VydChlbmNvZGVBcmM0KGMpID09PSBuZXcgVWludDw1MTI+KGMpLmJ5dGVzKQogICAgZnJhbWVfZGlnIC01CiAgICBsZW4KICAgIHB1c2hpbnQgNjQKICAgIDw9CiAgICBhc3NlcnQgLy8gb3ZlcmZsb3cKICAgIHB1c2hpbnQgNjQKICAgIGJ6ZXJvCiAgICBmcmFtZV9kaWcgLTUKICAgIGJ8CiAgICBmcmFtZV9kaWcgLTUKICAgIGxlbgogICAgcHVzaGludCA2NAogICAgPD0KICAgIGFzc2VydCAvLyBvdmVyZmxvdwogICAgcHVzaGludCA2NAogICAgYnplcm8KICAgIGZyYW1lX2RpZyAtNQogICAgYnwKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czozMAogICAgLy8gYXNzZXJ0KGVuY29kZUFyYzQoZCkgPT09IG5ldyBEeW5hbWljQnl0ZXMoZCkuYnl0ZXMpCiAgICBmcmFtZV9kaWcgLTQKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtNAogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTQKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtNAogICAgY29uY2F0CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6MzEKICAgIC8vIGFzc2VydChlbmNvZGVBcmM0KGUpID09PSBuZXcgU3RyKGUpLmJ5dGVzKQogICAgZnJhbWVfZGlnIC0zCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTMKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC0zCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTMKICAgIGNvbmNhdAogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjMyCiAgICAvLyBhc3NlcnQoZW5jb2RlQXJjNCh7IGEsIGI6IGQgfSkgPT09IG5ldyBUZXN0U3RydWN0KHsgYTogbmV3IFVpbnQ2NChhKSwgYjogbmV3IER5bmFtaWNCeXRlcyhkKSB9KS5ieXRlcykKICAgIGZyYW1lX2RpZyAtNwogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtNAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgZnJhbWVfZGlnIC00CiAgICBjb25jYXQKICAgIHB1c2hpbnQgMTAKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC03CiAgICBpdG9iCiAgICBmcmFtZV9kaWcgLTQKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtNAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgcHVzaGludCAxMAogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGNvbmNhdAogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czozMwogICAgLy8gYXNzZXJ0KGVuY29kZUFyYzQoeyBhLCBiOiBkIH0pID09PSBlbmNvZGVBcmM0KHsgYSwgYjogbmV3IER5bmFtaWNCeXRlcyhkKSB9KSkKICAgIGZyYW1lX2RpZyAtNwogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtNAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgZnJhbWVfZGlnIC00CiAgICBjb25jYXQKICAgIHB1c2hpbnQgMTAKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC00CiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTQKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC03CiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgcHVzaGludCAxMAogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGNvbmNhdAogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czozNAogICAgLy8gYXNzZXJ0KGVuY29kZUFyYzQoeyBhLCBiOiBnIH0pID09PSBlbmNvZGVBcmM0KHsgYSwgYjogbmV3IFN0YXRpY0J5dGVzPDEyPihnKSB9KSkKICAgIGZyYW1lX2RpZyAtNwogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMQogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTEKICAgIGxlbgogICAgcHVzaGludCAxMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIHNpemUKICAgIGZyYW1lX2RpZyAtMQogICAgZnJhbWVfZGlnIC03CiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czozNQogICAgLy8gYXNzZXJ0KGVuY29kZUFyYzQoZikgPT09IGYuYnl0ZXMpCiAgICBmcmFtZV9kaWcgLTIKICAgIGZyYW1lX2RpZyAtMgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjM2CiAgICAvLyBhc3NlcnQoZW5jb2RlQXJjNChnKSA9PT0gbmV3IFN0YXRpY0J5dGVzKGcpLmJ5dGVzKQogICAgZnJhbWVfZGlnIC0xCiAgICBmcmFtZV9kaWcgLTEKICAgIGxlbgogICAgcHVzaGludCAxMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIHNpemUKICAgIGZyYW1lX2RpZyAtMQogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjM4CiAgICAvLyBhc3NlcnQoZW5jb2RlQXJjNChbYV0pID09PSBuZXcgU3RhdGljQXJyYXkobmV3IFVpbnQ2NChhKSkuYnl0ZXMpCiAgICBmcmFtZV9kaWcgLTcKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTcKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6MzkKICAgIC8vIGFzc2VydChlbmNvZGVBcmM0KFtiXSkgPT09IG5ldyBTdGF0aWNBcnJheShuZXcgQm9vbChiKSkuYnl0ZXMpCiAgICBieXRlY18xIC8vIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICBmcmFtZV9kaWcgLTYKICAgIHNldGJpdAogICAgYnl0ZWNfMCAvLyAweAogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIGJ5dGVjXzEgLy8gMHgwMAogICAgaW50Y18wIC8vIDAKICAgIGZyYW1lX2RpZyAtNgogICAgc2V0Yml0CiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjQwCiAgICAvLyBhc3NlcnQoZW5jb2RlQXJjNChbY10pID09PSBuZXcgU3RhdGljQXJyYXkobmV3IFVpbnQ8NTEyPihjKSkuYnl0ZXMpCiAgICBmcmFtZV9kaWcgLTUKICAgIGxlbgogICAgcHVzaGludCA2NAogICAgPD0KICAgIGFzc2VydCAvLyBvdmVyZmxvdwogICAgcHVzaGludCA2NAogICAgYnplcm8KICAgIGZyYW1lX2RpZyAtNQogICAgYnwKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTUKICAgIGxlbgogICAgcHVzaGludCA2NAogICAgPD0KICAgIGFzc2VydCAvLyBvdmVyZmxvdwogICAgcHVzaGludCA2NAogICAgYnplcm8KICAgIGZyYW1lX2RpZyAtNQogICAgYnwKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6NDEKICAgIC8vIGFzc2VydChlbmNvZGVBcmM0KFtkXSkgPT09IG5ldyBTdGF0aWNBcnJheShuZXcgRHluYW1pY0J5dGVzKGQpKS5ieXRlcykKICAgIGZyYW1lX2RpZyAtNAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgZnJhbWVfZGlnIC00CiAgICBjb25jYXQKICAgIGludGNfMyAvLyAyCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgYnl0ZWNfMCAvLyAweAogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTQKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtNAogICAgY29uY2F0CiAgICBpbnRjXzMgLy8gMgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjQyCiAgICAvLyBhc3NlcnQoZW5jb2RlQXJjNChbZV0pID09PSBuZXcgU3RhdGljQXJyYXkobmV3IFN0cihlKSkuYnl0ZXMpCiAgICBmcmFtZV9kaWcgLTMKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtMwogICAgY29uY2F0CiAgICBpbnRjXzMgLy8gMgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC0zCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTMKICAgIGNvbmNhdAogICAgaW50Y18zIC8vIDIKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo0MwogICAgLy8gYXNzZXJ0KGVuY29kZUFyYzQoW2ZdKSA9PT0gbmV3IFN0YXRpY0FycmF5KGYpLmJ5dGVzKQogICAgYnl0ZWNfMCAvLyAweAogICAgZnJhbWVfZGlnIC0yCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGZyYW1lX2RpZyAtMgogICAgY29uY2F0CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6NDQKICAgIC8vIGFzc2VydChlbmNvZGVBcmM0KFtnXSkgPT09IG5ldyBTdGF0aWNBcnJheShuZXcgU3RhdGljQnl0ZXMoZykpLmJ5dGVzKQogICAgZnJhbWVfZGlnIC0xCiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC0xCiAgICBsZW4KICAgIHB1c2hpbnQgMTIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBzaXplCiAgICBmcmFtZV9kaWcgLTEKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6NDYKICAgIC8vIGFzc2VydChlbmNvZGVBcmM0PHVpbnQ2NFtdPihbYV0pID09PSBuZXcgRHluYW1pY0FycmF5KG5ldyBVaW50NjQoYSkpLmJ5dGVzKQogICAgaW50Y18xIC8vIDEKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTcKICAgIGl0b2IKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC03CiAgICBpdG9iCiAgICBpbnRjXzEgLy8gMQogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6NDcKICAgIC8vIGFzc2VydChlbmNvZGVBcmM0PGJvb2xlYW5bXT4oW2JdKSA9PT0gbmV3IER5bmFtaWNBcnJheShuZXcgQm9vbChiKSkuYnl0ZXMpCiAgICBpbnRjXzEgLy8gMQogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGJ5dGVjXzEgLy8gMHgwMAogICAgaW50Y18wIC8vIDAKICAgIGZyYW1lX2RpZyAtNgogICAgc2V0Yml0CiAgICBjb25jYXQKICAgIGJ5dGVjXzEgLy8gMHgwMAogICAgaW50Y18wIC8vIDAKICAgIGZyYW1lX2RpZyAtNgogICAgc2V0Yml0CiAgICBpbnRjXzEgLy8gMQogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6NDgKICAgIC8vIGFzc2VydChlbmNvZGVBcmM0PGJpZ3VpbnRbXT4oW2NdKSA9PT0gbmV3IER5bmFtaWNBcnJheShuZXcgVWludDw1MTI+KGMpKS5ieXRlcykKICAgIGludGNfMSAvLyAxCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgZnJhbWVfZGlnIC01CiAgICBsZW4KICAgIHB1c2hpbnQgNjQKICAgIDw9CiAgICBhc3NlcnQgLy8gb3ZlcmZsb3cKICAgIHB1c2hpbnQgNjQKICAgIGJ6ZXJvCiAgICBmcmFtZV9kaWcgLTUKICAgIGJ8CiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtNQogICAgbGVuCiAgICBwdXNoaW50IDY0CiAgICA8PQogICAgYXNzZXJ0IC8vIG92ZXJmbG93CiAgICBwdXNoaW50IDY0CiAgICBiemVybwogICAgZnJhbWVfZGlnIC01CiAgICBifAogICAgaW50Y18xIC8vIDEKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjQ5CiAgICAvLyBhc3NlcnQoZW5jb2RlQXJjNDxieXRlc1tdPihbZF0pID09PSBuZXcgRHluYW1pY0FycmF5KG5ldyBEeW5hbWljQnl0ZXMoZCkpLmJ5dGVzKQogICAgaW50Y18xIC8vIDEKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTQKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtNAogICAgY29uY2F0CiAgICBpbnRjXzMgLy8gMgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTQKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtNAogICAgY29uY2F0CiAgICBpbnRjXzEgLy8gMQogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGludGNfMyAvLyAyCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgY29uY2F0CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjUwCiAgICAvLyBhc3NlcnQoZW5jb2RlQXJjNDxzdHJpbmdbXT4oW2VdKSA9PT0gbmV3IER5bmFtaWNBcnJheShuZXcgU3RyKGUpKS5ieXRlcykKICAgIGludGNfMSAvLyAxCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgZnJhbWVfZGlnIC0zCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTMKICAgIGNvbmNhdAogICAgaW50Y18zIC8vIDIKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC0zCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTMKICAgIGNvbmNhdAogICAgaW50Y18xIC8vIDEKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBpbnRjXzMgLy8gMgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGNvbmNhdAogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo1MQogICAgLy8gYXNzZXJ0KGVuY29kZUFyYzQ8QWRkcmVzc1tdPihbZl0pID09PSBuZXcgRHluYW1pY0FycmF5KGYpLmJ5dGVzKQogICAgaW50Y18xIC8vIDEKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTIKICAgIGNvbmNhdAogICAgaW50Y18xIC8vIDEKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTIKICAgIGNvbmNhdAogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjUyCiAgICAvLyBhc3NlcnQoZW5jb2RlQXJjNDxieXRlczwxMj5bXT4oW2ddKSA9PT0gbmV3IER5bmFtaWNBcnJheShuZXcgU3RhdGljQnl0ZXMoZykpLmJ5dGVzKQogICAgaW50Y18xIC8vIDEKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTEKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC0xCiAgICBsZW4KICAgIHB1c2hpbnQgMTIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBzaXplCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMSAvLyAxCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo1NAogICAgLy8gYXNzZXJ0KHNpemVPZjx1aW50NjQ+KCkgPT09IDgpCiAgICBpbnRjXzIgLy8gOAogICAgaW50Y18yIC8vIDgKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo1NQogICAgLy8gYXNzZXJ0KHNpemVPZjxib29sZWFuPigpID09PSA4KQogICAgaW50Y18yIC8vIDgKICAgIGludGNfMiAvLyA4CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6NTYKICAgIC8vIGFzc2VydChzaXplT2Y8VWludDw1MTI+PigpID09PSA2NCkKICAgIHB1c2hpbnQgNjQKICAgIHB1c2hpbnQgNjQKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo1NwogICAgLy8gYXNzZXJ0KHNpemVPZjxbdWludDY0LCB1aW50NjQsIGJvb2xlYW5dPigpID09PSAxNykKICAgIHB1c2hpbnQgMTcKICAgIHB1c2hpbnQgMTcKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo1OAogICAgLy8gYXNzZXJ0KHNpemVPZjxbdWludDY0LCB1aW50NjQsIGJvb2xlYW4sIGJvb2xlYW5dPigpID09PSAxNykKICAgIHB1c2hpbnQgMTcKICAgIHB1c2hpbnQgMTcKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo1OQogICAgLy8gYXNzZXJ0KHNpemVPZjxbU3RhdGljQXJyYXk8Qm9vbCwgMTA+LCBib29sZWFuLCBib29sZWFuXT4oKSA9PT0gMykKICAgIHB1c2hpbnQgMwogICAgcHVzaGludCAzCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6NjAKICAgIC8vIGFzc2VydChzaXplT2Y8W1tib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXSwgYm9vbGVhbiwgYm9vbGVhbl0+KCkgPT09IDMpCiAgICBwdXNoaW50IDMKICAgIHB1c2hpbnQgMwogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjYxCiAgICAvLyBhc3NlcnQoc2l6ZU9mPHR5cGVvZiBnPigpID09PSAxMikKICAgIHB1c2hpbnQgMTIKICAgIHB1c2hpbnQgMTIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo2MgogICAgLy8gYXNzZXJ0KHNpemVPZjxTdGF0aWNNdXRhYmxlT2JqZWN0PigpID09PSAyMCkKICAgIHB1c2hpbnQgMjAKICAgIHB1c2hpbnQgMjAKICAgID09CiAgICBhc3NlcnQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo6QXJjNEVuY29kZURlY29kZS50ZXN0RGVjb2RpbmcoYTogdWludDY0LCBhX2J5dGVzOiBieXRlcywgYjogdWludDY0LCBiX2J5dGVzOiBieXRlcywgYzogYnl0ZXMsIGNfYnl0ZXM6IGJ5dGVzLCBkOiBieXRlcywgZF9ieXRlczogYnl0ZXMsIGU6IGJ5dGVzLCBlX2J5dGVzOiBieXRlcywgZjogYnl0ZXMsIGZfYnl0ZXM6IGJ5dGVzLCBnOiBieXRlcywgZ19ieXRlczogYnl0ZXMpIC0+IHZvaWQ6CnRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo6QXJjNEVuY29kZURlY29kZS50ZXN0RGVjb2Rpbmc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6NjUtODAKICAgIC8vIHRlc3REZWNvZGluZygKICAgIC8vICAgYTogdWludDY0LAogICAgLy8gICBhX2J5dGVzOiBieXRlcywKICAgIC8vICAgYjogYm9vbGVhbiwKICAgIC8vICAgYl9ieXRlczogYnl0ZXMsCiAgICAvLyAgIGM6IGJpZ3VpbnQsCiAgICAvLyAgIGNfYnl0ZXM6IGJ5dGVzLAogICAgLy8gICBkOiBzdHJpbmcsCiAgICAvLyAgIGRfYnl0ZXM6IGJ5dGVzLAogICAgLy8gICBlOiBUZXN0T2JqLAogICAgLy8gICBlX2J5dGVzOiBieXRlcywKICAgIC8vICAgZjogQWRkcmVzcywKICAgIC8vICAgZl9ieXRlczogYnl0ZXMsCiAgICAvLyAgIGc6IGJ5dGVzPDEyPiwKICAgIC8vICAgZ19ieXRlczogYnl0ZXMsCiAgICAvLyApIHsKICAgIHByb3RvIDE0IDAKICAgIGIgdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjpBcmM0RW5jb2RlRGVjb2RlLnRlc3REZWNvZGluZ19ibG9ja0AwCgp0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6OkFyYzRFbmNvZGVEZWNvZGUudGVzdERlY29kaW5nX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6ODEKICAgIC8vIGFzc2VydChkZWNvZGVBcmM0PHVpbnQ2ND4oYV9ieXRlcykgPT09IGEpCiAgICBmcmFtZV9kaWcgLTEzCiAgICBidG9pCiAgICBmcmFtZV9kaWcgLTE0CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6ODIKICAgIC8vIGFzc2VydChkZWNvZGVBcmM0PGJvb2xlYW4+KGJfYnl0ZXMpID09PSBiKQogICAgZnJhbWVfZGlnIC0xMQogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgZnJhbWVfZGlnIC0xMgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjgzCiAgICAvLyBhc3NlcnQoZGVjb2RlQXJjNDxiaWd1aW50PihjX2J5dGVzKSA9PT0gYykKICAgIGZyYW1lX2RpZyAtOQogICAgZnJhbWVfZGlnIC0xMAogICAgYj09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo4NAogICAgLy8gYXNzZXJ0KGRlY29kZUFyYzQ8c3RyaW5nPihkX2J5dGVzKSA9PT0gZCkKICAgIGZyYW1lX2RpZyAtNwogICAgZXh0cmFjdCAyIDAKICAgIGZyYW1lX2RpZyAtOAogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjg1CiAgICAvLyBhc3NlcnRNYXRjaChkZWNvZGVBcmM0PFRlc3RPYmo+KGVfYnl0ZXMpLCBlKQogICAgZnJhbWVfZGlnIC01CiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18yIC8vIDgKICAgIGV4dHJhY3QzCiAgICBmcmFtZV9kaWcgLTYKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzIgLy8gOAogICAgZXh0cmFjdDMKICAgID09CiAgICBmcmFtZV9kaWcgLTUKICAgIGR1cAogICAgaW50Y18yIC8vIDgKICAgIGV4dHJhY3RfdWludDE2CiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgIGZyYW1lX2RpZyAtNgogICAgaW50Y18yIC8vIDgKICAgIGV4dHJhY3RfdWludDE2CiAgICBmcmFtZV9kaWcgLTYKICAgIGxlbgogICAgZnJhbWVfZGlnIC02CiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgc3Vic3RyaW5nMwogICAgPT0KICAgICYmCiAgICBhc3NlcnQgLy8gYXNzZXJ0IHRhcmdldCBpcyBtYXRjaCBmb3IgY29uZGl0aW9ucwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjg3CiAgICAvLyBjb25zdCBsZW5QcmVmaXggPSBpdG9iKDEpLnNsaWNlKDYsIDgpCiAgICBpbnRjXzEgLy8gMQogICAgaXRvYgogICAgcHVzaGludCA2CiAgICBpbnRjXzIgLy8gOAogICAgPj0KICAgIHB1c2hpbnQgNgogICAgaW50Y18yIC8vIDgKICAgIHVuY292ZXIgMgogICAgc2VsZWN0CiAgICBpbnRjXzIgLy8gOAogICAgaW50Y18yIC8vIDgKICAgID49CiAgICBpbnRjXzIgLy8gOAogICAgaW50Y18yIC8vIDgKICAgIHVuY292ZXIgMgogICAgc2VsZWN0CiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6ODgKICAgIC8vIGNvbnN0IG9mZnNldEhlYWRlciA9IGl0b2IoMikuc2xpY2UoNiwgOCkKICAgIGludGNfMyAvLyAyCiAgICBpdG9iCiAgICBwdXNoaW50IDYKICAgIGludGNfMiAvLyA4CiAgICA+PQogICAgcHVzaGludCA2CiAgICBpbnRjXzIgLy8gOAogICAgdW5jb3ZlciAyCiAgICBzZWxlY3QKICAgIGludGNfMiAvLyA4CiAgICBpbnRjXzIgLy8gOAogICAgPj0KICAgIGludGNfMiAvLyA4CiAgICBpbnRjXzIgLy8gOAogICAgdW5jb3ZlciAyCiAgICBzZWxlY3QKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgIGNvdmVyIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo4OQogICAgLy8gYXNzZXJ0TWF0Y2goZGVjb2RlQXJjNDx1aW50NjRbXT4obGVuUHJlZml4LmNvbmNhdChhX2J5dGVzKSksIFthXSwgJ0FycmF5IG9mIHVpbnQ2NCBtYXRjaGVzJykKICAgIGR1cAogICAgZnJhbWVfZGlnIC0xMwogICAgY29uY2F0CiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGZyYW1lX2RpZyAtMTMKICAgIGNvbmNhdAogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGludGNfMyAvLyAyCiAgICB1bmNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzIgLy8gOAogICAgKgogICAgaW50Y18yIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgZnJhbWVfZGlnIC0xNAogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGFzc2VydCAvLyBBcnJheSBvZiB1aW50NjQgbWF0Y2hlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjkwCiAgICAvLyBhc3NlcnRNYXRjaChkZWNvZGVBcmM0PGJvb2xlYW5bXT4obGVuUHJlZml4LmNvbmNhdChiX2J5dGVzKSksIFtiXSwgJ0FycmF5IG9mIGJvb2xlYW4gbWF0Y2hlcycpCiAgICBkdXAKICAgIGZyYW1lX2RpZyAtMTEKICAgIGNvbmNhdAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMSAvLyAxCiAgICA9PQogICAgY292ZXIgMQogICAgZHVwCiAgICBmcmFtZV9kaWcgLTExCiAgICBjb25jYXQKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGNhbGxzdWIgZHluYW1pY19hc3NlcnRfaW5kZXgKICAgIGludGNfMCAvLyAwCiAgICBwdXNoaW50IDE2CiAgICArCiAgICBnZXRiaXQKICAgIGZyYW1lX2RpZyAtMTIKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBhc3NlcnQgLy8gQXJyYXkgb2YgYm9vbGVhbiBtYXRjaGVzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6OTEKICAgIC8vIGxvZyhsZW5QcmVmaXguY29uY2F0KGNfYnl0ZXMpKQogICAgZHVwCiAgICBmcmFtZV9kaWcgLTkKICAgIGNvbmNhdAogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6OTIKICAgIC8vIGFzc2VydE1hdGNoKGRlY29kZUFyYzQ8YmlndWludFtdPihsZW5QcmVmaXguY29uY2F0KGNfYnl0ZXMpKSwgW2NdLCAnQXJyYXkgb2YgYmlndWludCBtYXRjaGVzJykKICAgIGR1cAogICAgZnJhbWVfZGlnIC05CiAgICBjb25jYXQKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGNvdmVyIDEKICAgIGR1cAogICAgZnJhbWVfZGlnIC05CiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBpbnRjXzMgLy8gMgogICAgdW5jb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICBpbnRjXzAgLy8gMAogICAgcHVzaGludCA2NAogICAgKgogICAgcHVzaGludCA2NAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBmcmFtZV9kaWcgLTEwCiAgICBiPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGFzc2VydCAvLyBBcnJheSBvZiBiaWd1aW50IG1hdGNoZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo5MwogICAgLy8gYXNzZXJ0TWF0Y2goZGVjb2RlQXJjNDxzdHJpbmdbXT4oQnl0ZXNgJHtsZW5QcmVmaXh9JHtvZmZzZXRIZWFkZXJ9JHtkX2J5dGVzfWApLCBbZF0sICdBcnJheSBvZiBzdHJpbmcgbWF0Y2hlcycpCiAgICBieXRlY18wIC8vICIiCiAgICBkaWcgMQogICAgY29uY2F0CiAgICBkaWcgMgogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTcKICAgIGNvbmNhdAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMSAvLyAxCiAgICA9PQogICAgY292ZXIgMgogICAgYnl0ZWNfMCAvLyAiIgogICAgZGlnIDEKICAgIGNvbmNhdAogICAgZGlnIDIKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC03CiAgICBjb25jYXQKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGNhbGxzdWIgZHluYW1pY19hc3NlcnRfaW5kZXgKICAgIGludGNfMCAvLyAwCiAgICBjYWxsc3ViIGR5bmFtaWNfYXJyYXlfcmVhZF9ieXRlX2xlbmd0aF9lbGVtZW50CiAgICBleHRyYWN0IDIgMAogICAgZnJhbWVfZGlnIC04CiAgICA9PQogICAgdW5jb3ZlciAzCiAgICAmJgogICAgYXNzZXJ0IC8vIEFycmF5IG9mIHN0cmluZyBtYXRjaGVzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6OTUKICAgIC8vIGFzc2VydE1hdGNoKGRlY29kZUFyYzQ8VGVzdE9ialtdPihCeXRlc2Ake2xlblByZWZpeH0ke29mZnNldEhlYWRlcn0ke2VfYnl0ZXN9YCksIFtlXSwgJ0FycmF5IG9mIHN0cnVjdCBtYXRjaGVzJykKICAgIGJ5dGVjXzAgLy8gIiIKICAgIGRpZyAxCiAgICBjb25jYXQKICAgIGRpZyAyCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtNQogICAgY29uY2F0CiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBjb3ZlciAyCiAgICBieXRlY18wIC8vICIiCiAgICBkaWcgMQogICAgY29uY2F0CiAgICBkaWcgMgogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTUKICAgIGNvbmNhdAogICAgaW50Y18wIC8vIDAKICAgIGNhbGxzdWIgZHluYW1pY19hcnJheV9yZWFkX2R5bmFtaWNfZWxlbWVudAogICAgaW50Y18wIC8vIDAKICAgIGludGNfMiAvLyA4CiAgICBleHRyYWN0MwogICAgZnJhbWVfZGlnIC02CiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18yIC8vIDgKICAgIGV4dHJhY3QzCiAgICA9PQogICAgY292ZXIgMgogICAgYnl0ZWNfMCAvLyAiIgogICAgZGlnIDEKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtNQogICAgY29uY2F0CiAgICBpbnRjXzAgLy8gMAogICAgY2FsbHN1YiBkeW5hbWljX2FycmF5X3JlYWRfZHluYW1pY19lbGVtZW50CiAgICBkdXAKICAgIGludGNfMiAvLyA4CiAgICBleHRyYWN0X3VpbnQxNgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICBmcmFtZV9kaWcgLTYKICAgIGludGNfMiAvLyA4CiAgICBleHRyYWN0X3VpbnQxNgogICAgZnJhbWVfZGlnIC02CiAgICBsZW4KICAgIGZyYW1lX2RpZyAtNgogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBhc3NlcnQgLy8gQXJyYXkgb2Ygc3RydWN0IG1hdGNoZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo5NgogICAgLy8gYXNzZXJ0TWF0Y2goZGVjb2RlQXJjNDxBZGRyZXNzW10+KEJ5dGVzYCR7bGVuUHJlZml4fSR7Zl9ieXRlc31gKSwgW2ZdLCAnQXJyYXkgb2YgYWRkcmVzcyBtYXRjaGVzJykKICAgIGJ5dGVjXzAgLy8gIiIKICAgIGRpZyAxCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMwogICAgY29uY2F0CiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBjb3ZlciAxCiAgICBieXRlY18wIC8vICIiCiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC0zCiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBpbnRjXzMgLy8gMgogICAgdW5jb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICBpbnRjXzAgLy8gMAogICAgcHVzaGludCAzMgogICAgKgogICAgcHVzaGludCAzMgogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBmcmFtZV9kaWcgLTQKICAgID09CiAgICAmJgogICAgYXNzZXJ0IC8vIEFycmF5IG9mIGFkZHJlc3MgbWF0Y2hlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjk4CiAgICAvLyBhc3NlcnQoZGVjb2RlQXJjNDxieXRlczwxMj4+KGdfYnl0ZXMpID09PSBnKQogICAgZnJhbWVfZGlnIC0xCiAgICBmcmFtZV9kaWcgLTIKICAgID09CiAgICBhc3NlcnQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo6QXJjNEVuY29kZURlY29kZS5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICBiIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwCgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBiIG1haW5fYmxvY2tAMAoKbWFpbl9ibG9ja0AwOgogICAgcHVzaGludCAxCiAgICByZXR1cm4K" }, "byteCode": { "approval": "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", "clear": "C0IAAIEBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 5, "minor": 10, "patch": 0 } }, "events": [], "templateVariables": {} }