{ "name": "NativeArraysAlgo", "structs": { "Vector": [ { "name": "x", "type": "uint64" }, { "name": "y", "type": "uint64" } ] }, "methods": [ { "name": "readonlyArray", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "arrayInObject", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "buildArray", "args": [], "returns": { "type": "uint64[]" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "arrayFromCtor", "args": [], "returns": { "type": "uint64[]" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "buildReadonly", "args": [], "returns": { "type": "uint64[]" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "doThings", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "fixedArray", "args": [ { "type": "uint64[50]", "name": "y" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "arc4Interop", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "structs", "args": [ { "type": "(uint64,uint64)", "struct": "Vector", "name": "p" } ], "returns": { "type": "(uint64,uint64)[]" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "booleans", "args": [], "returns": { "type": "bool[]" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "booleansStatic", "args": [], "returns": { "type": "(bool,bool,bool)" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "arc4Booleans", "args": [], "returns": { "type": "bool[]" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "arc4BooleansStatic", "args": [], "returns": { "type": "(bool,bool,bool)" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "aliasing", "args": [ { "type": "uint64[]", "name": "mutable" }, { "type": "uint64[]", "name": "readOnly" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "receiveMutable", "args": [ { "type": "uint64[]", "name": "a" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "receiveReadonly", "args": [ { "type": "uint64[]", "name": "a" } ], "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": [ 6705 ], "errorMessage": "These should not match" }, { "pc": [ 1028, 1391, 1614, 1747, 1878, 1986, 2435, 2705, 2830, 3017, 3386, 3835, 4123, 4555, 5011, 5424, 5555, 5569, 5682, 5748, 5820, 5936, 6435, 6536 ], "errorMessage": "assert target is match for conditions" }, { "pc": [ 1263, 1619 ], "errorMessage": "cannot pop from empty array" }, { "pc": [ 909, 931, 953, 975, 999, 1022, 1280, 1315, 1337, 1359, 1383, 1405, 1431, 1514, 1536, 1558, 1582, 1606, 1636, 1671, 1693, 1715, 1739, 1762, 1777, 1801, 1823, 1846, 1870, 1903, 1927, 1952, 1978, 2195, 2217, 2240, 2264, 2288, 2311, 2335, 2359, 2382, 2406, 2429, 2608, 2630, 2652, 2676, 2699, 2785, 2798, 2811, 2825, 2851, 2873, 2895, 2918, 2941, 2964, 2987, 3010, 3106, 3128, 3150, 3174, 3198, 3222, 3245, 3268, 3290, 3313, 3336, 3359, 3381, 3477, 3499, 3521, 3545, 3569, 3593, 3616, 3640, 3663, 3687, 3710, 3734, 3758, 3782, 3806, 3829, 3935, 3957, 3979, 4002, 4025, 4048, 4071, 4095, 4117, 4223, 4245, 4267, 4290, 4313, 4336, 4360, 4384, 4407, 4430, 4454, 4478, 4502, 4526, 4549, 4653, 4675, 4698, 4722, 4746, 4769, 4793, 4817, 4840, 4864, 4888, 4912, 4935, 4958, 4982, 5005, 5092, 5114, 5137, 5161, 5185, 5208, 5232, 5256, 5279, 5303, 5327, 5351, 5374, 5397, 5419, 5460, 5481, 5491, 5508, 5521, 5534, 5549, 5565, 5612, 5631, 5656, 5672, 5718, 5738, 5773, 5788, 5801, 5815, 5832, 5844, 5857, 5871, 5887, 5902, 5915, 5930, 5943, 6236, 6272, 6308, 6345, 6382, 6418, 6497, 6522, 6654, 6670, 6685, 6702, 6744 ], "errorMessage": "index access is out of bounds" }, { "pc": [ 667, 682, 705, 728, 840, 912, 1100, 1261, 1296, 1412, 1495, 1617, 1652, 1782, 1882, 2013, 2176, 2529, 2589, 2833, 3030, 3087, 3401, 3458, 3859, 3916, 4147, 4204, 4570, 4627, 4634, 5066, 5073, 6115, 6215, 6477 ], "errorMessage": "invalid array length header" }, { "pc": [ 676, 691, 714, 737 ], "errorMessage": "invalid number of bytes for arc4.dynamic_array" }, { "pc": [ 526 ], "errorMessage": "invalid number of bytes for arc4.static_array" }, { "pc": [ 551 ], "errorMessage": "invalid number of bytes for tests/approvals/native-arrays.algo.ts::Vector" }, { "pc": [ 5992, 6006, 6031, 6045, 6068, 6082, 6245, 6281, 6317, 6354, 6391, 6427 ], "errorMessage": "overflow" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgOCAyIDAgMQogICAgYnl0ZWNibG9jayAweCAweDE1MWY3Yzc1IDB4MDAgMHgwNjgxMDEKICAgIGIgbWFpbl9ibG9ja0AwCgptYWluX2Jsb2NrQDA6CiAgICBiIG1haW5fYmxvY2tAMQoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo2CiAgICAvLyBleHBvcnQgY2xhc3MgTmF0aXZlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzIgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDIzCiAgICBiIG1haW5fYWJpX3JvdXRpbmdAMgoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo2CiAgICAvLyBleHBvcnQgY2xhc3MgTmF0aXZlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMiAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18yIC8vIDAKICAgICE9CiAgICBieiBtYWluX2NyZWF0ZV9Ob09wQDIxCiAgICBiIG1haW5fY2FsbF9Ob09wQDMKCm1haW5fY2FsbF9Ob09wQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjYKICAgIC8vIGV4cG9ydCBjbGFzcyBOYXRpdmVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4N2QzMTg1ODkgLy8gbWV0aG9kICJyZWFkb25seUFycmF5KCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4YjBhYzkwNjYgLy8gbWV0aG9kICJhcnJheUluT2JqZWN0KCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4MGY0YzExY2EgLy8gbWV0aG9kICJidWlsZEFycmF5KCl1aW50NjRbXSIKICAgIHB1c2hieXRlcyAweGFhYTI5ZjcwIC8vIG1ldGhvZCAiYXJyYXlGcm9tQ3RvcigpdWludDY0W10iCiAgICBwdXNoYnl0ZXMgMHhlMmQ1ZTAzNSAvLyBtZXRob2QgImJ1aWxkUmVhZG9ubHkoKXVpbnQ2NFtdIgogICAgcHVzaGJ5dGVzIDB4MTNhNTg4YzggLy8gbWV0aG9kICJkb1RoaW5ncygpdm9pZCIKICAgIHB1c2hieXRlcyAweGQ2ZWNjMWU2IC8vIG1ldGhvZCAiZml4ZWRBcnJheSh1aW50NjRbNTBdKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHg3ODdiNTBiMiAvLyBtZXRob2QgImFyYzRJbnRlcm9wKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4ZWI4N2EwNjQgLy8gbWV0aG9kICJzdHJ1Y3RzKCh1aW50NjQsdWludDY0KSkodWludDY0LHVpbnQ2NClbXSIKICAgIHB1c2hieXRlcyAweGJjNjFkNmI4IC8vIG1ldGhvZCAiYm9vbGVhbnMoKWJvb2xbXSIKICAgIHB1c2hieXRlcyAweDhmNTQ0NDczIC8vIG1ldGhvZCAiYm9vbGVhbnNTdGF0aWMoKShib29sLGJvb2wsYm9vbCkiCiAgICBwdXNoYnl0ZXMgMHg0M2U3ZWU0NSAvLyBtZXRob2QgImFyYzRCb29sZWFucygpYm9vbFtdIgogICAgcHVzaGJ5dGVzIDB4Y2JlM2E0ZjggLy8gbWV0aG9kICJhcmM0Qm9vbGVhbnNTdGF0aWMoKShib29sLGJvb2wsYm9vbCkiCiAgICBwdXNoYnl0ZXMgMHgxNDNmMjIzYiAvLyBtZXRob2QgImFsaWFzaW5nKHVpbnQ2NFtdLHVpbnQ2NFtdKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhkOTg5NTQ0MiAvLyBtZXRob2QgInJlY2VpdmVNdXRhYmxlKHVpbnQ2NFtdKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhlMjEzZjViNiAvLyBtZXRob2QgInJlY2VpdmVSZWFkb25seSh1aW50NjRbXSl2b2lkIgogICAgdW5jb3ZlciAxNgogICAgbWF0Y2ggbWFpbl9yZWFkb25seUFycmF5X3JvdXRlQDQgbWFpbl9hcnJheUluT2JqZWN0X3JvdXRlQDUgbWFpbl9idWlsZEFycmF5X3JvdXRlQDYgbWFpbl9hcnJheUZyb21DdG9yX3JvdXRlQDcgbWFpbl9idWlsZFJlYWRvbmx5X3JvdXRlQDggbWFpbl9kb1RoaW5nc19yb3V0ZUA5IG1haW5fZml4ZWRBcnJheV9yb3V0ZUAxMCBtYWluX2FyYzRJbnRlcm9wX3JvdXRlQDExIG1haW5fc3RydWN0c19yb3V0ZUAxMiBtYWluX2Jvb2xlYW5zX3JvdXRlQDEzIG1haW5fYm9vbGVhbnNTdGF0aWNfcm91dGVAMTQgbWFpbl9hcmM0Qm9vbGVhbnNfcm91dGVAMTUgbWFpbl9hcmM0Qm9vbGVhbnNTdGF0aWNfcm91dGVAMTYgbWFpbl9hbGlhc2luZ19yb3V0ZUAxNyBtYWluX3JlY2VpdmVNdXRhYmxlX3JvdXRlQDE4IG1haW5fcmVjZWl2ZVJlYWRvbmx5X3JvdXRlQDE5CiAgICBiIG1haW5fc3dpdGNoX2Nhc2VfbmV4dEAyMAoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDIwOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMjIKCm1haW5fYWZ0ZXJfaWZfZWxzZUAyMjoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDI0CgptYWluX2FmdGVyX2lmX2Vsc2VAMjQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjYKICAgIC8vIGV4cG9ydCBjbGFzcyBOYXRpdmVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgZXJyCgptYWluX3JlY2VpdmVSZWFkb25seV9yb3V0ZUAxOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MjI1CiAgICAvLyByZWNlaXZlUmVhZG9ubHkoYTogcmVhZG9ubHkgdWludDY0W10pIHt9CiAgICBjYWxsc3ViIHJlY2VpdmVSZWFkb25seQogICAgYiBtYWluX3N3aXRjaF9jYXNlX25leHRAMjAKCm1haW5fcmVjZWl2ZU11dGFibGVfcm91dGVAMTg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjIyMQogICAgLy8gcmVjZWl2ZU11dGFibGUoYTogdWludDY0W10pIHsKICAgIGNhbGxzdWIgcmVjZWl2ZU11dGFibGUKICAgIGIgbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDIwCgptYWluX2FsaWFzaW5nX3JvdXRlQDE3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxOTUKICAgIC8vIGFsaWFzaW5nKG11dGFibGU6IHVpbnQ2NFtdLCByZWFkT25seTogcmVhZG9ubHkgdWludDY0W10pIHsKICAgIGNhbGxzdWIgYWxpYXNpbmcKICAgIGIgbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDIwCgptYWluX2FyYzRCb29sZWFuc1N0YXRpY19yb3V0ZUAxNjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTkxCiAgICAvLyBhcmM0Qm9vbGVhbnNTdGF0aWMoKSB7CiAgICBjYWxsc3ViIGFyYzRCb29sZWFuc1N0YXRpYwogICAgYiBtYWluX3N3aXRjaF9jYXNlX25leHRAMjAKCm1haW5fYXJjNEJvb2xlYW5zX3JvdXRlQDE1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxODcKICAgIC8vIGFyYzRCb29sZWFucygpIHsKICAgIGNhbGxzdWIgYXJjNEJvb2xlYW5zCiAgICBiIG1haW5fc3dpdGNoX2Nhc2VfbmV4dEAyMAoKbWFpbl9ib29sZWFuc1N0YXRpY19yb3V0ZUAxNDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTgzCiAgICAvLyBib29sZWFuc1N0YXRpYygpIHsKICAgIGNhbGxzdWIgYm9vbGVhbnNTdGF0aWMKICAgIGIgbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDIwCgptYWluX2Jvb2xlYW5zX3JvdXRlQDEzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxNzkKICAgIC8vIGJvb2xlYW5zKCkgewogICAgY2FsbHN1YiBib29sZWFucwogICAgYiBtYWluX3N3aXRjaF9jYXNlX25leHRAMjAKCm1haW5fc3RydWN0c19yb3V0ZUAxMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTcwCiAgICAvLyBzdHJ1Y3RzKHsgeCwgeSB9OiBWZWN0b3IpIHsKICAgIGNhbGxzdWIgc3RydWN0cwogICAgYiBtYWluX3N3aXRjaF9jYXNlX25leHRAMjAKCm1haW5fYXJjNEludGVyb3Bfcm91dGVAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE1NwogICAgLy8gYXJjNEludGVyb3AoKSB7CiAgICBjYWxsc3ViIGFyYzRJbnRlcm9wCiAgICBiIG1haW5fc3dpdGNoX2Nhc2VfbmV4dEAyMAoKbWFpbl9maXhlZEFycmF5X3JvdXRlQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxMDkKICAgIC8vIGZpeGVkQXJyYXkoeTogRml4ZWRBcnJheTx1aW50NjQsIDUwPikgewogICAgY2FsbHN1YiBmaXhlZEFycmF5CiAgICBiIG1haW5fc3dpdGNoX2Nhc2VfbmV4dEAyMAoKbWFpbl9kb1RoaW5nc19yb3V0ZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0MgogICAgLy8gZG9UaGluZ3MoKSB7CiAgICBjYWxsc3ViIGRvVGhpbmdzCiAgICBiIG1haW5fc3dpdGNoX2Nhc2VfbmV4dEAyMAoKbWFpbl9idWlsZFJlYWRvbmx5X3JvdXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM4CiAgICAvLyBidWlsZFJlYWRvbmx5KCk6IFJlYWRvbmx5QXJyYXk8dWludDY0PiB7CiAgICBjYWxsc3ViIGJ1aWxkUmVhZG9ubHkKICAgIGIgbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDIwCgptYWluX2FycmF5RnJvbUN0b3Jfcm91dGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzQKICAgIC8vIGFycmF5RnJvbUN0b3IoKTogQXJyYXk8dWludDY0PiB7CiAgICBjYWxsc3ViIGFycmF5RnJvbUN0b3IKICAgIGIgbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDIwCgptYWluX2J1aWxkQXJyYXlfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzAKICAgIC8vIGJ1aWxkQXJyYXkoKTogQXJyYXk8dWludDY0PiB7CiAgICBjYWxsc3ViIGJ1aWxkQXJyYXkKICAgIGIgbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDIwCgptYWluX2FycmF5SW5PYmplY3Rfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MjAKICAgIC8vIGFycmF5SW5PYmplY3QoKSB7CiAgICBjYWxsc3ViIGFycmF5SW5PYmplY3QKICAgIGIgbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDIwCgptYWluX3JlYWRvbmx5QXJyYXlfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NwogICAgLy8gcmVhZG9ubHlBcnJheSgpIHsKICAgIGNhbGxzdWIgcmVhZG9ubHlBcnJheQogICAgYiBtYWluX3N3aXRjaF9jYXNlX25leHRAMjAKCm1haW5fY3JlYXRlX05vT3BAMjE6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAyMgoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMjM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjYKICAgIC8vIGV4cG9ydCBjbGFzcyBOYXRpdmVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18yIC8vIE5vT3AKICAgID09CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18yIC8vIDAKICAgID09CiAgICAmJgogICAgYXNzZXJ0CiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18zIC8vIDEKICAgIHJldHVybgoKCi8vIF9wdXlhX2xpYi51dGlsLmVuc3VyZV9idWRnZXQocmVxdWlyZWRfYnVkZ2V0OiB1aW50NjQsIGZlZV9zb3VyY2U6IHVpbnQ2NCkgLT4gdm9pZDoKZW5zdXJlX2J1ZGdldDoKICAgIHByb3RvIDIgMAogICAgYiBlbnN1cmVfYnVkZ2V0X2Jsb2NrQDAKCmVuc3VyZV9idWRnZXRfYmxvY2tAMDoKICAgIGZyYW1lX2RpZyAtMgogICAgcHVzaGludCAxMAogICAgKwogICAgYiBlbnN1cmVfYnVkZ2V0X3doaWxlX3RvcEAxCgplbnN1cmVfYnVkZ2V0X3doaWxlX3RvcEAxOgogICAgZ2xvYmFsIE9wY29kZUJ1ZGdldAogICAgZnJhbWVfZGlnIDAKICAgIDwKICAgIGJ6IGVuc3VyZV9idWRnZXRfYWZ0ZXJfd2hpbGVANgogICAgYiBlbnN1cmVfYnVkZ2V0X3doaWxlX2JvZHlAMgoKZW5zdXJlX2J1ZGdldF93aGlsZV9ib2R5QDI6CiAgICBpdHhuX2JlZ2luCiAgICBwdXNoaW50IDYgLy8gYXBwbAogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgcHVzaGludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgYnl0ZWNfMyAvLyAweDA2ODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KICAgIGJ5dGVjXzMgLy8gMHgwNjgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KICAgIGludGNfMiAvLyAwCiAgICBpbnRjXzMgLy8gMQogICAgZnJhbWVfZGlnIC0xCiAgICBtYXRjaCBlbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlXzBAMyBlbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlXzFANAogICAgYiBlbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlX25leHRANQoKZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV9uZXh0QDU6CiAgICBpdHhuX3N1Ym1pdAogICAgYiBlbnN1cmVfYnVkZ2V0X3doaWxlX3RvcEAxCgplbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlXzFANDoKICAgIGdsb2JhbCBNaW5UeG5GZWUKICAgIGl0eG5fZmllbGQgRmVlCiAgICBiIGVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfbmV4dEA1CgplbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlXzBAMzoKICAgIGludGNfMiAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgYiBlbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlX25leHRANQoKZW5zdXJlX2J1ZGdldF9hZnRlcl93aGlsZUA2OgogICAgcmV0c3ViCgoKLy8gX3B1eWFfbGliLmFyYzQuZHluYW1pY19hcnJheV9wb3BfZml4ZWRfc2l6ZShhcnJheTogYnl0ZXMsIGZpeGVkX2J5dGVfc2l6ZTogdWludDY0KSAtPiBieXRlczoKZHluYW1pY19hcnJheV9wb3BfZml4ZWRfc2l6ZToKICAgIHByb3RvIDIgMQogICAgaW50Y18yIC8vIDAKICAgIGludGNfMiAvLyAwCiAgICBpbnRjXzIgLy8gMAogICAgYnl0ZWNfMCAvLyAiIgogICAgYiBkeW5hbWljX2FycmF5X3BvcF9maXhlZF9zaXplX2Jsb2NrQDAKCmR5bmFtaWNfYXJyYXlfcG9wX2ZpeGVkX3NpemVfYmxvY2tAMDoKICAgIGZyYW1lX2RpZyAtMgogICAgZnJhbWVfZGlnIC0xCiAgICBiIGR5bmFtaWNfYXJyYXlfcG9wX2ZpeGVkX3NpemVfYmxvY2tAMQoKZHluYW1pY19hcnJheV9wb3BfZml4ZWRfc2l6ZV9ibG9ja0AxOgogICAgZnJhbWVfZGlnIDQKICAgIGR1cAogICAgbGVuCiAgICBmcmFtZV9kaWcgNQogICAgLQogICAgdW5jb3ZlciAxCiAgICBpbnRjXzIgLy8gMAogICAgdW5jb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICBmcmFtZV9idXJ5IDEKICAgIGIgZHluYW1pY19hcnJheV9wb3BfZml4ZWRfc2l6ZV9hZnRlcl9pbmxpbmVkX19wdXlhX2xpYi5hcmM0LnJfdHJpbUAyCgpkeW5hbWljX2FycmF5X3BvcF9maXhlZF9zaXplX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQucl90cmltQDI6CiAgICBmcmFtZV9kaWcgMQogICAgZHVwCiAgICBmcmFtZV9idXJ5IDAKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18zIC8vIDEKICAgIC0KICAgIGZyYW1lX2J1cnkgMwogICAgYiBkeW5hbWljX2FycmF5X3BvcF9maXhlZF9zaXplX2Jsb2NrQDMKCmR5bmFtaWNfYXJyYXlfcG9wX2ZpeGVkX3NpemVfYmxvY2tAMzoKICAgIGZyYW1lX2RpZyAzCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMAogICAgZnJhbWVfYnVyeSAyCiAgICBiIGR5bmFtaWNfYXJyYXlfcG9wX2ZpeGVkX3NpemVfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5faXRvYjE2QDQKCmR5bmFtaWNfYXJyYXlfcG9wX2ZpeGVkX3NpemVfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5faXRvYjE2QDQ6CiAgICBmcmFtZV9kaWcgMAogICAgaW50Y18yIC8vIDAKICAgIGZyYW1lX2RpZyAyCiAgICByZXBsYWNlMwogICAgZnJhbWVfYnVyeSAwCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLnJlYWRvbmx5QXJyYXlbcm91dGluZ10oKSAtPiB2b2lkOgpyZWFkb25seUFycmF5OgogICAgYiByZWFkb25seUFycmF5X2Jsb2NrQDAKCnJlYWRvbmx5QXJyYXlfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NwogICAgLy8gcmVhZG9ubHlBcnJheSgpIHsKICAgIGNhbGxzdWIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5yZWFkb25seUFycmF5CiAgICBpbnRjXzMgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5hcnJheUluT2JqZWN0W3JvdXRpbmddKCkgLT4gdm9pZDoKYXJyYXlJbk9iamVjdDoKICAgIGIgYXJyYXlJbk9iamVjdF9ibG9ja0AwCgphcnJheUluT2JqZWN0X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjIwCiAgICAvLyBhcnJheUluT2JqZWN0KCkgewogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmFycmF5SW5PYmplY3QKICAgIGludGNfMyAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmJ1aWxkQXJyYXlbcm91dGluZ10oKSAtPiB2b2lkOgpidWlsZEFycmF5OgogICAgYiBidWlsZEFycmF5X2Jsb2NrQDAKCmJ1aWxkQXJyYXlfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzAKICAgIC8vIGJ1aWxkQXJyYXkoKTogQXJyYXk8dWludDY0PiB7CiAgICBjYWxsc3ViIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYnVpbGRBcnJheQogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzMgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5hcnJheUZyb21DdG9yW3JvdXRpbmddKCkgLT4gdm9pZDoKYXJyYXlGcm9tQ3RvcjoKICAgIGIgYXJyYXlGcm9tQ3Rvcl9ibG9ja0AwCgphcnJheUZyb21DdG9yX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM0CiAgICAvLyBhcnJheUZyb21DdG9yKCk6IEFycmF5PHVpbnQ2ND4gewogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmFycmF5RnJvbUN0b3IKICAgIGJ5dGVjXzEgLy8gMHgxNTFmN2M3NQogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18zIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYnVpbGRSZWFkb25seVtyb3V0aW5nXSgpIC0+IHZvaWQ6CmJ1aWxkUmVhZG9ubHk6CiAgICBiIGJ1aWxkUmVhZG9ubHlfYmxvY2tAMAoKYnVpbGRSZWFkb25seV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozOAogICAgLy8gYnVpbGRSZWFkb25seSgpOiBSZWFkb25seUFycmF5PHVpbnQ2ND4gewogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmJ1aWxkUmVhZG9ubHkKICAgIGJ5dGVjXzEgLy8gMHgxNTFmN2M3NQogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18zIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3Nbcm91dGluZ10oKSAtPiB2b2lkOgpkb1RoaW5nczoKICAgIGIgZG9UaGluZ3NfYmxvY2tAMAoKZG9UaGluZ3NfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDIKICAgIC8vIGRvVGhpbmdzKCkgewogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzCiAgICBpbnRjXzMgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5maXhlZEFycmF5W3JvdXRpbmddKCkgLT4gdm9pZDoKZml4ZWRBcnJheToKICAgIGIgZml4ZWRBcnJheV9ibG9ja0AwCgpmaXhlZEFycmF5X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjEwOQogICAgLy8gZml4ZWRBcnJheSh5OiBGaXhlZEFycmF5PHVpbnQ2NCwgNTA+KSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgcHVzaGludCA0MDAKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuc3RhdGljX2FycmF5PHVpbnQ2NCwgNTA+CiAgICBjYWxsc3ViIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZml4ZWRBcnJheQogICAgaW50Y18zIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYXJjNEludGVyb3Bbcm91dGluZ10oKSAtPiB2b2lkOgphcmM0SW50ZXJvcDoKICAgIGIgYXJjNEludGVyb3BfYmxvY2tAMAoKYXJjNEludGVyb3BfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTU3CiAgICAvLyBhcmM0SW50ZXJvcCgpIHsKICAgIGNhbGxzdWIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5hcmM0SW50ZXJvcAogICAgaW50Y18zIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uc3RydWN0c1tyb3V0aW5nXSgpIC0+IHZvaWQ6CnN0cnVjdHM6CiAgICBiIHN0cnVjdHNfYmxvY2tAMAoKc3RydWN0c19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxNzAKICAgIC8vIHN0cnVjdHMoeyB4LCB5IH06IFZlY3RvcikgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIHB1c2hpbnQgMTYKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6OlZlY3RvcgogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLnN0cnVjdHMKICAgIGJ5dGVjXzEgLy8gMHgxNTFmN2M3NQogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18zIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYm9vbGVhbnNbcm91dGluZ10oKSAtPiB2b2lkOgpib29sZWFuczoKICAgIGIgYm9vbGVhbnNfYmxvY2tAMAoKYm9vbGVhbnNfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTc5CiAgICAvLyBib29sZWFucygpIHsKICAgIGNhbGxzdWIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5ib29sZWFucwogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzMgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5ib29sZWFuc1N0YXRpY1tyb3V0aW5nXSgpIC0+IHZvaWQ6CmJvb2xlYW5zU3RhdGljOgogICAgYiBib29sZWFuc1N0YXRpY19ibG9ja0AwCgpib29sZWFuc1N0YXRpY19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxODMKICAgIC8vIGJvb2xlYW5zU3RhdGljKCkgewogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmJvb2xlYW5zU3RhdGljCiAgICBjb3ZlciAyCiAgICBjb3ZlciAxCiAgICBieXRlY18yIC8vIDB4MDAKICAgIGludGNfMiAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgaW50Y18zIC8vIDEKICAgIHVuY292ZXIgMgogICAgc2V0Yml0CiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAyCiAgICBzZXRiaXQKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICBieXRlY18xIC8vIDB4MTUxZjdjNzUKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMyAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmFyYzRCb29sZWFuc1tyb3V0aW5nXSgpIC0+IHZvaWQ6CmFyYzRCb29sZWFuczoKICAgIGIgYXJjNEJvb2xlYW5zX2Jsb2NrQDAKCmFyYzRCb29sZWFuc19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxODcKICAgIC8vIGFyYzRCb29sZWFucygpIHsKICAgIGNhbGxzdWIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5hcmM0Qm9vbGVhbnMKICAgIGJ5dGVjXzEgLy8gMHgxNTFmN2M3NQogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18zIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYXJjNEJvb2xlYW5zU3RhdGljW3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNEJvb2xlYW5zU3RhdGljOgogICAgYiBhcmM0Qm9vbGVhbnNTdGF0aWNfYmxvY2tAMAoKYXJjNEJvb2xlYW5zU3RhdGljX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE5MQogICAgLy8gYXJjNEJvb2xlYW5zU3RhdGljKCkgewogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmFyYzRCb29sZWFuc1N0YXRpYwogICAgY292ZXIgMgogICAgaW50Y18yIC8vIDAKICAgIGdldGJpdAogICAgdW5jb3ZlciAxCiAgICBpbnRjXzMgLy8gMQogICAgdW5jb3ZlciAyCiAgICBzZXRiaXQKICAgIHVuY292ZXIgMQogICAgaW50Y18yIC8vIDAKICAgIGdldGJpdAogICAgdW5jb3ZlciAxCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAyCiAgICBzZXRiaXQKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICBieXRlY18xIC8vIDB4MTUxZjdjNzUKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMyAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmFsaWFzaW5nW3JvdXRpbmddKCkgLT4gdm9pZDoKYWxpYXNpbmc6CiAgICBiIGFsaWFzaW5nX2Jsb2NrQDAKCmFsaWFzaW5nX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE5NQogICAgLy8gYWxpYXNpbmcobXV0YWJsZTogdWludDY0W10sIHJlYWRPbmx5OiByZWFkb25seSB1aW50NjRbXSkgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzIgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMSAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8dWludDY0PgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBpbnRjXzIgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMSAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8dWludDY0PgogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmFsaWFzaW5nCiAgICBpbnRjXzMgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5yZWNlaXZlTXV0YWJsZVtyb3V0aW5nXSgpIC0+IHZvaWQ6CnJlY2VpdmVNdXRhYmxlOgogICAgYiByZWNlaXZlTXV0YWJsZV9ibG9ja0AwCgpyZWNlaXZlTXV0YWJsZV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoyMjEKICAgIC8vIHJlY2VpdmVNdXRhYmxlKGE6IHVpbnQ2NFtdKSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18xIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTx1aW50NjQ+CiAgICBjYWxsc3ViIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28ucmVjZWl2ZU11dGFibGUKICAgIGludGNfMyAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLnJlY2VpdmVSZWFkb25seVtyb3V0aW5nXSgpIC0+IHZvaWQ6CnJlY2VpdmVSZWFkb25seToKICAgIGIgcmVjZWl2ZVJlYWRvbmx5X2Jsb2NrQDAKCnJlY2VpdmVSZWFkb25seV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoyMjUKICAgIC8vIHJlY2VpdmVSZWFkb25seShhOiByZWFkb25seSB1aW50NjRbXSkge30KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18yIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzEgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PHVpbnQ2ND4KICAgIGNhbGxzdWIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5yZWNlaXZlUmVhZG9ubHkKICAgIGludGNfMyAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLnJlYWRvbmx5QXJyYXkoKSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLnJlYWRvbmx5QXJyYXk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjcKICAgIC8vIHJlYWRvbmx5QXJyYXkoKSB7CiAgICBwcm90byAwIDAKICAgIGludGNfMiAvLyAwCiAgICBpbnRjXzIgLy8gMAogICAgYnl0ZWNfMCAvLyAiIgogICAgYnl0ZWNfMCAvLyAiIgogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLnJlYWRvbmx5QXJyYXlfYmxvY2tAMAoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5yZWFkb25seUFycmF5X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjgKICAgIC8vIGxldCBteUFycmF5OiByZWFkb25seSB1aW50NjRbXSA9IFsxLCAyLCAzXQogICAgcHVzaGludCAzCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgaW50Y18zIC8vIDEKICAgIGl0b2IKICAgIGNvbmNhdAogICAgaW50Y18xIC8vIDIKICAgIGl0b2IKICAgIGNvbmNhdAogICAgcHVzaGludCAzCiAgICBpdG9iCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTAKICAgIC8vIG15QXJyYXkgPSBteUFycmF5LmNvbmNhdChVaW50NjQoNSkpCiAgICBwdXNoaW50IDUKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28ucmVhZG9ubHlBcnJheV9ibG9ja0AxCgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLnJlYWRvbmx5QXJyYXlfYmxvY2tAMToKICAgIGZyYW1lX2RpZyA0CiAgICBpbnRjXzIgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTAKICAgIC8vIG15QXJyYXkgPSBteUFycmF5LmNvbmNhdChVaW50NjQoNSkpCiAgICBpbnRjXzMgLy8gMQogICAgKwogICAgZnJhbWVfYnVyeSAyCiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28ucmVhZG9ubHlBcnJheV9ibG9ja0AyCgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLnJlYWRvbmx5QXJyYXlfYmxvY2tAMjoKICAgIGZyYW1lX2RpZyAyCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMAogICAgZnJhbWVfYnVyeSAwCiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28ucmVhZG9ubHlBcnJheV9hZnRlcl9pbmxpbmVkX19wdXlhX2xpYi5hcmM0Ll9pdG9iMTZAMwoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5yZWFkb25seUFycmF5X2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuX2l0b2IxNkAzOgogICAgZnJhbWVfZGlnIDAKICAgIGZyYW1lX2RpZyA0CiAgICBpbnRjXzIgLy8gMAogICAgdW5jb3ZlciAyCiAgICByZXBsYWNlMwogICAgZnJhbWVfZGlnIDUKICAgIGNvbmNhdAogICAgZnJhbWVfYnVyeSAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjEwCiAgICAvLyBteUFycmF5ID0gbXlBcnJheS5jb25jYXQoVWludDY0KDUpKQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLnJlYWRvbmx5QXJyYXlfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5keW5hbWljX2FycmF5X2NvbmNhdF9maXhlZEA0Cgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLnJlYWRvbmx5QXJyYXlfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5keW5hbWljX2FycmF5X2NvbmNhdF9maXhlZEA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxMAogICAgLy8gbXlBcnJheSA9IG15QXJyYXkuY29uY2F0KFVpbnQ2NCg1KSkKICAgIGZyYW1lX2RpZyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjEyCiAgICAvLyBteUFycmF5ID0gWy4uLm15QXJyYXksIFVpbnQ2NCg0KV0KICAgIGludGNfMyAvLyAxCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgcHVzaGludCA0CiAgICBpdG9iCiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGNvdmVyIDEKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICB1bmNvdmVyIDIKICAgIGZyYW1lX2J1cnkgNAogICAgdW5jb3ZlciAxCiAgICBmcmFtZV9idXJ5IDUKICAgIGZyYW1lX2J1cnkgMwogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLnJlYWRvbmx5QXJyYXlfYmxvY2tANQoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5yZWFkb25seUFycmF5X2Jsb2NrQDU6CiAgICBmcmFtZV9kaWcgNAogICAgaW50Y18yIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBmcmFtZV9kaWcgMwogICAgKwogICAgZnJhbWVfYnVyeSAyCiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28ucmVhZG9ubHlBcnJheV9ibG9ja0A2Cgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLnJlYWRvbmx5QXJyYXlfYmxvY2tANjoKICAgIGZyYW1lX2RpZyAyCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMAogICAgZnJhbWVfYnVyeSAwCiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28ucmVhZG9ubHlBcnJheV9hZnRlcl9pbmxpbmVkX19wdXlhX2xpYi5hcmM0Ll9pdG9iMTZANwoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5yZWFkb25seUFycmF5X2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuX2l0b2IxNkA3OgogICAgZnJhbWVfZGlnIDAKICAgIGZyYW1lX2RpZyA0CiAgICBpbnRjXzIgLy8gMAogICAgdW5jb3ZlciAyCiAgICByZXBsYWNlMwogICAgZnJhbWVfZGlnIDUKICAgIGNvbmNhdAogICAgZnJhbWVfYnVyeSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjEyCiAgICAvLyBteUFycmF5ID0gWy4uLm15QXJyYXksIFVpbnQ2NCg0KV0KICAgIGIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5yZWFkb25seUFycmF5X2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuZHluYW1pY19hcnJheV9jb25jYXRfZml4ZWRAOAoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5yZWFkb25seUFycmF5X2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuZHluYW1pY19hcnJheV9jb25jYXRfZml4ZWRAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTIKICAgIC8vIG15QXJyYXkgPSBbLi4ubXlBcnJheSwgVWludDY0KDQpXQogICAgZnJhbWVfZGlnIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTUKICAgIC8vIG15QXJyYXkgPSBteUFycmF5LndpdGgoMiwgMykKICAgIHB1c2hpbnQgMwogICAgaXRvYgogICAgaW50Y18xIC8vIDIKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzEgLy8gMgogICAgKwogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDEKICAgIHVuY292ZXIgMgogICAgcmVwbGFjZTMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE3CiAgICAvLyBhc3NlcnRNYXRjaChteUFycmF5LCBbMSwgMiwgMywgNSwgNF0pCiAgICBkdXAKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBwdXNoaW50IDUKICAgID09CiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBpbnRjXzIgLy8gMAogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMyAvLyAxCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgaW50Y18zIC8vIDEKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzEgLy8gMgogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGludGNfMSAvLyAyCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAzCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCAzCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCA1CiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgIHB1c2hpbnQgNAogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgNAogICAgPT0KICAgICYmCiAgICBhc3NlcnQgLy8gYXNzZXJ0IHRhcmdldCBpcyBtYXRjaCBmb3IgY29uZGl0aW9ucwogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5hcnJheUluT2JqZWN0KCkgLT4gdm9pZDoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5hcnJheUluT2JqZWN0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoyMAogICAgLy8gYXJyYXlJbk9iamVjdCgpIHsKICAgIHByb3RvIDAgMAogICAgaW50Y18yIC8vIDAKICAgIGludGNfMiAvLyAwCiAgICBieXRlY18wIC8vICIiCiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYXJyYXlJbk9iamVjdF9ibG9ja0AwCgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmFycmF5SW5PYmplY3RfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MjItMjUKICAgIC8vIGNvbnN0IHBlcnNvbjogUGVyc29uID0gewogICAgLy8gICBuYW1lOiAnQWxpY2UnLAogICAgLy8gICBmYXZvdXJpdGVOdW1iZXJzOiBbMTMzN10sCiAgICAvLyB9CiAgICBpbnRjXzMgLy8gMQogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MjQKICAgIC8vIGZhdm91cml0ZU51bWJlcnM6IFsxMzM3XSwKICAgIHB1c2hpbnQgMTMzNwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoyMi0yNQogICAgLy8gY29uc3QgcGVyc29uOiBQZXJzb24gPSB7CiAgICAvLyAgIG5hbWU6ICdBbGljZScsCiAgICAvLyAgIGZhdm91cml0ZU51bWJlcnM6IFsxMzM3XSwKICAgIC8vIH0KICAgIGl0b2IKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoyNgogICAgLy8gY29uc3QgbGVuZ3RoOiB1aW50NjQgPSBwZXJzb24uZmF2b3VyaXRlTnVtYmVycy5wdXNoKDQyKQogICAgcHVzaGludCA0MgogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIGIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5hcnJheUluT2JqZWN0X2Jsb2NrQDEKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYXJyYXlJbk9iamVjdF9ibG9ja0AxOgogICAgZnJhbWVfZGlnIDMKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoyNgogICAgLy8gY29uc3QgbGVuZ3RoOiB1aW50NjQgPSBwZXJzb24uZmF2b3VyaXRlTnVtYmVycy5wdXNoKDQyKQogICAgaW50Y18zIC8vIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMgogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmFycmF5SW5PYmplY3RfYmxvY2tAMgoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5hcnJheUluT2JqZWN0X2Jsb2NrQDI6CiAgICBmcmFtZV9kaWcgMgogICAgaXRvYgogICAgZXh0cmFjdCA2IDAKICAgIGZyYW1lX2J1cnkgMQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmFycmF5SW5PYmplY3RfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5faXRvYjE2QDMKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYXJyYXlJbk9iamVjdF9hZnRlcl9pbmxpbmVkX19wdXlhX2xpYi5hcmM0Ll9pdG9iMTZAMzoKICAgIGZyYW1lX2RpZyAxCiAgICBmcmFtZV9kaWcgMwogICAgaW50Y18yIC8vIDAKICAgIHVuY292ZXIgMgogICAgcmVwbGFjZTMKICAgIGZyYW1lX2RpZyA0CiAgICBjb25jYXQKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoyNgogICAgLy8gY29uc3QgbGVuZ3RoOiB1aW50NjQgPSBwZXJzb24uZmF2b3VyaXRlTnVtYmVycy5wdXNoKDQyKQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmFycmF5SW5PYmplY3RfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5keW5hbWljX2FycmF5X2NvbmNhdF9maXhlZEA0Cgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmFycmF5SW5PYmplY3RfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5keW5hbWljX2FycmF5X2NvbmNhdF9maXhlZEA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoyNgogICAgLy8gY29uc3QgbGVuZ3RoOiB1aW50NjQgPSBwZXJzb24uZmF2b3VyaXRlTnVtYmVycy5wdXNoKDQyKQogICAgZnJhbWVfZGlnIDAKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjI3CiAgICAvLyBhc3NlcnQobGVuZ3RoID09PSAyKQogICAgaW50Y18xIC8vIDIKICAgID09CiAgICBhc3NlcnQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYnVpbGRBcnJheSgpIC0+IGJ5dGVzOgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmJ1aWxkQXJyYXk6CiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYnVpbGRBcnJheV9ibG9ja0AwCgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmJ1aWxkQXJyYXlfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzEKICAgIC8vIHJldHVybiBbMSwgMiwgMywgNF0KICAgIHB1c2hpbnQgNAogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGludGNfMyAvLyAxCiAgICBpdG9iCiAgICBjb25jYXQKICAgIGludGNfMSAvLyAyCiAgICBpdG9iCiAgICBjb25jYXQKICAgIHB1c2hpbnQgMwogICAgaXRvYgogICAgY29uY2F0CiAgICBwdXNoaW50IDQKICAgIGl0b2IKICAgIGNvbmNhdAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5hcnJheUZyb21DdG9yKCkgLT4gYnl0ZXM6CnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYXJyYXlGcm9tQ3RvcjoKICAgIGIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5hcnJheUZyb21DdG9yX2Jsb2NrQDAKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYXJyYXlGcm9tQ3Rvcl9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozNQogICAgLy8gcmV0dXJuIG5ldyBBcnJheTx1aW50NjQ+KDEsIDIsIDMpCiAgICBwdXNoaW50IDMKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBpbnRjXzMgLy8gMQogICAgaXRvYgogICAgY29uY2F0CiAgICBpbnRjXzEgLy8gMgogICAgaXRvYgogICAgY29uY2F0CiAgICBwdXNoaW50IDMKICAgIGl0b2IKICAgIGNvbmNhdAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5idWlsZFJlYWRvbmx5KCkgLT4gYnl0ZXM6CnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYnVpbGRSZWFkb25seToKICAgIGIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5idWlsZFJlYWRvbmx5X2Jsb2NrQDAKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYnVpbGRSZWFkb25seV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozOQogICAgLy8gcmV0dXJuIFsxLCAyLCAzLCA0XQogICAgcHVzaGludCA0CiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgaW50Y18zIC8vIDEKICAgIGl0b2IKICAgIGNvbmNhdAogICAgaW50Y18xIC8vIDIKICAgIGl0b2IKICAgIGNvbmNhdAogICAgcHVzaGludCAzCiAgICBpdG9iCiAgICBjb25jYXQKICAgIHB1c2hpbnQgNAogICAgaXRvYgogICAgY29uY2F0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzKCkgLT4gdm9pZDoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nczoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDIKICAgIC8vIGRvVGhpbmdzKCkgewogICAgcHJvdG8gMCAwCiAgICBpbnRjXzIgLy8gMAogICAgaW50Y18yIC8vIDAKICAgIGludGNfMiAvLyAwCiAgICBpbnRjXzIgLy8gMAogICAgaW50Y18yIC8vIDAKICAgIGludGNfMiAvLyAwCiAgICBpbnRjXzIgLy8gMAogICAgaW50Y18yIC8vIDAKICAgIGludGNfMiAvLyAwCiAgICBpbnRjXzIgLy8gMAogICAgaW50Y18yIC8vIDAKICAgIGludGNfMiAvLyAwCiAgICBpbnRjXzIgLy8gMAogICAgaW50Y18yIC8vIDAKICAgIGludGNfMiAvLyAwCiAgICBpbnRjXzIgLy8gMAogICAgaW50Y18yIC8vIDAKICAgIGludGNfMiAvLyAwCiAgICBieXRlY18wIC8vICIiCiAgICBieXRlY18wIC8vICIiCiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYmxvY2tAMAoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0MwogICAgLy8gZW5zdXJlQnVkZ2V0KDE0MDApCiAgICBwdXNoaW50IDE0MDAKICAgIGludGNfMiAvLyAwCiAgICBjYWxsc3ViIGVuc3VyZV9idWRnZXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDQKICAgIC8vIGxldCBhcnIgPSB0aGlzLmJ1aWxkQXJyYXkoKQogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmJ1aWxkQXJyYXkKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDYKICAgIC8vIGFyci5wdXNoKDUpCiAgICBwdXNoaW50IDUKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYmxvY2tAMQoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19ibG9ja0AxOgogICAgZnJhbWVfZGlnIDIwCiAgICBpbnRjXzIgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDYKICAgIC8vIGFyci5wdXNoKDUpCiAgICBpbnRjXzMgLy8gMQogICAgKwogICAgZnJhbWVfYnVyeSAxOAogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2Jsb2NrQDIKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYmxvY2tAMjoKICAgIGZyYW1lX2RpZyAxOAogICAgaXRvYgogICAgZXh0cmFjdCA2IDAKICAgIGZyYW1lX2J1cnkgOQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuX2l0b2IxNkAzCgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuX2l0b2IxNkAzOgogICAgZnJhbWVfZGlnIDkKICAgIGZyYW1lX2RpZyAyMAogICAgaW50Y18yIC8vIDAKICAgIHVuY292ZXIgMgogICAgcmVwbGFjZTMKICAgIGZyYW1lX2RpZyAyMQogICAgY29uY2F0CiAgICBmcmFtZV9idXJ5IDkKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDYKICAgIC8vIGFyci5wdXNoKDUpCiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5keW5hbWljX2FycmF5X2NvbmNhdF9maXhlZEA0Cgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuZHluYW1pY19hcnJheV9jb25jYXRfZml4ZWRANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDYKICAgIC8vIGFyci5wdXNoKDUpCiAgICBmcmFtZV9kaWcgOQogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0NwogICAgLy8gYXNzZXJ0KGFyci5wb3AoKSEgPT09IDUpCiAgICBkdXAKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzMgLy8gMQogICAgLSAvLyBvbiBlcnJvcjogY2Fubm90IHBvcCBmcm9tIGVtcHR5IGFycmF5CiAgICBkaWcgMQogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkaWcgMgogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgdW5jb3ZlciAxCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgdW5jb3ZlciAxCiAgICBpbnRjXzAgLy8gOAogICAgY2FsbHN1YiBkeW5hbWljX2FycmF5X3BvcF9maXhlZF9zaXplCiAgICBjb3ZlciAxCiAgICBwdXNoaW50IDUKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDgKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDRdKQogICAgZHVwCiAgICBpbnRjXzIgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgcHVzaGludCA0CiAgICA9PQogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgaW50Y18yIC8vIDAKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzMgLy8gMQogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGludGNfMyAvLyAxCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18xIC8vIDIKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBpbnRjXzEgLy8gMgogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMwogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIHB1c2hpbnQgMwogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgNAogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjUxCiAgICAvLyBhc3NlcnQoYXJyWzBdID09PSAxKQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgaW50Y18yIC8vIDAKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzMgLy8gMQogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1MgogICAgLy8gYXNzZXJ0KGFyci5hdCgtMSkhID09PSA0KQogICAgZHVwCiAgICBpbnRjXzIgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18zIC8vIDEKICAgIC0KICAgIGRpZyAxCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGRpZyAyCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICB1bmNvdmVyIDEKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDQKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTUKICAgIC8vIGFyci5wdXNoKFVpbnQ2NCg1KSkKICAgIHB1c2hpbnQgNQogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIHVuY292ZXIgMQogICAgZnJhbWVfYnVyeSAyMAogICAgZnJhbWVfYnVyeSAyMQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2Jsb2NrQDUKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYmxvY2tANToKICAgIGZyYW1lX2RpZyAyMAogICAgaW50Y18yIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjU1CiAgICAvLyBhcnIucHVzaChVaW50NjQoNSkpCiAgICBpbnRjXzMgLy8gMQogICAgKwogICAgZnJhbWVfYnVyeSAxOAogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2Jsb2NrQDYKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYmxvY2tANjoKICAgIGZyYW1lX2RpZyAxOAogICAgaXRvYgogICAgZXh0cmFjdCA2IDAKICAgIGZyYW1lX2J1cnkgOQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuX2l0b2IxNkA3Cgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuX2l0b2IxNkA3OgogICAgZnJhbWVfZGlnIDkKICAgIGZyYW1lX2RpZyAyMAogICAgaW50Y18yIC8vIDAKICAgIHVuY292ZXIgMgogICAgcmVwbGFjZTMKICAgIGZyYW1lX2RpZyAyMQogICAgY29uY2F0CiAgICBmcmFtZV9idXJ5IDEyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjU1CiAgICAvLyBhcnIucHVzaChVaW50NjQoNSkpCiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5keW5hbWljX2FycmF5X2NvbmNhdF9maXhlZEA4Cgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuZHluYW1pY19hcnJheV9jb25jYXRfZml4ZWRAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTUKICAgIC8vIGFyci5wdXNoKFVpbnQ2NCg1KSkKICAgIGZyYW1lX2RpZyAxMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1NwogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNCwgNV0pCiAgICBkdXAKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBwdXNoaW50IDUKICAgID09CiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBpbnRjXzIgLy8gMAogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMyAvLyAxCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgaW50Y18zIC8vIDEKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzEgLy8gMgogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGludGNfMSAvLyAyCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAzCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCAzCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCA0CiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCA0CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCA1CiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NjAKICAgIC8vIGNvbnN0IHRvcCA9IGFyci5wb3AoKSEKICAgIGR1cAogICAgaW50Y18yIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMyAvLyAxCiAgICAtIC8vIG9uIGVycm9yOiBjYW5ub3QgcG9wIGZyb20gZW1wdHkgYXJyYXkKICAgIGRpZyAxCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGRpZyAyCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICB1bmNvdmVyIDEKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICB1bmNvdmVyIDEKICAgIGludGNfMCAvLyA4CiAgICBjYWxsc3ViIGR5bmFtaWNfYXJyYXlfcG9wX2ZpeGVkX3NpemUKICAgIGNvdmVyIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NjEKICAgIC8vIGFzc2VydCh0b3AgPT09IDUpCiAgICBwdXNoaW50IDUKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NjMKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDRdKQogICAgZHVwCiAgICBpbnRjXzIgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgcHVzaGludCA0CiAgICA9PQogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgaW50Y18yIC8vIDAKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzMgLy8gMQogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGludGNfMyAvLyAxCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18xIC8vIDIKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBpbnRjXzEgLy8gMgogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMwogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIHB1c2hpbnQgMwogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgNAogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjY2CiAgICAvLyBhcnJbMV0gPSAxMAogICAgcHVzaGludCAxMAogICAgaXRvYgogICAgaW50Y18zIC8vIDEKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzEgLy8gMgogICAgKwogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDEKICAgIHVuY292ZXIgMgogICAgcmVwbGFjZTMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjY4CiAgICAvLyBjb25zdCBhcnIyID0gYXJyLndpdGgoMSwgNSkKICAgIHB1c2hpbnQgNQogICAgaXRvYgogICAgaW50Y18zIC8vIDEKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzEgLy8gMgogICAgKwogICAgZGlnIDIKICAgIHVuY292ZXIgMQogICAgdW5jb3ZlciAyCiAgICByZXBsYWNlMyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGNvdmVyIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NzAKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0XSkKICAgIGR1cAogICAgaW50Y18yIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIHB1c2hpbnQgNAogICAgPT0KICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGludGNfMiAvLyAwCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18zIC8vIDEKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBpbnRjXzMgLy8gMQogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMTAKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBpbnRjXzEgLy8gMgogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMwogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIHB1c2hpbnQgMwogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgNAogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjcxCiAgICAvLyBhc3NlcnRNYXRjaChhcnIyLCBbMSwgNSwgMywgNF0pCiAgICBkaWcgMQogICAgaW50Y18yIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIHB1c2hpbnQgNAogICAgPT0KICAgIGNvdmVyIDEKICAgIGRpZyAyCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGRpZyAzCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBpbnRjXzIgLy8gMAogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMyAvLyAxCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZGlnIDIKICAgIGxlbgogICAgY292ZXIgMQogICAgZGlnIDMKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGludGNfMyAvLyAxCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCA1CiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZGlnIDIKICAgIGxlbgogICAgY292ZXIgMQogICAgZGlnIDMKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGludGNfMSAvLyAyCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAzCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZGlnIDIKICAgIGxlbgogICAgY292ZXIgMQogICAgdW5jb3ZlciAzCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBwdXNoaW50IDMKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDQKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBhc3NlcnQgLy8gYXNzZXJ0IHRhcmdldCBpcyBtYXRjaCBmb3IgY29uZGl0aW9ucwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo3NAogICAgLy8gY29uc3QgdDE6IFt1aW50NjQsIHVpbnQ2NF0gPSBbMTIsIDEzXQogICAgcHVzaGludCAxMgogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIHB1c2hpbnQgMTMKICAgIGl0b2IKICAgIGNvbmNhdAogICAgZnJhbWVfYnVyeSAzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjc1CiAgICAvLyBhcnIgPSBhcnIuY29uY2F0KGFycikuY29uY2F0KDExKS5jb25jYXQodDEpCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICB1bmNvdmVyIDEKICAgIGZyYW1lX2J1cnkgMjAKICAgIHVuY292ZXIgMQogICAgZnJhbWVfYnVyeSAyMQogICAgZnJhbWVfYnVyeSAxOQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2Jsb2NrQDkKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYmxvY2tAOToKICAgIGZyYW1lX2RpZyAyMAogICAgaW50Y18yIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBmcmFtZV9kaWcgMTkKICAgICsKICAgIGZyYW1lX2J1cnkgMTgKICAgIGIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19ibG9ja0AxMAoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19ibG9ja0AxMDoKICAgIGZyYW1lX2RpZyAxOAogICAgaXRvYgogICAgZXh0cmFjdCA2IDAKICAgIGZyYW1lX2J1cnkgOQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuX2l0b2IxNkAxMQoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19hZnRlcl9pbmxpbmVkX19wdXlhX2xpYi5hcmM0Ll9pdG9iMTZAMTE6CiAgICBmcmFtZV9kaWcgOQogICAgZnJhbWVfZGlnIDIwCiAgICBpbnRjXzIgLy8gMAogICAgdW5jb3ZlciAyCiAgICByZXBsYWNlMwogICAgZnJhbWVfZGlnIDIxCiAgICBjb25jYXQKICAgIGZyYW1lX2J1cnkgMTcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NzUKICAgIC8vIGFyciA9IGFyci5jb25jYXQoYXJyKS5jb25jYXQoMTEpLmNvbmNhdCh0MSkKICAgIGIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19hZnRlcl9pbmxpbmVkX19wdXlhX2xpYi5hcmM0LmR5bmFtaWNfYXJyYXlfY29uY2F0X2ZpeGVkQDEyCgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuZHluYW1pY19hcnJheV9jb25jYXRfZml4ZWRAMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjc1CiAgICAvLyBhcnIgPSBhcnIuY29uY2F0KGFycikuY29uY2F0KDExKS5jb25jYXQodDEpCiAgICBwdXNoaW50IDExCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIDE3CiAgICBmcmFtZV9idXJ5IDIwCiAgICBmcmFtZV9idXJ5IDIxCiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYmxvY2tAMTMKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYmxvY2tAMTM6CiAgICBmcmFtZV9kaWcgMjAKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo3NQogICAgLy8gYXJyID0gYXJyLmNvbmNhdChhcnIpLmNvbmNhdCgxMSkuY29uY2F0KHQxKQogICAgaW50Y18zIC8vIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMTgKICAgIGIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19ibG9ja0AxNAoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19ibG9ja0AxNDoKICAgIGZyYW1lX2RpZyAxOAogICAgaXRvYgogICAgZXh0cmFjdCA2IDAKICAgIGZyYW1lX2J1cnkgOQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuX2l0b2IxNkAxNQoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19hZnRlcl9pbmxpbmVkX19wdXlhX2xpYi5hcmM0Ll9pdG9iMTZAMTU6CiAgICBmcmFtZV9kaWcgOQogICAgZnJhbWVfZGlnIDIwCiAgICBpbnRjXzIgLy8gMAogICAgdW5jb3ZlciAyCiAgICByZXBsYWNlMwogICAgZnJhbWVfZGlnIDIxCiAgICBjb25jYXQKICAgIGZyYW1lX2J1cnkgNAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo3NQogICAgLy8gYXJyID0gYXJyLmNvbmNhdChhcnIpLmNvbmNhdCgxMSkuY29uY2F0KHQxKQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuZHluYW1pY19hcnJheV9jb25jYXRfZml4ZWRAMTYKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5keW5hbWljX2FycmF5X2NvbmNhdF9maXhlZEAxNjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NzUKICAgIC8vIGFyciA9IGFyci5jb25jYXQoYXJyKS5jb25jYXQoMTEpLmNvbmNhdCh0MSkKICAgIGZyYW1lX2RpZyA0CiAgICBmcmFtZV9idXJ5IDIwCiAgICBmcmFtZV9kaWcgMwogICAgZnJhbWVfYnVyeSAyMQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2Jsb2NrQDE3Cgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2Jsb2NrQDE3OgogICAgZnJhbWVfZGlnIDIwCiAgICBpbnRjXzIgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NzUKICAgIC8vIGFyciA9IGFyci5jb25jYXQoYXJyKS5jb25jYXQoMTEpLmNvbmNhdCh0MSkKICAgIGludGNfMSAvLyAyCiAgICArCiAgICBmcmFtZV9idXJ5IDE4CiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYmxvY2tAMTgKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYmxvY2tAMTg6CiAgICBmcmFtZV9kaWcgMTgKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAwCiAgICBmcmFtZV9idXJ5IDkKICAgIGIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19hZnRlcl9pbmxpbmVkX19wdXlhX2xpYi5hcmM0Ll9pdG9iMTZAMTkKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5faXRvYjE2QDE5OgogICAgZnJhbWVfZGlnIDkKICAgIGZyYW1lX2RpZyAyMAogICAgaW50Y18yIC8vIDAKICAgIHVuY292ZXIgMgogICAgcmVwbGFjZTMKICAgIGZyYW1lX2RpZyAyMQogICAgY29uY2F0CiAgICBmcmFtZV9idXJ5IDUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NzUKICAgIC8vIGFyciA9IGFyci5jb25jYXQoYXJyKS5jb25jYXQoMTEpLmNvbmNhdCh0MSkKICAgIGIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19hZnRlcl9pbmxpbmVkX19wdXlhX2xpYi5hcmM0LmR5bmFtaWNfYXJyYXlfY29uY2F0X2ZpeGVkQDIwCgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuZHluYW1pY19hcnJheV9jb25jYXRfZml4ZWRAMjA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjc1CiAgICAvLyBhcnIgPSBhcnIuY29uY2F0KGFycikuY29uY2F0KDExKS5jb25jYXQodDEpCiAgICBmcmFtZV9kaWcgNQogICAgZHVwCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NzYKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0LCAxLCAxMCwgMywgNCwgMTEsIDEyLCAxM10pCiAgICBkdXAKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBwdXNoaW50IDExCiAgICA9PQogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgaW50Y18yIC8vIDAKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzMgLy8gMQogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGludGNfMyAvLyAxCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAxMAogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGludGNfMSAvLyAyCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAzCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCAzCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCA0CiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCA0CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18zIC8vIDEKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBwdXNoaW50IDUKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDEwCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCA2CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAzCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCA3CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCA0CiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgaW50Y18wIC8vIDgKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDExCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCA5CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAxMgogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICBwdXNoaW50IDEwCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAxMwogICAgPT0KICAgICYmCiAgICBhc3NlcnQgLy8gYXNzZXJ0IHRhcmdldCBpcyBtYXRjaCBmb3IgY29uZGl0aW9ucwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo3OAogICAgLy8gbGV0IHJBcnIxOiByZWFkb25seSB1aW50NjRbXSA9IFsxLCAyLCAzXQogICAgcHVzaGludCAzCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgaW50Y18zIC8vIDEKICAgIGl0b2IKICAgIGNvbmNhdAogICAgaW50Y18xIC8vIDIKICAgIGl0b2IKICAgIGNvbmNhdAogICAgcHVzaGludCAzCiAgICBpdG9iCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NzkKICAgIC8vIHJBcnIxID0gckFycjEuY29uY2F0KFVpbnQ2NCg0KSkKICAgIHB1c2hpbnQgNAogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIHVuY292ZXIgMQogICAgZnJhbWVfYnVyeSAyMAogICAgZnJhbWVfYnVyeSAyMQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2Jsb2NrQDIxCgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2Jsb2NrQDIxOgogICAgZnJhbWVfZGlnIDIwCiAgICBpbnRjXzIgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NzkKICAgIC8vIHJBcnIxID0gckFycjEuY29uY2F0KFVpbnQ2NCg0KSkKICAgIGludGNfMyAvLyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDE4CiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYmxvY2tAMjIKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYmxvY2tAMjI6CiAgICBmcmFtZV9kaWcgMTgKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAwCiAgICBmcmFtZV9idXJ5IDkKICAgIGIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19hZnRlcl9pbmxpbmVkX19wdXlhX2xpYi5hcmM0Ll9pdG9iMTZAMjMKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5faXRvYjE2QDIzOgogICAgZnJhbWVfZGlnIDkKICAgIGZyYW1lX2RpZyAyMAogICAgaW50Y18yIC8vIDAKICAgIHVuY292ZXIgMgogICAgcmVwbGFjZTMKICAgIGZyYW1lX2RpZyAyMQogICAgY29uY2F0CiAgICBmcmFtZV9idXJ5IDYKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NzkKICAgIC8vIHJBcnIxID0gckFycjEuY29uY2F0KFVpbnQ2NCg0KSkKICAgIGIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19hZnRlcl9pbmxpbmVkX19wdXlhX2xpYi5hcmM0LmR5bmFtaWNfYXJyYXlfY29uY2F0X2ZpeGVkQDI0Cgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuZHluYW1pY19hcnJheV9jb25jYXRfZml4ZWRAMjQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjc5CiAgICAvLyByQXJyMSA9IHJBcnIxLmNvbmNhdChVaW50NjQoNCkpCiAgICBmcmFtZV9kaWcgNgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo4MAogICAgLy8gckFycjEgPSBbLi4uckFycjEsIFVpbnQ2NCg1KV0KICAgIGludGNfMyAvLyAxCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgcHVzaGludCA1CiAgICBpdG9iCiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGNvdmVyIDEKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICB1bmNvdmVyIDIKICAgIGZyYW1lX2J1cnkgMjAKICAgIHVuY292ZXIgMQogICAgZnJhbWVfYnVyeSAyMQogICAgZnJhbWVfYnVyeSAxOQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2Jsb2NrQDI1Cgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2Jsb2NrQDI1OgogICAgZnJhbWVfZGlnIDIwCiAgICBpbnRjXzIgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGZyYW1lX2RpZyAxOQogICAgKwogICAgZnJhbWVfYnVyeSAxOAogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2Jsb2NrQDI2Cgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2Jsb2NrQDI2OgogICAgZnJhbWVfZGlnIDE4CiAgICBpdG9iCiAgICBleHRyYWN0IDYgMAogICAgZnJhbWVfYnVyeSA5CiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5faXRvYjE2QDI3Cgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuX2l0b2IxNkAyNzoKICAgIGZyYW1lX2RpZyA5CiAgICBmcmFtZV9kaWcgMjAKICAgIGludGNfMiAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHJlcGxhY2UzCiAgICBmcmFtZV9kaWcgMjEKICAgIGNvbmNhdAogICAgZnJhbWVfYnVyeSA3CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjgwCiAgICAvLyByQXJyMSA9IFsuLi5yQXJyMSwgVWludDY0KDUpXQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuZHluYW1pY19hcnJheV9jb25jYXRfZml4ZWRAMjgKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5keW5hbWljX2FycmF5X2NvbmNhdF9maXhlZEAyODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6ODAKICAgIC8vIHJBcnIxID0gWy4uLnJBcnIxLCBVaW50NjQoNSldCiAgICBmcmFtZV9kaWcgNwogICAgZHVwCiAgICBmcmFtZV9idXJ5IDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6ODEKICAgIC8vIGFzc2VydE1hdGNoKHJBcnIxLCBbMSwgMiwgMywgNCwgNV0pCiAgICBkdXAKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBwdXNoaW50IDUKICAgID09CiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBpbnRjXzIgLy8gMAogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMyAvLyAxCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgaW50Y18zIC8vIDEKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzEgLy8gMgogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGludGNfMSAvLyAyCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAzCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCAzCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCA0CiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgIHB1c2hpbnQgNAogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgNQogICAgPT0KICAgICYmCiAgICBhc3NlcnQgLy8gYXNzZXJ0IHRhcmdldCBpcyBtYXRjaCBmb3IgY29uZGl0aW9ucwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo4MwogICAgLy8gY29uc3QgZkFycjEgPSBuZXcgRml4ZWRBcnJheTx1aW50NjQsIDQ+KCkKICAgIHB1c2hpbnQgMzIKICAgIGJ6ZXJvCiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo4NAogICAgLy8gY29uc3QgZkFycjIgPSBmQXJyMS5jb25jYXQoZkFycjEpCiAgICBwdXNoaW50IDQKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBkaWcgMQogICAgY29uY2F0CiAgICBmcmFtZV9idXJ5IDIwCiAgICBmcmFtZV9idXJ5IDIxCiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYmxvY2tAMjkKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYmxvY2tAMjk6CiAgICBmcmFtZV9kaWcgMjAKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo4NAogICAgLy8gY29uc3QgZkFycjIgPSBmQXJyMS5jb25jYXQoZkFycjEpCiAgICBwdXNoaW50IDQKICAgICsKICAgIGZyYW1lX2J1cnkgMTgKICAgIGIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19ibG9ja0AzMAoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19ibG9ja0AzMDoKICAgIGZyYW1lX2RpZyAxOAogICAgaXRvYgogICAgZXh0cmFjdCA2IDAKICAgIGZyYW1lX2J1cnkgOQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuX2l0b2IxNkAzMQoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19hZnRlcl9pbmxpbmVkX19wdXlhX2xpYi5hcmM0Ll9pdG9iMTZAMzE6CiAgICBmcmFtZV9kaWcgOQogICAgZnJhbWVfZGlnIDIwCiAgICBpbnRjXzIgLy8gMAogICAgdW5jb3ZlciAyCiAgICByZXBsYWNlMwogICAgZnJhbWVfZGlnIDIxCiAgICBjb25jYXQKICAgIGZyYW1lX2J1cnkgOAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo4NAogICAgLy8gY29uc3QgZkFycjIgPSBmQXJyMS5jb25jYXQoZkFycjEpCiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5keW5hbWljX2FycmF5X2NvbmNhdF9maXhlZEAzMgoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19hZnRlcl9pbmxpbmVkX19wdXlhX2xpYi5hcmM0LmR5bmFtaWNfYXJyYXlfY29uY2F0X2ZpeGVkQDMyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo4NAogICAgLy8gY29uc3QgZkFycjIgPSBmQXJyMS5jb25jYXQoZkFycjEpCiAgICBmcmFtZV9kaWcgOAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo4NQogICAgLy8gYXNzZXJ0TWF0Y2goZkFycjEsIFswLCAwLCAwLCAwXSkKICAgIHB1c2hpbnQgNAogICAgcHVzaGludCA0CiAgICA9PQogICAgaW50Y18yIC8vIDAKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBmcmFtZV9kaWcgMQogICAgZHVwCiAgICBjb3ZlciAzCiAgICB1bmNvdmVyIDEKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMiAvLyAwCiAgICA9PQogICAgJiYKICAgIGludGNfMyAvLyAxCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgZGlnIDIKICAgIHVuY292ZXIgMQogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18yIC8vIDAKICAgID09CiAgICAmJgogICAgaW50Y18xIC8vIDIKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBkaWcgMgogICAgdW5jb3ZlciAxCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzIgLy8gMAogICAgPT0KICAgICYmCiAgICBwdXNoaW50IDMKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMQogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18yIC8vIDAKICAgID09CiAgICAmJgogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6ODYKICAgIC8vIGFzc2VydE1hdGNoKGZBcnIyLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0pCiAgICBkdXAKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzAgLy8gOAogICAgPT0KICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGludGNfMiAvLyAwCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18yIC8vIDAKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBpbnRjXzMgLy8gMQogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMiAvLyAwCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgaW50Y18xIC8vIDIKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzIgLy8gMAogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIHB1c2hpbnQgMwogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMiAvLyAwCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCA0CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18yIC8vIDAKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBwdXNoaW50IDUKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzIgLy8gMAogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIHB1c2hpbnQgNgogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMiAvLyAwCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCA3CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18yIC8vIDAKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBhc3NlcnQgLy8gYXNzZXJ0IHRhcmdldCBpcyBtYXRjaCBmb3IgY29uZGl0aW9ucwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo4OAogICAgLy8gY29uc3QgYXJyMyA9IHJBcnIxLmNvbmNhdChmQXJyMikKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGNvdmVyIDEKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBmcmFtZV9kaWcgMgogICAgZnJhbWVfYnVyeSAyMAogICAgdW5jb3ZlciAxCiAgICBmcmFtZV9idXJ5IDIxCiAgICBmcmFtZV9idXJ5IDE5CiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYmxvY2tAMzMKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYmxvY2tAMzM6CiAgICBmcmFtZV9kaWcgMjAKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZnJhbWVfZGlnIDE5CiAgICArCiAgICBmcmFtZV9idXJ5IDE4CiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYmxvY2tAMzQKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYmxvY2tAMzQ6CiAgICBmcmFtZV9kaWcgMTgKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAwCiAgICBmcmFtZV9idXJ5IDkKICAgIGIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19hZnRlcl9pbmxpbmVkX19wdXlhX2xpYi5hcmM0Ll9pdG9iMTZAMzUKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5faXRvYjE2QDM1OgogICAgZnJhbWVfZGlnIDkKICAgIGZyYW1lX2RpZyAyMAogICAgaW50Y18yIC8vIDAKICAgIHVuY292ZXIgMgogICAgcmVwbGFjZTMKICAgIGZyYW1lX2RpZyAyMQogICAgY29uY2F0CiAgICBmcmFtZV9idXJ5IDEwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjg4CiAgICAvLyBjb25zdCBhcnIzID0gckFycjEuY29uY2F0KGZBcnIyKQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuZHluYW1pY19hcnJheV9jb25jYXRfZml4ZWRAMzYKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5keW5hbWljX2FycmF5X2NvbmNhdF9maXhlZEAzNjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6ODgKICAgIC8vIGNvbnN0IGFycjMgPSByQXJyMS5jb25jYXQoZkFycjIpCiAgICBmcmFtZV9kaWcgMTAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6ODkKICAgIC8vIGFzc2VydE1hdGNoKGFycjMsIFsxLCAyLCAzLCA0LCA1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSkKICAgIGR1cAogICAgaW50Y18yIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIHB1c2hpbnQgMTMKICAgID09CiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBpbnRjXzIgLy8gMAogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMyAvLyAxCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgaW50Y18zIC8vIDEKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzEgLy8gMgogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGludGNfMSAvLyAyCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAzCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCAzCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCA0CiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCA0CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCA1CiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCA1CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18yIC8vIDAKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBwdXNoaW50IDYKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzIgLy8gMAogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIHB1c2hpbnQgNwogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMiAvLyAwCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgaW50Y18wIC8vIDgKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzIgLy8gMAogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIHB1c2hpbnQgOQogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMiAvLyAwCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCAxMAogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMiAvLyAwCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCAxMQogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMiAvLyAwCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgIHB1c2hpbnQgMTIKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzIgLy8gMAogICAgPT0KICAgICYmCiAgICBhc3NlcnQgLy8gYXNzZXJ0IHRhcmdldCBpcyBtYXRjaCBmb3IgY29uZGl0aW9ucwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo5MQogICAgLy8gY29uc3QgYXJyNCA9IHJBcnIxLmNvbmNhdChhcnIpCiAgICBmcmFtZV9kaWcgMAogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgY292ZXIgMQogICAgaW50Y18yIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGZyYW1lX2RpZyAyCiAgICBmcmFtZV9idXJ5IDIwCiAgICB1bmNvdmVyIDEKICAgIGZyYW1lX2J1cnkgMjEKICAgIGZyYW1lX2J1cnkgMTkKICAgIGIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19ibG9ja0AzNwoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19ibG9ja0AzNzoKICAgIGZyYW1lX2RpZyAyMAogICAgaW50Y18yIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBmcmFtZV9kaWcgMTkKICAgICsKICAgIGZyYW1lX2J1cnkgMTgKICAgIGIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19ibG9ja0AzOAoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19ibG9ja0AzODoKICAgIGZyYW1lX2RpZyAxOAogICAgaXRvYgogICAgZXh0cmFjdCA2IDAKICAgIGZyYW1lX2J1cnkgOQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuX2l0b2IxNkAzOQoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19hZnRlcl9pbmxpbmVkX19wdXlhX2xpYi5hcmM0Ll9pdG9iMTZAMzk6CiAgICBmcmFtZV9kaWcgOQogICAgZnJhbWVfZGlnIDIwCiAgICBpbnRjXzIgLy8gMAogICAgdW5jb3ZlciAyCiAgICByZXBsYWNlMwogICAgZnJhbWVfZGlnIDIxCiAgICBjb25jYXQKICAgIGZyYW1lX2J1cnkgMTEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6OTEKICAgIC8vIGNvbnN0IGFycjQgPSByQXJyMS5jb25jYXQoYXJyKQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuZHluYW1pY19hcnJheV9jb25jYXRfZml4ZWRANDAKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5keW5hbWljX2FycmF5X2NvbmNhdF9maXhlZEA0MDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6OTEKICAgIC8vIGNvbnN0IGFycjQgPSByQXJyMS5jb25jYXQoYXJyKQogICAgZnJhbWVfZGlnIDExCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjkyCiAgICAvLyBhc3NlcnRNYXRjaChhcnI0LCBbMSwgMiwgMywgNCwgNSwgMSwgMTAsIDMsIDQsIDEsIDEwLCAzLCA0LCAxMSwgMTIsIDEzXSkKICAgIGR1cAogICAgaW50Y18yIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIHB1c2hpbnQgMTYKICAgID09CiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBpbnRjXzIgLy8gMAogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMyAvLyAxCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgaW50Y18zIC8vIDEKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzEgLy8gMgogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGludGNfMSAvLyAyCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAzCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCAzCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCA0CiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCA0CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCA1CiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCA1CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18zIC8vIDEKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBwdXNoaW50IDYKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDEwCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCA3CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAzCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgaW50Y18wIC8vIDgKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDQKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBwdXNoaW50IDkKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzMgLy8gMQogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIHB1c2hpbnQgMTAKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDEwCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCAxMQogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMwogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIHB1c2hpbnQgMTIKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDQKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBwdXNoaW50IDEzCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAxMQogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIHB1c2hpbnQgMTQKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDEyCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgIHB1c2hpbnQgMTUKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDEzCiAgICA9PQogICAgJiYKICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjk0CiAgICAvLyBjb25zdCBhcnI1ID0gZkFycjEuY29uY2F0KHJBcnIxKQogICAgcHVzaGludCA0CiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgZnJhbWVfZGlnIDEKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIDIKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGNvdmVyIDEKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICB1bmNvdmVyIDIKICAgIGZyYW1lX2J1cnkgMjAKICAgIHVuY292ZXIgMQogICAgZnJhbWVfYnVyeSAyMQogICAgZnJhbWVfYnVyeSAxOQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2Jsb2NrQDQxCgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2Jsb2NrQDQxOgogICAgZnJhbWVfZGlnIDIwCiAgICBpbnRjXzIgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGZyYW1lX2RpZyAxOQogICAgKwogICAgZnJhbWVfYnVyeSAxOAogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2Jsb2NrQDQyCgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2Jsb2NrQDQyOgogICAgZnJhbWVfZGlnIDE4CiAgICBpdG9iCiAgICBleHRyYWN0IDYgMAogICAgZnJhbWVfYnVyeSA5CiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5faXRvYjE2QDQzCgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuX2l0b2IxNkA0MzoKICAgIGZyYW1lX2RpZyA5CiAgICBmcmFtZV9kaWcgMjAKICAgIGludGNfMiAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHJlcGxhY2UzCiAgICBmcmFtZV9kaWcgMjEKICAgIGNvbmNhdAogICAgZnJhbWVfYnVyeSAxMwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo5NAogICAgLy8gY29uc3QgYXJyNSA9IGZBcnIxLmNvbmNhdChyQXJyMSkKICAgIGIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19hZnRlcl9pbmxpbmVkX19wdXlhX2xpYi5hcmM0LmR5bmFtaWNfYXJyYXlfY29uY2F0X2ZpeGVkQDQ0Cgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuZHluYW1pY19hcnJheV9jb25jYXRfZml4ZWRANDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjk0CiAgICAvLyBjb25zdCBhcnI1ID0gZkFycjEuY29uY2F0KHJBcnIxKQogICAgZnJhbWVfZGlnIDEzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjk1CiAgICAvLyBhc3NlcnRNYXRjaChhcnI1LCBbMCwgMCwgMCwgMCwgMSwgMiwgMywgNCwgNV0pCiAgICBkdXAKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBwdXNoaW50IDkKICAgID09CiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBpbnRjXzIgLy8gMAogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMiAvLyAwCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgaW50Y18zIC8vIDEKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzIgLy8gMAogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGludGNfMSAvLyAyCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18yIC8vIDAKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBwdXNoaW50IDMKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzIgLy8gMAogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIHB1c2hpbnQgNAogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMyAvLyAxCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCA1CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18xIC8vIDIKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBwdXNoaW50IDYKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDMKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBwdXNoaW50IDcKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDQKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMgogICAgc3Vic3RyaW5nMwogICAgaW50Y18wIC8vIDgKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDUKICAgID09CiAgICAmJgogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6OTcKICAgIC8vIGNvbnN0IGFycjYgPSBmQXJyMS5jb25jYXQoYXJyKQogICAgcHVzaGludCA0CiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgZnJhbWVfZGlnIDEKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIDAKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGNvdmVyIDEKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICB1bmNvdmVyIDIKICAgIGZyYW1lX2J1cnkgMjAKICAgIHVuY292ZXIgMQogICAgZnJhbWVfYnVyeSAyMQogICAgZnJhbWVfYnVyeSAxOQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2Jsb2NrQDQ1Cgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2Jsb2NrQDQ1OgogICAgZnJhbWVfZGlnIDIwCiAgICBpbnRjXzIgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGZyYW1lX2RpZyAxOQogICAgKwogICAgZnJhbWVfYnVyeSAxOAogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2Jsb2NrQDQ2Cgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2Jsb2NrQDQ2OgogICAgZnJhbWVfZGlnIDE4CiAgICBpdG9iCiAgICBleHRyYWN0IDYgMAogICAgZnJhbWVfYnVyeSA5CiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5faXRvYjE2QDQ3Cgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuX2l0b2IxNkA0NzoKICAgIGZyYW1lX2RpZyA5CiAgICBmcmFtZV9kaWcgMjAKICAgIGludGNfMiAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHJlcGxhY2UzCiAgICBmcmFtZV9kaWcgMjEKICAgIGNvbmNhdAogICAgZnJhbWVfYnVyeSAxNAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo5NwogICAgLy8gY29uc3QgYXJyNiA9IGZBcnIxLmNvbmNhdChhcnIpCiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5keW5hbWljX2FycmF5X2NvbmNhdF9maXhlZEA0OAoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19hZnRlcl9pbmxpbmVkX19wdXlhX2xpYi5hcmM0LmR5bmFtaWNfYXJyYXlfY29uY2F0X2ZpeGVkQDQ4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo5NwogICAgLy8gY29uc3QgYXJyNiA9IGZBcnIxLmNvbmNhdChhcnIpCiAgICBmcmFtZV9kaWcgMTQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6OTgKICAgIC8vIGFzc2VydE1hdGNoKGFycjYsIFswLCAwLCAwLCAwLCAxLCAxMCwgMywgNCwgMSwgMTAsIDMsIDQsIDExLCAxMiwgMTNdKQogICAgZHVwCiAgICBpbnRjXzIgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgcHVzaGludCAxNQogICAgPT0KICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGludGNfMiAvLyAwCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18yIC8vIDAKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBpbnRjXzMgLy8gMQogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMiAvLyAwCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgaW50Y18xIC8vIDIKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzIgLy8gMAogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIHB1c2hpbnQgMwogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMiAvLyAwCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCA0CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18zIC8vIDEKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBwdXNoaW50IDUKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDEwCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCA2CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAzCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCA3CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCA0CiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgaW50Y18wIC8vIDgKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzMgLy8gMQogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIHB1c2hpbnQgOQogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMTAKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBwdXNoaW50IDEwCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAzCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCAxMQogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgNAogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIHB1c2hpbnQgMTIKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDExCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCAxMwogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMTIKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMgogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCAxNAogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMTMKICAgID09CiAgICAmJgogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTAwCiAgICAvLyBjb25zdCBhcnI3ID0gYXJyLmNvbmNhdChyQXJyMSkKICAgIGZyYW1lX2RpZyAyCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBjb3ZlciAxCiAgICBpbnRjXzIgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgZnJhbWVfZGlnIDAKICAgIGZyYW1lX2J1cnkgMjAKICAgIHVuY292ZXIgMQogICAgZnJhbWVfYnVyeSAyMQogICAgZnJhbWVfYnVyeSAxOQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2Jsb2NrQDQ5Cgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2Jsb2NrQDQ5OgogICAgZnJhbWVfZGlnIDIwCiAgICBpbnRjXzIgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGZyYW1lX2RpZyAxOQogICAgKwogICAgZnJhbWVfYnVyeSAxOAogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2Jsb2NrQDUwCgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2Jsb2NrQDUwOgogICAgZnJhbWVfZGlnIDE4CiAgICBpdG9iCiAgICBleHRyYWN0IDYgMAogICAgZnJhbWVfYnVyeSA5CiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5faXRvYjE2QDUxCgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuX2l0b2IxNkA1MToKICAgIGZyYW1lX2RpZyA5CiAgICBmcmFtZV9kaWcgMjAKICAgIGludGNfMiAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHJlcGxhY2UzCiAgICBmcmFtZV9kaWcgMjEKICAgIGNvbmNhdAogICAgZnJhbWVfYnVyeSAxNQogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxMDAKICAgIC8vIGNvbnN0IGFycjcgPSBhcnIuY29uY2F0KHJBcnIxKQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmRvVGhpbmdzX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuZHluYW1pY19hcnJheV9jb25jYXRfZml4ZWRANTIKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5keW5hbWljX2FycmF5X2NvbmNhdF9maXhlZEA1MjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTAwCiAgICAvLyBjb25zdCBhcnI3ID0gYXJyLmNvbmNhdChyQXJyMSkKICAgIGZyYW1lX2RpZyAxNQogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxMDEKICAgIC8vIGFzc2VydChhcnI3Lmxlbmd0aCA9PT0gMTYpCiAgICBkdXAKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBwdXNoaW50IDE2CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjEwMgogICAgLy8gYXNzZXJ0TWF0Y2goYXJyNywgWzEsIDEwLCAzLCA0LCAxLCAxMCwgMywgNCwgMTEsIDEyLCAxMywgMSwgMiwgMywgNCwgNV0pCiAgICBkdXAKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBwdXNoaW50IDE2CiAgICA9PQogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgaW50Y18yIC8vIDAKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzMgLy8gMQogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGludGNfMyAvLyAxCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAxMAogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGludGNfMSAvLyAyCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAzCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCAzCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCA0CiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCA0CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18zIC8vIDEKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBwdXNoaW50IDUKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDEwCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCA2CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAzCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCA3CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCA0CiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgaW50Y18wIC8vIDgKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDExCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCA5CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAxMgogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIHB1c2hpbnQgMTAKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDEzCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCAxMQogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMyAvLyAxCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCAxMgogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMSAvLyAyCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCAxMwogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMwogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIHB1c2hpbnQgMTQKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDQKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMgogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCAxNQogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgNQogICAgPT0KICAgICYmCiAgICBhc3NlcnQgLy8gYXNzZXJ0IHRhcmdldCBpcyBtYXRjaCBmb3IgY29uZGl0aW9ucwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxMDQKICAgIC8vIGNvbnN0IGFycjggPSBhcnIuY29uY2F0KGZBcnIxKQogICAgZnJhbWVfZGlnIDAKICAgIGZyYW1lX2J1cnkgMjAKICAgIGZyYW1lX2RpZyAxCiAgICBmcmFtZV9idXJ5IDIxCiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYmxvY2tANTMKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYmxvY2tANTM6CiAgICBmcmFtZV9kaWcgMjAKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxMDQKICAgIC8vIGNvbnN0IGFycjggPSBhcnIuY29uY2F0KGZBcnIxKQogICAgcHVzaGludCA0CiAgICArCiAgICBmcmFtZV9idXJ5IDE4CiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYmxvY2tANTQKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYmxvY2tANTQ6CiAgICBmcmFtZV9kaWcgMTgKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAwCiAgICBmcmFtZV9idXJ5IDkKICAgIGIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19hZnRlcl9pbmxpbmVkX19wdXlhX2xpYi5hcmM0Ll9pdG9iMTZANTUKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5faXRvYjE2QDU1OgogICAgZnJhbWVfZGlnIDkKICAgIGZyYW1lX2RpZyAyMAogICAgaW50Y18yIC8vIDAKICAgIHVuY292ZXIgMgogICAgcmVwbGFjZTMKICAgIGZyYW1lX2RpZyAyMQogICAgY29uY2F0CiAgICBmcmFtZV9idXJ5IDE2CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjEwNAogICAgLy8gY29uc3QgYXJyOCA9IGFyci5jb25jYXQoZkFycjEpCiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZG9UaGluZ3NfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5keW5hbWljX2FycmF5X2NvbmNhdF9maXhlZEA1NgoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5nc19hZnRlcl9pbmxpbmVkX19wdXlhX2xpYi5hcmM0LmR5bmFtaWNfYXJyYXlfY29uY2F0X2ZpeGVkQDU2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxMDQKICAgIC8vIGNvbnN0IGFycjggPSBhcnIuY29uY2F0KGZBcnIxKQogICAgZnJhbWVfZGlnIDE2CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjEwNQogICAgLy8gYXNzZXJ0KGFycjgubGVuZ3RoID09PSAxNSkKICAgIGR1cAogICAgaW50Y18yIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIHB1c2hpbnQgMTUKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTA2CiAgICAvLyBhc3NlcnRNYXRjaChhcnI4LCBbMSwgMTAsIDMsIDQsIDEsIDEwLCAzLCA0LCAxMSwgMTIsIDEzLCAwLCAwLCAwLCAwXSkKICAgIGR1cAogICAgaW50Y18yIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIHB1c2hpbnQgMTUKICAgID09CiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBpbnRjXzIgLy8gMAogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMyAvLyAxCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgaW50Y18zIC8vIDEKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDEwCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgaW50Y18xIC8vIDIKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDMKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBwdXNoaW50IDMKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDQKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBwdXNoaW50IDQKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzMgLy8gMQogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIHB1c2hpbnQgNQogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMTAKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBwdXNoaW50IDYKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDMKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBwdXNoaW50IDcKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDQKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBpbnRjXzAgLy8gOAogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMTEKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBwdXNoaW50IDkKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDEyCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMwogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCAxMAogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMTMKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBwdXNoaW50IDExCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18yIC8vIDAKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBwdXNoaW50IDEyCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18yIC8vIDAKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBwdXNoaW50IDEzCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18yIC8vIDAKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMgogICAgc3Vic3RyaW5nMwogICAgcHVzaGludCAxNAogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMiAvLyAwCiAgICA9PQogICAgJiYKICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmZpeGVkQXJyYXkoeTogYnl0ZXMpIC0+IHZvaWQ6CnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uZml4ZWRBcnJheToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTA5CiAgICAvLyBmaXhlZEFycmF5KHk6IEZpeGVkQXJyYXk8dWludDY0LCA1MD4pIHsKICAgIHByb3RvIDEgMAogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmZpeGVkQXJyYXlfYmxvY2tAMAoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5maXhlZEFycmF5X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjExMAogICAgLy8gY29uc3QgeCA9IG5ldyBGaXhlZEFycmF5PHVpbnQ2NCwgND4oMSwgMiwgMywgNCkKICAgIGludGNfMyAvLyAxCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgaW50Y18xIC8vIDIKICAgIGl0b2IKICAgIGNvbmNhdAogICAgcHVzaGludCAzCiAgICBpdG9iCiAgICBjb25jYXQKICAgIHB1c2hpbnQgNAogICAgaXRvYgogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjExMQogICAgLy8geFswXSA9IDAKICAgIGludGNfMiAvLyAwCiAgICBpdG9iCiAgICBpbnRjXzIgLy8gMAogICAgaW50Y18wIC8vIDgKICAgICoKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAxCiAgICB1bmNvdmVyIDIKICAgIHJlcGxhY2UzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxMTQKICAgIC8vIGFzc2VydCh4Mi5sZW5ndGggPT09IDUwKQogICAgcHVzaGludCA1MAogICAgcHVzaGludCA1MAogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxMTcKICAgIC8vIGFzc2VydCh4My5sZW5ndGggPT09IDEyKQogICAgcHVzaGludCAxMgogICAgcHVzaGludCAxMgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxMTkKICAgIC8vIGFzc2VydCh4WzBdID09PSB5WzBdKQogICAgaW50Y18yIC8vIDAKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBkaWcgMQogICAgdW5jb3ZlciAxCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzIgLy8gMAogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGZyYW1lX2RpZyAtMQogICAgdW5jb3ZlciAxCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjEyMAogICAgLy8gYXNzZXJ0TWF0Y2goeCwgW3sgbGVzc1RoYW46IDEgfSwgMiwgMywgNF0pCiAgICBwdXNoaW50IDQKICAgIHB1c2hpbnQgNAogICAgPT0KICAgIGludGNfMiAvLyAwCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgZGlnIDIKICAgIHVuY292ZXIgMQogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18zIC8vIDEKICAgIDwKICAgICYmCiAgICBpbnRjXzMgLy8gMQogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGRpZyAyCiAgICB1bmNvdmVyIDEKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMSAvLyAyCiAgICA9PQogICAgJiYKICAgIGludGNfMSAvLyAyCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgZGlnIDIKICAgIHVuY292ZXIgMQogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAzCiAgICA9PQogICAgJiYKICAgIHB1c2hpbnQgMwogICAgaW50Y18wIC8vIDgKICAgICoKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAxCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDQKICAgID09CiAgICAmJgogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTIxCiAgICAvLyBhc3NlcnRNYXRjaCh5LCB7IDQ5OiB7IGdyZWF0ZXJUaGFuRXE6IDAgfSB9KQogICAgcHVzaGludCA0OQogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGZyYW1lX2RpZyAtMQogICAgdW5jb3ZlciAxCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzIgLy8gMAogICAgPj0KICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjEyMwogICAgLy8gY29uc3QgbXlWZWN0b3JzOiBGaXhlZEFycmF5PFZlY3RvciwgMj4gPSBuZXcgRml4ZWRBcnJheTxWZWN0b3IsIDI+KHsgeDogMSwgeTogMiB9LCB7IHg6IDMsIHk6IDQgfSkKICAgIGludGNfMyAvLyAxCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgaW50Y18xIC8vIDIKICAgIGl0b2IKICAgIGNvbmNhdAogICAgcHVzaGludCAzCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgcHVzaGludCA0CiAgICBpdG9iCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxMjQtMTI3CiAgICAvLyBhc3NlcnRNYXRjaChteVZlY3RvcnMsIFsKICAgIC8vICAgeyB4OiAxLCB5OiAyIH0sCiAgICAvLyAgIHsgeDogMywgeTogNCB9LAogICAgLy8gXSkKICAgIGludGNfMSAvLyAyCiAgICBpbnRjXzEgLy8gMgogICAgPT0KICAgIGNvdmVyIDEKICAgIGludGNfMiAvLyAwCiAgICBwdXNoaW50IDE2CiAgICAqCiAgICBkaWcgMQogICAgdW5jb3ZlciAxCiAgICBwdXNoaW50IDE2CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGludGNfMiAvLyAwCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTI1CiAgICAvLyB7IHg6IDEsIHk6IDIgfSwKICAgIGludGNfMyAvLyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjEyNC0xMjcKICAgIC8vIGFzc2VydE1hdGNoKG15VmVjdG9ycywgWwogICAgLy8gICB7IHg6IDEsIHk6IDIgfSwKICAgIC8vICAgeyB4OiAzLCB5OiA0IH0sCiAgICAvLyBdKQogICAgPT0KICAgIGNvdmVyIDEKICAgIGludGNfMiAvLyAwCiAgICBwdXNoaW50IDE2CiAgICAqCiAgICBkaWcgMQogICAgdW5jb3ZlciAxCiAgICBwdXNoaW50IDE2CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGludGNfMCAvLyA4CiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTI1CiAgICAvLyB7IHg6IDEsIHk6IDIgfSwKICAgIGludGNfMSAvLyAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjEyNC0xMjcKICAgIC8vIGFzc2VydE1hdGNoKG15VmVjdG9ycywgWwogICAgLy8gICB7IHg6IDEsIHk6IDIgfSwKICAgIC8vICAgeyB4OiAzLCB5OiA0IH0sCiAgICAvLyBdKQogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGludGNfMyAvLyAxCiAgICBwdXNoaW50IDE2CiAgICAqCiAgICBkaWcgMQogICAgdW5jb3ZlciAxCiAgICBwdXNoaW50IDE2CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGludGNfMiAvLyAwCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTI2CiAgICAvLyB7IHg6IDMsIHk6IDQgfSwKICAgIHB1c2hpbnQgMwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxMjQtMTI3CiAgICAvLyBhc3NlcnRNYXRjaChteVZlY3RvcnMsIFsKICAgIC8vICAgeyB4OiAxLCB5OiAyIH0sCiAgICAvLyAgIHsgeDogMywgeTogNCB9LAogICAgLy8gXSkKICAgID09CiAgICBjb3ZlciAxCiAgICBpbnRjXzMgLy8gMQogICAgcHVzaGludCAxNgogICAgKgogICAgcHVzaGludCAxNgogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBpbnRjXzAgLy8gOAogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjEyNgogICAgLy8geyB4OiAzLCB5OiA0IH0sCiAgICBwdXNoaW50IDQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTI0LTEyNwogICAgLy8gYXNzZXJ0TWF0Y2gobXlWZWN0b3JzLCBbCiAgICAvLyAgIHsgeDogMSwgeTogMiB9LAogICAgLy8gICB7IHg6IDMsIHk6IDQgfSwKICAgIC8vIF0pCiAgICA9PQogICAgJiYKICAgICYmCiAgICBhc3NlcnQgLy8gYXNzZXJ0IHRhcmdldCBpcyBtYXRjaCBmb3IgY29uZGl0aW9ucwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxMjkKICAgIC8vIGNvbnN0IG15T2JqZWN0OiB7IGE6IEZpeGVkQXJyYXk8VmVjdG9yLCAxPiB9ID0geyBhOiBuZXcgRml4ZWRBcnJheTxWZWN0b3IsIDE+KHsgeDogNSwgeTogNiB9KSB9CiAgICBwdXNoaW50IDUKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICBwdXNoaW50IDYKICAgIGl0b2IKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweAogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjEzMAogICAgLy8gYXNzZXJ0TWF0Y2gobXlPYmplY3QuYSwgW3sgeDogNSwgeTogNiB9XSkKICAgIGludGNfMyAvLyAxCiAgICBpbnRjXzMgLy8gMQogICAgPT0KICAgIGNvdmVyIDEKICAgIGR1cAogICAgaW50Y18yIC8vIDAKICAgIHB1c2hpbnQgMTYKICAgIGV4dHJhY3QzCiAgICBpbnRjXzIgLy8gMAogICAgcHVzaGludCAxNgogICAgKgogICAgcHVzaGludCAxNgogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBpbnRjXzIgLy8gMAogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzCiAgICBidG9pCiAgICBwdXNoaW50IDUKICAgID09CiAgICBjb3ZlciAxCiAgICBpbnRjXzIgLy8gMAogICAgcHVzaGludCAxNgogICAgZXh0cmFjdDMKICAgIGludGNfMiAvLyAwCiAgICBwdXNoaW50IDE2CiAgICAqCiAgICBwdXNoaW50IDE2CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGludGNfMCAvLyA4CiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMKICAgIGJ0b2kKICAgIHB1c2hpbnQgNgogICAgPT0KICAgICYmCiAgICAmJgogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTMyCiAgICAvLyBjb25zdCB6MSA9IG5ldyBGaXhlZEFycmF5PHVpbnQ2NCwgND4oKQogICAgcHVzaGludCAzMgogICAgYnplcm8KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTMzCiAgICAvLyBhc3NlcnQoejEubGVuZ3RoID09PSA0KQogICAgcHVzaGludCA0CiAgICBwdXNoaW50IDQKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTM0CiAgICAvLyBhc3NlcnRNYXRjaCh6MSwgWzAsIDAsIDAsIDBdKQogICAgcHVzaGludCA0CiAgICBwdXNoaW50IDQKICAgID09CiAgICBjb3ZlciAxCiAgICBpbnRjXzIgLy8gMAogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGRpZyAxCiAgICB1bmNvdmVyIDEKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMiAvLyAwCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgaW50Y18zIC8vIDEKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBkaWcgMgogICAgdW5jb3ZlciAxCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzIgLy8gMAogICAgPT0KICAgICYmCiAgICBpbnRjXzEgLy8gMgogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGRpZyAyCiAgICB1bmNvdmVyIDEKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMiAvLyAwCiAgICA9PQogICAgJiYKICAgIHB1c2hpbnQgMwogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGRpZyAyCiAgICB1bmNvdmVyIDEKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMiAvLyAwCiAgICA9PQogICAgJiYKICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjEzNQogICAgLy8gejFbMF0gPSAxCiAgICBpbnRjXzMgLy8gMQogICAgaXRvYgogICAgaW50Y18yIC8vIDAKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMQogICAgdW5jb3ZlciAyCiAgICByZXBsYWNlMyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTM2CiAgICAvLyB6MVsxXSA9IDIKICAgIGludGNfMSAvLyAyCiAgICBpdG9iCiAgICBpbnRjXzMgLy8gMQogICAgaW50Y18wIC8vIDgKICAgICoKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAxCiAgICB1bmNvdmVyIDIKICAgIHJlcGxhY2UzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxMzcKICAgIC8vIHoxWzJdID0gMwogICAgcHVzaGludCAzCiAgICBpdG9iCiAgICBpbnRjXzEgLy8gMgogICAgaW50Y18wIC8vIDgKICAgICoKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAxCiAgICB1bmNvdmVyIDIKICAgIHJlcGxhY2UzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxMzgKICAgIC8vIHoxWzNdID0gNAogICAgcHVzaGludCA0CiAgICBpdG9iCiAgICBwdXNoaW50IDMKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMQogICAgdW5jb3ZlciAyCiAgICByZXBsYWNlMyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTM5CiAgICAvLyBhc3NlcnRNYXRjaCh6MSwgW3sgbGVzc1RoYW5FcTogMSB9LCAyLCAzLCA0XSkKICAgIHB1c2hpbnQgNAogICAgcHVzaGludCA0CiAgICA9PQogICAgY292ZXIgMQogICAgaW50Y18yIC8vIDAKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBkaWcgMQogICAgdW5jb3ZlciAxCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzMgLy8gMQogICAgPD0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGludGNfMyAvLyAxCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgZGlnIDIKICAgIHVuY292ZXIgMQogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18xIC8vIDIKICAgID09CiAgICAmJgogICAgaW50Y18xIC8vIDIKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBkaWcgMgogICAgdW5jb3ZlciAxCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDMKICAgID09CiAgICAmJgogICAgcHVzaGludCAzCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDEKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgNAogICAgPT0KICAgICYmCiAgICBhc3NlcnQgLy8gYXNzZXJ0IHRhcmdldCBpcyBtYXRjaCBmb3IgY29uZGl0aW9ucwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxNDEKICAgIC8vIGNvbnN0IHoyID0gbmV3IEZpeGVkQXJyYXk8Ym9vbGVhbiwgMz4oKQogICAgaW50Y18zIC8vIDEKICAgIGJ6ZXJvCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE0MgogICAgLy8gYXNzZXJ0KHoyWzBdID09PSBmYWxzZSkKICAgIGludGNfMiAvLyAwCiAgICBwdXNoaW50IDMKICAgIDwKICAgIGFzc2VydCAvLyBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgaW50Y18yIC8vIDAKICAgIGdldGJpdAogICAgaW50Y18yIC8vIDAKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTQ1CiAgICAvLyBhc3NlcnQoejMubGVuZ3RoID09PSA0KQogICAgcHVzaGludCA0CiAgICBwdXNoaW50IDQKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTQ4CiAgICAvLyBhc3NlcnQoejQubGVuZ3RoID09PSA0KQogICAgcHVzaGludCA0CiAgICBwdXNoaW50IDQKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTUxCiAgICAvLyBhc3NlcnQoejUubGVuZ3RoID09PSA0KQogICAgcHVzaGludCA0CiAgICBwdXNoaW50IDQKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTU0CiAgICAvLyBhc3NlcnQoejYubGVuZ3RoID09PSA0KQogICAgcHVzaGludCA0CiAgICBwdXNoaW50IDQKICAgID09CiAgICBhc3NlcnQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYXJjNEludGVyb3AoKSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmFyYzRJbnRlcm9wOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxNTcKICAgIC8vIGFyYzRJbnRlcm9wKCkgewogICAgcHJvdG8gMCAwCiAgICBpbnRjXzIgLy8gMAogICAgaW50Y18yIC8vIDAKICAgIGludGNfMiAvLyAwCiAgICBieXRlY18wIC8vICIiCiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYXJjNEludGVyb3BfYmxvY2tAMAoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5hcmM0SW50ZXJvcF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxNjAKICAgIC8vIGNvbnN0IGRhMSA9IG5ldyBEeW5hbWljQXJyYXkodTEsIHUxKQogICAgcHVzaGludCAxMjMKICAgIGl0b2IKICAgIGR1cAogICAgYml0bGVuCiAgICBwdXNoaW50IDMyCiAgICA8PQogICAgYXNzZXJ0IC8vIG92ZXJmbG93CiAgICBwdXNoaW50IDQKICAgIHB1c2hpbnQgNAogICAgZXh0cmFjdDMKICAgIHB1c2hpbnQgMTIzCiAgICBpdG9iCiAgICBkdXAKICAgIGJpdGxlbgogICAgcHVzaGludCAzMgogICAgPD0KICAgIGFzc2VydCAvLyBvdmVyZmxvdwogICAgcHVzaGludCA0CiAgICBwdXNoaW50IDQKICAgIGV4dHJhY3QzCiAgICBpbnRjXzEgLy8gMgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxNjEKICAgIC8vIGNvbnN0IHNhMSA9IG5ldyBTdGF0aWNBcnJheSh1MSwgdTEpCiAgICBwdXNoaW50IDEyMwogICAgaXRvYgogICAgZHVwCiAgICBiaXRsZW4KICAgIHB1c2hpbnQgMzIKICAgIDw9CiAgICBhc3NlcnQgLy8gb3ZlcmZsb3cKICAgIHB1c2hpbnQgNAogICAgcHVzaGludCA0CiAgICBleHRyYWN0MwogICAgcHVzaGludCAxMjMKICAgIGl0b2IKICAgIGR1cAogICAgYml0bGVuCiAgICBwdXNoaW50IDMyCiAgICA8PQogICAgYXNzZXJ0IC8vIG92ZXJmbG93CiAgICBwdXNoaW50IDQKICAgIHB1c2hpbnQgNAogICAgZXh0cmFjdDMKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgY292ZXIgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxNjMKICAgIC8vIGxldCBhMSA9IFt1MSwgdTFdCiAgICBwdXNoaW50IDEyMwogICAgaXRvYgogICAgZHVwCiAgICBiaXRsZW4KICAgIHB1c2hpbnQgMzIKICAgIDw9CiAgICBhc3NlcnQgLy8gb3ZlcmZsb3cKICAgIHB1c2hpbnQgNAogICAgcHVzaGludCA0CiAgICBleHRyYWN0MwogICAgcHVzaGludCAxMjMKICAgIGl0b2IKICAgIGR1cAogICAgYml0bGVuCiAgICBwdXNoaW50IDMyCiAgICA8PQogICAgYXNzZXJ0IC8vIG92ZXJmbG93CiAgICBwdXNoaW50IDQKICAgIHB1c2hpbnQgNAogICAgZXh0cmFjdDMKICAgIGludGNfMSAvLyAyCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE2NQogICAgLy8gYTEgPSBbLi4uYTEsIC4uLmRhMSwgLi4uc2ExXQogICAgZGlnIDEKICAgIGxlbgogICAgY292ZXIgMQogICAgZGlnIDIKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGNvdmVyIDEKICAgIHVuY292ZXIgMgogICAgaW50Y18yIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIHVuY292ZXIgMQogICAgY292ZXIgMgogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmFyYzRJbnRlcm9wX2Jsb2NrQDEKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYXJjNEludGVyb3BfYmxvY2tAMToKICAgIGZyYW1lX2RpZyA1CiAgICBpbnRjXzIgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGZyYW1lX2RpZyA3CiAgICArCiAgICBmcmFtZV9idXJ5IDMKICAgIGIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5hcmM0SW50ZXJvcF9ibG9ja0AyCgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmFyYzRJbnRlcm9wX2Jsb2NrQDI6CiAgICBmcmFtZV9kaWcgMwogICAgaXRvYgogICAgZXh0cmFjdCA2IDAKICAgIGZyYW1lX2J1cnkgMAogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmFyYzRJbnRlcm9wX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuX2l0b2IxNkAzCgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmFyYzRJbnRlcm9wX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuX2l0b2IxNkAzOgogICAgZnJhbWVfZGlnIDAKICAgIGZyYW1lX2RpZyA1CiAgICBpbnRjXzIgLy8gMAogICAgdW5jb3ZlciAyCiAgICByZXBsYWNlMwogICAgZnJhbWVfZGlnIDYKICAgIGNvbmNhdAogICAgZnJhbWVfYnVyeSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE2NQogICAgLy8gYTEgPSBbLi4uYTEsIC4uLmRhMSwgLi4uc2ExXQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmFyYzRJbnRlcm9wX2FmdGVyX2lubGluZWRfX3B1eWFfbGliLmFyYzQuZHluYW1pY19hcnJheV9jb25jYXRfZml4ZWRANAoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5hcmM0SW50ZXJvcF9hZnRlcl9pbmxpbmVkX19wdXlhX2xpYi5hcmM0LmR5bmFtaWNfYXJyYXlfY29uY2F0X2ZpeGVkQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE2NQogICAgLy8gYTEgPSBbLi4uYTEsIC4uLmRhMSwgLi4uc2ExXQogICAgZnJhbWVfZGlnIDEKICAgIGZyYW1lX2J1cnkgNQogICAgZnJhbWVfZGlnIDQKICAgIGZyYW1lX2J1cnkgNgogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmFyYzRJbnRlcm9wX2Jsb2NrQDUKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYXJjNEludGVyb3BfYmxvY2tANToKICAgIGZyYW1lX2RpZyA1CiAgICBpbnRjXzIgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTY1CiAgICAvLyBhMSA9IFsuLi5hMSwgLi4uZGExLCAuLi5zYTFdCiAgICBpbnRjXzEgLy8gMgogICAgKwogICAgZnJhbWVfYnVyeSAzCiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYXJjNEludGVyb3BfYmxvY2tANgoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5hcmM0SW50ZXJvcF9ibG9ja0A2OgogICAgZnJhbWVfZGlnIDMKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAwCiAgICBmcmFtZV9idXJ5IDAKICAgIGIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5hcmM0SW50ZXJvcF9hZnRlcl9pbmxpbmVkX19wdXlhX2xpYi5hcmM0Ll9pdG9iMTZANwoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5hcmM0SW50ZXJvcF9hZnRlcl9pbmxpbmVkX19wdXlhX2xpYi5hcmM0Ll9pdG9iMTZANzoKICAgIGZyYW1lX2RpZyAwCiAgICBmcmFtZV9kaWcgNQogICAgaW50Y18yIC8vIDAKICAgIHVuY292ZXIgMgogICAgcmVwbGFjZTMKICAgIGZyYW1lX2RpZyA2CiAgICBjb25jYXQKICAgIGZyYW1lX2J1cnkgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxNjUKICAgIC8vIGExID0gWy4uLmExLCAuLi5kYTEsIC4uLnNhMV0KICAgIGIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5hcmM0SW50ZXJvcF9hZnRlcl9pbmxpbmVkX19wdXlhX2xpYi5hcmM0LmR5bmFtaWNfYXJyYXlfY29uY2F0X2ZpeGVkQDgKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYXJjNEludGVyb3BfYWZ0ZXJfaW5saW5lZF9fcHV5YV9saWIuYXJjNC5keW5hbWljX2FycmF5X2NvbmNhdF9maXhlZEA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxNjUKICAgIC8vIGExID0gWy4uLmExLCAuLi5kYTEsIC4uLnNhMV0KICAgIGZyYW1lX2RpZyAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE2NwogICAgLy8gYXNzZXJ0TWF0Y2goYTEsIFt1MSwgdTEsIHUxLCB1MSwgdTEsIHUxXSkKICAgIGR1cAogICAgaW50Y18yIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIHB1c2hpbnQgNgogICAgPT0KICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGludGNfMiAvLyAwCiAgICBwdXNoaW50IDQKICAgICoKICAgIHB1c2hpbnQgNAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBwdXNoaW50IDEyMwogICAgaXRvYgogICAgZHVwCiAgICBiaXRsZW4KICAgIHB1c2hpbnQgMzIKICAgIDw9CiAgICBhc3NlcnQgLy8gb3ZlcmZsb3cKICAgIHB1c2hpbnQgNAogICAgcHVzaGludCA0CiAgICBleHRyYWN0MwogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGludGNfMyAvLyAxCiAgICBwdXNoaW50IDQKICAgICoKICAgIHB1c2hpbnQgNAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBwdXNoaW50IDEyMwogICAgaXRvYgogICAgZHVwCiAgICBiaXRsZW4KICAgIHB1c2hpbnQgMzIKICAgIDw9CiAgICBhc3NlcnQgLy8gb3ZlcmZsb3cKICAgIHB1c2hpbnQgNAogICAgcHVzaGludCA0CiAgICBleHRyYWN0MwogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGludGNfMSAvLyAyCiAgICBwdXNoaW50IDQKICAgICoKICAgIHB1c2hpbnQgNAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBwdXNoaW50IDEyMwogICAgaXRvYgogICAgZHVwCiAgICBiaXRsZW4KICAgIHB1c2hpbnQgMzIKICAgIDw9CiAgICBhc3NlcnQgLy8gb3ZlcmZsb3cKICAgIHB1c2hpbnQgNAogICAgcHVzaGludCA0CiAgICBleHRyYWN0MwogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIHB1c2hpbnQgMwogICAgcHVzaGludCA0CiAgICAqCiAgICBwdXNoaW50IDQKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgcHVzaGludCAxMjMKICAgIGl0b2IKICAgIGR1cAogICAgYml0bGVuCiAgICBwdXNoaW50IDMyCiAgICA8PQogICAgYXNzZXJ0IC8vIG92ZXJmbG93CiAgICBwdXNoaW50IDQKICAgIHB1c2hpbnQgNAogICAgZXh0cmFjdDMKICAgID09CiAgICB1bmNvdmVyIDIKICAgICYmCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGxlbgogICAgY292ZXIgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzdWJzdHJpbmczCiAgICBwdXNoaW50IDQKICAgIHB1c2hpbnQgNAogICAgKgogICAgcHVzaGludCA0CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIHB1c2hpbnQgMTIzCiAgICBpdG9iCiAgICBkdXAKICAgIGJpdGxlbgogICAgcHVzaGludCAzMgogICAgPD0KICAgIGFzc2VydCAvLyBvdmVyZmxvdwogICAgcHVzaGludCA0CiAgICBwdXNoaW50IDQKICAgIGV4dHJhY3QzCiAgICA9PQogICAgdW5jb3ZlciAyCiAgICAmJgogICAgY292ZXIgMQogICAgZHVwCiAgICBsZW4KICAgIGNvdmVyIDEKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgIHB1c2hpbnQgNQogICAgcHVzaGludCA0CiAgICAqCiAgICBwdXNoaW50IDQKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgcHVzaGludCAxMjMKICAgIGl0b2IKICAgIGR1cAogICAgYml0bGVuCiAgICBwdXNoaW50IDMyCiAgICA8PQogICAgYXNzZXJ0IC8vIG92ZXJmbG93CiAgICBwdXNoaW50IDQKICAgIHB1c2hpbnQgNAogICAgZXh0cmFjdDMKICAgID09CiAgICAmJgogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uc3RydWN0cyhwOiBieXRlcykgLT4gYnl0ZXM6CnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uc3RydWN0czoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTcwCiAgICAvLyBzdHJ1Y3RzKHsgeCwgeSB9OiBWZWN0b3IpIHsKICAgIHByb3RvIDEgMQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLnN0cnVjdHNfYmxvY2tAMAoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5zdHJ1Y3RzX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE3MAogICAgLy8gc3RydWN0cyh7IHgsIHkgfTogVmVjdG9yKSB7CiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMiAvLyAwCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMKICAgIGJ0b2kKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18wIC8vIDgKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MwogICAgYnRvaQogICAgY292ZXIgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxNzMKICAgIC8vIG15VmVjdG9ycyA9IFt7IHgsIHkgfV0KICAgIGR1cAogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIGRpZyAyCiAgICBpdG9iCiAgICBjb25jYXQKICAgIGludGNfMyAvLyAxCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTc1CiAgICAvLyBhc3NlcnRNYXRjaChteVZlY3RvcnMsIFt7IHgsIHkgfV0pCiAgICBkdXAKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzMgLy8gMQogICAgPT0KICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGludGNfMiAvLyAwCiAgICBwdXNoaW50IDE2CiAgICAqCiAgICBwdXNoaW50IDE2CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGludGNfMiAvLyAwCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMKICAgIGJ0b2kKICAgIHVuY292ZXIgMwogICAgPT0KICAgIGNvdmVyIDEKICAgIGR1cAogICAgbGVuCiAgICBjb3ZlciAxCiAgICBkdXAKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGludGNfMiAvLyAwCiAgICBwdXNoaW50IDE2CiAgICAqCiAgICBwdXNoaW50IDE2CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGludGNfMCAvLyA4CiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMKICAgIGJ0b2kKICAgIHVuY292ZXIgNAogICAgPT0KICAgIHVuY292ZXIgMgogICAgJiYKICAgIHVuY292ZXIgMgogICAgJiYKICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE3NgogICAgLy8gcmV0dXJuIG15VmVjdG9ycwogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5ib29sZWFucygpIC0+IGJ5dGVzOgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmJvb2xlYW5zOgogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmJvb2xlYW5zX2Jsb2NrQDAKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYm9vbGVhbnNfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTgwCiAgICAvLyByZXR1cm4gW3RydWUsIGZhbHNlLCB0cnVlXQogICAgcHVzaGludCAzCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgYnl0ZWNfMiAvLyAweDAwCiAgICBpbnRjXzIgLy8gMAogICAgaW50Y18zIC8vIDEKICAgIHNldGJpdAogICAgaW50Y18zIC8vIDEKICAgIGludGNfMiAvLyAwCiAgICBzZXRiaXQKICAgIGludGNfMSAvLyAyCiAgICBpbnRjXzMgLy8gMQogICAgc2V0Yml0CiAgICBjb25jYXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYm9vbGVhbnNTdGF0aWMoKSAtPiB1aW50NjQsIHVpbnQ2NCwgdWludDY0Ogp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmJvb2xlYW5zU3RhdGljOgogICAgYiB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmJvb2xlYW5zU3RhdGljX2Jsb2NrQDAKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYm9vbGVhbnNTdGF0aWNfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTg0CiAgICAvLyByZXR1cm4gW3RydWUsIGZhbHNlLCB0cnVlXSBhcyBjb25zdAogICAgaW50Y18zIC8vIDEKICAgIGludGNfMiAvLyAwCiAgICBpbnRjXzMgLy8gMQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5hcmM0Qm9vbGVhbnMoKSAtPiBieXRlczoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5hcmM0Qm9vbGVhbnM6CiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYXJjNEJvb2xlYW5zX2Jsb2NrQDAKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYXJjNEJvb2xlYW5zX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE4OAogICAgLy8gcmV0dXJuIFtuZXcgQm9vbCh0cnVlKSwgbmV3IEJvb2woZmFsc2UpLCBuZXcgQm9vbCh0cnVlKV0KICAgIGJ5dGVjXzIgLy8gMHgwMAogICAgaW50Y18yIC8vIDAKICAgIGludGNfMyAvLyAxCiAgICBzZXRiaXQKICAgIGJ5dGVjXzIgLy8gMHgwMAogICAgaW50Y18yIC8vIDAKICAgIGludGNfMiAvLyAwCiAgICBzZXRiaXQKICAgIGJ5dGVjXzIgLy8gMHgwMAogICAgaW50Y18yIC8vIDAKICAgIGludGNfMyAvLyAxCiAgICBzZXRiaXQKICAgIGNvdmVyIDEKICAgIHB1c2hpbnQgMwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGNvdmVyIDIKICAgIGludGNfMiAvLyAwCiAgICBnZXRiaXQKICAgIHVuY292ZXIgMwogICAgaW50Y18zIC8vIDEKICAgIHVuY292ZXIgMgogICAgc2V0Yml0CiAgICB1bmNvdmVyIDEKICAgIGludGNfMiAvLyAwCiAgICBnZXRiaXQKICAgIHVuY292ZXIgMQogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMgogICAgc2V0Yml0CiAgICBjb25jYXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYXJjNEJvb2xlYW5zU3RhdGljKCkgLT4gYnl0ZXMsIGJ5dGVzLCBieXRlczoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5hcmM0Qm9vbGVhbnNTdGF0aWM6CiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYXJjNEJvb2xlYW5zU3RhdGljX2Jsb2NrQDAKCnRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYXJjNEJvb2xlYW5zU3RhdGljX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE5MgogICAgLy8gcmV0dXJuIFtuZXcgQm9vbCh0cnVlKSwgbmV3IEJvb2woZmFsc2UpLCBuZXcgQm9vbCh0cnVlKV0gYXMgY29uc3QKICAgIGJ5dGVjXzIgLy8gMHgwMAogICAgaW50Y18yIC8vIDAKICAgIGludGNfMyAvLyAxCiAgICBzZXRiaXQKICAgIGJ5dGVjXzIgLy8gMHgwMAogICAgaW50Y18yIC8vIDAKICAgIGludGNfMiAvLyAwCiAgICBzZXRiaXQKICAgIGJ5dGVjXzIgLy8gMHgwMAogICAgaW50Y18yIC8vIDAKICAgIGludGNfMyAvLyAxCiAgICBzZXRiaXQKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYWxpYXNpbmcobXV0YWJsZTogYnl0ZXMsIHJlYWRPbmx5OiBieXRlcykgLT4gdm9pZDoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5hbGlhc2luZzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTk1CiAgICAvLyBhbGlhc2luZyhtdXRhYmxlOiB1aW50NjRbXSwgcmVhZE9ubHk6IHJlYWRvbmx5IHVpbnQ2NFtdKSB7CiAgICBwcm90byAyIDAKICAgIGIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5hbGlhc2luZ19ibG9ja0AwCgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmFsaWFzaW5nX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjIwNAogICAgLy8gY29uc3QgbmVlZENsb25lMjogcmVhZG9ubHkgdWludDY0W10gPSBjbG9uZShtdXRhYmxlKQogICAgZnJhbWVfZGlnIC0yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjIwNgogICAgLy8gbXV0YWJsZVsxXSArPSAyCiAgICBmcmFtZV9kaWcgLTIKICAgIGxlbgogICAgZnJhbWVfZGlnIC0yCiAgICBpbnRjXzEgLy8gMgogICAgdW5jb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICBpbnRjXzMgLy8gMQogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMSAvLyAyCiAgICArCiAgICBpdG9iCiAgICBpbnRjXzMgLy8gMQogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMSAvLyAyCiAgICArCiAgICBmcmFtZV9kaWcgLTIKICAgIHVuY292ZXIgMQogICAgdW5jb3ZlciAyCiAgICByZXBsYWNlMyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGR1cAogICAgZnJhbWVfYnVyeSAtMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoyMDgKICAgIC8vIGFzc2VydChtdXRhYmxlWzFdICE9PSBuZWVkQ2xvbmUyWzFdLCAnVGhlc2Ugc2hvdWxkIG5vdCBtYXRjaCcpCiAgICBsZW4KICAgIGZyYW1lX2RpZyAtMgogICAgaW50Y18xIC8vIDIKICAgIHVuY292ZXIgMgogICAgc3Vic3RyaW5nMwogICAgaW50Y18zIC8vIDEKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBkaWcgMQogICAgbGVuCiAgICBjb3ZlciAxCiAgICB1bmNvdmVyIDIKICAgIGludGNfMSAvLyAyCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGludGNfMyAvLyAxCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgIT0KICAgIGFzc2VydCAvLyBUaGVzZSBzaG91bGQgbm90IG1hdGNoCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjIxMQogICAgLy8gdGhpcy5yZWNlaXZlTXV0YWJsZShtdXRhYmxlKQogICAgZnJhbWVfZGlnIC0yCiAgICBjYWxsc3ViIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28ucmVjZWl2ZU11dGFibGUKICAgIGR1cAogICAgZnJhbWVfYnVyeSAtMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoyMTMKICAgIC8vIHRoaXMucmVjZWl2ZVJlYWRvbmx5KG11dGFibGUpCiAgICBjYWxsc3ViIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28ucmVjZWl2ZVJlYWRvbmx5CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjIxOAogICAgLy8gdGhpcy5yZWNlaXZlUmVhZG9ubHkocmVhZE9ubHkpCiAgICBmcmFtZV9kaWcgLTEKICAgIGNhbGxzdWIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5yZWNlaXZlUmVhZG9ubHkKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28ucmVjZWl2ZU11dGFibGUoYTogYnl0ZXMpIC0+IGJ5dGVzOgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLnJlY2VpdmVNdXRhYmxlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoyMjEKICAgIC8vIHJlY2VpdmVNdXRhYmxlKGE6IHVpbnQ2NFtdKSB7CiAgICBwcm90byAxIDEKICAgIGIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5yZWNlaXZlTXV0YWJsZV9ibG9ja0AwCgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLnJlY2VpdmVNdXRhYmxlX2Jsb2NrQDA6CiAgICBmcmFtZV9kaWcgLTEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MjIyCiAgICAvLyBhWzBdID0gMQogICAgaW50Y18zIC8vIDEKICAgIGl0b2IKICAgIGludGNfMiAvLyAwCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18xIC8vIDIKICAgICsKICAgIGZyYW1lX2RpZyAtMQogICAgdW5jb3ZlciAxCiAgICB1bmNvdmVyIDIKICAgIHJlcGxhY2UzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgZnJhbWVfYnVyeSAtMQogICAgaW50Y18zIC8vIDEKICAgIGJ6IHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28ucmVjZWl2ZU11dGFibGVfYWZ0ZXJfaWZfZWxzZUAyCiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28ucmVjZWl2ZU11dGFibGVfaWZfYm9keUAxCgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLnJlY2VpdmVNdXRhYmxlX2lmX2JvZHlAMToKICAgIGZyYW1lX2RpZyAtMQogICAgZnJhbWVfYnVyeSAwCiAgICBiIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28ucmVjZWl2ZU11dGFibGVfYWZ0ZXJfaWZfZWxzZUAyCgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLnJlY2VpdmVNdXRhYmxlX2FmdGVyX2lmX2Vsc2VAMjoKICAgIGZyYW1lX2RpZyAwCiAgICB1bmNvdmVyIDEKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28ucmVjZWl2ZVJlYWRvbmx5KGE6IGJ5dGVzKSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLnJlY2VpdmVSZWFkb25seToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MjI1CiAgICAvLyByZWNlaXZlUmVhZG9ubHkoYTogcmVhZG9ubHkgdWludDY0W10pIHt9CiAgICBwcm90byAxIDAKICAgIGIgdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5yZWNlaXZlUmVhZG9ubHlfYmxvY2tAMAoKdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5yZWNlaXZlUmVhZG9ubHlfYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgYiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMAoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIK", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBiIG1haW5fYmxvY2tAMAoKbWFpbl9ibG9ja0AwOgogICAgcHVzaGludCAxCiAgICByZXR1cm4K" }, "byteCode": { "approval": "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", "clear": "C0IAAIEBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 5, "minor": 10, "patch": 0 } }, "events": [], "templateVariables": {} }