diff --git a/src/constants.ts b/src/constants.ts index a592ca825..239888639 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -33,7 +33,7 @@ export const Constants = { encodedAddressLength: 58, zeroAddressEncoded: 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY5HFKQ', supportedAvmVersions: [10n, 11n], - targetedPuyaVersion: '4.4.0', + targetedPuyaVersion: '4.4.2', } as const export type SupportedAvmVersion = (typeof Constants.supportedAvmVersions)[number] diff --git a/tests/approvals/out/o1/abi-decorators/AbiDecorators.arc56.json b/tests/approvals/out/o1/abi-decorators/AbiDecorators.arc56.json index 895d5592d..5f9684798 100644 --- a/tests/approvals/out/o1/abi-decorators/AbiDecorators.arc56.json +++ b/tests/approvals/out/o1/abi-decorators/AbiDecorators.arc56.json @@ -199,7 +199,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/abi-decorators/BaseAbi.arc56.json b/tests/approvals/out/o1/abi-decorators/BaseAbi.arc56.json index 7ac5f4388..13ed354b9 100644 --- a/tests/approvals/out/o1/abi-decorators/BaseAbi.arc56.json +++ b/tests/approvals/out/o1/abi-decorators/BaseAbi.arc56.json @@ -94,7 +94,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/abi-decorators/OverloadedMethods.arc56.json b/tests/approvals/out/o1/abi-decorators/OverloadedMethods.arc56.json index ada0f2667..83198c671 100644 --- a/tests/approvals/out/o1/abi-decorators/OverloadedMethods.arc56.json +++ b/tests/approvals/out/o1/abi-decorators/OverloadedMethods.arc56.json @@ -126,7 +126,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/abi-decorators/SubAbi.arc56.json b/tests/approvals/out/o1/abi-decorators/SubAbi.arc56.json index f05549db0..4997e6dce 100644 --- a/tests/approvals/out/o1/abi-decorators/SubAbi.arc56.json +++ b/tests/approvals/out/o1/abi-decorators/SubAbi.arc56.json @@ -94,7 +94,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/abi-decorators/SubAbi2.arc56.json b/tests/approvals/out/o1/abi-decorators/SubAbi2.arc56.json index 4ed909348..619c00460 100644 --- a/tests/approvals/out/o1/abi-decorators/SubAbi2.arc56.json +++ b/tests/approvals/out/o1/abi-decorators/SubAbi2.arc56.json @@ -94,7 +94,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/accounts/AccountsContract.approval.teal b/tests/approvals/out/o1/accounts/AccountsContract.approval.teal index 63f7a086c..a2a71404f 100644 --- a/tests/approvals/out/o1/accounts/AccountsContract.approval.teal +++ b/tests/approvals/out/o1/accounts/AccountsContract.approval.teal @@ -147,6 +147,8 @@ getAccountInfo: // tests/approvals/accounts.algo.ts:5 // public getAccountInfo(account: Account, asset: Asset) { proto 2 15 + +getAccountInfo_while_top@2: pushint 1410 // 1410 global OpcodeBudget > @@ -163,7 +165,7 @@ getAccountInfo: intc_0 // 0 itxn_field Fee itxn_submit - b getAccountInfo + b getAccountInfo_while_top@2 getAccountInfo_after_while@7: // tests/approvals/accounts.algo.ts:9 diff --git a/tests/approvals/out/o1/accounts/AccountsContract.arc32.json b/tests/approvals/out/o1/accounts/AccountsContract.arc32.json index 4cc6081f7..239b82b1e 100644 --- a/tests/approvals/out/o1/accounts/AccountsContract.arc32.json +++ b/tests/approvals/out/o1/accounts/AccountsContract.arc32.json @@ -74,7 +74,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MDAgMHgwNjgxMDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBY2NvdW50c0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKICAgIHB1c2hieXRlcyAweGRmZTlhMDM1IC8vIG1ldGhvZCAiZ2V0QWNjb3VudEluZm8oYWNjb3VudCxhc3NldCkoYnl0ZVtdLHVpbnQ2NCx1aW50NjQsYnl0ZVtdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LGJvb2wsYm9vbCkiCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBtYXRjaCBtYWluX2dldEFjY291bnRJbmZvX3JvdXRlQDMKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBY2NvdW50c0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKICAgIHJldHVybgoKbWFpbl9nZXRBY2NvdW50SW5mb19yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6NQogICAgLy8gcHVibGljIGdldEFjY291bnRJbmZvKGFjY291bnQ6IEFjY291bnQsIGFzc2V0OiBBc3NldCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQWNjb3VudHNDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIHR4bmFzIEFjY291bnRzCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICB0eG5hcyBBc3NldHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyBnZXRBY2NvdW50SW5mbyhhY2NvdW50OiBBY2NvdW50LCBhc3NldDogQXNzZXQpIHsKICAgIGNhbGxzdWIgZ2V0QWNjb3VudEluZm8KICAgIGRpZyAxNAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgdW5jb3ZlciAxNQogICAgY29uY2F0CiAgICB1bmNvdmVyIDE0CiAgICBpdG9iCiAgICB1bmNvdmVyIDE0CiAgICBpdG9iCiAgICBkaWcgMTQKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHVuY292ZXIgMTUKICAgIGNvbmNhdAogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAxNgogICAgc2V0Yml0CiAgICBieXRlY18wIC8vIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDE2CiAgICBzZXRiaXQKICAgIGRpZyAxNAogICAgbGVuCiAgICBwdXNoaW50IDkzIC8vIDkzCiAgICArCiAgICBwdXNoYnl0ZXMgMHgwMDVkCiAgICB1bmNvdmVyIDE1CiAgICBjb25jYXQKICAgIHVuY292ZXIgMTQKICAgIGNvbmNhdAogICAgc3dhcAogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGNvbmNhdAogICAgdW5jb3ZlciAxMQogICAgY29uY2F0CiAgICB1bmNvdmVyIDEwCiAgICBjb25jYXQKICAgIHVuY292ZXIgOQogICAgY29uY2F0CiAgICB1bmNvdmVyIDgKICAgIGNvbmNhdAogICAgdW5jb3ZlciA3CiAgICBjb25jYXQKICAgIHVuY292ZXIgNgogICAgY29uY2F0CiAgICB1bmNvdmVyIDUKICAgIGNvbmNhdAogICAgdW5jb3ZlciA0CiAgICBjb25jYXQKICAgIHVuY292ZXIgMwogICAgY29uY2F0CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgcHVzaGludCA3MzcgLy8gNzM3CiAgICBzd2FwCiAgICBzZXRiaXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKbWFpbl9iYXJlX3JvdXRpbmdANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBY2NvdW50c0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgICEKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo6QWNjb3VudHNDb250cmFjdC5nZXRBY2NvdW50SW5mbyhhY2NvdW50OiBieXRlcywgYXNzZXQ6IHVpbnQ2NCkgLT4gYnl0ZXMsIHVpbnQ2NCwgdWludDY0LCBieXRlcywgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQ6CmdldEFjY291bnRJbmZvOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6NQogICAgLy8gcHVibGljIGdldEFjY291bnRJbmZvKGFjY291bnQ6IEFjY291bnQsIGFzc2V0OiBBc3NldCkgewogICAgcHJvdG8gMiAxNQogICAgcHVzaGludCAxNDEwIC8vIDE0MTAKICAgIGdsb2JhbCBPcGNvZGVCdWRnZXQKICAgID4KICAgIGJ6IGdldEFjY291bnRJbmZvX2FmdGVyX3doaWxlQDcKICAgIGl0eG5fYmVnaW4KICAgIHB1c2hpbnQgNiAvLyBhcHBsCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBwdXNoaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICBieXRlY18xIC8vIDB4MDY4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQogICAgYnl0ZWNfMSAvLyAweDA2ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICBpdHhuX3N1Ym1pdAogICAgYiBnZXRBY2NvdW50SW5mbwoKZ2V0QWNjb3VudEluZm9fYWZ0ZXJfd2hpbGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMQogICAgLy8gaXNPcHRJbkFwcDogYWNjb3VudC5pc09wdGVkSW4oR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbklkKSwKICAgIGZyYW1lX2RpZyAtMgogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbklECiAgICBhcHBfb3B0ZWRfaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjIKICAgIC8vIGlzT3B0SW5Bc3NldDogYWNjb3VudC5pc09wdGVkSW4oYXNzZXQpLAogICAgZnJhbWVfZGlnIC0yCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQogICAgYnVyeSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo3LTIzCiAgICAvLyByZXR1cm4gewogICAgLy8gICBieXRlczogYWNjb3VudC5ieXRlcywKICAgIC8vICAgYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgLy8gICBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICAvLyAgIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgLy8gICB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgLy8gICB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIC8vICAgdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIC8vICAgdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgLy8gICB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICAvLyAgIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICAvLyAgIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgLy8gICB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICAvLyAgIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIC8vICAgaXNPcHRJbkFwcDogYWNjb3VudC5pc09wdGVkSW4oR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbklkKSwKICAgIC8vICAgaXNPcHRJbkFzc2V0OiBhY2NvdW50LmlzT3B0ZWRJbihhc3NldCksCiAgICAvLyB9CiAgICBmcmFtZV9kaWcgLTIKICAgIGNvdmVyIDE0CiAgICByZXRzdWIK", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MDAgMHgwNjgxMDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBY2NvdW50c0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKICAgIHB1c2hieXRlcyAweGRmZTlhMDM1IC8vIG1ldGhvZCAiZ2V0QWNjb3VudEluZm8oYWNjb3VudCxhc3NldCkoYnl0ZVtdLHVpbnQ2NCx1aW50NjQsYnl0ZVtdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LGJvb2wsYm9vbCkiCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBtYXRjaCBtYWluX2dldEFjY291bnRJbmZvX3JvdXRlQDMKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBY2NvdW50c0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKICAgIHJldHVybgoKbWFpbl9nZXRBY2NvdW50SW5mb19yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6NQogICAgLy8gcHVibGljIGdldEFjY291bnRJbmZvKGFjY291bnQ6IEFjY291bnQsIGFzc2V0OiBBc3NldCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQWNjb3VudHNDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIHR4bmFzIEFjY291bnRzCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICB0eG5hcyBBc3NldHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyBnZXRBY2NvdW50SW5mbyhhY2NvdW50OiBBY2NvdW50LCBhc3NldDogQXNzZXQpIHsKICAgIGNhbGxzdWIgZ2V0QWNjb3VudEluZm8KICAgIGRpZyAxNAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgdW5jb3ZlciAxNQogICAgY29uY2F0CiAgICB1bmNvdmVyIDE0CiAgICBpdG9iCiAgICB1bmNvdmVyIDE0CiAgICBpdG9iCiAgICBkaWcgMTQKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHVuY292ZXIgMTUKICAgIGNvbmNhdAogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAxNgogICAgc2V0Yml0CiAgICBieXRlY18wIC8vIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDE2CiAgICBzZXRiaXQKICAgIGRpZyAxNAogICAgbGVuCiAgICBwdXNoaW50IDkzIC8vIDkzCiAgICArCiAgICBwdXNoYnl0ZXMgMHgwMDVkCiAgICB1bmNvdmVyIDE1CiAgICBjb25jYXQKICAgIHVuY292ZXIgMTQKICAgIGNvbmNhdAogICAgc3dhcAogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGNvbmNhdAogICAgdW5jb3ZlciAxMQogICAgY29uY2F0CiAgICB1bmNvdmVyIDEwCiAgICBjb25jYXQKICAgIHVuY292ZXIgOQogICAgY29uY2F0CiAgICB1bmNvdmVyIDgKICAgIGNvbmNhdAogICAgdW5jb3ZlciA3CiAgICBjb25jYXQKICAgIHVuY292ZXIgNgogICAgY29uY2F0CiAgICB1bmNvdmVyIDUKICAgIGNvbmNhdAogICAgdW5jb3ZlciA0CiAgICBjb25jYXQKICAgIHVuY292ZXIgMwogICAgY29uY2F0CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgcHVzaGludCA3MzcgLy8gNzM3CiAgICBzd2FwCiAgICBzZXRiaXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKbWFpbl9iYXJlX3JvdXRpbmdANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBY2NvdW50c0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgICEKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo6QWNjb3VudHNDb250cmFjdC5nZXRBY2NvdW50SW5mbyhhY2NvdW50OiBieXRlcywgYXNzZXQ6IHVpbnQ2NCkgLT4gYnl0ZXMsIHVpbnQ2NCwgdWludDY0LCBieXRlcywgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQ6CmdldEFjY291bnRJbmZvOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6NQogICAgLy8gcHVibGljIGdldEFjY291bnRJbmZvKGFjY291bnQ6IEFjY291bnQsIGFzc2V0OiBBc3NldCkgewogICAgcHJvdG8gMiAxNQoKZ2V0QWNjb3VudEluZm9fd2hpbGVfdG9wQDI6CiAgICBwdXNoaW50IDE0MTAgLy8gMTQxMAogICAgZ2xvYmFsIE9wY29kZUJ1ZGdldAogICAgPgogICAgYnogZ2V0QWNjb3VudEluZm9fYWZ0ZXJfd2hpbGVANwogICAgaXR4bl9iZWdpbgogICAgcHVzaGludCA2IC8vIGFwcGwKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIHB1c2hpbnQgNSAvLyBEZWxldGVBcHBsaWNhdGlvbgogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIGJ5dGVjXzEgLy8gMHgwNjgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCiAgICBieXRlY18xIC8vIDB4MDY4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIGl0eG5fc3VibWl0CiAgICBiIGdldEFjY291bnRJbmZvX3doaWxlX3RvcEAyCgpnZXRBY2NvdW50SW5mb19hZnRlcl93aGlsZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIxCiAgICAvLyBpc09wdEluQXBwOiBhY2NvdW50LmlzT3B0ZWRJbihHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uSWQpLAogICAgZnJhbWVfZGlnIC0yCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uSUQKICAgIGFwcF9vcHRlZF9pbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMgogICAgLy8gaXNPcHRJbkFzc2V0OiBhY2NvdW50LmlzT3B0ZWRJbihhc3NldCksCiAgICBmcmFtZV9kaWcgLTIKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCiAgICBidXJ5IDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjctMjMKICAgIC8vIHJldHVybiB7CiAgICAvLyAgIGJ5dGVzOiBhY2NvdW50LmJ5dGVzLAogICAgLy8gICBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICAvLyAgIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIC8vICAgYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICAvLyAgIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICAvLyAgIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgLy8gICB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgLy8gICB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICAvLyAgIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIC8vICAgdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIC8vICAgdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICAvLyAgIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIC8vICAgdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgLy8gICBpc09wdEluQXBwOiBhY2NvdW50LmlzT3B0ZWRJbihHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uSWQpLAogICAgLy8gICBpc09wdEluQXNzZXQ6IGFjY291bnQuaXNPcHRlZEluKGFzc2V0KSwKICAgIC8vIH0KICAgIGZyYW1lX2RpZyAtMgogICAgY292ZXIgMTQKICAgIHJldHN1Ygo=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { diff --git a/tests/approvals/out/o1/accounts/AccountsContract.arc56.json b/tests/approvals/out/o1/accounts/AccountsContract.arc56.json index 3ffa73818..c4b3de449 100644 --- a/tests/approvals/out/o1/accounts/AccountsContract.arc56.json +++ b/tests/approvals/out/o1/accounts/AccountsContract.arc56.json @@ -340,11 +340,11 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MDAgMHgwNjgxMDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBY2NvdW50c0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKICAgIHB1c2hieXRlcyAweGRmZTlhMDM1IC8vIG1ldGhvZCAiZ2V0QWNjb3VudEluZm8oYWNjb3VudCxhc3NldCkoYnl0ZVtdLHVpbnQ2NCx1aW50NjQsYnl0ZVtdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LGJvb2wsYm9vbCkiCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBtYXRjaCBtYWluX2dldEFjY291bnRJbmZvX3JvdXRlQDMKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBY2NvdW50c0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKICAgIHJldHVybgoKbWFpbl9nZXRBY2NvdW50SW5mb19yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6NQogICAgLy8gcHVibGljIGdldEFjY291bnRJbmZvKGFjY291bnQ6IEFjY291bnQsIGFzc2V0OiBBc3NldCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQWNjb3VudHNDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIHR4bmFzIEFjY291bnRzCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICB0eG5hcyBBc3NldHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyBnZXRBY2NvdW50SW5mbyhhY2NvdW50OiBBY2NvdW50LCBhc3NldDogQXNzZXQpIHsKICAgIGNhbGxzdWIgZ2V0QWNjb3VudEluZm8KICAgIGRpZyAxNAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgdW5jb3ZlciAxNQogICAgY29uY2F0CiAgICB1bmNvdmVyIDE0CiAgICBpdG9iCiAgICB1bmNvdmVyIDE0CiAgICBpdG9iCiAgICBkaWcgMTQKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHVuY292ZXIgMTUKICAgIGNvbmNhdAogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAxNgogICAgc2V0Yml0CiAgICBieXRlY18wIC8vIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDE2CiAgICBzZXRiaXQKICAgIGRpZyAxNAogICAgbGVuCiAgICBwdXNoaW50IDkzIC8vIDkzCiAgICArCiAgICBwdXNoYnl0ZXMgMHgwMDVkCiAgICB1bmNvdmVyIDE1CiAgICBjb25jYXQKICAgIHVuY292ZXIgMTQKICAgIGNvbmNhdAogICAgc3dhcAogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGNvbmNhdAogICAgdW5jb3ZlciAxMQogICAgY29uY2F0CiAgICB1bmNvdmVyIDEwCiAgICBjb25jYXQKICAgIHVuY292ZXIgOQogICAgY29uY2F0CiAgICB1bmNvdmVyIDgKICAgIGNvbmNhdAogICAgdW5jb3ZlciA3CiAgICBjb25jYXQKICAgIHVuY292ZXIgNgogICAgY29uY2F0CiAgICB1bmNvdmVyIDUKICAgIGNvbmNhdAogICAgdW5jb3ZlciA0CiAgICBjb25jYXQKICAgIHVuY292ZXIgMwogICAgY29uY2F0CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgcHVzaGludCA3MzcgLy8gNzM3CiAgICBzd2FwCiAgICBzZXRiaXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKbWFpbl9iYXJlX3JvdXRpbmdANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBY2NvdW50c0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgICEKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo6QWNjb3VudHNDb250cmFjdC5nZXRBY2NvdW50SW5mbyhhY2NvdW50OiBieXRlcywgYXNzZXQ6IHVpbnQ2NCkgLT4gYnl0ZXMsIHVpbnQ2NCwgdWludDY0LCBieXRlcywgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQ6CmdldEFjY291bnRJbmZvOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6NQogICAgLy8gcHVibGljIGdldEFjY291bnRJbmZvKGFjY291bnQ6IEFjY291bnQsIGFzc2V0OiBBc3NldCkgewogICAgcHJvdG8gMiAxNQogICAgcHVzaGludCAxNDEwIC8vIDE0MTAKICAgIGdsb2JhbCBPcGNvZGVCdWRnZXQKICAgID4KICAgIGJ6IGdldEFjY291bnRJbmZvX2FmdGVyX3doaWxlQDcKICAgIGl0eG5fYmVnaW4KICAgIHB1c2hpbnQgNiAvLyBhcHBsCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBwdXNoaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICBieXRlY18xIC8vIDB4MDY4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQogICAgYnl0ZWNfMSAvLyAweDA2ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICBpdHhuX3N1Ym1pdAogICAgYiBnZXRBY2NvdW50SW5mbwoKZ2V0QWNjb3VudEluZm9fYWZ0ZXJfd2hpbGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMQogICAgLy8gaXNPcHRJbkFwcDogYWNjb3VudC5pc09wdGVkSW4oR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbklkKSwKICAgIGZyYW1lX2RpZyAtMgogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbklECiAgICBhcHBfb3B0ZWRfaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjIKICAgIC8vIGlzT3B0SW5Bc3NldDogYWNjb3VudC5pc09wdGVkSW4oYXNzZXQpLAogICAgZnJhbWVfZGlnIC0yCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQogICAgYnVyeSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo3LTIzCiAgICAvLyByZXR1cm4gewogICAgLy8gICBieXRlczogYWNjb3VudC5ieXRlcywKICAgIC8vICAgYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgLy8gICBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICAvLyAgIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgLy8gICB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgLy8gICB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIC8vICAgdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIC8vICAgdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgLy8gICB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICAvLyAgIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICAvLyAgIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgLy8gICB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICAvLyAgIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIC8vICAgaXNPcHRJbkFwcDogYWNjb3VudC5pc09wdGVkSW4oR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbklkKSwKICAgIC8vICAgaXNPcHRJbkFzc2V0OiBhY2NvdW50LmlzT3B0ZWRJbihhc3NldCksCiAgICAvLyB9CiAgICBmcmFtZV9kaWcgLTIKICAgIGNvdmVyIDE0CiAgICByZXRzdWIK", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MDAgMHgwNjgxMDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBY2NvdW50c0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKICAgIHB1c2hieXRlcyAweGRmZTlhMDM1IC8vIG1ldGhvZCAiZ2V0QWNjb3VudEluZm8oYWNjb3VudCxhc3NldCkoYnl0ZVtdLHVpbnQ2NCx1aW50NjQsYnl0ZVtdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LGJvb2wsYm9vbCkiCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBtYXRjaCBtYWluX2dldEFjY291bnRJbmZvX3JvdXRlQDMKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBY2NvdW50c0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKICAgIHJldHVybgoKbWFpbl9nZXRBY2NvdW50SW5mb19yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6NQogICAgLy8gcHVibGljIGdldEFjY291bnRJbmZvKGFjY291bnQ6IEFjY291bnQsIGFzc2V0OiBBc3NldCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQWNjb3VudHNDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIHR4bmFzIEFjY291bnRzCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICB0eG5hcyBBc3NldHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyBnZXRBY2NvdW50SW5mbyhhY2NvdW50OiBBY2NvdW50LCBhc3NldDogQXNzZXQpIHsKICAgIGNhbGxzdWIgZ2V0QWNjb3VudEluZm8KICAgIGRpZyAxNAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgdW5jb3ZlciAxNQogICAgY29uY2F0CiAgICB1bmNvdmVyIDE0CiAgICBpdG9iCiAgICB1bmNvdmVyIDE0CiAgICBpdG9iCiAgICBkaWcgMTQKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHVuY292ZXIgMTUKICAgIGNvbmNhdAogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAxNgogICAgc2V0Yml0CiAgICBieXRlY18wIC8vIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDE2CiAgICBzZXRiaXQKICAgIGRpZyAxNAogICAgbGVuCiAgICBwdXNoaW50IDkzIC8vIDkzCiAgICArCiAgICBwdXNoYnl0ZXMgMHgwMDVkCiAgICB1bmNvdmVyIDE1CiAgICBjb25jYXQKICAgIHVuY292ZXIgMTQKICAgIGNvbmNhdAogICAgc3dhcAogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGNvbmNhdAogICAgdW5jb3ZlciAxMQogICAgY29uY2F0CiAgICB1bmNvdmVyIDEwCiAgICBjb25jYXQKICAgIHVuY292ZXIgOQogICAgY29uY2F0CiAgICB1bmNvdmVyIDgKICAgIGNvbmNhdAogICAgdW5jb3ZlciA3CiAgICBjb25jYXQKICAgIHVuY292ZXIgNgogICAgY29uY2F0CiAgICB1bmNvdmVyIDUKICAgIGNvbmNhdAogICAgdW5jb3ZlciA0CiAgICBjb25jYXQKICAgIHVuY292ZXIgMwogICAgY29uY2F0CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgcHVzaGludCA3MzcgLy8gNzM3CiAgICBzd2FwCiAgICBzZXRiaXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKbWFpbl9iYXJlX3JvdXRpbmdANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBY2NvdW50c0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgICEKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo6QWNjb3VudHNDb250cmFjdC5nZXRBY2NvdW50SW5mbyhhY2NvdW50OiBieXRlcywgYXNzZXQ6IHVpbnQ2NCkgLT4gYnl0ZXMsIHVpbnQ2NCwgdWludDY0LCBieXRlcywgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQ6CmdldEFjY291bnRJbmZvOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6NQogICAgLy8gcHVibGljIGdldEFjY291bnRJbmZvKGFjY291bnQ6IEFjY291bnQsIGFzc2V0OiBBc3NldCkgewogICAgcHJvdG8gMiAxNQoKZ2V0QWNjb3VudEluZm9fd2hpbGVfdG9wQDI6CiAgICBwdXNoaW50IDE0MTAgLy8gMTQxMAogICAgZ2xvYmFsIE9wY29kZUJ1ZGdldAogICAgPgogICAgYnogZ2V0QWNjb3VudEluZm9fYWZ0ZXJfd2hpbGVANwogICAgaXR4bl9iZWdpbgogICAgcHVzaGludCA2IC8vIGFwcGwKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIHB1c2hpbnQgNSAvLyBEZWxldGVBcHBsaWNhdGlvbgogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIGJ5dGVjXzEgLy8gMHgwNjgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCiAgICBieXRlY18xIC8vIDB4MDY4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIGl0eG5fc3VibWl0CiAgICBiIGdldEFjY291bnRJbmZvX3doaWxlX3RvcEAyCgpnZXRBY2NvdW50SW5mb19hZnRlcl93aGlsZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIxCiAgICAvLyBpc09wdEluQXBwOiBhY2NvdW50LmlzT3B0ZWRJbihHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uSWQpLAogICAgZnJhbWVfZGlnIC0yCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uSUQKICAgIGFwcF9vcHRlZF9pbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMgogICAgLy8gaXNPcHRJbkFzc2V0OiBhY2NvdW50LmlzT3B0ZWRJbihhc3NldCksCiAgICBmcmFtZV9kaWcgLTIKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCiAgICBidXJ5IDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjctMjMKICAgIC8vIHJldHVybiB7CiAgICAvLyAgIGJ5dGVzOiBhY2NvdW50LmJ5dGVzLAogICAgLy8gICBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICAvLyAgIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIC8vICAgYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICAvLyAgIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICAvLyAgIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgLy8gICB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgLy8gICB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICAvLyAgIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIC8vICAgdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIC8vICAgdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICAvLyAgIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIC8vICAgdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgLy8gICBpc09wdEluQXBwOiBhY2NvdW50LmlzT3B0ZWRJbihHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uSWQpLAogICAgLy8gICBpc09wdEluQXNzZXQ6IGFjY291bnQuaXNPcHRlZEluKGFzc2V0KSwKICAgIC8vIH0KICAgIGZyYW1lX2RpZyAtMgogICAgY292ZXIgMTQKICAgIHJldHN1Ygo=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { - "approval": "CiACAAEmAgEAAwaBATEbQQCwgATf6aA1NhoAjgEAAiJDMRkURDEYRDYaARfAHDYaAhfAMIgAlksOFRZXBgJPD1BPDhZPDhZLDhUWVwYCTw9QTw4WTw4WTw4WTw4WTw4WTw4WTw4WTw4WTw4WKCJPEFQoIk8QVEsOFYFdCIACAF1PD1BPDlBMFlcGAlBPC1BPClBPCVBPCFBPB1BPBlBPBVBPBFBPA1BPAlBMIlOB4QVMVE8CUExQgAQVH3x1TFCwI0MxGUD/WDEYFEQjQ4oCD4GCCzIMDUEAFrGBBrIQgQWyGSmyHimyHyKyAbNC/96L/nMARQFEi/5zAUUBRIv+cwJFAUSL/nMDRQFEi/5zBEUBRIv+cwVFAUSL/nMGRQFEi/5zB0UBRIv+cwhFAUSL/nMJRQFEi/5zCkUBRIv+cwtFAUSL/nMARIv+cwFFAUSL/nMCRQFEi/5zA0UBRIv+cwRFAUSL/nMFRQFEi/5zBkUBRIv+cwdFAUSL/nMIRQFEi/5zCUUBRIv+cwpFAUSL/nMLRQFEi/5zAEUBRIv+cwFEi/5zAkUBRIv+cwNFAUSL/nMERQFEi/5zBUUBRIv+cwZFAUSL/nMHRQFEi/5zCEUBRIv+cwlFAUSL/nMKRQFEi/5zC0UBRIv+cwBFAUSL/nMBRQFEi/5zAkSL/nMDRQFEi/5zBEUBRIv+cwVFAUSL/nMGRQFEi/5zB0UBRIv+cwhFAUSL/nMJRQFEi/5zCkUBRIv+cwtFAUSL/nMARQFEi/5zAUUBRIv+cwJFAUSL/nMDRIv+cwRFAUSL/nMFRQFEi/5zBkUBRIv+cwdFAUSL/nMIRQFEi/5zCUUBRIv+cwpFAUSL/nMLRQFEi/5zAEUBRIv+cwFFAUSL/nMCRQFEi/5zA0UBRIv+cwREi/5zBUUBRIv+cwZFAUSL/nMHRQFEi/5zCEUBRIv+cwlFAUSL/nMKRQFEi/5zC0UBRIv+cwBFAUSL/nMBRQFEi/5zAkUBRIv+cwNFAUSL/nMERQFEi/5zBUSL/nMGRQFEi/5zB0UBRIv+cwhFAUSL/nMJRQFEi/5zCkUBRIv+cwtFAUSL/nMARQFEi/5zAUUBRIv+cwJFAUSL/nMDRQFEi/5zBEUBRIv+cwVFAUSL/nMGRIv+cwdFAUSL/nMIRQFEi/5zCUUBRIv+cwpFAUSL/nMLRQFEi/5zAEUBRIv+cwFFAUSL/nMCRQFEi/5zA0UBRIv+cwRFAUSL/nMFRQFEi/5zBkUBRIv+cwdEi/5zCEUBRIv+cwlFAUSL/nMKRQFEi/5zC0UBRIv+cwBFAUSL/nMBRQFEi/5zAkUBRIv+cwNFAUSL/nMERQFEi/5zBUUBRIv+cwZFAUSL/nMHRQFEi/5zCESL/nMJRQFEi/5zCkUBRIv+cwtFAUSL/nMARQFEi/5zAUUBRIv+cwJFAUSL/nMDRQFEi/5zBEUBRIv+cwVFAUSL/nMGRQFEi/5zB0UBRIv+cwhFAUSL/nMJRIv+cwpFAUSL/nMLRQFEi/5zAEUBRIv+cwFFAUSL/nMCRQFEi/5zA0UBRIv+cwRFAUSL/nMFRQFEi/5zBkUBRIv+cwdFAUSL/nMIRQFEi/5zCUUBRIv+cwpEi/5zC0UBRIv+cwBFAUSL/nMBRQFEi/5zAkUBRIv+cwNFAUSL/nMERQFEi/5zBUUBRIv+cwZFAUSL/nMHRQFEi/5zCEUBRIv+cwlFAUSL/nMKRQFEi/5zC0SL/nMARQFEi/5zAUUBRIv+cwJFAUSL/nMDRQFEi/5zBEUBRIv+cwVFAUSL/nMGRQFEi/5zB0UBRIv+cwhFAUSL/nMJRQFEi/5zCkUBRIv+cwtFAUSL/jIIYYv+cwBFAUSL/nMBRQFEi/5zAkUBRIv+cwNFAUSL/nMERQFEi/5zBUUBRIv+cwZFAUSL/nMHRQFEi/5zCEUBRIv+cwlFAUSL/nMKRQFEi/5zC0UBRIv+i/9wAEUBi/5ODok=", + "approval": "CiACAAEmAgEAAwaBATEbQQCwgATf6aA1NhoAjgEAAiJDMRkURDEYRDYaARfAHDYaAhfAMIgAlksOFRZXBgJPD1BPDhZPDhZLDhUWVwYCTw9QTw4WTw4WTw4WTw4WTw4WTw4WTw4WTw4WTw4WKCJPEFQoIk8QVEsOFYFdCIACAF1PD1BPDlBMFlcGAlBPC1BPClBPCVBPCFBPB1BPBlBPBVBPBFBPA1BPAlBMIlOB4QVMVE8CUExQgAQVH3x1TFCwI0MxGUD/WDEYFEQjQ4oCD4GCCzIMDUEAFrGBBrIQgQWyGSmyHimyHyKyAbNC/+GL/nMARQFEi/5zAUUBRIv+cwJFAUSL/nMDRQFEi/5zBEUBRIv+cwVFAUSL/nMGRQFEi/5zB0UBRIv+cwhFAUSL/nMJRQFEi/5zCkUBRIv+cwtFAUSL/nMARIv+cwFFAUSL/nMCRQFEi/5zA0UBRIv+cwRFAUSL/nMFRQFEi/5zBkUBRIv+cwdFAUSL/nMIRQFEi/5zCUUBRIv+cwpFAUSL/nMLRQFEi/5zAEUBRIv+cwFEi/5zAkUBRIv+cwNFAUSL/nMERQFEi/5zBUUBRIv+cwZFAUSL/nMHRQFEi/5zCEUBRIv+cwlFAUSL/nMKRQFEi/5zC0UBRIv+cwBFAUSL/nMBRQFEi/5zAkSL/nMDRQFEi/5zBEUBRIv+cwVFAUSL/nMGRQFEi/5zB0UBRIv+cwhFAUSL/nMJRQFEi/5zCkUBRIv+cwtFAUSL/nMARQFEi/5zAUUBRIv+cwJFAUSL/nMDRIv+cwRFAUSL/nMFRQFEi/5zBkUBRIv+cwdFAUSL/nMIRQFEi/5zCUUBRIv+cwpFAUSL/nMLRQFEi/5zAEUBRIv+cwFFAUSL/nMCRQFEi/5zA0UBRIv+cwREi/5zBUUBRIv+cwZFAUSL/nMHRQFEi/5zCEUBRIv+cwlFAUSL/nMKRQFEi/5zC0UBRIv+cwBFAUSL/nMBRQFEi/5zAkUBRIv+cwNFAUSL/nMERQFEi/5zBUSL/nMGRQFEi/5zB0UBRIv+cwhFAUSL/nMJRQFEi/5zCkUBRIv+cwtFAUSL/nMARQFEi/5zAUUBRIv+cwJFAUSL/nMDRQFEi/5zBEUBRIv+cwVFAUSL/nMGRIv+cwdFAUSL/nMIRQFEi/5zCUUBRIv+cwpFAUSL/nMLRQFEi/5zAEUBRIv+cwFFAUSL/nMCRQFEi/5zA0UBRIv+cwRFAUSL/nMFRQFEi/5zBkUBRIv+cwdEi/5zCEUBRIv+cwlFAUSL/nMKRQFEi/5zC0UBRIv+cwBFAUSL/nMBRQFEi/5zAkUBRIv+cwNFAUSL/nMERQFEi/5zBUUBRIv+cwZFAUSL/nMHRQFEi/5zCESL/nMJRQFEi/5zCkUBRIv+cwtFAUSL/nMARQFEi/5zAUUBRIv+cwJFAUSL/nMDRQFEi/5zBEUBRIv+cwVFAUSL/nMGRQFEi/5zB0UBRIv+cwhFAUSL/nMJRIv+cwpFAUSL/nMLRQFEi/5zAEUBRIv+cwFFAUSL/nMCRQFEi/5zA0UBRIv+cwRFAUSL/nMFRQFEi/5zBkUBRIv+cwdFAUSL/nMIRQFEi/5zCUUBRIv+cwpEi/5zC0UBRIv+cwBFAUSL/nMBRQFEi/5zAkUBRIv+cwNFAUSL/nMERQFEi/5zBUUBRIv+cwZFAUSL/nMHRQFEi/5zCEUBRIv+cwlFAUSL/nMKRQFEi/5zC0SL/nMARQFEi/5zAUUBRIv+cwJFAUSL/nMDRQFEi/5zBEUBRIv+cwVFAUSL/nMGRQFEi/5zB0UBRIv+cwhFAUSL/nMJRQFEi/5zCkUBRIv+cwtFAUSL/jIIYYv+cwBFAUSL/nMBRQFEi/5zAkUBRIv+cwNFAUSL/nMERQFEi/5zBUUBRIv+cwZFAUSL/nMHRQFEi/5zCEUBRIv+cwlFAUSL/nMKRQFEi/5zC0UBRIv+i/9wAEUBi/5ODok=", "clear": "CoEBQw==" }, "compilerInfo": { @@ -352,7 +352,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/arc-28-events/EventEmitter.arc56.json b/tests/approvals/out/o1/arc-28-events/EventEmitter.arc56.json index 0e93c263c..76c5ac9d5 100644 --- a/tests/approvals/out/o1/arc-28-events/EventEmitter.arc56.json +++ b/tests/approvals/out/o1/arc-28-events/EventEmitter.arc56.json @@ -238,7 +238,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [ diff --git a/tests/approvals/out/o1/arc4-encode-decode/Arc4EncodeDecode.arc56.json b/tests/approvals/out/o1/arc4-encode-decode/Arc4EncodeDecode.arc56.json index 0f8579eff..5b61bef14 100644 --- a/tests/approvals/out/o1/arc4-encode-decode/Arc4EncodeDecode.arc56.json +++ b/tests/approvals/out/o1/arc4-encode-decode/Arc4EncodeDecode.arc56.json @@ -205,7 +205,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/arc4-hybrid/Arc4HybridAlgo.arc56.json b/tests/approvals/out/o1/arc4-hybrid/Arc4HybridAlgo.arc56.json index 0ddfb7217..7610325d0 100644 --- a/tests/approvals/out/o1/arc4-hybrid/Arc4HybridAlgo.arc56.json +++ b/tests/approvals/out/o1/arc4-hybrid/Arc4HybridAlgo.arc56.json @@ -94,7 +94,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/arc4-method-selector/ContractOne.arc56.json b/tests/approvals/out/o1/arc4-method-selector/ContractOne.arc56.json index 64f4bf4ec..9f4c8735b 100644 --- a/tests/approvals/out/o1/arc4-method-selector/ContractOne.arc56.json +++ b/tests/approvals/out/o1/arc4-method-selector/ContractOne.arc56.json @@ -112,7 +112,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/arc4-method-selector/ContractTwo.arc56.json b/tests/approvals/out/o1/arc4-method-selector/ContractTwo.arc56.json index 7666601a4..dd13c2439 100644 --- a/tests/approvals/out/o1/arc4-method-selector/ContractTwo.arc56.json +++ b/tests/approvals/out/o1/arc4-method-selector/ContractTwo.arc56.json @@ -112,7 +112,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/arc4-struct/StructDemo.arc56.json b/tests/approvals/out/o1/arc4-struct/StructDemo.arc56.json index 820b2d3a6..b8d255163 100644 --- a/tests/approvals/out/o1/arc4-struct/StructDemo.arc56.json +++ b/tests/approvals/out/o1/arc4-struct/StructDemo.arc56.json @@ -230,7 +230,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/array-destructuring/ArrayDestructuringAlgo.arc56.json b/tests/approvals/out/o1/array-destructuring/ArrayDestructuringAlgo.arc56.json index 23a181d43..0dcb20c31 100644 --- a/tests/approvals/out/o1/array-destructuring/ArrayDestructuringAlgo.arc56.json +++ b/tests/approvals/out/o1/array-destructuring/ArrayDestructuringAlgo.arc56.json @@ -150,7 +150,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/assert-match/AssertMatchContract.arc56.json b/tests/approvals/out/o1/assert-match/AssertMatchContract.arc56.json index 766065d32..2706f502a 100644 --- a/tests/approvals/out/o1/assert-match/AssertMatchContract.arc56.json +++ b/tests/approvals/out/o1/assert-match/AssertMatchContract.arc56.json @@ -112,7 +112,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/asset-proxy/AssetProxyAlgo.arc56.json b/tests/approvals/out/o1/asset-proxy/AssetProxyAlgo.arc56.json index 5dcde99a7..667266618 100644 --- a/tests/approvals/out/o1/asset-proxy/AssetProxyAlgo.arc56.json +++ b/tests/approvals/out/o1/asset-proxy/AssetProxyAlgo.arc56.json @@ -123,7 +123,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/avm11/AVM11Contract.arc56.json b/tests/approvals/out/o1/avm11/AVM11Contract.arc56.json index a58c2ca97..a1bce6dd9 100644 --- a/tests/approvals/out/o1/avm11/AVM11Contract.arc56.json +++ b/tests/approvals/out/o1/avm11/AVM11Contract.arc56.json @@ -172,7 +172,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/box-enum-contract/BoxContract.arc56.json b/tests/approvals/out/o1/box-enum-contract/BoxContract.arc56.json index 6515a1f2d..0e6ec3d6c 100644 --- a/tests/approvals/out/o1/box-enum-contract/BoxContract.arc56.json +++ b/tests/approvals/out/o1/box-enum-contract/BoxContract.arc56.json @@ -132,7 +132,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/byte-expressions/DemoContract.arc56.json b/tests/approvals/out/o1/byte-expressions/DemoContract.arc56.json index 26bc01cad..8a0e3e6b4 100644 --- a/tests/approvals/out/o1/byte-expressions/DemoContract.arc56.json +++ b/tests/approvals/out/o1/byte-expressions/DemoContract.arc56.json @@ -94,7 +94,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/destructured-params/DestructuredParamsAlgo.arc56.json b/tests/approvals/out/o1/destructured-params/DestructuredParamsAlgo.arc56.json index 59ea36ab5..699480e2b 100644 --- a/tests/approvals/out/o1/destructured-params/DestructuredParamsAlgo.arc56.json +++ b/tests/approvals/out/o1/destructured-params/DestructuredParamsAlgo.arc56.json @@ -133,7 +133,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/do-loops/DoLoopsAlgo.arc56.json b/tests/approvals/out/o1/do-loops/DoLoopsAlgo.arc56.json index 306b9ff7f..b0b5cae9d 100644 --- a/tests/approvals/out/o1/do-loops/DoLoopsAlgo.arc56.json +++ b/tests/approvals/out/o1/do-loops/DoLoopsAlgo.arc56.json @@ -153,7 +153,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/for-loops/ForLoopsAlgo.arc56.json b/tests/approvals/out/o1/for-loops/ForLoopsAlgo.arc56.json index 44dc04981..c322b5ea1 100644 --- a/tests/approvals/out/o1/for-loops/ForLoopsAlgo.arc56.json +++ b/tests/approvals/out/o1/for-loops/ForLoopsAlgo.arc56.json @@ -200,7 +200,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/for-of-loops/ForOfLoopsAlgo.arc56.json b/tests/approvals/out/o1/for-of-loops/ForOfLoopsAlgo.arc56.json index ced0990a2..7f3df52a4 100644 --- a/tests/approvals/out/o1/for-of-loops/ForOfLoopsAlgo.arc56.json +++ b/tests/approvals/out/o1/for-of-loops/ForOfLoopsAlgo.arc56.json @@ -191,7 +191,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/global-state/TestArc4.arc56.json b/tests/approvals/out/o1/global-state/TestArc4.arc56.json index aa23e5cfc..39a856064 100644 --- a/tests/approvals/out/o1/global-state/TestArc4.arc56.json +++ b/tests/approvals/out/o1/global-state/TestArc4.arc56.json @@ -126,7 +126,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/implicit-create/BaseWithAbiCreate.arc56.json b/tests/approvals/out/o1/implicit-create/BaseWithAbiCreate.arc56.json index 6680de479..ad53bb4a0 100644 --- a/tests/approvals/out/o1/implicit-create/BaseWithAbiCreate.arc56.json +++ b/tests/approvals/out/o1/implicit-create/BaseWithAbiCreate.arc56.json @@ -86,7 +86,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/implicit-create/BaseWithBareCreate.arc56.json b/tests/approvals/out/o1/implicit-create/BaseWithBareCreate.arc56.json index 511dbab48..b11f68358 100644 --- a/tests/approvals/out/o1/implicit-create/BaseWithBareCreate.arc56.json +++ b/tests/approvals/out/o1/implicit-create/BaseWithBareCreate.arc56.json @@ -65,7 +65,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/implicit-create/ExplicitAbiCreateFromBase.arc56.json b/tests/approvals/out/o1/implicit-create/ExplicitAbiCreateFromBase.arc56.json index 3bdd186d7..912954cce 100644 --- a/tests/approvals/out/o1/implicit-create/ExplicitAbiCreateFromBase.arc56.json +++ b/tests/approvals/out/o1/implicit-create/ExplicitAbiCreateFromBase.arc56.json @@ -86,7 +86,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/implicit-create/ExplicitBareCreateFromBase.arc56.json b/tests/approvals/out/o1/implicit-create/ExplicitBareCreateFromBase.arc56.json index f5861bcbb..27108bf31 100644 --- a/tests/approvals/out/o1/implicit-create/ExplicitBareCreateFromBase.arc56.json +++ b/tests/approvals/out/o1/implicit-create/ExplicitBareCreateFromBase.arc56.json @@ -65,7 +65,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/implicit-create/NoBare.arc56.json b/tests/approvals/out/o1/implicit-create/NoBare.arc56.json index 51e0d3967..bd3f58332 100644 --- a/tests/approvals/out/o1/implicit-create/NoBare.arc56.json +++ b/tests/approvals/out/o1/implicit-create/NoBare.arc56.json @@ -94,7 +94,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/implicit-create/NoNoOp.arc56.json b/tests/approvals/out/o1/implicit-create/NoNoOp.arc56.json index bddcd3602..1c80cc69e 100644 --- a/tests/approvals/out/o1/implicit-create/NoNoOp.arc56.json +++ b/tests/approvals/out/o1/implicit-create/NoNoOp.arc56.json @@ -73,7 +73,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/inheritance-b/ConcreteArc4Contract.arc56.json b/tests/approvals/out/o1/inheritance-b/ConcreteArc4Contract.arc56.json index d0670cef5..2db1df869 100644 --- a/tests/approvals/out/o1/inheritance-b/ConcreteArc4Contract.arc56.json +++ b/tests/approvals/out/o1/inheritance-b/ConcreteArc4Contract.arc56.json @@ -132,7 +132,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/itxn/ItxnDemoContract.arc56.json b/tests/approvals/out/o1/itxn/ItxnDemoContract.arc56.json index 7776f570a..6ca1df736 100644 --- a/tests/approvals/out/o1/itxn/ItxnDemoContract.arc56.json +++ b/tests/approvals/out/o1/itxn/ItxnDemoContract.arc56.json @@ -253,7 +253,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/jsdoc/JSDocDemo.arc56.json b/tests/approvals/out/o1/jsdoc/JSDocDemo.arc56.json index 7907b5bab..2bc0abd94 100644 --- a/tests/approvals/out/o1/jsdoc/JSDocDemo.arc56.json +++ b/tests/approvals/out/o1/jsdoc/JSDocDemo.arc56.json @@ -161,7 +161,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/local-state/LocalStateDemo.arc56.json b/tests/approvals/out/o1/local-state/LocalStateDemo.arc56.json index 50058b2b3..19cd753a5 100644 --- a/tests/approvals/out/o1/local-state/LocalStateDemo.arc56.json +++ b/tests/approvals/out/o1/local-state/LocalStateDemo.arc56.json @@ -253,7 +253,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/match-expr/MatchExprAlgo.arc56.json b/tests/approvals/out/o1/match-expr/MatchExprAlgo.arc56.json index f09e728ac..5da9ee101 100644 --- a/tests/approvals/out/o1/match-expr/MatchExprAlgo.arc56.json +++ b/tests/approvals/out/o1/match-expr/MatchExprAlgo.arc56.json @@ -105,7 +105,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/multi-inheritance/BaseOne.arc56.json b/tests/approvals/out/o1/multi-inheritance/BaseOne.arc56.json index df799e428..24e5f647c 100644 --- a/tests/approvals/out/o1/multi-inheritance/BaseOne.arc56.json +++ b/tests/approvals/out/o1/multi-inheritance/BaseOne.arc56.json @@ -141,7 +141,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/multi-inheritance/BaseTwo.arc56.json b/tests/approvals/out/o1/multi-inheritance/BaseTwo.arc56.json index 245e06216..8fd0109fc 100644 --- a/tests/approvals/out/o1/multi-inheritance/BaseTwo.arc56.json +++ b/tests/approvals/out/o1/multi-inheritance/BaseTwo.arc56.json @@ -142,7 +142,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/multi-inheritance/CommonBase.arc56.json b/tests/approvals/out/o1/multi-inheritance/CommonBase.arc56.json index 6bdaea9d8..ddde90996 100644 --- a/tests/approvals/out/o1/multi-inheritance/CommonBase.arc56.json +++ b/tests/approvals/out/o1/multi-inheritance/CommonBase.arc56.json @@ -118,7 +118,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/multi-inheritance/MultiBases.arc56.json b/tests/approvals/out/o1/multi-inheritance/MultiBases.arc56.json index 6ae977173..8ac825548 100644 --- a/tests/approvals/out/o1/multi-inheritance/MultiBases.arc56.json +++ b/tests/approvals/out/o1/multi-inheritance/MultiBases.arc56.json @@ -241,7 +241,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/mutable-arrays/MutableArraysAlgo.approval.teal b/tests/approvals/out/o1/mutable-arrays/MutableArraysAlgo.approval.teal index d72132d7a..3c4258400 100644 --- a/tests/approvals/out/o1/mutable-arrays/MutableArraysAlgo.approval.teal +++ b/tests/approvals/out/o1/mutable-arrays/MutableArraysAlgo.approval.teal @@ -56,6 +56,8 @@ test: proto 1 0 intc_0 // 0 bytec_0 // "" + +test_while_top@5: pushint 2010 // 2010 global OpcodeBudget > @@ -72,7 +74,7 @@ test: intc_0 // 0 itxn_field Fee itxn_submit - b test + b test_while_top@5 test_after_while@10: // tests/approvals/mutable-arrays.algo.ts:7 diff --git a/tests/approvals/out/o1/mutable-arrays/MutableArraysAlgo.arc32.json b/tests/approvals/out/o1/mutable-arrays/MutableArraysAlgo.arc32.json index 61ed19aac..c7f8224f2 100644 --- a/tests/approvals/out/o1/mutable-arrays/MutableArraysAlgo.arc32.json +++ b/tests/approvals/out/o1/mutable-arrays/MutableArraysAlgo.arc32.json @@ -7,7 +7,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA4IDEKICAgIGJ5dGVjYmxvY2sgMHggMHgwNjgxMDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIE11dGFibGVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKICAgIHB1c2hieXRlcyAweDJhMzM3NzcxIC8vIG1ldGhvZCAidGVzdCh1aW50NjQpdm9pZCIKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIG1hdGNoIG1haW5fdGVzdF9yb3V0ZUAzCgptYWluX2FmdGVyX2lmX2Vsc2VAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo0CiAgICAvLyBjbGFzcyBNdXRhYmxlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCiAgICByZXR1cm4KCm1haW5fdGVzdF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6NQogICAgLy8gdGVzdChsZW5ndGg6IHVpbnQ2NCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo0CiAgICAvLyBjbGFzcyBNdXRhYmxlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjUKICAgIC8vIHRlc3QobGVuZ3RoOiB1aW50NjQpIHsKICAgIGNhbGxzdWIgdGVzdAogICAgaW50Y18yIC8vIDEKICAgIHJldHVybgoKbWFpbl9iYXJlX3JvdXRpbmdANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIE11dGFibGVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgICEKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo6TXV0YWJsZUFycmF5c0FsZ28udGVzdChsZW5ndGg6IHVpbnQ2NCkgLT4gdm9pZDoKdGVzdDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjUKICAgIC8vIHRlc3QobGVuZ3RoOiB1aW50NjQpIHsKICAgIHByb3RvIDEgMAogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzAgLy8gIiIKICAgIHB1c2hpbnQgMjAxMCAvLyAyMDEwCiAgICBnbG9iYWwgT3Bjb2RlQnVkZ2V0CiAgICA+CiAgICBieiB0ZXN0X2FmdGVyX3doaWxlQDEwCiAgICBpdHhuX2JlZ2luCiAgICBwdXNoaW50IDYgLy8gYXBwbAogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgcHVzaGludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgYnl0ZWNfMSAvLyAweDA2ODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KICAgIGJ5dGVjXzEgLy8gMHgwNjgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgaXR4bl9zdWJtaXQKICAgIGIgdGVzdAoKdGVzdF9hZnRlcl93aGlsZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjcKICAgIC8vIGNvbnN0IG1hID0gbmV3IE11dGFibGVBcnJheTx1aW50NjQ+KCkKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6OAogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICBpbnRjXzAgLy8gMAogICAgZnJhbWVfYnVyeSAxCgp0ZXN0X3doaWxlX3RvcEAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6OAogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICBmcmFtZV9kaWcgMQogICAgZnJhbWVfZGlnIC0xCiAgICA8CiAgICBieiB0ZXN0X2FmdGVyX3doaWxlQDMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjkKICAgIC8vIG1hLnB1c2goaSkKICAgIGZyYW1lX2RpZyAxCiAgICBkdXAKICAgIGl0b2IKICAgIGZyYW1lX2RpZyAwCiAgICBzd2FwCiAgICBjb25jYXQgLy8gb24gZXJyb3I6IG1heCBhcnJheSBsZW5ndGggZXhjZWVkZWQKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6OAogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICBpbnRjXzIgLy8gMQogICAgKwogICAgZnJhbWVfYnVyeSAxCiAgICBiIHRlc3Rfd2hpbGVfdG9wQDEKCnRlc3RfYWZ0ZXJfd2hpbGVAMzoKICAgIGZyYW1lX2RpZyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czoxMgogICAgLy8gYXNzZXJ0KG1hLmxlbmd0aCA9PT0gbGVuZ3RoKQogICAgZHVwCiAgICBsZW4KICAgIGR1cAogICAgaW50Y18xIC8vIDgKICAgIC8KICAgIGZyYW1lX2RpZyAtMQogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6MTMKICAgIC8vIGFzc2VydChsZW5ndGgsICdoYXMgbGVuZ3RoJykKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXJ0IC8vIGhhcyBsZW5ndGgKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjE0CiAgICAvLyBjb25zdCBwb3BwZWQgPSBtYS5wb3AoKQogICAgaW50Y18xIC8vIDgKICAgIC0KICAgIGR1cAogICAgaW50Y18xIC8vIDgKICAgIC8KICAgIGRpZyAyCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAzCiAgICBleHRyYWN0MwogICAgc3dhcAogICAgaW50Y18xIC8vIDgKICAgICoKICAgIHVuY292ZXIgMgogICAgc3dhcAogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3QzCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50NjQKICAgIGJ1cnkgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6MTcKICAgIC8vIGFzc2VydChwb3BwZWQgPT09IGxlbmd0aCAtIDEpCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMiAvLyAxCiAgICAtCiAgICA9PQogICAgYXNzZXJ0CiAgICByZXRzdWIK", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA4IDEKICAgIGJ5dGVjYmxvY2sgMHggMHgwNjgxMDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIE11dGFibGVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKICAgIHB1c2hieXRlcyAweDJhMzM3NzcxIC8vIG1ldGhvZCAidGVzdCh1aW50NjQpdm9pZCIKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIG1hdGNoIG1haW5fdGVzdF9yb3V0ZUAzCgptYWluX2FmdGVyX2lmX2Vsc2VAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo0CiAgICAvLyBjbGFzcyBNdXRhYmxlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCiAgICByZXR1cm4KCm1haW5fdGVzdF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6NQogICAgLy8gdGVzdChsZW5ndGg6IHVpbnQ2NCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo0CiAgICAvLyBjbGFzcyBNdXRhYmxlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjUKICAgIC8vIHRlc3QobGVuZ3RoOiB1aW50NjQpIHsKICAgIGNhbGxzdWIgdGVzdAogICAgaW50Y18yIC8vIDEKICAgIHJldHVybgoKbWFpbl9iYXJlX3JvdXRpbmdANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIE11dGFibGVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgICEKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo6TXV0YWJsZUFycmF5c0FsZ28udGVzdChsZW5ndGg6IHVpbnQ2NCkgLT4gdm9pZDoKdGVzdDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjUKICAgIC8vIHRlc3QobGVuZ3RoOiB1aW50NjQpIHsKICAgIHByb3RvIDEgMAogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzAgLy8gIiIKCnRlc3Rfd2hpbGVfdG9wQDU6CiAgICBwdXNoaW50IDIwMTAgLy8gMjAxMAogICAgZ2xvYmFsIE9wY29kZUJ1ZGdldAogICAgPgogICAgYnogdGVzdF9hZnRlcl93aGlsZUAxMAogICAgaXR4bl9iZWdpbgogICAgcHVzaGludCA2IC8vIGFwcGwKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIHB1c2hpbnQgNSAvLyBEZWxldGVBcHBsaWNhdGlvbgogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIGJ5dGVjXzEgLy8gMHgwNjgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCiAgICBieXRlY18xIC8vIDB4MDY4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIGl0eG5fc3VibWl0CiAgICBiIHRlc3Rfd2hpbGVfdG9wQDUKCnRlc3RfYWZ0ZXJfd2hpbGVAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo3CiAgICAvLyBjb25zdCBtYSA9IG5ldyBNdXRhYmxlQXJyYXk8dWludDY0PigpCiAgICBieXRlY18wIC8vIDB4CiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjgKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewogICAgaW50Y18wIC8vIDAKICAgIGZyYW1lX2J1cnkgMQoKdGVzdF93aGlsZV90b3BAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjgKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewogICAgZnJhbWVfZGlnIDEKICAgIGZyYW1lX2RpZyAtMQogICAgPAogICAgYnogdGVzdF9hZnRlcl93aGlsZUAzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo5CiAgICAvLyBtYS5wdXNoKGkpCiAgICBmcmFtZV9kaWcgMQogICAgZHVwCiAgICBpdG9iCiAgICBmcmFtZV9kaWcgMAogICAgc3dhcAogICAgY29uY2F0IC8vIG9uIGVycm9yOiBtYXggYXJyYXkgbGVuZ3RoIGV4Y2VlZGVkCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjgKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewogICAgaW50Y18yIC8vIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMQogICAgYiB0ZXN0X3doaWxlX3RvcEAxCgp0ZXN0X2FmdGVyX3doaWxlQDM6CiAgICBmcmFtZV9kaWcgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6MTIKICAgIC8vIGFzc2VydChtYS5sZW5ndGggPT09IGxlbmd0aCkKICAgIGR1cAogICAgbGVuCiAgICBkdXAKICAgIGludGNfMSAvLyA4CiAgICAvCiAgICBmcmFtZV9kaWcgLTEKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjEzCiAgICAvLyBhc3NlcnQobGVuZ3RoLCAnaGFzIGxlbmd0aCcpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2VydCAvLyBoYXMgbGVuZ3RoCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czoxNAogICAgLy8gY29uc3QgcG9wcGVkID0gbWEucG9wKCkKICAgIGludGNfMSAvLyA4CiAgICAtCiAgICBkdXAKICAgIGludGNfMSAvLyA4CiAgICAvCiAgICBkaWcgMgogICAgaW50Y18wIC8vIDAKICAgIHVuY292ZXIgMwogICAgZXh0cmFjdDMKICAgIHN3YXAKICAgIGludGNfMSAvLyA4CiAgICAqCiAgICB1bmNvdmVyIDIKICAgIHN3YXAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MwogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDY0CiAgICBidXJ5IDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjE3CiAgICAvLyBhc3NlcnQocG9wcGVkID09PSBsZW5ndGggLSAxKQogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzIgLy8gMQogICAgLQogICAgPT0KICAgIGFzc2VydAogICAgcmV0c3ViCg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { diff --git a/tests/approvals/out/o1/mutable-arrays/MutableArraysAlgo.arc56.json b/tests/approvals/out/o1/mutable-arrays/MutableArraysAlgo.arc56.json index c9d03f4f3..e8d1b6d43 100644 --- a/tests/approvals/out/o1/mutable-arrays/MutableArraysAlgo.arc56.json +++ b/tests/approvals/out/o1/mutable-arrays/MutableArraysAlgo.arc56.json @@ -99,11 +99,11 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA4IDEKICAgIGJ5dGVjYmxvY2sgMHggMHgwNjgxMDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIE11dGFibGVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKICAgIHB1c2hieXRlcyAweDJhMzM3NzcxIC8vIG1ldGhvZCAidGVzdCh1aW50NjQpdm9pZCIKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIG1hdGNoIG1haW5fdGVzdF9yb3V0ZUAzCgptYWluX2FmdGVyX2lmX2Vsc2VAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo0CiAgICAvLyBjbGFzcyBNdXRhYmxlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCiAgICByZXR1cm4KCm1haW5fdGVzdF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6NQogICAgLy8gdGVzdChsZW5ndGg6IHVpbnQ2NCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo0CiAgICAvLyBjbGFzcyBNdXRhYmxlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjUKICAgIC8vIHRlc3QobGVuZ3RoOiB1aW50NjQpIHsKICAgIGNhbGxzdWIgdGVzdAogICAgaW50Y18yIC8vIDEKICAgIHJldHVybgoKbWFpbl9iYXJlX3JvdXRpbmdANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIE11dGFibGVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgICEKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo6TXV0YWJsZUFycmF5c0FsZ28udGVzdChsZW5ndGg6IHVpbnQ2NCkgLT4gdm9pZDoKdGVzdDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjUKICAgIC8vIHRlc3QobGVuZ3RoOiB1aW50NjQpIHsKICAgIHByb3RvIDEgMAogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzAgLy8gIiIKICAgIHB1c2hpbnQgMjAxMCAvLyAyMDEwCiAgICBnbG9iYWwgT3Bjb2RlQnVkZ2V0CiAgICA+CiAgICBieiB0ZXN0X2FmdGVyX3doaWxlQDEwCiAgICBpdHhuX2JlZ2luCiAgICBwdXNoaW50IDYgLy8gYXBwbAogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgcHVzaGludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgYnl0ZWNfMSAvLyAweDA2ODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KICAgIGJ5dGVjXzEgLy8gMHgwNjgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgaXR4bl9zdWJtaXQKICAgIGIgdGVzdAoKdGVzdF9hZnRlcl93aGlsZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjcKICAgIC8vIGNvbnN0IG1hID0gbmV3IE11dGFibGVBcnJheTx1aW50NjQ+KCkKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6OAogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICBpbnRjXzAgLy8gMAogICAgZnJhbWVfYnVyeSAxCgp0ZXN0X3doaWxlX3RvcEAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6OAogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICBmcmFtZV9kaWcgMQogICAgZnJhbWVfZGlnIC0xCiAgICA8CiAgICBieiB0ZXN0X2FmdGVyX3doaWxlQDMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjkKICAgIC8vIG1hLnB1c2goaSkKICAgIGZyYW1lX2RpZyAxCiAgICBkdXAKICAgIGl0b2IKICAgIGZyYW1lX2RpZyAwCiAgICBzd2FwCiAgICBjb25jYXQgLy8gb24gZXJyb3I6IG1heCBhcnJheSBsZW5ndGggZXhjZWVkZWQKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6OAogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICBpbnRjXzIgLy8gMQogICAgKwogICAgZnJhbWVfYnVyeSAxCiAgICBiIHRlc3Rfd2hpbGVfdG9wQDEKCnRlc3RfYWZ0ZXJfd2hpbGVAMzoKICAgIGZyYW1lX2RpZyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czoxMgogICAgLy8gYXNzZXJ0KG1hLmxlbmd0aCA9PT0gbGVuZ3RoKQogICAgZHVwCiAgICBsZW4KICAgIGR1cAogICAgaW50Y18xIC8vIDgKICAgIC8KICAgIGZyYW1lX2RpZyAtMQogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6MTMKICAgIC8vIGFzc2VydChsZW5ndGgsICdoYXMgbGVuZ3RoJykKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXJ0IC8vIGhhcyBsZW5ndGgKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjE0CiAgICAvLyBjb25zdCBwb3BwZWQgPSBtYS5wb3AoKQogICAgaW50Y18xIC8vIDgKICAgIC0KICAgIGR1cAogICAgaW50Y18xIC8vIDgKICAgIC8KICAgIGRpZyAyCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAzCiAgICBleHRyYWN0MwogICAgc3dhcAogICAgaW50Y18xIC8vIDgKICAgICoKICAgIHVuY292ZXIgMgogICAgc3dhcAogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3QzCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50NjQKICAgIGJ1cnkgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6MTcKICAgIC8vIGFzc2VydChwb3BwZWQgPT09IGxlbmd0aCAtIDEpCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMiAvLyAxCiAgICAtCiAgICA9PQogICAgYXNzZXJ0CiAgICByZXRzdWIK", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA4IDEKICAgIGJ5dGVjYmxvY2sgMHggMHgwNjgxMDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIE11dGFibGVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKICAgIHB1c2hieXRlcyAweDJhMzM3NzcxIC8vIG1ldGhvZCAidGVzdCh1aW50NjQpdm9pZCIKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIG1hdGNoIG1haW5fdGVzdF9yb3V0ZUAzCgptYWluX2FmdGVyX2lmX2Vsc2VAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo0CiAgICAvLyBjbGFzcyBNdXRhYmxlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCiAgICByZXR1cm4KCm1haW5fdGVzdF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6NQogICAgLy8gdGVzdChsZW5ndGg6IHVpbnQ2NCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo0CiAgICAvLyBjbGFzcyBNdXRhYmxlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjUKICAgIC8vIHRlc3QobGVuZ3RoOiB1aW50NjQpIHsKICAgIGNhbGxzdWIgdGVzdAogICAgaW50Y18yIC8vIDEKICAgIHJldHVybgoKbWFpbl9iYXJlX3JvdXRpbmdANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIE11dGFibGVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgICEKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo6TXV0YWJsZUFycmF5c0FsZ28udGVzdChsZW5ndGg6IHVpbnQ2NCkgLT4gdm9pZDoKdGVzdDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjUKICAgIC8vIHRlc3QobGVuZ3RoOiB1aW50NjQpIHsKICAgIHByb3RvIDEgMAogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzAgLy8gIiIKCnRlc3Rfd2hpbGVfdG9wQDU6CiAgICBwdXNoaW50IDIwMTAgLy8gMjAxMAogICAgZ2xvYmFsIE9wY29kZUJ1ZGdldAogICAgPgogICAgYnogdGVzdF9hZnRlcl93aGlsZUAxMAogICAgaXR4bl9iZWdpbgogICAgcHVzaGludCA2IC8vIGFwcGwKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIHB1c2hpbnQgNSAvLyBEZWxldGVBcHBsaWNhdGlvbgogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIGJ5dGVjXzEgLy8gMHgwNjgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCiAgICBieXRlY18xIC8vIDB4MDY4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIGl0eG5fc3VibWl0CiAgICBiIHRlc3Rfd2hpbGVfdG9wQDUKCnRlc3RfYWZ0ZXJfd2hpbGVAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo3CiAgICAvLyBjb25zdCBtYSA9IG5ldyBNdXRhYmxlQXJyYXk8dWludDY0PigpCiAgICBieXRlY18wIC8vIDB4CiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjgKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewogICAgaW50Y18wIC8vIDAKICAgIGZyYW1lX2J1cnkgMQoKdGVzdF93aGlsZV90b3BAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjgKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewogICAgZnJhbWVfZGlnIDEKICAgIGZyYW1lX2RpZyAtMQogICAgPAogICAgYnogdGVzdF9hZnRlcl93aGlsZUAzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo5CiAgICAvLyBtYS5wdXNoKGkpCiAgICBmcmFtZV9kaWcgMQogICAgZHVwCiAgICBpdG9iCiAgICBmcmFtZV9kaWcgMAogICAgc3dhcAogICAgY29uY2F0IC8vIG9uIGVycm9yOiBtYXggYXJyYXkgbGVuZ3RoIGV4Y2VlZGVkCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjgKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewogICAgaW50Y18yIC8vIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMQogICAgYiB0ZXN0X3doaWxlX3RvcEAxCgp0ZXN0X2FmdGVyX3doaWxlQDM6CiAgICBmcmFtZV9kaWcgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6MTIKICAgIC8vIGFzc2VydChtYS5sZW5ndGggPT09IGxlbmd0aCkKICAgIGR1cAogICAgbGVuCiAgICBkdXAKICAgIGludGNfMSAvLyA4CiAgICAvCiAgICBmcmFtZV9kaWcgLTEKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjEzCiAgICAvLyBhc3NlcnQobGVuZ3RoLCAnaGFzIGxlbmd0aCcpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2VydCAvLyBoYXMgbGVuZ3RoCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czoxNAogICAgLy8gY29uc3QgcG9wcGVkID0gbWEucG9wKCkKICAgIGludGNfMSAvLyA4CiAgICAtCiAgICBkdXAKICAgIGludGNfMSAvLyA4CiAgICAvCiAgICBkaWcgMgogICAgaW50Y18wIC8vIDAKICAgIHVuY292ZXIgMwogICAgZXh0cmFjdDMKICAgIHN3YXAKICAgIGludGNfMSAvLyA4CiAgICAqCiAgICB1bmNvdmVyIDIKICAgIHN3YXAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MwogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDY0CiAgICBidXJ5IDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjE3CiAgICAvLyBhc3NlcnQocG9wcGVkID09PSBsZW5ndGggLSAxKQogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzIgLy8gMQogICAgLQogICAgPT0KICAgIGFzc2VydAogICAgcmV0c3ViCg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { - "approval": "CiADAAgBJgIAAwaBATEbQQAfgAQqM3dxNhoAjgEAAiJDMRkURDEYRDYaAReIAA0kQzEZQP/pMRgURCRDigEAIiiB2g8yDA1BABaxgQayEIEFshkpsh4psh8isgGzQv/cKIwAIowBiwGL/wxBABGLAUkWiwBMUIwAJAiMAUL/54sASRVJIwqL/xJEi/9EIwlJIwpLAiJPA1hMIwtPAkwjWCJbRQGL/yQJEkSJ", + "approval": "CiADAAgBJgIAAwaBATEbQQAfgAQqM3dxNhoAjgEAAiJDMRkURDEYRDYaAReIAA0kQzEZQP/pMRgURCRDigEAIiiB2g8yDA1BABaxgQayEIEFshkpsh4psh8isgGzQv/hKIwAIowBiwGL/wxBABGLAUkWiwBMUIwAJAiMAUL/54sASRVJIwqL/xJEi/9EIwlJIwpLAiJPA1hMIwtPAkwjWCJbRQGL/yQJEkSJ", "clear": "CoEBQw==" }, "compilerInfo": { @@ -111,7 +111,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/named-types/MyContract.arc56.json b/tests/approvals/out/o1/named-types/MyContract.arc56.json index 125931760..ea508400a 100644 --- a/tests/approvals/out/o1/named-types/MyContract.arc56.json +++ b/tests/approvals/out/o1/named-types/MyContract.arc56.json @@ -217,7 +217,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/native-arrays/NativeArraysAlgo.arc56.json b/tests/approvals/out/o1/native-arrays/NativeArraysAlgo.arc56.json index a61289ece..f0d2954d7 100644 --- a/tests/approvals/out/o1/native-arrays/NativeArraysAlgo.arc56.json +++ b/tests/approvals/out/o1/native-arrays/NativeArraysAlgo.arc56.json @@ -171,7 +171,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/ops/MyContract.arc56.json b/tests/approvals/out/o1/ops/MyContract.arc56.json index 1e9b7b5da..bca5664e6 100644 --- a/tests/approvals/out/o1/ops/MyContract.arc56.json +++ b/tests/approvals/out/o1/ops/MyContract.arc56.json @@ -94,7 +94,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/precompiled-apps/Hello.arc56.json b/tests/approvals/out/o1/precompiled-apps/Hello.arc56.json index 177a6f855..af35e5222 100644 --- a/tests/approvals/out/o1/precompiled-apps/Hello.arc56.json +++ b/tests/approvals/out/o1/precompiled-apps/Hello.arc56.json @@ -177,7 +177,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/precompiled-apps/HelloTemplate.arc56.json b/tests/approvals/out/o1/precompiled-apps/HelloTemplate.arc56.json index 9273d603c..94c93747c 100644 --- a/tests/approvals/out/o1/precompiled-apps/HelloTemplate.arc56.json +++ b/tests/approvals/out/o1/precompiled-apps/HelloTemplate.arc56.json @@ -172,7 +172,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/precompiled-apps/HelloTemplateCustomPrefix.arc56.json b/tests/approvals/out/o1/precompiled-apps/HelloTemplateCustomPrefix.arc56.json index a0a12a2de..5808c9d73 100644 --- a/tests/approvals/out/o1/precompiled-apps/HelloTemplateCustomPrefix.arc56.json +++ b/tests/approvals/out/o1/precompiled-apps/HelloTemplateCustomPrefix.arc56.json @@ -172,7 +172,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/precompiled-apps/LargeProgram.arc56.json b/tests/approvals/out/o1/precompiled-apps/LargeProgram.arc56.json index 836181374..620bd8bb3 100644 --- a/tests/approvals/out/o1/precompiled-apps/LargeProgram.arc56.json +++ b/tests/approvals/out/o1/precompiled-apps/LargeProgram.arc56.json @@ -117,7 +117,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/precompiled-factory/HelloFactory.arc56.json b/tests/approvals/out/o1/precompiled-factory/HelloFactory.arc56.json index 98dd04d41..d3a927e3c 100644 --- a/tests/approvals/out/o1/precompiled-factory/HelloFactory.arc56.json +++ b/tests/approvals/out/o1/precompiled-factory/HelloFactory.arc56.json @@ -157,7 +157,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/prefix-postfix-operators/DemoContract.arc56.json b/tests/approvals/out/o1/prefix-postfix-operators/DemoContract.arc56.json index adc891548..c97afc931 100644 --- a/tests/approvals/out/o1/prefix-postfix-operators/DemoContract.arc56.json +++ b/tests/approvals/out/o1/prefix-postfix-operators/DemoContract.arc56.json @@ -94,7 +94,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/state-totals/BaseWithState.arc56.json b/tests/approvals/out/o1/state-totals/BaseWithState.arc56.json index a487a134d..68a08c7fc 100644 --- a/tests/approvals/out/o1/state-totals/BaseWithState.arc56.json +++ b/tests/approvals/out/o1/state-totals/BaseWithState.arc56.json @@ -116,7 +116,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/state-totals/ExtendsSubWithTotals.arc56.json b/tests/approvals/out/o1/state-totals/ExtendsSubWithTotals.arc56.json index 3b87f524b..aef5d48f2 100644 --- a/tests/approvals/out/o1/state-totals/ExtendsSubWithTotals.arc56.json +++ b/tests/approvals/out/o1/state-totals/ExtendsSubWithTotals.arc56.json @@ -121,7 +121,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/state-totals/SubClassWithExplicitTotals.arc56.json b/tests/approvals/out/o1/state-totals/SubClassWithExplicitTotals.arc56.json index f62794311..8e865db57 100644 --- a/tests/approvals/out/o1/state-totals/SubClassWithExplicitTotals.arc56.json +++ b/tests/approvals/out/o1/state-totals/SubClassWithExplicitTotals.arc56.json @@ -116,7 +116,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/state-totals/SubClassWithState.arc56.json b/tests/approvals/out/o1/state-totals/SubClassWithState.arc56.json index 24615fb57..f38307e26 100644 --- a/tests/approvals/out/o1/state-totals/SubClassWithState.arc56.json +++ b/tests/approvals/out/o1/state-totals/SubClassWithState.arc56.json @@ -126,7 +126,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/strings/StringContract.arc56.json b/tests/approvals/out/o1/strings/StringContract.arc56.json index 56c5c38a6..cc1a155df 100644 --- a/tests/approvals/out/o1/strings/StringContract.arc56.json +++ b/tests/approvals/out/o1/strings/StringContract.arc56.json @@ -126,7 +126,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/switch-statements/DemoContract.arc56.json b/tests/approvals/out/o1/switch-statements/DemoContract.arc56.json index b90ffd863..4dc5922cc 100644 --- a/tests/approvals/out/o1/switch-statements/DemoContract.arc56.json +++ b/tests/approvals/out/o1/switch-statements/DemoContract.arc56.json @@ -94,7 +94,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/template-var/MyContract.arc56.json b/tests/approvals/out/o1/template-var/MyContract.arc56.json index 20a0563a0..f363d2ed3 100644 --- a/tests/approvals/out/o1/template-var/MyContract.arc56.json +++ b/tests/approvals/out/o1/template-var/MyContract.arc56.json @@ -148,7 +148,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o1/while-loops/DemoContract.arc56.json b/tests/approvals/out/o1/while-loops/DemoContract.arc56.json index 4ae401759..6f20af9b1 100644 --- a/tests/approvals/out/o1/while-loops/DemoContract.arc56.json +++ b/tests/approvals/out/o1/while-loops/DemoContract.arc56.json @@ -99,7 +99,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/abi-decorators/AbiDecorators.arc56.json b/tests/approvals/out/o2/abi-decorators/AbiDecorators.arc56.json index b7ba07d4b..1fd5144b2 100644 --- a/tests/approvals/out/o2/abi-decorators/AbiDecorators.arc56.json +++ b/tests/approvals/out/o2/abi-decorators/AbiDecorators.arc56.json @@ -199,7 +199,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/abi-decorators/BaseAbi.arc56.json b/tests/approvals/out/o2/abi-decorators/BaseAbi.arc56.json index 7ac5f4388..13ed354b9 100644 --- a/tests/approvals/out/o2/abi-decorators/BaseAbi.arc56.json +++ b/tests/approvals/out/o2/abi-decorators/BaseAbi.arc56.json @@ -94,7 +94,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/abi-decorators/OverloadedMethods.arc56.json b/tests/approvals/out/o2/abi-decorators/OverloadedMethods.arc56.json index 866bf9f4d..0f5ef94a7 100644 --- a/tests/approvals/out/o2/abi-decorators/OverloadedMethods.arc56.json +++ b/tests/approvals/out/o2/abi-decorators/OverloadedMethods.arc56.json @@ -126,7 +126,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/abi-decorators/SubAbi.arc56.json b/tests/approvals/out/o2/abi-decorators/SubAbi.arc56.json index f05549db0..4997e6dce 100644 --- a/tests/approvals/out/o2/abi-decorators/SubAbi.arc56.json +++ b/tests/approvals/out/o2/abi-decorators/SubAbi.arc56.json @@ -94,7 +94,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/abi-decorators/SubAbi2.arc56.json b/tests/approvals/out/o2/abi-decorators/SubAbi2.arc56.json index 4ed909348..619c00460 100644 --- a/tests/approvals/out/o2/abi-decorators/SubAbi2.arc56.json +++ b/tests/approvals/out/o2/abi-decorators/SubAbi2.arc56.json @@ -94,7 +94,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/accounts/AccountsContract.arc56.json b/tests/approvals/out/o2/accounts/AccountsContract.arc56.json index 990b0edc3..042697ec1 100644 --- a/tests/approvals/out/o2/accounts/AccountsContract.arc56.json +++ b/tests/approvals/out/o2/accounts/AccountsContract.arc56.json @@ -352,7 +352,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/arc-28-events/EventEmitter.arc56.json b/tests/approvals/out/o2/arc-28-events/EventEmitter.arc56.json index 5008254d4..414d68921 100644 --- a/tests/approvals/out/o2/arc-28-events/EventEmitter.arc56.json +++ b/tests/approvals/out/o2/arc-28-events/EventEmitter.arc56.json @@ -238,7 +238,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [ diff --git a/tests/approvals/out/o2/arc4-encode-decode/Arc4EncodeDecode.arc56.json b/tests/approvals/out/o2/arc4-encode-decode/Arc4EncodeDecode.arc56.json index 7d07979ef..fc4a53b16 100644 --- a/tests/approvals/out/o2/arc4-encode-decode/Arc4EncodeDecode.arc56.json +++ b/tests/approvals/out/o2/arc4-encode-decode/Arc4EncodeDecode.arc56.json @@ -204,7 +204,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/arc4-hybrid/Arc4HybridAlgo.arc56.json b/tests/approvals/out/o2/arc4-hybrid/Arc4HybridAlgo.arc56.json index f4a455738..842761884 100644 --- a/tests/approvals/out/o2/arc4-hybrid/Arc4HybridAlgo.arc56.json +++ b/tests/approvals/out/o2/arc4-hybrid/Arc4HybridAlgo.arc56.json @@ -94,7 +94,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/arc4-method-selector/ContractOne.arc56.json b/tests/approvals/out/o2/arc4-method-selector/ContractOne.arc56.json index 64f4bf4ec..9f4c8735b 100644 --- a/tests/approvals/out/o2/arc4-method-selector/ContractOne.arc56.json +++ b/tests/approvals/out/o2/arc4-method-selector/ContractOne.arc56.json @@ -112,7 +112,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/arc4-method-selector/ContractTwo.arc56.json b/tests/approvals/out/o2/arc4-method-selector/ContractTwo.arc56.json index 7666601a4..dd13c2439 100644 --- a/tests/approvals/out/o2/arc4-method-selector/ContractTwo.arc56.json +++ b/tests/approvals/out/o2/arc4-method-selector/ContractTwo.arc56.json @@ -112,7 +112,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/arc4-struct/StructDemo.arc56.json b/tests/approvals/out/o2/arc4-struct/StructDemo.arc56.json index d62971a8a..de750be4b 100644 --- a/tests/approvals/out/o2/arc4-struct/StructDemo.arc56.json +++ b/tests/approvals/out/o2/arc4-struct/StructDemo.arc56.json @@ -230,7 +230,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/array-destructuring/ArrayDestructuringAlgo.arc56.json b/tests/approvals/out/o2/array-destructuring/ArrayDestructuringAlgo.arc56.json index 23a181d43..0dcb20c31 100644 --- a/tests/approvals/out/o2/array-destructuring/ArrayDestructuringAlgo.arc56.json +++ b/tests/approvals/out/o2/array-destructuring/ArrayDestructuringAlgo.arc56.json @@ -150,7 +150,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/assert-match/AssertMatchContract.arc56.json b/tests/approvals/out/o2/assert-match/AssertMatchContract.arc56.json index e007149ea..b45ed281f 100644 --- a/tests/approvals/out/o2/assert-match/AssertMatchContract.arc56.json +++ b/tests/approvals/out/o2/assert-match/AssertMatchContract.arc56.json @@ -112,7 +112,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/asset-proxy/AssetProxyAlgo.arc56.json b/tests/approvals/out/o2/asset-proxy/AssetProxyAlgo.arc56.json index d1dfc8893..b11fe5142 100644 --- a/tests/approvals/out/o2/asset-proxy/AssetProxyAlgo.arc56.json +++ b/tests/approvals/out/o2/asset-proxy/AssetProxyAlgo.arc56.json @@ -123,7 +123,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/avm11/AVM11Contract.arc56.json b/tests/approvals/out/o2/avm11/AVM11Contract.arc56.json index 595d5d73b..ab206abe2 100644 --- a/tests/approvals/out/o2/avm11/AVM11Contract.arc56.json +++ b/tests/approvals/out/o2/avm11/AVM11Contract.arc56.json @@ -172,7 +172,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/box-enum-contract/BoxContract.arc56.json b/tests/approvals/out/o2/box-enum-contract/BoxContract.arc56.json index 1cb399911..eb88a30bc 100644 --- a/tests/approvals/out/o2/box-enum-contract/BoxContract.arc56.json +++ b/tests/approvals/out/o2/box-enum-contract/BoxContract.arc56.json @@ -132,7 +132,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/byte-expressions/DemoContract.arc56.json b/tests/approvals/out/o2/byte-expressions/DemoContract.arc56.json index 26bc01cad..8a0e3e6b4 100644 --- a/tests/approvals/out/o2/byte-expressions/DemoContract.arc56.json +++ b/tests/approvals/out/o2/byte-expressions/DemoContract.arc56.json @@ -94,7 +94,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/destructured-params/DestructuredParamsAlgo.arc56.json b/tests/approvals/out/o2/destructured-params/DestructuredParamsAlgo.arc56.json index 152c3b9a4..0b5108751 100644 --- a/tests/approvals/out/o2/destructured-params/DestructuredParamsAlgo.arc56.json +++ b/tests/approvals/out/o2/destructured-params/DestructuredParamsAlgo.arc56.json @@ -133,7 +133,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/do-loops/DoLoopsAlgo.arc56.json b/tests/approvals/out/o2/do-loops/DoLoopsAlgo.arc56.json index 183ed8d60..c80efeea4 100644 --- a/tests/approvals/out/o2/do-loops/DoLoopsAlgo.arc56.json +++ b/tests/approvals/out/o2/do-loops/DoLoopsAlgo.arc56.json @@ -153,7 +153,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/for-loops/ForLoopsAlgo.arc56.json b/tests/approvals/out/o2/for-loops/ForLoopsAlgo.arc56.json index 43a6632ab..afc1473f4 100644 --- a/tests/approvals/out/o2/for-loops/ForLoopsAlgo.arc56.json +++ b/tests/approvals/out/o2/for-loops/ForLoopsAlgo.arc56.json @@ -200,7 +200,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/for-of-loops/ForOfLoopsAlgo.arc56.json b/tests/approvals/out/o2/for-of-loops/ForOfLoopsAlgo.arc56.json index 6312750cc..1a061b8ac 100644 --- a/tests/approvals/out/o2/for-of-loops/ForOfLoopsAlgo.arc56.json +++ b/tests/approvals/out/o2/for-of-loops/ForOfLoopsAlgo.arc56.json @@ -191,7 +191,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/global-state/TestArc4.arc56.json b/tests/approvals/out/o2/global-state/TestArc4.arc56.json index 53e1ae139..54fe00409 100644 --- a/tests/approvals/out/o2/global-state/TestArc4.arc56.json +++ b/tests/approvals/out/o2/global-state/TestArc4.arc56.json @@ -126,7 +126,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/implicit-create/BaseWithAbiCreate.arc56.json b/tests/approvals/out/o2/implicit-create/BaseWithAbiCreate.arc56.json index 6680de479..ad53bb4a0 100644 --- a/tests/approvals/out/o2/implicit-create/BaseWithAbiCreate.arc56.json +++ b/tests/approvals/out/o2/implicit-create/BaseWithAbiCreate.arc56.json @@ -86,7 +86,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/implicit-create/BaseWithBareCreate.arc56.json b/tests/approvals/out/o2/implicit-create/BaseWithBareCreate.arc56.json index 511dbab48..b11f68358 100644 --- a/tests/approvals/out/o2/implicit-create/BaseWithBareCreate.arc56.json +++ b/tests/approvals/out/o2/implicit-create/BaseWithBareCreate.arc56.json @@ -65,7 +65,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/implicit-create/ExplicitAbiCreateFromBase.arc56.json b/tests/approvals/out/o2/implicit-create/ExplicitAbiCreateFromBase.arc56.json index 3bdd186d7..912954cce 100644 --- a/tests/approvals/out/o2/implicit-create/ExplicitAbiCreateFromBase.arc56.json +++ b/tests/approvals/out/o2/implicit-create/ExplicitAbiCreateFromBase.arc56.json @@ -86,7 +86,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/implicit-create/ExplicitBareCreateFromBase.arc56.json b/tests/approvals/out/o2/implicit-create/ExplicitBareCreateFromBase.arc56.json index f5861bcbb..27108bf31 100644 --- a/tests/approvals/out/o2/implicit-create/ExplicitBareCreateFromBase.arc56.json +++ b/tests/approvals/out/o2/implicit-create/ExplicitBareCreateFromBase.arc56.json @@ -65,7 +65,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/implicit-create/NoBare.arc56.json b/tests/approvals/out/o2/implicit-create/NoBare.arc56.json index 51e0d3967..bd3f58332 100644 --- a/tests/approvals/out/o2/implicit-create/NoBare.arc56.json +++ b/tests/approvals/out/o2/implicit-create/NoBare.arc56.json @@ -94,7 +94,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/implicit-create/NoNoOp.arc56.json b/tests/approvals/out/o2/implicit-create/NoNoOp.arc56.json index bddcd3602..1c80cc69e 100644 --- a/tests/approvals/out/o2/implicit-create/NoNoOp.arc56.json +++ b/tests/approvals/out/o2/implicit-create/NoNoOp.arc56.json @@ -73,7 +73,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/inheritance-b/ConcreteArc4Contract.arc56.json b/tests/approvals/out/o2/inheritance-b/ConcreteArc4Contract.arc56.json index 42e5d6a0d..89895ce75 100644 --- a/tests/approvals/out/o2/inheritance-b/ConcreteArc4Contract.arc56.json +++ b/tests/approvals/out/o2/inheritance-b/ConcreteArc4Contract.arc56.json @@ -132,7 +132,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/itxn/ItxnDemoContract.arc56.json b/tests/approvals/out/o2/itxn/ItxnDemoContract.arc56.json index 97fc714a1..e74ee8c8d 100644 --- a/tests/approvals/out/o2/itxn/ItxnDemoContract.arc56.json +++ b/tests/approvals/out/o2/itxn/ItxnDemoContract.arc56.json @@ -253,7 +253,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/jsdoc/JSDocDemo.arc56.json b/tests/approvals/out/o2/jsdoc/JSDocDemo.arc56.json index 955b9b31d..5ff221d99 100644 --- a/tests/approvals/out/o2/jsdoc/JSDocDemo.arc56.json +++ b/tests/approvals/out/o2/jsdoc/JSDocDemo.arc56.json @@ -161,7 +161,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/local-state/LocalStateDemo.arc56.json b/tests/approvals/out/o2/local-state/LocalStateDemo.arc56.json index fc95c4960..6d8dd29e6 100644 --- a/tests/approvals/out/o2/local-state/LocalStateDemo.arc56.json +++ b/tests/approvals/out/o2/local-state/LocalStateDemo.arc56.json @@ -253,7 +253,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/match-expr/MatchExprAlgo.arc56.json b/tests/approvals/out/o2/match-expr/MatchExprAlgo.arc56.json index abb07347c..ef594ac9a 100644 --- a/tests/approvals/out/o2/match-expr/MatchExprAlgo.arc56.json +++ b/tests/approvals/out/o2/match-expr/MatchExprAlgo.arc56.json @@ -105,7 +105,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/multi-inheritance/BaseOne.arc56.json b/tests/approvals/out/o2/multi-inheritance/BaseOne.arc56.json index df799e428..24e5f647c 100644 --- a/tests/approvals/out/o2/multi-inheritance/BaseOne.arc56.json +++ b/tests/approvals/out/o2/multi-inheritance/BaseOne.arc56.json @@ -141,7 +141,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/multi-inheritance/BaseTwo.arc56.json b/tests/approvals/out/o2/multi-inheritance/BaseTwo.arc56.json index 245e06216..8fd0109fc 100644 --- a/tests/approvals/out/o2/multi-inheritance/BaseTwo.arc56.json +++ b/tests/approvals/out/o2/multi-inheritance/BaseTwo.arc56.json @@ -142,7 +142,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/multi-inheritance/CommonBase.arc56.json b/tests/approvals/out/o2/multi-inheritance/CommonBase.arc56.json index 6bdaea9d8..ddde90996 100644 --- a/tests/approvals/out/o2/multi-inheritance/CommonBase.arc56.json +++ b/tests/approvals/out/o2/multi-inheritance/CommonBase.arc56.json @@ -118,7 +118,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/multi-inheritance/MultiBases.arc56.json b/tests/approvals/out/o2/multi-inheritance/MultiBases.arc56.json index 6ae977173..8ac825548 100644 --- a/tests/approvals/out/o2/multi-inheritance/MultiBases.arc56.json +++ b/tests/approvals/out/o2/multi-inheritance/MultiBases.arc56.json @@ -241,7 +241,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/mutable-arrays/MutableArraysAlgo.arc56.json b/tests/approvals/out/o2/mutable-arrays/MutableArraysAlgo.arc56.json index dcd9cafde..4a177708e 100644 --- a/tests/approvals/out/o2/mutable-arrays/MutableArraysAlgo.arc56.json +++ b/tests/approvals/out/o2/mutable-arrays/MutableArraysAlgo.arc56.json @@ -111,7 +111,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/named-types/MyContract.arc56.json b/tests/approvals/out/o2/named-types/MyContract.arc56.json index 26875795d..2d3a5432d 100644 --- a/tests/approvals/out/o2/named-types/MyContract.arc56.json +++ b/tests/approvals/out/o2/named-types/MyContract.arc56.json @@ -217,7 +217,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/native-arrays/NativeArraysAlgo.arc56.json b/tests/approvals/out/o2/native-arrays/NativeArraysAlgo.arc56.json index d68871370..1a0a8ac2b 100644 --- a/tests/approvals/out/o2/native-arrays/NativeArraysAlgo.arc56.json +++ b/tests/approvals/out/o2/native-arrays/NativeArraysAlgo.arc56.json @@ -171,7 +171,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/ops/MyContract.arc56.json b/tests/approvals/out/o2/ops/MyContract.arc56.json index 1e9b7b5da..bca5664e6 100644 --- a/tests/approvals/out/o2/ops/MyContract.arc56.json +++ b/tests/approvals/out/o2/ops/MyContract.arc56.json @@ -94,7 +94,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/precompiled-apps/Hello.arc56.json b/tests/approvals/out/o2/precompiled-apps/Hello.arc56.json index e133c32b5..967ce88c5 100644 --- a/tests/approvals/out/o2/precompiled-apps/Hello.arc56.json +++ b/tests/approvals/out/o2/precompiled-apps/Hello.arc56.json @@ -177,7 +177,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/precompiled-apps/HelloTemplate.arc56.json b/tests/approvals/out/o2/precompiled-apps/HelloTemplate.arc56.json index 16e2b8aa7..069aeb82a 100644 --- a/tests/approvals/out/o2/precompiled-apps/HelloTemplate.arc56.json +++ b/tests/approvals/out/o2/precompiled-apps/HelloTemplate.arc56.json @@ -172,7 +172,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/precompiled-apps/HelloTemplateCustomPrefix.arc56.json b/tests/approvals/out/o2/precompiled-apps/HelloTemplateCustomPrefix.arc56.json index ce326e1dd..b02d91c39 100644 --- a/tests/approvals/out/o2/precompiled-apps/HelloTemplateCustomPrefix.arc56.json +++ b/tests/approvals/out/o2/precompiled-apps/HelloTemplateCustomPrefix.arc56.json @@ -172,7 +172,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/precompiled-apps/LargeProgram.arc56.json b/tests/approvals/out/o2/precompiled-apps/LargeProgram.arc56.json index 453c03e99..e7cf92e6b 100644 --- a/tests/approvals/out/o2/precompiled-apps/LargeProgram.arc56.json +++ b/tests/approvals/out/o2/precompiled-apps/LargeProgram.arc56.json @@ -117,7 +117,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/precompiled-factory/HelloFactory.arc56.json b/tests/approvals/out/o2/precompiled-factory/HelloFactory.arc56.json index 26a82bfbd..859ba1638 100644 --- a/tests/approvals/out/o2/precompiled-factory/HelloFactory.arc56.json +++ b/tests/approvals/out/o2/precompiled-factory/HelloFactory.arc56.json @@ -157,7 +157,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/prefix-postfix-operators/DemoContract.arc56.json b/tests/approvals/out/o2/prefix-postfix-operators/DemoContract.arc56.json index adc891548..c97afc931 100644 --- a/tests/approvals/out/o2/prefix-postfix-operators/DemoContract.arc56.json +++ b/tests/approvals/out/o2/prefix-postfix-operators/DemoContract.arc56.json @@ -94,7 +94,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/state-totals/BaseWithState.arc56.json b/tests/approvals/out/o2/state-totals/BaseWithState.arc56.json index 5e9c68cea..ba5401753 100644 --- a/tests/approvals/out/o2/state-totals/BaseWithState.arc56.json +++ b/tests/approvals/out/o2/state-totals/BaseWithState.arc56.json @@ -116,7 +116,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/state-totals/ExtendsSubWithTotals.arc56.json b/tests/approvals/out/o2/state-totals/ExtendsSubWithTotals.arc56.json index 1fc4ee68e..a1ed2611f 100644 --- a/tests/approvals/out/o2/state-totals/ExtendsSubWithTotals.arc56.json +++ b/tests/approvals/out/o2/state-totals/ExtendsSubWithTotals.arc56.json @@ -121,7 +121,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/state-totals/SubClassWithExplicitTotals.arc56.json b/tests/approvals/out/o2/state-totals/SubClassWithExplicitTotals.arc56.json index 7e7a8ac1c..2d11768f1 100644 --- a/tests/approvals/out/o2/state-totals/SubClassWithExplicitTotals.arc56.json +++ b/tests/approvals/out/o2/state-totals/SubClassWithExplicitTotals.arc56.json @@ -116,7 +116,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/state-totals/SubClassWithState.arc56.json b/tests/approvals/out/o2/state-totals/SubClassWithState.arc56.json index 3b052b9c6..3702f8828 100644 --- a/tests/approvals/out/o2/state-totals/SubClassWithState.arc56.json +++ b/tests/approvals/out/o2/state-totals/SubClassWithState.arc56.json @@ -126,7 +126,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/strings/StringContract.arc56.json b/tests/approvals/out/o2/strings/StringContract.arc56.json index e6e382406..8bab1b997 100644 --- a/tests/approvals/out/o2/strings/StringContract.arc56.json +++ b/tests/approvals/out/o2/strings/StringContract.arc56.json @@ -126,7 +126,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/switch-statements/DemoContract.arc56.json b/tests/approvals/out/o2/switch-statements/DemoContract.arc56.json index c717cb6c0..9eaae1114 100644 --- a/tests/approvals/out/o2/switch-statements/DemoContract.arc56.json +++ b/tests/approvals/out/o2/switch-statements/DemoContract.arc56.json @@ -94,7 +94,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/template-var/MyContract.arc56.json b/tests/approvals/out/o2/template-var/MyContract.arc56.json index 20a0563a0..f363d2ed3 100644 --- a/tests/approvals/out/o2/template-var/MyContract.arc56.json +++ b/tests/approvals/out/o2/template-var/MyContract.arc56.json @@ -148,7 +148,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/o2/while-loops/DemoContract.arc56.json b/tests/approvals/out/o2/while-loops/DemoContract.arc56.json index 2262ec42a..cabff9d1f 100644 --- a/tests/approvals/out/o2/while-loops/DemoContract.arc56.json +++ b/tests/approvals/out/o2/while-loops/DemoContract.arc56.json @@ -99,7 +99,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/abi-decorators/AbiDecorators.approval.teal b/tests/approvals/out/unoptimized/abi-decorators/AbiDecorators.approval.teal index fcbbc0199..062253bb0 100644 --- a/tests/approvals/out/unoptimized/abi-decorators/AbiDecorators.approval.teal +++ b/tests/approvals/out/unoptimized/abi-decorators/AbiDecorators.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 bytecblock 0x151f7c75 + +main_block@0: txn ApplicationID bnz main_after_if_else@2 @@ -145,21 +147,29 @@ main_bare_routing@12: // tests/approvals/abi-decorators.algo.ts::AbiDecorators.justNoop() -> void: justNoop: + +justNoop_block@0: retsub // tests/approvals/abi-decorators.algo.ts::AbiDecorators.createMethod() -> void: createMethod: + +createMethod_block@0: retsub // tests/approvals/abi-decorators.algo.ts::AbiDecorators.allActions() -> void: allActions: + +allActions_block@0: retsub // tests/approvals/abi-decorators.algo.ts::AbiDecorators.readonly() -> uint64: readonly: + +readonly_block@0: // tests/approvals/abi-decorators.algo.ts:13 // return 5 pushint 5 // 5 @@ -172,6 +182,8 @@ methodWithDefaults: // @abimethod({ defaultArguments: { a: { from: 'globalValue' }, b: { from: 'readonly' }, c: { constant: 145 } } }) // public methodWithDefaults(a: uint64, b: uint64, c: uint64): uint64 { proto 3 1 + +methodWithDefaults_block@0: // tests/approvals/abi-decorators.algo.ts:20 // return a * b + c frame_dig -3 @@ -185,6 +197,8 @@ methodWithDefaults: // tests/approvals/abi-decorators.algo.ts::AbiDecorators.constructor() -> void: constructor: +constructor_block@0: + constructor_block@1: constructor_after_inlined_@algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.constructor@2: diff --git a/tests/approvals/out/unoptimized/abi-decorators/AbiDecorators.arc32.json b/tests/approvals/out/unoptimized/abi-decorators/AbiDecorators.arc32.json index 5817764d3..097c9ab22 100644 --- a/tests/approvals/out/unoptimized/abi-decorators/AbiDecorators.arc32.json +++ b/tests/approvals/out/unoptimized/abi-decorators/AbiDecorators.arc32.json @@ -53,8 +53,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKCm1haW5faWZfYm9keUAxOgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CgptYWluX2Jsb2NrQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo0CiAgICAvLyBleHBvcnQgZGVmYXVsdCBjbGFzcyBBYmlEZWNvcmF0b3JzIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAMTIKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBkZWZhdWx0IGNsYXNzIEFiaURlY29yYXRvcnMgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhmOTAyMGQ1YSAvLyBtZXRob2QgImp1c3ROb29wKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4ZTE3OWY5ZDQgLy8gbWV0aG9kICJjcmVhdGVNZXRob2QoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHg2M2MyN2FiYSAvLyBtZXRob2QgImFsbEFjdGlvbnMoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHgxNGQxYjZlYSAvLyBtZXRob2QgIm92ZXJyaWRlUmVhZG9ubHlOYW1lKCl1aW50NjQiCiAgICBwdXNoYnl0ZXMgMHhjMTM2NzM3NCAvLyBtZXRob2QgIm1ldGhvZFdpdGhEZWZhdWx0cyh1aW50NjQsdWludDY0LHVpbnQ2NCl1aW50NjQiCiAgICB1bmNvdmVyIDUKICAgIG1hdGNoIG1haW5fanVzdE5vb3Bfcm91dGVANSBtYWluX2NyZWF0ZU1ldGhvZF9yb3V0ZUA2IG1haW5fYWxsQWN0aW9uc19yb3V0ZUA3IG1haW5fb3ZlcnJpZGVSZWFkb25seU5hbWVfcm91dGVAOCBtYWluX21ldGhvZFdpdGhEZWZhdWx0c19yb3V0ZUA5CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTA6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTE6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo0CiAgICAvLyBleHBvcnQgZGVmYXVsdCBjbGFzcyBBYmlEZWNvcmF0b3JzIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6QWJpRGVjb3JhdG9ycy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNDoKICAgIHJldHVybgoKbWFpbl9tZXRob2RXaXRoRGVmYXVsdHNfcm91dGVAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjE4CiAgICAvLyBAYWJpbWV0aG9kKHsgZGVmYXVsdEFyZ3VtZW50czogeyBhOiB7IGZyb206ICdnbG9iYWxWYWx1ZScgfSwgYjogeyBmcm9tOiAncmVhZG9ubHknIH0sIGM6IHsgY29uc3RhbnQ6IDE0NSB9IH0gfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBkZWZhdWx0IGNsYXNzIEFiaURlY29yYXRvcnMgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoxOAogICAgLy8gQGFiaW1ldGhvZCh7IGRlZmF1bHRBcmd1bWVudHM6IHsgYTogeyBmcm9tOiAnZ2xvYmFsVmFsdWUnIH0sIGI6IHsgZnJvbTogJ3JlYWRvbmx5JyB9LCBjOiB7IGNvbnN0YW50OiAxNDUgfSB9IH0pCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBjYWxsc3ViIG1ldGhvZFdpdGhEZWZhdWx0cwogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpBYmlEZWNvcmF0b3JzLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX292ZXJyaWRlUmVhZG9ubHlOYW1lX3JvdXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoxMQogICAgLy8gQGFiaW1ldGhvZCh7IHJlYWRvbmx5OiB0cnVlLCBuYW1lOiAnb3ZlcnJpZGVSZWFkb25seU5hbWUnIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHJlYWRvbmx5CiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkFiaURlY29yYXRvcnMuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fYWxsQWN0aW9uc19yb3V0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OQogICAgLy8gQGFiaW1ldGhvZCh7IGFsbG93QWN0aW9uczogWydOb09wJywgJ09wdEluJywgJ0Nsb3NlT3V0JywgJ0RlbGV0ZUFwcGxpY2F0aW9uJywgJ1VwZGF0ZUFwcGxpY2F0aW9uJ10gfSkKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGFsbEFjdGlvbnMKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6QWJpRGVjb3JhdG9ycy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl9jcmVhdGVNZXRob2Rfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjcKICAgIC8vIEBhYmltZXRob2QoeyBvbkNyZWF0ZTogJ3JlcXVpcmUnIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgY3JlYXRlTWV0aG9kCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkFiaURlY29yYXRvcnMuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fanVzdE5vb3Bfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjUKICAgIC8vIEBhYmltZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdOb09wJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBqdXN0Tm9vcAogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpBYmlEZWNvcmF0b3JzLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2JhcmVfcm91dGluZ0AxMjoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEzCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkFiaURlY29yYXRvcnMuanVzdE5vb3AoKSAtPiB2b2lkOgpqdXN0Tm9vcDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpBYmlEZWNvcmF0b3JzLmNyZWF0ZU1ldGhvZCgpIC0+IHZvaWQ6CmNyZWF0ZU1ldGhvZDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpBYmlEZWNvcmF0b3JzLmFsbEFjdGlvbnMoKSAtPiB2b2lkOgphbGxBY3Rpb25zOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkFiaURlY29yYXRvcnMucmVhZG9ubHkoKSAtPiB1aW50NjQ6CnJlYWRvbmx5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MTMKICAgIC8vIHJldHVybiA1CiAgICBwdXNoaW50IDUgLy8gNQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkFiaURlY29yYXRvcnMubWV0aG9kV2l0aERlZmF1bHRzKGE6IHVpbnQ2NCwgYjogdWludDY0LCBjOiB1aW50NjQpIC0+IHVpbnQ2NDoKbWV0aG9kV2l0aERlZmF1bHRzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MTgtMTkKICAgIC8vIEBhYmltZXRob2QoeyBkZWZhdWx0QXJndW1lbnRzOiB7IGE6IHsgZnJvbTogJ2dsb2JhbFZhbHVlJyB9LCBiOiB7IGZyb206ICdyZWFkb25seScgfSwgYzogeyBjb25zdGFudDogMTQ1IH0gfSB9KQogICAgLy8gcHVibGljIG1ldGhvZFdpdGhEZWZhdWx0cyhhOiB1aW50NjQsIGI6IHVpbnQ2NCwgYzogdWludDY0KTogdWludDY0IHsKICAgIHByb3RvIDMgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MjAKICAgIC8vIHJldHVybiBhICogYiArIGMKICAgIGZyYW1lX2RpZyAtMwogICAgZnJhbWVfZGlnIC0yCiAgICAqCiAgICBmcmFtZV9kaWcgLTEKICAgICsKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpBYmlEZWNvcmF0b3JzLmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKY29uc3RydWN0b3I6Cgpjb25zdHJ1Y3Rvcl9ibG9ja0AxOgoKY29uc3RydWN0b3JfYWZ0ZXJfaW5saW5lZF9AYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY29uc3RydWN0b3JAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjE2CiAgICAvLyBnbG9iYWxWYWx1ZSA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBVaW50NjQoMTIzKSB9KQogICAgcHVzaGJ5dGVzICJnbG9iYWxWYWx1ZSIKICAgIHB1c2hpbnQgMTIzIC8vIDEyMwogICAgYXBwX2dsb2JhbF9wdXQKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMDoKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKCm1haW5faWZfYm9keUAxOgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CgptYWluX2Jsb2NrQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo0CiAgICAvLyBleHBvcnQgZGVmYXVsdCBjbGFzcyBBYmlEZWNvcmF0b3JzIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAMTIKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBkZWZhdWx0IGNsYXNzIEFiaURlY29yYXRvcnMgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhmOTAyMGQ1YSAvLyBtZXRob2QgImp1c3ROb29wKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4ZTE3OWY5ZDQgLy8gbWV0aG9kICJjcmVhdGVNZXRob2QoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHg2M2MyN2FiYSAvLyBtZXRob2QgImFsbEFjdGlvbnMoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHgxNGQxYjZlYSAvLyBtZXRob2QgIm92ZXJyaWRlUmVhZG9ubHlOYW1lKCl1aW50NjQiCiAgICBwdXNoYnl0ZXMgMHhjMTM2NzM3NCAvLyBtZXRob2QgIm1ldGhvZFdpdGhEZWZhdWx0cyh1aW50NjQsdWludDY0LHVpbnQ2NCl1aW50NjQiCiAgICB1bmNvdmVyIDUKICAgIG1hdGNoIG1haW5fanVzdE5vb3Bfcm91dGVANSBtYWluX2NyZWF0ZU1ldGhvZF9yb3V0ZUA2IG1haW5fYWxsQWN0aW9uc19yb3V0ZUA3IG1haW5fb3ZlcnJpZGVSZWFkb25seU5hbWVfcm91dGVAOCBtYWluX21ldGhvZFdpdGhEZWZhdWx0c19yb3V0ZUA5CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTA6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTE6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo0CiAgICAvLyBleHBvcnQgZGVmYXVsdCBjbGFzcyBBYmlEZWNvcmF0b3JzIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6QWJpRGVjb3JhdG9ycy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNDoKICAgIHJldHVybgoKbWFpbl9tZXRob2RXaXRoRGVmYXVsdHNfcm91dGVAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjE4CiAgICAvLyBAYWJpbWV0aG9kKHsgZGVmYXVsdEFyZ3VtZW50czogeyBhOiB7IGZyb206ICdnbG9iYWxWYWx1ZScgfSwgYjogeyBmcm9tOiAncmVhZG9ubHknIH0sIGM6IHsgY29uc3RhbnQ6IDE0NSB9IH0gfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBkZWZhdWx0IGNsYXNzIEFiaURlY29yYXRvcnMgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoxOAogICAgLy8gQGFiaW1ldGhvZCh7IGRlZmF1bHRBcmd1bWVudHM6IHsgYTogeyBmcm9tOiAnZ2xvYmFsVmFsdWUnIH0sIGI6IHsgZnJvbTogJ3JlYWRvbmx5JyB9LCBjOiB7IGNvbnN0YW50OiAxNDUgfSB9IH0pCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBjYWxsc3ViIG1ldGhvZFdpdGhEZWZhdWx0cwogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpBYmlEZWNvcmF0b3JzLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX292ZXJyaWRlUmVhZG9ubHlOYW1lX3JvdXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoxMQogICAgLy8gQGFiaW1ldGhvZCh7IHJlYWRvbmx5OiB0cnVlLCBuYW1lOiAnb3ZlcnJpZGVSZWFkb25seU5hbWUnIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHJlYWRvbmx5CiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkFiaURlY29yYXRvcnMuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fYWxsQWN0aW9uc19yb3V0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OQogICAgLy8gQGFiaW1ldGhvZCh7IGFsbG93QWN0aW9uczogWydOb09wJywgJ09wdEluJywgJ0Nsb3NlT3V0JywgJ0RlbGV0ZUFwcGxpY2F0aW9uJywgJ1VwZGF0ZUFwcGxpY2F0aW9uJ10gfSkKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGFsbEFjdGlvbnMKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6QWJpRGVjb3JhdG9ycy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl9jcmVhdGVNZXRob2Rfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjcKICAgIC8vIEBhYmltZXRob2QoeyBvbkNyZWF0ZTogJ3JlcXVpcmUnIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgY3JlYXRlTWV0aG9kCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkFiaURlY29yYXRvcnMuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fanVzdE5vb3Bfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjUKICAgIC8vIEBhYmltZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdOb09wJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBqdXN0Tm9vcAogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpBYmlEZWNvcmF0b3JzLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2JhcmVfcm91dGluZ0AxMjoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEzCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkFiaURlY29yYXRvcnMuanVzdE5vb3AoKSAtPiB2b2lkOgpqdXN0Tm9vcDoKCmp1c3ROb29wX2Jsb2NrQDA6CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6QWJpRGVjb3JhdG9ycy5jcmVhdGVNZXRob2QoKSAtPiB2b2lkOgpjcmVhdGVNZXRob2Q6CgpjcmVhdGVNZXRob2RfYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpBYmlEZWNvcmF0b3JzLmFsbEFjdGlvbnMoKSAtPiB2b2lkOgphbGxBY3Rpb25zOgoKYWxsQWN0aW9uc19ibG9ja0AwOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkFiaURlY29yYXRvcnMucmVhZG9ubHkoKSAtPiB1aW50NjQ6CnJlYWRvbmx5OgoKcmVhZG9ubHlfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjEzCiAgICAvLyByZXR1cm4gNQogICAgcHVzaGludCA1IC8vIDUKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpBYmlEZWNvcmF0b3JzLm1ldGhvZFdpdGhEZWZhdWx0cyhhOiB1aW50NjQsIGI6IHVpbnQ2NCwgYzogdWludDY0KSAtPiB1aW50NjQ6Cm1ldGhvZFdpdGhEZWZhdWx0czoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjE4LTE5CiAgICAvLyBAYWJpbWV0aG9kKHsgZGVmYXVsdEFyZ3VtZW50czogeyBhOiB7IGZyb206ICdnbG9iYWxWYWx1ZScgfSwgYjogeyBmcm9tOiAncmVhZG9ubHknIH0sIGM6IHsgY29uc3RhbnQ6IDE0NSB9IH0gfSkKICAgIC8vIHB1YmxpYyBtZXRob2RXaXRoRGVmYXVsdHMoYTogdWludDY0LCBiOiB1aW50NjQsIGM6IHVpbnQ2NCk6IHVpbnQ2NCB7CiAgICBwcm90byAzIDEKCm1ldGhvZFdpdGhEZWZhdWx0c19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MjAKICAgIC8vIHJldHVybiBhICogYiArIGMKICAgIGZyYW1lX2RpZyAtMwogICAgZnJhbWVfZGlnIC0yCiAgICAqCiAgICBmcmFtZV9kaWcgLTEKICAgICsKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpBYmlEZWNvcmF0b3JzLmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKY29uc3RydWN0b3I6Cgpjb25zdHJ1Y3Rvcl9ibG9ja0AwOgoKY29uc3RydWN0b3JfYmxvY2tAMToKCmNvbnN0cnVjdG9yX2FmdGVyX2lubGluZWRfQGFsZ29yYW5kZm91bmRhdGlvbi9hbGdvcmFuZC10eXBlc2NyaXB0L2Jhc2UtY29udHJhY3QuZC50czo6QmFzZUNvbnRyYWN0LmNvbnN0cnVjdG9yQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoxNgogICAgLy8gZ2xvYmFsVmFsdWUgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogVWludDY0KDEyMykgfSkKICAgIHB1c2hieXRlcyAiZ2xvYmFsVmFsdWUiCiAgICBwdXNoaW50IDEyMyAvLyAxMjMKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/abi-decorators/AbiDecorators.arc56.json b/tests/approvals/out/unoptimized/abi-decorators/AbiDecorators.arc56.json index 121dc37f3..791140354 100644 --- a/tests/approvals/out/unoptimized/abi-decorators/AbiDecorators.arc56.json +++ b/tests/approvals/out/unoptimized/abi-decorators/AbiDecorators.arc56.json @@ -187,8 +187,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKCm1haW5faWZfYm9keUAxOgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CgptYWluX2Jsb2NrQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo0CiAgICAvLyBleHBvcnQgZGVmYXVsdCBjbGFzcyBBYmlEZWNvcmF0b3JzIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAMTIKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBkZWZhdWx0IGNsYXNzIEFiaURlY29yYXRvcnMgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhmOTAyMGQ1YSAvLyBtZXRob2QgImp1c3ROb29wKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4ZTE3OWY5ZDQgLy8gbWV0aG9kICJjcmVhdGVNZXRob2QoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHg2M2MyN2FiYSAvLyBtZXRob2QgImFsbEFjdGlvbnMoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHgxNGQxYjZlYSAvLyBtZXRob2QgIm92ZXJyaWRlUmVhZG9ubHlOYW1lKCl1aW50NjQiCiAgICBwdXNoYnl0ZXMgMHhjMTM2NzM3NCAvLyBtZXRob2QgIm1ldGhvZFdpdGhEZWZhdWx0cyh1aW50NjQsdWludDY0LHVpbnQ2NCl1aW50NjQiCiAgICB1bmNvdmVyIDUKICAgIG1hdGNoIG1haW5fanVzdE5vb3Bfcm91dGVANSBtYWluX2NyZWF0ZU1ldGhvZF9yb3V0ZUA2IG1haW5fYWxsQWN0aW9uc19yb3V0ZUA3IG1haW5fb3ZlcnJpZGVSZWFkb25seU5hbWVfcm91dGVAOCBtYWluX21ldGhvZFdpdGhEZWZhdWx0c19yb3V0ZUA5CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTA6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTE6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo0CiAgICAvLyBleHBvcnQgZGVmYXVsdCBjbGFzcyBBYmlEZWNvcmF0b3JzIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6QWJpRGVjb3JhdG9ycy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNDoKICAgIHJldHVybgoKbWFpbl9tZXRob2RXaXRoRGVmYXVsdHNfcm91dGVAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjE4CiAgICAvLyBAYWJpbWV0aG9kKHsgZGVmYXVsdEFyZ3VtZW50czogeyBhOiB7IGZyb206ICdnbG9iYWxWYWx1ZScgfSwgYjogeyBmcm9tOiAncmVhZG9ubHknIH0sIGM6IHsgY29uc3RhbnQ6IDE0NSB9IH0gfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBkZWZhdWx0IGNsYXNzIEFiaURlY29yYXRvcnMgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoxOAogICAgLy8gQGFiaW1ldGhvZCh7IGRlZmF1bHRBcmd1bWVudHM6IHsgYTogeyBmcm9tOiAnZ2xvYmFsVmFsdWUnIH0sIGI6IHsgZnJvbTogJ3JlYWRvbmx5JyB9LCBjOiB7IGNvbnN0YW50OiAxNDUgfSB9IH0pCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBjYWxsc3ViIG1ldGhvZFdpdGhEZWZhdWx0cwogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpBYmlEZWNvcmF0b3JzLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX292ZXJyaWRlUmVhZG9ubHlOYW1lX3JvdXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoxMQogICAgLy8gQGFiaW1ldGhvZCh7IHJlYWRvbmx5OiB0cnVlLCBuYW1lOiAnb3ZlcnJpZGVSZWFkb25seU5hbWUnIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHJlYWRvbmx5CiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkFiaURlY29yYXRvcnMuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fYWxsQWN0aW9uc19yb3V0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OQogICAgLy8gQGFiaW1ldGhvZCh7IGFsbG93QWN0aW9uczogWydOb09wJywgJ09wdEluJywgJ0Nsb3NlT3V0JywgJ0RlbGV0ZUFwcGxpY2F0aW9uJywgJ1VwZGF0ZUFwcGxpY2F0aW9uJ10gfSkKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGFsbEFjdGlvbnMKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6QWJpRGVjb3JhdG9ycy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl9jcmVhdGVNZXRob2Rfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjcKICAgIC8vIEBhYmltZXRob2QoeyBvbkNyZWF0ZTogJ3JlcXVpcmUnIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgY3JlYXRlTWV0aG9kCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkFiaURlY29yYXRvcnMuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fanVzdE5vb3Bfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjUKICAgIC8vIEBhYmltZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdOb09wJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBqdXN0Tm9vcAogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpBYmlEZWNvcmF0b3JzLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2JhcmVfcm91dGluZ0AxMjoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEzCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkFiaURlY29yYXRvcnMuanVzdE5vb3AoKSAtPiB2b2lkOgpqdXN0Tm9vcDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpBYmlEZWNvcmF0b3JzLmNyZWF0ZU1ldGhvZCgpIC0+IHZvaWQ6CmNyZWF0ZU1ldGhvZDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpBYmlEZWNvcmF0b3JzLmFsbEFjdGlvbnMoKSAtPiB2b2lkOgphbGxBY3Rpb25zOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkFiaURlY29yYXRvcnMucmVhZG9ubHkoKSAtPiB1aW50NjQ6CnJlYWRvbmx5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MTMKICAgIC8vIHJldHVybiA1CiAgICBwdXNoaW50IDUgLy8gNQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkFiaURlY29yYXRvcnMubWV0aG9kV2l0aERlZmF1bHRzKGE6IHVpbnQ2NCwgYjogdWludDY0LCBjOiB1aW50NjQpIC0+IHVpbnQ2NDoKbWV0aG9kV2l0aERlZmF1bHRzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MTgtMTkKICAgIC8vIEBhYmltZXRob2QoeyBkZWZhdWx0QXJndW1lbnRzOiB7IGE6IHsgZnJvbTogJ2dsb2JhbFZhbHVlJyB9LCBiOiB7IGZyb206ICdyZWFkb25seScgfSwgYzogeyBjb25zdGFudDogMTQ1IH0gfSB9KQogICAgLy8gcHVibGljIG1ldGhvZFdpdGhEZWZhdWx0cyhhOiB1aW50NjQsIGI6IHVpbnQ2NCwgYzogdWludDY0KTogdWludDY0IHsKICAgIHByb3RvIDMgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MjAKICAgIC8vIHJldHVybiBhICogYiArIGMKICAgIGZyYW1lX2RpZyAtMwogICAgZnJhbWVfZGlnIC0yCiAgICAqCiAgICBmcmFtZV9kaWcgLTEKICAgICsKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpBYmlEZWNvcmF0b3JzLmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKY29uc3RydWN0b3I6Cgpjb25zdHJ1Y3Rvcl9ibG9ja0AxOgoKY29uc3RydWN0b3JfYWZ0ZXJfaW5saW5lZF9AYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY29uc3RydWN0b3JAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjE2CiAgICAvLyBnbG9iYWxWYWx1ZSA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBVaW50NjQoMTIzKSB9KQogICAgcHVzaGJ5dGVzICJnbG9iYWxWYWx1ZSIKICAgIHB1c2hpbnQgMTIzIC8vIDEyMwogICAgYXBwX2dsb2JhbF9wdXQKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMDoKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKCm1haW5faWZfYm9keUAxOgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CgptYWluX2Jsb2NrQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo0CiAgICAvLyBleHBvcnQgZGVmYXVsdCBjbGFzcyBBYmlEZWNvcmF0b3JzIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAMTIKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBkZWZhdWx0IGNsYXNzIEFiaURlY29yYXRvcnMgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhmOTAyMGQ1YSAvLyBtZXRob2QgImp1c3ROb29wKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4ZTE3OWY5ZDQgLy8gbWV0aG9kICJjcmVhdGVNZXRob2QoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHg2M2MyN2FiYSAvLyBtZXRob2QgImFsbEFjdGlvbnMoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHgxNGQxYjZlYSAvLyBtZXRob2QgIm92ZXJyaWRlUmVhZG9ubHlOYW1lKCl1aW50NjQiCiAgICBwdXNoYnl0ZXMgMHhjMTM2NzM3NCAvLyBtZXRob2QgIm1ldGhvZFdpdGhEZWZhdWx0cyh1aW50NjQsdWludDY0LHVpbnQ2NCl1aW50NjQiCiAgICB1bmNvdmVyIDUKICAgIG1hdGNoIG1haW5fanVzdE5vb3Bfcm91dGVANSBtYWluX2NyZWF0ZU1ldGhvZF9yb3V0ZUA2IG1haW5fYWxsQWN0aW9uc19yb3V0ZUA3IG1haW5fb3ZlcnJpZGVSZWFkb25seU5hbWVfcm91dGVAOCBtYWluX21ldGhvZFdpdGhEZWZhdWx0c19yb3V0ZUA5CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTA6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTE6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo0CiAgICAvLyBleHBvcnQgZGVmYXVsdCBjbGFzcyBBYmlEZWNvcmF0b3JzIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6QWJpRGVjb3JhdG9ycy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNDoKICAgIHJldHVybgoKbWFpbl9tZXRob2RXaXRoRGVmYXVsdHNfcm91dGVAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjE4CiAgICAvLyBAYWJpbWV0aG9kKHsgZGVmYXVsdEFyZ3VtZW50czogeyBhOiB7IGZyb206ICdnbG9iYWxWYWx1ZScgfSwgYjogeyBmcm9tOiAncmVhZG9ubHknIH0sIGM6IHsgY29uc3RhbnQ6IDE0NSB9IH0gfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBkZWZhdWx0IGNsYXNzIEFiaURlY29yYXRvcnMgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoxOAogICAgLy8gQGFiaW1ldGhvZCh7IGRlZmF1bHRBcmd1bWVudHM6IHsgYTogeyBmcm9tOiAnZ2xvYmFsVmFsdWUnIH0sIGI6IHsgZnJvbTogJ3JlYWRvbmx5JyB9LCBjOiB7IGNvbnN0YW50OiAxNDUgfSB9IH0pCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBjYWxsc3ViIG1ldGhvZFdpdGhEZWZhdWx0cwogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpBYmlEZWNvcmF0b3JzLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX292ZXJyaWRlUmVhZG9ubHlOYW1lX3JvdXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoxMQogICAgLy8gQGFiaW1ldGhvZCh7IHJlYWRvbmx5OiB0cnVlLCBuYW1lOiAnb3ZlcnJpZGVSZWFkb25seU5hbWUnIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHJlYWRvbmx5CiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkFiaURlY29yYXRvcnMuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fYWxsQWN0aW9uc19yb3V0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OQogICAgLy8gQGFiaW1ldGhvZCh7IGFsbG93QWN0aW9uczogWydOb09wJywgJ09wdEluJywgJ0Nsb3NlT3V0JywgJ0RlbGV0ZUFwcGxpY2F0aW9uJywgJ1VwZGF0ZUFwcGxpY2F0aW9uJ10gfSkKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGFsbEFjdGlvbnMKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6QWJpRGVjb3JhdG9ycy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl9jcmVhdGVNZXRob2Rfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjcKICAgIC8vIEBhYmltZXRob2QoeyBvbkNyZWF0ZTogJ3JlcXVpcmUnIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgY3JlYXRlTWV0aG9kCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkFiaURlY29yYXRvcnMuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fanVzdE5vb3Bfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjUKICAgIC8vIEBhYmltZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdOb09wJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBqdXN0Tm9vcAogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpBYmlEZWNvcmF0b3JzLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2JhcmVfcm91dGluZ0AxMjoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEzCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkFiaURlY29yYXRvcnMuanVzdE5vb3AoKSAtPiB2b2lkOgpqdXN0Tm9vcDoKCmp1c3ROb29wX2Jsb2NrQDA6CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6QWJpRGVjb3JhdG9ycy5jcmVhdGVNZXRob2QoKSAtPiB2b2lkOgpjcmVhdGVNZXRob2Q6CgpjcmVhdGVNZXRob2RfYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpBYmlEZWNvcmF0b3JzLmFsbEFjdGlvbnMoKSAtPiB2b2lkOgphbGxBY3Rpb25zOgoKYWxsQWN0aW9uc19ibG9ja0AwOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkFiaURlY29yYXRvcnMucmVhZG9ubHkoKSAtPiB1aW50NjQ6CnJlYWRvbmx5OgoKcmVhZG9ubHlfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjEzCiAgICAvLyByZXR1cm4gNQogICAgcHVzaGludCA1IC8vIDUKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpBYmlEZWNvcmF0b3JzLm1ldGhvZFdpdGhEZWZhdWx0cyhhOiB1aW50NjQsIGI6IHVpbnQ2NCwgYzogdWludDY0KSAtPiB1aW50NjQ6Cm1ldGhvZFdpdGhEZWZhdWx0czoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjE4LTE5CiAgICAvLyBAYWJpbWV0aG9kKHsgZGVmYXVsdEFyZ3VtZW50czogeyBhOiB7IGZyb206ICdnbG9iYWxWYWx1ZScgfSwgYjogeyBmcm9tOiAncmVhZG9ubHknIH0sIGM6IHsgY29uc3RhbnQ6IDE0NSB9IH0gfSkKICAgIC8vIHB1YmxpYyBtZXRob2RXaXRoRGVmYXVsdHMoYTogdWludDY0LCBiOiB1aW50NjQsIGM6IHVpbnQ2NCk6IHVpbnQ2NCB7CiAgICBwcm90byAzIDEKCm1ldGhvZFdpdGhEZWZhdWx0c19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MjAKICAgIC8vIHJldHVybiBhICogYiArIGMKICAgIGZyYW1lX2RpZyAtMwogICAgZnJhbWVfZGlnIC0yCiAgICAqCiAgICBmcmFtZV9kaWcgLTEKICAgICsKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpBYmlEZWNvcmF0b3JzLmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKY29uc3RydWN0b3I6Cgpjb25zdHJ1Y3Rvcl9ibG9ja0AwOgoKY29uc3RydWN0b3JfYmxvY2tAMToKCmNvbnN0cnVjdG9yX2FmdGVyX2lubGluZWRfQGFsZ29yYW5kZm91bmRhdGlvbi9hbGdvcmFuZC10eXBlc2NyaXB0L2Jhc2UtY29udHJhY3QuZC50czo6QmFzZUNvbnRyYWN0LmNvbnN0cnVjdG9yQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoxNgogICAgLy8gZ2xvYmFsVmFsdWUgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogVWludDY0KDEyMykgfSkKICAgIHB1c2hieXRlcyAiZ2xvYmFsVmFsdWUiCiAgICBwdXNoaW50IDEyMyAvLyAxMjMKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAEmAQQVH3x1MRhAAAOIALkxGyITQQCdNhoAgAT5Ag1agAThefnUgARjwnq6gAQU0bbqgATBNnN0TwWOBQBdAEwAQAAqAAIiQzEZIhJEMRgiE0Q2GgEXNhoCFzYaAxdPAk8CTwKIAFYWKExQsCNC/9cxGSISRDEYIhNEiAA9FihMULAjQv/BMRgiE0SIACsjQv+1MRkiEkQxGCISRIgAGSNC/6QxGSISRDEYIhNEiAAHI0L/k0L/j4mJiYEFiYoDAYv9i/4Li/8IiYALZ2xvYmFsVmFsdWWBe2eJ", @@ -199,7 +199,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/abi-decorators/AbiDecorators.clear.teal b/tests/approvals/out/unoptimized/abi-decorators/AbiDecorators.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/abi-decorators/AbiDecorators.clear.teal +++ b/tests/approvals/out/unoptimized/abi-decorators/AbiDecorators.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/abi-decorators/BaseAbi.approval.teal b/tests/approvals/out/unoptimized/abi-decorators/BaseAbi.approval.teal index f3f72823d..d3a201c43 100644 --- a/tests/approvals/out/unoptimized/abi-decorators/BaseAbi.approval.teal +++ b/tests/approvals/out/unoptimized/abi-decorators/BaseAbi.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 +main_block@0: + main_block@1: // tests/approvals/abi-decorators.algo.ts:36 // export class BaseAbi extends Contract { @@ -85,6 +87,8 @@ main___algots__.defaultCreate@7: // tests/approvals/abi-decorators.algo.ts::BaseAbi.someMethod() -> bytes: someMethod: + +someMethod_block@0: // tests/approvals/abi-decorators.algo.ts:39 // return 'base-abi:optin' pushbytes "base-abi:optin" @@ -93,4 +97,6 @@ someMethod: // tests/approvals/abi-decorators.algo.ts::BaseAbi.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/abi-decorators/BaseAbi.arc32.json b/tests/approvals/out/unoptimized/abi-decorators/BaseAbi.arc32.json index 93fe255ec..4c8bea9c3 100644 --- a/tests/approvals/out/unoptimized/abi-decorators/BaseAbi.arc32.json +++ b/tests/approvals/out/unoptimized/abi-decorators/BaseAbi.arc32.json @@ -7,8 +7,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czozNgogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VBYmkgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czozNgogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VBYmkgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgxZTI5ZmZmZiAvLyBtZXRob2QgInNvbWVNZXRob2QoKXN0cmluZyIKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fc29tZU1ldGhvZF9yb3V0ZUAzCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA1OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MzYKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlQWJpIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6QmFzZUFiaS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMToKICAgIHJldHVybgoKbWFpbl9zb21lTWV0aG9kX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czozNwogICAgLy8gQGFiaW1ldGhvZCh7IGFsbG93QWN0aW9uczogJ09wdEluJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18xIC8vIE9wdEluCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgT3B0SW4KICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHNvbWVNZXRob2QKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6QmFzZUFiaS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKbWFpbl9iYXJlX3JvdXRpbmdANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjM2CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZUFiaSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czozNgogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VBYmkgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpCYXNlQWJpLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkJhc2VBYmkuc29tZU1ldGhvZCgpIC0+IGJ5dGVzOgpzb21lTWV0aG9kOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MzkKICAgIC8vIHJldHVybiAnYmFzZS1hYmk6b3B0aW4nCiAgICBwdXNoYnl0ZXMgImJhc2UtYWJpOm9wdGluIgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkJhc2VBYmkuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czozNgogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VBYmkgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czozNgogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VBYmkgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgxZTI5ZmZmZiAvLyBtZXRob2QgInNvbWVNZXRob2QoKXN0cmluZyIKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fc29tZU1ldGhvZF9yb3V0ZUAzCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA1OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MzYKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlQWJpIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6QmFzZUFiaS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMToKICAgIHJldHVybgoKbWFpbl9zb21lTWV0aG9kX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czozNwogICAgLy8gQGFiaW1ldGhvZCh7IGFsbG93QWN0aW9uczogJ09wdEluJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18xIC8vIE9wdEluCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgT3B0SW4KICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHNvbWVNZXRob2QKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6QmFzZUFiaS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKbWFpbl9iYXJlX3JvdXRpbmdANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjM2CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZUFiaSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czozNgogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VBYmkgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpCYXNlQWJpLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkJhc2VBYmkuc29tZU1ldGhvZCgpIC0+IGJ5dGVzOgpzb21lTWV0aG9kOgoKc29tZU1ldGhvZF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MzkKICAgIC8vIHJldHVybiAnYmFzZS1hYmk6b3B0aW4nCiAgICBwdXNoYnl0ZXMgImJhc2UtYWJpOm9wdGluIgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkJhc2VBYmkuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/abi-decorators/BaseAbi.arc56.json b/tests/approvals/out/unoptimized/abi-decorators/BaseAbi.arc56.json index b2f965564..6810ac1bf 100644 --- a/tests/approvals/out/unoptimized/abi-decorators/BaseAbi.arc56.json +++ b/tests/approvals/out/unoptimized/abi-decorators/BaseAbi.arc56.json @@ -82,8 +82,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czozNgogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VBYmkgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czozNgogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VBYmkgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgxZTI5ZmZmZiAvLyBtZXRob2QgInNvbWVNZXRob2QoKXN0cmluZyIKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fc29tZU1ldGhvZF9yb3V0ZUAzCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA1OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MzYKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlQWJpIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6QmFzZUFiaS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMToKICAgIHJldHVybgoKbWFpbl9zb21lTWV0aG9kX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czozNwogICAgLy8gQGFiaW1ldGhvZCh7IGFsbG93QWN0aW9uczogJ09wdEluJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18xIC8vIE9wdEluCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgT3B0SW4KICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHNvbWVNZXRob2QKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6QmFzZUFiaS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKbWFpbl9iYXJlX3JvdXRpbmdANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjM2CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZUFiaSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czozNgogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VBYmkgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpCYXNlQWJpLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkJhc2VBYmkuc29tZU1ldGhvZCgpIC0+IGJ5dGVzOgpzb21lTWV0aG9kOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MzkKICAgIC8vIHJldHVybiAnYmFzZS1hYmk6b3B0aW4nCiAgICBwdXNoYnl0ZXMgImJhc2UtYWJpOm9wdGluIgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkJhc2VBYmkuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czozNgogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VBYmkgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czozNgogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VBYmkgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgxZTI5ZmZmZiAvLyBtZXRob2QgInNvbWVNZXRob2QoKXN0cmluZyIKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fc29tZU1ldGhvZF9yb3V0ZUAzCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA1OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MzYKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlQWJpIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6QmFzZUFiaS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMToKICAgIHJldHVybgoKbWFpbl9zb21lTWV0aG9kX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czozNwogICAgLy8gQGFiaW1ldGhvZCh7IGFsbG93QWN0aW9uczogJ09wdEluJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18xIC8vIE9wdEluCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgT3B0SW4KICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHNvbWVNZXRob2QKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6QmFzZUFiaS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKbWFpbl9iYXJlX3JvdXRpbmdANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjM2CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZUFiaSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czozNgogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VBYmkgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpCYXNlQWJpLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkJhc2VBYmkuc29tZU1ldGhvZCgpIC0+IGJ5dGVzOgpzb21lTWV0aG9kOgoKc29tZU1ldGhvZF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MzkKICAgIC8vIHJldHVybiAnYmFzZS1hYmk6b3B0aW4nCiAgICBwdXNoYnl0ZXMgImJhc2UtYWJpOm9wdGluIgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OkJhc2VBYmkuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAExGyITQQAyNhoAgAQeKf//TI4BAAIiQzEZIxJEMRgiE0SIACxJFRZXBgJMUIAEFR98dUxQsCNC/90xGSJMjgEAA0L/0TEYIhJEiAAVI0L/xoAOYmFzZS1hYmk6b3B0aW6JiQ==", @@ -94,7 +94,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/abi-decorators/BaseAbi.clear.teal b/tests/approvals/out/unoptimized/abi-decorators/BaseAbi.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/abi-decorators/BaseAbi.clear.teal +++ b/tests/approvals/out/unoptimized/abi-decorators/BaseAbi.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/abi-decorators/OverloadedMethods.approval.teal b/tests/approvals/out/unoptimized/abi-decorators/OverloadedMethods.approval.teal index 9178e64ed..88c0588e1 100644 --- a/tests/approvals/out/unoptimized/abi-decorators/OverloadedMethods.approval.teal +++ b/tests/approvals/out/unoptimized/abi-decorators/OverloadedMethods.approval.teal @@ -6,6 +6,8 @@ main: intcblock 0 1 bytecblock 0x151f7c75 +main_block@0: + main_block@1: // tests/approvals/abi-decorators.algo.ts:24 // export class OverloadedMethods extends Contract { @@ -120,6 +122,8 @@ doThingOne: // @abimethod({ name: 'doThing' }) // doThingOne(x: uint64): uint64 { proto 1 1 + +doThingOne_block@0: // tests/approvals/abi-decorators.algo.ts:27 // return x frame_dig -1 @@ -132,6 +136,8 @@ doThingTwo: // @abimethod({ name: 'doThing' }) // doThingTwo(x: uint64, y: uint64): uint64 { proto 2 1 + +doThingTwo_block@0: // tests/approvals/abi-decorators.algo.ts:32 // return x * y frame_dig -2 @@ -142,4 +148,6 @@ doThingTwo: // tests/approvals/abi-decorators.algo.ts::OverloadedMethods.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/abi-decorators/OverloadedMethods.arc32.json b/tests/approvals/out/unoptimized/abi-decorators/OverloadedMethods.arc32.json index f1b6364cc..3b003b7f4 100644 --- a/tests/approvals/out/unoptimized/abi-decorators/OverloadedMethods.arc32.json +++ b/tests/approvals/out/unoptimized/abi-decorators/OverloadedMethods.arc32.json @@ -12,8 +12,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgT3ZlcmxvYWRlZE1ldGhvZHMgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A3CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIE92ZXJsb2FkZWRNZXRob2RzIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4NzkyMGRkNTcgLy8gbWV0aG9kICJkb1RoaW5nKHVpbnQ2NCl1aW50NjQiCiAgICBwdXNoYnl0ZXMgMHgxY2VmYmM1YSAvLyBtZXRob2QgImRvVGhpbmcodWludDY0LHVpbnQ2NCl1aW50NjQiCiAgICB1bmNvdmVyIDIKICAgIG1hdGNoIG1haW5fZG9UaGluZ19yb3V0ZUAzIG1haW5fZG9UaGluZ19yb3V0ZUA0CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA2OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDExOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MjQKICAgIC8vIGV4cG9ydCBjbGFzcyBPdmVybG9hZGVkTWV0aG9kcyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6Ok92ZXJsb2FkZWRNZXRob2RzLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyOgogICAgcmV0dXJuCgptYWluX2RvVGhpbmdfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjMwCiAgICAvLyBAYWJpbWV0aG9kKHsgbmFtZTogJ2RvVGhpbmcnIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIE92ZXJsb2FkZWRNZXRob2RzIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MzAKICAgIC8vIEBhYmltZXRob2QoeyBuYW1lOiAnZG9UaGluZycgfSkKICAgIGNhbGxzdWIgZG9UaGluZ1R3bwogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpPdmVybG9hZGVkTWV0aG9kcy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKbWFpbl9kb1RoaW5nX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoyNQogICAgLy8gQGFiaW1ldGhvZCh7IG5hbWU6ICdkb1RoaW5nJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MjQKICAgIC8vIGV4cG9ydCBjbGFzcyBPdmVybG9hZGVkTWV0aG9kcyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjI1CiAgICAvLyBAYWJpbWV0aG9kKHsgbmFtZTogJ2RvVGhpbmcnIH0pCiAgICBjYWxsc3ViIGRvVGhpbmdPbmUKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6T3ZlcmxvYWRlZE1ldGhvZHMuX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCm1haW5fYmFyZV9yb3V0aW5nQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIE92ZXJsb2FkZWRNZXRob2RzIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTEKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIE92ZXJsb2FkZWRNZXRob2RzIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6T3ZlcmxvYWRlZE1ldGhvZHMuX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6T3ZlcmxvYWRlZE1ldGhvZHMuZG9UaGluZ09uZSh4OiB1aW50NjQpIC0+IHVpbnQ2NDoKZG9UaGluZ09uZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjI1LTI2CiAgICAvLyBAYWJpbWV0aG9kKHsgbmFtZTogJ2RvVGhpbmcnIH0pCiAgICAvLyBkb1RoaW5nT25lKHg6IHVpbnQ2NCk6IHVpbnQ2NCB7CiAgICBwcm90byAxIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjI3CiAgICAvLyByZXR1cm4geAogICAgZnJhbWVfZGlnIC0xCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6T3ZlcmxvYWRlZE1ldGhvZHMuZG9UaGluZ1R3byh4OiB1aW50NjQsIHk6IHVpbnQ2NCkgLT4gdWludDY0Ogpkb1RoaW5nVHdvOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MzAtMzEKICAgIC8vIEBhYmltZXRob2QoeyBuYW1lOiAnZG9UaGluZycgfSkKICAgIC8vIGRvVGhpbmdUd28oeDogdWludDY0LCB5OiB1aW50NjQpOiB1aW50NjQgewogICAgcHJvdG8gMiAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czozMgogICAgLy8gcmV0dXJuIHggKiB5CiAgICBmcmFtZV9kaWcgLTIKICAgIGZyYW1lX2RpZyAtMQogICAgKgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6Ok92ZXJsb2FkZWRNZXRob2RzLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMDoKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgT3ZlcmxvYWRlZE1ldGhvZHMgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A3CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIE92ZXJsb2FkZWRNZXRob2RzIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4NzkyMGRkNTcgLy8gbWV0aG9kICJkb1RoaW5nKHVpbnQ2NCl1aW50NjQiCiAgICBwdXNoYnl0ZXMgMHgxY2VmYmM1YSAvLyBtZXRob2QgImRvVGhpbmcodWludDY0LHVpbnQ2NCl1aW50NjQiCiAgICB1bmNvdmVyIDIKICAgIG1hdGNoIG1haW5fZG9UaGluZ19yb3V0ZUAzIG1haW5fZG9UaGluZ19yb3V0ZUA0CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA2OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDExOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MjQKICAgIC8vIGV4cG9ydCBjbGFzcyBPdmVybG9hZGVkTWV0aG9kcyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6Ok92ZXJsb2FkZWRNZXRob2RzLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyOgogICAgcmV0dXJuCgptYWluX2RvVGhpbmdfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjMwCiAgICAvLyBAYWJpbWV0aG9kKHsgbmFtZTogJ2RvVGhpbmcnIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIE92ZXJsb2FkZWRNZXRob2RzIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MzAKICAgIC8vIEBhYmltZXRob2QoeyBuYW1lOiAnZG9UaGluZycgfSkKICAgIGNhbGxzdWIgZG9UaGluZ1R3bwogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpPdmVybG9hZGVkTWV0aG9kcy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKbWFpbl9kb1RoaW5nX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoyNQogICAgLy8gQGFiaW1ldGhvZCh7IG5hbWU6ICdkb1RoaW5nJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MjQKICAgIC8vIGV4cG9ydCBjbGFzcyBPdmVybG9hZGVkTWV0aG9kcyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjI1CiAgICAvLyBAYWJpbWV0aG9kKHsgbmFtZTogJ2RvVGhpbmcnIH0pCiAgICBjYWxsc3ViIGRvVGhpbmdPbmUKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6T3ZlcmxvYWRlZE1ldGhvZHMuX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCm1haW5fYmFyZV9yb3V0aW5nQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIE92ZXJsb2FkZWRNZXRob2RzIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTEKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIE92ZXJsb2FkZWRNZXRob2RzIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6T3ZlcmxvYWRlZE1ldGhvZHMuX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6T3ZlcmxvYWRlZE1ldGhvZHMuZG9UaGluZ09uZSh4OiB1aW50NjQpIC0+IHVpbnQ2NDoKZG9UaGluZ09uZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjI1LTI2CiAgICAvLyBAYWJpbWV0aG9kKHsgbmFtZTogJ2RvVGhpbmcnIH0pCiAgICAvLyBkb1RoaW5nT25lKHg6IHVpbnQ2NCk6IHVpbnQ2NCB7CiAgICBwcm90byAxIDEKCmRvVGhpbmdPbmVfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjI3CiAgICAvLyByZXR1cm4geAogICAgZnJhbWVfZGlnIC0xCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6T3ZlcmxvYWRlZE1ldGhvZHMuZG9UaGluZ1R3byh4OiB1aW50NjQsIHk6IHVpbnQ2NCkgLT4gdWludDY0Ogpkb1RoaW5nVHdvOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MzAtMzEKICAgIC8vIEBhYmltZXRob2QoeyBuYW1lOiAnZG9UaGluZycgfSkKICAgIC8vIGRvVGhpbmdUd28oeDogdWludDY0LCB5OiB1aW50NjQpOiB1aW50NjQgewogICAgcHJvdG8gMiAxCgpkb1RoaW5nVHdvX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czozMgogICAgLy8gcmV0dXJuIHggKiB5CiAgICBmcmFtZV9kaWcgLTIKICAgIGZyYW1lX2RpZyAtMQogICAgKgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6Ok92ZXJsb2FkZWRNZXRob2RzLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/abi-decorators/OverloadedMethods.arc56.json b/tests/approvals/out/unoptimized/abi-decorators/OverloadedMethods.arc56.json index ec4e3a3c6..7a52ece46 100644 --- a/tests/approvals/out/unoptimized/abi-decorators/OverloadedMethods.arc56.json +++ b/tests/approvals/out/unoptimized/abi-decorators/OverloadedMethods.arc56.json @@ -114,8 +114,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgT3ZlcmxvYWRlZE1ldGhvZHMgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A3CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIE92ZXJsb2FkZWRNZXRob2RzIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4NzkyMGRkNTcgLy8gbWV0aG9kICJkb1RoaW5nKHVpbnQ2NCl1aW50NjQiCiAgICBwdXNoYnl0ZXMgMHgxY2VmYmM1YSAvLyBtZXRob2QgImRvVGhpbmcodWludDY0LHVpbnQ2NCl1aW50NjQiCiAgICB1bmNvdmVyIDIKICAgIG1hdGNoIG1haW5fZG9UaGluZ19yb3V0ZUAzIG1haW5fZG9UaGluZ19yb3V0ZUA0CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA2OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDExOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MjQKICAgIC8vIGV4cG9ydCBjbGFzcyBPdmVybG9hZGVkTWV0aG9kcyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6Ok92ZXJsb2FkZWRNZXRob2RzLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyOgogICAgcmV0dXJuCgptYWluX2RvVGhpbmdfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjMwCiAgICAvLyBAYWJpbWV0aG9kKHsgbmFtZTogJ2RvVGhpbmcnIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIE92ZXJsb2FkZWRNZXRob2RzIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MzAKICAgIC8vIEBhYmltZXRob2QoeyBuYW1lOiAnZG9UaGluZycgfSkKICAgIGNhbGxzdWIgZG9UaGluZ1R3bwogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpPdmVybG9hZGVkTWV0aG9kcy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKbWFpbl9kb1RoaW5nX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoyNQogICAgLy8gQGFiaW1ldGhvZCh7IG5hbWU6ICdkb1RoaW5nJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MjQKICAgIC8vIGV4cG9ydCBjbGFzcyBPdmVybG9hZGVkTWV0aG9kcyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjI1CiAgICAvLyBAYWJpbWV0aG9kKHsgbmFtZTogJ2RvVGhpbmcnIH0pCiAgICBjYWxsc3ViIGRvVGhpbmdPbmUKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6T3ZlcmxvYWRlZE1ldGhvZHMuX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCm1haW5fYmFyZV9yb3V0aW5nQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIE92ZXJsb2FkZWRNZXRob2RzIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTEKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIE92ZXJsb2FkZWRNZXRob2RzIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6T3ZlcmxvYWRlZE1ldGhvZHMuX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6T3ZlcmxvYWRlZE1ldGhvZHMuZG9UaGluZ09uZSh4OiB1aW50NjQpIC0+IHVpbnQ2NDoKZG9UaGluZ09uZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjI1LTI2CiAgICAvLyBAYWJpbWV0aG9kKHsgbmFtZTogJ2RvVGhpbmcnIH0pCiAgICAvLyBkb1RoaW5nT25lKHg6IHVpbnQ2NCk6IHVpbnQ2NCB7CiAgICBwcm90byAxIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjI3CiAgICAvLyByZXR1cm4geAogICAgZnJhbWVfZGlnIC0xCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6T3ZlcmxvYWRlZE1ldGhvZHMuZG9UaGluZ1R3byh4OiB1aW50NjQsIHk6IHVpbnQ2NCkgLT4gdWludDY0Ogpkb1RoaW5nVHdvOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MzAtMzEKICAgIC8vIEBhYmltZXRob2QoeyBuYW1lOiAnZG9UaGluZycgfSkKICAgIC8vIGRvVGhpbmdUd28oeDogdWludDY0LCB5OiB1aW50NjQpOiB1aW50NjQgewogICAgcHJvdG8gMiAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czozMgogICAgLy8gcmV0dXJuIHggKiB5CiAgICBmcmFtZV9kaWcgLTIKICAgIGZyYW1lX2RpZyAtMQogICAgKgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6Ok92ZXJsb2FkZWRNZXRob2RzLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMDoKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgT3ZlcmxvYWRlZE1ldGhvZHMgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A3CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIE92ZXJsb2FkZWRNZXRob2RzIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4NzkyMGRkNTcgLy8gbWV0aG9kICJkb1RoaW5nKHVpbnQ2NCl1aW50NjQiCiAgICBwdXNoYnl0ZXMgMHgxY2VmYmM1YSAvLyBtZXRob2QgImRvVGhpbmcodWludDY0LHVpbnQ2NCl1aW50NjQiCiAgICB1bmNvdmVyIDIKICAgIG1hdGNoIG1haW5fZG9UaGluZ19yb3V0ZUAzIG1haW5fZG9UaGluZ19yb3V0ZUA0CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA2OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDExOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MjQKICAgIC8vIGV4cG9ydCBjbGFzcyBPdmVybG9hZGVkTWV0aG9kcyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6Ok92ZXJsb2FkZWRNZXRob2RzLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyOgogICAgcmV0dXJuCgptYWluX2RvVGhpbmdfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjMwCiAgICAvLyBAYWJpbWV0aG9kKHsgbmFtZTogJ2RvVGhpbmcnIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIE92ZXJsb2FkZWRNZXRob2RzIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MzAKICAgIC8vIEBhYmltZXRob2QoeyBuYW1lOiAnZG9UaGluZycgfSkKICAgIGNhbGxzdWIgZG9UaGluZ1R3bwogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpPdmVybG9hZGVkTWV0aG9kcy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKbWFpbl9kb1RoaW5nX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoyNQogICAgLy8gQGFiaW1ldGhvZCh7IG5hbWU6ICdkb1RoaW5nJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MjQKICAgIC8vIGV4cG9ydCBjbGFzcyBPdmVybG9hZGVkTWV0aG9kcyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjI1CiAgICAvLyBAYWJpbWV0aG9kKHsgbmFtZTogJ2RvVGhpbmcnIH0pCiAgICBjYWxsc3ViIGRvVGhpbmdPbmUKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6T3ZlcmxvYWRlZE1ldGhvZHMuX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCm1haW5fYmFyZV9yb3V0aW5nQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIE92ZXJsb2FkZWRNZXRob2RzIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTEKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIE92ZXJsb2FkZWRNZXRob2RzIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6T3ZlcmxvYWRlZE1ldGhvZHMuX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6T3ZlcmxvYWRlZE1ldGhvZHMuZG9UaGluZ09uZSh4OiB1aW50NjQpIC0+IHVpbnQ2NDoKZG9UaGluZ09uZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjI1LTI2CiAgICAvLyBAYWJpbWV0aG9kKHsgbmFtZTogJ2RvVGhpbmcnIH0pCiAgICAvLyBkb1RoaW5nT25lKHg6IHVpbnQ2NCk6IHVpbnQ2NCB7CiAgICBwcm90byAxIDEKCmRvVGhpbmdPbmVfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjI3CiAgICAvLyByZXR1cm4geAogICAgZnJhbWVfZGlnIC0xCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6T3ZlcmxvYWRlZE1ldGhvZHMuZG9UaGluZ1R3byh4OiB1aW50NjQsIHk6IHVpbnQ2NCkgLT4gdWludDY0Ogpkb1RoaW5nVHdvOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6MzAtMzEKICAgIC8vIEBhYmltZXRob2QoeyBuYW1lOiAnZG9UaGluZycgfSkKICAgIC8vIGRvVGhpbmdUd28oeDogdWludDY0LCB5OiB1aW50NjQpOiB1aW50NjQgewogICAgcHJvdG8gMiAxCgpkb1RoaW5nVHdvX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czozMgogICAgLy8gcmV0dXJuIHggKiB5CiAgICBmcmFtZV9kaWcgLTIKICAgIGZyYW1lX2RpZyAtMQogICAgKgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6Ok92ZXJsb2FkZWRNZXRob2RzLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAEmAQQVH3x1MRsiE0EAUTYaAIAEeSDdV4AEHO+8Wk8CjgIAIAACIkMxGSISRDEYIhNENhoBFzYaAheIAEAWKExQsCNC/+ExGSISRDEYIhNENhoBF4gAIBYoTFCwI0L/xzEZIkyOAQADQv+7MRgiEkSIABMjQv+wigEBi/+JigIBi/6L/wuJiQ==", @@ -126,7 +126,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/abi-decorators/OverloadedMethods.clear.teal b/tests/approvals/out/unoptimized/abi-decorators/OverloadedMethods.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/abi-decorators/OverloadedMethods.clear.teal +++ b/tests/approvals/out/unoptimized/abi-decorators/OverloadedMethods.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/abi-decorators/SubAbi.approval.teal b/tests/approvals/out/unoptimized/abi-decorators/SubAbi.approval.teal index 13e42ce44..ca611653f 100644 --- a/tests/approvals/out/unoptimized/abi-decorators/SubAbi.approval.teal +++ b/tests/approvals/out/unoptimized/abi-decorators/SubAbi.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 +main_block@0: + main_block@1: // tests/approvals/abi-decorators.algo.ts:43 // export class SubAbi extends BaseAbi { @@ -85,6 +87,8 @@ main___algots__.defaultCreate@7: // tests/approvals/abi-decorators.algo.ts::SubAbi.someMethod() -> bytes: someMethod: + +someMethod_block@0: // tests/approvals/abi-decorators.algo.ts:46 // return 'sub-abi:optin' pushbytes "sub-abi:optin" @@ -93,4 +97,6 @@ someMethod: // tests/approvals/abi-decorators.algo.ts::SubAbi.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/abi-decorators/SubAbi.arc32.json b/tests/approvals/out/unoptimized/abi-decorators/SubAbi.arc32.json index 25c88ca8d..79abfa67a 100644 --- a/tests/approvals/out/unoptimized/abi-decorators/SubAbi.arc32.json +++ b/tests/approvals/out/unoptimized/abi-decorators/SubAbi.arc32.json @@ -7,8 +7,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo0MwogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkFiaSBleHRlbmRzIEJhc2VBYmkgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANgoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6NDMKICAgIC8vIGV4cG9ydCBjbGFzcyBTdWJBYmkgZXh0ZW5kcyBCYXNlQWJpIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDFlMjlmZmZmIC8vIG1ldGhvZCAic29tZU1ldGhvZCgpc3RyaW5nIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9zb21lTWV0aG9kX3JvdXRlQDMKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA0OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDU6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo0MwogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkFiaSBleHRlbmRzIEJhc2VBYmkgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6U3ViQWJpLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX3NvbWVNZXRob2Rfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjQ0CiAgICAvLyBAYWJpbWV0aG9kKHsgYWxsb3dBY3Rpb25zOiAnT3B0SW4nIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzEgLy8gT3B0SW4KICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBPcHRJbgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgc29tZU1ldGhvZAogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpTdWJBYmkuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo0MwogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkFiaSBleHRlbmRzIEJhc2VBYmkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjQzCiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQWJpIGV4dGVuZHMgQmFzZUFiaSB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpTdWJBYmkuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6U3ViQWJpLnNvbWVNZXRob2QoKSAtPiBieXRlczoKc29tZU1ldGhvZDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjQ2CiAgICAvLyByZXR1cm4gJ3N1Yi1hYmk6b3B0aW4nCiAgICBwdXNoYnl0ZXMgInN1Yi1hYmk6b3B0aW4iCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6U3ViQWJpLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo0MwogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkFiaSBleHRlbmRzIEJhc2VBYmkgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANgoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6NDMKICAgIC8vIGV4cG9ydCBjbGFzcyBTdWJBYmkgZXh0ZW5kcyBCYXNlQWJpIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDFlMjlmZmZmIC8vIG1ldGhvZCAic29tZU1ldGhvZCgpc3RyaW5nIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9zb21lTWV0aG9kX3JvdXRlQDMKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA0OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDU6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo0MwogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkFiaSBleHRlbmRzIEJhc2VBYmkgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6U3ViQWJpLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX3NvbWVNZXRob2Rfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjQ0CiAgICAvLyBAYWJpbWV0aG9kKHsgYWxsb3dBY3Rpb25zOiAnT3B0SW4nIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzEgLy8gT3B0SW4KICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBPcHRJbgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgc29tZU1ldGhvZAogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpTdWJBYmkuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo0MwogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkFiaSBleHRlbmRzIEJhc2VBYmkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjQzCiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQWJpIGV4dGVuZHMgQmFzZUFiaSB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpTdWJBYmkuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6U3ViQWJpLnNvbWVNZXRob2QoKSAtPiBieXRlczoKc29tZU1ldGhvZDoKCnNvbWVNZXRob2RfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjQ2CiAgICAvLyByZXR1cm4gJ3N1Yi1hYmk6b3B0aW4nCiAgICBwdXNoYnl0ZXMgInN1Yi1hYmk6b3B0aW4iCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6U3ViQWJpLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/abi-decorators/SubAbi.arc56.json b/tests/approvals/out/unoptimized/abi-decorators/SubAbi.arc56.json index 5088adeff..45ebbe408 100644 --- a/tests/approvals/out/unoptimized/abi-decorators/SubAbi.arc56.json +++ b/tests/approvals/out/unoptimized/abi-decorators/SubAbi.arc56.json @@ -82,8 +82,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo0MwogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkFiaSBleHRlbmRzIEJhc2VBYmkgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANgoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6NDMKICAgIC8vIGV4cG9ydCBjbGFzcyBTdWJBYmkgZXh0ZW5kcyBCYXNlQWJpIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDFlMjlmZmZmIC8vIG1ldGhvZCAic29tZU1ldGhvZCgpc3RyaW5nIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9zb21lTWV0aG9kX3JvdXRlQDMKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA0OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDU6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo0MwogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkFiaSBleHRlbmRzIEJhc2VBYmkgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6U3ViQWJpLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX3NvbWVNZXRob2Rfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjQ0CiAgICAvLyBAYWJpbWV0aG9kKHsgYWxsb3dBY3Rpb25zOiAnT3B0SW4nIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzEgLy8gT3B0SW4KICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBPcHRJbgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgc29tZU1ldGhvZAogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpTdWJBYmkuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo0MwogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkFiaSBleHRlbmRzIEJhc2VBYmkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjQzCiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQWJpIGV4dGVuZHMgQmFzZUFiaSB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpTdWJBYmkuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6U3ViQWJpLnNvbWVNZXRob2QoKSAtPiBieXRlczoKc29tZU1ldGhvZDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjQ2CiAgICAvLyByZXR1cm4gJ3N1Yi1hYmk6b3B0aW4nCiAgICBwdXNoYnl0ZXMgInN1Yi1hYmk6b3B0aW4iCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6U3ViQWJpLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo0MwogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkFiaSBleHRlbmRzIEJhc2VBYmkgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANgoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6NDMKICAgIC8vIGV4cG9ydCBjbGFzcyBTdWJBYmkgZXh0ZW5kcyBCYXNlQWJpIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDFlMjlmZmZmIC8vIG1ldGhvZCAic29tZU1ldGhvZCgpc3RyaW5nIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9zb21lTWV0aG9kX3JvdXRlQDMKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA0OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDU6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo0MwogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkFiaSBleHRlbmRzIEJhc2VBYmkgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6U3ViQWJpLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX3NvbWVNZXRob2Rfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjQ0CiAgICAvLyBAYWJpbWV0aG9kKHsgYWxsb3dBY3Rpb25zOiAnT3B0SW4nIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzEgLy8gT3B0SW4KICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBPcHRJbgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgc29tZU1ldGhvZAogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpTdWJBYmkuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo0MwogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkFiaSBleHRlbmRzIEJhc2VBYmkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjQzCiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQWJpIGV4dGVuZHMgQmFzZUFiaSB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjpTdWJBYmkuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6U3ViQWJpLnNvbWVNZXRob2QoKSAtPiBieXRlczoKc29tZU1ldGhvZDoKCnNvbWVNZXRob2RfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjQ2CiAgICAvLyByZXR1cm4gJ3N1Yi1hYmk6b3B0aW4nCiAgICBwdXNoYnl0ZXMgInN1Yi1hYmk6b3B0aW4iCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6U3ViQWJpLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAExGyITQQAyNhoAgAQeKf//TI4BAAIiQzEZIxJEMRgiE0SIACxJFRZXBgJMUIAEFR98dUxQsCNC/90xGSJMjgEAA0L/0TEYIhJEiAAUI0L/xoANc3ViLWFiaTpvcHRpbomJ", @@ -94,7 +94,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/abi-decorators/SubAbi.clear.teal b/tests/approvals/out/unoptimized/abi-decorators/SubAbi.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/abi-decorators/SubAbi.clear.teal +++ b/tests/approvals/out/unoptimized/abi-decorators/SubAbi.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/abi-decorators/SubAbi2.approval.teal b/tests/approvals/out/unoptimized/abi-decorators/SubAbi2.approval.teal index a2da69c6f..03b9ce4b1 100644 --- a/tests/approvals/out/unoptimized/abi-decorators/SubAbi2.approval.teal +++ b/tests/approvals/out/unoptimized/abi-decorators/SubAbi2.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 +main_block@0: + main_block@1: // tests/approvals/abi-decorators.algo.ts:50 // export class SubAbi2 extends BaseAbi { @@ -85,6 +87,8 @@ main___algots__.defaultCreate@7: // tests/approvals/abi-decorators.algo.ts::SubAbi2.someMethod() -> bytes: someMethod: + +someMethod_block@0: // tests/approvals/abi-decorators.algo.ts:53 // return 'sub-abi-2:noop' pushbytes "sub-abi-2:noop" @@ -93,4 +97,6 @@ someMethod: // tests/approvals/abi-decorators.algo.ts::SubAbi2.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/abi-decorators/SubAbi2.arc32.json b/tests/approvals/out/unoptimized/abi-decorators/SubAbi2.arc32.json index 6232e2915..1de81e2a9 100644 --- a/tests/approvals/out/unoptimized/abi-decorators/SubAbi2.arc32.json +++ b/tests/approvals/out/unoptimized/abi-decorators/SubAbi2.arc32.json @@ -7,8 +7,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo1MAogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkFiaTIgZXh0ZW5kcyBCYXNlQWJpIHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjUwCiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQWJpMiBleHRlbmRzIEJhc2VBYmkgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4MWUyOWZmZmYgLy8gbWV0aG9kICJzb21lTWV0aG9kKClzdHJpbmciCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3NvbWVNZXRob2Rfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjUwCiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQWJpMiBleHRlbmRzIEJhc2VBYmkgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6U3ViQWJpMi5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMToKICAgIHJldHVybgoKbWFpbl9zb21lTWV0aG9kX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo1MgogICAgLy8gc29tZU1ldGhvZCgpOiBzdHJpbmcgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBzb21lTWV0aG9kCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OlN1YkFiaTIuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo1MAogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkFiaTIgZXh0ZW5kcyBCYXNlQWJpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo1MAogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkFiaTIgZXh0ZW5kcyBCYXNlQWJpIHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OlN1YkFiaTIuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6U3ViQWJpMi5zb21lTWV0aG9kKCkgLT4gYnl0ZXM6CnNvbWVNZXRob2Q6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo1MwogICAgLy8gcmV0dXJuICdzdWItYWJpLTI6bm9vcCcKICAgIHB1c2hieXRlcyAic3ViLWFiaS0yOm5vb3AiCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6U3ViQWJpMi5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo1MAogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkFiaTIgZXh0ZW5kcyBCYXNlQWJpIHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjUwCiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQWJpMiBleHRlbmRzIEJhc2VBYmkgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4MWUyOWZmZmYgLy8gbWV0aG9kICJzb21lTWV0aG9kKClzdHJpbmciCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3NvbWVNZXRob2Rfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjUwCiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQWJpMiBleHRlbmRzIEJhc2VBYmkgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6U3ViQWJpMi5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMToKICAgIHJldHVybgoKbWFpbl9zb21lTWV0aG9kX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo1MgogICAgLy8gc29tZU1ldGhvZCgpOiBzdHJpbmcgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBzb21lTWV0aG9kCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OlN1YkFiaTIuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo1MAogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkFiaTIgZXh0ZW5kcyBCYXNlQWJpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo1MAogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkFiaTIgZXh0ZW5kcyBCYXNlQWJpIHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OlN1YkFiaTIuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6U3ViQWJpMi5zb21lTWV0aG9kKCkgLT4gYnl0ZXM6CnNvbWVNZXRob2Q6Cgpzb21lTWV0aG9kX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo1MwogICAgLy8gcmV0dXJuICdzdWItYWJpLTI6bm9vcCcKICAgIHB1c2hieXRlcyAic3ViLWFiaS0yOm5vb3AiCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6U3ViQWJpMi5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/abi-decorators/SubAbi2.arc56.json b/tests/approvals/out/unoptimized/abi-decorators/SubAbi2.arc56.json index 72f88a1da..332e67e6d 100644 --- a/tests/approvals/out/unoptimized/abi-decorators/SubAbi2.arc56.json +++ b/tests/approvals/out/unoptimized/abi-decorators/SubAbi2.arc56.json @@ -82,8 +82,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo1MAogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkFiaTIgZXh0ZW5kcyBCYXNlQWJpIHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjUwCiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQWJpMiBleHRlbmRzIEJhc2VBYmkgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4MWUyOWZmZmYgLy8gbWV0aG9kICJzb21lTWV0aG9kKClzdHJpbmciCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3NvbWVNZXRob2Rfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjUwCiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQWJpMiBleHRlbmRzIEJhc2VBYmkgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6U3ViQWJpMi5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMToKICAgIHJldHVybgoKbWFpbl9zb21lTWV0aG9kX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo1MgogICAgLy8gc29tZU1ldGhvZCgpOiBzdHJpbmcgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBzb21lTWV0aG9kCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OlN1YkFiaTIuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo1MAogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkFiaTIgZXh0ZW5kcyBCYXNlQWJpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo1MAogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkFiaTIgZXh0ZW5kcyBCYXNlQWJpIHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OlN1YkFiaTIuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6U3ViQWJpMi5zb21lTWV0aG9kKCkgLT4gYnl0ZXM6CnNvbWVNZXRob2Q6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo1MwogICAgLy8gcmV0dXJuICdzdWItYWJpLTI6bm9vcCcKICAgIHB1c2hieXRlcyAic3ViLWFiaS0yOm5vb3AiCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6U3ViQWJpMi5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo1MAogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkFiaTIgZXh0ZW5kcyBCYXNlQWJpIHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjUwCiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQWJpMiBleHRlbmRzIEJhc2VBYmkgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4MWUyOWZmZmYgLy8gbWV0aG9kICJzb21lTWV0aG9kKClzdHJpbmciCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3NvbWVNZXRob2Rfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hYmktZGVjb3JhdG9ycy5hbGdvLnRzOjUwCiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQWJpMiBleHRlbmRzIEJhc2VBYmkgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6U3ViQWJpMi5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMToKICAgIHJldHVybgoKbWFpbl9zb21lTWV0aG9kX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo1MgogICAgLy8gc29tZU1ldGhvZCgpOiBzdHJpbmcgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBzb21lTWV0aG9kCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OlN1YkFiaTIuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo1MAogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkFiaTIgZXh0ZW5kcyBCYXNlQWJpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo1MAogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkFiaTIgZXh0ZW5kcyBCYXNlQWJpIHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FiaS1kZWNvcmF0b3JzLmFsZ28udHM6OlN1YkFiaTIuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6U3ViQWJpMi5zb21lTWV0aG9kKCkgLT4gYnl0ZXM6CnNvbWVNZXRob2Q6Cgpzb21lTWV0aG9kX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo1MwogICAgLy8gcmV0dXJuICdzdWItYWJpLTI6bm9vcCcKICAgIHB1c2hieXRlcyAic3ViLWFiaS0yOm5vb3AiCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWJpLWRlY29yYXRvcnMuYWxnby50czo6U3ViQWJpMi5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAExGyITQQAyNhoAgAQeKf//TI4BAAIiQzEZIhJEMRgiE0SIACxJFRZXBgJMUIAEFR98dUxQsCNC/90xGSJMjgEAA0L/0TEYIhJEiAAVI0L/xoAOc3ViLWFiaS0yOm5vb3CJiQ==", @@ -94,7 +94,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/abi-decorators/SubAbi2.clear.teal b/tests/approvals/out/unoptimized/abi-decorators/SubAbi2.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/abi-decorators/SubAbi2.clear.teal +++ b/tests/approvals/out/unoptimized/abi-decorators/SubAbi2.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/accounts/AccountsContract.approval.teal b/tests/approvals/out/unoptimized/accounts/AccountsContract.approval.teal index e010351a6..478a8fbee 100644 --- a/tests/approvals/out/unoptimized/accounts/AccountsContract.approval.teal +++ b/tests/approvals/out/unoptimized/accounts/AccountsContract.approval.teal @@ -6,6 +6,8 @@ main: intcblock 0 1 93 bytecblock 0x00 0x068101 +main_block@0: + main_block@1: // tests/approvals/accounts.algo.ts:4 // export class AccountsContract extends Contract { @@ -202,6 +204,8 @@ main___algots__.defaultCreate@7: // _puya_lib.util.ensure_budget(required_budget: uint64, fee_source: uint64) -> void: ensure_budget: proto 2 0 + +ensure_budget_block@0: frame_dig -2 pushint 10 // 10 + @@ -252,6 +256,8 @@ getAccountInfo: // tests/approvals/accounts.algo.ts:5 // public getAccountInfo(account: Account, asset: Asset) { proto 2 15 + +getAccountInfo_block@0: // tests/approvals/accounts.algo.ts:6 // ensureBudget(1400) pushint 1400 // 1400 @@ -1375,4 +1381,6 @@ getAccountInfo: // tests/approvals/accounts.algo.ts::AccountsContract.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/accounts/AccountsContract.arc32.json b/tests/approvals/out/unoptimized/accounts/AccountsContract.arc32.json index f902c302b..3bfe7129d 100644 --- a/tests/approvals/out/unoptimized/accounts/AccountsContract.arc32.json +++ b/tests/approvals/out/unoptimized/accounts/AccountsContract.arc32.json @@ -74,8 +74,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDkzCiAgICBieXRlY2Jsb2NrIDB4MDAgMHgwNjgxMDEKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBY2NvdW50c0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANgoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFjY291bnRzQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhkZmU5YTAzNSAvLyBtZXRob2QgImdldEFjY291bnRJbmZvKGFjY291bnQsYXNzZXQpKGJ5dGVbXSx1aW50NjQsdWludDY0LGJ5dGVbXSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCxib29sLGJvb2wpIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9nZXRBY2NvdW50SW5mb19yb3V0ZUAzCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA1OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFjY291bnRzQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjpBY2NvdW50c0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX2dldEFjY291bnRJbmZvX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo1CiAgICAvLyBwdWJsaWMgZ2V0QWNjb3VudEluZm8oYWNjb3VudDogQWNjb3VudCwgYXNzZXQ6IEFzc2V0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQWNjb3VudHNDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIHR4bmFzIEFjY291bnRzCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICB0eG5hcyBBc3NldHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyBnZXRBY2NvdW50SW5mbyhhY2NvdW50OiBBY2NvdW50LCBhc3NldDogQXNzZXQpIHsKICAgIGNhbGxzdWIgZ2V0QWNjb3VudEluZm8KICAgIGNvdmVyIDE0CiAgICBjb3ZlciAxMwogICAgY292ZXIgMTIKICAgIGNvdmVyIDExCiAgICBjb3ZlciAxMAogICAgY292ZXIgOQogICAgY292ZXIgOAogICAgY292ZXIgNwogICAgY292ZXIgNgogICAgY292ZXIgNQogICAgY292ZXIgNAogICAgY292ZXIgMwogICAgY292ZXIgMgogICAgc3dhcAogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGNvdmVyIDExCiAgICBpdG9iCiAgICBjb3ZlciAxMgogICAgaXRvYgogICAgY292ZXIgMTIKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBjb3ZlciAxNAogICAgaXRvYgogICAgY292ZXIgOQogICAgaXRvYgogICAgY292ZXIgMTAKICAgIGl0b2IKICAgIGNvdmVyIDExCiAgICBpdG9iCiAgICBjb3ZlciAxMQogICAgaXRvYgogICAgY292ZXIgMTIKICAgIGl0b2IKICAgIGNvdmVyIDEyCiAgICBpdG9iCiAgICBjb3ZlciAxMgogICAgaXRvYgogICAgY292ZXIgMTIKICAgIHN3YXAKICAgIGl0b2IKICAgIGNvdmVyIDEyCiAgICBieXRlY18wIC8vIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDkKICAgIHNldGJpdAogICAgY292ZXIgMTEKICAgIGJ5dGVjXzAgLy8gMHgwMAogICAgaW50Y18wIC8vIDAKICAgIHVuY292ZXIgMTUKICAgIHNldGJpdAogICAgY292ZXIgOQogICAgaW50Y18yIC8vIDkzCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgcHVzaGJ5dGVzIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGRpZyAxCiAgICBsZW4KICAgIGludGNfMiAvLyA5MwogICAgKwogICAgc3dhcAogICAgdW5jb3ZlciA0CiAgICBjb25jYXQKICAgIHVuY292ZXIgNQogICAgY29uY2F0CiAgICBzd2FwCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgY29uY2F0CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgdW5jb3ZlciAzCiAgICBjb25jYXQKICAgIHVuY292ZXIgNAogICAgY29uY2F0CiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICBzd2FwCiAgICBwdXNoaW50IDczNyAvLyA3MzcKICAgIHVuY292ZXIgMgogICAgc2V0Yml0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OkFjY291bnRzQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQWNjb3VudHNDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQWNjb3VudHNDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OkFjY291bnRzQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCgovLyBfcHV5YV9saWIudXRpbC5lbnN1cmVfYnVkZ2V0KHJlcXVpcmVkX2J1ZGdldDogdWludDY0LCBmZWVfc291cmNlOiB1aW50NjQpIC0+IHZvaWQ6CmVuc3VyZV9idWRnZXQ6CiAgICBwcm90byAyIDAKICAgIGZyYW1lX2RpZyAtMgogICAgcHVzaGludCAxMCAvLyAxMAogICAgKwoKZW5zdXJlX2J1ZGdldF93aGlsZV90b3BAMToKICAgIGdsb2JhbCBPcGNvZGVCdWRnZXQKICAgIGZyYW1lX2RpZyAwCiAgICA8CiAgICBieiBlbnN1cmVfYnVkZ2V0X2FmdGVyX3doaWxlQDcKCmVuc3VyZV9idWRnZXRfd2hpbGVfYm9keUAyOgogICAgaXR4bl9iZWdpbgogICAgcHVzaGludCA2IC8vIGFwcGwKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIHB1c2hpbnQgNSAvLyBEZWxldGVBcHBsaWNhdGlvbgogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIGJ5dGVjXzEgLy8gMHgwNjgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCiAgICBieXRlY18xIC8vIDB4MDY4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18xIC8vIDEKICAgIGZyYW1lX2RpZyAtMQogICAgbWF0Y2ggZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV8wQDMgZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV8xQDQKCmVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV9uZXh0QDY6CiAgICBpdHhuX3N1Ym1pdAogICAgYiBlbnN1cmVfYnVkZ2V0X3doaWxlX3RvcEAxCgplbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlXzFANDoKICAgIGdsb2JhbCBNaW5UeG5GZWUKICAgIGl0eG5fZmllbGQgRmVlCiAgICBiIGVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfbmV4dEA2CgplbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlXzBAMzoKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgYiBlbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlX25leHRANgoKZW5zdXJlX2J1ZGdldF9hZnRlcl93aGlsZUA3OgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OkFjY291bnRzQ29udHJhY3QuZ2V0QWNjb3VudEluZm8oYWNjb3VudDogYnl0ZXMsIGFzc2V0OiB1aW50NjQpIC0+IGJ5dGVzLCB1aW50NjQsIHVpbnQ2NCwgYnl0ZXMsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0OgpnZXRBY2NvdW50SW5mbzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyBnZXRBY2NvdW50SW5mbyhhY2NvdW50OiBBY2NvdW50LCBhc3NldDogQXNzZXQpIHsKICAgIHByb3RvIDIgMTUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjYKICAgIC8vIGVuc3VyZUJ1ZGdldCgxNDAwKQogICAgcHVzaGludCAxNDAwIC8vIDE0MDAKICAgIGludGNfMCAvLyAwCiAgICBjYWxsc3ViIGVuc3VyZV9idWRnZXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMQogICAgLy8gaXNPcHRJbkFwcDogYWNjb3VudC5pc09wdGVkSW4oR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbklkKSwKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25JRAogICAgZnJhbWVfZGlnIC0yCiAgICBzd2FwCiAgICBhcHBfb3B0ZWRfaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjIKICAgIC8vIGlzT3B0SW5Bc3NldDogYWNjb3VudC5pc09wdGVkSW4oYXNzZXQpLAogICAgZnJhbWVfZGlnIC0yCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQogICAgYnVyeSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo3LTIzCiAgICAvLyByZXR1cm4gewogICAgLy8gICBieXRlczogYWNjb3VudC5ieXRlcywKICAgIC8vICAgYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgLy8gICBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICAvLyAgIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgLy8gICB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgLy8gICB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIC8vICAgdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIC8vICAgdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgLy8gICB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICAvLyAgIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICAvLyAgIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgLy8gICB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICAvLyAgIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIC8vICAgaXNPcHRJbkFwcDogYWNjb3VudC5pc09wdGVkSW4oR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbklkKSwKICAgIC8vICAgaXNPcHRJbkFzc2V0OiBhY2NvdW50LmlzT3B0ZWRJbihhc3NldCksCiAgICAvLyB9CiAgICBmcmFtZV9kaWcgLTIKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjpBY2NvdW50c0NvbnRyYWN0Ll9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDkzCiAgICBieXRlY2Jsb2NrIDB4MDAgMHgwNjgxMDEKCm1haW5fYmxvY2tAMDoKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBY2NvdW50c0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANgoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFjY291bnRzQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhkZmU5YTAzNSAvLyBtZXRob2QgImdldEFjY291bnRJbmZvKGFjY291bnQsYXNzZXQpKGJ5dGVbXSx1aW50NjQsdWludDY0LGJ5dGVbXSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCxib29sLGJvb2wpIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9nZXRBY2NvdW50SW5mb19yb3V0ZUAzCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA1OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFjY291bnRzQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjpBY2NvdW50c0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX2dldEFjY291bnRJbmZvX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo1CiAgICAvLyBwdWJsaWMgZ2V0QWNjb3VudEluZm8oYWNjb3VudDogQWNjb3VudCwgYXNzZXQ6IEFzc2V0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQWNjb3VudHNDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIHR4bmFzIEFjY291bnRzCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICB0eG5hcyBBc3NldHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyBnZXRBY2NvdW50SW5mbyhhY2NvdW50OiBBY2NvdW50LCBhc3NldDogQXNzZXQpIHsKICAgIGNhbGxzdWIgZ2V0QWNjb3VudEluZm8KICAgIGNvdmVyIDE0CiAgICBjb3ZlciAxMwogICAgY292ZXIgMTIKICAgIGNvdmVyIDExCiAgICBjb3ZlciAxMAogICAgY292ZXIgOQogICAgY292ZXIgOAogICAgY292ZXIgNwogICAgY292ZXIgNgogICAgY292ZXIgNQogICAgY292ZXIgNAogICAgY292ZXIgMwogICAgY292ZXIgMgogICAgc3dhcAogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGNvdmVyIDExCiAgICBpdG9iCiAgICBjb3ZlciAxMgogICAgaXRvYgogICAgY292ZXIgMTIKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBjb3ZlciAxNAogICAgaXRvYgogICAgY292ZXIgOQogICAgaXRvYgogICAgY292ZXIgMTAKICAgIGl0b2IKICAgIGNvdmVyIDExCiAgICBpdG9iCiAgICBjb3ZlciAxMQogICAgaXRvYgogICAgY292ZXIgMTIKICAgIGl0b2IKICAgIGNvdmVyIDEyCiAgICBpdG9iCiAgICBjb3ZlciAxMgogICAgaXRvYgogICAgY292ZXIgMTIKICAgIHN3YXAKICAgIGl0b2IKICAgIGNvdmVyIDEyCiAgICBieXRlY18wIC8vIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDkKICAgIHNldGJpdAogICAgY292ZXIgMTEKICAgIGJ5dGVjXzAgLy8gMHgwMAogICAgaW50Y18wIC8vIDAKICAgIHVuY292ZXIgMTUKICAgIHNldGJpdAogICAgY292ZXIgOQogICAgaW50Y18yIC8vIDkzCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgcHVzaGJ5dGVzIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGRpZyAxCiAgICBsZW4KICAgIGludGNfMiAvLyA5MwogICAgKwogICAgc3dhcAogICAgdW5jb3ZlciA0CiAgICBjb25jYXQKICAgIHVuY292ZXIgNQogICAgY29uY2F0CiAgICBzd2FwCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgY29uY2F0CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgdW5jb3ZlciAzCiAgICBjb25jYXQKICAgIHVuY292ZXIgNAogICAgY29uY2F0CiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICBzd2FwCiAgICBwdXNoaW50IDczNyAvLyA3MzcKICAgIHVuY292ZXIgMgogICAgc2V0Yml0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OkFjY291bnRzQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQWNjb3VudHNDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQWNjb3VudHNDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OkFjY291bnRzQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCgovLyBfcHV5YV9saWIudXRpbC5lbnN1cmVfYnVkZ2V0KHJlcXVpcmVkX2J1ZGdldDogdWludDY0LCBmZWVfc291cmNlOiB1aW50NjQpIC0+IHZvaWQ6CmVuc3VyZV9idWRnZXQ6CiAgICBwcm90byAyIDAKCmVuc3VyZV9idWRnZXRfYmxvY2tAMDoKICAgIGZyYW1lX2RpZyAtMgogICAgcHVzaGludCAxMCAvLyAxMAogICAgKwoKZW5zdXJlX2J1ZGdldF93aGlsZV90b3BAMToKICAgIGdsb2JhbCBPcGNvZGVCdWRnZXQKICAgIGZyYW1lX2RpZyAwCiAgICA8CiAgICBieiBlbnN1cmVfYnVkZ2V0X2FmdGVyX3doaWxlQDcKCmVuc3VyZV9idWRnZXRfd2hpbGVfYm9keUAyOgogICAgaXR4bl9iZWdpbgogICAgcHVzaGludCA2IC8vIGFwcGwKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIHB1c2hpbnQgNSAvLyBEZWxldGVBcHBsaWNhdGlvbgogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIGJ5dGVjXzEgLy8gMHgwNjgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCiAgICBieXRlY18xIC8vIDB4MDY4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18xIC8vIDEKICAgIGZyYW1lX2RpZyAtMQogICAgbWF0Y2ggZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV8wQDMgZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV8xQDQKCmVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV9uZXh0QDY6CiAgICBpdHhuX3N1Ym1pdAogICAgYiBlbnN1cmVfYnVkZ2V0X3doaWxlX3RvcEAxCgplbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlXzFANDoKICAgIGdsb2JhbCBNaW5UeG5GZWUKICAgIGl0eG5fZmllbGQgRmVlCiAgICBiIGVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfbmV4dEA2CgplbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlXzBAMzoKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgYiBlbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlX25leHRANgoKZW5zdXJlX2J1ZGdldF9hZnRlcl93aGlsZUA3OgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OkFjY291bnRzQ29udHJhY3QuZ2V0QWNjb3VudEluZm8oYWNjb3VudDogYnl0ZXMsIGFzc2V0OiB1aW50NjQpIC0+IGJ5dGVzLCB1aW50NjQsIHVpbnQ2NCwgYnl0ZXMsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0OgpnZXRBY2NvdW50SW5mbzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyBnZXRBY2NvdW50SW5mbyhhY2NvdW50OiBBY2NvdW50LCBhc3NldDogQXNzZXQpIHsKICAgIHByb3RvIDIgMTUKCmdldEFjY291bnRJbmZvX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo2CiAgICAvLyBlbnN1cmVCdWRnZXQoMTQwMCkKICAgIHB1c2hpbnQgMTQwMCAvLyAxNDAwCiAgICBpbnRjXzAgLy8gMAogICAgY2FsbHN1YiBlbnN1cmVfYnVkZ2V0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjEKICAgIC8vIGlzT3B0SW5BcHA6IGFjY291bnQuaXNPcHRlZEluKEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25JZCksCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uSUQKICAgIGZyYW1lX2RpZyAtMgogICAgc3dhcAogICAgYXBwX29wdGVkX2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIyCiAgICAvLyBpc09wdEluQXNzZXQ6IGFjY291bnQuaXNPcHRlZEluKGFzc2V0KSwKICAgIGZyYW1lX2RpZyAtMgogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKICAgIGJ1cnkgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6Ny0yMwogICAgLy8gcmV0dXJuIHsKICAgIC8vICAgYnl0ZXM6IGFjY291bnQuYnl0ZXMsCiAgICAvLyAgIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIC8vICAgbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgLy8gICBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIC8vICAgdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIC8vICAgdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICAvLyAgIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICAvLyAgIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIC8vICAgdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgLy8gICB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgLy8gICB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIC8vICAgdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgLy8gICB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICAvLyAgIGlzT3B0SW5BcHA6IGFjY291bnQuaXNPcHRlZEluKEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25JZCksCiAgICAvLyAgIGlzT3B0SW5Bc3NldDogYWNjb3VudC5pc09wdGVkSW4oYXNzZXQpLAogICAgLy8gfQogICAgZnJhbWVfZGlnIC0yCiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo6QWNjb3VudHNDb250cmFjdC5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/accounts/AccountsContract.arc56.json b/tests/approvals/out/unoptimized/accounts/AccountsContract.arc56.json index 1f4b68800..f953bd989 100644 --- a/tests/approvals/out/unoptimized/accounts/AccountsContract.arc56.json +++ b/tests/approvals/out/unoptimized/accounts/AccountsContract.arc56.json @@ -340,8 +340,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDkzCiAgICBieXRlY2Jsb2NrIDB4MDAgMHgwNjgxMDEKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBY2NvdW50c0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANgoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFjY291bnRzQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhkZmU5YTAzNSAvLyBtZXRob2QgImdldEFjY291bnRJbmZvKGFjY291bnQsYXNzZXQpKGJ5dGVbXSx1aW50NjQsdWludDY0LGJ5dGVbXSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCxib29sLGJvb2wpIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9nZXRBY2NvdW50SW5mb19yb3V0ZUAzCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA1OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFjY291bnRzQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjpBY2NvdW50c0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX2dldEFjY291bnRJbmZvX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo1CiAgICAvLyBwdWJsaWMgZ2V0QWNjb3VudEluZm8oYWNjb3VudDogQWNjb3VudCwgYXNzZXQ6IEFzc2V0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQWNjb3VudHNDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIHR4bmFzIEFjY291bnRzCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICB0eG5hcyBBc3NldHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyBnZXRBY2NvdW50SW5mbyhhY2NvdW50OiBBY2NvdW50LCBhc3NldDogQXNzZXQpIHsKICAgIGNhbGxzdWIgZ2V0QWNjb3VudEluZm8KICAgIGNvdmVyIDE0CiAgICBjb3ZlciAxMwogICAgY292ZXIgMTIKICAgIGNvdmVyIDExCiAgICBjb3ZlciAxMAogICAgY292ZXIgOQogICAgY292ZXIgOAogICAgY292ZXIgNwogICAgY292ZXIgNgogICAgY292ZXIgNQogICAgY292ZXIgNAogICAgY292ZXIgMwogICAgY292ZXIgMgogICAgc3dhcAogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGNvdmVyIDExCiAgICBpdG9iCiAgICBjb3ZlciAxMgogICAgaXRvYgogICAgY292ZXIgMTIKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBjb3ZlciAxNAogICAgaXRvYgogICAgY292ZXIgOQogICAgaXRvYgogICAgY292ZXIgMTAKICAgIGl0b2IKICAgIGNvdmVyIDExCiAgICBpdG9iCiAgICBjb3ZlciAxMQogICAgaXRvYgogICAgY292ZXIgMTIKICAgIGl0b2IKICAgIGNvdmVyIDEyCiAgICBpdG9iCiAgICBjb3ZlciAxMgogICAgaXRvYgogICAgY292ZXIgMTIKICAgIHN3YXAKICAgIGl0b2IKICAgIGNvdmVyIDEyCiAgICBieXRlY18wIC8vIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDkKICAgIHNldGJpdAogICAgY292ZXIgMTEKICAgIGJ5dGVjXzAgLy8gMHgwMAogICAgaW50Y18wIC8vIDAKICAgIHVuY292ZXIgMTUKICAgIHNldGJpdAogICAgY292ZXIgOQogICAgaW50Y18yIC8vIDkzCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgcHVzaGJ5dGVzIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGRpZyAxCiAgICBsZW4KICAgIGludGNfMiAvLyA5MwogICAgKwogICAgc3dhcAogICAgdW5jb3ZlciA0CiAgICBjb25jYXQKICAgIHVuY292ZXIgNQogICAgY29uY2F0CiAgICBzd2FwCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgY29uY2F0CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgdW5jb3ZlciAzCiAgICBjb25jYXQKICAgIHVuY292ZXIgNAogICAgY29uY2F0CiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICBzd2FwCiAgICBwdXNoaW50IDczNyAvLyA3MzcKICAgIHVuY292ZXIgMgogICAgc2V0Yml0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OkFjY291bnRzQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQWNjb3VudHNDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQWNjb3VudHNDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OkFjY291bnRzQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCgovLyBfcHV5YV9saWIudXRpbC5lbnN1cmVfYnVkZ2V0KHJlcXVpcmVkX2J1ZGdldDogdWludDY0LCBmZWVfc291cmNlOiB1aW50NjQpIC0+IHZvaWQ6CmVuc3VyZV9idWRnZXQ6CiAgICBwcm90byAyIDAKICAgIGZyYW1lX2RpZyAtMgogICAgcHVzaGludCAxMCAvLyAxMAogICAgKwoKZW5zdXJlX2J1ZGdldF93aGlsZV90b3BAMToKICAgIGdsb2JhbCBPcGNvZGVCdWRnZXQKICAgIGZyYW1lX2RpZyAwCiAgICA8CiAgICBieiBlbnN1cmVfYnVkZ2V0X2FmdGVyX3doaWxlQDcKCmVuc3VyZV9idWRnZXRfd2hpbGVfYm9keUAyOgogICAgaXR4bl9iZWdpbgogICAgcHVzaGludCA2IC8vIGFwcGwKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIHB1c2hpbnQgNSAvLyBEZWxldGVBcHBsaWNhdGlvbgogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIGJ5dGVjXzEgLy8gMHgwNjgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCiAgICBieXRlY18xIC8vIDB4MDY4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18xIC8vIDEKICAgIGZyYW1lX2RpZyAtMQogICAgbWF0Y2ggZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV8wQDMgZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV8xQDQKCmVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV9uZXh0QDY6CiAgICBpdHhuX3N1Ym1pdAogICAgYiBlbnN1cmVfYnVkZ2V0X3doaWxlX3RvcEAxCgplbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlXzFANDoKICAgIGdsb2JhbCBNaW5UeG5GZWUKICAgIGl0eG5fZmllbGQgRmVlCiAgICBiIGVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfbmV4dEA2CgplbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlXzBAMzoKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgYiBlbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlX25leHRANgoKZW5zdXJlX2J1ZGdldF9hZnRlcl93aGlsZUA3OgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OkFjY291bnRzQ29udHJhY3QuZ2V0QWNjb3VudEluZm8oYWNjb3VudDogYnl0ZXMsIGFzc2V0OiB1aW50NjQpIC0+IGJ5dGVzLCB1aW50NjQsIHVpbnQ2NCwgYnl0ZXMsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0OgpnZXRBY2NvdW50SW5mbzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyBnZXRBY2NvdW50SW5mbyhhY2NvdW50OiBBY2NvdW50LCBhc3NldDogQXNzZXQpIHsKICAgIHByb3RvIDIgMTUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjYKICAgIC8vIGVuc3VyZUJ1ZGdldCgxNDAwKQogICAgcHVzaGludCAxNDAwIC8vIDE0MDAKICAgIGludGNfMCAvLyAwCiAgICBjYWxsc3ViIGVuc3VyZV9idWRnZXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMAogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMQogICAgLy8gaXNPcHRJbkFwcDogYWNjb3VudC5pc09wdGVkSW4oR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbklkKSwKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25JRAogICAgZnJhbWVfZGlnIC0yCiAgICBzd2FwCiAgICBhcHBfb3B0ZWRfaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjIKICAgIC8vIGlzT3B0SW5Bc3NldDogYWNjb3VudC5pc09wdGVkSW4oYXNzZXQpLAogICAgZnJhbWVfZGlnIC0yCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQogICAgYnVyeSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo3LTIzCiAgICAvLyByZXR1cm4gewogICAgLy8gICBieXRlczogYWNjb3VudC5ieXRlcywKICAgIC8vICAgYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgLy8gICBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICAvLyAgIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgLy8gICB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgLy8gICB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIC8vICAgdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIC8vICAgdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgLy8gICB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICAvLyAgIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICAvLyAgIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgLy8gICB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICAvLyAgIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIC8vICAgaXNPcHRJbkFwcDogYWNjb3VudC5pc09wdGVkSW4oR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbklkKSwKICAgIC8vICAgaXNPcHRJbkFzc2V0OiBhY2NvdW50LmlzT3B0ZWRJbihhc3NldCksCiAgICAvLyB9CiAgICBmcmFtZV9kaWcgLTIKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHVuY292ZXIgMTQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjpBY2NvdW50c0NvbnRyYWN0Ll9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDkzCiAgICBieXRlY2Jsb2NrIDB4MDAgMHgwNjgxMDEKCm1haW5fYmxvY2tAMDoKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBY2NvdW50c0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANgoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFjY291bnRzQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhkZmU5YTAzNSAvLyBtZXRob2QgImdldEFjY291bnRJbmZvKGFjY291bnQsYXNzZXQpKGJ5dGVbXSx1aW50NjQsdWludDY0LGJ5dGVbXSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCxib29sLGJvb2wpIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9nZXRBY2NvdW50SW5mb19yb3V0ZUAzCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA1OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFjY291bnRzQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjpBY2NvdW50c0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX2dldEFjY291bnRJbmZvX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo1CiAgICAvLyBwdWJsaWMgZ2V0QWNjb3VudEluZm8oYWNjb3VudDogQWNjb3VudCwgYXNzZXQ6IEFzc2V0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQWNjb3VudHNDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIHR4bmFzIEFjY291bnRzCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICB0eG5hcyBBc3NldHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyBnZXRBY2NvdW50SW5mbyhhY2NvdW50OiBBY2NvdW50LCBhc3NldDogQXNzZXQpIHsKICAgIGNhbGxzdWIgZ2V0QWNjb3VudEluZm8KICAgIGNvdmVyIDE0CiAgICBjb3ZlciAxMwogICAgY292ZXIgMTIKICAgIGNvdmVyIDExCiAgICBjb3ZlciAxMAogICAgY292ZXIgOQogICAgY292ZXIgOAogICAgY292ZXIgNwogICAgY292ZXIgNgogICAgY292ZXIgNQogICAgY292ZXIgNAogICAgY292ZXIgMwogICAgY292ZXIgMgogICAgc3dhcAogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGNvdmVyIDExCiAgICBpdG9iCiAgICBjb3ZlciAxMgogICAgaXRvYgogICAgY292ZXIgMTIKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBjb3ZlciAxNAogICAgaXRvYgogICAgY292ZXIgOQogICAgaXRvYgogICAgY292ZXIgMTAKICAgIGl0b2IKICAgIGNvdmVyIDExCiAgICBpdG9iCiAgICBjb3ZlciAxMQogICAgaXRvYgogICAgY292ZXIgMTIKICAgIGl0b2IKICAgIGNvdmVyIDEyCiAgICBpdG9iCiAgICBjb3ZlciAxMgogICAgaXRvYgogICAgY292ZXIgMTIKICAgIHN3YXAKICAgIGl0b2IKICAgIGNvdmVyIDEyCiAgICBieXRlY18wIC8vIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDkKICAgIHNldGJpdAogICAgY292ZXIgMTEKICAgIGJ5dGVjXzAgLy8gMHgwMAogICAgaW50Y18wIC8vIDAKICAgIHVuY292ZXIgMTUKICAgIHNldGJpdAogICAgY292ZXIgOQogICAgaW50Y18yIC8vIDkzCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgcHVzaGJ5dGVzIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGRpZyAxCiAgICBsZW4KICAgIGludGNfMiAvLyA5MwogICAgKwogICAgc3dhcAogICAgdW5jb3ZlciA0CiAgICBjb25jYXQKICAgIHVuY292ZXIgNQogICAgY29uY2F0CiAgICBzd2FwCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgY29uY2F0CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgdW5jb3ZlciAzCiAgICBjb25jYXQKICAgIHVuY292ZXIgNAogICAgY29uY2F0CiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICBzd2FwCiAgICBwdXNoaW50IDczNyAvLyA3MzcKICAgIHVuY292ZXIgMgogICAgc2V0Yml0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OkFjY291bnRzQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQWNjb3VudHNDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQWNjb3VudHNDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OkFjY291bnRzQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCgovLyBfcHV5YV9saWIudXRpbC5lbnN1cmVfYnVkZ2V0KHJlcXVpcmVkX2J1ZGdldDogdWludDY0LCBmZWVfc291cmNlOiB1aW50NjQpIC0+IHZvaWQ6CmVuc3VyZV9idWRnZXQ6CiAgICBwcm90byAyIDAKCmVuc3VyZV9idWRnZXRfYmxvY2tAMDoKICAgIGZyYW1lX2RpZyAtMgogICAgcHVzaGludCAxMCAvLyAxMAogICAgKwoKZW5zdXJlX2J1ZGdldF93aGlsZV90b3BAMToKICAgIGdsb2JhbCBPcGNvZGVCdWRnZXQKICAgIGZyYW1lX2RpZyAwCiAgICA8CiAgICBieiBlbnN1cmVfYnVkZ2V0X2FmdGVyX3doaWxlQDcKCmVuc3VyZV9idWRnZXRfd2hpbGVfYm9keUAyOgogICAgaXR4bl9iZWdpbgogICAgcHVzaGludCA2IC8vIGFwcGwKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIHB1c2hpbnQgNSAvLyBEZWxldGVBcHBsaWNhdGlvbgogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIGJ5dGVjXzEgLy8gMHgwNjgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCiAgICBieXRlY18xIC8vIDB4MDY4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18xIC8vIDEKICAgIGZyYW1lX2RpZyAtMQogICAgbWF0Y2ggZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV8wQDMgZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV8xQDQKCmVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV9uZXh0QDY6CiAgICBpdHhuX3N1Ym1pdAogICAgYiBlbnN1cmVfYnVkZ2V0X3doaWxlX3RvcEAxCgplbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlXzFANDoKICAgIGdsb2JhbCBNaW5UeG5GZWUKICAgIGl0eG5fZmllbGQgRmVlCiAgICBiIGVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfbmV4dEA2CgplbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlXzBAMzoKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgYiBlbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlX25leHRANgoKZW5zdXJlX2J1ZGdldF9hZnRlcl93aGlsZUA3OgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OkFjY291bnRzQ29udHJhY3QuZ2V0QWNjb3VudEluZm8oYWNjb3VudDogYnl0ZXMsIGFzc2V0OiB1aW50NjQpIC0+IGJ5dGVzLCB1aW50NjQsIHVpbnQ2NCwgYnl0ZXMsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0OgpnZXRBY2NvdW50SW5mbzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyBnZXRBY2NvdW50SW5mbyhhY2NvdW50OiBBY2NvdW50LCBhc3NldDogQXNzZXQpIHsKICAgIHByb3RvIDIgMTUKCmdldEFjY291bnRJbmZvX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo2CiAgICAvLyBlbnN1cmVCdWRnZXQoMTQwMCkKICAgIHB1c2hpbnQgMTQwMCAvLyAxNDAwCiAgICBpbnRjXzAgLy8gMAogICAgY2FsbHN1YiBlbnN1cmVfYnVkZ2V0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjEKICAgIC8vIGlzT3B0SW5BcHA6IGFjY291bnQuaXNPcHRlZEluKEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25JZCksCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uSUQKICAgIGZyYW1lX2RpZyAtMgogICAgc3dhcAogICAgYXBwX29wdGVkX2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIyCiAgICAvLyBpc09wdEluQXNzZXQ6IGFjY291bnQuaXNPcHRlZEluKGFzc2V0KSwKICAgIGZyYW1lX2RpZyAtMgogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKICAgIGJ1cnkgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6Ny0yMwogICAgLy8gcmV0dXJuIHsKICAgIC8vICAgYnl0ZXM6IGFjY291bnQuYnl0ZXMsCiAgICAvLyAgIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIC8vICAgbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgLy8gICBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIC8vICAgdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIC8vICAgdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICAvLyAgIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICAvLyAgIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIC8vICAgdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgLy8gICB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgLy8gICB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIC8vICAgdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgLy8gICB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICAvLyAgIGlzT3B0SW5BcHA6IGFjY291bnQuaXNPcHRlZEluKEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25JZCksCiAgICAvLyAgIGlzT3B0SW5Bc3NldDogYWNjb3VudC5pc09wdGVkSW4oYXNzZXQpLAogICAgLy8gfQogICAgZnJhbWVfZGlnIC0yCiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo6QWNjb3VudHNDb250cmFjdC5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiADAAFdJgIBAAMGgQExGyITQQDdNhoAgATf6aA1TI4BAAIiQzEZIhJEMRgiE0Q2GgEXwBw2GgIXwDCIAQZODk4NTgxOC04KTglOCE4HTgZOBU4ETgNOAkxJFRZXBgJMUE4LFk4MFk4MSRUWVwYCTFBODhZOCRZOChZOCxZOCxZODBZODBZODBZODEwWTgwoIk8JVE4LKCJPD1ROCSQWVwYCgABMUEsBFSQITE8EUE8FUEwWVwYCUE8CUE8CUE8CUE8CUE8CUE8CUE8DUE8DUE8EUE8DUE8CIlNMgeEFTwJUTFBMUIAEFR98dUxQsCNC/zIxGSJMjgEAA0L/JjEYIhJEiAVKI0L/G4oCAIv+gQoIMgyLAAxBACqxgQayEIEFshkpsh4psh8iI4v/jgIACwAEs0L/2zIAsgFC//UisgFC/++JigIPgfgKIoj/u4v+cwBFAUSL/nMBRQFEi/5zAkUBRIv+cwNFAUSL/nMERQFEi/5zBUUBRIv+cwZFAUSL/nMHRQFEi/5zCEUBRIv+cwlFAUSL/nMKRQFEi/5zC0UBRIv+cwBEi/5zAUUBRIv+cwJFAUSL/nMDRQFEi/5zBEUBRIv+cwVFAUSL/nMGRQFEi/5zB0UBRIv+cwhFAUSL/nMJRQFEi/5zCkUBRIv+cwtFAUSL/nMARQFEi/5zAUSL/nMCRQFEi/5zA0UBRIv+cwRFAUSL/nMFRQFEi/5zBkUBRIv+cwdFAUSL/nMIRQFEi/5zCUUBRIv+cwpFAUSL/nMLRQFEi/5zAEUBRIv+cwFFAUSL/nMCRIv+cwNFAUSL/nMERQFEi/5zBUUBRIv+cwZFAUSL/nMHRQFEi/5zCEUBRIv+cwlFAUSL/nMKRQFEi/5zC0UBRIv+cwBFAUSL/nMBRQFEi/5zAkUBRIv+cwNEi/5zBEUBRIv+cwVFAUSL/nMGRQFEi/5zB0UBRIv+cwhFAUSL/nMJRQFEi/5zCkUBRIv+cwtFAUSL/nMARQFEi/5zAUUBRIv+cwJFAUSL/nMDRQFEi/5zBESL/nMFRQFEi/5zBkUBRIv+cwdFAUSL/nMIRQFEi/5zCUUBRIv+cwpFAUSL/nMLRQFEi/5zAEUBRIv+cwFFAUSL/nMCRQFEi/5zA0UBRIv+cwRFAUSL/nMFRIv+cwZFAUSL/nMHRQFEi/5zCEUBRIv+cwlFAUSL/nMKRQFEi/5zC0UBRIv+cwBFAUSL/nMBRQFEi/5zAkUBRIv+cwNFAUSL/nMERQFEi/5zBUUBRIv+cwZEi/5zB0UBRIv+cwhFAUSL/nMJRQFEi/5zCkUBRIv+cwtFAUSL/nMARQFEi/5zAUUBRIv+cwJFAUSL/nMDRQFEi/5zBEUBRIv+cwVFAUSL/nMGRQFEi/5zB0SL/nMIRQFEi/5zCUUBRIv+cwpFAUSL/nMLRQFEi/5zAEUBRIv+cwFFAUSL/nMCRQFEi/5zA0UBRIv+cwRFAUSL/nMFRQFEi/5zBkUBRIv+cwdFAUSL/nMIRIv+cwlFAUSL/nMKRQFEi/5zC0UBRIv+cwBFAUSL/nMBRQFEi/5zAkUBRIv+cwNFAUSL/nMERQFEi/5zBUUBRIv+cwZFAUSL/nMHRQFEi/5zCEUBRIv+cwlEi/5zCkUBRIv+cwtFAUSL/nMARQFEi/5zAUUBRIv+cwJFAUSL/nMDRQFEi/5zBEUBRIv+cwVFAUSL/nMGRQFEi/5zB0UBRIv+cwhFAUSL/nMJRQFEi/5zCkSL/nMLRQFEi/5zAEUBRIv+cwFFAUSL/nMCRQFEi/5zA0UBRIv+cwRFAUSL/nMFRQFEi/5zBkUBRIv+cwdFAUSL/nMIRQFEi/5zCUUBRIv+cwpFAUSL/nMLRIv+cwBFAUSL/nMBRQFEi/5zAkUBRIv+cwNFAUSL/nMERQFEi/5zBUUBRIv+cwZFAUSL/nMHRQFEi/5zCEUBRIv+cwlFAUSL/nMKRQFEi/5zC0UBRDIIi/5MYYv+cwBFAUSL/nMBRQFEi/5zAkUBRIv+cwNFAUSL/nMERQFEi/5zBUUBRIv+cwZFAUSL/nMHRQFEi/5zCEUBRIv+cwlFAUSL/nMKRQFEi/5zC0UBRIv+i/9wAEUBi/5PDk8OTw5PDk8OTw5PDk8OTw5PDk8OTw5PDk8OiYk=", @@ -352,7 +352,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/accounts/AccountsContract.clear.teal b/tests/approvals/out/unoptimized/accounts/AccountsContract.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/accounts/AccountsContract.clear.teal +++ b/tests/approvals/out/unoptimized/accounts/AccountsContract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/arc-28-events/EventEmitter.approval.teal b/tests/approvals/out/unoptimized/arc-28-events/EventEmitter.approval.teal index 63b0e1434..a3c57db5a 100644 --- a/tests/approvals/out/unoptimized/arc-28-events/EventEmitter.approval.teal +++ b/tests/approvals/out/unoptimized/arc-28-events/EventEmitter.approval.teal @@ -6,6 +6,8 @@ main: intcblock 0 1 3 4 bytecblock 0x 0x0b6325ed 0x00 0xa313c066 +main_block@0: + main_block@1: // tests/approvals/arc-28-events.algo.ts:13 // class EventEmitter extends Contract { @@ -133,6 +135,8 @@ emitSwapped: // tests/approvals/arc-28-events.algo.ts:14 // emitSwapped(a: UintN8, b: UintN8) { proto 2 0 + +emitSwapped_block@0: // tests/approvals/arc-28-events.algo.ts:15 // emit({ a: b, b: a }) bytec_0 // 0x @@ -222,6 +226,8 @@ emitCustom: // tests/approvals/arc-28-events.algo.ts:32 // emitCustom(arg0: string, arg1: boolean) { proto 2 0 + +emitCustom_block@0: // tests/approvals/arc-28-events.algo.ts:33 // emit('Custom', arg0, arg1) frame_dig -2 @@ -282,6 +288,8 @@ emitDynamicBytes: // tests/approvals/arc-28-events.algo.ts:37 // emitDynamicBytes(x: bytes, y: DynamicBytes) { proto 2 0 + +emitDynamicBytes_block@0: // tests/approvals/arc-28-events.algo.ts:38 // emit('DB(byte[],byte[])', x, y) frame_dig -2 @@ -319,4 +327,6 @@ emitDynamicBytes: // tests/approvals/arc-28-events.algo.ts::EventEmitter.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/arc-28-events/EventEmitter.arc32.json b/tests/approvals/out/unoptimized/arc-28-events/EventEmitter.arc32.json index aeb2ba147..d91aad996 100644 --- a/tests/approvals/out/unoptimized/arc-28-events/EventEmitter.arc32.json +++ b/tests/approvals/out/unoptimized/arc-28-events/EventEmitter.arc32.json @@ -17,8 +17,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDMgNAogICAgYnl0ZWNibG9jayAweCAweDBiNjMyNWVkIDB4MDAgMHhhMzEzYzA2NgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czoxMwogICAgLy8gY2xhc3MgRXZlbnRFbWl0dGVyIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAOAoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czoxMwogICAgLy8gY2xhc3MgRXZlbnRFbWl0dGVyIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4ODc2OWI3OWEgLy8gbWV0aG9kICJlbWl0U3dhcHBlZCh1aW50OCx1aW50OCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4ZjE0ODg5ZDcgLy8gbWV0aG9kICJlbWl0Q3VzdG9tKHN0cmluZyxib29sKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhkNGM5N2M5YyAvLyBtZXRob2QgImVtaXREeW5hbWljQnl0ZXMoYnl0ZVtdLGJ5dGVbXSl2b2lkIgogICAgdW5jb3ZlciAzCiAgICBtYXRjaCBtYWluX2VtaXRTd2FwcGVkX3JvdXRlQDMgbWFpbl9lbWl0Q3VzdG9tX3JvdXRlQDQgbWFpbl9lbWl0RHluYW1pY0J5dGVzX3JvdXRlQDUKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA2OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDc6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjEzCiAgICAvLyBjbGFzcyBFdmVudEVtaXR0ZXIgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6OkV2ZW50RW1pdHRlci5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMzoKICAgIHJldHVybgoKbWFpbl9lbWl0RHluYW1pY0J5dGVzX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjM3CiAgICAvLyBlbWl0RHluYW1pY0J5dGVzKHg6IGJ5dGVzLCB5OiBEeW5hbWljQnl0ZXMpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MTMKICAgIC8vIGNsYXNzIEV2ZW50RW1pdHRlciBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjM3CiAgICAvLyBlbWl0RHluYW1pY0J5dGVzKHg6IGJ5dGVzLCB5OiBEeW5hbWljQnl0ZXMpIHsKICAgIGNhbGxzdWIgZW1pdER5bmFtaWNCeXRlcwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6OkV2ZW50RW1pdHRlci5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl9lbWl0Q3VzdG9tX3JvdXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjMyCiAgICAvLyBlbWl0Q3VzdG9tKGFyZzA6IHN0cmluZywgYXJnMTogYm9vbGVhbikgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czoxMwogICAgLy8gY2xhc3MgRXZlbnRFbWl0dGVyIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MzIKICAgIC8vIGVtaXRDdXN0b20oYXJnMDogc3RyaW5nLCBhcmcxOiBib29sZWFuKSB7CiAgICBjYWxsc3ViIGVtaXRDdXN0b20KICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjpFdmVudEVtaXR0ZXIuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fZW1pdFN3YXBwZWRfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MTQKICAgIC8vIGVtaXRTd2FwcGVkKGE6IFVpbnROOCwgYjogVWludE44KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjEzCiAgICAvLyBjbGFzcyBFdmVudEVtaXR0ZXIgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjE0CiAgICAvLyBlbWl0U3dhcHBlZChhOiBVaW50TjgsIGI6IFVpbnROOCkgewogICAgY2FsbHN1YiBlbWl0U3dhcHBlZAogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6OkV2ZW50RW1pdHRlci5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl9iYXJlX3JvdXRpbmdAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MTMKICAgIC8vIGNsYXNzIEV2ZW50RW1pdHRlciBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTA6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTE6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMgoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MTMKICAgIC8vIGNsYXNzIEV2ZW50RW1pdHRlciBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czo6RXZlbnRFbWl0dGVyLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czo6RXZlbnRFbWl0dGVyLmVtaXRTd2FwcGVkKGE6IGJ5dGVzLCBiOiBieXRlcykgLT4gdm9pZDoKZW1pdFN3YXBwZWQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjE0CiAgICAvLyBlbWl0U3dhcHBlZChhOiBVaW50TjgsIGI6IFVpbnROOCkgewogICAgcHJvdG8gMiAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjE1CiAgICAvLyBlbWl0PFN3YXBwZWQ+KHsgYTogYiwgYjogYSB9KQogICAgYnl0ZWNfMCAvLyAweAogICAgZnJhbWVfZGlnIC0xCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMgogICAgY29uY2F0CiAgICBieXRlY18xIC8vIG1ldGhvZCAiU3dhcHBlZCh1aW50OCx1aW50OCkiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czoxNwogICAgLy8gY29uc3QgeDogU3dhcHBlZCA9IHsgYTogYiwgYjogYSB9CiAgICBmcmFtZV9kaWcgLTEKICAgIGZyYW1lX2RpZyAtMgogICAgc3dhcAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czoxOAogICAgLy8gZW1pdCh4KQogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzEgLy8gbWV0aG9kICJTd2FwcGVkKHVpbnQ4LHVpbnQ4KSIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjIwLTIzCiAgICAvLyBjb25zdCB5ID0gbmV3IFN3YXBwZWRBcmM0KHsKICAgIC8vICAgYTogYiwKICAgIC8vICAgYjogYSwKICAgIC8vIH0pCiAgICBieXRlY18wIC8vIDB4CiAgICBmcmFtZV9kaWcgLTEKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC0yCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MjQKICAgIC8vIGVtaXQoeSkKICAgIHB1c2hieXRlcyAweDQ0MWUyY2Q4IC8vIG1ldGhvZCAiU3dhcHBlZEFyYzQodWludDgsdWludDgpIgogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MjYKICAgIC8vIGVtaXQoJ1N3YXBwZWQnLCBiLCBhKQogICAgYnl0ZWNfMCAvLyAweAogICAgZnJhbWVfZGlnIC0xCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMgogICAgY29uY2F0CiAgICBieXRlY18xIC8vIG1ldGhvZCAiU3dhcHBlZCh1aW50OCx1aW50OCkiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czoyOAogICAgLy8gZW1pdCgnU3dhcHBlZCh1aW50OCx1aW50OCknLCBiLCBhKQogICAgYnl0ZWNfMCAvLyAweAogICAgZnJhbWVfZGlnIC0xCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMgogICAgY29uY2F0CiAgICBieXRlY18xIC8vIG1ldGhvZCAiU3dhcHBlZCh1aW50OCx1aW50OCkiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czoyOQogICAgLy8gZW1pdCgnU3dhcHBlZCgodWludDgsdWludDgpLHVpbnQ4KScsIFtiLCBiXSBhcyBjb25zdCwgYSkKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGZyYW1lX2RpZyAtMQogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTEKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTIKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzIDB4Mzg4Y2MxMmQgLy8gbWV0aG9kICJTd2FwcGVkKCh1aW50OCx1aW50OCksdWludDgpIgogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6OkV2ZW50RW1pdHRlci5lbWl0Q3VzdG9tKGFyZzA6IGJ5dGVzLCBhcmcxOiB1aW50NjQpIC0+IHZvaWQ6CmVtaXRDdXN0b206CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjMyCiAgICAvLyBlbWl0Q3VzdG9tKGFyZzA6IHN0cmluZywgYXJnMTogYm9vbGVhbikgewogICAgcHJvdG8gMiAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjMzCiAgICAvLyBlbWl0KCdDdXN0b20nLCBhcmcwLCBhcmcxKQogICAgZnJhbWVfZGlnIC0yCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTIKICAgIGNvbmNhdAogICAgYnl0ZWNfMiAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgZnJhbWVfZGlnIC0xCiAgICBzZXRiaXQKICAgIGludGNfMiAvLyAzCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMyAvLyBtZXRob2QgIkN1c3RvbShzdHJpbmcsYm9vbCkiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czozNAogICAgLy8gZW1pdCgnQ3VzdG9tKHN0cmluZyxib29sKScsIGFyZzAsIGFyZzEpCiAgICBmcmFtZV9kaWcgLTIKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtMgogICAgY29uY2F0CiAgICBieXRlY18yIC8vIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICBmcmFtZV9kaWcgLTEKICAgIHNldGJpdAogICAgaW50Y18yIC8vIDMKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18zIC8vIG1ldGhvZCAiQ3VzdG9tKHN0cmluZyxib29sKSIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjpFdmVudEVtaXR0ZXIuZW1pdER5bmFtaWNCeXRlcyh4OiBieXRlcywgeTogYnl0ZXMpIC0+IHZvaWQ6CmVtaXREeW5hbWljQnl0ZXM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjM3CiAgICAvLyBlbWl0RHluYW1pY0J5dGVzKHg6IGJ5dGVzLCB5OiBEeW5hbWljQnl0ZXMpIHsKICAgIHByb3RvIDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czozOAogICAgLy8gZW1pdCgnREIoYnl0ZVtdLGJ5dGVbXSknLCB4LCB5KQogICAgZnJhbWVfZGlnIC0yCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTIKICAgIGNvbmNhdAogICAgaW50Y18zIC8vIDQKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gNAogICAgKwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHVuY292ZXIgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMQogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgMHg0NTI0ZTFkZCAvLyBtZXRob2QgIkRCKGJ5dGVbXSxieXRlW10pIgogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6OkV2ZW50RW1pdHRlci5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDMgNAogICAgYnl0ZWNibG9jayAweCAweDBiNjMyNWVkIDB4MDAgMHhhMzEzYzA2NgoKbWFpbl9ibG9ja0AwOgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czoxMwogICAgLy8gY2xhc3MgRXZlbnRFbWl0dGVyIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAOAoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czoxMwogICAgLy8gY2xhc3MgRXZlbnRFbWl0dGVyIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4ODc2OWI3OWEgLy8gbWV0aG9kICJlbWl0U3dhcHBlZCh1aW50OCx1aW50OCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4ZjE0ODg5ZDcgLy8gbWV0aG9kICJlbWl0Q3VzdG9tKHN0cmluZyxib29sKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhkNGM5N2M5YyAvLyBtZXRob2QgImVtaXREeW5hbWljQnl0ZXMoYnl0ZVtdLGJ5dGVbXSl2b2lkIgogICAgdW5jb3ZlciAzCiAgICBtYXRjaCBtYWluX2VtaXRTd2FwcGVkX3JvdXRlQDMgbWFpbl9lbWl0Q3VzdG9tX3JvdXRlQDQgbWFpbl9lbWl0RHluYW1pY0J5dGVzX3JvdXRlQDUKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA2OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDc6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjEzCiAgICAvLyBjbGFzcyBFdmVudEVtaXR0ZXIgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6OkV2ZW50RW1pdHRlci5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMzoKICAgIHJldHVybgoKbWFpbl9lbWl0RHluYW1pY0J5dGVzX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjM3CiAgICAvLyBlbWl0RHluYW1pY0J5dGVzKHg6IGJ5dGVzLCB5OiBEeW5hbWljQnl0ZXMpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MTMKICAgIC8vIGNsYXNzIEV2ZW50RW1pdHRlciBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjM3CiAgICAvLyBlbWl0RHluYW1pY0J5dGVzKHg6IGJ5dGVzLCB5OiBEeW5hbWljQnl0ZXMpIHsKICAgIGNhbGxzdWIgZW1pdER5bmFtaWNCeXRlcwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6OkV2ZW50RW1pdHRlci5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl9lbWl0Q3VzdG9tX3JvdXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjMyCiAgICAvLyBlbWl0Q3VzdG9tKGFyZzA6IHN0cmluZywgYXJnMTogYm9vbGVhbikgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czoxMwogICAgLy8gY2xhc3MgRXZlbnRFbWl0dGVyIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MzIKICAgIC8vIGVtaXRDdXN0b20oYXJnMDogc3RyaW5nLCBhcmcxOiBib29sZWFuKSB7CiAgICBjYWxsc3ViIGVtaXRDdXN0b20KICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjpFdmVudEVtaXR0ZXIuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fZW1pdFN3YXBwZWRfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MTQKICAgIC8vIGVtaXRTd2FwcGVkKGE6IFVpbnROOCwgYjogVWludE44KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjEzCiAgICAvLyBjbGFzcyBFdmVudEVtaXR0ZXIgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjE0CiAgICAvLyBlbWl0U3dhcHBlZChhOiBVaW50TjgsIGI6IFVpbnROOCkgewogICAgY2FsbHN1YiBlbWl0U3dhcHBlZAogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6OkV2ZW50RW1pdHRlci5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl9iYXJlX3JvdXRpbmdAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MTMKICAgIC8vIGNsYXNzIEV2ZW50RW1pdHRlciBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTA6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTE6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMgoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MTMKICAgIC8vIGNsYXNzIEV2ZW50RW1pdHRlciBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czo6RXZlbnRFbWl0dGVyLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czo6RXZlbnRFbWl0dGVyLmVtaXRTd2FwcGVkKGE6IGJ5dGVzLCBiOiBieXRlcykgLT4gdm9pZDoKZW1pdFN3YXBwZWQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjE0CiAgICAvLyBlbWl0U3dhcHBlZChhOiBVaW50TjgsIGI6IFVpbnROOCkgewogICAgcHJvdG8gMiAwCgplbWl0U3dhcHBlZF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czoxNQogICAgLy8gZW1pdDxTd2FwcGVkPih7IGE6IGIsIGI6IGEgfSkKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGZyYW1lX2RpZyAtMQogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTIKICAgIGNvbmNhdAogICAgYnl0ZWNfMSAvLyBtZXRob2QgIlN3YXBwZWQodWludDgsdWludDgpIgogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MTcKICAgIC8vIGNvbnN0IHg6IFN3YXBwZWQgPSB7IGE6IGIsIGI6IGEgfQogICAgZnJhbWVfZGlnIC0xCiAgICBmcmFtZV9kaWcgLTIKICAgIHN3YXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MTgKICAgIC8vIGVtaXQoeCkKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18xIC8vIG1ldGhvZCAiU3dhcHBlZCh1aW50OCx1aW50OCkiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czoyMC0yMwogICAgLy8gY29uc3QgeSA9IG5ldyBTd2FwcGVkQXJjNCh7CiAgICAvLyAgIGE6IGIsCiAgICAvLyAgIGI6IGEsCiAgICAvLyB9KQogICAgYnl0ZWNfMCAvLyAweAogICAgZnJhbWVfZGlnIC0xCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMgogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjI0CiAgICAvLyBlbWl0KHkpCiAgICBwdXNoYnl0ZXMgMHg0NDFlMmNkOCAvLyBtZXRob2QgIlN3YXBwZWRBcmM0KHVpbnQ4LHVpbnQ4KSIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjI2CiAgICAvLyBlbWl0KCdTd2FwcGVkJywgYiwgYSkKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGZyYW1lX2RpZyAtMQogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTIKICAgIGNvbmNhdAogICAgYnl0ZWNfMSAvLyBtZXRob2QgIlN3YXBwZWQodWludDgsdWludDgpIgogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MjgKICAgIC8vIGVtaXQoJ1N3YXBwZWQodWludDgsdWludDgpJywgYiwgYSkKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGZyYW1lX2RpZyAtMQogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTIKICAgIGNvbmNhdAogICAgYnl0ZWNfMSAvLyBtZXRob2QgIlN3YXBwZWQodWludDgsdWludDgpIgogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MjkKICAgIC8vIGVtaXQoJ1N3YXBwZWQoKHVpbnQ4LHVpbnQ4KSx1aW50OCknLCBbYiwgYl0gYXMgY29uc3QsIGEpCiAgICBieXRlY18wIC8vIDB4CiAgICBmcmFtZV9kaWcgLTEKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC0xCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC0yCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDM4OGNjMTJkIC8vIG1ldGhvZCAiU3dhcHBlZCgodWludDgsdWludDgpLHVpbnQ4KSIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjpFdmVudEVtaXR0ZXIuZW1pdEN1c3RvbShhcmcwOiBieXRlcywgYXJnMTogdWludDY0KSAtPiB2b2lkOgplbWl0Q3VzdG9tOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czozMgogICAgLy8gZW1pdEN1c3RvbShhcmcwOiBzdHJpbmcsIGFyZzE6IGJvb2xlYW4pIHsKICAgIHByb3RvIDIgMAoKZW1pdEN1c3RvbV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czozMwogICAgLy8gZW1pdCgnQ3VzdG9tJywgYXJnMCwgYXJnMSkKICAgIGZyYW1lX2RpZyAtMgogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgZnJhbWVfZGlnIC0yCiAgICBjb25jYXQKICAgIGJ5dGVjXzIgLy8gMHgwMAogICAgaW50Y18wIC8vIDAKICAgIGZyYW1lX2RpZyAtMQogICAgc2V0Yml0CiAgICBpbnRjXzIgLy8gMwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzMgLy8gbWV0aG9kICJDdXN0b20oc3RyaW5nLGJvb2wpIgogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MzQKICAgIC8vIGVtaXQoJ0N1c3RvbShzdHJpbmcsYm9vbCknLCBhcmcwLCBhcmcxKQogICAgZnJhbWVfZGlnIC0yCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTIKICAgIGNvbmNhdAogICAgYnl0ZWNfMiAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgZnJhbWVfZGlnIC0xCiAgICBzZXRiaXQKICAgIGludGNfMiAvLyAzCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMyAvLyBtZXRob2QgIkN1c3RvbShzdHJpbmcsYm9vbCkiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czo6RXZlbnRFbWl0dGVyLmVtaXREeW5hbWljQnl0ZXMoeDogYnl0ZXMsIHk6IGJ5dGVzKSAtPiB2b2lkOgplbWl0RHluYW1pY0J5dGVzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czozNwogICAgLy8gZW1pdER5bmFtaWNCeXRlcyh4OiBieXRlcywgeTogRHluYW1pY0J5dGVzKSB7CiAgICBwcm90byAyIDAKCmVtaXREeW5hbWljQnl0ZXNfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MzgKICAgIC8vIGVtaXQoJ0RCKGJ5dGVbXSxieXRlW10pJywgeCwgeSkKICAgIGZyYW1lX2RpZyAtMgogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgZnJhbWVfZGlnIC0yCiAgICBjb25jYXQKICAgIGludGNfMyAvLyA0CiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDQKICAgICsKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICB1bmNvdmVyIDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTEKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzIDB4NDUyNGUxZGQgLy8gbWV0aG9kICJEQihieXRlW10sYnl0ZVtdKSIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjpFdmVudEVtaXR0ZXIuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/arc-28-events/EventEmitter.arc56.json b/tests/approvals/out/unoptimized/arc-28-events/EventEmitter.arc56.json index 6adff0bc7..19d5570ff 100644 --- a/tests/approvals/out/unoptimized/arc-28-events/EventEmitter.arc56.json +++ b/tests/approvals/out/unoptimized/arc-28-events/EventEmitter.arc56.json @@ -226,8 +226,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDMgNAogICAgYnl0ZWNibG9jayAweCAweDBiNjMyNWVkIDB4MDAgMHhhMzEzYzA2NgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czoxMwogICAgLy8gY2xhc3MgRXZlbnRFbWl0dGVyIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAOAoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czoxMwogICAgLy8gY2xhc3MgRXZlbnRFbWl0dGVyIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4ODc2OWI3OWEgLy8gbWV0aG9kICJlbWl0U3dhcHBlZCh1aW50OCx1aW50OCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4ZjE0ODg5ZDcgLy8gbWV0aG9kICJlbWl0Q3VzdG9tKHN0cmluZyxib29sKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhkNGM5N2M5YyAvLyBtZXRob2QgImVtaXREeW5hbWljQnl0ZXMoYnl0ZVtdLGJ5dGVbXSl2b2lkIgogICAgdW5jb3ZlciAzCiAgICBtYXRjaCBtYWluX2VtaXRTd2FwcGVkX3JvdXRlQDMgbWFpbl9lbWl0Q3VzdG9tX3JvdXRlQDQgbWFpbl9lbWl0RHluYW1pY0J5dGVzX3JvdXRlQDUKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA2OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDc6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjEzCiAgICAvLyBjbGFzcyBFdmVudEVtaXR0ZXIgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6OkV2ZW50RW1pdHRlci5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMzoKICAgIHJldHVybgoKbWFpbl9lbWl0RHluYW1pY0J5dGVzX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjM3CiAgICAvLyBlbWl0RHluYW1pY0J5dGVzKHg6IGJ5dGVzLCB5OiBEeW5hbWljQnl0ZXMpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MTMKICAgIC8vIGNsYXNzIEV2ZW50RW1pdHRlciBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjM3CiAgICAvLyBlbWl0RHluYW1pY0J5dGVzKHg6IGJ5dGVzLCB5OiBEeW5hbWljQnl0ZXMpIHsKICAgIGNhbGxzdWIgZW1pdER5bmFtaWNCeXRlcwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6OkV2ZW50RW1pdHRlci5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl9lbWl0Q3VzdG9tX3JvdXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjMyCiAgICAvLyBlbWl0Q3VzdG9tKGFyZzA6IHN0cmluZywgYXJnMTogYm9vbGVhbikgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czoxMwogICAgLy8gY2xhc3MgRXZlbnRFbWl0dGVyIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MzIKICAgIC8vIGVtaXRDdXN0b20oYXJnMDogc3RyaW5nLCBhcmcxOiBib29sZWFuKSB7CiAgICBjYWxsc3ViIGVtaXRDdXN0b20KICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjpFdmVudEVtaXR0ZXIuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fZW1pdFN3YXBwZWRfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MTQKICAgIC8vIGVtaXRTd2FwcGVkKGE6IFVpbnROOCwgYjogVWludE44KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjEzCiAgICAvLyBjbGFzcyBFdmVudEVtaXR0ZXIgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjE0CiAgICAvLyBlbWl0U3dhcHBlZChhOiBVaW50TjgsIGI6IFVpbnROOCkgewogICAgY2FsbHN1YiBlbWl0U3dhcHBlZAogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6OkV2ZW50RW1pdHRlci5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl9iYXJlX3JvdXRpbmdAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MTMKICAgIC8vIGNsYXNzIEV2ZW50RW1pdHRlciBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTA6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTE6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMgoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MTMKICAgIC8vIGNsYXNzIEV2ZW50RW1pdHRlciBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czo6RXZlbnRFbWl0dGVyLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czo6RXZlbnRFbWl0dGVyLmVtaXRTd2FwcGVkKGE6IGJ5dGVzLCBiOiBieXRlcykgLT4gdm9pZDoKZW1pdFN3YXBwZWQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjE0CiAgICAvLyBlbWl0U3dhcHBlZChhOiBVaW50TjgsIGI6IFVpbnROOCkgewogICAgcHJvdG8gMiAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjE1CiAgICAvLyBlbWl0PFN3YXBwZWQ+KHsgYTogYiwgYjogYSB9KQogICAgYnl0ZWNfMCAvLyAweAogICAgZnJhbWVfZGlnIC0xCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMgogICAgY29uY2F0CiAgICBieXRlY18xIC8vIG1ldGhvZCAiU3dhcHBlZCh1aW50OCx1aW50OCkiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czoxNwogICAgLy8gY29uc3QgeDogU3dhcHBlZCA9IHsgYTogYiwgYjogYSB9CiAgICBmcmFtZV9kaWcgLTEKICAgIGZyYW1lX2RpZyAtMgogICAgc3dhcAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czoxOAogICAgLy8gZW1pdCh4KQogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzEgLy8gbWV0aG9kICJTd2FwcGVkKHVpbnQ4LHVpbnQ4KSIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjIwLTIzCiAgICAvLyBjb25zdCB5ID0gbmV3IFN3YXBwZWRBcmM0KHsKICAgIC8vICAgYTogYiwKICAgIC8vICAgYjogYSwKICAgIC8vIH0pCiAgICBieXRlY18wIC8vIDB4CiAgICBmcmFtZV9kaWcgLTEKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC0yCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MjQKICAgIC8vIGVtaXQoeSkKICAgIHB1c2hieXRlcyAweDQ0MWUyY2Q4IC8vIG1ldGhvZCAiU3dhcHBlZEFyYzQodWludDgsdWludDgpIgogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MjYKICAgIC8vIGVtaXQoJ1N3YXBwZWQnLCBiLCBhKQogICAgYnl0ZWNfMCAvLyAweAogICAgZnJhbWVfZGlnIC0xCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMgogICAgY29uY2F0CiAgICBieXRlY18xIC8vIG1ldGhvZCAiU3dhcHBlZCh1aW50OCx1aW50OCkiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czoyOAogICAgLy8gZW1pdCgnU3dhcHBlZCh1aW50OCx1aW50OCknLCBiLCBhKQogICAgYnl0ZWNfMCAvLyAweAogICAgZnJhbWVfZGlnIC0xCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMgogICAgY29uY2F0CiAgICBieXRlY18xIC8vIG1ldGhvZCAiU3dhcHBlZCh1aW50OCx1aW50OCkiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czoyOQogICAgLy8gZW1pdCgnU3dhcHBlZCgodWludDgsdWludDgpLHVpbnQ4KScsIFtiLCBiXSBhcyBjb25zdCwgYSkKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGZyYW1lX2RpZyAtMQogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTEKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTIKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzIDB4Mzg4Y2MxMmQgLy8gbWV0aG9kICJTd2FwcGVkKCh1aW50OCx1aW50OCksdWludDgpIgogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6OkV2ZW50RW1pdHRlci5lbWl0Q3VzdG9tKGFyZzA6IGJ5dGVzLCBhcmcxOiB1aW50NjQpIC0+IHZvaWQ6CmVtaXRDdXN0b206CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjMyCiAgICAvLyBlbWl0Q3VzdG9tKGFyZzA6IHN0cmluZywgYXJnMTogYm9vbGVhbikgewogICAgcHJvdG8gMiAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjMzCiAgICAvLyBlbWl0KCdDdXN0b20nLCBhcmcwLCBhcmcxKQogICAgZnJhbWVfZGlnIC0yCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTIKICAgIGNvbmNhdAogICAgYnl0ZWNfMiAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgZnJhbWVfZGlnIC0xCiAgICBzZXRiaXQKICAgIGludGNfMiAvLyAzCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMyAvLyBtZXRob2QgIkN1c3RvbShzdHJpbmcsYm9vbCkiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czozNAogICAgLy8gZW1pdCgnQ3VzdG9tKHN0cmluZyxib29sKScsIGFyZzAsIGFyZzEpCiAgICBmcmFtZV9kaWcgLTIKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtMgogICAgY29uY2F0CiAgICBieXRlY18yIC8vIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICBmcmFtZV9kaWcgLTEKICAgIHNldGJpdAogICAgaW50Y18yIC8vIDMKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18zIC8vIG1ldGhvZCAiQ3VzdG9tKHN0cmluZyxib29sKSIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjpFdmVudEVtaXR0ZXIuZW1pdER5bmFtaWNCeXRlcyh4OiBieXRlcywgeTogYnl0ZXMpIC0+IHZvaWQ6CmVtaXREeW5hbWljQnl0ZXM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjM3CiAgICAvLyBlbWl0RHluYW1pY0J5dGVzKHg6IGJ5dGVzLCB5OiBEeW5hbWljQnl0ZXMpIHsKICAgIHByb3RvIDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czozOAogICAgLy8gZW1pdCgnREIoYnl0ZVtdLGJ5dGVbXSknLCB4LCB5KQogICAgZnJhbWVfZGlnIC0yCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTIKICAgIGNvbmNhdAogICAgaW50Y18zIC8vIDQKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gNAogICAgKwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHVuY292ZXIgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMQogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgMHg0NTI0ZTFkZCAvLyBtZXRob2QgIkRCKGJ5dGVbXSxieXRlW10pIgogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6OkV2ZW50RW1pdHRlci5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDMgNAogICAgYnl0ZWNibG9jayAweCAweDBiNjMyNWVkIDB4MDAgMHhhMzEzYzA2NgoKbWFpbl9ibG9ja0AwOgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czoxMwogICAgLy8gY2xhc3MgRXZlbnRFbWl0dGVyIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAOAoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czoxMwogICAgLy8gY2xhc3MgRXZlbnRFbWl0dGVyIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4ODc2OWI3OWEgLy8gbWV0aG9kICJlbWl0U3dhcHBlZCh1aW50OCx1aW50OCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4ZjE0ODg5ZDcgLy8gbWV0aG9kICJlbWl0Q3VzdG9tKHN0cmluZyxib29sKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhkNGM5N2M5YyAvLyBtZXRob2QgImVtaXREeW5hbWljQnl0ZXMoYnl0ZVtdLGJ5dGVbXSl2b2lkIgogICAgdW5jb3ZlciAzCiAgICBtYXRjaCBtYWluX2VtaXRTd2FwcGVkX3JvdXRlQDMgbWFpbl9lbWl0Q3VzdG9tX3JvdXRlQDQgbWFpbl9lbWl0RHluYW1pY0J5dGVzX3JvdXRlQDUKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA2OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDc6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjEzCiAgICAvLyBjbGFzcyBFdmVudEVtaXR0ZXIgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6OkV2ZW50RW1pdHRlci5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMzoKICAgIHJldHVybgoKbWFpbl9lbWl0RHluYW1pY0J5dGVzX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjM3CiAgICAvLyBlbWl0RHluYW1pY0J5dGVzKHg6IGJ5dGVzLCB5OiBEeW5hbWljQnl0ZXMpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MTMKICAgIC8vIGNsYXNzIEV2ZW50RW1pdHRlciBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjM3CiAgICAvLyBlbWl0RHluYW1pY0J5dGVzKHg6IGJ5dGVzLCB5OiBEeW5hbWljQnl0ZXMpIHsKICAgIGNhbGxzdWIgZW1pdER5bmFtaWNCeXRlcwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6OkV2ZW50RW1pdHRlci5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl9lbWl0Q3VzdG9tX3JvdXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjMyCiAgICAvLyBlbWl0Q3VzdG9tKGFyZzA6IHN0cmluZywgYXJnMTogYm9vbGVhbikgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czoxMwogICAgLy8gY2xhc3MgRXZlbnRFbWl0dGVyIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MzIKICAgIC8vIGVtaXRDdXN0b20oYXJnMDogc3RyaW5nLCBhcmcxOiBib29sZWFuKSB7CiAgICBjYWxsc3ViIGVtaXRDdXN0b20KICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjpFdmVudEVtaXR0ZXIuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fZW1pdFN3YXBwZWRfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MTQKICAgIC8vIGVtaXRTd2FwcGVkKGE6IFVpbnROOCwgYjogVWludE44KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjEzCiAgICAvLyBjbGFzcyBFdmVudEVtaXR0ZXIgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjE0CiAgICAvLyBlbWl0U3dhcHBlZChhOiBVaW50TjgsIGI6IFVpbnROOCkgewogICAgY2FsbHN1YiBlbWl0U3dhcHBlZAogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6OkV2ZW50RW1pdHRlci5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl9iYXJlX3JvdXRpbmdAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MTMKICAgIC8vIGNsYXNzIEV2ZW50RW1pdHRlciBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTA6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTE6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMgoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MTMKICAgIC8vIGNsYXNzIEV2ZW50RW1pdHRlciBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czo6RXZlbnRFbWl0dGVyLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czo6RXZlbnRFbWl0dGVyLmVtaXRTd2FwcGVkKGE6IGJ5dGVzLCBiOiBieXRlcykgLT4gdm9pZDoKZW1pdFN3YXBwZWQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjE0CiAgICAvLyBlbWl0U3dhcHBlZChhOiBVaW50TjgsIGI6IFVpbnROOCkgewogICAgcHJvdG8gMiAwCgplbWl0U3dhcHBlZF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czoxNQogICAgLy8gZW1pdDxTd2FwcGVkPih7IGE6IGIsIGI6IGEgfSkKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGZyYW1lX2RpZyAtMQogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTIKICAgIGNvbmNhdAogICAgYnl0ZWNfMSAvLyBtZXRob2QgIlN3YXBwZWQodWludDgsdWludDgpIgogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MTcKICAgIC8vIGNvbnN0IHg6IFN3YXBwZWQgPSB7IGE6IGIsIGI6IGEgfQogICAgZnJhbWVfZGlnIC0xCiAgICBmcmFtZV9kaWcgLTIKICAgIHN3YXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MTgKICAgIC8vIGVtaXQoeCkKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18xIC8vIG1ldGhvZCAiU3dhcHBlZCh1aW50OCx1aW50OCkiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czoyMC0yMwogICAgLy8gY29uc3QgeSA9IG5ldyBTd2FwcGVkQXJjNCh7CiAgICAvLyAgIGE6IGIsCiAgICAvLyAgIGI6IGEsCiAgICAvLyB9KQogICAgYnl0ZWNfMCAvLyAweAogICAgZnJhbWVfZGlnIC0xCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMgogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjI0CiAgICAvLyBlbWl0KHkpCiAgICBwdXNoYnl0ZXMgMHg0NDFlMmNkOCAvLyBtZXRob2QgIlN3YXBwZWRBcmM0KHVpbnQ4LHVpbnQ4KSIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjI2CiAgICAvLyBlbWl0KCdTd2FwcGVkJywgYiwgYSkKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGZyYW1lX2RpZyAtMQogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTIKICAgIGNvbmNhdAogICAgYnl0ZWNfMSAvLyBtZXRob2QgIlN3YXBwZWQodWludDgsdWludDgpIgogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MjgKICAgIC8vIGVtaXQoJ1N3YXBwZWQodWludDgsdWludDgpJywgYiwgYSkKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGZyYW1lX2RpZyAtMQogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTIKICAgIGNvbmNhdAogICAgYnl0ZWNfMSAvLyBtZXRob2QgIlN3YXBwZWQodWludDgsdWludDgpIgogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MjkKICAgIC8vIGVtaXQoJ1N3YXBwZWQoKHVpbnQ4LHVpbnQ4KSx1aW50OCknLCBbYiwgYl0gYXMgY29uc3QsIGEpCiAgICBieXRlY18wIC8vIDB4CiAgICBmcmFtZV9kaWcgLTEKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC0xCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC0yCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDM4OGNjMTJkIC8vIG1ldGhvZCAiU3dhcHBlZCgodWludDgsdWludDgpLHVpbnQ4KSIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjpFdmVudEVtaXR0ZXIuZW1pdEN1c3RvbShhcmcwOiBieXRlcywgYXJnMTogdWludDY0KSAtPiB2b2lkOgplbWl0Q3VzdG9tOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czozMgogICAgLy8gZW1pdEN1c3RvbShhcmcwOiBzdHJpbmcsIGFyZzE6IGJvb2xlYW4pIHsKICAgIHByb3RvIDIgMAoKZW1pdEN1c3RvbV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czozMwogICAgLy8gZW1pdCgnQ3VzdG9tJywgYXJnMCwgYXJnMSkKICAgIGZyYW1lX2RpZyAtMgogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgZnJhbWVfZGlnIC0yCiAgICBjb25jYXQKICAgIGJ5dGVjXzIgLy8gMHgwMAogICAgaW50Y18wIC8vIDAKICAgIGZyYW1lX2RpZyAtMQogICAgc2V0Yml0CiAgICBpbnRjXzIgLy8gMwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzMgLy8gbWV0aG9kICJDdXN0b20oc3RyaW5nLGJvb2wpIgogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MzQKICAgIC8vIGVtaXQoJ0N1c3RvbShzdHJpbmcsYm9vbCknLCBhcmcwLCBhcmcxKQogICAgZnJhbWVfZGlnIC0yCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTIKICAgIGNvbmNhdAogICAgYnl0ZWNfMiAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgZnJhbWVfZGlnIC0xCiAgICBzZXRiaXQKICAgIGludGNfMiAvLyAzCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMyAvLyBtZXRob2QgIkN1c3RvbShzdHJpbmcsYm9vbCkiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czo6RXZlbnRFbWl0dGVyLmVtaXREeW5hbWljQnl0ZXMoeDogYnl0ZXMsIHk6IGJ5dGVzKSAtPiB2b2lkOgplbWl0RHluYW1pY0J5dGVzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYy0yOC1ldmVudHMuYWxnby50czozNwogICAgLy8gZW1pdER5bmFtaWNCeXRlcyh4OiBieXRlcywgeTogRHluYW1pY0J5dGVzKSB7CiAgICBwcm90byAyIDAKCmVtaXREeW5hbWljQnl0ZXNfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmMtMjgtZXZlbnRzLmFsZ28udHM6MzgKICAgIC8vIGVtaXQoJ0RCKGJ5dGVbXSxieXRlW10pJywgeCwgeSkKICAgIGZyYW1lX2RpZyAtMgogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgZnJhbWVfZGlnIC0yCiAgICBjb25jYXQKICAgIGludGNfMyAvLyA0CiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDQKICAgICsKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICB1bmNvdmVyIDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTEKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzIDB4NDUyNGUxZGQgLy8gbWV0aG9kICJEQihieXRlW10sYnl0ZVtdKSIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjLTI4LWV2ZW50cy5hbGdvLnRzOjpFdmVudEVtaXR0ZXIuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiAEAAEDBCYEAAQLYyXtAQAEoxPAZjEbIhNBAG42GgCABIdpt5qABPFIideABNTJfJxPA44DADgAHAACIkMxGSISRDEYIhNENhoBVwIANhoCiADpI0L/5TEZIhJEMRgiE0Q2GgFXAgA2GgIiU4gAiyNC/8kxGSISRDEYIhNENhoBNhoCiAAbI0L/sjEZIkyOAQADQv+mMRgiEkSIANAjQv+bigIAKIv/UIv+UClMULCL/4v+TChMUExQKUxQsCiL/1CL/lCABEQeLNhMULAoi/9Qi/5QKUxQsCiL/1CL/lApTFCwKIv/UIv/UChMUIv+UIAEOIzBLUxQsImKAgCL/hUWVwYCi/5QKiKL/1QkFlcGAihMUExQTFArTFCwi/4VFlcGAov+UCoii/9UJBZXBgIoTFBMUExQK0xQsImKAgCL/hUWVwYCi/5QJRZXBgIoTFBMSRUlCBZXBgJPAkxQTFCL/1CABEUk4d1MULCJiQ==", @@ -238,7 +238,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [ diff --git a/tests/approvals/out/unoptimized/arc-28-events/EventEmitter.clear.teal b/tests/approvals/out/unoptimized/arc-28-events/EventEmitter.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/arc-28-events/EventEmitter.clear.teal +++ b/tests/approvals/out/unoptimized/arc-28-events/EventEmitter.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/arc4-encode-decode/Arc4EncodeDecode.approval.teal b/tests/approvals/out/unoptimized/arc4-encode-decode/Arc4EncodeDecode.approval.teal index 0e46d3d6a..10efdd520 100644 --- a/tests/approvals/out/unoptimized/arc4-encode-decode/Arc4EncodeDecode.approval.teal +++ b/tests/approvals/out/unoptimized/arc4-encode-decode/Arc4EncodeDecode.approval.teal @@ -6,6 +6,8 @@ main: intcblock 0 8 1 64 bytecblock 0x00 0x +main_block@0: + main_block@1: // tests/approvals/arc4-encode-decode.algo.ts:7 // export class Arc4EncodeDecode extends Contract { @@ -185,6 +187,8 @@ testEncoding: // tests/approvals/arc4-encode-decode.algo.ts:8 // testEncoding(a: uint64, b: boolean, c: biguint, d: bytes, e: string) { proto 5 0 + +testEncoding_block@0: // tests/approvals/arc4-encode-decode.algo.ts:9 // assert(encodeArc4(a) === new UintN64(a).bytes) frame_dig -5 @@ -318,6 +322,8 @@ testDecoding: // e_bytes: bytes, // ) { proto 11 0 + +testDecoding_block@0: // tests/approvals/arc4-encode-decode.algo.ts:29 // assert(decodeArc4(a_bytes) === a) frame_dig -10 @@ -388,4 +394,6 @@ testDecoding_bool_false@3: // tests/approvals/arc4-encode-decode.algo.ts::Arc4EncodeDecode.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/arc4-encode-decode/Arc4EncodeDecode.arc32.json b/tests/approvals/out/unoptimized/arc4-encode-decode/Arc4EncodeDecode.arc32.json index 9894df66d..efd63e207 100644 --- a/tests/approvals/out/unoptimized/arc4-encode-decode/Arc4EncodeDecode.arc32.json +++ b/tests/approvals/out/unoptimized/arc4-encode-decode/Arc4EncodeDecode.arc32.json @@ -27,8 +27,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA4IDEgNjQKICAgIGJ5dGVjYmxvY2sgMHgwMCAweAoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjcKICAgIC8vIGV4cG9ydCBjbGFzcyBBcmM0RW5jb2RlRGVjb2RlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANwoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjcKICAgIC8vIGV4cG9ydCBjbGFzcyBBcmM0RW5jb2RlRGVjb2RlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4OWJlODVhZmEgLy8gbWV0aG9kICJ0ZXN0RW5jb2RpbmcodWludDY0LGJvb2wsdWludDUxMixieXRlW10sc3RyaW5nKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhhMmQzMzVhYyAvLyBtZXRob2QgInRlc3REZWNvZGluZyh1aW50NjQsYnl0ZVtdLGJvb2wsYnl0ZVtdLHVpbnQ1MTIsYnl0ZVtdLHN0cmluZyxieXRlW10sKHVpbnQ2NCxieXRlW10pLGJ5dGVbXSl2b2lkIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX3Rlc3RFbmNvZGluZ19yb3V0ZUAzIG1haW5fdGVzdERlY29kaW5nX3JvdXRlQDQKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDY6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEFyYzRFbmNvZGVEZWNvZGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo6QXJjNEVuY29kZURlY29kZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMjoKICAgIHJldHVybgoKbWFpbl90ZXN0RGVjb2Rpbmdfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czoxNy0yOAogICAgLy8gdGVzdERlY29kaW5nKAogICAgLy8gICBhOiB1aW50NjQsCiAgICAvLyAgIGFfYnl0ZXM6IGJ5dGVzLAogICAgLy8gICBiOiBib29sZWFuLAogICAgLy8gICBiX2J5dGVzOiBieXRlcywKICAgIC8vICAgYzogYmlndWludCwKICAgIC8vICAgY19ieXRlczogYnl0ZXMsCiAgICAvLyAgIGQ6IHN0cmluZywKICAgIC8vICAgZF9ieXRlczogYnl0ZXMsCiAgICAvLyAgIGU6IFRlc3RPYmosCiAgICAvLyAgIGVfYnl0ZXM6IGJ5dGVzLAogICAgLy8gKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEFyYzRFbmNvZGVEZWNvZGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDUKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDYKICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA3CiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgOAogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDkKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIHN3YXAKICAgIGR1cAogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3RfdWludDE2CiAgICBzd2FwCiAgICBkdXAKICAgIGxlbgogICAgc3dhcAogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEwCiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjE3LTI4CiAgICAvLyB0ZXN0RGVjb2RpbmcoCiAgICAvLyAgIGE6IHVpbnQ2NCwKICAgIC8vICAgYV9ieXRlczogYnl0ZXMsCiAgICAvLyAgIGI6IGJvb2xlYW4sCiAgICAvLyAgIGJfYnl0ZXM6IGJ5dGVzLAogICAgLy8gICBjOiBiaWd1aW50LAogICAgLy8gICBjX2J5dGVzOiBieXRlcywKICAgIC8vICAgZDogc3RyaW5nLAogICAgLy8gICBkX2J5dGVzOiBieXRlcywKICAgIC8vICAgZTogVGVzdE9iaiwKICAgIC8vICAgZV9ieXRlczogYnl0ZXMsCiAgICAvLyApIHsKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIGNhbGxzdWIgdGVzdERlY29kaW5nCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjpBcmM0RW5jb2RlRGVjb2RlLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX3Rlc3RFbmNvZGluZ19yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjgKICAgIC8vIHRlc3RFbmNvZGluZyhhOiB1aW50NjQsIGI6IGJvb2xlYW4sIGM6IGJpZ3VpbnQsIGQ6IGJ5dGVzLCBlOiBzdHJpbmcpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgQXJjNEVuY29kZURlY29kZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDQKICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA1CiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjgKICAgIC8vIHRlc3RFbmNvZGluZyhhOiB1aW50NjQsIGI6IGJvb2xlYW4sIGM6IGJpZ3VpbnQsIGQ6IGJ5dGVzLCBlOiBzdHJpbmcpIHsKICAgIHVuY292ZXIgNAogICAgdW5jb3ZlciA0CiAgICB1bmNvdmVyIDQKICAgIHVuY292ZXIgNAogICAgdW5jb3ZlciA0CiAgICBjYWxsc3ViIHRlc3RFbmNvZGluZwogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo6QXJjNEVuY29kZURlY29kZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKbWFpbl9iYXJlX3JvdXRpbmdANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgQXJjNEVuY29kZURlY29kZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAOToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDExCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjcKICAgIC8vIGV4cG9ydCBjbGFzcyBBcmM0RW5jb2RlRGVjb2RlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6OkFyYzRFbmNvZGVEZWNvZGUuX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6OkFyYzRFbmNvZGVEZWNvZGUudGVzdEVuY29kaW5nKGE6IHVpbnQ2NCwgYjogdWludDY0LCBjOiBieXRlcywgZDogYnl0ZXMsIGU6IGJ5dGVzKSAtPiB2b2lkOgp0ZXN0RW5jb2Rpbmc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6OAogICAgLy8gdGVzdEVuY29kaW5nKGE6IHVpbnQ2NCwgYjogYm9vbGVhbiwgYzogYmlndWludCwgZDogYnl0ZXMsIGU6IHN0cmluZykgewogICAgcHJvdG8gNSAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6OQogICAgLy8gYXNzZXJ0KGVuY29kZUFyYzQoYSkgPT09IG5ldyBVaW50TjY0KGEpLmJ5dGVzKQogICAgZnJhbWVfZGlnIC01CiAgICBpdG9iCiAgICBmcmFtZV9kaWcgLTUKICAgIGl0b2IKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czoxMAogICAgLy8gYXNzZXJ0KGVuY29kZUFyYzQoYikgPT09IG5ldyBCb29sKGIpLmJ5dGVzKQogICAgYnl0ZWNfMCAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgZnJhbWVfZGlnIC00CiAgICBzZXRiaXQKICAgIGJ5dGVjXzAgLy8gMHgwMAogICAgaW50Y18wIC8vIDAKICAgIGZyYW1lX2RpZyAtNAogICAgc2V0Yml0CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6MTEKICAgIC8vIGFzc2VydChlbmNvZGVBcmM0KGMpID09PSBuZXcgVWludE48NTEyPihjKS5ieXRlcykKICAgIGZyYW1lX2RpZyAtMwogICAgbGVuCiAgICBpbnRjXzMgLy8gNjQKICAgIDw9CiAgICBhc3NlcnQgLy8gb3ZlcmZsb3cKICAgIGludGNfMyAvLyA2NAogICAgYnplcm8KICAgIGZyYW1lX2RpZyAtMwogICAgYnwKICAgIGZyYW1lX2RpZyAtMwogICAgbGVuCiAgICBpbnRjXzMgLy8gNjQKICAgIDw9CiAgICBhc3NlcnQgLy8gb3ZlcmZsb3cKICAgIGludGNfMyAvLyA2NAogICAgYnplcm8KICAgIGZyYW1lX2RpZyAtMwogICAgYnwKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czoxMgogICAgLy8gYXNzZXJ0KGVuY29kZUFyYzQoZCkgPT09IG5ldyBEeW5hbWljQnl0ZXMoZCkuYnl0ZXMpCiAgICBmcmFtZV9kaWcgLTIKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtMgogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTIKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtMgogICAgY29uY2F0CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6MTMKICAgIC8vIGFzc2VydChlbmNvZGVBcmM0KGUpID09PSBuZXcgU3RyKGUpLmJ5dGVzKQogICAgZnJhbWVfZGlnIC0xCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTEKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC0xCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTEKICAgIGNvbmNhdAogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjE0CiAgICAvLyBhc3NlcnQoZW5jb2RlQXJjNCh7IGEsIGI6IGQgfSkgPT09IG5ldyBUZXN0U3RydWN0KHsgYTogbmV3IFVpbnRONjQoYSksIGI6IG5ldyBEeW5hbWljQnl0ZXMoZCkgfSkuYnl0ZXMpCiAgICBmcmFtZV9kaWcgLTUKICAgIGl0b2IKICAgIGZyYW1lX2RpZyAtMgogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgZnJhbWVfZGlnIC0yCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGJ5dGVjXzEgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcHVzaGludCAxMCAvLyAxMAogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTUKICAgIGl0b2IKICAgIGZyYW1lX2RpZyAtMgogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgZnJhbWVfZGlnIC0yCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGJ5dGVjXzEgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcHVzaGludCAxMCAvLyAxMAogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICA9PQogICAgYXNzZXJ0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6OkFyYzRFbmNvZGVEZWNvZGUudGVzdERlY29kaW5nKGE6IHVpbnQ2NCwgYV9ieXRlczogYnl0ZXMsIGI6IHVpbnQ2NCwgYl9ieXRlczogYnl0ZXMsIGM6IGJ5dGVzLCBjX2J5dGVzOiBieXRlcywgZDogYnl0ZXMsIGRfYnl0ZXM6IGJ5dGVzLCBlLmE6IGJ5dGVzLCBlLmI6IGJ5dGVzLCBlX2J5dGVzOiBieXRlcykgLT4gdm9pZDoKdGVzdERlY29kaW5nOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjE3LTI4CiAgICAvLyB0ZXN0RGVjb2RpbmcoCiAgICAvLyAgIGE6IHVpbnQ2NCwKICAgIC8vICAgYV9ieXRlczogYnl0ZXMsCiAgICAvLyAgIGI6IGJvb2xlYW4sCiAgICAvLyAgIGJfYnl0ZXM6IGJ5dGVzLAogICAgLy8gICBjOiBiaWd1aW50LAogICAgLy8gICBjX2J5dGVzOiBieXRlcywKICAgIC8vICAgZDogc3RyaW5nLAogICAgLy8gICBkX2J5dGVzOiBieXRlcywKICAgIC8vICAgZTogVGVzdE9iaiwKICAgIC8vICAgZV9ieXRlczogYnl0ZXMsCiAgICAvLyApIHsKICAgIHByb3RvIDExIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czoyOQogICAgLy8gYXNzZXJ0KGRlY29kZUFyYzQ8dWludDY0PihhX2J5dGVzKSA9PT0gYSkKICAgIGZyYW1lX2RpZyAtMTAKICAgIGJ0b2kKICAgIGZyYW1lX2RpZyAtMTEKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czozMAogICAgLy8gYXNzZXJ0KGRlY29kZUFyYzQ8Ym9vbGVhbj4oYl9ieXRlcykgPT09IGIpCiAgICBmcmFtZV9kaWcgLTgKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIGZyYW1lX2RpZyAtOQogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjMxCiAgICAvLyBhc3NlcnQoZGVjb2RlQXJjNDxiaWd1aW50PihjX2J5dGVzKSA9PT0gYykKICAgIGZyYW1lX2RpZyAtNgogICAgZnJhbWVfZGlnIC03CiAgICBiPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjMyCiAgICAvLyBhc3NlcnQoZGVjb2RlQXJjNDxzdHJpbmc+KGRfYnl0ZXMpID09PSBkKQogICAgZnJhbWVfZGlnIC00CiAgICBleHRyYWN0IDIgMAogICAgZnJhbWVfZGlnIC01CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6MzQKICAgIC8vIGFzc2VydE1hdGNoKGRlY29kZUFyYzQ8VGVzdE9iaj4oZV9ieXRlcyksIGUpCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzEgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBmcmFtZV9kaWcgLTMKICAgID09CiAgICBieiB0ZXN0RGVjb2RpbmdfYm9vbF9mYWxzZUAzCgp0ZXN0RGVjb2RpbmdfYW5kX2NvbnRkQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6MzQKICAgIC8vIGFzc2VydE1hdGNoKGRlY29kZUFyYzQ8VGVzdE9iaj4oZV9ieXRlcyksIGUpCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0X3VpbnQxNgogICAgZnJhbWVfZGlnIC0xCiAgICBsZW4KICAgIGZyYW1lX2RpZyAtMQogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgIGZyYW1lX2RpZyAtMgogICAgPT0KICAgIGJ6IHRlc3REZWNvZGluZ19ib29sX2ZhbHNlQDMKCnRlc3REZWNvZGluZ19ib29sX3RydWVAMjoKICAgIGludGNfMiAvLyAxCgp0ZXN0RGVjb2RpbmdfYm9vbF9tZXJnZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjM0CiAgICAvLyBhc3NlcnRNYXRjaChkZWNvZGVBcmM0PFRlc3RPYmo+KGVfYnl0ZXMpLCBlKQogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIHJldHN1YgoKdGVzdERlY29kaW5nX2Jvb2xfZmFsc2VAMzoKICAgIGludGNfMCAvLyAwCiAgICBiIHRlc3REZWNvZGluZ19ib29sX21lcmdlQDQKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6OkFyYzRFbmNvZGVEZWNvZGUuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA4IDEgNjQKICAgIGJ5dGVjYmxvY2sgMHgwMCAweAoKbWFpbl9ibG9ja0AwOgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjcKICAgIC8vIGV4cG9ydCBjbGFzcyBBcmM0RW5jb2RlRGVjb2RlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANwoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjcKICAgIC8vIGV4cG9ydCBjbGFzcyBBcmM0RW5jb2RlRGVjb2RlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4OWJlODVhZmEgLy8gbWV0aG9kICJ0ZXN0RW5jb2RpbmcodWludDY0LGJvb2wsdWludDUxMixieXRlW10sc3RyaW5nKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhhMmQzMzVhYyAvLyBtZXRob2QgInRlc3REZWNvZGluZyh1aW50NjQsYnl0ZVtdLGJvb2wsYnl0ZVtdLHVpbnQ1MTIsYnl0ZVtdLHN0cmluZyxieXRlW10sKHVpbnQ2NCxieXRlW10pLGJ5dGVbXSl2b2lkIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX3Rlc3RFbmNvZGluZ19yb3V0ZUAzIG1haW5fdGVzdERlY29kaW5nX3JvdXRlQDQKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDY6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEFyYzRFbmNvZGVEZWNvZGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo6QXJjNEVuY29kZURlY29kZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMjoKICAgIHJldHVybgoKbWFpbl90ZXN0RGVjb2Rpbmdfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czoxNy0yOAogICAgLy8gdGVzdERlY29kaW5nKAogICAgLy8gICBhOiB1aW50NjQsCiAgICAvLyAgIGFfYnl0ZXM6IGJ5dGVzLAogICAgLy8gICBiOiBib29sZWFuLAogICAgLy8gICBiX2J5dGVzOiBieXRlcywKICAgIC8vICAgYzogYmlndWludCwKICAgIC8vICAgY19ieXRlczogYnl0ZXMsCiAgICAvLyAgIGQ6IHN0cmluZywKICAgIC8vICAgZF9ieXRlczogYnl0ZXMsCiAgICAvLyAgIGU6IFRlc3RPYmosCiAgICAvLyAgIGVfYnl0ZXM6IGJ5dGVzLAogICAgLy8gKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEFyYzRFbmNvZGVEZWNvZGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDUKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDYKICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA3CiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgOAogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDkKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIHN3YXAKICAgIGR1cAogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3RfdWludDE2CiAgICBzd2FwCiAgICBkdXAKICAgIGxlbgogICAgc3dhcAogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEwCiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjE3LTI4CiAgICAvLyB0ZXN0RGVjb2RpbmcoCiAgICAvLyAgIGE6IHVpbnQ2NCwKICAgIC8vICAgYV9ieXRlczogYnl0ZXMsCiAgICAvLyAgIGI6IGJvb2xlYW4sCiAgICAvLyAgIGJfYnl0ZXM6IGJ5dGVzLAogICAgLy8gICBjOiBiaWd1aW50LAogICAgLy8gICBjX2J5dGVzOiBieXRlcywKICAgIC8vICAgZDogc3RyaW5nLAogICAgLy8gICBkX2J5dGVzOiBieXRlcywKICAgIC8vICAgZTogVGVzdE9iaiwKICAgIC8vICAgZV9ieXRlczogYnl0ZXMsCiAgICAvLyApIHsKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIGNhbGxzdWIgdGVzdERlY29kaW5nCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjpBcmM0RW5jb2RlRGVjb2RlLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX3Rlc3RFbmNvZGluZ19yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjgKICAgIC8vIHRlc3RFbmNvZGluZyhhOiB1aW50NjQsIGI6IGJvb2xlYW4sIGM6IGJpZ3VpbnQsIGQ6IGJ5dGVzLCBlOiBzdHJpbmcpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgQXJjNEVuY29kZURlY29kZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDQKICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA1CiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjgKICAgIC8vIHRlc3RFbmNvZGluZyhhOiB1aW50NjQsIGI6IGJvb2xlYW4sIGM6IGJpZ3VpbnQsIGQ6IGJ5dGVzLCBlOiBzdHJpbmcpIHsKICAgIHVuY292ZXIgNAogICAgdW5jb3ZlciA0CiAgICB1bmNvdmVyIDQKICAgIHVuY292ZXIgNAogICAgdW5jb3ZlciA0CiAgICBjYWxsc3ViIHRlc3RFbmNvZGluZwogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo6QXJjNEVuY29kZURlY29kZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKbWFpbl9iYXJlX3JvdXRpbmdANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgQXJjNEVuY29kZURlY29kZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAOToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDExCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjcKICAgIC8vIGV4cG9ydCBjbGFzcyBBcmM0RW5jb2RlRGVjb2RlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6OkFyYzRFbmNvZGVEZWNvZGUuX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6OkFyYzRFbmNvZGVEZWNvZGUudGVzdEVuY29kaW5nKGE6IHVpbnQ2NCwgYjogdWludDY0LCBjOiBieXRlcywgZDogYnl0ZXMsIGU6IGJ5dGVzKSAtPiB2b2lkOgp0ZXN0RW5jb2Rpbmc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6OAogICAgLy8gdGVzdEVuY29kaW5nKGE6IHVpbnQ2NCwgYjogYm9vbGVhbiwgYzogYmlndWludCwgZDogYnl0ZXMsIGU6IHN0cmluZykgewogICAgcHJvdG8gNSAwCgp0ZXN0RW5jb2RpbmdfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo5CiAgICAvLyBhc3NlcnQoZW5jb2RlQXJjNChhKSA9PT0gbmV3IFVpbnRONjQoYSkuYnl0ZXMpCiAgICBmcmFtZV9kaWcgLTUKICAgIGl0b2IKICAgIGZyYW1lX2RpZyAtNQogICAgaXRvYgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjEwCiAgICAvLyBhc3NlcnQoZW5jb2RlQXJjNChiKSA9PT0gbmV3IEJvb2woYikuYnl0ZXMpCiAgICBieXRlY18wIC8vIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICBmcmFtZV9kaWcgLTQKICAgIHNldGJpdAogICAgYnl0ZWNfMCAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgZnJhbWVfZGlnIC00CiAgICBzZXRiaXQKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czoxMQogICAgLy8gYXNzZXJ0KGVuY29kZUFyYzQoYykgPT09IG5ldyBVaW50Tjw1MTI+KGMpLmJ5dGVzKQogICAgZnJhbWVfZGlnIC0zCiAgICBsZW4KICAgIGludGNfMyAvLyA2NAogICAgPD0KICAgIGFzc2VydCAvLyBvdmVyZmxvdwogICAgaW50Y18zIC8vIDY0CiAgICBiemVybwogICAgZnJhbWVfZGlnIC0zCiAgICBifAogICAgZnJhbWVfZGlnIC0zCiAgICBsZW4KICAgIGludGNfMyAvLyA2NAogICAgPD0KICAgIGFzc2VydCAvLyBvdmVyZmxvdwogICAgaW50Y18zIC8vIDY0CiAgICBiemVybwogICAgZnJhbWVfZGlnIC0zCiAgICBifAogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjEyCiAgICAvLyBhc3NlcnQoZW5jb2RlQXJjNChkKSA9PT0gbmV3IER5bmFtaWNCeXRlcyhkKS5ieXRlcykKICAgIGZyYW1lX2RpZyAtMgogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgZnJhbWVfZGlnIC0yCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMgogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgZnJhbWVfZGlnIC0yCiAgICBjb25jYXQKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czoxMwogICAgLy8gYXNzZXJ0KGVuY29kZUFyYzQoZSkgPT09IG5ldyBTdHIoZSkuYnl0ZXMpCiAgICBmcmFtZV9kaWcgLTEKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtMQogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTEKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtMQogICAgY29uY2F0CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6MTQKICAgIC8vIGFzc2VydChlbmNvZGVBcmM0KHsgYSwgYjogZCB9KSA9PT0gbmV3IFRlc3RTdHJ1Y3QoeyBhOiBuZXcgVWludE42NChhKSwgYjogbmV3IER5bmFtaWNCeXRlcyhkKSB9KS5ieXRlcykKICAgIGZyYW1lX2RpZyAtNQogICAgaXRvYgogICAgZnJhbWVfZGlnIC0yCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTIKICAgIGNvbmNhdAogICAgc3dhcAogICAgYnl0ZWNfMSAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoaW50IDEwIC8vIDEwCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtNQogICAgaXRvYgogICAgZnJhbWVfZGlnIC0yCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTIKICAgIGNvbmNhdAogICAgc3dhcAogICAgYnl0ZWNfMSAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoaW50IDEwIC8vIDEwCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgID09CiAgICBhc3NlcnQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo6QXJjNEVuY29kZURlY29kZS50ZXN0RGVjb2RpbmcoYTogdWludDY0LCBhX2J5dGVzOiBieXRlcywgYjogdWludDY0LCBiX2J5dGVzOiBieXRlcywgYzogYnl0ZXMsIGNfYnl0ZXM6IGJ5dGVzLCBkOiBieXRlcywgZF9ieXRlczogYnl0ZXMsIGUuYTogYnl0ZXMsIGUuYjogYnl0ZXMsIGVfYnl0ZXM6IGJ5dGVzKSAtPiB2b2lkOgp0ZXN0RGVjb2Rpbmc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6MTctMjgKICAgIC8vIHRlc3REZWNvZGluZygKICAgIC8vICAgYTogdWludDY0LAogICAgLy8gICBhX2J5dGVzOiBieXRlcywKICAgIC8vICAgYjogYm9vbGVhbiwKICAgIC8vICAgYl9ieXRlczogYnl0ZXMsCiAgICAvLyAgIGM6IGJpZ3VpbnQsCiAgICAvLyAgIGNfYnl0ZXM6IGJ5dGVzLAogICAgLy8gICBkOiBzdHJpbmcsCiAgICAvLyAgIGRfYnl0ZXM6IGJ5dGVzLAogICAgLy8gICBlOiBUZXN0T2JqLAogICAgLy8gICBlX2J5dGVzOiBieXRlcywKICAgIC8vICkgewogICAgcHJvdG8gMTEgMAoKdGVzdERlY29kaW5nX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6MjkKICAgIC8vIGFzc2VydChkZWNvZGVBcmM0PHVpbnQ2ND4oYV9ieXRlcykgPT09IGEpCiAgICBmcmFtZV9kaWcgLTEwCiAgICBidG9pCiAgICBmcmFtZV9kaWcgLTExCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6MzAKICAgIC8vIGFzc2VydChkZWNvZGVBcmM0PGJvb2xlYW4+KGJfYnl0ZXMpID09PSBiKQogICAgZnJhbWVfZGlnIC04CiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICBmcmFtZV9kaWcgLTkKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czozMQogICAgLy8gYXNzZXJ0KGRlY29kZUFyYzQ8YmlndWludD4oY19ieXRlcykgPT09IGMpCiAgICBmcmFtZV9kaWcgLTYKICAgIGZyYW1lX2RpZyAtNwogICAgYj09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czozMgogICAgLy8gYXNzZXJ0KGRlY29kZUFyYzQ8c3RyaW5nPihkX2J5dGVzKSA9PT0gZCkKICAgIGZyYW1lX2RpZyAtNAogICAgZXh0cmFjdCAyIDAKICAgIGZyYW1lX2RpZyAtNQogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjM0CiAgICAvLyBhc3NlcnRNYXRjaChkZWNvZGVBcmM0PFRlc3RPYmo+KGVfYnl0ZXMpLCBlKQogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgZnJhbWVfZGlnIC0zCiAgICA9PQogICAgYnogdGVzdERlY29kaW5nX2Jvb2xfZmFsc2VAMwoKdGVzdERlY29kaW5nX2FuZF9jb250ZEAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjM0CiAgICAvLyBhc3NlcnRNYXRjaChkZWNvZGVBcmM0PFRlc3RPYmo+KGVfYnl0ZXMpLCBlKQogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzEgLy8gOAogICAgZXh0cmFjdF91aW50MTYKICAgIGZyYW1lX2RpZyAtMQogICAgbGVuCiAgICBmcmFtZV9kaWcgLTEKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICBmcmFtZV9kaWcgLTIKICAgID09CiAgICBieiB0ZXN0RGVjb2RpbmdfYm9vbF9mYWxzZUAzCgp0ZXN0RGVjb2RpbmdfYm9vbF90cnVlQDI6CiAgICBpbnRjXzIgLy8gMQoKdGVzdERlY29kaW5nX2Jvb2xfbWVyZ2VANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czozNAogICAgLy8gYXNzZXJ0TWF0Y2goZGVjb2RlQXJjNDxUZXN0T2JqPihlX2J5dGVzKSwgZSkKICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICByZXRzdWIKCnRlc3REZWNvZGluZ19ib29sX2ZhbHNlQDM6CiAgICBpbnRjXzAgLy8gMAogICAgYiB0ZXN0RGVjb2RpbmdfYm9vbF9tZXJnZUA0CgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjpBcmM0RW5jb2RlRGVjb2RlLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/arc4-encode-decode/Arc4EncodeDecode.arc56.json b/tests/approvals/out/unoptimized/arc4-encode-decode/Arc4EncodeDecode.arc56.json index 527601d91..c904c0fcc 100644 --- a/tests/approvals/out/unoptimized/arc4-encode-decode/Arc4EncodeDecode.arc56.json +++ b/tests/approvals/out/unoptimized/arc4-encode-decode/Arc4EncodeDecode.arc56.json @@ -194,8 +194,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA4IDEgNjQKICAgIGJ5dGVjYmxvY2sgMHgwMCAweAoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjcKICAgIC8vIGV4cG9ydCBjbGFzcyBBcmM0RW5jb2RlRGVjb2RlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANwoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjcKICAgIC8vIGV4cG9ydCBjbGFzcyBBcmM0RW5jb2RlRGVjb2RlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4OWJlODVhZmEgLy8gbWV0aG9kICJ0ZXN0RW5jb2RpbmcodWludDY0LGJvb2wsdWludDUxMixieXRlW10sc3RyaW5nKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhhMmQzMzVhYyAvLyBtZXRob2QgInRlc3REZWNvZGluZyh1aW50NjQsYnl0ZVtdLGJvb2wsYnl0ZVtdLHVpbnQ1MTIsYnl0ZVtdLHN0cmluZyxieXRlW10sKHVpbnQ2NCxieXRlW10pLGJ5dGVbXSl2b2lkIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX3Rlc3RFbmNvZGluZ19yb3V0ZUAzIG1haW5fdGVzdERlY29kaW5nX3JvdXRlQDQKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDY6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEFyYzRFbmNvZGVEZWNvZGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo6QXJjNEVuY29kZURlY29kZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMjoKICAgIHJldHVybgoKbWFpbl90ZXN0RGVjb2Rpbmdfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czoxNy0yOAogICAgLy8gdGVzdERlY29kaW5nKAogICAgLy8gICBhOiB1aW50NjQsCiAgICAvLyAgIGFfYnl0ZXM6IGJ5dGVzLAogICAgLy8gICBiOiBib29sZWFuLAogICAgLy8gICBiX2J5dGVzOiBieXRlcywKICAgIC8vICAgYzogYmlndWludCwKICAgIC8vICAgY19ieXRlczogYnl0ZXMsCiAgICAvLyAgIGQ6IHN0cmluZywKICAgIC8vICAgZF9ieXRlczogYnl0ZXMsCiAgICAvLyAgIGU6IFRlc3RPYmosCiAgICAvLyAgIGVfYnl0ZXM6IGJ5dGVzLAogICAgLy8gKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEFyYzRFbmNvZGVEZWNvZGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDUKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDYKICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA3CiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgOAogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDkKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIHN3YXAKICAgIGR1cAogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3RfdWludDE2CiAgICBzd2FwCiAgICBkdXAKICAgIGxlbgogICAgc3dhcAogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEwCiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjE3LTI4CiAgICAvLyB0ZXN0RGVjb2RpbmcoCiAgICAvLyAgIGE6IHVpbnQ2NCwKICAgIC8vICAgYV9ieXRlczogYnl0ZXMsCiAgICAvLyAgIGI6IGJvb2xlYW4sCiAgICAvLyAgIGJfYnl0ZXM6IGJ5dGVzLAogICAgLy8gICBjOiBiaWd1aW50LAogICAgLy8gICBjX2J5dGVzOiBieXRlcywKICAgIC8vICAgZDogc3RyaW5nLAogICAgLy8gICBkX2J5dGVzOiBieXRlcywKICAgIC8vICAgZTogVGVzdE9iaiwKICAgIC8vICAgZV9ieXRlczogYnl0ZXMsCiAgICAvLyApIHsKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIGNhbGxzdWIgdGVzdERlY29kaW5nCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjpBcmM0RW5jb2RlRGVjb2RlLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX3Rlc3RFbmNvZGluZ19yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjgKICAgIC8vIHRlc3RFbmNvZGluZyhhOiB1aW50NjQsIGI6IGJvb2xlYW4sIGM6IGJpZ3VpbnQsIGQ6IGJ5dGVzLCBlOiBzdHJpbmcpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgQXJjNEVuY29kZURlY29kZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDQKICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA1CiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjgKICAgIC8vIHRlc3RFbmNvZGluZyhhOiB1aW50NjQsIGI6IGJvb2xlYW4sIGM6IGJpZ3VpbnQsIGQ6IGJ5dGVzLCBlOiBzdHJpbmcpIHsKICAgIHVuY292ZXIgNAogICAgdW5jb3ZlciA0CiAgICB1bmNvdmVyIDQKICAgIHVuY292ZXIgNAogICAgdW5jb3ZlciA0CiAgICBjYWxsc3ViIHRlc3RFbmNvZGluZwogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo6QXJjNEVuY29kZURlY29kZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKbWFpbl9iYXJlX3JvdXRpbmdANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgQXJjNEVuY29kZURlY29kZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAOToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDExCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjcKICAgIC8vIGV4cG9ydCBjbGFzcyBBcmM0RW5jb2RlRGVjb2RlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6OkFyYzRFbmNvZGVEZWNvZGUuX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6OkFyYzRFbmNvZGVEZWNvZGUudGVzdEVuY29kaW5nKGE6IHVpbnQ2NCwgYjogdWludDY0LCBjOiBieXRlcywgZDogYnl0ZXMsIGU6IGJ5dGVzKSAtPiB2b2lkOgp0ZXN0RW5jb2Rpbmc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6OAogICAgLy8gdGVzdEVuY29kaW5nKGE6IHVpbnQ2NCwgYjogYm9vbGVhbiwgYzogYmlndWludCwgZDogYnl0ZXMsIGU6IHN0cmluZykgewogICAgcHJvdG8gNSAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6OQogICAgLy8gYXNzZXJ0KGVuY29kZUFyYzQoYSkgPT09IG5ldyBVaW50TjY0KGEpLmJ5dGVzKQogICAgZnJhbWVfZGlnIC01CiAgICBpdG9iCiAgICBmcmFtZV9kaWcgLTUKICAgIGl0b2IKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czoxMAogICAgLy8gYXNzZXJ0KGVuY29kZUFyYzQoYikgPT09IG5ldyBCb29sKGIpLmJ5dGVzKQogICAgYnl0ZWNfMCAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgZnJhbWVfZGlnIC00CiAgICBzZXRiaXQKICAgIGJ5dGVjXzAgLy8gMHgwMAogICAgaW50Y18wIC8vIDAKICAgIGZyYW1lX2RpZyAtNAogICAgc2V0Yml0CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6MTEKICAgIC8vIGFzc2VydChlbmNvZGVBcmM0KGMpID09PSBuZXcgVWludE48NTEyPihjKS5ieXRlcykKICAgIGZyYW1lX2RpZyAtMwogICAgbGVuCiAgICBpbnRjXzMgLy8gNjQKICAgIDw9CiAgICBhc3NlcnQgLy8gb3ZlcmZsb3cKICAgIGludGNfMyAvLyA2NAogICAgYnplcm8KICAgIGZyYW1lX2RpZyAtMwogICAgYnwKICAgIGZyYW1lX2RpZyAtMwogICAgbGVuCiAgICBpbnRjXzMgLy8gNjQKICAgIDw9CiAgICBhc3NlcnQgLy8gb3ZlcmZsb3cKICAgIGludGNfMyAvLyA2NAogICAgYnplcm8KICAgIGZyYW1lX2RpZyAtMwogICAgYnwKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czoxMgogICAgLy8gYXNzZXJ0KGVuY29kZUFyYzQoZCkgPT09IG5ldyBEeW5hbWljQnl0ZXMoZCkuYnl0ZXMpCiAgICBmcmFtZV9kaWcgLTIKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtMgogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTIKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtMgogICAgY29uY2F0CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6MTMKICAgIC8vIGFzc2VydChlbmNvZGVBcmM0KGUpID09PSBuZXcgU3RyKGUpLmJ5dGVzKQogICAgZnJhbWVfZGlnIC0xCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTEKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC0xCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTEKICAgIGNvbmNhdAogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjE0CiAgICAvLyBhc3NlcnQoZW5jb2RlQXJjNCh7IGEsIGI6IGQgfSkgPT09IG5ldyBUZXN0U3RydWN0KHsgYTogbmV3IFVpbnRONjQoYSksIGI6IG5ldyBEeW5hbWljQnl0ZXMoZCkgfSkuYnl0ZXMpCiAgICBmcmFtZV9kaWcgLTUKICAgIGl0b2IKICAgIGZyYW1lX2RpZyAtMgogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgZnJhbWVfZGlnIC0yCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGJ5dGVjXzEgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcHVzaGludCAxMCAvLyAxMAogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTUKICAgIGl0b2IKICAgIGZyYW1lX2RpZyAtMgogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgZnJhbWVfZGlnIC0yCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGJ5dGVjXzEgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcHVzaGludCAxMCAvLyAxMAogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICA9PQogICAgYXNzZXJ0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6OkFyYzRFbmNvZGVEZWNvZGUudGVzdERlY29kaW5nKGE6IHVpbnQ2NCwgYV9ieXRlczogYnl0ZXMsIGI6IHVpbnQ2NCwgYl9ieXRlczogYnl0ZXMsIGM6IGJ5dGVzLCBjX2J5dGVzOiBieXRlcywgZDogYnl0ZXMsIGRfYnl0ZXM6IGJ5dGVzLCBlLmE6IGJ5dGVzLCBlLmI6IGJ5dGVzLCBlX2J5dGVzOiBieXRlcykgLT4gdm9pZDoKdGVzdERlY29kaW5nOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjE3LTI4CiAgICAvLyB0ZXN0RGVjb2RpbmcoCiAgICAvLyAgIGE6IHVpbnQ2NCwKICAgIC8vICAgYV9ieXRlczogYnl0ZXMsCiAgICAvLyAgIGI6IGJvb2xlYW4sCiAgICAvLyAgIGJfYnl0ZXM6IGJ5dGVzLAogICAgLy8gICBjOiBiaWd1aW50LAogICAgLy8gICBjX2J5dGVzOiBieXRlcywKICAgIC8vICAgZDogc3RyaW5nLAogICAgLy8gICBkX2J5dGVzOiBieXRlcywKICAgIC8vICAgZTogVGVzdE9iaiwKICAgIC8vICAgZV9ieXRlczogYnl0ZXMsCiAgICAvLyApIHsKICAgIHByb3RvIDExIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czoyOQogICAgLy8gYXNzZXJ0KGRlY29kZUFyYzQ8dWludDY0PihhX2J5dGVzKSA9PT0gYSkKICAgIGZyYW1lX2RpZyAtMTAKICAgIGJ0b2kKICAgIGZyYW1lX2RpZyAtMTEKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czozMAogICAgLy8gYXNzZXJ0KGRlY29kZUFyYzQ8Ym9vbGVhbj4oYl9ieXRlcykgPT09IGIpCiAgICBmcmFtZV9kaWcgLTgKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIGZyYW1lX2RpZyAtOQogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjMxCiAgICAvLyBhc3NlcnQoZGVjb2RlQXJjNDxiaWd1aW50PihjX2J5dGVzKSA9PT0gYykKICAgIGZyYW1lX2RpZyAtNgogICAgZnJhbWVfZGlnIC03CiAgICBiPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjMyCiAgICAvLyBhc3NlcnQoZGVjb2RlQXJjNDxzdHJpbmc+KGRfYnl0ZXMpID09PSBkKQogICAgZnJhbWVfZGlnIC00CiAgICBleHRyYWN0IDIgMAogICAgZnJhbWVfZGlnIC01CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6MzQKICAgIC8vIGFzc2VydE1hdGNoKGRlY29kZUFyYzQ8VGVzdE9iaj4oZV9ieXRlcyksIGUpCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzEgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBmcmFtZV9kaWcgLTMKICAgID09CiAgICBieiB0ZXN0RGVjb2RpbmdfYm9vbF9mYWxzZUAzCgp0ZXN0RGVjb2RpbmdfYW5kX2NvbnRkQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6MzQKICAgIC8vIGFzc2VydE1hdGNoKGRlY29kZUFyYzQ8VGVzdE9iaj4oZV9ieXRlcyksIGUpCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0X3VpbnQxNgogICAgZnJhbWVfZGlnIC0xCiAgICBsZW4KICAgIGZyYW1lX2RpZyAtMQogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgIGZyYW1lX2RpZyAtMgogICAgPT0KICAgIGJ6IHRlc3REZWNvZGluZ19ib29sX2ZhbHNlQDMKCnRlc3REZWNvZGluZ19ib29sX3RydWVAMjoKICAgIGludGNfMiAvLyAxCgp0ZXN0RGVjb2RpbmdfYm9vbF9tZXJnZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjM0CiAgICAvLyBhc3NlcnRNYXRjaChkZWNvZGVBcmM0PFRlc3RPYmo+KGVfYnl0ZXMpLCBlKQogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIHJldHN1YgoKdGVzdERlY29kaW5nX2Jvb2xfZmFsc2VAMzoKICAgIGludGNfMCAvLyAwCiAgICBiIHRlc3REZWNvZGluZ19ib29sX21lcmdlQDQKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6OkFyYzRFbmNvZGVEZWNvZGUuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA4IDEgNjQKICAgIGJ5dGVjYmxvY2sgMHgwMCAweAoKbWFpbl9ibG9ja0AwOgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjcKICAgIC8vIGV4cG9ydCBjbGFzcyBBcmM0RW5jb2RlRGVjb2RlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANwoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjcKICAgIC8vIGV4cG9ydCBjbGFzcyBBcmM0RW5jb2RlRGVjb2RlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4OWJlODVhZmEgLy8gbWV0aG9kICJ0ZXN0RW5jb2RpbmcodWludDY0LGJvb2wsdWludDUxMixieXRlW10sc3RyaW5nKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhhMmQzMzVhYyAvLyBtZXRob2QgInRlc3REZWNvZGluZyh1aW50NjQsYnl0ZVtdLGJvb2wsYnl0ZVtdLHVpbnQ1MTIsYnl0ZVtdLHN0cmluZyxieXRlW10sKHVpbnQ2NCxieXRlW10pLGJ5dGVbXSl2b2lkIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX3Rlc3RFbmNvZGluZ19yb3V0ZUAzIG1haW5fdGVzdERlY29kaW5nX3JvdXRlQDQKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDY6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEFyYzRFbmNvZGVEZWNvZGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo6QXJjNEVuY29kZURlY29kZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMjoKICAgIHJldHVybgoKbWFpbl90ZXN0RGVjb2Rpbmdfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czoxNy0yOAogICAgLy8gdGVzdERlY29kaW5nKAogICAgLy8gICBhOiB1aW50NjQsCiAgICAvLyAgIGFfYnl0ZXM6IGJ5dGVzLAogICAgLy8gICBiOiBib29sZWFuLAogICAgLy8gICBiX2J5dGVzOiBieXRlcywKICAgIC8vICAgYzogYmlndWludCwKICAgIC8vICAgY19ieXRlczogYnl0ZXMsCiAgICAvLyAgIGQ6IHN0cmluZywKICAgIC8vICAgZF9ieXRlczogYnl0ZXMsCiAgICAvLyAgIGU6IFRlc3RPYmosCiAgICAvLyAgIGVfYnl0ZXM6IGJ5dGVzLAogICAgLy8gKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEFyYzRFbmNvZGVEZWNvZGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDUKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDYKICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA3CiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgOAogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDkKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIHN3YXAKICAgIGR1cAogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3RfdWludDE2CiAgICBzd2FwCiAgICBkdXAKICAgIGxlbgogICAgc3dhcAogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEwCiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjE3LTI4CiAgICAvLyB0ZXN0RGVjb2RpbmcoCiAgICAvLyAgIGE6IHVpbnQ2NCwKICAgIC8vICAgYV9ieXRlczogYnl0ZXMsCiAgICAvLyAgIGI6IGJvb2xlYW4sCiAgICAvLyAgIGJfYnl0ZXM6IGJ5dGVzLAogICAgLy8gICBjOiBiaWd1aW50LAogICAgLy8gICBjX2J5dGVzOiBieXRlcywKICAgIC8vICAgZDogc3RyaW5nLAogICAgLy8gICBkX2J5dGVzOiBieXRlcywKICAgIC8vICAgZTogVGVzdE9iaiwKICAgIC8vICAgZV9ieXRlczogYnl0ZXMsCiAgICAvLyApIHsKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIHVuY292ZXIgMTAKICAgIGNhbGxzdWIgdGVzdERlY29kaW5nCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjpBcmM0RW5jb2RlRGVjb2RlLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX3Rlc3RFbmNvZGluZ19yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjgKICAgIC8vIHRlc3RFbmNvZGluZyhhOiB1aW50NjQsIGI6IGJvb2xlYW4sIGM6IGJpZ3VpbnQsIGQ6IGJ5dGVzLCBlOiBzdHJpbmcpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgQXJjNEVuY29kZURlY29kZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDQKICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA1CiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjgKICAgIC8vIHRlc3RFbmNvZGluZyhhOiB1aW50NjQsIGI6IGJvb2xlYW4sIGM6IGJpZ3VpbnQsIGQ6IGJ5dGVzLCBlOiBzdHJpbmcpIHsKICAgIHVuY292ZXIgNAogICAgdW5jb3ZlciA0CiAgICB1bmNvdmVyIDQKICAgIHVuY292ZXIgNAogICAgdW5jb3ZlciA0CiAgICBjYWxsc3ViIHRlc3RFbmNvZGluZwogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo6QXJjNEVuY29kZURlY29kZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKbWFpbl9iYXJlX3JvdXRpbmdANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgQXJjNEVuY29kZURlY29kZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAOToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDExCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjcKICAgIC8vIGV4cG9ydCBjbGFzcyBBcmM0RW5jb2RlRGVjb2RlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6OkFyYzRFbmNvZGVEZWNvZGUuX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6OkFyYzRFbmNvZGVEZWNvZGUudGVzdEVuY29kaW5nKGE6IHVpbnQ2NCwgYjogdWludDY0LCBjOiBieXRlcywgZDogYnl0ZXMsIGU6IGJ5dGVzKSAtPiB2b2lkOgp0ZXN0RW5jb2Rpbmc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6OAogICAgLy8gdGVzdEVuY29kaW5nKGE6IHVpbnQ2NCwgYjogYm9vbGVhbiwgYzogYmlndWludCwgZDogYnl0ZXMsIGU6IHN0cmluZykgewogICAgcHJvdG8gNSAwCgp0ZXN0RW5jb2RpbmdfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo5CiAgICAvLyBhc3NlcnQoZW5jb2RlQXJjNChhKSA9PT0gbmV3IFVpbnRONjQoYSkuYnl0ZXMpCiAgICBmcmFtZV9kaWcgLTUKICAgIGl0b2IKICAgIGZyYW1lX2RpZyAtNQogICAgaXRvYgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjEwCiAgICAvLyBhc3NlcnQoZW5jb2RlQXJjNChiKSA9PT0gbmV3IEJvb2woYikuYnl0ZXMpCiAgICBieXRlY18wIC8vIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICBmcmFtZV9kaWcgLTQKICAgIHNldGJpdAogICAgYnl0ZWNfMCAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgZnJhbWVfZGlnIC00CiAgICBzZXRiaXQKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czoxMQogICAgLy8gYXNzZXJ0KGVuY29kZUFyYzQoYykgPT09IG5ldyBVaW50Tjw1MTI+KGMpLmJ5dGVzKQogICAgZnJhbWVfZGlnIC0zCiAgICBsZW4KICAgIGludGNfMyAvLyA2NAogICAgPD0KICAgIGFzc2VydCAvLyBvdmVyZmxvdwogICAgaW50Y18zIC8vIDY0CiAgICBiemVybwogICAgZnJhbWVfZGlnIC0zCiAgICBifAogICAgZnJhbWVfZGlnIC0zCiAgICBsZW4KICAgIGludGNfMyAvLyA2NAogICAgPD0KICAgIGFzc2VydCAvLyBvdmVyZmxvdwogICAgaW50Y18zIC8vIDY0CiAgICBiemVybwogICAgZnJhbWVfZGlnIC0zCiAgICBifAogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjEyCiAgICAvLyBhc3NlcnQoZW5jb2RlQXJjNChkKSA9PT0gbmV3IER5bmFtaWNCeXRlcyhkKS5ieXRlcykKICAgIGZyYW1lX2RpZyAtMgogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgZnJhbWVfZGlnIC0yCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMgogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgZnJhbWVfZGlnIC0yCiAgICBjb25jYXQKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czoxMwogICAgLy8gYXNzZXJ0KGVuY29kZUFyYzQoZSkgPT09IG5ldyBTdHIoZSkuYnl0ZXMpCiAgICBmcmFtZV9kaWcgLTEKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtMQogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTEKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtMQogICAgY29uY2F0CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6MTQKICAgIC8vIGFzc2VydChlbmNvZGVBcmM0KHsgYSwgYjogZCB9KSA9PT0gbmV3IFRlc3RTdHJ1Y3QoeyBhOiBuZXcgVWludE42NChhKSwgYjogbmV3IER5bmFtaWNCeXRlcyhkKSB9KS5ieXRlcykKICAgIGZyYW1lX2RpZyAtNQogICAgaXRvYgogICAgZnJhbWVfZGlnIC0yCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTIKICAgIGNvbmNhdAogICAgc3dhcAogICAgYnl0ZWNfMSAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoaW50IDEwIC8vIDEwCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtNQogICAgaXRvYgogICAgZnJhbWVfZGlnIC0yCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTIKICAgIGNvbmNhdAogICAgc3dhcAogICAgYnl0ZWNfMSAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoaW50IDEwIC8vIDEwCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgID09CiAgICBhc3NlcnQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czo6QXJjNEVuY29kZURlY29kZS50ZXN0RGVjb2RpbmcoYTogdWludDY0LCBhX2J5dGVzOiBieXRlcywgYjogdWludDY0LCBiX2J5dGVzOiBieXRlcywgYzogYnl0ZXMsIGNfYnl0ZXM6IGJ5dGVzLCBkOiBieXRlcywgZF9ieXRlczogYnl0ZXMsIGUuYTogYnl0ZXMsIGUuYjogYnl0ZXMsIGVfYnl0ZXM6IGJ5dGVzKSAtPiB2b2lkOgp0ZXN0RGVjb2Rpbmc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6MTctMjgKICAgIC8vIHRlc3REZWNvZGluZygKICAgIC8vICAgYTogdWludDY0LAogICAgLy8gICBhX2J5dGVzOiBieXRlcywKICAgIC8vICAgYjogYm9vbGVhbiwKICAgIC8vICAgYl9ieXRlczogYnl0ZXMsCiAgICAvLyAgIGM6IGJpZ3VpbnQsCiAgICAvLyAgIGNfYnl0ZXM6IGJ5dGVzLAogICAgLy8gICBkOiBzdHJpbmcsCiAgICAvLyAgIGRfYnl0ZXM6IGJ5dGVzLAogICAgLy8gICBlOiBUZXN0T2JqLAogICAgLy8gICBlX2J5dGVzOiBieXRlcywKICAgIC8vICkgewogICAgcHJvdG8gMTEgMAoKdGVzdERlY29kaW5nX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6MjkKICAgIC8vIGFzc2VydChkZWNvZGVBcmM0PHVpbnQ2ND4oYV9ieXRlcykgPT09IGEpCiAgICBmcmFtZV9kaWcgLTEwCiAgICBidG9pCiAgICBmcmFtZV9kaWcgLTExCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1lbmNvZGUtZGVjb2RlLmFsZ28udHM6MzAKICAgIC8vIGFzc2VydChkZWNvZGVBcmM0PGJvb2xlYW4+KGJfYnl0ZXMpID09PSBiKQogICAgZnJhbWVfZGlnIC04CiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICBmcmFtZV9kaWcgLTkKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czozMQogICAgLy8gYXNzZXJ0KGRlY29kZUFyYzQ8YmlndWludD4oY19ieXRlcykgPT09IGMpCiAgICBmcmFtZV9kaWcgLTYKICAgIGZyYW1lX2RpZyAtNwogICAgYj09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czozMgogICAgLy8gYXNzZXJ0KGRlY29kZUFyYzQ8c3RyaW5nPihkX2J5dGVzKSA9PT0gZCkKICAgIGZyYW1lX2RpZyAtNAogICAgZXh0cmFjdCAyIDAKICAgIGZyYW1lX2RpZyAtNQogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjM0CiAgICAvLyBhc3NlcnRNYXRjaChkZWNvZGVBcmM0PFRlc3RPYmo+KGVfYnl0ZXMpLCBlKQogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgZnJhbWVfZGlnIC0zCiAgICA9PQogICAgYnogdGVzdERlY29kaW5nX2Jvb2xfZmFsc2VAMwoKdGVzdERlY29kaW5nX2FuZF9jb250ZEAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjM0CiAgICAvLyBhc3NlcnRNYXRjaChkZWNvZGVBcmM0PFRlc3RPYmo+KGVfYnl0ZXMpLCBlKQogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzEgLy8gOAogICAgZXh0cmFjdF91aW50MTYKICAgIGZyYW1lX2RpZyAtMQogICAgbGVuCiAgICBmcmFtZV9kaWcgLTEKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICBmcmFtZV9kaWcgLTIKICAgID09CiAgICBieiB0ZXN0RGVjb2RpbmdfYm9vbF9mYWxzZUAzCgp0ZXN0RGVjb2RpbmdfYm9vbF90cnVlQDI6CiAgICBpbnRjXzIgLy8gMQoKdGVzdERlY29kaW5nX2Jvb2xfbWVyZ2VANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWVuY29kZS1kZWNvZGUuYWxnby50czozNAogICAgLy8gYXNzZXJ0TWF0Y2goZGVjb2RlQXJjNDxUZXN0T2JqPihlX2J5dGVzKSwgZSkKICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICByZXRzdWIKCnRlc3REZWNvZGluZ19ib29sX2ZhbHNlQDM6CiAgICBpbnRjXzAgLy8gMAogICAgYiB0ZXN0RGVjb2RpbmdfYm9vbF9tZXJnZUA0CgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtZW5jb2RlLWRlY29kZS5hbGdvLnRzOjpBcmM0RW5jb2RlRGVjb2RlLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiAEAAgBQCYCAQAAMRsiE0EAtzYaAIAEm+ha+oAEotM1rE8CjgIAbQACIkMxGSISRDEYIhNENhoBFzYaAlcCADYaAyJTNhoEVwIANhoFNhoGVwIANhoHVwIANhoIVwIANhoJSSIjWExJI1lMSRVMTwJPAlI2GgpXAgBPCk8KTwpPCk8KTwpPCk8KTwpPCk8KiADgJEL/lDEZIhJEMRgiE0Q2GgEXNhoCIlM2GgM2GgRXAgA2GgVXAgBPBE8ETwRPBE8EiAAbJEL/YTEZIkyOAQADQv9VMRgiEkSIAN0kQv9KigUAi/sWi/sWEkQoIov8VCgii/xUEkSL/RUlDkQlr4v9q4v9FSUORCWvi/2rEkSL/hUWVwYCi/5Qi/4VFlcGAov+UBJEi/8VFlcGAov/UIv/FRZXBgKL/1ASRIv7Fov+FRZXBgKL/lBMKUxQgQoWVwYCUExQi/sWi/4VFlcGAov+UEwpTFCBChZXBgJQTFASRImKCwCL9heL9RJEi/giU4v3EkSL+ov5qESL/FcCAIv7EkSL/yIjWIv9EkEAF4v/I1mL/xWL/08CTwJSi/4SQQADJESJIkL/+ok=", @@ -206,7 +206,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/arc4-encode-decode/Arc4EncodeDecode.clear.teal b/tests/approvals/out/unoptimized/arc4-encode-decode/Arc4EncodeDecode.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/arc4-encode-decode/Arc4EncodeDecode.clear.teal +++ b/tests/approvals/out/unoptimized/arc4-encode-decode/Arc4EncodeDecode.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/arc4-hybrid/Arc4HybridAlgo.approval.teal b/tests/approvals/out/unoptimized/arc4-hybrid/Arc4HybridAlgo.approval.teal index 8cd522212..a3d0582df 100644 --- a/tests/approvals/out/unoptimized/arc4-hybrid/Arc4HybridAlgo.approval.teal +++ b/tests/approvals/out/unoptimized/arc4-hybrid/Arc4HybridAlgo.approval.teal @@ -4,6 +4,8 @@ // tests/approvals/arc4-hybrid.algo.ts::Arc4HybridAlgo.approvalProgram() -> uint64: main: intcblock 0 1 + +main_block@0: // tests/approvals/arc4-hybrid.algo.ts:5 // log('before') pushbytes "before" @@ -22,6 +24,8 @@ main: // tests/approvals/arc4-hybrid.algo.ts::Arc4HybridAlgo.someMethod() -> void: someMethod: + +someMethod_block@0: // tests/approvals/arc4-hybrid.algo.ts:17 // log('some method') pushbytes "some method" @@ -32,6 +36,8 @@ someMethod: // @algorandfoundation/algorand-typescript/arc4/index.d.ts::Contract.approvalProgram() -> uint64: approvalProgram: +approvalProgram_block@0: + approvalProgram_block@1: // tests/approvals/arc4-hybrid.algo.ts:3 // class Arc4HybridAlgo extends Contract { @@ -102,4 +108,6 @@ approvalProgram___algots__.defaultCreate@7: // tests/approvals/arc4-hybrid.algo.ts::Arc4HybridAlgo.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/arc4-hybrid/Arc4HybridAlgo.arc32.json b/tests/approvals/out/unoptimized/arc4-hybrid/Arc4HybridAlgo.arc32.json index 3f023ae2b..795ddb114 100644 --- a/tests/approvals/out/unoptimized/arc4-hybrid/Arc4HybridAlgo.arc32.json +++ b/tests/approvals/out/unoptimized/arc4-hybrid/Arc4HybridAlgo.arc32.json @@ -7,8 +7,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czo6QXJjNEh5YnJpZEFsZ28uYXBwcm92YWxQcm9ncmFtKCkgLT4gdWludDY0OgptYWluOgogICAgaW50Y2Jsb2NrIDAgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6NQogICAgLy8gbG9nKCdiZWZvcmUnKQogICAgcHVzaGJ5dGVzICJiZWZvcmUiCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWh5YnJpZC5hbGdvLnRzOjYKICAgIC8vIGNvbnN0IHJlc3VsdCA9IHN1cGVyLmFwcHJvdmFsUHJvZ3JhbSgpCiAgICBjYWxsc3ViIGFwcHJvdmFsUHJvZ3JhbQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6NwogICAgLy8gbG9nKCdhZnRlcicpCiAgICBwdXNoYnl0ZXMgImFmdGVyIgogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czo4CiAgICAvLyByZXR1cm4gcmVzdWx0CiAgICByZXR1cm4KCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czo6QXJjNEh5YnJpZEFsZ28uc29tZU1ldGhvZCgpIC0+IHZvaWQ6CnNvbWVNZXRob2Q6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czoxNwogICAgLy8gbG9nKCdzb21lIG1ldGhvZCcpCiAgICBwdXNoYnl0ZXMgInNvbWUgbWV0aG9kIgogICAgbG9nCiAgICByZXRzdWIKCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6CmFwcHJvdmFsUHJvZ3JhbToKCmFwcHJvdmFsUHJvZ3JhbV9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6MwogICAgLy8gY2xhc3MgQXJjNEh5YnJpZEFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBhcHByb3ZhbFByb2dyYW1fYmFyZV9yb3V0aW5nQDYKCmFwcHJvdmFsUHJvZ3JhbV9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6MwogICAgLy8gY2xhc3MgQXJjNEh5YnJpZEFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhjMjU4NDY5ZSAvLyBtZXRob2QgInNvbWVNZXRob2QoKXZvaWQiCiAgICBzd2FwCiAgICBtYXRjaCBhcHByb3ZhbFByb2dyYW1fc29tZU1ldGhvZF9yb3V0ZUAzCgphcHByb3ZhbFByb2dyYW1fc3dpdGNoX2Nhc2VfZGVmYXVsdEA0OgoKYXBwcm92YWxQcm9ncmFtX3N3aXRjaF9jYXNlX25leHRANToKCmFwcHJvdmFsUHJvZ3JhbV9hZnRlcl9pZl9lbHNlQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6MwogICAgLy8gY2xhc3MgQXJjNEh5YnJpZEFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKYXBwcm92YWxQcm9ncmFtX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6OkFyYzRIeWJyaWRBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0c3ViCgphcHByb3ZhbFByb2dyYW1fc29tZU1ldGhvZF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6MTYKICAgIC8vIHNvbWVNZXRob2QoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHNvbWVNZXRob2QKICAgIGludGNfMSAvLyAxCiAgICBiIGFwcHJvdmFsUHJvZ3JhbV9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LWh5YnJpZC5hbGdvLnRzOjpBcmM0SHlicmlkQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKYXBwcm92YWxQcm9ncmFtX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6MwogICAgLy8gY2xhc3MgQXJjNEh5YnJpZEFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggYXBwcm92YWxQcm9ncmFtX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgphcHByb3ZhbFByb2dyYW1fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKYXBwcm92YWxQcm9ncmFtX3N3aXRjaF9jYXNlX25leHRAOToKICAgIGIgYXBwcm92YWxQcm9ncmFtX2FmdGVyX2lmX2Vsc2VAMTAKCmFwcHJvdmFsUHJvZ3JhbV9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWh5YnJpZC5hbGdvLnRzOjMKICAgIC8vIGNsYXNzIEFyYzRIeWJyaWRBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIGFwcHJvdmFsUHJvZ3JhbV9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LWh5YnJpZC5hbGdvLnRzOjpBcmM0SHlicmlkQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWh5YnJpZC5hbGdvLnRzOjpBcmM0SHlicmlkQWxnby5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czo6QXJjNEh5YnJpZEFsZ28uY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czoxMgogICAgLy8gbG9nKCdjbGVhcmluZyBzdGF0ZScpCiAgICBwdXNoYnl0ZXMgImNsZWFyaW5nIHN0YXRlIgogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czoxMwogICAgLy8gcmV0dXJuIHRydWUKICAgIHB1c2hpbnQgMSAvLyAxCiAgICByZXR1cm4K" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czo6QXJjNEh5YnJpZEFsZ28uYXBwcm92YWxQcm9ncmFtKCkgLT4gdWludDY0OgptYWluOgogICAgaW50Y2Jsb2NrIDAgMQoKbWFpbl9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6NQogICAgLy8gbG9nKCdiZWZvcmUnKQogICAgcHVzaGJ5dGVzICJiZWZvcmUiCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWh5YnJpZC5hbGdvLnRzOjYKICAgIC8vIGNvbnN0IHJlc3VsdCA9IHN1cGVyLmFwcHJvdmFsUHJvZ3JhbSgpCiAgICBjYWxsc3ViIGFwcHJvdmFsUHJvZ3JhbQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6NwogICAgLy8gbG9nKCdhZnRlcicpCiAgICBwdXNoYnl0ZXMgImFmdGVyIgogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czo4CiAgICAvLyByZXR1cm4gcmVzdWx0CiAgICByZXR1cm4KCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czo6QXJjNEh5YnJpZEFsZ28uc29tZU1ldGhvZCgpIC0+IHZvaWQ6CnNvbWVNZXRob2Q6Cgpzb21lTWV0aG9kX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czoxNwogICAgLy8gbG9nKCdzb21lIG1ldGhvZCcpCiAgICBwdXNoYnl0ZXMgInNvbWUgbWV0aG9kIgogICAgbG9nCiAgICByZXRzdWIKCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6CmFwcHJvdmFsUHJvZ3JhbToKCmFwcHJvdmFsUHJvZ3JhbV9ibG9ja0AwOgoKYXBwcm92YWxQcm9ncmFtX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czozCiAgICAvLyBjbGFzcyBBcmM0SHlicmlkQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IGFwcHJvdmFsUHJvZ3JhbV9iYXJlX3JvdXRpbmdANgoKYXBwcm92YWxQcm9ncmFtX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czozCiAgICAvLyBjbGFzcyBBcmM0SHlicmlkQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweGMyNTg0NjllIC8vIG1ldGhvZCAic29tZU1ldGhvZCgpdm9pZCIKICAgIHN3YXAKICAgIG1hdGNoIGFwcHJvdmFsUHJvZ3JhbV9zb21lTWV0aG9kX3JvdXRlQDMKCmFwcHJvdmFsUHJvZ3JhbV9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgphcHByb3ZhbFByb2dyYW1fc3dpdGNoX2Nhc2VfbmV4dEA1OgoKYXBwcm92YWxQcm9ncmFtX2FmdGVyX2lmX2Vsc2VAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czozCiAgICAvLyBjbGFzcyBBcmM0SHlicmlkQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgphcHByb3ZhbFByb2dyYW1fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czo6QXJjNEh5YnJpZEFsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTE6CiAgICByZXRzdWIKCmFwcHJvdmFsUHJvZ3JhbV9zb21lTWV0aG9kX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czoxNgogICAgLy8gc29tZU1ldGhvZCgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgc29tZU1ldGhvZAogICAgaW50Y18xIC8vIDEKICAgIGIgYXBwcm92YWxQcm9ncmFtX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6OkFyYzRIeWJyaWRBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgphcHByb3ZhbFByb2dyYW1fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czozCiAgICAvLyBjbGFzcyBBcmM0SHlicmlkQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBhcHByb3ZhbFByb2dyYW1fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDcKCmFwcHJvdmFsUHJvZ3JhbV9zd2l0Y2hfY2FzZV9kZWZhdWx0QDg6CgphcHByb3ZhbFByb2dyYW1fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBhcHByb3ZhbFByb2dyYW1fYWZ0ZXJfaWZfZWxzZUAxMAoKYXBwcm92YWxQcm9ncmFtX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6MwogICAgLy8gY2xhc3MgQXJjNEh5YnJpZEFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgYXBwcm92YWxQcm9ncmFtX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6OkFyYzRIeWJyaWRBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6OkFyYzRIeWJyaWRBbGdvLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czo6QXJjNEh5YnJpZEFsZ28uY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czoxMgogICAgLy8gbG9nKCdjbGVhcmluZyBzdGF0ZScpCiAgICBwdXNoYnl0ZXMgImNsZWFyaW5nIHN0YXRlIgogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czoxMwogICAgLy8gcmV0dXJuIHRydWUKICAgIHB1c2hpbnQgMSAvLyAxCiAgICByZXR1cm4K" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/arc4-hybrid/Arc4HybridAlgo.arc56.json b/tests/approvals/out/unoptimized/arc4-hybrid/Arc4HybridAlgo.arc56.json index 9415e9db3..992501f4b 100644 --- a/tests/approvals/out/unoptimized/arc4-hybrid/Arc4HybridAlgo.arc56.json +++ b/tests/approvals/out/unoptimized/arc4-hybrid/Arc4HybridAlgo.arc56.json @@ -82,8 +82,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czo6QXJjNEh5YnJpZEFsZ28uYXBwcm92YWxQcm9ncmFtKCkgLT4gdWludDY0OgptYWluOgogICAgaW50Y2Jsb2NrIDAgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6NQogICAgLy8gbG9nKCdiZWZvcmUnKQogICAgcHVzaGJ5dGVzICJiZWZvcmUiCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWh5YnJpZC5hbGdvLnRzOjYKICAgIC8vIGNvbnN0IHJlc3VsdCA9IHN1cGVyLmFwcHJvdmFsUHJvZ3JhbSgpCiAgICBjYWxsc3ViIGFwcHJvdmFsUHJvZ3JhbQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6NwogICAgLy8gbG9nKCdhZnRlcicpCiAgICBwdXNoYnl0ZXMgImFmdGVyIgogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czo4CiAgICAvLyByZXR1cm4gcmVzdWx0CiAgICByZXR1cm4KCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czo6QXJjNEh5YnJpZEFsZ28uc29tZU1ldGhvZCgpIC0+IHZvaWQ6CnNvbWVNZXRob2Q6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czoxNwogICAgLy8gbG9nKCdzb21lIG1ldGhvZCcpCiAgICBwdXNoYnl0ZXMgInNvbWUgbWV0aG9kIgogICAgbG9nCiAgICByZXRzdWIKCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6CmFwcHJvdmFsUHJvZ3JhbToKCmFwcHJvdmFsUHJvZ3JhbV9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6MwogICAgLy8gY2xhc3MgQXJjNEh5YnJpZEFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBhcHByb3ZhbFByb2dyYW1fYmFyZV9yb3V0aW5nQDYKCmFwcHJvdmFsUHJvZ3JhbV9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6MwogICAgLy8gY2xhc3MgQXJjNEh5YnJpZEFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhjMjU4NDY5ZSAvLyBtZXRob2QgInNvbWVNZXRob2QoKXZvaWQiCiAgICBzd2FwCiAgICBtYXRjaCBhcHByb3ZhbFByb2dyYW1fc29tZU1ldGhvZF9yb3V0ZUAzCgphcHByb3ZhbFByb2dyYW1fc3dpdGNoX2Nhc2VfZGVmYXVsdEA0OgoKYXBwcm92YWxQcm9ncmFtX3N3aXRjaF9jYXNlX25leHRANToKCmFwcHJvdmFsUHJvZ3JhbV9hZnRlcl9pZl9lbHNlQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6MwogICAgLy8gY2xhc3MgQXJjNEh5YnJpZEFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKYXBwcm92YWxQcm9ncmFtX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6OkFyYzRIeWJyaWRBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0c3ViCgphcHByb3ZhbFByb2dyYW1fc29tZU1ldGhvZF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6MTYKICAgIC8vIHNvbWVNZXRob2QoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHNvbWVNZXRob2QKICAgIGludGNfMSAvLyAxCiAgICBiIGFwcHJvdmFsUHJvZ3JhbV9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LWh5YnJpZC5hbGdvLnRzOjpBcmM0SHlicmlkQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKYXBwcm92YWxQcm9ncmFtX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6MwogICAgLy8gY2xhc3MgQXJjNEh5YnJpZEFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggYXBwcm92YWxQcm9ncmFtX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgphcHByb3ZhbFByb2dyYW1fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKYXBwcm92YWxQcm9ncmFtX3N3aXRjaF9jYXNlX25leHRAOToKICAgIGIgYXBwcm92YWxQcm9ncmFtX2FmdGVyX2lmX2Vsc2VAMTAKCmFwcHJvdmFsUHJvZ3JhbV9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWh5YnJpZC5hbGdvLnRzOjMKICAgIC8vIGNsYXNzIEFyYzRIeWJyaWRBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIGFwcHJvdmFsUHJvZ3JhbV9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LWh5YnJpZC5hbGdvLnRzOjpBcmM0SHlicmlkQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWh5YnJpZC5hbGdvLnRzOjpBcmM0SHlicmlkQWxnby5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czo6QXJjNEh5YnJpZEFsZ28uY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czoxMgogICAgLy8gbG9nKCdjbGVhcmluZyBzdGF0ZScpCiAgICBwdXNoYnl0ZXMgImNsZWFyaW5nIHN0YXRlIgogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czoxMwogICAgLy8gcmV0dXJuIHRydWUKICAgIHB1c2hpbnQgMSAvLyAxCiAgICByZXR1cm4K" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czo6QXJjNEh5YnJpZEFsZ28uYXBwcm92YWxQcm9ncmFtKCkgLT4gdWludDY0OgptYWluOgogICAgaW50Y2Jsb2NrIDAgMQoKbWFpbl9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6NQogICAgLy8gbG9nKCdiZWZvcmUnKQogICAgcHVzaGJ5dGVzICJiZWZvcmUiCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LWh5YnJpZC5hbGdvLnRzOjYKICAgIC8vIGNvbnN0IHJlc3VsdCA9IHN1cGVyLmFwcHJvdmFsUHJvZ3JhbSgpCiAgICBjYWxsc3ViIGFwcHJvdmFsUHJvZ3JhbQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6NwogICAgLy8gbG9nKCdhZnRlcicpCiAgICBwdXNoYnl0ZXMgImFmdGVyIgogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czo4CiAgICAvLyByZXR1cm4gcmVzdWx0CiAgICByZXR1cm4KCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czo6QXJjNEh5YnJpZEFsZ28uc29tZU1ldGhvZCgpIC0+IHZvaWQ6CnNvbWVNZXRob2Q6Cgpzb21lTWV0aG9kX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czoxNwogICAgLy8gbG9nKCdzb21lIG1ldGhvZCcpCiAgICBwdXNoYnl0ZXMgInNvbWUgbWV0aG9kIgogICAgbG9nCiAgICByZXRzdWIKCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6CmFwcHJvdmFsUHJvZ3JhbToKCmFwcHJvdmFsUHJvZ3JhbV9ibG9ja0AwOgoKYXBwcm92YWxQcm9ncmFtX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czozCiAgICAvLyBjbGFzcyBBcmM0SHlicmlkQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IGFwcHJvdmFsUHJvZ3JhbV9iYXJlX3JvdXRpbmdANgoKYXBwcm92YWxQcm9ncmFtX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czozCiAgICAvLyBjbGFzcyBBcmM0SHlicmlkQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweGMyNTg0NjllIC8vIG1ldGhvZCAic29tZU1ldGhvZCgpdm9pZCIKICAgIHN3YXAKICAgIG1hdGNoIGFwcHJvdmFsUHJvZ3JhbV9zb21lTWV0aG9kX3JvdXRlQDMKCmFwcHJvdmFsUHJvZ3JhbV9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgphcHByb3ZhbFByb2dyYW1fc3dpdGNoX2Nhc2VfbmV4dEA1OgoKYXBwcm92YWxQcm9ncmFtX2FmdGVyX2lmX2Vsc2VAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czozCiAgICAvLyBjbGFzcyBBcmM0SHlicmlkQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgphcHByb3ZhbFByb2dyYW1fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czo6QXJjNEh5YnJpZEFsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTE6CiAgICByZXRzdWIKCmFwcHJvdmFsUHJvZ3JhbV9zb21lTWV0aG9kX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czoxNgogICAgLy8gc29tZU1ldGhvZCgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgc29tZU1ldGhvZAogICAgaW50Y18xIC8vIDEKICAgIGIgYXBwcm92YWxQcm9ncmFtX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6OkFyYzRIeWJyaWRBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgphcHByb3ZhbFByb2dyYW1fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czozCiAgICAvLyBjbGFzcyBBcmM0SHlicmlkQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBhcHByb3ZhbFByb2dyYW1fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDcKCmFwcHJvdmFsUHJvZ3JhbV9zd2l0Y2hfY2FzZV9kZWZhdWx0QDg6CgphcHByb3ZhbFByb2dyYW1fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBhcHByb3ZhbFByb2dyYW1fYWZ0ZXJfaWZfZWxzZUAxMAoKYXBwcm92YWxQcm9ncmFtX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6MwogICAgLy8gY2xhc3MgQXJjNEh5YnJpZEFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgYXBwcm92YWxQcm9ncmFtX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6OkFyYzRIeWJyaWRBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtaHlicmlkLmFsZ28udHM6OkFyYzRIeWJyaWRBbGdvLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czo6QXJjNEh5YnJpZEFsZ28uY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czoxMgogICAgLy8gbG9nKCdjbGVhcmluZyBzdGF0ZScpCiAgICBwdXNoYnl0ZXMgImNsZWFyaW5nIHN0YXRlIgogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1oeWJyaWQuYWxnby50czoxMwogICAgLy8gcmV0dXJuIHRydWUKICAgIHB1c2hpbnQgMSAvLyAxCiAgICByZXR1cm4K" }, "byteCode": { "approval": "CiACAAGABmJlZm9yZbCIABiABWFmdGVysEOAC3NvbWUgbWV0aG9ksIkxGyITQQAhNhoAgATCWEaeTI4BAAIiiTEZIhJEMRgiE0SI/80jQv/uMRkiTI4BAANC/+IxGCISRIgABCNC/9eJ", @@ -94,7 +94,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/arc4-hybrid/Arc4HybridAlgo.clear.teal b/tests/approvals/out/unoptimized/arc4-hybrid/Arc4HybridAlgo.clear.teal index 1d7fb1d18..b3ea66130 100644 --- a/tests/approvals/out/unoptimized/arc4-hybrid/Arc4HybridAlgo.clear.teal +++ b/tests/approvals/out/unoptimized/arc4-hybrid/Arc4HybridAlgo.clear.teal @@ -3,6 +3,8 @@ // tests/approvals/arc4-hybrid.algo.ts::Arc4HybridAlgo.clearStateProgram() -> uint64: main: + +main_block@0: // tests/approvals/arc4-hybrid.algo.ts:12 // log('clearing state') pushbytes "clearing state" diff --git a/tests/approvals/out/unoptimized/arc4-method-selector/ContractOne.approval.teal b/tests/approvals/out/unoptimized/arc4-method-selector/ContractOne.approval.teal index ba4106257..8cb0cd596 100644 --- a/tests/approvals/out/unoptimized/arc4-method-selector/ContractOne.approval.teal +++ b/tests/approvals/out/unoptimized/arc4-method-selector/ContractOne.approval.teal @@ -6,6 +6,8 @@ main: intcblock 0 1 bytecblock 0x151f7c75 +main_block@0: + main_block@1: // tests/approvals/arc4-method-selector.algo.ts:4 // class ContractOne extends Contract { @@ -105,6 +107,8 @@ main___algots__.defaultCreate@8: // tests/approvals/arc4-method-selector.algo.ts::ContractOne.test() -> uint64: test: + +test_block@0: // tests/approvals/arc4-method-selector.algo.ts:6 // return methodSelector(ContractTwo.prototype.someMethod) === methodSelector('renamedSomeMethod()void') pushbytes 0x438c64f3 // method "renamedSomeMethod()void" @@ -115,6 +119,8 @@ test: // tests/approvals/arc4-method-selector.algo.ts::ContractOne.someMethod() -> uint64: someMethod: + +someMethod_block@0: // tests/approvals/arc4-method-selector.algo.ts:22 // const someConst = Uint64(123) pushint 123 // 123 @@ -125,4 +131,6 @@ someMethod: // tests/approvals/arc4-method-selector.algo.ts::ContractOne.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/arc4-method-selector/ContractOne.arc32.json b/tests/approvals/out/unoptimized/arc4-method-selector/ContractOne.arc32.json index a76fa0b30..3594fe4ef 100644 --- a/tests/approvals/out/unoptimized/arc4-method-selector/ContractOne.arc32.json +++ b/tests/approvals/out/unoptimized/arc4-method-selector/ContractOne.arc32.json @@ -12,8 +12,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIENvbnRyYWN0T25lIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANwoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6NAogICAgLy8gY2xhc3MgQ29udHJhY3RPbmUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhmNTllM2NjNCAvLyBtZXRob2QgInRlc3QoKWJvb2wiCiAgICBwdXNoYnl0ZXMgMHhjMmU5NTk2ZSAvLyBtZXRob2QgInNvbWVNZXRob2QoKXVpbnQ2NCIKICAgIHVuY292ZXIgMgogICAgbWF0Y2ggbWFpbl90ZXN0X3JvdXRlQDMgbWFpbl9zb21lTWV0aG9kX3JvdXRlQDQKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDY6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo0CiAgICAvLyBjbGFzcyBDb250cmFjdE9uZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6OkNvbnRyYWN0T25lLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyOgogICAgcmV0dXJuCgptYWluX3NvbWVNZXRob2Rfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjgKICAgIC8vIHNvbWVNZXRob2QoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHNvbWVNZXRob2QKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo6Q29udHJhY3RPbmUuX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCm1haW5fdGVzdF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6NQogICAgLy8gdGVzdCgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdGVzdAogICAgcHVzaGJ5dGVzIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjpDb250cmFjdE9uZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKbWFpbl9iYXJlX3JvdXRpbmdANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIENvbnRyYWN0T25lIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTEKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo0CiAgICAvLyBjbGFzcyBDb250cmFjdE9uZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6OkNvbnRyYWN0T25lLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6OkNvbnRyYWN0T25lLnRlc3QoKSAtPiB1aW50NjQ6CnRlc3Q6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo2CiAgICAvLyByZXR1cm4gbWV0aG9kU2VsZWN0b3IoQ29udHJhY3RUd28ucHJvdG90eXBlLnNvbWVNZXRob2QpID09PSBtZXRob2RTZWxlY3RvcigncmVuYW1lZFNvbWVNZXRob2QoKXZvaWQnKQogICAgcHVzaGJ5dGVzIDB4NDM4YzY0ZjMgLy8gbWV0aG9kICJyZW5hbWVkU29tZU1ldGhvZCgpdm9pZCIKICAgIGR1cAogICAgPT0KICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjpDb250cmFjdE9uZS5zb21lTWV0aG9kKCkgLT4gdWludDY0Ogpzb21lTWV0aG9kOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6MjIKICAgIC8vIGNvbnN0IHNvbWVDb25zdCA9IFVpbnQ2NCgxMjMpCiAgICBwdXNoaW50IDEyMyAvLyAxMjMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjkKICAgIC8vIHJldHVybiBzb21lQ29uc3QKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjpDb250cmFjdE9uZS5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMDoKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIENvbnRyYWN0T25lIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANwoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6NAogICAgLy8gY2xhc3MgQ29udHJhY3RPbmUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhmNTllM2NjNCAvLyBtZXRob2QgInRlc3QoKWJvb2wiCiAgICBwdXNoYnl0ZXMgMHhjMmU5NTk2ZSAvLyBtZXRob2QgInNvbWVNZXRob2QoKXVpbnQ2NCIKICAgIHVuY292ZXIgMgogICAgbWF0Y2ggbWFpbl90ZXN0X3JvdXRlQDMgbWFpbl9zb21lTWV0aG9kX3JvdXRlQDQKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDY6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo0CiAgICAvLyBjbGFzcyBDb250cmFjdE9uZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6OkNvbnRyYWN0T25lLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyOgogICAgcmV0dXJuCgptYWluX3NvbWVNZXRob2Rfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjgKICAgIC8vIHNvbWVNZXRob2QoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHNvbWVNZXRob2QKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo6Q29udHJhY3RPbmUuX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCm1haW5fdGVzdF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6NQogICAgLy8gdGVzdCgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdGVzdAogICAgcHVzaGJ5dGVzIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjpDb250cmFjdE9uZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKbWFpbl9iYXJlX3JvdXRpbmdANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIENvbnRyYWN0T25lIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTEKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo0CiAgICAvLyBjbGFzcyBDb250cmFjdE9uZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6OkNvbnRyYWN0T25lLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6OkNvbnRyYWN0T25lLnRlc3QoKSAtPiB1aW50NjQ6CnRlc3Q6Cgp0ZXN0X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo2CiAgICAvLyByZXR1cm4gbWV0aG9kU2VsZWN0b3IoQ29udHJhY3RUd28ucHJvdG90eXBlLnNvbWVNZXRob2QpID09PSBtZXRob2RTZWxlY3RvcigncmVuYW1lZFNvbWVNZXRob2QoKXZvaWQnKQogICAgcHVzaGJ5dGVzIDB4NDM4YzY0ZjMgLy8gbWV0aG9kICJyZW5hbWVkU29tZU1ldGhvZCgpdm9pZCIKICAgIGR1cAogICAgPT0KICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjpDb250cmFjdE9uZS5zb21lTWV0aG9kKCkgLT4gdWludDY0Ogpzb21lTWV0aG9kOgoKc29tZU1ldGhvZF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6MjIKICAgIC8vIGNvbnN0IHNvbWVDb25zdCA9IFVpbnQ2NCgxMjMpCiAgICBwdXNoaW50IDEyMyAvLyAxMjMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjkKICAgIC8vIHJldHVybiBzb21lQ29uc3QKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjpDb250cmFjdE9uZS5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/arc4-method-selector/ContractOne.arc56.json b/tests/approvals/out/unoptimized/arc4-method-selector/ContractOne.arc56.json index 7bdded28d..4be65b880 100644 --- a/tests/approvals/out/unoptimized/arc4-method-selector/ContractOne.arc56.json +++ b/tests/approvals/out/unoptimized/arc4-method-selector/ContractOne.arc56.json @@ -100,8 +100,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIENvbnRyYWN0T25lIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANwoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6NAogICAgLy8gY2xhc3MgQ29udHJhY3RPbmUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhmNTllM2NjNCAvLyBtZXRob2QgInRlc3QoKWJvb2wiCiAgICBwdXNoYnl0ZXMgMHhjMmU5NTk2ZSAvLyBtZXRob2QgInNvbWVNZXRob2QoKXVpbnQ2NCIKICAgIHVuY292ZXIgMgogICAgbWF0Y2ggbWFpbl90ZXN0X3JvdXRlQDMgbWFpbl9zb21lTWV0aG9kX3JvdXRlQDQKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDY6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo0CiAgICAvLyBjbGFzcyBDb250cmFjdE9uZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6OkNvbnRyYWN0T25lLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyOgogICAgcmV0dXJuCgptYWluX3NvbWVNZXRob2Rfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjgKICAgIC8vIHNvbWVNZXRob2QoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHNvbWVNZXRob2QKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo6Q29udHJhY3RPbmUuX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCm1haW5fdGVzdF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6NQogICAgLy8gdGVzdCgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdGVzdAogICAgcHVzaGJ5dGVzIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjpDb250cmFjdE9uZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKbWFpbl9iYXJlX3JvdXRpbmdANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIENvbnRyYWN0T25lIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTEKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo0CiAgICAvLyBjbGFzcyBDb250cmFjdE9uZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6OkNvbnRyYWN0T25lLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6OkNvbnRyYWN0T25lLnRlc3QoKSAtPiB1aW50NjQ6CnRlc3Q6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo2CiAgICAvLyByZXR1cm4gbWV0aG9kU2VsZWN0b3IoQ29udHJhY3RUd28ucHJvdG90eXBlLnNvbWVNZXRob2QpID09PSBtZXRob2RTZWxlY3RvcigncmVuYW1lZFNvbWVNZXRob2QoKXZvaWQnKQogICAgcHVzaGJ5dGVzIDB4NDM4YzY0ZjMgLy8gbWV0aG9kICJyZW5hbWVkU29tZU1ldGhvZCgpdm9pZCIKICAgIGR1cAogICAgPT0KICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjpDb250cmFjdE9uZS5zb21lTWV0aG9kKCkgLT4gdWludDY0Ogpzb21lTWV0aG9kOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6MjIKICAgIC8vIGNvbnN0IHNvbWVDb25zdCA9IFVpbnQ2NCgxMjMpCiAgICBwdXNoaW50IDEyMyAvLyAxMjMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjkKICAgIC8vIHJldHVybiBzb21lQ29uc3QKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjpDb250cmFjdE9uZS5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMDoKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIENvbnRyYWN0T25lIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANwoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6NAogICAgLy8gY2xhc3MgQ29udHJhY3RPbmUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhmNTllM2NjNCAvLyBtZXRob2QgInRlc3QoKWJvb2wiCiAgICBwdXNoYnl0ZXMgMHhjMmU5NTk2ZSAvLyBtZXRob2QgInNvbWVNZXRob2QoKXVpbnQ2NCIKICAgIHVuY292ZXIgMgogICAgbWF0Y2ggbWFpbl90ZXN0X3JvdXRlQDMgbWFpbl9zb21lTWV0aG9kX3JvdXRlQDQKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDY6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo0CiAgICAvLyBjbGFzcyBDb250cmFjdE9uZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6OkNvbnRyYWN0T25lLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyOgogICAgcmV0dXJuCgptYWluX3NvbWVNZXRob2Rfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjgKICAgIC8vIHNvbWVNZXRob2QoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHNvbWVNZXRob2QKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo6Q29udHJhY3RPbmUuX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCm1haW5fdGVzdF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6NQogICAgLy8gdGVzdCgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdGVzdAogICAgcHVzaGJ5dGVzIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjpDb250cmFjdE9uZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKbWFpbl9iYXJlX3JvdXRpbmdANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIENvbnRyYWN0T25lIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTEKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo0CiAgICAvLyBjbGFzcyBDb250cmFjdE9uZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6OkNvbnRyYWN0T25lLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6OkNvbnRyYWN0T25lLnRlc3QoKSAtPiB1aW50NjQ6CnRlc3Q6Cgp0ZXN0X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo2CiAgICAvLyByZXR1cm4gbWV0aG9kU2VsZWN0b3IoQ29udHJhY3RUd28ucHJvdG90eXBlLnNvbWVNZXRob2QpID09PSBtZXRob2RTZWxlY3RvcigncmVuYW1lZFNvbWVNZXRob2QoKXZvaWQnKQogICAgcHVzaGJ5dGVzIDB4NDM4YzY0ZjMgLy8gbWV0aG9kICJyZW5hbWVkU29tZU1ldGhvZCgpdm9pZCIKICAgIGR1cAogICAgPT0KICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjpDb250cmFjdE9uZS5zb21lTWV0aG9kKCkgLT4gdWludDY0Ogpzb21lTWV0aG9kOgoKc29tZU1ldGhvZF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6MjIKICAgIC8vIGNvbnN0IHNvbWVDb25zdCA9IFVpbnQ2NCgxMjMpCiAgICBwdXNoaW50IDEyMyAvLyAxMjMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjkKICAgIC8vIHJldHVybiBzb21lQ29uc3QKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjpDb250cmFjdE9uZS5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAEmAQQVH3x1MRsiE0EASzYaAIAE9Z48xIAEwulZbk8CjgIAGAACIkMxGSISRDEYIhNEiABFFihMULAjQv/pMRkiEkQxGCITRIgAJoABACJPAlQoTFCwI0L/zTEZIkyOAQADQv/BMRgiEkSIABAjQv+2gARDjGTzSRKJgXuJiQ==", @@ -112,7 +112,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/arc4-method-selector/ContractOne.clear.teal b/tests/approvals/out/unoptimized/arc4-method-selector/ContractOne.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/arc4-method-selector/ContractOne.clear.teal +++ b/tests/approvals/out/unoptimized/arc4-method-selector/ContractOne.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/arc4-method-selector/ContractTwo.approval.teal b/tests/approvals/out/unoptimized/arc4-method-selector/ContractTwo.approval.teal index f1943975f..3bc457ac8 100644 --- a/tests/approvals/out/unoptimized/arc4-method-selector/ContractTwo.approval.teal +++ b/tests/approvals/out/unoptimized/arc4-method-selector/ContractTwo.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 +main_block@0: + main_block@1: // tests/approvals/arc4-method-selector.algo.ts:13 // class ContractTwo extends Contract { @@ -99,11 +101,15 @@ main___algots__.defaultCreate@8: // tests/approvals/arc4-method-selector.algo.ts::ContractTwo.someMethod() -> void: someMethod: + +someMethod_block@0: retsub // tests/approvals/arc4-method-selector.algo.ts::ContractTwo.test() -> uint64: test: + +test_block@0: // tests/approvals/arc4-method-selector.algo.ts:18 // return methodSelector(ContractOne.prototype.someMethod) === methodSelector('someMethod()uint64') pushbytes 0xc2e9596e // method "someMethod()uint64" @@ -114,4 +120,6 @@ test: // tests/approvals/arc4-method-selector.algo.ts::ContractTwo.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/arc4-method-selector/ContractTwo.arc32.json b/tests/approvals/out/unoptimized/arc4-method-selector/ContractTwo.arc32.json index 6459503ab..aec15255e 100644 --- a/tests/approvals/out/unoptimized/arc4-method-selector/ContractTwo.arc32.json +++ b/tests/approvals/out/unoptimized/arc4-method-selector/ContractTwo.arc32.json @@ -12,8 +12,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czoxMwogICAgLy8gY2xhc3MgQ29udHJhY3RUd28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A3CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czoxMwogICAgLy8gY2xhc3MgQ29udHJhY3RUd28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg0MzhjNjRmMyAvLyBtZXRob2QgInJlbmFtZWRTb21lTWV0aG9kKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4ZjU5ZTNjYzQgLy8gbWV0aG9kICJ0ZXN0KClib29sIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX3JlbmFtZWRTb21lTWV0aG9kX3JvdXRlQDMgbWFpbl90ZXN0X3JvdXRlQDQKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDY6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czoxMwogICAgLy8gY2xhc3MgQ29udHJhY3RUd28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjpDb250cmFjdFR3by5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMjoKICAgIHJldHVybgoKbWFpbl90ZXN0X3JvdXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czoxNwogICAgLy8gdGVzdCgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdGVzdAogICAgcHVzaGJ5dGVzIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6OkNvbnRyYWN0VHdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX3JlbmFtZWRTb21lTWV0aG9kX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czoxNAogICAgLy8gQGFiaW1ldGhvZCh7IG5hbWU6ICdyZW5hbWVkU29tZU1ldGhvZCcgfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgc29tZU1ldGhvZAogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjpDb250cmFjdFR3by5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKbWFpbl9iYXJlX3JvdXRpbmdANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjEzCiAgICAvLyBjbGFzcyBDb250cmFjdFR3byBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAOToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDExCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6MTMKICAgIC8vIGNsYXNzIENvbnRyYWN0VHdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo6Q29udHJhY3RUd28uX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo6Q29udHJhY3RUd28uc29tZU1ldGhvZCgpIC0+IHZvaWQ6CnNvbWVNZXRob2Q6CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo6Q29udHJhY3RUd28udGVzdCgpIC0+IHVpbnQ2NDoKdGVzdDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjE4CiAgICAvLyByZXR1cm4gbWV0aG9kU2VsZWN0b3IoQ29udHJhY3RPbmUucHJvdG90eXBlLnNvbWVNZXRob2QpID09PSBtZXRob2RTZWxlY3Rvcignc29tZU1ldGhvZCgpdWludDY0JykKICAgIHB1c2hieXRlcyAweGMyZTk1OTZlIC8vIG1ldGhvZCAic29tZU1ldGhvZCgpdWludDY0IgogICAgZHVwCiAgICA9PQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6OkNvbnRyYWN0VHdvLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czoxMwogICAgLy8gY2xhc3MgQ29udHJhY3RUd28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A3CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czoxMwogICAgLy8gY2xhc3MgQ29udHJhY3RUd28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg0MzhjNjRmMyAvLyBtZXRob2QgInJlbmFtZWRTb21lTWV0aG9kKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4ZjU5ZTNjYzQgLy8gbWV0aG9kICJ0ZXN0KClib29sIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX3JlbmFtZWRTb21lTWV0aG9kX3JvdXRlQDMgbWFpbl90ZXN0X3JvdXRlQDQKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDY6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czoxMwogICAgLy8gY2xhc3MgQ29udHJhY3RUd28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjpDb250cmFjdFR3by5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMjoKICAgIHJldHVybgoKbWFpbl90ZXN0X3JvdXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czoxNwogICAgLy8gdGVzdCgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdGVzdAogICAgcHVzaGJ5dGVzIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6OkNvbnRyYWN0VHdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX3JlbmFtZWRTb21lTWV0aG9kX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czoxNAogICAgLy8gQGFiaW1ldGhvZCh7IG5hbWU6ICdyZW5hbWVkU29tZU1ldGhvZCcgfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgc29tZU1ldGhvZAogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjpDb250cmFjdFR3by5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKbWFpbl9iYXJlX3JvdXRpbmdANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjEzCiAgICAvLyBjbGFzcyBDb250cmFjdFR3byBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAOToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDExCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6MTMKICAgIC8vIGNsYXNzIENvbnRyYWN0VHdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo6Q29udHJhY3RUd28uX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo6Q29udHJhY3RUd28uc29tZU1ldGhvZCgpIC0+IHZvaWQ6CnNvbWVNZXRob2Q6Cgpzb21lTWV0aG9kX2Jsb2NrQDA6CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo6Q29udHJhY3RUd28udGVzdCgpIC0+IHVpbnQ2NDoKdGVzdDoKCnRlc3RfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjE4CiAgICAvLyByZXR1cm4gbWV0aG9kU2VsZWN0b3IoQ29udHJhY3RPbmUucHJvdG90eXBlLnNvbWVNZXRob2QpID09PSBtZXRob2RTZWxlY3Rvcignc29tZU1ldGhvZCgpdWludDY0JykKICAgIHB1c2hieXRlcyAweGMyZTk1OTZlIC8vIG1ldGhvZCAic29tZU1ldGhvZCgpdWludDY0IgogICAgZHVwCiAgICA9PQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6OkNvbnRyYWN0VHdvLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/arc4-method-selector/ContractTwo.arc56.json b/tests/approvals/out/unoptimized/arc4-method-selector/ContractTwo.arc56.json index a859ac4cf..8a96ad890 100644 --- a/tests/approvals/out/unoptimized/arc4-method-selector/ContractTwo.arc56.json +++ b/tests/approvals/out/unoptimized/arc4-method-selector/ContractTwo.arc56.json @@ -100,8 +100,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czoxMwogICAgLy8gY2xhc3MgQ29udHJhY3RUd28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A3CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czoxMwogICAgLy8gY2xhc3MgQ29udHJhY3RUd28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg0MzhjNjRmMyAvLyBtZXRob2QgInJlbmFtZWRTb21lTWV0aG9kKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4ZjU5ZTNjYzQgLy8gbWV0aG9kICJ0ZXN0KClib29sIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX3JlbmFtZWRTb21lTWV0aG9kX3JvdXRlQDMgbWFpbl90ZXN0X3JvdXRlQDQKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDY6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czoxMwogICAgLy8gY2xhc3MgQ29udHJhY3RUd28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjpDb250cmFjdFR3by5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMjoKICAgIHJldHVybgoKbWFpbl90ZXN0X3JvdXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czoxNwogICAgLy8gdGVzdCgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdGVzdAogICAgcHVzaGJ5dGVzIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6OkNvbnRyYWN0VHdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX3JlbmFtZWRTb21lTWV0aG9kX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czoxNAogICAgLy8gQGFiaW1ldGhvZCh7IG5hbWU6ICdyZW5hbWVkU29tZU1ldGhvZCcgfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgc29tZU1ldGhvZAogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjpDb250cmFjdFR3by5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKbWFpbl9iYXJlX3JvdXRpbmdANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjEzCiAgICAvLyBjbGFzcyBDb250cmFjdFR3byBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAOToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDExCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6MTMKICAgIC8vIGNsYXNzIENvbnRyYWN0VHdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo6Q29udHJhY3RUd28uX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo6Q29udHJhY3RUd28uc29tZU1ldGhvZCgpIC0+IHZvaWQ6CnNvbWVNZXRob2Q6CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo6Q29udHJhY3RUd28udGVzdCgpIC0+IHVpbnQ2NDoKdGVzdDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjE4CiAgICAvLyByZXR1cm4gbWV0aG9kU2VsZWN0b3IoQ29udHJhY3RPbmUucHJvdG90eXBlLnNvbWVNZXRob2QpID09PSBtZXRob2RTZWxlY3Rvcignc29tZU1ldGhvZCgpdWludDY0JykKICAgIHB1c2hieXRlcyAweGMyZTk1OTZlIC8vIG1ldGhvZCAic29tZU1ldGhvZCgpdWludDY0IgogICAgZHVwCiAgICA9PQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6OkNvbnRyYWN0VHdvLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czoxMwogICAgLy8gY2xhc3MgQ29udHJhY3RUd28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A3CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czoxMwogICAgLy8gY2xhc3MgQ29udHJhY3RUd28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg0MzhjNjRmMyAvLyBtZXRob2QgInJlbmFtZWRTb21lTWV0aG9kKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4ZjU5ZTNjYzQgLy8gbWV0aG9kICJ0ZXN0KClib29sIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX3JlbmFtZWRTb21lTWV0aG9kX3JvdXRlQDMgbWFpbl90ZXN0X3JvdXRlQDQKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDY6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czoxMwogICAgLy8gY2xhc3MgQ29udHJhY3RUd28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjpDb250cmFjdFR3by5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMjoKICAgIHJldHVybgoKbWFpbl90ZXN0X3JvdXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czoxNwogICAgLy8gdGVzdCgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdGVzdAogICAgcHVzaGJ5dGVzIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6OkNvbnRyYWN0VHdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX3JlbmFtZWRTb21lTWV0aG9kX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czoxNAogICAgLy8gQGFiaW1ldGhvZCh7IG5hbWU6ICdyZW5hbWVkU29tZU1ldGhvZCcgfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgc29tZU1ldGhvZAogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjpDb250cmFjdFR3by5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKbWFpbl9iYXJlX3JvdXRpbmdANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjEzCiAgICAvLyBjbGFzcyBDb250cmFjdFR3byBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAOToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDExCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6MTMKICAgIC8vIGNsYXNzIENvbnRyYWN0VHdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo6Q29udHJhY3RUd28uX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo6Q29udHJhY3RUd28uc29tZU1ldGhvZCgpIC0+IHZvaWQ6CnNvbWVNZXRob2Q6Cgpzb21lTWV0aG9kX2Jsb2NrQDA6CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1tZXRob2Qtc2VsZWN0b3IuYWxnby50czo6Q29udHJhY3RUd28udGVzdCgpIC0+IHVpbnQ2NDoKdGVzdDoKCnRlc3RfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LW1ldGhvZC1zZWxlY3Rvci5hbGdvLnRzOjE4CiAgICAvLyByZXR1cm4gbWV0aG9kU2VsZWN0b3IoQ29udHJhY3RPbmUucHJvdG90eXBlLnNvbWVNZXRob2QpID09PSBtZXRob2RTZWxlY3Rvcignc29tZU1ldGhvZCgpdWludDY0JykKICAgIHB1c2hieXRlcyAweGMyZTk1OTZlIC8vIG1ldGhvZCAic29tZU1ldGhvZCgpdWludDY0IgogICAgZHVwCiAgICA9PQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtbWV0aG9kLXNlbGVjdG9yLmFsZ28udHM6OkNvbnRyYWN0VHdvLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAExGyITQQBLNhoAgARDjGTzgAT1njzETwKOAgAjAAIiQzEZIhJEMRgiE0SIAD2AAQAiTwJUgAQVH3x1TFCwI0L/3jEZIhJEMRgiE0SIABsjQv/NMRkiTI4BAANC/8ExGCISRIgADiNC/7aJgATC6VluSRKJiQ==", @@ -112,7 +112,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/arc4-method-selector/ContractTwo.clear.teal b/tests/approvals/out/unoptimized/arc4-method-selector/ContractTwo.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/arc4-method-selector/ContractTwo.clear.teal +++ b/tests/approvals/out/unoptimized/arc4-method-selector/ContractTwo.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/arc4-struct/StructDemo.approval.teal b/tests/approvals/out/unoptimized/arc4-struct/StructDemo.approval.teal index 9904df01d..db8c7bce0 100644 --- a/tests/approvals/out/unoptimized/arc4-struct/StructDemo.approval.teal +++ b/tests/approvals/out/unoptimized/arc4-struct/StructDemo.approval.teal @@ -6,6 +6,8 @@ main: intcblock 0 8 1 bytecblock 0x 0x0000000000000000 0x151f7c75 +main_block@0: + main_block@1: // tests/approvals/arc4-struct.algo.ts:9 // class StructDemo extends Contract { @@ -179,6 +181,8 @@ main___algots__.defaultCreate@11: // tests/approvals/arc4-struct.algo.ts::StructDemo.testVectorCreationAndEquality() -> void: testVectorCreationAndEquality: + +testVectorCreationAndEquality_block@0: // tests/approvals/arc4-struct.algo.ts:11 // const v1 = new Vector({ x: new ARC4Uint64(0), y: new ARC4Uint64(0) }) bytec_0 // 0x @@ -219,6 +223,8 @@ addVectors: // tests/approvals/arc4-struct.algo.ts:18 // public addVectors(v1: Vector, v2: Vector) { proto 2 1 + +addVectors_block@0: // tests/approvals/arc4-struct.algo.ts:20 // x: new ARC4Uint64(v1.x.native + v2.x.native), frame_dig -2 @@ -265,6 +271,8 @@ implicitCastingAndSpreading: // tests/approvals/arc4-struct.algo.ts:25 // public implicitCastingAndSpreading(v1: Vector) { proto 1 0 + +implicitCastingAndSpreading_block@0: // tests/approvals/arc4-struct.algo.ts:26 // const v2 = new Vector(v1) frame_dig -1 @@ -315,6 +323,8 @@ toAndFromBytes: // tests/approvals/arc4-struct.algo.ts:32 // public toAndFromBytes(v1: Vector): Vector { proto 1 1 + +toAndFromBytes_block@0: // tests/approvals/arc4-struct.algo.ts:33 // const v1_bytes = v1.bytes frame_dig -1 @@ -328,6 +338,8 @@ toNative: // tests/approvals/arc4-struct.algo.ts:37 // public toNative(v1: Vector) { proto 1 2 + +toNative_block@0: // tests/approvals/arc4-struct.algo.ts:38 // return v1.native frame_dig -1 @@ -343,4 +355,6 @@ toNative: // tests/approvals/arc4-struct.algo.ts::StructDemo.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/arc4-struct/StructDemo.arc32.json b/tests/approvals/out/unoptimized/arc4-struct/StructDemo.arc32.json index ea2663df9..48ec3112f 100644 --- a/tests/approvals/out/unoptimized/arc4-struct/StructDemo.arc32.json +++ b/tests/approvals/out/unoptimized/arc4-struct/StructDemo.arc32.json @@ -139,8 +139,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA4IDEKICAgIGJ5dGVjYmxvY2sgMHggMHgwMDAwMDAwMDAwMDAwMDAwIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0AxMAoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OQogICAgLy8gY2xhc3MgU3RydWN0RGVtbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDg5Mzg4ZGRkIC8vIG1ldGhvZCAidGVzdFZlY3RvckNyZWF0aW9uQW5kRXF1YWxpdHkoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhlZjMyMmQ2ZCAvLyBtZXRob2QgImFkZFZlY3RvcnMoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkodWludDY0LHVpbnQ2NCkiCiAgICBwdXNoYnl0ZXMgMHhjYjgxZGViOCAvLyBtZXRob2QgImltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZygodWludDY0LHVpbnQ2NCkpdm9pZCIKICAgIHB1c2hieXRlcyAweGY3OWQ2YzQ2IC8vIG1ldGhvZCAidG9BbmRGcm9tQnl0ZXMoKHVpbnQ2NCx1aW50NjQpKSh1aW50NjQsdWludDY0KSIKICAgIHB1c2hieXRlcyAweDkxOTE1NTQ1IC8vIG1ldGhvZCAidG9OYXRpdmUoKHVpbnQ2NCx1aW50NjQpKSh1aW50NjQsdWludDY0KSIKICAgIHVuY292ZXIgNQogICAgbWF0Y2ggbWFpbl90ZXN0VmVjdG9yQ3JlYXRpb25BbmRFcXVhbGl0eV9yb3V0ZUAzIG1haW5fYWRkVmVjdG9yc19yb3V0ZUA0IG1haW5faW1wbGljaXRDYXN0aW5nQW5kU3ByZWFkaW5nX3JvdXRlQDUgbWFpbl90b0FuZEZyb21CeXRlc19yb3V0ZUA2IG1haW5fdG9OYXRpdmVfcm91dGVANwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDg6CgptYWluX3N3aXRjaF9jYXNlX25leHRAOToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxNDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1OgogICAgcmV0dXJuCgptYWluX3RvTmF0aXZlX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czozNwogICAgLy8gcHVibGljIHRvTmF0aXZlKHYxOiBWZWN0b3IpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czozNwogICAgLy8gcHVibGljIHRvTmF0aXZlKHYxOiBWZWN0b3IpIHsKICAgIGNhbGxzdWIgdG9OYXRpdmUKICAgIHN3YXAKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18yIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OlN0cnVjdERlbW8uX19wdXlhX2FyYzRfcm91dGVyX19AMTUKCm1haW5fdG9BbmRGcm9tQnl0ZXNfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjMyCiAgICAvLyBwdWJsaWMgdG9BbmRGcm9tQnl0ZXModjE6IFZlY3Rvcik6IFZlY3RvciB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo5CiAgICAvLyBjbGFzcyBTdHJ1Y3REZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MzIKICAgIC8vIHB1YmxpYyB0b0FuZEZyb21CeXRlcyh2MTogVmVjdG9yKTogVmVjdG9yIHsKICAgIGNhbGxzdWIgdG9BbmRGcm9tQnl0ZXMKICAgIGJ5dGVjXzIgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo6U3RydWN0RGVtby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9pbXBsaWNpdENhc3RpbmdBbmRTcHJlYWRpbmdfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjI1CiAgICAvLyBwdWJsaWMgaW1wbGljaXRDYXN0aW5nQW5kU3ByZWFkaW5nKHYxOiBWZWN0b3IpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyNQogICAgLy8gcHVibGljIGltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZyh2MTogVmVjdG9yKSB7CiAgICBjYWxsc3ViIGltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZwogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX2FkZFZlY3RvcnNfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjE4CiAgICAvLyBwdWJsaWMgYWRkVmVjdG9ycyh2MTogVmVjdG9yLCB2MjogVmVjdG9yKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo5CiAgICAvLyBjbGFzcyBTdHJ1Y3REZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MTgKICAgIC8vIHB1YmxpYyBhZGRWZWN0b3JzKHYxOiBWZWN0b3IsIHYyOiBWZWN0b3IpIHsKICAgIGNhbGxzdWIgYWRkVmVjdG9ycwogICAgYnl0ZWNfMiAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX3Rlc3RWZWN0b3JDcmVhdGlvbkFuZEVxdWFsaXR5X3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoxMAogICAgLy8gcHVibGljIHRlc3RWZWN0b3JDcmVhdGlvbkFuZEVxdWFsaXR5KCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0VmVjdG9yQ3JlYXRpb25BbmRFcXVhbGl0eQogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX2JhcmVfcm91dGluZ0AxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTEKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMjoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMzoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDE0CgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OlN0cnVjdERlbW8udGVzdFZlY3RvckNyZWF0aW9uQW5kRXF1YWxpdHkoKSAtPiB2b2lkOgp0ZXN0VmVjdG9yQ3JlYXRpb25BbmRFcXVhbGl0eToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjExCiAgICAvLyBjb25zdCB2MSA9IG5ldyBWZWN0b3IoeyB4OiBuZXcgQVJDNFVpbnQ2NCgwKSwgeTogbmV3IEFSQzRVaW50NjQoMCkgfSkKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCiAgICBjb25jYXQKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjEyCiAgICAvLyBsb2codjEueCkKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MTMKICAgIC8vIGxvZyh2MS55KQogICAgZHVwCiAgICBpbnRjXzEgLy8gOAogICAgZHVwCiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MTQKICAgIC8vIGNvbnN0IHYyID0gbmV3IFZlY3Rvcih7IHk6IG5ldyBBUkM0VWludDY0KDApLCB4OiBuZXcgQVJDNFVpbnQ2NCgwKSB9KQogICAgYnl0ZWNfMCAvLyAweAogICAgYnl0ZWNfMSAvLyAweDAwMDAwMDAwMDAwMDAwMDAKICAgIGNvbmNhdAogICAgYnl0ZWNfMSAvLyAweDAwMDAwMDAwMDAwMDAwMDAKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MTUKICAgIC8vIGFzc2VydCh2MSA9PT0gdjIpCiAgICA9PQogICAgYXNzZXJ0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo6U3RydWN0RGVtby5hZGRWZWN0b3JzKHYxOiBieXRlcywgdjI6IGJ5dGVzKSAtPiBieXRlczoKYWRkVmVjdG9yczoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjE4CiAgICAvLyBwdWJsaWMgYWRkVmVjdG9ycyh2MTogVmVjdG9yLCB2MjogVmVjdG9yKSB7CiAgICBwcm90byAyIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjIwCiAgICAvLyB4OiBuZXcgQVJDNFVpbnQ2NCh2MS54Lm5hdGl2ZSArIHYyLngubmF0aXZlKSwKICAgIGZyYW1lX2RpZyAtMgogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgICsKICAgIGl0b2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjIxCiAgICAvLyB5OiBuZXcgQVJDNFVpbnQ2NCh2MS55Lm5hdGl2ZSArIHYyLnkubmF0aXZlKSwKICAgIGZyYW1lX2RpZyAtMgogICAgaW50Y18xIC8vIDgKICAgIGR1cAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMSAvLyA4CiAgICBkdXAKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgKwogICAgaXRvYgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MTktMjIKICAgIC8vIHJldHVybiBuZXcgVmVjdG9yKHsKICAgIC8vICAgeDogbmV3IEFSQzRVaW50NjQodjEueC5uYXRpdmUgKyB2Mi54Lm5hdGl2ZSksCiAgICAvLyAgIHk6IG5ldyBBUkM0VWludDY0KHYxLnkubmF0aXZlICsgdjIueS5uYXRpdmUpLAogICAgLy8gfSkKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLmltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZyh2MTogYnl0ZXMpIC0+IHZvaWQ6CmltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjI1CiAgICAvLyBwdWJsaWMgaW1wbGljaXRDYXN0aW5nQW5kU3ByZWFkaW5nKHYxOiBWZWN0b3IpIHsKICAgIHByb3RvIDEgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MjYKICAgIC8vIGNvbnN0IHYyID0gbmV3IFZlY3Rvcih2MSkKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18xIC8vIDgKICAgIGR1cAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyNwogICAgLy8gY29uc3QgdjMgPSBuZXcgVmVjdG9yKHsgLi4udjIgfSkKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIHN3YXAKICAgIGR1cAogICAgaW50Y18xIC8vIDgKICAgIGR1cAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyOAogICAgLy8gYXNzZXJ0KHYxLmJ5dGVzID09PSB2Mi5ieXRlcykKICAgIGZyYW1lX2RpZyAtMQogICAgdW5jb3ZlciAyCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyOQogICAgLy8gYXNzZXJ0KHYzLmJ5dGVzID09PSB2MS5ieXRlcykKICAgIGZyYW1lX2RpZyAtMQogICAgPT0KICAgIGFzc2VydAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OlN0cnVjdERlbW8udG9BbmRGcm9tQnl0ZXModjE6IGJ5dGVzKSAtPiBieXRlczoKdG9BbmRGcm9tQnl0ZXM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czozMgogICAgLy8gcHVibGljIHRvQW5kRnJvbUJ5dGVzKHYxOiBWZWN0b3IpOiBWZWN0b3IgewogICAgcHJvdG8gMSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czozMwogICAgLy8gY29uc3QgdjFfYnl0ZXMgPSB2MS5ieXRlcwogICAgZnJhbWVfZGlnIC0xCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czozNAogICAgLy8gcmV0dXJuIGludGVycHJldEFzQXJjNDxWZWN0b3I+KHYxX2J5dGVzKQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OlN0cnVjdERlbW8udG9OYXRpdmUodjE6IGJ5dGVzKSAtPiBieXRlcywgYnl0ZXM6CnRvTmF0aXZlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MzcKICAgIC8vIHB1YmxpYyB0b05hdGl2ZSh2MTogVmVjdG9yKSB7CiAgICBwcm90byAxIDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjM4CiAgICAvLyByZXR1cm4gdjEubmF0aXZlCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzEgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMSAvLyA4CiAgICBkdXAKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OlN0cnVjdERlbW8uX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA4IDEKICAgIGJ5dGVjYmxvY2sgMHggMHgwMDAwMDAwMDAwMDAwMDAwIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMDoKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0AxMAoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OQogICAgLy8gY2xhc3MgU3RydWN0RGVtbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDg5Mzg4ZGRkIC8vIG1ldGhvZCAidGVzdFZlY3RvckNyZWF0aW9uQW5kRXF1YWxpdHkoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhlZjMyMmQ2ZCAvLyBtZXRob2QgImFkZFZlY3RvcnMoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkodWludDY0LHVpbnQ2NCkiCiAgICBwdXNoYnl0ZXMgMHhjYjgxZGViOCAvLyBtZXRob2QgImltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZygodWludDY0LHVpbnQ2NCkpdm9pZCIKICAgIHB1c2hieXRlcyAweGY3OWQ2YzQ2IC8vIG1ldGhvZCAidG9BbmRGcm9tQnl0ZXMoKHVpbnQ2NCx1aW50NjQpKSh1aW50NjQsdWludDY0KSIKICAgIHB1c2hieXRlcyAweDkxOTE1NTQ1IC8vIG1ldGhvZCAidG9OYXRpdmUoKHVpbnQ2NCx1aW50NjQpKSh1aW50NjQsdWludDY0KSIKICAgIHVuY292ZXIgNQogICAgbWF0Y2ggbWFpbl90ZXN0VmVjdG9yQ3JlYXRpb25BbmRFcXVhbGl0eV9yb3V0ZUAzIG1haW5fYWRkVmVjdG9yc19yb3V0ZUA0IG1haW5faW1wbGljaXRDYXN0aW5nQW5kU3ByZWFkaW5nX3JvdXRlQDUgbWFpbl90b0FuZEZyb21CeXRlc19yb3V0ZUA2IG1haW5fdG9OYXRpdmVfcm91dGVANwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDg6CgptYWluX3N3aXRjaF9jYXNlX25leHRAOToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxNDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1OgogICAgcmV0dXJuCgptYWluX3RvTmF0aXZlX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czozNwogICAgLy8gcHVibGljIHRvTmF0aXZlKHYxOiBWZWN0b3IpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czozNwogICAgLy8gcHVibGljIHRvTmF0aXZlKHYxOiBWZWN0b3IpIHsKICAgIGNhbGxzdWIgdG9OYXRpdmUKICAgIHN3YXAKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18yIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OlN0cnVjdERlbW8uX19wdXlhX2FyYzRfcm91dGVyX19AMTUKCm1haW5fdG9BbmRGcm9tQnl0ZXNfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjMyCiAgICAvLyBwdWJsaWMgdG9BbmRGcm9tQnl0ZXModjE6IFZlY3Rvcik6IFZlY3RvciB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo5CiAgICAvLyBjbGFzcyBTdHJ1Y3REZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MzIKICAgIC8vIHB1YmxpYyB0b0FuZEZyb21CeXRlcyh2MTogVmVjdG9yKTogVmVjdG9yIHsKICAgIGNhbGxzdWIgdG9BbmRGcm9tQnl0ZXMKICAgIGJ5dGVjXzIgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo6U3RydWN0RGVtby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9pbXBsaWNpdENhc3RpbmdBbmRTcHJlYWRpbmdfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjI1CiAgICAvLyBwdWJsaWMgaW1wbGljaXRDYXN0aW5nQW5kU3ByZWFkaW5nKHYxOiBWZWN0b3IpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyNQogICAgLy8gcHVibGljIGltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZyh2MTogVmVjdG9yKSB7CiAgICBjYWxsc3ViIGltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZwogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX2FkZFZlY3RvcnNfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjE4CiAgICAvLyBwdWJsaWMgYWRkVmVjdG9ycyh2MTogVmVjdG9yLCB2MjogVmVjdG9yKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo5CiAgICAvLyBjbGFzcyBTdHJ1Y3REZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MTgKICAgIC8vIHB1YmxpYyBhZGRWZWN0b3JzKHYxOiBWZWN0b3IsIHYyOiBWZWN0b3IpIHsKICAgIGNhbGxzdWIgYWRkVmVjdG9ycwogICAgYnl0ZWNfMiAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX3Rlc3RWZWN0b3JDcmVhdGlvbkFuZEVxdWFsaXR5X3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoxMAogICAgLy8gcHVibGljIHRlc3RWZWN0b3JDcmVhdGlvbkFuZEVxdWFsaXR5KCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0VmVjdG9yQ3JlYXRpb25BbmRFcXVhbGl0eQogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX2JhcmVfcm91dGluZ0AxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTEKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMjoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMzoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDE0CgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OlN0cnVjdERlbW8udGVzdFZlY3RvckNyZWF0aW9uQW5kRXF1YWxpdHkoKSAtPiB2b2lkOgp0ZXN0VmVjdG9yQ3JlYXRpb25BbmRFcXVhbGl0eToKCnRlc3RWZWN0b3JDcmVhdGlvbkFuZEVxdWFsaXR5X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoxMQogICAgLy8gY29uc3QgdjEgPSBuZXcgVmVjdG9yKHsgeDogbmV3IEFSQzRVaW50NjQoMCksIHk6IG5ldyBBUkM0VWludDY0KDApIH0pCiAgICBieXRlY18wIC8vIDB4CiAgICBieXRlY18xIC8vIDB4MDAwMDAwMDAwMDAwMDAwMAogICAgY29uY2F0CiAgICBieXRlY18xIC8vIDB4MDAwMDAwMDAwMDAwMDAwMAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoxMgogICAgLy8gbG9nKHYxLngpCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzEgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjEzCiAgICAvLyBsb2codjEueSkKICAgIGR1cAogICAgaW50Y18xIC8vIDgKICAgIGR1cAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjE0CiAgICAvLyBjb25zdCB2MiA9IG5ldyBWZWN0b3IoeyB5OiBuZXcgQVJDNFVpbnQ2NCgwKSwgeDogbmV3IEFSQzRVaW50NjQoMCkgfSkKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCiAgICBjb25jYXQKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjE1CiAgICAvLyBhc3NlcnQodjEgPT09IHYyKQogICAgPT0KICAgIGFzc2VydAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OlN0cnVjdERlbW8uYWRkVmVjdG9ycyh2MTogYnl0ZXMsIHYyOiBieXRlcykgLT4gYnl0ZXM6CmFkZFZlY3RvcnM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoxOAogICAgLy8gcHVibGljIGFkZFZlY3RvcnModjE6IFZlY3RvciwgdjI6IFZlY3RvcikgewogICAgcHJvdG8gMiAxCgphZGRWZWN0b3JzX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyMAogICAgLy8geDogbmV3IEFSQzRVaW50NjQodjEueC5uYXRpdmUgKyB2Mi54Lm5hdGl2ZSksCiAgICBmcmFtZV9kaWcgLTIKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzEgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzEgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICArCiAgICBpdG9iCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyMQogICAgLy8geTogbmV3IEFSQzRVaW50NjQodjEueS5uYXRpdmUgKyB2Mi55Lm5hdGl2ZSksCiAgICBmcmFtZV9kaWcgLTIKICAgIGludGNfMSAvLyA4CiAgICBkdXAKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzEgLy8gOAogICAgZHVwCiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgICsKICAgIGl0b2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjE5LTIyCiAgICAvLyByZXR1cm4gbmV3IFZlY3Rvcih7CiAgICAvLyAgIHg6IG5ldyBBUkM0VWludDY0KHYxLngubmF0aXZlICsgdjIueC5uYXRpdmUpLAogICAgLy8gICB5OiBuZXcgQVJDNFVpbnQ2NCh2MS55Lm5hdGl2ZSArIHYyLnkubmF0aXZlKSwKICAgIC8vIH0pCiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo6U3RydWN0RGVtby5pbXBsaWNpdENhc3RpbmdBbmRTcHJlYWRpbmcodjE6IGJ5dGVzKSAtPiB2b2lkOgppbXBsaWNpdENhc3RpbmdBbmRTcHJlYWRpbmc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyNQogICAgLy8gcHVibGljIGltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZyh2MTogVmVjdG9yKSB7CiAgICBwcm90byAxIDAKCmltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZ19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MjYKICAgIC8vIGNvbnN0IHYyID0gbmV3IFZlY3Rvcih2MSkKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18xIC8vIDgKICAgIGR1cAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyNwogICAgLy8gY29uc3QgdjMgPSBuZXcgVmVjdG9yKHsgLi4udjIgfSkKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIHN3YXAKICAgIGR1cAogICAgaW50Y18xIC8vIDgKICAgIGR1cAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyOAogICAgLy8gYXNzZXJ0KHYxLmJ5dGVzID09PSB2Mi5ieXRlcykKICAgIGZyYW1lX2RpZyAtMQogICAgdW5jb3ZlciAyCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyOQogICAgLy8gYXNzZXJ0KHYzLmJ5dGVzID09PSB2MS5ieXRlcykKICAgIGZyYW1lX2RpZyAtMQogICAgPT0KICAgIGFzc2VydAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OlN0cnVjdERlbW8udG9BbmRGcm9tQnl0ZXModjE6IGJ5dGVzKSAtPiBieXRlczoKdG9BbmRGcm9tQnl0ZXM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czozMgogICAgLy8gcHVibGljIHRvQW5kRnJvbUJ5dGVzKHYxOiBWZWN0b3IpOiBWZWN0b3IgewogICAgcHJvdG8gMSAxCgp0b0FuZEZyb21CeXRlc19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MzMKICAgIC8vIGNvbnN0IHYxX2J5dGVzID0gdjEuYnl0ZXMKICAgIGZyYW1lX2RpZyAtMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MzQKICAgIC8vIHJldHVybiBpbnRlcnByZXRBc0FyYzQ8VmVjdG9yPih2MV9ieXRlcykKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLnRvTmF0aXZlKHYxOiBieXRlcykgLT4gYnl0ZXMsIGJ5dGVzOgp0b05hdGl2ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjM3CiAgICAvLyBwdWJsaWMgdG9OYXRpdmUodjE6IFZlY3RvcikgewogICAgcHJvdG8gMSAyCgp0b05hdGl2ZV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MzgKICAgIC8vIHJldHVybiB2MS5uYXRpdmUKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18xIC8vIDgKICAgIGR1cAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo6U3RydWN0RGVtby5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/arc4-struct/StructDemo.arc56.json b/tests/approvals/out/unoptimized/arc4-struct/StructDemo.arc56.json index 41b62b0c9..7683658de 100644 --- a/tests/approvals/out/unoptimized/arc4-struct/StructDemo.arc56.json +++ b/tests/approvals/out/unoptimized/arc4-struct/StructDemo.arc56.json @@ -224,8 +224,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA4IDEKICAgIGJ5dGVjYmxvY2sgMHggMHgwMDAwMDAwMDAwMDAwMDAwIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0AxMAoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OQogICAgLy8gY2xhc3MgU3RydWN0RGVtbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDg5Mzg4ZGRkIC8vIG1ldGhvZCAidGVzdFZlY3RvckNyZWF0aW9uQW5kRXF1YWxpdHkoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhlZjMyMmQ2ZCAvLyBtZXRob2QgImFkZFZlY3RvcnMoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkodWludDY0LHVpbnQ2NCkiCiAgICBwdXNoYnl0ZXMgMHhjYjgxZGViOCAvLyBtZXRob2QgImltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZygodWludDY0LHVpbnQ2NCkpdm9pZCIKICAgIHB1c2hieXRlcyAweGY3OWQ2YzQ2IC8vIG1ldGhvZCAidG9BbmRGcm9tQnl0ZXMoKHVpbnQ2NCx1aW50NjQpKSh1aW50NjQsdWludDY0KSIKICAgIHB1c2hieXRlcyAweDkxOTE1NTQ1IC8vIG1ldGhvZCAidG9OYXRpdmUoKHVpbnQ2NCx1aW50NjQpKSh1aW50NjQsdWludDY0KSIKICAgIHVuY292ZXIgNQogICAgbWF0Y2ggbWFpbl90ZXN0VmVjdG9yQ3JlYXRpb25BbmRFcXVhbGl0eV9yb3V0ZUAzIG1haW5fYWRkVmVjdG9yc19yb3V0ZUA0IG1haW5faW1wbGljaXRDYXN0aW5nQW5kU3ByZWFkaW5nX3JvdXRlQDUgbWFpbl90b0FuZEZyb21CeXRlc19yb3V0ZUA2IG1haW5fdG9OYXRpdmVfcm91dGVANwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDg6CgptYWluX3N3aXRjaF9jYXNlX25leHRAOToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxNDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1OgogICAgcmV0dXJuCgptYWluX3RvTmF0aXZlX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czozNwogICAgLy8gcHVibGljIHRvTmF0aXZlKHYxOiBWZWN0b3IpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czozNwogICAgLy8gcHVibGljIHRvTmF0aXZlKHYxOiBWZWN0b3IpIHsKICAgIGNhbGxzdWIgdG9OYXRpdmUKICAgIHN3YXAKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18yIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OlN0cnVjdERlbW8uX19wdXlhX2FyYzRfcm91dGVyX19AMTUKCm1haW5fdG9BbmRGcm9tQnl0ZXNfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjMyCiAgICAvLyBwdWJsaWMgdG9BbmRGcm9tQnl0ZXModjE6IFZlY3Rvcik6IFZlY3RvciB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo5CiAgICAvLyBjbGFzcyBTdHJ1Y3REZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MzIKICAgIC8vIHB1YmxpYyB0b0FuZEZyb21CeXRlcyh2MTogVmVjdG9yKTogVmVjdG9yIHsKICAgIGNhbGxzdWIgdG9BbmRGcm9tQnl0ZXMKICAgIGJ5dGVjXzIgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo6U3RydWN0RGVtby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9pbXBsaWNpdENhc3RpbmdBbmRTcHJlYWRpbmdfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjI1CiAgICAvLyBwdWJsaWMgaW1wbGljaXRDYXN0aW5nQW5kU3ByZWFkaW5nKHYxOiBWZWN0b3IpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyNQogICAgLy8gcHVibGljIGltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZyh2MTogVmVjdG9yKSB7CiAgICBjYWxsc3ViIGltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZwogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX2FkZFZlY3RvcnNfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjE4CiAgICAvLyBwdWJsaWMgYWRkVmVjdG9ycyh2MTogVmVjdG9yLCB2MjogVmVjdG9yKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo5CiAgICAvLyBjbGFzcyBTdHJ1Y3REZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MTgKICAgIC8vIHB1YmxpYyBhZGRWZWN0b3JzKHYxOiBWZWN0b3IsIHYyOiBWZWN0b3IpIHsKICAgIGNhbGxzdWIgYWRkVmVjdG9ycwogICAgYnl0ZWNfMiAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX3Rlc3RWZWN0b3JDcmVhdGlvbkFuZEVxdWFsaXR5X3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoxMAogICAgLy8gcHVibGljIHRlc3RWZWN0b3JDcmVhdGlvbkFuZEVxdWFsaXR5KCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0VmVjdG9yQ3JlYXRpb25BbmRFcXVhbGl0eQogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX2JhcmVfcm91dGluZ0AxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTEKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMjoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMzoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDE0CgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OlN0cnVjdERlbW8udGVzdFZlY3RvckNyZWF0aW9uQW5kRXF1YWxpdHkoKSAtPiB2b2lkOgp0ZXN0VmVjdG9yQ3JlYXRpb25BbmRFcXVhbGl0eToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjExCiAgICAvLyBjb25zdCB2MSA9IG5ldyBWZWN0b3IoeyB4OiBuZXcgQVJDNFVpbnQ2NCgwKSwgeTogbmV3IEFSQzRVaW50NjQoMCkgfSkKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCiAgICBjb25jYXQKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjEyCiAgICAvLyBsb2codjEueCkKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MTMKICAgIC8vIGxvZyh2MS55KQogICAgZHVwCiAgICBpbnRjXzEgLy8gOAogICAgZHVwCiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MTQKICAgIC8vIGNvbnN0IHYyID0gbmV3IFZlY3Rvcih7IHk6IG5ldyBBUkM0VWludDY0KDApLCB4OiBuZXcgQVJDNFVpbnQ2NCgwKSB9KQogICAgYnl0ZWNfMCAvLyAweAogICAgYnl0ZWNfMSAvLyAweDAwMDAwMDAwMDAwMDAwMDAKICAgIGNvbmNhdAogICAgYnl0ZWNfMSAvLyAweDAwMDAwMDAwMDAwMDAwMDAKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MTUKICAgIC8vIGFzc2VydCh2MSA9PT0gdjIpCiAgICA9PQogICAgYXNzZXJ0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo6U3RydWN0RGVtby5hZGRWZWN0b3JzKHYxOiBieXRlcywgdjI6IGJ5dGVzKSAtPiBieXRlczoKYWRkVmVjdG9yczoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjE4CiAgICAvLyBwdWJsaWMgYWRkVmVjdG9ycyh2MTogVmVjdG9yLCB2MjogVmVjdG9yKSB7CiAgICBwcm90byAyIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjIwCiAgICAvLyB4OiBuZXcgQVJDNFVpbnQ2NCh2MS54Lm5hdGl2ZSArIHYyLngubmF0aXZlKSwKICAgIGZyYW1lX2RpZyAtMgogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgICsKICAgIGl0b2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjIxCiAgICAvLyB5OiBuZXcgQVJDNFVpbnQ2NCh2MS55Lm5hdGl2ZSArIHYyLnkubmF0aXZlKSwKICAgIGZyYW1lX2RpZyAtMgogICAgaW50Y18xIC8vIDgKICAgIGR1cAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMSAvLyA4CiAgICBkdXAKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgKwogICAgaXRvYgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MTktMjIKICAgIC8vIHJldHVybiBuZXcgVmVjdG9yKHsKICAgIC8vICAgeDogbmV3IEFSQzRVaW50NjQodjEueC5uYXRpdmUgKyB2Mi54Lm5hdGl2ZSksCiAgICAvLyAgIHk6IG5ldyBBUkM0VWludDY0KHYxLnkubmF0aXZlICsgdjIueS5uYXRpdmUpLAogICAgLy8gfSkKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLmltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZyh2MTogYnl0ZXMpIC0+IHZvaWQ6CmltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjI1CiAgICAvLyBwdWJsaWMgaW1wbGljaXRDYXN0aW5nQW5kU3ByZWFkaW5nKHYxOiBWZWN0b3IpIHsKICAgIHByb3RvIDEgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MjYKICAgIC8vIGNvbnN0IHYyID0gbmV3IFZlY3Rvcih2MSkKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18xIC8vIDgKICAgIGR1cAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyNwogICAgLy8gY29uc3QgdjMgPSBuZXcgVmVjdG9yKHsgLi4udjIgfSkKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIHN3YXAKICAgIGR1cAogICAgaW50Y18xIC8vIDgKICAgIGR1cAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyOAogICAgLy8gYXNzZXJ0KHYxLmJ5dGVzID09PSB2Mi5ieXRlcykKICAgIGZyYW1lX2RpZyAtMQogICAgdW5jb3ZlciAyCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyOQogICAgLy8gYXNzZXJ0KHYzLmJ5dGVzID09PSB2MS5ieXRlcykKICAgIGZyYW1lX2RpZyAtMQogICAgPT0KICAgIGFzc2VydAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OlN0cnVjdERlbW8udG9BbmRGcm9tQnl0ZXModjE6IGJ5dGVzKSAtPiBieXRlczoKdG9BbmRGcm9tQnl0ZXM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czozMgogICAgLy8gcHVibGljIHRvQW5kRnJvbUJ5dGVzKHYxOiBWZWN0b3IpOiBWZWN0b3IgewogICAgcHJvdG8gMSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czozMwogICAgLy8gY29uc3QgdjFfYnl0ZXMgPSB2MS5ieXRlcwogICAgZnJhbWVfZGlnIC0xCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czozNAogICAgLy8gcmV0dXJuIGludGVycHJldEFzQXJjNDxWZWN0b3I+KHYxX2J5dGVzKQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OlN0cnVjdERlbW8udG9OYXRpdmUodjE6IGJ5dGVzKSAtPiBieXRlcywgYnl0ZXM6CnRvTmF0aXZlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MzcKICAgIC8vIHB1YmxpYyB0b05hdGl2ZSh2MTogVmVjdG9yKSB7CiAgICBwcm90byAxIDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjM4CiAgICAvLyByZXR1cm4gdjEubmF0aXZlCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzEgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMSAvLyA4CiAgICBkdXAKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OlN0cnVjdERlbW8uX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA4IDEKICAgIGJ5dGVjYmxvY2sgMHggMHgwMDAwMDAwMDAwMDAwMDAwIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMDoKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0AxMAoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OQogICAgLy8gY2xhc3MgU3RydWN0RGVtbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDg5Mzg4ZGRkIC8vIG1ldGhvZCAidGVzdFZlY3RvckNyZWF0aW9uQW5kRXF1YWxpdHkoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhlZjMyMmQ2ZCAvLyBtZXRob2QgImFkZFZlY3RvcnMoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkodWludDY0LHVpbnQ2NCkiCiAgICBwdXNoYnl0ZXMgMHhjYjgxZGViOCAvLyBtZXRob2QgImltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZygodWludDY0LHVpbnQ2NCkpdm9pZCIKICAgIHB1c2hieXRlcyAweGY3OWQ2YzQ2IC8vIG1ldGhvZCAidG9BbmRGcm9tQnl0ZXMoKHVpbnQ2NCx1aW50NjQpKSh1aW50NjQsdWludDY0KSIKICAgIHB1c2hieXRlcyAweDkxOTE1NTQ1IC8vIG1ldGhvZCAidG9OYXRpdmUoKHVpbnQ2NCx1aW50NjQpKSh1aW50NjQsdWludDY0KSIKICAgIHVuY292ZXIgNQogICAgbWF0Y2ggbWFpbl90ZXN0VmVjdG9yQ3JlYXRpb25BbmRFcXVhbGl0eV9yb3V0ZUAzIG1haW5fYWRkVmVjdG9yc19yb3V0ZUA0IG1haW5faW1wbGljaXRDYXN0aW5nQW5kU3ByZWFkaW5nX3JvdXRlQDUgbWFpbl90b0FuZEZyb21CeXRlc19yb3V0ZUA2IG1haW5fdG9OYXRpdmVfcm91dGVANwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDg6CgptYWluX3N3aXRjaF9jYXNlX25leHRAOToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxNDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1OgogICAgcmV0dXJuCgptYWluX3RvTmF0aXZlX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czozNwogICAgLy8gcHVibGljIHRvTmF0aXZlKHYxOiBWZWN0b3IpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czozNwogICAgLy8gcHVibGljIHRvTmF0aXZlKHYxOiBWZWN0b3IpIHsKICAgIGNhbGxzdWIgdG9OYXRpdmUKICAgIHN3YXAKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18yIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OlN0cnVjdERlbW8uX19wdXlhX2FyYzRfcm91dGVyX19AMTUKCm1haW5fdG9BbmRGcm9tQnl0ZXNfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjMyCiAgICAvLyBwdWJsaWMgdG9BbmRGcm9tQnl0ZXModjE6IFZlY3Rvcik6IFZlY3RvciB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo5CiAgICAvLyBjbGFzcyBTdHJ1Y3REZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MzIKICAgIC8vIHB1YmxpYyB0b0FuZEZyb21CeXRlcyh2MTogVmVjdG9yKTogVmVjdG9yIHsKICAgIGNhbGxzdWIgdG9BbmRGcm9tQnl0ZXMKICAgIGJ5dGVjXzIgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo6U3RydWN0RGVtby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9pbXBsaWNpdENhc3RpbmdBbmRTcHJlYWRpbmdfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjI1CiAgICAvLyBwdWJsaWMgaW1wbGljaXRDYXN0aW5nQW5kU3ByZWFkaW5nKHYxOiBWZWN0b3IpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyNQogICAgLy8gcHVibGljIGltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZyh2MTogVmVjdG9yKSB7CiAgICBjYWxsc3ViIGltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZwogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX2FkZFZlY3RvcnNfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjE4CiAgICAvLyBwdWJsaWMgYWRkVmVjdG9ycyh2MTogVmVjdG9yLCB2MjogVmVjdG9yKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo5CiAgICAvLyBjbGFzcyBTdHJ1Y3REZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MTgKICAgIC8vIHB1YmxpYyBhZGRWZWN0b3JzKHYxOiBWZWN0b3IsIHYyOiBWZWN0b3IpIHsKICAgIGNhbGxzdWIgYWRkVmVjdG9ycwogICAgYnl0ZWNfMiAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX3Rlc3RWZWN0b3JDcmVhdGlvbkFuZEVxdWFsaXR5X3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoxMAogICAgLy8gcHVibGljIHRlc3RWZWN0b3JDcmVhdGlvbkFuZEVxdWFsaXR5KCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0VmVjdG9yQ3JlYXRpb25BbmRFcXVhbGl0eQogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX2JhcmVfcm91dGluZ0AxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTEKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMjoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMzoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDE0CgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OlN0cnVjdERlbW8udGVzdFZlY3RvckNyZWF0aW9uQW5kRXF1YWxpdHkoKSAtPiB2b2lkOgp0ZXN0VmVjdG9yQ3JlYXRpb25BbmRFcXVhbGl0eToKCnRlc3RWZWN0b3JDcmVhdGlvbkFuZEVxdWFsaXR5X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoxMQogICAgLy8gY29uc3QgdjEgPSBuZXcgVmVjdG9yKHsgeDogbmV3IEFSQzRVaW50NjQoMCksIHk6IG5ldyBBUkM0VWludDY0KDApIH0pCiAgICBieXRlY18wIC8vIDB4CiAgICBieXRlY18xIC8vIDB4MDAwMDAwMDAwMDAwMDAwMAogICAgY29uY2F0CiAgICBieXRlY18xIC8vIDB4MDAwMDAwMDAwMDAwMDAwMAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoxMgogICAgLy8gbG9nKHYxLngpCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzEgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjEzCiAgICAvLyBsb2codjEueSkKICAgIGR1cAogICAgaW50Y18xIC8vIDgKICAgIGR1cAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjE0CiAgICAvLyBjb25zdCB2MiA9IG5ldyBWZWN0b3IoeyB5OiBuZXcgQVJDNFVpbnQ2NCgwKSwgeDogbmV3IEFSQzRVaW50NjQoMCkgfSkKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCiAgICBjb25jYXQKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDAwMDAwMDAwMDAwCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjE1CiAgICAvLyBhc3NlcnQodjEgPT09IHYyKQogICAgPT0KICAgIGFzc2VydAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OlN0cnVjdERlbW8uYWRkVmVjdG9ycyh2MTogYnl0ZXMsIHYyOiBieXRlcykgLT4gYnl0ZXM6CmFkZFZlY3RvcnM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoxOAogICAgLy8gcHVibGljIGFkZFZlY3RvcnModjE6IFZlY3RvciwgdjI6IFZlY3RvcikgewogICAgcHJvdG8gMiAxCgphZGRWZWN0b3JzX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyMAogICAgLy8geDogbmV3IEFSQzRVaW50NjQodjEueC5uYXRpdmUgKyB2Mi54Lm5hdGl2ZSksCiAgICBmcmFtZV9kaWcgLTIKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzEgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzEgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICArCiAgICBpdG9iCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyMQogICAgLy8geTogbmV3IEFSQzRVaW50NjQodjEueS5uYXRpdmUgKyB2Mi55Lm5hdGl2ZSksCiAgICBmcmFtZV9kaWcgLTIKICAgIGludGNfMSAvLyA4CiAgICBkdXAKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzEgLy8gOAogICAgZHVwCiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgICsKICAgIGl0b2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjE5LTIyCiAgICAvLyByZXR1cm4gbmV3IFZlY3Rvcih7CiAgICAvLyAgIHg6IG5ldyBBUkM0VWludDY0KHYxLngubmF0aXZlICsgdjIueC5uYXRpdmUpLAogICAgLy8gICB5OiBuZXcgQVJDNFVpbnQ2NCh2MS55Lm5hdGl2ZSArIHYyLnkubmF0aXZlKSwKICAgIC8vIH0pCiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo6U3RydWN0RGVtby5pbXBsaWNpdENhc3RpbmdBbmRTcHJlYWRpbmcodjE6IGJ5dGVzKSAtPiB2b2lkOgppbXBsaWNpdENhc3RpbmdBbmRTcHJlYWRpbmc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyNQogICAgLy8gcHVibGljIGltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZyh2MTogVmVjdG9yKSB7CiAgICBwcm90byAxIDAKCmltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZ19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MjYKICAgIC8vIGNvbnN0IHYyID0gbmV3IFZlY3Rvcih2MSkKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18xIC8vIDgKICAgIGR1cAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyNwogICAgLy8gY29uc3QgdjMgPSBuZXcgVmVjdG9yKHsgLi4udjIgfSkKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIHN3YXAKICAgIGR1cAogICAgaW50Y18xIC8vIDgKICAgIGR1cAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyOAogICAgLy8gYXNzZXJ0KHYxLmJ5dGVzID09PSB2Mi5ieXRlcykKICAgIGZyYW1lX2RpZyAtMQogICAgdW5jb3ZlciAyCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyOQogICAgLy8gYXNzZXJ0KHYzLmJ5dGVzID09PSB2MS5ieXRlcykKICAgIGZyYW1lX2RpZyAtMQogICAgPT0KICAgIGFzc2VydAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OlN0cnVjdERlbW8udG9BbmRGcm9tQnl0ZXModjE6IGJ5dGVzKSAtPiBieXRlczoKdG9BbmRGcm9tQnl0ZXM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czozMgogICAgLy8gcHVibGljIHRvQW5kRnJvbUJ5dGVzKHYxOiBWZWN0b3IpOiBWZWN0b3IgewogICAgcHJvdG8gMSAxCgp0b0FuZEZyb21CeXRlc19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MzMKICAgIC8vIGNvbnN0IHYxX2J5dGVzID0gdjEuYnl0ZXMKICAgIGZyYW1lX2RpZyAtMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MzQKICAgIC8vIHJldHVybiBpbnRlcnByZXRBc0FyYzQ8VmVjdG9yPih2MV9ieXRlcykKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLnRvTmF0aXZlKHYxOiBieXRlcykgLT4gYnl0ZXMsIGJ5dGVzOgp0b05hdGl2ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjM3CiAgICAvLyBwdWJsaWMgdG9OYXRpdmUodjE6IFZlY3RvcikgewogICAgcHJvdG8gMSAyCgp0b05hdGl2ZV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MzgKICAgIC8vIHJldHVybiB2MS5uYXRpdmUKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18xIC8vIDgKICAgIGR1cAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo6U3RydWN0RGVtby5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiADAAgBJgMACAAAAAAAAAAABBUffHUxGyITQQCnNhoAgASJOI3dgATvMi1tgATLgd64gAT3nWxGgASRkVVFTwWOBQBnAEwAOAAgAAIiQzEZIhJEMRgiE0Q2GgGIAO1MKExQTFAqTFCwJEL/4TEZIhJEMRgiE0Q2GgGIAMkqTFCwJEL/yTEZIhJEMRgiE0Q2GgGIAIQkQv+1MRkiEkQxGCITRDYaATYaAogARypMULAkQv+aMRkiEkQxGCITRIgAGyRC/4kxGSJMjgEAA0L/fTEYIhJEiACCJEL/cigpUClQSSIjWLBJI0lYsCgpUClQEkSJigIBi/4iI1gXi/8iI1gXCBaL/iNJWBeL/yNJWBcIFihPAlBMUImKAQCL/yIjWIv/I0lYKE8CUExQSSIjWExJI0lYKE8DUExQi/9PAhJEi/8SRImKAQGL/4mKAQKL/yIjWIv/I0lYiYk=", @@ -236,7 +236,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/arc4-struct/StructDemo.clear.teal b/tests/approvals/out/unoptimized/arc4-struct/StructDemo.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/arc4-struct/StructDemo.clear.teal +++ b/tests/approvals/out/unoptimized/arc4-struct/StructDemo.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/arc4-types/Arc4TypesTestContract.approval.teal b/tests/approvals/out/unoptimized/arc4-types/Arc4TypesTestContract.approval.teal index f25ccb4da..e9474fb15 100644 --- a/tests/approvals/out/unoptimized/arc4-types/Arc4TypesTestContract.approval.teal +++ b/tests/approvals/out/unoptimized/arc4-types/Arc4TypesTestContract.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 8 1 2 bytecblock 0x 0x0000 0x00 base32(AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) 0x000548656c6c6f 0x000568656c6c6f + +main_block@0: // tests/approvals/arc4-types.algo.ts:150 // testStr() callsub testStr @@ -61,6 +63,8 @@ main: // _puya_lib.arc4.dynamic_array_pop_fixed_size(array: bytes, fixed_byte_size: uint64) -> bytes, bytes: dynamic_array_pop_fixed_size: proto 2 2 + +dynamic_array_pop_fixed_size_block@0: frame_dig -2 intc_0 // 0 extract_uint16 @@ -88,6 +92,8 @@ dynamic_array_pop_fixed_size: // tests/approvals/arc4-types.algo.ts::testUFixed() -> void: testUFixed: + +testUFixed_block@0: // tests/approvals/arc4-types.algo.ts:21 // const a = new UFixedNxM<32, 4>('1.244') pushbytes 0x000004dc @@ -106,6 +112,8 @@ testUintN: // tests/approvals/arc4-types.algo.ts:27 // function testUintN(n: uint64, b: biguint, c: UintN<256>) { proto 3 0 + +testUintN_block@0: // tests/approvals/arc4-types.algo.ts:28 // const x = new UintN<8>(4) pushbytes 0x04 @@ -209,6 +217,8 @@ testUintN: // tests/approvals/arc4-types.algo.ts::testStr() -> void: testStr: + +testStr_block@0: // tests/approvals/arc4-types.algo.ts:63 // const s1 = new Str() bytec_1 // 0x0000 @@ -242,6 +252,8 @@ testDynamicBytes: // tests/approvals/arc4-types.algo.ts:75 // function testDynamicBytes(someBytes: bytes) { proto 1 0 + +testDynamicBytes_block@0: // tests/approvals/arc4-types.algo.ts:76 // const db1 = new DynamicBytes() bytec_1 // 0x0000 @@ -308,6 +320,8 @@ testDynamicBytes: // tests/approvals/arc4-types.algo.ts::testStaticBytes() -> void: testStaticBytes: + +testStaticBytes_block@0: // tests/approvals/arc4-types.algo.ts:94 // const s4 = s2.concat(s3) pushbytes 0x0004 @@ -344,6 +358,8 @@ testArrays: // tests/approvals/arc4-types.algo.ts:101 // function testArrays(n: ARC4Uint64) { proto 1 0 + +testArrays_block@0: // tests/approvals/arc4-types.algo.ts:102 // const myArray = new DynamicArray(n, n, n) bytec_0 // 0x @@ -444,6 +460,8 @@ testArrays: // tests/approvals/arc4-types.algo.ts::testByte() -> void: testByte: + +testByte_block@0: // tests/approvals/arc4-types.algo.ts:120 // const b = new Byte() bytec_2 // 0x00 @@ -459,6 +477,8 @@ testByte: // tests/approvals/arc4-types.algo.ts::testAddress() -> void: testAddress: + +testAddress_block@0: // tests/approvals/arc4-types.algo.ts:127 // const b = new Address(Txn.sender) txn Sender @@ -498,6 +518,8 @@ testAddress: // tests/approvals/arc4-types.algo.ts::testTuple() -> void: testTuple: + +testTuple_block@0: // tests/approvals/arc4-types.algo.ts:135 // const t = new Tuple(new ARC4Uint64(34)) bytec_0 // 0x diff --git a/tests/approvals/out/unoptimized/arc4-types/Arc4TypesTestContract.clear.teal b/tests/approvals/out/unoptimized/arc4-types/Arc4TypesTestContract.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/arc4-types/Arc4TypesTestContract.clear.teal +++ b/tests/approvals/out/unoptimized/arc4-types/Arc4TypesTestContract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/array-destructuring/ArrayDestructuringAlgo.approval.teal b/tests/approvals/out/unoptimized/array-destructuring/ArrayDestructuringAlgo.approval.teal index 3a1df9441..2c18081d1 100644 --- a/tests/approvals/out/unoptimized/array-destructuring/ArrayDestructuringAlgo.approval.teal +++ b/tests/approvals/out/unoptimized/array-destructuring/ArrayDestructuringAlgo.approval.teal @@ -6,6 +6,8 @@ main: intcblock 0 64 1 5 bytecblock 0x 0x06 +main_block@0: + main_block@1: // tests/approvals/array-destructuring.algo.ts:4 // export class ArrayDestructuringAlgo extends Contract { @@ -189,6 +191,8 @@ testNested: // tests/approvals/array-destructuring.algo.ts:5 // testNested(arg: [uint64, [biguint, biguint]]) { proto 3 5 + +testNested_block@0: // tests/approvals/array-destructuring.algo.ts:6 // const [a, b] = arg frame_dig -3 @@ -213,6 +217,8 @@ test: // tests/approvals/array-destructuring.algo.ts:11 // test() { proto 0 0 + +test_block@0: // tests/approvals/array-destructuring.algo.ts:12 // const [a, b, c, d] = this.produceItems() callsub produceItems @@ -340,6 +346,8 @@ test_bool_false@6: // tests/approvals/array-destructuring.algo.ts::ArrayDestructuringAlgo.produceItems() -> uint64, bytes, uint64, bytes: produceItems: + +produceItems_block@0: // tests/approvals/array-destructuring.algo.ts:29 // return [5, Bytes(), false, 6n] intc_3 // 5 @@ -351,6 +359,8 @@ produceItems: // tests/approvals/array-destructuring.algo.ts::ArrayDestructuringAlgo.testLiteralDestructuring() -> void: testLiteralDestructuring: + +testLiteralDestructuring_block@0: // tests/approvals/array-destructuring.algo.ts:33 // let a = Uint64(1) intc_2 // 1 @@ -372,4 +382,6 @@ testLiteralDestructuring: // tests/approvals/array-destructuring.algo.ts::ArrayDestructuringAlgo.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/array-destructuring/ArrayDestructuringAlgo.arc32.json b/tests/approvals/out/unoptimized/array-destructuring/ArrayDestructuringAlgo.arc32.json index a136d1991..62b7bbfa2 100644 --- a/tests/approvals/out/unoptimized/array-destructuring/ArrayDestructuringAlgo.arc32.json +++ b/tests/approvals/out/unoptimized/array-destructuring/ArrayDestructuringAlgo.arc32.json @@ -17,8 +17,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA2NCAxIDUKICAgIGJ5dGVjYmxvY2sgMHggMHgwNgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXJyYXlEZXN0cnVjdHVyaW5nQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDgKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg3NGI3ZThkZiAvLyBtZXRob2QgInRlc3ROZXN0ZWQoKHVpbnQ2NCwodWludDUxMix1aW50NTEyKSkpKHVpbnQ2NCwodWludDUxMix1aW50NTEyKSx1aW50NjQsdWludDUxMikiCiAgICBwdXNoYnl0ZXMgMHhhNzgwMDBkZSAvLyBtZXRob2QgInRlc3QoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHgyZGFmYzZjNiAvLyBtZXRob2QgInRlc3RMaXRlcmFsRGVzdHJ1Y3R1cmluZygpdm9pZCIKICAgIHVuY292ZXIgMwogICAgbWF0Y2ggbWFpbl90ZXN0TmVzdGVkX3JvdXRlQDMgbWFpbl90ZXN0X3JvdXRlQDQgbWFpbl90ZXN0TGl0ZXJhbERlc3RydWN0dXJpbmdfcm91dGVANQoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDY6CgptYWluX3N3aXRjaF9jYXNlX25leHRANzoKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTM6CiAgICByZXR1cm4KCm1haW5fdGVzdExpdGVyYWxEZXN0cnVjdHVyaW5nX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjMyCiAgICAvLyB0ZXN0TGl0ZXJhbERlc3RydWN0dXJpbmcoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3RMaXRlcmFsRGVzdHJ1Y3R1cmluZwogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fdGVzdF9yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoxMQogICAgLy8gdGVzdCgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdGVzdAogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fdGVzdE5lc3RlZF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo1CiAgICAvLyB0ZXN0TmVzdGVkKGFyZzogW3VpbnQ2NCwgW2JpZ3VpbnQsIGJpZ3VpbnRdXSkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXJyYXlEZXN0cnVjdHVyaW5nQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIHB1c2hpbnQgOCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHN3YXAKICAgIHB1c2hpbnQgOCAvLyA4CiAgICBwdXNoaW50IDEyOCAvLyAxMjgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18xIC8vIDY0CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIHN3YXAKICAgIGludGNfMSAvLyA2NAogICAgZHVwCiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6NQogICAgLy8gdGVzdE5lc3RlZChhcmc6IFt1aW50NjQsIFtiaWd1aW50LCBiaWd1aW50XV0pIHsKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIGNhbGxzdWIgdGVzdE5lc3RlZAogICAgY292ZXIgNAogICAgY292ZXIgMwogICAgY292ZXIgMgogICAgc3dhcAogICAgaXRvYgogICAgY292ZXIgNAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyA2NAogICAgPD0KICAgIGFzc2VydCAvLyBvdmVyZmxvdwogICAgaW50Y18xIC8vIDY0CiAgICBiemVybwogICAgYnwKICAgIGRpZyAxCiAgICBsZW4KICAgIGludGNfMSAvLyA2NAogICAgPD0KICAgIGFzc2VydCAvLyBvdmVyZmxvdwogICAgaW50Y18xIC8vIDY0CiAgICBiemVybwogICAgdW5jb3ZlciAyCiAgICBifAogICAgYnl0ZWNfMCAvLyAweAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgaXRvYgogICAgc3dhcAogICAgZGlnIDIKICAgIGxlbgogICAgaW50Y18xIC8vIDY0CiAgICA8PQogICAgYXNzZXJ0IC8vIG92ZXJmbG93CiAgICBpbnRjXzEgLy8gNjQKICAgIGJ6ZXJvCiAgICB1bmNvdmVyIDMKICAgIGJ8CiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDQKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fYmFyZV9yb3V0aW5nQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBcnJheURlc3RydWN0dXJpbmdBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDkKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXJyYXlEZXN0cnVjdHVyaW5nQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo6QXJyYXlEZXN0cnVjdHVyaW5nQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28udGVzdE5lc3RlZChhcmcuMDogdWludDY0LCBhcmcuMS4wOiBieXRlcywgYXJnLjEuMTogYnl0ZXMpIC0+IHVpbnQ2NCwgYnl0ZXMsIGJ5dGVzLCB1aW50NjQsIGJ5dGVzOgp0ZXN0TmVzdGVkOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo1CiAgICAvLyB0ZXN0TmVzdGVkKGFyZzogW3VpbnQ2NCwgW2JpZ3VpbnQsIGJpZ3VpbnRdXSkgewogICAgcHJvdG8gMyA1CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjYKICAgIC8vIGNvbnN0IFthLCBiXSA9IGFyZwogICAgZnJhbWVfZGlnIC0zCiAgICBmcmFtZV9kaWcgLTIKICAgIGZyYW1lX2RpZyAtMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo3CiAgICAvLyBjb25zdCBbYywgW2RdXSA9IGFyZwogICAgZnJhbWVfZGlnIC0zCiAgICBmcmFtZV9kaWcgLTIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OAogICAgLy8gcmV0dXJuIFthLCBiLCBjLCBkXSBhcyBjb25zdAogICAgdW5jb3ZlciA0CiAgICB1bmNvdmVyIDQKICAgIHVuY292ZXIgNAogICAgdW5jb3ZlciA0CiAgICB1bmNvdmVyIDQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28udGVzdCgpIC0+IHZvaWQ6CnRlc3Q6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjExCiAgICAvLyB0ZXN0KCkgewogICAgcHJvdG8gMCAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjEyCiAgICAvLyBjb25zdCBbYSwgYiwgYywgZF0gPSB0aGlzLnByb2R1Y2VJdGVtcygpCiAgICBjYWxsc3ViIHByb2R1Y2VJdGVtcwogICAgY292ZXIgMwogICAgY292ZXIgMgogICAgc3dhcAogICAgY292ZXIgMwogICAgY292ZXIgMwogICAgY292ZXIgMwogICAgY292ZXIgMwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoxMwogICAgLy8gY29uc3QgWywgLCBlXSA9IHRoaXMucHJvZHVjZUl0ZW1zKCkKICAgIGNhbGxzdWIgcHJvZHVjZUl0ZW1zCiAgICBwb3AKICAgIGNvdmVyIDIKICAgIHBvcG4gMgogICAgY292ZXIgMwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoxNgogICAgLy8gY29uc3QgZiA9IChbZywgLCAsIGldID0gdGhpcy5wcm9kdWNlSXRlbXMoKSkKICAgIGNhbGxzdWIgcHJvZHVjZUl0ZW1zCiAgICBjb3ZlciAzCiAgICBjb3ZlciAyCiAgICBzd2FwCiAgICBjb3ZlciAyCiAgICBjb3ZlciAyCiAgICBjb3ZlciAyCiAgICBkdXAKICAgIGNvdmVyIDkKICAgIHN3YXAKICAgIGNvdmVyIDgKICAgIHN3YXAKICAgIGNvdmVyIDcKICAgIGRpZyAxCiAgICBjb3ZlciA3CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjE4CiAgICAvLyBhc3NlcnQoYSA9PT0gNSkKICAgIHVuY292ZXIgMgogICAgaW50Y18zIC8vIDUKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6MTkKICAgIC8vIGFzc2VydChiID09PSBCeXRlcygpKQogICAgdW5jb3ZlciAyCiAgICBieXRlY18wIC8vIDB4CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjIwCiAgICAvLyBhc3NlcnQoIWMpCiAgICB1bmNvdmVyIDIKICAgICEKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyMQogICAgLy8gYXNzZXJ0KGQgPT09IDZuKQogICAgdW5jb3ZlciAzCiAgICBieXRlY18xIC8vIDB4MDYKICAgIGI9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjIyCiAgICAvLyBhc3NlcnQoIWUpCiAgICB1bmNvdmVyIDIKICAgICEKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyMwogICAgLy8gYXNzZXJ0KGcgPT09IDUpCiAgICBpbnRjXzMgLy8gNQogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyNAogICAgLy8gYXNzZXJ0KGkgPT09IDZuKQogICAgYnl0ZWNfMSAvLyAweDA2CiAgICBiPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyNQogICAgLy8gYXNzZXJ0TWF0Y2goZiwgWzUsIEJ5dGVzKCksIGZhbHNlLCA2bl0pCiAgICBwdXNoaW50IDQgLy8gNAogICAgZHVwCiAgICA9PQogICAgYnogdGVzdF9ib29sX2ZhbHNlQDYKCnRlc3RfYW5kX2NvbnRkQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjI1CiAgICAvLyBhc3NlcnRNYXRjaChmLCBbNSwgQnl0ZXMoKSwgZmFsc2UsIDZuXSkKICAgIGZyYW1lX2RpZyAwCiAgICBpbnRjXzMgLy8gNQogICAgPT0KICAgIGJ6IHRlc3RfYm9vbF9mYWxzZUA2Cgp0ZXN0X2FuZF9jb250ZEAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyNQogICAgLy8gYXNzZXJ0TWF0Y2goZiwgWzUsIEJ5dGVzKCksIGZhbHNlLCA2bl0pCiAgICBmcmFtZV9kaWcgMQogICAgYnl0ZWNfMCAvLyAweAogICAgPT0KICAgIGJ6IHRlc3RfYm9vbF9mYWxzZUA2Cgp0ZXN0X2FuZF9jb250ZEAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyNQogICAgLy8gYXNzZXJ0TWF0Y2goZiwgWzUsIEJ5dGVzKCksIGZhbHNlLCA2bl0pCiAgICBmcmFtZV9kaWcgMgogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBieiB0ZXN0X2Jvb2xfZmFsc2VANgoKdGVzdF9hbmRfY29udGRANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6MjUKICAgIC8vIGFzc2VydE1hdGNoKGYsIFs1LCBCeXRlcygpLCBmYWxzZSwgNm5dKQogICAgZnJhbWVfZGlnIDMKICAgIGJ5dGVjXzEgLy8gMHgwNgogICAgYj09CiAgICBieiB0ZXN0X2Jvb2xfZmFsc2VANgoKdGVzdF9ib29sX3RydWVANToKICAgIGludGNfMiAvLyAxCgp0ZXN0X2Jvb2xfbWVyZ2VANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6MjUKICAgIC8vIGFzc2VydE1hdGNoKGYsIFs1LCBCeXRlcygpLCBmYWxzZSwgNm5dKQogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIHJldHN1YgoKdGVzdF9ib29sX2ZhbHNlQDY6CiAgICBpbnRjXzAgLy8gMAogICAgYiB0ZXN0X2Jvb2xfbWVyZ2VANwoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28ucHJvZHVjZUl0ZW1zKCkgLT4gdWludDY0LCBieXRlcywgdWludDY0LCBieXRlczoKcHJvZHVjZUl0ZW1zOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyOQogICAgLy8gcmV0dXJuIFs1LCBCeXRlcygpLCBmYWxzZSwgNm5dCiAgICBpbnRjXzMgLy8gNQogICAgYnl0ZWNfMCAvLyAweAogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzEgLy8gMHgwNgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo6QXJyYXlEZXN0cnVjdHVyaW5nQWxnby50ZXN0TGl0ZXJhbERlc3RydWN0dXJpbmcoKSAtPiB2b2lkOgp0ZXN0TGl0ZXJhbERlc3RydWN0dXJpbmc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjMzCiAgICAvLyBsZXQgYSA9IFVpbnQ2NCgxKQogICAgaW50Y18yIC8vIDEKICAgIGR1cAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czozOAogICAgLy8gYXNzZXJ0KHggPT09IGIpCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjM0CiAgICAvLyBsZXQgYiA9IFVpbnQ2NCgyKQogICAgcHVzaGludCAyIC8vIDIKICAgIGR1cAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czozOQogICAgLy8gYXNzZXJ0KHkgPT09IGEpCiAgICA9PQogICAgYXNzZXJ0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjpBcnJheURlc3RydWN0dXJpbmdBbGdvLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA2NCAxIDUKICAgIGJ5dGVjYmxvY2sgMHggMHgwNgoKbWFpbl9ibG9ja0AwOgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXJyYXlEZXN0cnVjdHVyaW5nQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDgKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg3NGI3ZThkZiAvLyBtZXRob2QgInRlc3ROZXN0ZWQoKHVpbnQ2NCwodWludDUxMix1aW50NTEyKSkpKHVpbnQ2NCwodWludDUxMix1aW50NTEyKSx1aW50NjQsdWludDUxMikiCiAgICBwdXNoYnl0ZXMgMHhhNzgwMDBkZSAvLyBtZXRob2QgInRlc3QoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHgyZGFmYzZjNiAvLyBtZXRob2QgInRlc3RMaXRlcmFsRGVzdHJ1Y3R1cmluZygpdm9pZCIKICAgIHVuY292ZXIgMwogICAgbWF0Y2ggbWFpbl90ZXN0TmVzdGVkX3JvdXRlQDMgbWFpbl90ZXN0X3JvdXRlQDQgbWFpbl90ZXN0TGl0ZXJhbERlc3RydWN0dXJpbmdfcm91dGVANQoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDY6CgptYWluX3N3aXRjaF9jYXNlX25leHRANzoKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTM6CiAgICByZXR1cm4KCm1haW5fdGVzdExpdGVyYWxEZXN0cnVjdHVyaW5nX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjMyCiAgICAvLyB0ZXN0TGl0ZXJhbERlc3RydWN0dXJpbmcoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3RMaXRlcmFsRGVzdHJ1Y3R1cmluZwogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fdGVzdF9yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoxMQogICAgLy8gdGVzdCgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdGVzdAogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fdGVzdE5lc3RlZF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo1CiAgICAvLyB0ZXN0TmVzdGVkKGFyZzogW3VpbnQ2NCwgW2JpZ3VpbnQsIGJpZ3VpbnRdXSkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXJyYXlEZXN0cnVjdHVyaW5nQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIHB1c2hpbnQgOCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHN3YXAKICAgIHB1c2hpbnQgOCAvLyA4CiAgICBwdXNoaW50IDEyOCAvLyAxMjgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18xIC8vIDY0CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIHN3YXAKICAgIGludGNfMSAvLyA2NAogICAgZHVwCiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6NQogICAgLy8gdGVzdE5lc3RlZChhcmc6IFt1aW50NjQsIFtiaWd1aW50LCBiaWd1aW50XV0pIHsKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIGNhbGxzdWIgdGVzdE5lc3RlZAogICAgY292ZXIgNAogICAgY292ZXIgMwogICAgY292ZXIgMgogICAgc3dhcAogICAgaXRvYgogICAgY292ZXIgNAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyA2NAogICAgPD0KICAgIGFzc2VydCAvLyBvdmVyZmxvdwogICAgaW50Y18xIC8vIDY0CiAgICBiemVybwogICAgYnwKICAgIGRpZyAxCiAgICBsZW4KICAgIGludGNfMSAvLyA2NAogICAgPD0KICAgIGFzc2VydCAvLyBvdmVyZmxvdwogICAgaW50Y18xIC8vIDY0CiAgICBiemVybwogICAgdW5jb3ZlciAyCiAgICBifAogICAgYnl0ZWNfMCAvLyAweAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgaXRvYgogICAgc3dhcAogICAgZGlnIDIKICAgIGxlbgogICAgaW50Y18xIC8vIDY0CiAgICA8PQogICAgYXNzZXJ0IC8vIG92ZXJmbG93CiAgICBpbnRjXzEgLy8gNjQKICAgIGJ6ZXJvCiAgICB1bmNvdmVyIDMKICAgIGJ8CiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDQKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fYmFyZV9yb3V0aW5nQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBcnJheURlc3RydWN0dXJpbmdBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDkKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXJyYXlEZXN0cnVjdHVyaW5nQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo6QXJyYXlEZXN0cnVjdHVyaW5nQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28udGVzdE5lc3RlZChhcmcuMDogdWludDY0LCBhcmcuMS4wOiBieXRlcywgYXJnLjEuMTogYnl0ZXMpIC0+IHVpbnQ2NCwgYnl0ZXMsIGJ5dGVzLCB1aW50NjQsIGJ5dGVzOgp0ZXN0TmVzdGVkOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo1CiAgICAvLyB0ZXN0TmVzdGVkKGFyZzogW3VpbnQ2NCwgW2JpZ3VpbnQsIGJpZ3VpbnRdXSkgewogICAgcHJvdG8gMyA1Cgp0ZXN0TmVzdGVkX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjYKICAgIC8vIGNvbnN0IFthLCBiXSA9IGFyZwogICAgZnJhbWVfZGlnIC0zCiAgICBmcmFtZV9kaWcgLTIKICAgIGZyYW1lX2RpZyAtMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo3CiAgICAvLyBjb25zdCBbYywgW2RdXSA9IGFyZwogICAgZnJhbWVfZGlnIC0zCiAgICBmcmFtZV9kaWcgLTIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OAogICAgLy8gcmV0dXJuIFthLCBiLCBjLCBkXSBhcyBjb25zdAogICAgdW5jb3ZlciA0CiAgICB1bmNvdmVyIDQKICAgIHVuY292ZXIgNAogICAgdW5jb3ZlciA0CiAgICB1bmNvdmVyIDQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28udGVzdCgpIC0+IHZvaWQ6CnRlc3Q6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjExCiAgICAvLyB0ZXN0KCkgewogICAgcHJvdG8gMCAwCgp0ZXN0X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjEyCiAgICAvLyBjb25zdCBbYSwgYiwgYywgZF0gPSB0aGlzLnByb2R1Y2VJdGVtcygpCiAgICBjYWxsc3ViIHByb2R1Y2VJdGVtcwogICAgY292ZXIgMwogICAgY292ZXIgMgogICAgc3dhcAogICAgY292ZXIgMwogICAgY292ZXIgMwogICAgY292ZXIgMwogICAgY292ZXIgMwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoxMwogICAgLy8gY29uc3QgWywgLCBlXSA9IHRoaXMucHJvZHVjZUl0ZW1zKCkKICAgIGNhbGxzdWIgcHJvZHVjZUl0ZW1zCiAgICBwb3AKICAgIGNvdmVyIDIKICAgIHBvcG4gMgogICAgY292ZXIgMwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoxNgogICAgLy8gY29uc3QgZiA9IChbZywgLCAsIGldID0gdGhpcy5wcm9kdWNlSXRlbXMoKSkKICAgIGNhbGxzdWIgcHJvZHVjZUl0ZW1zCiAgICBjb3ZlciAzCiAgICBjb3ZlciAyCiAgICBzd2FwCiAgICBjb3ZlciAyCiAgICBjb3ZlciAyCiAgICBjb3ZlciAyCiAgICBkdXAKICAgIGNvdmVyIDkKICAgIHN3YXAKICAgIGNvdmVyIDgKICAgIHN3YXAKICAgIGNvdmVyIDcKICAgIGRpZyAxCiAgICBjb3ZlciA3CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjE4CiAgICAvLyBhc3NlcnQoYSA9PT0gNSkKICAgIHVuY292ZXIgMgogICAgaW50Y18zIC8vIDUKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6MTkKICAgIC8vIGFzc2VydChiID09PSBCeXRlcygpKQogICAgdW5jb3ZlciAyCiAgICBieXRlY18wIC8vIDB4CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjIwCiAgICAvLyBhc3NlcnQoIWMpCiAgICB1bmNvdmVyIDIKICAgICEKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyMQogICAgLy8gYXNzZXJ0KGQgPT09IDZuKQogICAgdW5jb3ZlciAzCiAgICBieXRlY18xIC8vIDB4MDYKICAgIGI9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjIyCiAgICAvLyBhc3NlcnQoIWUpCiAgICB1bmNvdmVyIDIKICAgICEKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyMwogICAgLy8gYXNzZXJ0KGcgPT09IDUpCiAgICBpbnRjXzMgLy8gNQogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyNAogICAgLy8gYXNzZXJ0KGkgPT09IDZuKQogICAgYnl0ZWNfMSAvLyAweDA2CiAgICBiPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyNQogICAgLy8gYXNzZXJ0TWF0Y2goZiwgWzUsIEJ5dGVzKCksIGZhbHNlLCA2bl0pCiAgICBwdXNoaW50IDQgLy8gNAogICAgZHVwCiAgICA9PQogICAgYnogdGVzdF9ib29sX2ZhbHNlQDYKCnRlc3RfYW5kX2NvbnRkQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjI1CiAgICAvLyBhc3NlcnRNYXRjaChmLCBbNSwgQnl0ZXMoKSwgZmFsc2UsIDZuXSkKICAgIGZyYW1lX2RpZyAwCiAgICBpbnRjXzMgLy8gNQogICAgPT0KICAgIGJ6IHRlc3RfYm9vbF9mYWxzZUA2Cgp0ZXN0X2FuZF9jb250ZEAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyNQogICAgLy8gYXNzZXJ0TWF0Y2goZiwgWzUsIEJ5dGVzKCksIGZhbHNlLCA2bl0pCiAgICBmcmFtZV9kaWcgMQogICAgYnl0ZWNfMCAvLyAweAogICAgPT0KICAgIGJ6IHRlc3RfYm9vbF9mYWxzZUA2Cgp0ZXN0X2FuZF9jb250ZEAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyNQogICAgLy8gYXNzZXJ0TWF0Y2goZiwgWzUsIEJ5dGVzKCksIGZhbHNlLCA2bl0pCiAgICBmcmFtZV9kaWcgMgogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBieiB0ZXN0X2Jvb2xfZmFsc2VANgoKdGVzdF9hbmRfY29udGRANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6MjUKICAgIC8vIGFzc2VydE1hdGNoKGYsIFs1LCBCeXRlcygpLCBmYWxzZSwgNm5dKQogICAgZnJhbWVfZGlnIDMKICAgIGJ5dGVjXzEgLy8gMHgwNgogICAgYj09CiAgICBieiB0ZXN0X2Jvb2xfZmFsc2VANgoKdGVzdF9ib29sX3RydWVANToKICAgIGludGNfMiAvLyAxCgp0ZXN0X2Jvb2xfbWVyZ2VANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6MjUKICAgIC8vIGFzc2VydE1hdGNoKGYsIFs1LCBCeXRlcygpLCBmYWxzZSwgNm5dKQogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIHJldHN1YgoKdGVzdF9ib29sX2ZhbHNlQDY6CiAgICBpbnRjXzAgLy8gMAogICAgYiB0ZXN0X2Jvb2xfbWVyZ2VANwoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28ucHJvZHVjZUl0ZW1zKCkgLT4gdWludDY0LCBieXRlcywgdWludDY0LCBieXRlczoKcHJvZHVjZUl0ZW1zOgoKcHJvZHVjZUl0ZW1zX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjI5CiAgICAvLyByZXR1cm4gWzUsIEJ5dGVzKCksIGZhbHNlLCA2bl0KICAgIGludGNfMyAvLyA1CiAgICBieXRlY18wIC8vIDB4CiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMSAvLyAweDA2CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjpBcnJheURlc3RydWN0dXJpbmdBbGdvLnRlc3RMaXRlcmFsRGVzdHJ1Y3R1cmluZygpIC0+IHZvaWQ6CnRlc3RMaXRlcmFsRGVzdHJ1Y3R1cmluZzoKCnRlc3RMaXRlcmFsRGVzdHJ1Y3R1cmluZ19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czozMwogICAgLy8gbGV0IGEgPSBVaW50NjQoMSkKICAgIGludGNfMiAvLyAxCiAgICBkdXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6MzgKICAgIC8vIGFzc2VydCh4ID09PSBiKQogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czozNAogICAgLy8gbGV0IGIgPSBVaW50NjQoMikKICAgIHB1c2hpbnQgMiAvLyAyCiAgICBkdXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6MzkKICAgIC8vIGFzc2VydCh5ID09PSBhKQogICAgPT0KICAgIGFzc2VydAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo6QXJyYXlEZXN0cnVjdHVyaW5nQWxnby5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/array-destructuring/ArrayDestructuringAlgo.arc56.json b/tests/approvals/out/unoptimized/array-destructuring/ArrayDestructuringAlgo.arc56.json index a8bb7cd86..5547fec15 100644 --- a/tests/approvals/out/unoptimized/array-destructuring/ArrayDestructuringAlgo.arc56.json +++ b/tests/approvals/out/unoptimized/array-destructuring/ArrayDestructuringAlgo.arc56.json @@ -146,8 +146,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA2NCAxIDUKICAgIGJ5dGVjYmxvY2sgMHggMHgwNgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXJyYXlEZXN0cnVjdHVyaW5nQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDgKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg3NGI3ZThkZiAvLyBtZXRob2QgInRlc3ROZXN0ZWQoKHVpbnQ2NCwodWludDUxMix1aW50NTEyKSkpKHVpbnQ2NCwodWludDUxMix1aW50NTEyKSx1aW50NjQsdWludDUxMikiCiAgICBwdXNoYnl0ZXMgMHhhNzgwMDBkZSAvLyBtZXRob2QgInRlc3QoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHgyZGFmYzZjNiAvLyBtZXRob2QgInRlc3RMaXRlcmFsRGVzdHJ1Y3R1cmluZygpdm9pZCIKICAgIHVuY292ZXIgMwogICAgbWF0Y2ggbWFpbl90ZXN0TmVzdGVkX3JvdXRlQDMgbWFpbl90ZXN0X3JvdXRlQDQgbWFpbl90ZXN0TGl0ZXJhbERlc3RydWN0dXJpbmdfcm91dGVANQoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDY6CgptYWluX3N3aXRjaF9jYXNlX25leHRANzoKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTM6CiAgICByZXR1cm4KCm1haW5fdGVzdExpdGVyYWxEZXN0cnVjdHVyaW5nX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjMyCiAgICAvLyB0ZXN0TGl0ZXJhbERlc3RydWN0dXJpbmcoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3RMaXRlcmFsRGVzdHJ1Y3R1cmluZwogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fdGVzdF9yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoxMQogICAgLy8gdGVzdCgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdGVzdAogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fdGVzdE5lc3RlZF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo1CiAgICAvLyB0ZXN0TmVzdGVkKGFyZzogW3VpbnQ2NCwgW2JpZ3VpbnQsIGJpZ3VpbnRdXSkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXJyYXlEZXN0cnVjdHVyaW5nQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIHB1c2hpbnQgOCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHN3YXAKICAgIHB1c2hpbnQgOCAvLyA4CiAgICBwdXNoaW50IDEyOCAvLyAxMjgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18xIC8vIDY0CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIHN3YXAKICAgIGludGNfMSAvLyA2NAogICAgZHVwCiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6NQogICAgLy8gdGVzdE5lc3RlZChhcmc6IFt1aW50NjQsIFtiaWd1aW50LCBiaWd1aW50XV0pIHsKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIGNhbGxzdWIgdGVzdE5lc3RlZAogICAgY292ZXIgNAogICAgY292ZXIgMwogICAgY292ZXIgMgogICAgc3dhcAogICAgaXRvYgogICAgY292ZXIgNAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyA2NAogICAgPD0KICAgIGFzc2VydCAvLyBvdmVyZmxvdwogICAgaW50Y18xIC8vIDY0CiAgICBiemVybwogICAgYnwKICAgIGRpZyAxCiAgICBsZW4KICAgIGludGNfMSAvLyA2NAogICAgPD0KICAgIGFzc2VydCAvLyBvdmVyZmxvdwogICAgaW50Y18xIC8vIDY0CiAgICBiemVybwogICAgdW5jb3ZlciAyCiAgICBifAogICAgYnl0ZWNfMCAvLyAweAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgaXRvYgogICAgc3dhcAogICAgZGlnIDIKICAgIGxlbgogICAgaW50Y18xIC8vIDY0CiAgICA8PQogICAgYXNzZXJ0IC8vIG92ZXJmbG93CiAgICBpbnRjXzEgLy8gNjQKICAgIGJ6ZXJvCiAgICB1bmNvdmVyIDMKICAgIGJ8CiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDQKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fYmFyZV9yb3V0aW5nQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBcnJheURlc3RydWN0dXJpbmdBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDkKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXJyYXlEZXN0cnVjdHVyaW5nQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo6QXJyYXlEZXN0cnVjdHVyaW5nQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28udGVzdE5lc3RlZChhcmcuMDogdWludDY0LCBhcmcuMS4wOiBieXRlcywgYXJnLjEuMTogYnl0ZXMpIC0+IHVpbnQ2NCwgYnl0ZXMsIGJ5dGVzLCB1aW50NjQsIGJ5dGVzOgp0ZXN0TmVzdGVkOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo1CiAgICAvLyB0ZXN0TmVzdGVkKGFyZzogW3VpbnQ2NCwgW2JpZ3VpbnQsIGJpZ3VpbnRdXSkgewogICAgcHJvdG8gMyA1CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjYKICAgIC8vIGNvbnN0IFthLCBiXSA9IGFyZwogICAgZnJhbWVfZGlnIC0zCiAgICBmcmFtZV9kaWcgLTIKICAgIGZyYW1lX2RpZyAtMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo3CiAgICAvLyBjb25zdCBbYywgW2RdXSA9IGFyZwogICAgZnJhbWVfZGlnIC0zCiAgICBmcmFtZV9kaWcgLTIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OAogICAgLy8gcmV0dXJuIFthLCBiLCBjLCBkXSBhcyBjb25zdAogICAgdW5jb3ZlciA0CiAgICB1bmNvdmVyIDQKICAgIHVuY292ZXIgNAogICAgdW5jb3ZlciA0CiAgICB1bmNvdmVyIDQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28udGVzdCgpIC0+IHZvaWQ6CnRlc3Q6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjExCiAgICAvLyB0ZXN0KCkgewogICAgcHJvdG8gMCAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjEyCiAgICAvLyBjb25zdCBbYSwgYiwgYywgZF0gPSB0aGlzLnByb2R1Y2VJdGVtcygpCiAgICBjYWxsc3ViIHByb2R1Y2VJdGVtcwogICAgY292ZXIgMwogICAgY292ZXIgMgogICAgc3dhcAogICAgY292ZXIgMwogICAgY292ZXIgMwogICAgY292ZXIgMwogICAgY292ZXIgMwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoxMwogICAgLy8gY29uc3QgWywgLCBlXSA9IHRoaXMucHJvZHVjZUl0ZW1zKCkKICAgIGNhbGxzdWIgcHJvZHVjZUl0ZW1zCiAgICBwb3AKICAgIGNvdmVyIDIKICAgIHBvcG4gMgogICAgY292ZXIgMwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoxNgogICAgLy8gY29uc3QgZiA9IChbZywgLCAsIGldID0gdGhpcy5wcm9kdWNlSXRlbXMoKSkKICAgIGNhbGxzdWIgcHJvZHVjZUl0ZW1zCiAgICBjb3ZlciAzCiAgICBjb3ZlciAyCiAgICBzd2FwCiAgICBjb3ZlciAyCiAgICBjb3ZlciAyCiAgICBjb3ZlciAyCiAgICBkdXAKICAgIGNvdmVyIDkKICAgIHN3YXAKICAgIGNvdmVyIDgKICAgIHN3YXAKICAgIGNvdmVyIDcKICAgIGRpZyAxCiAgICBjb3ZlciA3CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjE4CiAgICAvLyBhc3NlcnQoYSA9PT0gNSkKICAgIHVuY292ZXIgMgogICAgaW50Y18zIC8vIDUKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6MTkKICAgIC8vIGFzc2VydChiID09PSBCeXRlcygpKQogICAgdW5jb3ZlciAyCiAgICBieXRlY18wIC8vIDB4CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjIwCiAgICAvLyBhc3NlcnQoIWMpCiAgICB1bmNvdmVyIDIKICAgICEKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyMQogICAgLy8gYXNzZXJ0KGQgPT09IDZuKQogICAgdW5jb3ZlciAzCiAgICBieXRlY18xIC8vIDB4MDYKICAgIGI9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjIyCiAgICAvLyBhc3NlcnQoIWUpCiAgICB1bmNvdmVyIDIKICAgICEKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyMwogICAgLy8gYXNzZXJ0KGcgPT09IDUpCiAgICBpbnRjXzMgLy8gNQogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyNAogICAgLy8gYXNzZXJ0KGkgPT09IDZuKQogICAgYnl0ZWNfMSAvLyAweDA2CiAgICBiPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyNQogICAgLy8gYXNzZXJ0TWF0Y2goZiwgWzUsIEJ5dGVzKCksIGZhbHNlLCA2bl0pCiAgICBwdXNoaW50IDQgLy8gNAogICAgZHVwCiAgICA9PQogICAgYnogdGVzdF9ib29sX2ZhbHNlQDYKCnRlc3RfYW5kX2NvbnRkQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjI1CiAgICAvLyBhc3NlcnRNYXRjaChmLCBbNSwgQnl0ZXMoKSwgZmFsc2UsIDZuXSkKICAgIGZyYW1lX2RpZyAwCiAgICBpbnRjXzMgLy8gNQogICAgPT0KICAgIGJ6IHRlc3RfYm9vbF9mYWxzZUA2Cgp0ZXN0X2FuZF9jb250ZEAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyNQogICAgLy8gYXNzZXJ0TWF0Y2goZiwgWzUsIEJ5dGVzKCksIGZhbHNlLCA2bl0pCiAgICBmcmFtZV9kaWcgMQogICAgYnl0ZWNfMCAvLyAweAogICAgPT0KICAgIGJ6IHRlc3RfYm9vbF9mYWxzZUA2Cgp0ZXN0X2FuZF9jb250ZEAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyNQogICAgLy8gYXNzZXJ0TWF0Y2goZiwgWzUsIEJ5dGVzKCksIGZhbHNlLCA2bl0pCiAgICBmcmFtZV9kaWcgMgogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBieiB0ZXN0X2Jvb2xfZmFsc2VANgoKdGVzdF9hbmRfY29udGRANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6MjUKICAgIC8vIGFzc2VydE1hdGNoKGYsIFs1LCBCeXRlcygpLCBmYWxzZSwgNm5dKQogICAgZnJhbWVfZGlnIDMKICAgIGJ5dGVjXzEgLy8gMHgwNgogICAgYj09CiAgICBieiB0ZXN0X2Jvb2xfZmFsc2VANgoKdGVzdF9ib29sX3RydWVANToKICAgIGludGNfMiAvLyAxCgp0ZXN0X2Jvb2xfbWVyZ2VANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6MjUKICAgIC8vIGFzc2VydE1hdGNoKGYsIFs1LCBCeXRlcygpLCBmYWxzZSwgNm5dKQogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIHJldHN1YgoKdGVzdF9ib29sX2ZhbHNlQDY6CiAgICBpbnRjXzAgLy8gMAogICAgYiB0ZXN0X2Jvb2xfbWVyZ2VANwoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28ucHJvZHVjZUl0ZW1zKCkgLT4gdWludDY0LCBieXRlcywgdWludDY0LCBieXRlczoKcHJvZHVjZUl0ZW1zOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyOQogICAgLy8gcmV0dXJuIFs1LCBCeXRlcygpLCBmYWxzZSwgNm5dCiAgICBpbnRjXzMgLy8gNQogICAgYnl0ZWNfMCAvLyAweAogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzEgLy8gMHgwNgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo6QXJyYXlEZXN0cnVjdHVyaW5nQWxnby50ZXN0TGl0ZXJhbERlc3RydWN0dXJpbmcoKSAtPiB2b2lkOgp0ZXN0TGl0ZXJhbERlc3RydWN0dXJpbmc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjMzCiAgICAvLyBsZXQgYSA9IFVpbnQ2NCgxKQogICAgaW50Y18yIC8vIDEKICAgIGR1cAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czozOAogICAgLy8gYXNzZXJ0KHggPT09IGIpCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjM0CiAgICAvLyBsZXQgYiA9IFVpbnQ2NCgyKQogICAgcHVzaGludCAyIC8vIDIKICAgIGR1cAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czozOQogICAgLy8gYXNzZXJ0KHkgPT09IGEpCiAgICA9PQogICAgYXNzZXJ0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjpBcnJheURlc3RydWN0dXJpbmdBbGdvLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA2NCAxIDUKICAgIGJ5dGVjYmxvY2sgMHggMHgwNgoKbWFpbl9ibG9ja0AwOgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXJyYXlEZXN0cnVjdHVyaW5nQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDgKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg3NGI3ZThkZiAvLyBtZXRob2QgInRlc3ROZXN0ZWQoKHVpbnQ2NCwodWludDUxMix1aW50NTEyKSkpKHVpbnQ2NCwodWludDUxMix1aW50NTEyKSx1aW50NjQsdWludDUxMikiCiAgICBwdXNoYnl0ZXMgMHhhNzgwMDBkZSAvLyBtZXRob2QgInRlc3QoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHgyZGFmYzZjNiAvLyBtZXRob2QgInRlc3RMaXRlcmFsRGVzdHJ1Y3R1cmluZygpdm9pZCIKICAgIHVuY292ZXIgMwogICAgbWF0Y2ggbWFpbl90ZXN0TmVzdGVkX3JvdXRlQDMgbWFpbl90ZXN0X3JvdXRlQDQgbWFpbl90ZXN0TGl0ZXJhbERlc3RydWN0dXJpbmdfcm91dGVANQoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDY6CgptYWluX3N3aXRjaF9jYXNlX25leHRANzoKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTM6CiAgICByZXR1cm4KCm1haW5fdGVzdExpdGVyYWxEZXN0cnVjdHVyaW5nX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjMyCiAgICAvLyB0ZXN0TGl0ZXJhbERlc3RydWN0dXJpbmcoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3RMaXRlcmFsRGVzdHJ1Y3R1cmluZwogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fdGVzdF9yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoxMQogICAgLy8gdGVzdCgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdGVzdAogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fdGVzdE5lc3RlZF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo1CiAgICAvLyB0ZXN0TmVzdGVkKGFyZzogW3VpbnQ2NCwgW2JpZ3VpbnQsIGJpZ3VpbnRdXSkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXJyYXlEZXN0cnVjdHVyaW5nQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIHB1c2hpbnQgOCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHN3YXAKICAgIHB1c2hpbnQgOCAvLyA4CiAgICBwdXNoaW50IDEyOCAvLyAxMjgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18xIC8vIDY0CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIHN3YXAKICAgIGludGNfMSAvLyA2NAogICAgZHVwCiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6NQogICAgLy8gdGVzdE5lc3RlZChhcmc6IFt1aW50NjQsIFtiaWd1aW50LCBiaWd1aW50XV0pIHsKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIGNhbGxzdWIgdGVzdE5lc3RlZAogICAgY292ZXIgNAogICAgY292ZXIgMwogICAgY292ZXIgMgogICAgc3dhcAogICAgaXRvYgogICAgY292ZXIgNAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyA2NAogICAgPD0KICAgIGFzc2VydCAvLyBvdmVyZmxvdwogICAgaW50Y18xIC8vIDY0CiAgICBiemVybwogICAgYnwKICAgIGRpZyAxCiAgICBsZW4KICAgIGludGNfMSAvLyA2NAogICAgPD0KICAgIGFzc2VydCAvLyBvdmVyZmxvdwogICAgaW50Y18xIC8vIDY0CiAgICBiemVybwogICAgdW5jb3ZlciAyCiAgICBifAogICAgYnl0ZWNfMCAvLyAweAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgaXRvYgogICAgc3dhcAogICAgZGlnIDIKICAgIGxlbgogICAgaW50Y18xIC8vIDY0CiAgICA8PQogICAgYXNzZXJ0IC8vIG92ZXJmbG93CiAgICBpbnRjXzEgLy8gNjQKICAgIGJ6ZXJvCiAgICB1bmNvdmVyIDMKICAgIGJ8CiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDQKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fYmFyZV9yb3V0aW5nQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBcnJheURlc3RydWN0dXJpbmdBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDkKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXJyYXlEZXN0cnVjdHVyaW5nQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo6QXJyYXlEZXN0cnVjdHVyaW5nQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28udGVzdE5lc3RlZChhcmcuMDogdWludDY0LCBhcmcuMS4wOiBieXRlcywgYXJnLjEuMTogYnl0ZXMpIC0+IHVpbnQ2NCwgYnl0ZXMsIGJ5dGVzLCB1aW50NjQsIGJ5dGVzOgp0ZXN0TmVzdGVkOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo1CiAgICAvLyB0ZXN0TmVzdGVkKGFyZzogW3VpbnQ2NCwgW2JpZ3VpbnQsIGJpZ3VpbnRdXSkgewogICAgcHJvdG8gMyA1Cgp0ZXN0TmVzdGVkX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjYKICAgIC8vIGNvbnN0IFthLCBiXSA9IGFyZwogICAgZnJhbWVfZGlnIC0zCiAgICBmcmFtZV9kaWcgLTIKICAgIGZyYW1lX2RpZyAtMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo3CiAgICAvLyBjb25zdCBbYywgW2RdXSA9IGFyZwogICAgZnJhbWVfZGlnIC0zCiAgICBmcmFtZV9kaWcgLTIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OAogICAgLy8gcmV0dXJuIFthLCBiLCBjLCBkXSBhcyBjb25zdAogICAgdW5jb3ZlciA0CiAgICB1bmNvdmVyIDQKICAgIHVuY292ZXIgNAogICAgdW5jb3ZlciA0CiAgICB1bmNvdmVyIDQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28udGVzdCgpIC0+IHZvaWQ6CnRlc3Q6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjExCiAgICAvLyB0ZXN0KCkgewogICAgcHJvdG8gMCAwCgp0ZXN0X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjEyCiAgICAvLyBjb25zdCBbYSwgYiwgYywgZF0gPSB0aGlzLnByb2R1Y2VJdGVtcygpCiAgICBjYWxsc3ViIHByb2R1Y2VJdGVtcwogICAgY292ZXIgMwogICAgY292ZXIgMgogICAgc3dhcAogICAgY292ZXIgMwogICAgY292ZXIgMwogICAgY292ZXIgMwogICAgY292ZXIgMwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoxMwogICAgLy8gY29uc3QgWywgLCBlXSA9IHRoaXMucHJvZHVjZUl0ZW1zKCkKICAgIGNhbGxzdWIgcHJvZHVjZUl0ZW1zCiAgICBwb3AKICAgIGNvdmVyIDIKICAgIHBvcG4gMgogICAgY292ZXIgMwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoxNgogICAgLy8gY29uc3QgZiA9IChbZywgLCAsIGldID0gdGhpcy5wcm9kdWNlSXRlbXMoKSkKICAgIGNhbGxzdWIgcHJvZHVjZUl0ZW1zCiAgICBjb3ZlciAzCiAgICBjb3ZlciAyCiAgICBzd2FwCiAgICBjb3ZlciAyCiAgICBjb3ZlciAyCiAgICBjb3ZlciAyCiAgICBkdXAKICAgIGNvdmVyIDkKICAgIHN3YXAKICAgIGNvdmVyIDgKICAgIHN3YXAKICAgIGNvdmVyIDcKICAgIGRpZyAxCiAgICBjb3ZlciA3CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjE4CiAgICAvLyBhc3NlcnQoYSA9PT0gNSkKICAgIHVuY292ZXIgMgogICAgaW50Y18zIC8vIDUKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6MTkKICAgIC8vIGFzc2VydChiID09PSBCeXRlcygpKQogICAgdW5jb3ZlciAyCiAgICBieXRlY18wIC8vIDB4CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjIwCiAgICAvLyBhc3NlcnQoIWMpCiAgICB1bmNvdmVyIDIKICAgICEKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyMQogICAgLy8gYXNzZXJ0KGQgPT09IDZuKQogICAgdW5jb3ZlciAzCiAgICBieXRlY18xIC8vIDB4MDYKICAgIGI9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjIyCiAgICAvLyBhc3NlcnQoIWUpCiAgICB1bmNvdmVyIDIKICAgICEKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyMwogICAgLy8gYXNzZXJ0KGcgPT09IDUpCiAgICBpbnRjXzMgLy8gNQogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyNAogICAgLy8gYXNzZXJ0KGkgPT09IDZuKQogICAgYnl0ZWNfMSAvLyAweDA2CiAgICBiPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyNQogICAgLy8gYXNzZXJ0TWF0Y2goZiwgWzUsIEJ5dGVzKCksIGZhbHNlLCA2bl0pCiAgICBwdXNoaW50IDQgLy8gNAogICAgZHVwCiAgICA9PQogICAgYnogdGVzdF9ib29sX2ZhbHNlQDYKCnRlc3RfYW5kX2NvbnRkQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjI1CiAgICAvLyBhc3NlcnRNYXRjaChmLCBbNSwgQnl0ZXMoKSwgZmFsc2UsIDZuXSkKICAgIGZyYW1lX2RpZyAwCiAgICBpbnRjXzMgLy8gNQogICAgPT0KICAgIGJ6IHRlc3RfYm9vbF9mYWxzZUA2Cgp0ZXN0X2FuZF9jb250ZEAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyNQogICAgLy8gYXNzZXJ0TWF0Y2goZiwgWzUsIEJ5dGVzKCksIGZhbHNlLCA2bl0pCiAgICBmcmFtZV9kaWcgMQogICAgYnl0ZWNfMCAvLyAweAogICAgPT0KICAgIGJ6IHRlc3RfYm9vbF9mYWxzZUA2Cgp0ZXN0X2FuZF9jb250ZEAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czoyNQogICAgLy8gYXNzZXJ0TWF0Y2goZiwgWzUsIEJ5dGVzKCksIGZhbHNlLCA2bl0pCiAgICBmcmFtZV9kaWcgMgogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBieiB0ZXN0X2Jvb2xfZmFsc2VANgoKdGVzdF9hbmRfY29udGRANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6MjUKICAgIC8vIGFzc2VydE1hdGNoKGYsIFs1LCBCeXRlcygpLCBmYWxzZSwgNm5dKQogICAgZnJhbWVfZGlnIDMKICAgIGJ5dGVjXzEgLy8gMHgwNgogICAgYj09CiAgICBieiB0ZXN0X2Jvb2xfZmFsc2VANgoKdGVzdF9ib29sX3RydWVANToKICAgIGludGNfMiAvLyAxCgp0ZXN0X2Jvb2xfbWVyZ2VANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6MjUKICAgIC8vIGFzc2VydE1hdGNoKGYsIFs1LCBCeXRlcygpLCBmYWxzZSwgNm5dKQogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIHJldHN1YgoKdGVzdF9ib29sX2ZhbHNlQDY6CiAgICBpbnRjXzAgLy8gMAogICAgYiB0ZXN0X2Jvb2xfbWVyZ2VANwoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6OkFycmF5RGVzdHJ1Y3R1cmluZ0FsZ28ucHJvZHVjZUl0ZW1zKCkgLT4gdWludDY0LCBieXRlcywgdWludDY0LCBieXRlczoKcHJvZHVjZUl0ZW1zOgoKcHJvZHVjZUl0ZW1zX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjI5CiAgICAvLyByZXR1cm4gWzUsIEJ5dGVzKCksIGZhbHNlLCA2bl0KICAgIGludGNfMyAvLyA1CiAgICBieXRlY18wIC8vIDB4CiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMSAvLyAweDA2CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJyYXktZGVzdHJ1Y3R1cmluZy5hbGdvLnRzOjpBcnJheURlc3RydWN0dXJpbmdBbGdvLnRlc3RMaXRlcmFsRGVzdHJ1Y3R1cmluZygpIC0+IHZvaWQ6CnRlc3RMaXRlcmFsRGVzdHJ1Y3R1cmluZzoKCnRlc3RMaXRlcmFsRGVzdHJ1Y3R1cmluZ19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czozMwogICAgLy8gbGV0IGEgPSBVaW50NjQoMSkKICAgIGludGNfMiAvLyAxCiAgICBkdXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6MzgKICAgIC8vIGFzc2VydCh4ID09PSBiKQogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czozNAogICAgLy8gbGV0IGIgPSBVaW50NjQoMikKICAgIHB1c2hpbnQgMiAvLyAyCiAgICBkdXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcnJheS1kZXN0cnVjdHVyaW5nLmFsZ28udHM6MzkKICAgIC8vIGFzc2VydCh5ID09PSBhKQogICAgPT0KICAgIGFzc2VydAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FycmF5LWRlc3RydWN0dXJpbmcuYWxnby50czo6QXJyYXlEZXN0cnVjdHVyaW5nQWxnby5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiAEAEABBSYCAAEGMRsiE0EAuDYaAIAEdLfo34AEp4AA3oAELa/Gxk8DjgMAJAATAAIiQzEZIhJEMRgiE0SIAT0kQv/uMRkiEkQxGCITRIgAqCRC/90xGSISRDEYIhNENhoBSSKBCFgXTIEIgYABWEkiI1hMI0lYTwJPAk8CiABhTgROA04CTBZOBEkVIw5EI6+rSwEVIw5EI69PAqsoTwJQTFBMFkxLAhUjDkQjr08DqyhPBFBPAlBPAlBMUIAEFR98dUxQsCRC/2gxGSJMjgEAA0L/XDEYIhJEiACqJEL/UYoDBYv9i/6L/4v9i/5PBE8ETwRPBE8EiYoAAIgAeU4DTgJMTgNOA04DTgOIAGlITgJGAk4DiABfTgNOAkxOAk4CTgJJTglMTghMTgdLAU4HTwIlEkRPAigSRE8CFERPAymoRE8CFEQlEkQpqESBBEkSQQAfiwAlEkEAGIsBKBJBABGLAiISQQAKiwMpqEEAAyREiSJC//olKCIpiSRJEkSBAkkSRImJ", @@ -158,7 +158,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/array-destructuring/ArrayDestructuringAlgo.clear.teal b/tests/approvals/out/unoptimized/array-destructuring/ArrayDestructuringAlgo.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/array-destructuring/ArrayDestructuringAlgo.clear.teal +++ b/tests/approvals/out/unoptimized/array-destructuring/ArrayDestructuringAlgo.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/assert-match/AssertMatchContract.approval.teal b/tests/approvals/out/unoptimized/assert-match/AssertMatchContract.approval.teal index 2a46be8ce..53fc79a9c 100644 --- a/tests/approvals/out/unoptimized/assert-match/AssertMatchContract.approval.teal +++ b/tests/approvals/out/unoptimized/assert-match/AssertMatchContract.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 +main_block@0: + main_block@1: // tests/approvals/assert-match.algo.ts:4 // export class AssertMatchContract extends Contract { @@ -98,6 +100,8 @@ testPay: // tests/approvals/assert-match.algo.ts:5 // public testPay(pay: gtxn.PaymentTxn): boolean { proto 1 1 + +testPay_block@0: // tests/approvals/assert-match.algo.ts:6-8 // assertMatch(Txn, { // fee: { greaterThan: 0 }, @@ -326,4 +330,6 @@ testPay_bool_false@8: // tests/approvals/assert-match.algo.ts::AssertMatchContract.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/assert-match/AssertMatchContract.arc32.json b/tests/approvals/out/unoptimized/assert-match/AssertMatchContract.arc32.json index f28d30ad3..3ebcca330 100644 --- a/tests/approvals/out/unoptimized/assert-match/AssertMatchContract.arc32.json +++ b/tests/approvals/out/unoptimized/assert-match/AssertMatchContract.arc32.json @@ -7,8 +7,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFzc2VydE1hdGNoQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFzc2VydE1hdGNoQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg4ZmVmNzY2OCAvLyBtZXRob2QgInRlc3RQYXkocGF5KWJvb2wiCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3Rlc3RQYXlfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXNzZXJ0TWF0Y2hDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjpBc3NlcnRNYXRjaENvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX3Rlc3RQYXlfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czo1CiAgICAvLyBwdWJsaWMgdGVzdFBheShwYXk6IGd0eG4uUGF5bWVudFR4bik6IGJvb2xlYW4gewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBc3NlcnRNYXRjaENvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEdyb3VwSW5kZXgKICAgIGludGNfMSAvLyAxCiAgICAtCiAgICBkdXAKICAgIGd0eG5zIFR5cGVFbnVtCiAgICBpbnRjXzEgLy8gcGF5CiAgICA9PQogICAgYXNzZXJ0IC8vIHRyYW5zYWN0aW9uIHR5cGUgaXMgcGF5CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6NQogICAgLy8gcHVibGljIHRlc3RQYXkocGF5OiBndHhuLlBheW1lbnRUeG4pOiBib29sZWFuIHsKICAgIGNhbGxzdWIgdGVzdFBheQogICAgcHVzaGJ5dGVzIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjpBc3NlcnRNYXRjaENvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBc3NlcnRNYXRjaENvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXNzZXJ0TWF0Y2hDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjpBc3NlcnRNYXRjaENvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjpBc3NlcnRNYXRjaENvbnRyYWN0LnRlc3RQYXkocGF5OiB1aW50NjQpIC0+IHVpbnQ2NDoKdGVzdFBheToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czo1CiAgICAvLyBwdWJsaWMgdGVzdFBheShwYXk6IGd0eG4uUGF5bWVudFR4bik6IGJvb2xlYW4gewogICAgcHJvdG8gMSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6Ni04CiAgICAvLyBhc3NlcnRNYXRjaChUeG4sIHsKICAgIC8vICAgZmVlOiB7IGdyZWF0ZXJUaGFuOiAwIH0sCiAgICAvLyB9KQogICAgdHhuIEZlZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjcKICAgIC8vIGZlZTogeyBncmVhdGVyVGhhbjogMCB9LAogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czo2LTgKICAgIC8vIGFzc2VydE1hdGNoKFR4biwgewogICAgLy8gICBmZWU6IHsgZ3JlYXRlclRoYW46IDAgfSwKICAgIC8vIH0pCiAgICA+CiAgICBhc3NlcnQgLy8gYXNzZXJ0IHRhcmdldCBpcyBtYXRjaCBmb3IgY29uZGl0aW9ucwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjEwLTE3CiAgICAvLyBhc3NlcnRNYXRjaChwYXksIHsKICAgIC8vICAgYW1vdW50OiB7IGJldHdlZW46IFsxMDBfMDAwLCAxMDVfMDAwXSB9LAogICAgLy8gICBzZW5kZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgY2xvc2VSZW1haW5kZXJUbzogR2xvYmFsLnplcm9BZGRyZXNzLAogICAgLy8gICBmaXJzdFZhbGlkOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCiAgICAvLyAgIGxhc3RWYWxpZDogeyBsZXNzVGhhbjogMiAqKiA0MCB9LAogICAgLy8gfSkKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgQW1vdW50CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTEKICAgIC8vIGFtb3VudDogeyBiZXR3ZWVuOiBbMTAwXzAwMCwgMTA1XzAwMF0gfSwKICAgIHB1c2hpbnQgMTA1MDAwIC8vIDEwNTAwMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjEwLTE3CiAgICAvLyBhc3NlcnRNYXRjaChwYXksIHsKICAgIC8vICAgYW1vdW50OiB7IGJldHdlZW46IFsxMDBfMDAwLCAxMDVfMDAwXSB9LAogICAgLy8gICBzZW5kZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgY2xvc2VSZW1haW5kZXJUbzogR2xvYmFsLnplcm9BZGRyZXNzLAogICAgLy8gICBmaXJzdFZhbGlkOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCiAgICAvLyAgIGxhc3RWYWxpZDogeyBsZXNzVGhhbjogMiAqKiA0MCB9LAogICAgLy8gfSkKICAgIDw9CiAgICBieiB0ZXN0UGF5X2Jvb2xfZmFsc2VAOAoKdGVzdFBheV9hbmRfY29udGRAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czoxMC0xNwogICAgLy8gYXNzZXJ0TWF0Y2gocGF5LCB7CiAgICAvLyAgIGFtb3VudDogeyBiZXR3ZWVuOiBbMTAwXzAwMCwgMTA1XzAwMF0gfSwKICAgIC8vICAgc2VuZGVyOiBUeG4uc2VuZGVyLAogICAgLy8gICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgIGNsb3NlUmVtYWluZGVyVG86IEdsb2JhbC56ZXJvQWRkcmVzcywKICAgIC8vICAgZmlyc3RWYWxpZDogeyBncmVhdGVyVGhhbjogMSB9LAogICAgLy8gICBsYXN0VmFsaWQ6IHsgbGVzc1RoYW46IDIgKiogNDAgfSwKICAgIC8vIH0pCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIEFtb3VudAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjExCiAgICAvLyBhbW91bnQ6IHsgYmV0d2VlbjogWzEwMF8wMDAsIDEwNV8wMDBdIH0sCiAgICBwdXNoaW50IDEwMDAwMCAvLyAxMDAwMDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czoxMC0xNwogICAgLy8gYXNzZXJ0TWF0Y2gocGF5LCB7CiAgICAvLyAgIGFtb3VudDogeyBiZXR3ZWVuOiBbMTAwXzAwMCwgMTA1XzAwMF0gfSwKICAgIC8vICAgc2VuZGVyOiBUeG4uc2VuZGVyLAogICAgLy8gICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgIGNsb3NlUmVtYWluZGVyVG86IEdsb2JhbC56ZXJvQWRkcmVzcywKICAgIC8vICAgZmlyc3RWYWxpZDogeyBncmVhdGVyVGhhbjogMSB9LAogICAgLy8gICBsYXN0VmFsaWQ6IHsgbGVzc1RoYW46IDIgKiogNDAgfSwKICAgIC8vIH0pCiAgICA+PQogICAgYnogdGVzdFBheV9ib29sX2ZhbHNlQDgKCnRlc3RQYXlfYW5kX2NvbnRkQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTAtMTcKICAgIC8vIGFzc2VydE1hdGNoKHBheSwgewogICAgLy8gICBhbW91bnQ6IHsgYmV0d2VlbjogWzEwMF8wMDAsIDEwNV8wMDBdIH0sCiAgICAvLyAgIHNlbmRlcjogVHhuLnNlbmRlciwKICAgIC8vICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICBjbG9zZVJlbWFpbmRlclRvOiBHbG9iYWwuemVyb0FkZHJlc3MsCiAgICAvLyAgIGZpcnN0VmFsaWQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKICAgIC8vICAgbGFzdFZhbGlkOiB7IGxlc3NUaGFuOiAyICoqIDQwIH0sCiAgICAvLyB9KQogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czoxMgogICAgLy8gc2VuZGVyOiBUeG4uc2VuZGVyLAogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjEwLTE3CiAgICAvLyBhc3NlcnRNYXRjaChwYXksIHsKICAgIC8vICAgYW1vdW50OiB7IGJldHdlZW46IFsxMDBfMDAwLCAxMDVfMDAwXSB9LAogICAgLy8gICBzZW5kZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgY2xvc2VSZW1haW5kZXJUbzogR2xvYmFsLnplcm9BZGRyZXNzLAogICAgLy8gICBmaXJzdFZhbGlkOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCiAgICAvLyAgIGxhc3RWYWxpZDogeyBsZXNzVGhhbjogMiAqKiA0MCB9LAogICAgLy8gfSkKICAgID09CiAgICBieiB0ZXN0UGF5X2Jvb2xfZmFsc2VAOAoKdGVzdFBheV9hbmRfY29udGRAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czoxMC0xNwogICAgLy8gYXNzZXJ0TWF0Y2gocGF5LCB7CiAgICAvLyAgIGFtb3VudDogeyBiZXR3ZWVuOiBbMTAwXzAwMCwgMTA1XzAwMF0gfSwKICAgIC8vICAgc2VuZGVyOiBUeG4uc2VuZGVyLAogICAgLy8gICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgIGNsb3NlUmVtYWluZGVyVG86IEdsb2JhbC56ZXJvQWRkcmVzcywKICAgIC8vICAgZmlyc3RWYWxpZDogeyBncmVhdGVyVGhhbjogMSB9LAogICAgLy8gICBsYXN0VmFsaWQ6IHsgbGVzc1RoYW46IDIgKiogNDAgfSwKICAgIC8vIH0pCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIFJlY2VpdmVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTMKICAgIC8vIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTAtMTcKICAgIC8vIGFzc2VydE1hdGNoKHBheSwgewogICAgLy8gICBhbW91bnQ6IHsgYmV0d2VlbjogWzEwMF8wMDAsIDEwNV8wMDBdIH0sCiAgICAvLyAgIHNlbmRlcjogVHhuLnNlbmRlciwKICAgIC8vICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICBjbG9zZVJlbWFpbmRlclRvOiBHbG9iYWwuemVyb0FkZHJlc3MsCiAgICAvLyAgIGZpcnN0VmFsaWQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKICAgIC8vICAgbGFzdFZhbGlkOiB7IGxlc3NUaGFuOiAyICoqIDQwIH0sCiAgICAvLyB9KQogICAgPT0KICAgIGJ6IHRlc3RQYXlfYm9vbF9mYWxzZUA4Cgp0ZXN0UGF5X2FuZF9jb250ZEA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjEwLTE3CiAgICAvLyBhc3NlcnRNYXRjaChwYXksIHsKICAgIC8vICAgYW1vdW50OiB7IGJldHdlZW46IFsxMDBfMDAwLCAxMDVfMDAwXSB9LAogICAgLy8gICBzZW5kZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgY2xvc2VSZW1haW5kZXJUbzogR2xvYmFsLnplcm9BZGRyZXNzLAogICAgLy8gICBmaXJzdFZhbGlkOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCiAgICAvLyAgIGxhc3RWYWxpZDogeyBsZXNzVGhhbjogMiAqKiA0MCB9LAogICAgLy8gfSkKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgQ2xvc2VSZW1haW5kZXJUbwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjE0CiAgICAvLyBjbG9zZVJlbWFpbmRlclRvOiBHbG9iYWwuemVyb0FkZHJlc3MsCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czoxMC0xNwogICAgLy8gYXNzZXJ0TWF0Y2gocGF5LCB7CiAgICAvLyAgIGFtb3VudDogeyBiZXR3ZWVuOiBbMTAwXzAwMCwgMTA1XzAwMF0gfSwKICAgIC8vICAgc2VuZGVyOiBUeG4uc2VuZGVyLAogICAgLy8gICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgIGNsb3NlUmVtYWluZGVyVG86IEdsb2JhbC56ZXJvQWRkcmVzcywKICAgIC8vICAgZmlyc3RWYWxpZDogeyBncmVhdGVyVGhhbjogMSB9LAogICAgLy8gICBsYXN0VmFsaWQ6IHsgbGVzc1RoYW46IDIgKiogNDAgfSwKICAgIC8vIH0pCiAgICA9PQogICAgYnogdGVzdFBheV9ib29sX2ZhbHNlQDgKCnRlc3RQYXlfYW5kX2NvbnRkQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTAtMTcKICAgIC8vIGFzc2VydE1hdGNoKHBheSwgewogICAgLy8gICBhbW91bnQ6IHsgYmV0d2VlbjogWzEwMF8wMDAsIDEwNV8wMDBdIH0sCiAgICAvLyAgIHNlbmRlcjogVHhuLnNlbmRlciwKICAgIC8vICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICBjbG9zZVJlbWFpbmRlclRvOiBHbG9iYWwuemVyb0FkZHJlc3MsCiAgICAvLyAgIGZpcnN0VmFsaWQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKICAgIC8vICAgbGFzdFZhbGlkOiB7IGxlc3NUaGFuOiAyICoqIDQwIH0sCiAgICAvLyB9KQogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBGaXJzdFZhbGlkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTUKICAgIC8vIGZpcnN0VmFsaWQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKICAgIGludGNfMSAvLyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTAtMTcKICAgIC8vIGFzc2VydE1hdGNoKHBheSwgewogICAgLy8gICBhbW91bnQ6IHsgYmV0d2VlbjogWzEwMF8wMDAsIDEwNV8wMDBdIH0sCiAgICAvLyAgIHNlbmRlcjogVHhuLnNlbmRlciwKICAgIC8vICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICBjbG9zZVJlbWFpbmRlclRvOiBHbG9iYWwuemVyb0FkZHJlc3MsCiAgICAvLyAgIGZpcnN0VmFsaWQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKICAgIC8vICAgbGFzdFZhbGlkOiB7IGxlc3NUaGFuOiAyICoqIDQwIH0sCiAgICAvLyB9KQogICAgPgogICAgYnogdGVzdFBheV9ib29sX2ZhbHNlQDgKCnRlc3RQYXlfYW5kX2NvbnRkQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTAtMTcKICAgIC8vIGFzc2VydE1hdGNoKHBheSwgewogICAgLy8gICBhbW91bnQ6IHsgYmV0d2VlbjogWzEwMF8wMDAsIDEwNV8wMDBdIH0sCiAgICAvLyAgIHNlbmRlcjogVHhuLnNlbmRlciwKICAgIC8vICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICBjbG9zZVJlbWFpbmRlclRvOiBHbG9iYWwuemVyb0FkZHJlc3MsCiAgICAvLyAgIGZpcnN0VmFsaWQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKICAgIC8vICAgbGFzdFZhbGlkOiB7IGxlc3NUaGFuOiAyICoqIDQwIH0sCiAgICAvLyB9KQogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBMYXN0VmFsaWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czoxNgogICAgLy8gbGFzdFZhbGlkOiB7IGxlc3NUaGFuOiAyICoqIDQwIH0sCiAgICBwdXNoaW50IDEwOTk1MTE2Mjc3NzYgLy8gMTA5OTUxMTYyNzc3NgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjEwLTE3CiAgICAvLyBhc3NlcnRNYXRjaChwYXksIHsKICAgIC8vICAgYW1vdW50OiB7IGJldHdlZW46IFsxMDBfMDAwLCAxMDVfMDAwXSB9LAogICAgLy8gICBzZW5kZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgY2xvc2VSZW1haW5kZXJUbzogR2xvYmFsLnplcm9BZGRyZXNzLAogICAgLy8gICBmaXJzdFZhbGlkOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCiAgICAvLyAgIGxhc3RWYWxpZDogeyBsZXNzVGhhbjogMiAqKiA0MCB9LAogICAgLy8gfSkKICAgIDwKICAgIGJ6IHRlc3RQYXlfYm9vbF9mYWxzZUA4Cgp0ZXN0UGF5X2Jvb2xfdHJ1ZUA3OgogICAgaW50Y18xIC8vIDEKCnRlc3RQYXlfYm9vbF9tZXJnZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjEwLTE3CiAgICAvLyBhc3NlcnRNYXRjaChwYXksIHsKICAgIC8vICAgYW1vdW50OiB7IGJldHdlZW46IFsxMDBfMDAwLCAxMDVfMDAwXSB9LAogICAgLy8gICBzZW5kZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgY2xvc2VSZW1haW5kZXJUbzogR2xvYmFsLnplcm9BZGRyZXNzLAogICAgLy8gICBmaXJzdFZhbGlkOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCiAgICAvLyAgIGxhc3RWYWxpZDogeyBsZXNzVGhhbjogMiAqKiA0MCB9LAogICAgLy8gfSkKICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTgKICAgIC8vIHJldHVybiB0cnVlCiAgICBpbnRjXzEgLy8gMQogICAgcmV0c3ViCgp0ZXN0UGF5X2Jvb2xfZmFsc2VAODoKICAgIGludGNfMCAvLyAwCiAgICBiIHRlc3RQYXlfYm9vbF9tZXJnZUA5CgoKLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjpBc3NlcnRNYXRjaENvbnRyYWN0Ll9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFzc2VydE1hdGNoQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFzc2VydE1hdGNoQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg4ZmVmNzY2OCAvLyBtZXRob2QgInRlc3RQYXkocGF5KWJvb2wiCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3Rlc3RQYXlfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXNzZXJ0TWF0Y2hDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjpBc3NlcnRNYXRjaENvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX3Rlc3RQYXlfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czo1CiAgICAvLyBwdWJsaWMgdGVzdFBheShwYXk6IGd0eG4uUGF5bWVudFR4bik6IGJvb2xlYW4gewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBc3NlcnRNYXRjaENvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEdyb3VwSW5kZXgKICAgIGludGNfMSAvLyAxCiAgICAtCiAgICBkdXAKICAgIGd0eG5zIFR5cGVFbnVtCiAgICBpbnRjXzEgLy8gcGF5CiAgICA9PQogICAgYXNzZXJ0IC8vIHRyYW5zYWN0aW9uIHR5cGUgaXMgcGF5CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6NQogICAgLy8gcHVibGljIHRlc3RQYXkocGF5OiBndHhuLlBheW1lbnRUeG4pOiBib29sZWFuIHsKICAgIGNhbGxzdWIgdGVzdFBheQogICAgcHVzaGJ5dGVzIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjpBc3NlcnRNYXRjaENvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBc3NlcnRNYXRjaENvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXNzZXJ0TWF0Y2hDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjpBc3NlcnRNYXRjaENvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjpBc3NlcnRNYXRjaENvbnRyYWN0LnRlc3RQYXkocGF5OiB1aW50NjQpIC0+IHVpbnQ2NDoKdGVzdFBheToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czo1CiAgICAvLyBwdWJsaWMgdGVzdFBheShwYXk6IGd0eG4uUGF5bWVudFR4bik6IGJvb2xlYW4gewogICAgcHJvdG8gMSAxCgp0ZXN0UGF5X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6Ni04CiAgICAvLyBhc3NlcnRNYXRjaChUeG4sIHsKICAgIC8vICAgZmVlOiB7IGdyZWF0ZXJUaGFuOiAwIH0sCiAgICAvLyB9KQogICAgdHhuIEZlZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjcKICAgIC8vIGZlZTogeyBncmVhdGVyVGhhbjogMCB9LAogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czo2LTgKICAgIC8vIGFzc2VydE1hdGNoKFR4biwgewogICAgLy8gICBmZWU6IHsgZ3JlYXRlclRoYW46IDAgfSwKICAgIC8vIH0pCiAgICA+CiAgICBhc3NlcnQgLy8gYXNzZXJ0IHRhcmdldCBpcyBtYXRjaCBmb3IgY29uZGl0aW9ucwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjEwLTE3CiAgICAvLyBhc3NlcnRNYXRjaChwYXksIHsKICAgIC8vICAgYW1vdW50OiB7IGJldHdlZW46IFsxMDBfMDAwLCAxMDVfMDAwXSB9LAogICAgLy8gICBzZW5kZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgY2xvc2VSZW1haW5kZXJUbzogR2xvYmFsLnplcm9BZGRyZXNzLAogICAgLy8gICBmaXJzdFZhbGlkOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCiAgICAvLyAgIGxhc3RWYWxpZDogeyBsZXNzVGhhbjogMiAqKiA0MCB9LAogICAgLy8gfSkKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgQW1vdW50CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTEKICAgIC8vIGFtb3VudDogeyBiZXR3ZWVuOiBbMTAwXzAwMCwgMTA1XzAwMF0gfSwKICAgIHB1c2hpbnQgMTA1MDAwIC8vIDEwNTAwMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjEwLTE3CiAgICAvLyBhc3NlcnRNYXRjaChwYXksIHsKICAgIC8vICAgYW1vdW50OiB7IGJldHdlZW46IFsxMDBfMDAwLCAxMDVfMDAwXSB9LAogICAgLy8gICBzZW5kZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgY2xvc2VSZW1haW5kZXJUbzogR2xvYmFsLnplcm9BZGRyZXNzLAogICAgLy8gICBmaXJzdFZhbGlkOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCiAgICAvLyAgIGxhc3RWYWxpZDogeyBsZXNzVGhhbjogMiAqKiA0MCB9LAogICAgLy8gfSkKICAgIDw9CiAgICBieiB0ZXN0UGF5X2Jvb2xfZmFsc2VAOAoKdGVzdFBheV9hbmRfY29udGRAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czoxMC0xNwogICAgLy8gYXNzZXJ0TWF0Y2gocGF5LCB7CiAgICAvLyAgIGFtb3VudDogeyBiZXR3ZWVuOiBbMTAwXzAwMCwgMTA1XzAwMF0gfSwKICAgIC8vICAgc2VuZGVyOiBUeG4uc2VuZGVyLAogICAgLy8gICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgIGNsb3NlUmVtYWluZGVyVG86IEdsb2JhbC56ZXJvQWRkcmVzcywKICAgIC8vICAgZmlyc3RWYWxpZDogeyBncmVhdGVyVGhhbjogMSB9LAogICAgLy8gICBsYXN0VmFsaWQ6IHsgbGVzc1RoYW46IDIgKiogNDAgfSwKICAgIC8vIH0pCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIEFtb3VudAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjExCiAgICAvLyBhbW91bnQ6IHsgYmV0d2VlbjogWzEwMF8wMDAsIDEwNV8wMDBdIH0sCiAgICBwdXNoaW50IDEwMDAwMCAvLyAxMDAwMDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czoxMC0xNwogICAgLy8gYXNzZXJ0TWF0Y2gocGF5LCB7CiAgICAvLyAgIGFtb3VudDogeyBiZXR3ZWVuOiBbMTAwXzAwMCwgMTA1XzAwMF0gfSwKICAgIC8vICAgc2VuZGVyOiBUeG4uc2VuZGVyLAogICAgLy8gICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgIGNsb3NlUmVtYWluZGVyVG86IEdsb2JhbC56ZXJvQWRkcmVzcywKICAgIC8vICAgZmlyc3RWYWxpZDogeyBncmVhdGVyVGhhbjogMSB9LAogICAgLy8gICBsYXN0VmFsaWQ6IHsgbGVzc1RoYW46IDIgKiogNDAgfSwKICAgIC8vIH0pCiAgICA+PQogICAgYnogdGVzdFBheV9ib29sX2ZhbHNlQDgKCnRlc3RQYXlfYW5kX2NvbnRkQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTAtMTcKICAgIC8vIGFzc2VydE1hdGNoKHBheSwgewogICAgLy8gICBhbW91bnQ6IHsgYmV0d2VlbjogWzEwMF8wMDAsIDEwNV8wMDBdIH0sCiAgICAvLyAgIHNlbmRlcjogVHhuLnNlbmRlciwKICAgIC8vICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICBjbG9zZVJlbWFpbmRlclRvOiBHbG9iYWwuemVyb0FkZHJlc3MsCiAgICAvLyAgIGZpcnN0VmFsaWQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKICAgIC8vICAgbGFzdFZhbGlkOiB7IGxlc3NUaGFuOiAyICoqIDQwIH0sCiAgICAvLyB9KQogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czoxMgogICAgLy8gc2VuZGVyOiBUeG4uc2VuZGVyLAogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjEwLTE3CiAgICAvLyBhc3NlcnRNYXRjaChwYXksIHsKICAgIC8vICAgYW1vdW50OiB7IGJldHdlZW46IFsxMDBfMDAwLCAxMDVfMDAwXSB9LAogICAgLy8gICBzZW5kZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgY2xvc2VSZW1haW5kZXJUbzogR2xvYmFsLnplcm9BZGRyZXNzLAogICAgLy8gICBmaXJzdFZhbGlkOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCiAgICAvLyAgIGxhc3RWYWxpZDogeyBsZXNzVGhhbjogMiAqKiA0MCB9LAogICAgLy8gfSkKICAgID09CiAgICBieiB0ZXN0UGF5X2Jvb2xfZmFsc2VAOAoKdGVzdFBheV9hbmRfY29udGRAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czoxMC0xNwogICAgLy8gYXNzZXJ0TWF0Y2gocGF5LCB7CiAgICAvLyAgIGFtb3VudDogeyBiZXR3ZWVuOiBbMTAwXzAwMCwgMTA1XzAwMF0gfSwKICAgIC8vICAgc2VuZGVyOiBUeG4uc2VuZGVyLAogICAgLy8gICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgIGNsb3NlUmVtYWluZGVyVG86IEdsb2JhbC56ZXJvQWRkcmVzcywKICAgIC8vICAgZmlyc3RWYWxpZDogeyBncmVhdGVyVGhhbjogMSB9LAogICAgLy8gICBsYXN0VmFsaWQ6IHsgbGVzc1RoYW46IDIgKiogNDAgfSwKICAgIC8vIH0pCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIFJlY2VpdmVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTMKICAgIC8vIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTAtMTcKICAgIC8vIGFzc2VydE1hdGNoKHBheSwgewogICAgLy8gICBhbW91bnQ6IHsgYmV0d2VlbjogWzEwMF8wMDAsIDEwNV8wMDBdIH0sCiAgICAvLyAgIHNlbmRlcjogVHhuLnNlbmRlciwKICAgIC8vICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICBjbG9zZVJlbWFpbmRlclRvOiBHbG9iYWwuemVyb0FkZHJlc3MsCiAgICAvLyAgIGZpcnN0VmFsaWQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKICAgIC8vICAgbGFzdFZhbGlkOiB7IGxlc3NUaGFuOiAyICoqIDQwIH0sCiAgICAvLyB9KQogICAgPT0KICAgIGJ6IHRlc3RQYXlfYm9vbF9mYWxzZUA4Cgp0ZXN0UGF5X2FuZF9jb250ZEA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjEwLTE3CiAgICAvLyBhc3NlcnRNYXRjaChwYXksIHsKICAgIC8vICAgYW1vdW50OiB7IGJldHdlZW46IFsxMDBfMDAwLCAxMDVfMDAwXSB9LAogICAgLy8gICBzZW5kZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgY2xvc2VSZW1haW5kZXJUbzogR2xvYmFsLnplcm9BZGRyZXNzLAogICAgLy8gICBmaXJzdFZhbGlkOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCiAgICAvLyAgIGxhc3RWYWxpZDogeyBsZXNzVGhhbjogMiAqKiA0MCB9LAogICAgLy8gfSkKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgQ2xvc2VSZW1haW5kZXJUbwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjE0CiAgICAvLyBjbG9zZVJlbWFpbmRlclRvOiBHbG9iYWwuemVyb0FkZHJlc3MsCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czoxMC0xNwogICAgLy8gYXNzZXJ0TWF0Y2gocGF5LCB7CiAgICAvLyAgIGFtb3VudDogeyBiZXR3ZWVuOiBbMTAwXzAwMCwgMTA1XzAwMF0gfSwKICAgIC8vICAgc2VuZGVyOiBUeG4uc2VuZGVyLAogICAgLy8gICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgIGNsb3NlUmVtYWluZGVyVG86IEdsb2JhbC56ZXJvQWRkcmVzcywKICAgIC8vICAgZmlyc3RWYWxpZDogeyBncmVhdGVyVGhhbjogMSB9LAogICAgLy8gICBsYXN0VmFsaWQ6IHsgbGVzc1RoYW46IDIgKiogNDAgfSwKICAgIC8vIH0pCiAgICA9PQogICAgYnogdGVzdFBheV9ib29sX2ZhbHNlQDgKCnRlc3RQYXlfYW5kX2NvbnRkQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTAtMTcKICAgIC8vIGFzc2VydE1hdGNoKHBheSwgewogICAgLy8gICBhbW91bnQ6IHsgYmV0d2VlbjogWzEwMF8wMDAsIDEwNV8wMDBdIH0sCiAgICAvLyAgIHNlbmRlcjogVHhuLnNlbmRlciwKICAgIC8vICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICBjbG9zZVJlbWFpbmRlclRvOiBHbG9iYWwuemVyb0FkZHJlc3MsCiAgICAvLyAgIGZpcnN0VmFsaWQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKICAgIC8vICAgbGFzdFZhbGlkOiB7IGxlc3NUaGFuOiAyICoqIDQwIH0sCiAgICAvLyB9KQogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBGaXJzdFZhbGlkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTUKICAgIC8vIGZpcnN0VmFsaWQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKICAgIGludGNfMSAvLyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTAtMTcKICAgIC8vIGFzc2VydE1hdGNoKHBheSwgewogICAgLy8gICBhbW91bnQ6IHsgYmV0d2VlbjogWzEwMF8wMDAsIDEwNV8wMDBdIH0sCiAgICAvLyAgIHNlbmRlcjogVHhuLnNlbmRlciwKICAgIC8vICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICBjbG9zZVJlbWFpbmRlclRvOiBHbG9iYWwuemVyb0FkZHJlc3MsCiAgICAvLyAgIGZpcnN0VmFsaWQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKICAgIC8vICAgbGFzdFZhbGlkOiB7IGxlc3NUaGFuOiAyICoqIDQwIH0sCiAgICAvLyB9KQogICAgPgogICAgYnogdGVzdFBheV9ib29sX2ZhbHNlQDgKCnRlc3RQYXlfYW5kX2NvbnRkQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTAtMTcKICAgIC8vIGFzc2VydE1hdGNoKHBheSwgewogICAgLy8gICBhbW91bnQ6IHsgYmV0d2VlbjogWzEwMF8wMDAsIDEwNV8wMDBdIH0sCiAgICAvLyAgIHNlbmRlcjogVHhuLnNlbmRlciwKICAgIC8vICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICBjbG9zZVJlbWFpbmRlclRvOiBHbG9iYWwuemVyb0FkZHJlc3MsCiAgICAvLyAgIGZpcnN0VmFsaWQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKICAgIC8vICAgbGFzdFZhbGlkOiB7IGxlc3NUaGFuOiAyICoqIDQwIH0sCiAgICAvLyB9KQogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBMYXN0VmFsaWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czoxNgogICAgLy8gbGFzdFZhbGlkOiB7IGxlc3NUaGFuOiAyICoqIDQwIH0sCiAgICBwdXNoaW50IDEwOTk1MTE2Mjc3NzYgLy8gMTA5OTUxMTYyNzc3NgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjEwLTE3CiAgICAvLyBhc3NlcnRNYXRjaChwYXksIHsKICAgIC8vICAgYW1vdW50OiB7IGJldHdlZW46IFsxMDBfMDAwLCAxMDVfMDAwXSB9LAogICAgLy8gICBzZW5kZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgY2xvc2VSZW1haW5kZXJUbzogR2xvYmFsLnplcm9BZGRyZXNzLAogICAgLy8gICBmaXJzdFZhbGlkOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCiAgICAvLyAgIGxhc3RWYWxpZDogeyBsZXNzVGhhbjogMiAqKiA0MCB9LAogICAgLy8gfSkKICAgIDwKICAgIGJ6IHRlc3RQYXlfYm9vbF9mYWxzZUA4Cgp0ZXN0UGF5X2Jvb2xfdHJ1ZUA3OgogICAgaW50Y18xIC8vIDEKCnRlc3RQYXlfYm9vbF9tZXJnZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjEwLTE3CiAgICAvLyBhc3NlcnRNYXRjaChwYXksIHsKICAgIC8vICAgYW1vdW50OiB7IGJldHdlZW46IFsxMDBfMDAwLCAxMDVfMDAwXSB9LAogICAgLy8gICBzZW5kZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgY2xvc2VSZW1haW5kZXJUbzogR2xvYmFsLnplcm9BZGRyZXNzLAogICAgLy8gICBmaXJzdFZhbGlkOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCiAgICAvLyAgIGxhc3RWYWxpZDogeyBsZXNzVGhhbjogMiAqKiA0MCB9LAogICAgLy8gfSkKICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTgKICAgIC8vIHJldHVybiB0cnVlCiAgICBpbnRjXzEgLy8gMQogICAgcmV0c3ViCgp0ZXN0UGF5X2Jvb2xfZmFsc2VAODoKICAgIGludGNfMCAvLyAwCiAgICBiIHRlc3RQYXlfYm9vbF9tZXJnZUA5CgoKLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjpBc3NlcnRNYXRjaENvbnRyYWN0Ll9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/assert-match/AssertMatchContract.arc56.json b/tests/approvals/out/unoptimized/assert-match/AssertMatchContract.arc56.json index 2db800fe9..801276e24 100644 --- a/tests/approvals/out/unoptimized/assert-match/AssertMatchContract.arc56.json +++ b/tests/approvals/out/unoptimized/assert-match/AssertMatchContract.arc56.json @@ -100,8 +100,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFzc2VydE1hdGNoQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFzc2VydE1hdGNoQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg4ZmVmNzY2OCAvLyBtZXRob2QgInRlc3RQYXkocGF5KWJvb2wiCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3Rlc3RQYXlfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXNzZXJ0TWF0Y2hDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjpBc3NlcnRNYXRjaENvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX3Rlc3RQYXlfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czo1CiAgICAvLyBwdWJsaWMgdGVzdFBheShwYXk6IGd0eG4uUGF5bWVudFR4bik6IGJvb2xlYW4gewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBc3NlcnRNYXRjaENvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEdyb3VwSW5kZXgKICAgIGludGNfMSAvLyAxCiAgICAtCiAgICBkdXAKICAgIGd0eG5zIFR5cGVFbnVtCiAgICBpbnRjXzEgLy8gcGF5CiAgICA9PQogICAgYXNzZXJ0IC8vIHRyYW5zYWN0aW9uIHR5cGUgaXMgcGF5CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6NQogICAgLy8gcHVibGljIHRlc3RQYXkocGF5OiBndHhuLlBheW1lbnRUeG4pOiBib29sZWFuIHsKICAgIGNhbGxzdWIgdGVzdFBheQogICAgcHVzaGJ5dGVzIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjpBc3NlcnRNYXRjaENvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBc3NlcnRNYXRjaENvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXNzZXJ0TWF0Y2hDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjpBc3NlcnRNYXRjaENvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjpBc3NlcnRNYXRjaENvbnRyYWN0LnRlc3RQYXkocGF5OiB1aW50NjQpIC0+IHVpbnQ2NDoKdGVzdFBheToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czo1CiAgICAvLyBwdWJsaWMgdGVzdFBheShwYXk6IGd0eG4uUGF5bWVudFR4bik6IGJvb2xlYW4gewogICAgcHJvdG8gMSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6Ni04CiAgICAvLyBhc3NlcnRNYXRjaChUeG4sIHsKICAgIC8vICAgZmVlOiB7IGdyZWF0ZXJUaGFuOiAwIH0sCiAgICAvLyB9KQogICAgdHhuIEZlZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjcKICAgIC8vIGZlZTogeyBncmVhdGVyVGhhbjogMCB9LAogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czo2LTgKICAgIC8vIGFzc2VydE1hdGNoKFR4biwgewogICAgLy8gICBmZWU6IHsgZ3JlYXRlclRoYW46IDAgfSwKICAgIC8vIH0pCiAgICA+CiAgICBhc3NlcnQgLy8gYXNzZXJ0IHRhcmdldCBpcyBtYXRjaCBmb3IgY29uZGl0aW9ucwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjEwLTE3CiAgICAvLyBhc3NlcnRNYXRjaChwYXksIHsKICAgIC8vICAgYW1vdW50OiB7IGJldHdlZW46IFsxMDBfMDAwLCAxMDVfMDAwXSB9LAogICAgLy8gICBzZW5kZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgY2xvc2VSZW1haW5kZXJUbzogR2xvYmFsLnplcm9BZGRyZXNzLAogICAgLy8gICBmaXJzdFZhbGlkOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCiAgICAvLyAgIGxhc3RWYWxpZDogeyBsZXNzVGhhbjogMiAqKiA0MCB9LAogICAgLy8gfSkKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgQW1vdW50CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTEKICAgIC8vIGFtb3VudDogeyBiZXR3ZWVuOiBbMTAwXzAwMCwgMTA1XzAwMF0gfSwKICAgIHB1c2hpbnQgMTA1MDAwIC8vIDEwNTAwMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjEwLTE3CiAgICAvLyBhc3NlcnRNYXRjaChwYXksIHsKICAgIC8vICAgYW1vdW50OiB7IGJldHdlZW46IFsxMDBfMDAwLCAxMDVfMDAwXSB9LAogICAgLy8gICBzZW5kZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgY2xvc2VSZW1haW5kZXJUbzogR2xvYmFsLnplcm9BZGRyZXNzLAogICAgLy8gICBmaXJzdFZhbGlkOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCiAgICAvLyAgIGxhc3RWYWxpZDogeyBsZXNzVGhhbjogMiAqKiA0MCB9LAogICAgLy8gfSkKICAgIDw9CiAgICBieiB0ZXN0UGF5X2Jvb2xfZmFsc2VAOAoKdGVzdFBheV9hbmRfY29udGRAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czoxMC0xNwogICAgLy8gYXNzZXJ0TWF0Y2gocGF5LCB7CiAgICAvLyAgIGFtb3VudDogeyBiZXR3ZWVuOiBbMTAwXzAwMCwgMTA1XzAwMF0gfSwKICAgIC8vICAgc2VuZGVyOiBUeG4uc2VuZGVyLAogICAgLy8gICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgIGNsb3NlUmVtYWluZGVyVG86IEdsb2JhbC56ZXJvQWRkcmVzcywKICAgIC8vICAgZmlyc3RWYWxpZDogeyBncmVhdGVyVGhhbjogMSB9LAogICAgLy8gICBsYXN0VmFsaWQ6IHsgbGVzc1RoYW46IDIgKiogNDAgfSwKICAgIC8vIH0pCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIEFtb3VudAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjExCiAgICAvLyBhbW91bnQ6IHsgYmV0d2VlbjogWzEwMF8wMDAsIDEwNV8wMDBdIH0sCiAgICBwdXNoaW50IDEwMDAwMCAvLyAxMDAwMDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czoxMC0xNwogICAgLy8gYXNzZXJ0TWF0Y2gocGF5LCB7CiAgICAvLyAgIGFtb3VudDogeyBiZXR3ZWVuOiBbMTAwXzAwMCwgMTA1XzAwMF0gfSwKICAgIC8vICAgc2VuZGVyOiBUeG4uc2VuZGVyLAogICAgLy8gICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgIGNsb3NlUmVtYWluZGVyVG86IEdsb2JhbC56ZXJvQWRkcmVzcywKICAgIC8vICAgZmlyc3RWYWxpZDogeyBncmVhdGVyVGhhbjogMSB9LAogICAgLy8gICBsYXN0VmFsaWQ6IHsgbGVzc1RoYW46IDIgKiogNDAgfSwKICAgIC8vIH0pCiAgICA+PQogICAgYnogdGVzdFBheV9ib29sX2ZhbHNlQDgKCnRlc3RQYXlfYW5kX2NvbnRkQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTAtMTcKICAgIC8vIGFzc2VydE1hdGNoKHBheSwgewogICAgLy8gICBhbW91bnQ6IHsgYmV0d2VlbjogWzEwMF8wMDAsIDEwNV8wMDBdIH0sCiAgICAvLyAgIHNlbmRlcjogVHhuLnNlbmRlciwKICAgIC8vICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICBjbG9zZVJlbWFpbmRlclRvOiBHbG9iYWwuemVyb0FkZHJlc3MsCiAgICAvLyAgIGZpcnN0VmFsaWQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKICAgIC8vICAgbGFzdFZhbGlkOiB7IGxlc3NUaGFuOiAyICoqIDQwIH0sCiAgICAvLyB9KQogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czoxMgogICAgLy8gc2VuZGVyOiBUeG4uc2VuZGVyLAogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjEwLTE3CiAgICAvLyBhc3NlcnRNYXRjaChwYXksIHsKICAgIC8vICAgYW1vdW50OiB7IGJldHdlZW46IFsxMDBfMDAwLCAxMDVfMDAwXSB9LAogICAgLy8gICBzZW5kZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgY2xvc2VSZW1haW5kZXJUbzogR2xvYmFsLnplcm9BZGRyZXNzLAogICAgLy8gICBmaXJzdFZhbGlkOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCiAgICAvLyAgIGxhc3RWYWxpZDogeyBsZXNzVGhhbjogMiAqKiA0MCB9LAogICAgLy8gfSkKICAgID09CiAgICBieiB0ZXN0UGF5X2Jvb2xfZmFsc2VAOAoKdGVzdFBheV9hbmRfY29udGRAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czoxMC0xNwogICAgLy8gYXNzZXJ0TWF0Y2gocGF5LCB7CiAgICAvLyAgIGFtb3VudDogeyBiZXR3ZWVuOiBbMTAwXzAwMCwgMTA1XzAwMF0gfSwKICAgIC8vICAgc2VuZGVyOiBUeG4uc2VuZGVyLAogICAgLy8gICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgIGNsb3NlUmVtYWluZGVyVG86IEdsb2JhbC56ZXJvQWRkcmVzcywKICAgIC8vICAgZmlyc3RWYWxpZDogeyBncmVhdGVyVGhhbjogMSB9LAogICAgLy8gICBsYXN0VmFsaWQ6IHsgbGVzc1RoYW46IDIgKiogNDAgfSwKICAgIC8vIH0pCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIFJlY2VpdmVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTMKICAgIC8vIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTAtMTcKICAgIC8vIGFzc2VydE1hdGNoKHBheSwgewogICAgLy8gICBhbW91bnQ6IHsgYmV0d2VlbjogWzEwMF8wMDAsIDEwNV8wMDBdIH0sCiAgICAvLyAgIHNlbmRlcjogVHhuLnNlbmRlciwKICAgIC8vICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICBjbG9zZVJlbWFpbmRlclRvOiBHbG9iYWwuemVyb0FkZHJlc3MsCiAgICAvLyAgIGZpcnN0VmFsaWQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKICAgIC8vICAgbGFzdFZhbGlkOiB7IGxlc3NUaGFuOiAyICoqIDQwIH0sCiAgICAvLyB9KQogICAgPT0KICAgIGJ6IHRlc3RQYXlfYm9vbF9mYWxzZUA4Cgp0ZXN0UGF5X2FuZF9jb250ZEA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjEwLTE3CiAgICAvLyBhc3NlcnRNYXRjaChwYXksIHsKICAgIC8vICAgYW1vdW50OiB7IGJldHdlZW46IFsxMDBfMDAwLCAxMDVfMDAwXSB9LAogICAgLy8gICBzZW5kZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgY2xvc2VSZW1haW5kZXJUbzogR2xvYmFsLnplcm9BZGRyZXNzLAogICAgLy8gICBmaXJzdFZhbGlkOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCiAgICAvLyAgIGxhc3RWYWxpZDogeyBsZXNzVGhhbjogMiAqKiA0MCB9LAogICAgLy8gfSkKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgQ2xvc2VSZW1haW5kZXJUbwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjE0CiAgICAvLyBjbG9zZVJlbWFpbmRlclRvOiBHbG9iYWwuemVyb0FkZHJlc3MsCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czoxMC0xNwogICAgLy8gYXNzZXJ0TWF0Y2gocGF5LCB7CiAgICAvLyAgIGFtb3VudDogeyBiZXR3ZWVuOiBbMTAwXzAwMCwgMTA1XzAwMF0gfSwKICAgIC8vICAgc2VuZGVyOiBUeG4uc2VuZGVyLAogICAgLy8gICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgIGNsb3NlUmVtYWluZGVyVG86IEdsb2JhbC56ZXJvQWRkcmVzcywKICAgIC8vICAgZmlyc3RWYWxpZDogeyBncmVhdGVyVGhhbjogMSB9LAogICAgLy8gICBsYXN0VmFsaWQ6IHsgbGVzc1RoYW46IDIgKiogNDAgfSwKICAgIC8vIH0pCiAgICA9PQogICAgYnogdGVzdFBheV9ib29sX2ZhbHNlQDgKCnRlc3RQYXlfYW5kX2NvbnRkQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTAtMTcKICAgIC8vIGFzc2VydE1hdGNoKHBheSwgewogICAgLy8gICBhbW91bnQ6IHsgYmV0d2VlbjogWzEwMF8wMDAsIDEwNV8wMDBdIH0sCiAgICAvLyAgIHNlbmRlcjogVHhuLnNlbmRlciwKICAgIC8vICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICBjbG9zZVJlbWFpbmRlclRvOiBHbG9iYWwuemVyb0FkZHJlc3MsCiAgICAvLyAgIGZpcnN0VmFsaWQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKICAgIC8vICAgbGFzdFZhbGlkOiB7IGxlc3NUaGFuOiAyICoqIDQwIH0sCiAgICAvLyB9KQogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBGaXJzdFZhbGlkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTUKICAgIC8vIGZpcnN0VmFsaWQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKICAgIGludGNfMSAvLyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTAtMTcKICAgIC8vIGFzc2VydE1hdGNoKHBheSwgewogICAgLy8gICBhbW91bnQ6IHsgYmV0d2VlbjogWzEwMF8wMDAsIDEwNV8wMDBdIH0sCiAgICAvLyAgIHNlbmRlcjogVHhuLnNlbmRlciwKICAgIC8vICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICBjbG9zZVJlbWFpbmRlclRvOiBHbG9iYWwuemVyb0FkZHJlc3MsCiAgICAvLyAgIGZpcnN0VmFsaWQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKICAgIC8vICAgbGFzdFZhbGlkOiB7IGxlc3NUaGFuOiAyICoqIDQwIH0sCiAgICAvLyB9KQogICAgPgogICAgYnogdGVzdFBheV9ib29sX2ZhbHNlQDgKCnRlc3RQYXlfYW5kX2NvbnRkQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTAtMTcKICAgIC8vIGFzc2VydE1hdGNoKHBheSwgewogICAgLy8gICBhbW91bnQ6IHsgYmV0d2VlbjogWzEwMF8wMDAsIDEwNV8wMDBdIH0sCiAgICAvLyAgIHNlbmRlcjogVHhuLnNlbmRlciwKICAgIC8vICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICBjbG9zZVJlbWFpbmRlclRvOiBHbG9iYWwuemVyb0FkZHJlc3MsCiAgICAvLyAgIGZpcnN0VmFsaWQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKICAgIC8vICAgbGFzdFZhbGlkOiB7IGxlc3NUaGFuOiAyICoqIDQwIH0sCiAgICAvLyB9KQogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBMYXN0VmFsaWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czoxNgogICAgLy8gbGFzdFZhbGlkOiB7IGxlc3NUaGFuOiAyICoqIDQwIH0sCiAgICBwdXNoaW50IDEwOTk1MTE2Mjc3NzYgLy8gMTA5OTUxMTYyNzc3NgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjEwLTE3CiAgICAvLyBhc3NlcnRNYXRjaChwYXksIHsKICAgIC8vICAgYW1vdW50OiB7IGJldHdlZW46IFsxMDBfMDAwLCAxMDVfMDAwXSB9LAogICAgLy8gICBzZW5kZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgY2xvc2VSZW1haW5kZXJUbzogR2xvYmFsLnplcm9BZGRyZXNzLAogICAgLy8gICBmaXJzdFZhbGlkOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCiAgICAvLyAgIGxhc3RWYWxpZDogeyBsZXNzVGhhbjogMiAqKiA0MCB9LAogICAgLy8gfSkKICAgIDwKICAgIGJ6IHRlc3RQYXlfYm9vbF9mYWxzZUA4Cgp0ZXN0UGF5X2Jvb2xfdHJ1ZUA3OgogICAgaW50Y18xIC8vIDEKCnRlc3RQYXlfYm9vbF9tZXJnZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjEwLTE3CiAgICAvLyBhc3NlcnRNYXRjaChwYXksIHsKICAgIC8vICAgYW1vdW50OiB7IGJldHdlZW46IFsxMDBfMDAwLCAxMDVfMDAwXSB9LAogICAgLy8gICBzZW5kZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgY2xvc2VSZW1haW5kZXJUbzogR2xvYmFsLnplcm9BZGRyZXNzLAogICAgLy8gICBmaXJzdFZhbGlkOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCiAgICAvLyAgIGxhc3RWYWxpZDogeyBsZXNzVGhhbjogMiAqKiA0MCB9LAogICAgLy8gfSkKICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTgKICAgIC8vIHJldHVybiB0cnVlCiAgICBpbnRjXzEgLy8gMQogICAgcmV0c3ViCgp0ZXN0UGF5X2Jvb2xfZmFsc2VAODoKICAgIGludGNfMCAvLyAwCiAgICBiIHRlc3RQYXlfYm9vbF9tZXJnZUA5CgoKLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjpBc3NlcnRNYXRjaENvbnRyYWN0Ll9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFzc2VydE1hdGNoQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFzc2VydE1hdGNoQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg4ZmVmNzY2OCAvLyBtZXRob2QgInRlc3RQYXkocGF5KWJvb2wiCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3Rlc3RQYXlfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXNzZXJ0TWF0Y2hDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjpBc3NlcnRNYXRjaENvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX3Rlc3RQYXlfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czo1CiAgICAvLyBwdWJsaWMgdGVzdFBheShwYXk6IGd0eG4uUGF5bWVudFR4bik6IGJvb2xlYW4gewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBc3NlcnRNYXRjaENvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEdyb3VwSW5kZXgKICAgIGludGNfMSAvLyAxCiAgICAtCiAgICBkdXAKICAgIGd0eG5zIFR5cGVFbnVtCiAgICBpbnRjXzEgLy8gcGF5CiAgICA9PQogICAgYXNzZXJ0IC8vIHRyYW5zYWN0aW9uIHR5cGUgaXMgcGF5CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6NQogICAgLy8gcHVibGljIHRlc3RQYXkocGF5OiBndHhuLlBheW1lbnRUeG4pOiBib29sZWFuIHsKICAgIGNhbGxzdWIgdGVzdFBheQogICAgcHVzaGJ5dGVzIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjpBc3NlcnRNYXRjaENvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBc3NlcnRNYXRjaENvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXNzZXJ0TWF0Y2hDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjpBc3NlcnRNYXRjaENvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjpBc3NlcnRNYXRjaENvbnRyYWN0LnRlc3RQYXkocGF5OiB1aW50NjQpIC0+IHVpbnQ2NDoKdGVzdFBheToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czo1CiAgICAvLyBwdWJsaWMgdGVzdFBheShwYXk6IGd0eG4uUGF5bWVudFR4bik6IGJvb2xlYW4gewogICAgcHJvdG8gMSAxCgp0ZXN0UGF5X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6Ni04CiAgICAvLyBhc3NlcnRNYXRjaChUeG4sIHsKICAgIC8vICAgZmVlOiB7IGdyZWF0ZXJUaGFuOiAwIH0sCiAgICAvLyB9KQogICAgdHhuIEZlZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjcKICAgIC8vIGZlZTogeyBncmVhdGVyVGhhbjogMCB9LAogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czo2LTgKICAgIC8vIGFzc2VydE1hdGNoKFR4biwgewogICAgLy8gICBmZWU6IHsgZ3JlYXRlclRoYW46IDAgfSwKICAgIC8vIH0pCiAgICA+CiAgICBhc3NlcnQgLy8gYXNzZXJ0IHRhcmdldCBpcyBtYXRjaCBmb3IgY29uZGl0aW9ucwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjEwLTE3CiAgICAvLyBhc3NlcnRNYXRjaChwYXksIHsKICAgIC8vICAgYW1vdW50OiB7IGJldHdlZW46IFsxMDBfMDAwLCAxMDVfMDAwXSB9LAogICAgLy8gICBzZW5kZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgY2xvc2VSZW1haW5kZXJUbzogR2xvYmFsLnplcm9BZGRyZXNzLAogICAgLy8gICBmaXJzdFZhbGlkOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCiAgICAvLyAgIGxhc3RWYWxpZDogeyBsZXNzVGhhbjogMiAqKiA0MCB9LAogICAgLy8gfSkKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgQW1vdW50CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTEKICAgIC8vIGFtb3VudDogeyBiZXR3ZWVuOiBbMTAwXzAwMCwgMTA1XzAwMF0gfSwKICAgIHB1c2hpbnQgMTA1MDAwIC8vIDEwNTAwMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjEwLTE3CiAgICAvLyBhc3NlcnRNYXRjaChwYXksIHsKICAgIC8vICAgYW1vdW50OiB7IGJldHdlZW46IFsxMDBfMDAwLCAxMDVfMDAwXSB9LAogICAgLy8gICBzZW5kZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgY2xvc2VSZW1haW5kZXJUbzogR2xvYmFsLnplcm9BZGRyZXNzLAogICAgLy8gICBmaXJzdFZhbGlkOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCiAgICAvLyAgIGxhc3RWYWxpZDogeyBsZXNzVGhhbjogMiAqKiA0MCB9LAogICAgLy8gfSkKICAgIDw9CiAgICBieiB0ZXN0UGF5X2Jvb2xfZmFsc2VAOAoKdGVzdFBheV9hbmRfY29udGRAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czoxMC0xNwogICAgLy8gYXNzZXJ0TWF0Y2gocGF5LCB7CiAgICAvLyAgIGFtb3VudDogeyBiZXR3ZWVuOiBbMTAwXzAwMCwgMTA1XzAwMF0gfSwKICAgIC8vICAgc2VuZGVyOiBUeG4uc2VuZGVyLAogICAgLy8gICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgIGNsb3NlUmVtYWluZGVyVG86IEdsb2JhbC56ZXJvQWRkcmVzcywKICAgIC8vICAgZmlyc3RWYWxpZDogeyBncmVhdGVyVGhhbjogMSB9LAogICAgLy8gICBsYXN0VmFsaWQ6IHsgbGVzc1RoYW46IDIgKiogNDAgfSwKICAgIC8vIH0pCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIEFtb3VudAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjExCiAgICAvLyBhbW91bnQ6IHsgYmV0d2VlbjogWzEwMF8wMDAsIDEwNV8wMDBdIH0sCiAgICBwdXNoaW50IDEwMDAwMCAvLyAxMDAwMDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czoxMC0xNwogICAgLy8gYXNzZXJ0TWF0Y2gocGF5LCB7CiAgICAvLyAgIGFtb3VudDogeyBiZXR3ZWVuOiBbMTAwXzAwMCwgMTA1XzAwMF0gfSwKICAgIC8vICAgc2VuZGVyOiBUeG4uc2VuZGVyLAogICAgLy8gICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgIGNsb3NlUmVtYWluZGVyVG86IEdsb2JhbC56ZXJvQWRkcmVzcywKICAgIC8vICAgZmlyc3RWYWxpZDogeyBncmVhdGVyVGhhbjogMSB9LAogICAgLy8gICBsYXN0VmFsaWQ6IHsgbGVzc1RoYW46IDIgKiogNDAgfSwKICAgIC8vIH0pCiAgICA+PQogICAgYnogdGVzdFBheV9ib29sX2ZhbHNlQDgKCnRlc3RQYXlfYW5kX2NvbnRkQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTAtMTcKICAgIC8vIGFzc2VydE1hdGNoKHBheSwgewogICAgLy8gICBhbW91bnQ6IHsgYmV0d2VlbjogWzEwMF8wMDAsIDEwNV8wMDBdIH0sCiAgICAvLyAgIHNlbmRlcjogVHhuLnNlbmRlciwKICAgIC8vICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICBjbG9zZVJlbWFpbmRlclRvOiBHbG9iYWwuemVyb0FkZHJlc3MsCiAgICAvLyAgIGZpcnN0VmFsaWQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKICAgIC8vICAgbGFzdFZhbGlkOiB7IGxlc3NUaGFuOiAyICoqIDQwIH0sCiAgICAvLyB9KQogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czoxMgogICAgLy8gc2VuZGVyOiBUeG4uc2VuZGVyLAogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjEwLTE3CiAgICAvLyBhc3NlcnRNYXRjaChwYXksIHsKICAgIC8vICAgYW1vdW50OiB7IGJldHdlZW46IFsxMDBfMDAwLCAxMDVfMDAwXSB9LAogICAgLy8gICBzZW5kZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgY2xvc2VSZW1haW5kZXJUbzogR2xvYmFsLnplcm9BZGRyZXNzLAogICAgLy8gICBmaXJzdFZhbGlkOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCiAgICAvLyAgIGxhc3RWYWxpZDogeyBsZXNzVGhhbjogMiAqKiA0MCB9LAogICAgLy8gfSkKICAgID09CiAgICBieiB0ZXN0UGF5X2Jvb2xfZmFsc2VAOAoKdGVzdFBheV9hbmRfY29udGRAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czoxMC0xNwogICAgLy8gYXNzZXJ0TWF0Y2gocGF5LCB7CiAgICAvLyAgIGFtb3VudDogeyBiZXR3ZWVuOiBbMTAwXzAwMCwgMTA1XzAwMF0gfSwKICAgIC8vICAgc2VuZGVyOiBUeG4uc2VuZGVyLAogICAgLy8gICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgIGNsb3NlUmVtYWluZGVyVG86IEdsb2JhbC56ZXJvQWRkcmVzcywKICAgIC8vICAgZmlyc3RWYWxpZDogeyBncmVhdGVyVGhhbjogMSB9LAogICAgLy8gICBsYXN0VmFsaWQ6IHsgbGVzc1RoYW46IDIgKiogNDAgfSwKICAgIC8vIH0pCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIFJlY2VpdmVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTMKICAgIC8vIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTAtMTcKICAgIC8vIGFzc2VydE1hdGNoKHBheSwgewogICAgLy8gICBhbW91bnQ6IHsgYmV0d2VlbjogWzEwMF8wMDAsIDEwNV8wMDBdIH0sCiAgICAvLyAgIHNlbmRlcjogVHhuLnNlbmRlciwKICAgIC8vICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICBjbG9zZVJlbWFpbmRlclRvOiBHbG9iYWwuemVyb0FkZHJlc3MsCiAgICAvLyAgIGZpcnN0VmFsaWQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKICAgIC8vICAgbGFzdFZhbGlkOiB7IGxlc3NUaGFuOiAyICoqIDQwIH0sCiAgICAvLyB9KQogICAgPT0KICAgIGJ6IHRlc3RQYXlfYm9vbF9mYWxzZUA4Cgp0ZXN0UGF5X2FuZF9jb250ZEA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjEwLTE3CiAgICAvLyBhc3NlcnRNYXRjaChwYXksIHsKICAgIC8vICAgYW1vdW50OiB7IGJldHdlZW46IFsxMDBfMDAwLCAxMDVfMDAwXSB9LAogICAgLy8gICBzZW5kZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgY2xvc2VSZW1haW5kZXJUbzogR2xvYmFsLnplcm9BZGRyZXNzLAogICAgLy8gICBmaXJzdFZhbGlkOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCiAgICAvLyAgIGxhc3RWYWxpZDogeyBsZXNzVGhhbjogMiAqKiA0MCB9LAogICAgLy8gfSkKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgQ2xvc2VSZW1haW5kZXJUbwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjE0CiAgICAvLyBjbG9zZVJlbWFpbmRlclRvOiBHbG9iYWwuemVyb0FkZHJlc3MsCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czoxMC0xNwogICAgLy8gYXNzZXJ0TWF0Y2gocGF5LCB7CiAgICAvLyAgIGFtb3VudDogeyBiZXR3ZWVuOiBbMTAwXzAwMCwgMTA1XzAwMF0gfSwKICAgIC8vICAgc2VuZGVyOiBUeG4uc2VuZGVyLAogICAgLy8gICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgIGNsb3NlUmVtYWluZGVyVG86IEdsb2JhbC56ZXJvQWRkcmVzcywKICAgIC8vICAgZmlyc3RWYWxpZDogeyBncmVhdGVyVGhhbjogMSB9LAogICAgLy8gICBsYXN0VmFsaWQ6IHsgbGVzc1RoYW46IDIgKiogNDAgfSwKICAgIC8vIH0pCiAgICA9PQogICAgYnogdGVzdFBheV9ib29sX2ZhbHNlQDgKCnRlc3RQYXlfYW5kX2NvbnRkQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTAtMTcKICAgIC8vIGFzc2VydE1hdGNoKHBheSwgewogICAgLy8gICBhbW91bnQ6IHsgYmV0d2VlbjogWzEwMF8wMDAsIDEwNV8wMDBdIH0sCiAgICAvLyAgIHNlbmRlcjogVHhuLnNlbmRlciwKICAgIC8vICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICBjbG9zZVJlbWFpbmRlclRvOiBHbG9iYWwuemVyb0FkZHJlc3MsCiAgICAvLyAgIGZpcnN0VmFsaWQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKICAgIC8vICAgbGFzdFZhbGlkOiB7IGxlc3NUaGFuOiAyICoqIDQwIH0sCiAgICAvLyB9KQogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBGaXJzdFZhbGlkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTUKICAgIC8vIGZpcnN0VmFsaWQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKICAgIGludGNfMSAvLyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTAtMTcKICAgIC8vIGFzc2VydE1hdGNoKHBheSwgewogICAgLy8gICBhbW91bnQ6IHsgYmV0d2VlbjogWzEwMF8wMDAsIDEwNV8wMDBdIH0sCiAgICAvLyAgIHNlbmRlcjogVHhuLnNlbmRlciwKICAgIC8vICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICBjbG9zZVJlbWFpbmRlclRvOiBHbG9iYWwuemVyb0FkZHJlc3MsCiAgICAvLyAgIGZpcnN0VmFsaWQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKICAgIC8vICAgbGFzdFZhbGlkOiB7IGxlc3NUaGFuOiAyICoqIDQwIH0sCiAgICAvLyB9KQogICAgPgogICAgYnogdGVzdFBheV9ib29sX2ZhbHNlQDgKCnRlc3RQYXlfYW5kX2NvbnRkQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTAtMTcKICAgIC8vIGFzc2VydE1hdGNoKHBheSwgewogICAgLy8gICBhbW91bnQ6IHsgYmV0d2VlbjogWzEwMF8wMDAsIDEwNV8wMDBdIH0sCiAgICAvLyAgIHNlbmRlcjogVHhuLnNlbmRlciwKICAgIC8vICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICBjbG9zZVJlbWFpbmRlclRvOiBHbG9iYWwuemVyb0FkZHJlc3MsCiAgICAvLyAgIGZpcnN0VmFsaWQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKICAgIC8vICAgbGFzdFZhbGlkOiB7IGxlc3NUaGFuOiAyICoqIDQwIH0sCiAgICAvLyB9KQogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBMYXN0VmFsaWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NlcnQtbWF0Y2guYWxnby50czoxNgogICAgLy8gbGFzdFZhbGlkOiB7IGxlc3NUaGFuOiAyICoqIDQwIH0sCiAgICBwdXNoaW50IDEwOTk1MTE2Mjc3NzYgLy8gMTA5OTUxMTYyNzc3NgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjEwLTE3CiAgICAvLyBhc3NlcnRNYXRjaChwYXksIHsKICAgIC8vICAgYW1vdW50OiB7IGJldHdlZW46IFsxMDBfMDAwLCAxMDVfMDAwXSB9LAogICAgLy8gICBzZW5kZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgY2xvc2VSZW1haW5kZXJUbzogR2xvYmFsLnplcm9BZGRyZXNzLAogICAgLy8gICBmaXJzdFZhbGlkOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCiAgICAvLyAgIGxhc3RWYWxpZDogeyBsZXNzVGhhbjogMiAqKiA0MCB9LAogICAgLy8gfSkKICAgIDwKICAgIGJ6IHRlc3RQYXlfYm9vbF9mYWxzZUA4Cgp0ZXN0UGF5X2Jvb2xfdHJ1ZUA3OgogICAgaW50Y18xIC8vIDEKCnRlc3RQYXlfYm9vbF9tZXJnZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjEwLTE3CiAgICAvLyBhc3NlcnRNYXRjaChwYXksIHsKICAgIC8vICAgYW1vdW50OiB7IGJldHdlZW46IFsxMDBfMDAwLCAxMDVfMDAwXSB9LAogICAgLy8gICBzZW5kZXI6IFR4bi5zZW5kZXIsCiAgICAvLyAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgY2xvc2VSZW1haW5kZXJUbzogR2xvYmFsLnplcm9BZGRyZXNzLAogICAgLy8gICBmaXJzdFZhbGlkOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCiAgICAvLyAgIGxhc3RWYWxpZDogeyBsZXNzVGhhbjogMiAqKiA0MCB9LAogICAgLy8gfSkKICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXJ0LW1hdGNoLmFsZ28udHM6MTgKICAgIC8vIHJldHVybiB0cnVlCiAgICBpbnRjXzEgLy8gMQogICAgcmV0c3ViCgp0ZXN0UGF5X2Jvb2xfZmFsc2VAODoKICAgIGludGNfMCAvLyAwCiAgICBiIHRlc3RQYXlfYm9vbF9tZXJnZUA5CgoKLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2VydC1tYXRjaC5hbGdvLnRzOjpBc3NlcnRNYXRjaENvbnRyYWN0Ll9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAExGyITQQA7NhoAgASP73ZoTI4BAAIiQzEZIhJEMRgiE0QxFiMJSTgQIxJEiAArgAEAIk8CVIAEFR98dUxQsCNC/9QxGSJMjgEAA0L/yDEYIhJEiABiI0L/vYoBATEBIg1Ei/84CIGotAYOQQBGi/84CIGgjQYPQQA6i/84ADEAEkEAMIv/OAcyChJBACaL/zgJMgMSQQAci/84AiMNQQATi/84BIGAgICAgCAMQQAEI0QjiSJC//mJ", @@ -112,7 +112,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/assert-match/AssertMatchContract.clear.teal b/tests/approvals/out/unoptimized/assert-match/AssertMatchContract.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/assert-match/AssertMatchContract.clear.teal +++ b/tests/approvals/out/unoptimized/assert-match/AssertMatchContract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/asset-proxy/AssetProxyAlgo.approval.teal b/tests/approvals/out/unoptimized/asset-proxy/AssetProxyAlgo.approval.teal index 61ef69d75..e15a20738 100644 --- a/tests/approvals/out/unoptimized/asset-proxy/AssetProxyAlgo.approval.teal +++ b/tests/approvals/out/unoptimized/asset-proxy/AssetProxyAlgo.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 +main_block@0: + main_block@1: // tests/approvals/asset-proxy.algo.ts:4 // export class AssetProxyAlgo extends Contract { @@ -85,6 +87,8 @@ testAsset: // tests/approvals/asset-proxy.algo.ts:5 // testAsset(asset: Asset): void { proto 1 0 + +testAsset_block@0: // tests/approvals/asset-proxy.algo.ts:6 // log(asset.id) frame_dig -1 @@ -186,4 +190,6 @@ testAsset: // tests/approvals/asset-proxy.algo.ts::AssetProxyAlgo.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/asset-proxy/AssetProxyAlgo.arc32.json b/tests/approvals/out/unoptimized/asset-proxy/AssetProxyAlgo.arc32.json index 55bccb400..570de3f6a 100644 --- a/tests/approvals/out/unoptimized/asset-proxy/AssetProxyAlgo.arc32.json +++ b/tests/approvals/out/unoptimized/asset-proxy/AssetProxyAlgo.arc32.json @@ -7,8 +7,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXNzZXRQcm94eUFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXNzZXRQcm94eUFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg1ZGYxMWMyOCAvLyBtZXRob2QgInRlc3RBc3NldChhc3NldCl2b2lkIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl90ZXN0QXNzZXRfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBc3NldFByb3h5QWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6OkFzc2V0UHJveHlBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX3Rlc3RBc3NldF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6NQogICAgLy8gdGVzdEFzc2V0KGFzc2V0OiBBc3NldCk6IHZvaWQgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFzc2V0UHJveHlBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgdHhuYXMgQXNzZXRzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo1CiAgICAvLyB0ZXN0QXNzZXQoYXNzZXQ6IEFzc2V0KTogdm9pZCB7CiAgICBjYWxsc3ViIHRlc3RBc3NldAogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjpBc3NldFByb3h5QWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKbWFpbl9iYXJlX3JvdXRpbmdANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBc3NldFByb3h5QWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXNzZXRQcm94eUFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjpBc3NldFByb3h5QWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKCi8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjpBc3NldFByb3h5QWxnby50ZXN0QXNzZXQoYXNzZXQ6IHVpbnQ2NCkgLT4gdm9pZDoKdGVzdEFzc2V0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6NQogICAgLy8gdGVzdEFzc2V0KGFzc2V0OiBBc3NldCk6IHZvaWQgewogICAgcHJvdG8gMSAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo2CiAgICAvLyBsb2coYXNzZXQuaWQpCiAgICBmcmFtZV9kaWcgLTEKICAgIGl0b2IKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6NwogICAgLy8gbG9nKGFzc2V0LnRvdGFsKQogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0VG90YWwKICAgIGFzc2VydCAvLyBhc3NldCBleGlzdHMKICAgIGl0b2IKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6OAogICAgLy8gbG9nKGFzc2V0LmRlY2ltYWxzKQogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0RGVjaW1hbHMKICAgIGFzc2VydCAvLyBhc3NldCBleGlzdHMKICAgIGl0b2IKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6OQogICAgLy8gbG9nKGFzc2V0LmRlZmF1bHRGcm96ZW4pCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXREZWZhdWx0RnJvemVuCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICBpdG9iCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjEwCiAgICAvLyBsb2coYXNzZXQudW5pdE5hbWUpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXRVbml0TmFtZQogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czoxMQogICAgLy8gbG9nKGFzc2V0Lm5hbWUpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXROYW1lCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjEyCiAgICAvLyBsb2coYXNzZXQudXJsKQogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0VVJMCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjEzCiAgICAvLyBsb2coYXNzZXQubWV0YWRhdGFIYXNoKQogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0TWV0YWRhdGFIYXNoCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjE0CiAgICAvLyBsb2coYXNzZXQubWFuYWdlcikKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfcGFyYW1zX2dldCBBc3NldE1hbmFnZXIKICAgIGFzc2VydCAvLyBhc3NldCBleGlzdHMKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6MTUKICAgIC8vIGxvZyhhc3NldC5yZXNlcnZlKQogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0UmVzZXJ2ZQogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czoxNgogICAgLy8gbG9nKGFzc2V0LmZyZWV6ZSkKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfcGFyYW1zX2dldCBBc3NldEZyZWV6ZQogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czoxNwogICAgLy8gbG9nKGFzc2V0LmNsYXdiYWNrKQogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0Q2xhd2JhY2sKICAgIGFzc2VydCAvLyBhc3NldCBleGlzdHMKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6MTgKICAgIC8vIGxvZyhhc3NldC5jcmVhdG9yKQogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0Q3JlYXRvcgogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czoyMAogICAgLy8gbG9nKGFzc2V0LmJhbGFuY2UoVHhuLnNlbmRlcikpCiAgICB0eG4gU2VuZGVyCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQogICAgYXNzZXJ0IC8vIGFjY291bnQgb3B0ZWQgaW50byBhc3NldAogICAgaXRvYgogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czoyMQogICAgLy8gbG9nKGFzc2V0LmZyb3plbihUeG4uc2VuZGVyKSkKICAgIHR4biBTZW5kZXIKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRGcm96ZW4KICAgIGFzc2VydCAvLyBhY2NvdW50IG9wdGVkIGludG8gYXNzZXQKICAgIGl0b2IKICAgIGxvZwogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6OkFzc2V0UHJveHlBbGdvLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXNzZXRQcm94eUFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXNzZXRQcm94eUFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg1ZGYxMWMyOCAvLyBtZXRob2QgInRlc3RBc3NldChhc3NldCl2b2lkIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl90ZXN0QXNzZXRfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBc3NldFByb3h5QWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6OkFzc2V0UHJveHlBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX3Rlc3RBc3NldF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6NQogICAgLy8gdGVzdEFzc2V0KGFzc2V0OiBBc3NldCk6IHZvaWQgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFzc2V0UHJveHlBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgdHhuYXMgQXNzZXRzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo1CiAgICAvLyB0ZXN0QXNzZXQoYXNzZXQ6IEFzc2V0KTogdm9pZCB7CiAgICBjYWxsc3ViIHRlc3RBc3NldAogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjpBc3NldFByb3h5QWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKbWFpbl9iYXJlX3JvdXRpbmdANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBc3NldFByb3h5QWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXNzZXRQcm94eUFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjpBc3NldFByb3h5QWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKCi8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjpBc3NldFByb3h5QWxnby50ZXN0QXNzZXQoYXNzZXQ6IHVpbnQ2NCkgLT4gdm9pZDoKdGVzdEFzc2V0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6NQogICAgLy8gdGVzdEFzc2V0KGFzc2V0OiBBc3NldCk6IHZvaWQgewogICAgcHJvdG8gMSAwCgp0ZXN0QXNzZXRfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjYKICAgIC8vIGxvZyhhc3NldC5pZCkKICAgIGZyYW1lX2RpZyAtMQogICAgaXRvYgogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo3CiAgICAvLyBsb2coYXNzZXQudG90YWwpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXRUb3RhbAogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgaXRvYgogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo4CiAgICAvLyBsb2coYXNzZXQuZGVjaW1hbHMpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXREZWNpbWFscwogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgaXRvYgogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo5CiAgICAvLyBsb2coYXNzZXQuZGVmYXVsdEZyb3plbikKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfcGFyYW1zX2dldCBBc3NldERlZmF1bHRGcm96ZW4KICAgIGFzc2VydCAvLyBhc3NldCBleGlzdHMKICAgIGl0b2IKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6MTAKICAgIC8vIGxvZyhhc3NldC51bml0TmFtZSkKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfcGFyYW1zX2dldCBBc3NldFVuaXROYW1lCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjExCiAgICAvLyBsb2coYXNzZXQubmFtZSkKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfcGFyYW1zX2dldCBBc3NldE5hbWUKICAgIGFzc2VydCAvLyBhc3NldCBleGlzdHMKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6MTIKICAgIC8vIGxvZyhhc3NldC51cmwpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXRVUkwKICAgIGFzc2VydCAvLyBhc3NldCBleGlzdHMKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6MTMKICAgIC8vIGxvZyhhc3NldC5tZXRhZGF0YUhhc2gpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXRNZXRhZGF0YUhhc2gKICAgIGFzc2VydCAvLyBhc3NldCBleGlzdHMKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6MTQKICAgIC8vIGxvZyhhc3NldC5tYW5hZ2VyKQogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0TWFuYWdlcgogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czoxNQogICAgLy8gbG9nKGFzc2V0LnJlc2VydmUpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXRSZXNlcnZlCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjE2CiAgICAvLyBsb2coYXNzZXQuZnJlZXplKQogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0RnJlZXplCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjE3CiAgICAvLyBsb2coYXNzZXQuY2xhd2JhY2spCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXRDbGF3YmFjawogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czoxOAogICAgLy8gbG9nKGFzc2V0LmNyZWF0b3IpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXRDcmVhdG9yCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjIwCiAgICAvLyBsb2coYXNzZXQuYmFsYW5jZShUeG4uc2VuZGVyKSkKICAgIHR4biBTZW5kZXIKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCiAgICBhc3NlcnQgLy8gYWNjb3VudCBvcHRlZCBpbnRvIGFzc2V0CiAgICBpdG9iCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjIxCiAgICAvLyBsb2coYXNzZXQuZnJvemVuKFR4bi5zZW5kZXIpKQogICAgdHhuIFNlbmRlcgogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NldF9ob2xkaW5nX2dldCBBc3NldEZyb3plbgogICAgYXNzZXJ0IC8vIGFjY291bnQgb3B0ZWQgaW50byBhc3NldAogICAgaXRvYgogICAgbG9nCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo6QXNzZXRQcm94eUFsZ28uX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/asset-proxy/AssetProxyAlgo.arc56.json b/tests/approvals/out/unoptimized/asset-proxy/AssetProxyAlgo.arc56.json index 2456898b5..18b8da7e9 100644 --- a/tests/approvals/out/unoptimized/asset-proxy/AssetProxyAlgo.arc56.json +++ b/tests/approvals/out/unoptimized/asset-proxy/AssetProxyAlgo.arc56.json @@ -111,8 +111,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXNzZXRQcm94eUFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXNzZXRQcm94eUFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg1ZGYxMWMyOCAvLyBtZXRob2QgInRlc3RBc3NldChhc3NldCl2b2lkIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl90ZXN0QXNzZXRfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBc3NldFByb3h5QWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6OkFzc2V0UHJveHlBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX3Rlc3RBc3NldF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6NQogICAgLy8gdGVzdEFzc2V0KGFzc2V0OiBBc3NldCk6IHZvaWQgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFzc2V0UHJveHlBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgdHhuYXMgQXNzZXRzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo1CiAgICAvLyB0ZXN0QXNzZXQoYXNzZXQ6IEFzc2V0KTogdm9pZCB7CiAgICBjYWxsc3ViIHRlc3RBc3NldAogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjpBc3NldFByb3h5QWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKbWFpbl9iYXJlX3JvdXRpbmdANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBc3NldFByb3h5QWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXNzZXRQcm94eUFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjpBc3NldFByb3h5QWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKCi8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjpBc3NldFByb3h5QWxnby50ZXN0QXNzZXQoYXNzZXQ6IHVpbnQ2NCkgLT4gdm9pZDoKdGVzdEFzc2V0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6NQogICAgLy8gdGVzdEFzc2V0KGFzc2V0OiBBc3NldCk6IHZvaWQgewogICAgcHJvdG8gMSAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo2CiAgICAvLyBsb2coYXNzZXQuaWQpCiAgICBmcmFtZV9kaWcgLTEKICAgIGl0b2IKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6NwogICAgLy8gbG9nKGFzc2V0LnRvdGFsKQogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0VG90YWwKICAgIGFzc2VydCAvLyBhc3NldCBleGlzdHMKICAgIGl0b2IKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6OAogICAgLy8gbG9nKGFzc2V0LmRlY2ltYWxzKQogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0RGVjaW1hbHMKICAgIGFzc2VydCAvLyBhc3NldCBleGlzdHMKICAgIGl0b2IKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6OQogICAgLy8gbG9nKGFzc2V0LmRlZmF1bHRGcm96ZW4pCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXREZWZhdWx0RnJvemVuCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICBpdG9iCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjEwCiAgICAvLyBsb2coYXNzZXQudW5pdE5hbWUpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXRVbml0TmFtZQogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czoxMQogICAgLy8gbG9nKGFzc2V0Lm5hbWUpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXROYW1lCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjEyCiAgICAvLyBsb2coYXNzZXQudXJsKQogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0VVJMCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjEzCiAgICAvLyBsb2coYXNzZXQubWV0YWRhdGFIYXNoKQogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0TWV0YWRhdGFIYXNoCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjE0CiAgICAvLyBsb2coYXNzZXQubWFuYWdlcikKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfcGFyYW1zX2dldCBBc3NldE1hbmFnZXIKICAgIGFzc2VydCAvLyBhc3NldCBleGlzdHMKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6MTUKICAgIC8vIGxvZyhhc3NldC5yZXNlcnZlKQogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0UmVzZXJ2ZQogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czoxNgogICAgLy8gbG9nKGFzc2V0LmZyZWV6ZSkKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfcGFyYW1zX2dldCBBc3NldEZyZWV6ZQogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czoxNwogICAgLy8gbG9nKGFzc2V0LmNsYXdiYWNrKQogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0Q2xhd2JhY2sKICAgIGFzc2VydCAvLyBhc3NldCBleGlzdHMKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6MTgKICAgIC8vIGxvZyhhc3NldC5jcmVhdG9yKQogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0Q3JlYXRvcgogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czoyMAogICAgLy8gbG9nKGFzc2V0LmJhbGFuY2UoVHhuLnNlbmRlcikpCiAgICB0eG4gU2VuZGVyCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQogICAgYXNzZXJ0IC8vIGFjY291bnQgb3B0ZWQgaW50byBhc3NldAogICAgaXRvYgogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czoyMQogICAgLy8gbG9nKGFzc2V0LmZyb3plbihUeG4uc2VuZGVyKSkKICAgIHR4biBTZW5kZXIKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRGcm96ZW4KICAgIGFzc2VydCAvLyBhY2NvdW50IG9wdGVkIGludG8gYXNzZXQKICAgIGl0b2IKICAgIGxvZwogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6OkFzc2V0UHJveHlBbGdvLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXNzZXRQcm94eUFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXNzZXRQcm94eUFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg1ZGYxMWMyOCAvLyBtZXRob2QgInRlc3RBc3NldChhc3NldCl2b2lkIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl90ZXN0QXNzZXRfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBc3NldFByb3h5QWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6OkFzc2V0UHJveHlBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX3Rlc3RBc3NldF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6NQogICAgLy8gdGVzdEFzc2V0KGFzc2V0OiBBc3NldCk6IHZvaWQgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFzc2V0UHJveHlBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgdHhuYXMgQXNzZXRzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo1CiAgICAvLyB0ZXN0QXNzZXQoYXNzZXQ6IEFzc2V0KTogdm9pZCB7CiAgICBjYWxsc3ViIHRlc3RBc3NldAogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjpBc3NldFByb3h5QWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKbWFpbl9iYXJlX3JvdXRpbmdANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBc3NldFByb3h5QWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQXNzZXRQcm94eUFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjpBc3NldFByb3h5QWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKCi8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjpBc3NldFByb3h5QWxnby50ZXN0QXNzZXQoYXNzZXQ6IHVpbnQ2NCkgLT4gdm9pZDoKdGVzdEFzc2V0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6NQogICAgLy8gdGVzdEFzc2V0KGFzc2V0OiBBc3NldCk6IHZvaWQgewogICAgcHJvdG8gMSAwCgp0ZXN0QXNzZXRfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjYKICAgIC8vIGxvZyhhc3NldC5pZCkKICAgIGZyYW1lX2RpZyAtMQogICAgaXRvYgogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo3CiAgICAvLyBsb2coYXNzZXQudG90YWwpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXRUb3RhbAogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgaXRvYgogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo4CiAgICAvLyBsb2coYXNzZXQuZGVjaW1hbHMpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXREZWNpbWFscwogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgaXRvYgogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo5CiAgICAvLyBsb2coYXNzZXQuZGVmYXVsdEZyb3plbikKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfcGFyYW1zX2dldCBBc3NldERlZmF1bHRGcm96ZW4KICAgIGFzc2VydCAvLyBhc3NldCBleGlzdHMKICAgIGl0b2IKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6MTAKICAgIC8vIGxvZyhhc3NldC51bml0TmFtZSkKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfcGFyYW1zX2dldCBBc3NldFVuaXROYW1lCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjExCiAgICAvLyBsb2coYXNzZXQubmFtZSkKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfcGFyYW1zX2dldCBBc3NldE5hbWUKICAgIGFzc2VydCAvLyBhc3NldCBleGlzdHMKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6MTIKICAgIC8vIGxvZyhhc3NldC51cmwpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXRVUkwKICAgIGFzc2VydCAvLyBhc3NldCBleGlzdHMKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6MTMKICAgIC8vIGxvZyhhc3NldC5tZXRhZGF0YUhhc2gpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXRNZXRhZGF0YUhhc2gKICAgIGFzc2VydCAvLyBhc3NldCBleGlzdHMKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Fzc2V0LXByb3h5LmFsZ28udHM6MTQKICAgIC8vIGxvZyhhc3NldC5tYW5hZ2VyKQogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0TWFuYWdlcgogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czoxNQogICAgLy8gbG9nKGFzc2V0LnJlc2VydmUpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXRSZXNlcnZlCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjE2CiAgICAvLyBsb2coYXNzZXQuZnJlZXplKQogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0RnJlZXplCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjE3CiAgICAvLyBsb2coYXNzZXQuY2xhd2JhY2spCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXRDbGF3YmFjawogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czoxOAogICAgLy8gbG9nKGFzc2V0LmNyZWF0b3IpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXRDcmVhdG9yCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjIwCiAgICAvLyBsb2coYXNzZXQuYmFsYW5jZShUeG4uc2VuZGVyKSkKICAgIHR4biBTZW5kZXIKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCiAgICBhc3NlcnQgLy8gYWNjb3VudCBvcHRlZCBpbnRvIGFzc2V0CiAgICBpdG9iCiAgICBsb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hc3NldC1wcm94eS5hbGdvLnRzOjIxCiAgICAvLyBsb2coYXNzZXQuZnJvemVuKFR4bi5zZW5kZXIpKQogICAgdHhuIFNlbmRlcgogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NldF9ob2xkaW5nX2dldCBBc3NldEZyb3plbgogICAgYXNzZXJ0IC8vIGFjY291bnQgb3B0ZWQgaW50byBhc3NldAogICAgaXRvYgogICAgbG9nCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXNzZXQtcHJveHkuYWxnby50czo6QXNzZXRQcm94eUFsZ28uX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAExGyITQQAnNhoAgARd8RwoTI4BAAIiQzEZIhJEMRgiE0Q2GgEXwDCIABsjQv/oMRkiTI4BAANC/9wxGCISRIgAaSNC/9GKAQCL/xawi/9xAEQWsIv/cQFEFrCL/3ECRBawi/9xA0Swi/9xBESwi/9xBUSwi/9xBkSwi/9xB0Swi/9xCESwi/9xCUSwi/9xCkSwi/9xC0SwMQCL/3AARBawMQCL/3ABRBawiYk=", @@ -123,7 +123,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/asset-proxy/AssetProxyAlgo.clear.teal b/tests/approvals/out/unoptimized/asset-proxy/AssetProxyAlgo.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/asset-proxy/AssetProxyAlgo.clear.teal +++ b/tests/approvals/out/unoptimized/asset-proxy/AssetProxyAlgo.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/avm11/AVM11Contract.approval.teal b/tests/approvals/out/unoptimized/avm11/AVM11Contract.approval.teal index d7d79135c..81bb1d1eb 100644 --- a/tests/approvals/out/unoptimized/avm11/AVM11Contract.approval.teal +++ b/tests/approvals/out/unoptimized/avm11/AVM11Contract.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 +main_block@0: + main_block@1: // tests/approvals/avm11.algo.ts:12-13 // @contract({ name: 'AVM11Contract', avmVersion: 11 }) @@ -80,6 +82,8 @@ main___algots__.defaultCreate@7: // tests/approvals/avm11.algo.ts::Avm11Contract.testNewOps() -> void: testNewOps: + +testNewOps_block@0: // tests/approvals/avm11.algo.ts:16 // const x = Bytes.fromHex('00000000000000000000000000000000000000000000000000000000499602d2') pushbytes 0x00000000000000000000000000000000000000000000000000000000499602d2 @@ -173,4 +177,6 @@ testNewOps: // tests/approvals/avm11.algo.ts::Avm11Contract.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/avm11/AVM11Contract.arc32.json b/tests/approvals/out/unoptimized/avm11/AVM11Contract.arc32.json index 7627fe903..80ba4cad3 100644 --- a/tests/approvals/out/unoptimized/avm11/AVM11Contract.arc32.json +++ b/tests/approvals/out/unoptimized/avm11/AVM11Contract.arc32.json @@ -7,8 +7,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMi0xMwogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMi0xMwogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg1MjQ0OGEzMSAvLyBtZXRob2QgInRlc3ROZXdPcHMoKXZvaWQiCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3Rlc3ROZXdPcHNfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjEyLTEzCiAgICAvLyBAY29udHJhY3QoeyBuYW1lOiAnQVZNMTFDb250cmFjdCcsIGF2bVZlcnNpb246IDExIH0pCiAgICAvLyBleHBvcnQgY2xhc3MgQXZtMTFDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6OkF2bTExQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTE6CiAgICByZXR1cm4KCm1haW5fdGVzdE5ld09wc19yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MTQKICAgIC8vIHRlc3ROZXdPcHMoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3ROZXdPcHMKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czo6QXZtMTFDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKbWFpbl9iYXJlX3JvdXRpbmdANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjEyLTEzCiAgICAvLyBAY29udHJhY3QoeyBuYW1lOiAnQVZNMTFDb250cmFjdCcsIGF2bVZlcnNpb246IDExIH0pCiAgICAvLyBleHBvcnQgY2xhc3MgQXZtMTFDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMi0xMwogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjpBdm0xMUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6OkF2bTExQ29udHJhY3QudGVzdE5ld09wcygpIC0+IHZvaWQ6CnRlc3ROZXdPcHM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxNgogICAgLy8gY29uc3QgeCA9IEJ5dGVzLmZyb21IZXgoJzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDk5NjAyZDInKQogICAgcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0OTk2MDJkMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MTcKICAgIC8vIGFzc2VydChvcC5taW1jKE1pbWNDb25maWd1cmF0aW9ucy5CTFMxMl8zODFNcDExMSwgeCkpCiAgICBtaW1jIEJMUzEyXzM4MU1wMTExCiAgICBsZW4KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MTgKICAgIC8vIGFzc2VydChvcC5vbmxpbmVTdGFrZSgpKQogICAgb25saW5lX3N0YWtlCiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjI2CiAgICAvLyBhc3NlcnQob3AuQmxvY2suYmxrUHJvcG9zZXIoMCkgIT09IEdsb2JhbC56ZXJvQWRkcmVzcywgJ3Byb3Bvc2VyJykKICAgIGludGNfMCAvLyAwCiAgICBibG9jayBCbGtQcm9wb3NlcgogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICAhPQogICAgYXNzZXJ0IC8vIHByb3Bvc2VyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoyNwogICAgLy8gYXNzZXJ0KG9wLkJsb2NrLmJsa0ZlZXNDb2xsZWN0ZWQoMCksICdmZWVzIGNvbGxlY3RlZCcpCiAgICBpbnRjXzAgLy8gMAogICAgYmxvY2sgQmxrRmVlc0NvbGxlY3RlZAogICAgYXNzZXJ0IC8vIGZlZXMgY29sbGVjdGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoyOAogICAgLy8gYXNzZXJ0KG9wLkJsb2NrLmJsa0JvbnVzKDApLCAnYm9udXMnKQogICAgaW50Y18wIC8vIDAKICAgIGJsb2NrIEJsa0JvbnVzCiAgICBhc3NlcnQgLy8gYm9udXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjI5CiAgICAvLyBhc3NlcnQob3AuQmxvY2suYmxrQnJhbmNoKDApLCAnYnJhbmNoJykKICAgIGludGNfMCAvLyAwCiAgICBibG9jayBCbGtCcmFuY2gKICAgIGxlbgogICAgYXNzZXJ0IC8vIGJyYW5jaAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzAKICAgIC8vIGFzc2VydChvcC5CbG9jay5ibGtGZWVTaW5rKDApICE9PSBHbG9iYWwuemVyb0FkZHJlc3MsICdmZWUgc2luaycpCiAgICBpbnRjXzAgLy8gMAogICAgYmxvY2sgQmxrRmVlU2luawogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICAhPQogICAgYXNzZXJ0IC8vIGZlZSBzaW5rCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czozMQogICAgLy8gYXNzZXJ0KG9wLkJsb2NrLmJsa1Byb3RvY29sKDApLCAncHJvdG9jb2wnKQogICAgaW50Y18wIC8vIDAKICAgIGJsb2NrIEJsa1Byb3RvY29sCiAgICBsZW4KICAgIGFzc2VydCAvLyBwcm90b2NvbAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzIKICAgIC8vIGFzc2VydChvcC5CbG9jay5ibGtUeG5Db3VudGVyKDApLCAndHhuIGNvdW50ZXInKQogICAgaW50Y18wIC8vIDAKICAgIGJsb2NrIEJsa1R4bkNvdW50ZXIKICAgIGFzc2VydCAvLyB0eG4gY291bnRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzMKICAgIC8vIGFzc2VydChvcC5CbG9jay5ibGtQcm9wb3NlclBheW91dCgwKSwgJ3Byb3Bvc2VyIHBheW91dCcpCiAgICBpbnRjXzAgLy8gMAogICAgYmxvY2sgQmxrUHJvcG9zZXJQYXlvdXQKICAgIGFzc2VydCAvLyBwcm9wb3NlciBwYXlvdXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjM2CiAgICAvLyBhc3NlcnQob3AuR2xvYmFsLnBheW91dHNFbmFibGVkLCAncGF5b3V0c19lbmFibGVkJykKICAgIGdsb2JhbCBQYXlvdXRzRW5hYmxlZAogICAgYXNzZXJ0IC8vIHBheW91dHNfZW5hYmxlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzcKICAgIC8vIGFzc2VydChvcC5HbG9iYWwucGF5b3V0c0dvT25saW5lRmVlLCAncGF5b3V0c19nb19vbmxpbmVfZmVlJykKICAgIGdsb2JhbCBQYXlvdXRzR29PbmxpbmVGZWUKICAgIGFzc2VydCAvLyBwYXlvdXRzX2dvX29ubGluZV9mZWUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjM4CiAgICAvLyBhc3NlcnQob3AuR2xvYmFsLnBheW91dHNQZXJjZW50LCAncGF5b3V0c19wZXJjZW50JykKICAgIGdsb2JhbCBQYXlvdXRzUGVyY2VudAogICAgYXNzZXJ0IC8vIHBheW91dHNfcGVyY2VudAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzkKICAgIC8vIGFzc2VydChvcC5HbG9iYWwucGF5b3V0c01pbkJhbGFuY2UsICdwYXlvdXRzX21pbl9iYWxhbmNlJykKICAgIGdsb2JhbCBQYXlvdXRzTWluQmFsYW5jZQogICAgYXNzZXJ0IC8vIHBheW91dHNfbWluX2JhbGFuY2UKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjQwCiAgICAvLyBhc3NlcnQob3AuR2xvYmFsLnBheW91dHNNYXhCYWxhbmNlLCAncGF5b3V0c19tYXhfYmFsYW5jZScpCiAgICBnbG9iYWwgUGF5b3V0c01heEJhbGFuY2UKICAgIGFzc2VydCAvLyBwYXlvdXRzX21heF9iYWxhbmNlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czo0MgogICAgLy8gY29uc3QgW2csIGhdID0gb3AuVm90ZXJQYXJhbXMudm90ZXJCYWxhbmNlKDApCiAgICBpbnRjXzAgLy8gMAogICAgdm90ZXJfcGFyYW1zX2dldCBWb3RlckJhbGFuY2UKICAgIHBvcG4gMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6NDMKICAgIC8vIGNvbnN0IFtpLCBqXSA9IG9wLlZvdGVyUGFyYW1zLnZvdGVySW5jZW50aXZlRWxpZ2libGUoMCkKICAgIGludGNfMCAvLyAwCiAgICB2b3Rlcl9wYXJhbXNfZ2V0IFZvdGVySW5jZW50aXZlRWxpZ2libGUKICAgIHBvcG4gMgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6OkF2bTExQ29udHJhY3QuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMi0xMwogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMi0xMwogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg1MjQ0OGEzMSAvLyBtZXRob2QgInRlc3ROZXdPcHMoKXZvaWQiCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3Rlc3ROZXdPcHNfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjEyLTEzCiAgICAvLyBAY29udHJhY3QoeyBuYW1lOiAnQVZNMTFDb250cmFjdCcsIGF2bVZlcnNpb246IDExIH0pCiAgICAvLyBleHBvcnQgY2xhc3MgQXZtMTFDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6OkF2bTExQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTE6CiAgICByZXR1cm4KCm1haW5fdGVzdE5ld09wc19yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MTQKICAgIC8vIHRlc3ROZXdPcHMoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3ROZXdPcHMKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czo6QXZtMTFDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKbWFpbl9iYXJlX3JvdXRpbmdANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjEyLTEzCiAgICAvLyBAY29udHJhY3QoeyBuYW1lOiAnQVZNMTFDb250cmFjdCcsIGF2bVZlcnNpb246IDExIH0pCiAgICAvLyBleHBvcnQgY2xhc3MgQXZtMTFDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMi0xMwogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjpBdm0xMUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6OkF2bTExQ29udHJhY3QudGVzdE5ld09wcygpIC0+IHZvaWQ6CnRlc3ROZXdPcHM6Cgp0ZXN0TmV3T3BzX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxNgogICAgLy8gY29uc3QgeCA9IEJ5dGVzLmZyb21IZXgoJzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDk5NjAyZDInKQogICAgcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0OTk2MDJkMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MTcKICAgIC8vIGFzc2VydChvcC5taW1jKE1pbWNDb25maWd1cmF0aW9ucy5CTFMxMl8zODFNcDExMSwgeCkpCiAgICBtaW1jIEJMUzEyXzM4MU1wMTExCiAgICBsZW4KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MTgKICAgIC8vIGFzc2VydChvcC5vbmxpbmVTdGFrZSgpKQogICAgb25saW5lX3N0YWtlCiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjI2CiAgICAvLyBhc3NlcnQob3AuQmxvY2suYmxrUHJvcG9zZXIoMCkgIT09IEdsb2JhbC56ZXJvQWRkcmVzcywgJ3Byb3Bvc2VyJykKICAgIGludGNfMCAvLyAwCiAgICBibG9jayBCbGtQcm9wb3NlcgogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICAhPQogICAgYXNzZXJ0IC8vIHByb3Bvc2VyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoyNwogICAgLy8gYXNzZXJ0KG9wLkJsb2NrLmJsa0ZlZXNDb2xsZWN0ZWQoMCksICdmZWVzIGNvbGxlY3RlZCcpCiAgICBpbnRjXzAgLy8gMAogICAgYmxvY2sgQmxrRmVlc0NvbGxlY3RlZAogICAgYXNzZXJ0IC8vIGZlZXMgY29sbGVjdGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoyOAogICAgLy8gYXNzZXJ0KG9wLkJsb2NrLmJsa0JvbnVzKDApLCAnYm9udXMnKQogICAgaW50Y18wIC8vIDAKICAgIGJsb2NrIEJsa0JvbnVzCiAgICBhc3NlcnQgLy8gYm9udXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjI5CiAgICAvLyBhc3NlcnQob3AuQmxvY2suYmxrQnJhbmNoKDApLCAnYnJhbmNoJykKICAgIGludGNfMCAvLyAwCiAgICBibG9jayBCbGtCcmFuY2gKICAgIGxlbgogICAgYXNzZXJ0IC8vIGJyYW5jaAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzAKICAgIC8vIGFzc2VydChvcC5CbG9jay5ibGtGZWVTaW5rKDApICE9PSBHbG9iYWwuemVyb0FkZHJlc3MsICdmZWUgc2luaycpCiAgICBpbnRjXzAgLy8gMAogICAgYmxvY2sgQmxrRmVlU2luawogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICAhPQogICAgYXNzZXJ0IC8vIGZlZSBzaW5rCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czozMQogICAgLy8gYXNzZXJ0KG9wLkJsb2NrLmJsa1Byb3RvY29sKDApLCAncHJvdG9jb2wnKQogICAgaW50Y18wIC8vIDAKICAgIGJsb2NrIEJsa1Byb3RvY29sCiAgICBsZW4KICAgIGFzc2VydCAvLyBwcm90b2NvbAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzIKICAgIC8vIGFzc2VydChvcC5CbG9jay5ibGtUeG5Db3VudGVyKDApLCAndHhuIGNvdW50ZXInKQogICAgaW50Y18wIC8vIDAKICAgIGJsb2NrIEJsa1R4bkNvdW50ZXIKICAgIGFzc2VydCAvLyB0eG4gY291bnRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzMKICAgIC8vIGFzc2VydChvcC5CbG9jay5ibGtQcm9wb3NlclBheW91dCgwKSwgJ3Byb3Bvc2VyIHBheW91dCcpCiAgICBpbnRjXzAgLy8gMAogICAgYmxvY2sgQmxrUHJvcG9zZXJQYXlvdXQKICAgIGFzc2VydCAvLyBwcm9wb3NlciBwYXlvdXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjM2CiAgICAvLyBhc3NlcnQob3AuR2xvYmFsLnBheW91dHNFbmFibGVkLCAncGF5b3V0c19lbmFibGVkJykKICAgIGdsb2JhbCBQYXlvdXRzRW5hYmxlZAogICAgYXNzZXJ0IC8vIHBheW91dHNfZW5hYmxlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzcKICAgIC8vIGFzc2VydChvcC5HbG9iYWwucGF5b3V0c0dvT25saW5lRmVlLCAncGF5b3V0c19nb19vbmxpbmVfZmVlJykKICAgIGdsb2JhbCBQYXlvdXRzR29PbmxpbmVGZWUKICAgIGFzc2VydCAvLyBwYXlvdXRzX2dvX29ubGluZV9mZWUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjM4CiAgICAvLyBhc3NlcnQob3AuR2xvYmFsLnBheW91dHNQZXJjZW50LCAncGF5b3V0c19wZXJjZW50JykKICAgIGdsb2JhbCBQYXlvdXRzUGVyY2VudAogICAgYXNzZXJ0IC8vIHBheW91dHNfcGVyY2VudAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzkKICAgIC8vIGFzc2VydChvcC5HbG9iYWwucGF5b3V0c01pbkJhbGFuY2UsICdwYXlvdXRzX21pbl9iYWxhbmNlJykKICAgIGdsb2JhbCBQYXlvdXRzTWluQmFsYW5jZQogICAgYXNzZXJ0IC8vIHBheW91dHNfbWluX2JhbGFuY2UKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjQwCiAgICAvLyBhc3NlcnQob3AuR2xvYmFsLnBheW91dHNNYXhCYWxhbmNlLCAncGF5b3V0c19tYXhfYmFsYW5jZScpCiAgICBnbG9iYWwgUGF5b3V0c01heEJhbGFuY2UKICAgIGFzc2VydCAvLyBwYXlvdXRzX21heF9iYWxhbmNlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czo0MgogICAgLy8gY29uc3QgW2csIGhdID0gb3AuVm90ZXJQYXJhbXMudm90ZXJCYWxhbmNlKDApCiAgICBpbnRjXzAgLy8gMAogICAgdm90ZXJfcGFyYW1zX2dldCBWb3RlckJhbGFuY2UKICAgIHBvcG4gMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6NDMKICAgIC8vIGNvbnN0IFtpLCBqXSA9IG9wLlZvdGVyUGFyYW1zLnZvdGVySW5jZW50aXZlRWxpZ2libGUoMCkKICAgIGludGNfMCAvLyAwCiAgICB2b3Rlcl9wYXJhbXNfZ2V0IFZvdGVySW5jZW50aXZlRWxpZ2libGUKICAgIHBvcG4gMgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6OkF2bTExQ29udHJhY3QuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/avm11/AVM11Contract.arc56.json b/tests/approvals/out/unoptimized/avm11/AVM11Contract.arc56.json index a435c03ff..ed2fcf17a 100644 --- a/tests/approvals/out/unoptimized/avm11/AVM11Contract.arc56.json +++ b/tests/approvals/out/unoptimized/avm11/AVM11Contract.arc56.json @@ -160,8 +160,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMi0xMwogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMi0xMwogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg1MjQ0OGEzMSAvLyBtZXRob2QgInRlc3ROZXdPcHMoKXZvaWQiCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3Rlc3ROZXdPcHNfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjEyLTEzCiAgICAvLyBAY29udHJhY3QoeyBuYW1lOiAnQVZNMTFDb250cmFjdCcsIGF2bVZlcnNpb246IDExIH0pCiAgICAvLyBleHBvcnQgY2xhc3MgQXZtMTFDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6OkF2bTExQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTE6CiAgICByZXR1cm4KCm1haW5fdGVzdE5ld09wc19yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MTQKICAgIC8vIHRlc3ROZXdPcHMoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3ROZXdPcHMKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czo6QXZtMTFDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKbWFpbl9iYXJlX3JvdXRpbmdANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjEyLTEzCiAgICAvLyBAY29udHJhY3QoeyBuYW1lOiAnQVZNMTFDb250cmFjdCcsIGF2bVZlcnNpb246IDExIH0pCiAgICAvLyBleHBvcnQgY2xhc3MgQXZtMTFDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMi0xMwogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjpBdm0xMUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6OkF2bTExQ29udHJhY3QudGVzdE5ld09wcygpIC0+IHZvaWQ6CnRlc3ROZXdPcHM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxNgogICAgLy8gY29uc3QgeCA9IEJ5dGVzLmZyb21IZXgoJzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDk5NjAyZDInKQogICAgcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0OTk2MDJkMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MTcKICAgIC8vIGFzc2VydChvcC5taW1jKE1pbWNDb25maWd1cmF0aW9ucy5CTFMxMl8zODFNcDExMSwgeCkpCiAgICBtaW1jIEJMUzEyXzM4MU1wMTExCiAgICBsZW4KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MTgKICAgIC8vIGFzc2VydChvcC5vbmxpbmVTdGFrZSgpKQogICAgb25saW5lX3N0YWtlCiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjI2CiAgICAvLyBhc3NlcnQob3AuQmxvY2suYmxrUHJvcG9zZXIoMCkgIT09IEdsb2JhbC56ZXJvQWRkcmVzcywgJ3Byb3Bvc2VyJykKICAgIGludGNfMCAvLyAwCiAgICBibG9jayBCbGtQcm9wb3NlcgogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICAhPQogICAgYXNzZXJ0IC8vIHByb3Bvc2VyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoyNwogICAgLy8gYXNzZXJ0KG9wLkJsb2NrLmJsa0ZlZXNDb2xsZWN0ZWQoMCksICdmZWVzIGNvbGxlY3RlZCcpCiAgICBpbnRjXzAgLy8gMAogICAgYmxvY2sgQmxrRmVlc0NvbGxlY3RlZAogICAgYXNzZXJ0IC8vIGZlZXMgY29sbGVjdGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoyOAogICAgLy8gYXNzZXJ0KG9wLkJsb2NrLmJsa0JvbnVzKDApLCAnYm9udXMnKQogICAgaW50Y18wIC8vIDAKICAgIGJsb2NrIEJsa0JvbnVzCiAgICBhc3NlcnQgLy8gYm9udXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjI5CiAgICAvLyBhc3NlcnQob3AuQmxvY2suYmxrQnJhbmNoKDApLCAnYnJhbmNoJykKICAgIGludGNfMCAvLyAwCiAgICBibG9jayBCbGtCcmFuY2gKICAgIGxlbgogICAgYXNzZXJ0IC8vIGJyYW5jaAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzAKICAgIC8vIGFzc2VydChvcC5CbG9jay5ibGtGZWVTaW5rKDApICE9PSBHbG9iYWwuemVyb0FkZHJlc3MsICdmZWUgc2luaycpCiAgICBpbnRjXzAgLy8gMAogICAgYmxvY2sgQmxrRmVlU2luawogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICAhPQogICAgYXNzZXJ0IC8vIGZlZSBzaW5rCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czozMQogICAgLy8gYXNzZXJ0KG9wLkJsb2NrLmJsa1Byb3RvY29sKDApLCAncHJvdG9jb2wnKQogICAgaW50Y18wIC8vIDAKICAgIGJsb2NrIEJsa1Byb3RvY29sCiAgICBsZW4KICAgIGFzc2VydCAvLyBwcm90b2NvbAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzIKICAgIC8vIGFzc2VydChvcC5CbG9jay5ibGtUeG5Db3VudGVyKDApLCAndHhuIGNvdW50ZXInKQogICAgaW50Y18wIC8vIDAKICAgIGJsb2NrIEJsa1R4bkNvdW50ZXIKICAgIGFzc2VydCAvLyB0eG4gY291bnRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzMKICAgIC8vIGFzc2VydChvcC5CbG9jay5ibGtQcm9wb3NlclBheW91dCgwKSwgJ3Byb3Bvc2VyIHBheW91dCcpCiAgICBpbnRjXzAgLy8gMAogICAgYmxvY2sgQmxrUHJvcG9zZXJQYXlvdXQKICAgIGFzc2VydCAvLyBwcm9wb3NlciBwYXlvdXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjM2CiAgICAvLyBhc3NlcnQob3AuR2xvYmFsLnBheW91dHNFbmFibGVkLCAncGF5b3V0c19lbmFibGVkJykKICAgIGdsb2JhbCBQYXlvdXRzRW5hYmxlZAogICAgYXNzZXJ0IC8vIHBheW91dHNfZW5hYmxlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzcKICAgIC8vIGFzc2VydChvcC5HbG9iYWwucGF5b3V0c0dvT25saW5lRmVlLCAncGF5b3V0c19nb19vbmxpbmVfZmVlJykKICAgIGdsb2JhbCBQYXlvdXRzR29PbmxpbmVGZWUKICAgIGFzc2VydCAvLyBwYXlvdXRzX2dvX29ubGluZV9mZWUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjM4CiAgICAvLyBhc3NlcnQob3AuR2xvYmFsLnBheW91dHNQZXJjZW50LCAncGF5b3V0c19wZXJjZW50JykKICAgIGdsb2JhbCBQYXlvdXRzUGVyY2VudAogICAgYXNzZXJ0IC8vIHBheW91dHNfcGVyY2VudAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzkKICAgIC8vIGFzc2VydChvcC5HbG9iYWwucGF5b3V0c01pbkJhbGFuY2UsICdwYXlvdXRzX21pbl9iYWxhbmNlJykKICAgIGdsb2JhbCBQYXlvdXRzTWluQmFsYW5jZQogICAgYXNzZXJ0IC8vIHBheW91dHNfbWluX2JhbGFuY2UKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjQwCiAgICAvLyBhc3NlcnQob3AuR2xvYmFsLnBheW91dHNNYXhCYWxhbmNlLCAncGF5b3V0c19tYXhfYmFsYW5jZScpCiAgICBnbG9iYWwgUGF5b3V0c01heEJhbGFuY2UKICAgIGFzc2VydCAvLyBwYXlvdXRzX21heF9iYWxhbmNlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czo0MgogICAgLy8gY29uc3QgW2csIGhdID0gb3AuVm90ZXJQYXJhbXMudm90ZXJCYWxhbmNlKDApCiAgICBpbnRjXzAgLy8gMAogICAgdm90ZXJfcGFyYW1zX2dldCBWb3RlckJhbGFuY2UKICAgIHBvcG4gMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6NDMKICAgIC8vIGNvbnN0IFtpLCBqXSA9IG9wLlZvdGVyUGFyYW1zLnZvdGVySW5jZW50aXZlRWxpZ2libGUoMCkKICAgIGludGNfMCAvLyAwCiAgICB2b3Rlcl9wYXJhbXNfZ2V0IFZvdGVySW5jZW50aXZlRWxpZ2libGUKICAgIHBvcG4gMgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6OkF2bTExQ29udHJhY3QuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMi0xMwogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMi0xMwogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg1MjQ0OGEzMSAvLyBtZXRob2QgInRlc3ROZXdPcHMoKXZvaWQiCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3Rlc3ROZXdPcHNfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjEyLTEzCiAgICAvLyBAY29udHJhY3QoeyBuYW1lOiAnQVZNMTFDb250cmFjdCcsIGF2bVZlcnNpb246IDExIH0pCiAgICAvLyBleHBvcnQgY2xhc3MgQXZtMTFDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6OkF2bTExQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTE6CiAgICByZXR1cm4KCm1haW5fdGVzdE5ld09wc19yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MTQKICAgIC8vIHRlc3ROZXdPcHMoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3ROZXdPcHMKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czo6QXZtMTFDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKbWFpbl9iYXJlX3JvdXRpbmdANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjEyLTEzCiAgICAvLyBAY29udHJhY3QoeyBuYW1lOiAnQVZNMTFDb250cmFjdCcsIGF2bVZlcnNpb246IDExIH0pCiAgICAvLyBleHBvcnQgY2xhc3MgQXZtMTFDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMi0xMwogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjpBdm0xMUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6OkF2bTExQ29udHJhY3QudGVzdE5ld09wcygpIC0+IHZvaWQ6CnRlc3ROZXdPcHM6Cgp0ZXN0TmV3T3BzX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxNgogICAgLy8gY29uc3QgeCA9IEJ5dGVzLmZyb21IZXgoJzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDk5NjAyZDInKQogICAgcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0OTk2MDJkMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MTcKICAgIC8vIGFzc2VydChvcC5taW1jKE1pbWNDb25maWd1cmF0aW9ucy5CTFMxMl8zODFNcDExMSwgeCkpCiAgICBtaW1jIEJMUzEyXzM4MU1wMTExCiAgICBsZW4KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MTgKICAgIC8vIGFzc2VydChvcC5vbmxpbmVTdGFrZSgpKQogICAgb25saW5lX3N0YWtlCiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjI2CiAgICAvLyBhc3NlcnQob3AuQmxvY2suYmxrUHJvcG9zZXIoMCkgIT09IEdsb2JhbC56ZXJvQWRkcmVzcywgJ3Byb3Bvc2VyJykKICAgIGludGNfMCAvLyAwCiAgICBibG9jayBCbGtQcm9wb3NlcgogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICAhPQogICAgYXNzZXJ0IC8vIHByb3Bvc2VyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoyNwogICAgLy8gYXNzZXJ0KG9wLkJsb2NrLmJsa0ZlZXNDb2xsZWN0ZWQoMCksICdmZWVzIGNvbGxlY3RlZCcpCiAgICBpbnRjXzAgLy8gMAogICAgYmxvY2sgQmxrRmVlc0NvbGxlY3RlZAogICAgYXNzZXJ0IC8vIGZlZXMgY29sbGVjdGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoyOAogICAgLy8gYXNzZXJ0KG9wLkJsb2NrLmJsa0JvbnVzKDApLCAnYm9udXMnKQogICAgaW50Y18wIC8vIDAKICAgIGJsb2NrIEJsa0JvbnVzCiAgICBhc3NlcnQgLy8gYm9udXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjI5CiAgICAvLyBhc3NlcnQob3AuQmxvY2suYmxrQnJhbmNoKDApLCAnYnJhbmNoJykKICAgIGludGNfMCAvLyAwCiAgICBibG9jayBCbGtCcmFuY2gKICAgIGxlbgogICAgYXNzZXJ0IC8vIGJyYW5jaAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzAKICAgIC8vIGFzc2VydChvcC5CbG9jay5ibGtGZWVTaW5rKDApICE9PSBHbG9iYWwuemVyb0FkZHJlc3MsICdmZWUgc2luaycpCiAgICBpbnRjXzAgLy8gMAogICAgYmxvY2sgQmxrRmVlU2luawogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICAhPQogICAgYXNzZXJ0IC8vIGZlZSBzaW5rCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czozMQogICAgLy8gYXNzZXJ0KG9wLkJsb2NrLmJsa1Byb3RvY29sKDApLCAncHJvdG9jb2wnKQogICAgaW50Y18wIC8vIDAKICAgIGJsb2NrIEJsa1Byb3RvY29sCiAgICBsZW4KICAgIGFzc2VydCAvLyBwcm90b2NvbAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzIKICAgIC8vIGFzc2VydChvcC5CbG9jay5ibGtUeG5Db3VudGVyKDApLCAndHhuIGNvdW50ZXInKQogICAgaW50Y18wIC8vIDAKICAgIGJsb2NrIEJsa1R4bkNvdW50ZXIKICAgIGFzc2VydCAvLyB0eG4gY291bnRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzMKICAgIC8vIGFzc2VydChvcC5CbG9jay5ibGtQcm9wb3NlclBheW91dCgwKSwgJ3Byb3Bvc2VyIHBheW91dCcpCiAgICBpbnRjXzAgLy8gMAogICAgYmxvY2sgQmxrUHJvcG9zZXJQYXlvdXQKICAgIGFzc2VydCAvLyBwcm9wb3NlciBwYXlvdXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjM2CiAgICAvLyBhc3NlcnQob3AuR2xvYmFsLnBheW91dHNFbmFibGVkLCAncGF5b3V0c19lbmFibGVkJykKICAgIGdsb2JhbCBQYXlvdXRzRW5hYmxlZAogICAgYXNzZXJ0IC8vIHBheW91dHNfZW5hYmxlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzcKICAgIC8vIGFzc2VydChvcC5HbG9iYWwucGF5b3V0c0dvT25saW5lRmVlLCAncGF5b3V0c19nb19vbmxpbmVfZmVlJykKICAgIGdsb2JhbCBQYXlvdXRzR29PbmxpbmVGZWUKICAgIGFzc2VydCAvLyBwYXlvdXRzX2dvX29ubGluZV9mZWUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjM4CiAgICAvLyBhc3NlcnQob3AuR2xvYmFsLnBheW91dHNQZXJjZW50LCAncGF5b3V0c19wZXJjZW50JykKICAgIGdsb2JhbCBQYXlvdXRzUGVyY2VudAogICAgYXNzZXJ0IC8vIHBheW91dHNfcGVyY2VudAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzkKICAgIC8vIGFzc2VydChvcC5HbG9iYWwucGF5b3V0c01pbkJhbGFuY2UsICdwYXlvdXRzX21pbl9iYWxhbmNlJykKICAgIGdsb2JhbCBQYXlvdXRzTWluQmFsYW5jZQogICAgYXNzZXJ0IC8vIHBheW91dHNfbWluX2JhbGFuY2UKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjQwCiAgICAvLyBhc3NlcnQob3AuR2xvYmFsLnBheW91dHNNYXhCYWxhbmNlLCAncGF5b3V0c19tYXhfYmFsYW5jZScpCiAgICBnbG9iYWwgUGF5b3V0c01heEJhbGFuY2UKICAgIGFzc2VydCAvLyBwYXlvdXRzX21heF9iYWxhbmNlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czo0MgogICAgLy8gY29uc3QgW2csIGhdID0gb3AuVm90ZXJQYXJhbXMudm90ZXJCYWxhbmNlKDApCiAgICBpbnRjXzAgLy8gMAogICAgdm90ZXJfcGFyYW1zX2dldCBWb3RlckJhbGFuY2UKICAgIHBvcG4gMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6NDMKICAgIC8vIGNvbnN0IFtpLCBqXSA9IG9wLlZvdGVyUGFyYW1zLnZvdGVySW5jZW50aXZlRWxpZ2libGUoMCkKICAgIGludGNfMCAvLyAwCiAgICB2b3Rlcl9wYXJhbXNfZ2V0IFZvdGVySW5jZW50aXZlRWxpZ2libGUKICAgIHBvcG4gMgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6OkF2bTExQ29udHJhY3QuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CyACAAExGyITQQAhNhoAgARSRIoxTI4BAAIiQzEZIhJEMRgiE0SIABsjQv/uMRkiTI4BAANC/+IxGCISRIgAbiNC/9eAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABJlgLS5gEVRHVEItECMgMTRCLRA0Qi0QREItEFFUQi0QYyAxNEItEHFUQi0QhEItEJRDISRDITRDIURDIVRDIWRCJ0AEYCInQBRgKJiQ==", @@ -172,7 +172,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/avm11/AVM11Contract.clear.teal b/tests/approvals/out/unoptimized/avm11/AVM11Contract.clear.teal index 42f81b0f1..3f2cd5b37 100644 --- a/tests/approvals/out/unoptimized/avm11/AVM11Contract.clear.teal +++ b/tests/approvals/out/unoptimized/avm11/AVM11Contract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/avm11/AVM11SIG.teal b/tests/approvals/out/unoptimized/avm11/AVM11SIG.teal index 2698da9fe..2dd118651 100644 --- a/tests/approvals/out/unoptimized/avm11/AVM11SIG.teal +++ b/tests/approvals/out/unoptimized/avm11/AVM11SIG.teal @@ -3,6 +3,8 @@ // tests/approvals/avm11.algo.ts::program() -> uint64: main: + +main_block@0: // tests/approvals/avm11.algo.ts:7 // const a = Bytes.fromHex('00000000000000000000000000000000000000000000000000000000499602d2') pushbytes 0x00000000000000000000000000000000000000000000000000000000499602d2 diff --git a/tests/approvals/out/unoptimized/biguint-expressions/DemoContract.approval.teal b/tests/approvals/out/unoptimized/biguint-expressions/DemoContract.approval.teal index 907644744..8b459b20d 100644 --- a/tests/approvals/out/unoptimized/biguint-expressions/DemoContract.approval.teal +++ b/tests/approvals/out/unoptimized/biguint-expressions/DemoContract.approval.teal @@ -5,6 +5,8 @@ main: intcblock 4 0 1 bytecblock 0x 0x01 + +main_block@0: // tests/approvals/biguint-expressions.algo.ts:32 // testConstructor(12312312, 12312312n, false, 0n, itob(4), 4n) intc_0 // 4 @@ -32,6 +34,8 @@ testConstructor: // tests/approvals/biguint-expressions.algo.ts:5 // function testConstructor(a: uint64, a_b: biguint, b: boolean, b_b: biguint, c: bytes, c_b: biguint) { proto 6 0 + +testConstructor_block@0: // tests/approvals/biguint-expressions.algo.ts:6 // assert(BigUint() === 0n) bytec_0 // 0x @@ -127,6 +131,8 @@ testOps: // tests/approvals/biguint-expressions.algo.ts:21 // function testOps(smaller: biguint, larger: biguint) { proto 2 0 + +testOps_block@0: // tests/approvals/biguint-expressions.algo.ts:22 // assert(smaller < larger) frame_dig -2 diff --git a/tests/approvals/out/unoptimized/biguint-expressions/DemoContract.clear.teal b/tests/approvals/out/unoptimized/biguint-expressions/DemoContract.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/biguint-expressions/DemoContract.clear.teal +++ b/tests/approvals/out/unoptimized/biguint-expressions/DemoContract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/boolean-conversions/BooleanConversionsAlgo.approval.teal b/tests/approvals/out/unoptimized/boolean-conversions/BooleanConversionsAlgo.approval.teal index b14278ad4..a67c19fdb 100644 --- a/tests/approvals/out/unoptimized/boolean-conversions/BooleanConversionsAlgo.approval.teal +++ b/tests/approvals/out/unoptimized/boolean-conversions/BooleanConversionsAlgo.approval.teal @@ -5,6 +5,8 @@ main: intcblock 1 0 bytecblock 0x "abc" 0x01 "abcdef" + +main_block@0: // tests/approvals/boolean-conversions.algo.ts:34 // test_truthyness() callsub test_truthyness @@ -19,6 +21,8 @@ main: // tests/approvals/boolean-conversions.algo.ts::test_truthyness() -> void: test_truthyness: + +test_truthyness_block@0: // tests/approvals/boolean-conversions.algo.ts:6 // assert(!Uint64(0), 'Zero is falsy') intc_1 // 0 @@ -73,6 +77,8 @@ test_truthyness: // tests/approvals/boolean-conversions.algo.ts::test_booleans_are_equal() -> void: test_booleans_are_equal: + +test_booleans_are_equal_block@0: // tests/approvals/boolean-conversions.algo.ts:21 // assert(Boolean(1) === Boolean(5)) intc_0 // 1 diff --git a/tests/approvals/out/unoptimized/boolean-conversions/BooleanConversionsAlgo.clear.teal b/tests/approvals/out/unoptimized/boolean-conversions/BooleanConversionsAlgo.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/boolean-conversions/BooleanConversionsAlgo.clear.teal +++ b/tests/approvals/out/unoptimized/boolean-conversions/BooleanConversionsAlgo.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/box-enum-contract/BoxContract.approval.teal b/tests/approvals/out/unoptimized/box-enum-contract/BoxContract.approval.teal index a30c0c72b..4a362e893 100644 --- a/tests/approvals/out/unoptimized/box-enum-contract/BoxContract.approval.teal +++ b/tests/approvals/out/unoptimized/box-enum-contract/BoxContract.approval.teal @@ -6,6 +6,8 @@ main: intcblock 0 1 bytecblock "oca" "txn" +main_block@0: + main_block@1: // tests/approvals/box-enum-contract.algo.ts:4 // export class BoxContract extends arc4.Contract { @@ -96,6 +98,8 @@ main___algots__.defaultCreate@8: // tests/approvals/box-enum-contract.algo.ts::BoxContract.storeEnums() -> void: storeEnums: + +storeEnums_block@0: // tests/approvals/box-enum-contract.algo.ts:10 // this.oca.value = arc4.OnCompleteAction.OptIn intc_1 // 1 @@ -123,6 +127,8 @@ storeEnums: // tests/approvals/box-enum-contract.algo.ts::BoxContract.readEnums() -> bytes: readEnums: + +readEnums_block@0: // tests/approvals/box-enum-contract.algo.ts:16 // assert(op.Box.get(Bytes('oca'))[0] === op.itob(this.oca.value)) bytec_0 // "oca" @@ -191,4 +197,6 @@ readEnums: // tests/approvals/box-enum-contract.algo.ts::BoxContract.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/box-enum-contract/BoxContract.arc32.json b/tests/approvals/out/unoptimized/box-enum-contract/BoxContract.arc32.json index 7728fae8e..dbe22ec01 100644 --- a/tests/approvals/out/unoptimized/box-enum-contract/BoxContract.arc32.json +++ b/tests/approvals/out/unoptimized/box-enum-contract/BoxContract.arc32.json @@ -12,8 +12,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJvY2EiICJ0eG4iCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQm94Q29udHJhY3QgZXh0ZW5kcyBhcmM0LkNvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDcKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCb3hDb250cmFjdCBleHRlbmRzIGFyYzQuQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4ZjI2YzZkNDIgLy8gbWV0aG9kICJzdG9yZV9lbnVtcygpdm9pZCIKICAgIHB1c2hieXRlcyAweGVmMTg2Y2Y3IC8vIG1ldGhvZCAicmVhZF9lbnVtcygpKHVpbnQ2NCx1aW50NjQpIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX3N0b3JlX2VudW1zX3JvdXRlQDMgbWFpbl9yZWFkX2VudW1zX3JvdXRlQDQKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDY6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQm94Q29udHJhY3QgZXh0ZW5kcyBhcmM0LkNvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6OkJveENvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyOgogICAgcmV0dXJuCgptYWluX3JlYWRfZW51bXNfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjE0CiAgICAvLyBAYXJjNC5hYmltZXRob2QoeyBuYW1lOiAncmVhZF9lbnVtcycgfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgcmVhZEVudW1zCiAgICBwdXNoYnl0ZXMgMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czo6Qm94Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCm1haW5fc3RvcmVfZW51bXNfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjgKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCh7IG5hbWU6ICdzdG9yZV9lbnVtcycgfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgc3RvcmVFbnVtcwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjpCb3hDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKbWFpbl9iYXJlX3JvdXRpbmdANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCb3hDb250cmFjdCBleHRlbmRzIGFyYzQuQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTEKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQm94Q29udHJhY3QgZXh0ZW5kcyBhcmM0LkNvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6OkJveENvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgoKLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6OkJveENvbnRyYWN0LnN0b3JlRW51bXMoKSAtPiB2b2lkOgpzdG9yZUVudW1zOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6MTAKICAgIC8vIHRoaXMub2NhLnZhbHVlID0gYXJjNC5PbkNvbXBsZXRlQWN0aW9uLk9wdEluCiAgICBpbnRjXzEgLy8gMQogICAgaXRvYgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6NQogICAgLy8gb2NhID0gQm94PGFyYzQuT25Db21wbGV0ZUFjdGlvbj4oeyBrZXk6IEJ5dGVzKCdvY2EnKSB9KQogICAgYnl0ZWNfMCAvLyAib2NhIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6MTAKICAgIC8vIHRoaXMub2NhLnZhbHVlID0gYXJjNC5PbkNvbXBsZXRlQWN0aW9uLk9wdEluCiAgICBzd2FwCiAgICBib3hfcHV0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czoxMQogICAgLy8gdGhpcy50eG4udmFsdWUgPSBUcmFuc2FjdGlvblR5cGUuQXBwbGljYXRpb25DYWxsCiAgICBwdXNoaW50IDYgLy8gNgogICAgaXRvYgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6NgogICAgLy8gdHhuID0gQm94PFRyYW5zYWN0aW9uVHlwZT4oeyBrZXk6IEJ5dGVzKCd0eG4nKSB9KQogICAgYnl0ZWNfMSAvLyAidHhuIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6MTEKICAgIC8vIHRoaXMudHhuLnZhbHVlID0gVHJhbnNhY3Rpb25UeXBlLkFwcGxpY2F0aW9uQ2FsbAogICAgc3dhcAogICAgYm94X3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6OkJveENvbnRyYWN0LnJlYWRFbnVtcygpIC0+IGJ5dGVzOgpyZWFkRW51bXM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czoxNgogICAgLy8gYXNzZXJ0KG9wLkJveC5nZXQoQnl0ZXMoJ29jYScpKVswXSA9PT0gb3AuaXRvYih0aGlzLm9jYS52YWx1ZSkpCiAgICBieXRlY18wIC8vICJvY2EiCiAgICBib3hfZ2V0CiAgICBwb3AKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjUKICAgIC8vIG9jYSA9IEJveDxhcmM0Lk9uQ29tcGxldGVBY3Rpb24+KHsga2V5OiBCeXRlcygnb2NhJykgfSkKICAgIGJ5dGVjXzAgLy8gIm9jYSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjE2CiAgICAvLyBhc3NlcnQob3AuQm94LmdldChCeXRlcygnb2NhJykpWzBdID09PSBvcC5pdG9iKHRoaXMub2NhLnZhbHVlKSkKICAgIGJveF9nZXQKICAgIHN3YXAKICAgIGJ0b2kKICAgIHN3YXAKICAgIGFzc2VydCAvLyBCb3ggbXVzdCBoYXZlIHZhbHVlCiAgICBpdG9iCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czoxNwogICAgLy8gYXNzZXJ0KG9wLkJveC5nZXQoQnl0ZXMoJ3R4bicpKVswXSA9PT0gb3AuaXRvYih0aGlzLnR4bi52YWx1ZSkpCiAgICBieXRlY18xIC8vICJ0eG4iCiAgICBib3hfZ2V0CiAgICBwb3AKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjYKICAgIC8vIHR4biA9IEJveDxUcmFuc2FjdGlvblR5cGU+KHsga2V5OiBCeXRlcygndHhuJykgfSkKICAgIGJ5dGVjXzEgLy8gInR4biIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjE3CiAgICAvLyBhc3NlcnQob3AuQm94LmdldChCeXRlcygndHhuJykpWzBdID09PSBvcC5pdG9iKHRoaXMudHhuLnZhbHVlKSkKICAgIGJveF9nZXQKICAgIHN3YXAKICAgIGJ0b2kKICAgIHN3YXAKICAgIGFzc2VydCAvLyBCb3ggbXVzdCBoYXZlIHZhbHVlCiAgICBpdG9iCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czo1CiAgICAvLyBvY2EgPSBCb3g8YXJjNC5PbkNvbXBsZXRlQWN0aW9uPih7IGtleTogQnl0ZXMoJ29jYScpIH0pCiAgICBieXRlY18wIC8vICJvY2EiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czoxOQogICAgLy8gcmV0dXJuIG5ldyBUdXBsZShuZXcgVWludE42NCh0aGlzLm9jYS52YWx1ZSksIG5ldyBVaW50TjY0KHRoaXMudHhuLnZhbHVlKSkKICAgIGJveF9nZXQKICAgIHN3YXAKICAgIGJ0b2kKICAgIHN3YXAKICAgIGFzc2VydCAvLyBCb3ggbXVzdCBoYXZlIHZhbHVlCiAgICBpdG9iCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czo2CiAgICAvLyB0eG4gPSBCb3g8VHJhbnNhY3Rpb25UeXBlPih7IGtleTogQnl0ZXMoJ3R4bicpIH0pCiAgICBieXRlY18xIC8vICJ0eG4iCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czoxOQogICAgLy8gcmV0dXJuIG5ldyBUdXBsZShuZXcgVWludE42NCh0aGlzLm9jYS52YWx1ZSksIG5ldyBVaW50TjY0KHRoaXMudHhuLnZhbHVlKSkKICAgIGJveF9nZXQKICAgIHN3YXAKICAgIGJ0b2kKICAgIHN3YXAKICAgIGFzc2VydCAvLyBCb3ggbXVzdCBoYXZlIHZhbHVlCiAgICBpdG9iCiAgICBwdXNoYnl0ZXMgMHgKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjpCb3hDb250cmFjdC5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJvY2EiICJ0eG4iCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQm94Q29udHJhY3QgZXh0ZW5kcyBhcmM0LkNvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDcKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCb3hDb250cmFjdCBleHRlbmRzIGFyYzQuQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4ZjI2YzZkNDIgLy8gbWV0aG9kICJzdG9yZV9lbnVtcygpdm9pZCIKICAgIHB1c2hieXRlcyAweGVmMTg2Y2Y3IC8vIG1ldGhvZCAicmVhZF9lbnVtcygpKHVpbnQ2NCx1aW50NjQpIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX3N0b3JlX2VudW1zX3JvdXRlQDMgbWFpbl9yZWFkX2VudW1zX3JvdXRlQDQKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDY6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQm94Q29udHJhY3QgZXh0ZW5kcyBhcmM0LkNvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6OkJveENvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyOgogICAgcmV0dXJuCgptYWluX3JlYWRfZW51bXNfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjE0CiAgICAvLyBAYXJjNC5hYmltZXRob2QoeyBuYW1lOiAncmVhZF9lbnVtcycgfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgcmVhZEVudW1zCiAgICBwdXNoYnl0ZXMgMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czo6Qm94Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCm1haW5fc3RvcmVfZW51bXNfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjgKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCh7IG5hbWU6ICdzdG9yZV9lbnVtcycgfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgc3RvcmVFbnVtcwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjpCb3hDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKbWFpbl9iYXJlX3JvdXRpbmdANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCb3hDb250cmFjdCBleHRlbmRzIGFyYzQuQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTEKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQm94Q29udHJhY3QgZXh0ZW5kcyBhcmM0LkNvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6OkJveENvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgoKLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6OkJveENvbnRyYWN0LnN0b3JlRW51bXMoKSAtPiB2b2lkOgpzdG9yZUVudW1zOgoKc3RvcmVFbnVtc19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6MTAKICAgIC8vIHRoaXMub2NhLnZhbHVlID0gYXJjNC5PbkNvbXBsZXRlQWN0aW9uLk9wdEluCiAgICBpbnRjXzEgLy8gMQogICAgaXRvYgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6NQogICAgLy8gb2NhID0gQm94PGFyYzQuT25Db21wbGV0ZUFjdGlvbj4oeyBrZXk6IEJ5dGVzKCdvY2EnKSB9KQogICAgYnl0ZWNfMCAvLyAib2NhIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6MTAKICAgIC8vIHRoaXMub2NhLnZhbHVlID0gYXJjNC5PbkNvbXBsZXRlQWN0aW9uLk9wdEluCiAgICBzd2FwCiAgICBib3hfcHV0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czoxMQogICAgLy8gdGhpcy50eG4udmFsdWUgPSBUcmFuc2FjdGlvblR5cGUuQXBwbGljYXRpb25DYWxsCiAgICBwdXNoaW50IDYgLy8gNgogICAgaXRvYgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6NgogICAgLy8gdHhuID0gQm94PFRyYW5zYWN0aW9uVHlwZT4oeyBrZXk6IEJ5dGVzKCd0eG4nKSB9KQogICAgYnl0ZWNfMSAvLyAidHhuIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6MTEKICAgIC8vIHRoaXMudHhuLnZhbHVlID0gVHJhbnNhY3Rpb25UeXBlLkFwcGxpY2F0aW9uQ2FsbAogICAgc3dhcAogICAgYm94X3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6OkJveENvbnRyYWN0LnJlYWRFbnVtcygpIC0+IGJ5dGVzOgpyZWFkRW51bXM6CgpyZWFkRW51bXNfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjE2CiAgICAvLyBhc3NlcnQob3AuQm94LmdldChCeXRlcygnb2NhJykpWzBdID09PSBvcC5pdG9iKHRoaXMub2NhLnZhbHVlKSkKICAgIGJ5dGVjXzAgLy8gIm9jYSIKICAgIGJveF9nZXQKICAgIHBvcAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6NQogICAgLy8gb2NhID0gQm94PGFyYzQuT25Db21wbGV0ZUFjdGlvbj4oeyBrZXk6IEJ5dGVzKCdvY2EnKSB9KQogICAgYnl0ZWNfMCAvLyAib2NhIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6MTYKICAgIC8vIGFzc2VydChvcC5Cb3guZ2V0KEJ5dGVzKCdvY2EnKSlbMF0gPT09IG9wLml0b2IodGhpcy5vY2EudmFsdWUpKQogICAgYm94X2dldAogICAgc3dhcAogICAgYnRvaQogICAgc3dhcAogICAgYXNzZXJ0IC8vIEJveCBtdXN0IGhhdmUgdmFsdWUKICAgIGl0b2IKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjE3CiAgICAvLyBhc3NlcnQob3AuQm94LmdldChCeXRlcygndHhuJykpWzBdID09PSBvcC5pdG9iKHRoaXMudHhuLnZhbHVlKSkKICAgIGJ5dGVjXzEgLy8gInR4biIKICAgIGJveF9nZXQKICAgIHBvcAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6NgogICAgLy8gdHhuID0gQm94PFRyYW5zYWN0aW9uVHlwZT4oeyBrZXk6IEJ5dGVzKCd0eG4nKSB9KQogICAgYnl0ZWNfMSAvLyAidHhuIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6MTcKICAgIC8vIGFzc2VydChvcC5Cb3guZ2V0KEJ5dGVzKCd0eG4nKSlbMF0gPT09IG9wLml0b2IodGhpcy50eG4udmFsdWUpKQogICAgYm94X2dldAogICAgc3dhcAogICAgYnRvaQogICAgc3dhcAogICAgYXNzZXJ0IC8vIEJveCBtdXN0IGhhdmUgdmFsdWUKICAgIGl0b2IKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjUKICAgIC8vIG9jYSA9IEJveDxhcmM0Lk9uQ29tcGxldGVBY3Rpb24+KHsga2V5OiBCeXRlcygnb2NhJykgfSkKICAgIGJ5dGVjXzAgLy8gIm9jYSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjE5CiAgICAvLyByZXR1cm4gbmV3IFR1cGxlKG5ldyBVaW50TjY0KHRoaXMub2NhLnZhbHVlKSwgbmV3IFVpbnRONjQodGhpcy50eG4udmFsdWUpKQogICAgYm94X2dldAogICAgc3dhcAogICAgYnRvaQogICAgc3dhcAogICAgYXNzZXJ0IC8vIEJveCBtdXN0IGhhdmUgdmFsdWUKICAgIGl0b2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjYKICAgIC8vIHR4biA9IEJveDxUcmFuc2FjdGlvblR5cGU+KHsga2V5OiBCeXRlcygndHhuJykgfSkKICAgIGJ5dGVjXzEgLy8gInR4biIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjE5CiAgICAvLyByZXR1cm4gbmV3IFR1cGxlKG5ldyBVaW50TjY0KHRoaXMub2NhLnZhbHVlKSwgbmV3IFVpbnRONjQodGhpcy50eG4udmFsdWUpKQogICAgYm94X2dldAogICAgc3dhcAogICAgYnRvaQogICAgc3dhcAogICAgYXNzZXJ0IC8vIEJveCBtdXN0IGhhdmUgdmFsdWUKICAgIGl0b2IKICAgIHB1c2hieXRlcyAweAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6OkJveENvbnRyYWN0Ll9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/box-enum-contract/BoxContract.arc56.json b/tests/approvals/out/unoptimized/box-enum-contract/BoxContract.arc56.json index 902625096..bde78fbf5 100644 --- a/tests/approvals/out/unoptimized/box-enum-contract/BoxContract.arc56.json +++ b/tests/approvals/out/unoptimized/box-enum-contract/BoxContract.arc56.json @@ -120,8 +120,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJvY2EiICJ0eG4iCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQm94Q29udHJhY3QgZXh0ZW5kcyBhcmM0LkNvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDcKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCb3hDb250cmFjdCBleHRlbmRzIGFyYzQuQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4ZjI2YzZkNDIgLy8gbWV0aG9kICJzdG9yZV9lbnVtcygpdm9pZCIKICAgIHB1c2hieXRlcyAweGVmMTg2Y2Y3IC8vIG1ldGhvZCAicmVhZF9lbnVtcygpKHVpbnQ2NCx1aW50NjQpIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX3N0b3JlX2VudW1zX3JvdXRlQDMgbWFpbl9yZWFkX2VudW1zX3JvdXRlQDQKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDY6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQm94Q29udHJhY3QgZXh0ZW5kcyBhcmM0LkNvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6OkJveENvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyOgogICAgcmV0dXJuCgptYWluX3JlYWRfZW51bXNfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjE0CiAgICAvLyBAYXJjNC5hYmltZXRob2QoeyBuYW1lOiAncmVhZF9lbnVtcycgfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgcmVhZEVudW1zCiAgICBwdXNoYnl0ZXMgMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czo6Qm94Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCm1haW5fc3RvcmVfZW51bXNfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjgKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCh7IG5hbWU6ICdzdG9yZV9lbnVtcycgfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgc3RvcmVFbnVtcwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjpCb3hDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKbWFpbl9iYXJlX3JvdXRpbmdANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCb3hDb250cmFjdCBleHRlbmRzIGFyYzQuQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTEKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQm94Q29udHJhY3QgZXh0ZW5kcyBhcmM0LkNvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6OkJveENvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgoKLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6OkJveENvbnRyYWN0LnN0b3JlRW51bXMoKSAtPiB2b2lkOgpzdG9yZUVudW1zOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6MTAKICAgIC8vIHRoaXMub2NhLnZhbHVlID0gYXJjNC5PbkNvbXBsZXRlQWN0aW9uLk9wdEluCiAgICBpbnRjXzEgLy8gMQogICAgaXRvYgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6NQogICAgLy8gb2NhID0gQm94PGFyYzQuT25Db21wbGV0ZUFjdGlvbj4oeyBrZXk6IEJ5dGVzKCdvY2EnKSB9KQogICAgYnl0ZWNfMCAvLyAib2NhIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6MTAKICAgIC8vIHRoaXMub2NhLnZhbHVlID0gYXJjNC5PbkNvbXBsZXRlQWN0aW9uLk9wdEluCiAgICBzd2FwCiAgICBib3hfcHV0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czoxMQogICAgLy8gdGhpcy50eG4udmFsdWUgPSBUcmFuc2FjdGlvblR5cGUuQXBwbGljYXRpb25DYWxsCiAgICBwdXNoaW50IDYgLy8gNgogICAgaXRvYgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6NgogICAgLy8gdHhuID0gQm94PFRyYW5zYWN0aW9uVHlwZT4oeyBrZXk6IEJ5dGVzKCd0eG4nKSB9KQogICAgYnl0ZWNfMSAvLyAidHhuIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6MTEKICAgIC8vIHRoaXMudHhuLnZhbHVlID0gVHJhbnNhY3Rpb25UeXBlLkFwcGxpY2F0aW9uQ2FsbAogICAgc3dhcAogICAgYm94X3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6OkJveENvbnRyYWN0LnJlYWRFbnVtcygpIC0+IGJ5dGVzOgpyZWFkRW51bXM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czoxNgogICAgLy8gYXNzZXJ0KG9wLkJveC5nZXQoQnl0ZXMoJ29jYScpKVswXSA9PT0gb3AuaXRvYih0aGlzLm9jYS52YWx1ZSkpCiAgICBieXRlY18wIC8vICJvY2EiCiAgICBib3hfZ2V0CiAgICBwb3AKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjUKICAgIC8vIG9jYSA9IEJveDxhcmM0Lk9uQ29tcGxldGVBY3Rpb24+KHsga2V5OiBCeXRlcygnb2NhJykgfSkKICAgIGJ5dGVjXzAgLy8gIm9jYSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjE2CiAgICAvLyBhc3NlcnQob3AuQm94LmdldChCeXRlcygnb2NhJykpWzBdID09PSBvcC5pdG9iKHRoaXMub2NhLnZhbHVlKSkKICAgIGJveF9nZXQKICAgIHN3YXAKICAgIGJ0b2kKICAgIHN3YXAKICAgIGFzc2VydCAvLyBCb3ggbXVzdCBoYXZlIHZhbHVlCiAgICBpdG9iCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czoxNwogICAgLy8gYXNzZXJ0KG9wLkJveC5nZXQoQnl0ZXMoJ3R4bicpKVswXSA9PT0gb3AuaXRvYih0aGlzLnR4bi52YWx1ZSkpCiAgICBieXRlY18xIC8vICJ0eG4iCiAgICBib3hfZ2V0CiAgICBwb3AKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjYKICAgIC8vIHR4biA9IEJveDxUcmFuc2FjdGlvblR5cGU+KHsga2V5OiBCeXRlcygndHhuJykgfSkKICAgIGJ5dGVjXzEgLy8gInR4biIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjE3CiAgICAvLyBhc3NlcnQob3AuQm94LmdldChCeXRlcygndHhuJykpWzBdID09PSBvcC5pdG9iKHRoaXMudHhuLnZhbHVlKSkKICAgIGJveF9nZXQKICAgIHN3YXAKICAgIGJ0b2kKICAgIHN3YXAKICAgIGFzc2VydCAvLyBCb3ggbXVzdCBoYXZlIHZhbHVlCiAgICBpdG9iCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czo1CiAgICAvLyBvY2EgPSBCb3g8YXJjNC5PbkNvbXBsZXRlQWN0aW9uPih7IGtleTogQnl0ZXMoJ29jYScpIH0pCiAgICBieXRlY18wIC8vICJvY2EiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czoxOQogICAgLy8gcmV0dXJuIG5ldyBUdXBsZShuZXcgVWludE42NCh0aGlzLm9jYS52YWx1ZSksIG5ldyBVaW50TjY0KHRoaXMudHhuLnZhbHVlKSkKICAgIGJveF9nZXQKICAgIHN3YXAKICAgIGJ0b2kKICAgIHN3YXAKICAgIGFzc2VydCAvLyBCb3ggbXVzdCBoYXZlIHZhbHVlCiAgICBpdG9iCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czo2CiAgICAvLyB0eG4gPSBCb3g8VHJhbnNhY3Rpb25UeXBlPih7IGtleTogQnl0ZXMoJ3R4bicpIH0pCiAgICBieXRlY18xIC8vICJ0eG4iCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czoxOQogICAgLy8gcmV0dXJuIG5ldyBUdXBsZShuZXcgVWludE42NCh0aGlzLm9jYS52YWx1ZSksIG5ldyBVaW50TjY0KHRoaXMudHhuLnZhbHVlKSkKICAgIGJveF9nZXQKICAgIHN3YXAKICAgIGJ0b2kKICAgIHN3YXAKICAgIGFzc2VydCAvLyBCb3ggbXVzdCBoYXZlIHZhbHVlCiAgICBpdG9iCiAgICBwdXNoYnl0ZXMgMHgKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjpCb3hDb250cmFjdC5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJvY2EiICJ0eG4iCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQm94Q29udHJhY3QgZXh0ZW5kcyBhcmM0LkNvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDcKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCb3hDb250cmFjdCBleHRlbmRzIGFyYzQuQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4ZjI2YzZkNDIgLy8gbWV0aG9kICJzdG9yZV9lbnVtcygpdm9pZCIKICAgIHB1c2hieXRlcyAweGVmMTg2Y2Y3IC8vIG1ldGhvZCAicmVhZF9lbnVtcygpKHVpbnQ2NCx1aW50NjQpIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX3N0b3JlX2VudW1zX3JvdXRlQDMgbWFpbl9yZWFkX2VudW1zX3JvdXRlQDQKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDY6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQm94Q29udHJhY3QgZXh0ZW5kcyBhcmM0LkNvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6OkJveENvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyOgogICAgcmV0dXJuCgptYWluX3JlYWRfZW51bXNfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjE0CiAgICAvLyBAYXJjNC5hYmltZXRob2QoeyBuYW1lOiAncmVhZF9lbnVtcycgfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgcmVhZEVudW1zCiAgICBwdXNoYnl0ZXMgMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czo6Qm94Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCm1haW5fc3RvcmVfZW51bXNfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjgKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCh7IG5hbWU6ICdzdG9yZV9lbnVtcycgfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgc3RvcmVFbnVtcwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjpCb3hDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKbWFpbl9iYXJlX3JvdXRpbmdANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCb3hDb250cmFjdCBleHRlbmRzIGFyYzQuQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTEKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQm94Q29udHJhY3QgZXh0ZW5kcyBhcmM0LkNvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6OkJveENvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgoKLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6OkJveENvbnRyYWN0LnN0b3JlRW51bXMoKSAtPiB2b2lkOgpzdG9yZUVudW1zOgoKc3RvcmVFbnVtc19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6MTAKICAgIC8vIHRoaXMub2NhLnZhbHVlID0gYXJjNC5PbkNvbXBsZXRlQWN0aW9uLk9wdEluCiAgICBpbnRjXzEgLy8gMQogICAgaXRvYgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6NQogICAgLy8gb2NhID0gQm94PGFyYzQuT25Db21wbGV0ZUFjdGlvbj4oeyBrZXk6IEJ5dGVzKCdvY2EnKSB9KQogICAgYnl0ZWNfMCAvLyAib2NhIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6MTAKICAgIC8vIHRoaXMub2NhLnZhbHVlID0gYXJjNC5PbkNvbXBsZXRlQWN0aW9uLk9wdEluCiAgICBzd2FwCiAgICBib3hfcHV0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYm94LWVudW0tY29udHJhY3QuYWxnby50czoxMQogICAgLy8gdGhpcy50eG4udmFsdWUgPSBUcmFuc2FjdGlvblR5cGUuQXBwbGljYXRpb25DYWxsCiAgICBwdXNoaW50IDYgLy8gNgogICAgaXRvYgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6NgogICAgLy8gdHhuID0gQm94PFRyYW5zYWN0aW9uVHlwZT4oeyBrZXk6IEJ5dGVzKCd0eG4nKSB9KQogICAgYnl0ZWNfMSAvLyAidHhuIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6MTEKICAgIC8vIHRoaXMudHhuLnZhbHVlID0gVHJhbnNhY3Rpb25UeXBlLkFwcGxpY2F0aW9uQ2FsbAogICAgc3dhcAogICAgYm94X3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6OkJveENvbnRyYWN0LnJlYWRFbnVtcygpIC0+IGJ5dGVzOgpyZWFkRW51bXM6CgpyZWFkRW51bXNfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjE2CiAgICAvLyBhc3NlcnQob3AuQm94LmdldChCeXRlcygnb2NhJykpWzBdID09PSBvcC5pdG9iKHRoaXMub2NhLnZhbHVlKSkKICAgIGJ5dGVjXzAgLy8gIm9jYSIKICAgIGJveF9nZXQKICAgIHBvcAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6NQogICAgLy8gb2NhID0gQm94PGFyYzQuT25Db21wbGV0ZUFjdGlvbj4oeyBrZXk6IEJ5dGVzKCdvY2EnKSB9KQogICAgYnl0ZWNfMCAvLyAib2NhIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6MTYKICAgIC8vIGFzc2VydChvcC5Cb3guZ2V0KEJ5dGVzKCdvY2EnKSlbMF0gPT09IG9wLml0b2IodGhpcy5vY2EudmFsdWUpKQogICAgYm94X2dldAogICAgc3dhcAogICAgYnRvaQogICAgc3dhcAogICAgYXNzZXJ0IC8vIEJveCBtdXN0IGhhdmUgdmFsdWUKICAgIGl0b2IKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjE3CiAgICAvLyBhc3NlcnQob3AuQm94LmdldChCeXRlcygndHhuJykpWzBdID09PSBvcC5pdG9iKHRoaXMudHhuLnZhbHVlKSkKICAgIGJ5dGVjXzEgLy8gInR4biIKICAgIGJveF9nZXQKICAgIHBvcAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6NgogICAgLy8gdHhuID0gQm94PFRyYW5zYWN0aW9uVHlwZT4oeyBrZXk6IEJ5dGVzKCd0eG4nKSB9KQogICAgYnl0ZWNfMSAvLyAidHhuIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6MTcKICAgIC8vIGFzc2VydChvcC5Cb3guZ2V0KEJ5dGVzKCd0eG4nKSlbMF0gPT09IG9wLml0b2IodGhpcy50eG4udmFsdWUpKQogICAgYm94X2dldAogICAgc3dhcAogICAgYnRvaQogICAgc3dhcAogICAgYXNzZXJ0IC8vIEJveCBtdXN0IGhhdmUgdmFsdWUKICAgIGl0b2IKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjUKICAgIC8vIG9jYSA9IEJveDxhcmM0Lk9uQ29tcGxldGVBY3Rpb24+KHsga2V5OiBCeXRlcygnb2NhJykgfSkKICAgIGJ5dGVjXzAgLy8gIm9jYSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjE5CiAgICAvLyByZXR1cm4gbmV3IFR1cGxlKG5ldyBVaW50TjY0KHRoaXMub2NhLnZhbHVlKSwgbmV3IFVpbnRONjQodGhpcy50eG4udmFsdWUpKQogICAgYm94X2dldAogICAgc3dhcAogICAgYnRvaQogICAgc3dhcAogICAgYXNzZXJ0IC8vIEJveCBtdXN0IGhhdmUgdmFsdWUKICAgIGl0b2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjYKICAgIC8vIHR4biA9IEJveDxUcmFuc2FjdGlvblR5cGU+KHsga2V5OiBCeXRlcygndHhuJykgfSkKICAgIGJ5dGVjXzEgLy8gInR4biIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ib3gtZW51bS1jb250cmFjdC5hbGdvLnRzOjE5CiAgICAvLyByZXR1cm4gbmV3IFR1cGxlKG5ldyBVaW50TjY0KHRoaXMub2NhLnZhbHVlKSwgbmV3IFVpbnRONjQodGhpcy50eG4udmFsdWUpKQogICAgYm94X2dldAogICAgc3dhcAogICAgYnRvaQogICAgc3dhcAogICAgYXNzZXJ0IC8vIEJveCBtdXN0IGhhdmUgdmFsdWUKICAgIGl0b2IKICAgIHB1c2hieXRlcyAweAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2JveC1lbnVtLWNvbnRyYWN0LmFsZ28udHM6OkJveENvbnRyYWN0Ll9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAEmAgNvY2EDdHhuMRsiE0EARDYaAIAE8mxtQoAE7xhs908CjgIAHAACIkMxGSISRDEYIhNEiABBgAQVH3x1TFCwI0L/5TEZIhJEMRgiE0SIABsjQv/UMRkiTI4BAANC/8gxGCISRIgAPiNC/70jFihMv4EGFilMv4kovkgovkwXTEQWEkQpvkgpvkwXTEQWEkQovkwXTEQWKb5MF0xEFoAATwJQTFCJiQ==", @@ -132,7 +132,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/box-enum-contract/BoxContract.clear.teal b/tests/approvals/out/unoptimized/box-enum-contract/BoxContract.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/box-enum-contract/BoxContract.clear.teal +++ b/tests/approvals/out/unoptimized/box-enum-contract/BoxContract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/box-proxies/BoxContract.approval.teal b/tests/approvals/out/unoptimized/box-proxies/BoxContract.approval.teal index 86fc54d7a..33ac3cc70 100644 --- a/tests/approvals/out/unoptimized/box-proxies/BoxContract.approval.teal +++ b/tests/approvals/out/unoptimized/box-proxies/BoxContract.approval.teal @@ -5,6 +5,8 @@ main: intcblock 1 0 4 bytecblock "A" "" "abc" "O" 0xffffffff + +main_block@0: // tests/approvals/box-proxies.algo.ts:77 // if (Txn.applicationId.id !== 0) { txn ApplicationID @@ -52,6 +54,8 @@ testBox: // tests/approvals/box-proxies.algo.ts:6 // function testBox(box: Box, value: string) { proto 2 0 + +testBox_block@0: // tests/approvals/box-proxies.algo.ts:7 // box.value = value frame_dig -2 @@ -223,6 +227,8 @@ testBoxMap: // tests/approvals/box-proxies.algo.ts:32 // function testBoxMap(box: BoxMap, key: string, value: bytes) { proto 3 0 + +testBoxMap_block@0: // tests/approvals/box-proxies.algo.ts:33 // box.set(key, value) frame_dig -3 @@ -330,6 +336,8 @@ testBoxRef: // tests/approvals/box-proxies.algo.ts:49 // function testBoxRef(box: BoxRef, length: uint64) { proto 2 0 + +testBoxRef_block@0: // tests/approvals/box-proxies.algo.ts:47 // const boxRef = BoxRef({ key: 'abc' }) bytec_2 // "abc" diff --git a/tests/approvals/out/unoptimized/box-proxies/BoxContract.clear.teal b/tests/approvals/out/unoptimized/box-proxies/BoxContract.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/box-proxies/BoxContract.clear.teal +++ b/tests/approvals/out/unoptimized/box-proxies/BoxContract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/byte-expressions/DemoContract.approval.teal b/tests/approvals/out/unoptimized/byte-expressions/DemoContract.approval.teal index d1624e442..92a230f27 100644 --- a/tests/approvals/out/unoptimized/byte-expressions/DemoContract.approval.teal +++ b/tests/approvals/out/unoptimized/byte-expressions/DemoContract.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 +main_block@0: + main_block@1: // tests/approvals/byte-expressions.algo.ts:15 // class DemoContract extends Contract { @@ -86,6 +88,8 @@ test: // tests/approvals/byte-expressions.algo.ts:4 // function test(a: uint64, b: biguint, c: string) { proto 3 0 + +test_block@0: // tests/approvals/byte-expressions.algo.ts:5 // assert(Bytes().length === 0, 'Empty bytes has length of 0') pushbytes 0x @@ -142,6 +146,8 @@ test: // tests/approvals/byte-expressions.algo.ts::DemoContract.test() -> uint64: tests/approvals/byte-expressions.algo.ts::DemoContract.test: + +tests/approvals/byte-expressions.algo.ts::DemoContract.test_block@0: // tests/approvals/byte-expressions.algo.ts:17 // test(1, 50n, 'things') intc_1 // 1 @@ -156,4 +162,6 @@ tests/approvals/byte-expressions.algo.ts::DemoContract.test: // tests/approvals/byte-expressions.algo.ts::DemoContract.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/byte-expressions/DemoContract.arc32.json b/tests/approvals/out/unoptimized/byte-expressions/DemoContract.arc32.json index dc5a34a02..cbd215a27 100644 --- a/tests/approvals/out/unoptimized/byte-expressions/DemoContract.arc32.json +++ b/tests/approvals/out/unoptimized/byte-expressions/DemoContract.arc32.json @@ -7,8 +7,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjE1CiAgICAvLyBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjE1CiAgICAvLyBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhmNTllM2NjNCAvLyBtZXRob2QgInRlc3QoKWJvb2wiCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3Rlc3Rfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6MTUKICAgIC8vIGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX3Rlc3Rfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6MTYKICAgIC8vIHB1YmxpYyB0ZXN0KCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjpEZW1vQ29udHJhY3QudGVzdAogICAgcHVzaGJ5dGVzIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czoxNQogICAgLy8gY2xhc3MgRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6MTUKICAgIC8vIGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czo6dGVzdChhOiB1aW50NjQsIGI6IGJ5dGVzLCBjOiBieXRlcykgLT4gdm9pZDoKdGVzdDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6NAogICAgLy8gZnVuY3Rpb24gdGVzdChhOiB1aW50NjQsIGI6IGJpZ3VpbnQsIGM6IHN0cmluZykgewogICAgcHJvdG8gMyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjUKICAgIC8vIGFzc2VydChCeXRlcygpLmxlbmd0aCA9PT0gMCwgJ0VtcHR5IGJ5dGVzIGhhcyBsZW5ndGggb2YgMCcpCiAgICBwdXNoYnl0ZXMgMHgKICAgIGxlbgogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gRW1wdHkgYnl0ZXMgaGFzIGxlbmd0aCBvZiAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjYKICAgIC8vIGFzc2VydChCeXRlcyhhKSA9PT0gb3AuaXRvYihhKSwgJ0J5dGVzKHVpbnQ2NCkgaXMgZXF1aXZhbGVudCB0byBpdG9iJykKICAgIGZyYW1lX2RpZyAtMwogICAgaXRvYgogICAgZnJhbWVfZGlnIC0zCiAgICBpdG9iCiAgICA9PQogICAgYXNzZXJ0IC8vIEJ5dGVzKHVpbnQ2NCkgaXMgZXF1aXZhbGVudCB0byBpdG9iCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjcKICAgIC8vIGFzc2VydChCeXRlcyhVaW50NjQoMSkpID09PSBCeXRlcy5mcm9tSGV4KCcwMDAwMDAwMDAwMDAwMDAxJyksICdCeXRlcyh1aW50NjQpIHJldHVybnMgYW4gOCBieXRlIGVuY29kaW5nJykKICAgIHB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDEKICAgIGR1cAogICAgPT0KICAgIGFzc2VydCAvLyBCeXRlcyh1aW50NjQpIHJldHVybnMgYW4gOCBieXRlIGVuY29kaW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjgKICAgIC8vIGFzc2VydChCeXRlcyhCaWdVaW50KDI1NikpID09PSBCeXRlcy5mcm9tSGV4KCcwMTAwJykpCiAgICBwdXNoYnl0ZXMgMHgwMTAwCiAgICBkdXAKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6OQogICAgLy8gYXNzZXJ0KEJpZ1VpbnQoQnl0ZXMoYikpID09PSBiLCAnUm91bmQgdHJpcCBvZiBiaWd1aW50IHRvIGJ5dGVzIGFuZCBiYWNrIHJlc3VsdHMgaW4gdGhlIHNhbWUgdmFsdWUnKQogICAgZnJhbWVfZGlnIC0yCiAgICBkdXAKICAgIGI9PQogICAgYXNzZXJ0IC8vIFJvdW5kIHRyaXAgb2YgYmlndWludCB0byBieXRlcyBhbmQgYmFjayByZXN1bHRzIGluIHRoZSBzYW1lIHZhbHVlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjEwCiAgICAvLyBhc3NlcnQoU3RyaW5nKEJ5dGVzKGMpKSA9PT0gYykKICAgIGZyYW1lX2RpZyAtMQogICAgZHVwCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjExCiAgICAvLyBhc3NlcnQoQnl0ZXMoQnl0ZXMoJzEyMycpKSA9PT0gQnl0ZXMoJzEyMycpKQogICAgcHVzaGJ5dGVzICIxMjMiCiAgICBkdXAKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6MTIKICAgIC8vIGFzc2VydChCeXRlcyhbMSwgMiwgMywgNF0pID09PSBCeXRlcy5mcm9tSGV4KCcwMTAyMDMwNCcpKQogICAgcHVzaGJ5dGVzIDB4MDEwMjAzMDQKICAgIGR1cAogICAgPT0KICAgIGFzc2VydAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czo6RGVtb0NvbnRyYWN0LnRlc3QoKSAtPiB1aW50NjQ6CnRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6OkRlbW9Db250cmFjdC50ZXN0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czoxNwogICAgLy8gdGVzdCgxLCA1MG4sICd0aGluZ3MnKQogICAgaW50Y18xIC8vIDEKICAgIHB1c2hieXRlcyAweDMyCiAgICBwdXNoYnl0ZXMgInRoaW5ncyIKICAgIGNhbGxzdWIgdGVzdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czoxOAogICAgLy8gcmV0dXJuIHRydWUKICAgIGludGNfMSAvLyAxCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjpEZW1vQ29udHJhY3QuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjE1CiAgICAvLyBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjE1CiAgICAvLyBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhmNTllM2NjNCAvLyBtZXRob2QgInRlc3QoKWJvb2wiCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3Rlc3Rfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6MTUKICAgIC8vIGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX3Rlc3Rfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6MTYKICAgIC8vIHB1YmxpYyB0ZXN0KCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjpEZW1vQ29udHJhY3QudGVzdAogICAgcHVzaGJ5dGVzIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czoxNQogICAgLy8gY2xhc3MgRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6MTUKICAgIC8vIGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czo6dGVzdChhOiB1aW50NjQsIGI6IGJ5dGVzLCBjOiBieXRlcykgLT4gdm9pZDoKdGVzdDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6NAogICAgLy8gZnVuY3Rpb24gdGVzdChhOiB1aW50NjQsIGI6IGJpZ3VpbnQsIGM6IHN0cmluZykgewogICAgcHJvdG8gMyAwCgp0ZXN0X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjUKICAgIC8vIGFzc2VydChCeXRlcygpLmxlbmd0aCA9PT0gMCwgJ0VtcHR5IGJ5dGVzIGhhcyBsZW5ndGggb2YgMCcpCiAgICBwdXNoYnl0ZXMgMHgKICAgIGxlbgogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gRW1wdHkgYnl0ZXMgaGFzIGxlbmd0aCBvZiAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjYKICAgIC8vIGFzc2VydChCeXRlcyhhKSA9PT0gb3AuaXRvYihhKSwgJ0J5dGVzKHVpbnQ2NCkgaXMgZXF1aXZhbGVudCB0byBpdG9iJykKICAgIGZyYW1lX2RpZyAtMwogICAgaXRvYgogICAgZnJhbWVfZGlnIC0zCiAgICBpdG9iCiAgICA9PQogICAgYXNzZXJ0IC8vIEJ5dGVzKHVpbnQ2NCkgaXMgZXF1aXZhbGVudCB0byBpdG9iCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjcKICAgIC8vIGFzc2VydChCeXRlcyhVaW50NjQoMSkpID09PSBCeXRlcy5mcm9tSGV4KCcwMDAwMDAwMDAwMDAwMDAxJyksICdCeXRlcyh1aW50NjQpIHJldHVybnMgYW4gOCBieXRlIGVuY29kaW5nJykKICAgIHB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDEKICAgIGR1cAogICAgPT0KICAgIGFzc2VydCAvLyBCeXRlcyh1aW50NjQpIHJldHVybnMgYW4gOCBieXRlIGVuY29kaW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjgKICAgIC8vIGFzc2VydChCeXRlcyhCaWdVaW50KDI1NikpID09PSBCeXRlcy5mcm9tSGV4KCcwMTAwJykpCiAgICBwdXNoYnl0ZXMgMHgwMTAwCiAgICBkdXAKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6OQogICAgLy8gYXNzZXJ0KEJpZ1VpbnQoQnl0ZXMoYikpID09PSBiLCAnUm91bmQgdHJpcCBvZiBiaWd1aW50IHRvIGJ5dGVzIGFuZCBiYWNrIHJlc3VsdHMgaW4gdGhlIHNhbWUgdmFsdWUnKQogICAgZnJhbWVfZGlnIC0yCiAgICBkdXAKICAgIGI9PQogICAgYXNzZXJ0IC8vIFJvdW5kIHRyaXAgb2YgYmlndWludCB0byBieXRlcyBhbmQgYmFjayByZXN1bHRzIGluIHRoZSBzYW1lIHZhbHVlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjEwCiAgICAvLyBhc3NlcnQoU3RyaW5nKEJ5dGVzKGMpKSA9PT0gYykKICAgIGZyYW1lX2RpZyAtMQogICAgZHVwCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjExCiAgICAvLyBhc3NlcnQoQnl0ZXMoQnl0ZXMoJzEyMycpKSA9PT0gQnl0ZXMoJzEyMycpKQogICAgcHVzaGJ5dGVzICIxMjMiCiAgICBkdXAKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6MTIKICAgIC8vIGFzc2VydChCeXRlcyhbMSwgMiwgMywgNF0pID09PSBCeXRlcy5mcm9tSGV4KCcwMTAyMDMwNCcpKQogICAgcHVzaGJ5dGVzIDB4MDEwMjAzMDQKICAgIGR1cAogICAgPT0KICAgIGFzc2VydAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czo6RGVtb0NvbnRyYWN0LnRlc3QoKSAtPiB1aW50NjQ6CnRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6OkRlbW9Db250cmFjdC50ZXN0OgoKdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czo6RGVtb0NvbnRyYWN0LnRlc3RfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6MTcKICAgIC8vIHRlc3QoMSwgNTBuLCAndGhpbmdzJykKICAgIGludGNfMSAvLyAxCiAgICBwdXNoYnl0ZXMgMHgzMgogICAgcHVzaGJ5dGVzICJ0aGluZ3MiCiAgICBjYWxsc3ViIHRlc3QKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6MTgKICAgIC8vIHJldHVybiB0cnVlCiAgICBpbnRjXzEgLy8gMQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/byte-expressions/DemoContract.arc56.json b/tests/approvals/out/unoptimized/byte-expressions/DemoContract.arc56.json index e8e173476..b1eacac45 100644 --- a/tests/approvals/out/unoptimized/byte-expressions/DemoContract.arc56.json +++ b/tests/approvals/out/unoptimized/byte-expressions/DemoContract.arc56.json @@ -106,8 +106,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjE1CiAgICAvLyBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjE1CiAgICAvLyBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhmNTllM2NjNCAvLyBtZXRob2QgInRlc3QoKWJvb2wiCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3Rlc3Rfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6MTUKICAgIC8vIGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX3Rlc3Rfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6MTYKICAgIC8vIHB1YmxpYyB0ZXN0KCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjpEZW1vQ29udHJhY3QudGVzdAogICAgcHVzaGJ5dGVzIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czoxNQogICAgLy8gY2xhc3MgRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6MTUKICAgIC8vIGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czo6dGVzdChhOiB1aW50NjQsIGI6IGJ5dGVzLCBjOiBieXRlcykgLT4gdm9pZDoKdGVzdDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6NAogICAgLy8gZnVuY3Rpb24gdGVzdChhOiB1aW50NjQsIGI6IGJpZ3VpbnQsIGM6IHN0cmluZykgewogICAgcHJvdG8gMyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjUKICAgIC8vIGFzc2VydChCeXRlcygpLmxlbmd0aCA9PT0gMCwgJ0VtcHR5IGJ5dGVzIGhhcyBsZW5ndGggb2YgMCcpCiAgICBwdXNoYnl0ZXMgMHgKICAgIGxlbgogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gRW1wdHkgYnl0ZXMgaGFzIGxlbmd0aCBvZiAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjYKICAgIC8vIGFzc2VydChCeXRlcyhhKSA9PT0gb3AuaXRvYihhKSwgJ0J5dGVzKHVpbnQ2NCkgaXMgZXF1aXZhbGVudCB0byBpdG9iJykKICAgIGZyYW1lX2RpZyAtMwogICAgaXRvYgogICAgZnJhbWVfZGlnIC0zCiAgICBpdG9iCiAgICA9PQogICAgYXNzZXJ0IC8vIEJ5dGVzKHVpbnQ2NCkgaXMgZXF1aXZhbGVudCB0byBpdG9iCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjcKICAgIC8vIGFzc2VydChCeXRlcyhVaW50NjQoMSkpID09PSBCeXRlcy5mcm9tSGV4KCcwMDAwMDAwMDAwMDAwMDAxJyksICdCeXRlcyh1aW50NjQpIHJldHVybnMgYW4gOCBieXRlIGVuY29kaW5nJykKICAgIHB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDEKICAgIGR1cAogICAgPT0KICAgIGFzc2VydCAvLyBCeXRlcyh1aW50NjQpIHJldHVybnMgYW4gOCBieXRlIGVuY29kaW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjgKICAgIC8vIGFzc2VydChCeXRlcyhCaWdVaW50KDI1NikpID09PSBCeXRlcy5mcm9tSGV4KCcwMTAwJykpCiAgICBwdXNoYnl0ZXMgMHgwMTAwCiAgICBkdXAKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6OQogICAgLy8gYXNzZXJ0KEJpZ1VpbnQoQnl0ZXMoYikpID09PSBiLCAnUm91bmQgdHJpcCBvZiBiaWd1aW50IHRvIGJ5dGVzIGFuZCBiYWNrIHJlc3VsdHMgaW4gdGhlIHNhbWUgdmFsdWUnKQogICAgZnJhbWVfZGlnIC0yCiAgICBkdXAKICAgIGI9PQogICAgYXNzZXJ0IC8vIFJvdW5kIHRyaXAgb2YgYmlndWludCB0byBieXRlcyBhbmQgYmFjayByZXN1bHRzIGluIHRoZSBzYW1lIHZhbHVlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjEwCiAgICAvLyBhc3NlcnQoU3RyaW5nKEJ5dGVzKGMpKSA9PT0gYykKICAgIGZyYW1lX2RpZyAtMQogICAgZHVwCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjExCiAgICAvLyBhc3NlcnQoQnl0ZXMoQnl0ZXMoJzEyMycpKSA9PT0gQnl0ZXMoJzEyMycpKQogICAgcHVzaGJ5dGVzICIxMjMiCiAgICBkdXAKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6MTIKICAgIC8vIGFzc2VydChCeXRlcyhbMSwgMiwgMywgNF0pID09PSBCeXRlcy5mcm9tSGV4KCcwMTAyMDMwNCcpKQogICAgcHVzaGJ5dGVzIDB4MDEwMjAzMDQKICAgIGR1cAogICAgPT0KICAgIGFzc2VydAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czo6RGVtb0NvbnRyYWN0LnRlc3QoKSAtPiB1aW50NjQ6CnRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6OkRlbW9Db250cmFjdC50ZXN0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czoxNwogICAgLy8gdGVzdCgxLCA1MG4sICd0aGluZ3MnKQogICAgaW50Y18xIC8vIDEKICAgIHB1c2hieXRlcyAweDMyCiAgICBwdXNoYnl0ZXMgInRoaW5ncyIKICAgIGNhbGxzdWIgdGVzdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czoxOAogICAgLy8gcmV0dXJuIHRydWUKICAgIGludGNfMSAvLyAxCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjpEZW1vQ29udHJhY3QuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjE1CiAgICAvLyBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjE1CiAgICAvLyBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhmNTllM2NjNCAvLyBtZXRob2QgInRlc3QoKWJvb2wiCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3Rlc3Rfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6MTUKICAgIC8vIGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX3Rlc3Rfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6MTYKICAgIC8vIHB1YmxpYyB0ZXN0KCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjpEZW1vQ29udHJhY3QudGVzdAogICAgcHVzaGJ5dGVzIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czoxNQogICAgLy8gY2xhc3MgRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6MTUKICAgIC8vIGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czo6dGVzdChhOiB1aW50NjQsIGI6IGJ5dGVzLCBjOiBieXRlcykgLT4gdm9pZDoKdGVzdDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6NAogICAgLy8gZnVuY3Rpb24gdGVzdChhOiB1aW50NjQsIGI6IGJpZ3VpbnQsIGM6IHN0cmluZykgewogICAgcHJvdG8gMyAwCgp0ZXN0X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjUKICAgIC8vIGFzc2VydChCeXRlcygpLmxlbmd0aCA9PT0gMCwgJ0VtcHR5IGJ5dGVzIGhhcyBsZW5ndGggb2YgMCcpCiAgICBwdXNoYnl0ZXMgMHgKICAgIGxlbgogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gRW1wdHkgYnl0ZXMgaGFzIGxlbmd0aCBvZiAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjYKICAgIC8vIGFzc2VydChCeXRlcyhhKSA9PT0gb3AuaXRvYihhKSwgJ0J5dGVzKHVpbnQ2NCkgaXMgZXF1aXZhbGVudCB0byBpdG9iJykKICAgIGZyYW1lX2RpZyAtMwogICAgaXRvYgogICAgZnJhbWVfZGlnIC0zCiAgICBpdG9iCiAgICA9PQogICAgYXNzZXJ0IC8vIEJ5dGVzKHVpbnQ2NCkgaXMgZXF1aXZhbGVudCB0byBpdG9iCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjcKICAgIC8vIGFzc2VydChCeXRlcyhVaW50NjQoMSkpID09PSBCeXRlcy5mcm9tSGV4KCcwMDAwMDAwMDAwMDAwMDAxJyksICdCeXRlcyh1aW50NjQpIHJldHVybnMgYW4gOCBieXRlIGVuY29kaW5nJykKICAgIHB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDEKICAgIGR1cAogICAgPT0KICAgIGFzc2VydCAvLyBCeXRlcyh1aW50NjQpIHJldHVybnMgYW4gOCBieXRlIGVuY29kaW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjgKICAgIC8vIGFzc2VydChCeXRlcyhCaWdVaW50KDI1NikpID09PSBCeXRlcy5mcm9tSGV4KCcwMTAwJykpCiAgICBwdXNoYnl0ZXMgMHgwMTAwCiAgICBkdXAKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6OQogICAgLy8gYXNzZXJ0KEJpZ1VpbnQoQnl0ZXMoYikpID09PSBiLCAnUm91bmQgdHJpcCBvZiBiaWd1aW50IHRvIGJ5dGVzIGFuZCBiYWNrIHJlc3VsdHMgaW4gdGhlIHNhbWUgdmFsdWUnKQogICAgZnJhbWVfZGlnIC0yCiAgICBkdXAKICAgIGI9PQogICAgYXNzZXJ0IC8vIFJvdW5kIHRyaXAgb2YgYmlndWludCB0byBieXRlcyBhbmQgYmFjayByZXN1bHRzIGluIHRoZSBzYW1lIHZhbHVlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjEwCiAgICAvLyBhc3NlcnQoU3RyaW5nKEJ5dGVzKGMpKSA9PT0gYykKICAgIGZyYW1lX2RpZyAtMQogICAgZHVwCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYnl0ZS1leHByZXNzaW9ucy5hbGdvLnRzOjExCiAgICAvLyBhc3NlcnQoQnl0ZXMoQnl0ZXMoJzEyMycpKSA9PT0gQnl0ZXMoJzEyMycpKQogICAgcHVzaGJ5dGVzICIxMjMiCiAgICBkdXAKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6MTIKICAgIC8vIGFzc2VydChCeXRlcyhbMSwgMiwgMywgNF0pID09PSBCeXRlcy5mcm9tSGV4KCcwMTAyMDMwNCcpKQogICAgcHVzaGJ5dGVzIDB4MDEwMjAzMDQKICAgIGR1cAogICAgPT0KICAgIGFzc2VydAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czo6RGVtb0NvbnRyYWN0LnRlc3QoKSAtPiB1aW50NjQ6CnRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6OkRlbW9Db250cmFjdC50ZXN0OgoKdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czo6RGVtb0NvbnRyYWN0LnRlc3RfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6MTcKICAgIC8vIHRlc3QoMSwgNTBuLCAndGhpbmdzJykKICAgIGludGNfMSAvLyAxCiAgICBwdXNoYnl0ZXMgMHgzMgogICAgcHVzaGJ5dGVzICJ0aGluZ3MiCiAgICBjYWxsc3ViIHRlc3QKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9ieXRlLWV4cHJlc3Npb25zLmFsZ28udHM6MTgKICAgIC8vIHJldHVybiB0cnVlCiAgICBpbnRjXzEgLy8gMQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2J5dGUtZXhwcmVzc2lvbnMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAExGyITQQAxNhoAgAT1njzETI4BAAIiQzEZIhJEMRgiE0SIAGyAAQAiTwJUgAQVH3x1TFCwI0L/3jEZIkyOAQADQv/SMRgiEkSIAFYjQv/HigMAgAAVIhJEi/0Wi/0WEkSACAAAAAAAAAABSRJEgAIBAEkSRIv+SahEi/9JEkSAAzEyM0kSRIAEAQIDBEkSRIkjgAEygAZ0aGluZ3OI/7AjiYk=", @@ -118,7 +118,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/byte-expressions/DemoContract.clear.teal b/tests/approvals/out/unoptimized/byte-expressions/DemoContract.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/byte-expressions/DemoContract.clear.teal +++ b/tests/approvals/out/unoptimized/byte-expressions/DemoContract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/call-expressions/Example.approval.teal b/tests/approvals/out/unoptimized/call-expressions/Example.approval.teal index da01ef9c6..5a2897ef2 100644 --- a/tests/approvals/out/unoptimized/call-expressions/Example.approval.teal +++ b/tests/approvals/out/unoptimized/call-expressions/Example.approval.teal @@ -3,6 +3,8 @@ // tests/approvals/call-expressions.algo.ts::Example.approvalProgram() -> uint64: main: + +main_block@0: // tests/approvals/call-expressions.algo.ts:12 // return this.localMethod() + super.baseMethod() === freeMethod() - this.baseMethod() callsub localMethod @@ -17,6 +19,8 @@ main: // tests/approvals/call-expressions.algo.ts::freeMethod() -> uint64: freeMethod: + +freeMethod_block@0: // tests/approvals/call-expressions.algo.ts:23 // return 7 pushint 7 // 7 @@ -25,6 +29,8 @@ freeMethod: // tests/approvals/call-expressions.algo.ts::Example.baseMethod() -> uint64: baseMethod: + +baseMethod_block@0: // tests/approvals/call-expressions.algo.ts:15 // return 1 pushint 1 // 1 @@ -33,6 +39,8 @@ baseMethod: // tests/approvals/call-expressions.algo.ts::Example.localMethod() -> uint64: localMethod: + +localMethod_block@0: // tests/approvals/call-expressions.algo.ts:18 // return 5 pushint 5 // 5 @@ -41,6 +49,8 @@ localMethod: // tests/approvals/call-expressions.algo.ts::ExampleBase.baseMethod() -> uint64: tests/approvals/call-expressions.algo.ts::ExampleBase.baseMethod: + +tests/approvals/call-expressions.algo.ts::ExampleBase.baseMethod_block@0: // tests/approvals/call-expressions.algo.ts:6 // return 2 pushint 2 // 2 diff --git a/tests/approvals/out/unoptimized/call-expressions/Example.clear.teal b/tests/approvals/out/unoptimized/call-expressions/Example.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/call-expressions/Example.clear.teal +++ b/tests/approvals/out/unoptimized/call-expressions/Example.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/casting/CastingAlgo.approval.teal b/tests/approvals/out/unoptimized/casting/CastingAlgo.approval.teal index c42674fc9..7e9994fa3 100644 --- a/tests/approvals/out/unoptimized/casting/CastingAlgo.approval.teal +++ b/tests/approvals/out/unoptimized/casting/CastingAlgo.approval.teal @@ -4,6 +4,8 @@ // tests/approvals/casting.algo.ts::CastingAlgo.approvalProgram() -> uint64: main: intcblock 1 2 3 + +main_block@0: // tests/approvals/casting.algo.ts:8 // const y = [1, 2, 3] as [uint64, uint64, uint64] intc_0 // 1 diff --git a/tests/approvals/out/unoptimized/casting/CastingAlgo.clear.teal b/tests/approvals/out/unoptimized/casting/CastingAlgo.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/casting/CastingAlgo.clear.teal +++ b/tests/approvals/out/unoptimized/casting/CastingAlgo.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/destructured-params/DestructuredParamsAlgo.approval.teal b/tests/approvals/out/unoptimized/destructured-params/DestructuredParamsAlgo.approval.teal index bc6026825..4f574394f 100644 --- a/tests/approvals/out/unoptimized/destructured-params/DestructuredParamsAlgo.approval.teal +++ b/tests/approvals/out/unoptimized/destructured-params/DestructuredParamsAlgo.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 8 +main_block@0: + main_block@1: // tests/approvals/destructured-params.algo.ts:4 // export class DestructuredParamsAlgo extends Contract { @@ -129,6 +131,10 @@ test: // tests/approvals/destructured-params.algo.ts:5 // test({ a, b, c }: { a: uint64; b: bytes; c: boolean }): void { proto 3 0 + +test_block@0: + // tests/approvals/destructured-params.algo.ts:5 + // test({ a, b, c }: { a: uint64; b: bytes; c: boolean }): void { frame_dig -3 frame_dig -2 swap @@ -148,6 +154,8 @@ test: // tests/approvals/destructured-params.algo.ts::DestructuredParamsAlgo.init() -> void: init: + +init_block@0: // tests/approvals/destructured-params.algo.ts:10 // this.test({ a: 456, b: Bytes(''), c: false }) pushint 456 // 456 @@ -167,4 +175,6 @@ init: // tests/approvals/destructured-params.algo.ts::DestructuredParamsAlgo.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/destructured-params/DestructuredParamsAlgo.arc32.json b/tests/approvals/out/unoptimized/destructured-params/DestructuredParamsAlgo.arc32.json index c648d6894..8883cee20 100644 --- a/tests/approvals/out/unoptimized/destructured-params/DestructuredParamsAlgo.arc32.json +++ b/tests/approvals/out/unoptimized/destructured-params/DestructuredParamsAlgo.arc32.json @@ -31,8 +31,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDgKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERlc3RydWN0dXJlZFBhcmFtc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A3CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEZXN0cnVjdHVyZWRQYXJhbXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4ZmVmZWE3NjYgLy8gbWV0aG9kICJ0ZXN0KCh1aW50NjQsYnl0ZVtdLGJvb2wpKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHg4M2YxNDc0OCAvLyBtZXRob2QgImluaXQoKXZvaWQiCiAgICB1bmNvdmVyIDIKICAgIG1hdGNoIG1haW5fdGVzdF9yb3V0ZUAzIG1haW5faW5pdF9yb3V0ZUA0CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA2OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDExOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Rlc3RydWN0dXJlZC1wYXJhbXMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgRGVzdHJ1Y3R1cmVkUGFyYW1zQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Rlc3RydWN0dXJlZC1wYXJhbXMuYWxnby50czo6RGVzdHJ1Y3R1cmVkUGFyYW1zQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMjoKICAgIHJldHVybgoKbWFpbl9pbml0X3JvdXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjkKICAgIC8vIGluaXQoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGluaXQKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjpEZXN0cnVjdHVyZWRQYXJhbXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX3Rlc3Rfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6NQogICAgLy8gdGVzdCh7IGEsIGIsIGMgfTogeyBhOiB1aW50NjQ7IGI6IGJ5dGVzOyBjOiBib29sZWFuIH0pOiB2b2lkIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERlc3RydWN0dXJlZFBhcmFtc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzIgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBzd2FwCiAgICBkdXAKICAgIGludGNfMiAvLyA4CiAgICBleHRyYWN0X3VpbnQxNgogICAgc3dhcAogICAgZHVwCiAgICBsZW4KICAgIHN3YXAKICAgIGR1cAogICAgdW5jb3ZlciAzCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGV4dHJhY3QgMiAwCiAgICBzd2FwCiAgICBwdXNoaW50IDgwIC8vIDgwCiAgICBnZXRiaXQKICAgIHB1c2hieXRlcyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBzZXRiaXQKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6NQogICAgLy8gdGVzdCh7IGEsIGIsIGMgfTogeyBhOiB1aW50NjQ7IGI6IGJ5dGVzOyBjOiBib29sZWFuIH0pOiB2b2lkIHsKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIGNhbGxzdWIgdGVzdAogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6OkRlc3RydWN0dXJlZFBhcmFtc0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCm1haW5fYmFyZV9yb3V0aW5nQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEZXN0cnVjdHVyZWRQYXJhbXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTEKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEZXN0cnVjdHVyZWRQYXJhbXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjpEZXN0cnVjdHVyZWRQYXJhbXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgoKLy8gdGVzdHMvYXBwcm92YWxzL2Rlc3RydWN0dXJlZC1wYXJhbXMuYWxnby50czo6RGVzdHJ1Y3R1cmVkUGFyYW1zQWxnby50ZXN0KHAuYTogdWludDY0LCBwLmI6IGJ5dGVzLCBwLmM6IHVpbnQ2NCkgLT4gdm9pZDoKdGVzdDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6NQogICAgLy8gdGVzdCh7IGEsIGIsIGMgfTogeyBhOiB1aW50NjQ7IGI6IGJ5dGVzOyBjOiBib29sZWFuIH0pOiB2b2lkIHsKICAgIHByb3RvIDMgMAogICAgZnJhbWVfZGlnIC0zCiAgICBmcmFtZV9kaWcgLTIKICAgIHN3YXAKICAgIGZyYW1lX2RpZyAtMQogICAgY292ZXIgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Rlc3RydWN0dXJlZC1wYXJhbXMuYWxnby50czo2CiAgICAvLyBsb2coYSwgYiwgYykKICAgIGl0b2IKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgaXRvYgogICAgY29uY2F0CiAgICBsb2cKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6OkRlc3RydWN0dXJlZFBhcmFtc0FsZ28uaW5pdCgpIC0+IHZvaWQ6CmluaXQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjEwCiAgICAvLyB0aGlzLnRlc3QoeyBhOiA0NTYsIGI6IEJ5dGVzKCcnKSwgYzogZmFsc2UgfSkKICAgIHB1c2hpbnQgNDU2IC8vIDQ1NgogICAgcHVzaGJ5dGVzICIiCiAgICBpbnRjXzAgLy8gMAogICAgY2FsbHN1YiB0ZXN0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjExCiAgICAvLyBjb25zdCB0ZW1wID0geyBhOiBVaW50NjQoMiksIGI6IEJ5dGVzKCdIZWxsbycpLCBjOiB0cnVlIH0KICAgIHB1c2hpbnQgMiAvLyAyCiAgICBwdXNoYnl0ZXMgIkhlbGxvIgogICAgaW50Y18xIC8vIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6MTIKICAgIC8vIHRoaXMudGVzdCh0ZW1wKQogICAgY2FsbHN1YiB0ZXN0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjpEZXN0cnVjdHVyZWRQYXJhbXNBbGdvLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDgKCm1haW5fYmxvY2tAMDoKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERlc3RydWN0dXJlZFBhcmFtc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A3CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEZXN0cnVjdHVyZWRQYXJhbXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4ZmVmZWE3NjYgLy8gbWV0aG9kICJ0ZXN0KCh1aW50NjQsYnl0ZVtdLGJvb2wpKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHg4M2YxNDc0OCAvLyBtZXRob2QgImluaXQoKXZvaWQiCiAgICB1bmNvdmVyIDIKICAgIG1hdGNoIG1haW5fdGVzdF9yb3V0ZUAzIG1haW5faW5pdF9yb3V0ZUA0CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA2OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDExOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Rlc3RydWN0dXJlZC1wYXJhbXMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgRGVzdHJ1Y3R1cmVkUGFyYW1zQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Rlc3RydWN0dXJlZC1wYXJhbXMuYWxnby50czo6RGVzdHJ1Y3R1cmVkUGFyYW1zQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMjoKICAgIHJldHVybgoKbWFpbl9pbml0X3JvdXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjkKICAgIC8vIGluaXQoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGluaXQKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjpEZXN0cnVjdHVyZWRQYXJhbXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX3Rlc3Rfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6NQogICAgLy8gdGVzdCh7IGEsIGIsIGMgfTogeyBhOiB1aW50NjQ7IGI6IGJ5dGVzOyBjOiBib29sZWFuIH0pOiB2b2lkIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERlc3RydWN0dXJlZFBhcmFtc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzIgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBzd2FwCiAgICBkdXAKICAgIGludGNfMiAvLyA4CiAgICBleHRyYWN0X3VpbnQxNgogICAgc3dhcAogICAgZHVwCiAgICBsZW4KICAgIHN3YXAKICAgIGR1cAogICAgdW5jb3ZlciAzCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGV4dHJhY3QgMiAwCiAgICBzd2FwCiAgICBwdXNoaW50IDgwIC8vIDgwCiAgICBnZXRiaXQKICAgIHB1c2hieXRlcyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBzZXRiaXQKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6NQogICAgLy8gdGVzdCh7IGEsIGIsIGMgfTogeyBhOiB1aW50NjQ7IGI6IGJ5dGVzOyBjOiBib29sZWFuIH0pOiB2b2lkIHsKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIGNhbGxzdWIgdGVzdAogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6OkRlc3RydWN0dXJlZFBhcmFtc0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCm1haW5fYmFyZV9yb3V0aW5nQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEZXN0cnVjdHVyZWRQYXJhbXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTEKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEZXN0cnVjdHVyZWRQYXJhbXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjpEZXN0cnVjdHVyZWRQYXJhbXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgoKLy8gdGVzdHMvYXBwcm92YWxzL2Rlc3RydWN0dXJlZC1wYXJhbXMuYWxnby50czo6RGVzdHJ1Y3R1cmVkUGFyYW1zQWxnby50ZXN0KHAuYTogdWludDY0LCBwLmI6IGJ5dGVzLCBwLmM6IHVpbnQ2NCkgLT4gdm9pZDoKdGVzdDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6NQogICAgLy8gdGVzdCh7IGEsIGIsIGMgfTogeyBhOiB1aW50NjQ7IGI6IGJ5dGVzOyBjOiBib29sZWFuIH0pOiB2b2lkIHsKICAgIHByb3RvIDMgMAoKdGVzdF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Rlc3RydWN0dXJlZC1wYXJhbXMuYWxnby50czo1CiAgICAvLyB0ZXN0KHsgYSwgYiwgYyB9OiB7IGE6IHVpbnQ2NDsgYjogYnl0ZXM7IGM6IGJvb2xlYW4gfSk6IHZvaWQgewogICAgZnJhbWVfZGlnIC0zCiAgICBmcmFtZV9kaWcgLTIKICAgIHN3YXAKICAgIGZyYW1lX2RpZyAtMQogICAgY292ZXIgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Rlc3RydWN0dXJlZC1wYXJhbXMuYWxnby50czo2CiAgICAvLyBsb2coYSwgYiwgYykKICAgIGl0b2IKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgaXRvYgogICAgY29uY2F0CiAgICBsb2cKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6OkRlc3RydWN0dXJlZFBhcmFtc0FsZ28uaW5pdCgpIC0+IHZvaWQ6CmluaXQ6Cgppbml0X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjEwCiAgICAvLyB0aGlzLnRlc3QoeyBhOiA0NTYsIGI6IEJ5dGVzKCcnKSwgYzogZmFsc2UgfSkKICAgIHB1c2hpbnQgNDU2IC8vIDQ1NgogICAgcHVzaGJ5dGVzICIiCiAgICBpbnRjXzAgLy8gMAogICAgY2FsbHN1YiB0ZXN0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjExCiAgICAvLyBjb25zdCB0ZW1wID0geyBhOiBVaW50NjQoMiksIGI6IEJ5dGVzKCdIZWxsbycpLCBjOiB0cnVlIH0KICAgIHB1c2hpbnQgMiAvLyAyCiAgICBwdXNoYnl0ZXMgIkhlbGxvIgogICAgaW50Y18xIC8vIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6MTIKICAgIC8vIHRoaXMudGVzdCh0ZW1wKQogICAgY2FsbHN1YiB0ZXN0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjpEZXN0cnVjdHVyZWRQYXJhbXNBbGdvLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/destructured-params/DestructuredParamsAlgo.arc56.json b/tests/approvals/out/unoptimized/destructured-params/DestructuredParamsAlgo.arc56.json index 70e3a6292..831a2d618 100644 --- a/tests/approvals/out/unoptimized/destructured-params/DestructuredParamsAlgo.arc56.json +++ b/tests/approvals/out/unoptimized/destructured-params/DestructuredParamsAlgo.arc56.json @@ -127,8 +127,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDgKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERlc3RydWN0dXJlZFBhcmFtc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A3CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEZXN0cnVjdHVyZWRQYXJhbXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4ZmVmZWE3NjYgLy8gbWV0aG9kICJ0ZXN0KCh1aW50NjQsYnl0ZVtdLGJvb2wpKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHg4M2YxNDc0OCAvLyBtZXRob2QgImluaXQoKXZvaWQiCiAgICB1bmNvdmVyIDIKICAgIG1hdGNoIG1haW5fdGVzdF9yb3V0ZUAzIG1haW5faW5pdF9yb3V0ZUA0CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA2OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDExOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Rlc3RydWN0dXJlZC1wYXJhbXMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgRGVzdHJ1Y3R1cmVkUGFyYW1zQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Rlc3RydWN0dXJlZC1wYXJhbXMuYWxnby50czo6RGVzdHJ1Y3R1cmVkUGFyYW1zQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMjoKICAgIHJldHVybgoKbWFpbl9pbml0X3JvdXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjkKICAgIC8vIGluaXQoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGluaXQKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjpEZXN0cnVjdHVyZWRQYXJhbXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX3Rlc3Rfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6NQogICAgLy8gdGVzdCh7IGEsIGIsIGMgfTogeyBhOiB1aW50NjQ7IGI6IGJ5dGVzOyBjOiBib29sZWFuIH0pOiB2b2lkIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERlc3RydWN0dXJlZFBhcmFtc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzIgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBzd2FwCiAgICBkdXAKICAgIGludGNfMiAvLyA4CiAgICBleHRyYWN0X3VpbnQxNgogICAgc3dhcAogICAgZHVwCiAgICBsZW4KICAgIHN3YXAKICAgIGR1cAogICAgdW5jb3ZlciAzCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGV4dHJhY3QgMiAwCiAgICBzd2FwCiAgICBwdXNoaW50IDgwIC8vIDgwCiAgICBnZXRiaXQKICAgIHB1c2hieXRlcyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBzZXRiaXQKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6NQogICAgLy8gdGVzdCh7IGEsIGIsIGMgfTogeyBhOiB1aW50NjQ7IGI6IGJ5dGVzOyBjOiBib29sZWFuIH0pOiB2b2lkIHsKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIGNhbGxzdWIgdGVzdAogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6OkRlc3RydWN0dXJlZFBhcmFtc0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCm1haW5fYmFyZV9yb3V0aW5nQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEZXN0cnVjdHVyZWRQYXJhbXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTEKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEZXN0cnVjdHVyZWRQYXJhbXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjpEZXN0cnVjdHVyZWRQYXJhbXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgoKLy8gdGVzdHMvYXBwcm92YWxzL2Rlc3RydWN0dXJlZC1wYXJhbXMuYWxnby50czo6RGVzdHJ1Y3R1cmVkUGFyYW1zQWxnby50ZXN0KHAuYTogdWludDY0LCBwLmI6IGJ5dGVzLCBwLmM6IHVpbnQ2NCkgLT4gdm9pZDoKdGVzdDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6NQogICAgLy8gdGVzdCh7IGEsIGIsIGMgfTogeyBhOiB1aW50NjQ7IGI6IGJ5dGVzOyBjOiBib29sZWFuIH0pOiB2b2lkIHsKICAgIHByb3RvIDMgMAogICAgZnJhbWVfZGlnIC0zCiAgICBmcmFtZV9kaWcgLTIKICAgIHN3YXAKICAgIGZyYW1lX2RpZyAtMQogICAgY292ZXIgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Rlc3RydWN0dXJlZC1wYXJhbXMuYWxnby50czo2CiAgICAvLyBsb2coYSwgYiwgYykKICAgIGl0b2IKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgaXRvYgogICAgY29uY2F0CiAgICBsb2cKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6OkRlc3RydWN0dXJlZFBhcmFtc0FsZ28uaW5pdCgpIC0+IHZvaWQ6CmluaXQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjEwCiAgICAvLyB0aGlzLnRlc3QoeyBhOiA0NTYsIGI6IEJ5dGVzKCcnKSwgYzogZmFsc2UgfSkKICAgIHB1c2hpbnQgNDU2IC8vIDQ1NgogICAgcHVzaGJ5dGVzICIiCiAgICBpbnRjXzAgLy8gMAogICAgY2FsbHN1YiB0ZXN0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjExCiAgICAvLyBjb25zdCB0ZW1wID0geyBhOiBVaW50NjQoMiksIGI6IEJ5dGVzKCdIZWxsbycpLCBjOiB0cnVlIH0KICAgIHB1c2hpbnQgMiAvLyAyCiAgICBwdXNoYnl0ZXMgIkhlbGxvIgogICAgaW50Y18xIC8vIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6MTIKICAgIC8vIHRoaXMudGVzdCh0ZW1wKQogICAgY2FsbHN1YiB0ZXN0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjpEZXN0cnVjdHVyZWRQYXJhbXNBbGdvLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDgKCm1haW5fYmxvY2tAMDoKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERlc3RydWN0dXJlZFBhcmFtc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A3CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEZXN0cnVjdHVyZWRQYXJhbXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4ZmVmZWE3NjYgLy8gbWV0aG9kICJ0ZXN0KCh1aW50NjQsYnl0ZVtdLGJvb2wpKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHg4M2YxNDc0OCAvLyBtZXRob2QgImluaXQoKXZvaWQiCiAgICB1bmNvdmVyIDIKICAgIG1hdGNoIG1haW5fdGVzdF9yb3V0ZUAzIG1haW5faW5pdF9yb3V0ZUA0CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA2OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDExOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Rlc3RydWN0dXJlZC1wYXJhbXMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgRGVzdHJ1Y3R1cmVkUGFyYW1zQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Rlc3RydWN0dXJlZC1wYXJhbXMuYWxnby50czo6RGVzdHJ1Y3R1cmVkUGFyYW1zQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMjoKICAgIHJldHVybgoKbWFpbl9pbml0X3JvdXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjkKICAgIC8vIGluaXQoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGluaXQKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjpEZXN0cnVjdHVyZWRQYXJhbXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX3Rlc3Rfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6NQogICAgLy8gdGVzdCh7IGEsIGIsIGMgfTogeyBhOiB1aW50NjQ7IGI6IGJ5dGVzOyBjOiBib29sZWFuIH0pOiB2b2lkIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERlc3RydWN0dXJlZFBhcmFtc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzIgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBzd2FwCiAgICBkdXAKICAgIGludGNfMiAvLyA4CiAgICBleHRyYWN0X3VpbnQxNgogICAgc3dhcAogICAgZHVwCiAgICBsZW4KICAgIHN3YXAKICAgIGR1cAogICAgdW5jb3ZlciAzCiAgICB1bmNvdmVyIDMKICAgIHN1YnN0cmluZzMKICAgIGV4dHJhY3QgMiAwCiAgICBzd2FwCiAgICBwdXNoaW50IDgwIC8vIDgwCiAgICBnZXRiaXQKICAgIHB1c2hieXRlcyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBzZXRiaXQKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6NQogICAgLy8gdGVzdCh7IGEsIGIsIGMgfTogeyBhOiB1aW50NjQ7IGI6IGJ5dGVzOyBjOiBib29sZWFuIH0pOiB2b2lkIHsKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIGNhbGxzdWIgdGVzdAogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6OkRlc3RydWN0dXJlZFBhcmFtc0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCm1haW5fYmFyZV9yb3V0aW5nQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEZXN0cnVjdHVyZWRQYXJhbXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTEKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEZXN0cnVjdHVyZWRQYXJhbXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjpEZXN0cnVjdHVyZWRQYXJhbXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgoKLy8gdGVzdHMvYXBwcm92YWxzL2Rlc3RydWN0dXJlZC1wYXJhbXMuYWxnby50czo6RGVzdHJ1Y3R1cmVkUGFyYW1zQWxnby50ZXN0KHAuYTogdWludDY0LCBwLmI6IGJ5dGVzLCBwLmM6IHVpbnQ2NCkgLT4gdm9pZDoKdGVzdDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6NQogICAgLy8gdGVzdCh7IGEsIGIsIGMgfTogeyBhOiB1aW50NjQ7IGI6IGJ5dGVzOyBjOiBib29sZWFuIH0pOiB2b2lkIHsKICAgIHByb3RvIDMgMAoKdGVzdF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Rlc3RydWN0dXJlZC1wYXJhbXMuYWxnby50czo1CiAgICAvLyB0ZXN0KHsgYSwgYiwgYyB9OiB7IGE6IHVpbnQ2NDsgYjogYnl0ZXM7IGM6IGJvb2xlYW4gfSk6IHZvaWQgewogICAgZnJhbWVfZGlnIC0zCiAgICBmcmFtZV9kaWcgLTIKICAgIHN3YXAKICAgIGZyYW1lX2RpZyAtMQogICAgY292ZXIgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Rlc3RydWN0dXJlZC1wYXJhbXMuYWxnby50czo2CiAgICAvLyBsb2coYSwgYiwgYykKICAgIGl0b2IKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgaXRvYgogICAgY29uY2F0CiAgICBsb2cKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6OkRlc3RydWN0dXJlZFBhcmFtc0FsZ28uaW5pdCgpIC0+IHZvaWQ6CmluaXQ6Cgppbml0X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjEwCiAgICAvLyB0aGlzLnRlc3QoeyBhOiA0NTYsIGI6IEJ5dGVzKCcnKSwgYzogZmFsc2UgfSkKICAgIHB1c2hpbnQgNDU2IC8vIDQ1NgogICAgcHVzaGJ5dGVzICIiCiAgICBpbnRjXzAgLy8gMAogICAgY2FsbHN1YiB0ZXN0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjExCiAgICAvLyBjb25zdCB0ZW1wID0geyBhOiBVaW50NjQoMiksIGI6IEJ5dGVzKCdIZWxsbycpLCBjOiB0cnVlIH0KICAgIHB1c2hpbnQgMiAvLyAyCiAgICBwdXNoYnl0ZXMgIkhlbGxvIgogICAgaW50Y18xIC8vIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kZXN0cnVjdHVyZWQtcGFyYW1zLmFsZ28udHM6MTIKICAgIC8vIHRoaXMudGVzdCh0ZW1wKQogICAgY2FsbHN1YiB0ZXN0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvZGVzdHJ1Y3R1cmVkLXBhcmFtcy5hbGdvLnRzOjpEZXN0cnVjdHVyZWRQYXJhbXNBbGdvLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiADAAEIMRsiE0EAZzYaAIAE/v6nZoAEg/FHSE8CjgIAEwACIkMxGSISRDEYIhNEiABsI0L/7jEZIhJEMRgiE0Q2GgFJIiRYF0xJJFlMSRVMSU8DTwNSVwIATIFQU4ABACJPAlQiU08CTwJPAogAGyNC/7ExGSJMjgEAA0L/pTEYIhJEiAAvI0L/mooDAIv9i/5Mi/9OAhZMUEwWULCJgcgDgAAiiP/jgQKABUhlbGxvI4j/1omJ", @@ -139,7 +139,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/destructured-params/DestructuredParamsAlgo.clear.teal b/tests/approvals/out/unoptimized/destructured-params/DestructuredParamsAlgo.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/destructured-params/DestructuredParamsAlgo.clear.teal +++ b/tests/approvals/out/unoptimized/destructured-params/DestructuredParamsAlgo.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/do-loops/DoLoopsAlgo.approval.teal b/tests/approvals/out/unoptimized/do-loops/DoLoopsAlgo.approval.teal index 5911c4762..fcf3d1be4 100644 --- a/tests/approvals/out/unoptimized/do-loops/DoLoopsAlgo.approval.teal +++ b/tests/approvals/out/unoptimized/do-loops/DoLoopsAlgo.approval.teal @@ -6,6 +6,8 @@ main: intcblock 0 1 bytecblock 0x151f7c75 +main_block@0: + main_block@1: // tests/approvals/do-loops.algo.ts:4 // export class DoLoopsAlgo extends Contract { @@ -148,6 +150,8 @@ testDo: // tests/approvals/do-loops.algo.ts:5 // testDo(stop: uint64) { proto 1 1 + +testDo_block@0: // tests/approvals/do-loops.algo.ts:6 // let i = Uint64(0) intc_0 // 0 @@ -195,6 +199,8 @@ testDoBreak: // tests/approvals/do-loops.algo.ts:12 // testDoBreak(stop: uint64, breakMod: uint64) { proto 2 1 + +testDoBreak_block@0: // tests/approvals/do-loops.algo.ts:13 // let total = Uint64(0) intc_0 // 0 @@ -280,6 +286,8 @@ testDoContinue: // tests/approvals/do-loops.algo.ts:23 // testDoContinue(stop: uint64, mod: uint64) { proto 2 1 + +testDoContinue_block@0: // tests/approvals/do-loops.algo.ts:24 // let i = Uint64(0) intc_0 // 0 @@ -374,4 +382,6 @@ testDoContinue_after_while@9: // tests/approvals/do-loops.algo.ts::DoLoopsAlgo.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/do-loops/DoLoopsAlgo.arc32.json b/tests/approvals/out/unoptimized/do-loops/DoLoopsAlgo.arc32.json index 3055c22ed..d7d57bbd6 100644 --- a/tests/approvals/out/unoptimized/do-loops/DoLoopsAlgo.arc32.json +++ b/tests/approvals/out/unoptimized/do-loops/DoLoopsAlgo.arc32.json @@ -17,8 +17,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEb0xvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDgKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEb0xvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDM5MjM5NzkyIC8vIG1ldGhvZCAidGVzdERvKHVpbnQ2NCl1aW50NjQiCiAgICBwdXNoYnl0ZXMgMHhhY2UyZWIyMSAvLyBtZXRob2QgInRlc3REb0JyZWFrKHVpbnQ2NCx1aW50NjQpdWludDY0IgogICAgcHVzaGJ5dGVzIDB4NzhlOGQ1MTYgLy8gbWV0aG9kICJ0ZXN0RG9Db250aW51ZSh1aW50NjQsdWludDY0KXVpbnQ2NCIKICAgIHVuY292ZXIgMwogICAgbWF0Y2ggbWFpbl90ZXN0RG9fcm91dGVAMyBtYWluX3Rlc3REb0JyZWFrX3JvdXRlQDQgbWFpbl90ZXN0RG9Db250aW51ZV9yb3V0ZUA1CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANjoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA3OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERvTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czo6RG9Mb29wc0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTM6CiAgICByZXR1cm4KCm1haW5fdGVzdERvQ29udGludWVfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjIzCiAgICAvLyB0ZXN0RG9Db250aW51ZShzdG9wOiB1aW50NjQsIG1vZDogdWludDY0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgRG9Mb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoyMwogICAgLy8gdGVzdERvQ29udGludWUoc3RvcDogdWludDY0LCBtb2Q6IHVpbnQ2NCkgewogICAgY2FsbHN1YiB0ZXN0RG9Db250aW51ZQogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjpEb0xvb3BzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl90ZXN0RG9CcmVha19yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MTIKICAgIC8vIHRlc3REb0JyZWFrKHN0b3A6IHVpbnQ2NCwgYnJlYWtNb2Q6IHVpbnQ2NCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERvTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MTIKICAgIC8vIHRlc3REb0JyZWFrKHN0b3A6IHVpbnQ2NCwgYnJlYWtNb2Q6IHVpbnQ2NCkgewogICAgY2FsbHN1YiB0ZXN0RG9CcmVhawogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjpEb0xvb3BzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl90ZXN0RG9fcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjUKICAgIC8vIHRlc3REbyhzdG9wOiB1aW50NjQpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEb0xvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjUKICAgIC8vIHRlc3REbyhzdG9wOiB1aW50NjQpIHsKICAgIGNhbGxzdWIgdGVzdERvCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6OkRvTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX2JhcmVfcm91dGluZ0A4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERvTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDkKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERvTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czo6RG9Mb29wc0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCgovLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czo6RG9Mb29wc0FsZ28udGVzdERvKHN0b3A6IHVpbnQ2NCkgLT4gdWludDY0Ogp0ZXN0RG86CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czo1CiAgICAvLyB0ZXN0RG8oc3RvcDogdWludDY0KSB7CiAgICBwcm90byAxIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjYKICAgIC8vIGxldCBpID0gVWludDY0KDApCiAgICBpbnRjXzAgLy8gMAoKdGVzdERvX3doaWxlX3RvcEAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6Ny05CiAgICAvLyBkbyB7CiAgICAvLyAgIGkgKz0gMQogICAgLy8gfSB3aGlsZSAoaSA8IHN0b3ApCiAgICBpbnRjXzEgLy8gMQogICAgYnogdGVzdERvX2FmdGVyX3doaWxlQDUKCnRlc3REb193aGlsZV9ib2R5QDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czo4CiAgICAvLyBpICs9IDEKICAgIGZyYW1lX2RpZyAwCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgZHVwCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjkKICAgIC8vIH0gd2hpbGUgKGkgPCBzdG9wKQogICAgZnJhbWVfZGlnIC0xCiAgICA8CiAgICBibnogdGVzdERvX2FmdGVyX2lmX2Vsc2VANAoKdGVzdERvX2lmX2JvZHlAMzoKCnRlc3REb19ibG9ja0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MTAKICAgIC8vIHJldHVybiBpCiAgICBmcmFtZV9kaWcgMAogICAgc3dhcAogICAgcmV0c3ViCgp0ZXN0RG9fYWZ0ZXJfaWZfZWxzZUA0OgogICAgYiB0ZXN0RG9fd2hpbGVfdG9wQDEKCnRlc3REb19hZnRlcl93aGlsZUA1OgogICAgYiB0ZXN0RG9fYmxvY2tANgoKCi8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjpEb0xvb3BzQWxnby50ZXN0RG9CcmVhayhzdG9wOiB1aW50NjQsIGJyZWFrTW9kOiB1aW50NjQpIC0+IHVpbnQ2NDoKdGVzdERvQnJlYWs6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoxMgogICAgLy8gdGVzdERvQnJlYWsoc3RvcDogdWludDY0LCBicmVha01vZDogdWludDY0KSB7CiAgICBwcm90byAyIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjEzCiAgICAvLyBsZXQgdG90YWwgPSBVaW50NjQoMCkKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoxNAogICAgLy8gbGV0IGkgPSBVaW50NjQoMCkKICAgIGR1cAoKdGVzdERvQnJlYWtfd2hpbGVfdG9wQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoxNS0yMAogICAgLy8gZG8gewogICAgLy8gICBpZiAoaSA+IDAgJiYgaSAlIGJyZWFrTW9kID09PSAwKSBicmVhawogICAgLy8gCiAgICAvLyAgIGkgKz0gMQogICAgLy8gICB0b3RhbCArPSBpCiAgICAvLyB9IHdoaWxlIChpIDwgc3RvcCkKICAgIGludGNfMSAvLyAxCiAgICBieiB0ZXN0RG9CcmVha19hZnRlcl93aGlsZUA4Cgp0ZXN0RG9CcmVha193aGlsZV9ib2R5QDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoxNgogICAgLy8gaWYgKGkgPiAwICYmIGkgJSBicmVha01vZCA9PT0gMCkgYnJlYWsKICAgIGZyYW1lX2RpZyAxCiAgICBpbnRjXzAgLy8gMAogICAgPgogICAgYnogdGVzdERvQnJlYWtfYWZ0ZXJfaWZfZWxzZUA1Cgp0ZXN0RG9CcmVha19hbmRfY29udGRAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjE2CiAgICAvLyBpZiAoaSA+IDAgJiYgaSAlIGJyZWFrTW9kID09PSAwKSBicmVhawogICAgZnJhbWVfZGlnIDEKICAgIGZyYW1lX2RpZyAtMQogICAgJQogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBieiB0ZXN0RG9CcmVha19hZnRlcl9pZl9lbHNlQDUKCnRlc3REb0JyZWFrX2lmX2JvZHlANDoKCnRlc3REb0JyZWFrX2Jsb2NrQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoyMQogICAgLy8gcmV0dXJuIHRvdGFsCiAgICByZXRzdWIKCnRlc3REb0JyZWFrX2FmdGVyX2lmX2Vsc2VANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjE4CiAgICAvLyBpICs9IDEKICAgIGZyYW1lX2RpZyAxCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgZHVwCiAgICBmcmFtZV9idXJ5IDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbCArPSBpCiAgICBmcmFtZV9kaWcgMAogICAgZGlnIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MjAKICAgIC8vIH0gd2hpbGUgKGkgPCBzdG9wKQogICAgZnJhbWVfZGlnIC0yCiAgICA8CiAgICBibnogdGVzdERvQnJlYWtfYWZ0ZXJfaWZfZWxzZUA3Cgp0ZXN0RG9CcmVha19pZl9ib2R5QDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoxNS0yMAogICAgLy8gZG8gewogICAgLy8gICBpZiAoaSA+IDAgJiYgaSAlIGJyZWFrTW9kID09PSAwKSBicmVhawogICAgLy8gCiAgICAvLyAgIGkgKz0gMQogICAgLy8gICB0b3RhbCArPSBpCiAgICAvLyB9IHdoaWxlIChpIDwgc3RvcCkKICAgIGIgdGVzdERvQnJlYWtfYmxvY2tAOQoKdGVzdERvQnJlYWtfYWZ0ZXJfaWZfZWxzZUA3OgogICAgYiB0ZXN0RG9CcmVha193aGlsZV90b3BAMQoKdGVzdERvQnJlYWtfYWZ0ZXJfd2hpbGVAODoKICAgIGIgdGVzdERvQnJlYWtfYmxvY2tAOQoKCi8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjpEb0xvb3BzQWxnby50ZXN0RG9Db250aW51ZShzdG9wOiB1aW50NjQsIG1vZDogdWludDY0KSAtPiB1aW50NjQ6CnRlc3REb0NvbnRpbnVlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MjMKICAgIC8vIHRlc3REb0NvbnRpbnVlKHN0b3A6IHVpbnQ2NCwgbW9kOiB1aW50NjQpIHsKICAgIHByb3RvIDIgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MjQKICAgIC8vIGxldCBpID0gVWludDY0KDApCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MjUKICAgIC8vIGxldCB0b3RhbCA9IFVpbnQ2NCgwKQogICAgZHVwCgp0ZXN0RG9Db250aW51ZV93aGlsZV90b3BAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjI2LTM0CiAgICAvLyBkbyB7CiAgICAvLyAgIGlmIChpID4gMCAmJiBpICUgbW9kID09PSAwKSB7CiAgICAvLyAgICAgdG90YWwgKz0gMgogICAgLy8gICAgIGkgKz0gMQogICAgLy8gICAgIGNvbnRpbnVlCiAgICAvLyAgIH0KICAgIC8vICAgdG90YWwgKz0gMQogICAgLy8gICBpICs9IDEKICAgIC8vIH0gd2hpbGUgKGkgPCBzdG9wKQogICAgaW50Y18xIC8vIDEKICAgIGJ6IHRlc3REb0NvbnRpbnVlX2FmdGVyX3doaWxlQDkKCnRlc3REb0NvbnRpbnVlX3doaWxlX2JvZHlAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjI3CiAgICAvLyBpZiAoaSA+IDAgJiYgaSAlIG1vZCA9PT0gMCkgewogICAgZnJhbWVfZGlnIDAKICAgIGludGNfMCAvLyAwCiAgICA+CiAgICBieiB0ZXN0RG9Db250aW51ZV9hZnRlcl9pZl9lbHNlQDUKCnRlc3REb0NvbnRpbnVlX2FuZF9jb250ZEAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MjcKICAgIC8vIGlmIChpID4gMCAmJiBpICUgbW9kID09PSAwKSB7CiAgICBmcmFtZV9kaWcgMAogICAgZnJhbWVfZGlnIC0xCiAgICAlCiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGJ6IHRlc3REb0NvbnRpbnVlX2FmdGVyX2lmX2Vsc2VANQoKdGVzdERvQ29udGludWVfaWZfYm9keUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MjgKICAgIC8vIHRvdGFsICs9IDIKICAgIGZyYW1lX2RpZyAxCiAgICBwdXNoaW50IDIgLy8gMgogICAgKwogICAgZnJhbWVfYnVyeSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoyOQogICAgLy8gaSArPSAxCiAgICBmcmFtZV9kaWcgMAogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMAoKdGVzdERvQ29udGludWVfYmxvY2tANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjM0CiAgICAvLyB9IHdoaWxlIChpIDwgc3RvcCkKICAgIGZyYW1lX2RpZyAwCiAgICBmcmFtZV9kaWcgLTIKICAgIDwKICAgIGJueiB0ZXN0RG9Db250aW51ZV9hZnRlcl9pZl9lbHNlQDgKCnRlc3REb0NvbnRpbnVlX2lmX2JvZHlANzoKCnRlc3REb0NvbnRpbnVlX2Jsb2NrQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MzUKICAgIC8vIHJldHVybiB0b3RhbAogICAgZnJhbWVfZGlnIDEKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgp0ZXN0RG9Db250aW51ZV9hZnRlcl9pZl9lbHNlQDg6CiAgICBiIHRlc3REb0NvbnRpbnVlX3doaWxlX3RvcEAxCgp0ZXN0RG9Db250aW51ZV9hZnRlcl9pZl9lbHNlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czozMgogICAgLy8gdG90YWwgKz0gMQogICAgZnJhbWVfZGlnIDEKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjMzCiAgICAvLyBpICs9IDEKICAgIGZyYW1lX2RpZyAwCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgZnJhbWVfYnVyeSAwCiAgICBiIHRlc3REb0NvbnRpbnVlX2Jsb2NrQDYKCnRlc3REb0NvbnRpbnVlX2FmdGVyX3doaWxlQDk6CiAgICBiIHRlc3REb0NvbnRpbnVlX2Jsb2NrQDEwCgoKLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6OkRvTG9vcHNBbGdvLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMDoKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEb0xvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDgKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEb0xvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDM5MjM5NzkyIC8vIG1ldGhvZCAidGVzdERvKHVpbnQ2NCl1aW50NjQiCiAgICBwdXNoYnl0ZXMgMHhhY2UyZWIyMSAvLyBtZXRob2QgInRlc3REb0JyZWFrKHVpbnQ2NCx1aW50NjQpdWludDY0IgogICAgcHVzaGJ5dGVzIDB4NzhlOGQ1MTYgLy8gbWV0aG9kICJ0ZXN0RG9Db250aW51ZSh1aW50NjQsdWludDY0KXVpbnQ2NCIKICAgIHVuY292ZXIgMwogICAgbWF0Y2ggbWFpbl90ZXN0RG9fcm91dGVAMyBtYWluX3Rlc3REb0JyZWFrX3JvdXRlQDQgbWFpbl90ZXN0RG9Db250aW51ZV9yb3V0ZUA1CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANjoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA3OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERvTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czo6RG9Mb29wc0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTM6CiAgICByZXR1cm4KCm1haW5fdGVzdERvQ29udGludWVfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjIzCiAgICAvLyB0ZXN0RG9Db250aW51ZShzdG9wOiB1aW50NjQsIG1vZDogdWludDY0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgRG9Mb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoyMwogICAgLy8gdGVzdERvQ29udGludWUoc3RvcDogdWludDY0LCBtb2Q6IHVpbnQ2NCkgewogICAgY2FsbHN1YiB0ZXN0RG9Db250aW51ZQogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjpEb0xvb3BzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl90ZXN0RG9CcmVha19yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MTIKICAgIC8vIHRlc3REb0JyZWFrKHN0b3A6IHVpbnQ2NCwgYnJlYWtNb2Q6IHVpbnQ2NCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERvTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MTIKICAgIC8vIHRlc3REb0JyZWFrKHN0b3A6IHVpbnQ2NCwgYnJlYWtNb2Q6IHVpbnQ2NCkgewogICAgY2FsbHN1YiB0ZXN0RG9CcmVhawogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjpEb0xvb3BzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl90ZXN0RG9fcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjUKICAgIC8vIHRlc3REbyhzdG9wOiB1aW50NjQpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEb0xvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjUKICAgIC8vIHRlc3REbyhzdG9wOiB1aW50NjQpIHsKICAgIGNhbGxzdWIgdGVzdERvCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6OkRvTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX2JhcmVfcm91dGluZ0A4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERvTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDkKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERvTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czo6RG9Mb29wc0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCgovLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czo6RG9Mb29wc0FsZ28udGVzdERvKHN0b3A6IHVpbnQ2NCkgLT4gdWludDY0Ogp0ZXN0RG86CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czo1CiAgICAvLyB0ZXN0RG8oc3RvcDogdWludDY0KSB7CiAgICBwcm90byAxIDEKCnRlc3REb19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6NgogICAgLy8gbGV0IGkgPSBVaW50NjQoMCkKICAgIGludGNfMCAvLyAwCgp0ZXN0RG9fd2hpbGVfdG9wQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czo3LTkKICAgIC8vIGRvIHsKICAgIC8vICAgaSArPSAxCiAgICAvLyB9IHdoaWxlIChpIDwgc3RvcCkKICAgIGludGNfMSAvLyAxCiAgICBieiB0ZXN0RG9fYWZ0ZXJfd2hpbGVANQoKdGVzdERvX3doaWxlX2JvZHlAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjgKICAgIC8vIGkgKz0gMQogICAgZnJhbWVfZGlnIDAKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6OQogICAgLy8gfSB3aGlsZSAoaSA8IHN0b3ApCiAgICBmcmFtZV9kaWcgLTEKICAgIDwKICAgIGJueiB0ZXN0RG9fYWZ0ZXJfaWZfZWxzZUA0Cgp0ZXN0RG9faWZfYm9keUAzOgoKdGVzdERvX2Jsb2NrQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoxMAogICAgLy8gcmV0dXJuIGkKICAgIGZyYW1lX2RpZyAwCiAgICBzd2FwCiAgICByZXRzdWIKCnRlc3REb19hZnRlcl9pZl9lbHNlQDQ6CiAgICBiIHRlc3REb193aGlsZV90b3BAMQoKdGVzdERvX2FmdGVyX3doaWxlQDU6CiAgICBiIHRlc3REb19ibG9ja0A2CgoKLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6OkRvTG9vcHNBbGdvLnRlc3REb0JyZWFrKHN0b3A6IHVpbnQ2NCwgYnJlYWtNb2Q6IHVpbnQ2NCkgLT4gdWludDY0Ogp0ZXN0RG9CcmVhazoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjEyCiAgICAvLyB0ZXN0RG9CcmVhayhzdG9wOiB1aW50NjQsIGJyZWFrTW9kOiB1aW50NjQpIHsKICAgIHByb3RvIDIgMQoKdGVzdERvQnJlYWtfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjEzCiAgICAvLyBsZXQgdG90YWwgPSBVaW50NjQoMCkKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoxNAogICAgLy8gbGV0IGkgPSBVaW50NjQoMCkKICAgIGR1cAoKdGVzdERvQnJlYWtfd2hpbGVfdG9wQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoxNS0yMAogICAgLy8gZG8gewogICAgLy8gICBpZiAoaSA+IDAgJiYgaSAlIGJyZWFrTW9kID09PSAwKSBicmVhawogICAgLy8gCiAgICAvLyAgIGkgKz0gMQogICAgLy8gICB0b3RhbCArPSBpCiAgICAvLyB9IHdoaWxlIChpIDwgc3RvcCkKICAgIGludGNfMSAvLyAxCiAgICBieiB0ZXN0RG9CcmVha19hZnRlcl93aGlsZUA4Cgp0ZXN0RG9CcmVha193aGlsZV9ib2R5QDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoxNgogICAgLy8gaWYgKGkgPiAwICYmIGkgJSBicmVha01vZCA9PT0gMCkgYnJlYWsKICAgIGZyYW1lX2RpZyAxCiAgICBpbnRjXzAgLy8gMAogICAgPgogICAgYnogdGVzdERvQnJlYWtfYWZ0ZXJfaWZfZWxzZUA1Cgp0ZXN0RG9CcmVha19hbmRfY29udGRAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjE2CiAgICAvLyBpZiAoaSA+IDAgJiYgaSAlIGJyZWFrTW9kID09PSAwKSBicmVhawogICAgZnJhbWVfZGlnIDEKICAgIGZyYW1lX2RpZyAtMQogICAgJQogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBieiB0ZXN0RG9CcmVha19hZnRlcl9pZl9lbHNlQDUKCnRlc3REb0JyZWFrX2lmX2JvZHlANDoKCnRlc3REb0JyZWFrX2Jsb2NrQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoyMQogICAgLy8gcmV0dXJuIHRvdGFsCiAgICByZXRzdWIKCnRlc3REb0JyZWFrX2FmdGVyX2lmX2Vsc2VANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjE4CiAgICAvLyBpICs9IDEKICAgIGZyYW1lX2RpZyAxCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgZHVwCiAgICBmcmFtZV9idXJ5IDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbCArPSBpCiAgICBmcmFtZV9kaWcgMAogICAgZGlnIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MjAKICAgIC8vIH0gd2hpbGUgKGkgPCBzdG9wKQogICAgZnJhbWVfZGlnIC0yCiAgICA8CiAgICBibnogdGVzdERvQnJlYWtfYWZ0ZXJfaWZfZWxzZUA3Cgp0ZXN0RG9CcmVha19pZl9ib2R5QDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoxNS0yMAogICAgLy8gZG8gewogICAgLy8gICBpZiAoaSA+IDAgJiYgaSAlIGJyZWFrTW9kID09PSAwKSBicmVhawogICAgLy8gCiAgICAvLyAgIGkgKz0gMQogICAgLy8gICB0b3RhbCArPSBpCiAgICAvLyB9IHdoaWxlIChpIDwgc3RvcCkKICAgIGIgdGVzdERvQnJlYWtfYmxvY2tAOQoKdGVzdERvQnJlYWtfYWZ0ZXJfaWZfZWxzZUA3OgogICAgYiB0ZXN0RG9CcmVha193aGlsZV90b3BAMQoKdGVzdERvQnJlYWtfYWZ0ZXJfd2hpbGVAODoKICAgIGIgdGVzdERvQnJlYWtfYmxvY2tAOQoKCi8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjpEb0xvb3BzQWxnby50ZXN0RG9Db250aW51ZShzdG9wOiB1aW50NjQsIG1vZDogdWludDY0KSAtPiB1aW50NjQ6CnRlc3REb0NvbnRpbnVlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MjMKICAgIC8vIHRlc3REb0NvbnRpbnVlKHN0b3A6IHVpbnQ2NCwgbW9kOiB1aW50NjQpIHsKICAgIHByb3RvIDIgMQoKdGVzdERvQ29udGludWVfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjI0CiAgICAvLyBsZXQgaSA9IFVpbnQ2NCgwKQogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjI1CiAgICAvLyBsZXQgdG90YWwgPSBVaW50NjQoMCkKICAgIGR1cAoKdGVzdERvQ29udGludWVfd2hpbGVfdG9wQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoyNi0zNAogICAgLy8gZG8gewogICAgLy8gICBpZiAoaSA+IDAgJiYgaSAlIG1vZCA9PT0gMCkgewogICAgLy8gICAgIHRvdGFsICs9IDIKICAgIC8vICAgICBpICs9IDEKICAgIC8vICAgICBjb250aW51ZQogICAgLy8gICB9CiAgICAvLyAgIHRvdGFsICs9IDEKICAgIC8vICAgaSArPSAxCiAgICAvLyB9IHdoaWxlIChpIDwgc3RvcCkKICAgIGludGNfMSAvLyAxCiAgICBieiB0ZXN0RG9Db250aW51ZV9hZnRlcl93aGlsZUA5Cgp0ZXN0RG9Db250aW51ZV93aGlsZV9ib2R5QDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoyNwogICAgLy8gaWYgKGkgPiAwICYmIGkgJSBtb2QgPT09IDApIHsKICAgIGZyYW1lX2RpZyAwCiAgICBpbnRjXzAgLy8gMAogICAgPgogICAgYnogdGVzdERvQ29udGludWVfYWZ0ZXJfaWZfZWxzZUA1Cgp0ZXN0RG9Db250aW51ZV9hbmRfY29udGRAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjI3CiAgICAvLyBpZiAoaSA+IDAgJiYgaSAlIG1vZCA9PT0gMCkgewogICAgZnJhbWVfZGlnIDAKICAgIGZyYW1lX2RpZyAtMQogICAgJQogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBieiB0ZXN0RG9Db250aW51ZV9hZnRlcl9pZl9lbHNlQDUKCnRlc3REb0NvbnRpbnVlX2lmX2JvZHlANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjI4CiAgICAvLyB0b3RhbCArPSAyCiAgICBmcmFtZV9kaWcgMQogICAgcHVzaGludCAyIC8vIDIKICAgICsKICAgIGZyYW1lX2J1cnkgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MjkKICAgIC8vIGkgKz0gMQogICAgZnJhbWVfZGlnIDAKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDAKCnRlc3REb0NvbnRpbnVlX2Jsb2NrQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czozNAogICAgLy8gfSB3aGlsZSAoaSA8IHN0b3ApCiAgICBmcmFtZV9kaWcgMAogICAgZnJhbWVfZGlnIC0yCiAgICA8CiAgICBibnogdGVzdERvQ29udGludWVfYWZ0ZXJfaWZfZWxzZUA4Cgp0ZXN0RG9Db250aW51ZV9pZl9ib2R5QDc6Cgp0ZXN0RG9Db250aW51ZV9ibG9ja0AxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjM1CiAgICAvLyByZXR1cm4gdG90YWwKICAgIGZyYW1lX2RpZyAxCiAgICBmcmFtZV9idXJ5IDAKICAgIHJldHN1YgoKdGVzdERvQ29udGludWVfYWZ0ZXJfaWZfZWxzZUA4OgogICAgYiB0ZXN0RG9Db250aW51ZV93aGlsZV90b3BAMQoKdGVzdERvQ29udGludWVfYWZ0ZXJfaWZfZWxzZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MzIKICAgIC8vIHRvdGFsICs9IDEKICAgIGZyYW1lX2RpZyAxCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgZnJhbWVfYnVyeSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czozMwogICAgLy8gaSArPSAxCiAgICBmcmFtZV9kaWcgMAogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMAogICAgYiB0ZXN0RG9Db250aW51ZV9ibG9ja0A2Cgp0ZXN0RG9Db250aW51ZV9hZnRlcl93aGlsZUA5OgogICAgYiB0ZXN0RG9Db250aW51ZV9ibG9ja0AxMAoKCi8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjpEb0xvb3BzQWxnby5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/do-loops/DoLoopsAlgo.arc56.json b/tests/approvals/out/unoptimized/do-loops/DoLoopsAlgo.arc56.json index ec1f7efd5..2c411a1b0 100644 --- a/tests/approvals/out/unoptimized/do-loops/DoLoopsAlgo.arc56.json +++ b/tests/approvals/out/unoptimized/do-loops/DoLoopsAlgo.arc56.json @@ -141,8 +141,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEb0xvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDgKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEb0xvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDM5MjM5NzkyIC8vIG1ldGhvZCAidGVzdERvKHVpbnQ2NCl1aW50NjQiCiAgICBwdXNoYnl0ZXMgMHhhY2UyZWIyMSAvLyBtZXRob2QgInRlc3REb0JyZWFrKHVpbnQ2NCx1aW50NjQpdWludDY0IgogICAgcHVzaGJ5dGVzIDB4NzhlOGQ1MTYgLy8gbWV0aG9kICJ0ZXN0RG9Db250aW51ZSh1aW50NjQsdWludDY0KXVpbnQ2NCIKICAgIHVuY292ZXIgMwogICAgbWF0Y2ggbWFpbl90ZXN0RG9fcm91dGVAMyBtYWluX3Rlc3REb0JyZWFrX3JvdXRlQDQgbWFpbl90ZXN0RG9Db250aW51ZV9yb3V0ZUA1CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANjoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA3OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERvTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czo6RG9Mb29wc0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTM6CiAgICByZXR1cm4KCm1haW5fdGVzdERvQ29udGludWVfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjIzCiAgICAvLyB0ZXN0RG9Db250aW51ZShzdG9wOiB1aW50NjQsIG1vZDogdWludDY0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgRG9Mb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoyMwogICAgLy8gdGVzdERvQ29udGludWUoc3RvcDogdWludDY0LCBtb2Q6IHVpbnQ2NCkgewogICAgY2FsbHN1YiB0ZXN0RG9Db250aW51ZQogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjpEb0xvb3BzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl90ZXN0RG9CcmVha19yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MTIKICAgIC8vIHRlc3REb0JyZWFrKHN0b3A6IHVpbnQ2NCwgYnJlYWtNb2Q6IHVpbnQ2NCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERvTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MTIKICAgIC8vIHRlc3REb0JyZWFrKHN0b3A6IHVpbnQ2NCwgYnJlYWtNb2Q6IHVpbnQ2NCkgewogICAgY2FsbHN1YiB0ZXN0RG9CcmVhawogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjpEb0xvb3BzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl90ZXN0RG9fcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjUKICAgIC8vIHRlc3REbyhzdG9wOiB1aW50NjQpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEb0xvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjUKICAgIC8vIHRlc3REbyhzdG9wOiB1aW50NjQpIHsKICAgIGNhbGxzdWIgdGVzdERvCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6OkRvTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX2JhcmVfcm91dGluZ0A4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERvTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDkKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERvTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czo6RG9Mb29wc0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCgovLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czo6RG9Mb29wc0FsZ28udGVzdERvKHN0b3A6IHVpbnQ2NCkgLT4gdWludDY0Ogp0ZXN0RG86CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czo1CiAgICAvLyB0ZXN0RG8oc3RvcDogdWludDY0KSB7CiAgICBwcm90byAxIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjYKICAgIC8vIGxldCBpID0gVWludDY0KDApCiAgICBpbnRjXzAgLy8gMAoKdGVzdERvX3doaWxlX3RvcEAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6Ny05CiAgICAvLyBkbyB7CiAgICAvLyAgIGkgKz0gMQogICAgLy8gfSB3aGlsZSAoaSA8IHN0b3ApCiAgICBpbnRjXzEgLy8gMQogICAgYnogdGVzdERvX2FmdGVyX3doaWxlQDUKCnRlc3REb193aGlsZV9ib2R5QDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czo4CiAgICAvLyBpICs9IDEKICAgIGZyYW1lX2RpZyAwCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgZHVwCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjkKICAgIC8vIH0gd2hpbGUgKGkgPCBzdG9wKQogICAgZnJhbWVfZGlnIC0xCiAgICA8CiAgICBibnogdGVzdERvX2FmdGVyX2lmX2Vsc2VANAoKdGVzdERvX2lmX2JvZHlAMzoKCnRlc3REb19ibG9ja0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MTAKICAgIC8vIHJldHVybiBpCiAgICBmcmFtZV9kaWcgMAogICAgc3dhcAogICAgcmV0c3ViCgp0ZXN0RG9fYWZ0ZXJfaWZfZWxzZUA0OgogICAgYiB0ZXN0RG9fd2hpbGVfdG9wQDEKCnRlc3REb19hZnRlcl93aGlsZUA1OgogICAgYiB0ZXN0RG9fYmxvY2tANgoKCi8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjpEb0xvb3BzQWxnby50ZXN0RG9CcmVhayhzdG9wOiB1aW50NjQsIGJyZWFrTW9kOiB1aW50NjQpIC0+IHVpbnQ2NDoKdGVzdERvQnJlYWs6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoxMgogICAgLy8gdGVzdERvQnJlYWsoc3RvcDogdWludDY0LCBicmVha01vZDogdWludDY0KSB7CiAgICBwcm90byAyIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjEzCiAgICAvLyBsZXQgdG90YWwgPSBVaW50NjQoMCkKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoxNAogICAgLy8gbGV0IGkgPSBVaW50NjQoMCkKICAgIGR1cAoKdGVzdERvQnJlYWtfd2hpbGVfdG9wQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoxNS0yMAogICAgLy8gZG8gewogICAgLy8gICBpZiAoaSA+IDAgJiYgaSAlIGJyZWFrTW9kID09PSAwKSBicmVhawogICAgLy8gCiAgICAvLyAgIGkgKz0gMQogICAgLy8gICB0b3RhbCArPSBpCiAgICAvLyB9IHdoaWxlIChpIDwgc3RvcCkKICAgIGludGNfMSAvLyAxCiAgICBieiB0ZXN0RG9CcmVha19hZnRlcl93aGlsZUA4Cgp0ZXN0RG9CcmVha193aGlsZV9ib2R5QDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoxNgogICAgLy8gaWYgKGkgPiAwICYmIGkgJSBicmVha01vZCA9PT0gMCkgYnJlYWsKICAgIGZyYW1lX2RpZyAxCiAgICBpbnRjXzAgLy8gMAogICAgPgogICAgYnogdGVzdERvQnJlYWtfYWZ0ZXJfaWZfZWxzZUA1Cgp0ZXN0RG9CcmVha19hbmRfY29udGRAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjE2CiAgICAvLyBpZiAoaSA+IDAgJiYgaSAlIGJyZWFrTW9kID09PSAwKSBicmVhawogICAgZnJhbWVfZGlnIDEKICAgIGZyYW1lX2RpZyAtMQogICAgJQogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBieiB0ZXN0RG9CcmVha19hZnRlcl9pZl9lbHNlQDUKCnRlc3REb0JyZWFrX2lmX2JvZHlANDoKCnRlc3REb0JyZWFrX2Jsb2NrQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoyMQogICAgLy8gcmV0dXJuIHRvdGFsCiAgICByZXRzdWIKCnRlc3REb0JyZWFrX2FmdGVyX2lmX2Vsc2VANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjE4CiAgICAvLyBpICs9IDEKICAgIGZyYW1lX2RpZyAxCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgZHVwCiAgICBmcmFtZV9idXJ5IDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbCArPSBpCiAgICBmcmFtZV9kaWcgMAogICAgZGlnIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MjAKICAgIC8vIH0gd2hpbGUgKGkgPCBzdG9wKQogICAgZnJhbWVfZGlnIC0yCiAgICA8CiAgICBibnogdGVzdERvQnJlYWtfYWZ0ZXJfaWZfZWxzZUA3Cgp0ZXN0RG9CcmVha19pZl9ib2R5QDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoxNS0yMAogICAgLy8gZG8gewogICAgLy8gICBpZiAoaSA+IDAgJiYgaSAlIGJyZWFrTW9kID09PSAwKSBicmVhawogICAgLy8gCiAgICAvLyAgIGkgKz0gMQogICAgLy8gICB0b3RhbCArPSBpCiAgICAvLyB9IHdoaWxlIChpIDwgc3RvcCkKICAgIGIgdGVzdERvQnJlYWtfYmxvY2tAOQoKdGVzdERvQnJlYWtfYWZ0ZXJfaWZfZWxzZUA3OgogICAgYiB0ZXN0RG9CcmVha193aGlsZV90b3BAMQoKdGVzdERvQnJlYWtfYWZ0ZXJfd2hpbGVAODoKICAgIGIgdGVzdERvQnJlYWtfYmxvY2tAOQoKCi8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjpEb0xvb3BzQWxnby50ZXN0RG9Db250aW51ZShzdG9wOiB1aW50NjQsIG1vZDogdWludDY0KSAtPiB1aW50NjQ6CnRlc3REb0NvbnRpbnVlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MjMKICAgIC8vIHRlc3REb0NvbnRpbnVlKHN0b3A6IHVpbnQ2NCwgbW9kOiB1aW50NjQpIHsKICAgIHByb3RvIDIgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MjQKICAgIC8vIGxldCBpID0gVWludDY0KDApCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MjUKICAgIC8vIGxldCB0b3RhbCA9IFVpbnQ2NCgwKQogICAgZHVwCgp0ZXN0RG9Db250aW51ZV93aGlsZV90b3BAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjI2LTM0CiAgICAvLyBkbyB7CiAgICAvLyAgIGlmIChpID4gMCAmJiBpICUgbW9kID09PSAwKSB7CiAgICAvLyAgICAgdG90YWwgKz0gMgogICAgLy8gICAgIGkgKz0gMQogICAgLy8gICAgIGNvbnRpbnVlCiAgICAvLyAgIH0KICAgIC8vICAgdG90YWwgKz0gMQogICAgLy8gICBpICs9IDEKICAgIC8vIH0gd2hpbGUgKGkgPCBzdG9wKQogICAgaW50Y18xIC8vIDEKICAgIGJ6IHRlc3REb0NvbnRpbnVlX2FmdGVyX3doaWxlQDkKCnRlc3REb0NvbnRpbnVlX3doaWxlX2JvZHlAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjI3CiAgICAvLyBpZiAoaSA+IDAgJiYgaSAlIG1vZCA9PT0gMCkgewogICAgZnJhbWVfZGlnIDAKICAgIGludGNfMCAvLyAwCiAgICA+CiAgICBieiB0ZXN0RG9Db250aW51ZV9hZnRlcl9pZl9lbHNlQDUKCnRlc3REb0NvbnRpbnVlX2FuZF9jb250ZEAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MjcKICAgIC8vIGlmIChpID4gMCAmJiBpICUgbW9kID09PSAwKSB7CiAgICBmcmFtZV9kaWcgMAogICAgZnJhbWVfZGlnIC0xCiAgICAlCiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGJ6IHRlc3REb0NvbnRpbnVlX2FmdGVyX2lmX2Vsc2VANQoKdGVzdERvQ29udGludWVfaWZfYm9keUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MjgKICAgIC8vIHRvdGFsICs9IDIKICAgIGZyYW1lX2RpZyAxCiAgICBwdXNoaW50IDIgLy8gMgogICAgKwogICAgZnJhbWVfYnVyeSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoyOQogICAgLy8gaSArPSAxCiAgICBmcmFtZV9kaWcgMAogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMAoKdGVzdERvQ29udGludWVfYmxvY2tANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjM0CiAgICAvLyB9IHdoaWxlIChpIDwgc3RvcCkKICAgIGZyYW1lX2RpZyAwCiAgICBmcmFtZV9kaWcgLTIKICAgIDwKICAgIGJueiB0ZXN0RG9Db250aW51ZV9hZnRlcl9pZl9lbHNlQDgKCnRlc3REb0NvbnRpbnVlX2lmX2JvZHlANzoKCnRlc3REb0NvbnRpbnVlX2Jsb2NrQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MzUKICAgIC8vIHJldHVybiB0b3RhbAogICAgZnJhbWVfZGlnIDEKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgp0ZXN0RG9Db250aW51ZV9hZnRlcl9pZl9lbHNlQDg6CiAgICBiIHRlc3REb0NvbnRpbnVlX3doaWxlX3RvcEAxCgp0ZXN0RG9Db250aW51ZV9hZnRlcl9pZl9lbHNlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czozMgogICAgLy8gdG90YWwgKz0gMQogICAgZnJhbWVfZGlnIDEKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjMzCiAgICAvLyBpICs9IDEKICAgIGZyYW1lX2RpZyAwCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgZnJhbWVfYnVyeSAwCiAgICBiIHRlc3REb0NvbnRpbnVlX2Jsb2NrQDYKCnRlc3REb0NvbnRpbnVlX2FmdGVyX3doaWxlQDk6CiAgICBiIHRlc3REb0NvbnRpbnVlX2Jsb2NrQDEwCgoKLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6OkRvTG9vcHNBbGdvLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMDoKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEb0xvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDgKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEb0xvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDM5MjM5NzkyIC8vIG1ldGhvZCAidGVzdERvKHVpbnQ2NCl1aW50NjQiCiAgICBwdXNoYnl0ZXMgMHhhY2UyZWIyMSAvLyBtZXRob2QgInRlc3REb0JyZWFrKHVpbnQ2NCx1aW50NjQpdWludDY0IgogICAgcHVzaGJ5dGVzIDB4NzhlOGQ1MTYgLy8gbWV0aG9kICJ0ZXN0RG9Db250aW51ZSh1aW50NjQsdWludDY0KXVpbnQ2NCIKICAgIHVuY292ZXIgMwogICAgbWF0Y2ggbWFpbl90ZXN0RG9fcm91dGVAMyBtYWluX3Rlc3REb0JyZWFrX3JvdXRlQDQgbWFpbl90ZXN0RG9Db250aW51ZV9yb3V0ZUA1CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANjoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA3OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERvTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czo6RG9Mb29wc0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTM6CiAgICByZXR1cm4KCm1haW5fdGVzdERvQ29udGludWVfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjIzCiAgICAvLyB0ZXN0RG9Db250aW51ZShzdG9wOiB1aW50NjQsIG1vZDogdWludDY0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgRG9Mb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoyMwogICAgLy8gdGVzdERvQ29udGludWUoc3RvcDogdWludDY0LCBtb2Q6IHVpbnQ2NCkgewogICAgY2FsbHN1YiB0ZXN0RG9Db250aW51ZQogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjpEb0xvb3BzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl90ZXN0RG9CcmVha19yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MTIKICAgIC8vIHRlc3REb0JyZWFrKHN0b3A6IHVpbnQ2NCwgYnJlYWtNb2Q6IHVpbnQ2NCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERvTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MTIKICAgIC8vIHRlc3REb0JyZWFrKHN0b3A6IHVpbnQ2NCwgYnJlYWtNb2Q6IHVpbnQ2NCkgewogICAgY2FsbHN1YiB0ZXN0RG9CcmVhawogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjpEb0xvb3BzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl90ZXN0RG9fcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjUKICAgIC8vIHRlc3REbyhzdG9wOiB1aW50NjQpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEb0xvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjUKICAgIC8vIHRlc3REbyhzdG9wOiB1aW50NjQpIHsKICAgIGNhbGxzdWIgdGVzdERvCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6OkRvTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX2JhcmVfcm91dGluZ0A4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERvTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDkKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERvTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czo6RG9Mb29wc0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCgovLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czo6RG9Mb29wc0FsZ28udGVzdERvKHN0b3A6IHVpbnQ2NCkgLT4gdWludDY0Ogp0ZXN0RG86CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czo1CiAgICAvLyB0ZXN0RG8oc3RvcDogdWludDY0KSB7CiAgICBwcm90byAxIDEKCnRlc3REb19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6NgogICAgLy8gbGV0IGkgPSBVaW50NjQoMCkKICAgIGludGNfMCAvLyAwCgp0ZXN0RG9fd2hpbGVfdG9wQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czo3LTkKICAgIC8vIGRvIHsKICAgIC8vICAgaSArPSAxCiAgICAvLyB9IHdoaWxlIChpIDwgc3RvcCkKICAgIGludGNfMSAvLyAxCiAgICBieiB0ZXN0RG9fYWZ0ZXJfd2hpbGVANQoKdGVzdERvX3doaWxlX2JvZHlAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjgKICAgIC8vIGkgKz0gMQogICAgZnJhbWVfZGlnIDAKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6OQogICAgLy8gfSB3aGlsZSAoaSA8IHN0b3ApCiAgICBmcmFtZV9kaWcgLTEKICAgIDwKICAgIGJueiB0ZXN0RG9fYWZ0ZXJfaWZfZWxzZUA0Cgp0ZXN0RG9faWZfYm9keUAzOgoKdGVzdERvX2Jsb2NrQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoxMAogICAgLy8gcmV0dXJuIGkKICAgIGZyYW1lX2RpZyAwCiAgICBzd2FwCiAgICByZXRzdWIKCnRlc3REb19hZnRlcl9pZl9lbHNlQDQ6CiAgICBiIHRlc3REb193aGlsZV90b3BAMQoKdGVzdERvX2FmdGVyX3doaWxlQDU6CiAgICBiIHRlc3REb19ibG9ja0A2CgoKLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6OkRvTG9vcHNBbGdvLnRlc3REb0JyZWFrKHN0b3A6IHVpbnQ2NCwgYnJlYWtNb2Q6IHVpbnQ2NCkgLT4gdWludDY0Ogp0ZXN0RG9CcmVhazoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjEyCiAgICAvLyB0ZXN0RG9CcmVhayhzdG9wOiB1aW50NjQsIGJyZWFrTW9kOiB1aW50NjQpIHsKICAgIHByb3RvIDIgMQoKdGVzdERvQnJlYWtfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjEzCiAgICAvLyBsZXQgdG90YWwgPSBVaW50NjQoMCkKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoxNAogICAgLy8gbGV0IGkgPSBVaW50NjQoMCkKICAgIGR1cAoKdGVzdERvQnJlYWtfd2hpbGVfdG9wQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoxNS0yMAogICAgLy8gZG8gewogICAgLy8gICBpZiAoaSA+IDAgJiYgaSAlIGJyZWFrTW9kID09PSAwKSBicmVhawogICAgLy8gCiAgICAvLyAgIGkgKz0gMQogICAgLy8gICB0b3RhbCArPSBpCiAgICAvLyB9IHdoaWxlIChpIDwgc3RvcCkKICAgIGludGNfMSAvLyAxCiAgICBieiB0ZXN0RG9CcmVha19hZnRlcl93aGlsZUA4Cgp0ZXN0RG9CcmVha193aGlsZV9ib2R5QDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoxNgogICAgLy8gaWYgKGkgPiAwICYmIGkgJSBicmVha01vZCA9PT0gMCkgYnJlYWsKICAgIGZyYW1lX2RpZyAxCiAgICBpbnRjXzAgLy8gMAogICAgPgogICAgYnogdGVzdERvQnJlYWtfYWZ0ZXJfaWZfZWxzZUA1Cgp0ZXN0RG9CcmVha19hbmRfY29udGRAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjE2CiAgICAvLyBpZiAoaSA+IDAgJiYgaSAlIGJyZWFrTW9kID09PSAwKSBicmVhawogICAgZnJhbWVfZGlnIDEKICAgIGZyYW1lX2RpZyAtMQogICAgJQogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBieiB0ZXN0RG9CcmVha19hZnRlcl9pZl9lbHNlQDUKCnRlc3REb0JyZWFrX2lmX2JvZHlANDoKCnRlc3REb0JyZWFrX2Jsb2NrQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoyMQogICAgLy8gcmV0dXJuIHRvdGFsCiAgICByZXRzdWIKCnRlc3REb0JyZWFrX2FmdGVyX2lmX2Vsc2VANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjE4CiAgICAvLyBpICs9IDEKICAgIGZyYW1lX2RpZyAxCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgZHVwCiAgICBmcmFtZV9idXJ5IDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbCArPSBpCiAgICBmcmFtZV9kaWcgMAogICAgZGlnIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MjAKICAgIC8vIH0gd2hpbGUgKGkgPCBzdG9wKQogICAgZnJhbWVfZGlnIC0yCiAgICA8CiAgICBibnogdGVzdERvQnJlYWtfYWZ0ZXJfaWZfZWxzZUA3Cgp0ZXN0RG9CcmVha19pZl9ib2R5QDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoxNS0yMAogICAgLy8gZG8gewogICAgLy8gICBpZiAoaSA+IDAgJiYgaSAlIGJyZWFrTW9kID09PSAwKSBicmVhawogICAgLy8gCiAgICAvLyAgIGkgKz0gMQogICAgLy8gICB0b3RhbCArPSBpCiAgICAvLyB9IHdoaWxlIChpIDwgc3RvcCkKICAgIGIgdGVzdERvQnJlYWtfYmxvY2tAOQoKdGVzdERvQnJlYWtfYWZ0ZXJfaWZfZWxzZUA3OgogICAgYiB0ZXN0RG9CcmVha193aGlsZV90b3BAMQoKdGVzdERvQnJlYWtfYWZ0ZXJfd2hpbGVAODoKICAgIGIgdGVzdERvQnJlYWtfYmxvY2tAOQoKCi8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjpEb0xvb3BzQWxnby50ZXN0RG9Db250aW51ZShzdG9wOiB1aW50NjQsIG1vZDogdWludDY0KSAtPiB1aW50NjQ6CnRlc3REb0NvbnRpbnVlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MjMKICAgIC8vIHRlc3REb0NvbnRpbnVlKHN0b3A6IHVpbnQ2NCwgbW9kOiB1aW50NjQpIHsKICAgIHByb3RvIDIgMQoKdGVzdERvQ29udGludWVfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjI0CiAgICAvLyBsZXQgaSA9IFVpbnQ2NCgwKQogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjI1CiAgICAvLyBsZXQgdG90YWwgPSBVaW50NjQoMCkKICAgIGR1cAoKdGVzdERvQ29udGludWVfd2hpbGVfdG9wQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoyNi0zNAogICAgLy8gZG8gewogICAgLy8gICBpZiAoaSA+IDAgJiYgaSAlIG1vZCA9PT0gMCkgewogICAgLy8gICAgIHRvdGFsICs9IDIKICAgIC8vICAgICBpICs9IDEKICAgIC8vICAgICBjb250aW51ZQogICAgLy8gICB9CiAgICAvLyAgIHRvdGFsICs9IDEKICAgIC8vICAgaSArPSAxCiAgICAvLyB9IHdoaWxlIChpIDwgc3RvcCkKICAgIGludGNfMSAvLyAxCiAgICBieiB0ZXN0RG9Db250aW51ZV9hZnRlcl93aGlsZUA5Cgp0ZXN0RG9Db250aW51ZV93aGlsZV9ib2R5QDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czoyNwogICAgLy8gaWYgKGkgPiAwICYmIGkgJSBtb2QgPT09IDApIHsKICAgIGZyYW1lX2RpZyAwCiAgICBpbnRjXzAgLy8gMAogICAgPgogICAgYnogdGVzdERvQ29udGludWVfYWZ0ZXJfaWZfZWxzZUA1Cgp0ZXN0RG9Db250aW51ZV9hbmRfY29udGRAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjI3CiAgICAvLyBpZiAoaSA+IDAgJiYgaSAlIG1vZCA9PT0gMCkgewogICAgZnJhbWVfZGlnIDAKICAgIGZyYW1lX2RpZyAtMQogICAgJQogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBieiB0ZXN0RG9Db250aW51ZV9hZnRlcl9pZl9lbHNlQDUKCnRlc3REb0NvbnRpbnVlX2lmX2JvZHlANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjI4CiAgICAvLyB0b3RhbCArPSAyCiAgICBmcmFtZV9kaWcgMQogICAgcHVzaGludCAyIC8vIDIKICAgICsKICAgIGZyYW1lX2J1cnkgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MjkKICAgIC8vIGkgKz0gMQogICAgZnJhbWVfZGlnIDAKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDAKCnRlc3REb0NvbnRpbnVlX2Jsb2NrQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czozNAogICAgLy8gfSB3aGlsZSAoaSA8IHN0b3ApCiAgICBmcmFtZV9kaWcgMAogICAgZnJhbWVfZGlnIC0yCiAgICA8CiAgICBibnogdGVzdERvQ29udGludWVfYWZ0ZXJfaWZfZWxzZUA4Cgp0ZXN0RG9Db250aW51ZV9pZl9ib2R5QDc6Cgp0ZXN0RG9Db250aW51ZV9ibG9ja0AxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjM1CiAgICAvLyByZXR1cm4gdG90YWwKICAgIGZyYW1lX2RpZyAxCiAgICBmcmFtZV9idXJ5IDAKICAgIHJldHN1YgoKdGVzdERvQ29udGludWVfYWZ0ZXJfaWZfZWxzZUA4OgogICAgYiB0ZXN0RG9Db250aW51ZV93aGlsZV90b3BAMQoKdGVzdERvQ29udGludWVfYWZ0ZXJfaWZfZWxzZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2RvLWxvb3BzLmFsZ28udHM6MzIKICAgIC8vIHRvdGFsICs9IDEKICAgIGZyYW1lX2RpZyAxCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgZnJhbWVfYnVyeSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZG8tbG9vcHMuYWxnby50czozMwogICAgLy8gaSArPSAxCiAgICBmcmFtZV9kaWcgMAogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMAogICAgYiB0ZXN0RG9Db250aW51ZV9ibG9ja0A2Cgp0ZXN0RG9Db250aW51ZV9hZnRlcl93aGlsZUA5OgogICAgYiB0ZXN0RG9Db250aW51ZV9ibG9ja0AxMAoKCi8vIHRlc3RzL2FwcHJvdmFscy9kby1sb29wcy5hbGdvLnRzOjpEb0xvb3BzQWxnby5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAEmAQQVH3x1MRsiE0EAdzYaAIAEOSOXkoAErOLrIYAEeOjVFk8DjgMAPgAgAAIiQzEZIhJEMRgiE0Q2GgEXNhoCF4gArxYoTFCwI0L/4TEZIhJEMRgiE0Q2GgEXNhoCF4gAWRYoTFCwI0L/wzEZIhJEMRgiE0Q2GgEXiAAgFihMULAjQv+pMRkiTI4BAANC/50xGCISRIgApCNC/5KKAQEiI0EAFIsAIwhJjACL/wxAAASLAEyJQv/oQv/2igIBIkkjQQAsiwEiDUEAC4sBi/8YIhJBAAGJiwEjCEmMAYsASwEIjACL/gxAAANC/+hC/9BC/+KKAgEiSSNBAD2LACINQQAniwCL/xgiEkEAHYsBgQIIjAGLACMIjACLAIv+DEAABYsBjACJQv/OiwEjCIwBiwAjCIwAQv/hQv/miQ==", @@ -153,7 +153,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/do-loops/DoLoopsAlgo.clear.teal b/tests/approvals/out/unoptimized/do-loops/DoLoopsAlgo.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/do-loops/DoLoopsAlgo.clear.teal +++ b/tests/approvals/out/unoptimized/do-loops/DoLoopsAlgo.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/ensure-budget/EnsureBudgetContract.approval.teal b/tests/approvals/out/unoptimized/ensure-budget/EnsureBudgetContract.approval.teal index d5ae73920..bd15f877b 100644 --- a/tests/approvals/out/unoptimized/ensure-budget/EnsureBudgetContract.approval.teal +++ b/tests/approvals/out/unoptimized/ensure-budget/EnsureBudgetContract.approval.teal @@ -5,6 +5,8 @@ main: intcblock 100 0 1 bytecblock 0x068101 + +main_block@0: // tests/approvals/ensure-budget.algo.ts:5 // ensureBudget(100) intc_0 // 100 @@ -34,6 +36,8 @@ main: // _puya_lib.util.ensure_budget(required_budget: uint64, fee_source: uint64) -> void: ensure_budget: proto 2 0 + +ensure_budget_block@0: frame_dig -2 pushint 10 // 10 + diff --git a/tests/approvals/out/unoptimized/ensure-budget/EnsureBudgetContract.clear.teal b/tests/approvals/out/unoptimized/ensure-budget/EnsureBudgetContract.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/ensure-budget/EnsureBudgetContract.clear.teal +++ b/tests/approvals/out/unoptimized/ensure-budget/EnsureBudgetContract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/extract-bytes/ExtractBytesAlgo.approval.teal b/tests/approvals/out/unoptimized/extract-bytes/ExtractBytesAlgo.approval.teal index 9da80ddce..c04a8d979 100644 --- a/tests/approvals/out/unoptimized/extract-bytes/ExtractBytesAlgo.approval.teal +++ b/tests/approvals/out/unoptimized/extract-bytes/ExtractBytesAlgo.approval.teal @@ -5,6 +5,8 @@ main: intcblock 2 0 bytecblock "abcdefg" "cdefg" "cd" + +main_block@0: // tests/approvals/extract-bytes.algo.ts:7 // this.test(2, 0) intc_0 // 2 @@ -21,6 +23,8 @@ test: // tests/approvals/extract-bytes.algo.ts:11 // private test(two: uint64, zero: uint64) { proto 2 0 + +test_block@0: // tests/approvals/extract-bytes.algo.ts:12 // assert(two === 2, 'Param two should be 2') frame_dig -2 diff --git a/tests/approvals/out/unoptimized/extract-bytes/ExtractBytesAlgo.clear.teal b/tests/approvals/out/unoptimized/extract-bytes/ExtractBytesAlgo.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/extract-bytes/ExtractBytesAlgo.clear.teal +++ b/tests/approvals/out/unoptimized/extract-bytes/ExtractBytesAlgo.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/for-loops/ForLoopsAlgo.approval.teal b/tests/approvals/out/unoptimized/for-loops/ForLoopsAlgo.approval.teal index f200f8da2..5a9e46c45 100644 --- a/tests/approvals/out/unoptimized/for-loops/ForLoopsAlgo.approval.teal +++ b/tests/approvals/out/unoptimized/for-loops/ForLoopsAlgo.approval.teal @@ -6,6 +6,8 @@ main: intcblock 0 1 bytecblock 0x151f7c75 +main_block@0: + main_block@1: // tests/approvals/for-loops.algo.ts:4 // class ForLoopsAlgo extends Contract { @@ -199,6 +201,8 @@ test_for_loop: // tests/approvals/for-loops.algo.ts:5 // test_for_loop(start: uint64, stop: uint64, step: uint64) { proto 3 1 + +test_for_loop_block@0: // tests/approvals/for-loops.algo.ts:6 // let total = Uint64(0) intc_0 // 0 @@ -241,6 +245,8 @@ test_for_loop_break: // tests/approvals/for-loops.algo.ts:13 // test_for_loop_break(start: uint64, stop: uint64, step: uint64) { proto 3 1 + +test_for_loop_break_block@0: // tests/approvals/for-loops.algo.ts:14 // let total = Uint64(0) intc_0 // 0 @@ -295,6 +301,8 @@ test_for_loop_continue: // tests/approvals/for-loops.algo.ts:24 // test_for_loop_continue(start: uint64, stop: uint64, step: uint64) { proto 3 1 + +test_for_loop_continue_block@0: // tests/approvals/for-loops.algo.ts:25 // let total = Uint64(0) intc_0 // 0 @@ -352,6 +360,8 @@ test_for_loop_labelled: // test_for_loop_labelled(start: uint64, stop: uint64, step: uint64) { proto 3 1 pushbytes "" + +test_for_loop_labelled_block@0: // tests/approvals/for-loops.algo.ts:33 // let total = Uint64(0) intc_0 // 0 @@ -433,4 +443,6 @@ test_for_loop_labelled_after_while@8: // tests/approvals/for-loops.algo.ts::ForLoopsAlgo.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/for-loops/ForLoopsAlgo.arc32.json b/tests/approvals/out/unoptimized/for-loops/ForLoopsAlgo.arc32.json index 8064390c6..1d543e1b4 100644 --- a/tests/approvals/out/unoptimized/for-loops/ForLoopsAlgo.arc32.json +++ b/tests/approvals/out/unoptimized/for-loops/ForLoopsAlgo.arc32.json @@ -22,8 +22,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBGb3JMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A5CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgRm9yTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4Zjg2NTRmNzMgLy8gbWV0aG9kICJ0ZXN0X2Zvcl9sb29wKHVpbnQ2NCx1aW50NjQsdWludDY0KXVpbnQ2NCIKICAgIHB1c2hieXRlcyAweDI4N2Y0YzAyIC8vIG1ldGhvZCAidGVzdF9mb3JfbG9vcF9icmVhayh1aW50NjQsdWludDY0LHVpbnQ2NCl1aW50NjQiCiAgICBwdXNoYnl0ZXMgMHg0YmQ3Nzc4YyAvLyBtZXRob2QgInRlc3RfZm9yX2xvb3BfY29udGludWUodWludDY0LHVpbnQ2NCx1aW50NjQpdWludDY0IgogICAgcHVzaGJ5dGVzIDB4MzM2NzVlMDYgLy8gbWV0aG9kICJ0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkKHVpbnQ2NCx1aW50NjQsdWludDY0KXVpbnQ2NCIKICAgIHVuY292ZXIgNAogICAgbWF0Y2ggbWFpbl90ZXN0X2Zvcl9sb29wX3JvdXRlQDMgbWFpbl90ZXN0X2Zvcl9sb29wX2JyZWFrX3JvdXRlQDQgbWFpbl90ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX3JvdXRlQDUgbWFpbl90ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX3JvdXRlQDYKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA3OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDg6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgRm9yTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNDoKICAgIHJldHVybgoKbWFpbl90ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX3JvdXRlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MzIKICAgIC8vIHRlc3RfZm9yX2xvb3BfbGFiZWxsZWQoc3RhcnQ6IHVpbnQ2NCwgc3RvcDogdWludDY0LCBzdGVwOiB1aW50NjQpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBGb3JMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MzIKICAgIC8vIHRlc3RfZm9yX2xvb3BfbGFiZWxsZWQoc3RhcnQ6IHVpbnQ2NCwgc3RvcDogdWludDY0LCBzdGVwOiB1aW50NjQpIHsKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIGNhbGxzdWIgdGVzdF9mb3JfbG9vcF9sYWJlbGxlZAogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX3Rlc3RfZm9yX2xvb3BfY29udGludWVfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoyNAogICAgLy8gdGVzdF9mb3JfbG9vcF9jb250aW51ZShzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIEZvckxvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoyNAogICAgLy8gdGVzdF9mb3JfbG9vcF9jb250aW51ZShzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgewogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgY2FsbHN1YiB0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fdGVzdF9mb3JfbG9vcF9icmVha19yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjEzCiAgICAvLyB0ZXN0X2Zvcl9sb29wX2JyZWFrKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgRm9yTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjEzCiAgICAvLyB0ZXN0X2Zvcl9sb29wX2JyZWFrKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSB7CiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBjYWxsc3ViIHRlc3RfZm9yX2xvb3BfYnJlYWsKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl90ZXN0X2Zvcl9sb29wX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NQogICAgLy8gdGVzdF9mb3JfbG9vcChzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIEZvckxvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo1CiAgICAvLyB0ZXN0X2Zvcl9sb29wKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSB7CiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBjYWxsc3ViIHRlc3RfZm9yX2xvb3AKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl9iYXJlX3JvdXRpbmdAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBGb3JMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTAKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMjoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEzCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBGb3JMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgoKLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcChzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgLT4gdWludDY0Ogp0ZXN0X2Zvcl9sb29wOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjUKICAgIC8vIHRlc3RfZm9yX2xvb3Aoc3RhcnQ6IHVpbnQ2NCwgc3RvcDogdWludDY0LCBzdGVwOiB1aW50NjQpIHsKICAgIHByb3RvIDMgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjYKICAgIC8vIGxldCB0b3RhbCA9IFVpbnQ2NCgwKQogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo3CiAgICAvLyBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAtMwoKdGVzdF9mb3JfbG9vcF93aGlsZV90b3BAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo3CiAgICAvLyBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAxCiAgICBmcmFtZV9kaWcgLTIKICAgIDwKICAgIGJ6IHRlc3RfZm9yX2xvb3BfYWZ0ZXJfd2hpbGVAMwoKdGVzdF9mb3JfbG9vcF93aGlsZV9ib2R5QDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OAogICAgLy8gdG90YWwgKz0gaQogICAgZnJhbWVfZGlnIDAKICAgIGZyYW1lX2RpZyAxCiAgICBkdXAKICAgIGNvdmVyIDIKICAgICsKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjcKICAgIC8vIGZvciAobGV0IGkgPSBzdGFydDsgaSA8IHN0b3A7IGkgKz0gc3RlcCkgewogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICBmcmFtZV9idXJ5IDEKICAgIGIgdGVzdF9mb3JfbG9vcF93aGlsZV90b3BAMQoKdGVzdF9mb3JfbG9vcF9hZnRlcl93aGlsZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjEwCiAgICAvLyByZXR1cm4gdG90YWwKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3BfYnJlYWsoc3RhcnQ6IHVpbnQ2NCwgc3RvcDogdWludDY0LCBzdGVwOiB1aW50NjQpIC0+IHVpbnQ2NDoKdGVzdF9mb3JfbG9vcF9icmVhazoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoxMwogICAgLy8gdGVzdF9mb3JfbG9vcF9icmVhayhzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgewogICAgcHJvdG8gMyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MTQKICAgIC8vIGxldCB0b3RhbCA9IFVpbnQ2NCgwKQogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoxNQogICAgLy8gZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDwgc3RvcDsgaSArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgLTMKCnRlc3RfZm9yX2xvb3BfYnJlYWtfd2hpbGVfdG9wQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MTUKICAgIC8vIGZvciAobGV0IGkgPSBzdGFydDsgaSA8IHN0b3A7IGkgKz0gc3RlcCkgewogICAgZnJhbWVfZGlnIDEKICAgIGZyYW1lX2RpZyAtMgogICAgPAogICAgYnogdGVzdF9mb3JfbG9vcF9icmVha19hZnRlcl93aGlsZUA1Cgp0ZXN0X2Zvcl9sb29wX2JyZWFrX3doaWxlX2JvZHlAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoxNgogICAgLy8gdG90YWwgKz0gaQogICAgZnJhbWVfZGlnIDAKICAgIGZyYW1lX2RpZyAxCiAgICArCiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjE3CiAgICAvLyBpZiAodG90YWwgPiAxMCkgewogICAgcHVzaGludCAxMCAvLyAxMAogICAgPgogICAgYnogdGVzdF9mb3JfbG9vcF9icmVha19hZnRlcl9pZl9lbHNlQDQKCnRlc3RfZm9yX2xvb3BfYnJlYWtfaWZfYm9keUAzOgoKdGVzdF9mb3JfbG9vcF9icmVha19ibG9ja0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjIxCiAgICAvLyByZXR1cm4gdG90YWwKICAgIHJldHN1YgoKdGVzdF9mb3JfbG9vcF9icmVha19hZnRlcl9pZl9lbHNlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MTUKICAgIC8vIGZvciAobGV0IGkgPSBzdGFydDsgaSA8IHN0b3A7IGkgKz0gc3RlcCkgewogICAgZnJhbWVfZGlnIDEKICAgIGZyYW1lX2RpZyAtMQogICAgKwogICAgZnJhbWVfYnVyeSAxCiAgICBiIHRlc3RfZm9yX2xvb3BfYnJlYWtfd2hpbGVfdG9wQDEKCnRlc3RfZm9yX2xvb3BfYnJlYWtfYWZ0ZXJfd2hpbGVANToKICAgIGIgdGVzdF9mb3JfbG9vcF9icmVha19ibG9ja0A2CgoKLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9jb250aW51ZShzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgLT4gdWludDY0Ogp0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjI0CiAgICAvLyB0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSB7CiAgICBwcm90byAzIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoyNQogICAgLy8gbGV0IHRvdGFsID0gVWludDY0KDApCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjI2CiAgICAvLyBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAtMwoKdGVzdF9mb3JfbG9vcF9jb250aW51ZV93aGlsZV90b3BAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoyNgogICAgLy8gZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDwgc3RvcDsgaSArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgMQogICAgZnJhbWVfZGlnIC0yCiAgICA8CiAgICBieiB0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX2FmdGVyX3doaWxlQDYKCnRlc3RfZm9yX2xvb3BfY29udGludWVfd2hpbGVfYm9keUAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjI3CiAgICAvLyBpZiAoaSAlIDUgPT09IDApIGNvbnRpbnVlCiAgICBmcmFtZV9kaWcgMQogICAgcHVzaGludCA1IC8vIDUKICAgICUKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYnogdGVzdF9mb3JfbG9vcF9jb250aW51ZV9hZnRlcl9pZl9lbHNlQDQKCnRlc3RfZm9yX2xvb3BfY29udGludWVfaWZfYm9keUAzOgoKdGVzdF9mb3JfbG9vcF9jb250aW51ZV9ibG9ja0A1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjI2CiAgICAvLyBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAxCiAgICBmcmFtZV9kaWcgLTEKICAgICsKICAgIGZyYW1lX2J1cnkgMQogICAgYiB0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX3doaWxlX3RvcEAxCgp0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX2FmdGVyX2lmX2Vsc2VANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoyOAogICAgLy8gdG90YWwgKz0gaQogICAgZnJhbWVfZGlnIDAKICAgIGZyYW1lX2RpZyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDAKICAgIGIgdGVzdF9mb3JfbG9vcF9jb250aW51ZV9ibG9ja0A1Cgp0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX2FmdGVyX3doaWxlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MzAKICAgIC8vIHJldHVybiB0b3RhbAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9sYWJlbGxlZChzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgLT4gdWludDY0Ogp0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjMyCiAgICAvLyB0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSB7CiAgICBwcm90byAzIDEKICAgIHB1c2hieXRlcyAiIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjMzCiAgICAvLyBsZXQgdG90YWwgPSBVaW50NjQoMCkKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MzQKICAgIC8vIG91dGVyOiBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAtMwoKdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF93aGlsZV90b3BAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czozNAogICAgLy8gb3V0ZXI6IGZvciAobGV0IGkgPSBzdGFydDsgaSA8IHN0b3A7IGkgKz0gc3RlcCkgewogICAgZnJhbWVfZGlnIDIKICAgIGZyYW1lX2RpZyAtMgogICAgPAogICAgYnogdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF9hZnRlcl93aGlsZUA4Cgp0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX3doaWxlX2JvZHlAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czozNQogICAgLy8gZm9yIChsZXQgaiA9IHN0YXJ0OyBqIDwgc3RvcDsgaiArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgLTMKICAgIGZyYW1lX2J1cnkgMAoKdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF93aGlsZV90b3BAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czozNQogICAgLy8gZm9yIChsZXQgaiA9IHN0YXJ0OyBqIDwgc3RvcDsgaiArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgMAogICAgZnJhbWVfZGlnIC0yCiAgICA8CiAgICBieiB0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX2FmdGVyX3doaWxlQDcKCnRlc3RfZm9yX2xvb3BfbGFiZWxsZWRfd2hpbGVfYm9keUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjM2CiAgICAvLyB0b3RhbCArPSBpICsgagogICAgZnJhbWVfZGlnIDIKICAgIGR1cAogICAgZnJhbWVfZGlnIDAKICAgIGR1cAogICAgY292ZXIgMwogICAgKwogICAgZnJhbWVfZGlnIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjM4CiAgICAvLyBpZiAoaSAqIGogPiBzdG9wKSBicmVhayBvdXRlcgogICAgKgogICAgZnJhbWVfZGlnIC0yCiAgICA+CiAgICBieiB0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX2FmdGVyX2lmX2Vsc2VANgoKdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF9pZl9ib2R5QDU6Cgp0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX2Jsb2NrQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NDEKICAgIC8vIHJldHVybiB0b3RhbAogICAgZnJhbWVfZGlnIDEKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgp0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX2FmdGVyX2lmX2Vsc2VANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czozNQogICAgLy8gZm9yIChsZXQgaiA9IHN0YXJ0OyBqIDwgc3RvcDsgaiArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgMAogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICBmcmFtZV9idXJ5IDAKICAgIGIgdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF93aGlsZV90b3BAMwoKdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF9hZnRlcl93aGlsZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjM0CiAgICAvLyBvdXRlcjogZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDwgc3RvcDsgaSArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgMgogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICBmcmFtZV9idXJ5IDIKICAgIGIgdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF93aGlsZV90b3BAMQoKdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF9hZnRlcl93aGlsZUA4OgogICAgYiB0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX2Jsb2NrQDkKCgovLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMDoKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBGb3JMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A5CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgRm9yTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4Zjg2NTRmNzMgLy8gbWV0aG9kICJ0ZXN0X2Zvcl9sb29wKHVpbnQ2NCx1aW50NjQsdWludDY0KXVpbnQ2NCIKICAgIHB1c2hieXRlcyAweDI4N2Y0YzAyIC8vIG1ldGhvZCAidGVzdF9mb3JfbG9vcF9icmVhayh1aW50NjQsdWludDY0LHVpbnQ2NCl1aW50NjQiCiAgICBwdXNoYnl0ZXMgMHg0YmQ3Nzc4YyAvLyBtZXRob2QgInRlc3RfZm9yX2xvb3BfY29udGludWUodWludDY0LHVpbnQ2NCx1aW50NjQpdWludDY0IgogICAgcHVzaGJ5dGVzIDB4MzM2NzVlMDYgLy8gbWV0aG9kICJ0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkKHVpbnQ2NCx1aW50NjQsdWludDY0KXVpbnQ2NCIKICAgIHVuY292ZXIgNAogICAgbWF0Y2ggbWFpbl90ZXN0X2Zvcl9sb29wX3JvdXRlQDMgbWFpbl90ZXN0X2Zvcl9sb29wX2JyZWFrX3JvdXRlQDQgbWFpbl90ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX3JvdXRlQDUgbWFpbl90ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX3JvdXRlQDYKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA3OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDg6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgRm9yTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNDoKICAgIHJldHVybgoKbWFpbl90ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX3JvdXRlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MzIKICAgIC8vIHRlc3RfZm9yX2xvb3BfbGFiZWxsZWQoc3RhcnQ6IHVpbnQ2NCwgc3RvcDogdWludDY0LCBzdGVwOiB1aW50NjQpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBGb3JMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MzIKICAgIC8vIHRlc3RfZm9yX2xvb3BfbGFiZWxsZWQoc3RhcnQ6IHVpbnQ2NCwgc3RvcDogdWludDY0LCBzdGVwOiB1aW50NjQpIHsKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIGNhbGxzdWIgdGVzdF9mb3JfbG9vcF9sYWJlbGxlZAogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX3Rlc3RfZm9yX2xvb3BfY29udGludWVfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoyNAogICAgLy8gdGVzdF9mb3JfbG9vcF9jb250aW51ZShzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIEZvckxvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoyNAogICAgLy8gdGVzdF9mb3JfbG9vcF9jb250aW51ZShzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgewogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgY2FsbHN1YiB0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fdGVzdF9mb3JfbG9vcF9icmVha19yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjEzCiAgICAvLyB0ZXN0X2Zvcl9sb29wX2JyZWFrKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgRm9yTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjEzCiAgICAvLyB0ZXN0X2Zvcl9sb29wX2JyZWFrKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSB7CiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBjYWxsc3ViIHRlc3RfZm9yX2xvb3BfYnJlYWsKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl90ZXN0X2Zvcl9sb29wX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NQogICAgLy8gdGVzdF9mb3JfbG9vcChzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIEZvckxvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo1CiAgICAvLyB0ZXN0X2Zvcl9sb29wKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSB7CiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBjYWxsc3ViIHRlc3RfZm9yX2xvb3AKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl9iYXJlX3JvdXRpbmdAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBGb3JMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTAKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMjoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEzCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBGb3JMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgoKLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcChzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgLT4gdWludDY0Ogp0ZXN0X2Zvcl9sb29wOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjUKICAgIC8vIHRlc3RfZm9yX2xvb3Aoc3RhcnQ6IHVpbnQ2NCwgc3RvcDogdWludDY0LCBzdGVwOiB1aW50NjQpIHsKICAgIHByb3RvIDMgMQoKdGVzdF9mb3JfbG9vcF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjYKICAgIC8vIGxldCB0b3RhbCA9IFVpbnQ2NCgwKQogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo3CiAgICAvLyBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAtMwoKdGVzdF9mb3JfbG9vcF93aGlsZV90b3BAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo3CiAgICAvLyBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAxCiAgICBmcmFtZV9kaWcgLTIKICAgIDwKICAgIGJ6IHRlc3RfZm9yX2xvb3BfYWZ0ZXJfd2hpbGVAMwoKdGVzdF9mb3JfbG9vcF93aGlsZV9ib2R5QDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OAogICAgLy8gdG90YWwgKz0gaQogICAgZnJhbWVfZGlnIDAKICAgIGZyYW1lX2RpZyAxCiAgICBkdXAKICAgIGNvdmVyIDIKICAgICsKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjcKICAgIC8vIGZvciAobGV0IGkgPSBzdGFydDsgaSA8IHN0b3A7IGkgKz0gc3RlcCkgewogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICBmcmFtZV9idXJ5IDEKICAgIGIgdGVzdF9mb3JfbG9vcF93aGlsZV90b3BAMQoKdGVzdF9mb3JfbG9vcF9hZnRlcl93aGlsZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjEwCiAgICAvLyByZXR1cm4gdG90YWwKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3BfYnJlYWsoc3RhcnQ6IHVpbnQ2NCwgc3RvcDogdWludDY0LCBzdGVwOiB1aW50NjQpIC0+IHVpbnQ2NDoKdGVzdF9mb3JfbG9vcF9icmVhazoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoxMwogICAgLy8gdGVzdF9mb3JfbG9vcF9icmVhayhzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgewogICAgcHJvdG8gMyAxCgp0ZXN0X2Zvcl9sb29wX2JyZWFrX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MTQKICAgIC8vIGxldCB0b3RhbCA9IFVpbnQ2NCgwKQogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoxNQogICAgLy8gZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDwgc3RvcDsgaSArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgLTMKCnRlc3RfZm9yX2xvb3BfYnJlYWtfd2hpbGVfdG9wQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MTUKICAgIC8vIGZvciAobGV0IGkgPSBzdGFydDsgaSA8IHN0b3A7IGkgKz0gc3RlcCkgewogICAgZnJhbWVfZGlnIDEKICAgIGZyYW1lX2RpZyAtMgogICAgPAogICAgYnogdGVzdF9mb3JfbG9vcF9icmVha19hZnRlcl93aGlsZUA1Cgp0ZXN0X2Zvcl9sb29wX2JyZWFrX3doaWxlX2JvZHlAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoxNgogICAgLy8gdG90YWwgKz0gaQogICAgZnJhbWVfZGlnIDAKICAgIGZyYW1lX2RpZyAxCiAgICArCiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjE3CiAgICAvLyBpZiAodG90YWwgPiAxMCkgewogICAgcHVzaGludCAxMCAvLyAxMAogICAgPgogICAgYnogdGVzdF9mb3JfbG9vcF9icmVha19hZnRlcl9pZl9lbHNlQDQKCnRlc3RfZm9yX2xvb3BfYnJlYWtfaWZfYm9keUAzOgoKdGVzdF9mb3JfbG9vcF9icmVha19ibG9ja0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjIxCiAgICAvLyByZXR1cm4gdG90YWwKICAgIHJldHN1YgoKdGVzdF9mb3JfbG9vcF9icmVha19hZnRlcl9pZl9lbHNlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MTUKICAgIC8vIGZvciAobGV0IGkgPSBzdGFydDsgaSA8IHN0b3A7IGkgKz0gc3RlcCkgewogICAgZnJhbWVfZGlnIDEKICAgIGZyYW1lX2RpZyAtMQogICAgKwogICAgZnJhbWVfYnVyeSAxCiAgICBiIHRlc3RfZm9yX2xvb3BfYnJlYWtfd2hpbGVfdG9wQDEKCnRlc3RfZm9yX2xvb3BfYnJlYWtfYWZ0ZXJfd2hpbGVANToKICAgIGIgdGVzdF9mb3JfbG9vcF9icmVha19ibG9ja0A2CgoKLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9jb250aW51ZShzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgLT4gdWludDY0Ogp0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjI0CiAgICAvLyB0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSB7CiAgICBwcm90byAzIDEKCnRlc3RfZm9yX2xvb3BfY29udGludWVfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoyNQogICAgLy8gbGV0IHRvdGFsID0gVWludDY0KDApCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjI2CiAgICAvLyBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAtMwoKdGVzdF9mb3JfbG9vcF9jb250aW51ZV93aGlsZV90b3BAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoyNgogICAgLy8gZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDwgc3RvcDsgaSArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgMQogICAgZnJhbWVfZGlnIC0yCiAgICA8CiAgICBieiB0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX2FmdGVyX3doaWxlQDYKCnRlc3RfZm9yX2xvb3BfY29udGludWVfd2hpbGVfYm9keUAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjI3CiAgICAvLyBpZiAoaSAlIDUgPT09IDApIGNvbnRpbnVlCiAgICBmcmFtZV9kaWcgMQogICAgcHVzaGludCA1IC8vIDUKICAgICUKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYnogdGVzdF9mb3JfbG9vcF9jb250aW51ZV9hZnRlcl9pZl9lbHNlQDQKCnRlc3RfZm9yX2xvb3BfY29udGludWVfaWZfYm9keUAzOgoKdGVzdF9mb3JfbG9vcF9jb250aW51ZV9ibG9ja0A1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjI2CiAgICAvLyBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAxCiAgICBmcmFtZV9kaWcgLTEKICAgICsKICAgIGZyYW1lX2J1cnkgMQogICAgYiB0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX3doaWxlX3RvcEAxCgp0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX2FmdGVyX2lmX2Vsc2VANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoyOAogICAgLy8gdG90YWwgKz0gaQogICAgZnJhbWVfZGlnIDAKICAgIGZyYW1lX2RpZyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDAKICAgIGIgdGVzdF9mb3JfbG9vcF9jb250aW51ZV9ibG9ja0A1Cgp0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX2FmdGVyX3doaWxlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MzAKICAgIC8vIHJldHVybiB0b3RhbAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9sYWJlbGxlZChzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgLT4gdWludDY0Ogp0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjMyCiAgICAvLyB0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSB7CiAgICBwcm90byAzIDEKICAgIHB1c2hieXRlcyAiIgoKdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjMzCiAgICAvLyBsZXQgdG90YWwgPSBVaW50NjQoMCkKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MzQKICAgIC8vIG91dGVyOiBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAtMwoKdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF93aGlsZV90b3BAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czozNAogICAgLy8gb3V0ZXI6IGZvciAobGV0IGkgPSBzdGFydDsgaSA8IHN0b3A7IGkgKz0gc3RlcCkgewogICAgZnJhbWVfZGlnIDIKICAgIGZyYW1lX2RpZyAtMgogICAgPAogICAgYnogdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF9hZnRlcl93aGlsZUA4Cgp0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX3doaWxlX2JvZHlAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czozNQogICAgLy8gZm9yIChsZXQgaiA9IHN0YXJ0OyBqIDwgc3RvcDsgaiArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgLTMKICAgIGZyYW1lX2J1cnkgMAoKdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF93aGlsZV90b3BAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czozNQogICAgLy8gZm9yIChsZXQgaiA9IHN0YXJ0OyBqIDwgc3RvcDsgaiArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgMAogICAgZnJhbWVfZGlnIC0yCiAgICA8CiAgICBieiB0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX2FmdGVyX3doaWxlQDcKCnRlc3RfZm9yX2xvb3BfbGFiZWxsZWRfd2hpbGVfYm9keUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjM2CiAgICAvLyB0b3RhbCArPSBpICsgagogICAgZnJhbWVfZGlnIDIKICAgIGR1cAogICAgZnJhbWVfZGlnIDAKICAgIGR1cAogICAgY292ZXIgMwogICAgKwogICAgZnJhbWVfZGlnIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjM4CiAgICAvLyBpZiAoaSAqIGogPiBzdG9wKSBicmVhayBvdXRlcgogICAgKgogICAgZnJhbWVfZGlnIC0yCiAgICA+CiAgICBieiB0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX2FmdGVyX2lmX2Vsc2VANgoKdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF9pZl9ib2R5QDU6Cgp0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX2Jsb2NrQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NDEKICAgIC8vIHJldHVybiB0b3RhbAogICAgZnJhbWVfZGlnIDEKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgp0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX2FmdGVyX2lmX2Vsc2VANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czozNQogICAgLy8gZm9yIChsZXQgaiA9IHN0YXJ0OyBqIDwgc3RvcDsgaiArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgMAogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICBmcmFtZV9idXJ5IDAKICAgIGIgdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF93aGlsZV90b3BAMwoKdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF9hZnRlcl93aGlsZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjM0CiAgICAvLyBvdXRlcjogZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDwgc3RvcDsgaSArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgMgogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICBmcmFtZV9idXJ5IDIKICAgIGIgdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF93aGlsZV90b3BAMQoKdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF9hZnRlcl93aGlsZUA4OgogICAgYiB0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX2Jsb2NrQDkKCgovLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/for-loops/ForLoopsAlgo.arc56.json b/tests/approvals/out/unoptimized/for-loops/ForLoopsAlgo.arc56.json index e252c3c10..8f39a9bb7 100644 --- a/tests/approvals/out/unoptimized/for-loops/ForLoopsAlgo.arc56.json +++ b/tests/approvals/out/unoptimized/for-loops/ForLoopsAlgo.arc56.json @@ -188,8 +188,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBGb3JMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A5CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgRm9yTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4Zjg2NTRmNzMgLy8gbWV0aG9kICJ0ZXN0X2Zvcl9sb29wKHVpbnQ2NCx1aW50NjQsdWludDY0KXVpbnQ2NCIKICAgIHB1c2hieXRlcyAweDI4N2Y0YzAyIC8vIG1ldGhvZCAidGVzdF9mb3JfbG9vcF9icmVhayh1aW50NjQsdWludDY0LHVpbnQ2NCl1aW50NjQiCiAgICBwdXNoYnl0ZXMgMHg0YmQ3Nzc4YyAvLyBtZXRob2QgInRlc3RfZm9yX2xvb3BfY29udGludWUodWludDY0LHVpbnQ2NCx1aW50NjQpdWludDY0IgogICAgcHVzaGJ5dGVzIDB4MzM2NzVlMDYgLy8gbWV0aG9kICJ0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkKHVpbnQ2NCx1aW50NjQsdWludDY0KXVpbnQ2NCIKICAgIHVuY292ZXIgNAogICAgbWF0Y2ggbWFpbl90ZXN0X2Zvcl9sb29wX3JvdXRlQDMgbWFpbl90ZXN0X2Zvcl9sb29wX2JyZWFrX3JvdXRlQDQgbWFpbl90ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX3JvdXRlQDUgbWFpbl90ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX3JvdXRlQDYKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA3OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDg6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgRm9yTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNDoKICAgIHJldHVybgoKbWFpbl90ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX3JvdXRlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MzIKICAgIC8vIHRlc3RfZm9yX2xvb3BfbGFiZWxsZWQoc3RhcnQ6IHVpbnQ2NCwgc3RvcDogdWludDY0LCBzdGVwOiB1aW50NjQpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBGb3JMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MzIKICAgIC8vIHRlc3RfZm9yX2xvb3BfbGFiZWxsZWQoc3RhcnQ6IHVpbnQ2NCwgc3RvcDogdWludDY0LCBzdGVwOiB1aW50NjQpIHsKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIGNhbGxzdWIgdGVzdF9mb3JfbG9vcF9sYWJlbGxlZAogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX3Rlc3RfZm9yX2xvb3BfY29udGludWVfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoyNAogICAgLy8gdGVzdF9mb3JfbG9vcF9jb250aW51ZShzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIEZvckxvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoyNAogICAgLy8gdGVzdF9mb3JfbG9vcF9jb250aW51ZShzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgewogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgY2FsbHN1YiB0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fdGVzdF9mb3JfbG9vcF9icmVha19yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjEzCiAgICAvLyB0ZXN0X2Zvcl9sb29wX2JyZWFrKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgRm9yTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjEzCiAgICAvLyB0ZXN0X2Zvcl9sb29wX2JyZWFrKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSB7CiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBjYWxsc3ViIHRlc3RfZm9yX2xvb3BfYnJlYWsKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl90ZXN0X2Zvcl9sb29wX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NQogICAgLy8gdGVzdF9mb3JfbG9vcChzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIEZvckxvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo1CiAgICAvLyB0ZXN0X2Zvcl9sb29wKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSB7CiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBjYWxsc3ViIHRlc3RfZm9yX2xvb3AKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl9iYXJlX3JvdXRpbmdAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBGb3JMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTAKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMjoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEzCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBGb3JMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgoKLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcChzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgLT4gdWludDY0Ogp0ZXN0X2Zvcl9sb29wOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjUKICAgIC8vIHRlc3RfZm9yX2xvb3Aoc3RhcnQ6IHVpbnQ2NCwgc3RvcDogdWludDY0LCBzdGVwOiB1aW50NjQpIHsKICAgIHByb3RvIDMgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjYKICAgIC8vIGxldCB0b3RhbCA9IFVpbnQ2NCgwKQogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo3CiAgICAvLyBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAtMwoKdGVzdF9mb3JfbG9vcF93aGlsZV90b3BAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo3CiAgICAvLyBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAxCiAgICBmcmFtZV9kaWcgLTIKICAgIDwKICAgIGJ6IHRlc3RfZm9yX2xvb3BfYWZ0ZXJfd2hpbGVAMwoKdGVzdF9mb3JfbG9vcF93aGlsZV9ib2R5QDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OAogICAgLy8gdG90YWwgKz0gaQogICAgZnJhbWVfZGlnIDAKICAgIGZyYW1lX2RpZyAxCiAgICBkdXAKICAgIGNvdmVyIDIKICAgICsKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjcKICAgIC8vIGZvciAobGV0IGkgPSBzdGFydDsgaSA8IHN0b3A7IGkgKz0gc3RlcCkgewogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICBmcmFtZV9idXJ5IDEKICAgIGIgdGVzdF9mb3JfbG9vcF93aGlsZV90b3BAMQoKdGVzdF9mb3JfbG9vcF9hZnRlcl93aGlsZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjEwCiAgICAvLyByZXR1cm4gdG90YWwKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3BfYnJlYWsoc3RhcnQ6IHVpbnQ2NCwgc3RvcDogdWludDY0LCBzdGVwOiB1aW50NjQpIC0+IHVpbnQ2NDoKdGVzdF9mb3JfbG9vcF9icmVhazoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoxMwogICAgLy8gdGVzdF9mb3JfbG9vcF9icmVhayhzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgewogICAgcHJvdG8gMyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MTQKICAgIC8vIGxldCB0b3RhbCA9IFVpbnQ2NCgwKQogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoxNQogICAgLy8gZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDwgc3RvcDsgaSArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgLTMKCnRlc3RfZm9yX2xvb3BfYnJlYWtfd2hpbGVfdG9wQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MTUKICAgIC8vIGZvciAobGV0IGkgPSBzdGFydDsgaSA8IHN0b3A7IGkgKz0gc3RlcCkgewogICAgZnJhbWVfZGlnIDEKICAgIGZyYW1lX2RpZyAtMgogICAgPAogICAgYnogdGVzdF9mb3JfbG9vcF9icmVha19hZnRlcl93aGlsZUA1Cgp0ZXN0X2Zvcl9sb29wX2JyZWFrX3doaWxlX2JvZHlAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoxNgogICAgLy8gdG90YWwgKz0gaQogICAgZnJhbWVfZGlnIDAKICAgIGZyYW1lX2RpZyAxCiAgICArCiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjE3CiAgICAvLyBpZiAodG90YWwgPiAxMCkgewogICAgcHVzaGludCAxMCAvLyAxMAogICAgPgogICAgYnogdGVzdF9mb3JfbG9vcF9icmVha19hZnRlcl9pZl9lbHNlQDQKCnRlc3RfZm9yX2xvb3BfYnJlYWtfaWZfYm9keUAzOgoKdGVzdF9mb3JfbG9vcF9icmVha19ibG9ja0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjIxCiAgICAvLyByZXR1cm4gdG90YWwKICAgIHJldHN1YgoKdGVzdF9mb3JfbG9vcF9icmVha19hZnRlcl9pZl9lbHNlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MTUKICAgIC8vIGZvciAobGV0IGkgPSBzdGFydDsgaSA8IHN0b3A7IGkgKz0gc3RlcCkgewogICAgZnJhbWVfZGlnIDEKICAgIGZyYW1lX2RpZyAtMQogICAgKwogICAgZnJhbWVfYnVyeSAxCiAgICBiIHRlc3RfZm9yX2xvb3BfYnJlYWtfd2hpbGVfdG9wQDEKCnRlc3RfZm9yX2xvb3BfYnJlYWtfYWZ0ZXJfd2hpbGVANToKICAgIGIgdGVzdF9mb3JfbG9vcF9icmVha19ibG9ja0A2CgoKLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9jb250aW51ZShzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgLT4gdWludDY0Ogp0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjI0CiAgICAvLyB0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSB7CiAgICBwcm90byAzIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoyNQogICAgLy8gbGV0IHRvdGFsID0gVWludDY0KDApCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjI2CiAgICAvLyBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAtMwoKdGVzdF9mb3JfbG9vcF9jb250aW51ZV93aGlsZV90b3BAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoyNgogICAgLy8gZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDwgc3RvcDsgaSArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgMQogICAgZnJhbWVfZGlnIC0yCiAgICA8CiAgICBieiB0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX2FmdGVyX3doaWxlQDYKCnRlc3RfZm9yX2xvb3BfY29udGludWVfd2hpbGVfYm9keUAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjI3CiAgICAvLyBpZiAoaSAlIDUgPT09IDApIGNvbnRpbnVlCiAgICBmcmFtZV9kaWcgMQogICAgcHVzaGludCA1IC8vIDUKICAgICUKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYnogdGVzdF9mb3JfbG9vcF9jb250aW51ZV9hZnRlcl9pZl9lbHNlQDQKCnRlc3RfZm9yX2xvb3BfY29udGludWVfaWZfYm9keUAzOgoKdGVzdF9mb3JfbG9vcF9jb250aW51ZV9ibG9ja0A1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjI2CiAgICAvLyBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAxCiAgICBmcmFtZV9kaWcgLTEKICAgICsKICAgIGZyYW1lX2J1cnkgMQogICAgYiB0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX3doaWxlX3RvcEAxCgp0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX2FmdGVyX2lmX2Vsc2VANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoyOAogICAgLy8gdG90YWwgKz0gaQogICAgZnJhbWVfZGlnIDAKICAgIGZyYW1lX2RpZyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDAKICAgIGIgdGVzdF9mb3JfbG9vcF9jb250aW51ZV9ibG9ja0A1Cgp0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX2FmdGVyX3doaWxlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MzAKICAgIC8vIHJldHVybiB0b3RhbAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9sYWJlbGxlZChzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgLT4gdWludDY0Ogp0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjMyCiAgICAvLyB0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSB7CiAgICBwcm90byAzIDEKICAgIHB1c2hieXRlcyAiIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjMzCiAgICAvLyBsZXQgdG90YWwgPSBVaW50NjQoMCkKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MzQKICAgIC8vIG91dGVyOiBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAtMwoKdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF93aGlsZV90b3BAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czozNAogICAgLy8gb3V0ZXI6IGZvciAobGV0IGkgPSBzdGFydDsgaSA8IHN0b3A7IGkgKz0gc3RlcCkgewogICAgZnJhbWVfZGlnIDIKICAgIGZyYW1lX2RpZyAtMgogICAgPAogICAgYnogdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF9hZnRlcl93aGlsZUA4Cgp0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX3doaWxlX2JvZHlAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czozNQogICAgLy8gZm9yIChsZXQgaiA9IHN0YXJ0OyBqIDwgc3RvcDsgaiArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgLTMKICAgIGZyYW1lX2J1cnkgMAoKdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF93aGlsZV90b3BAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czozNQogICAgLy8gZm9yIChsZXQgaiA9IHN0YXJ0OyBqIDwgc3RvcDsgaiArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgMAogICAgZnJhbWVfZGlnIC0yCiAgICA8CiAgICBieiB0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX2FmdGVyX3doaWxlQDcKCnRlc3RfZm9yX2xvb3BfbGFiZWxsZWRfd2hpbGVfYm9keUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjM2CiAgICAvLyB0b3RhbCArPSBpICsgagogICAgZnJhbWVfZGlnIDIKICAgIGR1cAogICAgZnJhbWVfZGlnIDAKICAgIGR1cAogICAgY292ZXIgMwogICAgKwogICAgZnJhbWVfZGlnIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjM4CiAgICAvLyBpZiAoaSAqIGogPiBzdG9wKSBicmVhayBvdXRlcgogICAgKgogICAgZnJhbWVfZGlnIC0yCiAgICA+CiAgICBieiB0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX2FmdGVyX2lmX2Vsc2VANgoKdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF9pZl9ib2R5QDU6Cgp0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX2Jsb2NrQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NDEKICAgIC8vIHJldHVybiB0b3RhbAogICAgZnJhbWVfZGlnIDEKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgp0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX2FmdGVyX2lmX2Vsc2VANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czozNQogICAgLy8gZm9yIChsZXQgaiA9IHN0YXJ0OyBqIDwgc3RvcDsgaiArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgMAogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICBmcmFtZV9idXJ5IDAKICAgIGIgdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF93aGlsZV90b3BAMwoKdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF9hZnRlcl93aGlsZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjM0CiAgICAvLyBvdXRlcjogZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDwgc3RvcDsgaSArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgMgogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICBmcmFtZV9idXJ5IDIKICAgIGIgdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF93aGlsZV90b3BAMQoKdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF9hZnRlcl93aGlsZUA4OgogICAgYiB0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX2Jsb2NrQDkKCgovLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMDoKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBGb3JMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A5CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgRm9yTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4Zjg2NTRmNzMgLy8gbWV0aG9kICJ0ZXN0X2Zvcl9sb29wKHVpbnQ2NCx1aW50NjQsdWludDY0KXVpbnQ2NCIKICAgIHB1c2hieXRlcyAweDI4N2Y0YzAyIC8vIG1ldGhvZCAidGVzdF9mb3JfbG9vcF9icmVhayh1aW50NjQsdWludDY0LHVpbnQ2NCl1aW50NjQiCiAgICBwdXNoYnl0ZXMgMHg0YmQ3Nzc4YyAvLyBtZXRob2QgInRlc3RfZm9yX2xvb3BfY29udGludWUodWludDY0LHVpbnQ2NCx1aW50NjQpdWludDY0IgogICAgcHVzaGJ5dGVzIDB4MzM2NzVlMDYgLy8gbWV0aG9kICJ0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkKHVpbnQ2NCx1aW50NjQsdWludDY0KXVpbnQ2NCIKICAgIHVuY292ZXIgNAogICAgbWF0Y2ggbWFpbl90ZXN0X2Zvcl9sb29wX3JvdXRlQDMgbWFpbl90ZXN0X2Zvcl9sb29wX2JyZWFrX3JvdXRlQDQgbWFpbl90ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX3JvdXRlQDUgbWFpbl90ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX3JvdXRlQDYKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA3OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDg6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgRm9yTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNDoKICAgIHJldHVybgoKbWFpbl90ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX3JvdXRlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MzIKICAgIC8vIHRlc3RfZm9yX2xvb3BfbGFiZWxsZWQoc3RhcnQ6IHVpbnQ2NCwgc3RvcDogdWludDY0LCBzdGVwOiB1aW50NjQpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBGb3JMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MzIKICAgIC8vIHRlc3RfZm9yX2xvb3BfbGFiZWxsZWQoc3RhcnQ6IHVpbnQ2NCwgc3RvcDogdWludDY0LCBzdGVwOiB1aW50NjQpIHsKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIGNhbGxzdWIgdGVzdF9mb3JfbG9vcF9sYWJlbGxlZAogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX3Rlc3RfZm9yX2xvb3BfY29udGludWVfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoyNAogICAgLy8gdGVzdF9mb3JfbG9vcF9jb250aW51ZShzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIEZvckxvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoyNAogICAgLy8gdGVzdF9mb3JfbG9vcF9jb250aW51ZShzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgewogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgY2FsbHN1YiB0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fdGVzdF9mb3JfbG9vcF9icmVha19yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjEzCiAgICAvLyB0ZXN0X2Zvcl9sb29wX2JyZWFrKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgRm9yTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjEzCiAgICAvLyB0ZXN0X2Zvcl9sb29wX2JyZWFrKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSB7CiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBjYWxsc3ViIHRlc3RfZm9yX2xvb3BfYnJlYWsKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl90ZXN0X2Zvcl9sb29wX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NQogICAgLy8gdGVzdF9mb3JfbG9vcChzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIEZvckxvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo1CiAgICAvLyB0ZXN0X2Zvcl9sb29wKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSB7CiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBjYWxsc3ViIHRlc3RfZm9yX2xvb3AKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl9iYXJlX3JvdXRpbmdAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBGb3JMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTAKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMjoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEzCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBGb3JMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgoKLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcChzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgLT4gdWludDY0Ogp0ZXN0X2Zvcl9sb29wOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjUKICAgIC8vIHRlc3RfZm9yX2xvb3Aoc3RhcnQ6IHVpbnQ2NCwgc3RvcDogdWludDY0LCBzdGVwOiB1aW50NjQpIHsKICAgIHByb3RvIDMgMQoKdGVzdF9mb3JfbG9vcF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjYKICAgIC8vIGxldCB0b3RhbCA9IFVpbnQ2NCgwKQogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo3CiAgICAvLyBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAtMwoKdGVzdF9mb3JfbG9vcF93aGlsZV90b3BAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo3CiAgICAvLyBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAxCiAgICBmcmFtZV9kaWcgLTIKICAgIDwKICAgIGJ6IHRlc3RfZm9yX2xvb3BfYWZ0ZXJfd2hpbGVAMwoKdGVzdF9mb3JfbG9vcF93aGlsZV9ib2R5QDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OAogICAgLy8gdG90YWwgKz0gaQogICAgZnJhbWVfZGlnIDAKICAgIGZyYW1lX2RpZyAxCiAgICBkdXAKICAgIGNvdmVyIDIKICAgICsKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjcKICAgIC8vIGZvciAobGV0IGkgPSBzdGFydDsgaSA8IHN0b3A7IGkgKz0gc3RlcCkgewogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICBmcmFtZV9idXJ5IDEKICAgIGIgdGVzdF9mb3JfbG9vcF93aGlsZV90b3BAMQoKdGVzdF9mb3JfbG9vcF9hZnRlcl93aGlsZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjEwCiAgICAvLyByZXR1cm4gdG90YWwKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3BfYnJlYWsoc3RhcnQ6IHVpbnQ2NCwgc3RvcDogdWludDY0LCBzdGVwOiB1aW50NjQpIC0+IHVpbnQ2NDoKdGVzdF9mb3JfbG9vcF9icmVhazoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoxMwogICAgLy8gdGVzdF9mb3JfbG9vcF9icmVhayhzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgewogICAgcHJvdG8gMyAxCgp0ZXN0X2Zvcl9sb29wX2JyZWFrX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MTQKICAgIC8vIGxldCB0b3RhbCA9IFVpbnQ2NCgwKQogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoxNQogICAgLy8gZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDwgc3RvcDsgaSArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgLTMKCnRlc3RfZm9yX2xvb3BfYnJlYWtfd2hpbGVfdG9wQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MTUKICAgIC8vIGZvciAobGV0IGkgPSBzdGFydDsgaSA8IHN0b3A7IGkgKz0gc3RlcCkgewogICAgZnJhbWVfZGlnIDEKICAgIGZyYW1lX2RpZyAtMgogICAgPAogICAgYnogdGVzdF9mb3JfbG9vcF9icmVha19hZnRlcl93aGlsZUA1Cgp0ZXN0X2Zvcl9sb29wX2JyZWFrX3doaWxlX2JvZHlAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoxNgogICAgLy8gdG90YWwgKz0gaQogICAgZnJhbWVfZGlnIDAKICAgIGZyYW1lX2RpZyAxCiAgICArCiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjE3CiAgICAvLyBpZiAodG90YWwgPiAxMCkgewogICAgcHVzaGludCAxMCAvLyAxMAogICAgPgogICAgYnogdGVzdF9mb3JfbG9vcF9icmVha19hZnRlcl9pZl9lbHNlQDQKCnRlc3RfZm9yX2xvb3BfYnJlYWtfaWZfYm9keUAzOgoKdGVzdF9mb3JfbG9vcF9icmVha19ibG9ja0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjIxCiAgICAvLyByZXR1cm4gdG90YWwKICAgIHJldHN1YgoKdGVzdF9mb3JfbG9vcF9icmVha19hZnRlcl9pZl9lbHNlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MTUKICAgIC8vIGZvciAobGV0IGkgPSBzdGFydDsgaSA8IHN0b3A7IGkgKz0gc3RlcCkgewogICAgZnJhbWVfZGlnIDEKICAgIGZyYW1lX2RpZyAtMQogICAgKwogICAgZnJhbWVfYnVyeSAxCiAgICBiIHRlc3RfZm9yX2xvb3BfYnJlYWtfd2hpbGVfdG9wQDEKCnRlc3RfZm9yX2xvb3BfYnJlYWtfYWZ0ZXJfd2hpbGVANToKICAgIGIgdGVzdF9mb3JfbG9vcF9icmVha19ibG9ja0A2CgoKLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9jb250aW51ZShzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgLT4gdWludDY0Ogp0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjI0CiAgICAvLyB0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSB7CiAgICBwcm90byAzIDEKCnRlc3RfZm9yX2xvb3BfY29udGludWVfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoyNQogICAgLy8gbGV0IHRvdGFsID0gVWludDY0KDApCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjI2CiAgICAvLyBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAtMwoKdGVzdF9mb3JfbG9vcF9jb250aW51ZV93aGlsZV90b3BAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoyNgogICAgLy8gZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDwgc3RvcDsgaSArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgMQogICAgZnJhbWVfZGlnIC0yCiAgICA8CiAgICBieiB0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX2FmdGVyX3doaWxlQDYKCnRlc3RfZm9yX2xvb3BfY29udGludWVfd2hpbGVfYm9keUAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjI3CiAgICAvLyBpZiAoaSAlIDUgPT09IDApIGNvbnRpbnVlCiAgICBmcmFtZV9kaWcgMQogICAgcHVzaGludCA1IC8vIDUKICAgICUKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYnogdGVzdF9mb3JfbG9vcF9jb250aW51ZV9hZnRlcl9pZl9lbHNlQDQKCnRlc3RfZm9yX2xvb3BfY29udGludWVfaWZfYm9keUAzOgoKdGVzdF9mb3JfbG9vcF9jb250aW51ZV9ibG9ja0A1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjI2CiAgICAvLyBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAxCiAgICBmcmFtZV9kaWcgLTEKICAgICsKICAgIGZyYW1lX2J1cnkgMQogICAgYiB0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX3doaWxlX3RvcEAxCgp0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX2FmdGVyX2lmX2Vsc2VANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoyOAogICAgLy8gdG90YWwgKz0gaQogICAgZnJhbWVfZGlnIDAKICAgIGZyYW1lX2RpZyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDAKICAgIGIgdGVzdF9mb3JfbG9vcF9jb250aW51ZV9ibG9ja0A1Cgp0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX2FmdGVyX3doaWxlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MzAKICAgIC8vIHJldHVybiB0b3RhbAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9sYWJlbGxlZChzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgLT4gdWludDY0Ogp0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjMyCiAgICAvLyB0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSB7CiAgICBwcm90byAzIDEKICAgIHB1c2hieXRlcyAiIgoKdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjMzCiAgICAvLyBsZXQgdG90YWwgPSBVaW50NjQoMCkKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MzQKICAgIC8vIG91dGVyOiBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAtMwoKdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF93aGlsZV90b3BAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czozNAogICAgLy8gb3V0ZXI6IGZvciAobGV0IGkgPSBzdGFydDsgaSA8IHN0b3A7IGkgKz0gc3RlcCkgewogICAgZnJhbWVfZGlnIDIKICAgIGZyYW1lX2RpZyAtMgogICAgPAogICAgYnogdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF9hZnRlcl93aGlsZUA4Cgp0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX3doaWxlX2JvZHlAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czozNQogICAgLy8gZm9yIChsZXQgaiA9IHN0YXJ0OyBqIDwgc3RvcDsgaiArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgLTMKICAgIGZyYW1lX2J1cnkgMAoKdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF93aGlsZV90b3BAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czozNQogICAgLy8gZm9yIChsZXQgaiA9IHN0YXJ0OyBqIDwgc3RvcDsgaiArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgMAogICAgZnJhbWVfZGlnIC0yCiAgICA8CiAgICBieiB0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX2FmdGVyX3doaWxlQDcKCnRlc3RfZm9yX2xvb3BfbGFiZWxsZWRfd2hpbGVfYm9keUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjM2CiAgICAvLyB0b3RhbCArPSBpICsgagogICAgZnJhbWVfZGlnIDIKICAgIGR1cAogICAgZnJhbWVfZGlnIDAKICAgIGR1cAogICAgY292ZXIgMwogICAgKwogICAgZnJhbWVfZGlnIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjM4CiAgICAvLyBpZiAoaSAqIGogPiBzdG9wKSBicmVhayBvdXRlcgogICAgKgogICAgZnJhbWVfZGlnIC0yCiAgICA+CiAgICBieiB0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX2FmdGVyX2lmX2Vsc2VANgoKdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF9pZl9ib2R5QDU6Cgp0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX2Jsb2NrQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NDEKICAgIC8vIHJldHVybiB0b3RhbAogICAgZnJhbWVfZGlnIDEKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgp0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX2FmdGVyX2lmX2Vsc2VANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czozNQogICAgLy8gZm9yIChsZXQgaiA9IHN0YXJ0OyBqIDwgc3RvcDsgaiArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgMAogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICBmcmFtZV9idXJ5IDAKICAgIGIgdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF93aGlsZV90b3BAMwoKdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF9hZnRlcl93aGlsZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjM0CiAgICAvLyBvdXRlcjogZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDwgc3RvcDsgaSArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgMgogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICBmcmFtZV9idXJ5IDIKICAgIGIgdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF93aGlsZV90b3BAMQoKdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF9hZnRlcl93aGlsZUA4OgogICAgYiB0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX2Jsb2NrQDkKCgovLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAEmAQQVH3x1MRsiE0EAyTYaAIAE+GVPc4AEKH9MAoAES9d3jIAEM2deBk8EjgQAegBSACoAAiJDMRkiEkQxGCITRDYaARc2GgIXNhoDF08CTwJPAogBEBYoTFCwI0L/1zEZIhJEMRgiE0Q2GgEXNhoCFzYaAxdPAk8CTwKIALsWKExQsCNC/68xGSISRDEYIhNENhoBFzYaAhc2GgMXTwJPAk8CiABpFihMULAjQv+HMRkiEkQxGCITRDYaARc2GgIXNhoDF08CTwJPAogAIBYoTFCwI0L/XzEZIkyOAQADQv9TMRgiEkSIAMkjQv9IigMBIov9iwGL/gxBABKLAIsBSU4CCIwAi/8IjAFC/+aJigMBIov9iwGL/gxBABmLAIsBCEmMAIEKDUEAAYmLAYv/CIwBQv/fQv/yigMBIov9iwGL/gxBAB6LAYEFGCISQQAKiwGL/wiMAUL/5IsAiwEIjABC/+yJigMBgAAii/2LAov+DEEAOov9jACLAIv+DEEAJIsCSYsASU4DCIsBCIwBC4v+DUEABYsBjACJiwCL/wiMAEL/1IsCi/8IjAJC/75C/+SJ", @@ -200,7 +200,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/for-loops/ForLoopsAlgo.clear.teal b/tests/approvals/out/unoptimized/for-loops/ForLoopsAlgo.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/for-loops/ForLoopsAlgo.clear.teal +++ b/tests/approvals/out/unoptimized/for-loops/ForLoopsAlgo.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/for-of-loops/ForOfLoopsAlgo.approval.teal b/tests/approvals/out/unoptimized/for-of-loops/ForOfLoopsAlgo.approval.teal index e65d11c59..8de70c1f0 100644 --- a/tests/approvals/out/unoptimized/for-of-loops/ForOfLoopsAlgo.approval.teal +++ b/tests/approvals/out/unoptimized/for-of-loops/ForOfLoopsAlgo.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 8 1 42 bytecblock 0x151f7c75 0x + +main_block@0: pushbytes 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff store 0 @@ -233,6 +235,8 @@ test_for_of_loop_tuple: // tests/approvals/for-of-loops.algo.ts:8 // test_for_of_loop_tuple(items: readonly [uint64, uint64, uint64]) { proto 3 1 + +test_for_of_loop_tuple_block@0: // tests/approvals/for-of-loops.algo.ts:9 // let total: uint64 = 0 intc_0 // 0 @@ -298,6 +302,8 @@ test_for_of_loop_arc4_dynamic_array: // tests/approvals/for-of-loops.algo.ts:17 // test_for_of_loop_arc4_dynamic_array(items: DynamicArray) { proto 1 1 + +test_for_of_loop_arc4_dynamic_array_block@0: // tests/approvals/for-of-loops.algo.ts:18 // let total: uint64 = 0 intc_0 // 0 @@ -369,6 +375,8 @@ test_for_of_loop_arc4_static_array: // tests/approvals/for-of-loops.algo.ts:26 // test_for_of_loop_arc4_static_array(items: StaticArray) { proto 1 1 + +test_for_of_loop_arc4_static_array_block@0: // tests/approvals/for-of-loops.algo.ts:27 // let total: uint64 = 0 intc_0 // 0 @@ -434,6 +442,8 @@ test_for_of_loop_native_immutable_array: // tests/approvals/for-of-loops.algo.ts:35 // test_for_of_loop_native_immutable_array(items: Array) { proto 1 1 + +test_for_of_loop_native_immutable_array_block@0: // tests/approvals/for-of-loops.algo.ts:36 // let total: uint64 = 0 intc_0 // 0 @@ -502,6 +512,10 @@ test_for_of_loop_native_mutable_array: // tests/approvals/for-of-loops.algo.ts:44 // test_for_of_loop_native_mutable_array(items: [uint64, uint64, uint64]) { proto 3 1 + +test_for_of_loop_native_mutable_array_block@0: + // tests/approvals/for-of-loops.algo.ts:44 + // test_for_of_loop_native_mutable_array(items: [uint64, uint64, uint64]) { frame_dig -3 itob bytec_1 // 0x @@ -609,11 +623,15 @@ test_for_of_loop_native_mutable_array_after_for@6: // tests/approvals/for-of-loops.algo.ts::ForOfLoopsAlgo.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub // _puya_lib.mem.new_slot() -> uint64: _puya_lib.mem.new_slot: + +_puya_lib.mem.new_slot@entry: load 0 bitlen load 0 diff --git a/tests/approvals/out/unoptimized/for-of-loops/ForOfLoopsAlgo.arc32.json b/tests/approvals/out/unoptimized/for-of-loops/ForOfLoopsAlgo.arc32.json index e1a5f3b96..879d69087 100644 --- a/tests/approvals/out/unoptimized/for-of-loops/ForOfLoopsAlgo.arc32.json +++ b/tests/approvals/out/unoptimized/for-of-loops/ForOfLoopsAlgo.arc32.json @@ -27,8 +27,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA4IDEgNDIKICAgIGJ5dGVjYmxvY2sgMHgxNTFmN2M3NSAweAogICAgcHVzaGJ5dGVzIDB4N2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZgogICAgc3RvcmUgMAoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjcKICAgIC8vIGV4cG9ydCBjbGFzcyBGb3JPZkxvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDEwCgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEZvck9mTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4Y2YxZjIwYjggLy8gbWV0aG9kICJ0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlKCh1aW50NjQsdWludDY0LHVpbnQ2NCkpdWludDY0IgogICAgcHVzaGJ5dGVzIDB4OGMxNmVlODcgLy8gbWV0aG9kICJ0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheSh1aW50NjRbXSl1aW50NjQiCiAgICBwdXNoYnl0ZXMgMHhiMmM3NTNiZiAvLyBtZXRob2QgInRlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXkodWludDY0WzVdKXVpbnQ2NCIKICAgIHB1c2hieXRlcyAweGQxYjViZWVlIC8vIG1ldGhvZCAidGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfaW1tdXRhYmxlX2FycmF5KHVpbnQ2NFtdKXVpbnQ2NCIKICAgIHB1c2hieXRlcyAweGExY2MwZDk0IC8vIG1ldGhvZCAidGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheSgodWludDY0LHVpbnQ2NCx1aW50NjQpKXVpbnQ2NCIKICAgIHVuY292ZXIgNQogICAgbWF0Y2ggbWFpbl90ZXN0X2Zvcl9vZl9sb29wX3R1cGxlX3JvdXRlQDMgbWFpbl90ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9yb3V0ZUA0IG1haW5fdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheV9yb3V0ZUA1IG1haW5fdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfaW1tdXRhYmxlX2FycmF5X3JvdXRlQDYgbWFpbl90ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9tdXRhYmxlX2FycmF5X3JvdXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEZvck9mTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1OgogICAgcmV0dXJuCgptYWluX3Rlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXlfcm91dGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo0NAogICAgLy8gdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheShpdGVtczogW3VpbnQ2NCwgdWludDY0LCB1aW50NjRdKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEZvck9mTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgc3dhcAogICAgZHVwCiAgICBpbnRjXzEgLy8gOAogICAgZHVwCiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHN3YXAKICAgIHB1c2hpbnQgMTYgLy8gMTYKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo0NAogICAgLy8gdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheShpdGVtczogW3VpbnQ2NCwgdWludDY0LCB1aW50NjRdKSB7CiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBjYWxsc3ViIHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXkKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX3Rlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheV9yb3V0ZUA2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjM1CiAgICAvLyB0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXkoaXRlbXM6IEFycmF5PHVpbnQ2ND4pIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgRm9yT2ZMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MzUKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheShpdGVtczogQXJyYXk8dWludDY0PikgewogICAgY2FsbHN1YiB0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXkKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX3Rlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXlfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoyNgogICAgLy8gdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheShpdGVtczogU3RhdGljQXJyYXk8VWludE42NCwgNT4pIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgRm9yT2ZMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MjYKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXkoaXRlbXM6IFN0YXRpY0FycmF5PFVpbnRONjQsIDU+KSB7CiAgICBjYWxsc3ViIHRlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXkKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX3Rlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5X3JvdXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MTcKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5KGl0ZW1zOiBEeW5hbWljQXJyYXk8VWludE42ND4pIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgRm9yT2ZMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MTcKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5KGl0ZW1zOiBEeW5hbWljQXJyYXk8VWludE42ND4pIHsKICAgIGNhbGxzdWIgdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X2R5bmFtaWNfYXJyYXkKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX3Rlc3RfZm9yX29mX2xvb3BfdHVwbGVfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo4CiAgICAvLyB0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlKGl0ZW1zOiByZWFkb25seSBbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0pIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgRm9yT2ZMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzEgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBzd2FwCiAgICBkdXAKICAgIGludGNfMSAvLyA4CiAgICBkdXAKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgc3dhcAogICAgcHVzaGludCAxNiAvLyAxNgogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjgKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfdHVwbGUoaXRlbXM6IHJlYWRvbmx5IFt1aW50NjQsIHVpbnQ2NCwgdWludDY0XSkgewogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgY2FsbHN1YiB0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjpGb3JPZkxvb3BzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9iYXJlX3JvdXRpbmdAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEZvck9mTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDExCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTI6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTM6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxNAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEZvck9mTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgoKLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjpGb3JPZkxvb3BzQWxnby50ZXN0X2Zvcl9vZl9sb29wX3R1cGxlKGl0ZW1zLjA6IHVpbnQ2NCwgaXRlbXMuMTogdWludDY0LCBpdGVtcy4yOiB1aW50NjQpIC0+IHVpbnQ2NDoKdGVzdF9mb3Jfb2ZfbG9vcF90dXBsZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo4CiAgICAvLyB0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlKGl0ZW1zOiByZWFkb25seSBbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0pIHsKICAgIHByb3RvIDMgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjkKICAgIC8vIGxldCB0b3RhbDogdWludDY0ID0gMAogICAgaW50Y18wIC8vIDAKICAgIGR1cAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjEwCiAgICAvLyBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHsKICAgIGZyYW1lX2RpZyAtMwoKdGVzdF9mb3Jfb2ZfbG9vcF90dXBsZV9mb3JfYm9keUAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjExCiAgICAvLyB0b3RhbCArPSBpdGVtCiAgICBmcmFtZV9kaWcgMAogICAgc3dhcAogICAgZHVwCiAgICBjb3ZlciAyCiAgICArCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo1CiAgICAvLyBjb25zdCBzdG9wTnVtYmVyOiB1aW50NjQgPSA0MgogICAgaW50Y18zIC8vIDQyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MTIKICAgIC8vIGlmIChpdGVtID09PSBzdG9wTnVtYmVyKSBicmVhawogICAgPT0KICAgIGJ6IHRlc3RfZm9yX29mX2xvb3BfdHVwbGVfYWZ0ZXJfaWZfZWxzZUAzCgp0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlX2lmX2JvZHlAMjoKCnRlc3RfZm9yX29mX2xvb3BfdHVwbGVfYmxvY2tAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoxNAogICAgLy8gcmV0dXJuIHRvdGFsCiAgICByZXRzdWIKCnRlc3RfZm9yX29mX2xvb3BfdHVwbGVfYWZ0ZXJfaWZfZWxzZUAzOgoKdGVzdF9mb3Jfb2ZfbG9vcF90dXBsZV9mb3JfZm9vdGVyQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MTAKICAgIC8vIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykgewogICAgZnJhbWVfZGlnIDEKICAgIHN3aXRjaCB0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlX2Zvcl9oZWFkZXJfMUA1IHRlc3RfZm9yX29mX2xvb3BfdHVwbGVfZm9yX2hlYWRlcl8yQDYKCnRlc3RfZm9yX29mX2xvb3BfdHVwbGVfYWZ0ZXJfZm9yQDc6CiAgICBiIHRlc3RfZm9yX29mX2xvb3BfdHVwbGVfYmxvY2tAOAoKdGVzdF9mb3Jfb2ZfbG9vcF90dXBsZV9mb3JfaGVhZGVyXzJANjoKICAgIHB1c2hpbnQgMiAvLyAyCiAgICBmcmFtZV9idXJ5IDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoxMAogICAgLy8gZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7CiAgICBmcmFtZV9kaWcgLTEKICAgIGIgdGVzdF9mb3Jfb2ZfbG9vcF90dXBsZV9mb3JfYm9keUAxCgp0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlX2Zvcl9oZWFkZXJfMUA1OgogICAgaW50Y18yIC8vIDEKICAgIGZyYW1lX2J1cnkgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjEwCiAgICAvLyBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHsKICAgIGZyYW1lX2RpZyAtMgogICAgYiB0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlX2Zvcl9ib2R5QDEKCgovLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLnRlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5KGl0ZW1zOiBieXRlcykgLT4gdWludDY0Ogp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoxNwogICAgLy8gdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X2R5bmFtaWNfYXJyYXkoaXRlbXM6IER5bmFtaWNBcnJheTxVaW50TjY0PikgewogICAgcHJvdG8gMSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MTgKICAgIC8vIGxldCB0b3RhbDogdWludDY0ID0gMAogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoxOQogICAgLy8gZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7CiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18wIC8vIDAKCnRlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5X2Zvcl9oZWFkZXJAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoxOQogICAgLy8gZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7CiAgICBmcmFtZV9kaWcgMgogICAgZnJhbWVfZGlnIDEKICAgIDwKICAgIGJ6IHRlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5X2FmdGVyX2ZvckA2Cgp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9mb3JfYm9keUAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjE5CiAgICAvLyBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHsKICAgIGZyYW1lX2RpZyAtMQogICAgZXh0cmFjdCAyIDAKICAgIGZyYW1lX2RpZyAyCiAgICBpbnRjXzEgLy8gOAogICAgKgogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbCArPSBpdGVtLm5hdGl2ZQogICAgZHVwCiAgICBidG9pCiAgICBmcmFtZV9kaWcgMAogICAgKwogICAgZnJhbWVfYnVyeSAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MjEKICAgIC8vIGlmIChpdGVtLm5hdGl2ZSA9PT0gc3RvcE51bWJlcikgYnJlYWsKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo1CiAgICAvLyBjb25zdCBzdG9wTnVtYmVyOiB1aW50NjQgPSA0MgogICAgaW50Y18zIC8vIDQyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MjEKICAgIC8vIGlmIChpdGVtLm5hdGl2ZSA9PT0gc3RvcE51bWJlcikgYnJlYWsKICAgID09CiAgICBieiB0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9hZnRlcl9pZl9lbHNlQDQKCnRlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5X2lmX2JvZHlAMzoKCnRlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5X2Jsb2NrQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MjMKICAgIC8vIHJldHVybiB0b3RhbAogICAgcmV0c3ViCgp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9hZnRlcl9pZl9lbHNlQDQ6Cgp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9mb3JfZm9vdGVyQDU6CiAgICBmcmFtZV9kaWcgMgogICAgaW50Y18yIC8vIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMgogICAgYiB0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9mb3JfaGVhZGVyQDEKCnRlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5X2FmdGVyX2ZvckA2OgogICAgYiB0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9ibG9ja0A3CgoKLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjpGb3JPZkxvb3BzQWxnby50ZXN0X2Zvcl9vZl9sb29wX2FyYzRfc3RhdGljX2FycmF5KGl0ZW1zOiBieXRlcykgLT4gdWludDY0Ogp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfc3RhdGljX2FycmF5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjI2CiAgICAvLyB0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfc3RhdGljX2FycmF5KGl0ZW1zOiBTdGF0aWNBcnJheTxVaW50TjY0LCA1PikgewogICAgcHJvdG8gMSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MjcKICAgIC8vIGxldCB0b3RhbDogdWludDY0ID0gMAogICAgaW50Y18wIC8vIDAKICAgIGR1cAoKdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheV9mb3JfaGVhZGVyQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MjgKICAgIC8vIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykgewogICAgZnJhbWVfZGlnIDEKICAgIHB1c2hpbnQgNSAvLyA1CiAgICA8CiAgICBieiB0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfc3RhdGljX2FycmF5X2FmdGVyX2ZvckA2Cgp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfc3RhdGljX2FycmF5X2Zvcl9ib2R5QDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MjgKICAgIC8vIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykgewogICAgZnJhbWVfZGlnIC0xCiAgICBmcmFtZV9kaWcgMQogICAgaW50Y18xIC8vIDgKICAgICoKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoyOQogICAgLy8gdG90YWwgKz0gaXRlbS5uYXRpdmUKICAgIGR1cAogICAgYnRvaQogICAgZnJhbWVfZGlnIDAKICAgICsKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjMwCiAgICAvLyBpZiAoaXRlbS5uYXRpdmUgPT09IHN0b3BOdW1iZXIpIGJyZWFrCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NQogICAgLy8gY29uc3Qgc3RvcE51bWJlcjogdWludDY0ID0gNDIKICAgIGludGNfMyAvLyA0MgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjMwCiAgICAvLyBpZiAoaXRlbS5uYXRpdmUgPT09IHN0b3BOdW1iZXIpIGJyZWFrCiAgICA9PQogICAgYnogdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheV9hZnRlcl9pZl9lbHNlQDQKCnRlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXlfaWZfYm9keUAzOgoKdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheV9ibG9ja0A3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjMyCiAgICAvLyByZXR1cm4gdG90YWwKICAgIHJldHN1YgoKdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheV9hZnRlcl9pZl9lbHNlQDQ6Cgp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfc3RhdGljX2FycmF5X2Zvcl9mb290ZXJANToKICAgIGZyYW1lX2RpZyAxCiAgICBpbnRjXzIgLy8gMQogICAgKwogICAgZnJhbWVfYnVyeSAxCiAgICBiIHRlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXlfZm9yX2hlYWRlckAxCgp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfc3RhdGljX2FycmF5X2FmdGVyX2ZvckA2OgogICAgYiB0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfc3RhdGljX2FycmF5X2Jsb2NrQDcKCgovLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheShpdGVtczogYnl0ZXMpIC0+IHVpbnQ2NDoKdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfaW1tdXRhYmxlX2FycmF5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjM1CiAgICAvLyB0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXkoaXRlbXM6IEFycmF5PHVpbnQ2ND4pIHsKICAgIHByb3RvIDEgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjM2CiAgICAvLyBsZXQgdG90YWw6IHVpbnQ2NCA9IDAKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MzcKICAgIC8vIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykgewogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMCAvLyAwCgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXlfZm9yX2hlYWRlckAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjM3CiAgICAvLyBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHsKICAgIGZyYW1lX2RpZyAyCiAgICBmcmFtZV9kaWcgMQogICAgPAogICAgYnogdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfaW1tdXRhYmxlX2FycmF5X2FmdGVyX2ZvckA2Cgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXlfZm9yX2JvZHlAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czozNwogICAgLy8gZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7CiAgICBmcmFtZV9kaWcgLTEKICAgIGV4dHJhY3QgMiAwCiAgICBmcmFtZV9kaWcgMgogICAgaW50Y18xIC8vIDgKICAgICoKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czozOAogICAgLy8gdG90YWwgKz0gaXRlbQogICAgZnJhbWVfZGlnIDAKICAgIGRpZyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo1CiAgICAvLyBjb25zdCBzdG9wTnVtYmVyOiB1aW50NjQgPSA0MgogICAgaW50Y18zIC8vIDQyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MzkKICAgIC8vIGlmIChpdGVtID09PSBzdG9wTnVtYmVyKSBicmVhawogICAgPT0KICAgIGJ6IHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheV9hZnRlcl9pZl9lbHNlQDQKCnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheV9pZl9ib2R5QDM6Cgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXlfYmxvY2tANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo0MQogICAgLy8gcmV0dXJuIHRvdGFsCiAgICByZXRzdWIKCnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheV9hZnRlcl9pZl9lbHNlQDQ6Cgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXlfZm9yX2Zvb3RlckA1OgogICAgZnJhbWVfZGlnIDIKICAgIGludGNfMiAvLyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDIKICAgIGIgdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfaW1tdXRhYmxlX2FycmF5X2Zvcl9oZWFkZXJAMQoKdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfaW1tdXRhYmxlX2FycmF5X2FmdGVyX2ZvckA2OgogICAgYiB0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXlfYmxvY2tANwoKCi8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo6Rm9yT2ZMb29wc0FsZ28udGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheShpdGVtcy4wOiB1aW50NjQsIGl0ZW1zLjE6IHVpbnQ2NCwgaXRlbXMuMjogdWludDY0KSAtPiB1aW50NjQ6CnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NDQKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXkoaXRlbXM6IFt1aW50NjQsIHVpbnQ2NCwgdWludDY0XSkgewogICAgcHJvdG8gMyAxCiAgICBmcmFtZV9kaWcgLTMKICAgIGl0b2IKICAgIGJ5dGVjXzEgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjQ1CiAgICAvLyBjb25zdCBtdXRhYmxlID0gbmV3IE11dGFibGVBcnJheSguLi5pdGVtcykKICAgIGJ5dGVjXzEgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjQ0CiAgICAvLyB0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9tdXRhYmxlX2FycmF5KGl0ZW1zOiBbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0pIHsKICAgIGZyYW1lX2RpZyAtMgogICAgaXRvYgogICAgYnl0ZWNfMSAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NDUKICAgIC8vIGNvbnN0IG11dGFibGUgPSBuZXcgTXV0YWJsZUFycmF5KC4uLml0ZW1zKQogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NDQKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXkoaXRlbXM6IFt1aW50NjQsIHVpbnQ2NCwgdWludDY0XSkgewogICAgZnJhbWVfZGlnIC0xCiAgICBpdG9iCiAgICBieXRlY18xIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo0NQogICAgLy8gY29uc3QgbXV0YWJsZSA9IG5ldyBNdXRhYmxlQXJyYXkoLi4uaXRlbXMpCiAgICBjb25jYXQKICAgIGNhbGxzdWIgX3B1eWFfbGliLm1lbS5uZXdfc2xvdAogICAgZHVwCiAgICB1bmNvdmVyIDIKICAgIHN0b3JlcwogICAgZHVwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NDYKICAgIC8vIGxldCB0b3RhbDogdWludDY0ID0gMAogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo0NwogICAgLy8gZm9yIChjb25zdCBpdGVtIG9mIG11dGFibGUpIHsKICAgIGxvYWRzCiAgICBsZW4KICAgIGludGNfMSAvLyA4CiAgICAvCiAgICBpbnRjXzAgLy8gMAoKdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheV9mb3JfaGVhZGVyQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NDcKICAgIC8vIGZvciAoY29uc3QgaXRlbSBvZiBtdXRhYmxlKSB7CiAgICBmcmFtZV9kaWcgMwogICAgZnJhbWVfZGlnIDIKICAgIDwKICAgIGJ6IHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXlfYWZ0ZXJfZm9yQDYKCnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXlfZm9yX2JvZHlAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo0NwogICAgLy8gZm9yIChjb25zdCBpdGVtIG9mIG11dGFibGUpIHsKICAgIGZyYW1lX2RpZyAwCiAgICBsb2FkcwogICAgZnJhbWVfZGlnIDMKICAgIGludGNfMSAvLyA4CiAgICAqCiAgICBpbnRjXzEgLy8gOAogICAgZXh0cmFjdDMKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzEgLy8gOAogICAgZXh0cmFjdDMKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo0OAogICAgLy8gdG90YWwgKz0gaXRlbQogICAgZnJhbWVfZGlnIDEKICAgIGRpZyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo1CiAgICAvLyBjb25zdCBzdG9wTnVtYmVyOiB1aW50NjQgPSA0MgogICAgaW50Y18zIC8vIDQyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NDkKICAgIC8vIGlmIChpdGVtID09PSBzdG9wTnVtYmVyKSBicmVhawogICAgPT0KICAgIGJ6IHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXlfYWZ0ZXJfaWZfZWxzZUA0Cgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9tdXRhYmxlX2FycmF5X2lmX2JvZHlAMzoKCnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXlfYmxvY2tANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo1MQogICAgLy8gcmV0dXJuIHRvdGFsCiAgICBmcmFtZV9kaWcgMQogICAgZnJhbWVfYnVyeSAwCiAgICByZXRzdWIKCnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXlfYWZ0ZXJfaWZfZWxzZUA0OgoKdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheV9mb3JfZm9vdGVyQDU6CiAgICBmcmFtZV9kaWcgMwogICAgaW50Y18yIC8vIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMwogICAgYiB0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9tdXRhYmxlX2FycmF5X2Zvcl9oZWFkZXJAMQoKdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheV9hZnRlcl9mb3JANjoKICAgIGIgdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheV9ibG9ja0A3CgoKLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjpGb3JPZkxvb3BzQWxnby5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIKCgovLyBfcHV5YV9saWIubWVtLm5ld19zbG90KCkgLT4gdWludDY0OgpfcHV5YV9saWIubWVtLm5ld19zbG90OgogICAgbG9hZCAwCiAgICBiaXRsZW4KICAgIGxvYWQgMAogICAgcHVzaGludCAyNTYgLy8gMjU2CiAgICBkaWcgMgogICAgLQogICAgaW50Y18wIC8vIDAKICAgIHNldGJpdCAvLyBvbiBlcnJvcjogbm8gYXZhaWxhYmxlIHNsb3RzCiAgICBzdG9yZSAwCiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA4IDEgNDIKICAgIGJ5dGVjYmxvY2sgMHgxNTFmN2M3NSAweAoKbWFpbl9ibG9ja0AwOgogICAgcHVzaGJ5dGVzIDB4N2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZgogICAgc3RvcmUgMAoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjcKICAgIC8vIGV4cG9ydCBjbGFzcyBGb3JPZkxvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDEwCgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEZvck9mTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4Y2YxZjIwYjggLy8gbWV0aG9kICJ0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlKCh1aW50NjQsdWludDY0LHVpbnQ2NCkpdWludDY0IgogICAgcHVzaGJ5dGVzIDB4OGMxNmVlODcgLy8gbWV0aG9kICJ0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheSh1aW50NjRbXSl1aW50NjQiCiAgICBwdXNoYnl0ZXMgMHhiMmM3NTNiZiAvLyBtZXRob2QgInRlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXkodWludDY0WzVdKXVpbnQ2NCIKICAgIHB1c2hieXRlcyAweGQxYjViZWVlIC8vIG1ldGhvZCAidGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfaW1tdXRhYmxlX2FycmF5KHVpbnQ2NFtdKXVpbnQ2NCIKICAgIHB1c2hieXRlcyAweGExY2MwZDk0IC8vIG1ldGhvZCAidGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheSgodWludDY0LHVpbnQ2NCx1aW50NjQpKXVpbnQ2NCIKICAgIHVuY292ZXIgNQogICAgbWF0Y2ggbWFpbl90ZXN0X2Zvcl9vZl9sb29wX3R1cGxlX3JvdXRlQDMgbWFpbl90ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9yb3V0ZUA0IG1haW5fdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheV9yb3V0ZUA1IG1haW5fdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfaW1tdXRhYmxlX2FycmF5X3JvdXRlQDYgbWFpbl90ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9tdXRhYmxlX2FycmF5X3JvdXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEZvck9mTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1OgogICAgcmV0dXJuCgptYWluX3Rlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXlfcm91dGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo0NAogICAgLy8gdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheShpdGVtczogW3VpbnQ2NCwgdWludDY0LCB1aW50NjRdKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEZvck9mTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgc3dhcAogICAgZHVwCiAgICBpbnRjXzEgLy8gOAogICAgZHVwCiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHN3YXAKICAgIHB1c2hpbnQgMTYgLy8gMTYKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo0NAogICAgLy8gdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheShpdGVtczogW3VpbnQ2NCwgdWludDY0LCB1aW50NjRdKSB7CiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBjYWxsc3ViIHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXkKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX3Rlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheV9yb3V0ZUA2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjM1CiAgICAvLyB0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXkoaXRlbXM6IEFycmF5PHVpbnQ2ND4pIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgRm9yT2ZMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MzUKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheShpdGVtczogQXJyYXk8dWludDY0PikgewogICAgY2FsbHN1YiB0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXkKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX3Rlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXlfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoyNgogICAgLy8gdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheShpdGVtczogU3RhdGljQXJyYXk8VWludE42NCwgNT4pIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgRm9yT2ZMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MjYKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXkoaXRlbXM6IFN0YXRpY0FycmF5PFVpbnRONjQsIDU+KSB7CiAgICBjYWxsc3ViIHRlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXkKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX3Rlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5X3JvdXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MTcKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5KGl0ZW1zOiBEeW5hbWljQXJyYXk8VWludE42ND4pIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgRm9yT2ZMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MTcKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5KGl0ZW1zOiBEeW5hbWljQXJyYXk8VWludE42ND4pIHsKICAgIGNhbGxzdWIgdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X2R5bmFtaWNfYXJyYXkKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX3Rlc3RfZm9yX29mX2xvb3BfdHVwbGVfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo4CiAgICAvLyB0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlKGl0ZW1zOiByZWFkb25seSBbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0pIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgRm9yT2ZMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzEgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBzd2FwCiAgICBkdXAKICAgIGludGNfMSAvLyA4CiAgICBkdXAKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgc3dhcAogICAgcHVzaGludCAxNiAvLyAxNgogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjgKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfdHVwbGUoaXRlbXM6IHJlYWRvbmx5IFt1aW50NjQsIHVpbnQ2NCwgdWludDY0XSkgewogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgY2FsbHN1YiB0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjpGb3JPZkxvb3BzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9iYXJlX3JvdXRpbmdAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEZvck9mTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDExCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTI6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTM6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxNAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEZvck9mTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgoKLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjpGb3JPZkxvb3BzQWxnby50ZXN0X2Zvcl9vZl9sb29wX3R1cGxlKGl0ZW1zLjA6IHVpbnQ2NCwgaXRlbXMuMTogdWludDY0LCBpdGVtcy4yOiB1aW50NjQpIC0+IHVpbnQ2NDoKdGVzdF9mb3Jfb2ZfbG9vcF90dXBsZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo4CiAgICAvLyB0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlKGl0ZW1zOiByZWFkb25seSBbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0pIHsKICAgIHByb3RvIDMgMQoKdGVzdF9mb3Jfb2ZfbG9vcF90dXBsZV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjkKICAgIC8vIGxldCB0b3RhbDogdWludDY0ID0gMAogICAgaW50Y18wIC8vIDAKICAgIGR1cAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjEwCiAgICAvLyBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHsKICAgIGZyYW1lX2RpZyAtMwoKdGVzdF9mb3Jfb2ZfbG9vcF90dXBsZV9mb3JfYm9keUAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjExCiAgICAvLyB0b3RhbCArPSBpdGVtCiAgICBmcmFtZV9kaWcgMAogICAgc3dhcAogICAgZHVwCiAgICBjb3ZlciAyCiAgICArCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo1CiAgICAvLyBjb25zdCBzdG9wTnVtYmVyOiB1aW50NjQgPSA0MgogICAgaW50Y18zIC8vIDQyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MTIKICAgIC8vIGlmIChpdGVtID09PSBzdG9wTnVtYmVyKSBicmVhawogICAgPT0KICAgIGJ6IHRlc3RfZm9yX29mX2xvb3BfdHVwbGVfYWZ0ZXJfaWZfZWxzZUAzCgp0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlX2lmX2JvZHlAMjoKCnRlc3RfZm9yX29mX2xvb3BfdHVwbGVfYmxvY2tAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoxNAogICAgLy8gcmV0dXJuIHRvdGFsCiAgICByZXRzdWIKCnRlc3RfZm9yX29mX2xvb3BfdHVwbGVfYWZ0ZXJfaWZfZWxzZUAzOgoKdGVzdF9mb3Jfb2ZfbG9vcF90dXBsZV9mb3JfZm9vdGVyQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MTAKICAgIC8vIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykgewogICAgZnJhbWVfZGlnIDEKICAgIHN3aXRjaCB0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlX2Zvcl9oZWFkZXJfMUA1IHRlc3RfZm9yX29mX2xvb3BfdHVwbGVfZm9yX2hlYWRlcl8yQDYKCnRlc3RfZm9yX29mX2xvb3BfdHVwbGVfYWZ0ZXJfZm9yQDc6CiAgICBiIHRlc3RfZm9yX29mX2xvb3BfdHVwbGVfYmxvY2tAOAoKdGVzdF9mb3Jfb2ZfbG9vcF90dXBsZV9mb3JfaGVhZGVyXzJANjoKICAgIHB1c2hpbnQgMiAvLyAyCiAgICBmcmFtZV9idXJ5IDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoxMAogICAgLy8gZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7CiAgICBmcmFtZV9kaWcgLTEKICAgIGIgdGVzdF9mb3Jfb2ZfbG9vcF90dXBsZV9mb3JfYm9keUAxCgp0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlX2Zvcl9oZWFkZXJfMUA1OgogICAgaW50Y18yIC8vIDEKICAgIGZyYW1lX2J1cnkgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjEwCiAgICAvLyBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHsKICAgIGZyYW1lX2RpZyAtMgogICAgYiB0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlX2Zvcl9ib2R5QDEKCgovLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLnRlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5KGl0ZW1zOiBieXRlcykgLT4gdWludDY0Ogp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoxNwogICAgLy8gdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X2R5bmFtaWNfYXJyYXkoaXRlbXM6IER5bmFtaWNBcnJheTxVaW50TjY0PikgewogICAgcHJvdG8gMSAxCgp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjE4CiAgICAvLyBsZXQgdG90YWw6IHVpbnQ2NCA9IDAKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MTkKICAgIC8vIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykgewogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMCAvLyAwCgp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9mb3JfaGVhZGVyQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MTkKICAgIC8vIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykgewogICAgZnJhbWVfZGlnIDIKICAgIGZyYW1lX2RpZyAxCiAgICA8CiAgICBieiB0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9hZnRlcl9mb3JANgoKdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X2R5bmFtaWNfYXJyYXlfZm9yX2JvZHlAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoxOQogICAgLy8gZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7CiAgICBmcmFtZV9kaWcgLTEKICAgIGV4dHJhY3QgMiAwCiAgICBmcmFtZV9kaWcgMgogICAgaW50Y18xIC8vIDgKICAgICoKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoyMAogICAgLy8gdG90YWwgKz0gaXRlbS5uYXRpdmUKICAgIGR1cAogICAgYnRvaQogICAgZnJhbWVfZGlnIDAKICAgICsKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjIxCiAgICAvLyBpZiAoaXRlbS5uYXRpdmUgPT09IHN0b3BOdW1iZXIpIGJyZWFrCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NQogICAgLy8gY29uc3Qgc3RvcE51bWJlcjogdWludDY0ID0gNDIKICAgIGludGNfMyAvLyA0MgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjIxCiAgICAvLyBpZiAoaXRlbS5uYXRpdmUgPT09IHN0b3BOdW1iZXIpIGJyZWFrCiAgICA9PQogICAgYnogdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X2R5bmFtaWNfYXJyYXlfYWZ0ZXJfaWZfZWxzZUA0Cgp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9pZl9ib2R5QDM6Cgp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9ibG9ja0A3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjIzCiAgICAvLyByZXR1cm4gdG90YWwKICAgIHJldHN1YgoKdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X2R5bmFtaWNfYXJyYXlfYWZ0ZXJfaWZfZWxzZUA0OgoKdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X2R5bmFtaWNfYXJyYXlfZm9yX2Zvb3RlckA1OgogICAgZnJhbWVfZGlnIDIKICAgIGludGNfMiAvLyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDIKICAgIGIgdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X2R5bmFtaWNfYXJyYXlfZm9yX2hlYWRlckAxCgp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9hZnRlcl9mb3JANjoKICAgIGIgdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X2R5bmFtaWNfYXJyYXlfYmxvY2tANwoKCi8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo6Rm9yT2ZMb29wc0FsZ28udGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheShpdGVtczogYnl0ZXMpIC0+IHVpbnQ2NDoKdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoyNgogICAgLy8gdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheShpdGVtczogU3RhdGljQXJyYXk8VWludE42NCwgNT4pIHsKICAgIHByb3RvIDEgMQoKdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjI3CiAgICAvLyBsZXQgdG90YWw6IHVpbnQ2NCA9IDAKICAgIGludGNfMCAvLyAwCiAgICBkdXAKCnRlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXlfZm9yX2hlYWRlckAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjI4CiAgICAvLyBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHsKICAgIGZyYW1lX2RpZyAxCiAgICBwdXNoaW50IDUgLy8gNQogICAgPAogICAgYnogdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheV9hZnRlcl9mb3JANgoKdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheV9mb3JfYm9keUAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjI4CiAgICAvLyBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHsKICAgIGZyYW1lX2RpZyAtMQogICAgZnJhbWVfZGlnIDEKICAgIGludGNfMSAvLyA4CiAgICAqCiAgICBpbnRjXzEgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MjkKICAgIC8vIHRvdGFsICs9IGl0ZW0ubmF0aXZlCiAgICBkdXAKICAgIGJ0b2kKICAgIGZyYW1lX2RpZyAwCiAgICArCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czozMAogICAgLy8gaWYgKGl0ZW0ubmF0aXZlID09PSBzdG9wTnVtYmVyKSBicmVhawogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IHN0b3BOdW1iZXI6IHVpbnQ2NCA9IDQyCiAgICBpbnRjXzMgLy8gNDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czozMAogICAgLy8gaWYgKGl0ZW0ubmF0aXZlID09PSBzdG9wTnVtYmVyKSBicmVhawogICAgPT0KICAgIGJ6IHRlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXlfYWZ0ZXJfaWZfZWxzZUA0Cgp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfc3RhdGljX2FycmF5X2lmX2JvZHlAMzoKCnRlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXlfYmxvY2tANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czozMgogICAgLy8gcmV0dXJuIHRvdGFsCiAgICByZXRzdWIKCnRlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXlfYWZ0ZXJfaWZfZWxzZUA0OgoKdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheV9mb3JfZm9vdGVyQDU6CiAgICBmcmFtZV9kaWcgMQogICAgaW50Y18yIC8vIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMQogICAgYiB0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfc3RhdGljX2FycmF5X2Zvcl9oZWFkZXJAMQoKdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheV9hZnRlcl9mb3JANjoKICAgIGIgdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheV9ibG9ja0A3CgoKLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjpGb3JPZkxvb3BzQWxnby50ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXkoaXRlbXM6IGJ5dGVzKSAtPiB1aW50NjQ6CnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czozNQogICAgLy8gdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfaW1tdXRhYmxlX2FycmF5KGl0ZW1zOiBBcnJheTx1aW50NjQ+KSB7CiAgICBwcm90byAxIDEKCnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjM2CiAgICAvLyBsZXQgdG90YWw6IHVpbnQ2NCA9IDAKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MzcKICAgIC8vIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykgewogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMCAvLyAwCgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXlfZm9yX2hlYWRlckAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjM3CiAgICAvLyBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHsKICAgIGZyYW1lX2RpZyAyCiAgICBmcmFtZV9kaWcgMQogICAgPAogICAgYnogdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfaW1tdXRhYmxlX2FycmF5X2FmdGVyX2ZvckA2Cgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXlfZm9yX2JvZHlAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czozNwogICAgLy8gZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7CiAgICBmcmFtZV9kaWcgLTEKICAgIGV4dHJhY3QgMiAwCiAgICBmcmFtZV9kaWcgMgogICAgaW50Y18xIC8vIDgKICAgICoKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czozOAogICAgLy8gdG90YWwgKz0gaXRlbQogICAgZnJhbWVfZGlnIDAKICAgIGRpZyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo1CiAgICAvLyBjb25zdCBzdG9wTnVtYmVyOiB1aW50NjQgPSA0MgogICAgaW50Y18zIC8vIDQyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MzkKICAgIC8vIGlmIChpdGVtID09PSBzdG9wTnVtYmVyKSBicmVhawogICAgPT0KICAgIGJ6IHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheV9hZnRlcl9pZl9lbHNlQDQKCnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheV9pZl9ib2R5QDM6Cgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXlfYmxvY2tANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo0MQogICAgLy8gcmV0dXJuIHRvdGFsCiAgICByZXRzdWIKCnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheV9hZnRlcl9pZl9lbHNlQDQ6Cgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXlfZm9yX2Zvb3RlckA1OgogICAgZnJhbWVfZGlnIDIKICAgIGludGNfMiAvLyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDIKICAgIGIgdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfaW1tdXRhYmxlX2FycmF5X2Zvcl9oZWFkZXJAMQoKdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfaW1tdXRhYmxlX2FycmF5X2FmdGVyX2ZvckA2OgogICAgYiB0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXlfYmxvY2tANwoKCi8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo6Rm9yT2ZMb29wc0FsZ28udGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheShpdGVtcy4wOiB1aW50NjQsIGl0ZW1zLjE6IHVpbnQ2NCwgaXRlbXMuMjogdWludDY0KSAtPiB1aW50NjQ6CnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NDQKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXkoaXRlbXM6IFt1aW50NjQsIHVpbnQ2NCwgdWludDY0XSkgewogICAgcHJvdG8gMyAxCgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9tdXRhYmxlX2FycmF5X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NDQKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXkoaXRlbXM6IFt1aW50NjQsIHVpbnQ2NCwgdWludDY0XSkgewogICAgZnJhbWVfZGlnIC0zCiAgICBpdG9iCiAgICBieXRlY18xIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo0NQogICAgLy8gY29uc3QgbXV0YWJsZSA9IG5ldyBNdXRhYmxlQXJyYXkoLi4uaXRlbXMpCiAgICBieXRlY18xIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo0NAogICAgLy8gdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheShpdGVtczogW3VpbnQ2NCwgdWludDY0LCB1aW50NjRdKSB7CiAgICBmcmFtZV9kaWcgLTIKICAgIGl0b2IKICAgIGJ5dGVjXzEgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjQ1CiAgICAvLyBjb25zdCBtdXRhYmxlID0gbmV3IE11dGFibGVBcnJheSguLi5pdGVtcykKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjQ0CiAgICAvLyB0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9tdXRhYmxlX2FycmF5KGl0ZW1zOiBbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0pIHsKICAgIGZyYW1lX2RpZyAtMQogICAgaXRvYgogICAgYnl0ZWNfMSAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NDUKICAgIC8vIGNvbnN0IG11dGFibGUgPSBuZXcgTXV0YWJsZUFycmF5KC4uLml0ZW1zKQogICAgY29uY2F0CiAgICBjYWxsc3ViIF9wdXlhX2xpYi5tZW0ubmV3X3Nsb3QKICAgIGR1cAogICAgdW5jb3ZlciAyCiAgICBzdG9yZXMKICAgIGR1cAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjQ2CiAgICAvLyBsZXQgdG90YWw6IHVpbnQ2NCA9IDAKICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NDcKICAgIC8vIGZvciAoY29uc3QgaXRlbSBvZiBtdXRhYmxlKSB7CiAgICBsb2FkcwogICAgbGVuCiAgICBpbnRjXzEgLy8gOAogICAgLwogICAgaW50Y18wIC8vIDAKCnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXlfZm9yX2hlYWRlckAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjQ3CiAgICAvLyBmb3IgKGNvbnN0IGl0ZW0gb2YgbXV0YWJsZSkgewogICAgZnJhbWVfZGlnIDMKICAgIGZyYW1lX2RpZyAyCiAgICA8CiAgICBieiB0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9tdXRhYmxlX2FycmF5X2FmdGVyX2ZvckA2Cgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9tdXRhYmxlX2FycmF5X2Zvcl9ib2R5QDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NDcKICAgIC8vIGZvciAoY29uc3QgaXRlbSBvZiBtdXRhYmxlKSB7CiAgICBmcmFtZV9kaWcgMAogICAgbG9hZHMKICAgIGZyYW1lX2RpZyAzCiAgICBpbnRjXzEgLy8gOAogICAgKgogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3QzCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3QzCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NDgKICAgIC8vIHRvdGFsICs9IGl0ZW0KICAgIGZyYW1lX2RpZyAxCiAgICBkaWcgMQogICAgKwogICAgZnJhbWVfYnVyeSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NQogICAgLy8gY29uc3Qgc3RvcE51bWJlcjogdWludDY0ID0gNDIKICAgIGludGNfMyAvLyA0MgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjQ5CiAgICAvLyBpZiAoaXRlbSA9PT0gc3RvcE51bWJlcikgYnJlYWsKICAgID09CiAgICBieiB0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9tdXRhYmxlX2FycmF5X2FmdGVyX2lmX2Vsc2VANAoKdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheV9pZl9ib2R5QDM6Cgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9tdXRhYmxlX2FycmF5X2Jsb2NrQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NTEKICAgIC8vIHJldHVybiB0b3RhbAogICAgZnJhbWVfZGlnIDEKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9tdXRhYmxlX2FycmF5X2FmdGVyX2lmX2Vsc2VANDoKCnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXlfZm9yX2Zvb3RlckA1OgogICAgZnJhbWVfZGlnIDMKICAgIGludGNfMiAvLyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDMKICAgIGIgdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheV9mb3JfaGVhZGVyQDEKCnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXlfYWZ0ZXJfZm9yQDY6CiAgICBiIHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXlfYmxvY2tANwoKCi8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo6Rm9yT2ZMb29wc0FsZ28uX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIKCgovLyBfcHV5YV9saWIubWVtLm5ld19zbG90KCkgLT4gdWludDY0OgpfcHV5YV9saWIubWVtLm5ld19zbG90OgoKX3B1eWFfbGliLm1lbS5uZXdfc2xvdEBlbnRyeToKICAgIGxvYWQgMAogICAgYml0bGVuCiAgICBsb2FkIDAKICAgIHB1c2hpbnQgMjU2IC8vIDI1NgogICAgZGlnIDIKICAgIC0KICAgIGludGNfMCAvLyAwCiAgICBzZXRiaXQgLy8gb24gZXJyb3I6IG5vIGF2YWlsYWJsZSBzbG90cwogICAgc3RvcmUgMAogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/for-of-loops/ForOfLoopsAlgo.arc56.json b/tests/approvals/out/unoptimized/for-of-loops/ForOfLoopsAlgo.arc56.json index 2bb836c4c..0721c5419 100644 --- a/tests/approvals/out/unoptimized/for-of-loops/ForOfLoopsAlgo.arc56.json +++ b/tests/approvals/out/unoptimized/for-of-loops/ForOfLoopsAlgo.arc56.json @@ -199,8 +199,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA4IDEgNDIKICAgIGJ5dGVjYmxvY2sgMHgxNTFmN2M3NSAweAogICAgcHVzaGJ5dGVzIDB4N2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZgogICAgc3RvcmUgMAoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjcKICAgIC8vIGV4cG9ydCBjbGFzcyBGb3JPZkxvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDEwCgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEZvck9mTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4Y2YxZjIwYjggLy8gbWV0aG9kICJ0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlKCh1aW50NjQsdWludDY0LHVpbnQ2NCkpdWludDY0IgogICAgcHVzaGJ5dGVzIDB4OGMxNmVlODcgLy8gbWV0aG9kICJ0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheSh1aW50NjRbXSl1aW50NjQiCiAgICBwdXNoYnl0ZXMgMHhiMmM3NTNiZiAvLyBtZXRob2QgInRlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXkodWludDY0WzVdKXVpbnQ2NCIKICAgIHB1c2hieXRlcyAweGQxYjViZWVlIC8vIG1ldGhvZCAidGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfaW1tdXRhYmxlX2FycmF5KHVpbnQ2NFtdKXVpbnQ2NCIKICAgIHB1c2hieXRlcyAweGExY2MwZDk0IC8vIG1ldGhvZCAidGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheSgodWludDY0LHVpbnQ2NCx1aW50NjQpKXVpbnQ2NCIKICAgIHVuY292ZXIgNQogICAgbWF0Y2ggbWFpbl90ZXN0X2Zvcl9vZl9sb29wX3R1cGxlX3JvdXRlQDMgbWFpbl90ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9yb3V0ZUA0IG1haW5fdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheV9yb3V0ZUA1IG1haW5fdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfaW1tdXRhYmxlX2FycmF5X3JvdXRlQDYgbWFpbl90ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9tdXRhYmxlX2FycmF5X3JvdXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEZvck9mTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1OgogICAgcmV0dXJuCgptYWluX3Rlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXlfcm91dGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo0NAogICAgLy8gdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheShpdGVtczogW3VpbnQ2NCwgdWludDY0LCB1aW50NjRdKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEZvck9mTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgc3dhcAogICAgZHVwCiAgICBpbnRjXzEgLy8gOAogICAgZHVwCiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHN3YXAKICAgIHB1c2hpbnQgMTYgLy8gMTYKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo0NAogICAgLy8gdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheShpdGVtczogW3VpbnQ2NCwgdWludDY0LCB1aW50NjRdKSB7CiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBjYWxsc3ViIHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXkKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX3Rlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheV9yb3V0ZUA2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjM1CiAgICAvLyB0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXkoaXRlbXM6IEFycmF5PHVpbnQ2ND4pIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgRm9yT2ZMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MzUKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheShpdGVtczogQXJyYXk8dWludDY0PikgewogICAgY2FsbHN1YiB0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXkKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX3Rlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXlfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoyNgogICAgLy8gdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheShpdGVtczogU3RhdGljQXJyYXk8VWludE42NCwgNT4pIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgRm9yT2ZMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MjYKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXkoaXRlbXM6IFN0YXRpY0FycmF5PFVpbnRONjQsIDU+KSB7CiAgICBjYWxsc3ViIHRlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXkKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX3Rlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5X3JvdXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MTcKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5KGl0ZW1zOiBEeW5hbWljQXJyYXk8VWludE42ND4pIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgRm9yT2ZMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MTcKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5KGl0ZW1zOiBEeW5hbWljQXJyYXk8VWludE42ND4pIHsKICAgIGNhbGxzdWIgdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X2R5bmFtaWNfYXJyYXkKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX3Rlc3RfZm9yX29mX2xvb3BfdHVwbGVfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo4CiAgICAvLyB0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlKGl0ZW1zOiByZWFkb25seSBbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0pIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgRm9yT2ZMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzEgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBzd2FwCiAgICBkdXAKICAgIGludGNfMSAvLyA4CiAgICBkdXAKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgc3dhcAogICAgcHVzaGludCAxNiAvLyAxNgogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjgKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfdHVwbGUoaXRlbXM6IHJlYWRvbmx5IFt1aW50NjQsIHVpbnQ2NCwgdWludDY0XSkgewogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgY2FsbHN1YiB0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjpGb3JPZkxvb3BzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9iYXJlX3JvdXRpbmdAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEZvck9mTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDExCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTI6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTM6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxNAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEZvck9mTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgoKLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjpGb3JPZkxvb3BzQWxnby50ZXN0X2Zvcl9vZl9sb29wX3R1cGxlKGl0ZW1zLjA6IHVpbnQ2NCwgaXRlbXMuMTogdWludDY0LCBpdGVtcy4yOiB1aW50NjQpIC0+IHVpbnQ2NDoKdGVzdF9mb3Jfb2ZfbG9vcF90dXBsZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo4CiAgICAvLyB0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlKGl0ZW1zOiByZWFkb25seSBbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0pIHsKICAgIHByb3RvIDMgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjkKICAgIC8vIGxldCB0b3RhbDogdWludDY0ID0gMAogICAgaW50Y18wIC8vIDAKICAgIGR1cAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjEwCiAgICAvLyBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHsKICAgIGZyYW1lX2RpZyAtMwoKdGVzdF9mb3Jfb2ZfbG9vcF90dXBsZV9mb3JfYm9keUAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjExCiAgICAvLyB0b3RhbCArPSBpdGVtCiAgICBmcmFtZV9kaWcgMAogICAgc3dhcAogICAgZHVwCiAgICBjb3ZlciAyCiAgICArCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo1CiAgICAvLyBjb25zdCBzdG9wTnVtYmVyOiB1aW50NjQgPSA0MgogICAgaW50Y18zIC8vIDQyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MTIKICAgIC8vIGlmIChpdGVtID09PSBzdG9wTnVtYmVyKSBicmVhawogICAgPT0KICAgIGJ6IHRlc3RfZm9yX29mX2xvb3BfdHVwbGVfYWZ0ZXJfaWZfZWxzZUAzCgp0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlX2lmX2JvZHlAMjoKCnRlc3RfZm9yX29mX2xvb3BfdHVwbGVfYmxvY2tAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoxNAogICAgLy8gcmV0dXJuIHRvdGFsCiAgICByZXRzdWIKCnRlc3RfZm9yX29mX2xvb3BfdHVwbGVfYWZ0ZXJfaWZfZWxzZUAzOgoKdGVzdF9mb3Jfb2ZfbG9vcF90dXBsZV9mb3JfZm9vdGVyQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MTAKICAgIC8vIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykgewogICAgZnJhbWVfZGlnIDEKICAgIHN3aXRjaCB0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlX2Zvcl9oZWFkZXJfMUA1IHRlc3RfZm9yX29mX2xvb3BfdHVwbGVfZm9yX2hlYWRlcl8yQDYKCnRlc3RfZm9yX29mX2xvb3BfdHVwbGVfYWZ0ZXJfZm9yQDc6CiAgICBiIHRlc3RfZm9yX29mX2xvb3BfdHVwbGVfYmxvY2tAOAoKdGVzdF9mb3Jfb2ZfbG9vcF90dXBsZV9mb3JfaGVhZGVyXzJANjoKICAgIHB1c2hpbnQgMiAvLyAyCiAgICBmcmFtZV9idXJ5IDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoxMAogICAgLy8gZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7CiAgICBmcmFtZV9kaWcgLTEKICAgIGIgdGVzdF9mb3Jfb2ZfbG9vcF90dXBsZV9mb3JfYm9keUAxCgp0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlX2Zvcl9oZWFkZXJfMUA1OgogICAgaW50Y18yIC8vIDEKICAgIGZyYW1lX2J1cnkgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjEwCiAgICAvLyBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHsKICAgIGZyYW1lX2RpZyAtMgogICAgYiB0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlX2Zvcl9ib2R5QDEKCgovLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLnRlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5KGl0ZW1zOiBieXRlcykgLT4gdWludDY0Ogp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoxNwogICAgLy8gdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X2R5bmFtaWNfYXJyYXkoaXRlbXM6IER5bmFtaWNBcnJheTxVaW50TjY0PikgewogICAgcHJvdG8gMSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MTgKICAgIC8vIGxldCB0b3RhbDogdWludDY0ID0gMAogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoxOQogICAgLy8gZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7CiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18wIC8vIDAKCnRlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5X2Zvcl9oZWFkZXJAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoxOQogICAgLy8gZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7CiAgICBmcmFtZV9kaWcgMgogICAgZnJhbWVfZGlnIDEKICAgIDwKICAgIGJ6IHRlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5X2FmdGVyX2ZvckA2Cgp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9mb3JfYm9keUAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjE5CiAgICAvLyBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHsKICAgIGZyYW1lX2RpZyAtMQogICAgZXh0cmFjdCAyIDAKICAgIGZyYW1lX2RpZyAyCiAgICBpbnRjXzEgLy8gOAogICAgKgogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjIwCiAgICAvLyB0b3RhbCArPSBpdGVtLm5hdGl2ZQogICAgZHVwCiAgICBidG9pCiAgICBmcmFtZV9kaWcgMAogICAgKwogICAgZnJhbWVfYnVyeSAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MjEKICAgIC8vIGlmIChpdGVtLm5hdGl2ZSA9PT0gc3RvcE51bWJlcikgYnJlYWsKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo1CiAgICAvLyBjb25zdCBzdG9wTnVtYmVyOiB1aW50NjQgPSA0MgogICAgaW50Y18zIC8vIDQyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MjEKICAgIC8vIGlmIChpdGVtLm5hdGl2ZSA9PT0gc3RvcE51bWJlcikgYnJlYWsKICAgID09CiAgICBieiB0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9hZnRlcl9pZl9lbHNlQDQKCnRlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5X2lmX2JvZHlAMzoKCnRlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5X2Jsb2NrQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MjMKICAgIC8vIHJldHVybiB0b3RhbAogICAgcmV0c3ViCgp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9hZnRlcl9pZl9lbHNlQDQ6Cgp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9mb3JfZm9vdGVyQDU6CiAgICBmcmFtZV9kaWcgMgogICAgaW50Y18yIC8vIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMgogICAgYiB0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9mb3JfaGVhZGVyQDEKCnRlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5X2FmdGVyX2ZvckA2OgogICAgYiB0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9ibG9ja0A3CgoKLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjpGb3JPZkxvb3BzQWxnby50ZXN0X2Zvcl9vZl9sb29wX2FyYzRfc3RhdGljX2FycmF5KGl0ZW1zOiBieXRlcykgLT4gdWludDY0Ogp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfc3RhdGljX2FycmF5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjI2CiAgICAvLyB0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfc3RhdGljX2FycmF5KGl0ZW1zOiBTdGF0aWNBcnJheTxVaW50TjY0LCA1PikgewogICAgcHJvdG8gMSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MjcKICAgIC8vIGxldCB0b3RhbDogdWludDY0ID0gMAogICAgaW50Y18wIC8vIDAKICAgIGR1cAoKdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheV9mb3JfaGVhZGVyQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MjgKICAgIC8vIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykgewogICAgZnJhbWVfZGlnIDEKICAgIHB1c2hpbnQgNSAvLyA1CiAgICA8CiAgICBieiB0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfc3RhdGljX2FycmF5X2FmdGVyX2ZvckA2Cgp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfc3RhdGljX2FycmF5X2Zvcl9ib2R5QDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MjgKICAgIC8vIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykgewogICAgZnJhbWVfZGlnIC0xCiAgICBmcmFtZV9kaWcgMQogICAgaW50Y18xIC8vIDgKICAgICoKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoyOQogICAgLy8gdG90YWwgKz0gaXRlbS5uYXRpdmUKICAgIGR1cAogICAgYnRvaQogICAgZnJhbWVfZGlnIDAKICAgICsKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjMwCiAgICAvLyBpZiAoaXRlbS5uYXRpdmUgPT09IHN0b3BOdW1iZXIpIGJyZWFrCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NQogICAgLy8gY29uc3Qgc3RvcE51bWJlcjogdWludDY0ID0gNDIKICAgIGludGNfMyAvLyA0MgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjMwCiAgICAvLyBpZiAoaXRlbS5uYXRpdmUgPT09IHN0b3BOdW1iZXIpIGJyZWFrCiAgICA9PQogICAgYnogdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheV9hZnRlcl9pZl9lbHNlQDQKCnRlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXlfaWZfYm9keUAzOgoKdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheV9ibG9ja0A3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjMyCiAgICAvLyByZXR1cm4gdG90YWwKICAgIHJldHN1YgoKdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheV9hZnRlcl9pZl9lbHNlQDQ6Cgp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfc3RhdGljX2FycmF5X2Zvcl9mb290ZXJANToKICAgIGZyYW1lX2RpZyAxCiAgICBpbnRjXzIgLy8gMQogICAgKwogICAgZnJhbWVfYnVyeSAxCiAgICBiIHRlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXlfZm9yX2hlYWRlckAxCgp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfc3RhdGljX2FycmF5X2FmdGVyX2ZvckA2OgogICAgYiB0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfc3RhdGljX2FycmF5X2Jsb2NrQDcKCgovLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheShpdGVtczogYnl0ZXMpIC0+IHVpbnQ2NDoKdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfaW1tdXRhYmxlX2FycmF5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjM1CiAgICAvLyB0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXkoaXRlbXM6IEFycmF5PHVpbnQ2ND4pIHsKICAgIHByb3RvIDEgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjM2CiAgICAvLyBsZXQgdG90YWw6IHVpbnQ2NCA9IDAKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MzcKICAgIC8vIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykgewogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMCAvLyAwCgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXlfZm9yX2hlYWRlckAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjM3CiAgICAvLyBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHsKICAgIGZyYW1lX2RpZyAyCiAgICBmcmFtZV9kaWcgMQogICAgPAogICAgYnogdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfaW1tdXRhYmxlX2FycmF5X2FmdGVyX2ZvckA2Cgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXlfZm9yX2JvZHlAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czozNwogICAgLy8gZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7CiAgICBmcmFtZV9kaWcgLTEKICAgIGV4dHJhY3QgMiAwCiAgICBmcmFtZV9kaWcgMgogICAgaW50Y18xIC8vIDgKICAgICoKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czozOAogICAgLy8gdG90YWwgKz0gaXRlbQogICAgZnJhbWVfZGlnIDAKICAgIGRpZyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo1CiAgICAvLyBjb25zdCBzdG9wTnVtYmVyOiB1aW50NjQgPSA0MgogICAgaW50Y18zIC8vIDQyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MzkKICAgIC8vIGlmIChpdGVtID09PSBzdG9wTnVtYmVyKSBicmVhawogICAgPT0KICAgIGJ6IHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheV9hZnRlcl9pZl9lbHNlQDQKCnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheV9pZl9ib2R5QDM6Cgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXlfYmxvY2tANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo0MQogICAgLy8gcmV0dXJuIHRvdGFsCiAgICByZXRzdWIKCnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheV9hZnRlcl9pZl9lbHNlQDQ6Cgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXlfZm9yX2Zvb3RlckA1OgogICAgZnJhbWVfZGlnIDIKICAgIGludGNfMiAvLyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDIKICAgIGIgdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfaW1tdXRhYmxlX2FycmF5X2Zvcl9oZWFkZXJAMQoKdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfaW1tdXRhYmxlX2FycmF5X2FmdGVyX2ZvckA2OgogICAgYiB0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXlfYmxvY2tANwoKCi8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo6Rm9yT2ZMb29wc0FsZ28udGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheShpdGVtcy4wOiB1aW50NjQsIGl0ZW1zLjE6IHVpbnQ2NCwgaXRlbXMuMjogdWludDY0KSAtPiB1aW50NjQ6CnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NDQKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXkoaXRlbXM6IFt1aW50NjQsIHVpbnQ2NCwgdWludDY0XSkgewogICAgcHJvdG8gMyAxCiAgICBmcmFtZV9kaWcgLTMKICAgIGl0b2IKICAgIGJ5dGVjXzEgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjQ1CiAgICAvLyBjb25zdCBtdXRhYmxlID0gbmV3IE11dGFibGVBcnJheSguLi5pdGVtcykKICAgIGJ5dGVjXzEgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjQ0CiAgICAvLyB0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9tdXRhYmxlX2FycmF5KGl0ZW1zOiBbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0pIHsKICAgIGZyYW1lX2RpZyAtMgogICAgaXRvYgogICAgYnl0ZWNfMSAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NDUKICAgIC8vIGNvbnN0IG11dGFibGUgPSBuZXcgTXV0YWJsZUFycmF5KC4uLml0ZW1zKQogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NDQKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXkoaXRlbXM6IFt1aW50NjQsIHVpbnQ2NCwgdWludDY0XSkgewogICAgZnJhbWVfZGlnIC0xCiAgICBpdG9iCiAgICBieXRlY18xIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo0NQogICAgLy8gY29uc3QgbXV0YWJsZSA9IG5ldyBNdXRhYmxlQXJyYXkoLi4uaXRlbXMpCiAgICBjb25jYXQKICAgIGNhbGxzdWIgX3B1eWFfbGliLm1lbS5uZXdfc2xvdAogICAgZHVwCiAgICB1bmNvdmVyIDIKICAgIHN0b3JlcwogICAgZHVwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NDYKICAgIC8vIGxldCB0b3RhbDogdWludDY0ID0gMAogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo0NwogICAgLy8gZm9yIChjb25zdCBpdGVtIG9mIG11dGFibGUpIHsKICAgIGxvYWRzCiAgICBsZW4KICAgIGludGNfMSAvLyA4CiAgICAvCiAgICBpbnRjXzAgLy8gMAoKdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheV9mb3JfaGVhZGVyQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NDcKICAgIC8vIGZvciAoY29uc3QgaXRlbSBvZiBtdXRhYmxlKSB7CiAgICBmcmFtZV9kaWcgMwogICAgZnJhbWVfZGlnIDIKICAgIDwKICAgIGJ6IHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXlfYWZ0ZXJfZm9yQDYKCnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXlfZm9yX2JvZHlAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo0NwogICAgLy8gZm9yIChjb25zdCBpdGVtIG9mIG11dGFibGUpIHsKICAgIGZyYW1lX2RpZyAwCiAgICBsb2FkcwogICAgZnJhbWVfZGlnIDMKICAgIGludGNfMSAvLyA4CiAgICAqCiAgICBpbnRjXzEgLy8gOAogICAgZXh0cmFjdDMKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzEgLy8gOAogICAgZXh0cmFjdDMKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo0OAogICAgLy8gdG90YWwgKz0gaXRlbQogICAgZnJhbWVfZGlnIDEKICAgIGRpZyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo1CiAgICAvLyBjb25zdCBzdG9wTnVtYmVyOiB1aW50NjQgPSA0MgogICAgaW50Y18zIC8vIDQyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NDkKICAgIC8vIGlmIChpdGVtID09PSBzdG9wTnVtYmVyKSBicmVhawogICAgPT0KICAgIGJ6IHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXlfYWZ0ZXJfaWZfZWxzZUA0Cgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9tdXRhYmxlX2FycmF5X2lmX2JvZHlAMzoKCnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXlfYmxvY2tANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo1MQogICAgLy8gcmV0dXJuIHRvdGFsCiAgICBmcmFtZV9kaWcgMQogICAgZnJhbWVfYnVyeSAwCiAgICByZXRzdWIKCnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXlfYWZ0ZXJfaWZfZWxzZUA0OgoKdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheV9mb3JfZm9vdGVyQDU6CiAgICBmcmFtZV9kaWcgMwogICAgaW50Y18yIC8vIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMwogICAgYiB0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9tdXRhYmxlX2FycmF5X2Zvcl9oZWFkZXJAMQoKdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheV9hZnRlcl9mb3JANjoKICAgIGIgdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheV9ibG9ja0A3CgoKLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjpGb3JPZkxvb3BzQWxnby5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIKCgovLyBfcHV5YV9saWIubWVtLm5ld19zbG90KCkgLT4gdWludDY0OgpfcHV5YV9saWIubWVtLm5ld19zbG90OgogICAgbG9hZCAwCiAgICBiaXRsZW4KICAgIGxvYWQgMAogICAgcHVzaGludCAyNTYgLy8gMjU2CiAgICBkaWcgMgogICAgLQogICAgaW50Y18wIC8vIDAKICAgIHNldGJpdCAvLyBvbiBlcnJvcjogbm8gYXZhaWxhYmxlIHNsb3RzCiAgICBzdG9yZSAwCiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA4IDEgNDIKICAgIGJ5dGVjYmxvY2sgMHgxNTFmN2M3NSAweAoKbWFpbl9ibG9ja0AwOgogICAgcHVzaGJ5dGVzIDB4N2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZgogICAgc3RvcmUgMAoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjcKICAgIC8vIGV4cG9ydCBjbGFzcyBGb3JPZkxvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDEwCgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEZvck9mTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4Y2YxZjIwYjggLy8gbWV0aG9kICJ0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlKCh1aW50NjQsdWludDY0LHVpbnQ2NCkpdWludDY0IgogICAgcHVzaGJ5dGVzIDB4OGMxNmVlODcgLy8gbWV0aG9kICJ0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheSh1aW50NjRbXSl1aW50NjQiCiAgICBwdXNoYnl0ZXMgMHhiMmM3NTNiZiAvLyBtZXRob2QgInRlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXkodWludDY0WzVdKXVpbnQ2NCIKICAgIHB1c2hieXRlcyAweGQxYjViZWVlIC8vIG1ldGhvZCAidGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfaW1tdXRhYmxlX2FycmF5KHVpbnQ2NFtdKXVpbnQ2NCIKICAgIHB1c2hieXRlcyAweGExY2MwZDk0IC8vIG1ldGhvZCAidGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheSgodWludDY0LHVpbnQ2NCx1aW50NjQpKXVpbnQ2NCIKICAgIHVuY292ZXIgNQogICAgbWF0Y2ggbWFpbl90ZXN0X2Zvcl9vZl9sb29wX3R1cGxlX3JvdXRlQDMgbWFpbl90ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9yb3V0ZUA0IG1haW5fdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheV9yb3V0ZUA1IG1haW5fdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfaW1tdXRhYmxlX2FycmF5X3JvdXRlQDYgbWFpbl90ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9tdXRhYmxlX2FycmF5X3JvdXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEZvck9mTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1OgogICAgcmV0dXJuCgptYWluX3Rlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXlfcm91dGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo0NAogICAgLy8gdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheShpdGVtczogW3VpbnQ2NCwgdWludDY0LCB1aW50NjRdKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEZvck9mTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgc3dhcAogICAgZHVwCiAgICBpbnRjXzEgLy8gOAogICAgZHVwCiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHN3YXAKICAgIHB1c2hpbnQgMTYgLy8gMTYKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo0NAogICAgLy8gdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheShpdGVtczogW3VpbnQ2NCwgdWludDY0LCB1aW50NjRdKSB7CiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBjYWxsc3ViIHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXkKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX3Rlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheV9yb3V0ZUA2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjM1CiAgICAvLyB0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXkoaXRlbXM6IEFycmF5PHVpbnQ2ND4pIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgRm9yT2ZMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MzUKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheShpdGVtczogQXJyYXk8dWludDY0PikgewogICAgY2FsbHN1YiB0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXkKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX3Rlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXlfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoyNgogICAgLy8gdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheShpdGVtczogU3RhdGljQXJyYXk8VWludE42NCwgNT4pIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgRm9yT2ZMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MjYKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXkoaXRlbXM6IFN0YXRpY0FycmF5PFVpbnRONjQsIDU+KSB7CiAgICBjYWxsc3ViIHRlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXkKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX3Rlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5X3JvdXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MTcKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5KGl0ZW1zOiBEeW5hbWljQXJyYXk8VWludE42ND4pIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgRm9yT2ZMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MTcKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5KGl0ZW1zOiBEeW5hbWljQXJyYXk8VWludE42ND4pIHsKICAgIGNhbGxzdWIgdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X2R5bmFtaWNfYXJyYXkKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX3Rlc3RfZm9yX29mX2xvb3BfdHVwbGVfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo4CiAgICAvLyB0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlKGl0ZW1zOiByZWFkb25seSBbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0pIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgRm9yT2ZMb29wc0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzEgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBzd2FwCiAgICBkdXAKICAgIGludGNfMSAvLyA4CiAgICBkdXAKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgc3dhcAogICAgcHVzaGludCAxNiAvLyAxNgogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjgKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfdHVwbGUoaXRlbXM6IHJlYWRvbmx5IFt1aW50NjQsIHVpbnQ2NCwgdWludDY0XSkgewogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgY2FsbHN1YiB0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjpGb3JPZkxvb3BzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9iYXJlX3JvdXRpbmdAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEZvck9mTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDExCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTI6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTM6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxNAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEZvck9mTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgoKLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjpGb3JPZkxvb3BzQWxnby50ZXN0X2Zvcl9vZl9sb29wX3R1cGxlKGl0ZW1zLjA6IHVpbnQ2NCwgaXRlbXMuMTogdWludDY0LCBpdGVtcy4yOiB1aW50NjQpIC0+IHVpbnQ2NDoKdGVzdF9mb3Jfb2ZfbG9vcF90dXBsZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo4CiAgICAvLyB0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlKGl0ZW1zOiByZWFkb25seSBbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0pIHsKICAgIHByb3RvIDMgMQoKdGVzdF9mb3Jfb2ZfbG9vcF90dXBsZV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjkKICAgIC8vIGxldCB0b3RhbDogdWludDY0ID0gMAogICAgaW50Y18wIC8vIDAKICAgIGR1cAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjEwCiAgICAvLyBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHsKICAgIGZyYW1lX2RpZyAtMwoKdGVzdF9mb3Jfb2ZfbG9vcF90dXBsZV9mb3JfYm9keUAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjExCiAgICAvLyB0b3RhbCArPSBpdGVtCiAgICBmcmFtZV9kaWcgMAogICAgc3dhcAogICAgZHVwCiAgICBjb3ZlciAyCiAgICArCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo1CiAgICAvLyBjb25zdCBzdG9wTnVtYmVyOiB1aW50NjQgPSA0MgogICAgaW50Y18zIC8vIDQyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MTIKICAgIC8vIGlmIChpdGVtID09PSBzdG9wTnVtYmVyKSBicmVhawogICAgPT0KICAgIGJ6IHRlc3RfZm9yX29mX2xvb3BfdHVwbGVfYWZ0ZXJfaWZfZWxzZUAzCgp0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlX2lmX2JvZHlAMjoKCnRlc3RfZm9yX29mX2xvb3BfdHVwbGVfYmxvY2tAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoxNAogICAgLy8gcmV0dXJuIHRvdGFsCiAgICByZXRzdWIKCnRlc3RfZm9yX29mX2xvb3BfdHVwbGVfYWZ0ZXJfaWZfZWxzZUAzOgoKdGVzdF9mb3Jfb2ZfbG9vcF90dXBsZV9mb3JfZm9vdGVyQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MTAKICAgIC8vIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykgewogICAgZnJhbWVfZGlnIDEKICAgIHN3aXRjaCB0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlX2Zvcl9oZWFkZXJfMUA1IHRlc3RfZm9yX29mX2xvb3BfdHVwbGVfZm9yX2hlYWRlcl8yQDYKCnRlc3RfZm9yX29mX2xvb3BfdHVwbGVfYWZ0ZXJfZm9yQDc6CiAgICBiIHRlc3RfZm9yX29mX2xvb3BfdHVwbGVfYmxvY2tAOAoKdGVzdF9mb3Jfb2ZfbG9vcF90dXBsZV9mb3JfaGVhZGVyXzJANjoKICAgIHB1c2hpbnQgMiAvLyAyCiAgICBmcmFtZV9idXJ5IDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoxMAogICAgLy8gZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7CiAgICBmcmFtZV9kaWcgLTEKICAgIGIgdGVzdF9mb3Jfb2ZfbG9vcF90dXBsZV9mb3JfYm9keUAxCgp0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlX2Zvcl9oZWFkZXJfMUA1OgogICAgaW50Y18yIC8vIDEKICAgIGZyYW1lX2J1cnkgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjEwCiAgICAvLyBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHsKICAgIGZyYW1lX2RpZyAtMgogICAgYiB0ZXN0X2Zvcl9vZl9sb29wX3R1cGxlX2Zvcl9ib2R5QDEKCgovLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6OkZvck9mTG9vcHNBbGdvLnRlc3RfZm9yX29mX2xvb3BfYXJjNF9keW5hbWljX2FycmF5KGl0ZW1zOiBieXRlcykgLT4gdWludDY0Ogp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoxNwogICAgLy8gdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X2R5bmFtaWNfYXJyYXkoaXRlbXM6IER5bmFtaWNBcnJheTxVaW50TjY0PikgewogICAgcHJvdG8gMSAxCgp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjE4CiAgICAvLyBsZXQgdG90YWw6IHVpbnQ2NCA9IDAKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MTkKICAgIC8vIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykgewogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMCAvLyAwCgp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9mb3JfaGVhZGVyQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MTkKICAgIC8vIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykgewogICAgZnJhbWVfZGlnIDIKICAgIGZyYW1lX2RpZyAxCiAgICA8CiAgICBieiB0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9hZnRlcl9mb3JANgoKdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X2R5bmFtaWNfYXJyYXlfZm9yX2JvZHlAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoxOQogICAgLy8gZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7CiAgICBmcmFtZV9kaWcgLTEKICAgIGV4dHJhY3QgMiAwCiAgICBmcmFtZV9kaWcgMgogICAgaW50Y18xIC8vIDgKICAgICoKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoyMAogICAgLy8gdG90YWwgKz0gaXRlbS5uYXRpdmUKICAgIGR1cAogICAgYnRvaQogICAgZnJhbWVfZGlnIDAKICAgICsKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjIxCiAgICAvLyBpZiAoaXRlbS5uYXRpdmUgPT09IHN0b3BOdW1iZXIpIGJyZWFrCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NQogICAgLy8gY29uc3Qgc3RvcE51bWJlcjogdWludDY0ID0gNDIKICAgIGludGNfMyAvLyA0MgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjIxCiAgICAvLyBpZiAoaXRlbS5uYXRpdmUgPT09IHN0b3BOdW1iZXIpIGJyZWFrCiAgICA9PQogICAgYnogdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X2R5bmFtaWNfYXJyYXlfYWZ0ZXJfaWZfZWxzZUA0Cgp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9pZl9ib2R5QDM6Cgp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9ibG9ja0A3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjIzCiAgICAvLyByZXR1cm4gdG90YWwKICAgIHJldHN1YgoKdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X2R5bmFtaWNfYXJyYXlfYWZ0ZXJfaWZfZWxzZUA0OgoKdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X2R5bmFtaWNfYXJyYXlfZm9yX2Zvb3RlckA1OgogICAgZnJhbWVfZGlnIDIKICAgIGludGNfMiAvLyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDIKICAgIGIgdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X2R5bmFtaWNfYXJyYXlfZm9yX2hlYWRlckAxCgp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfZHluYW1pY19hcnJheV9hZnRlcl9mb3JANjoKICAgIGIgdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X2R5bmFtaWNfYXJyYXlfYmxvY2tANwoKCi8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo6Rm9yT2ZMb29wc0FsZ28udGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheShpdGVtczogYnl0ZXMpIC0+IHVpbnQ2NDoKdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czoyNgogICAgLy8gdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheShpdGVtczogU3RhdGljQXJyYXk8VWludE42NCwgNT4pIHsKICAgIHByb3RvIDEgMQoKdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjI3CiAgICAvLyBsZXQgdG90YWw6IHVpbnQ2NCA9IDAKICAgIGludGNfMCAvLyAwCiAgICBkdXAKCnRlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXlfZm9yX2hlYWRlckAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjI4CiAgICAvLyBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHsKICAgIGZyYW1lX2RpZyAxCiAgICBwdXNoaW50IDUgLy8gNQogICAgPAogICAgYnogdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheV9hZnRlcl9mb3JANgoKdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheV9mb3JfYm9keUAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjI4CiAgICAvLyBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHsKICAgIGZyYW1lX2RpZyAtMQogICAgZnJhbWVfZGlnIDEKICAgIGludGNfMSAvLyA4CiAgICAqCiAgICBpbnRjXzEgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MjkKICAgIC8vIHRvdGFsICs9IGl0ZW0ubmF0aXZlCiAgICBkdXAKICAgIGJ0b2kKICAgIGZyYW1lX2RpZyAwCiAgICArCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czozMAogICAgLy8gaWYgKGl0ZW0ubmF0aXZlID09PSBzdG9wTnVtYmVyKSBicmVhawogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IHN0b3BOdW1iZXI6IHVpbnQ2NCA9IDQyCiAgICBpbnRjXzMgLy8gNDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czozMAogICAgLy8gaWYgKGl0ZW0ubmF0aXZlID09PSBzdG9wTnVtYmVyKSBicmVhawogICAgPT0KICAgIGJ6IHRlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXlfYWZ0ZXJfaWZfZWxzZUA0Cgp0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfc3RhdGljX2FycmF5X2lmX2JvZHlAMzoKCnRlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXlfYmxvY2tANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czozMgogICAgLy8gcmV0dXJuIHRvdGFsCiAgICByZXRzdWIKCnRlc3RfZm9yX29mX2xvb3BfYXJjNF9zdGF0aWNfYXJyYXlfYWZ0ZXJfaWZfZWxzZUA0OgoKdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheV9mb3JfZm9vdGVyQDU6CiAgICBmcmFtZV9kaWcgMQogICAgaW50Y18yIC8vIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMQogICAgYiB0ZXN0X2Zvcl9vZl9sb29wX2FyYzRfc3RhdGljX2FycmF5X2Zvcl9oZWFkZXJAMQoKdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheV9hZnRlcl9mb3JANjoKICAgIGIgdGVzdF9mb3Jfb2ZfbG9vcF9hcmM0X3N0YXRpY19hcnJheV9ibG9ja0A3CgoKLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjpGb3JPZkxvb3BzQWxnby50ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXkoaXRlbXM6IGJ5dGVzKSAtPiB1aW50NjQ6CnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czozNQogICAgLy8gdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfaW1tdXRhYmxlX2FycmF5KGl0ZW1zOiBBcnJheTx1aW50NjQ+KSB7CiAgICBwcm90byAxIDEKCnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjM2CiAgICAvLyBsZXQgdG90YWw6IHVpbnQ2NCA9IDAKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MzcKICAgIC8vIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykgewogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMCAvLyAwCgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXlfZm9yX2hlYWRlckAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjM3CiAgICAvLyBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHsKICAgIGZyYW1lX2RpZyAyCiAgICBmcmFtZV9kaWcgMQogICAgPAogICAgYnogdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfaW1tdXRhYmxlX2FycmF5X2FmdGVyX2ZvckA2Cgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXlfZm9yX2JvZHlAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czozNwogICAgLy8gZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7CiAgICBmcmFtZV9kaWcgLTEKICAgIGV4dHJhY3QgMiAwCiAgICBmcmFtZV9kaWcgMgogICAgaW50Y18xIC8vIDgKICAgICoKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czozOAogICAgLy8gdG90YWwgKz0gaXRlbQogICAgZnJhbWVfZGlnIDAKICAgIGRpZyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo1CiAgICAvLyBjb25zdCBzdG9wTnVtYmVyOiB1aW50NjQgPSA0MgogICAgaW50Y18zIC8vIDQyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6MzkKICAgIC8vIGlmIChpdGVtID09PSBzdG9wTnVtYmVyKSBicmVhawogICAgPT0KICAgIGJ6IHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheV9hZnRlcl9pZl9lbHNlQDQKCnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheV9pZl9ib2R5QDM6Cgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXlfYmxvY2tANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo0MQogICAgLy8gcmV0dXJuIHRvdGFsCiAgICByZXRzdWIKCnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX2ltbXV0YWJsZV9hcnJheV9hZnRlcl9pZl9lbHNlQDQ6Cgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXlfZm9yX2Zvb3RlckA1OgogICAgZnJhbWVfZGlnIDIKICAgIGludGNfMiAvLyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDIKICAgIGIgdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfaW1tdXRhYmxlX2FycmF5X2Zvcl9oZWFkZXJAMQoKdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfaW1tdXRhYmxlX2FycmF5X2FmdGVyX2ZvckA2OgogICAgYiB0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9pbW11dGFibGVfYXJyYXlfYmxvY2tANwoKCi8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo6Rm9yT2ZMb29wc0FsZ28udGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheShpdGVtcy4wOiB1aW50NjQsIGl0ZW1zLjE6IHVpbnQ2NCwgaXRlbXMuMjogdWludDY0KSAtPiB1aW50NjQ6CnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NDQKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXkoaXRlbXM6IFt1aW50NjQsIHVpbnQ2NCwgdWludDY0XSkgewogICAgcHJvdG8gMyAxCgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9tdXRhYmxlX2FycmF5X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NDQKICAgIC8vIHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXkoaXRlbXM6IFt1aW50NjQsIHVpbnQ2NCwgdWludDY0XSkgewogICAgZnJhbWVfZGlnIC0zCiAgICBpdG9iCiAgICBieXRlY18xIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo0NQogICAgLy8gY29uc3QgbXV0YWJsZSA9IG5ldyBNdXRhYmxlQXJyYXkoLi4uaXRlbXMpCiAgICBieXRlY18xIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo0NAogICAgLy8gdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheShpdGVtczogW3VpbnQ2NCwgdWludDY0LCB1aW50NjRdKSB7CiAgICBmcmFtZV9kaWcgLTIKICAgIGl0b2IKICAgIGJ5dGVjXzEgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjQ1CiAgICAvLyBjb25zdCBtdXRhYmxlID0gbmV3IE11dGFibGVBcnJheSguLi5pdGVtcykKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjQ0CiAgICAvLyB0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9tdXRhYmxlX2FycmF5KGl0ZW1zOiBbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0pIHsKICAgIGZyYW1lX2RpZyAtMQogICAgaXRvYgogICAgYnl0ZWNfMSAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NDUKICAgIC8vIGNvbnN0IG11dGFibGUgPSBuZXcgTXV0YWJsZUFycmF5KC4uLml0ZW1zKQogICAgY29uY2F0CiAgICBjYWxsc3ViIF9wdXlhX2xpYi5tZW0ubmV3X3Nsb3QKICAgIGR1cAogICAgdW5jb3ZlciAyCiAgICBzdG9yZXMKICAgIGR1cAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjQ2CiAgICAvLyBsZXQgdG90YWw6IHVpbnQ2NCA9IDAKICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NDcKICAgIC8vIGZvciAoY29uc3QgaXRlbSBvZiBtdXRhYmxlKSB7CiAgICBsb2FkcwogICAgbGVuCiAgICBpbnRjXzEgLy8gOAogICAgLwogICAgaW50Y18wIC8vIDAKCnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXlfZm9yX2hlYWRlckAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjQ3CiAgICAvLyBmb3IgKGNvbnN0IGl0ZW0gb2YgbXV0YWJsZSkgewogICAgZnJhbWVfZGlnIDMKICAgIGZyYW1lX2RpZyAyCiAgICA8CiAgICBieiB0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9tdXRhYmxlX2FycmF5X2FmdGVyX2ZvckA2Cgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9tdXRhYmxlX2FycmF5X2Zvcl9ib2R5QDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NDcKICAgIC8vIGZvciAoY29uc3QgaXRlbSBvZiBtdXRhYmxlKSB7CiAgICBmcmFtZV9kaWcgMAogICAgbG9hZHMKICAgIGZyYW1lX2RpZyAzCiAgICBpbnRjXzEgLy8gOAogICAgKgogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3QzCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3QzCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NDgKICAgIC8vIHRvdGFsICs9IGl0ZW0KICAgIGZyYW1lX2RpZyAxCiAgICBkaWcgMQogICAgKwogICAgZnJhbWVfYnVyeSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NQogICAgLy8gY29uc3Qgc3RvcE51bWJlcjogdWludDY0ID0gNDIKICAgIGludGNfMyAvLyA0MgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1vZi1sb29wcy5hbGdvLnRzOjQ5CiAgICAvLyBpZiAoaXRlbSA9PT0gc3RvcE51bWJlcikgYnJlYWsKICAgID09CiAgICBieiB0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9tdXRhYmxlX2FycmF5X2FmdGVyX2lmX2Vsc2VANAoKdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheV9pZl9ib2R5QDM6Cgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9tdXRhYmxlX2FycmF5X2Jsb2NrQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLW9mLWxvb3BzLmFsZ28udHM6NTEKICAgIC8vIHJldHVybiB0b3RhbAogICAgZnJhbWVfZGlnIDEKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgp0ZXN0X2Zvcl9vZl9sb29wX25hdGl2ZV9tdXRhYmxlX2FycmF5X2FmdGVyX2lmX2Vsc2VANDoKCnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXlfZm9yX2Zvb3RlckA1OgogICAgZnJhbWVfZGlnIDMKICAgIGludGNfMiAvLyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDMKICAgIGIgdGVzdF9mb3Jfb2ZfbG9vcF9uYXRpdmVfbXV0YWJsZV9hcnJheV9mb3JfaGVhZGVyQDEKCnRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXlfYWZ0ZXJfZm9yQDY6CiAgICBiIHRlc3RfZm9yX29mX2xvb3BfbmF0aXZlX211dGFibGVfYXJyYXlfYmxvY2tANwoKCi8vIHRlc3RzL2FwcHJvdmFscy9mb3Itb2YtbG9vcHMuYWxnby50czo6Rm9yT2ZMb29wc0FsZ28uX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIKCgovLyBfcHV5YV9saWIubWVtLm5ld19zbG90KCkgLT4gdWludDY0OgpfcHV5YV9saWIubWVtLm5ld19zbG90OgoKX3B1eWFfbGliLm1lbS5uZXdfc2xvdEBlbnRyeToKICAgIGxvYWQgMAogICAgYml0bGVuCiAgICBsb2FkIDAKICAgIHB1c2hpbnQgMjU2IC8vIDI1NgogICAgZGlnIDIKICAgIC0KICAgIGludGNfMCAvLyAwCiAgICBzZXRiaXQgLy8gb24gZXJyb3I6IG5vIGF2YWlsYWJsZSBzbG90cwogICAgc3RvcmUgMAogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiAEAAgBKiYCBBUffHUAgCB//////////////////////////////////////////zUAMRsiE0EA3DYaAIAEzx8guIAEjBbuh4AEssdTv4AE0bW+7oAEocwNlE8FjgUAfQBkAEsAMgACIkMxGSISRDEYIhNENhoBSSIjWBdMSSNJWBdMgRAjWBdPAk8CTwKIAWgWKExQsCRC/88xGSISRDEYIhNENhoBiAEZFihMULAkQv+2MRkiEkQxGCITRDYaAYgA0RYoTFCwJEL/nTEZIhJEMRgiE0Q2GgGIAIIWKExQsCRC/4QxGSISRDEYIhNENhoBSSIjWBdMSSNJWBdMgRAjWBdPAk8CTwKIACAWKExQsCRC/1QxGSJMjgEAA0L/SDEYIhJEiAEsJEL/PYoDASJJi/2LAExJTgIIjAAlEkEAAYmLAY0CAAwAA0L/9IECjAGL/0L/3SSMAYv+Qv/VigEBIov/IlkiiwKLAQxBACKL/1cCAIsCIwsjWEkXiwAIjAAXJRJBAAGJiwIkCIwCQv/WQv/zigEBIkmLAYEFDEEAH4v/iwEjCyNYSReLAAiMABclEkEAAYmLASQIjAFC/9lC//OKAQEii/8iWSKLAosBDEEAIov/VwIAiwIjCyNYF4sASwEIjAAlEkEAAYmLAiQIjAJC/9ZC//OKAwGL/RYpTFApTFCL/hYpTFBQi/8WKUxQUIgAP0lPAj9JIkw+FSMKIosDiwIMQQAniwA+iwMjCyNYIiNYF4sBSwEIjAElEkEABYsBjACJiwMkCIwDQv/RQv/viTQAkzQAgYACSwIJIlQ1AIk=", @@ -211,7 +211,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/for-of-loops/ForOfLoopsAlgo.clear.teal b/tests/approvals/out/unoptimized/for-of-loops/ForOfLoopsAlgo.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/for-of-loops/ForOfLoopsAlgo.clear.teal +++ b/tests/approvals/out/unoptimized/for-of-loops/ForOfLoopsAlgo.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/global-state/TestArc4.approval.teal b/tests/approvals/out/unoptimized/global-state/TestArc4.approval.teal index 4b4dbd58a..7bdb55283 100644 --- a/tests/approvals/out/unoptimized/global-state/TestArc4.approval.teal +++ b/tests/approvals/out/unoptimized/global-state/TestArc4.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 +main_block@0: + main_block@1: // tests/approvals/global-state.algo.ts:33-34 // @contract({ stateTotals: { globalUints: 5 } }) @@ -115,6 +117,8 @@ setState: // tests/approvals/global-state.algo.ts:35 // setState(key: string, value: uint64) { proto 2 0 + +setState_block@0: // tests/approvals/global-state.algo.ts:36 // const proxy = GlobalState({ key }) frame_dig -2 @@ -130,6 +134,8 @@ deleteState: // tests/approvals/global-state.algo.ts:41 // deleteState(key: string) { proto 1 0 + +deleteState_block@0: // tests/approvals/global-state.algo.ts:42 // GlobalState({ key }).delete() frame_dig -1 @@ -139,4 +145,6 @@ deleteState: // tests/approvals/global-state.algo.ts::TestArc4.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/global-state/TestArc4.arc32.json b/tests/approvals/out/unoptimized/global-state/TestArc4.arc32.json index 4e3ca13ee..51b5acfbd 100644 --- a/tests/approvals/out/unoptimized/global-state/TestArc4.arc32.json +++ b/tests/approvals/out/unoptimized/global-state/TestArc4.arc32.json @@ -12,8 +12,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzMtMzQKICAgIC8vIEBjb250cmFjdCh7IHN0YXRlVG90YWxzOiB7IGdsb2JhbFVpbnRzOiA1IH0gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBUZXN0QXJjNCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDcKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czozMy0zNAogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHsgZ2xvYmFsVWludHM6IDUgfSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIFRlc3RBcmM0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4YTE1MDQwNjEgLy8gbWV0aG9kICJzZXRTdGF0ZShzdHJpbmcsdWludDY0KXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhmZDQ3ZmRkMSAvLyBtZXRob2QgImRlbGV0ZVN0YXRlKHN0cmluZyl2b2lkIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX3NldFN0YXRlX3JvdXRlQDMgbWFpbl9kZWxldGVTdGF0ZV9yb3V0ZUA0CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA2OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDExOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1zdGF0ZS5hbGdvLnRzOjMzLTM0CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczogeyBnbG9iYWxVaW50czogNSB9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgVGVzdEFyYzQgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czo6VGVzdEFyYzQuX19wdXlhX2FyYzRfcm91dGVyX19AMTI6CiAgICByZXR1cm4KCm1haW5fZGVsZXRlU3RhdGVfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czo0MQogICAgLy8gZGVsZXRlU3RhdGUoa2V5OiBzdHJpbmcpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czozMy0zNAogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHsgZ2xvYmFsVWludHM6IDUgfSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIFRlc3RBcmM0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZXh0cmFjdCAyIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czo0MQogICAgLy8gZGVsZXRlU3RhdGUoa2V5OiBzdHJpbmcpIHsKICAgIGNhbGxzdWIgZGVsZXRlU3RhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6OlRlc3RBcmM0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX3NldFN0YXRlX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzUKICAgIC8vIHNldFN0YXRlKGtleTogc3RyaW5nLCB2YWx1ZTogdWludDY0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzMtMzQKICAgIC8vIEBjb250cmFjdCh7IHN0YXRlVG90YWxzOiB7IGdsb2JhbFVpbnRzOiA1IH0gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBUZXN0QXJjNCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzUKICAgIC8vIHNldFN0YXRlKGtleTogc3RyaW5nLCB2YWx1ZTogdWludDY0KSB7CiAgICBjYWxsc3ViIHNldFN0YXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1zdGF0ZS5hbGdvLnRzOjpUZXN0QXJjNC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKbWFpbl9iYXJlX3JvdXRpbmdANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czozMy0zNAogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHsgZ2xvYmFsVWludHM6IDUgfSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIFRlc3RBcmM0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTEKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzMtMzQKICAgIC8vIEBjb250cmFjdCh7IHN0YXRlVG90YWxzOiB7IGdsb2JhbFVpbnRzOiA1IH0gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBUZXN0QXJjNCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1zdGF0ZS5hbGdvLnRzOjpUZXN0QXJjNC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKCi8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czo6VGVzdEFyYzQuc2V0U3RhdGUoa2V5OiBieXRlcywgdmFsdWU6IHVpbnQ2NCkgLT4gdm9pZDoKc2V0U3RhdGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzUKICAgIC8vIHNldFN0YXRlKGtleTogc3RyaW5nLCB2YWx1ZTogdWludDY0KSB7CiAgICBwcm90byAyIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czozNgogICAgLy8gY29uc3QgcHJveHkgPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5IH0pCiAgICBmcmFtZV9kaWcgLTIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czozOAogICAgLy8gcHJveHkudmFsdWUgPSB2YWx1ZQogICAgZnJhbWVfZGlnIC0xCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1zdGF0ZS5hbGdvLnRzOjpUZXN0QXJjNC5kZWxldGVTdGF0ZShrZXk6IGJ5dGVzKSAtPiB2b2lkOgpkZWxldGVTdGF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czo0MQogICAgLy8gZGVsZXRlU3RhdGUoa2V5OiBzdHJpbmcpIHsKICAgIHByb3RvIDEgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1zdGF0ZS5hbGdvLnRzOjQyCiAgICAvLyBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5IH0pLmRlbGV0ZSgpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFwcF9nbG9iYWxfZGVsCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6OlRlc3RBcmM0Ll9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzMtMzQKICAgIC8vIEBjb250cmFjdCh7IHN0YXRlVG90YWxzOiB7IGdsb2JhbFVpbnRzOiA1IH0gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBUZXN0QXJjNCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDcKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czozMy0zNAogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHsgZ2xvYmFsVWludHM6IDUgfSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIFRlc3RBcmM0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4YTE1MDQwNjEgLy8gbWV0aG9kICJzZXRTdGF0ZShzdHJpbmcsdWludDY0KXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhmZDQ3ZmRkMSAvLyBtZXRob2QgImRlbGV0ZVN0YXRlKHN0cmluZyl2b2lkIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX3NldFN0YXRlX3JvdXRlQDMgbWFpbl9kZWxldGVTdGF0ZV9yb3V0ZUA0CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA2OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDExOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1zdGF0ZS5hbGdvLnRzOjMzLTM0CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczogeyBnbG9iYWxVaW50czogNSB9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgVGVzdEFyYzQgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czo6VGVzdEFyYzQuX19wdXlhX2FyYzRfcm91dGVyX19AMTI6CiAgICByZXR1cm4KCm1haW5fZGVsZXRlU3RhdGVfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czo0MQogICAgLy8gZGVsZXRlU3RhdGUoa2V5OiBzdHJpbmcpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czozMy0zNAogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHsgZ2xvYmFsVWludHM6IDUgfSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIFRlc3RBcmM0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZXh0cmFjdCAyIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czo0MQogICAgLy8gZGVsZXRlU3RhdGUoa2V5OiBzdHJpbmcpIHsKICAgIGNhbGxzdWIgZGVsZXRlU3RhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6OlRlc3RBcmM0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX3NldFN0YXRlX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzUKICAgIC8vIHNldFN0YXRlKGtleTogc3RyaW5nLCB2YWx1ZTogdWludDY0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzMtMzQKICAgIC8vIEBjb250cmFjdCh7IHN0YXRlVG90YWxzOiB7IGdsb2JhbFVpbnRzOiA1IH0gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBUZXN0QXJjNCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzUKICAgIC8vIHNldFN0YXRlKGtleTogc3RyaW5nLCB2YWx1ZTogdWludDY0KSB7CiAgICBjYWxsc3ViIHNldFN0YXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1zdGF0ZS5hbGdvLnRzOjpUZXN0QXJjNC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKbWFpbl9iYXJlX3JvdXRpbmdANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czozMy0zNAogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHsgZ2xvYmFsVWludHM6IDUgfSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIFRlc3RBcmM0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTEKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzMtMzQKICAgIC8vIEBjb250cmFjdCh7IHN0YXRlVG90YWxzOiB7IGdsb2JhbFVpbnRzOiA1IH0gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBUZXN0QXJjNCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1zdGF0ZS5hbGdvLnRzOjpUZXN0QXJjNC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKCi8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czo6VGVzdEFyYzQuc2V0U3RhdGUoa2V5OiBieXRlcywgdmFsdWU6IHVpbnQ2NCkgLT4gdm9pZDoKc2V0U3RhdGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzUKICAgIC8vIHNldFN0YXRlKGtleTogc3RyaW5nLCB2YWx1ZTogdWludDY0KSB7CiAgICBwcm90byAyIDAKCnNldFN0YXRlX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzYKICAgIC8vIGNvbnN0IHByb3h5ID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleSB9KQogICAgZnJhbWVfZGlnIC0yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzgKICAgIC8vIHByb3h5LnZhbHVlID0gdmFsdWUKICAgIGZyYW1lX2RpZyAtMQogICAgYXBwX2dsb2JhbF9wdXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czo6VGVzdEFyYzQuZGVsZXRlU3RhdGUoa2V5OiBieXRlcykgLT4gdm9pZDoKZGVsZXRlU3RhdGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6NDEKICAgIC8vIGRlbGV0ZVN0YXRlKGtleTogc3RyaW5nKSB7CiAgICBwcm90byAxIDAKCmRlbGV0ZVN0YXRlX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6NDIKICAgIC8vIEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXkgfSkuZGVsZXRlKCkKICAgIGZyYW1lX2RpZyAtMQogICAgYXBwX2dsb2JhbF9kZWwKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czo6VGVzdEFyYzQuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/global-state/TestArc4.arc56.json b/tests/approvals/out/unoptimized/global-state/TestArc4.arc56.json index ae06ea3a4..892f12351 100644 --- a/tests/approvals/out/unoptimized/global-state/TestArc4.arc56.json +++ b/tests/approvals/out/unoptimized/global-state/TestArc4.arc56.json @@ -114,8 +114,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzMtMzQKICAgIC8vIEBjb250cmFjdCh7IHN0YXRlVG90YWxzOiB7IGdsb2JhbFVpbnRzOiA1IH0gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBUZXN0QXJjNCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDcKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czozMy0zNAogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHsgZ2xvYmFsVWludHM6IDUgfSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIFRlc3RBcmM0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4YTE1MDQwNjEgLy8gbWV0aG9kICJzZXRTdGF0ZShzdHJpbmcsdWludDY0KXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhmZDQ3ZmRkMSAvLyBtZXRob2QgImRlbGV0ZVN0YXRlKHN0cmluZyl2b2lkIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX3NldFN0YXRlX3JvdXRlQDMgbWFpbl9kZWxldGVTdGF0ZV9yb3V0ZUA0CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA2OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDExOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1zdGF0ZS5hbGdvLnRzOjMzLTM0CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczogeyBnbG9iYWxVaW50czogNSB9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgVGVzdEFyYzQgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czo6VGVzdEFyYzQuX19wdXlhX2FyYzRfcm91dGVyX19AMTI6CiAgICByZXR1cm4KCm1haW5fZGVsZXRlU3RhdGVfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czo0MQogICAgLy8gZGVsZXRlU3RhdGUoa2V5OiBzdHJpbmcpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czozMy0zNAogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHsgZ2xvYmFsVWludHM6IDUgfSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIFRlc3RBcmM0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZXh0cmFjdCAyIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czo0MQogICAgLy8gZGVsZXRlU3RhdGUoa2V5OiBzdHJpbmcpIHsKICAgIGNhbGxzdWIgZGVsZXRlU3RhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6OlRlc3RBcmM0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX3NldFN0YXRlX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzUKICAgIC8vIHNldFN0YXRlKGtleTogc3RyaW5nLCB2YWx1ZTogdWludDY0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzMtMzQKICAgIC8vIEBjb250cmFjdCh7IHN0YXRlVG90YWxzOiB7IGdsb2JhbFVpbnRzOiA1IH0gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBUZXN0QXJjNCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzUKICAgIC8vIHNldFN0YXRlKGtleTogc3RyaW5nLCB2YWx1ZTogdWludDY0KSB7CiAgICBjYWxsc3ViIHNldFN0YXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1zdGF0ZS5hbGdvLnRzOjpUZXN0QXJjNC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKbWFpbl9iYXJlX3JvdXRpbmdANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czozMy0zNAogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHsgZ2xvYmFsVWludHM6IDUgfSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIFRlc3RBcmM0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTEKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzMtMzQKICAgIC8vIEBjb250cmFjdCh7IHN0YXRlVG90YWxzOiB7IGdsb2JhbFVpbnRzOiA1IH0gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBUZXN0QXJjNCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1zdGF0ZS5hbGdvLnRzOjpUZXN0QXJjNC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKCi8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czo6VGVzdEFyYzQuc2V0U3RhdGUoa2V5OiBieXRlcywgdmFsdWU6IHVpbnQ2NCkgLT4gdm9pZDoKc2V0U3RhdGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzUKICAgIC8vIHNldFN0YXRlKGtleTogc3RyaW5nLCB2YWx1ZTogdWludDY0KSB7CiAgICBwcm90byAyIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czozNgogICAgLy8gY29uc3QgcHJveHkgPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5IH0pCiAgICBmcmFtZV9kaWcgLTIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czozOAogICAgLy8gcHJveHkudmFsdWUgPSB2YWx1ZQogICAgZnJhbWVfZGlnIC0xCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1zdGF0ZS5hbGdvLnRzOjpUZXN0QXJjNC5kZWxldGVTdGF0ZShrZXk6IGJ5dGVzKSAtPiB2b2lkOgpkZWxldGVTdGF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czo0MQogICAgLy8gZGVsZXRlU3RhdGUoa2V5OiBzdHJpbmcpIHsKICAgIHByb3RvIDEgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1zdGF0ZS5hbGdvLnRzOjQyCiAgICAvLyBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5IH0pLmRlbGV0ZSgpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFwcF9nbG9iYWxfZGVsCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6OlRlc3RBcmM0Ll9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzMtMzQKICAgIC8vIEBjb250cmFjdCh7IHN0YXRlVG90YWxzOiB7IGdsb2JhbFVpbnRzOiA1IH0gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBUZXN0QXJjNCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDcKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czozMy0zNAogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHsgZ2xvYmFsVWludHM6IDUgfSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIFRlc3RBcmM0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4YTE1MDQwNjEgLy8gbWV0aG9kICJzZXRTdGF0ZShzdHJpbmcsdWludDY0KXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhmZDQ3ZmRkMSAvLyBtZXRob2QgImRlbGV0ZVN0YXRlKHN0cmluZyl2b2lkIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX3NldFN0YXRlX3JvdXRlQDMgbWFpbl9kZWxldGVTdGF0ZV9yb3V0ZUA0CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA2OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDExOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1zdGF0ZS5hbGdvLnRzOjMzLTM0CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczogeyBnbG9iYWxVaW50czogNSB9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgVGVzdEFyYzQgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czo6VGVzdEFyYzQuX19wdXlhX2FyYzRfcm91dGVyX19AMTI6CiAgICByZXR1cm4KCm1haW5fZGVsZXRlU3RhdGVfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czo0MQogICAgLy8gZGVsZXRlU3RhdGUoa2V5OiBzdHJpbmcpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czozMy0zNAogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHsgZ2xvYmFsVWludHM6IDUgfSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIFRlc3RBcmM0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZXh0cmFjdCAyIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czo0MQogICAgLy8gZGVsZXRlU3RhdGUoa2V5OiBzdHJpbmcpIHsKICAgIGNhbGxzdWIgZGVsZXRlU3RhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6OlRlc3RBcmM0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX3NldFN0YXRlX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzUKICAgIC8vIHNldFN0YXRlKGtleTogc3RyaW5nLCB2YWx1ZTogdWludDY0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzMtMzQKICAgIC8vIEBjb250cmFjdCh7IHN0YXRlVG90YWxzOiB7IGdsb2JhbFVpbnRzOiA1IH0gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBUZXN0QXJjNCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzUKICAgIC8vIHNldFN0YXRlKGtleTogc3RyaW5nLCB2YWx1ZTogdWludDY0KSB7CiAgICBjYWxsc3ViIHNldFN0YXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1zdGF0ZS5hbGdvLnRzOjpUZXN0QXJjNC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKbWFpbl9iYXJlX3JvdXRpbmdANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czozMy0zNAogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHsgZ2xvYmFsVWludHM6IDUgfSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIFRlc3RBcmM0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTEKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzMtMzQKICAgIC8vIEBjb250cmFjdCh7IHN0YXRlVG90YWxzOiB7IGdsb2JhbFVpbnRzOiA1IH0gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBUZXN0QXJjNCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2dsb2JhbC1zdGF0ZS5hbGdvLnRzOjpUZXN0QXJjNC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMgoKCi8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czo6VGVzdEFyYzQuc2V0U3RhdGUoa2V5OiBieXRlcywgdmFsdWU6IHVpbnQ2NCkgLT4gdm9pZDoKc2V0U3RhdGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzUKICAgIC8vIHNldFN0YXRlKGtleTogc3RyaW5nLCB2YWx1ZTogdWludDY0KSB7CiAgICBwcm90byAyIDAKCnNldFN0YXRlX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzYKICAgIC8vIGNvbnN0IHByb3h5ID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleSB9KQogICAgZnJhbWVfZGlnIC0yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6MzgKICAgIC8vIHByb3h5LnZhbHVlID0gdmFsdWUKICAgIGZyYW1lX2RpZyAtMQogICAgYXBwX2dsb2JhbF9wdXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czo6VGVzdEFyYzQuZGVsZXRlU3RhdGUoa2V5OiBieXRlcykgLT4gdm9pZDoKZGVsZXRlU3RhdGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6NDEKICAgIC8vIGRlbGV0ZVN0YXRlKGtleTogc3RyaW5nKSB7CiAgICBwcm90byAxIDAKCmRlbGV0ZVN0YXRlX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZ2xvYmFsLXN0YXRlLmFsZ28udHM6NDIKICAgIC8vIEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXkgfSkuZGVsZXRlKCkKICAgIGZyYW1lX2RpZyAtMQogICAgYXBwX2dsb2JhbF9kZWwKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9nbG9iYWwtc3RhdGUuYWxnby50czo6VGVzdEFyYzQuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAExGyITQQBLNhoAgAShUEBhgAT9R/3RTwKOAgAZAAIiQzEZIhJEMRgiE0Q2GgFXAgCIAD8jQv/oMRkiEkQxGCITRDYaAVcCADYaAheIABsjQv/NMRkiTI4BAANC/8ExGCISRIgAFCNC/7aKAgCL/ov/Z4mKAQCL/2mJiQ==", @@ -126,7 +126,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/global-state/TestArc4.clear.teal b/tests/approvals/out/unoptimized/global-state/TestArc4.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/global-state/TestArc4.clear.teal +++ b/tests/approvals/out/unoptimized/global-state/TestArc4.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/global-state/TestContract.approval.teal b/tests/approvals/out/unoptimized/global-state/TestContract.approval.teal index d8692660a..964005c19 100644 --- a/tests/approvals/out/unoptimized/global-state/TestContract.approval.teal +++ b/tests/approvals/out/unoptimized/global-state/TestContract.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 2 bytecblock "testState" "baseTestState" "testing 123" + +main_block@0: txn ApplicationID bnz main_after_if_else@2 @@ -59,6 +61,8 @@ main_after_if_else@2: // tests/approvals/global-state.algo.ts::TestContract.constructor() -> void: constructor: + +constructor_block@0: // tests/approvals/global-state.algo.ts:16 // super() callsub tests/approvals/global-state.algo.ts::BaseTestContract.constructor @@ -108,6 +112,8 @@ constructor: // tests/approvals/global-state.algo.ts::BaseTestContract.constructor() -> void: tests/approvals/global-state.algo.ts::BaseTestContract.constructor: +tests/approvals/global-state.algo.ts::BaseTestContract.constructor_block@0: + tests/approvals/global-state.algo.ts::BaseTestContract.constructor_block@1: tests/approvals/global-state.algo.ts::BaseTestContract.constructor_after_inlined_@algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.constructor@2: diff --git a/tests/approvals/out/unoptimized/global-state/TestContract.clear.teal b/tests/approvals/out/unoptimized/global-state/TestContract.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/global-state/TestContract.clear.teal +++ b/tests/approvals/out/unoptimized/global-state/TestContract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/implicit-create/BaseWithAbiCreate.approval.teal b/tests/approvals/out/unoptimized/implicit-create/BaseWithAbiCreate.approval.teal index 73b8a6162..154d3d08d 100644 --- a/tests/approvals/out/unoptimized/implicit-create/BaseWithAbiCreate.approval.teal +++ b/tests/approvals/out/unoptimized/implicit-create/BaseWithAbiCreate.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 +main_block@0: + main_block@1: // tests/approvals/implicit-create.algo.ts:17 // class BaseWithAbiCreate extends Contract { @@ -54,4 +56,6 @@ main_bare_routing@6: // tests/approvals/implicit-create.algo.ts::BaseWithAbiCreate.create() -> void: create: + +create_block@0: retsub diff --git a/tests/approvals/out/unoptimized/implicit-create/BaseWithAbiCreate.arc32.json b/tests/approvals/out/unoptimized/implicit-create/BaseWithAbiCreate.arc32.json index a6e9496fa..dc51946c5 100644 --- a/tests/approvals/out/unoptimized/implicit-create/BaseWithAbiCreate.arc32.json +++ b/tests/approvals/out/unoptimized/implicit-create/BaseWithAbiCreate.arc32.json @@ -7,8 +7,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMAoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjE3CiAgICAvLyBjbGFzcyBCYXNlV2l0aEFiaUNyZWF0ZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czoxNwogICAgLy8gY2xhc3MgQmFzZVdpdGhBYmlDcmVhdGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg0YzVjNjFiYSAvLyBtZXRob2QgImNyZWF0ZSgpdm9pZCIKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fY3JlYXRlX3JvdXRlQDMKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA0OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDU6CgptYWluX2FmdGVyX2lmX2Vsc2VANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czoxNwogICAgLy8gY2xhc3MgQmFzZVdpdGhBYmlDcmVhdGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6QmFzZVdpdGhBYmlDcmVhdGUuX19wdXlhX2FyYzRfcm91dGVyX19AODoKICAgIHJldHVybgoKbWFpbl9jcmVhdGVfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czoxOAogICAgLy8gQGFiaW1ldGhvZCh7IG9uQ3JlYXRlOiAncmVxdWlyZScgfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBjcmVhdGUKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6OkJhc2VXaXRoQWJpQ3JlYXRlLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDgKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUA3CgoKLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjpCYXNlV2l0aEFiaUNyZWF0ZS5jcmVhdGUoKSAtPiB2b2lkOgpjcmVhdGU6CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMAoKbWFpbl9ibG9ja0AwOgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjE3CiAgICAvLyBjbGFzcyBCYXNlV2l0aEFiaUNyZWF0ZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czoxNwogICAgLy8gY2xhc3MgQmFzZVdpdGhBYmlDcmVhdGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg0YzVjNjFiYSAvLyBtZXRob2QgImNyZWF0ZSgpdm9pZCIKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fY3JlYXRlX3JvdXRlQDMKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA0OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDU6CgptYWluX2FmdGVyX2lmX2Vsc2VANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czoxNwogICAgLy8gY2xhc3MgQmFzZVdpdGhBYmlDcmVhdGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6QmFzZVdpdGhBYmlDcmVhdGUuX19wdXlhX2FyYzRfcm91dGVyX19AODoKICAgIHJldHVybgoKbWFpbl9jcmVhdGVfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czoxOAogICAgLy8gQGFiaW1ldGhvZCh7IG9uQ3JlYXRlOiAncmVxdWlyZScgfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBjcmVhdGUKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6OkJhc2VXaXRoQWJpQ3JlYXRlLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDgKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUA3CgoKLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjpCYXNlV2l0aEFiaUNyZWF0ZS5jcmVhdGUoKSAtPiB2b2lkOgpjcmVhdGU6CgpjcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/implicit-create/BaseWithAbiCreate.arc56.json b/tests/approvals/out/unoptimized/implicit-create/BaseWithAbiCreate.arc56.json index 76a6bba5f..56f6b1cef 100644 --- a/tests/approvals/out/unoptimized/implicit-create/BaseWithAbiCreate.arc56.json +++ b/tests/approvals/out/unoptimized/implicit-create/BaseWithAbiCreate.arc56.json @@ -74,8 +74,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMAoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjE3CiAgICAvLyBjbGFzcyBCYXNlV2l0aEFiaUNyZWF0ZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czoxNwogICAgLy8gY2xhc3MgQmFzZVdpdGhBYmlDcmVhdGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg0YzVjNjFiYSAvLyBtZXRob2QgImNyZWF0ZSgpdm9pZCIKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fY3JlYXRlX3JvdXRlQDMKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA0OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDU6CgptYWluX2FmdGVyX2lmX2Vsc2VANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czoxNwogICAgLy8gY2xhc3MgQmFzZVdpdGhBYmlDcmVhdGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6QmFzZVdpdGhBYmlDcmVhdGUuX19wdXlhX2FyYzRfcm91dGVyX19AODoKICAgIHJldHVybgoKbWFpbl9jcmVhdGVfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czoxOAogICAgLy8gQGFiaW1ldGhvZCh7IG9uQ3JlYXRlOiAncmVxdWlyZScgfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBjcmVhdGUKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6OkJhc2VXaXRoQWJpQ3JlYXRlLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDgKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUA3CgoKLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjpCYXNlV2l0aEFiaUNyZWF0ZS5jcmVhdGUoKSAtPiB2b2lkOgpjcmVhdGU6CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMAoKbWFpbl9ibG9ja0AwOgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjE3CiAgICAvLyBjbGFzcyBCYXNlV2l0aEFiaUNyZWF0ZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czoxNwogICAgLy8gY2xhc3MgQmFzZVdpdGhBYmlDcmVhdGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg0YzVjNjFiYSAvLyBtZXRob2QgImNyZWF0ZSgpdm9pZCIKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fY3JlYXRlX3JvdXRlQDMKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA0OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDU6CgptYWluX2FmdGVyX2lmX2Vsc2VANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czoxNwogICAgLy8gY2xhc3MgQmFzZVdpdGhBYmlDcmVhdGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6QmFzZVdpdGhBYmlDcmVhdGUuX19wdXlhX2FyYzRfcm91dGVyX19AODoKICAgIHJldHVybgoKbWFpbl9jcmVhdGVfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czoxOAogICAgLy8gQGFiaW1ldGhvZCh7IG9uQ3JlYXRlOiAncmVxdWlyZScgfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBjcmVhdGUKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6OkJhc2VXaXRoQWJpQ3JlYXRlLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDgKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUA3CgoKLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjpCYXNlV2l0aEFiaUNyZWF0ZS5jcmVhdGUoKSAtPiB2b2lkOgpjcmVhdGU6CgpjcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiABADEbIhNBACI2GgCABExcYbpMjgEAAiJDMRkiEkQxGCISRIgACIEBQv/tQv/piQ==", @@ -86,7 +86,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/implicit-create/BaseWithAbiCreate.clear.teal b/tests/approvals/out/unoptimized/implicit-create/BaseWithAbiCreate.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/implicit-create/BaseWithAbiCreate.clear.teal +++ b/tests/approvals/out/unoptimized/implicit-create/BaseWithAbiCreate.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/implicit-create/BaseWithBareCreate.approval.teal b/tests/approvals/out/unoptimized/implicit-create/BaseWithBareCreate.approval.teal index 615f9390b..980a8e038 100644 --- a/tests/approvals/out/unoptimized/implicit-create/BaseWithBareCreate.approval.teal +++ b/tests/approvals/out/unoptimized/implicit-create/BaseWithBareCreate.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 +main_block@0: + main_block@1: // tests/approvals/implicit-create.algo.ts:13 // class BaseWithBareCreate extends Contract { @@ -50,4 +52,6 @@ main_create@4: // tests/approvals/implicit-create.algo.ts::BaseWithBareCreate.create() -> void: create: + +create_block@0: retsub diff --git a/tests/approvals/out/unoptimized/implicit-create/BaseWithBareCreate.arc32.json b/tests/approvals/out/unoptimized/implicit-create/BaseWithBareCreate.arc32.json index bcb1ea605..bc20de2fc 100644 --- a/tests/approvals/out/unoptimized/implicit-create/BaseWithBareCreate.arc32.json +++ b/tests/approvals/out/unoptimized/implicit-create/BaseWithBareCreate.arc32.json @@ -1,8 +1,8 @@ { "hints": {}, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMAoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjEzCiAgICAvLyBjbGFzcyBCYXNlV2l0aEJhcmVDcmVhdGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0AzCgptYWluX2FiaV9yb3V0aW5nQDI6CgptYWluX2FmdGVyX2lmX2Vsc2VANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czoxMwogICAgLy8gY2xhc3MgQmFzZVdpdGhCYXJlQ3JlYXRlIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6OkJhc2VXaXRoQmFyZUNyZWF0ZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0A4OgogICAgcmV0dXJuCgptYWluX2JhcmVfcm91dGluZ0AzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjEzCiAgICAvLyBjbGFzcyBCYXNlV2l0aEJhcmVDcmVhdGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9jcmVhdGVANAoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDU6CgptYWluX3N3aXRjaF9jYXNlX25leHRANjoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDcKCm1haW5fY3JlYXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6MTQKICAgIC8vIEBiYXJlbWV0aG9kKHsgb25DcmVhdGU6ICdyZXF1aXJlJyB9KQogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBjcmVhdGUKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6OkJhc2VXaXRoQmFyZUNyZWF0ZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0A4CgoKLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjpCYXNlV2l0aEJhcmVDcmVhdGUuY3JlYXRlKCkgLT4gdm9pZDoKY3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMAoKbWFpbl9ibG9ja0AwOgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjEzCiAgICAvLyBjbGFzcyBCYXNlV2l0aEJhcmVDcmVhdGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0AzCgptYWluX2FiaV9yb3V0aW5nQDI6CgptYWluX2FmdGVyX2lmX2Vsc2VANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czoxMwogICAgLy8gY2xhc3MgQmFzZVdpdGhCYXJlQ3JlYXRlIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6OkJhc2VXaXRoQmFyZUNyZWF0ZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0A4OgogICAgcmV0dXJuCgptYWluX2JhcmVfcm91dGluZ0AzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjEzCiAgICAvLyBjbGFzcyBCYXNlV2l0aEJhcmVDcmVhdGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9jcmVhdGVANAoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDU6CgptYWluX3N3aXRjaF9jYXNlX25leHRANjoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDcKCm1haW5fY3JlYXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6MTQKICAgIC8vIEBiYXJlbWV0aG9kKHsgb25DcmVhdGU6ICdyZXF1aXJlJyB9KQogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBjcmVhdGUKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6OkJhc2VXaXRoQmFyZUNyZWF0ZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0A4CgoKLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjpCYXNlV2l0aEJhcmVDcmVhdGUuY3JlYXRlKCkgLT4gdm9pZDoKY3JlYXRlOgoKY3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/implicit-create/BaseWithBareCreate.arc56.json b/tests/approvals/out/unoptimized/implicit-create/BaseWithBareCreate.arc56.json index 40d36c07e..e7653cd26 100644 --- a/tests/approvals/out/unoptimized/implicit-create/BaseWithBareCreate.arc56.json +++ b/tests/approvals/out/unoptimized/implicit-create/BaseWithBareCreate.arc56.json @@ -53,8 +53,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMAoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjEzCiAgICAvLyBjbGFzcyBCYXNlV2l0aEJhcmVDcmVhdGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0AzCgptYWluX2FiaV9yb3V0aW5nQDI6CgptYWluX2FmdGVyX2lmX2Vsc2VANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czoxMwogICAgLy8gY2xhc3MgQmFzZVdpdGhCYXJlQ3JlYXRlIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6OkJhc2VXaXRoQmFyZUNyZWF0ZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0A4OgogICAgcmV0dXJuCgptYWluX2JhcmVfcm91dGluZ0AzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjEzCiAgICAvLyBjbGFzcyBCYXNlV2l0aEJhcmVDcmVhdGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9jcmVhdGVANAoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDU6CgptYWluX3N3aXRjaF9jYXNlX25leHRANjoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDcKCm1haW5fY3JlYXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6MTQKICAgIC8vIEBiYXJlbWV0aG9kKHsgb25DcmVhdGU6ICdyZXF1aXJlJyB9KQogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBjcmVhdGUKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6OkJhc2VXaXRoQmFyZUNyZWF0ZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0A4CgoKLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjpCYXNlV2l0aEJhcmVDcmVhdGUuY3JlYXRlKCkgLT4gdm9pZDoKY3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMAoKbWFpbl9ibG9ja0AwOgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjEzCiAgICAvLyBjbGFzcyBCYXNlV2l0aEJhcmVDcmVhdGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0AzCgptYWluX2FiaV9yb3V0aW5nQDI6CgptYWluX2FmdGVyX2lmX2Vsc2VANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czoxMwogICAgLy8gY2xhc3MgQmFzZVdpdGhCYXJlQ3JlYXRlIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6OkJhc2VXaXRoQmFyZUNyZWF0ZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0A4OgogICAgcmV0dXJuCgptYWluX2JhcmVfcm91dGluZ0AzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjEzCiAgICAvLyBjbGFzcyBCYXNlV2l0aEJhcmVDcmVhdGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9jcmVhdGVANAoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDU6CgptYWluX3N3aXRjaF9jYXNlX25leHRANjoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDcKCm1haW5fY3JlYXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6MTQKICAgIC8vIEBiYXJlbWV0aG9kKHsgb25DcmVhdGU6ICdyZXF1aXJlJyB9KQogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBjcmVhdGUKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6OkJhc2VXaXRoQmFyZUNyZWF0ZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0A4CgoKLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjpCYXNlV2l0aEJhcmVDcmVhdGUuY3JlYXRlKCkgLT4gdm9pZDoKY3JlYXRlOgoKY3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiABADEbIhNBAAIiQzEZIkyOAQADQv/zMRgiEkSIAAWBAUL/54k=", @@ -65,7 +65,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/implicit-create/BaseWithBareCreate.clear.teal b/tests/approvals/out/unoptimized/implicit-create/BaseWithBareCreate.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/implicit-create/BaseWithBareCreate.clear.teal +++ b/tests/approvals/out/unoptimized/implicit-create/BaseWithBareCreate.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/implicit-create/ExplicitAbiCreateFromBase.approval.teal b/tests/approvals/out/unoptimized/implicit-create/ExplicitAbiCreateFromBase.approval.teal index 1e75f0f80..cef24ad3d 100644 --- a/tests/approvals/out/unoptimized/implicit-create/ExplicitAbiCreateFromBase.approval.teal +++ b/tests/approvals/out/unoptimized/implicit-create/ExplicitAbiCreateFromBase.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 +main_block@0: + main_block@1: // tests/approvals/implicit-create.algo.ts:23 // export class ExplicitAbiCreateFromBase extends BaseWithAbiCreate {} @@ -54,4 +56,6 @@ main_bare_routing@6: // tests/approvals/implicit-create.algo.ts::BaseWithAbiCreate.create() -> void: create: + +create_block@0: retsub diff --git a/tests/approvals/out/unoptimized/implicit-create/ExplicitAbiCreateFromBase.arc32.json b/tests/approvals/out/unoptimized/implicit-create/ExplicitAbiCreateFromBase.arc32.json index bb061979a..6c74991c9 100644 --- a/tests/approvals/out/unoptimized/implicit-create/ExplicitAbiCreateFromBase.arc32.json +++ b/tests/approvals/out/unoptimized/implicit-create/ExplicitAbiCreateFromBase.arc32.json @@ -7,8 +7,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMAoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjIzCiAgICAvLyBleHBvcnQgY2xhc3MgRXhwbGljaXRBYmlDcmVhdGVGcm9tQmFzZSBleHRlbmRzIEJhc2VXaXRoQWJpQ3JlYXRlIHt9CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6MjMKICAgIC8vIGV4cG9ydCBjbGFzcyBFeHBsaWNpdEFiaUNyZWF0ZUZyb21CYXNlIGV4dGVuZHMgQmFzZVdpdGhBYmlDcmVhdGUge30KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDRjNWM2MWJhIC8vIG1ldGhvZCAiY3JlYXRlKCl2b2lkIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9jcmVhdGVfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjIzCiAgICAvLyBleHBvcnQgY2xhc3MgRXhwbGljaXRBYmlDcmVhdGVGcm9tQmFzZSBleHRlbmRzIEJhc2VXaXRoQWJpQ3JlYXRlIHt9CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6RXhwbGljaXRBYmlDcmVhdGVGcm9tQmFzZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0A4OgogICAgcmV0dXJuCgptYWluX2NyZWF0ZV9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjE4CiAgICAvLyBAYWJpbWV0aG9kKHsgb25DcmVhdGU6ICdyZXF1aXJlJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIGNyZWF0ZQogICAgcHVzaGludCAxIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6RXhwbGljaXRBYmlDcmVhdGVGcm9tQmFzZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0A4CgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VANwoKCi8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6QmFzZVdpdGhBYmlDcmVhdGUuY3JlYXRlKCkgLT4gdm9pZDoKY3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMAoKbWFpbl9ibG9ja0AwOgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjIzCiAgICAvLyBleHBvcnQgY2xhc3MgRXhwbGljaXRBYmlDcmVhdGVGcm9tQmFzZSBleHRlbmRzIEJhc2VXaXRoQWJpQ3JlYXRlIHt9CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6MjMKICAgIC8vIGV4cG9ydCBjbGFzcyBFeHBsaWNpdEFiaUNyZWF0ZUZyb21CYXNlIGV4dGVuZHMgQmFzZVdpdGhBYmlDcmVhdGUge30KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDRjNWM2MWJhIC8vIG1ldGhvZCAiY3JlYXRlKCl2b2lkIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9jcmVhdGVfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjIzCiAgICAvLyBleHBvcnQgY2xhc3MgRXhwbGljaXRBYmlDcmVhdGVGcm9tQmFzZSBleHRlbmRzIEJhc2VXaXRoQWJpQ3JlYXRlIHt9CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6RXhwbGljaXRBYmlDcmVhdGVGcm9tQmFzZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0A4OgogICAgcmV0dXJuCgptYWluX2NyZWF0ZV9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjE4CiAgICAvLyBAYWJpbWV0aG9kKHsgb25DcmVhdGU6ICdyZXF1aXJlJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIGNyZWF0ZQogICAgcHVzaGludCAxIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6RXhwbGljaXRBYmlDcmVhdGVGcm9tQmFzZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0A4CgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VANwoKCi8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6QmFzZVdpdGhBYmlDcmVhdGUuY3JlYXRlKCkgLT4gdm9pZDoKY3JlYXRlOgoKY3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/implicit-create/ExplicitAbiCreateFromBase.arc56.json b/tests/approvals/out/unoptimized/implicit-create/ExplicitAbiCreateFromBase.arc56.json index 7cabe8a4d..4e05497c8 100644 --- a/tests/approvals/out/unoptimized/implicit-create/ExplicitAbiCreateFromBase.arc56.json +++ b/tests/approvals/out/unoptimized/implicit-create/ExplicitAbiCreateFromBase.arc56.json @@ -74,8 +74,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMAoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjIzCiAgICAvLyBleHBvcnQgY2xhc3MgRXhwbGljaXRBYmlDcmVhdGVGcm9tQmFzZSBleHRlbmRzIEJhc2VXaXRoQWJpQ3JlYXRlIHt9CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6MjMKICAgIC8vIGV4cG9ydCBjbGFzcyBFeHBsaWNpdEFiaUNyZWF0ZUZyb21CYXNlIGV4dGVuZHMgQmFzZVdpdGhBYmlDcmVhdGUge30KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDRjNWM2MWJhIC8vIG1ldGhvZCAiY3JlYXRlKCl2b2lkIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9jcmVhdGVfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjIzCiAgICAvLyBleHBvcnQgY2xhc3MgRXhwbGljaXRBYmlDcmVhdGVGcm9tQmFzZSBleHRlbmRzIEJhc2VXaXRoQWJpQ3JlYXRlIHt9CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6RXhwbGljaXRBYmlDcmVhdGVGcm9tQmFzZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0A4OgogICAgcmV0dXJuCgptYWluX2NyZWF0ZV9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjE4CiAgICAvLyBAYWJpbWV0aG9kKHsgb25DcmVhdGU6ICdyZXF1aXJlJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIGNyZWF0ZQogICAgcHVzaGludCAxIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6RXhwbGljaXRBYmlDcmVhdGVGcm9tQmFzZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0A4CgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VANwoKCi8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6QmFzZVdpdGhBYmlDcmVhdGUuY3JlYXRlKCkgLT4gdm9pZDoKY3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMAoKbWFpbl9ibG9ja0AwOgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjIzCiAgICAvLyBleHBvcnQgY2xhc3MgRXhwbGljaXRBYmlDcmVhdGVGcm9tQmFzZSBleHRlbmRzIEJhc2VXaXRoQWJpQ3JlYXRlIHt9CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6MjMKICAgIC8vIGV4cG9ydCBjbGFzcyBFeHBsaWNpdEFiaUNyZWF0ZUZyb21CYXNlIGV4dGVuZHMgQmFzZVdpdGhBYmlDcmVhdGUge30KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDRjNWM2MWJhIC8vIG1ldGhvZCAiY3JlYXRlKCl2b2lkIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9jcmVhdGVfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjIzCiAgICAvLyBleHBvcnQgY2xhc3MgRXhwbGljaXRBYmlDcmVhdGVGcm9tQmFzZSBleHRlbmRzIEJhc2VXaXRoQWJpQ3JlYXRlIHt9CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6RXhwbGljaXRBYmlDcmVhdGVGcm9tQmFzZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0A4OgogICAgcmV0dXJuCgptYWluX2NyZWF0ZV9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjE4CiAgICAvLyBAYWJpbWV0aG9kKHsgb25DcmVhdGU6ICdyZXF1aXJlJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIGNyZWF0ZQogICAgcHVzaGludCAxIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6RXhwbGljaXRBYmlDcmVhdGVGcm9tQmFzZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0A4CgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VANwoKCi8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6QmFzZVdpdGhBYmlDcmVhdGUuY3JlYXRlKCkgLT4gdm9pZDoKY3JlYXRlOgoKY3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiABADEbIhNBACI2GgCABExcYbpMjgEAAiJDMRkiEkQxGCISRIgACIEBQv/tQv/piQ==", @@ -86,7 +86,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/implicit-create/ExplicitAbiCreateFromBase.clear.teal b/tests/approvals/out/unoptimized/implicit-create/ExplicitAbiCreateFromBase.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/implicit-create/ExplicitAbiCreateFromBase.clear.teal +++ b/tests/approvals/out/unoptimized/implicit-create/ExplicitAbiCreateFromBase.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/implicit-create/ExplicitBareCreateFromBase.approval.teal b/tests/approvals/out/unoptimized/implicit-create/ExplicitBareCreateFromBase.approval.teal index 50caabd3e..65930a089 100644 --- a/tests/approvals/out/unoptimized/implicit-create/ExplicitBareCreateFromBase.approval.teal +++ b/tests/approvals/out/unoptimized/implicit-create/ExplicitBareCreateFromBase.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 +main_block@0: + main_block@1: // tests/approvals/implicit-create.algo.ts:21 // export class ExplicitBareCreateFromBase extends BaseWithBareCreate {} @@ -50,4 +52,6 @@ main_create@4: // tests/approvals/implicit-create.algo.ts::BaseWithBareCreate.create() -> void: create: + +create_block@0: retsub diff --git a/tests/approvals/out/unoptimized/implicit-create/ExplicitBareCreateFromBase.arc32.json b/tests/approvals/out/unoptimized/implicit-create/ExplicitBareCreateFromBase.arc32.json index 4b989aaea..831fa1253 100644 --- a/tests/approvals/out/unoptimized/implicit-create/ExplicitBareCreateFromBase.arc32.json +++ b/tests/approvals/out/unoptimized/implicit-create/ExplicitBareCreateFromBase.arc32.json @@ -1,8 +1,8 @@ { "hints": {}, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMAoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjIxCiAgICAvLyBleHBvcnQgY2xhc3MgRXhwbGljaXRCYXJlQ3JlYXRlRnJvbUJhc2UgZXh0ZW5kcyBCYXNlV2l0aEJhcmVDcmVhdGUge30KICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDMKCm1haW5fYWJpX3JvdXRpbmdAMjoKCm1haW5fYWZ0ZXJfaWZfZWxzZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjIxCiAgICAvLyBleHBvcnQgY2xhc3MgRXhwbGljaXRCYXJlQ3JlYXRlRnJvbUJhc2UgZXh0ZW5kcyBCYXNlV2l0aEJhcmVDcmVhdGUge30KICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjpFeHBsaWNpdEJhcmVDcmVhdGVGcm9tQmFzZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0A4OgogICAgcmV0dXJuCgptYWluX2JhcmVfcm91dGluZ0AzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjIxCiAgICAvLyBleHBvcnQgY2xhc3MgRXhwbGljaXRCYXJlQ3JlYXRlRnJvbUJhc2UgZXh0ZW5kcyBCYXNlV2l0aEJhcmVDcmVhdGUge30KICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX2NyZWF0ZUA0CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA2OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VANwoKbWFpbl9jcmVhdGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czoxNAogICAgLy8gQGJhcmVtZXRob2QoeyBvbkNyZWF0ZTogJ3JlcXVpcmUnIH0pCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIGNyZWF0ZQogICAgcHVzaGludCAxIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6RXhwbGljaXRCYXJlQ3JlYXRlRnJvbUJhc2UuX19wdXlhX2FyYzRfcm91dGVyX19AOAoKCi8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6QmFzZVdpdGhCYXJlQ3JlYXRlLmNyZWF0ZSgpIC0+IHZvaWQ6CmNyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMAoKbWFpbl9ibG9ja0AwOgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjIxCiAgICAvLyBleHBvcnQgY2xhc3MgRXhwbGljaXRCYXJlQ3JlYXRlRnJvbUJhc2UgZXh0ZW5kcyBCYXNlV2l0aEJhcmVDcmVhdGUge30KICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDMKCm1haW5fYWJpX3JvdXRpbmdAMjoKCm1haW5fYWZ0ZXJfaWZfZWxzZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjIxCiAgICAvLyBleHBvcnQgY2xhc3MgRXhwbGljaXRCYXJlQ3JlYXRlRnJvbUJhc2UgZXh0ZW5kcyBCYXNlV2l0aEJhcmVDcmVhdGUge30KICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjpFeHBsaWNpdEJhcmVDcmVhdGVGcm9tQmFzZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0A4OgogICAgcmV0dXJuCgptYWluX2JhcmVfcm91dGluZ0AzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjIxCiAgICAvLyBleHBvcnQgY2xhc3MgRXhwbGljaXRCYXJlQ3JlYXRlRnJvbUJhc2UgZXh0ZW5kcyBCYXNlV2l0aEJhcmVDcmVhdGUge30KICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX2NyZWF0ZUA0CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA2OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VANwoKbWFpbl9jcmVhdGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czoxNAogICAgLy8gQGJhcmVtZXRob2QoeyBvbkNyZWF0ZTogJ3JlcXVpcmUnIH0pCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIGNyZWF0ZQogICAgcHVzaGludCAxIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6RXhwbGljaXRCYXJlQ3JlYXRlRnJvbUJhc2UuX19wdXlhX2FyYzRfcm91dGVyX19AOAoKCi8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6QmFzZVdpdGhCYXJlQ3JlYXRlLmNyZWF0ZSgpIC0+IHZvaWQ6CmNyZWF0ZToKCmNyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/implicit-create/ExplicitBareCreateFromBase.arc56.json b/tests/approvals/out/unoptimized/implicit-create/ExplicitBareCreateFromBase.arc56.json index f1c3c49cf..b746ee5e6 100644 --- a/tests/approvals/out/unoptimized/implicit-create/ExplicitBareCreateFromBase.arc56.json +++ b/tests/approvals/out/unoptimized/implicit-create/ExplicitBareCreateFromBase.arc56.json @@ -53,8 +53,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMAoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjIxCiAgICAvLyBleHBvcnQgY2xhc3MgRXhwbGljaXRCYXJlQ3JlYXRlRnJvbUJhc2UgZXh0ZW5kcyBCYXNlV2l0aEJhcmVDcmVhdGUge30KICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDMKCm1haW5fYWJpX3JvdXRpbmdAMjoKCm1haW5fYWZ0ZXJfaWZfZWxzZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjIxCiAgICAvLyBleHBvcnQgY2xhc3MgRXhwbGljaXRCYXJlQ3JlYXRlRnJvbUJhc2UgZXh0ZW5kcyBCYXNlV2l0aEJhcmVDcmVhdGUge30KICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjpFeHBsaWNpdEJhcmVDcmVhdGVGcm9tQmFzZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0A4OgogICAgcmV0dXJuCgptYWluX2JhcmVfcm91dGluZ0AzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjIxCiAgICAvLyBleHBvcnQgY2xhc3MgRXhwbGljaXRCYXJlQ3JlYXRlRnJvbUJhc2UgZXh0ZW5kcyBCYXNlV2l0aEJhcmVDcmVhdGUge30KICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX2NyZWF0ZUA0CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA2OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VANwoKbWFpbl9jcmVhdGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czoxNAogICAgLy8gQGJhcmVtZXRob2QoeyBvbkNyZWF0ZTogJ3JlcXVpcmUnIH0pCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIGNyZWF0ZQogICAgcHVzaGludCAxIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6RXhwbGljaXRCYXJlQ3JlYXRlRnJvbUJhc2UuX19wdXlhX2FyYzRfcm91dGVyX19AOAoKCi8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6QmFzZVdpdGhCYXJlQ3JlYXRlLmNyZWF0ZSgpIC0+IHZvaWQ6CmNyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMAoKbWFpbl9ibG9ja0AwOgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjIxCiAgICAvLyBleHBvcnQgY2xhc3MgRXhwbGljaXRCYXJlQ3JlYXRlRnJvbUJhc2UgZXh0ZW5kcyBCYXNlV2l0aEJhcmVDcmVhdGUge30KICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDMKCm1haW5fYWJpX3JvdXRpbmdAMjoKCm1haW5fYWZ0ZXJfaWZfZWxzZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjIxCiAgICAvLyBleHBvcnQgY2xhc3MgRXhwbGljaXRCYXJlQ3JlYXRlRnJvbUJhc2UgZXh0ZW5kcyBCYXNlV2l0aEJhcmVDcmVhdGUge30KICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjpFeHBsaWNpdEJhcmVDcmVhdGVGcm9tQmFzZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0A4OgogICAgcmV0dXJuCgptYWluX2JhcmVfcm91dGluZ0AzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjIxCiAgICAvLyBleHBvcnQgY2xhc3MgRXhwbGljaXRCYXJlQ3JlYXRlRnJvbUJhc2UgZXh0ZW5kcyBCYXNlV2l0aEJhcmVDcmVhdGUge30KICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX2NyZWF0ZUA0CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA2OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VANwoKbWFpbl9jcmVhdGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czoxNAogICAgLy8gQGJhcmVtZXRob2QoeyBvbkNyZWF0ZTogJ3JlcXVpcmUnIH0pCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIGNyZWF0ZQogICAgcHVzaGludCAxIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6RXhwbGljaXRCYXJlQ3JlYXRlRnJvbUJhc2UuX19wdXlhX2FyYzRfcm91dGVyX19AOAoKCi8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6QmFzZVdpdGhCYXJlQ3JlYXRlLmNyZWF0ZSgpIC0+IHZvaWQ6CmNyZWF0ZToKCmNyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiABADEbIhNBAAIiQzEZIkyOAQADQv/zMRgiEkSIAAWBAUL/54k=", @@ -65,7 +65,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/implicit-create/ExplicitBareCreateFromBase.clear.teal b/tests/approvals/out/unoptimized/implicit-create/ExplicitBareCreateFromBase.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/implicit-create/ExplicitBareCreateFromBase.clear.teal +++ b/tests/approvals/out/unoptimized/implicit-create/ExplicitBareCreateFromBase.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/implicit-create/NoBare.approval.teal b/tests/approvals/out/unoptimized/implicit-create/NoBare.approval.teal index 6f23356a7..1b336e7ac 100644 --- a/tests/approvals/out/unoptimized/implicit-create/NoBare.approval.teal +++ b/tests/approvals/out/unoptimized/implicit-create/NoBare.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 +main_block@0: + main_block@1: // tests/approvals/implicit-create.algo.ts:4 // export class NoBare extends Contract { @@ -75,9 +77,13 @@ main___algots__.defaultCreate@7: // tests/approvals/implicit-create.algo.ts::NoBare.handleNoop() -> void: handleNoop: + +handleNoop_block@0: retsub // tests/approvals/implicit-create.algo.ts::NoBare.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/implicit-create/NoBare.arc32.json b/tests/approvals/out/unoptimized/implicit-create/NoBare.arc32.json index bb44a410b..b9a18212d 100644 --- a/tests/approvals/out/unoptimized/implicit-create/NoBare.arc32.json +++ b/tests/approvals/out/unoptimized/implicit-create/NoBare.arc32.json @@ -7,8 +7,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIE5vQmFyZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgTm9CYXJlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4YjhiNWU0YjkgLy8gbWV0aG9kICJoYW5kbGVOb29wKCl2b2lkIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9oYW5kbGVOb29wX3JvdXRlQDMKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA0OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDU6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIE5vQmFyZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjpOb0JhcmUuX19wdXlhX2FyYzRfcm91dGVyX19AMTE6CiAgICByZXR1cm4KCm1haW5faGFuZGxlTm9vcF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjUKICAgIC8vIEBhYmltZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdOb09wJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBoYW5kbGVOb29wCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjpOb0JhcmUuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIE5vQmFyZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIE5vQmFyZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjpOb0JhcmUuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6Ok5vQmFyZS5oYW5kbGVOb29wKCkgLT4gdm9pZDoKaGFuZGxlTm9vcDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6Tm9CYXJlLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIE5vQmFyZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgTm9CYXJlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4YjhiNWU0YjkgLy8gbWV0aG9kICJoYW5kbGVOb29wKCl2b2lkIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9oYW5kbGVOb29wX3JvdXRlQDMKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA0OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDU6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIE5vQmFyZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjpOb0JhcmUuX19wdXlhX2FyYzRfcm91dGVyX19AMTE6CiAgICByZXR1cm4KCm1haW5faGFuZGxlTm9vcF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjUKICAgIC8vIEBhYmltZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdOb09wJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBoYW5kbGVOb29wCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjpOb0JhcmUuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIE5vQmFyZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIE5vQmFyZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjpOb0JhcmUuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6Ok5vQmFyZS5oYW5kbGVOb29wKCkgLT4gdm9pZDoKaGFuZGxlTm9vcDoKCmhhbmRsZU5vb3BfYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6Tm9CYXJlLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/implicit-create/NoBare.arc56.json b/tests/approvals/out/unoptimized/implicit-create/NoBare.arc56.json index 27be54541..27f3fede1 100644 --- a/tests/approvals/out/unoptimized/implicit-create/NoBare.arc56.json +++ b/tests/approvals/out/unoptimized/implicit-create/NoBare.arc56.json @@ -82,8 +82,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIE5vQmFyZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgTm9CYXJlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4YjhiNWU0YjkgLy8gbWV0aG9kICJoYW5kbGVOb29wKCl2b2lkIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9oYW5kbGVOb29wX3JvdXRlQDMKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA0OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDU6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIE5vQmFyZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjpOb0JhcmUuX19wdXlhX2FyYzRfcm91dGVyX19AMTE6CiAgICByZXR1cm4KCm1haW5faGFuZGxlTm9vcF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjUKICAgIC8vIEBhYmltZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdOb09wJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBoYW5kbGVOb29wCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjpOb0JhcmUuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIE5vQmFyZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIE5vQmFyZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjpOb0JhcmUuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6Ok5vQmFyZS5oYW5kbGVOb29wKCkgLT4gdm9pZDoKaGFuZGxlTm9vcDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6Tm9CYXJlLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIE5vQmFyZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgTm9CYXJlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4YjhiNWU0YjkgLy8gbWV0aG9kICJoYW5kbGVOb29wKCl2b2lkIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9oYW5kbGVOb29wX3JvdXRlQDMKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA0OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDU6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIE5vQmFyZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjpOb0JhcmUuX19wdXlhX2FyYzRfcm91dGVyX19AMTE6CiAgICByZXR1cm4KCm1haW5faGFuZGxlTm9vcF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjUKICAgIC8vIEBhYmltZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdOb09wJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBoYW5kbGVOb29wCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjpOb0JhcmUuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIE5vQmFyZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIE5vQmFyZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjpOb0JhcmUuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6Ok5vQmFyZS5oYW5kbGVOb29wKCkgLT4gdm9pZDoKaGFuZGxlTm9vcDoKCmhhbmRsZU5vb3BfYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6Tm9CYXJlLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAExGyITQQAhNhoAgAS4teS5TI4BAAIiQzEZIhJEMRgiE0SIABsjQv/uMRkiTI4BAANC/+IxGCISRIgABSNC/9eJiQ==", @@ -94,7 +94,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/implicit-create/NoBare.clear.teal b/tests/approvals/out/unoptimized/implicit-create/NoBare.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/implicit-create/NoBare.clear.teal +++ b/tests/approvals/out/unoptimized/implicit-create/NoBare.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/implicit-create/NoNoOp.approval.teal b/tests/approvals/out/unoptimized/implicit-create/NoNoOp.approval.teal index 201f88097..057c9383f 100644 --- a/tests/approvals/out/unoptimized/implicit-create/NoNoOp.approval.teal +++ b/tests/approvals/out/unoptimized/implicit-create/NoNoOp.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 +main_block@0: + main_block@1: // tests/approvals/implicit-create.algo.ts:8 // export class NoNoOp extends Contract { @@ -62,9 +64,13 @@ main_handleUpdate@4: // tests/approvals/implicit-create.algo.ts::NoNoOp.handleUpdate() -> void: handleUpdate: + +handleUpdate_block@0: retsub // tests/approvals/implicit-create.algo.ts::NoNoOp.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/implicit-create/NoNoOp.arc32.json b/tests/approvals/out/unoptimized/implicit-create/NoNoOp.arc32.json index 930c5097f..9e302052a 100644 --- a/tests/approvals/out/unoptimized/implicit-create/NoNoOp.arc32.json +++ b/tests/approvals/out/unoptimized/implicit-create/NoNoOp.arc32.json @@ -1,8 +1,8 @@ { "hints": {}, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6OAogICAgLy8gZXhwb3J0IGNsYXNzIE5vTm9PcCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDMKCm1haW5fYWJpX3JvdXRpbmdAMjoKCm1haW5fYWZ0ZXJfaWZfZWxzZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjgKICAgIC8vIGV4cG9ydCBjbGFzcyBOb05vT3AgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6Tm9Ob09wLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDk6CiAgICByZXR1cm4KCm1haW5fYmFyZV9yb3V0aW5nQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6OAogICAgLy8gZXhwb3J0IGNsYXNzIE5vTm9PcCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIHB1c2hpbnQgNCAvLyA0CiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX2hhbmRsZVVwZGF0ZUA0IG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDUKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA2OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDc6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUA4CgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjgKICAgIC8vIGV4cG9ydCBjbGFzcyBOb05vT3AgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6Tm9Ob09wLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDkKCm1haW5faGFuZGxlVXBkYXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6OQogICAgLy8gQGJhcmVtZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdVcGRhdGVBcHBsaWNhdGlvbicgfSkKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGhhbmRsZVVwZGF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6Tm9Ob09wLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDkKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6Ok5vTm9PcC5oYW5kbGVVcGRhdGUoKSAtPiB2b2lkOgpoYW5kbGVVcGRhdGU6CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6Ok5vTm9PcC5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6OAogICAgLy8gZXhwb3J0IGNsYXNzIE5vTm9PcCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDMKCm1haW5fYWJpX3JvdXRpbmdAMjoKCm1haW5fYWZ0ZXJfaWZfZWxzZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjgKICAgIC8vIGV4cG9ydCBjbGFzcyBOb05vT3AgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6Tm9Ob09wLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDk6CiAgICByZXR1cm4KCm1haW5fYmFyZV9yb3V0aW5nQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6OAogICAgLy8gZXhwb3J0IGNsYXNzIE5vTm9PcCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIHB1c2hpbnQgNCAvLyA0CiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX2hhbmRsZVVwZGF0ZUA0IG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDUKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA2OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDc6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUA4CgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjgKICAgIC8vIGV4cG9ydCBjbGFzcyBOb05vT3AgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6Tm9Ob09wLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDkKCm1haW5faGFuZGxlVXBkYXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6OQogICAgLy8gQGJhcmVtZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdVcGRhdGVBcHBsaWNhdGlvbicgfSkKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGhhbmRsZVVwZGF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6Tm9Ob09wLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDkKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6Ok5vTm9PcC5oYW5kbGVVcGRhdGUoKSAtPiB2b2lkOgpoYW5kbGVVcGRhdGU6CgpoYW5kbGVVcGRhdGVfYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6Tm9Ob09wLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/implicit-create/NoNoOp.arc56.json b/tests/approvals/out/unoptimized/implicit-create/NoNoOp.arc56.json index de24b8827..4b4a6ec2f 100644 --- a/tests/approvals/out/unoptimized/implicit-create/NoNoOp.arc56.json +++ b/tests/approvals/out/unoptimized/implicit-create/NoNoOp.arc56.json @@ -61,8 +61,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6OAogICAgLy8gZXhwb3J0IGNsYXNzIE5vTm9PcCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDMKCm1haW5fYWJpX3JvdXRpbmdAMjoKCm1haW5fYWZ0ZXJfaWZfZWxzZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjgKICAgIC8vIGV4cG9ydCBjbGFzcyBOb05vT3AgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6Tm9Ob09wLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDk6CiAgICByZXR1cm4KCm1haW5fYmFyZV9yb3V0aW5nQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6OAogICAgLy8gZXhwb3J0IGNsYXNzIE5vTm9PcCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIHB1c2hpbnQgNCAvLyA0CiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX2hhbmRsZVVwZGF0ZUA0IG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDUKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA2OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDc6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUA4CgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjgKICAgIC8vIGV4cG9ydCBjbGFzcyBOb05vT3AgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6Tm9Ob09wLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDkKCm1haW5faGFuZGxlVXBkYXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6OQogICAgLy8gQGJhcmVtZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdVcGRhdGVBcHBsaWNhdGlvbicgfSkKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGhhbmRsZVVwZGF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6Tm9Ob09wLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDkKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6Ok5vTm9PcC5oYW5kbGVVcGRhdGUoKSAtPiB2b2lkOgpoYW5kbGVVcGRhdGU6CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6Ok5vTm9PcC5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6OAogICAgLy8gZXhwb3J0IGNsYXNzIE5vTm9PcCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDMKCm1haW5fYWJpX3JvdXRpbmdAMjoKCm1haW5fYWZ0ZXJfaWZfZWxzZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjgKICAgIC8vIGV4cG9ydCBjbGFzcyBOb05vT3AgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6Tm9Ob09wLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDk6CiAgICByZXR1cm4KCm1haW5fYmFyZV9yb3V0aW5nQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6OAogICAgLy8gZXhwb3J0IGNsYXNzIE5vTm9PcCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIHB1c2hpbnQgNCAvLyA0CiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX2hhbmRsZVVwZGF0ZUA0IG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDUKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA2OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDc6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUA4CgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2ltcGxpY2l0LWNyZWF0ZS5hbGdvLnRzOjgKICAgIC8vIGV4cG9ydCBjbGFzcyBOb05vT3AgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6Tm9Ob09wLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDkKCm1haW5faGFuZGxlVXBkYXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6OQogICAgLy8gQGJhcmVtZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdVcGRhdGVBcHBsaWNhdGlvbicgfSkKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGhhbmRsZVVwZGF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6Tm9Ob09wLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDkKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaW1wbGljaXQtY3JlYXRlLmFsZ28udHM6Ok5vTm9PcC5oYW5kbGVVcGRhdGUoKSAtPiB2b2lkOgpoYW5kbGVVcGRhdGU6CgpoYW5kbGVVcGRhdGVfYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9pbXBsaWNpdC1jcmVhdGUuYWxnby50czo6Tm9Ob09wLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAExGyITQQACIkMxGYEEIk8CjgIADwADQv/uMRgiEkSIABEjQv/jMRgiE0SIAAQjQv/XiYk=", @@ -73,7 +73,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/implicit-create/NoNoOp.clear.teal b/tests/approvals/out/unoptimized/implicit-create/NoNoOp.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/implicit-create/NoNoOp.clear.teal +++ b/tests/approvals/out/unoptimized/implicit-create/NoNoOp.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/inheritance-b/ConcreteArc4Contract.approval.teal b/tests/approvals/out/unoptimized/inheritance-b/ConcreteArc4Contract.approval.teal index 305851d7f..558f1864b 100644 --- a/tests/approvals/out/unoptimized/inheritance-b/ConcreteArc4Contract.approval.teal +++ b/tests/approvals/out/unoptimized/inheritance-b/ConcreteArc4Contract.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 bytecblock 0x151f7c75 + +main_block@0: txn ApplicationID bnz main_after_if_else@2 @@ -122,6 +124,8 @@ main___algots__.defaultCreate@10: // tests/approvals/inheritance-b.algo.ts::ConcreteArc4Contract.getVeryImportantValue() -> bytes: getVeryImportantValue: + +getVeryImportantValue_block@0: // tests/approvals/inheritance-a.algo.ts:22 // export const VERY_IMPORTANT_VALUE = '42' pushbytes "42" @@ -135,6 +139,8 @@ simpleAbiMethod: // tests/approvals/inheritance-a.algo.ts:17 // public simpleAbiMethod(a: uint64, b: uint64): uint64 { proto 2 1 + +simpleAbiMethod_block@0: // tests/approvals/inheritance-a.algo.ts:18 // return a + b frame_dig -2 @@ -145,12 +151,16 @@ simpleAbiMethod: // tests/approvals/inheritance-b.algo.ts::ConcreteArc4Contract.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub // tests/approvals/inheritance-b.algo.ts::ConcreteArc4Contract.constructor() -> void: constructor: +constructor_block@0: + constructor_block@1: constructor_after_inlined_@algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.constructor@2: diff --git a/tests/approvals/out/unoptimized/inheritance-b/ConcreteArc4Contract.arc32.json b/tests/approvals/out/unoptimized/inheritance-b/ConcreteArc4Contract.arc32.json index a997fc8c8..5b70d7d5e 100644 --- a/tests/approvals/out/unoptimized/inheritance-b/ConcreteArc4Contract.arc32.json +++ b/tests/approvals/out/unoptimized/inheritance-b/ConcreteArc4Contract.arc32.json @@ -12,8 +12,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKCm1haW5faWZfYm9keUAxOgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CgptYWluX2Jsb2NrQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgQ29uY3JldGVBcmM0Q29udHJhY3QgZXh0ZW5kcyBBcmM0Q29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAOQoKbWFpbl9hYmlfcm91dGluZ0A0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czoxNAogICAgLy8gZXhwb3J0IGNsYXNzIENvbmNyZXRlQXJjNENvbnRyYWN0IGV4dGVuZHMgQXJjNENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweGM3M2RhOWI5IC8vIG1ldGhvZCAiZ2V0VmVyeUltcG9ydGFudFZhbHVlKClzdHJpbmciCiAgICBwdXNoYnl0ZXMgMHhmMTYxZGMzNyAvLyBtZXRob2QgInNpbXBsZUFiaU1ldGhvZCh1aW50NjQsdWludDY0KXVpbnQ2NCIKICAgIHVuY292ZXIgMgogICAgbWF0Y2ggbWFpbl9nZXRWZXJ5SW1wb3J0YW50VmFsdWVfcm91dGVANSBtYWluX3NpbXBsZUFiaU1ldGhvZF9yb3V0ZUA2CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANzoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA4OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czoxNAogICAgLy8gZXhwb3J0IGNsYXNzIENvbmNyZXRlQXJjNENvbnRyYWN0IGV4dGVuZHMgQXJjNENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czo6Q29uY3JldGVBcmM0Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTQ6CiAgICByZXR1cm4KCm1haW5fc2ltcGxlQWJpTWV0aG9kX3JvdXRlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYS5hbGdvLnRzOjE3CiAgICAvLyBwdWJsaWMgc2ltcGxlQWJpTWV0aG9kKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbmhlcml0YW5jZS1iLmFsZ28udHM6MTQKICAgIC8vIGV4cG9ydCBjbGFzcyBDb25jcmV0ZUFyYzRDb250cmFjdCBleHRlbmRzIEFyYzRDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYS5hbGdvLnRzOjE3CiAgICAvLyBwdWJsaWMgc2ltcGxlQWJpTWV0aG9kKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0IHsKICAgIGNhbGxzdWIgc2ltcGxlQWJpTWV0aG9kCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czo6Q29uY3JldGVBcmM0Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fZ2V0VmVyeUltcG9ydGFudFZhbHVlX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjE2CiAgICAvLyBwdWJsaWMgZ2V0VmVyeUltcG9ydGFudFZhbHVlKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBnZXRWZXJ5SW1wb3J0YW50VmFsdWUKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czo6Q29uY3JldGVBcmM0Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fYmFyZV9yb3V0aW5nQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgQ29uY3JldGVBcmM0Q29udHJhY3QgZXh0ZW5kcyBBcmM0Q29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDEwCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTE6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTI6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMwoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgQ29uY3JldGVBcmM0Q29udHJhY3QgZXh0ZW5kcyBBcmM0Q29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjpDb25jcmV0ZUFyYzRDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKCi8vIHRlc3RzL2FwcHJvdmFscy9pbmhlcml0YW5jZS1iLmFsZ28udHM6OkNvbmNyZXRlQXJjNENvbnRyYWN0LmdldFZlcnlJbXBvcnRhbnRWYWx1ZSgpIC0+IGJ5dGVzOgpnZXRWZXJ5SW1wb3J0YW50VmFsdWU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYS5hbGdvLnRzOjIyCiAgICAvLyBleHBvcnQgY29uc3QgVkVSWV9JTVBPUlRBTlRfVkFMVUUgPSAnNDInCiAgICBwdXNoYnl0ZXMgIjQyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czoxNwogICAgLy8gcmV0dXJuIFZFUllfSU1QT1JUQU5UX1ZBTFVFCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYS5hbGdvLnRzOjpBcmM0Q29udHJhY3Quc2ltcGxlQWJpTWV0aG9kKGE6IHVpbnQ2NCwgYjogdWludDY0KSAtPiB1aW50NjQ6CnNpbXBsZUFiaU1ldGhvZDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbmhlcml0YW5jZS1hLmFsZ28udHM6MTcKICAgIC8vIHB1YmxpYyBzaW1wbGVBYmlNZXRob2QoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQgewogICAgcHJvdG8gMiAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYS5hbGdvLnRzOjE4CiAgICAvLyByZXR1cm4gYSArIGIKICAgIGZyYW1lX2RpZyAtMgogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjpDb25jcmV0ZUFyYzRDb250cmFjdC5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjpDb25jcmV0ZUFyYzRDb250cmFjdC5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CmNvbnN0cnVjdG9yOgoKY29uc3RydWN0b3JfYmxvY2tAMToKCmNvbnN0cnVjdG9yX2FmdGVyX2lubGluZWRfQGFsZ29yYW5kZm91bmRhdGlvbi9hbGdvcmFuZC10eXBlc2NyaXB0L2Jhc2UtY29udHJhY3QuZC50czo6QmFzZUNvbnRyYWN0LmNvbnN0cnVjdG9yQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjE1CiAgICAvLyBjb25jcmV0ZVN0YXRlID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6ICd0ZXN0aW5nJyB9KQogICAgcHVzaGJ5dGVzICJjb25jcmV0ZVN0YXRlIgogICAgcHVzaGJ5dGVzICJ0ZXN0aW5nIgogICAgYXBwX2dsb2JhbF9wdXQKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMDoKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKCm1haW5faWZfYm9keUAxOgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CgptYWluX2Jsb2NrQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgQ29uY3JldGVBcmM0Q29udHJhY3QgZXh0ZW5kcyBBcmM0Q29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAOQoKbWFpbl9hYmlfcm91dGluZ0A0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czoxNAogICAgLy8gZXhwb3J0IGNsYXNzIENvbmNyZXRlQXJjNENvbnRyYWN0IGV4dGVuZHMgQXJjNENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweGM3M2RhOWI5IC8vIG1ldGhvZCAiZ2V0VmVyeUltcG9ydGFudFZhbHVlKClzdHJpbmciCiAgICBwdXNoYnl0ZXMgMHhmMTYxZGMzNyAvLyBtZXRob2QgInNpbXBsZUFiaU1ldGhvZCh1aW50NjQsdWludDY0KXVpbnQ2NCIKICAgIHVuY292ZXIgMgogICAgbWF0Y2ggbWFpbl9nZXRWZXJ5SW1wb3J0YW50VmFsdWVfcm91dGVANSBtYWluX3NpbXBsZUFiaU1ldGhvZF9yb3V0ZUA2CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANzoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA4OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czoxNAogICAgLy8gZXhwb3J0IGNsYXNzIENvbmNyZXRlQXJjNENvbnRyYWN0IGV4dGVuZHMgQXJjNENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czo6Q29uY3JldGVBcmM0Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTQ6CiAgICByZXR1cm4KCm1haW5fc2ltcGxlQWJpTWV0aG9kX3JvdXRlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYS5hbGdvLnRzOjE3CiAgICAvLyBwdWJsaWMgc2ltcGxlQWJpTWV0aG9kKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbmhlcml0YW5jZS1iLmFsZ28udHM6MTQKICAgIC8vIGV4cG9ydCBjbGFzcyBDb25jcmV0ZUFyYzRDb250cmFjdCBleHRlbmRzIEFyYzRDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYS5hbGdvLnRzOjE3CiAgICAvLyBwdWJsaWMgc2ltcGxlQWJpTWV0aG9kKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0IHsKICAgIGNhbGxzdWIgc2ltcGxlQWJpTWV0aG9kCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czo6Q29uY3JldGVBcmM0Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fZ2V0VmVyeUltcG9ydGFudFZhbHVlX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjE2CiAgICAvLyBwdWJsaWMgZ2V0VmVyeUltcG9ydGFudFZhbHVlKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBnZXRWZXJ5SW1wb3J0YW50VmFsdWUKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czo6Q29uY3JldGVBcmM0Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fYmFyZV9yb3V0aW5nQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgQ29uY3JldGVBcmM0Q29udHJhY3QgZXh0ZW5kcyBBcmM0Q29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDEwCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTE6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTI6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMwoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgQ29uY3JldGVBcmM0Q29udHJhY3QgZXh0ZW5kcyBBcmM0Q29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjpDb25jcmV0ZUFyYzRDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKCi8vIHRlc3RzL2FwcHJvdmFscy9pbmhlcml0YW5jZS1iLmFsZ28udHM6OkNvbmNyZXRlQXJjNENvbnRyYWN0LmdldFZlcnlJbXBvcnRhbnRWYWx1ZSgpIC0+IGJ5dGVzOgpnZXRWZXJ5SW1wb3J0YW50VmFsdWU6CgpnZXRWZXJ5SW1wb3J0YW50VmFsdWVfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbmhlcml0YW5jZS1hLmFsZ28udHM6MjIKICAgIC8vIGV4cG9ydCBjb25zdCBWRVJZX0lNUE9SVEFOVF9WQUxVRSA9ICc0MicKICAgIHB1c2hieXRlcyAiNDIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjE3CiAgICAvLyByZXR1cm4gVkVSWV9JTVBPUlRBTlRfVkFMVUUKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9pbmhlcml0YW5jZS1hLmFsZ28udHM6OkFyYzRDb250cmFjdC5zaW1wbGVBYmlNZXRob2QoYTogdWludDY0LCBiOiB1aW50NjQpIC0+IHVpbnQ2NDoKc2ltcGxlQWJpTWV0aG9kOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWEuYWxnby50czoxNwogICAgLy8gcHVibGljIHNpbXBsZUFiaU1ldGhvZChhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NCB7CiAgICBwcm90byAyIDEKCnNpbXBsZUFiaU1ldGhvZF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWEuYWxnby50czoxOAogICAgLy8gcmV0dXJuIGEgKyBiCiAgICBmcmFtZV9kaWcgLTIKICAgIGZyYW1lX2RpZyAtMQogICAgKwogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czo6Q29uY3JldGVBcmM0Q29udHJhY3QuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjpDb25jcmV0ZUFyYzRDb250cmFjdC5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CmNvbnN0cnVjdG9yOgoKY29uc3RydWN0b3JfYmxvY2tAMDoKCmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgpjb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czoxNQogICAgLy8gY29uY3JldGVTdGF0ZSA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiAndGVzdGluZycgfSkKICAgIHB1c2hieXRlcyAiY29uY3JldGVTdGF0ZSIKICAgIHB1c2hieXRlcyAidGVzdGluZyIKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/inheritance-b/ConcreteArc4Contract.arc56.json b/tests/approvals/out/unoptimized/inheritance-b/ConcreteArc4Contract.arc56.json index d76a25199..851ccd98a 100644 --- a/tests/approvals/out/unoptimized/inheritance-b/ConcreteArc4Contract.arc56.json +++ b/tests/approvals/out/unoptimized/inheritance-b/ConcreteArc4Contract.arc56.json @@ -120,8 +120,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKCm1haW5faWZfYm9keUAxOgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CgptYWluX2Jsb2NrQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgQ29uY3JldGVBcmM0Q29udHJhY3QgZXh0ZW5kcyBBcmM0Q29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAOQoKbWFpbl9hYmlfcm91dGluZ0A0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czoxNAogICAgLy8gZXhwb3J0IGNsYXNzIENvbmNyZXRlQXJjNENvbnRyYWN0IGV4dGVuZHMgQXJjNENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweGM3M2RhOWI5IC8vIG1ldGhvZCAiZ2V0VmVyeUltcG9ydGFudFZhbHVlKClzdHJpbmciCiAgICBwdXNoYnl0ZXMgMHhmMTYxZGMzNyAvLyBtZXRob2QgInNpbXBsZUFiaU1ldGhvZCh1aW50NjQsdWludDY0KXVpbnQ2NCIKICAgIHVuY292ZXIgMgogICAgbWF0Y2ggbWFpbl9nZXRWZXJ5SW1wb3J0YW50VmFsdWVfcm91dGVANSBtYWluX3NpbXBsZUFiaU1ldGhvZF9yb3V0ZUA2CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANzoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA4OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czoxNAogICAgLy8gZXhwb3J0IGNsYXNzIENvbmNyZXRlQXJjNENvbnRyYWN0IGV4dGVuZHMgQXJjNENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czo6Q29uY3JldGVBcmM0Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTQ6CiAgICByZXR1cm4KCm1haW5fc2ltcGxlQWJpTWV0aG9kX3JvdXRlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYS5hbGdvLnRzOjE3CiAgICAvLyBwdWJsaWMgc2ltcGxlQWJpTWV0aG9kKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbmhlcml0YW5jZS1iLmFsZ28udHM6MTQKICAgIC8vIGV4cG9ydCBjbGFzcyBDb25jcmV0ZUFyYzRDb250cmFjdCBleHRlbmRzIEFyYzRDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYS5hbGdvLnRzOjE3CiAgICAvLyBwdWJsaWMgc2ltcGxlQWJpTWV0aG9kKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0IHsKICAgIGNhbGxzdWIgc2ltcGxlQWJpTWV0aG9kCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czo6Q29uY3JldGVBcmM0Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fZ2V0VmVyeUltcG9ydGFudFZhbHVlX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjE2CiAgICAvLyBwdWJsaWMgZ2V0VmVyeUltcG9ydGFudFZhbHVlKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBnZXRWZXJ5SW1wb3J0YW50VmFsdWUKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czo6Q29uY3JldGVBcmM0Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fYmFyZV9yb3V0aW5nQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgQ29uY3JldGVBcmM0Q29udHJhY3QgZXh0ZW5kcyBBcmM0Q29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDEwCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTE6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTI6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMwoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgQ29uY3JldGVBcmM0Q29udHJhY3QgZXh0ZW5kcyBBcmM0Q29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjpDb25jcmV0ZUFyYzRDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKCi8vIHRlc3RzL2FwcHJvdmFscy9pbmhlcml0YW5jZS1iLmFsZ28udHM6OkNvbmNyZXRlQXJjNENvbnRyYWN0LmdldFZlcnlJbXBvcnRhbnRWYWx1ZSgpIC0+IGJ5dGVzOgpnZXRWZXJ5SW1wb3J0YW50VmFsdWU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYS5hbGdvLnRzOjIyCiAgICAvLyBleHBvcnQgY29uc3QgVkVSWV9JTVBPUlRBTlRfVkFMVUUgPSAnNDInCiAgICBwdXNoYnl0ZXMgIjQyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czoxNwogICAgLy8gcmV0dXJuIFZFUllfSU1QT1JUQU5UX1ZBTFVFCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYS5hbGdvLnRzOjpBcmM0Q29udHJhY3Quc2ltcGxlQWJpTWV0aG9kKGE6IHVpbnQ2NCwgYjogdWludDY0KSAtPiB1aW50NjQ6CnNpbXBsZUFiaU1ldGhvZDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbmhlcml0YW5jZS1hLmFsZ28udHM6MTcKICAgIC8vIHB1YmxpYyBzaW1wbGVBYmlNZXRob2QoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQgewogICAgcHJvdG8gMiAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYS5hbGdvLnRzOjE4CiAgICAvLyByZXR1cm4gYSArIGIKICAgIGZyYW1lX2RpZyAtMgogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjpDb25jcmV0ZUFyYzRDb250cmFjdC5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjpDb25jcmV0ZUFyYzRDb250cmFjdC5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CmNvbnN0cnVjdG9yOgoKY29uc3RydWN0b3JfYmxvY2tAMToKCmNvbnN0cnVjdG9yX2FmdGVyX2lubGluZWRfQGFsZ29yYW5kZm91bmRhdGlvbi9hbGdvcmFuZC10eXBlc2NyaXB0L2Jhc2UtY29udHJhY3QuZC50czo6QmFzZUNvbnRyYWN0LmNvbnN0cnVjdG9yQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjE1CiAgICAvLyBjb25jcmV0ZVN0YXRlID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6ICd0ZXN0aW5nJyB9KQogICAgcHVzaGJ5dGVzICJjb25jcmV0ZVN0YXRlIgogICAgcHVzaGJ5dGVzICJ0ZXN0aW5nIgogICAgYXBwX2dsb2JhbF9wdXQKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMDoKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKCm1haW5faWZfYm9keUAxOgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CgptYWluX2Jsb2NrQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgQ29uY3JldGVBcmM0Q29udHJhY3QgZXh0ZW5kcyBBcmM0Q29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAOQoKbWFpbl9hYmlfcm91dGluZ0A0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czoxNAogICAgLy8gZXhwb3J0IGNsYXNzIENvbmNyZXRlQXJjNENvbnRyYWN0IGV4dGVuZHMgQXJjNENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweGM3M2RhOWI5IC8vIG1ldGhvZCAiZ2V0VmVyeUltcG9ydGFudFZhbHVlKClzdHJpbmciCiAgICBwdXNoYnl0ZXMgMHhmMTYxZGMzNyAvLyBtZXRob2QgInNpbXBsZUFiaU1ldGhvZCh1aW50NjQsdWludDY0KXVpbnQ2NCIKICAgIHVuY292ZXIgMgogICAgbWF0Y2ggbWFpbl9nZXRWZXJ5SW1wb3J0YW50VmFsdWVfcm91dGVANSBtYWluX3NpbXBsZUFiaU1ldGhvZF9yb3V0ZUA2CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANzoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA4OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czoxNAogICAgLy8gZXhwb3J0IGNsYXNzIENvbmNyZXRlQXJjNENvbnRyYWN0IGV4dGVuZHMgQXJjNENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czo6Q29uY3JldGVBcmM0Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTQ6CiAgICByZXR1cm4KCm1haW5fc2ltcGxlQWJpTWV0aG9kX3JvdXRlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYS5hbGdvLnRzOjE3CiAgICAvLyBwdWJsaWMgc2ltcGxlQWJpTWV0aG9kKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbmhlcml0YW5jZS1iLmFsZ28udHM6MTQKICAgIC8vIGV4cG9ydCBjbGFzcyBDb25jcmV0ZUFyYzRDb250cmFjdCBleHRlbmRzIEFyYzRDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYS5hbGdvLnRzOjE3CiAgICAvLyBwdWJsaWMgc2ltcGxlQWJpTWV0aG9kKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0IHsKICAgIGNhbGxzdWIgc2ltcGxlQWJpTWV0aG9kCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czo6Q29uY3JldGVBcmM0Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fZ2V0VmVyeUltcG9ydGFudFZhbHVlX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjE2CiAgICAvLyBwdWJsaWMgZ2V0VmVyeUltcG9ydGFudFZhbHVlKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBnZXRWZXJ5SW1wb3J0YW50VmFsdWUKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czo6Q29uY3JldGVBcmM0Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fYmFyZV9yb3V0aW5nQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgQ29uY3JldGVBcmM0Q29udHJhY3QgZXh0ZW5kcyBBcmM0Q29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDEwCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTE6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTI6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMwoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgQ29uY3JldGVBcmM0Q29udHJhY3QgZXh0ZW5kcyBBcmM0Q29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjpDb25jcmV0ZUFyYzRDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKCi8vIHRlc3RzL2FwcHJvdmFscy9pbmhlcml0YW5jZS1iLmFsZ28udHM6OkNvbmNyZXRlQXJjNENvbnRyYWN0LmdldFZlcnlJbXBvcnRhbnRWYWx1ZSgpIC0+IGJ5dGVzOgpnZXRWZXJ5SW1wb3J0YW50VmFsdWU6CgpnZXRWZXJ5SW1wb3J0YW50VmFsdWVfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pbmhlcml0YW5jZS1hLmFsZ28udHM6MjIKICAgIC8vIGV4cG9ydCBjb25zdCBWRVJZX0lNUE9SVEFOVF9WQUxVRSA9ICc0MicKICAgIHB1c2hieXRlcyAiNDIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjE3CiAgICAvLyByZXR1cm4gVkVSWV9JTVBPUlRBTlRfVkFMVUUKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9pbmhlcml0YW5jZS1hLmFsZ28udHM6OkFyYzRDb250cmFjdC5zaW1wbGVBYmlNZXRob2QoYTogdWludDY0LCBiOiB1aW50NjQpIC0+IHVpbnQ2NDoKc2ltcGxlQWJpTWV0aG9kOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWEuYWxnby50czoxNwogICAgLy8gcHVibGljIHNpbXBsZUFiaU1ldGhvZChhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NCB7CiAgICBwcm90byAyIDEKCnNpbXBsZUFiaU1ldGhvZF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWEuYWxnby50czoxOAogICAgLy8gcmV0dXJuIGEgKyBiCiAgICBmcmFtZV9kaWcgLTIKICAgIGZyYW1lX2RpZyAtMQogICAgKwogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czo6Q29uY3JldGVBcmM0Q29udHJhY3QuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaW5oZXJpdGFuY2UtYi5hbGdvLnRzOjpDb25jcmV0ZUFyYzRDb250cmFjdC5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CmNvbnN0cnVjdG9yOgoKY29uc3RydWN0b3JfYmxvY2tAMDoKCmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgpjb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2luaGVyaXRhbmNlLWIuYWxnby50czoxNQogICAgLy8gY29uY3JldGVTdGF0ZSA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiAndGVzdGluZycgfSkKICAgIHB1c2hieXRlcyAiY29uY3JldGVTdGF0ZSIKICAgIHB1c2hieXRlcyAidGVzdGluZyIKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAEmAQQVH3x1MRhAAAOIAIExGyITQQBUNhoAgATHPam5gATxYdw3TwKOAgAgAAIiQzEZIhJEMRgiE0Q2GgEXNhoCF4gAQhYoTFCwI0L/4TEZIhJEMRgiE0SIACdJFRZXBgJMUChMULAjQv/EMRkiTI4BAANC/7gxGCISRIgAEiNC/62AAjQyiYoCAYv+i/8IiYmADWNvbmNyZXRlU3RhdGWAB3Rlc3RpbmdniQ==", @@ -132,7 +132,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/inheritance-b/ConcreteArc4Contract.clear.teal b/tests/approvals/out/unoptimized/inheritance-b/ConcreteArc4Contract.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/inheritance-b/ConcreteArc4Contract.clear.teal +++ b/tests/approvals/out/unoptimized/inheritance-b/ConcreteArc4Contract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/inheritance-b/ConcreteSimpleContract.approval.teal b/tests/approvals/out/unoptimized/inheritance-b/ConcreteSimpleContract.approval.teal index 21f3cdfac..e9f432684 100644 --- a/tests/approvals/out/unoptimized/inheritance-b/ConcreteSimpleContract.approval.teal +++ b/tests/approvals/out/unoptimized/inheritance-b/ConcreteSimpleContract.approval.teal @@ -3,6 +3,8 @@ // tests/approvals/inheritance-b.algo.ts::ConcreteSimpleContract.approvalProgram() -> uint64: main: + +main_block@0: // tests/approvals/inheritance-b.algo.ts:7 // const a = op.btoi(Txn.applicationArgs(0)) pushint 0 // 0 @@ -29,6 +31,8 @@ simpleMethod: // tests/approvals/inheritance-a.algo.ts:6 // public simpleMethod(a: uint64, b: uint64): uint64 { proto 2 1 + +simpleMethod_block@0: // tests/approvals/inheritance-a.algo.ts:7 // return a * b frame_dig -2 diff --git a/tests/approvals/out/unoptimized/inheritance-b/ConcreteSimpleContract.clear.teal b/tests/approvals/out/unoptimized/inheritance-b/ConcreteSimpleContract.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/inheritance-b/ConcreteSimpleContract.clear.teal +++ b/tests/approvals/out/unoptimized/inheritance-b/ConcreteSimpleContract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/itxn/ItxnDemoContract.approval.teal b/tests/approvals/out/unoptimized/itxn/ItxnDemoContract.approval.teal index dbf277634..7e312a6d1 100644 --- a/tests/approvals/out/unoptimized/itxn/ItxnDemoContract.approval.teal +++ b/tests/approvals/out/unoptimized/itxn/ItxnDemoContract.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 6 5 3 1000 bytecblock 0x098101 0x09361a00b08101 "name" "1" "unit" "2" "AST1" "AST2" "AST3" "3" "4" "5" "3rd" "with args param set" "42" "10" "11" "12" "13" "14" "15" "16" + +main_block@0: txn ApplicationID bnz main_after_if_else@2 @@ -135,6 +137,8 @@ test1: // public test1() { proto 0 0 intc_0 // 0 + +test1_block@0: // tests/approvals/itxn.algo.ts:8 // name = GlobalState({ initialValue: Bytes() }) bytec_2 // "name" @@ -460,6 +464,8 @@ test2: dupn 2 pushbytes "" dup + +test2_block@0: intc_0 // 0 pushbytes "" // tests/approvals/itxn.algo.ts:60 @@ -654,6 +660,8 @@ test2_else_body@2: // tests/approvals/itxn.algo.ts::ItxnDemoContract.test3() -> void: test3: + +test3_block@0: // tests/approvals/itxn.algo.ts:134-151 // const [app1, app2, app3, app4, app5, app6, app7, app8, app9, app10, app11, app12, app13, app14, app15, app16] = itxn.submitGroup( // appTxn1, @@ -1320,6 +1328,8 @@ test3_next_txn@16: // tests/approvals/itxn.algo.ts::ItxnDemoContract.test4() -> void: test4: + +test4_block@0: // tests/approvals/itxn.algo.ts:172 // const lotsOfBytes = op.bzero(2044) pushint 2044 // 2044 @@ -1496,12 +1506,16 @@ test4_next_txn@1: // tests/approvals/itxn.algo.ts::ItxnDemoContract.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub // tests/approvals/itxn.algo.ts::ItxnDemoContract.constructor() -> void: constructor: +constructor_block@0: + constructor_block@1: constructor_after_inlined_@algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.constructor@2: diff --git a/tests/approvals/out/unoptimized/itxn/ItxnDemoContract.arc32.json b/tests/approvals/out/unoptimized/itxn/ItxnDemoContract.arc32.json index 0eafb4d29..4be438eb6 100644 --- a/tests/approvals/out/unoptimized/itxn/ItxnDemoContract.arc32.json +++ b/tests/approvals/out/unoptimized/itxn/ItxnDemoContract.arc32.json @@ -22,8 +22,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA2IDUgMyAxMDAwCiAgICBieXRlY2Jsb2NrIDB4MDk4MTAxIDB4MDkzNjFhMDBiMDgxMDEgIm5hbWUiICIxIiAidW5pdCIgIjIiICJBU1QxIiAiQVNUMiIgIkFTVDMiICIzIiAiNCIgIjUiICIzcmQiICJ3aXRoIGFyZ3MgcGFyYW0gc2V0IiAiNDIiICIxMCIgIjExIiAiMTIiICIxMyIgIjE0IiAiMTUiICIxNiIKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKCm1haW5faWZfYm9keUAxOgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CgptYWluX2Jsb2NrQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjcKICAgIC8vIGV4cG9ydCBjbGFzcyBJdHhuRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAMTEKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEl0eG5EZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgyMDI1NGY5MSAvLyBtZXRob2QgInRlc3QxKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4ZjE5MDg1MjQgLy8gbWV0aG9kICJ0ZXN0Migpdm9pZCIKICAgIHB1c2hieXRlcyAweGRmOTIwZjM3IC8vIG1ldGhvZCAidGVzdDMoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHgzZDQ2MzQ1YyAvLyBtZXRob2QgInRlc3Q0KCl2b2lkIgogICAgdW5jb3ZlciA0CiAgICBtYXRjaCBtYWluX3Rlc3QxX3JvdXRlQDUgbWFpbl90ZXN0Ml9yb3V0ZUA2IG1haW5fdGVzdDNfcm91dGVANyBtYWluX3Rlc3Q0X3JvdXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgoKbWFpbl9hZnRlcl9pZl9lbHNlQDE1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgSXR4bkRlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo6SXR4bkRlbW9Db250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNjoKICAgIHJldHVybgoKbWFpbl90ZXN0NF9yb3V0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNzEKICAgIC8vIHB1YmxpYyB0ZXN0NCgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdGVzdDQKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjpJdHhuRGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE2CgptYWluX3Rlc3QzX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk1CiAgICAvLyBwdWJsaWMgdGVzdDMoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3QzCiAgICBwdXNoaW50IDEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo6SXR4bkRlbW9Db250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNgoKbWFpbl90ZXN0Ml9yb3V0ZUA2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1OAogICAgLy8gcHVibGljIHRlc3QyKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0MgogICAgcHVzaGludCAxIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6Okl0eG5EZW1vQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTYKCm1haW5fdGVzdDFfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTAKICAgIC8vIHB1YmxpYyB0ZXN0MSgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdGVzdDEKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjpJdHhuRGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE2CgptYWluX2JhcmVfcm91dGluZ0AxMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEl0eG5EZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTIKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMzoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxNDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDE1CgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEl0eG5EZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgcHVzaGludCAxIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6Okl0eG5EZW1vQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTYKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjpJdHhuRGVtb0NvbnRyYWN0LnRlc3QxKCkgLT4gdm9pZDoKdGVzdDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEwCiAgICAvLyBwdWJsaWMgdGVzdDEoKSB7CiAgICBwcm90byAwIDAKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjgKICAgIC8vIG5hbWUgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogQnl0ZXMoKSB9KQogICAgYnl0ZWNfMiAvLyAibmFtZSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTEKICAgIC8vIHRoaXMubmFtZS52YWx1ZSA9IEJ5dGVzKCdBU1QxJykKICAgIGJ5dGVjIDYgLy8gIkFTVDEiCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo4CiAgICAvLyBuYW1lID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6IEJ5dGVzKCkgfSkKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18yIC8vICJuYW1lIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTgKICAgIC8vIG1hbmFnZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgIGR1cAogICAgY292ZXIgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxOQogICAgLy8gcmVzZXJ2ZTogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgZHVwCiAgICBjb3ZlciAzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjgKICAgIC8vIG5hbWUgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogQnl0ZXMoKSB9KQogICAgYnl0ZWNfMiAvLyAibmFtZSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MjIKICAgIC8vIHRoaXMubmFtZS52YWx1ZSA9IEJ5dGVzKCdBU1QyJykKICAgIGJ5dGVjIDcgLy8gIkFTVDIiCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoyMwogICAgLy8gY29uc3QgYXNzZXQxX3R4biA9IGFzc2V0UGFyYW1zLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0UmVzZXJ2ZQogICAgaXR4bl9maWVsZCBDb25maWdBc3NldE1hbmFnZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTcKICAgIC8vIGRlY2ltYWxzOiAzLAogICAgaW50Y18zIC8vIDMKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXREZWNpbWFscwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNgogICAgLy8gdW5pdE5hbWU6ICd1bml0JywKICAgIGJ5dGVjIDQgLy8gInVuaXQiCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VW5pdE5hbWUKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXROYW1lCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbDogMTAwMCwKICAgIGludGMgNCAvLyAxMDAwCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VG90YWwKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTMtMjAKICAgIC8vIGNvbnN0IGFzc2V0UGFyYW1zID0gaXR4bi5hc3NldENvbmZpZyh7CiAgICAvLyAgIHRvdGFsOiAxMDAwLAogICAgLy8gICBhc3NldE5hbWU6IHRoaXMubmFtZS52YWx1ZSwKICAgIC8vICAgdW5pdE5hbWU6ICd1bml0JywKICAgIC8vICAgZGVjaW1hbHM6IDMsCiAgICAvLyAgIG1hbmFnZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICByZXNlcnZlOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vIH0pCiAgICBpbnRjXzMgLy8gMwogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0MV9uZXh0X3R4bkAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoyMwogICAgLy8gY29uc3QgYXNzZXQxX3R4biA9IGFzc2V0UGFyYW1zLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBDb25maWdBc3NldE5hbWUKICAgIGZyYW1lX2J1cnkgMAogICAgaXR4biBDcmVhdGVkQXNzZXRJRAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo4CiAgICAvLyBuYW1lID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6IEJ5dGVzKCkgfSkKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18yIC8vICJuYW1lIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MjcKICAgIC8vIGNvbnN0IGFzc2V0Ml90eG4gPSBhc3NldFBhcmFtcy5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgZnJhbWVfZGlnIDIKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRSZXNlcnZlCiAgICBmcmFtZV9kaWcgMQogICAgaXR4bl9maWVsZCBDb25maWdBc3NldE1hbmFnZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTcKICAgIC8vIGRlY2ltYWxzOiAzLAogICAgaW50Y18zIC8vIDMKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXREZWNpbWFscwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNgogICAgLy8gdW5pdE5hbWU6ICd1bml0JywKICAgIGJ5dGVjIDQgLy8gInVuaXQiCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VW5pdE5hbWUKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXROYW1lCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbDogMTAwMCwKICAgIGludGMgNCAvLyAxMDAwCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VG90YWwKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTMtMjAKICAgIC8vIGNvbnN0IGFzc2V0UGFyYW1zID0gaXR4bi5hc3NldENvbmZpZyh7CiAgICAvLyAgIHRvdGFsOiAxMDAwLAogICAgLy8gICBhc3NldE5hbWU6IHRoaXMubmFtZS52YWx1ZSwKICAgIC8vICAgdW5pdE5hbWU6ICd1bml0JywKICAgIC8vICAgZGVjaW1hbHM6IDMsCiAgICAvLyAgIG1hbmFnZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICByZXNlcnZlOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vIH0pCiAgICBpbnRjXzMgLy8gMwogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0MV9uZXh0X3R4bkAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoyNwogICAgLy8gY29uc3QgYXNzZXQyX3R4biA9IGFzc2V0UGFyYW1zLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBDb25maWdBc3NldE5hbWUKICAgIGl0eG4gQ3JlYXRlZEFzc2V0SUQKICAgIHN3YXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MjkKICAgIC8vIGFzc2VydChhc3NldDFfdHhuLmFzc2V0TmFtZSA9PT0gQnl0ZXMoJ0FTVDEnKSwgJ2Fzc2V0MV90eG4gaXMgY29ycmVjdCcpCiAgICBmcmFtZV9kaWcgMAogICAgYnl0ZWMgNiAvLyAiQVNUMSIKICAgID09CiAgICBhc3NlcnQgLy8gYXNzZXQxX3R4biBpcyBjb3JyZWN0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjMwCiAgICAvLyBhc3NlcnQoYXNzZXQyX3R4bi5hc3NldE5hbWUgPT09IEJ5dGVzKCdBU1QyJyksICdhc3NldDJfdHhuIGlzIGNvcnJlY3QnKQogICAgYnl0ZWMgNyAvLyAiQVNUMiIKICAgID09CiAgICBhc3NlcnQgLy8gYXNzZXQyX3R4biBpcyBjb3JyZWN0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjMxCiAgICAvLyBhc3NlcnQoYXNzZXQxX3R4bi5jcmVhdGVkQXNzZXQubmFtZSA9PT0gQnl0ZXMoJ0FTVDEnKSwgJ2NyZWF0ZWQgYXNzZXQgMSBpcyBjb3JyZWN0JykKICAgIHN3YXAKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXROYW1lCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICBieXRlYyA2IC8vICJBU1QxIgogICAgPT0KICAgIGFzc2VydCAvLyBjcmVhdGVkIGFzc2V0IDEgaXMgY29ycmVjdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czozMgogICAgLy8gYXNzZXJ0KGFzc2V0Ml90eG4uY3JlYXRlZEFzc2V0Lm5hbWUgPT09IEJ5dGVzKCdBU1QyJyksICdjcmVhdGVkIGFzc2V0IDIgaXMgY29ycmVjdCcpCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0TmFtZQogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgYnl0ZWMgNyAvLyAiQVNUMiIKICAgID09CiAgICBhc3NlcnQgLy8gY3JlYXRlZCBhc3NldCAyIGlzIGNvcnJlY3QKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NDQKICAgIC8vIGNvbnN0IFthcHBDcmVhdGVUeG4sIGFzc2V0M190eG5dID0gaXR4bi5zdWJtaXRHcm91cChhcHBDcmVhdGVQYXJhbXMsIGFzc2V0UGFyYW1zKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czozNC0zOAogICAgLy8gY29uc3QgYXBwQ3JlYXRlUGFyYW1zID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBmZWU6IDAsCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MzcKICAgIC8vIGZlZTogMCwKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDFfbmV4dF90eG5AMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NDQKICAgIC8vIGNvbnN0IFthcHBDcmVhdGVUeG4sIGFzc2V0M190eG5dID0gaXR4bi5zdWJtaXRHcm91cChhcHBDcmVhdGVQYXJhbXMsIGFzc2V0UGFyYW1zKQogICAgaXR4bl9uZXh0CiAgICBmcmFtZV9kaWcgMgogICAgaXR4bl9maWVsZCBDb25maWdBc3NldFJlc2VydmUKICAgIGZyYW1lX2RpZyAxCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TWFuYWdlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNwogICAgLy8gZGVjaW1hbHM6IDMsCiAgICBpbnRjXzMgLy8gMwogICAgaXR4bl9maWVsZCBDb25maWdBc3NldERlY2ltYWxzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE2CiAgICAvLyB1bml0TmFtZTogJ3VuaXQnLAogICAgYnl0ZWMgNCAvLyAidW5pdCIKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRVbml0TmFtZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0MQogICAgLy8gYXNzZXROYW1lOiAnQVNUMycsCiAgICBieXRlYyA4IC8vICJBU1QzIgogICAgaXR4bl9maWVsZCBDb25maWdBc3NldE5hbWUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsOiAxMDAwLAogICAgaW50YyA0IC8vIDEwMDAKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRUb3RhbAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMy0yMAogICAgLy8gY29uc3QgYXNzZXRQYXJhbXMgPSBpdHhuLmFzc2V0Q29uZmlnKHsKICAgIC8vICAgdG90YWw6IDEwMDAsCiAgICAvLyAgIGFzc2V0TmFtZTogdGhpcy5uYW1lLnZhbHVlLAogICAgLy8gICB1bml0TmFtZTogJ3VuaXQnLAogICAgLy8gICBkZWNpbWFsczogMywKICAgIC8vICAgbWFuYWdlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgIHJlc2VydmU6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gfSkKICAgIGludGNfMyAvLyAzCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QxX25leHRfdHhuQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQ0CiAgICAvLyBjb25zdCBbYXBwQ3JlYXRlVHhuLCBhc3NldDNfdHhuXSA9IGl0eG4uc3VibWl0R3JvdXAoYXBwQ3JlYXRlUGFyYW1zLCBhc3NldFBhcmFtcykKICAgIGl0eG5fc3VibWl0CiAgICBnaXR4biAwIENyZWF0ZWRBcHBsaWNhdGlvbklECiAgICBpdHhuIENvbmZpZ0Fzc2V0TmFtZQogICAgc3dhcAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0NgogICAgLy8gYXNzZXJ0KGFwcENyZWF0ZVR4bi5jcmVhdGVkQXBwLCAnYXBwIGlzIGNyZWF0ZWQnKQogICAgYXNzZXJ0IC8vIGFwcCBpcyBjcmVhdGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQ3CiAgICAvLyBhc3NlcnQoYXNzZXQzX3R4bi5hc3NldE5hbWUgPT09IEJ5dGVzKCdBU1QzJyksICdhc3NldDNfdHhuIGlzIGNvcnJlY3QnKQogICAgYnl0ZWMgOCAvLyAiQVNUMyIKICAgID09CiAgICBhc3NlcnQgLy8gYXNzZXQzX3R4biBpcyBjb3JyZWN0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjU1CiAgICAvLyBpdHhuLnN1Ym1pdEdyb3VwKGFwcENyZWF0ZVBhcmFtcywgYXNzZXRQYXJhbXMpCiAgICBpdHhuX2JlZ2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUwCiAgICAvLyBub3RlOiAnM3JkJywKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBkdXAKICAgID49CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjU1CiAgICAvLyBpdHhuLnN1Ym1pdEdyb3VwKGFwcENyZWF0ZVBhcmFtcywgYXNzZXRQYXJhbXMpCiAgICBieiB0ZXN0MV9uZXh0X2ZpZWxkQDYKCnRlc3QxX3NldF9Ob3RlXzBfdG9fMEA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1MAogICAgLy8gbm90ZTogJzNyZCcsCiAgICBieXRlYyAxMiAvLyAiM3JkIgogICAgaXR4bl9maWVsZCBOb3RlCgp0ZXN0MV9uZXh0X2ZpZWxkQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IEFQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTgxMDEnKQogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjM0LTM4CiAgICAvLyBjb25zdCBhcHBDcmVhdGVQYXJhbXMgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIGZlZTogMCwKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czozNwogICAgLy8gZmVlOiAwLAogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0MV9uZXh0X3R4bkA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1NQogICAgLy8gaXR4bi5zdWJtaXRHcm91cChhcHBDcmVhdGVQYXJhbXMsIGFzc2V0UGFyYW1zKQogICAgaXR4bl9uZXh0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUzCiAgICAvLyBub3RlOiAnM3JkJywKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBkdXAKICAgID49CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjU1CiAgICAvLyBpdHhuLnN1Ym1pdEdyb3VwKGFwcENyZWF0ZVBhcmFtcywgYXNzZXRQYXJhbXMpCiAgICBieiB0ZXN0MV9uZXh0X2ZpZWxkQDkKCnRlc3QxX3NldF9Ob3RlXzBfdG9fMEA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1MwogICAgLy8gbm90ZTogJzNyZCcsCiAgICBieXRlYyAxMiAvLyAiM3JkIgogICAgaXR4bl9maWVsZCBOb3RlCgp0ZXN0MV9uZXh0X2ZpZWxkQDk6CiAgICBmcmFtZV9kaWcgMgogICAgaXR4bl9maWVsZCBDb25maWdBc3NldFJlc2VydmUKICAgIGZyYW1lX2RpZyAxCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TWFuYWdlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNwogICAgLy8gZGVjaW1hbHM6IDMsCiAgICBpbnRjXzMgLy8gMwogICAgaXR4bl9maWVsZCBDb25maWdBc3NldERlY2ltYWxzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE2CiAgICAvLyB1bml0TmFtZTogJ3VuaXQnLAogICAgYnl0ZWMgNCAvLyAidW5pdCIKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRVbml0TmFtZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0MQogICAgLy8gYXNzZXROYW1lOiAnQVNUMycsCiAgICBieXRlYyA4IC8vICJBU1QzIgogICAgaXR4bl9maWVsZCBDb25maWdBc3NldE5hbWUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsOiAxMDAwLAogICAgaW50YyA0IC8vIDEwMDAKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRUb3RhbAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMy0yMAogICAgLy8gY29uc3QgYXNzZXRQYXJhbXMgPSBpdHhuLmFzc2V0Q29uZmlnKHsKICAgIC8vICAgdG90YWw6IDEwMDAsCiAgICAvLyAgIGFzc2V0TmFtZTogdGhpcy5uYW1lLnZhbHVlLAogICAgLy8gICB1bml0TmFtZTogJ3VuaXQnLAogICAgLy8gICBkZWNpbWFsczogMywKICAgIC8vICAgbWFuYWdlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgIHJlc2VydmU6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gfSkKICAgIGludGNfMyAvLyAzCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QxX25leHRfdHhuQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1NQogICAgLy8gaXR4bi5zdWJtaXRHcm91cChhcHBDcmVhdGVQYXJhbXMsIGFzc2V0UGFyYW1zKQogICAgaXR4bl9zdWJtaXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6Okl0eG5EZW1vQ29udHJhY3QudGVzdDIoKSAtPiB2b2lkOgp0ZXN0MjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NTgKICAgIC8vIHB1YmxpYyB0ZXN0MigpIHsKICAgIHByb3RvIDAgMAogICAgaW50Y18wIC8vIDAKICAgIGR1cG4gMgogICAgcHVzaGJ5dGVzICIiCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBwdXNoYnl0ZXMgIiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NjAKICAgIC8vIGlmIChUeG4ubnVtQXBwQXJncykgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGJ6IHRlc3QyX2Vsc2VfYm9keUAyCgp0ZXN0Ml9pZl9ib2R5QDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjYxCiAgICAvLyBjb25zdCBhcmdzID0gW0J5dGVzKCcxJyksIEJ5dGVzKCcyJyldIGFzIGNvbnN0CiAgICBieXRlY18zIC8vICIxIgogICAgZnJhbWVfYnVyeSAwCiAgICBieXRlYyA1IC8vICIyIgogICAgZnJhbWVfYnVyeSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjY1CiAgICAvLyBhcHBBcmdzOiBhcmdzLAogICAgcHVzaGludCAyIC8vIDIKICAgIGZyYW1lX2J1cnkgMwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo2NgogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLk5vT3AsCiAgICBpbnRjXzAgLy8gMAogICAgZnJhbWVfYnVyeSA2CiAgICBwdXNoaW50IDEgLy8gMQogICAgZnJhbWVfYnVyeSA0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjY3CiAgICAvLyBub3RlOiAnd2l0aCBhcmdzIHBhcmFtIHNldCcsCiAgICBieXRlYyAxMyAvLyAid2l0aCBhcmdzIHBhcmFtIHNldCIKCnRlc3QyX2FmdGVyX2lmX2Vsc2VAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NzcKICAgIC8vIGNvbnN0IGNyZWF0ZUFwcFR4biA9IGNyZWF0ZUFwcFBhcmFtcy5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgaXR4bl9maWVsZCBOb3RlCiAgICBmcmFtZV9kaWcgNAogICAgcHVzaGludCAxIC8vIDEKICAgID49CiAgICBieiB0ZXN0Ml9uZXh0X2ZpZWxkQDUKCnRlc3QyX3NldF9PbkNvbXBsZXRpb25fMF90b18wQDQ6CiAgICBmcmFtZV9kaWcgNgogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCnRlc3QyX25leHRfZmllbGRANToKICAgIGZyYW1lX2RpZyAwCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgZnJhbWVfZGlnIDEKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBmcmFtZV9kaWcgMwogICAgaW50Y18zIC8vIDMKICAgID49CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjc3CiAgICAvLyBjb25zdCBjcmVhdGVBcHBUeG4gPSBjcmVhdGVBcHBQYXJhbXMuc3VibWl0KCkKICAgIGJ6IHRlc3QyX25leHRfZmllbGRANwoKdGVzdDJfc2V0X0FwcGxpY2F0aW9uQXJnc18yX3RvXzJANjoKICAgIGZyYW1lX2RpZyA1CiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKdGVzdDJfbmV4dF9maWVsZEA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo2Mi02OAogICAgLy8gY3JlYXRlQXBwUGFyYW1zID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBhcHBBcmdzOiBhcmdzLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uTm9PcCwKICAgIC8vICAgbm90ZTogJ3dpdGggYXJncyBwYXJhbSBzZXQnLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QyX25leHRfdHhuQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjc3CiAgICAvLyBjb25zdCBjcmVhdGVBcHBUeG4gPSBjcmVhdGVBcHBQYXJhbXMuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CiAgICBpdHhuIE5vdGUKICAgIGZyYW1lX2J1cnkgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo3OAogICAgLy8gYXNzZXJ0KGNyZWF0ZUFwcFR4bi5hcHBBcmdzKDApID09PSBCeXRlcygnMScpLCAnY29ycmVjdCBhcmdzIHVzZWQgMScpCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bmFzIEFwcGxpY2F0aW9uQXJncwogICAgYnl0ZWNfMyAvLyAiMSIKICAgID09CiAgICBhc3NlcnQgLy8gY29ycmVjdCBhcmdzIHVzZWQgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo3OQogICAgLy8gYXNzZXJ0KGNyZWF0ZUFwcFR4bi5hcHBBcmdzKDEpID09PSBCeXRlcygnMicpLCAnY29ycmVjdCBhcmdzIHVzZWQgMicpCiAgICBwdXNoaW50IDEgLy8gMQogICAgaXR4bmFzIEFwcGxpY2F0aW9uQXJncwogICAgYnl0ZWMgNSAvLyAiMiIKICAgID09CiAgICBhc3NlcnQgLy8gY29ycmVjdCBhcmdzIHVzZWQgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo4MQogICAgLy8gaWYgKFR4bi5udW1BcHBBcmdzID4gMSkgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIHB1c2hpbnQgMSAvLyAxCiAgICA+CiAgICBieiB0ZXN0Ml9hZnRlcl9pZl9lbHNlQDExCgp0ZXN0Ml9pZl9ib2R5QDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjgyLTg5CiAgICAvLyBjb25zdCBjcmVhdGVBcHBUeG4yID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHByb3ZhbFByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICAgIGFwcEFyZ3M6IFtCeXRlcygnNDInKV0sCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo4NwogICAgLy8gYXBwQXJnczogW0J5dGVzKCc0MicpXSwKICAgIGJ5dGVjIDE0IC8vICI0MiIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjg2CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzIgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6ODItODgKICAgIC8vIGNvbnN0IGNyZWF0ZUFwcFR4bjIgPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcHJvdmFsUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgICBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgICAgYXBwQXJnczogW0J5dGVzKCc0MicpXSwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QyX25leHRfdHhuQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo4Mi04OQogICAgLy8gY29uc3QgY3JlYXRlQXBwVHhuMiA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgICBhcHBBcmdzOiBbQnl0ZXMoJzQyJyldLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjkwCiAgICAvLyBhc3NlcnQoY3JlYXRlQXBwVHhuMi5hcHBBcmdzKDApID09PSBCeXRlcygnNDInKSwgJ2NvcnJlY3QgYXJncyB1c2VkIDInKQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5hcyBBcHBsaWNhdGlvbkFyZ3MKICAgIGJ5dGVjIDE0IC8vICI0MiIKICAgID09CiAgICBhc3NlcnQgLy8gY29ycmVjdCBhcmdzIHVzZWQgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5MQogICAgLy8gYXNzZXJ0KGNyZWF0ZUFwcFR4bi5ub3RlID09PSBCeXRlcygnd2l0aCBhcmdzIHBhcmFtIHNldCcpKQogICAgZnJhbWVfZGlnIDIKICAgIGJ5dGVjIDEzIC8vICJ3aXRoIGFyZ3MgcGFyYW0gc2V0IgogICAgPT0KICAgIGFzc2VydAoKdGVzdDJfYWZ0ZXJfaWZfZWxzZUAxMToKICAgIHJldHN1YgoKdGVzdDJfZWxzZV9ib2R5QDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjczCiAgICAvLyBhcHBBcmdzOiBbQnl0ZXMoJzMnKSwgJzQnLCBCeXRlcygnNScpXSwKICAgIGJ5dGVjIDkgLy8gIjMiCiAgICBmcmFtZV9idXJ5IDAKICAgIGJ5dGVjIDEwIC8vICI0IgogICAgZnJhbWVfYnVyeSAxCiAgICBieXRlYyAxMSAvLyAiNSIKICAgIGZyYW1lX2J1cnkgNQogICAgaW50Y18zIC8vIDMKICAgIGZyYW1lX2J1cnkgMwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo3NAogICAgLy8gbm90ZTogJ25vIGFyZ3MgcGFyYW0gc2V0JywKICAgIHB1c2hieXRlcyAibm8gYXJncyBwYXJhbSBzZXQiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjcwCiAgICAvLyBjcmVhdGVBcHBQYXJhbXMgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICBpbnRjXzAgLy8gMAogICAgZnJhbWVfYnVyeSA0CiAgICBiIHRlc3QyX2FmdGVyX2lmX2Vsc2VAMwoKCi8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6Okl0eG5EZW1vQ29udHJhY3QudGVzdDMoKSAtPiB2b2lkOgp0ZXN0MzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTM0LTE1MQogICAgLy8gY29uc3QgW2FwcDEsIGFwcDIsIGFwcDMsIGFwcDQsIGFwcDUsIGFwcDYsIGFwcDcsIGFwcDgsIGFwcDksIGFwcDEwLCBhcHAxMSwgYXBwMTIsIGFwcDEzLCBhcHAxNCwgYXBwMTUsIGFwcDE2XSA9IGl0eG4uc3VibWl0R3JvdXAoCiAgICAvLyAgIGFwcFR4bjEsCiAgICAvLyAgIGFwcFR4bjIsCiAgICAvLyAgIGFwcFR4bjMsCiAgICAvLyAgIGFwcFR4bjQsCiAgICAvLyAgIGFwcFR4bjUsCiAgICAvLyAgIGFwcFR4bjYsCiAgICAvLyAgIGFwcFR4bjcsCiAgICAvLyAgIGFwcFR4bjgsCiAgICAvLyAgIGFwcFR4bjksCiAgICAvLyAgIGFwcFR4bjEwLAogICAgLy8gICBhcHBUeG4xMSwKICAgIC8vICAgYXBwVHhuMTIsCiAgICAvLyAgIGFwcFR4bjEzLAogICAgLy8gICBhcHBUeG4xNCwKICAgIC8vICAgYXBwVHhuMTUsCiAgICAvLyAgIGFwcFR4bjE2LAogICAgLy8gKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMDAKICAgIC8vIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIGJ5dGVjXzMgLy8gIjEiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IEFQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTgxMDEnKQogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQKICAgIC8vIGNvbnN0IExPR18xU1RfQVJHX0FORF9BUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDkzNjFBMDBCMDgxMDEnKQogICAgYnl0ZWNfMSAvLyAweDA5MzYxYTAwYjA4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEzNgogICAgLy8gYXBwVHhuMiwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMDQKICAgIC8vIGFwcFR4bjIuc2V0KHsgYXBwQXJnczogW0J5dGVzKCcyJyldIH0pCiAgICBieXRlYyA1IC8vICIyIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTkKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMiAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5Ni0xMDEKICAgIC8vIGNvbnN0IGFwcFR4bjEgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0M19uZXh0X3R4bkAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMzcKICAgIC8vIGFwcFR4bjMsCiAgICBpdHhuX25leHQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NAogICAgLy8gY29uc3QgTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTM2MUEwMEIwODEwMScpCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTA2CiAgICAvLyBhcHBUeG4zLnNldCh7IGFwcEFyZ3M6IFtCeXRlcygnMycpXSB9KQogICAgYnl0ZWMgOSAvLyAiMyIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk5CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzIgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTYtMTAxCiAgICAvLyBjb25zdCBhcHBUeG4xID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IExPR18xU1RfQVJHX0FORF9BUFBST1ZFLAogICAgLy8gICBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICBhcHBBcmdzOiBbQnl0ZXMoJzEnKV0sCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDNfbmV4dF90eG5AMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTM4CiAgICAvLyBhcHBUeG40LAogICAgaXR4bl9uZXh0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IEFQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTgxMDEnKQogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQKICAgIC8vIGNvbnN0IExPR18xU1RfQVJHX0FORF9BUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDkzNjFBMDBCMDgxMDEnKQogICAgYnl0ZWNfMSAvLyAweDA5MzYxYTAwYjA4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEwOAogICAgLy8gYXBwVHhuNC5zZXQoeyBhcHBBcmdzOiBbQnl0ZXMoJzQnKV0gfSkKICAgIGJ5dGVjIDEwIC8vICI0IgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTkKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMiAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5Ni0xMDEKICAgIC8vIGNvbnN0IGFwcFR4bjEgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0M19uZXh0X3R4bkA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMzkKICAgIC8vIGFwcFR4bjUsCiAgICBpdHhuX25leHQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NAogICAgLy8gY29uc3QgTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTM2MUEwMEIwODEwMScpCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTEwCiAgICAvLyBhcHBUeG41LnNldCh7IGFwcEFyZ3M6IFtCeXRlcygnNScpXSB9KQogICAgYnl0ZWMgMTEgLy8gIjUiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0MAogICAgLy8gYXBwVHhuNiwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTIKICAgIC8vIGFwcFR4bjYuc2V0KHsgYXBwQXJnczogW0J5dGVzKCc2JyldIH0pCiAgICBwdXNoYnl0ZXMgIjYiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0MQogICAgLy8gYXBwVHhuNywKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTQKICAgIC8vIGFwcFR4bjcuc2V0KHsgYXBwQXJnczogW0J5dGVzKCc3JyldIH0pCiAgICBwdXNoYnl0ZXMgIjciCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0MgogICAgLy8gYXBwVHhuOCwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTYKICAgIC8vIGFwcFR4bjguc2V0KHsgYXBwQXJnczogW0J5dGVzKCc4JyldIH0pCiAgICBwdXNoYnl0ZXMgIjgiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0MwogICAgLy8gYXBwVHhuOSwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTgKICAgIC8vIGFwcFR4bjkuc2V0KHsgYXBwQXJnczogW0J5dGVzKCc5JyldIH0pCiAgICBwdXNoYnl0ZXMgIjkiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0NAogICAgLy8gYXBwVHhuMTAsCiAgICBpdHhuX25leHQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NAogICAgLy8gY29uc3QgTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTM2MUEwMEIwODEwMScpCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTIwCiAgICAvLyBhcHBUeG4xMC5zZXQoeyBhcHBBcmdzOiBbQnl0ZXMoJzEwJyldIH0pCiAgICBieXRlYyAxNSAvLyAiMTAiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNDUKICAgIC8vIGFwcFR4bjExLAogICAgaXR4bl9uZXh0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IEFQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTgxMDEnKQogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQKICAgIC8vIGNvbnN0IExPR18xU1RfQVJHX0FORF9BUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDkzNjFBMDBCMDgxMDEnKQogICAgYnl0ZWNfMSAvLyAweDA5MzYxYTAwYjA4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEyMgogICAgLy8gYXBwVHhuMTEuc2V0KHsgYXBwQXJnczogW0J5dGVzKCcxMScpXSB9KQogICAgYnl0ZWMgMTYgLy8gIjExIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTkKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMiAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5Ni0xMDEKICAgIC8vIGNvbnN0IGFwcFR4bjEgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0M19uZXh0X3R4bkAxMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTQ2CiAgICAvLyBhcHBUeG4xMiwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMjQKICAgIC8vIGFwcFR4bjEyLnNldCh7IGFwcEFyZ3M6IFtCeXRlcygnMTInKV0gfSkKICAgIGJ5dGVjIDE3IC8vICIxMiIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk5CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzIgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTYtMTAxCiAgICAvLyBjb25zdCBhcHBUeG4xID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IExPR18xU1RfQVJHX0FORF9BUFBST1ZFLAogICAgLy8gICBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICBhcHBBcmdzOiBbQnl0ZXMoJzEnKV0sCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDNfbmV4dF90eG5AMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0NwogICAgLy8gYXBwVHhuMTMsCiAgICBpdHhuX25leHQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NAogICAgLy8gY29uc3QgTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTM2MUEwMEIwODEwMScpCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTI2CiAgICAvLyBhcHBUeG4xMy5zZXQoeyBhcHBBcmdzOiBbQnl0ZXMoJzEzJyldIH0pCiAgICBieXRlYyAxOCAvLyAiMTMiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDEzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNDgKICAgIC8vIGFwcFR4bjE0LAogICAgaXR4bl9uZXh0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IEFQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTgxMDEnKQogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQKICAgIC8vIGNvbnN0IExPR18xU1RfQVJHX0FORF9BUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDkzNjFBMDBCMDgxMDEnKQogICAgYnl0ZWNfMSAvLyAweDA5MzYxYTAwYjA4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEyOAogICAgLy8gYXBwVHhuMTQuc2V0KHsgYXBwQXJnczogW0J5dGVzKCcxNCcpXSB9KQogICAgYnl0ZWMgMTkgLy8gIjE0IgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTkKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMiAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5Ni0xMDEKICAgIC8vIGNvbnN0IGFwcFR4bjEgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0M19uZXh0X3R4bkAxNDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTQ5CiAgICAvLyBhcHBUeG4xNSwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMzAKICAgIC8vIGFwcFR4bjE1LnNldCh7IGFwcEFyZ3M6IFtCeXRlcygnMTUnKV0gfSkKICAgIGJ5dGVjIDIwIC8vICIxNSIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk5CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzIgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTYtMTAxCiAgICAvLyBjb25zdCBhcHBUeG4xID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IExPR18xU1RfQVJHX0FORF9BUFBST1ZFLAogICAgLy8gICBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICBhcHBBcmdzOiBbQnl0ZXMoJzEnKV0sCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDNfbmV4dF90eG5AMTU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE1MAogICAgLy8gYXBwVHhuMTYsCiAgICBpdHhuX25leHQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NAogICAgLy8gY29uc3QgTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTM2MUEwMEIwODEwMScpCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTMyCiAgICAvLyBhcHBUeG4xNi5zZXQoeyBhcHBBcmdzOiBbQnl0ZXMoJzE2JyldIH0pCiAgICBieXRlYyAyMSAvLyAiMTYiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDE2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMzQtMTUxCiAgICAvLyBjb25zdCBbYXBwMSwgYXBwMiwgYXBwMywgYXBwNCwgYXBwNSwgYXBwNiwgYXBwNywgYXBwOCwgYXBwOSwgYXBwMTAsIGFwcDExLCBhcHAxMiwgYXBwMTMsIGFwcDE0LCBhcHAxNSwgYXBwMTZdID0gaXR4bi5zdWJtaXRHcm91cCgKICAgIC8vICAgYXBwVHhuMSwKICAgIC8vICAgYXBwVHhuMiwKICAgIC8vICAgYXBwVHhuMywKICAgIC8vICAgYXBwVHhuNCwKICAgIC8vICAgYXBwVHhuNSwKICAgIC8vICAgYXBwVHhuNiwKICAgIC8vICAgYXBwVHhuNywKICAgIC8vICAgYXBwVHhuOCwKICAgIC8vICAgYXBwVHhuOSwKICAgIC8vICAgYXBwVHhuMTAsCiAgICAvLyAgIGFwcFR4bjExLAogICAgLy8gICBhcHBUeG4xMiwKICAgIC8vICAgYXBwVHhuMTMsCiAgICAvLyAgIGFwcFR4bjE0LAogICAgLy8gICBhcHBUeG4xNSwKICAgIC8vICAgYXBwVHhuMTYsCiAgICAvLyApCiAgICBpdHhuX3N1Ym1pdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNTMKICAgIC8vIGFzc2VydChhcHAxLmxvZ3MoMCkgPT09IEJ5dGVzKCcxJykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyAwIExvZ3MKICAgIGJ5dGVjXzMgLy8gIjEiCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE1NAogICAgLy8gYXNzZXJ0KGFwcDIubG9ncygwKSA9PT0gQnl0ZXMoJzInKSkKICAgIGludGNfMCAvLyAwCiAgICBnaXR4bmFzIDEgTG9ncwogICAgYnl0ZWMgNSAvLyAiMiIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTU1CiAgICAvLyBhc3NlcnQoYXBwMy5sb2dzKDApID09PSBCeXRlcygnMycpKQogICAgaW50Y18wIC8vIDAKICAgIGdpdHhuYXMgMiBMb2dzCiAgICBieXRlYyA5IC8vICIzIgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNTYKICAgIC8vIGFzc2VydChhcHA0LmxvZ3MoMCkgPT09IEJ5dGVzKCc0JykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyAzIExvZ3MKICAgIGJ5dGVjIDEwIC8vICI0IgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNTcKICAgIC8vIGFzc2VydChhcHA1LmxvZ3MoMCkgPT09IEJ5dGVzKCc1JykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyA0IExvZ3MKICAgIGJ5dGVjIDExIC8vICI1IgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNTgKICAgIC8vIGFzc2VydChhcHA2LmxvZ3MoMCkgPT09IEJ5dGVzKCc2JykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyA1IExvZ3MKICAgIHB1c2hieXRlcyAiNiIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTU5CiAgICAvLyBhc3NlcnQoYXBwNy5sb2dzKDApID09PSBCeXRlcygnNycpKQogICAgaW50Y18wIC8vIDAKICAgIGdpdHhuYXMgNiBMb2dzCiAgICBwdXNoYnl0ZXMgIjciCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE2MAogICAgLy8gYXNzZXJ0KGFwcDgubG9ncygwKSA9PT0gQnl0ZXMoJzgnKSkKICAgIGludGNfMCAvLyAwCiAgICBnaXR4bmFzIDcgTG9ncwogICAgcHVzaGJ5dGVzICI4IgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNjEKICAgIC8vIGFzc2VydChhcHA5LmxvZ3MoMCkgPT09IEJ5dGVzKCc5JykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyA4IExvZ3MKICAgIHB1c2hieXRlcyAiOSIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTYyCiAgICAvLyBhc3NlcnQoYXBwMTAubG9ncygwKSA9PT0gQnl0ZXMoJzEwJykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyA5IExvZ3MKICAgIGJ5dGVjIDE1IC8vICIxMCIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTYzCiAgICAvLyBhc3NlcnQoYXBwMTEubG9ncygwKSA9PT0gQnl0ZXMoJzExJykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyAxMCBMb2dzCiAgICBieXRlYyAxNiAvLyAiMTEiCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE2NAogICAgLy8gYXNzZXJ0KGFwcDEyLmxvZ3MoMCkgPT09IEJ5dGVzKCcxMicpKQogICAgaW50Y18wIC8vIDAKICAgIGdpdHhuYXMgMTEgTG9ncwogICAgYnl0ZWMgMTcgLy8gIjEyIgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNjUKICAgIC8vIGFzc2VydChhcHAxMy5sb2dzKDApID09PSBCeXRlcygnMTMnKSkKICAgIGludGNfMCAvLyAwCiAgICBnaXR4bmFzIDEyIExvZ3MKICAgIGJ5dGVjIDE4IC8vICIxMyIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTY2CiAgICAvLyBhc3NlcnQoYXBwMTQubG9ncygwKSA9PT0gQnl0ZXMoJzE0JykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyAxMyBMb2dzCiAgICBieXRlYyAxOSAvLyAiMTQiCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE2NwogICAgLy8gYXNzZXJ0KGFwcDE1LmxvZ3MoMCkgPT09IEJ5dGVzKCcxNScpKQogICAgaW50Y18wIC8vIDAKICAgIGdpdHhuYXMgMTQgTG9ncwogICAgYnl0ZWMgMjAgLy8gIjE1IgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNjgKICAgIC8vIGFzc2VydChhcHAxNi5sb2dzKDApID09PSBCeXRlcygnMTYnKSkKICAgIGludGNfMCAvLyAwCiAgICBpdHhuYXMgTG9ncwogICAgYnl0ZWMgMjEgLy8gIjE2IgogICAgPT0KICAgIGFzc2VydAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo6SXR4bkRlbW9Db250cmFjdC50ZXN0NCgpIC0+IHZvaWQ6CnRlc3Q0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNzIKICAgIC8vIGNvbnN0IGxvdHNPZkJ5dGVzID0gb3AuYnplcm8oMjA0NCkKICAgIHB1c2hpbnQgMjA0NCAvLyAyMDQ0CiAgICBiemVybwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNzQKICAgIC8vIGNvbnN0IGFwcHJvdmFsMiA9IEJ5dGVzLmZyb21IZXgoJzgwJyArICdGQzBmJykKICAgIHB1c2hieXRlcyAweDgwZmMwZgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNzQtMTc1CiAgICAvLyBjb25zdCBhcHByb3ZhbDIgPSBCeXRlcy5mcm9tSGV4KCc4MCcgKyAnRkMwZicpCiAgICAvLyAgIC5jb25jYXQobG90c09mQnl0ZXMpCiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTc2CiAgICAvLyAuY29uY2F0KEJ5dGVzLmZyb21IZXgoJzQ4JykpCiAgICBwdXNoYnl0ZXMgMHg0OAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNzQtMTc2CiAgICAvLyBjb25zdCBhcHByb3ZhbDIgPSBCeXRlcy5mcm9tSGV4KCc4MCcgKyAnRkMwZicpCiAgICAvLyAgIC5jb25jYXQobG90c09mQnl0ZXMpCiAgICAvLyAgIC5jb25jYXQoQnl0ZXMuZnJvbUhleCgnNDgnKSkKICAgIGNvbmNhdAogICAgZHVwbiAzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE3OQogICAgLy8gYXBwcm92YWxQcm9ncmFtOiBbYXBwcm92YWwxLCBhcHByb3ZhbDIsIGFwcHJvdmFsMiwgYXBwcm92YWwyXSwKICAgIGNvdmVyIDIKICAgIGNvdmVyIDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTg1CiAgICAvLyBjb25zdCBhcHAxID0gYXBwVHhuMS5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxODMKICAgIC8vIGV4dHJhUHJvZ3JhbVBhZ2VzOiAzLAogICAgaW50Y18zIC8vIDMKICAgIGl0eG5fZmllbGQgRXh0cmFQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTgyCiAgICAvLyBhcHBBcmdzOiBbQnl0ZXMoJzEnKV0sCiAgICBieXRlY18zIC8vICIxIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTgxCiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzIgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTc4LTE4NAogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBbYXBwcm92YWwxLCBhcHByb3ZhbDIsIGFwcHJvdmFsMiwgYXBwcm92YWwyXSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gICBleHRyYVByb2dyYW1QYWdlczogMywKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0NF9uZXh0X3R4bkAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxODUKICAgIC8vIGNvbnN0IGFwcDEgPSBhcHBUeG4xLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBFeHRyYVByb2dyYW1QYWdlcwogICAgaXR4biBOdW1BcHByb3ZhbFByb2dyYW1QYWdlcwogICAgc3dhcAogICAgaXR4biBOdW1DbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBjb3ZlciAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE4NgogICAgLy8gYXNzZXJ0KGFwcDEuZXh0cmFQcm9ncmFtUGFnZXMgPT09IDMsICdleHRyYSBwYWdlcyA9IDMnKQogICAgaW50Y18zIC8vIDMKICAgID09CiAgICBhc3NlcnQgLy8gZXh0cmEgcGFnZXMgPSAzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE4NwogICAgLy8gYXNzZXJ0KGFwcDEubnVtQXBwcm92YWxQcm9ncmFtUGFnZXMgPT09IDIsICdhcHByb3ZhbCBwYWdlcyA9IDInKQogICAgcHVzaGludCAyIC8vIDIKICAgID09CiAgICBhc3NlcnQgLy8gYXBwcm92YWwgcGFnZXMgPSAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE4OAogICAgLy8gYXNzZXJ0KGFwcDEuYXBwcm92YWxQcm9ncmFtUGFnZXMoMCkgPT09IGFwcHJvdmFsMS5jb25jYXQoYXBwcm92YWwyKS5jb25jYXQoYXBwcm92YWwyLnNsaWNlKDAsIC0zKSksICdleHBlY3RlZCBhcHByb3ZhbCBwYWdlIDAnKQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5hcyBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTg4CiAgICAvLyBhc3NlcnQoYXBwMS5hcHByb3ZhbFByb2dyYW1QYWdlcygwKSA9PT0gYXBwcm92YWwxLmNvbmNhdChhcHByb3ZhbDIpLmNvbmNhdChhcHByb3ZhbDIuc2xpY2UoMCwgLTMpKSwgJ2V4cGVjdGVkIGFwcHJvdmFsIHBhZ2UgMCcpCiAgICB1bmNvdmVyIDMKICAgIGR1cAogICAgY292ZXIgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18wIC8vIDAKICAgIGRpZyAxCiAgICA+PQogICAgaW50Y18wIC8vIDAKICAgIGRpZyAyCiAgICB1bmNvdmVyIDIKICAgIHNlbGVjdAogICAgc3dhcAogICAgaW50Y18zIC8vIDMKICAgIGRpZyAxCiAgICA+PQogICAgaW50Y18zIC8vIDMKICAgIGRpZyAyCiAgICB1bmNvdmVyIDIKICAgIHNlbGVjdAogICAgLQogICAgZHVwCiAgICBkaWcgMgogICAgPAogICAgc3dhcAogICAgZGlnIDIKICAgIHVuY292ZXIgMgogICAgc2VsZWN0CiAgICBkaWcgMgogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgIHVuY292ZXIgMgogICAgc3dhcAogICAgY29uY2F0CiAgICB1bmNvdmVyIDIKICAgID09CiAgICBhc3NlcnQgLy8gZXhwZWN0ZWQgYXBwcm92YWwgcGFnZSAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE4OQogICAgLy8gYXNzZXJ0KGFwcDEuYXBwcm92YWxQcm9ncmFtUGFnZXMoMSkgPT09IGFwcHJvdmFsMi5zbGljZSgtMykuY29uY2F0KGFwcHJvdmFsMiksICdleHBlY3RlZCBhcHByb3ZhbCBwYWdlIDEnKQogICAgcHVzaGludCAxIC8vIDEKICAgIGl0eG5hcyBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgc3dhcAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyAzCiAgICBkaWcgMQogICAgPj0KICAgIGludGNfMyAvLyAzCiAgICBkaWcgMgogICAgdW5jb3ZlciAyCiAgICBzZWxlY3QKICAgIGRpZyAxCiAgICBzd2FwCiAgICAtCiAgICBkaWcgMgogICAgc3dhcAogICAgdW5jb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICBzd2FwCiAgICBjb25jYXQKICAgID09CiAgICBhc3NlcnQgLy8gZXhwZWN0ZWQgYXBwcm92YWwgcGFnZSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE5MAogICAgLy8gYXNzZXJ0KGFwcDEubnVtQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcyA9PT0gMSwgJ2NsZWFyIHN0YXRlIHBhZ2VzID0gMScpCiAgICBwdXNoaW50IDEgLy8gMQogICAgPT0KICAgIGFzc2VydCAvLyBjbGVhciBzdGF0ZSBwYWdlcyA9IDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTkxCiAgICAvLyBhc3NlcnQoYXBwMS5jbGVhclN0YXRlUHJvZ3JhbVBhZ2VzKDApID09PSBBUFBST1ZFLCAnZXhwZWN0ZWQgY2xlYXIgc3RhdGUgcGFnZScpCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bmFzIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE5MQogICAgLy8gYXNzZXJ0KGFwcDEuY2xlYXJTdGF0ZVByb2dyYW1QYWdlcygwKSA9PT0gQVBQUk9WRSwgJ2V4cGVjdGVkIGNsZWFyIHN0YXRlIHBhZ2UnKQogICAgPT0KICAgIGFzc2VydCAvLyBleHBlY3RlZCBjbGVhciBzdGF0ZSBwYWdlCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjpJdHhuRGVtb0NvbnRyYWN0Ll9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6Okl0eG5EZW1vQ29udHJhY3QuY29uc3RydWN0b3IoKSAtPiB2b2lkOgpjb25zdHJ1Y3RvcjoKCmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgpjb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo4CiAgICAvLyBuYW1lID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6IEJ5dGVzKCkgfSkKICAgIGJ5dGVjXzIgLy8gIm5hbWUiCiAgICBwdXNoYnl0ZXMgMHgKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA2IDUgMyAxMDAwCiAgICBieXRlY2Jsb2NrIDB4MDk4MTAxIDB4MDkzNjFhMDBiMDgxMDEgIm5hbWUiICIxIiAidW5pdCIgIjIiICJBU1QxIiAiQVNUMiIgIkFTVDMiICIzIiAiNCIgIjUiICIzcmQiICJ3aXRoIGFyZ3MgcGFyYW0gc2V0IiAiNDIiICIxMCIgIjExIiAiMTIiICIxMyIgIjE0IiAiMTUiICIxNiIKCm1haW5fYmxvY2tAMDoKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKCm1haW5faWZfYm9keUAxOgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CgptYWluX2Jsb2NrQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjcKICAgIC8vIGV4cG9ydCBjbGFzcyBJdHhuRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAMTEKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEl0eG5EZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgyMDI1NGY5MSAvLyBtZXRob2QgInRlc3QxKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4ZjE5MDg1MjQgLy8gbWV0aG9kICJ0ZXN0Migpdm9pZCIKICAgIHB1c2hieXRlcyAweGRmOTIwZjM3IC8vIG1ldGhvZCAidGVzdDMoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHgzZDQ2MzQ1YyAvLyBtZXRob2QgInRlc3Q0KCl2b2lkIgogICAgdW5jb3ZlciA0CiAgICBtYXRjaCBtYWluX3Rlc3QxX3JvdXRlQDUgbWFpbl90ZXN0Ml9yb3V0ZUA2IG1haW5fdGVzdDNfcm91dGVANyBtYWluX3Rlc3Q0X3JvdXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgoKbWFpbl9hZnRlcl9pZl9lbHNlQDE1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgSXR4bkRlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo6SXR4bkRlbW9Db250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNjoKICAgIHJldHVybgoKbWFpbl90ZXN0NF9yb3V0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNzEKICAgIC8vIHB1YmxpYyB0ZXN0NCgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdGVzdDQKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjpJdHhuRGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE2CgptYWluX3Rlc3QzX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk1CiAgICAvLyBwdWJsaWMgdGVzdDMoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3QzCiAgICBwdXNoaW50IDEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo6SXR4bkRlbW9Db250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNgoKbWFpbl90ZXN0Ml9yb3V0ZUA2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1OAogICAgLy8gcHVibGljIHRlc3QyKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0MgogICAgcHVzaGludCAxIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6Okl0eG5EZW1vQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTYKCm1haW5fdGVzdDFfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTAKICAgIC8vIHB1YmxpYyB0ZXN0MSgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdGVzdDEKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjpJdHhuRGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE2CgptYWluX2JhcmVfcm91dGluZ0AxMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEl0eG5EZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTIKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMzoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxNDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDE1CgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEl0eG5EZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgcHVzaGludCAxIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6Okl0eG5EZW1vQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTYKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjpJdHhuRGVtb0NvbnRyYWN0LnRlc3QxKCkgLT4gdm9pZDoKdGVzdDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEwCiAgICAvLyBwdWJsaWMgdGVzdDEoKSB7CiAgICBwcm90byAwIDAKICAgIGludGNfMCAvLyAwCgp0ZXN0MV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo4CiAgICAvLyBuYW1lID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6IEJ5dGVzKCkgfSkKICAgIGJ5dGVjXzIgLy8gIm5hbWUiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjExCiAgICAvLyB0aGlzLm5hbWUudmFsdWUgPSBCeXRlcygnQVNUMScpCiAgICBieXRlYyA2IC8vICJBU1QxIgogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OAogICAgLy8gbmFtZSA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBCeXRlcygpIH0pCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMiAvLyAibmFtZSIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE4CiAgICAvLyBtYW5hZ2VyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTkKICAgIC8vIHJlc2VydmU6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgIGR1cAogICAgY292ZXIgMwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo4CiAgICAvLyBuYW1lID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6IEJ5dGVzKCkgfSkKICAgIGJ5dGVjXzIgLy8gIm5hbWUiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjIyCiAgICAvLyB0aGlzLm5hbWUudmFsdWUgPSBCeXRlcygnQVNUMicpCiAgICBieXRlYyA3IC8vICJBU1QyIgogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MjMKICAgIC8vIGNvbnN0IGFzc2V0MV90eG4gPSBhc3NldFBhcmFtcy5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgaXR4bl9maWVsZCBDb25maWdBc3NldFJlc2VydmUKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRNYW5hZ2VyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE3CiAgICAvLyBkZWNpbWFsczogMywKICAgIGludGNfMyAvLyAzCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0RGVjaW1hbHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTYKICAgIC8vIHVuaXROYW1lOiAndW5pdCcsCiAgICBieXRlYyA0IC8vICJ1bml0IgogICAgaXR4bl9maWVsZCBDb25maWdBc3NldFVuaXROYW1lCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TmFtZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNAogICAgLy8gdG90YWw6IDEwMDAsCiAgICBpbnRjIDQgLy8gMTAwMAogICAgaXR4bl9maWVsZCBDb25maWdBc3NldFRvdGFsCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEzLTIwCiAgICAvLyBjb25zdCBhc3NldFBhcmFtcyA9IGl0eG4uYXNzZXRDb25maWcoewogICAgLy8gICB0b3RhbDogMTAwMCwKICAgIC8vICAgYXNzZXROYW1lOiB0aGlzLm5hbWUudmFsdWUsCiAgICAvLyAgIHVuaXROYW1lOiAndW5pdCcsCiAgICAvLyAgIGRlY2ltYWxzOiAzLAogICAgLy8gICBtYW5hZ2VyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgcmVzZXJ2ZTogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyB9KQogICAgaW50Y18zIC8vIDMKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDFfbmV4dF90eG5AMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MjMKICAgIC8vIGNvbnN0IGFzc2V0MV90eG4gPSBhc3NldFBhcmFtcy5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIGl0eG4gQ29uZmlnQXNzZXROYW1lCiAgICBmcmFtZV9idXJ5IDAKICAgIGl0eG4gQ3JlYXRlZEFzc2V0SUQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OAogICAgLy8gbmFtZSA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBCeXRlcygpIH0pCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMiAvLyAibmFtZSIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjI3CiAgICAvLyBjb25zdCBhc3NldDJfdHhuID0gYXNzZXRQYXJhbXMuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIGZyYW1lX2RpZyAyCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0UmVzZXJ2ZQogICAgZnJhbWVfZGlnIDEKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRNYW5hZ2VyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE3CiAgICAvLyBkZWNpbWFsczogMywKICAgIGludGNfMyAvLyAzCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0RGVjaW1hbHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTYKICAgIC8vIHVuaXROYW1lOiAndW5pdCcsCiAgICBieXRlYyA0IC8vICJ1bml0IgogICAgaXR4bl9maWVsZCBDb25maWdBc3NldFVuaXROYW1lCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TmFtZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNAogICAgLy8gdG90YWw6IDEwMDAsCiAgICBpbnRjIDQgLy8gMTAwMAogICAgaXR4bl9maWVsZCBDb25maWdBc3NldFRvdGFsCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEzLTIwCiAgICAvLyBjb25zdCBhc3NldFBhcmFtcyA9IGl0eG4uYXNzZXRDb25maWcoewogICAgLy8gICB0b3RhbDogMTAwMCwKICAgIC8vICAgYXNzZXROYW1lOiB0aGlzLm5hbWUudmFsdWUsCiAgICAvLyAgIHVuaXROYW1lOiAndW5pdCcsCiAgICAvLyAgIGRlY2ltYWxzOiAzLAogICAgLy8gICBtYW5hZ2VyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgcmVzZXJ2ZTogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyB9KQogICAgaW50Y18zIC8vIDMKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDFfbmV4dF90eG5AMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MjcKICAgIC8vIGNvbnN0IGFzc2V0Ml90eG4gPSBhc3NldFBhcmFtcy5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIGl0eG4gQ29uZmlnQXNzZXROYW1lCiAgICBpdHhuIENyZWF0ZWRBc3NldElECiAgICBzd2FwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjI5CiAgICAvLyBhc3NlcnQoYXNzZXQxX3R4bi5hc3NldE5hbWUgPT09IEJ5dGVzKCdBU1QxJyksICdhc3NldDFfdHhuIGlzIGNvcnJlY3QnKQogICAgZnJhbWVfZGlnIDAKICAgIGJ5dGVjIDYgLy8gIkFTVDEiCiAgICA9PQogICAgYXNzZXJ0IC8vIGFzc2V0MV90eG4gaXMgY29ycmVjdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czozMAogICAgLy8gYXNzZXJ0KGFzc2V0Ml90eG4uYXNzZXROYW1lID09PSBCeXRlcygnQVNUMicpLCAnYXNzZXQyX3R4biBpcyBjb3JyZWN0JykKICAgIGJ5dGVjIDcgLy8gIkFTVDIiCiAgICA9PQogICAgYXNzZXJ0IC8vIGFzc2V0Ml90eG4gaXMgY29ycmVjdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czozMQogICAgLy8gYXNzZXJ0KGFzc2V0MV90eG4uY3JlYXRlZEFzc2V0Lm5hbWUgPT09IEJ5dGVzKCdBU1QxJyksICdjcmVhdGVkIGFzc2V0IDEgaXMgY29ycmVjdCcpCiAgICBzd2FwCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0TmFtZQogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgYnl0ZWMgNiAvLyAiQVNUMSIKICAgID09CiAgICBhc3NlcnQgLy8gY3JlYXRlZCBhc3NldCAxIGlzIGNvcnJlY3QKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MzIKICAgIC8vIGFzc2VydChhc3NldDJfdHhuLmNyZWF0ZWRBc3NldC5uYW1lID09PSBCeXRlcygnQVNUMicpLCAnY3JlYXRlZCBhc3NldCAyIGlzIGNvcnJlY3QnKQogICAgYXNzZXRfcGFyYW1zX2dldCBBc3NldE5hbWUKICAgIGFzc2VydCAvLyBhc3NldCBleGlzdHMKICAgIGJ5dGVjIDcgLy8gIkFTVDIiCiAgICA9PQogICAgYXNzZXJ0IC8vIGNyZWF0ZWQgYXNzZXQgMiBpcyBjb3JyZWN0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQ0CiAgICAvLyBjb25zdCBbYXBwQ3JlYXRlVHhuLCBhc3NldDNfdHhuXSA9IGl0eG4uc3VibWl0R3JvdXAoYXBwQ3JlYXRlUGFyYW1zLCBhc3NldFBhcmFtcykKICAgIGl0eG5fYmVnaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MzQtMzgKICAgIC8vIGNvbnN0IGFwcENyZWF0ZVBhcmFtcyA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgZmVlOiAwLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjM3CiAgICAvLyBmZWU6IDAsCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QxX25leHRfdHhuQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQ0CiAgICAvLyBjb25zdCBbYXBwQ3JlYXRlVHhuLCBhc3NldDNfdHhuXSA9IGl0eG4uc3VibWl0R3JvdXAoYXBwQ3JlYXRlUGFyYW1zLCBhc3NldFBhcmFtcykKICAgIGl0eG5fbmV4dAogICAgZnJhbWVfZGlnIDIKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRSZXNlcnZlCiAgICBmcmFtZV9kaWcgMQogICAgaXR4bl9maWVsZCBDb25maWdBc3NldE1hbmFnZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTcKICAgIC8vIGRlY2ltYWxzOiAzLAogICAgaW50Y18zIC8vIDMKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXREZWNpbWFscwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNgogICAgLy8gdW5pdE5hbWU6ICd1bml0JywKICAgIGJ5dGVjIDQgLy8gInVuaXQiCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VW5pdE5hbWUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NDEKICAgIC8vIGFzc2V0TmFtZTogJ0FTVDMnLAogICAgYnl0ZWMgOCAvLyAiQVNUMyIKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXROYW1lCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbDogMTAwMCwKICAgIGludGMgNCAvLyAxMDAwCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VG90YWwKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTMtMjAKICAgIC8vIGNvbnN0IGFzc2V0UGFyYW1zID0gaXR4bi5hc3NldENvbmZpZyh7CiAgICAvLyAgIHRvdGFsOiAxMDAwLAogICAgLy8gICBhc3NldE5hbWU6IHRoaXMubmFtZS52YWx1ZSwKICAgIC8vICAgdW5pdE5hbWU6ICd1bml0JywKICAgIC8vICAgZGVjaW1hbHM6IDMsCiAgICAvLyAgIG1hbmFnZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICByZXNlcnZlOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vIH0pCiAgICBpbnRjXzMgLy8gMwogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0MV9uZXh0X3R4bkA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0NAogICAgLy8gY29uc3QgW2FwcENyZWF0ZVR4biwgYXNzZXQzX3R4bl0gPSBpdHhuLnN1Ym1pdEdyb3VwKGFwcENyZWF0ZVBhcmFtcywgYXNzZXRQYXJhbXMpCiAgICBpdHhuX3N1Ym1pdAogICAgZ2l0eG4gMCBDcmVhdGVkQXBwbGljYXRpb25JRAogICAgaXR4biBDb25maWdBc3NldE5hbWUKICAgIHN3YXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NDYKICAgIC8vIGFzc2VydChhcHBDcmVhdGVUeG4uY3JlYXRlZEFwcCwgJ2FwcCBpcyBjcmVhdGVkJykKICAgIGFzc2VydCAvLyBhcHAgaXMgY3JlYXRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0NwogICAgLy8gYXNzZXJ0KGFzc2V0M190eG4uYXNzZXROYW1lID09PSBCeXRlcygnQVNUMycpLCAnYXNzZXQzX3R4biBpcyBjb3JyZWN0JykKICAgIGJ5dGVjIDggLy8gIkFTVDMiCiAgICA9PQogICAgYXNzZXJ0IC8vIGFzc2V0M190eG4gaXMgY29ycmVjdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1NQogICAgLy8gaXR4bi5zdWJtaXRHcm91cChhcHBDcmVhdGVQYXJhbXMsIGFzc2V0UGFyYW1zKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1MAogICAgLy8gbm90ZTogJzNyZCcsCiAgICBwdXNoaW50IDEgLy8gMQogICAgZHVwCiAgICA+PQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1NQogICAgLy8gaXR4bi5zdWJtaXRHcm91cChhcHBDcmVhdGVQYXJhbXMsIGFzc2V0UGFyYW1zKQogICAgYnogdGVzdDFfbmV4dF9maWVsZEA2Cgp0ZXN0MV9zZXRfTm90ZV8wX3RvXzBANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NTAKICAgIC8vIG5vdGU6ICczcmQnLAogICAgYnl0ZWMgMTIgLy8gIjNyZCIKICAgIGl0eG5fZmllbGQgTm90ZQoKdGVzdDFfbmV4dF9maWVsZEA2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czozNC0zOAogICAgLy8gY29uc3QgYXBwQ3JlYXRlUGFyYW1zID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBmZWU6IDAsCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MzcKICAgIC8vIGZlZTogMCwKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDFfbmV4dF90eG5ANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NTUKICAgIC8vIGl0eG4uc3VibWl0R3JvdXAoYXBwQ3JlYXRlUGFyYW1zLCBhc3NldFBhcmFtcykKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1MwogICAgLy8gbm90ZTogJzNyZCcsCiAgICBwdXNoaW50IDEgLy8gMQogICAgZHVwCiAgICA+PQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1NQogICAgLy8gaXR4bi5zdWJtaXRHcm91cChhcHBDcmVhdGVQYXJhbXMsIGFzc2V0UGFyYW1zKQogICAgYnogdGVzdDFfbmV4dF9maWVsZEA5Cgp0ZXN0MV9zZXRfTm90ZV8wX3RvXzBAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NTMKICAgIC8vIG5vdGU6ICczcmQnLAogICAgYnl0ZWMgMTIgLy8gIjNyZCIKICAgIGl0eG5fZmllbGQgTm90ZQoKdGVzdDFfbmV4dF9maWVsZEA5OgogICAgZnJhbWVfZGlnIDIKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRSZXNlcnZlCiAgICBmcmFtZV9kaWcgMQogICAgaXR4bl9maWVsZCBDb25maWdBc3NldE1hbmFnZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTcKICAgIC8vIGRlY2ltYWxzOiAzLAogICAgaW50Y18zIC8vIDMKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXREZWNpbWFscwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNgogICAgLy8gdW5pdE5hbWU6ICd1bml0JywKICAgIGJ5dGVjIDQgLy8gInVuaXQiCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VW5pdE5hbWUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NDEKICAgIC8vIGFzc2V0TmFtZTogJ0FTVDMnLAogICAgYnl0ZWMgOCAvLyAiQVNUMyIKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXROYW1lCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbDogMTAwMCwKICAgIGludGMgNCAvLyAxMDAwCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VG90YWwKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTMtMjAKICAgIC8vIGNvbnN0IGFzc2V0UGFyYW1zID0gaXR4bi5hc3NldENvbmZpZyh7CiAgICAvLyAgIHRvdGFsOiAxMDAwLAogICAgLy8gICBhc3NldE5hbWU6IHRoaXMubmFtZS52YWx1ZSwKICAgIC8vICAgdW5pdE5hbWU6ICd1bml0JywKICAgIC8vICAgZGVjaW1hbHM6IDMsCiAgICAvLyAgIG1hbmFnZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICByZXNlcnZlOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vIH0pCiAgICBpbnRjXzMgLy8gMwogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0MV9uZXh0X3R4bkAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NTUKICAgIC8vIGl0eG4uc3VibWl0R3JvdXAoYXBwQ3JlYXRlUGFyYW1zLCBhc3NldFBhcmFtcykKICAgIGl0eG5fc3VibWl0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjpJdHhuRGVtb0NvbnRyYWN0LnRlc3QyKCkgLT4gdm9pZDoKdGVzdDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjU4CiAgICAvLyBwdWJsaWMgdGVzdDIoKSB7CiAgICBwcm90byAwIDAKICAgIGludGNfMCAvLyAwCiAgICBkdXBuIDIKICAgIHB1c2hieXRlcyAiIgogICAgZHVwCgp0ZXN0Ml9ibG9ja0AwOgogICAgaW50Y18wIC8vIDAKICAgIHB1c2hieXRlcyAiIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo2MAogICAgLy8gaWYgKFR4bi5udW1BcHBBcmdzKSB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgYnogdGVzdDJfZWxzZV9ib2R5QDIKCnRlc3QyX2lmX2JvZHlAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NjEKICAgIC8vIGNvbnN0IGFyZ3MgPSBbQnl0ZXMoJzEnKSwgQnl0ZXMoJzInKV0gYXMgY29uc3QKICAgIGJ5dGVjXzMgLy8gIjEiCiAgICBmcmFtZV9idXJ5IDAKICAgIGJ5dGVjIDUgLy8gIjIiCiAgICBmcmFtZV9idXJ5IDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NjUKICAgIC8vIGFwcEFyZ3M6IGFyZ3MsCiAgICBwdXNoaW50IDIgLy8gMgogICAgZnJhbWVfYnVyeSAzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjY2CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uTm9PcCwKICAgIGludGNfMCAvLyAwCiAgICBmcmFtZV9idXJ5IDYKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBmcmFtZV9idXJ5IDQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NjcKICAgIC8vIG5vdGU6ICd3aXRoIGFyZ3MgcGFyYW0gc2V0JywKICAgIGJ5dGVjIDEzIC8vICJ3aXRoIGFyZ3MgcGFyYW0gc2V0IgoKdGVzdDJfYWZ0ZXJfaWZfZWxzZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo3NwogICAgLy8gY29uc3QgY3JlYXRlQXBwVHhuID0gY3JlYXRlQXBwUGFyYW1zLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICBpdHhuX2ZpZWxkIE5vdGUKICAgIGZyYW1lX2RpZyA0CiAgICBwdXNoaW50IDEgLy8gMQogICAgPj0KICAgIGJ6IHRlc3QyX25leHRfZmllbGRANQoKdGVzdDJfc2V0X09uQ29tcGxldGlvbl8wX3RvXzBANDoKICAgIGZyYW1lX2RpZyA2CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoKdGVzdDJfbmV4dF9maWVsZEA1OgogICAgZnJhbWVfZGlnIDAKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBmcmFtZV9kaWcgMQogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIGZyYW1lX2RpZyAzCiAgICBpbnRjXzMgLy8gMwogICAgPj0KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NzcKICAgIC8vIGNvbnN0IGNyZWF0ZUFwcFR4biA9IGNyZWF0ZUFwcFBhcmFtcy5zdWJtaXQoKQogICAgYnogdGVzdDJfbmV4dF9maWVsZEA3Cgp0ZXN0Ml9zZXRfQXBwbGljYXRpb25BcmdzXzJfdG9fMkA2OgogICAgZnJhbWVfZGlnIDUKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgp0ZXN0Ml9uZXh0X2ZpZWxkQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IEFQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTgxMDEnKQogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjYyLTY4CiAgICAvLyBjcmVhdGVBcHBQYXJhbXMgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIGFwcEFyZ3M6IGFyZ3MsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5Ob09wLAogICAgLy8gICBub3RlOiAnd2l0aCBhcmdzIHBhcmFtIHNldCcsCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDJfbmV4dF90eG5AODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NzcKICAgIC8vIGNvbnN0IGNyZWF0ZUFwcFR4biA9IGNyZWF0ZUFwcFBhcmFtcy5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIGl0eG4gTm90ZQogICAgZnJhbWVfYnVyeSAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjc4CiAgICAvLyBhc3NlcnQoY3JlYXRlQXBwVHhuLmFwcEFyZ3MoMCkgPT09IEJ5dGVzKCcxJyksICdjb3JyZWN0IGFyZ3MgdXNlZCAxJykKICAgIGludGNfMCAvLyAwCiAgICBpdHhuYXMgQXBwbGljYXRpb25BcmdzCiAgICBieXRlY18zIC8vICIxIgogICAgPT0KICAgIGFzc2VydCAvLyBjb3JyZWN0IGFyZ3MgdXNlZCAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjc5CiAgICAvLyBhc3NlcnQoY3JlYXRlQXBwVHhuLmFwcEFyZ3MoMSkgPT09IEJ5dGVzKCcyJyksICdjb3JyZWN0IGFyZ3MgdXNlZCAyJykKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBpdHhuYXMgQXBwbGljYXRpb25BcmdzCiAgICBieXRlYyA1IC8vICIyIgogICAgPT0KICAgIGFzc2VydCAvLyBjb3JyZWN0IGFyZ3MgdXNlZCAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjgxCiAgICAvLyBpZiAoVHhuLm51bUFwcEFyZ3MgPiAxKSB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgcHVzaGludCAxIC8vIDEKICAgID4KICAgIGJ6IHRlc3QyX2FmdGVyX2lmX2Vsc2VAMTEKCnRlc3QyX2lmX2JvZHlAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6ODItODkKICAgIC8vIGNvbnN0IGNyZWF0ZUFwcFR4bjIgPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcHJvdmFsUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgICBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgICAgYXBwQXJnczogW0J5dGVzKCc0MicpXSwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjg3CiAgICAvLyBhcHBBcmdzOiBbQnl0ZXMoJzQyJyldLAogICAgYnl0ZWMgMTQgLy8gIjQyIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6ODYKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMiAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo4Mi04OAogICAgLy8gY29uc3QgY3JlYXRlQXBwVHhuMiA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgICBhcHBBcmdzOiBbQnl0ZXMoJzQyJyldLAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDJfbmV4dF90eG5AMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjgyLTg5CiAgICAvLyBjb25zdCBjcmVhdGVBcHBUeG4yID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHByb3ZhbFByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICAgIGFwcEFyZ3M6IFtCeXRlcygnNDInKV0sCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTAKICAgIC8vIGFzc2VydChjcmVhdGVBcHBUeG4yLmFwcEFyZ3MoMCkgPT09IEJ5dGVzKCc0MicpLCAnY29ycmVjdCBhcmdzIHVzZWQgMicpCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bmFzIEFwcGxpY2F0aW9uQXJncwogICAgYnl0ZWMgMTQgLy8gIjQyIgogICAgPT0KICAgIGFzc2VydCAvLyBjb3JyZWN0IGFyZ3MgdXNlZCAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjkxCiAgICAvLyBhc3NlcnQoY3JlYXRlQXBwVHhuLm5vdGUgPT09IEJ5dGVzKCd3aXRoIGFyZ3MgcGFyYW0gc2V0JykpCiAgICBmcmFtZV9kaWcgMgogICAgYnl0ZWMgMTMgLy8gIndpdGggYXJncyBwYXJhbSBzZXQiCiAgICA9PQogICAgYXNzZXJ0Cgp0ZXN0Ml9hZnRlcl9pZl9lbHNlQDExOgogICAgcmV0c3ViCgp0ZXN0Ml9lbHNlX2JvZHlAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NzMKICAgIC8vIGFwcEFyZ3M6IFtCeXRlcygnMycpLCAnNCcsIEJ5dGVzKCc1JyldLAogICAgYnl0ZWMgOSAvLyAiMyIKICAgIGZyYW1lX2J1cnkgMAogICAgYnl0ZWMgMTAgLy8gIjQiCiAgICBmcmFtZV9idXJ5IDEKICAgIGJ5dGVjIDExIC8vICI1IgogICAgZnJhbWVfYnVyeSA1CiAgICBpbnRjXzMgLy8gMwogICAgZnJhbWVfYnVyeSAzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjc0CiAgICAvLyBub3RlOiAnbm8gYXJncyBwYXJhbSBzZXQnLAogICAgcHVzaGJ5dGVzICJubyBhcmdzIHBhcmFtIHNldCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NzAKICAgIC8vIGNyZWF0ZUFwcFBhcmFtcyA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIGludGNfMCAvLyAwCiAgICBmcmFtZV9idXJ5IDQKICAgIGIgdGVzdDJfYWZ0ZXJfaWZfZWxzZUAzCgoKLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo6SXR4bkRlbW9Db250cmFjdC50ZXN0MygpIC0+IHZvaWQ6CnRlc3QzOgoKdGVzdDNfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTM0LTE1MQogICAgLy8gY29uc3QgW2FwcDEsIGFwcDIsIGFwcDMsIGFwcDQsIGFwcDUsIGFwcDYsIGFwcDcsIGFwcDgsIGFwcDksIGFwcDEwLCBhcHAxMSwgYXBwMTIsIGFwcDEzLCBhcHAxNCwgYXBwMTUsIGFwcDE2XSA9IGl0eG4uc3VibWl0R3JvdXAoCiAgICAvLyAgIGFwcFR4bjEsCiAgICAvLyAgIGFwcFR4bjIsCiAgICAvLyAgIGFwcFR4bjMsCiAgICAvLyAgIGFwcFR4bjQsCiAgICAvLyAgIGFwcFR4bjUsCiAgICAvLyAgIGFwcFR4bjYsCiAgICAvLyAgIGFwcFR4bjcsCiAgICAvLyAgIGFwcFR4bjgsCiAgICAvLyAgIGFwcFR4bjksCiAgICAvLyAgIGFwcFR4bjEwLAogICAgLy8gICBhcHBUeG4xMSwKICAgIC8vICAgYXBwVHhuMTIsCiAgICAvLyAgIGFwcFR4bjEzLAogICAgLy8gICBhcHBUeG4xNCwKICAgIC8vICAgYXBwVHhuMTUsCiAgICAvLyAgIGFwcFR4bjE2LAogICAgLy8gKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMDAKICAgIC8vIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIGJ5dGVjXzMgLy8gIjEiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IEFQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTgxMDEnKQogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQKICAgIC8vIGNvbnN0IExPR18xU1RfQVJHX0FORF9BUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDkzNjFBMDBCMDgxMDEnKQogICAgYnl0ZWNfMSAvLyAweDA5MzYxYTAwYjA4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEzNgogICAgLy8gYXBwVHhuMiwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMDQKICAgIC8vIGFwcFR4bjIuc2V0KHsgYXBwQXJnczogW0J5dGVzKCcyJyldIH0pCiAgICBieXRlYyA1IC8vICIyIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTkKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMiAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5Ni0xMDEKICAgIC8vIGNvbnN0IGFwcFR4bjEgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0M19uZXh0X3R4bkAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMzcKICAgIC8vIGFwcFR4bjMsCiAgICBpdHhuX25leHQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NAogICAgLy8gY29uc3QgTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTM2MUEwMEIwODEwMScpCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTA2CiAgICAvLyBhcHBUeG4zLnNldCh7IGFwcEFyZ3M6IFtCeXRlcygnMycpXSB9KQogICAgYnl0ZWMgOSAvLyAiMyIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk5CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzIgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTYtMTAxCiAgICAvLyBjb25zdCBhcHBUeG4xID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IExPR18xU1RfQVJHX0FORF9BUFBST1ZFLAogICAgLy8gICBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICBhcHBBcmdzOiBbQnl0ZXMoJzEnKV0sCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDNfbmV4dF90eG5AMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTM4CiAgICAvLyBhcHBUeG40LAogICAgaXR4bl9uZXh0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IEFQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTgxMDEnKQogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQKICAgIC8vIGNvbnN0IExPR18xU1RfQVJHX0FORF9BUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDkzNjFBMDBCMDgxMDEnKQogICAgYnl0ZWNfMSAvLyAweDA5MzYxYTAwYjA4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEwOAogICAgLy8gYXBwVHhuNC5zZXQoeyBhcHBBcmdzOiBbQnl0ZXMoJzQnKV0gfSkKICAgIGJ5dGVjIDEwIC8vICI0IgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTkKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMiAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5Ni0xMDEKICAgIC8vIGNvbnN0IGFwcFR4bjEgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0M19uZXh0X3R4bkA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMzkKICAgIC8vIGFwcFR4bjUsCiAgICBpdHhuX25leHQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NAogICAgLy8gY29uc3QgTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTM2MUEwMEIwODEwMScpCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTEwCiAgICAvLyBhcHBUeG41LnNldCh7IGFwcEFyZ3M6IFtCeXRlcygnNScpXSB9KQogICAgYnl0ZWMgMTEgLy8gIjUiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0MAogICAgLy8gYXBwVHhuNiwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTIKICAgIC8vIGFwcFR4bjYuc2V0KHsgYXBwQXJnczogW0J5dGVzKCc2JyldIH0pCiAgICBwdXNoYnl0ZXMgIjYiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0MQogICAgLy8gYXBwVHhuNywKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTQKICAgIC8vIGFwcFR4bjcuc2V0KHsgYXBwQXJnczogW0J5dGVzKCc3JyldIH0pCiAgICBwdXNoYnl0ZXMgIjciCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0MgogICAgLy8gYXBwVHhuOCwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTYKICAgIC8vIGFwcFR4bjguc2V0KHsgYXBwQXJnczogW0J5dGVzKCc4JyldIH0pCiAgICBwdXNoYnl0ZXMgIjgiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0MwogICAgLy8gYXBwVHhuOSwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTgKICAgIC8vIGFwcFR4bjkuc2V0KHsgYXBwQXJnczogW0J5dGVzKCc5JyldIH0pCiAgICBwdXNoYnl0ZXMgIjkiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0NAogICAgLy8gYXBwVHhuMTAsCiAgICBpdHhuX25leHQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NAogICAgLy8gY29uc3QgTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTM2MUEwMEIwODEwMScpCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTIwCiAgICAvLyBhcHBUeG4xMC5zZXQoeyBhcHBBcmdzOiBbQnl0ZXMoJzEwJyldIH0pCiAgICBieXRlYyAxNSAvLyAiMTAiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNDUKICAgIC8vIGFwcFR4bjExLAogICAgaXR4bl9uZXh0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IEFQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTgxMDEnKQogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQKICAgIC8vIGNvbnN0IExPR18xU1RfQVJHX0FORF9BUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDkzNjFBMDBCMDgxMDEnKQogICAgYnl0ZWNfMSAvLyAweDA5MzYxYTAwYjA4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEyMgogICAgLy8gYXBwVHhuMTEuc2V0KHsgYXBwQXJnczogW0J5dGVzKCcxMScpXSB9KQogICAgYnl0ZWMgMTYgLy8gIjExIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTkKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMiAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5Ni0xMDEKICAgIC8vIGNvbnN0IGFwcFR4bjEgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0M19uZXh0X3R4bkAxMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTQ2CiAgICAvLyBhcHBUeG4xMiwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMjQKICAgIC8vIGFwcFR4bjEyLnNldCh7IGFwcEFyZ3M6IFtCeXRlcygnMTInKV0gfSkKICAgIGJ5dGVjIDE3IC8vICIxMiIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk5CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzIgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTYtMTAxCiAgICAvLyBjb25zdCBhcHBUeG4xID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IExPR18xU1RfQVJHX0FORF9BUFBST1ZFLAogICAgLy8gICBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICBhcHBBcmdzOiBbQnl0ZXMoJzEnKV0sCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDNfbmV4dF90eG5AMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0NwogICAgLy8gYXBwVHhuMTMsCiAgICBpdHhuX25leHQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NAogICAgLy8gY29uc3QgTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTM2MUEwMEIwODEwMScpCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTI2CiAgICAvLyBhcHBUeG4xMy5zZXQoeyBhcHBBcmdzOiBbQnl0ZXMoJzEzJyldIH0pCiAgICBieXRlYyAxOCAvLyAiMTMiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDEzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNDgKICAgIC8vIGFwcFR4bjE0LAogICAgaXR4bl9uZXh0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IEFQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTgxMDEnKQogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQKICAgIC8vIGNvbnN0IExPR18xU1RfQVJHX0FORF9BUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDkzNjFBMDBCMDgxMDEnKQogICAgYnl0ZWNfMSAvLyAweDA5MzYxYTAwYjA4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEyOAogICAgLy8gYXBwVHhuMTQuc2V0KHsgYXBwQXJnczogW0J5dGVzKCcxNCcpXSB9KQogICAgYnl0ZWMgMTkgLy8gIjE0IgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTkKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMiAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5Ni0xMDEKICAgIC8vIGNvbnN0IGFwcFR4bjEgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0M19uZXh0X3R4bkAxNDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTQ5CiAgICAvLyBhcHBUeG4xNSwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMzAKICAgIC8vIGFwcFR4bjE1LnNldCh7IGFwcEFyZ3M6IFtCeXRlcygnMTUnKV0gfSkKICAgIGJ5dGVjIDIwIC8vICIxNSIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk5CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzIgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTYtMTAxCiAgICAvLyBjb25zdCBhcHBUeG4xID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IExPR18xU1RfQVJHX0FORF9BUFBST1ZFLAogICAgLy8gICBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICBhcHBBcmdzOiBbQnl0ZXMoJzEnKV0sCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDNfbmV4dF90eG5AMTU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE1MAogICAgLy8gYXBwVHhuMTYsCiAgICBpdHhuX25leHQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NAogICAgLy8gY29uc3QgTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTM2MUEwMEIwODEwMScpCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTMyCiAgICAvLyBhcHBUeG4xNi5zZXQoeyBhcHBBcmdzOiBbQnl0ZXMoJzE2JyldIH0pCiAgICBieXRlYyAyMSAvLyAiMTYiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDE2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMzQtMTUxCiAgICAvLyBjb25zdCBbYXBwMSwgYXBwMiwgYXBwMywgYXBwNCwgYXBwNSwgYXBwNiwgYXBwNywgYXBwOCwgYXBwOSwgYXBwMTAsIGFwcDExLCBhcHAxMiwgYXBwMTMsIGFwcDE0LCBhcHAxNSwgYXBwMTZdID0gaXR4bi5zdWJtaXRHcm91cCgKICAgIC8vICAgYXBwVHhuMSwKICAgIC8vICAgYXBwVHhuMiwKICAgIC8vICAgYXBwVHhuMywKICAgIC8vICAgYXBwVHhuNCwKICAgIC8vICAgYXBwVHhuNSwKICAgIC8vICAgYXBwVHhuNiwKICAgIC8vICAgYXBwVHhuNywKICAgIC8vICAgYXBwVHhuOCwKICAgIC8vICAgYXBwVHhuOSwKICAgIC8vICAgYXBwVHhuMTAsCiAgICAvLyAgIGFwcFR4bjExLAogICAgLy8gICBhcHBUeG4xMiwKICAgIC8vICAgYXBwVHhuMTMsCiAgICAvLyAgIGFwcFR4bjE0LAogICAgLy8gICBhcHBUeG4xNSwKICAgIC8vICAgYXBwVHhuMTYsCiAgICAvLyApCiAgICBpdHhuX3N1Ym1pdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNTMKICAgIC8vIGFzc2VydChhcHAxLmxvZ3MoMCkgPT09IEJ5dGVzKCcxJykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyAwIExvZ3MKICAgIGJ5dGVjXzMgLy8gIjEiCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE1NAogICAgLy8gYXNzZXJ0KGFwcDIubG9ncygwKSA9PT0gQnl0ZXMoJzInKSkKICAgIGludGNfMCAvLyAwCiAgICBnaXR4bmFzIDEgTG9ncwogICAgYnl0ZWMgNSAvLyAiMiIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTU1CiAgICAvLyBhc3NlcnQoYXBwMy5sb2dzKDApID09PSBCeXRlcygnMycpKQogICAgaW50Y18wIC8vIDAKICAgIGdpdHhuYXMgMiBMb2dzCiAgICBieXRlYyA5IC8vICIzIgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNTYKICAgIC8vIGFzc2VydChhcHA0LmxvZ3MoMCkgPT09IEJ5dGVzKCc0JykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyAzIExvZ3MKICAgIGJ5dGVjIDEwIC8vICI0IgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNTcKICAgIC8vIGFzc2VydChhcHA1LmxvZ3MoMCkgPT09IEJ5dGVzKCc1JykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyA0IExvZ3MKICAgIGJ5dGVjIDExIC8vICI1IgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNTgKICAgIC8vIGFzc2VydChhcHA2LmxvZ3MoMCkgPT09IEJ5dGVzKCc2JykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyA1IExvZ3MKICAgIHB1c2hieXRlcyAiNiIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTU5CiAgICAvLyBhc3NlcnQoYXBwNy5sb2dzKDApID09PSBCeXRlcygnNycpKQogICAgaW50Y18wIC8vIDAKICAgIGdpdHhuYXMgNiBMb2dzCiAgICBwdXNoYnl0ZXMgIjciCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE2MAogICAgLy8gYXNzZXJ0KGFwcDgubG9ncygwKSA9PT0gQnl0ZXMoJzgnKSkKICAgIGludGNfMCAvLyAwCiAgICBnaXR4bmFzIDcgTG9ncwogICAgcHVzaGJ5dGVzICI4IgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNjEKICAgIC8vIGFzc2VydChhcHA5LmxvZ3MoMCkgPT09IEJ5dGVzKCc5JykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyA4IExvZ3MKICAgIHB1c2hieXRlcyAiOSIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTYyCiAgICAvLyBhc3NlcnQoYXBwMTAubG9ncygwKSA9PT0gQnl0ZXMoJzEwJykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyA5IExvZ3MKICAgIGJ5dGVjIDE1IC8vICIxMCIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTYzCiAgICAvLyBhc3NlcnQoYXBwMTEubG9ncygwKSA9PT0gQnl0ZXMoJzExJykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyAxMCBMb2dzCiAgICBieXRlYyAxNiAvLyAiMTEiCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE2NAogICAgLy8gYXNzZXJ0KGFwcDEyLmxvZ3MoMCkgPT09IEJ5dGVzKCcxMicpKQogICAgaW50Y18wIC8vIDAKICAgIGdpdHhuYXMgMTEgTG9ncwogICAgYnl0ZWMgMTcgLy8gIjEyIgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNjUKICAgIC8vIGFzc2VydChhcHAxMy5sb2dzKDApID09PSBCeXRlcygnMTMnKSkKICAgIGludGNfMCAvLyAwCiAgICBnaXR4bmFzIDEyIExvZ3MKICAgIGJ5dGVjIDE4IC8vICIxMyIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTY2CiAgICAvLyBhc3NlcnQoYXBwMTQubG9ncygwKSA9PT0gQnl0ZXMoJzE0JykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyAxMyBMb2dzCiAgICBieXRlYyAxOSAvLyAiMTQiCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE2NwogICAgLy8gYXNzZXJ0KGFwcDE1LmxvZ3MoMCkgPT09IEJ5dGVzKCcxNScpKQogICAgaW50Y18wIC8vIDAKICAgIGdpdHhuYXMgMTQgTG9ncwogICAgYnl0ZWMgMjAgLy8gIjE1IgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNjgKICAgIC8vIGFzc2VydChhcHAxNi5sb2dzKDApID09PSBCeXRlcygnMTYnKSkKICAgIGludGNfMCAvLyAwCiAgICBpdHhuYXMgTG9ncwogICAgYnl0ZWMgMjEgLy8gIjE2IgogICAgPT0KICAgIGFzc2VydAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo6SXR4bkRlbW9Db250cmFjdC50ZXN0NCgpIC0+IHZvaWQ6CnRlc3Q0OgoKdGVzdDRfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTcyCiAgICAvLyBjb25zdCBsb3RzT2ZCeXRlcyA9IG9wLmJ6ZXJvKDIwNDQpCiAgICBwdXNoaW50IDIwNDQgLy8gMjA0NAogICAgYnplcm8KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTc0CiAgICAvLyBjb25zdCBhcHByb3ZhbDIgPSBCeXRlcy5mcm9tSGV4KCc4MCcgKyAnRkMwZicpCiAgICBwdXNoYnl0ZXMgMHg4MGZjMGYKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTc0LTE3NQogICAgLy8gY29uc3QgYXBwcm92YWwyID0gQnl0ZXMuZnJvbUhleCgnODAnICsgJ0ZDMGYnKQogICAgLy8gICAuY29uY2F0KGxvdHNPZkJ5dGVzKQogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE3NgogICAgLy8gLmNvbmNhdChCeXRlcy5mcm9tSGV4KCc0OCcpKQogICAgcHVzaGJ5dGVzIDB4NDgKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTc0LTE3NgogICAgLy8gY29uc3QgYXBwcm92YWwyID0gQnl0ZXMuZnJvbUhleCgnODAnICsgJ0ZDMGYnKQogICAgLy8gICAuY29uY2F0KGxvdHNPZkJ5dGVzKQogICAgLy8gICAuY29uY2F0KEJ5dGVzLmZyb21IZXgoJzQ4JykpCiAgICBjb25jYXQKICAgIGR1cG4gMwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNzkKICAgIC8vIGFwcHJvdmFsUHJvZ3JhbTogW2FwcHJvdmFsMSwgYXBwcm92YWwyLCBhcHByb3ZhbDIsIGFwcHJvdmFsMl0sCiAgICBjb3ZlciAyCiAgICBjb3ZlciAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE4NQogICAgLy8gY29uc3QgYXBwMSA9IGFwcFR4bjEuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTgzCiAgICAvLyBleHRyYVByb2dyYW1QYWdlczogMywKICAgIGludGNfMyAvLyAzCiAgICBpdHhuX2ZpZWxkIEV4dHJhUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE4MgogICAgLy8gYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgYnl0ZWNfMyAvLyAiMSIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE4MQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IEFQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTgxMDEnKQogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE3OC0xODQKICAgIC8vIGNvbnN0IGFwcFR4bjEgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogW2FwcHJvdmFsMSwgYXBwcm92YWwyLCBhcHByb3ZhbDIsIGFwcHJvdmFsMl0sCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIC8vICAgZXh0cmFQcm9ncmFtUGFnZXM6IDMsCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDRfbmV4dF90eG5AMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTg1CiAgICAvLyBjb25zdCBhcHAxID0gYXBwVHhuMS5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIGl0eG4gRXh0cmFQcm9ncmFtUGFnZXMKICAgIGl0eG4gTnVtQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIHN3YXAKICAgIGl0eG4gTnVtQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgY292ZXIgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxODYKICAgIC8vIGFzc2VydChhcHAxLmV4dHJhUHJvZ3JhbVBhZ2VzID09PSAzLCAnZXh0cmEgcGFnZXMgPSAzJykKICAgIGludGNfMyAvLyAzCiAgICA9PQogICAgYXNzZXJ0IC8vIGV4dHJhIHBhZ2VzID0gMwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxODcKICAgIC8vIGFzc2VydChhcHAxLm51bUFwcHJvdmFsUHJvZ3JhbVBhZ2VzID09PSAyLCAnYXBwcm92YWwgcGFnZXMgPSAyJykKICAgIHB1c2hpbnQgMiAvLyAyCiAgICA9PQogICAgYXNzZXJ0IC8vIGFwcHJvdmFsIHBhZ2VzID0gMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxODgKICAgIC8vIGFzc2VydChhcHAxLmFwcHJvdmFsUHJvZ3JhbVBhZ2VzKDApID09PSBhcHByb3ZhbDEuY29uY2F0KGFwcHJvdmFsMikuY29uY2F0KGFwcHJvdmFsMi5zbGljZSgwLCAtMykpLCAnZXhwZWN0ZWQgYXBwcm92YWwgcGFnZSAwJykKICAgIGludGNfMCAvLyAwCiAgICBpdHhuYXMgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE4OAogICAgLy8gYXNzZXJ0KGFwcDEuYXBwcm92YWxQcm9ncmFtUGFnZXMoMCkgPT09IGFwcHJvdmFsMS5jb25jYXQoYXBwcm92YWwyKS5jb25jYXQoYXBwcm92YWwyLnNsaWNlKDAsIC0zKSksICdleHBlY3RlZCBhcHByb3ZhbCBwYWdlIDAnKQogICAgdW5jb3ZlciAzCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMCAvLyAwCiAgICBkaWcgMQogICAgPj0KICAgIGludGNfMCAvLyAwCiAgICBkaWcgMgogICAgdW5jb3ZlciAyCiAgICBzZWxlY3QKICAgIHN3YXAKICAgIGludGNfMyAvLyAzCiAgICBkaWcgMQogICAgPj0KICAgIGludGNfMyAvLyAzCiAgICBkaWcgMgogICAgdW5jb3ZlciAyCiAgICBzZWxlY3QKICAgIC0KICAgIGR1cAogICAgZGlnIDIKICAgIDwKICAgIHN3YXAKICAgIGRpZyAyCiAgICB1bmNvdmVyIDIKICAgIHNlbGVjdAogICAgZGlnIDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICB1bmNvdmVyIDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICA9PQogICAgYXNzZXJ0IC8vIGV4cGVjdGVkIGFwcHJvdmFsIHBhZ2UgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxODkKICAgIC8vIGFzc2VydChhcHAxLmFwcHJvdmFsUHJvZ3JhbVBhZ2VzKDEpID09PSBhcHByb3ZhbDIuc2xpY2UoLTMpLmNvbmNhdChhcHByb3ZhbDIpLCAnZXhwZWN0ZWQgYXBwcm92YWwgcGFnZSAxJykKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBpdHhuYXMgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIHN3YXAKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gMwogICAgZGlnIDEKICAgID49CiAgICBpbnRjXzMgLy8gMwogICAgZGlnIDIKICAgIHVuY292ZXIgMgogICAgc2VsZWN0CiAgICBkaWcgMQogICAgc3dhcAogICAgLQogICAgZGlnIDIKICAgIHN3YXAKICAgIHVuY292ZXIgMgogICAgc3Vic3RyaW5nMwogICAgc3dhcAogICAgY29uY2F0CiAgICA9PQogICAgYXNzZXJ0IC8vIGV4cGVjdGVkIGFwcHJvdmFsIHBhZ2UgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxOTAKICAgIC8vIGFzc2VydChhcHAxLm51bUNsZWFyU3RhdGVQcm9ncmFtUGFnZXMgPT09IDEsICdjbGVhciBzdGF0ZSBwYWdlcyA9IDEnKQogICAgcHVzaGludCAxIC8vIDEKICAgID09CiAgICBhc3NlcnQgLy8gY2xlYXIgc3RhdGUgcGFnZXMgPSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE5MQogICAgLy8gYXNzZXJ0KGFwcDEuY2xlYXJTdGF0ZVByb2dyYW1QYWdlcygwKSA9PT0gQVBQUk9WRSwgJ2V4cGVjdGVkIGNsZWFyIHN0YXRlIHBhZ2UnKQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5hcyBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IEFQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTgxMDEnKQogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxOTEKICAgIC8vIGFzc2VydChhcHAxLmNsZWFyU3RhdGVQcm9ncmFtUGFnZXMoMCkgPT09IEFQUFJPVkUsICdleHBlY3RlZCBjbGVhciBzdGF0ZSBwYWdlJykKICAgID09CiAgICBhc3NlcnQgLy8gZXhwZWN0ZWQgY2xlYXIgc3RhdGUgcGFnZQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo6SXR4bkRlbW9Db250cmFjdC5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6Okl0eG5EZW1vQ29udHJhY3QuY29uc3RydWN0b3IoKSAtPiB2b2lkOgpjb25zdHJ1Y3RvcjoKCmNvbnN0cnVjdG9yX2Jsb2NrQDA6Cgpjb25zdHJ1Y3Rvcl9ibG9ja0AxOgoKY29uc3RydWN0b3JfYWZ0ZXJfaW5saW5lZF9AYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY29uc3RydWN0b3JAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OAogICAgLy8gbmFtZSA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBCeXRlcygpIH0pCiAgICBieXRlY18yIC8vICJuYW1lIgogICAgcHVzaGJ5dGVzIDB4CiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/itxn/ItxnDemoContract.arc56.json b/tests/approvals/out/unoptimized/itxn/ItxnDemoContract.arc56.json index 10f630e10..03e5a19bf 100644 --- a/tests/approvals/out/unoptimized/itxn/ItxnDemoContract.arc56.json +++ b/tests/approvals/out/unoptimized/itxn/ItxnDemoContract.arc56.json @@ -241,8 +241,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA2IDUgMyAxMDAwCiAgICBieXRlY2Jsb2NrIDB4MDk4MTAxIDB4MDkzNjFhMDBiMDgxMDEgIm5hbWUiICIxIiAidW5pdCIgIjIiICJBU1QxIiAiQVNUMiIgIkFTVDMiICIzIiAiNCIgIjUiICIzcmQiICJ3aXRoIGFyZ3MgcGFyYW0gc2V0IiAiNDIiICIxMCIgIjExIiAiMTIiICIxMyIgIjE0IiAiMTUiICIxNiIKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKCm1haW5faWZfYm9keUAxOgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CgptYWluX2Jsb2NrQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjcKICAgIC8vIGV4cG9ydCBjbGFzcyBJdHhuRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAMTEKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEl0eG5EZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgyMDI1NGY5MSAvLyBtZXRob2QgInRlc3QxKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4ZjE5MDg1MjQgLy8gbWV0aG9kICJ0ZXN0Migpdm9pZCIKICAgIHB1c2hieXRlcyAweGRmOTIwZjM3IC8vIG1ldGhvZCAidGVzdDMoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHgzZDQ2MzQ1YyAvLyBtZXRob2QgInRlc3Q0KCl2b2lkIgogICAgdW5jb3ZlciA0CiAgICBtYXRjaCBtYWluX3Rlc3QxX3JvdXRlQDUgbWFpbl90ZXN0Ml9yb3V0ZUA2IG1haW5fdGVzdDNfcm91dGVANyBtYWluX3Rlc3Q0X3JvdXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgoKbWFpbl9hZnRlcl9pZl9lbHNlQDE1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgSXR4bkRlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo6SXR4bkRlbW9Db250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNjoKICAgIHJldHVybgoKbWFpbl90ZXN0NF9yb3V0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNzEKICAgIC8vIHB1YmxpYyB0ZXN0NCgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdGVzdDQKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjpJdHhuRGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE2CgptYWluX3Rlc3QzX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk1CiAgICAvLyBwdWJsaWMgdGVzdDMoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3QzCiAgICBwdXNoaW50IDEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo6SXR4bkRlbW9Db250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNgoKbWFpbl90ZXN0Ml9yb3V0ZUA2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1OAogICAgLy8gcHVibGljIHRlc3QyKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0MgogICAgcHVzaGludCAxIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6Okl0eG5EZW1vQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTYKCm1haW5fdGVzdDFfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTAKICAgIC8vIHB1YmxpYyB0ZXN0MSgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdGVzdDEKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjpJdHhuRGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE2CgptYWluX2JhcmVfcm91dGluZ0AxMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEl0eG5EZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTIKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMzoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxNDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDE1CgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEl0eG5EZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgcHVzaGludCAxIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6Okl0eG5EZW1vQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTYKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjpJdHhuRGVtb0NvbnRyYWN0LnRlc3QxKCkgLT4gdm9pZDoKdGVzdDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEwCiAgICAvLyBwdWJsaWMgdGVzdDEoKSB7CiAgICBwcm90byAwIDAKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjgKICAgIC8vIG5hbWUgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogQnl0ZXMoKSB9KQogICAgYnl0ZWNfMiAvLyAibmFtZSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTEKICAgIC8vIHRoaXMubmFtZS52YWx1ZSA9IEJ5dGVzKCdBU1QxJykKICAgIGJ5dGVjIDYgLy8gIkFTVDEiCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo4CiAgICAvLyBuYW1lID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6IEJ5dGVzKCkgfSkKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18yIC8vICJuYW1lIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTgKICAgIC8vIG1hbmFnZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgIGR1cAogICAgY292ZXIgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxOQogICAgLy8gcmVzZXJ2ZTogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgZHVwCiAgICBjb3ZlciAzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjgKICAgIC8vIG5hbWUgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogQnl0ZXMoKSB9KQogICAgYnl0ZWNfMiAvLyAibmFtZSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MjIKICAgIC8vIHRoaXMubmFtZS52YWx1ZSA9IEJ5dGVzKCdBU1QyJykKICAgIGJ5dGVjIDcgLy8gIkFTVDIiCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoyMwogICAgLy8gY29uc3QgYXNzZXQxX3R4biA9IGFzc2V0UGFyYW1zLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0UmVzZXJ2ZQogICAgaXR4bl9maWVsZCBDb25maWdBc3NldE1hbmFnZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTcKICAgIC8vIGRlY2ltYWxzOiAzLAogICAgaW50Y18zIC8vIDMKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXREZWNpbWFscwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNgogICAgLy8gdW5pdE5hbWU6ICd1bml0JywKICAgIGJ5dGVjIDQgLy8gInVuaXQiCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VW5pdE5hbWUKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXROYW1lCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbDogMTAwMCwKICAgIGludGMgNCAvLyAxMDAwCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VG90YWwKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTMtMjAKICAgIC8vIGNvbnN0IGFzc2V0UGFyYW1zID0gaXR4bi5hc3NldENvbmZpZyh7CiAgICAvLyAgIHRvdGFsOiAxMDAwLAogICAgLy8gICBhc3NldE5hbWU6IHRoaXMubmFtZS52YWx1ZSwKICAgIC8vICAgdW5pdE5hbWU6ICd1bml0JywKICAgIC8vICAgZGVjaW1hbHM6IDMsCiAgICAvLyAgIG1hbmFnZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICByZXNlcnZlOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vIH0pCiAgICBpbnRjXzMgLy8gMwogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0MV9uZXh0X3R4bkAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoyMwogICAgLy8gY29uc3QgYXNzZXQxX3R4biA9IGFzc2V0UGFyYW1zLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBDb25maWdBc3NldE5hbWUKICAgIGZyYW1lX2J1cnkgMAogICAgaXR4biBDcmVhdGVkQXNzZXRJRAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo4CiAgICAvLyBuYW1lID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6IEJ5dGVzKCkgfSkKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18yIC8vICJuYW1lIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MjcKICAgIC8vIGNvbnN0IGFzc2V0Ml90eG4gPSBhc3NldFBhcmFtcy5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgZnJhbWVfZGlnIDIKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRSZXNlcnZlCiAgICBmcmFtZV9kaWcgMQogICAgaXR4bl9maWVsZCBDb25maWdBc3NldE1hbmFnZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTcKICAgIC8vIGRlY2ltYWxzOiAzLAogICAgaW50Y18zIC8vIDMKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXREZWNpbWFscwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNgogICAgLy8gdW5pdE5hbWU6ICd1bml0JywKICAgIGJ5dGVjIDQgLy8gInVuaXQiCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VW5pdE5hbWUKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXROYW1lCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbDogMTAwMCwKICAgIGludGMgNCAvLyAxMDAwCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VG90YWwKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTMtMjAKICAgIC8vIGNvbnN0IGFzc2V0UGFyYW1zID0gaXR4bi5hc3NldENvbmZpZyh7CiAgICAvLyAgIHRvdGFsOiAxMDAwLAogICAgLy8gICBhc3NldE5hbWU6IHRoaXMubmFtZS52YWx1ZSwKICAgIC8vICAgdW5pdE5hbWU6ICd1bml0JywKICAgIC8vICAgZGVjaW1hbHM6IDMsCiAgICAvLyAgIG1hbmFnZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICByZXNlcnZlOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vIH0pCiAgICBpbnRjXzMgLy8gMwogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0MV9uZXh0X3R4bkAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoyNwogICAgLy8gY29uc3QgYXNzZXQyX3R4biA9IGFzc2V0UGFyYW1zLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBDb25maWdBc3NldE5hbWUKICAgIGl0eG4gQ3JlYXRlZEFzc2V0SUQKICAgIHN3YXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MjkKICAgIC8vIGFzc2VydChhc3NldDFfdHhuLmFzc2V0TmFtZSA9PT0gQnl0ZXMoJ0FTVDEnKSwgJ2Fzc2V0MV90eG4gaXMgY29ycmVjdCcpCiAgICBmcmFtZV9kaWcgMAogICAgYnl0ZWMgNiAvLyAiQVNUMSIKICAgID09CiAgICBhc3NlcnQgLy8gYXNzZXQxX3R4biBpcyBjb3JyZWN0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjMwCiAgICAvLyBhc3NlcnQoYXNzZXQyX3R4bi5hc3NldE5hbWUgPT09IEJ5dGVzKCdBU1QyJyksICdhc3NldDJfdHhuIGlzIGNvcnJlY3QnKQogICAgYnl0ZWMgNyAvLyAiQVNUMiIKICAgID09CiAgICBhc3NlcnQgLy8gYXNzZXQyX3R4biBpcyBjb3JyZWN0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjMxCiAgICAvLyBhc3NlcnQoYXNzZXQxX3R4bi5jcmVhdGVkQXNzZXQubmFtZSA9PT0gQnl0ZXMoJ0FTVDEnKSwgJ2NyZWF0ZWQgYXNzZXQgMSBpcyBjb3JyZWN0JykKICAgIHN3YXAKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXROYW1lCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICBieXRlYyA2IC8vICJBU1QxIgogICAgPT0KICAgIGFzc2VydCAvLyBjcmVhdGVkIGFzc2V0IDEgaXMgY29ycmVjdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czozMgogICAgLy8gYXNzZXJ0KGFzc2V0Ml90eG4uY3JlYXRlZEFzc2V0Lm5hbWUgPT09IEJ5dGVzKCdBU1QyJyksICdjcmVhdGVkIGFzc2V0IDIgaXMgY29ycmVjdCcpCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0TmFtZQogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgYnl0ZWMgNyAvLyAiQVNUMiIKICAgID09CiAgICBhc3NlcnQgLy8gY3JlYXRlZCBhc3NldCAyIGlzIGNvcnJlY3QKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NDQKICAgIC8vIGNvbnN0IFthcHBDcmVhdGVUeG4sIGFzc2V0M190eG5dID0gaXR4bi5zdWJtaXRHcm91cChhcHBDcmVhdGVQYXJhbXMsIGFzc2V0UGFyYW1zKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czozNC0zOAogICAgLy8gY29uc3QgYXBwQ3JlYXRlUGFyYW1zID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBmZWU6IDAsCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MzcKICAgIC8vIGZlZTogMCwKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDFfbmV4dF90eG5AMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NDQKICAgIC8vIGNvbnN0IFthcHBDcmVhdGVUeG4sIGFzc2V0M190eG5dID0gaXR4bi5zdWJtaXRHcm91cChhcHBDcmVhdGVQYXJhbXMsIGFzc2V0UGFyYW1zKQogICAgaXR4bl9uZXh0CiAgICBmcmFtZV9kaWcgMgogICAgaXR4bl9maWVsZCBDb25maWdBc3NldFJlc2VydmUKICAgIGZyYW1lX2RpZyAxCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TWFuYWdlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNwogICAgLy8gZGVjaW1hbHM6IDMsCiAgICBpbnRjXzMgLy8gMwogICAgaXR4bl9maWVsZCBDb25maWdBc3NldERlY2ltYWxzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE2CiAgICAvLyB1bml0TmFtZTogJ3VuaXQnLAogICAgYnl0ZWMgNCAvLyAidW5pdCIKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRVbml0TmFtZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0MQogICAgLy8gYXNzZXROYW1lOiAnQVNUMycsCiAgICBieXRlYyA4IC8vICJBU1QzIgogICAgaXR4bl9maWVsZCBDb25maWdBc3NldE5hbWUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsOiAxMDAwLAogICAgaW50YyA0IC8vIDEwMDAKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRUb3RhbAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMy0yMAogICAgLy8gY29uc3QgYXNzZXRQYXJhbXMgPSBpdHhuLmFzc2V0Q29uZmlnKHsKICAgIC8vICAgdG90YWw6IDEwMDAsCiAgICAvLyAgIGFzc2V0TmFtZTogdGhpcy5uYW1lLnZhbHVlLAogICAgLy8gICB1bml0TmFtZTogJ3VuaXQnLAogICAgLy8gICBkZWNpbWFsczogMywKICAgIC8vICAgbWFuYWdlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgIHJlc2VydmU6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gfSkKICAgIGludGNfMyAvLyAzCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QxX25leHRfdHhuQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQ0CiAgICAvLyBjb25zdCBbYXBwQ3JlYXRlVHhuLCBhc3NldDNfdHhuXSA9IGl0eG4uc3VibWl0R3JvdXAoYXBwQ3JlYXRlUGFyYW1zLCBhc3NldFBhcmFtcykKICAgIGl0eG5fc3VibWl0CiAgICBnaXR4biAwIENyZWF0ZWRBcHBsaWNhdGlvbklECiAgICBpdHhuIENvbmZpZ0Fzc2V0TmFtZQogICAgc3dhcAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0NgogICAgLy8gYXNzZXJ0KGFwcENyZWF0ZVR4bi5jcmVhdGVkQXBwLCAnYXBwIGlzIGNyZWF0ZWQnKQogICAgYXNzZXJ0IC8vIGFwcCBpcyBjcmVhdGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQ3CiAgICAvLyBhc3NlcnQoYXNzZXQzX3R4bi5hc3NldE5hbWUgPT09IEJ5dGVzKCdBU1QzJyksICdhc3NldDNfdHhuIGlzIGNvcnJlY3QnKQogICAgYnl0ZWMgOCAvLyAiQVNUMyIKICAgID09CiAgICBhc3NlcnQgLy8gYXNzZXQzX3R4biBpcyBjb3JyZWN0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjU1CiAgICAvLyBpdHhuLnN1Ym1pdEdyb3VwKGFwcENyZWF0ZVBhcmFtcywgYXNzZXRQYXJhbXMpCiAgICBpdHhuX2JlZ2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUwCiAgICAvLyBub3RlOiAnM3JkJywKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBkdXAKICAgID49CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjU1CiAgICAvLyBpdHhuLnN1Ym1pdEdyb3VwKGFwcENyZWF0ZVBhcmFtcywgYXNzZXRQYXJhbXMpCiAgICBieiB0ZXN0MV9uZXh0X2ZpZWxkQDYKCnRlc3QxX3NldF9Ob3RlXzBfdG9fMEA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1MAogICAgLy8gbm90ZTogJzNyZCcsCiAgICBieXRlYyAxMiAvLyAiM3JkIgogICAgaXR4bl9maWVsZCBOb3RlCgp0ZXN0MV9uZXh0X2ZpZWxkQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IEFQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTgxMDEnKQogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjM0LTM4CiAgICAvLyBjb25zdCBhcHBDcmVhdGVQYXJhbXMgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIGZlZTogMCwKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czozNwogICAgLy8gZmVlOiAwLAogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0MV9uZXh0X3R4bkA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1NQogICAgLy8gaXR4bi5zdWJtaXRHcm91cChhcHBDcmVhdGVQYXJhbXMsIGFzc2V0UGFyYW1zKQogICAgaXR4bl9uZXh0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUzCiAgICAvLyBub3RlOiAnM3JkJywKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBkdXAKICAgID49CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjU1CiAgICAvLyBpdHhuLnN1Ym1pdEdyb3VwKGFwcENyZWF0ZVBhcmFtcywgYXNzZXRQYXJhbXMpCiAgICBieiB0ZXN0MV9uZXh0X2ZpZWxkQDkKCnRlc3QxX3NldF9Ob3RlXzBfdG9fMEA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1MwogICAgLy8gbm90ZTogJzNyZCcsCiAgICBieXRlYyAxMiAvLyAiM3JkIgogICAgaXR4bl9maWVsZCBOb3RlCgp0ZXN0MV9uZXh0X2ZpZWxkQDk6CiAgICBmcmFtZV9kaWcgMgogICAgaXR4bl9maWVsZCBDb25maWdBc3NldFJlc2VydmUKICAgIGZyYW1lX2RpZyAxCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TWFuYWdlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNwogICAgLy8gZGVjaW1hbHM6IDMsCiAgICBpbnRjXzMgLy8gMwogICAgaXR4bl9maWVsZCBDb25maWdBc3NldERlY2ltYWxzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE2CiAgICAvLyB1bml0TmFtZTogJ3VuaXQnLAogICAgYnl0ZWMgNCAvLyAidW5pdCIKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRVbml0TmFtZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0MQogICAgLy8gYXNzZXROYW1lOiAnQVNUMycsCiAgICBieXRlYyA4IC8vICJBU1QzIgogICAgaXR4bl9maWVsZCBDb25maWdBc3NldE5hbWUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsOiAxMDAwLAogICAgaW50YyA0IC8vIDEwMDAKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRUb3RhbAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMy0yMAogICAgLy8gY29uc3QgYXNzZXRQYXJhbXMgPSBpdHhuLmFzc2V0Q29uZmlnKHsKICAgIC8vICAgdG90YWw6IDEwMDAsCiAgICAvLyAgIGFzc2V0TmFtZTogdGhpcy5uYW1lLnZhbHVlLAogICAgLy8gICB1bml0TmFtZTogJ3VuaXQnLAogICAgLy8gICBkZWNpbWFsczogMywKICAgIC8vICAgbWFuYWdlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgIHJlc2VydmU6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gfSkKICAgIGludGNfMyAvLyAzCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QxX25leHRfdHhuQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1NQogICAgLy8gaXR4bi5zdWJtaXRHcm91cChhcHBDcmVhdGVQYXJhbXMsIGFzc2V0UGFyYW1zKQogICAgaXR4bl9zdWJtaXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6Okl0eG5EZW1vQ29udHJhY3QudGVzdDIoKSAtPiB2b2lkOgp0ZXN0MjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NTgKICAgIC8vIHB1YmxpYyB0ZXN0MigpIHsKICAgIHByb3RvIDAgMAogICAgaW50Y18wIC8vIDAKICAgIGR1cG4gMgogICAgcHVzaGJ5dGVzICIiCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBwdXNoYnl0ZXMgIiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NjAKICAgIC8vIGlmIChUeG4ubnVtQXBwQXJncykgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGJ6IHRlc3QyX2Vsc2VfYm9keUAyCgp0ZXN0Ml9pZl9ib2R5QDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjYxCiAgICAvLyBjb25zdCBhcmdzID0gW0J5dGVzKCcxJyksIEJ5dGVzKCcyJyldIGFzIGNvbnN0CiAgICBieXRlY18zIC8vICIxIgogICAgZnJhbWVfYnVyeSAwCiAgICBieXRlYyA1IC8vICIyIgogICAgZnJhbWVfYnVyeSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjY1CiAgICAvLyBhcHBBcmdzOiBhcmdzLAogICAgcHVzaGludCAyIC8vIDIKICAgIGZyYW1lX2J1cnkgMwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo2NgogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLk5vT3AsCiAgICBpbnRjXzAgLy8gMAogICAgZnJhbWVfYnVyeSA2CiAgICBwdXNoaW50IDEgLy8gMQogICAgZnJhbWVfYnVyeSA0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjY3CiAgICAvLyBub3RlOiAnd2l0aCBhcmdzIHBhcmFtIHNldCcsCiAgICBieXRlYyAxMyAvLyAid2l0aCBhcmdzIHBhcmFtIHNldCIKCnRlc3QyX2FmdGVyX2lmX2Vsc2VAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NzcKICAgIC8vIGNvbnN0IGNyZWF0ZUFwcFR4biA9IGNyZWF0ZUFwcFBhcmFtcy5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgaXR4bl9maWVsZCBOb3RlCiAgICBmcmFtZV9kaWcgNAogICAgcHVzaGludCAxIC8vIDEKICAgID49CiAgICBieiB0ZXN0Ml9uZXh0X2ZpZWxkQDUKCnRlc3QyX3NldF9PbkNvbXBsZXRpb25fMF90b18wQDQ6CiAgICBmcmFtZV9kaWcgNgogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCnRlc3QyX25leHRfZmllbGRANToKICAgIGZyYW1lX2RpZyAwCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgZnJhbWVfZGlnIDEKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBmcmFtZV9kaWcgMwogICAgaW50Y18zIC8vIDMKICAgID49CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjc3CiAgICAvLyBjb25zdCBjcmVhdGVBcHBUeG4gPSBjcmVhdGVBcHBQYXJhbXMuc3VibWl0KCkKICAgIGJ6IHRlc3QyX25leHRfZmllbGRANwoKdGVzdDJfc2V0X0FwcGxpY2F0aW9uQXJnc18yX3RvXzJANjoKICAgIGZyYW1lX2RpZyA1CiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKdGVzdDJfbmV4dF9maWVsZEA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo2Mi02OAogICAgLy8gY3JlYXRlQXBwUGFyYW1zID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBhcHBBcmdzOiBhcmdzLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uTm9PcCwKICAgIC8vICAgbm90ZTogJ3dpdGggYXJncyBwYXJhbSBzZXQnLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QyX25leHRfdHhuQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjc3CiAgICAvLyBjb25zdCBjcmVhdGVBcHBUeG4gPSBjcmVhdGVBcHBQYXJhbXMuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CiAgICBpdHhuIE5vdGUKICAgIGZyYW1lX2J1cnkgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo3OAogICAgLy8gYXNzZXJ0KGNyZWF0ZUFwcFR4bi5hcHBBcmdzKDApID09PSBCeXRlcygnMScpLCAnY29ycmVjdCBhcmdzIHVzZWQgMScpCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bmFzIEFwcGxpY2F0aW9uQXJncwogICAgYnl0ZWNfMyAvLyAiMSIKICAgID09CiAgICBhc3NlcnQgLy8gY29ycmVjdCBhcmdzIHVzZWQgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo3OQogICAgLy8gYXNzZXJ0KGNyZWF0ZUFwcFR4bi5hcHBBcmdzKDEpID09PSBCeXRlcygnMicpLCAnY29ycmVjdCBhcmdzIHVzZWQgMicpCiAgICBwdXNoaW50IDEgLy8gMQogICAgaXR4bmFzIEFwcGxpY2F0aW9uQXJncwogICAgYnl0ZWMgNSAvLyAiMiIKICAgID09CiAgICBhc3NlcnQgLy8gY29ycmVjdCBhcmdzIHVzZWQgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo4MQogICAgLy8gaWYgKFR4bi5udW1BcHBBcmdzID4gMSkgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIHB1c2hpbnQgMSAvLyAxCiAgICA+CiAgICBieiB0ZXN0Ml9hZnRlcl9pZl9lbHNlQDExCgp0ZXN0Ml9pZl9ib2R5QDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjgyLTg5CiAgICAvLyBjb25zdCBjcmVhdGVBcHBUeG4yID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHByb3ZhbFByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICAgIGFwcEFyZ3M6IFtCeXRlcygnNDInKV0sCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo4NwogICAgLy8gYXBwQXJnczogW0J5dGVzKCc0MicpXSwKICAgIGJ5dGVjIDE0IC8vICI0MiIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjg2CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzIgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6ODItODgKICAgIC8vIGNvbnN0IGNyZWF0ZUFwcFR4bjIgPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcHJvdmFsUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgICBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgICAgYXBwQXJnczogW0J5dGVzKCc0MicpXSwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QyX25leHRfdHhuQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo4Mi04OQogICAgLy8gY29uc3QgY3JlYXRlQXBwVHhuMiA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgICBhcHBBcmdzOiBbQnl0ZXMoJzQyJyldLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjkwCiAgICAvLyBhc3NlcnQoY3JlYXRlQXBwVHhuMi5hcHBBcmdzKDApID09PSBCeXRlcygnNDInKSwgJ2NvcnJlY3QgYXJncyB1c2VkIDInKQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5hcyBBcHBsaWNhdGlvbkFyZ3MKICAgIGJ5dGVjIDE0IC8vICI0MiIKICAgID09CiAgICBhc3NlcnQgLy8gY29ycmVjdCBhcmdzIHVzZWQgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5MQogICAgLy8gYXNzZXJ0KGNyZWF0ZUFwcFR4bi5ub3RlID09PSBCeXRlcygnd2l0aCBhcmdzIHBhcmFtIHNldCcpKQogICAgZnJhbWVfZGlnIDIKICAgIGJ5dGVjIDEzIC8vICJ3aXRoIGFyZ3MgcGFyYW0gc2V0IgogICAgPT0KICAgIGFzc2VydAoKdGVzdDJfYWZ0ZXJfaWZfZWxzZUAxMToKICAgIHJldHN1YgoKdGVzdDJfZWxzZV9ib2R5QDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjczCiAgICAvLyBhcHBBcmdzOiBbQnl0ZXMoJzMnKSwgJzQnLCBCeXRlcygnNScpXSwKICAgIGJ5dGVjIDkgLy8gIjMiCiAgICBmcmFtZV9idXJ5IDAKICAgIGJ5dGVjIDEwIC8vICI0IgogICAgZnJhbWVfYnVyeSAxCiAgICBieXRlYyAxMSAvLyAiNSIKICAgIGZyYW1lX2J1cnkgNQogICAgaW50Y18zIC8vIDMKICAgIGZyYW1lX2J1cnkgMwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo3NAogICAgLy8gbm90ZTogJ25vIGFyZ3MgcGFyYW0gc2V0JywKICAgIHB1c2hieXRlcyAibm8gYXJncyBwYXJhbSBzZXQiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjcwCiAgICAvLyBjcmVhdGVBcHBQYXJhbXMgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICBpbnRjXzAgLy8gMAogICAgZnJhbWVfYnVyeSA0CiAgICBiIHRlc3QyX2FmdGVyX2lmX2Vsc2VAMwoKCi8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6Okl0eG5EZW1vQ29udHJhY3QudGVzdDMoKSAtPiB2b2lkOgp0ZXN0MzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTM0LTE1MQogICAgLy8gY29uc3QgW2FwcDEsIGFwcDIsIGFwcDMsIGFwcDQsIGFwcDUsIGFwcDYsIGFwcDcsIGFwcDgsIGFwcDksIGFwcDEwLCBhcHAxMSwgYXBwMTIsIGFwcDEzLCBhcHAxNCwgYXBwMTUsIGFwcDE2XSA9IGl0eG4uc3VibWl0R3JvdXAoCiAgICAvLyAgIGFwcFR4bjEsCiAgICAvLyAgIGFwcFR4bjIsCiAgICAvLyAgIGFwcFR4bjMsCiAgICAvLyAgIGFwcFR4bjQsCiAgICAvLyAgIGFwcFR4bjUsCiAgICAvLyAgIGFwcFR4bjYsCiAgICAvLyAgIGFwcFR4bjcsCiAgICAvLyAgIGFwcFR4bjgsCiAgICAvLyAgIGFwcFR4bjksCiAgICAvLyAgIGFwcFR4bjEwLAogICAgLy8gICBhcHBUeG4xMSwKICAgIC8vICAgYXBwVHhuMTIsCiAgICAvLyAgIGFwcFR4bjEzLAogICAgLy8gICBhcHBUeG4xNCwKICAgIC8vICAgYXBwVHhuMTUsCiAgICAvLyAgIGFwcFR4bjE2LAogICAgLy8gKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMDAKICAgIC8vIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIGJ5dGVjXzMgLy8gIjEiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IEFQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTgxMDEnKQogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQKICAgIC8vIGNvbnN0IExPR18xU1RfQVJHX0FORF9BUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDkzNjFBMDBCMDgxMDEnKQogICAgYnl0ZWNfMSAvLyAweDA5MzYxYTAwYjA4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEzNgogICAgLy8gYXBwVHhuMiwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMDQKICAgIC8vIGFwcFR4bjIuc2V0KHsgYXBwQXJnczogW0J5dGVzKCcyJyldIH0pCiAgICBieXRlYyA1IC8vICIyIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTkKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMiAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5Ni0xMDEKICAgIC8vIGNvbnN0IGFwcFR4bjEgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0M19uZXh0X3R4bkAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMzcKICAgIC8vIGFwcFR4bjMsCiAgICBpdHhuX25leHQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NAogICAgLy8gY29uc3QgTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTM2MUEwMEIwODEwMScpCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTA2CiAgICAvLyBhcHBUeG4zLnNldCh7IGFwcEFyZ3M6IFtCeXRlcygnMycpXSB9KQogICAgYnl0ZWMgOSAvLyAiMyIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk5CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzIgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTYtMTAxCiAgICAvLyBjb25zdCBhcHBUeG4xID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IExPR18xU1RfQVJHX0FORF9BUFBST1ZFLAogICAgLy8gICBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICBhcHBBcmdzOiBbQnl0ZXMoJzEnKV0sCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDNfbmV4dF90eG5AMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTM4CiAgICAvLyBhcHBUeG40LAogICAgaXR4bl9uZXh0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IEFQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTgxMDEnKQogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQKICAgIC8vIGNvbnN0IExPR18xU1RfQVJHX0FORF9BUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDkzNjFBMDBCMDgxMDEnKQogICAgYnl0ZWNfMSAvLyAweDA5MzYxYTAwYjA4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEwOAogICAgLy8gYXBwVHhuNC5zZXQoeyBhcHBBcmdzOiBbQnl0ZXMoJzQnKV0gfSkKICAgIGJ5dGVjIDEwIC8vICI0IgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTkKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMiAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5Ni0xMDEKICAgIC8vIGNvbnN0IGFwcFR4bjEgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0M19uZXh0X3R4bkA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMzkKICAgIC8vIGFwcFR4bjUsCiAgICBpdHhuX25leHQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NAogICAgLy8gY29uc3QgTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTM2MUEwMEIwODEwMScpCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTEwCiAgICAvLyBhcHBUeG41LnNldCh7IGFwcEFyZ3M6IFtCeXRlcygnNScpXSB9KQogICAgYnl0ZWMgMTEgLy8gIjUiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0MAogICAgLy8gYXBwVHhuNiwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTIKICAgIC8vIGFwcFR4bjYuc2V0KHsgYXBwQXJnczogW0J5dGVzKCc2JyldIH0pCiAgICBwdXNoYnl0ZXMgIjYiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0MQogICAgLy8gYXBwVHhuNywKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTQKICAgIC8vIGFwcFR4bjcuc2V0KHsgYXBwQXJnczogW0J5dGVzKCc3JyldIH0pCiAgICBwdXNoYnl0ZXMgIjciCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0MgogICAgLy8gYXBwVHhuOCwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTYKICAgIC8vIGFwcFR4bjguc2V0KHsgYXBwQXJnczogW0J5dGVzKCc4JyldIH0pCiAgICBwdXNoYnl0ZXMgIjgiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0MwogICAgLy8gYXBwVHhuOSwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTgKICAgIC8vIGFwcFR4bjkuc2V0KHsgYXBwQXJnczogW0J5dGVzKCc5JyldIH0pCiAgICBwdXNoYnl0ZXMgIjkiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0NAogICAgLy8gYXBwVHhuMTAsCiAgICBpdHhuX25leHQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NAogICAgLy8gY29uc3QgTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTM2MUEwMEIwODEwMScpCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTIwCiAgICAvLyBhcHBUeG4xMC5zZXQoeyBhcHBBcmdzOiBbQnl0ZXMoJzEwJyldIH0pCiAgICBieXRlYyAxNSAvLyAiMTAiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNDUKICAgIC8vIGFwcFR4bjExLAogICAgaXR4bl9uZXh0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IEFQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTgxMDEnKQogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQKICAgIC8vIGNvbnN0IExPR18xU1RfQVJHX0FORF9BUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDkzNjFBMDBCMDgxMDEnKQogICAgYnl0ZWNfMSAvLyAweDA5MzYxYTAwYjA4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEyMgogICAgLy8gYXBwVHhuMTEuc2V0KHsgYXBwQXJnczogW0J5dGVzKCcxMScpXSB9KQogICAgYnl0ZWMgMTYgLy8gIjExIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTkKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMiAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5Ni0xMDEKICAgIC8vIGNvbnN0IGFwcFR4bjEgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0M19uZXh0X3R4bkAxMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTQ2CiAgICAvLyBhcHBUeG4xMiwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMjQKICAgIC8vIGFwcFR4bjEyLnNldCh7IGFwcEFyZ3M6IFtCeXRlcygnMTInKV0gfSkKICAgIGJ5dGVjIDE3IC8vICIxMiIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk5CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzIgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTYtMTAxCiAgICAvLyBjb25zdCBhcHBUeG4xID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IExPR18xU1RfQVJHX0FORF9BUFBST1ZFLAogICAgLy8gICBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICBhcHBBcmdzOiBbQnl0ZXMoJzEnKV0sCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDNfbmV4dF90eG5AMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0NwogICAgLy8gYXBwVHhuMTMsCiAgICBpdHhuX25leHQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NAogICAgLy8gY29uc3QgTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTM2MUEwMEIwODEwMScpCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTI2CiAgICAvLyBhcHBUeG4xMy5zZXQoeyBhcHBBcmdzOiBbQnl0ZXMoJzEzJyldIH0pCiAgICBieXRlYyAxOCAvLyAiMTMiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDEzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNDgKICAgIC8vIGFwcFR4bjE0LAogICAgaXR4bl9uZXh0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IEFQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTgxMDEnKQogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQKICAgIC8vIGNvbnN0IExPR18xU1RfQVJHX0FORF9BUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDkzNjFBMDBCMDgxMDEnKQogICAgYnl0ZWNfMSAvLyAweDA5MzYxYTAwYjA4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEyOAogICAgLy8gYXBwVHhuMTQuc2V0KHsgYXBwQXJnczogW0J5dGVzKCcxNCcpXSB9KQogICAgYnl0ZWMgMTkgLy8gIjE0IgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTkKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMiAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5Ni0xMDEKICAgIC8vIGNvbnN0IGFwcFR4bjEgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0M19uZXh0X3R4bkAxNDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTQ5CiAgICAvLyBhcHBUeG4xNSwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMzAKICAgIC8vIGFwcFR4bjE1LnNldCh7IGFwcEFyZ3M6IFtCeXRlcygnMTUnKV0gfSkKICAgIGJ5dGVjIDIwIC8vICIxNSIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk5CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzIgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTYtMTAxCiAgICAvLyBjb25zdCBhcHBUeG4xID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IExPR18xU1RfQVJHX0FORF9BUFBST1ZFLAogICAgLy8gICBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICBhcHBBcmdzOiBbQnl0ZXMoJzEnKV0sCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDNfbmV4dF90eG5AMTU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE1MAogICAgLy8gYXBwVHhuMTYsCiAgICBpdHhuX25leHQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NAogICAgLy8gY29uc3QgTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTM2MUEwMEIwODEwMScpCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTMyCiAgICAvLyBhcHBUeG4xNi5zZXQoeyBhcHBBcmdzOiBbQnl0ZXMoJzE2JyldIH0pCiAgICBieXRlYyAyMSAvLyAiMTYiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDE2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMzQtMTUxCiAgICAvLyBjb25zdCBbYXBwMSwgYXBwMiwgYXBwMywgYXBwNCwgYXBwNSwgYXBwNiwgYXBwNywgYXBwOCwgYXBwOSwgYXBwMTAsIGFwcDExLCBhcHAxMiwgYXBwMTMsIGFwcDE0LCBhcHAxNSwgYXBwMTZdID0gaXR4bi5zdWJtaXRHcm91cCgKICAgIC8vICAgYXBwVHhuMSwKICAgIC8vICAgYXBwVHhuMiwKICAgIC8vICAgYXBwVHhuMywKICAgIC8vICAgYXBwVHhuNCwKICAgIC8vICAgYXBwVHhuNSwKICAgIC8vICAgYXBwVHhuNiwKICAgIC8vICAgYXBwVHhuNywKICAgIC8vICAgYXBwVHhuOCwKICAgIC8vICAgYXBwVHhuOSwKICAgIC8vICAgYXBwVHhuMTAsCiAgICAvLyAgIGFwcFR4bjExLAogICAgLy8gICBhcHBUeG4xMiwKICAgIC8vICAgYXBwVHhuMTMsCiAgICAvLyAgIGFwcFR4bjE0LAogICAgLy8gICBhcHBUeG4xNSwKICAgIC8vICAgYXBwVHhuMTYsCiAgICAvLyApCiAgICBpdHhuX3N1Ym1pdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNTMKICAgIC8vIGFzc2VydChhcHAxLmxvZ3MoMCkgPT09IEJ5dGVzKCcxJykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyAwIExvZ3MKICAgIGJ5dGVjXzMgLy8gIjEiCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE1NAogICAgLy8gYXNzZXJ0KGFwcDIubG9ncygwKSA9PT0gQnl0ZXMoJzInKSkKICAgIGludGNfMCAvLyAwCiAgICBnaXR4bmFzIDEgTG9ncwogICAgYnl0ZWMgNSAvLyAiMiIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTU1CiAgICAvLyBhc3NlcnQoYXBwMy5sb2dzKDApID09PSBCeXRlcygnMycpKQogICAgaW50Y18wIC8vIDAKICAgIGdpdHhuYXMgMiBMb2dzCiAgICBieXRlYyA5IC8vICIzIgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNTYKICAgIC8vIGFzc2VydChhcHA0LmxvZ3MoMCkgPT09IEJ5dGVzKCc0JykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyAzIExvZ3MKICAgIGJ5dGVjIDEwIC8vICI0IgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNTcKICAgIC8vIGFzc2VydChhcHA1LmxvZ3MoMCkgPT09IEJ5dGVzKCc1JykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyA0IExvZ3MKICAgIGJ5dGVjIDExIC8vICI1IgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNTgKICAgIC8vIGFzc2VydChhcHA2LmxvZ3MoMCkgPT09IEJ5dGVzKCc2JykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyA1IExvZ3MKICAgIHB1c2hieXRlcyAiNiIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTU5CiAgICAvLyBhc3NlcnQoYXBwNy5sb2dzKDApID09PSBCeXRlcygnNycpKQogICAgaW50Y18wIC8vIDAKICAgIGdpdHhuYXMgNiBMb2dzCiAgICBwdXNoYnl0ZXMgIjciCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE2MAogICAgLy8gYXNzZXJ0KGFwcDgubG9ncygwKSA9PT0gQnl0ZXMoJzgnKSkKICAgIGludGNfMCAvLyAwCiAgICBnaXR4bmFzIDcgTG9ncwogICAgcHVzaGJ5dGVzICI4IgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNjEKICAgIC8vIGFzc2VydChhcHA5LmxvZ3MoMCkgPT09IEJ5dGVzKCc5JykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyA4IExvZ3MKICAgIHB1c2hieXRlcyAiOSIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTYyCiAgICAvLyBhc3NlcnQoYXBwMTAubG9ncygwKSA9PT0gQnl0ZXMoJzEwJykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyA5IExvZ3MKICAgIGJ5dGVjIDE1IC8vICIxMCIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTYzCiAgICAvLyBhc3NlcnQoYXBwMTEubG9ncygwKSA9PT0gQnl0ZXMoJzExJykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyAxMCBMb2dzCiAgICBieXRlYyAxNiAvLyAiMTEiCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE2NAogICAgLy8gYXNzZXJ0KGFwcDEyLmxvZ3MoMCkgPT09IEJ5dGVzKCcxMicpKQogICAgaW50Y18wIC8vIDAKICAgIGdpdHhuYXMgMTEgTG9ncwogICAgYnl0ZWMgMTcgLy8gIjEyIgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNjUKICAgIC8vIGFzc2VydChhcHAxMy5sb2dzKDApID09PSBCeXRlcygnMTMnKSkKICAgIGludGNfMCAvLyAwCiAgICBnaXR4bmFzIDEyIExvZ3MKICAgIGJ5dGVjIDE4IC8vICIxMyIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTY2CiAgICAvLyBhc3NlcnQoYXBwMTQubG9ncygwKSA9PT0gQnl0ZXMoJzE0JykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyAxMyBMb2dzCiAgICBieXRlYyAxOSAvLyAiMTQiCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE2NwogICAgLy8gYXNzZXJ0KGFwcDE1LmxvZ3MoMCkgPT09IEJ5dGVzKCcxNScpKQogICAgaW50Y18wIC8vIDAKICAgIGdpdHhuYXMgMTQgTG9ncwogICAgYnl0ZWMgMjAgLy8gIjE1IgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNjgKICAgIC8vIGFzc2VydChhcHAxNi5sb2dzKDApID09PSBCeXRlcygnMTYnKSkKICAgIGludGNfMCAvLyAwCiAgICBpdHhuYXMgTG9ncwogICAgYnl0ZWMgMjEgLy8gIjE2IgogICAgPT0KICAgIGFzc2VydAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo6SXR4bkRlbW9Db250cmFjdC50ZXN0NCgpIC0+IHZvaWQ6CnRlc3Q0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNzIKICAgIC8vIGNvbnN0IGxvdHNPZkJ5dGVzID0gb3AuYnplcm8oMjA0NCkKICAgIHB1c2hpbnQgMjA0NCAvLyAyMDQ0CiAgICBiemVybwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNzQKICAgIC8vIGNvbnN0IGFwcHJvdmFsMiA9IEJ5dGVzLmZyb21IZXgoJzgwJyArICdGQzBmJykKICAgIHB1c2hieXRlcyAweDgwZmMwZgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNzQtMTc1CiAgICAvLyBjb25zdCBhcHByb3ZhbDIgPSBCeXRlcy5mcm9tSGV4KCc4MCcgKyAnRkMwZicpCiAgICAvLyAgIC5jb25jYXQobG90c09mQnl0ZXMpCiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTc2CiAgICAvLyAuY29uY2F0KEJ5dGVzLmZyb21IZXgoJzQ4JykpCiAgICBwdXNoYnl0ZXMgMHg0OAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNzQtMTc2CiAgICAvLyBjb25zdCBhcHByb3ZhbDIgPSBCeXRlcy5mcm9tSGV4KCc4MCcgKyAnRkMwZicpCiAgICAvLyAgIC5jb25jYXQobG90c09mQnl0ZXMpCiAgICAvLyAgIC5jb25jYXQoQnl0ZXMuZnJvbUhleCgnNDgnKSkKICAgIGNvbmNhdAogICAgZHVwbiAzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE3OQogICAgLy8gYXBwcm92YWxQcm9ncmFtOiBbYXBwcm92YWwxLCBhcHByb3ZhbDIsIGFwcHJvdmFsMiwgYXBwcm92YWwyXSwKICAgIGNvdmVyIDIKICAgIGNvdmVyIDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTg1CiAgICAvLyBjb25zdCBhcHAxID0gYXBwVHhuMS5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxODMKICAgIC8vIGV4dHJhUHJvZ3JhbVBhZ2VzOiAzLAogICAgaW50Y18zIC8vIDMKICAgIGl0eG5fZmllbGQgRXh0cmFQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTgyCiAgICAvLyBhcHBBcmdzOiBbQnl0ZXMoJzEnKV0sCiAgICBieXRlY18zIC8vICIxIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTgxCiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzIgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTc4LTE4NAogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBbYXBwcm92YWwxLCBhcHByb3ZhbDIsIGFwcHJvdmFsMiwgYXBwcm92YWwyXSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gICBleHRyYVByb2dyYW1QYWdlczogMywKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0NF9uZXh0X3R4bkAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxODUKICAgIC8vIGNvbnN0IGFwcDEgPSBhcHBUeG4xLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBFeHRyYVByb2dyYW1QYWdlcwogICAgaXR4biBOdW1BcHByb3ZhbFByb2dyYW1QYWdlcwogICAgc3dhcAogICAgaXR4biBOdW1DbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBjb3ZlciAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE4NgogICAgLy8gYXNzZXJ0KGFwcDEuZXh0cmFQcm9ncmFtUGFnZXMgPT09IDMsICdleHRyYSBwYWdlcyA9IDMnKQogICAgaW50Y18zIC8vIDMKICAgID09CiAgICBhc3NlcnQgLy8gZXh0cmEgcGFnZXMgPSAzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE4NwogICAgLy8gYXNzZXJ0KGFwcDEubnVtQXBwcm92YWxQcm9ncmFtUGFnZXMgPT09IDIsICdhcHByb3ZhbCBwYWdlcyA9IDInKQogICAgcHVzaGludCAyIC8vIDIKICAgID09CiAgICBhc3NlcnQgLy8gYXBwcm92YWwgcGFnZXMgPSAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE4OAogICAgLy8gYXNzZXJ0KGFwcDEuYXBwcm92YWxQcm9ncmFtUGFnZXMoMCkgPT09IGFwcHJvdmFsMS5jb25jYXQoYXBwcm92YWwyKS5jb25jYXQoYXBwcm92YWwyLnNsaWNlKDAsIC0zKSksICdleHBlY3RlZCBhcHByb3ZhbCBwYWdlIDAnKQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5hcyBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTg4CiAgICAvLyBhc3NlcnQoYXBwMS5hcHByb3ZhbFByb2dyYW1QYWdlcygwKSA9PT0gYXBwcm92YWwxLmNvbmNhdChhcHByb3ZhbDIpLmNvbmNhdChhcHByb3ZhbDIuc2xpY2UoMCwgLTMpKSwgJ2V4cGVjdGVkIGFwcHJvdmFsIHBhZ2UgMCcpCiAgICB1bmNvdmVyIDMKICAgIGR1cAogICAgY292ZXIgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18wIC8vIDAKICAgIGRpZyAxCiAgICA+PQogICAgaW50Y18wIC8vIDAKICAgIGRpZyAyCiAgICB1bmNvdmVyIDIKICAgIHNlbGVjdAogICAgc3dhcAogICAgaW50Y18zIC8vIDMKICAgIGRpZyAxCiAgICA+PQogICAgaW50Y18zIC8vIDMKICAgIGRpZyAyCiAgICB1bmNvdmVyIDIKICAgIHNlbGVjdAogICAgLQogICAgZHVwCiAgICBkaWcgMgogICAgPAogICAgc3dhcAogICAgZGlnIDIKICAgIHVuY292ZXIgMgogICAgc2VsZWN0CiAgICBkaWcgMgogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgIHVuY292ZXIgMgogICAgc3dhcAogICAgY29uY2F0CiAgICB1bmNvdmVyIDIKICAgID09CiAgICBhc3NlcnQgLy8gZXhwZWN0ZWQgYXBwcm92YWwgcGFnZSAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE4OQogICAgLy8gYXNzZXJ0KGFwcDEuYXBwcm92YWxQcm9ncmFtUGFnZXMoMSkgPT09IGFwcHJvdmFsMi5zbGljZSgtMykuY29uY2F0KGFwcHJvdmFsMiksICdleHBlY3RlZCBhcHByb3ZhbCBwYWdlIDEnKQogICAgcHVzaGludCAxIC8vIDEKICAgIGl0eG5hcyBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgc3dhcAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyAzCiAgICBkaWcgMQogICAgPj0KICAgIGludGNfMyAvLyAzCiAgICBkaWcgMgogICAgdW5jb3ZlciAyCiAgICBzZWxlY3QKICAgIGRpZyAxCiAgICBzd2FwCiAgICAtCiAgICBkaWcgMgogICAgc3dhcAogICAgdW5jb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICBzd2FwCiAgICBjb25jYXQKICAgID09CiAgICBhc3NlcnQgLy8gZXhwZWN0ZWQgYXBwcm92YWwgcGFnZSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE5MAogICAgLy8gYXNzZXJ0KGFwcDEubnVtQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcyA9PT0gMSwgJ2NsZWFyIHN0YXRlIHBhZ2VzID0gMScpCiAgICBwdXNoaW50IDEgLy8gMQogICAgPT0KICAgIGFzc2VydCAvLyBjbGVhciBzdGF0ZSBwYWdlcyA9IDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTkxCiAgICAvLyBhc3NlcnQoYXBwMS5jbGVhclN0YXRlUHJvZ3JhbVBhZ2VzKDApID09PSBBUFBST1ZFLCAnZXhwZWN0ZWQgY2xlYXIgc3RhdGUgcGFnZScpCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bmFzIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE5MQogICAgLy8gYXNzZXJ0KGFwcDEuY2xlYXJTdGF0ZVByb2dyYW1QYWdlcygwKSA9PT0gQVBQUk9WRSwgJ2V4cGVjdGVkIGNsZWFyIHN0YXRlIHBhZ2UnKQogICAgPT0KICAgIGFzc2VydCAvLyBleHBlY3RlZCBjbGVhciBzdGF0ZSBwYWdlCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjpJdHhuRGVtb0NvbnRyYWN0Ll9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6Okl0eG5EZW1vQ29udHJhY3QuY29uc3RydWN0b3IoKSAtPiB2b2lkOgpjb25zdHJ1Y3RvcjoKCmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgpjb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo4CiAgICAvLyBuYW1lID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6IEJ5dGVzKCkgfSkKICAgIGJ5dGVjXzIgLy8gIm5hbWUiCiAgICBwdXNoYnl0ZXMgMHgKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA2IDUgMyAxMDAwCiAgICBieXRlY2Jsb2NrIDB4MDk4MTAxIDB4MDkzNjFhMDBiMDgxMDEgIm5hbWUiICIxIiAidW5pdCIgIjIiICJBU1QxIiAiQVNUMiIgIkFTVDMiICIzIiAiNCIgIjUiICIzcmQiICJ3aXRoIGFyZ3MgcGFyYW0gc2V0IiAiNDIiICIxMCIgIjExIiAiMTIiICIxMyIgIjE0IiAiMTUiICIxNiIKCm1haW5fYmxvY2tAMDoKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKCm1haW5faWZfYm9keUAxOgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CgptYWluX2Jsb2NrQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjcKICAgIC8vIGV4cG9ydCBjbGFzcyBJdHhuRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAMTEKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEl0eG5EZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgyMDI1NGY5MSAvLyBtZXRob2QgInRlc3QxKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4ZjE5MDg1MjQgLy8gbWV0aG9kICJ0ZXN0Migpdm9pZCIKICAgIHB1c2hieXRlcyAweGRmOTIwZjM3IC8vIG1ldGhvZCAidGVzdDMoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHgzZDQ2MzQ1YyAvLyBtZXRob2QgInRlc3Q0KCl2b2lkIgogICAgdW5jb3ZlciA0CiAgICBtYXRjaCBtYWluX3Rlc3QxX3JvdXRlQDUgbWFpbl90ZXN0Ml9yb3V0ZUA2IG1haW5fdGVzdDNfcm91dGVANyBtYWluX3Rlc3Q0X3JvdXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgoKbWFpbl9hZnRlcl9pZl9lbHNlQDE1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgSXR4bkRlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo6SXR4bkRlbW9Db250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNjoKICAgIHJldHVybgoKbWFpbl90ZXN0NF9yb3V0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNzEKICAgIC8vIHB1YmxpYyB0ZXN0NCgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdGVzdDQKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjpJdHhuRGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE2CgptYWluX3Rlc3QzX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk1CiAgICAvLyBwdWJsaWMgdGVzdDMoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3QzCiAgICBwdXNoaW50IDEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo6SXR4bkRlbW9Db250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNgoKbWFpbl90ZXN0Ml9yb3V0ZUA2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1OAogICAgLy8gcHVibGljIHRlc3QyKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0MgogICAgcHVzaGludCAxIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6Okl0eG5EZW1vQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTYKCm1haW5fdGVzdDFfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTAKICAgIC8vIHB1YmxpYyB0ZXN0MSgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdGVzdDEKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjpJdHhuRGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE2CgptYWluX2JhcmVfcm91dGluZ0AxMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEl0eG5EZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTIKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMzoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxNDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDE1CgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIEl0eG5EZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgcHVzaGludCAxIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6Okl0eG5EZW1vQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTYKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjpJdHhuRGVtb0NvbnRyYWN0LnRlc3QxKCkgLT4gdm9pZDoKdGVzdDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEwCiAgICAvLyBwdWJsaWMgdGVzdDEoKSB7CiAgICBwcm90byAwIDAKICAgIGludGNfMCAvLyAwCgp0ZXN0MV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo4CiAgICAvLyBuYW1lID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6IEJ5dGVzKCkgfSkKICAgIGJ5dGVjXzIgLy8gIm5hbWUiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjExCiAgICAvLyB0aGlzLm5hbWUudmFsdWUgPSBCeXRlcygnQVNUMScpCiAgICBieXRlYyA2IC8vICJBU1QxIgogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OAogICAgLy8gbmFtZSA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBCeXRlcygpIH0pCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMiAvLyAibmFtZSIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE4CiAgICAvLyBtYW5hZ2VyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTkKICAgIC8vIHJlc2VydmU6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgIGR1cAogICAgY292ZXIgMwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo4CiAgICAvLyBuYW1lID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6IEJ5dGVzKCkgfSkKICAgIGJ5dGVjXzIgLy8gIm5hbWUiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjIyCiAgICAvLyB0aGlzLm5hbWUudmFsdWUgPSBCeXRlcygnQVNUMicpCiAgICBieXRlYyA3IC8vICJBU1QyIgogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MjMKICAgIC8vIGNvbnN0IGFzc2V0MV90eG4gPSBhc3NldFBhcmFtcy5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgaXR4bl9maWVsZCBDb25maWdBc3NldFJlc2VydmUKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRNYW5hZ2VyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE3CiAgICAvLyBkZWNpbWFsczogMywKICAgIGludGNfMyAvLyAzCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0RGVjaW1hbHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTYKICAgIC8vIHVuaXROYW1lOiAndW5pdCcsCiAgICBieXRlYyA0IC8vICJ1bml0IgogICAgaXR4bl9maWVsZCBDb25maWdBc3NldFVuaXROYW1lCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TmFtZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNAogICAgLy8gdG90YWw6IDEwMDAsCiAgICBpbnRjIDQgLy8gMTAwMAogICAgaXR4bl9maWVsZCBDb25maWdBc3NldFRvdGFsCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEzLTIwCiAgICAvLyBjb25zdCBhc3NldFBhcmFtcyA9IGl0eG4uYXNzZXRDb25maWcoewogICAgLy8gICB0b3RhbDogMTAwMCwKICAgIC8vICAgYXNzZXROYW1lOiB0aGlzLm5hbWUudmFsdWUsCiAgICAvLyAgIHVuaXROYW1lOiAndW5pdCcsCiAgICAvLyAgIGRlY2ltYWxzOiAzLAogICAgLy8gICBtYW5hZ2VyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgcmVzZXJ2ZTogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyB9KQogICAgaW50Y18zIC8vIDMKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDFfbmV4dF90eG5AMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MjMKICAgIC8vIGNvbnN0IGFzc2V0MV90eG4gPSBhc3NldFBhcmFtcy5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIGl0eG4gQ29uZmlnQXNzZXROYW1lCiAgICBmcmFtZV9idXJ5IDAKICAgIGl0eG4gQ3JlYXRlZEFzc2V0SUQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OAogICAgLy8gbmFtZSA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBCeXRlcygpIH0pCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMiAvLyAibmFtZSIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjI3CiAgICAvLyBjb25zdCBhc3NldDJfdHhuID0gYXNzZXRQYXJhbXMuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIGZyYW1lX2RpZyAyCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0UmVzZXJ2ZQogICAgZnJhbWVfZGlnIDEKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRNYW5hZ2VyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE3CiAgICAvLyBkZWNpbWFsczogMywKICAgIGludGNfMyAvLyAzCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0RGVjaW1hbHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTYKICAgIC8vIHVuaXROYW1lOiAndW5pdCcsCiAgICBieXRlYyA0IC8vICJ1bml0IgogICAgaXR4bl9maWVsZCBDb25maWdBc3NldFVuaXROYW1lCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TmFtZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNAogICAgLy8gdG90YWw6IDEwMDAsCiAgICBpbnRjIDQgLy8gMTAwMAogICAgaXR4bl9maWVsZCBDb25maWdBc3NldFRvdGFsCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEzLTIwCiAgICAvLyBjb25zdCBhc3NldFBhcmFtcyA9IGl0eG4uYXNzZXRDb25maWcoewogICAgLy8gICB0b3RhbDogMTAwMCwKICAgIC8vICAgYXNzZXROYW1lOiB0aGlzLm5hbWUudmFsdWUsCiAgICAvLyAgIHVuaXROYW1lOiAndW5pdCcsCiAgICAvLyAgIGRlY2ltYWxzOiAzLAogICAgLy8gICBtYW5hZ2VyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgcmVzZXJ2ZTogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyB9KQogICAgaW50Y18zIC8vIDMKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDFfbmV4dF90eG5AMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MjcKICAgIC8vIGNvbnN0IGFzc2V0Ml90eG4gPSBhc3NldFBhcmFtcy5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIGl0eG4gQ29uZmlnQXNzZXROYW1lCiAgICBpdHhuIENyZWF0ZWRBc3NldElECiAgICBzd2FwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjI5CiAgICAvLyBhc3NlcnQoYXNzZXQxX3R4bi5hc3NldE5hbWUgPT09IEJ5dGVzKCdBU1QxJyksICdhc3NldDFfdHhuIGlzIGNvcnJlY3QnKQogICAgZnJhbWVfZGlnIDAKICAgIGJ5dGVjIDYgLy8gIkFTVDEiCiAgICA9PQogICAgYXNzZXJ0IC8vIGFzc2V0MV90eG4gaXMgY29ycmVjdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czozMAogICAgLy8gYXNzZXJ0KGFzc2V0Ml90eG4uYXNzZXROYW1lID09PSBCeXRlcygnQVNUMicpLCAnYXNzZXQyX3R4biBpcyBjb3JyZWN0JykKICAgIGJ5dGVjIDcgLy8gIkFTVDIiCiAgICA9PQogICAgYXNzZXJ0IC8vIGFzc2V0Ml90eG4gaXMgY29ycmVjdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czozMQogICAgLy8gYXNzZXJ0KGFzc2V0MV90eG4uY3JlYXRlZEFzc2V0Lm5hbWUgPT09IEJ5dGVzKCdBU1QxJyksICdjcmVhdGVkIGFzc2V0IDEgaXMgY29ycmVjdCcpCiAgICBzd2FwCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0TmFtZQogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgYnl0ZWMgNiAvLyAiQVNUMSIKICAgID09CiAgICBhc3NlcnQgLy8gY3JlYXRlZCBhc3NldCAxIGlzIGNvcnJlY3QKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MzIKICAgIC8vIGFzc2VydChhc3NldDJfdHhuLmNyZWF0ZWRBc3NldC5uYW1lID09PSBCeXRlcygnQVNUMicpLCAnY3JlYXRlZCBhc3NldCAyIGlzIGNvcnJlY3QnKQogICAgYXNzZXRfcGFyYW1zX2dldCBBc3NldE5hbWUKICAgIGFzc2VydCAvLyBhc3NldCBleGlzdHMKICAgIGJ5dGVjIDcgLy8gIkFTVDIiCiAgICA9PQogICAgYXNzZXJ0IC8vIGNyZWF0ZWQgYXNzZXQgMiBpcyBjb3JyZWN0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQ0CiAgICAvLyBjb25zdCBbYXBwQ3JlYXRlVHhuLCBhc3NldDNfdHhuXSA9IGl0eG4uc3VibWl0R3JvdXAoYXBwQ3JlYXRlUGFyYW1zLCBhc3NldFBhcmFtcykKICAgIGl0eG5fYmVnaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MzQtMzgKICAgIC8vIGNvbnN0IGFwcENyZWF0ZVBhcmFtcyA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgZmVlOiAwLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjM3CiAgICAvLyBmZWU6IDAsCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QxX25leHRfdHhuQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQ0CiAgICAvLyBjb25zdCBbYXBwQ3JlYXRlVHhuLCBhc3NldDNfdHhuXSA9IGl0eG4uc3VibWl0R3JvdXAoYXBwQ3JlYXRlUGFyYW1zLCBhc3NldFBhcmFtcykKICAgIGl0eG5fbmV4dAogICAgZnJhbWVfZGlnIDIKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRSZXNlcnZlCiAgICBmcmFtZV9kaWcgMQogICAgaXR4bl9maWVsZCBDb25maWdBc3NldE1hbmFnZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTcKICAgIC8vIGRlY2ltYWxzOiAzLAogICAgaW50Y18zIC8vIDMKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXREZWNpbWFscwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNgogICAgLy8gdW5pdE5hbWU6ICd1bml0JywKICAgIGJ5dGVjIDQgLy8gInVuaXQiCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VW5pdE5hbWUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NDEKICAgIC8vIGFzc2V0TmFtZTogJ0FTVDMnLAogICAgYnl0ZWMgOCAvLyAiQVNUMyIKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXROYW1lCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbDogMTAwMCwKICAgIGludGMgNCAvLyAxMDAwCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VG90YWwKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTMtMjAKICAgIC8vIGNvbnN0IGFzc2V0UGFyYW1zID0gaXR4bi5hc3NldENvbmZpZyh7CiAgICAvLyAgIHRvdGFsOiAxMDAwLAogICAgLy8gICBhc3NldE5hbWU6IHRoaXMubmFtZS52YWx1ZSwKICAgIC8vICAgdW5pdE5hbWU6ICd1bml0JywKICAgIC8vICAgZGVjaW1hbHM6IDMsCiAgICAvLyAgIG1hbmFnZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICByZXNlcnZlOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vIH0pCiAgICBpbnRjXzMgLy8gMwogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0MV9uZXh0X3R4bkA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0NAogICAgLy8gY29uc3QgW2FwcENyZWF0ZVR4biwgYXNzZXQzX3R4bl0gPSBpdHhuLnN1Ym1pdEdyb3VwKGFwcENyZWF0ZVBhcmFtcywgYXNzZXRQYXJhbXMpCiAgICBpdHhuX3N1Ym1pdAogICAgZ2l0eG4gMCBDcmVhdGVkQXBwbGljYXRpb25JRAogICAgaXR4biBDb25maWdBc3NldE5hbWUKICAgIHN3YXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NDYKICAgIC8vIGFzc2VydChhcHBDcmVhdGVUeG4uY3JlYXRlZEFwcCwgJ2FwcCBpcyBjcmVhdGVkJykKICAgIGFzc2VydCAvLyBhcHAgaXMgY3JlYXRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0NwogICAgLy8gYXNzZXJ0KGFzc2V0M190eG4uYXNzZXROYW1lID09PSBCeXRlcygnQVNUMycpLCAnYXNzZXQzX3R4biBpcyBjb3JyZWN0JykKICAgIGJ5dGVjIDggLy8gIkFTVDMiCiAgICA9PQogICAgYXNzZXJ0IC8vIGFzc2V0M190eG4gaXMgY29ycmVjdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1NQogICAgLy8gaXR4bi5zdWJtaXRHcm91cChhcHBDcmVhdGVQYXJhbXMsIGFzc2V0UGFyYW1zKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1MAogICAgLy8gbm90ZTogJzNyZCcsCiAgICBwdXNoaW50IDEgLy8gMQogICAgZHVwCiAgICA+PQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1NQogICAgLy8gaXR4bi5zdWJtaXRHcm91cChhcHBDcmVhdGVQYXJhbXMsIGFzc2V0UGFyYW1zKQogICAgYnogdGVzdDFfbmV4dF9maWVsZEA2Cgp0ZXN0MV9zZXRfTm90ZV8wX3RvXzBANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NTAKICAgIC8vIG5vdGU6ICczcmQnLAogICAgYnl0ZWMgMTIgLy8gIjNyZCIKICAgIGl0eG5fZmllbGQgTm90ZQoKdGVzdDFfbmV4dF9maWVsZEA2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czozNC0zOAogICAgLy8gY29uc3QgYXBwQ3JlYXRlUGFyYW1zID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBmZWU6IDAsCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MzcKICAgIC8vIGZlZTogMCwKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDFfbmV4dF90eG5ANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NTUKICAgIC8vIGl0eG4uc3VibWl0R3JvdXAoYXBwQ3JlYXRlUGFyYW1zLCBhc3NldFBhcmFtcykKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1MwogICAgLy8gbm90ZTogJzNyZCcsCiAgICBwdXNoaW50IDEgLy8gMQogICAgZHVwCiAgICA+PQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1NQogICAgLy8gaXR4bi5zdWJtaXRHcm91cChhcHBDcmVhdGVQYXJhbXMsIGFzc2V0UGFyYW1zKQogICAgYnogdGVzdDFfbmV4dF9maWVsZEA5Cgp0ZXN0MV9zZXRfTm90ZV8wX3RvXzBAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NTMKICAgIC8vIG5vdGU6ICczcmQnLAogICAgYnl0ZWMgMTIgLy8gIjNyZCIKICAgIGl0eG5fZmllbGQgTm90ZQoKdGVzdDFfbmV4dF9maWVsZEA5OgogICAgZnJhbWVfZGlnIDIKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRSZXNlcnZlCiAgICBmcmFtZV9kaWcgMQogICAgaXR4bl9maWVsZCBDb25maWdBc3NldE1hbmFnZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTcKICAgIC8vIGRlY2ltYWxzOiAzLAogICAgaW50Y18zIC8vIDMKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXREZWNpbWFscwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNgogICAgLy8gdW5pdE5hbWU6ICd1bml0JywKICAgIGJ5dGVjIDQgLy8gInVuaXQiCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VW5pdE5hbWUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NDEKICAgIC8vIGFzc2V0TmFtZTogJ0FTVDMnLAogICAgYnl0ZWMgOCAvLyAiQVNUMyIKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXROYW1lCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbDogMTAwMCwKICAgIGludGMgNCAvLyAxMDAwCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VG90YWwKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTMtMjAKICAgIC8vIGNvbnN0IGFzc2V0UGFyYW1zID0gaXR4bi5hc3NldENvbmZpZyh7CiAgICAvLyAgIHRvdGFsOiAxMDAwLAogICAgLy8gICBhc3NldE5hbWU6IHRoaXMubmFtZS52YWx1ZSwKICAgIC8vICAgdW5pdE5hbWU6ICd1bml0JywKICAgIC8vICAgZGVjaW1hbHM6IDMsCiAgICAvLyAgIG1hbmFnZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICByZXNlcnZlOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vIH0pCiAgICBpbnRjXzMgLy8gMwogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0MV9uZXh0X3R4bkAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NTUKICAgIC8vIGl0eG4uc3VibWl0R3JvdXAoYXBwQ3JlYXRlUGFyYW1zLCBhc3NldFBhcmFtcykKICAgIGl0eG5fc3VibWl0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjpJdHhuRGVtb0NvbnRyYWN0LnRlc3QyKCkgLT4gdm9pZDoKdGVzdDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjU4CiAgICAvLyBwdWJsaWMgdGVzdDIoKSB7CiAgICBwcm90byAwIDAKICAgIGludGNfMCAvLyAwCiAgICBkdXBuIDIKICAgIHB1c2hieXRlcyAiIgogICAgZHVwCgp0ZXN0Ml9ibG9ja0AwOgogICAgaW50Y18wIC8vIDAKICAgIHB1c2hieXRlcyAiIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo2MAogICAgLy8gaWYgKFR4bi5udW1BcHBBcmdzKSB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgYnogdGVzdDJfZWxzZV9ib2R5QDIKCnRlc3QyX2lmX2JvZHlAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NjEKICAgIC8vIGNvbnN0IGFyZ3MgPSBbQnl0ZXMoJzEnKSwgQnl0ZXMoJzInKV0gYXMgY29uc3QKICAgIGJ5dGVjXzMgLy8gIjEiCiAgICBmcmFtZV9idXJ5IDAKICAgIGJ5dGVjIDUgLy8gIjIiCiAgICBmcmFtZV9idXJ5IDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NjUKICAgIC8vIGFwcEFyZ3M6IGFyZ3MsCiAgICBwdXNoaW50IDIgLy8gMgogICAgZnJhbWVfYnVyeSAzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjY2CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uTm9PcCwKICAgIGludGNfMCAvLyAwCiAgICBmcmFtZV9idXJ5IDYKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBmcmFtZV9idXJ5IDQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NjcKICAgIC8vIG5vdGU6ICd3aXRoIGFyZ3MgcGFyYW0gc2V0JywKICAgIGJ5dGVjIDEzIC8vICJ3aXRoIGFyZ3MgcGFyYW0gc2V0IgoKdGVzdDJfYWZ0ZXJfaWZfZWxzZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo3NwogICAgLy8gY29uc3QgY3JlYXRlQXBwVHhuID0gY3JlYXRlQXBwUGFyYW1zLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICBpdHhuX2ZpZWxkIE5vdGUKICAgIGZyYW1lX2RpZyA0CiAgICBwdXNoaW50IDEgLy8gMQogICAgPj0KICAgIGJ6IHRlc3QyX25leHRfZmllbGRANQoKdGVzdDJfc2V0X09uQ29tcGxldGlvbl8wX3RvXzBANDoKICAgIGZyYW1lX2RpZyA2CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoKdGVzdDJfbmV4dF9maWVsZEA1OgogICAgZnJhbWVfZGlnIDAKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBmcmFtZV9kaWcgMQogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIGZyYW1lX2RpZyAzCiAgICBpbnRjXzMgLy8gMwogICAgPj0KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NzcKICAgIC8vIGNvbnN0IGNyZWF0ZUFwcFR4biA9IGNyZWF0ZUFwcFBhcmFtcy5zdWJtaXQoKQogICAgYnogdGVzdDJfbmV4dF9maWVsZEA3Cgp0ZXN0Ml9zZXRfQXBwbGljYXRpb25BcmdzXzJfdG9fMkA2OgogICAgZnJhbWVfZGlnIDUKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgp0ZXN0Ml9uZXh0X2ZpZWxkQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IEFQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTgxMDEnKQogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjYyLTY4CiAgICAvLyBjcmVhdGVBcHBQYXJhbXMgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIGFwcEFyZ3M6IGFyZ3MsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5Ob09wLAogICAgLy8gICBub3RlOiAnd2l0aCBhcmdzIHBhcmFtIHNldCcsCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDJfbmV4dF90eG5AODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NzcKICAgIC8vIGNvbnN0IGNyZWF0ZUFwcFR4biA9IGNyZWF0ZUFwcFBhcmFtcy5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIGl0eG4gTm90ZQogICAgZnJhbWVfYnVyeSAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjc4CiAgICAvLyBhc3NlcnQoY3JlYXRlQXBwVHhuLmFwcEFyZ3MoMCkgPT09IEJ5dGVzKCcxJyksICdjb3JyZWN0IGFyZ3MgdXNlZCAxJykKICAgIGludGNfMCAvLyAwCiAgICBpdHhuYXMgQXBwbGljYXRpb25BcmdzCiAgICBieXRlY18zIC8vICIxIgogICAgPT0KICAgIGFzc2VydCAvLyBjb3JyZWN0IGFyZ3MgdXNlZCAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjc5CiAgICAvLyBhc3NlcnQoY3JlYXRlQXBwVHhuLmFwcEFyZ3MoMSkgPT09IEJ5dGVzKCcyJyksICdjb3JyZWN0IGFyZ3MgdXNlZCAyJykKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBpdHhuYXMgQXBwbGljYXRpb25BcmdzCiAgICBieXRlYyA1IC8vICIyIgogICAgPT0KICAgIGFzc2VydCAvLyBjb3JyZWN0IGFyZ3MgdXNlZCAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjgxCiAgICAvLyBpZiAoVHhuLm51bUFwcEFyZ3MgPiAxKSB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgcHVzaGludCAxIC8vIDEKICAgID4KICAgIGJ6IHRlc3QyX2FmdGVyX2lmX2Vsc2VAMTEKCnRlc3QyX2lmX2JvZHlAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6ODItODkKICAgIC8vIGNvbnN0IGNyZWF0ZUFwcFR4bjIgPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcHJvdmFsUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgICBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgICAgYXBwQXJnczogW0J5dGVzKCc0MicpXSwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjg3CiAgICAvLyBhcHBBcmdzOiBbQnl0ZXMoJzQyJyldLAogICAgYnl0ZWMgMTQgLy8gIjQyIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6ODYKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMiAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo4Mi04OAogICAgLy8gY29uc3QgY3JlYXRlQXBwVHhuMiA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgICBhcHBBcmdzOiBbQnl0ZXMoJzQyJyldLAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDJfbmV4dF90eG5AMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjgyLTg5CiAgICAvLyBjb25zdCBjcmVhdGVBcHBUeG4yID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHByb3ZhbFByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICAgIGFwcEFyZ3M6IFtCeXRlcygnNDInKV0sCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTAKICAgIC8vIGFzc2VydChjcmVhdGVBcHBUeG4yLmFwcEFyZ3MoMCkgPT09IEJ5dGVzKCc0MicpLCAnY29ycmVjdCBhcmdzIHVzZWQgMicpCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bmFzIEFwcGxpY2F0aW9uQXJncwogICAgYnl0ZWMgMTQgLy8gIjQyIgogICAgPT0KICAgIGFzc2VydCAvLyBjb3JyZWN0IGFyZ3MgdXNlZCAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjkxCiAgICAvLyBhc3NlcnQoY3JlYXRlQXBwVHhuLm5vdGUgPT09IEJ5dGVzKCd3aXRoIGFyZ3MgcGFyYW0gc2V0JykpCiAgICBmcmFtZV9kaWcgMgogICAgYnl0ZWMgMTMgLy8gIndpdGggYXJncyBwYXJhbSBzZXQiCiAgICA9PQogICAgYXNzZXJ0Cgp0ZXN0Ml9hZnRlcl9pZl9lbHNlQDExOgogICAgcmV0c3ViCgp0ZXN0Ml9lbHNlX2JvZHlAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NzMKICAgIC8vIGFwcEFyZ3M6IFtCeXRlcygnMycpLCAnNCcsIEJ5dGVzKCc1JyldLAogICAgYnl0ZWMgOSAvLyAiMyIKICAgIGZyYW1lX2J1cnkgMAogICAgYnl0ZWMgMTAgLy8gIjQiCiAgICBmcmFtZV9idXJ5IDEKICAgIGJ5dGVjIDExIC8vICI1IgogICAgZnJhbWVfYnVyeSA1CiAgICBpbnRjXzMgLy8gMwogICAgZnJhbWVfYnVyeSAzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjc0CiAgICAvLyBub3RlOiAnbm8gYXJncyBwYXJhbSBzZXQnLAogICAgcHVzaGJ5dGVzICJubyBhcmdzIHBhcmFtIHNldCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NzAKICAgIC8vIGNyZWF0ZUFwcFBhcmFtcyA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIGludGNfMCAvLyAwCiAgICBmcmFtZV9idXJ5IDQKICAgIGIgdGVzdDJfYWZ0ZXJfaWZfZWxzZUAzCgoKLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo6SXR4bkRlbW9Db250cmFjdC50ZXN0MygpIC0+IHZvaWQ6CnRlc3QzOgoKdGVzdDNfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTM0LTE1MQogICAgLy8gY29uc3QgW2FwcDEsIGFwcDIsIGFwcDMsIGFwcDQsIGFwcDUsIGFwcDYsIGFwcDcsIGFwcDgsIGFwcDksIGFwcDEwLCBhcHAxMSwgYXBwMTIsIGFwcDEzLCBhcHAxNCwgYXBwMTUsIGFwcDE2XSA9IGl0eG4uc3VibWl0R3JvdXAoCiAgICAvLyAgIGFwcFR4bjEsCiAgICAvLyAgIGFwcFR4bjIsCiAgICAvLyAgIGFwcFR4bjMsCiAgICAvLyAgIGFwcFR4bjQsCiAgICAvLyAgIGFwcFR4bjUsCiAgICAvLyAgIGFwcFR4bjYsCiAgICAvLyAgIGFwcFR4bjcsCiAgICAvLyAgIGFwcFR4bjgsCiAgICAvLyAgIGFwcFR4bjksCiAgICAvLyAgIGFwcFR4bjEwLAogICAgLy8gICBhcHBUeG4xMSwKICAgIC8vICAgYXBwVHhuMTIsCiAgICAvLyAgIGFwcFR4bjEzLAogICAgLy8gICBhcHBUeG4xNCwKICAgIC8vICAgYXBwVHhuMTUsCiAgICAvLyAgIGFwcFR4bjE2LAogICAgLy8gKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMDAKICAgIC8vIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIGJ5dGVjXzMgLy8gIjEiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IEFQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTgxMDEnKQogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQKICAgIC8vIGNvbnN0IExPR18xU1RfQVJHX0FORF9BUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDkzNjFBMDBCMDgxMDEnKQogICAgYnl0ZWNfMSAvLyAweDA5MzYxYTAwYjA4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEzNgogICAgLy8gYXBwVHhuMiwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMDQKICAgIC8vIGFwcFR4bjIuc2V0KHsgYXBwQXJnczogW0J5dGVzKCcyJyldIH0pCiAgICBieXRlYyA1IC8vICIyIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTkKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMiAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5Ni0xMDEKICAgIC8vIGNvbnN0IGFwcFR4bjEgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0M19uZXh0X3R4bkAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMzcKICAgIC8vIGFwcFR4bjMsCiAgICBpdHhuX25leHQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NAogICAgLy8gY29uc3QgTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTM2MUEwMEIwODEwMScpCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTA2CiAgICAvLyBhcHBUeG4zLnNldCh7IGFwcEFyZ3M6IFtCeXRlcygnMycpXSB9KQogICAgYnl0ZWMgOSAvLyAiMyIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk5CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzIgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTYtMTAxCiAgICAvLyBjb25zdCBhcHBUeG4xID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IExPR18xU1RfQVJHX0FORF9BUFBST1ZFLAogICAgLy8gICBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICBhcHBBcmdzOiBbQnl0ZXMoJzEnKV0sCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDNfbmV4dF90eG5AMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTM4CiAgICAvLyBhcHBUeG40LAogICAgaXR4bl9uZXh0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IEFQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTgxMDEnKQogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQKICAgIC8vIGNvbnN0IExPR18xU1RfQVJHX0FORF9BUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDkzNjFBMDBCMDgxMDEnKQogICAgYnl0ZWNfMSAvLyAweDA5MzYxYTAwYjA4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEwOAogICAgLy8gYXBwVHhuNC5zZXQoeyBhcHBBcmdzOiBbQnl0ZXMoJzQnKV0gfSkKICAgIGJ5dGVjIDEwIC8vICI0IgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTkKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMiAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5Ni0xMDEKICAgIC8vIGNvbnN0IGFwcFR4bjEgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0M19uZXh0X3R4bkA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMzkKICAgIC8vIGFwcFR4bjUsCiAgICBpdHhuX25leHQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NAogICAgLy8gY29uc3QgTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTM2MUEwMEIwODEwMScpCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTEwCiAgICAvLyBhcHBUeG41LnNldCh7IGFwcEFyZ3M6IFtCeXRlcygnNScpXSB9KQogICAgYnl0ZWMgMTEgLy8gIjUiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0MAogICAgLy8gYXBwVHhuNiwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTIKICAgIC8vIGFwcFR4bjYuc2V0KHsgYXBwQXJnczogW0J5dGVzKCc2JyldIH0pCiAgICBwdXNoYnl0ZXMgIjYiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0MQogICAgLy8gYXBwVHhuNywKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTQKICAgIC8vIGFwcFR4bjcuc2V0KHsgYXBwQXJnczogW0J5dGVzKCc3JyldIH0pCiAgICBwdXNoYnl0ZXMgIjciCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0MgogICAgLy8gYXBwVHhuOCwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTYKICAgIC8vIGFwcFR4bjguc2V0KHsgYXBwQXJnczogW0J5dGVzKCc4JyldIH0pCiAgICBwdXNoYnl0ZXMgIjgiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0MwogICAgLy8gYXBwVHhuOSwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMTgKICAgIC8vIGFwcFR4bjkuc2V0KHsgYXBwQXJnczogW0J5dGVzKCc5JyldIH0pCiAgICBwdXNoYnl0ZXMgIjkiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0NAogICAgLy8gYXBwVHhuMTAsCiAgICBpdHhuX25leHQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NAogICAgLy8gY29uc3QgTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTM2MUEwMEIwODEwMScpCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTIwCiAgICAvLyBhcHBUeG4xMC5zZXQoeyBhcHBBcmdzOiBbQnl0ZXMoJzEwJyldIH0pCiAgICBieXRlYyAxNSAvLyAiMTAiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNDUKICAgIC8vIGFwcFR4bjExLAogICAgaXR4bl9uZXh0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IEFQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTgxMDEnKQogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQKICAgIC8vIGNvbnN0IExPR18xU1RfQVJHX0FORF9BUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDkzNjFBMDBCMDgxMDEnKQogICAgYnl0ZWNfMSAvLyAweDA5MzYxYTAwYjA4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEyMgogICAgLy8gYXBwVHhuMTEuc2V0KHsgYXBwQXJnczogW0J5dGVzKCcxMScpXSB9KQogICAgYnl0ZWMgMTYgLy8gIjExIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTkKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMiAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5Ni0xMDEKICAgIC8vIGNvbnN0IGFwcFR4bjEgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0M19uZXh0X3R4bkAxMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTQ2CiAgICAvLyBhcHBUeG4xMiwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMjQKICAgIC8vIGFwcFR4bjEyLnNldCh7IGFwcEFyZ3M6IFtCeXRlcygnMTInKV0gfSkKICAgIGJ5dGVjIDE3IC8vICIxMiIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk5CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzIgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTYtMTAxCiAgICAvLyBjb25zdCBhcHBUeG4xID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IExPR18xU1RfQVJHX0FORF9BUFBST1ZFLAogICAgLy8gICBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICBhcHBBcmdzOiBbQnl0ZXMoJzEnKV0sCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDNfbmV4dF90eG5AMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE0NwogICAgLy8gYXBwVHhuMTMsCiAgICBpdHhuX25leHQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NAogICAgLy8gY29uc3QgTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTM2MUEwMEIwODEwMScpCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTI2CiAgICAvLyBhcHBUeG4xMy5zZXQoeyBhcHBBcmdzOiBbQnl0ZXMoJzEzJyldIH0pCiAgICBieXRlYyAxOCAvLyAiMTMiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDEzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNDgKICAgIC8vIGFwcFR4bjE0LAogICAgaXR4bl9uZXh0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IEFQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTgxMDEnKQogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjQKICAgIC8vIGNvbnN0IExPR18xU1RfQVJHX0FORF9BUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDkzNjFBMDBCMDgxMDEnKQogICAgYnl0ZWNfMSAvLyAweDA5MzYxYTAwYjA4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjEyOAogICAgLy8gYXBwVHhuMTQuc2V0KHsgYXBwQXJnczogW0J5dGVzKCcxNCcpXSB9KQogICAgYnl0ZWMgMTkgLy8gIjE0IgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTkKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMiAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5Ni0xMDEKICAgIC8vIGNvbnN0IGFwcFR4bjEgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUsCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIC8vIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0M19uZXh0X3R4bkAxNDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTQ5CiAgICAvLyBhcHBUeG4xNSwKICAgIGl0eG5fbmV4dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo1CiAgICAvLyBjb25zdCBBUFBST1ZFID0gQnl0ZXMuZnJvbUhleCgnMDk4MTAxJykKICAgIGJ5dGVjXzAgLy8gMHgwOTgxMDEKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo0CiAgICAvLyBjb25zdCBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5MzYxQTAwQjA4MTAxJykKICAgIGJ5dGVjXzEgLy8gMHgwOTM2MWEwMGIwODEwMQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMzAKICAgIC8vIGFwcFR4bjE1LnNldCh7IGFwcEFyZ3M6IFtCeXRlcygnMTUnKV0gfSkKICAgIGJ5dGVjIDIwIC8vICIxNSIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk5CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzIgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OTYtMTAxCiAgICAvLyBjb25zdCBhcHBUeG4xID0gaXR4bi5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICBhcHByb3ZhbFByb2dyYW06IExPR18xU1RfQVJHX0FORF9BUFBST1ZFLAogICAgLy8gICBjbGVhclN0YXRlUHJvZ3JhbTogQVBQUk9WRSwKICAgIC8vICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICBhcHBBcmdzOiBbQnl0ZXMoJzEnKV0sCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDNfbmV4dF90eG5AMTU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE1MAogICAgLy8gYXBwVHhuMTYsCiAgICBpdHhuX25leHQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NAogICAgLy8gY29uc3QgTE9HXzFTVF9BUkdfQU5EX0FQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTM2MUEwMEIwODEwMScpCiAgICBieXRlY18xIC8vIDB4MDkzNjFhMDBiMDgxMDEKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTMyCiAgICAvLyBhcHBUeG4xNi5zZXQoeyBhcHBBcmdzOiBbQnl0ZXMoJzE2JyldIH0pCiAgICBieXRlYyAyMSAvLyAiMTYiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo5OQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjk2LTEwMQogICAgLy8gY29uc3QgYXBwVHhuMSA9IGl0eG4uYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgYXBwcm92YWxQcm9ncmFtOiBMT0dfMVNUX0FSR19BTkRfQVBQUk9WRSwKICAgIC8vICAgY2xlYXJTdGF0ZVByb2dyYW06IEFQUFJPVkUsCiAgICAvLyAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgLy8gfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3QzX25leHRfdHhuQDE2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxMzQtMTUxCiAgICAvLyBjb25zdCBbYXBwMSwgYXBwMiwgYXBwMywgYXBwNCwgYXBwNSwgYXBwNiwgYXBwNywgYXBwOCwgYXBwOSwgYXBwMTAsIGFwcDExLCBhcHAxMiwgYXBwMTMsIGFwcDE0LCBhcHAxNSwgYXBwMTZdID0gaXR4bi5zdWJtaXRHcm91cCgKICAgIC8vICAgYXBwVHhuMSwKICAgIC8vICAgYXBwVHhuMiwKICAgIC8vICAgYXBwVHhuMywKICAgIC8vICAgYXBwVHhuNCwKICAgIC8vICAgYXBwVHhuNSwKICAgIC8vICAgYXBwVHhuNiwKICAgIC8vICAgYXBwVHhuNywKICAgIC8vICAgYXBwVHhuOCwKICAgIC8vICAgYXBwVHhuOSwKICAgIC8vICAgYXBwVHhuMTAsCiAgICAvLyAgIGFwcFR4bjExLAogICAgLy8gICBhcHBUeG4xMiwKICAgIC8vICAgYXBwVHhuMTMsCiAgICAvLyAgIGFwcFR4bjE0LAogICAgLy8gICBhcHBUeG4xNSwKICAgIC8vICAgYXBwVHhuMTYsCiAgICAvLyApCiAgICBpdHhuX3N1Ym1pdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNTMKICAgIC8vIGFzc2VydChhcHAxLmxvZ3MoMCkgPT09IEJ5dGVzKCcxJykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyAwIExvZ3MKICAgIGJ5dGVjXzMgLy8gIjEiCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE1NAogICAgLy8gYXNzZXJ0KGFwcDIubG9ncygwKSA9PT0gQnl0ZXMoJzInKSkKICAgIGludGNfMCAvLyAwCiAgICBnaXR4bmFzIDEgTG9ncwogICAgYnl0ZWMgNSAvLyAiMiIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTU1CiAgICAvLyBhc3NlcnQoYXBwMy5sb2dzKDApID09PSBCeXRlcygnMycpKQogICAgaW50Y18wIC8vIDAKICAgIGdpdHhuYXMgMiBMb2dzCiAgICBieXRlYyA5IC8vICIzIgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNTYKICAgIC8vIGFzc2VydChhcHA0LmxvZ3MoMCkgPT09IEJ5dGVzKCc0JykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyAzIExvZ3MKICAgIGJ5dGVjIDEwIC8vICI0IgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNTcKICAgIC8vIGFzc2VydChhcHA1LmxvZ3MoMCkgPT09IEJ5dGVzKCc1JykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyA0IExvZ3MKICAgIGJ5dGVjIDExIC8vICI1IgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNTgKICAgIC8vIGFzc2VydChhcHA2LmxvZ3MoMCkgPT09IEJ5dGVzKCc2JykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyA1IExvZ3MKICAgIHB1c2hieXRlcyAiNiIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTU5CiAgICAvLyBhc3NlcnQoYXBwNy5sb2dzKDApID09PSBCeXRlcygnNycpKQogICAgaW50Y18wIC8vIDAKICAgIGdpdHhuYXMgNiBMb2dzCiAgICBwdXNoYnl0ZXMgIjciCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE2MAogICAgLy8gYXNzZXJ0KGFwcDgubG9ncygwKSA9PT0gQnl0ZXMoJzgnKSkKICAgIGludGNfMCAvLyAwCiAgICBnaXR4bmFzIDcgTG9ncwogICAgcHVzaGJ5dGVzICI4IgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNjEKICAgIC8vIGFzc2VydChhcHA5LmxvZ3MoMCkgPT09IEJ5dGVzKCc5JykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyA4IExvZ3MKICAgIHB1c2hieXRlcyAiOSIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTYyCiAgICAvLyBhc3NlcnQoYXBwMTAubG9ncygwKSA9PT0gQnl0ZXMoJzEwJykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyA5IExvZ3MKICAgIGJ5dGVjIDE1IC8vICIxMCIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTYzCiAgICAvLyBhc3NlcnQoYXBwMTEubG9ncygwKSA9PT0gQnl0ZXMoJzExJykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyAxMCBMb2dzCiAgICBieXRlYyAxNiAvLyAiMTEiCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE2NAogICAgLy8gYXNzZXJ0KGFwcDEyLmxvZ3MoMCkgPT09IEJ5dGVzKCcxMicpKQogICAgaW50Y18wIC8vIDAKICAgIGdpdHhuYXMgMTEgTG9ncwogICAgYnl0ZWMgMTcgLy8gIjEyIgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNjUKICAgIC8vIGFzc2VydChhcHAxMy5sb2dzKDApID09PSBCeXRlcygnMTMnKSkKICAgIGludGNfMCAvLyAwCiAgICBnaXR4bmFzIDEyIExvZ3MKICAgIGJ5dGVjIDE4IC8vICIxMyIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTY2CiAgICAvLyBhc3NlcnQoYXBwMTQubG9ncygwKSA9PT0gQnl0ZXMoJzE0JykpCiAgICBpbnRjXzAgLy8gMAogICAgZ2l0eG5hcyAxMyBMb2dzCiAgICBieXRlYyAxOSAvLyAiMTQiCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE2NwogICAgLy8gYXNzZXJ0KGFwcDE1LmxvZ3MoMCkgPT09IEJ5dGVzKCcxNScpKQogICAgaW50Y18wIC8vIDAKICAgIGdpdHhuYXMgMTQgTG9ncwogICAgYnl0ZWMgMjAgLy8gIjE1IgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNjgKICAgIC8vIGFzc2VydChhcHAxNi5sb2dzKDApID09PSBCeXRlcygnMTYnKSkKICAgIGludGNfMCAvLyAwCiAgICBpdHhuYXMgTG9ncwogICAgYnl0ZWMgMjEgLy8gIjE2IgogICAgPT0KICAgIGFzc2VydAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo6SXR4bkRlbW9Db250cmFjdC50ZXN0NCgpIC0+IHZvaWQ6CnRlc3Q0OgoKdGVzdDRfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTcyCiAgICAvLyBjb25zdCBsb3RzT2ZCeXRlcyA9IG9wLmJ6ZXJvKDIwNDQpCiAgICBwdXNoaW50IDIwNDQgLy8gMjA0NAogICAgYnplcm8KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTc0CiAgICAvLyBjb25zdCBhcHByb3ZhbDIgPSBCeXRlcy5mcm9tSGV4KCc4MCcgKyAnRkMwZicpCiAgICBwdXNoYnl0ZXMgMHg4MGZjMGYKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTc0LTE3NQogICAgLy8gY29uc3QgYXBwcm92YWwyID0gQnl0ZXMuZnJvbUhleCgnODAnICsgJ0ZDMGYnKQogICAgLy8gICAuY29uY2F0KGxvdHNPZkJ5dGVzKQogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE3NgogICAgLy8gLmNvbmNhdChCeXRlcy5mcm9tSGV4KCc0OCcpKQogICAgcHVzaGJ5dGVzIDB4NDgKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTc0LTE3NgogICAgLy8gY29uc3QgYXBwcm92YWwyID0gQnl0ZXMuZnJvbUhleCgnODAnICsgJ0ZDMGYnKQogICAgLy8gICAuY29uY2F0KGxvdHNPZkJ5dGVzKQogICAgLy8gICAuY29uY2F0KEJ5dGVzLmZyb21IZXgoJzQ4JykpCiAgICBjb25jYXQKICAgIGR1cG4gMwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxNzkKICAgIC8vIGFwcHJvdmFsUHJvZ3JhbTogW2FwcHJvdmFsMSwgYXBwcm92YWwyLCBhcHByb3ZhbDIsIGFwcHJvdmFsMl0sCiAgICBjb3ZlciAyCiAgICBjb3ZlciAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE4NQogICAgLy8gY29uc3QgYXBwMSA9IGFwcFR4bjEuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTgzCiAgICAvLyBleHRyYVByb2dyYW1QYWdlczogMywKICAgIGludGNfMyAvLyAzCiAgICBpdHhuX2ZpZWxkIEV4dHJhUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE4MgogICAgLy8gYXBwQXJnczogW0J5dGVzKCcxJyldLAogICAgYnl0ZWNfMyAvLyAiMSIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE4MQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18yIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IEFQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTgxMDEnKQogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE3OC0xODQKICAgIC8vIGNvbnN0IGFwcFR4bjEgPSBpdHhuLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgIGFwcHJvdmFsUHJvZ3JhbTogW2FwcHJvdmFsMSwgYXBwcm92YWwyLCBhcHByb3ZhbDIsIGFwcHJvdmFsMl0sCiAgICAvLyAgIGNsZWFyU3RhdGVQcm9ncmFtOiBBUFBST1ZFLAogICAgLy8gICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIGFwcEFyZ3M6IFtCeXRlcygnMScpXSwKICAgIC8vICAgZXh0cmFQcm9ncmFtUGFnZXM6IDMsCiAgICAvLyB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdDRfbmV4dF90eG5AMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6MTg1CiAgICAvLyBjb25zdCBhcHAxID0gYXBwVHhuMS5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIGl0eG4gRXh0cmFQcm9ncmFtUGFnZXMKICAgIGl0eG4gTnVtQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIHN3YXAKICAgIGl0eG4gTnVtQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgY292ZXIgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxODYKICAgIC8vIGFzc2VydChhcHAxLmV4dHJhUHJvZ3JhbVBhZ2VzID09PSAzLCAnZXh0cmEgcGFnZXMgPSAzJykKICAgIGludGNfMyAvLyAzCiAgICA9PQogICAgYXNzZXJ0IC8vIGV4dHJhIHBhZ2VzID0gMwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxODcKICAgIC8vIGFzc2VydChhcHAxLm51bUFwcHJvdmFsUHJvZ3JhbVBhZ2VzID09PSAyLCAnYXBwcm92YWwgcGFnZXMgPSAyJykKICAgIHB1c2hpbnQgMiAvLyAyCiAgICA9PQogICAgYXNzZXJ0IC8vIGFwcHJvdmFsIHBhZ2VzID0gMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxODgKICAgIC8vIGFzc2VydChhcHAxLmFwcHJvdmFsUHJvZ3JhbVBhZ2VzKDApID09PSBhcHByb3ZhbDEuY29uY2F0KGFwcHJvdmFsMikuY29uY2F0KGFwcHJvdmFsMi5zbGljZSgwLCAtMykpLCAnZXhwZWN0ZWQgYXBwcm92YWwgcGFnZSAwJykKICAgIGludGNfMCAvLyAwCiAgICBpdHhuYXMgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6NQogICAgLy8gY29uc3QgQVBQUk9WRSA9IEJ5dGVzLmZyb21IZXgoJzA5ODEwMScpCiAgICBieXRlY18wIC8vIDB4MDk4MTAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE4OAogICAgLy8gYXNzZXJ0KGFwcDEuYXBwcm92YWxQcm9ncmFtUGFnZXMoMCkgPT09IGFwcHJvdmFsMS5jb25jYXQoYXBwcm92YWwyKS5jb25jYXQoYXBwcm92YWwyLnNsaWNlKDAsIC0zKSksICdleHBlY3RlZCBhcHByb3ZhbCBwYWdlIDAnKQogICAgdW5jb3ZlciAzCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMCAvLyAwCiAgICBkaWcgMQogICAgPj0KICAgIGludGNfMCAvLyAwCiAgICBkaWcgMgogICAgdW5jb3ZlciAyCiAgICBzZWxlY3QKICAgIHN3YXAKICAgIGludGNfMyAvLyAzCiAgICBkaWcgMQogICAgPj0KICAgIGludGNfMyAvLyAzCiAgICBkaWcgMgogICAgdW5jb3ZlciAyCiAgICBzZWxlY3QKICAgIC0KICAgIGR1cAogICAgZGlnIDIKICAgIDwKICAgIHN3YXAKICAgIGRpZyAyCiAgICB1bmNvdmVyIDIKICAgIHNlbGVjdAogICAgZGlnIDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICB1bmNvdmVyIDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICA9PQogICAgYXNzZXJ0IC8vIGV4cGVjdGVkIGFwcHJvdmFsIHBhZ2UgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxODkKICAgIC8vIGFzc2VydChhcHAxLmFwcHJvdmFsUHJvZ3JhbVBhZ2VzKDEpID09PSBhcHByb3ZhbDIuc2xpY2UoLTMpLmNvbmNhdChhcHByb3ZhbDIpLCAnZXhwZWN0ZWQgYXBwcm92YWwgcGFnZSAxJykKICAgIHB1c2hpbnQgMSAvLyAxCiAgICBpdHhuYXMgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIHN3YXAKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gMwogICAgZGlnIDEKICAgID49CiAgICBpbnRjXzMgLy8gMwogICAgZGlnIDIKICAgIHVuY292ZXIgMgogICAgc2VsZWN0CiAgICBkaWcgMQogICAgc3dhcAogICAgLQogICAgZGlnIDIKICAgIHN3YXAKICAgIHVuY292ZXIgMgogICAgc3Vic3RyaW5nMwogICAgc3dhcAogICAgY29uY2F0CiAgICA9PQogICAgYXNzZXJ0IC8vIGV4cGVjdGVkIGFwcHJvdmFsIHBhZ2UgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxOTAKICAgIC8vIGFzc2VydChhcHAxLm51bUNsZWFyU3RhdGVQcm9ncmFtUGFnZXMgPT09IDEsICdjbGVhciBzdGF0ZSBwYWdlcyA9IDEnKQogICAgcHVzaGludCAxIC8vIDEKICAgID09CiAgICBhc3NlcnQgLy8gY2xlYXIgc3RhdGUgcGFnZXMgPSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjE5MQogICAgLy8gYXNzZXJ0KGFwcDEuY2xlYXJTdGF0ZVByb2dyYW1QYWdlcygwKSA9PT0gQVBQUk9WRSwgJ2V4cGVjdGVkIGNsZWFyIHN0YXRlIHBhZ2UnKQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5hcyBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvaXR4bi5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IEFQUFJPVkUgPSBCeXRlcy5mcm9tSGV4KCcwOTgxMDEnKQogICAgYnl0ZWNfMCAvLyAweDA5ODEwMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czoxOTEKICAgIC8vIGFzc2VydChhcHAxLmNsZWFyU3RhdGVQcm9ncmFtUGFnZXMoMCkgPT09IEFQUFJPVkUsICdleHBlY3RlZCBjbGVhciBzdGF0ZSBwYWdlJykKICAgID09CiAgICBhc3NlcnQgLy8gZXhwZWN0ZWQgY2xlYXIgc3RhdGUgcGFnZQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2l0eG4uYWxnby50czo6SXR4bkRlbW9Db250cmFjdC5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6Okl0eG5EZW1vQ29udHJhY3QuY29uc3RydWN0b3IoKSAtPiB2b2lkOgpjb25zdHJ1Y3RvcjoKCmNvbnN0cnVjdG9yX2Jsb2NrQDA6Cgpjb25zdHJ1Y3Rvcl9ibG9ja0AxOgoKY29uc3RydWN0b3JfYWZ0ZXJfaW5saW5lZF9AYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY29uc3RydWN0b3JAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9pdHhuLmFsZ28udHM6OAogICAgLy8gbmFtZSA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBCeXRlcygpIH0pCiAgICBieXRlY18yIC8vICJuYW1lIgogICAgcHVzaGJ5dGVzIDB4CiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiAFAAYFA+gHJhYDCYEBBwk2GgCwgQEEbmFtZQExBHVuaXQBMgRBU1QxBEFTVDIEQVNUMwEzATQBNQMzcmQTd2l0aCBhcmdzIHBhcmFtIHNldAI0MgIxMAIxMQIxMgIxMwIxNAIxNQIxNjEYQAADiASrMRsiE0EAcTYaAIAEICVPkYAE8ZCFJIAE35IPN4AEPUY0XE8EjgQAOAAmABQAAiJDMRkiEkQxGCITRIgDxYEBQv/tMRkiEkQxGCITRIgB7IEBQv/bMRkiEkQxGCITRIgBIYEBQv/JMRkiEkQxGCITRIgAHYEBQv+3MRkiTI4BAANC/6sxGCISRIgEH4EBQv+figAAIionBmciKmVEMgpJTgIyCklOAyonB2exsiqyKSWyIycEsiWyJiEEsiIlshAisgGztCaMALQ8IiplRLGLArIqiwGyKSWyIycEsiWyJiEEsiIlshAisgGztCa0PEyLACcGEkQnBxJETHEERCcGEkRxBEQnBxJEsSiyQiiyQCOyECKyAbaLArIqiwGyKSWyIycEsiUnCLImIQSyIiWyECKyAbO3AD20JkxEJwgSRLGBAUkPQQAEJwyyBSiyQiiyQCOyECKyAbaBAUkPQQAEJwyyBYsCsiqLAbIpJbIjJwSyJScIsiYhBLIiJbIQIrIBs4mKAAAiRwKAAEkigAAxG0EAgCuMACcFjAGBAowDIowGgQGMBCcNsbIFiwSBAQ9BAASLBrIZiwCyGosBshqLAyUPQQAEiwWyGiiyQiiyQCOyECKyAbO0BYwCIsUaKxJEgQHFGicFEkQxG4EBDUEAIrEnDrIaJLIZKLJCKLJAI7IQIrIBsyLFGicOEkSLAicNEkSJJwmMACcKjAEnC4wFJYwDgBFubyBhcmdzIHBhcmFtIHNldCKMBEL/bLErshokshkoskIpskAjshAisgG2KLJCKbJAJwWyGiSyGSOyECKyAbYoskIpskAnCbIaJLIZI7IQIrIBtiiyQimyQCcKshokshkjshAisgG2KLJCKbJAJwuyGiSyGSOyECKyAbYoskIpskCAATayGiSyGSOyECKyAbYoskIpskCAATeyGiSyGSOyECKyAbYoskIpskCAATiyGiSyGSOyECKyAbYoskIpskCAATmyGiSyGSOyECKyAbYoskIpskAnD7IaJLIZI7IQIrIBtiiyQimyQCcQshokshkjshAisgG2KLJCKbJAJxGyGiSyGSOyECKyAbYoskIpskAnErIaJLIZI7IQIrIBtiiyQimyQCcTshokshkjshAisgG2KLJCKbJAJxSyGiSyGSOyECKyAbYoskIpskAnFbIaJLIZI7IQIrIBsyLGADorEkQixgE6JwUSRCLGAjonCRJEIsYDOicKEkQixgQ6JwsSRCLGBTqAATYSRCLGBjqAATcSRCLGBzqAATgSRCLGCDqAATkSRCLGCTonDxJEIsYKOicQEkQixgs6JxESRCLGDDonEhJEIsYNOicTEkQixg46JxQSRCLFOicVEkSJgfwPr4ADgPwPTFCAAUhQRwNOAk4CsSWyOCuyGiSyGSiyQiiyQLJAskCyQCOyECKyAbO0OLRBTLRDTgIlEkSBAhJEIsVAKE8DSU4CUExJFSJLAQ8iSwJPAk1MJUsBDyVLAk8CTQlJSwIMTEsCTwJNSwJPAk8CUk8CTFBPAhJEgQHFQExJFSVLAQ8lSwJPAk1LAUwJSwJMTwJSTFASRIEBEkQixUIoEkSJiSqAAGeJ", @@ -253,7 +253,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/itxn/ItxnDemoContract.clear.teal b/tests/approvals/out/unoptimized/itxn/ItxnDemoContract.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/itxn/ItxnDemoContract.clear.teal +++ b/tests/approvals/out/unoptimized/itxn/ItxnDemoContract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/jsdoc/JSDocDemo.approval.teal b/tests/approvals/out/unoptimized/jsdoc/JSDocDemo.approval.teal index 16b7a7e3d..3a2e3eafa 100644 --- a/tests/approvals/out/unoptimized/jsdoc/JSDocDemo.approval.teal +++ b/tests/approvals/out/unoptimized/jsdoc/JSDocDemo.approval.teal @@ -6,6 +6,8 @@ main: intcblock 0 1 bytecblock 0x 0x151f7c75 +main_block@0: + main_block@1: // tests/approvals/jsdoc.algo.ts:20 // export class JSDocDemo extends Contract { @@ -131,6 +133,8 @@ test: // tests/approvals/jsdoc.algo.ts:30 // test(a: uint64, b: bytes): DemoStruct { proto 2 1 + +test_block@0: // tests/approvals/jsdoc.algo.ts:31 // return new DemoStruct({ a: new UintN<64>(a) }) frame_dig -2 @@ -146,6 +150,8 @@ test2: // tests/approvals/jsdoc.algo.ts:39 // test2(a: bytes): DemoType { proto 1 1 + +test2_block@0: // tests/approvals/jsdoc.algo.ts:40-42 // return { // a, @@ -156,4 +162,6 @@ test2: // tests/approvals/jsdoc.algo.ts::JSDocDemo.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/jsdoc/JSDocDemo.arc32.json b/tests/approvals/out/unoptimized/jsdoc/JSDocDemo.arc32.json index a60bd6ec1..8a40425d1 100644 --- a/tests/approvals/out/unoptimized/jsdoc/JSDocDemo.arc32.json +++ b/tests/approvals/out/unoptimized/jsdoc/JSDocDemo.arc32.json @@ -34,8 +34,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4IDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjIwCiAgICAvLyBleHBvcnQgY2xhc3MgSlNEb2NEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANwoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6MjAKICAgIC8vIGV4cG9ydCBjbGFzcyBKU0RvY0RlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg2MGQ5M2JlYiAvLyBtZXRob2QgInRlc3QodWludDY0LGJ5dGVbXSkodWludDY0KSIKICAgIHB1c2hieXRlcyAweDY2MTg3MjZhIC8vIG1ldGhvZCAidGVzdDIoYnl0ZVtdKShieXRlW10pIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX3Rlc3Rfcm91dGVAMyBtYWluX3Rlc3QyX3JvdXRlQDQKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDY6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvanNkb2MuYWxnby50czoyMAogICAgLy8gZXhwb3J0IGNsYXNzIEpTRG9jRGVtbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6OkpTRG9jRGVtby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMjoKICAgIHJldHVybgoKbWFpbl90ZXN0Ml9yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6MzkKICAgIC8vIHRlc3QyKGE6IGJ5dGVzKTogRGVtb1R5cGUgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6MjAKICAgIC8vIGV4cG9ydCBjbGFzcyBKU0RvY0RlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6MzkKICAgIC8vIHRlc3QyKGE6IGJ5dGVzKTogRGVtb1R5cGUgewogICAgY2FsbHN1YiB0ZXN0MgogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hpbnQgMiAvLyAyCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzEgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvanNkb2MuYWxnby50czo6SlNEb2NEZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX3Rlc3Rfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjMwCiAgICAvLyB0ZXN0KGE6IHVpbnQ2NCwgYjogYnl0ZXMpOiBEZW1vU3RydWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjIwCiAgICAvLyBleHBvcnQgY2xhc3MgSlNEb2NEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZXh0cmFjdCAyIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjMwCiAgICAvLyB0ZXN0KGE6IHVpbnQ2NCwgYjogYnl0ZXMpOiBEZW1vU3RydWN0IHsKICAgIGNhbGxzdWIgdGVzdAogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjpKU0RvY0RlbW8uX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCm1haW5fYmFyZV9yb3V0aW5nQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvanNkb2MuYWxnby50czoyMAogICAgLy8gZXhwb3J0IGNsYXNzIEpTRG9jRGVtbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAOToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDExCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6MjAKICAgIC8vIGV4cG9ydCBjbGFzcyBKU0RvY0RlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjpKU0RvY0RlbW8uX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvanNkb2MuYWxnby50czo6SlNEb2NEZW1vLnRlc3QoYTogdWludDY0LCBiOiBieXRlcykgLT4gYnl0ZXM6CnRlc3Q6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvanNkb2MuYWxnby50czozMAogICAgLy8gdGVzdChhOiB1aW50NjQsIGI6IGJ5dGVzKTogRGVtb1N0cnVjdCB7CiAgICBwcm90byAyIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjMxCiAgICAvLyByZXR1cm4gbmV3IERlbW9TdHJ1Y3QoeyBhOiBuZXcgVWludE48NjQ+KGEpIH0pCiAgICBmcmFtZV9kaWcgLTIKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6OkpTRG9jRGVtby50ZXN0MihhOiBieXRlcykgLT4gYnl0ZXM6CnRlc3QyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6MzkKICAgIC8vIHRlc3QyKGE6IGJ5dGVzKTogRGVtb1R5cGUgewogICAgcHJvdG8gMSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvanNkb2MuYWxnby50czo0MC00MgogICAgLy8gcmV0dXJuIHsKICAgIC8vICAgYSwKICAgIC8vIH0KICAgIGZyYW1lX2RpZyAtMQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6OkpTRG9jRGVtby5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4IDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMDoKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjIwCiAgICAvLyBleHBvcnQgY2xhc3MgSlNEb2NEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANwoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6MjAKICAgIC8vIGV4cG9ydCBjbGFzcyBKU0RvY0RlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg2MGQ5M2JlYiAvLyBtZXRob2QgInRlc3QodWludDY0LGJ5dGVbXSkodWludDY0KSIKICAgIHB1c2hieXRlcyAweDY2MTg3MjZhIC8vIG1ldGhvZCAidGVzdDIoYnl0ZVtdKShieXRlW10pIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX3Rlc3Rfcm91dGVAMyBtYWluX3Rlc3QyX3JvdXRlQDQKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDY6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvanNkb2MuYWxnby50czoyMAogICAgLy8gZXhwb3J0IGNsYXNzIEpTRG9jRGVtbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6OkpTRG9jRGVtby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMjoKICAgIHJldHVybgoKbWFpbl90ZXN0Ml9yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6MzkKICAgIC8vIHRlc3QyKGE6IGJ5dGVzKTogRGVtb1R5cGUgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6MjAKICAgIC8vIGV4cG9ydCBjbGFzcyBKU0RvY0RlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6MzkKICAgIC8vIHRlc3QyKGE6IGJ5dGVzKTogRGVtb1R5cGUgewogICAgY2FsbHN1YiB0ZXN0MgogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hpbnQgMiAvLyAyCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzEgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvanNkb2MuYWxnby50czo6SlNEb2NEZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX3Rlc3Rfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjMwCiAgICAvLyB0ZXN0KGE6IHVpbnQ2NCwgYjogYnl0ZXMpOiBEZW1vU3RydWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjIwCiAgICAvLyBleHBvcnQgY2xhc3MgSlNEb2NEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZXh0cmFjdCAyIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjMwCiAgICAvLyB0ZXN0KGE6IHVpbnQ2NCwgYjogYnl0ZXMpOiBEZW1vU3RydWN0IHsKICAgIGNhbGxzdWIgdGVzdAogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjpKU0RvY0RlbW8uX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCm1haW5fYmFyZV9yb3V0aW5nQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvanNkb2MuYWxnby50czoyMAogICAgLy8gZXhwb3J0IGNsYXNzIEpTRG9jRGVtbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAOToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDExCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6MjAKICAgIC8vIGV4cG9ydCBjbGFzcyBKU0RvY0RlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjpKU0RvY0RlbW8uX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvanNkb2MuYWxnby50czo6SlNEb2NEZW1vLnRlc3QoYTogdWludDY0LCBiOiBieXRlcykgLT4gYnl0ZXM6CnRlc3Q6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvanNkb2MuYWxnby50czozMAogICAgLy8gdGVzdChhOiB1aW50NjQsIGI6IGJ5dGVzKTogRGVtb1N0cnVjdCB7CiAgICBwcm90byAyIDEKCnRlc3RfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjMxCiAgICAvLyByZXR1cm4gbmV3IERlbW9TdHJ1Y3QoeyBhOiBuZXcgVWludE48NjQ+KGEpIH0pCiAgICBmcmFtZV9kaWcgLTIKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6OkpTRG9jRGVtby50ZXN0MihhOiBieXRlcykgLT4gYnl0ZXM6CnRlc3QyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6MzkKICAgIC8vIHRlc3QyKGE6IGJ5dGVzKTogRGVtb1R5cGUgewogICAgcHJvdG8gMSAxCgp0ZXN0Ml9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6NDAtNDIKICAgIC8vIHJldHVybiB7CiAgICAvLyAgIGEsCiAgICAvLyB9CiAgICBmcmFtZV9kaWcgLTEKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjpKU0RvY0RlbW8uX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/jsdoc/JSDocDemo.arc56.json b/tests/approvals/out/unoptimized/jsdoc/JSDocDemo.arc56.json index 08563370c..8c594c460 100644 --- a/tests/approvals/out/unoptimized/jsdoc/JSDocDemo.arc56.json +++ b/tests/approvals/out/unoptimized/jsdoc/JSDocDemo.arc56.json @@ -149,8 +149,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4IDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjIwCiAgICAvLyBleHBvcnQgY2xhc3MgSlNEb2NEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANwoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6MjAKICAgIC8vIGV4cG9ydCBjbGFzcyBKU0RvY0RlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg2MGQ5M2JlYiAvLyBtZXRob2QgInRlc3QodWludDY0LGJ5dGVbXSkodWludDY0KSIKICAgIHB1c2hieXRlcyAweDY2MTg3MjZhIC8vIG1ldGhvZCAidGVzdDIoYnl0ZVtdKShieXRlW10pIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX3Rlc3Rfcm91dGVAMyBtYWluX3Rlc3QyX3JvdXRlQDQKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDY6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvanNkb2MuYWxnby50czoyMAogICAgLy8gZXhwb3J0IGNsYXNzIEpTRG9jRGVtbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6OkpTRG9jRGVtby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMjoKICAgIHJldHVybgoKbWFpbl90ZXN0Ml9yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6MzkKICAgIC8vIHRlc3QyKGE6IGJ5dGVzKTogRGVtb1R5cGUgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6MjAKICAgIC8vIGV4cG9ydCBjbGFzcyBKU0RvY0RlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6MzkKICAgIC8vIHRlc3QyKGE6IGJ5dGVzKTogRGVtb1R5cGUgewogICAgY2FsbHN1YiB0ZXN0MgogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hpbnQgMiAvLyAyCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzEgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvanNkb2MuYWxnby50czo6SlNEb2NEZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX3Rlc3Rfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjMwCiAgICAvLyB0ZXN0KGE6IHVpbnQ2NCwgYjogYnl0ZXMpOiBEZW1vU3RydWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjIwCiAgICAvLyBleHBvcnQgY2xhc3MgSlNEb2NEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZXh0cmFjdCAyIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjMwCiAgICAvLyB0ZXN0KGE6IHVpbnQ2NCwgYjogYnl0ZXMpOiBEZW1vU3RydWN0IHsKICAgIGNhbGxzdWIgdGVzdAogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjpKU0RvY0RlbW8uX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCm1haW5fYmFyZV9yb3V0aW5nQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvanNkb2MuYWxnby50czoyMAogICAgLy8gZXhwb3J0IGNsYXNzIEpTRG9jRGVtbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAOToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDExCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6MjAKICAgIC8vIGV4cG9ydCBjbGFzcyBKU0RvY0RlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjpKU0RvY0RlbW8uX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvanNkb2MuYWxnby50czo6SlNEb2NEZW1vLnRlc3QoYTogdWludDY0LCBiOiBieXRlcykgLT4gYnl0ZXM6CnRlc3Q6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvanNkb2MuYWxnby50czozMAogICAgLy8gdGVzdChhOiB1aW50NjQsIGI6IGJ5dGVzKTogRGVtb1N0cnVjdCB7CiAgICBwcm90byAyIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjMxCiAgICAvLyByZXR1cm4gbmV3IERlbW9TdHJ1Y3QoeyBhOiBuZXcgVWludE48NjQ+KGEpIH0pCiAgICBmcmFtZV9kaWcgLTIKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6OkpTRG9jRGVtby50ZXN0MihhOiBieXRlcykgLT4gYnl0ZXM6CnRlc3QyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6MzkKICAgIC8vIHRlc3QyKGE6IGJ5dGVzKTogRGVtb1R5cGUgewogICAgcHJvdG8gMSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvanNkb2MuYWxnby50czo0MC00MgogICAgLy8gcmV0dXJuIHsKICAgIC8vICAgYSwKICAgIC8vIH0KICAgIGZyYW1lX2RpZyAtMQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6OkpTRG9jRGVtby5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4IDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMDoKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjIwCiAgICAvLyBleHBvcnQgY2xhc3MgSlNEb2NEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANwoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6MjAKICAgIC8vIGV4cG9ydCBjbGFzcyBKU0RvY0RlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg2MGQ5M2JlYiAvLyBtZXRob2QgInRlc3QodWludDY0LGJ5dGVbXSkodWludDY0KSIKICAgIHB1c2hieXRlcyAweDY2MTg3MjZhIC8vIG1ldGhvZCAidGVzdDIoYnl0ZVtdKShieXRlW10pIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX3Rlc3Rfcm91dGVAMyBtYWluX3Rlc3QyX3JvdXRlQDQKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDY6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvanNkb2MuYWxnby50czoyMAogICAgLy8gZXhwb3J0IGNsYXNzIEpTRG9jRGVtbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6OkpTRG9jRGVtby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMjoKICAgIHJldHVybgoKbWFpbl90ZXN0Ml9yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6MzkKICAgIC8vIHRlc3QyKGE6IGJ5dGVzKTogRGVtb1R5cGUgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6MjAKICAgIC8vIGV4cG9ydCBjbGFzcyBKU0RvY0RlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6MzkKICAgIC8vIHRlc3QyKGE6IGJ5dGVzKTogRGVtb1R5cGUgewogICAgY2FsbHN1YiB0ZXN0MgogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hpbnQgMiAvLyAyCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzEgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvanNkb2MuYWxnby50czo6SlNEb2NEZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX3Rlc3Rfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjMwCiAgICAvLyB0ZXN0KGE6IHVpbnQ2NCwgYjogYnl0ZXMpOiBEZW1vU3RydWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjIwCiAgICAvLyBleHBvcnQgY2xhc3MgSlNEb2NEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZXh0cmFjdCAyIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjMwCiAgICAvLyB0ZXN0KGE6IHVpbnQ2NCwgYjogYnl0ZXMpOiBEZW1vU3RydWN0IHsKICAgIGNhbGxzdWIgdGVzdAogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjpKU0RvY0RlbW8uX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCm1haW5fYmFyZV9yb3V0aW5nQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvanNkb2MuYWxnby50czoyMAogICAgLy8gZXhwb3J0IGNsYXNzIEpTRG9jRGVtbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAOToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDExCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6MjAKICAgIC8vIGV4cG9ydCBjbGFzcyBKU0RvY0RlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjpKU0RvY0RlbW8uX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvanNkb2MuYWxnby50czo6SlNEb2NEZW1vLnRlc3QoYTogdWludDY0LCBiOiBieXRlcykgLT4gYnl0ZXM6CnRlc3Q6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvanNkb2MuYWxnby50czozMAogICAgLy8gdGVzdChhOiB1aW50NjQsIGI6IGJ5dGVzKTogRGVtb1N0cnVjdCB7CiAgICBwcm90byAyIDEKCnRlc3RfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjMxCiAgICAvLyByZXR1cm4gbmV3IERlbW9TdHJ1Y3QoeyBhOiBuZXcgVWludE48NjQ+KGEpIH0pCiAgICBmcmFtZV9kaWcgLTIKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6OkpTRG9jRGVtby50ZXN0MihhOiBieXRlcykgLT4gYnl0ZXM6CnRlc3QyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6MzkKICAgIC8vIHRlc3QyKGE6IGJ5dGVzKTogRGVtb1R5cGUgewogICAgcHJvdG8gMSAxCgp0ZXN0Ml9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2pzZG9jLmFsZ28udHM6NDAtNDIKICAgIC8vIHJldHVybiB7CiAgICAvLyAgIGEsCiAgICAvLyB9CiAgICBmcmFtZV9kaWcgLTEKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9qc2RvYy5hbGdvLnRzOjpKU0RvY0RlbW8uX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAEmAgAEFR98dTEbIhNBAGY2GgCABGDZO+uABGYYcmpPAo4CADAAAiJDMRkiEkQxGCITRDYaAVcCAIgAW0kVFlcGAkxQgQIWVwYCKExQTFApTFCwI0L/0TEZIhJEMRgiE0Q2GgEXNhoCVwIAiAAfKUxQsCNC/7IxGSJMjgEAA0L/pjEYIhJEiAAUI0L/m4oCAYv+FihMUImKAQGL/4mJ", @@ -161,7 +161,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/jsdoc/JSDocDemo.clear.teal b/tests/approvals/out/unoptimized/jsdoc/JSDocDemo.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/jsdoc/JSDocDemo.clear.teal +++ b/tests/approvals/out/unoptimized/jsdoc/JSDocDemo.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/local-state/LocalStateDemo.approval.teal b/tests/approvals/out/unoptimized/local-state/LocalStateDemo.approval.teal index f637575fd..279cbda0c 100644 --- a/tests/approvals/out/unoptimized/local-state/LocalStateDemo.approval.teal +++ b/tests/approvals/out/unoptimized/local-state/LocalStateDemo.approval.teal @@ -6,6 +6,8 @@ main: intcblock 0 1 100 8 bytecblock "l1" "localUint2" "b1" "localBytes2" "localEncoded" +main_block@0: + main_block@1: // tests/approvals/local-state.algo.ts:7 // export class LocalStateDemo extends Contract { @@ -198,6 +200,8 @@ main___algots__.defaultCreate@10: // tests/approvals/local-state.algo.ts::LocalStateDemo.optIn() -> void: optIn: + +optIn_block@0: retsub @@ -206,6 +210,10 @@ setState: // tests/approvals/local-state.algo.ts:17 // public setState({ a, b }: { a: uint64; b: bytes }, c: SampleArray) { proto 3 0 + +setState_block@0: + // tests/approvals/local-state.algo.ts:17 + // public setState({ a, b }: { a: uint64; b: bytes }, c: SampleArray) { frame_dig -3 frame_dig -2 swap @@ -265,6 +273,8 @@ setState: // tests/approvals/local-state.algo.ts::LocalStateDemo.getState() -> uint64, uint64, bytes, bytes, bytes: getState: + +getState_block@0: // tests/approvals/local-state.algo.ts:27 // localUint: this.localUint(Txn.sender).value, txn Sender @@ -578,6 +588,8 @@ getState: // tests/approvals/local-state.algo.ts::LocalStateDemo.clearState() -> void: clearState: + +clearState_block@0: // tests/approvals/local-state.algo.ts:36 // this.localUint(Txn.sender).delete() txn Sender @@ -628,4 +640,6 @@ clearState: // tests/approvals/local-state.algo.ts::LocalStateDemo.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/local-state/LocalStateDemo.arc32.json b/tests/approvals/out/unoptimized/local-state/LocalStateDemo.arc32.json index 068e41e13..e3bda5b73 100644 --- a/tests/approvals/out/unoptimized/local-state/LocalStateDemo.arc32.json +++ b/tests/approvals/out/unoptimized/local-state/LocalStateDemo.arc32.json @@ -64,8 +64,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDEwMCA4CiAgICBieXRlY2Jsb2NrICJsMSIgImxvY2FsVWludDIiICJiMSIgImxvY2FsQnl0ZXMyIiAibG9jYWxFbmNvZGVkIgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIExvY2FsU3RhdGVEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAOQoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIExvY2FsU3RhdGVEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4MjkzMTRkOTUgLy8gbWV0aG9kICJvcHRJbigpdm9pZCIKICAgIHB1c2hieXRlcyAweGFhZWZjYjQzIC8vIG1ldGhvZCAic2V0U3RhdGUoKHVpbnQ2NCxieXRlW10pLHVpbnQ2NFsxMF0pdm9pZCIKICAgIHB1c2hieXRlcyAweDY3ODE2Y2M1IC8vIG1ldGhvZCAiZ2V0U3RhdGUoKSh1aW50NjQsdWludDY0LGJ5dGVbXSxieXRlW10sdWludDY0WzEwXSkiCiAgICBwdXNoYnl0ZXMgMHgxMTE3MDUzNCAvLyBtZXRob2QgImNsZWFyU3RhdGUoKXZvaWQiCiAgICB1bmNvdmVyIDQKICAgIG1hdGNoIG1haW5fb3B0SW5fcm91dGVAMyBtYWluX3NldFN0YXRlX3JvdXRlQDQgbWFpbl9nZXRTdGF0ZV9yb3V0ZUA1IG1haW5fY2xlYXJTdGF0ZV9yb3V0ZUA2CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANzoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA4OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIExvY2FsU3RhdGVEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo6TG9jYWxTdGF0ZURlbW8uX19wdXlhX2FyYzRfcm91dGVyX19AMTQ6CiAgICByZXR1cm4KCm1haW5fY2xlYXJTdGF0ZV9yb3V0ZUA2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzUKICAgIC8vIHB1YmxpYyBjbGVhclN0YXRlKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBjbGVhclN0YXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OkxvY2FsU3RhdGVEZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2dldFN0YXRlX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNQogICAgLy8gcHVibGljIGdldFN0YXRlKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBnZXRTdGF0ZQogICAgY292ZXIgNAogICAgY292ZXIgMwogICAgY292ZXIgMgogICAgc3dhcAogICAgaXRvYgogICAgY292ZXIgMwogICAgaXRvYgogICAgY292ZXIgMwogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGNvdmVyIDMKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBjb3ZlciAzCiAgICBwdXNoYnl0ZXMgMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBpbnRjXzIgLy8gMTAwCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgY29uY2F0CiAgICBkaWcgMQogICAgbGVuCiAgICBpbnRjXzIgLy8gMTAwCiAgICArCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgY29uY2F0CiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjpMb2NhbFN0YXRlRGVtby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl9zZXRTdGF0ZV9yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTcKICAgIC8vIHB1YmxpYyBzZXRTdGF0ZSh7IGEsIGIgfTogeyBhOiB1aW50NjQ7IGI6IGJ5dGVzIH0sIGM6IFNhbXBsZUFycmF5KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgTG9jYWxTdGF0ZURlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzMgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBzd2FwCiAgICBkdXAKICAgIGludGNfMyAvLyA4CiAgICBleHRyYWN0X3VpbnQxNgogICAgc3dhcAogICAgZHVwCiAgICBsZW4KICAgIHN3YXAKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTcKICAgIC8vIHB1YmxpYyBzZXRTdGF0ZSh7IGEsIGIgfTogeyBhOiB1aW50NjQ7IGI6IGJ5dGVzIH0sIGM6IFNhbXBsZUFycmF5KSB7CiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBjYWxsc3ViIHNldFN0YXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OkxvY2FsU3RhdGVEZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX29wdEluX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxNAogICAgLy8gQGFiaW1ldGhvZCh7IGFsbG93QWN0aW9uczogJ09wdEluJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18xIC8vIE9wdEluCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgT3B0SW4KICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIG9wdEluCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OkxvY2FsU3RhdGVEZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2JhcmVfcm91dGluZ0A5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIExvY2FsU3RhdGVEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDEwCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTE6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTI6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMwoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgTG9jYWxTdGF0ZURlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjpMb2NhbFN0YXRlRGVtby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKCi8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjpMb2NhbFN0YXRlRGVtby5vcHRJbigpIC0+IHZvaWQ6Cm9wdEluOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OkxvY2FsU3RhdGVEZW1vLnNldFN0YXRlKHAuYTogdWludDY0LCBwLmI6IGJ5dGVzLCBjOiBieXRlcykgLT4gdm9pZDoKc2V0U3RhdGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxNwogICAgLy8gcHVibGljIHNldFN0YXRlKHsgYSwgYiB9OiB7IGE6IHVpbnQ2NDsgYjogYnl0ZXMgfSwgYzogU2FtcGxlQXJyYXkpIHsKICAgIHByb3RvIDMgMAogICAgZnJhbWVfZGlnIC0zCiAgICBmcmFtZV9kaWcgLTIKICAgIHN3YXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjE4CiAgICAvLyB0aGlzLmxvY2FsVWludChUeG4uc2VuZGVyKS52YWx1ZSA9IGEKICAgIHR4biBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjgKICAgIC8vIGxvY2FsVWludCA9IExvY2FsU3RhdGU8dWludDY0Pih7IGtleTogJ2wxJyB9KQogICAgYnl0ZWNfMCAvLyAibDEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxOAogICAgLy8gdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikudmFsdWUgPSBhCiAgICBkaWcgMgogICAgYXBwX2xvY2FsX3B1dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTkKICAgIC8vIHRoaXMubG9jYWxVaW50MihUeG4uc2VuZGVyKS52YWx1ZSA9IGEKICAgIHR4biBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjkKICAgIC8vIGxvY2FsVWludDIgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oKQogICAgYnl0ZWNfMSAvLyAibG9jYWxVaW50MiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjE5CiAgICAvLyB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUgPSBhCiAgICB1bmNvdmVyIDIKICAgIGFwcF9sb2NhbF9wdXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjIwCiAgICAvLyB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikudmFsdWUgPSBiCiAgICB0eG4gU2VuZGVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMAogICAgLy8gbG9jYWxCeXRlcyA9IExvY2FsU3RhdGU8Ynl0ZXM+KHsga2V5OiAnYjEnIH0pCiAgICBieXRlY18yIC8vICJiMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjIwCiAgICAvLyB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikudmFsdWUgPSBiCiAgICBkaWcgMgogICAgYXBwX2xvY2FsX3B1dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjEKICAgIC8vIHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikudmFsdWUgPSBiCiAgICB0eG4gU2VuZGVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMQogICAgLy8gbG9jYWxCeXRlczIgPSBMb2NhbFN0YXRlPGJ5dGVzPigpCiAgICBieXRlY18zIC8vICJsb2NhbEJ5dGVzMiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjIxCiAgICAvLyB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlID0gYgogICAgdW5jb3ZlciAyCiAgICBhcHBfbG9jYWxfcHV0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyMgogICAgLy8gdGhpcy5sb2NhbEVuY29kZWQoVHhuLnNlbmRlcikudmFsdWUgPSBjLmNvcHkoKQogICAgZnJhbWVfZGlnIC0xCiAgICB0eG4gU2VuZGVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMgogICAgLy8gbG9jYWxFbmNvZGVkID0gTG9jYWxTdGF0ZTxTYW1wbGVBcnJheT4oKQogICAgYnl0ZWMgNCAvLyAibG9jYWxFbmNvZGVkIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjIKICAgIC8vIHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLnZhbHVlID0gYy5jb3B5KCkKICAgIHVuY292ZXIgMgogICAgYXBwX2xvY2FsX3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OkxvY2FsU3RhdGVEZW1vLmdldFN0YXRlKCkgLT4gdWludDY0LCB1aW50NjQsIGJ5dGVzLCBieXRlcywgYnl0ZXM6CmdldFN0YXRlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjcKICAgIC8vIGxvY2FsVWludDogdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OAogICAgLy8gbG9jYWxVaW50ID0gTG9jYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiAnbDEnIH0pCiAgICBieXRlY18wIC8vICJsMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI3CiAgICAvLyBsb2NhbFVpbnQ6IHRoaXMubG9jYWxVaW50KFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOAogICAgLy8gbG9jYWxVaW50MjogdGhpcy5sb2NhbFVpbnQyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjkKICAgIC8vIGxvY2FsVWludDIgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oKQogICAgYnl0ZWNfMSAvLyAibG9jYWxVaW50MiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI4CiAgICAvLyBsb2NhbFVpbnQyOiB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjkKICAgIC8vIGxvY2FsQnl0ZXM6IHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMAogICAgLy8gbG9jYWxCeXRlcyA9IExvY2FsU3RhdGU8Ynl0ZXM+KHsga2V5OiAnYjEnIH0pCiAgICBieXRlY18yIC8vICJiMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI5CiAgICAvLyBsb2NhbEJ5dGVzOiB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzAKICAgIC8vIGxvY2FsQnl0ZXMyOiB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjExCiAgICAvLyBsb2NhbEJ5dGVzMiA9IExvY2FsU3RhdGU8Ynl0ZXM+KCkKICAgIGJ5dGVjXzMgLy8gImxvY2FsQnl0ZXMyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzAKICAgIC8vIGxvY2FsQnl0ZXMyOiB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjMxCiAgICAvLyBsb2NhbEVuY29kZWQ6IHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLnZhbHVlLmNvcHkoKSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMgogICAgLy8gbG9jYWxFbmNvZGVkID0gTG9jYWxTdGF0ZTxTYW1wbGVBcnJheT4oKQogICAgYnl0ZWMgNCAvLyAibG9jYWxFbmNvZGVkIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzEKICAgIC8vIGxvY2FsRW5jb2RlZDogdGhpcy5sb2NhbEVuY29kZWQoVHhuLnNlbmRlcikudmFsdWUuY29weSgpLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI3CiAgICAvLyBsb2NhbFVpbnQ6IHRoaXMubG9jYWxVaW50KFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjgKICAgIC8vIGxvY2FsVWludCA9IExvY2FsU3RhdGU8dWludDY0Pih7IGtleTogJ2wxJyB9KQogICAgYnl0ZWNfMCAvLyAibDEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNwogICAgLy8gbG9jYWxVaW50OiB0aGlzLmxvY2FsVWludChUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOAogICAgLy8gbG9jYWxVaW50MjogdGhpcy5sb2NhbFVpbnQyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjkKICAgIC8vIGxvY2FsVWludDIgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oKQogICAgYnl0ZWNfMSAvLyAibG9jYWxVaW50MiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI4CiAgICAvLyBsb2NhbFVpbnQyOiB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI5CiAgICAvLyBsb2NhbEJ5dGVzOiB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTAKICAgIC8vIGxvY2FsQnl0ZXMgPSBMb2NhbFN0YXRlPGJ5dGVzPih7IGtleTogJ2IxJyB9KQogICAgYnl0ZWNfMiAvLyAiYjEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOQogICAgLy8gbG9jYWxCeXRlczogdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjMwCiAgICAvLyBsb2NhbEJ5dGVzMjogdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMQogICAgLy8gbG9jYWxCeXRlczIgPSBMb2NhbFN0YXRlPGJ5dGVzPigpCiAgICBieXRlY18zIC8vICJsb2NhbEJ5dGVzMiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjMwCiAgICAvLyBsb2NhbEJ5dGVzMjogdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMQogICAgLy8gbG9jYWxFbmNvZGVkOiB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS52YWx1ZS5jb3B5KCksCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTIKICAgIC8vIGxvY2FsRW5jb2RlZCA9IExvY2FsU3RhdGU8U2FtcGxlQXJyYXk+KCkKICAgIGJ5dGVjIDQgLy8gImxvY2FsRW5jb2RlZCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjMxCiAgICAvLyBsb2NhbEVuY29kZWQ6IHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLnZhbHVlLmNvcHkoKSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNwogICAgLy8gbG9jYWxVaW50OiB0aGlzLmxvY2FsVWludChUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo4CiAgICAvLyBsb2NhbFVpbnQgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6ICdsMScgfSkKICAgIGJ5dGVjXzAgLy8gImwxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjcKICAgIC8vIGxvY2FsVWludDogdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjgKICAgIC8vIGxvY2FsVWludDI6IHRoaXMubG9jYWxVaW50MihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo5CiAgICAvLyBsb2NhbFVpbnQyID0gTG9jYWxTdGF0ZTx1aW50NjQ+KCkKICAgIGJ5dGVjXzEgLy8gImxvY2FsVWludDIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOAogICAgLy8gbG9jYWxVaW50MjogdGhpcy5sb2NhbFVpbnQyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI5CiAgICAvLyBsb2NhbEJ5dGVzOiB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTAKICAgIC8vIGxvY2FsQnl0ZXMgPSBMb2NhbFN0YXRlPGJ5dGVzPih7IGtleTogJ2IxJyB9KQogICAgYnl0ZWNfMiAvLyAiYjEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOQogICAgLy8gbG9jYWxCeXRlczogdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMAogICAgLy8gbG9jYWxCeXRlczI6IHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTEKICAgIC8vIGxvY2FsQnl0ZXMyID0gTG9jYWxTdGF0ZTxieXRlcz4oKQogICAgYnl0ZWNfMyAvLyAibG9jYWxCeXRlczIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMAogICAgLy8gbG9jYWxCeXRlczI6IHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzEKICAgIC8vIGxvY2FsRW5jb2RlZDogdGhpcy5sb2NhbEVuY29kZWQoVHhuLnNlbmRlcikudmFsdWUuY29weSgpLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjEyCiAgICAvLyBsb2NhbEVuY29kZWQgPSBMb2NhbFN0YXRlPFNhbXBsZUFycmF5PigpCiAgICBieXRlYyA0IC8vICJsb2NhbEVuY29kZWQiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMQogICAgLy8gbG9jYWxFbmNvZGVkOiB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS52YWx1ZS5jb3B5KCksCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjcKICAgIC8vIGxvY2FsVWludDogdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OAogICAgLy8gbG9jYWxVaW50ID0gTG9jYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiAnbDEnIH0pCiAgICBieXRlY18wIC8vICJsMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI3CiAgICAvLyBsb2NhbFVpbnQ6IHRoaXMubG9jYWxVaW50KFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI4CiAgICAvLyBsb2NhbFVpbnQyOiB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OQogICAgLy8gbG9jYWxVaW50MiA9IExvY2FsU3RhdGU8dWludDY0PigpCiAgICBieXRlY18xIC8vICJsb2NhbFVpbnQyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjgKICAgIC8vIGxvY2FsVWludDI6IHRoaXMubG9jYWxVaW50MihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOQogICAgLy8gbG9jYWxCeXRlczogdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjEwCiAgICAvLyBsb2NhbEJ5dGVzID0gTG9jYWxTdGF0ZTxieXRlcz4oeyBrZXk6ICdiMScgfSkKICAgIGJ5dGVjXzIgLy8gImIxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjkKICAgIC8vIGxvY2FsQnl0ZXM6IHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMAogICAgLy8gbG9jYWxCeXRlczI6IHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTEKICAgIC8vIGxvY2FsQnl0ZXMyID0gTG9jYWxTdGF0ZTxieXRlcz4oKQogICAgYnl0ZWNfMyAvLyAibG9jYWxCeXRlczIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMAogICAgLy8gbG9jYWxCeXRlczI6IHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjMxCiAgICAvLyBsb2NhbEVuY29kZWQ6IHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLnZhbHVlLmNvcHkoKSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMgogICAgLy8gbG9jYWxFbmNvZGVkID0gTG9jYWxTdGF0ZTxTYW1wbGVBcnJheT4oKQogICAgYnl0ZWMgNCAvLyAibG9jYWxFbmNvZGVkIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzEKICAgIC8vIGxvY2FsRW5jb2RlZDogdGhpcy5sb2NhbEVuY29kZWQoVHhuLnNlbmRlcikudmFsdWUuY29weSgpLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI3CiAgICAvLyBsb2NhbFVpbnQ6IHRoaXMubG9jYWxVaW50KFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjgKICAgIC8vIGxvY2FsVWludCA9IExvY2FsU3RhdGU8dWludDY0Pih7IGtleTogJ2wxJyB9KQogICAgYnl0ZWNfMCAvLyAibDEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNwogICAgLy8gbG9jYWxVaW50OiB0aGlzLmxvY2FsVWludChUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOAogICAgLy8gbG9jYWxVaW50MjogdGhpcy5sb2NhbFVpbnQyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjkKICAgIC8vIGxvY2FsVWludDIgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oKQogICAgYnl0ZWNfMSAvLyAibG9jYWxVaW50MiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI4CiAgICAvLyBsb2NhbFVpbnQyOiB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjkKICAgIC8vIGxvY2FsQnl0ZXM6IHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMAogICAgLy8gbG9jYWxCeXRlcyA9IExvY2FsU3RhdGU8Ynl0ZXM+KHsga2V5OiAnYjEnIH0pCiAgICBieXRlY18yIC8vICJiMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI5CiAgICAvLyBsb2NhbEJ5dGVzOiB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzAKICAgIC8vIGxvY2FsQnl0ZXMyOiB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjExCiAgICAvLyBsb2NhbEJ5dGVzMiA9IExvY2FsU3RhdGU8Ynl0ZXM+KCkKICAgIGJ5dGVjXzMgLy8gImxvY2FsQnl0ZXMyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzAKICAgIC8vIGxvY2FsQnl0ZXMyOiB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjMxCiAgICAvLyBsb2NhbEVuY29kZWQ6IHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLnZhbHVlLmNvcHkoKSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMgogICAgLy8gbG9jYWxFbmNvZGVkID0gTG9jYWxTdGF0ZTxTYW1wbGVBcnJheT4oKQogICAgYnl0ZWMgNCAvLyAibG9jYWxFbmNvZGVkIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzEKICAgIC8vIGxvY2FsRW5jb2RlZDogdGhpcy5sb2NhbEVuY29kZWQoVHhuLnNlbmRlcikudmFsdWUuY29weSgpLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNi0zMgogICAgLy8gcmV0dXJuIHsKICAgIC8vICAgbG9jYWxVaW50OiB0aGlzLmxvY2FsVWludChUeG4uc2VuZGVyKS52YWx1ZSwKICAgIC8vICAgbG9jYWxVaW50MjogdGhpcy5sb2NhbFVpbnQyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgLy8gICBsb2NhbEJ5dGVzOiB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikudmFsdWUsCiAgICAvLyAgIGxvY2FsQnl0ZXMyOiB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgLy8gICBsb2NhbEVuY29kZWQ6IHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLnZhbHVlLmNvcHkoKSwKICAgIC8vIH0KICAgIHVuY292ZXIgNAogICAgdW5jb3ZlciA0CiAgICB1bmNvdmVyIDQKICAgIHVuY292ZXIgNAogICAgdW5jb3ZlciA0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo6TG9jYWxTdGF0ZURlbW8uY2xlYXJTdGF0ZSgpIC0+IHZvaWQ6CmNsZWFyU3RhdGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozNgogICAgLy8gdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIHR4biBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjgKICAgIC8vIGxvY2FsVWludCA9IExvY2FsU3RhdGU8dWludDY0Pih7IGtleTogJ2wxJyB9KQogICAgYnl0ZWNfMCAvLyAibDEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozNgogICAgLy8gdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIGFwcF9sb2NhbF9kZWwKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjM3CiAgICAvLyB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIHR4biBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjkKICAgIC8vIGxvY2FsVWludDIgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oKQogICAgYnl0ZWNfMSAvLyAibG9jYWxVaW50MiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjM3CiAgICAvLyB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIGFwcF9sb2NhbF9kZWwKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjM4CiAgICAvLyB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIHR4biBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjEwCiAgICAvLyBsb2NhbEJ5dGVzID0gTG9jYWxTdGF0ZTxieXRlcz4oeyBrZXk6ICdiMScgfSkKICAgIGJ5dGVjXzIgLy8gImIxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzgKICAgIC8vIHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgYXBwX2xvY2FsX2RlbAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzkKICAgIC8vIHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIHR4biBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjExCiAgICAvLyBsb2NhbEJ5dGVzMiA9IExvY2FsU3RhdGU8Ynl0ZXM+KCkKICAgIGJ5dGVjXzMgLy8gImxvY2FsQnl0ZXMyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzkKICAgIC8vIHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIGFwcF9sb2NhbF9kZWwKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjQwCiAgICAvLyB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTIKICAgIC8vIGxvY2FsRW5jb2RlZCA9IExvY2FsU3RhdGU8U2FtcGxlQXJyYXk+KCkKICAgIGJ5dGVjIDQgLy8gImxvY2FsRW5jb2RlZCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjQwCiAgICAvLyB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgYXBwX2xvY2FsX2RlbAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OkxvY2FsU3RhdGVEZW1vLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDEwMCA4CiAgICBieXRlY2Jsb2NrICJsMSIgImxvY2FsVWludDIiICJiMSIgImxvY2FsQnl0ZXMyIiAibG9jYWxFbmNvZGVkIgoKbWFpbl9ibG9ja0AwOgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIExvY2FsU3RhdGVEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAOQoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIExvY2FsU3RhdGVEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4MjkzMTRkOTUgLy8gbWV0aG9kICJvcHRJbigpdm9pZCIKICAgIHB1c2hieXRlcyAweGFhZWZjYjQzIC8vIG1ldGhvZCAic2V0U3RhdGUoKHVpbnQ2NCxieXRlW10pLHVpbnQ2NFsxMF0pdm9pZCIKICAgIHB1c2hieXRlcyAweDY3ODE2Y2M1IC8vIG1ldGhvZCAiZ2V0U3RhdGUoKSh1aW50NjQsdWludDY0LGJ5dGVbXSxieXRlW10sdWludDY0WzEwXSkiCiAgICBwdXNoYnl0ZXMgMHgxMTE3MDUzNCAvLyBtZXRob2QgImNsZWFyU3RhdGUoKXZvaWQiCiAgICB1bmNvdmVyIDQKICAgIG1hdGNoIG1haW5fb3B0SW5fcm91dGVAMyBtYWluX3NldFN0YXRlX3JvdXRlQDQgbWFpbl9nZXRTdGF0ZV9yb3V0ZUA1IG1haW5fY2xlYXJTdGF0ZV9yb3V0ZUA2CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANzoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA4OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIExvY2FsU3RhdGVEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo6TG9jYWxTdGF0ZURlbW8uX19wdXlhX2FyYzRfcm91dGVyX19AMTQ6CiAgICByZXR1cm4KCm1haW5fY2xlYXJTdGF0ZV9yb3V0ZUA2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzUKICAgIC8vIHB1YmxpYyBjbGVhclN0YXRlKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBjbGVhclN0YXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OkxvY2FsU3RhdGVEZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2dldFN0YXRlX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNQogICAgLy8gcHVibGljIGdldFN0YXRlKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBnZXRTdGF0ZQogICAgY292ZXIgNAogICAgY292ZXIgMwogICAgY292ZXIgMgogICAgc3dhcAogICAgaXRvYgogICAgY292ZXIgMwogICAgaXRvYgogICAgY292ZXIgMwogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGNvdmVyIDMKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBjb3ZlciAzCiAgICBwdXNoYnl0ZXMgMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBpbnRjXzIgLy8gMTAwCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgY29uY2F0CiAgICBkaWcgMQogICAgbGVuCiAgICBpbnRjXzIgLy8gMTAwCiAgICArCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgY29uY2F0CiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjpMb2NhbFN0YXRlRGVtby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl9zZXRTdGF0ZV9yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTcKICAgIC8vIHB1YmxpYyBzZXRTdGF0ZSh7IGEsIGIgfTogeyBhOiB1aW50NjQ7IGI6IGJ5dGVzIH0sIGM6IFNhbXBsZUFycmF5KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgTG9jYWxTdGF0ZURlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzMgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBzd2FwCiAgICBkdXAKICAgIGludGNfMyAvLyA4CiAgICBleHRyYWN0X3VpbnQxNgogICAgc3dhcAogICAgZHVwCiAgICBsZW4KICAgIHN3YXAKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTcKICAgIC8vIHB1YmxpYyBzZXRTdGF0ZSh7IGEsIGIgfTogeyBhOiB1aW50NjQ7IGI6IGJ5dGVzIH0sIGM6IFNhbXBsZUFycmF5KSB7CiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBjYWxsc3ViIHNldFN0YXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OkxvY2FsU3RhdGVEZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX29wdEluX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxNAogICAgLy8gQGFiaW1ldGhvZCh7IGFsbG93QWN0aW9uczogJ09wdEluJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18xIC8vIE9wdEluCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgT3B0SW4KICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIG9wdEluCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OkxvY2FsU3RhdGVEZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2JhcmVfcm91dGluZ0A5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIExvY2FsU3RhdGVEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDEwCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTE6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTI6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMwoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgTG9jYWxTdGF0ZURlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjpMb2NhbFN0YXRlRGVtby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKCi8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjpMb2NhbFN0YXRlRGVtby5vcHRJbigpIC0+IHZvaWQ6Cm9wdEluOgoKb3B0SW5fYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjpMb2NhbFN0YXRlRGVtby5zZXRTdGF0ZShwLmE6IHVpbnQ2NCwgcC5iOiBieXRlcywgYzogYnl0ZXMpIC0+IHZvaWQ6CnNldFN0YXRlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTcKICAgIC8vIHB1YmxpYyBzZXRTdGF0ZSh7IGEsIGIgfTogeyBhOiB1aW50NjQ7IGI6IGJ5dGVzIH0sIGM6IFNhbXBsZUFycmF5KSB7CiAgICBwcm90byAzIDAKCnNldFN0YXRlX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxNwogICAgLy8gcHVibGljIHNldFN0YXRlKHsgYSwgYiB9OiB7IGE6IHVpbnQ2NDsgYjogYnl0ZXMgfSwgYzogU2FtcGxlQXJyYXkpIHsKICAgIGZyYW1lX2RpZyAtMwogICAgZnJhbWVfZGlnIC0yCiAgICBzd2FwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxOAogICAgLy8gdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikudmFsdWUgPSBhCiAgICB0eG4gU2VuZGVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo4CiAgICAvLyBsb2NhbFVpbnQgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6ICdsMScgfSkKICAgIGJ5dGVjXzAgLy8gImwxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTgKICAgIC8vIHRoaXMubG9jYWxVaW50KFR4bi5zZW5kZXIpLnZhbHVlID0gYQogICAgZGlnIDIKICAgIGFwcF9sb2NhbF9wdXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjE5CiAgICAvLyB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUgPSBhCiAgICB0eG4gU2VuZGVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo5CiAgICAvLyBsb2NhbFVpbnQyID0gTG9jYWxTdGF0ZTx1aW50NjQ+KCkKICAgIGJ5dGVjXzEgLy8gImxvY2FsVWludDIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxOQogICAgLy8gdGhpcy5sb2NhbFVpbnQyKFR4bi5zZW5kZXIpLnZhbHVlID0gYQogICAgdW5jb3ZlciAyCiAgICBhcHBfbG9jYWxfcHV0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyMAogICAgLy8gdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlID0gYgogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTAKICAgIC8vIGxvY2FsQnl0ZXMgPSBMb2NhbFN0YXRlPGJ5dGVzPih7IGtleTogJ2IxJyB9KQogICAgYnl0ZWNfMiAvLyAiYjEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyMAogICAgLy8gdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlID0gYgogICAgZGlnIDIKICAgIGFwcF9sb2NhbF9wdXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjIxCiAgICAvLyB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlID0gYgogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTEKICAgIC8vIGxvY2FsQnl0ZXMyID0gTG9jYWxTdGF0ZTxieXRlcz4oKQogICAgYnl0ZWNfMyAvLyAibG9jYWxCeXRlczIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyMQogICAgLy8gdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS52YWx1ZSA9IGIKICAgIHVuY292ZXIgMgogICAgYXBwX2xvY2FsX3B1dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjIKICAgIC8vIHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLnZhbHVlID0gYy5jb3B5KCkKICAgIGZyYW1lX2RpZyAtMQogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTIKICAgIC8vIGxvY2FsRW5jb2RlZCA9IExvY2FsU3RhdGU8U2FtcGxlQXJyYXk+KCkKICAgIGJ5dGVjIDQgLy8gImxvY2FsRW5jb2RlZCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjIyCiAgICAvLyB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS52YWx1ZSA9IGMuY29weSgpCiAgICB1bmNvdmVyIDIKICAgIGFwcF9sb2NhbF9wdXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjpMb2NhbFN0YXRlRGVtby5nZXRTdGF0ZSgpIC0+IHVpbnQ2NCwgdWludDY0LCBieXRlcywgYnl0ZXMsIGJ5dGVzOgpnZXRTdGF0ZToKCmdldFN0YXRlX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNwogICAgLy8gbG9jYWxVaW50OiB0aGlzLmxvY2FsVWludChUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo4CiAgICAvLyBsb2NhbFVpbnQgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6ICdsMScgfSkKICAgIGJ5dGVjXzAgLy8gImwxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjcKICAgIC8vIGxvY2FsVWludDogdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI4CiAgICAvLyBsb2NhbFVpbnQyOiB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OQogICAgLy8gbG9jYWxVaW50MiA9IExvY2FsU3RhdGU8dWludDY0PigpCiAgICBieXRlY18xIC8vICJsb2NhbFVpbnQyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjgKICAgIC8vIGxvY2FsVWludDI6IHRoaXMubG9jYWxVaW50MihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOQogICAgLy8gbG9jYWxCeXRlczogdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjEwCiAgICAvLyBsb2NhbEJ5dGVzID0gTG9jYWxTdGF0ZTxieXRlcz4oeyBrZXk6ICdiMScgfSkKICAgIGJ5dGVjXzIgLy8gImIxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjkKICAgIC8vIGxvY2FsQnl0ZXM6IHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMAogICAgLy8gbG9jYWxCeXRlczI6IHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTEKICAgIC8vIGxvY2FsQnl0ZXMyID0gTG9jYWxTdGF0ZTxieXRlcz4oKQogICAgYnl0ZWNfMyAvLyAibG9jYWxCeXRlczIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMAogICAgLy8gbG9jYWxCeXRlczI6IHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzEKICAgIC8vIGxvY2FsRW5jb2RlZDogdGhpcy5sb2NhbEVuY29kZWQoVHhuLnNlbmRlcikudmFsdWUuY29weSgpLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjEyCiAgICAvLyBsb2NhbEVuY29kZWQgPSBMb2NhbFN0YXRlPFNhbXBsZUFycmF5PigpCiAgICBieXRlYyA0IC8vICJsb2NhbEVuY29kZWQiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMQogICAgLy8gbG9jYWxFbmNvZGVkOiB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS52YWx1ZS5jb3B5KCksCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjcKICAgIC8vIGxvY2FsVWludDogdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OAogICAgLy8gbG9jYWxVaW50ID0gTG9jYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiAnbDEnIH0pCiAgICBieXRlY18wIC8vICJsMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI3CiAgICAvLyBsb2NhbFVpbnQ6IHRoaXMubG9jYWxVaW50KFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI4CiAgICAvLyBsb2NhbFVpbnQyOiB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OQogICAgLy8gbG9jYWxVaW50MiA9IExvY2FsU3RhdGU8dWludDY0PigpCiAgICBieXRlY18xIC8vICJsb2NhbFVpbnQyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjgKICAgIC8vIGxvY2FsVWludDI6IHRoaXMubG9jYWxVaW50MihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjkKICAgIC8vIGxvY2FsQnl0ZXM6IHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMAogICAgLy8gbG9jYWxCeXRlcyA9IExvY2FsU3RhdGU8Ynl0ZXM+KHsga2V5OiAnYjEnIH0pCiAgICBieXRlY18yIC8vICJiMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI5CiAgICAvLyBsb2NhbEJ5dGVzOiB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzAKICAgIC8vIGxvY2FsQnl0ZXMyOiB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjExCiAgICAvLyBsb2NhbEJ5dGVzMiA9IExvY2FsU3RhdGU8Ynl0ZXM+KCkKICAgIGJ5dGVjXzMgLy8gImxvY2FsQnl0ZXMyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzAKICAgIC8vIGxvY2FsQnl0ZXMyOiB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjMxCiAgICAvLyBsb2NhbEVuY29kZWQ6IHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLnZhbHVlLmNvcHkoKSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMgogICAgLy8gbG9jYWxFbmNvZGVkID0gTG9jYWxTdGF0ZTxTYW1wbGVBcnJheT4oKQogICAgYnl0ZWMgNCAvLyAibG9jYWxFbmNvZGVkIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzEKICAgIC8vIGxvY2FsRW5jb2RlZDogdGhpcy5sb2NhbEVuY29kZWQoVHhuLnNlbmRlcikudmFsdWUuY29weSgpLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI3CiAgICAvLyBsb2NhbFVpbnQ6IHRoaXMubG9jYWxVaW50KFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjgKICAgIC8vIGxvY2FsVWludCA9IExvY2FsU3RhdGU8dWludDY0Pih7IGtleTogJ2wxJyB9KQogICAgYnl0ZWNfMCAvLyAibDEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNwogICAgLy8gbG9jYWxVaW50OiB0aGlzLmxvY2FsVWludChUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOAogICAgLy8gbG9jYWxVaW50MjogdGhpcy5sb2NhbFVpbnQyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjkKICAgIC8vIGxvY2FsVWludDIgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oKQogICAgYnl0ZWNfMSAvLyAibG9jYWxVaW50MiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI4CiAgICAvLyBsb2NhbFVpbnQyOiB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjkKICAgIC8vIGxvY2FsQnl0ZXM6IHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMAogICAgLy8gbG9jYWxCeXRlcyA9IExvY2FsU3RhdGU8Ynl0ZXM+KHsga2V5OiAnYjEnIH0pCiAgICBieXRlY18yIC8vICJiMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI5CiAgICAvLyBsb2NhbEJ5dGVzOiB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjMwCiAgICAvLyBsb2NhbEJ5dGVzMjogdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMQogICAgLy8gbG9jYWxCeXRlczIgPSBMb2NhbFN0YXRlPGJ5dGVzPigpCiAgICBieXRlY18zIC8vICJsb2NhbEJ5dGVzMiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjMwCiAgICAvLyBsb2NhbEJ5dGVzMjogdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMQogICAgLy8gbG9jYWxFbmNvZGVkOiB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS52YWx1ZS5jb3B5KCksCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTIKICAgIC8vIGxvY2FsRW5jb2RlZCA9IExvY2FsU3RhdGU8U2FtcGxlQXJyYXk+KCkKICAgIGJ5dGVjIDQgLy8gImxvY2FsRW5jb2RlZCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjMxCiAgICAvLyBsb2NhbEVuY29kZWQ6IHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLnZhbHVlLmNvcHkoKSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNwogICAgLy8gbG9jYWxVaW50OiB0aGlzLmxvY2FsVWludChUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo4CiAgICAvLyBsb2NhbFVpbnQgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6ICdsMScgfSkKICAgIGJ5dGVjXzAgLy8gImwxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjcKICAgIC8vIGxvY2FsVWludDogdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjgKICAgIC8vIGxvY2FsVWludDI6IHRoaXMubG9jYWxVaW50MihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo5CiAgICAvLyBsb2NhbFVpbnQyID0gTG9jYWxTdGF0ZTx1aW50NjQ+KCkKICAgIGJ5dGVjXzEgLy8gImxvY2FsVWludDIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOAogICAgLy8gbG9jYWxVaW50MjogdGhpcy5sb2NhbFVpbnQyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI5CiAgICAvLyBsb2NhbEJ5dGVzOiB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTAKICAgIC8vIGxvY2FsQnl0ZXMgPSBMb2NhbFN0YXRlPGJ5dGVzPih7IGtleTogJ2IxJyB9KQogICAgYnl0ZWNfMiAvLyAiYjEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOQogICAgLy8gbG9jYWxCeXRlczogdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjMwCiAgICAvLyBsb2NhbEJ5dGVzMjogdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMQogICAgLy8gbG9jYWxCeXRlczIgPSBMb2NhbFN0YXRlPGJ5dGVzPigpCiAgICBieXRlY18zIC8vICJsb2NhbEJ5dGVzMiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjMwCiAgICAvLyBsb2NhbEJ5dGVzMjogdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzEKICAgIC8vIGxvY2FsRW5jb2RlZDogdGhpcy5sb2NhbEVuY29kZWQoVHhuLnNlbmRlcikudmFsdWUuY29weSgpLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjEyCiAgICAvLyBsb2NhbEVuY29kZWQgPSBMb2NhbFN0YXRlPFNhbXBsZUFycmF5PigpCiAgICBieXRlYyA0IC8vICJsb2NhbEVuY29kZWQiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMQogICAgLy8gbG9jYWxFbmNvZGVkOiB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS52YWx1ZS5jb3B5KCksCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjcKICAgIC8vIGxvY2FsVWludDogdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OAogICAgLy8gbG9jYWxVaW50ID0gTG9jYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiAnbDEnIH0pCiAgICBieXRlY18wIC8vICJsMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI3CiAgICAvLyBsb2NhbFVpbnQ6IHRoaXMubG9jYWxVaW50KFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI4CiAgICAvLyBsb2NhbFVpbnQyOiB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OQogICAgLy8gbG9jYWxVaW50MiA9IExvY2FsU3RhdGU8dWludDY0PigpCiAgICBieXRlY18xIC8vICJsb2NhbFVpbnQyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjgKICAgIC8vIGxvY2FsVWludDI6IHRoaXMubG9jYWxVaW50MihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOQogICAgLy8gbG9jYWxCeXRlczogdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjEwCiAgICAvLyBsb2NhbEJ5dGVzID0gTG9jYWxTdGF0ZTxieXRlcz4oeyBrZXk6ICdiMScgfSkKICAgIGJ5dGVjXzIgLy8gImIxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjkKICAgIC8vIGxvY2FsQnl0ZXM6IHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMAogICAgLy8gbG9jYWxCeXRlczI6IHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTEKICAgIC8vIGxvY2FsQnl0ZXMyID0gTG9jYWxTdGF0ZTxieXRlcz4oKQogICAgYnl0ZWNfMyAvLyAibG9jYWxCeXRlczIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMAogICAgLy8gbG9jYWxCeXRlczI6IHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzEKICAgIC8vIGxvY2FsRW5jb2RlZDogdGhpcy5sb2NhbEVuY29kZWQoVHhuLnNlbmRlcikudmFsdWUuY29weSgpLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjEyCiAgICAvLyBsb2NhbEVuY29kZWQgPSBMb2NhbFN0YXRlPFNhbXBsZUFycmF5PigpCiAgICBieXRlYyA0IC8vICJsb2NhbEVuY29kZWQiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMQogICAgLy8gbG9jYWxFbmNvZGVkOiB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS52YWx1ZS5jb3B5KCksCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI2LTMyCiAgICAvLyByZXR1cm4gewogICAgLy8gICBsb2NhbFVpbnQ6IHRoaXMubG9jYWxVaW50KFR4bi5zZW5kZXIpLnZhbHVlLAogICAgLy8gICBsb2NhbFVpbnQyOiB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUsCiAgICAvLyAgIGxvY2FsQnl0ZXM6IHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS52YWx1ZSwKICAgIC8vICAgbG9jYWxCeXRlczI6IHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikudmFsdWUsCiAgICAvLyAgIGxvY2FsRW5jb2RlZDogdGhpcy5sb2NhbEVuY29kZWQoVHhuLnNlbmRlcikudmFsdWUuY29weSgpLAogICAgLy8gfQogICAgdW5jb3ZlciA0CiAgICB1bmNvdmVyIDQKICAgIHVuY292ZXIgNAogICAgdW5jb3ZlciA0CiAgICB1bmNvdmVyIDQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjpMb2NhbFN0YXRlRGVtby5jbGVhclN0YXRlKCkgLT4gdm9pZDoKY2xlYXJTdGF0ZToKCmNsZWFyU3RhdGVfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjM2CiAgICAvLyB0aGlzLmxvY2FsVWludChUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OAogICAgLy8gbG9jYWxVaW50ID0gTG9jYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiAnbDEnIH0pCiAgICBieXRlY18wIC8vICJsMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjM2CiAgICAvLyB0aGlzLmxvY2FsVWludChUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgYXBwX2xvY2FsX2RlbAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzcKICAgIC8vIHRoaXMubG9jYWxVaW50MihUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OQogICAgLy8gbG9jYWxVaW50MiA9IExvY2FsU3RhdGU8dWludDY0PigpCiAgICBieXRlY18xIC8vICJsb2NhbFVpbnQyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzcKICAgIC8vIHRoaXMubG9jYWxVaW50MihUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgYXBwX2xvY2FsX2RlbAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzgKICAgIC8vIHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTAKICAgIC8vIGxvY2FsQnl0ZXMgPSBMb2NhbFN0YXRlPGJ5dGVzPih7IGtleTogJ2IxJyB9KQogICAgYnl0ZWNfMiAvLyAiYjEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozOAogICAgLy8gdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLmRlbGV0ZSgpCiAgICBhcHBfbG9jYWxfZGVsCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozOQogICAgLy8gdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTEKICAgIC8vIGxvY2FsQnl0ZXMyID0gTG9jYWxTdGF0ZTxieXRlcz4oKQogICAgYnl0ZWNfMyAvLyAibG9jYWxCeXRlczIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozOQogICAgLy8gdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgYXBwX2xvY2FsX2RlbAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6NDAKICAgIC8vIHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLmRlbGV0ZSgpCiAgICB0eG4gU2VuZGVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMgogICAgLy8gbG9jYWxFbmNvZGVkID0gTG9jYWxTdGF0ZTxTYW1wbGVBcnJheT4oKQogICAgYnl0ZWMgNCAvLyAibG9jYWxFbmNvZGVkIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6NDAKICAgIC8vIHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLmRlbGV0ZSgpCiAgICBhcHBfbG9jYWxfZGVsCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo6TG9jYWxTdGF0ZURlbW8uX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/local-state/LocalStateDemo.arc56.json b/tests/approvals/out/unoptimized/local-state/LocalStateDemo.arc56.json index 6daac9284..b65f902c6 100644 --- a/tests/approvals/out/unoptimized/local-state/LocalStateDemo.arc56.json +++ b/tests/approvals/out/unoptimized/local-state/LocalStateDemo.arc56.json @@ -247,8 +247,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDEwMCA4CiAgICBieXRlY2Jsb2NrICJsMSIgImxvY2FsVWludDIiICJiMSIgImxvY2FsQnl0ZXMyIiAibG9jYWxFbmNvZGVkIgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIExvY2FsU3RhdGVEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAOQoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIExvY2FsU3RhdGVEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4MjkzMTRkOTUgLy8gbWV0aG9kICJvcHRJbigpdm9pZCIKICAgIHB1c2hieXRlcyAweGFhZWZjYjQzIC8vIG1ldGhvZCAic2V0U3RhdGUoKHVpbnQ2NCxieXRlW10pLHVpbnQ2NFsxMF0pdm9pZCIKICAgIHB1c2hieXRlcyAweDY3ODE2Y2M1IC8vIG1ldGhvZCAiZ2V0U3RhdGUoKSh1aW50NjQsdWludDY0LGJ5dGVbXSxieXRlW10sdWludDY0WzEwXSkiCiAgICBwdXNoYnl0ZXMgMHgxMTE3MDUzNCAvLyBtZXRob2QgImNsZWFyU3RhdGUoKXZvaWQiCiAgICB1bmNvdmVyIDQKICAgIG1hdGNoIG1haW5fb3B0SW5fcm91dGVAMyBtYWluX3NldFN0YXRlX3JvdXRlQDQgbWFpbl9nZXRTdGF0ZV9yb3V0ZUA1IG1haW5fY2xlYXJTdGF0ZV9yb3V0ZUA2CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANzoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA4OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIExvY2FsU3RhdGVEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo6TG9jYWxTdGF0ZURlbW8uX19wdXlhX2FyYzRfcm91dGVyX19AMTQ6CiAgICByZXR1cm4KCm1haW5fY2xlYXJTdGF0ZV9yb3V0ZUA2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzUKICAgIC8vIHB1YmxpYyBjbGVhclN0YXRlKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBjbGVhclN0YXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OkxvY2FsU3RhdGVEZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2dldFN0YXRlX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNQogICAgLy8gcHVibGljIGdldFN0YXRlKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBnZXRTdGF0ZQogICAgY292ZXIgNAogICAgY292ZXIgMwogICAgY292ZXIgMgogICAgc3dhcAogICAgaXRvYgogICAgY292ZXIgMwogICAgaXRvYgogICAgY292ZXIgMwogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGNvdmVyIDMKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBjb3ZlciAzCiAgICBwdXNoYnl0ZXMgMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBpbnRjXzIgLy8gMTAwCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgY29uY2F0CiAgICBkaWcgMQogICAgbGVuCiAgICBpbnRjXzIgLy8gMTAwCiAgICArCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgY29uY2F0CiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjpMb2NhbFN0YXRlRGVtby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl9zZXRTdGF0ZV9yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTcKICAgIC8vIHB1YmxpYyBzZXRTdGF0ZSh7IGEsIGIgfTogeyBhOiB1aW50NjQ7IGI6IGJ5dGVzIH0sIGM6IFNhbXBsZUFycmF5KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgTG9jYWxTdGF0ZURlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzMgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBzd2FwCiAgICBkdXAKICAgIGludGNfMyAvLyA4CiAgICBleHRyYWN0X3VpbnQxNgogICAgc3dhcAogICAgZHVwCiAgICBsZW4KICAgIHN3YXAKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTcKICAgIC8vIHB1YmxpYyBzZXRTdGF0ZSh7IGEsIGIgfTogeyBhOiB1aW50NjQ7IGI6IGJ5dGVzIH0sIGM6IFNhbXBsZUFycmF5KSB7CiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBjYWxsc3ViIHNldFN0YXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OkxvY2FsU3RhdGVEZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX29wdEluX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxNAogICAgLy8gQGFiaW1ldGhvZCh7IGFsbG93QWN0aW9uczogJ09wdEluJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18xIC8vIE9wdEluCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgT3B0SW4KICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIG9wdEluCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OkxvY2FsU3RhdGVEZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2JhcmVfcm91dGluZ0A5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIExvY2FsU3RhdGVEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDEwCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTE6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTI6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMwoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgTG9jYWxTdGF0ZURlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjpMb2NhbFN0YXRlRGVtby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKCi8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjpMb2NhbFN0YXRlRGVtby5vcHRJbigpIC0+IHZvaWQ6Cm9wdEluOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OkxvY2FsU3RhdGVEZW1vLnNldFN0YXRlKHAuYTogdWludDY0LCBwLmI6IGJ5dGVzLCBjOiBieXRlcykgLT4gdm9pZDoKc2V0U3RhdGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxNwogICAgLy8gcHVibGljIHNldFN0YXRlKHsgYSwgYiB9OiB7IGE6IHVpbnQ2NDsgYjogYnl0ZXMgfSwgYzogU2FtcGxlQXJyYXkpIHsKICAgIHByb3RvIDMgMAogICAgZnJhbWVfZGlnIC0zCiAgICBmcmFtZV9kaWcgLTIKICAgIHN3YXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjE4CiAgICAvLyB0aGlzLmxvY2FsVWludChUeG4uc2VuZGVyKS52YWx1ZSA9IGEKICAgIHR4biBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjgKICAgIC8vIGxvY2FsVWludCA9IExvY2FsU3RhdGU8dWludDY0Pih7IGtleTogJ2wxJyB9KQogICAgYnl0ZWNfMCAvLyAibDEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxOAogICAgLy8gdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikudmFsdWUgPSBhCiAgICBkaWcgMgogICAgYXBwX2xvY2FsX3B1dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTkKICAgIC8vIHRoaXMubG9jYWxVaW50MihUeG4uc2VuZGVyKS52YWx1ZSA9IGEKICAgIHR4biBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjkKICAgIC8vIGxvY2FsVWludDIgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oKQogICAgYnl0ZWNfMSAvLyAibG9jYWxVaW50MiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjE5CiAgICAvLyB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUgPSBhCiAgICB1bmNvdmVyIDIKICAgIGFwcF9sb2NhbF9wdXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjIwCiAgICAvLyB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikudmFsdWUgPSBiCiAgICB0eG4gU2VuZGVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMAogICAgLy8gbG9jYWxCeXRlcyA9IExvY2FsU3RhdGU8Ynl0ZXM+KHsga2V5OiAnYjEnIH0pCiAgICBieXRlY18yIC8vICJiMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjIwCiAgICAvLyB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikudmFsdWUgPSBiCiAgICBkaWcgMgogICAgYXBwX2xvY2FsX3B1dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjEKICAgIC8vIHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikudmFsdWUgPSBiCiAgICB0eG4gU2VuZGVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMQogICAgLy8gbG9jYWxCeXRlczIgPSBMb2NhbFN0YXRlPGJ5dGVzPigpCiAgICBieXRlY18zIC8vICJsb2NhbEJ5dGVzMiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjIxCiAgICAvLyB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlID0gYgogICAgdW5jb3ZlciAyCiAgICBhcHBfbG9jYWxfcHV0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyMgogICAgLy8gdGhpcy5sb2NhbEVuY29kZWQoVHhuLnNlbmRlcikudmFsdWUgPSBjLmNvcHkoKQogICAgZnJhbWVfZGlnIC0xCiAgICB0eG4gU2VuZGVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMgogICAgLy8gbG9jYWxFbmNvZGVkID0gTG9jYWxTdGF0ZTxTYW1wbGVBcnJheT4oKQogICAgYnl0ZWMgNCAvLyAibG9jYWxFbmNvZGVkIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjIKICAgIC8vIHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLnZhbHVlID0gYy5jb3B5KCkKICAgIHVuY292ZXIgMgogICAgYXBwX2xvY2FsX3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OkxvY2FsU3RhdGVEZW1vLmdldFN0YXRlKCkgLT4gdWludDY0LCB1aW50NjQsIGJ5dGVzLCBieXRlcywgYnl0ZXM6CmdldFN0YXRlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjcKICAgIC8vIGxvY2FsVWludDogdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OAogICAgLy8gbG9jYWxVaW50ID0gTG9jYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiAnbDEnIH0pCiAgICBieXRlY18wIC8vICJsMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI3CiAgICAvLyBsb2NhbFVpbnQ6IHRoaXMubG9jYWxVaW50KFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOAogICAgLy8gbG9jYWxVaW50MjogdGhpcy5sb2NhbFVpbnQyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjkKICAgIC8vIGxvY2FsVWludDIgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oKQogICAgYnl0ZWNfMSAvLyAibG9jYWxVaW50MiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI4CiAgICAvLyBsb2NhbFVpbnQyOiB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjkKICAgIC8vIGxvY2FsQnl0ZXM6IHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMAogICAgLy8gbG9jYWxCeXRlcyA9IExvY2FsU3RhdGU8Ynl0ZXM+KHsga2V5OiAnYjEnIH0pCiAgICBieXRlY18yIC8vICJiMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI5CiAgICAvLyBsb2NhbEJ5dGVzOiB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzAKICAgIC8vIGxvY2FsQnl0ZXMyOiB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjExCiAgICAvLyBsb2NhbEJ5dGVzMiA9IExvY2FsU3RhdGU8Ynl0ZXM+KCkKICAgIGJ5dGVjXzMgLy8gImxvY2FsQnl0ZXMyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzAKICAgIC8vIGxvY2FsQnl0ZXMyOiB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjMxCiAgICAvLyBsb2NhbEVuY29kZWQ6IHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLnZhbHVlLmNvcHkoKSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMgogICAgLy8gbG9jYWxFbmNvZGVkID0gTG9jYWxTdGF0ZTxTYW1wbGVBcnJheT4oKQogICAgYnl0ZWMgNCAvLyAibG9jYWxFbmNvZGVkIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzEKICAgIC8vIGxvY2FsRW5jb2RlZDogdGhpcy5sb2NhbEVuY29kZWQoVHhuLnNlbmRlcikudmFsdWUuY29weSgpLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI3CiAgICAvLyBsb2NhbFVpbnQ6IHRoaXMubG9jYWxVaW50KFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjgKICAgIC8vIGxvY2FsVWludCA9IExvY2FsU3RhdGU8dWludDY0Pih7IGtleTogJ2wxJyB9KQogICAgYnl0ZWNfMCAvLyAibDEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNwogICAgLy8gbG9jYWxVaW50OiB0aGlzLmxvY2FsVWludChUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOAogICAgLy8gbG9jYWxVaW50MjogdGhpcy5sb2NhbFVpbnQyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjkKICAgIC8vIGxvY2FsVWludDIgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oKQogICAgYnl0ZWNfMSAvLyAibG9jYWxVaW50MiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI4CiAgICAvLyBsb2NhbFVpbnQyOiB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI5CiAgICAvLyBsb2NhbEJ5dGVzOiB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTAKICAgIC8vIGxvY2FsQnl0ZXMgPSBMb2NhbFN0YXRlPGJ5dGVzPih7IGtleTogJ2IxJyB9KQogICAgYnl0ZWNfMiAvLyAiYjEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOQogICAgLy8gbG9jYWxCeXRlczogdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjMwCiAgICAvLyBsb2NhbEJ5dGVzMjogdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMQogICAgLy8gbG9jYWxCeXRlczIgPSBMb2NhbFN0YXRlPGJ5dGVzPigpCiAgICBieXRlY18zIC8vICJsb2NhbEJ5dGVzMiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjMwCiAgICAvLyBsb2NhbEJ5dGVzMjogdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMQogICAgLy8gbG9jYWxFbmNvZGVkOiB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS52YWx1ZS5jb3B5KCksCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTIKICAgIC8vIGxvY2FsRW5jb2RlZCA9IExvY2FsU3RhdGU8U2FtcGxlQXJyYXk+KCkKICAgIGJ5dGVjIDQgLy8gImxvY2FsRW5jb2RlZCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjMxCiAgICAvLyBsb2NhbEVuY29kZWQ6IHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLnZhbHVlLmNvcHkoKSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNwogICAgLy8gbG9jYWxVaW50OiB0aGlzLmxvY2FsVWludChUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo4CiAgICAvLyBsb2NhbFVpbnQgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6ICdsMScgfSkKICAgIGJ5dGVjXzAgLy8gImwxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjcKICAgIC8vIGxvY2FsVWludDogdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjgKICAgIC8vIGxvY2FsVWludDI6IHRoaXMubG9jYWxVaW50MihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo5CiAgICAvLyBsb2NhbFVpbnQyID0gTG9jYWxTdGF0ZTx1aW50NjQ+KCkKICAgIGJ5dGVjXzEgLy8gImxvY2FsVWludDIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOAogICAgLy8gbG9jYWxVaW50MjogdGhpcy5sb2NhbFVpbnQyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI5CiAgICAvLyBsb2NhbEJ5dGVzOiB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTAKICAgIC8vIGxvY2FsQnl0ZXMgPSBMb2NhbFN0YXRlPGJ5dGVzPih7IGtleTogJ2IxJyB9KQogICAgYnl0ZWNfMiAvLyAiYjEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOQogICAgLy8gbG9jYWxCeXRlczogdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMAogICAgLy8gbG9jYWxCeXRlczI6IHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTEKICAgIC8vIGxvY2FsQnl0ZXMyID0gTG9jYWxTdGF0ZTxieXRlcz4oKQogICAgYnl0ZWNfMyAvLyAibG9jYWxCeXRlczIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMAogICAgLy8gbG9jYWxCeXRlczI6IHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzEKICAgIC8vIGxvY2FsRW5jb2RlZDogdGhpcy5sb2NhbEVuY29kZWQoVHhuLnNlbmRlcikudmFsdWUuY29weSgpLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjEyCiAgICAvLyBsb2NhbEVuY29kZWQgPSBMb2NhbFN0YXRlPFNhbXBsZUFycmF5PigpCiAgICBieXRlYyA0IC8vICJsb2NhbEVuY29kZWQiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMQogICAgLy8gbG9jYWxFbmNvZGVkOiB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS52YWx1ZS5jb3B5KCksCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjcKICAgIC8vIGxvY2FsVWludDogdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OAogICAgLy8gbG9jYWxVaW50ID0gTG9jYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiAnbDEnIH0pCiAgICBieXRlY18wIC8vICJsMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI3CiAgICAvLyBsb2NhbFVpbnQ6IHRoaXMubG9jYWxVaW50KFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI4CiAgICAvLyBsb2NhbFVpbnQyOiB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OQogICAgLy8gbG9jYWxVaW50MiA9IExvY2FsU3RhdGU8dWludDY0PigpCiAgICBieXRlY18xIC8vICJsb2NhbFVpbnQyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjgKICAgIC8vIGxvY2FsVWludDI6IHRoaXMubG9jYWxVaW50MihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOQogICAgLy8gbG9jYWxCeXRlczogdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjEwCiAgICAvLyBsb2NhbEJ5dGVzID0gTG9jYWxTdGF0ZTxieXRlcz4oeyBrZXk6ICdiMScgfSkKICAgIGJ5dGVjXzIgLy8gImIxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjkKICAgIC8vIGxvY2FsQnl0ZXM6IHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMAogICAgLy8gbG9jYWxCeXRlczI6IHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTEKICAgIC8vIGxvY2FsQnl0ZXMyID0gTG9jYWxTdGF0ZTxieXRlcz4oKQogICAgYnl0ZWNfMyAvLyAibG9jYWxCeXRlczIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMAogICAgLy8gbG9jYWxCeXRlczI6IHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjMxCiAgICAvLyBsb2NhbEVuY29kZWQ6IHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLnZhbHVlLmNvcHkoKSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMgogICAgLy8gbG9jYWxFbmNvZGVkID0gTG9jYWxTdGF0ZTxTYW1wbGVBcnJheT4oKQogICAgYnl0ZWMgNCAvLyAibG9jYWxFbmNvZGVkIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzEKICAgIC8vIGxvY2FsRW5jb2RlZDogdGhpcy5sb2NhbEVuY29kZWQoVHhuLnNlbmRlcikudmFsdWUuY29weSgpLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI3CiAgICAvLyBsb2NhbFVpbnQ6IHRoaXMubG9jYWxVaW50KFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjgKICAgIC8vIGxvY2FsVWludCA9IExvY2FsU3RhdGU8dWludDY0Pih7IGtleTogJ2wxJyB9KQogICAgYnl0ZWNfMCAvLyAibDEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNwogICAgLy8gbG9jYWxVaW50OiB0aGlzLmxvY2FsVWludChUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOAogICAgLy8gbG9jYWxVaW50MjogdGhpcy5sb2NhbFVpbnQyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjkKICAgIC8vIGxvY2FsVWludDIgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oKQogICAgYnl0ZWNfMSAvLyAibG9jYWxVaW50MiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI4CiAgICAvLyBsb2NhbFVpbnQyOiB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjkKICAgIC8vIGxvY2FsQnl0ZXM6IHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMAogICAgLy8gbG9jYWxCeXRlcyA9IExvY2FsU3RhdGU8Ynl0ZXM+KHsga2V5OiAnYjEnIH0pCiAgICBieXRlY18yIC8vICJiMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI5CiAgICAvLyBsb2NhbEJ5dGVzOiB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzAKICAgIC8vIGxvY2FsQnl0ZXMyOiB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjExCiAgICAvLyBsb2NhbEJ5dGVzMiA9IExvY2FsU3RhdGU8Ynl0ZXM+KCkKICAgIGJ5dGVjXzMgLy8gImxvY2FsQnl0ZXMyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzAKICAgIC8vIGxvY2FsQnl0ZXMyOiB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjMxCiAgICAvLyBsb2NhbEVuY29kZWQ6IHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLnZhbHVlLmNvcHkoKSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMgogICAgLy8gbG9jYWxFbmNvZGVkID0gTG9jYWxTdGF0ZTxTYW1wbGVBcnJheT4oKQogICAgYnl0ZWMgNCAvLyAibG9jYWxFbmNvZGVkIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzEKICAgIC8vIGxvY2FsRW5jb2RlZDogdGhpcy5sb2NhbEVuY29kZWQoVHhuLnNlbmRlcikudmFsdWUuY29weSgpLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNi0zMgogICAgLy8gcmV0dXJuIHsKICAgIC8vICAgbG9jYWxVaW50OiB0aGlzLmxvY2FsVWludChUeG4uc2VuZGVyKS52YWx1ZSwKICAgIC8vICAgbG9jYWxVaW50MjogdGhpcy5sb2NhbFVpbnQyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgLy8gICBsb2NhbEJ5dGVzOiB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikudmFsdWUsCiAgICAvLyAgIGxvY2FsQnl0ZXMyOiB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgLy8gICBsb2NhbEVuY29kZWQ6IHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLnZhbHVlLmNvcHkoKSwKICAgIC8vIH0KICAgIHVuY292ZXIgNAogICAgdW5jb3ZlciA0CiAgICB1bmNvdmVyIDQKICAgIHVuY292ZXIgNAogICAgdW5jb3ZlciA0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo6TG9jYWxTdGF0ZURlbW8uY2xlYXJTdGF0ZSgpIC0+IHZvaWQ6CmNsZWFyU3RhdGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozNgogICAgLy8gdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIHR4biBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjgKICAgIC8vIGxvY2FsVWludCA9IExvY2FsU3RhdGU8dWludDY0Pih7IGtleTogJ2wxJyB9KQogICAgYnl0ZWNfMCAvLyAibDEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozNgogICAgLy8gdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIGFwcF9sb2NhbF9kZWwKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjM3CiAgICAvLyB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIHR4biBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjkKICAgIC8vIGxvY2FsVWludDIgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oKQogICAgYnl0ZWNfMSAvLyAibG9jYWxVaW50MiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjM3CiAgICAvLyB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIGFwcF9sb2NhbF9kZWwKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjM4CiAgICAvLyB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIHR4biBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjEwCiAgICAvLyBsb2NhbEJ5dGVzID0gTG9jYWxTdGF0ZTxieXRlcz4oeyBrZXk6ICdiMScgfSkKICAgIGJ5dGVjXzIgLy8gImIxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzgKICAgIC8vIHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgYXBwX2xvY2FsX2RlbAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzkKICAgIC8vIHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIHR4biBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjExCiAgICAvLyBsb2NhbEJ5dGVzMiA9IExvY2FsU3RhdGU8Ynl0ZXM+KCkKICAgIGJ5dGVjXzMgLy8gImxvY2FsQnl0ZXMyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzkKICAgIC8vIHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIGFwcF9sb2NhbF9kZWwKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjQwCiAgICAvLyB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTIKICAgIC8vIGxvY2FsRW5jb2RlZCA9IExvY2FsU3RhdGU8U2FtcGxlQXJyYXk+KCkKICAgIGJ5dGVjIDQgLy8gImxvY2FsRW5jb2RlZCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjQwCiAgICAvLyB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgYXBwX2xvY2FsX2RlbAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OkxvY2FsU3RhdGVEZW1vLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDEwMCA4CiAgICBieXRlY2Jsb2NrICJsMSIgImxvY2FsVWludDIiICJiMSIgImxvY2FsQnl0ZXMyIiAibG9jYWxFbmNvZGVkIgoKbWFpbl9ibG9ja0AwOgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIExvY2FsU3RhdGVEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAOQoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIExvY2FsU3RhdGVEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4MjkzMTRkOTUgLy8gbWV0aG9kICJvcHRJbigpdm9pZCIKICAgIHB1c2hieXRlcyAweGFhZWZjYjQzIC8vIG1ldGhvZCAic2V0U3RhdGUoKHVpbnQ2NCxieXRlW10pLHVpbnQ2NFsxMF0pdm9pZCIKICAgIHB1c2hieXRlcyAweDY3ODE2Y2M1IC8vIG1ldGhvZCAiZ2V0U3RhdGUoKSh1aW50NjQsdWludDY0LGJ5dGVbXSxieXRlW10sdWludDY0WzEwXSkiCiAgICBwdXNoYnl0ZXMgMHgxMTE3MDUzNCAvLyBtZXRob2QgImNsZWFyU3RhdGUoKXZvaWQiCiAgICB1bmNvdmVyIDQKICAgIG1hdGNoIG1haW5fb3B0SW5fcm91dGVAMyBtYWluX3NldFN0YXRlX3JvdXRlQDQgbWFpbl9nZXRTdGF0ZV9yb3V0ZUA1IG1haW5fY2xlYXJTdGF0ZV9yb3V0ZUA2CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANzoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA4OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIExvY2FsU3RhdGVEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo6TG9jYWxTdGF0ZURlbW8uX19wdXlhX2FyYzRfcm91dGVyX19AMTQ6CiAgICByZXR1cm4KCm1haW5fY2xlYXJTdGF0ZV9yb3V0ZUA2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzUKICAgIC8vIHB1YmxpYyBjbGVhclN0YXRlKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBjbGVhclN0YXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OkxvY2FsU3RhdGVEZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2dldFN0YXRlX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNQogICAgLy8gcHVibGljIGdldFN0YXRlKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBnZXRTdGF0ZQogICAgY292ZXIgNAogICAgY292ZXIgMwogICAgY292ZXIgMgogICAgc3dhcAogICAgaXRvYgogICAgY292ZXIgMwogICAgaXRvYgogICAgY292ZXIgMwogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGNvdmVyIDMKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBjb3ZlciAzCiAgICBwdXNoYnl0ZXMgMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBpbnRjXzIgLy8gMTAwCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgY29uY2F0CiAgICBkaWcgMQogICAgbGVuCiAgICBpbnRjXzIgLy8gMTAwCiAgICArCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgY29uY2F0CiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjpMb2NhbFN0YXRlRGVtby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl9zZXRTdGF0ZV9yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTcKICAgIC8vIHB1YmxpYyBzZXRTdGF0ZSh7IGEsIGIgfTogeyBhOiB1aW50NjQ7IGI6IGJ5dGVzIH0sIGM6IFNhbXBsZUFycmF5KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgTG9jYWxTdGF0ZURlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzMgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBzd2FwCiAgICBkdXAKICAgIGludGNfMyAvLyA4CiAgICBleHRyYWN0X3VpbnQxNgogICAgc3dhcAogICAgZHVwCiAgICBsZW4KICAgIHN3YXAKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTcKICAgIC8vIHB1YmxpYyBzZXRTdGF0ZSh7IGEsIGIgfTogeyBhOiB1aW50NjQ7IGI6IGJ5dGVzIH0sIGM6IFNhbXBsZUFycmF5KSB7CiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBjYWxsc3ViIHNldFN0YXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OkxvY2FsU3RhdGVEZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX29wdEluX3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxNAogICAgLy8gQGFiaW1ldGhvZCh7IGFsbG93QWN0aW9uczogJ09wdEluJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18xIC8vIE9wdEluCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgT3B0SW4KICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIG9wdEluCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OkxvY2FsU3RhdGVEZW1vLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2JhcmVfcm91dGluZ0A5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIExvY2FsU3RhdGVEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDEwCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTE6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTI6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMwoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgTG9jYWxTdGF0ZURlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjpMb2NhbFN0YXRlRGVtby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKCi8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjpMb2NhbFN0YXRlRGVtby5vcHRJbigpIC0+IHZvaWQ6Cm9wdEluOgoKb3B0SW5fYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjpMb2NhbFN0YXRlRGVtby5zZXRTdGF0ZShwLmE6IHVpbnQ2NCwgcC5iOiBieXRlcywgYzogYnl0ZXMpIC0+IHZvaWQ6CnNldFN0YXRlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTcKICAgIC8vIHB1YmxpYyBzZXRTdGF0ZSh7IGEsIGIgfTogeyBhOiB1aW50NjQ7IGI6IGJ5dGVzIH0sIGM6IFNhbXBsZUFycmF5KSB7CiAgICBwcm90byAzIDAKCnNldFN0YXRlX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxNwogICAgLy8gcHVibGljIHNldFN0YXRlKHsgYSwgYiB9OiB7IGE6IHVpbnQ2NDsgYjogYnl0ZXMgfSwgYzogU2FtcGxlQXJyYXkpIHsKICAgIGZyYW1lX2RpZyAtMwogICAgZnJhbWVfZGlnIC0yCiAgICBzd2FwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxOAogICAgLy8gdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikudmFsdWUgPSBhCiAgICB0eG4gU2VuZGVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo4CiAgICAvLyBsb2NhbFVpbnQgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6ICdsMScgfSkKICAgIGJ5dGVjXzAgLy8gImwxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTgKICAgIC8vIHRoaXMubG9jYWxVaW50KFR4bi5zZW5kZXIpLnZhbHVlID0gYQogICAgZGlnIDIKICAgIGFwcF9sb2NhbF9wdXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjE5CiAgICAvLyB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUgPSBhCiAgICB0eG4gU2VuZGVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo5CiAgICAvLyBsb2NhbFVpbnQyID0gTG9jYWxTdGF0ZTx1aW50NjQ+KCkKICAgIGJ5dGVjXzEgLy8gImxvY2FsVWludDIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxOQogICAgLy8gdGhpcy5sb2NhbFVpbnQyKFR4bi5zZW5kZXIpLnZhbHVlID0gYQogICAgdW5jb3ZlciAyCiAgICBhcHBfbG9jYWxfcHV0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyMAogICAgLy8gdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlID0gYgogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTAKICAgIC8vIGxvY2FsQnl0ZXMgPSBMb2NhbFN0YXRlPGJ5dGVzPih7IGtleTogJ2IxJyB9KQogICAgYnl0ZWNfMiAvLyAiYjEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyMAogICAgLy8gdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlID0gYgogICAgZGlnIDIKICAgIGFwcF9sb2NhbF9wdXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjIxCiAgICAvLyB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlID0gYgogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTEKICAgIC8vIGxvY2FsQnl0ZXMyID0gTG9jYWxTdGF0ZTxieXRlcz4oKQogICAgYnl0ZWNfMyAvLyAibG9jYWxCeXRlczIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyMQogICAgLy8gdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS52YWx1ZSA9IGIKICAgIHVuY292ZXIgMgogICAgYXBwX2xvY2FsX3B1dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjIKICAgIC8vIHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLnZhbHVlID0gYy5jb3B5KCkKICAgIGZyYW1lX2RpZyAtMQogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTIKICAgIC8vIGxvY2FsRW5jb2RlZCA9IExvY2FsU3RhdGU8U2FtcGxlQXJyYXk+KCkKICAgIGJ5dGVjIDQgLy8gImxvY2FsRW5jb2RlZCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjIyCiAgICAvLyB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS52YWx1ZSA9IGMuY29weSgpCiAgICB1bmNvdmVyIDIKICAgIGFwcF9sb2NhbF9wdXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjpMb2NhbFN0YXRlRGVtby5nZXRTdGF0ZSgpIC0+IHVpbnQ2NCwgdWludDY0LCBieXRlcywgYnl0ZXMsIGJ5dGVzOgpnZXRTdGF0ZToKCmdldFN0YXRlX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNwogICAgLy8gbG9jYWxVaW50OiB0aGlzLmxvY2FsVWludChUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo4CiAgICAvLyBsb2NhbFVpbnQgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6ICdsMScgfSkKICAgIGJ5dGVjXzAgLy8gImwxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjcKICAgIC8vIGxvY2FsVWludDogdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI4CiAgICAvLyBsb2NhbFVpbnQyOiB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OQogICAgLy8gbG9jYWxVaW50MiA9IExvY2FsU3RhdGU8dWludDY0PigpCiAgICBieXRlY18xIC8vICJsb2NhbFVpbnQyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjgKICAgIC8vIGxvY2FsVWludDI6IHRoaXMubG9jYWxVaW50MihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOQogICAgLy8gbG9jYWxCeXRlczogdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjEwCiAgICAvLyBsb2NhbEJ5dGVzID0gTG9jYWxTdGF0ZTxieXRlcz4oeyBrZXk6ICdiMScgfSkKICAgIGJ5dGVjXzIgLy8gImIxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjkKICAgIC8vIGxvY2FsQnl0ZXM6IHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMAogICAgLy8gbG9jYWxCeXRlczI6IHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTEKICAgIC8vIGxvY2FsQnl0ZXMyID0gTG9jYWxTdGF0ZTxieXRlcz4oKQogICAgYnl0ZWNfMyAvLyAibG9jYWxCeXRlczIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMAogICAgLy8gbG9jYWxCeXRlczI6IHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzEKICAgIC8vIGxvY2FsRW5jb2RlZDogdGhpcy5sb2NhbEVuY29kZWQoVHhuLnNlbmRlcikudmFsdWUuY29weSgpLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjEyCiAgICAvLyBsb2NhbEVuY29kZWQgPSBMb2NhbFN0YXRlPFNhbXBsZUFycmF5PigpCiAgICBieXRlYyA0IC8vICJsb2NhbEVuY29kZWQiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMQogICAgLy8gbG9jYWxFbmNvZGVkOiB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS52YWx1ZS5jb3B5KCksCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjcKICAgIC8vIGxvY2FsVWludDogdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OAogICAgLy8gbG9jYWxVaW50ID0gTG9jYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiAnbDEnIH0pCiAgICBieXRlY18wIC8vICJsMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI3CiAgICAvLyBsb2NhbFVpbnQ6IHRoaXMubG9jYWxVaW50KFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI4CiAgICAvLyBsb2NhbFVpbnQyOiB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OQogICAgLy8gbG9jYWxVaW50MiA9IExvY2FsU3RhdGU8dWludDY0PigpCiAgICBieXRlY18xIC8vICJsb2NhbFVpbnQyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjgKICAgIC8vIGxvY2FsVWludDI6IHRoaXMubG9jYWxVaW50MihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjkKICAgIC8vIGxvY2FsQnl0ZXM6IHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMAogICAgLy8gbG9jYWxCeXRlcyA9IExvY2FsU3RhdGU8Ynl0ZXM+KHsga2V5OiAnYjEnIH0pCiAgICBieXRlY18yIC8vICJiMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI5CiAgICAvLyBsb2NhbEJ5dGVzOiB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzAKICAgIC8vIGxvY2FsQnl0ZXMyOiB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjExCiAgICAvLyBsb2NhbEJ5dGVzMiA9IExvY2FsU3RhdGU8Ynl0ZXM+KCkKICAgIGJ5dGVjXzMgLy8gImxvY2FsQnl0ZXMyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzAKICAgIC8vIGxvY2FsQnl0ZXMyOiB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjMxCiAgICAvLyBsb2NhbEVuY29kZWQ6IHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLnZhbHVlLmNvcHkoKSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMgogICAgLy8gbG9jYWxFbmNvZGVkID0gTG9jYWxTdGF0ZTxTYW1wbGVBcnJheT4oKQogICAgYnl0ZWMgNCAvLyAibG9jYWxFbmNvZGVkIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzEKICAgIC8vIGxvY2FsRW5jb2RlZDogdGhpcy5sb2NhbEVuY29kZWQoVHhuLnNlbmRlcikudmFsdWUuY29weSgpLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI3CiAgICAvLyBsb2NhbFVpbnQ6IHRoaXMubG9jYWxVaW50KFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjgKICAgIC8vIGxvY2FsVWludCA9IExvY2FsU3RhdGU8dWludDY0Pih7IGtleTogJ2wxJyB9KQogICAgYnl0ZWNfMCAvLyAibDEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNwogICAgLy8gbG9jYWxVaW50OiB0aGlzLmxvY2FsVWludChUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOAogICAgLy8gbG9jYWxVaW50MjogdGhpcy5sb2NhbFVpbnQyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjkKICAgIC8vIGxvY2FsVWludDIgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oKQogICAgYnl0ZWNfMSAvLyAibG9jYWxVaW50MiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI4CiAgICAvLyBsb2NhbFVpbnQyOiB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjkKICAgIC8vIGxvY2FsQnl0ZXM6IHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMAogICAgLy8gbG9jYWxCeXRlcyA9IExvY2FsU3RhdGU8Ynl0ZXM+KHsga2V5OiAnYjEnIH0pCiAgICBieXRlY18yIC8vICJiMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI5CiAgICAvLyBsb2NhbEJ5dGVzOiB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjMwCiAgICAvLyBsb2NhbEJ5dGVzMjogdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMQogICAgLy8gbG9jYWxCeXRlczIgPSBMb2NhbFN0YXRlPGJ5dGVzPigpCiAgICBieXRlY18zIC8vICJsb2NhbEJ5dGVzMiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjMwCiAgICAvLyBsb2NhbEJ5dGVzMjogdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMQogICAgLy8gbG9jYWxFbmNvZGVkOiB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS52YWx1ZS5jb3B5KCksCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTIKICAgIC8vIGxvY2FsRW5jb2RlZCA9IExvY2FsU3RhdGU8U2FtcGxlQXJyYXk+KCkKICAgIGJ5dGVjIDQgLy8gImxvY2FsRW5jb2RlZCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjMxCiAgICAvLyBsb2NhbEVuY29kZWQ6IHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLnZhbHVlLmNvcHkoKSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNwogICAgLy8gbG9jYWxVaW50OiB0aGlzLmxvY2FsVWludChUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo4CiAgICAvLyBsb2NhbFVpbnQgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6ICdsMScgfSkKICAgIGJ5dGVjXzAgLy8gImwxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjcKICAgIC8vIGxvY2FsVWludDogdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjgKICAgIC8vIGxvY2FsVWludDI6IHRoaXMubG9jYWxVaW50MihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo5CiAgICAvLyBsb2NhbFVpbnQyID0gTG9jYWxTdGF0ZTx1aW50NjQ+KCkKICAgIGJ5dGVjXzEgLy8gImxvY2FsVWludDIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOAogICAgLy8gbG9jYWxVaW50MjogdGhpcy5sb2NhbFVpbnQyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI5CiAgICAvLyBsb2NhbEJ5dGVzOiB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTAKICAgIC8vIGxvY2FsQnl0ZXMgPSBMb2NhbFN0YXRlPGJ5dGVzPih7IGtleTogJ2IxJyB9KQogICAgYnl0ZWNfMiAvLyAiYjEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOQogICAgLy8gbG9jYWxCeXRlczogdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjMwCiAgICAvLyBsb2NhbEJ5dGVzMjogdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMQogICAgLy8gbG9jYWxCeXRlczIgPSBMb2NhbFN0YXRlPGJ5dGVzPigpCiAgICBieXRlY18zIC8vICJsb2NhbEJ5dGVzMiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjMwCiAgICAvLyBsb2NhbEJ5dGVzMjogdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzEKICAgIC8vIGxvY2FsRW5jb2RlZDogdGhpcy5sb2NhbEVuY29kZWQoVHhuLnNlbmRlcikudmFsdWUuY29weSgpLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjEyCiAgICAvLyBsb2NhbEVuY29kZWQgPSBMb2NhbFN0YXRlPFNhbXBsZUFycmF5PigpCiAgICBieXRlYyA0IC8vICJsb2NhbEVuY29kZWQiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMQogICAgLy8gbG9jYWxFbmNvZGVkOiB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS52YWx1ZS5jb3B5KCksCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjcKICAgIC8vIGxvY2FsVWludDogdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OAogICAgLy8gbG9jYWxVaW50ID0gTG9jYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiAnbDEnIH0pCiAgICBieXRlY18wIC8vICJsMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI3CiAgICAvLyBsb2NhbFVpbnQ6IHRoaXMubG9jYWxVaW50KFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI4CiAgICAvLyBsb2NhbFVpbnQyOiB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OQogICAgLy8gbG9jYWxVaW50MiA9IExvY2FsU3RhdGU8dWludDY0PigpCiAgICBieXRlY18xIC8vICJsb2NhbFVpbnQyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjgKICAgIC8vIGxvY2FsVWludDI6IHRoaXMubG9jYWxVaW50MihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOQogICAgLy8gbG9jYWxCeXRlczogdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjEwCiAgICAvLyBsb2NhbEJ5dGVzID0gTG9jYWxTdGF0ZTxieXRlcz4oeyBrZXk6ICdiMScgfSkKICAgIGJ5dGVjXzIgLy8gImIxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjkKICAgIC8vIGxvY2FsQnl0ZXM6IHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMAogICAgLy8gbG9jYWxCeXRlczI6IHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTEKICAgIC8vIGxvY2FsQnl0ZXMyID0gTG9jYWxTdGF0ZTxieXRlcz4oKQogICAgYnl0ZWNfMyAvLyAibG9jYWxCeXRlczIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMAogICAgLy8gbG9jYWxCeXRlczI6IHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzEKICAgIC8vIGxvY2FsRW5jb2RlZDogdGhpcy5sb2NhbEVuY29kZWQoVHhuLnNlbmRlcikudmFsdWUuY29weSgpLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjEyCiAgICAvLyBsb2NhbEVuY29kZWQgPSBMb2NhbFN0YXRlPFNhbXBsZUFycmF5PigpCiAgICBieXRlYyA0IC8vICJsb2NhbEVuY29kZWQiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMQogICAgLy8gbG9jYWxFbmNvZGVkOiB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS52YWx1ZS5jb3B5KCksCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI2LTMyCiAgICAvLyByZXR1cm4gewogICAgLy8gICBsb2NhbFVpbnQ6IHRoaXMubG9jYWxVaW50KFR4bi5zZW5kZXIpLnZhbHVlLAogICAgLy8gICBsb2NhbFVpbnQyOiB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUsCiAgICAvLyAgIGxvY2FsQnl0ZXM6IHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS52YWx1ZSwKICAgIC8vICAgbG9jYWxCeXRlczI6IHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikudmFsdWUsCiAgICAvLyAgIGxvY2FsRW5jb2RlZDogdGhpcy5sb2NhbEVuY29kZWQoVHhuLnNlbmRlcikudmFsdWUuY29weSgpLAogICAgLy8gfQogICAgdW5jb3ZlciA0CiAgICB1bmNvdmVyIDQKICAgIHVuY292ZXIgNAogICAgdW5jb3ZlciA0CiAgICB1bmNvdmVyIDQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjpMb2NhbFN0YXRlRGVtby5jbGVhclN0YXRlKCkgLT4gdm9pZDoKY2xlYXJTdGF0ZToKCmNsZWFyU3RhdGVfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjM2CiAgICAvLyB0aGlzLmxvY2FsVWludChUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OAogICAgLy8gbG9jYWxVaW50ID0gTG9jYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiAnbDEnIH0pCiAgICBieXRlY18wIC8vICJsMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjM2CiAgICAvLyB0aGlzLmxvY2FsVWludChUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgYXBwX2xvY2FsX2RlbAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzcKICAgIC8vIHRoaXMubG9jYWxVaW50MihUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OQogICAgLy8gbG9jYWxVaW50MiA9IExvY2FsU3RhdGU8dWludDY0PigpCiAgICBieXRlY18xIC8vICJsb2NhbFVpbnQyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzcKICAgIC8vIHRoaXMubG9jYWxVaW50MihUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgYXBwX2xvY2FsX2RlbAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzgKICAgIC8vIHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTAKICAgIC8vIGxvY2FsQnl0ZXMgPSBMb2NhbFN0YXRlPGJ5dGVzPih7IGtleTogJ2IxJyB9KQogICAgYnl0ZWNfMiAvLyAiYjEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozOAogICAgLy8gdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLmRlbGV0ZSgpCiAgICBhcHBfbG9jYWxfZGVsCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozOQogICAgLy8gdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTEKICAgIC8vIGxvY2FsQnl0ZXMyID0gTG9jYWxTdGF0ZTxieXRlcz4oKQogICAgYnl0ZWNfMyAvLyAibG9jYWxCeXRlczIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozOQogICAgLy8gdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgYXBwX2xvY2FsX2RlbAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6NDAKICAgIC8vIHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLmRlbGV0ZSgpCiAgICB0eG4gU2VuZGVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMgogICAgLy8gbG9jYWxFbmNvZGVkID0gTG9jYWxTdGF0ZTxTYW1wbGVBcnJheT4oKQogICAgYnl0ZWMgNCAvLyAibG9jYWxFbmNvZGVkIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6NDAKICAgIC8vIHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLmRlbGV0ZSgpCiAgICBhcHBfbG9jYWxfZGVsCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo6TG9jYWxTdGF0ZURlbW8uX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiAEAAFkCCYFAmwxCmxvY2FsVWludDICYjELbG9jYWxCeXRlczIMbG9jYWxFbmNvZGVkMRsiE0EA1TYaAIAEKTFNlYAEqu/LQ4AEZ4FsxYAEERcFNE8EjgQAnQBrABMAAiJDMRkiEkQxGCITRIgBryNC/+4xGSISRDEYIhNEiADQTgROA04CTBZOAxZOA0kVFlcGAkxQTgNJFRZXBgJMUE4DgABMUExQJBZXBgJQSwEVJAgWVwYCUE8DUExQTFCABBUffHVMULAjQv+WMRkiEkQxGCITRDYaAUkiJVgXTEklWUxJFUxPAk8CUlcCADYaAk8CTwJPAogALSNC/2QxGSMSRDEYIhNEiAAbI0L/UzEZIkyOAQADQv9HMRgiEkSIARMjQv88iYoDAIv9i/5MMQAoSwJmMQApTwJmMQAqSwJmMQArTwJmi/8xACcETwJmiTEAIihjRDEAIiljRQFEMQAiKmNFAUQxACIrY0UBRDEAIicEY0UBRDEAIihjRQFEMQAiKWNEMQAiKmNFAUQxACIrY0UBRDEAIicEY0UBRDEAIihjRQFEMQAiKWNFAUQxACIqY0QxACIrY0UBRDEAIicEY0UBRDEAIihjRQFEMQAiKWNFAUQxACIqY0UBRDEAIitjRDEAIicEY0UBRDEAIihjRQFEMQAiKWNFAUQxACIqY0UBRDEAIitjRQFEMQAiJwRjRE8ETwRPBE8ETwSJMQAoaDEAKWgxACpoMQAraDEAJwRoiYk=", @@ -259,7 +259,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/local-state/LocalStateDemo.clear.teal b/tests/approvals/out/unoptimized/local-state/LocalStateDemo.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/local-state/LocalStateDemo.clear.teal +++ b/tests/approvals/out/unoptimized/local-state/LocalStateDemo.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/logic-sig/AllowNoFee.teal b/tests/approvals/out/unoptimized/logic-sig/AllowNoFee.teal index e15ba1b1e..66941b3b1 100644 --- a/tests/approvals/out/unoptimized/logic-sig/AllowNoFee.teal +++ b/tests/approvals/out/unoptimized/logic-sig/AllowNoFee.teal @@ -3,6 +3,8 @@ // tests/approvals/logic-sig.algo.ts::program() -> uint64: main: + +main_block@0: // tests/approvals/logic-sig.algo.ts:15 // feeIsZero() callsub feeIsZero @@ -14,6 +16,8 @@ main: // tests/approvals/logic-sig.algo.ts::feeIsZero() -> void: feeIsZero: + +feeIsZero_block@0: // tests/approvals/logic-sig.algo.ts:10 // assert(Txn.fee === 0, 'Fee must be zero') txn Fee diff --git a/tests/approvals/out/unoptimized/logic-sig/AlwaysAllow.teal b/tests/approvals/out/unoptimized/logic-sig/AlwaysAllow.teal index edd997f91..ab3ae595c 100644 --- a/tests/approvals/out/unoptimized/logic-sig/AlwaysAllow.teal +++ b/tests/approvals/out/unoptimized/logic-sig/AlwaysAllow.teal @@ -3,6 +3,8 @@ // tests/approvals/logic-sig.algo.ts::program() -> uint64: main: + +main_block@0: // tests/approvals/logic-sig.algo.ts:5 // return true pushint 1 // 1 diff --git a/tests/approvals/out/unoptimized/match-expr/MatchExprAlgo.approval.teal b/tests/approvals/out/unoptimized/match-expr/MatchExprAlgo.approval.teal index 1286075b2..cdc84f8a3 100644 --- a/tests/approvals/out/unoptimized/match-expr/MatchExprAlgo.approval.teal +++ b/tests/approvals/out/unoptimized/match-expr/MatchExprAlgo.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 8 5 +main_block@0: + main_block@1: // tests/approvals/match-expr.algo.ts:4 // class MatchExprAlgo extends Contract { @@ -84,6 +86,8 @@ testMatches: // tests/approvals/match-expr.algo.ts:5 // public testMatches(x: uint64) { proto 1 0 + +testMatches_block@0: // tests/approvals/match-expr.algo.ts:6 // const xObj = { x } frame_dig -1 @@ -319,4 +323,6 @@ testMatches_bool_false@3: // tests/approvals/match-expr.algo.ts::MatchExprAlgo.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/match-expr/MatchExprAlgo.arc32.json b/tests/approvals/out/unoptimized/match-expr/MatchExprAlgo.arc32.json index 03c5f0eee..425d0c615 100644 --- a/tests/approvals/out/unoptimized/match-expr/MatchExprAlgo.arc32.json +++ b/tests/approvals/out/unoptimized/match-expr/MatchExprAlgo.arc32.json @@ -7,8 +7,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDggNQoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo0CiAgICAvLyBjbGFzcyBNYXRjaEV4cHJBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANgoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo0CiAgICAvLyBjbGFzcyBNYXRjaEV4cHJBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4OTM3ZTcyOWEgLy8gbWV0aG9kICJ0ZXN0TWF0Y2hlcyh1aW50NjQpdm9pZCIKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fdGVzdE1hdGNoZXNfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6NAogICAgLy8gY2xhc3MgTWF0Y2hFeHByQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo6TWF0Y2hFeHByQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMToKICAgIHJldHVybgoKbWFpbl90ZXN0TWF0Y2hlc19yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo1CiAgICAvLyBwdWJsaWMgdGVzdE1hdGNoZXMoeDogdWludDY0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIE1hdGNoRXhwckFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyB0ZXN0TWF0Y2hlcyh4OiB1aW50NjQpIHsKICAgIGNhbGxzdWIgdGVzdE1hdGNoZXMKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjpNYXRjaEV4cHJBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo0CiAgICAvLyBjbGFzcyBNYXRjaEV4cHJBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6NAogICAgLy8gY2xhc3MgTWF0Y2hFeHByQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo6TWF0Y2hFeHByQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKCi8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6Ok1hdGNoRXhwckFsZ28udGVzdE1hdGNoZXMoeDogdWludDY0KSAtPiB2b2lkOgp0ZXN0TWF0Y2hlczoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6NQogICAgLy8gcHVibGljIHRlc3RNYXRjaGVzKHg6IHVpbnQ2NCkgewogICAgcHJvdG8gMSAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjYKICAgIC8vIGNvbnN0IHhPYmogPSB7IHggfQogICAgZnJhbWVfZGlnIC0xCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjcKICAgIC8vIGFzc2VydE1hdGNoKHhPYmosIHsgeDogNSB9LCAneCBzaG91bGQgYmUgNScpCiAgICBkdXAKICAgIGludGNfMyAvLyA1CiAgICA9PQogICAgYXNzZXJ0IC8vIHggc2hvdWxkIGJlIDUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6OQogICAgLy8gYXNzZXJ0KG1hdGNoKHhPYmosIHsgeDogeyBncmVhdGVyVGhhbjogNCB9IH0pKQogICAgZHVwCiAgICBwdXNoaW50IDQgLy8gNAogICAgPgogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjEwCiAgICAvLyBhc3NlcnQobWF0Y2goeE9iaiwgeyB4OiB7IGxlc3NUaGFuOiA2IH0gfSkpCiAgICBkdXAKICAgIHB1c2hpbnQgNiAvLyA2CiAgICA8CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6MTEKICAgIC8vIGFzc2VydChtYXRjaCh4T2JqLCB7IHg6IHsgZ3JlYXRlclRoYW5FcTogNSB9IH0pKQogICAgZHVwCiAgICBpbnRjXzMgLy8gNQogICAgPj0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxMgogICAgLy8gYXNzZXJ0KG1hdGNoKHhPYmosIHsgeDogeyBsZXNzVGhhbkVxOiA1IH0gfSkpCiAgICBpbnRjXzMgLy8gNQogICAgPD0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxNAogICAgLy8gY29uc3QgeEFycmF5ID0gW3hdCiAgICBwdXNoYnl0ZXMgMHgwMDAwCiAgICBwdXNoYnl0ZXMgMHgKICAgIGNvbmNhdAogICAgZXh0cmFjdCAyIDAKICAgIGZyYW1lX2RpZyAtMQogICAgaXRvYgogICAgcHVzaGJ5dGVzIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzIgLy8gOAogICAgLwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjE2CiAgICAvLyBhc3NlcnQobWF0Y2goeEFycmF5LCBbNV0pKQogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGJ6IHRlc3RNYXRjaGVzX2Jvb2xfZmFsc2VAMwoKdGVzdE1hdGNoZXNfYW5kX2NvbnRkQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjE2CiAgICAvLyBhc3NlcnQobWF0Y2goeEFycmF5LCBbNV0pKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18yIC8vIDgKICAgICoKICAgIGludGNfMiAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMyAvLyA1CiAgICA9PQogICAgYnogdGVzdE1hdGNoZXNfYm9vbF9mYWxzZUAzCgp0ZXN0TWF0Y2hlc19ib29sX3RydWVAMjoKICAgIGludGNfMSAvLyAxCgp0ZXN0TWF0Y2hlc19ib29sX21lcmdlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjE2CiAgICAvLyBhc3NlcnQobWF0Y2goeEFycmF5LCBbNV0pKQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjE3CiAgICAvLyBhc3NlcnQobWF0Y2goeEFycmF5LCBbeyBncmVhdGVyVGhhbjogNCB9XSkpCiAgICBmcmFtZV9kaWcgMAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGJ6IHRlc3RNYXRjaGVzX2Jvb2xfZmFsc2VANwoKdGVzdE1hdGNoZXNfYW5kX2NvbnRkQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjE3CiAgICAvLyBhc3NlcnQobWF0Y2goeEFycmF5LCBbeyBncmVhdGVyVGhhbjogNCB9XSkpCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzIgLy8gOAogICAgKgogICAgaW50Y18yIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCA0IC8vIDQKICAgID4KICAgIGJ6IHRlc3RNYXRjaGVzX2Jvb2xfZmFsc2VANwoKdGVzdE1hdGNoZXNfYm9vbF90cnVlQDY6CiAgICBpbnRjXzEgLy8gMQoKdGVzdE1hdGNoZXNfYm9vbF9tZXJnZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxNwogICAgLy8gYXNzZXJ0KG1hdGNoKHhBcnJheSwgW3sgZ3JlYXRlclRoYW46IDQgfV0pKQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjE4CiAgICAvLyBhc3NlcnQobWF0Y2goeEFycmF5LCBbeyBsZXNzVGhhbjogNiB9XSkpCiAgICBmcmFtZV9kaWcgMAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGJ6IHRlc3RNYXRjaGVzX2Jvb2xfZmFsc2VAMTEKCnRlc3RNYXRjaGVzX2FuZF9jb250ZEA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxOAogICAgLy8gYXNzZXJ0KG1hdGNoKHhBcnJheSwgW3sgbGVzc1RoYW46IDYgfV0pKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18yIC8vIDgKICAgICoKICAgIGludGNfMiAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgNiAvLyA2CiAgICA8CiAgICBieiB0ZXN0TWF0Y2hlc19ib29sX2ZhbHNlQDExCgp0ZXN0TWF0Y2hlc19ib29sX3RydWVAMTA6CiAgICBpbnRjXzEgLy8gMQoKdGVzdE1hdGNoZXNfYm9vbF9tZXJnZUAxMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6MTgKICAgIC8vIGFzc2VydChtYXRjaCh4QXJyYXksIFt7IGxlc3NUaGFuOiA2IH1dKSkKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxOQogICAgLy8gYXNzZXJ0KG1hdGNoKHhBcnJheSwgW3sgZ3JlYXRlclRoYW5FcTogNSB9XSkpCiAgICBmcmFtZV9kaWcgMAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGJ6IHRlc3RNYXRjaGVzX2Jvb2xfZmFsc2VAMTUKCnRlc3RNYXRjaGVzX2FuZF9jb250ZEAxMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6MTkKICAgIC8vIGFzc2VydChtYXRjaCh4QXJyYXksIFt7IGdyZWF0ZXJUaGFuRXE6IDUgfV0pKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18yIC8vIDgKICAgICoKICAgIGludGNfMiAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMyAvLyA1CiAgICA+PQogICAgYnogdGVzdE1hdGNoZXNfYm9vbF9mYWxzZUAxNQoKdGVzdE1hdGNoZXNfYm9vbF90cnVlQDE0OgogICAgaW50Y18xIC8vIDEKCnRlc3RNYXRjaGVzX2Jvb2xfbWVyZ2VAMTY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjE5CiAgICAvLyBhc3NlcnQobWF0Y2goeEFycmF5LCBbeyBncmVhdGVyVGhhbkVxOiA1IH1dKSkKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoyMAogICAgLy8gYXNzZXJ0KG1hdGNoKHhBcnJheSwgW3sgbGVzc1RoYW5FcTogNSB9XSkpCiAgICBmcmFtZV9kaWcgMAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGJ6IHRlc3RNYXRjaGVzX2Jvb2xfZmFsc2VAMTkKCnRlc3RNYXRjaGVzX2FuZF9jb250ZEAxNzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6MjAKICAgIC8vIGFzc2VydChtYXRjaCh4QXJyYXksIFt7IGxlc3NUaGFuRXE6IDUgfV0pKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18yIC8vIDgKICAgICoKICAgIGludGNfMiAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMyAvLyA1CiAgICA8PQogICAgYnogdGVzdE1hdGNoZXNfYm9vbF9mYWxzZUAxOQoKdGVzdE1hdGNoZXNfYm9vbF90cnVlQDE4OgogICAgaW50Y18xIC8vIDEKCnRlc3RNYXRjaGVzX2Jvb2xfbWVyZ2VAMjA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjIwCiAgICAvLyBhc3NlcnQobWF0Y2goeEFycmF5LCBbeyBsZXNzVGhhbkVxOiA1IH1dKSkKICAgIGFzc2VydAogICAgcmV0c3ViCgp0ZXN0TWF0Y2hlc19ib29sX2ZhbHNlQDE5OgogICAgaW50Y18wIC8vIDAKICAgIGIgdGVzdE1hdGNoZXNfYm9vbF9tZXJnZUAyMAoKdGVzdE1hdGNoZXNfYm9vbF9mYWxzZUAxNToKICAgIGludGNfMCAvLyAwCiAgICBiIHRlc3RNYXRjaGVzX2Jvb2xfbWVyZ2VAMTYKCnRlc3RNYXRjaGVzX2Jvb2xfZmFsc2VAMTE6CiAgICBpbnRjXzAgLy8gMAogICAgYiB0ZXN0TWF0Y2hlc19ib29sX21lcmdlQDEyCgp0ZXN0TWF0Y2hlc19ib29sX2ZhbHNlQDc6CiAgICBpbnRjXzAgLy8gMAogICAgYiB0ZXN0TWF0Y2hlc19ib29sX21lcmdlQDgKCnRlc3RNYXRjaGVzX2Jvb2xfZmFsc2VAMzoKICAgIGludGNfMCAvLyAwCiAgICBiIHRlc3RNYXRjaGVzX2Jvb2xfbWVyZ2VANAoKCi8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6Ok1hdGNoRXhwckFsZ28uX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDggNQoKbWFpbl9ibG9ja0AwOgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo0CiAgICAvLyBjbGFzcyBNYXRjaEV4cHJBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANgoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo0CiAgICAvLyBjbGFzcyBNYXRjaEV4cHJBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4OTM3ZTcyOWEgLy8gbWV0aG9kICJ0ZXN0TWF0Y2hlcyh1aW50NjQpdm9pZCIKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fdGVzdE1hdGNoZXNfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6NAogICAgLy8gY2xhc3MgTWF0Y2hFeHByQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo6TWF0Y2hFeHByQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMToKICAgIHJldHVybgoKbWFpbl90ZXN0TWF0Y2hlc19yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo1CiAgICAvLyBwdWJsaWMgdGVzdE1hdGNoZXMoeDogdWludDY0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIE1hdGNoRXhwckFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyB0ZXN0TWF0Y2hlcyh4OiB1aW50NjQpIHsKICAgIGNhbGxzdWIgdGVzdE1hdGNoZXMKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjpNYXRjaEV4cHJBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo0CiAgICAvLyBjbGFzcyBNYXRjaEV4cHJBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6NAogICAgLy8gY2xhc3MgTWF0Y2hFeHByQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo6TWF0Y2hFeHByQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKCi8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6Ok1hdGNoRXhwckFsZ28udGVzdE1hdGNoZXMoeDogdWludDY0KSAtPiB2b2lkOgp0ZXN0TWF0Y2hlczoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6NQogICAgLy8gcHVibGljIHRlc3RNYXRjaGVzKHg6IHVpbnQ2NCkgewogICAgcHJvdG8gMSAwCgp0ZXN0TWF0Y2hlc19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo2CiAgICAvLyBjb25zdCB4T2JqID0geyB4IH0KICAgIGZyYW1lX2RpZyAtMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo3CiAgICAvLyBhc3NlcnRNYXRjaCh4T2JqLCB7IHg6IDUgfSwgJ3ggc2hvdWxkIGJlIDUnKQogICAgZHVwCiAgICBpbnRjXzMgLy8gNQogICAgPT0KICAgIGFzc2VydCAvLyB4IHNob3VsZCBiZSA1CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjkKICAgIC8vIGFzc2VydChtYXRjaCh4T2JqLCB7IHg6IHsgZ3JlYXRlclRoYW46IDQgfSB9KSkKICAgIGR1cAogICAgcHVzaGludCA0IC8vIDQKICAgID4KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxMAogICAgLy8gYXNzZXJ0KG1hdGNoKHhPYmosIHsgeDogeyBsZXNzVGhhbjogNiB9IH0pKQogICAgZHVwCiAgICBwdXNoaW50IDYgLy8gNgogICAgPAogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjExCiAgICAvLyBhc3NlcnQobWF0Y2goeE9iaiwgeyB4OiB7IGdyZWF0ZXJUaGFuRXE6IDUgfSB9KSkKICAgIGR1cAogICAgaW50Y18zIC8vIDUKICAgID49CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6MTIKICAgIC8vIGFzc2VydChtYXRjaCh4T2JqLCB7IHg6IHsgbGVzc1RoYW5FcTogNSB9IH0pKQogICAgaW50Y18zIC8vIDUKICAgIDw9CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6MTQKICAgIC8vIGNvbnN0IHhBcnJheSA9IFt4XQogICAgcHVzaGJ5dGVzIDB4MDAwMAogICAgcHVzaGJ5dGVzIDB4CiAgICBjb25jYXQKICAgIGV4dHJhY3QgMiAwCiAgICBmcmFtZV9kaWcgLTEKICAgIGl0b2IKICAgIHB1c2hieXRlcyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgY29uY2F0CiAgICBkdXAKICAgIGxlbgogICAgaW50Y18yIC8vIDgKICAgIC8KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxNgogICAgLy8gYXNzZXJ0KG1hdGNoKHhBcnJheSwgWzVdKSkKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBieiB0ZXN0TWF0Y2hlc19ib29sX2ZhbHNlQDMKCnRlc3RNYXRjaGVzX2FuZF9jb250ZEAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxNgogICAgLy8gYXNzZXJ0KG1hdGNoKHhBcnJheSwgWzVdKSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18wIC8vIDAKICAgIGludGNfMiAvLyA4CiAgICAqCiAgICBpbnRjXzIgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzMgLy8gNQogICAgPT0KICAgIGJ6IHRlc3RNYXRjaGVzX2Jvb2xfZmFsc2VAMwoKdGVzdE1hdGNoZXNfYm9vbF90cnVlQDI6CiAgICBpbnRjXzEgLy8gMQoKdGVzdE1hdGNoZXNfYm9vbF9tZXJnZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxNgogICAgLy8gYXNzZXJ0KG1hdGNoKHhBcnJheSwgWzVdKSkKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxNwogICAgLy8gYXNzZXJ0KG1hdGNoKHhBcnJheSwgW3sgZ3JlYXRlclRoYW46IDQgfV0pKQogICAgZnJhbWVfZGlnIDAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBieiB0ZXN0TWF0Y2hlc19ib29sX2ZhbHNlQDcKCnRlc3RNYXRjaGVzX2FuZF9jb250ZEA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxNwogICAgLy8gYXNzZXJ0KG1hdGNoKHhBcnJheSwgW3sgZ3JlYXRlclRoYW46IDQgfV0pKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18yIC8vIDgKICAgICoKICAgIGludGNfMiAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgNCAvLyA0CiAgICA+CiAgICBieiB0ZXN0TWF0Y2hlc19ib29sX2ZhbHNlQDcKCnRlc3RNYXRjaGVzX2Jvb2xfdHJ1ZUA2OgogICAgaW50Y18xIC8vIDEKCnRlc3RNYXRjaGVzX2Jvb2xfbWVyZ2VAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6MTcKICAgIC8vIGFzc2VydChtYXRjaCh4QXJyYXksIFt7IGdyZWF0ZXJUaGFuOiA0IH1dKSkKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxOAogICAgLy8gYXNzZXJ0KG1hdGNoKHhBcnJheSwgW3sgbGVzc1RoYW46IDYgfV0pKQogICAgZnJhbWVfZGlnIDAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBieiB0ZXN0TWF0Y2hlc19ib29sX2ZhbHNlQDExCgp0ZXN0TWF0Y2hlc19hbmRfY29udGRAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6MTgKICAgIC8vIGFzc2VydChtYXRjaCh4QXJyYXksIFt7IGxlc3NUaGFuOiA2IH1dKSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18wIC8vIDAKICAgIGludGNfMiAvLyA4CiAgICAqCiAgICBpbnRjXzIgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDYgLy8gNgogICAgPAogICAgYnogdGVzdE1hdGNoZXNfYm9vbF9mYWxzZUAxMQoKdGVzdE1hdGNoZXNfYm9vbF90cnVlQDEwOgogICAgaW50Y18xIC8vIDEKCnRlc3RNYXRjaGVzX2Jvb2xfbWVyZ2VAMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjE4CiAgICAvLyBhc3NlcnQobWF0Y2goeEFycmF5LCBbeyBsZXNzVGhhbjogNiB9XSkpCiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6MTkKICAgIC8vIGFzc2VydChtYXRjaCh4QXJyYXksIFt7IGdyZWF0ZXJUaGFuRXE6IDUgfV0pKQogICAgZnJhbWVfZGlnIDAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBieiB0ZXN0TWF0Y2hlc19ib29sX2ZhbHNlQDE1Cgp0ZXN0TWF0Y2hlc19hbmRfY29udGRAMTM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjE5CiAgICAvLyBhc3NlcnQobWF0Y2goeEFycmF5LCBbeyBncmVhdGVyVGhhbkVxOiA1IH1dKSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18wIC8vIDAKICAgIGludGNfMiAvLyA4CiAgICAqCiAgICBpbnRjXzIgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzMgLy8gNQogICAgPj0KICAgIGJ6IHRlc3RNYXRjaGVzX2Jvb2xfZmFsc2VAMTUKCnRlc3RNYXRjaGVzX2Jvb2xfdHJ1ZUAxNDoKICAgIGludGNfMSAvLyAxCgp0ZXN0TWF0Y2hlc19ib29sX21lcmdlQDE2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxOQogICAgLy8gYXNzZXJ0KG1hdGNoKHhBcnJheSwgW3sgZ3JlYXRlclRoYW5FcTogNSB9XSkpCiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6MjAKICAgIC8vIGFzc2VydChtYXRjaCh4QXJyYXksIFt7IGxlc3NUaGFuRXE6IDUgfV0pKQogICAgZnJhbWVfZGlnIDAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBieiB0ZXN0TWF0Y2hlc19ib29sX2ZhbHNlQDE5Cgp0ZXN0TWF0Y2hlc19hbmRfY29udGRAMTc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjIwCiAgICAvLyBhc3NlcnQobWF0Y2goeEFycmF5LCBbeyBsZXNzVGhhbkVxOiA1IH1dKSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18wIC8vIDAKICAgIGludGNfMiAvLyA4CiAgICAqCiAgICBpbnRjXzIgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzMgLy8gNQogICAgPD0KICAgIGJ6IHRlc3RNYXRjaGVzX2Jvb2xfZmFsc2VAMTkKCnRlc3RNYXRjaGVzX2Jvb2xfdHJ1ZUAxODoKICAgIGludGNfMSAvLyAxCgp0ZXN0TWF0Y2hlc19ib29sX21lcmdlQDIwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoyMAogICAgLy8gYXNzZXJ0KG1hdGNoKHhBcnJheSwgW3sgbGVzc1RoYW5FcTogNSB9XSkpCiAgICBhc3NlcnQKICAgIHJldHN1YgoKdGVzdE1hdGNoZXNfYm9vbF9mYWxzZUAxOToKICAgIGludGNfMCAvLyAwCiAgICBiIHRlc3RNYXRjaGVzX2Jvb2xfbWVyZ2VAMjAKCnRlc3RNYXRjaGVzX2Jvb2xfZmFsc2VAMTU6CiAgICBpbnRjXzAgLy8gMAogICAgYiB0ZXN0TWF0Y2hlc19ib29sX21lcmdlQDE2Cgp0ZXN0TWF0Y2hlc19ib29sX2ZhbHNlQDExOgogICAgaW50Y18wIC8vIDAKICAgIGIgdGVzdE1hdGNoZXNfYm9vbF9tZXJnZUAxMgoKdGVzdE1hdGNoZXNfYm9vbF9mYWxzZUA3OgogICAgaW50Y18wIC8vIDAKICAgIGIgdGVzdE1hdGNoZXNfYm9vbF9tZXJnZUA4Cgp0ZXN0TWF0Y2hlc19ib29sX2ZhbHNlQDM6CiAgICBpbnRjXzAgLy8gMAogICAgYiB0ZXN0TWF0Y2hlc19ib29sX21lcmdlQDQKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjpNYXRjaEV4cHJBbGdvLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/match-expr/MatchExprAlgo.arc56.json b/tests/approvals/out/unoptimized/match-expr/MatchExprAlgo.arc56.json index d85e524bf..97f7c9aab 100644 --- a/tests/approvals/out/unoptimized/match-expr/MatchExprAlgo.arc56.json +++ b/tests/approvals/out/unoptimized/match-expr/MatchExprAlgo.arc56.json @@ -103,8 +103,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDggNQoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo0CiAgICAvLyBjbGFzcyBNYXRjaEV4cHJBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANgoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo0CiAgICAvLyBjbGFzcyBNYXRjaEV4cHJBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4OTM3ZTcyOWEgLy8gbWV0aG9kICJ0ZXN0TWF0Y2hlcyh1aW50NjQpdm9pZCIKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fdGVzdE1hdGNoZXNfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6NAogICAgLy8gY2xhc3MgTWF0Y2hFeHByQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo6TWF0Y2hFeHByQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMToKICAgIHJldHVybgoKbWFpbl90ZXN0TWF0Y2hlc19yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo1CiAgICAvLyBwdWJsaWMgdGVzdE1hdGNoZXMoeDogdWludDY0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIE1hdGNoRXhwckFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyB0ZXN0TWF0Y2hlcyh4OiB1aW50NjQpIHsKICAgIGNhbGxzdWIgdGVzdE1hdGNoZXMKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjpNYXRjaEV4cHJBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo0CiAgICAvLyBjbGFzcyBNYXRjaEV4cHJBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6NAogICAgLy8gY2xhc3MgTWF0Y2hFeHByQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo6TWF0Y2hFeHByQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKCi8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6Ok1hdGNoRXhwckFsZ28udGVzdE1hdGNoZXMoeDogdWludDY0KSAtPiB2b2lkOgp0ZXN0TWF0Y2hlczoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6NQogICAgLy8gcHVibGljIHRlc3RNYXRjaGVzKHg6IHVpbnQ2NCkgewogICAgcHJvdG8gMSAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjYKICAgIC8vIGNvbnN0IHhPYmogPSB7IHggfQogICAgZnJhbWVfZGlnIC0xCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjcKICAgIC8vIGFzc2VydE1hdGNoKHhPYmosIHsgeDogNSB9LCAneCBzaG91bGQgYmUgNScpCiAgICBkdXAKICAgIGludGNfMyAvLyA1CiAgICA9PQogICAgYXNzZXJ0IC8vIHggc2hvdWxkIGJlIDUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6OQogICAgLy8gYXNzZXJ0KG1hdGNoKHhPYmosIHsgeDogeyBncmVhdGVyVGhhbjogNCB9IH0pKQogICAgZHVwCiAgICBwdXNoaW50IDQgLy8gNAogICAgPgogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjEwCiAgICAvLyBhc3NlcnQobWF0Y2goeE9iaiwgeyB4OiB7IGxlc3NUaGFuOiA2IH0gfSkpCiAgICBkdXAKICAgIHB1c2hpbnQgNiAvLyA2CiAgICA8CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6MTEKICAgIC8vIGFzc2VydChtYXRjaCh4T2JqLCB7IHg6IHsgZ3JlYXRlclRoYW5FcTogNSB9IH0pKQogICAgZHVwCiAgICBpbnRjXzMgLy8gNQogICAgPj0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxMgogICAgLy8gYXNzZXJ0KG1hdGNoKHhPYmosIHsgeDogeyBsZXNzVGhhbkVxOiA1IH0gfSkpCiAgICBpbnRjXzMgLy8gNQogICAgPD0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxNAogICAgLy8gY29uc3QgeEFycmF5ID0gW3hdCiAgICBwdXNoYnl0ZXMgMHgwMDAwCiAgICBwdXNoYnl0ZXMgMHgKICAgIGNvbmNhdAogICAgZXh0cmFjdCAyIDAKICAgIGZyYW1lX2RpZyAtMQogICAgaXRvYgogICAgcHVzaGJ5dGVzIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzIgLy8gOAogICAgLwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjE2CiAgICAvLyBhc3NlcnQobWF0Y2goeEFycmF5LCBbNV0pKQogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGJ6IHRlc3RNYXRjaGVzX2Jvb2xfZmFsc2VAMwoKdGVzdE1hdGNoZXNfYW5kX2NvbnRkQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjE2CiAgICAvLyBhc3NlcnQobWF0Y2goeEFycmF5LCBbNV0pKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18yIC8vIDgKICAgICoKICAgIGludGNfMiAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMyAvLyA1CiAgICA9PQogICAgYnogdGVzdE1hdGNoZXNfYm9vbF9mYWxzZUAzCgp0ZXN0TWF0Y2hlc19ib29sX3RydWVAMjoKICAgIGludGNfMSAvLyAxCgp0ZXN0TWF0Y2hlc19ib29sX21lcmdlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjE2CiAgICAvLyBhc3NlcnQobWF0Y2goeEFycmF5LCBbNV0pKQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjE3CiAgICAvLyBhc3NlcnQobWF0Y2goeEFycmF5LCBbeyBncmVhdGVyVGhhbjogNCB9XSkpCiAgICBmcmFtZV9kaWcgMAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGJ6IHRlc3RNYXRjaGVzX2Jvb2xfZmFsc2VANwoKdGVzdE1hdGNoZXNfYW5kX2NvbnRkQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjE3CiAgICAvLyBhc3NlcnQobWF0Y2goeEFycmF5LCBbeyBncmVhdGVyVGhhbjogNCB9XSkpCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzIgLy8gOAogICAgKgogICAgaW50Y18yIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCA0IC8vIDQKICAgID4KICAgIGJ6IHRlc3RNYXRjaGVzX2Jvb2xfZmFsc2VANwoKdGVzdE1hdGNoZXNfYm9vbF90cnVlQDY6CiAgICBpbnRjXzEgLy8gMQoKdGVzdE1hdGNoZXNfYm9vbF9tZXJnZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxNwogICAgLy8gYXNzZXJ0KG1hdGNoKHhBcnJheSwgW3sgZ3JlYXRlclRoYW46IDQgfV0pKQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjE4CiAgICAvLyBhc3NlcnQobWF0Y2goeEFycmF5LCBbeyBsZXNzVGhhbjogNiB9XSkpCiAgICBmcmFtZV9kaWcgMAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGJ6IHRlc3RNYXRjaGVzX2Jvb2xfZmFsc2VAMTEKCnRlc3RNYXRjaGVzX2FuZF9jb250ZEA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxOAogICAgLy8gYXNzZXJ0KG1hdGNoKHhBcnJheSwgW3sgbGVzc1RoYW46IDYgfV0pKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18yIC8vIDgKICAgICoKICAgIGludGNfMiAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgNiAvLyA2CiAgICA8CiAgICBieiB0ZXN0TWF0Y2hlc19ib29sX2ZhbHNlQDExCgp0ZXN0TWF0Y2hlc19ib29sX3RydWVAMTA6CiAgICBpbnRjXzEgLy8gMQoKdGVzdE1hdGNoZXNfYm9vbF9tZXJnZUAxMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6MTgKICAgIC8vIGFzc2VydChtYXRjaCh4QXJyYXksIFt7IGxlc3NUaGFuOiA2IH1dKSkKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxOQogICAgLy8gYXNzZXJ0KG1hdGNoKHhBcnJheSwgW3sgZ3JlYXRlclRoYW5FcTogNSB9XSkpCiAgICBmcmFtZV9kaWcgMAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGJ6IHRlc3RNYXRjaGVzX2Jvb2xfZmFsc2VAMTUKCnRlc3RNYXRjaGVzX2FuZF9jb250ZEAxMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6MTkKICAgIC8vIGFzc2VydChtYXRjaCh4QXJyYXksIFt7IGdyZWF0ZXJUaGFuRXE6IDUgfV0pKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18yIC8vIDgKICAgICoKICAgIGludGNfMiAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMyAvLyA1CiAgICA+PQogICAgYnogdGVzdE1hdGNoZXNfYm9vbF9mYWxzZUAxNQoKdGVzdE1hdGNoZXNfYm9vbF90cnVlQDE0OgogICAgaW50Y18xIC8vIDEKCnRlc3RNYXRjaGVzX2Jvb2xfbWVyZ2VAMTY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjE5CiAgICAvLyBhc3NlcnQobWF0Y2goeEFycmF5LCBbeyBncmVhdGVyVGhhbkVxOiA1IH1dKSkKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoyMAogICAgLy8gYXNzZXJ0KG1hdGNoKHhBcnJheSwgW3sgbGVzc1RoYW5FcTogNSB9XSkpCiAgICBmcmFtZV9kaWcgMAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGJ6IHRlc3RNYXRjaGVzX2Jvb2xfZmFsc2VAMTkKCnRlc3RNYXRjaGVzX2FuZF9jb250ZEAxNzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6MjAKICAgIC8vIGFzc2VydChtYXRjaCh4QXJyYXksIFt7IGxlc3NUaGFuRXE6IDUgfV0pKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18yIC8vIDgKICAgICoKICAgIGludGNfMiAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMyAvLyA1CiAgICA8PQogICAgYnogdGVzdE1hdGNoZXNfYm9vbF9mYWxzZUAxOQoKdGVzdE1hdGNoZXNfYm9vbF90cnVlQDE4OgogICAgaW50Y18xIC8vIDEKCnRlc3RNYXRjaGVzX2Jvb2xfbWVyZ2VAMjA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjIwCiAgICAvLyBhc3NlcnQobWF0Y2goeEFycmF5LCBbeyBsZXNzVGhhbkVxOiA1IH1dKSkKICAgIGFzc2VydAogICAgcmV0c3ViCgp0ZXN0TWF0Y2hlc19ib29sX2ZhbHNlQDE5OgogICAgaW50Y18wIC8vIDAKICAgIGIgdGVzdE1hdGNoZXNfYm9vbF9tZXJnZUAyMAoKdGVzdE1hdGNoZXNfYm9vbF9mYWxzZUAxNToKICAgIGludGNfMCAvLyAwCiAgICBiIHRlc3RNYXRjaGVzX2Jvb2xfbWVyZ2VAMTYKCnRlc3RNYXRjaGVzX2Jvb2xfZmFsc2VAMTE6CiAgICBpbnRjXzAgLy8gMAogICAgYiB0ZXN0TWF0Y2hlc19ib29sX21lcmdlQDEyCgp0ZXN0TWF0Y2hlc19ib29sX2ZhbHNlQDc6CiAgICBpbnRjXzAgLy8gMAogICAgYiB0ZXN0TWF0Y2hlc19ib29sX21lcmdlQDgKCnRlc3RNYXRjaGVzX2Jvb2xfZmFsc2VAMzoKICAgIGludGNfMCAvLyAwCiAgICBiIHRlc3RNYXRjaGVzX2Jvb2xfbWVyZ2VANAoKCi8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6Ok1hdGNoRXhwckFsZ28uX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDggNQoKbWFpbl9ibG9ja0AwOgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo0CiAgICAvLyBjbGFzcyBNYXRjaEV4cHJBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANgoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo0CiAgICAvLyBjbGFzcyBNYXRjaEV4cHJBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4OTM3ZTcyOWEgLy8gbWV0aG9kICJ0ZXN0TWF0Y2hlcyh1aW50NjQpdm9pZCIKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fdGVzdE1hdGNoZXNfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6NAogICAgLy8gY2xhc3MgTWF0Y2hFeHByQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo6TWF0Y2hFeHByQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMToKICAgIHJldHVybgoKbWFpbl90ZXN0TWF0Y2hlc19yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo1CiAgICAvLyBwdWJsaWMgdGVzdE1hdGNoZXMoeDogdWludDY0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIE1hdGNoRXhwckFsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyB0ZXN0TWF0Y2hlcyh4OiB1aW50NjQpIHsKICAgIGNhbGxzdWIgdGVzdE1hdGNoZXMKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjpNYXRjaEV4cHJBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo0CiAgICAvLyBjbGFzcyBNYXRjaEV4cHJBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6NAogICAgLy8gY2xhc3MgTWF0Y2hFeHByQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo6TWF0Y2hFeHByQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKCi8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6Ok1hdGNoRXhwckFsZ28udGVzdE1hdGNoZXMoeDogdWludDY0KSAtPiB2b2lkOgp0ZXN0TWF0Y2hlczoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6NQogICAgLy8gcHVibGljIHRlc3RNYXRjaGVzKHg6IHVpbnQ2NCkgewogICAgcHJvdG8gMSAwCgp0ZXN0TWF0Y2hlc19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo2CiAgICAvLyBjb25zdCB4T2JqID0geyB4IH0KICAgIGZyYW1lX2RpZyAtMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czo3CiAgICAvLyBhc3NlcnRNYXRjaCh4T2JqLCB7IHg6IDUgfSwgJ3ggc2hvdWxkIGJlIDUnKQogICAgZHVwCiAgICBpbnRjXzMgLy8gNQogICAgPT0KICAgIGFzc2VydCAvLyB4IHNob3VsZCBiZSA1CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjkKICAgIC8vIGFzc2VydChtYXRjaCh4T2JqLCB7IHg6IHsgZ3JlYXRlclRoYW46IDQgfSB9KSkKICAgIGR1cAogICAgcHVzaGludCA0IC8vIDQKICAgID4KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxMAogICAgLy8gYXNzZXJ0KG1hdGNoKHhPYmosIHsgeDogeyBsZXNzVGhhbjogNiB9IH0pKQogICAgZHVwCiAgICBwdXNoaW50IDYgLy8gNgogICAgPAogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjExCiAgICAvLyBhc3NlcnQobWF0Y2goeE9iaiwgeyB4OiB7IGdyZWF0ZXJUaGFuRXE6IDUgfSB9KSkKICAgIGR1cAogICAgaW50Y18zIC8vIDUKICAgID49CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6MTIKICAgIC8vIGFzc2VydChtYXRjaCh4T2JqLCB7IHg6IHsgbGVzc1RoYW5FcTogNSB9IH0pKQogICAgaW50Y18zIC8vIDUKICAgIDw9CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6MTQKICAgIC8vIGNvbnN0IHhBcnJheSA9IFt4XQogICAgcHVzaGJ5dGVzIDB4MDAwMAogICAgcHVzaGJ5dGVzIDB4CiAgICBjb25jYXQKICAgIGV4dHJhY3QgMiAwCiAgICBmcmFtZV9kaWcgLTEKICAgIGl0b2IKICAgIHB1c2hieXRlcyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgY29uY2F0CiAgICBkdXAKICAgIGxlbgogICAgaW50Y18yIC8vIDgKICAgIC8KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxNgogICAgLy8gYXNzZXJ0KG1hdGNoKHhBcnJheSwgWzVdKSkKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBieiB0ZXN0TWF0Y2hlc19ib29sX2ZhbHNlQDMKCnRlc3RNYXRjaGVzX2FuZF9jb250ZEAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxNgogICAgLy8gYXNzZXJ0KG1hdGNoKHhBcnJheSwgWzVdKSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18wIC8vIDAKICAgIGludGNfMiAvLyA4CiAgICAqCiAgICBpbnRjXzIgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzMgLy8gNQogICAgPT0KICAgIGJ6IHRlc3RNYXRjaGVzX2Jvb2xfZmFsc2VAMwoKdGVzdE1hdGNoZXNfYm9vbF90cnVlQDI6CiAgICBpbnRjXzEgLy8gMQoKdGVzdE1hdGNoZXNfYm9vbF9tZXJnZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxNgogICAgLy8gYXNzZXJ0KG1hdGNoKHhBcnJheSwgWzVdKSkKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxNwogICAgLy8gYXNzZXJ0KG1hdGNoKHhBcnJheSwgW3sgZ3JlYXRlclRoYW46IDQgfV0pKQogICAgZnJhbWVfZGlnIDAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBieiB0ZXN0TWF0Y2hlc19ib29sX2ZhbHNlQDcKCnRlc3RNYXRjaGVzX2FuZF9jb250ZEA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxNwogICAgLy8gYXNzZXJ0KG1hdGNoKHhBcnJheSwgW3sgZ3JlYXRlclRoYW46IDQgfV0pKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18yIC8vIDgKICAgICoKICAgIGludGNfMiAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgNCAvLyA0CiAgICA+CiAgICBieiB0ZXN0TWF0Y2hlc19ib29sX2ZhbHNlQDcKCnRlc3RNYXRjaGVzX2Jvb2xfdHJ1ZUA2OgogICAgaW50Y18xIC8vIDEKCnRlc3RNYXRjaGVzX2Jvb2xfbWVyZ2VAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6MTcKICAgIC8vIGFzc2VydChtYXRjaCh4QXJyYXksIFt7IGdyZWF0ZXJUaGFuOiA0IH1dKSkKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxOAogICAgLy8gYXNzZXJ0KG1hdGNoKHhBcnJheSwgW3sgbGVzc1RoYW46IDYgfV0pKQogICAgZnJhbWVfZGlnIDAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBieiB0ZXN0TWF0Y2hlc19ib29sX2ZhbHNlQDExCgp0ZXN0TWF0Y2hlc19hbmRfY29udGRAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6MTgKICAgIC8vIGFzc2VydChtYXRjaCh4QXJyYXksIFt7IGxlc3NUaGFuOiA2IH1dKSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18wIC8vIDAKICAgIGludGNfMiAvLyA4CiAgICAqCiAgICBpbnRjXzIgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDYgLy8gNgogICAgPAogICAgYnogdGVzdE1hdGNoZXNfYm9vbF9mYWxzZUAxMQoKdGVzdE1hdGNoZXNfYm9vbF90cnVlQDEwOgogICAgaW50Y18xIC8vIDEKCnRlc3RNYXRjaGVzX2Jvb2xfbWVyZ2VAMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjE4CiAgICAvLyBhc3NlcnQobWF0Y2goeEFycmF5LCBbeyBsZXNzVGhhbjogNiB9XSkpCiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6MTkKICAgIC8vIGFzc2VydChtYXRjaCh4QXJyYXksIFt7IGdyZWF0ZXJUaGFuRXE6IDUgfV0pKQogICAgZnJhbWVfZGlnIDAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBieiB0ZXN0TWF0Y2hlc19ib29sX2ZhbHNlQDE1Cgp0ZXN0TWF0Y2hlc19hbmRfY29udGRAMTM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjE5CiAgICAvLyBhc3NlcnQobWF0Y2goeEFycmF5LCBbeyBncmVhdGVyVGhhbkVxOiA1IH1dKSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18wIC8vIDAKICAgIGludGNfMiAvLyA4CiAgICAqCiAgICBpbnRjXzIgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzMgLy8gNQogICAgPj0KICAgIGJ6IHRlc3RNYXRjaGVzX2Jvb2xfZmFsc2VAMTUKCnRlc3RNYXRjaGVzX2Jvb2xfdHJ1ZUAxNDoKICAgIGludGNfMSAvLyAxCgp0ZXN0TWF0Y2hlc19ib29sX21lcmdlQDE2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoxOQogICAgLy8gYXNzZXJ0KG1hdGNoKHhBcnJheSwgW3sgZ3JlYXRlclRoYW5FcTogNSB9XSkpCiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tYXRjaC1leHByLmFsZ28udHM6MjAKICAgIC8vIGFzc2VydChtYXRjaCh4QXJyYXksIFt7IGxlc3NUaGFuRXE6IDUgfV0pKQogICAgZnJhbWVfZGlnIDAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBieiB0ZXN0TWF0Y2hlc19ib29sX2ZhbHNlQDE5Cgp0ZXN0TWF0Y2hlc19hbmRfY29udGRAMTc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjIwCiAgICAvLyBhc3NlcnQobWF0Y2goeEFycmF5LCBbeyBsZXNzVGhhbkVxOiA1IH1dKSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18wIC8vIDAKICAgIGludGNfMiAvLyA4CiAgICAqCiAgICBpbnRjXzIgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzMgLy8gNQogICAgPD0KICAgIGJ6IHRlc3RNYXRjaGVzX2Jvb2xfZmFsc2VAMTkKCnRlc3RNYXRjaGVzX2Jvb2xfdHJ1ZUAxODoKICAgIGludGNfMSAvLyAxCgp0ZXN0TWF0Y2hlc19ib29sX21lcmdlQDIwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL21hdGNoLWV4cHIuYWxnby50czoyMAogICAgLy8gYXNzZXJ0KG1hdGNoKHhBcnJheSwgW3sgbGVzc1RoYW5FcTogNSB9XSkpCiAgICBhc3NlcnQKICAgIHJldHN1YgoKdGVzdE1hdGNoZXNfYm9vbF9mYWxzZUAxOToKICAgIGludGNfMCAvLyAwCiAgICBiIHRlc3RNYXRjaGVzX2Jvb2xfbWVyZ2VAMjAKCnRlc3RNYXRjaGVzX2Jvb2xfZmFsc2VAMTU6CiAgICBpbnRjXzAgLy8gMAogICAgYiB0ZXN0TWF0Y2hlc19ib29sX21lcmdlQDE2Cgp0ZXN0TWF0Y2hlc19ib29sX2ZhbHNlQDExOgogICAgaW50Y18wIC8vIDAKICAgIGIgdGVzdE1hdGNoZXNfYm9vbF9tZXJnZUAxMgoKdGVzdE1hdGNoZXNfYm9vbF9mYWxzZUA3OgogICAgaW50Y18wIC8vIDAKICAgIGIgdGVzdE1hdGNoZXNfYm9vbF9tZXJnZUA4Cgp0ZXN0TWF0Y2hlc19ib29sX2ZhbHNlQDM6CiAgICBpbnRjXzAgLy8gMAogICAgYiB0ZXN0TWF0Y2hlc19ib29sX21lcmdlQDQKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbWF0Y2gtZXhwci5hbGdvLnRzOjpNYXRjaEV4cHJBbGdvLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiAEAAEIBTEbIhNBACU2GgCABJN+cppMjgEAAiJDMRkiEkQxGCITRDYaAReIABsjQv/qMRkiTI4BAANC/94xGCISRIgA2yNC/9OKAQCL/0klEkRJgQQNREmBBgxESSUPRCUORIACAACAAFBXAgCL/xaAAExQgABMUFBJFSQKFlcGAkxQSSJZIxJBAJGLAFcCACIkCyRYFyUSQQCBI0SLACJZIxJBAHKLAFcCACIkCyRYF4EEDUEAYSNEiwAiWSMSQQBSiwBXAgAiJAskWBeBBgxBAEEjRIsAIlkjEkEAMosAVwIAIiQLJFgXJQ9BACIjRIsAIlkjEkEAE4sAVwIAIiQLJFgXJQ5BAAMjRIkiQv/6IkL/2yJC/7wiQv+cIkL/fIk=", @@ -115,7 +115,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/match-expr/MatchExprAlgo.clear.teal b/tests/approvals/out/unoptimized/match-expr/MatchExprAlgo.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/match-expr/MatchExprAlgo.clear.teal +++ b/tests/approvals/out/unoptimized/match-expr/MatchExprAlgo.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/multi-inheritance/BaseOne.approval.teal b/tests/approvals/out/unoptimized/multi-inheritance/BaseOne.approval.teal index 9142e81af..75a3c9c51 100644 --- a/tests/approvals/out/unoptimized/multi-inheritance/BaseOne.approval.teal +++ b/tests/approvals/out/unoptimized/multi-inheritance/BaseOne.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 bytecblock 0x151f7c75 "common" + +main_block@0: txn ApplicationID bnz main_after_if_else@2 @@ -145,6 +147,8 @@ main___algots__.defaultCreate@11: // tests/approvals/multi-inheritance.algo.ts::BaseOne.methodOne() -> bytes: methodOne: + +methodOne_block@0: // tests/approvals/multi-inheritance.algo.ts:20 // return 'base-one' pushbytes "base-one" @@ -153,6 +157,8 @@ methodOne: // tests/approvals/multi-inheritance.algo.ts::CommonBase.methodCommon() -> bytes: methodCommon: + +methodCommon_block@0: // tests/approvals/multi-inheritance.algo.ts:9 // return 'common' bytec_1 // "common" @@ -161,6 +167,8 @@ methodCommon: // tests/approvals/multi-inheritance.algo.ts::CommonBase.b2CantOverride() -> bytes: b2CantOverride: + +b2CantOverride_block@0: // tests/approvals/multi-inheritance.algo.ts:13 // return 'common' bytec_1 // "common" @@ -169,11 +177,15 @@ b2CantOverride: // tests/approvals/multi-inheritance.algo.ts::BaseOne.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub // tests/approvals/multi-inheritance.algo.ts::BaseOne.constructor() -> void: constructor: + +constructor_block@0: // tests/approvals/multi-inheritance.algo.ts:17 // export class BaseOne extends CommonBase { callsub tests/approvals/multi-inheritance.algo.ts::CommonBase.constructor @@ -188,6 +200,8 @@ constructor: // tests/approvals/multi-inheritance.algo.ts::CommonBase.constructor() -> void: tests/approvals/multi-inheritance.algo.ts::CommonBase.constructor: +tests/approvals/multi-inheritance.algo.ts::CommonBase.constructor_block@0: + tests/approvals/multi-inheritance.algo.ts::CommonBase.constructor_block@1: tests/approvals/multi-inheritance.algo.ts::CommonBase.constructor_after_inlined_@algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.constructor@2: diff --git a/tests/approvals/out/unoptimized/multi-inheritance/BaseOne.arc32.json b/tests/approvals/out/unoptimized/multi-inheritance/BaseOne.arc32.json index f50141d72..df88745da 100644 --- a/tests/approvals/out/unoptimized/multi-inheritance/BaseOne.arc32.json +++ b/tests/approvals/out/unoptimized/multi-inheritance/BaseOne.arc32.json @@ -17,8 +17,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUgImNvbW1vbiIKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKCm1haW5faWZfYm9keUAxOgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CgptYWluX2Jsb2NrQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxNwogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VPbmUgZXh0ZW5kcyBDb21tb25CYXNlIHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDEwCgptYWluX2FiaV9yb3V0aW5nQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxNwogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VPbmUgZXh0ZW5kcyBDb21tb25CYXNlIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweGMzMjUzM2UzIC8vIG1ldGhvZCAibWV0aG9kT25lKClzdHJpbmciCiAgICBwdXNoYnl0ZXMgMHg0NTVjOGQwOSAvLyBtZXRob2QgIm1ldGhvZENvbW1vbigpc3RyaW5nIgogICAgcHVzaGJ5dGVzIDB4ZjlmNTE0MmMgLy8gbWV0aG9kICJiMkNhbnRPdmVycmlkZSgpc3RyaW5nIgogICAgdW5jb3ZlciAzCiAgICBtYXRjaCBtYWluX21ldGhvZE9uZV9yb3V0ZUA1IG1haW5fbWV0aG9kQ29tbW9uX3JvdXRlQDYgbWFpbl9iMkNhbnRPdmVycmlkZV9yb3V0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDE0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MTcKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlT25lIGV4dGVuZHMgQ29tbW9uQmFzZSB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlT25lLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1OgogICAgcmV0dXJuCgptYWluX2IyQ2FudE92ZXJyaWRlX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxMgogICAgLy8gYjJDYW50T3ZlcnJpZGUoKTogc3RyaW5nIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgYjJDYW50T3ZlcnJpZGUKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VPbmUuX19wdXlhX2FyYzRfcm91dGVyX19AMTUKCm1haW5fbWV0aG9kQ29tbW9uX3JvdXRlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo4CiAgICAvLyBtZXRob2RDb21tb24oKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIG1ldGhvZENvbW1vbgogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZU9uZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9tZXRob2RPbmVfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjE5CiAgICAvLyBtZXRob2RPbmUoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIG1ldGhvZE9uZQogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZU9uZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9iYXJlX3JvdXRpbmdAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxNwogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VPbmUgZXh0ZW5kcyBDb21tb25CYXNlIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMQoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDEyOgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEzOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTQKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDExOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MTcKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlT25lIGV4dGVuZHMgQ29tbW9uQmFzZSB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlT25lLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VPbmUubWV0aG9kT25lKCkgLT4gYnl0ZXM6Cm1ldGhvZE9uZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjIwCiAgICAvLyByZXR1cm4gJ2Jhc2Utb25lJwogICAgcHVzaGJ5dGVzICJiYXNlLW9uZSIKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLm1ldGhvZENvbW1vbigpIC0+IGJ5dGVzOgptZXRob2RDb21tb246CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo5CiAgICAvLyByZXR1cm4gJ2NvbW1vbicKICAgIGJ5dGVjXzEgLy8gImNvbW1vbiIKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmIyQ2FudE92ZXJyaWRlKCkgLT4gYnl0ZXM6CmIyQ2FudE92ZXJyaWRlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MTMKICAgIC8vIHJldHVybiAnY29tbW9uJwogICAgYnl0ZWNfMSAvLyAiY29tbW9uIgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VPbmUuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VPbmUuY29uc3RydWN0b3IoKSAtPiB2b2lkOgpjb25zdHJ1Y3RvcjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjE3CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZU9uZSBleHRlbmRzIENvbW1vbkJhc2UgewogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3RvcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MTgKICAgIC8vIHN0YXRlT25lID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6IFVpbnQ2NCg0NSkgfSkKICAgIHB1c2hieXRlcyAic3RhdGVPbmUiCiAgICBwdXNoaW50IDQ1IC8vIDQ1CiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuY29uc3RydWN0b3IoKSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3RvcjoKCnRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NgogICAgLy8gc3RhdGVDb21tb24gPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsgaW5pdGlhbFZhbHVlOiAxMjMgfSkKICAgIHB1c2hieXRlcyAic3RhdGVDb21tb24iCiAgICBwdXNoaW50IDEyMyAvLyAxMjMKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUgImNvbW1vbiIKCm1haW5fYmxvY2tAMDoKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKCm1haW5faWZfYm9keUAxOgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CgptYWluX2Jsb2NrQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxNwogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VPbmUgZXh0ZW5kcyBDb21tb25CYXNlIHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDEwCgptYWluX2FiaV9yb3V0aW5nQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxNwogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VPbmUgZXh0ZW5kcyBDb21tb25CYXNlIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweGMzMjUzM2UzIC8vIG1ldGhvZCAibWV0aG9kT25lKClzdHJpbmciCiAgICBwdXNoYnl0ZXMgMHg0NTVjOGQwOSAvLyBtZXRob2QgIm1ldGhvZENvbW1vbigpc3RyaW5nIgogICAgcHVzaGJ5dGVzIDB4ZjlmNTE0MmMgLy8gbWV0aG9kICJiMkNhbnRPdmVycmlkZSgpc3RyaW5nIgogICAgdW5jb3ZlciAzCiAgICBtYXRjaCBtYWluX21ldGhvZE9uZV9yb3V0ZUA1IG1haW5fbWV0aG9kQ29tbW9uX3JvdXRlQDYgbWFpbl9iMkNhbnRPdmVycmlkZV9yb3V0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDE0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MTcKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlT25lIGV4dGVuZHMgQ29tbW9uQmFzZSB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlT25lLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1OgogICAgcmV0dXJuCgptYWluX2IyQ2FudE92ZXJyaWRlX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxMgogICAgLy8gYjJDYW50T3ZlcnJpZGUoKTogc3RyaW5nIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgYjJDYW50T3ZlcnJpZGUKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VPbmUuX19wdXlhX2FyYzRfcm91dGVyX19AMTUKCm1haW5fbWV0aG9kQ29tbW9uX3JvdXRlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo4CiAgICAvLyBtZXRob2RDb21tb24oKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIG1ldGhvZENvbW1vbgogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZU9uZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9tZXRob2RPbmVfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjE5CiAgICAvLyBtZXRob2RPbmUoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIG1ldGhvZE9uZQogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZU9uZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9iYXJlX3JvdXRpbmdAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxNwogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VPbmUgZXh0ZW5kcyBDb21tb25CYXNlIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMQoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDEyOgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEzOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTQKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDExOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MTcKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlT25lIGV4dGVuZHMgQ29tbW9uQmFzZSB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlT25lLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VPbmUubWV0aG9kT25lKCkgLT4gYnl0ZXM6Cm1ldGhvZE9uZToKCm1ldGhvZE9uZV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MjAKICAgIC8vIHJldHVybiAnYmFzZS1vbmUnCiAgICBwdXNoYnl0ZXMgImJhc2Utb25lIgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UubWV0aG9kQ29tbW9uKCkgLT4gYnl0ZXM6Cm1ldGhvZENvbW1vbjoKCm1ldGhvZENvbW1vbl9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OQogICAgLy8gcmV0dXJuICdjb21tb24nCiAgICBieXRlY18xIC8vICJjb21tb24iCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5iMkNhbnRPdmVycmlkZSgpIC0+IGJ5dGVzOgpiMkNhbnRPdmVycmlkZToKCmIyQ2FudE92ZXJyaWRlX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxMwogICAgLy8gcmV0dXJuICdjb21tb24nCiAgICBieXRlY18xIC8vICJjb21tb24iCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZU9uZS5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlT25lLmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKY29uc3RydWN0b3I6Cgpjb25zdHJ1Y3Rvcl9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MTcKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlT25lIGV4dGVuZHMgQ29tbW9uQmFzZSB7CiAgICBjYWxsc3ViIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmNvbnN0cnVjdG9yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxOAogICAgLy8gc3RhdGVPbmUgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogVWludDY0KDQ1KSB9KQogICAgcHVzaGJ5dGVzICJzdGF0ZU9uZSIKICAgIHB1c2hpbnQgNDUgLy8gNDUKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CnRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmNvbnN0cnVjdG9yOgoKdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuY29uc3RydWN0b3JfYmxvY2tAMDoKCnRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NgogICAgLy8gc3RhdGVDb21tb24gPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsgaW5pdGlhbFZhbHVlOiAxMjMgfSkKICAgIHB1c2hieXRlcyAic3RhdGVDb21tb24iCiAgICBwdXNoaW50IDEyMyAvLyAxMjMKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/multi-inheritance/BaseOne.arc56.json b/tests/approvals/out/unoptimized/multi-inheritance/BaseOne.arc56.json index 56ebedbcf..ea9c60f3c 100644 --- a/tests/approvals/out/unoptimized/multi-inheritance/BaseOne.arc56.json +++ b/tests/approvals/out/unoptimized/multi-inheritance/BaseOne.arc56.json @@ -129,8 +129,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUgImNvbW1vbiIKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKCm1haW5faWZfYm9keUAxOgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CgptYWluX2Jsb2NrQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxNwogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VPbmUgZXh0ZW5kcyBDb21tb25CYXNlIHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDEwCgptYWluX2FiaV9yb3V0aW5nQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxNwogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VPbmUgZXh0ZW5kcyBDb21tb25CYXNlIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweGMzMjUzM2UzIC8vIG1ldGhvZCAibWV0aG9kT25lKClzdHJpbmciCiAgICBwdXNoYnl0ZXMgMHg0NTVjOGQwOSAvLyBtZXRob2QgIm1ldGhvZENvbW1vbigpc3RyaW5nIgogICAgcHVzaGJ5dGVzIDB4ZjlmNTE0MmMgLy8gbWV0aG9kICJiMkNhbnRPdmVycmlkZSgpc3RyaW5nIgogICAgdW5jb3ZlciAzCiAgICBtYXRjaCBtYWluX21ldGhvZE9uZV9yb3V0ZUA1IG1haW5fbWV0aG9kQ29tbW9uX3JvdXRlQDYgbWFpbl9iMkNhbnRPdmVycmlkZV9yb3V0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDE0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MTcKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlT25lIGV4dGVuZHMgQ29tbW9uQmFzZSB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlT25lLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1OgogICAgcmV0dXJuCgptYWluX2IyQ2FudE92ZXJyaWRlX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxMgogICAgLy8gYjJDYW50T3ZlcnJpZGUoKTogc3RyaW5nIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgYjJDYW50T3ZlcnJpZGUKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VPbmUuX19wdXlhX2FyYzRfcm91dGVyX19AMTUKCm1haW5fbWV0aG9kQ29tbW9uX3JvdXRlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo4CiAgICAvLyBtZXRob2RDb21tb24oKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIG1ldGhvZENvbW1vbgogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZU9uZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9tZXRob2RPbmVfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjE5CiAgICAvLyBtZXRob2RPbmUoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIG1ldGhvZE9uZQogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZU9uZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9iYXJlX3JvdXRpbmdAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxNwogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VPbmUgZXh0ZW5kcyBDb21tb25CYXNlIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMQoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDEyOgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEzOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTQKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDExOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MTcKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlT25lIGV4dGVuZHMgQ29tbW9uQmFzZSB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlT25lLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VPbmUubWV0aG9kT25lKCkgLT4gYnl0ZXM6Cm1ldGhvZE9uZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjIwCiAgICAvLyByZXR1cm4gJ2Jhc2Utb25lJwogICAgcHVzaGJ5dGVzICJiYXNlLW9uZSIKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLm1ldGhvZENvbW1vbigpIC0+IGJ5dGVzOgptZXRob2RDb21tb246CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo5CiAgICAvLyByZXR1cm4gJ2NvbW1vbicKICAgIGJ5dGVjXzEgLy8gImNvbW1vbiIKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmIyQ2FudE92ZXJyaWRlKCkgLT4gYnl0ZXM6CmIyQ2FudE92ZXJyaWRlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MTMKICAgIC8vIHJldHVybiAnY29tbW9uJwogICAgYnl0ZWNfMSAvLyAiY29tbW9uIgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VPbmUuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VPbmUuY29uc3RydWN0b3IoKSAtPiB2b2lkOgpjb25zdHJ1Y3RvcjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjE3CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZU9uZSBleHRlbmRzIENvbW1vbkJhc2UgewogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3RvcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MTgKICAgIC8vIHN0YXRlT25lID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6IFVpbnQ2NCg0NSkgfSkKICAgIHB1c2hieXRlcyAic3RhdGVPbmUiCiAgICBwdXNoaW50IDQ1IC8vIDQ1CiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuY29uc3RydWN0b3IoKSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3RvcjoKCnRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NgogICAgLy8gc3RhdGVDb21tb24gPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsgaW5pdGlhbFZhbHVlOiAxMjMgfSkKICAgIHB1c2hieXRlcyAic3RhdGVDb21tb24iCiAgICBwdXNoaW50IDEyMyAvLyAxMjMKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUgImNvbW1vbiIKCm1haW5fYmxvY2tAMDoKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKCm1haW5faWZfYm9keUAxOgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CgptYWluX2Jsb2NrQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxNwogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VPbmUgZXh0ZW5kcyBDb21tb25CYXNlIHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDEwCgptYWluX2FiaV9yb3V0aW5nQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxNwogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VPbmUgZXh0ZW5kcyBDb21tb25CYXNlIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweGMzMjUzM2UzIC8vIG1ldGhvZCAibWV0aG9kT25lKClzdHJpbmciCiAgICBwdXNoYnl0ZXMgMHg0NTVjOGQwOSAvLyBtZXRob2QgIm1ldGhvZENvbW1vbigpc3RyaW5nIgogICAgcHVzaGJ5dGVzIDB4ZjlmNTE0MmMgLy8gbWV0aG9kICJiMkNhbnRPdmVycmlkZSgpc3RyaW5nIgogICAgdW5jb3ZlciAzCiAgICBtYXRjaCBtYWluX21ldGhvZE9uZV9yb3V0ZUA1IG1haW5fbWV0aG9kQ29tbW9uX3JvdXRlQDYgbWFpbl9iMkNhbnRPdmVycmlkZV9yb3V0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDE0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MTcKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlT25lIGV4dGVuZHMgQ29tbW9uQmFzZSB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlT25lLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1OgogICAgcmV0dXJuCgptYWluX2IyQ2FudE92ZXJyaWRlX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxMgogICAgLy8gYjJDYW50T3ZlcnJpZGUoKTogc3RyaW5nIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgYjJDYW50T3ZlcnJpZGUKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VPbmUuX19wdXlhX2FyYzRfcm91dGVyX19AMTUKCm1haW5fbWV0aG9kQ29tbW9uX3JvdXRlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo4CiAgICAvLyBtZXRob2RDb21tb24oKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIG1ldGhvZENvbW1vbgogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZU9uZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9tZXRob2RPbmVfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjE5CiAgICAvLyBtZXRob2RPbmUoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIG1ldGhvZE9uZQogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZU9uZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9iYXJlX3JvdXRpbmdAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxNwogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VPbmUgZXh0ZW5kcyBDb21tb25CYXNlIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMQoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDEyOgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEzOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTQKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDExOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MTcKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlT25lIGV4dGVuZHMgQ29tbW9uQmFzZSB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlT25lLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VPbmUubWV0aG9kT25lKCkgLT4gYnl0ZXM6Cm1ldGhvZE9uZToKCm1ldGhvZE9uZV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MjAKICAgIC8vIHJldHVybiAnYmFzZS1vbmUnCiAgICBwdXNoYnl0ZXMgImJhc2Utb25lIgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UubWV0aG9kQ29tbW9uKCkgLT4gYnl0ZXM6Cm1ldGhvZENvbW1vbjoKCm1ldGhvZENvbW1vbl9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OQogICAgLy8gcmV0dXJuICdjb21tb24nCiAgICBieXRlY18xIC8vICJjb21tb24iCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5iMkNhbnRPdmVycmlkZSgpIC0+IGJ5dGVzOgpiMkNhbnRPdmVycmlkZToKCmIyQ2FudE92ZXJyaWRlX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxMwogICAgLy8gcmV0dXJuICdjb21tb24nCiAgICBieXRlY18xIC8vICJjb21tb24iCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZU9uZS5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlT25lLmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKY29uc3RydWN0b3I6Cgpjb25zdHJ1Y3Rvcl9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MTcKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlT25lIGV4dGVuZHMgQ29tbW9uQmFzZSB7CiAgICBjYWxsc3ViIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmNvbnN0cnVjdG9yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxOAogICAgLy8gc3RhdGVPbmUgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogVWludDY0KDQ1KSB9KQogICAgcHVzaGJ5dGVzICJzdGF0ZU9uZSIKICAgIHB1c2hpbnQgNDUgLy8gNDUKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CnRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmNvbnN0cnVjdG9yOgoKdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuY29uc3RydWN0b3JfYmxvY2tAMDoKCnRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NgogICAgLy8gc3RhdGVDb21tb24gPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsgaW5pdGlhbFZhbHVlOiAxMjMgfSkKICAgIHB1c2hieXRlcyAic3RhdGVDb21tb24iCiAgICBwdXNoaW50IDEyMyAvLyAxMjMKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAEmAgQVH3x1BmNvbW1vbjEYQAADiACmMRsiE0EAeDYaAIAEwyUz44AERVyNCYAE+fUULE8DjgMAPAAfAAIiQzEZIhJEMRgiE0SIAG5JFRZXBgJMUChMULAjQv/iMRkiEkQxGCITRIgAT0kVFlcGAkxQKExQsCNC/8UxGSISRDEYIhNEiAAnSRUWVwYCTFAoTFCwI0L/qDEZIkyOAQADQv+cMRgiEkSIABMjQv+RgAhiYXNlLW9uZYkpiSmJiYgADoAIc3RhdGVPbmWBLWeJgAtzdGF0ZUNvbW1vboF7Z4k=", @@ -141,7 +141,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/multi-inheritance/BaseOne.clear.teal b/tests/approvals/out/unoptimized/multi-inheritance/BaseOne.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/multi-inheritance/BaseOne.clear.teal +++ b/tests/approvals/out/unoptimized/multi-inheritance/BaseOne.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/multi-inheritance/BaseTwo.approval.teal b/tests/approvals/out/unoptimized/multi-inheritance/BaseTwo.approval.teal index 9010cfa04..0801c8e6d 100644 --- a/tests/approvals/out/unoptimized/multi-inheritance/BaseTwo.approval.teal +++ b/tests/approvals/out/unoptimized/multi-inheritance/BaseTwo.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 bytecblock 0x151f7c75 "base-two" + +main_block@0: txn ApplicationID bnz main_after_if_else@2 @@ -145,6 +147,8 @@ main___algots__.defaultCreate@11: // tests/approvals/multi-inheritance.algo.ts::BaseTwo.methodTwo() -> bytes: methodTwo: + +methodTwo_block@0: // tests/approvals/multi-inheritance.algo.ts:27 // return 'base-two' bytec_1 // "base-two" @@ -153,6 +157,8 @@ methodTwo: // tests/approvals/multi-inheritance.algo.ts::BaseTwo.b2CantOverride() -> bytes: b2CantOverride: + +b2CantOverride_block@0: // tests/approvals/multi-inheritance.algo.ts:36 // return 'base-two' bytec_1 // "base-two" @@ -161,6 +167,8 @@ b2CantOverride: // tests/approvals/multi-inheritance.algo.ts::CommonBase.methodCommon() -> bytes: methodCommon: + +methodCommon_block@0: // tests/approvals/multi-inheritance.algo.ts:9 // return 'common' pushbytes "common" @@ -169,11 +177,15 @@ methodCommon: // tests/approvals/multi-inheritance.algo.ts::BaseTwo.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub // tests/approvals/multi-inheritance.algo.ts::BaseTwo.constructor() -> void: constructor: + +constructor_block@0: // tests/approvals/multi-inheritance.algo.ts:24 // export class BaseTwo extends CommonBase { callsub tests/approvals/multi-inheritance.algo.ts::CommonBase.constructor @@ -188,6 +200,8 @@ constructor: // tests/approvals/multi-inheritance.algo.ts::CommonBase.constructor() -> void: tests/approvals/multi-inheritance.algo.ts::CommonBase.constructor: +tests/approvals/multi-inheritance.algo.ts::CommonBase.constructor_block@0: + tests/approvals/multi-inheritance.algo.ts::CommonBase.constructor_block@1: tests/approvals/multi-inheritance.algo.ts::CommonBase.constructor_after_inlined_@algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.constructor@2: diff --git a/tests/approvals/out/unoptimized/multi-inheritance/BaseTwo.arc32.json b/tests/approvals/out/unoptimized/multi-inheritance/BaseTwo.arc32.json index 938f5f264..bbf9636ee 100644 --- a/tests/approvals/out/unoptimized/multi-inheritance/BaseTwo.arc32.json +++ b/tests/approvals/out/unoptimized/multi-inheritance/BaseTwo.arc32.json @@ -17,8 +17,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUgImJhc2UtdHdvIgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMgoKbWFpbl9pZl9ib2R5QDE6CiAgICBjYWxsc3ViIGNvbnN0cnVjdG9yCgptYWluX2FmdGVyX2lmX2Vsc2VAMjoKCm1haW5fYmxvY2tAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZVR3byBleHRlbmRzIENvbW1vbkJhc2UgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAMTAKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZVR3byBleHRlbmRzIENvbW1vbkJhc2UgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4MzYzYjMyOWUgLy8gbWV0aG9kICJtZXRob2RUd28oKXN0cmluZyIKICAgIHB1c2hieXRlcyAweGY5ZjUxNDJjIC8vIG1ldGhvZCAiYjJDYW50T3ZlcnJpZGUoKXN0cmluZyIKICAgIHB1c2hieXRlcyAweDQ1NWM4ZDA5IC8vIG1ldGhvZCAibWV0aG9kQ29tbW9uKClzdHJpbmciCiAgICB1bmNvdmVyIDMKICAgIG1hdGNoIG1haW5fbWV0aG9kVHdvX3JvdXRlQDUgbWFpbl9iMkNhbnRPdmVycmlkZV9yb3V0ZUA2IG1haW5fbWV0aG9kQ29tbW9uX3JvdXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VUd28gZXh0ZW5kcyBDb21tb25CYXNlIHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28uX19wdXlhX2FyYzRfcm91dGVyX19AMTU6CiAgICByZXR1cm4KCm1haW5fbWV0aG9kQ29tbW9uX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo4CiAgICAvLyBtZXRob2RDb21tb24oKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIG1ldGhvZENvbW1vbgogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3by5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9iMkNhbnRPdmVycmlkZV9yb3V0ZUA2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MzUKICAgIC8vIGIyQ2FudE92ZXJyaWRlKCk6IHN0cmluZyB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGIyQ2FudE92ZXJyaWRlCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX21ldGhvZFR3b19yb3V0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MjYKICAgIC8vIG1ldGhvZFR3bygpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgbWV0aG9kVHdvCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX2JhcmVfcm91dGluZ0AxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZVR3byBleHRlbmRzIENvbW1vbkJhc2UgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDExCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTI6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTM6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxNAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VUd28gZXh0ZW5kcyBDb21tb25CYXNlIHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28uX19wdXlhX2FyYzRfcm91dGVyX19AMTUKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3by5tZXRob2RUd28oKSAtPiBieXRlczoKbWV0aG9kVHdvOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MjcKICAgIC8vIHJldHVybiAnYmFzZS10d28nCiAgICBieXRlY18xIC8vICJiYXNlLXR3byIKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvLmIyQ2FudE92ZXJyaWRlKCkgLT4gYnl0ZXM6CmIyQ2FudE92ZXJyaWRlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MzYKICAgIC8vIHJldHVybiAnYmFzZS10d28nCiAgICBieXRlY18xIC8vICJiYXNlLXR3byIKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLm1ldGhvZENvbW1vbigpIC0+IGJ5dGVzOgptZXRob2RDb21tb246CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo5CiAgICAvLyByZXR1cm4gJ2NvbW1vbicKICAgIHB1c2hieXRlcyAiY29tbW9uIgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28uX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28uY29uc3RydWN0b3IoKSAtPiB2b2lkOgpjb25zdHJ1Y3RvcjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZVR3byBleHRlbmRzIENvbW1vbkJhc2UgewogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3RvcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MjUKICAgIC8vIHN0YXRlVHdvID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6ICdIZWxsbycgfSkKICAgIHB1c2hieXRlcyAic3RhdGVUd28iCiAgICBwdXNoYnl0ZXMgIkhlbGxvIgogICAgYXBwX2dsb2JhbF9wdXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuY29uc3RydWN0b3I6Cgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3Rvcl9ibG9ja0AxOgoKdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuY29uc3RydWN0b3JfYWZ0ZXJfaW5saW5lZF9AYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY29uc3RydWN0b3JAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjYKICAgIC8vIHN0YXRlQ29tbW9uID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGluaXRpYWxWYWx1ZTogMTIzIH0pCiAgICBwdXNoYnl0ZXMgInN0YXRlQ29tbW9uIgogICAgcHVzaGludCAxMjMgLy8gMTIzCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUgImJhc2UtdHdvIgoKbWFpbl9ibG9ja0AwOgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMgoKbWFpbl9pZl9ib2R5QDE6CiAgICBjYWxsc3ViIGNvbnN0cnVjdG9yCgptYWluX2FmdGVyX2lmX2Vsc2VAMjoKCm1haW5fYmxvY2tAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZVR3byBleHRlbmRzIENvbW1vbkJhc2UgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAMTAKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZVR3byBleHRlbmRzIENvbW1vbkJhc2UgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4MzYzYjMyOWUgLy8gbWV0aG9kICJtZXRob2RUd28oKXN0cmluZyIKICAgIHB1c2hieXRlcyAweGY5ZjUxNDJjIC8vIG1ldGhvZCAiYjJDYW50T3ZlcnJpZGUoKXN0cmluZyIKICAgIHB1c2hieXRlcyAweDQ1NWM4ZDA5IC8vIG1ldGhvZCAibWV0aG9kQ29tbW9uKClzdHJpbmciCiAgICB1bmNvdmVyIDMKICAgIG1hdGNoIG1haW5fbWV0aG9kVHdvX3JvdXRlQDUgbWFpbl9iMkNhbnRPdmVycmlkZV9yb3V0ZUA2IG1haW5fbWV0aG9kQ29tbW9uX3JvdXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VUd28gZXh0ZW5kcyBDb21tb25CYXNlIHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28uX19wdXlhX2FyYzRfcm91dGVyX19AMTU6CiAgICByZXR1cm4KCm1haW5fbWV0aG9kQ29tbW9uX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo4CiAgICAvLyBtZXRob2RDb21tb24oKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIG1ldGhvZENvbW1vbgogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3by5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9iMkNhbnRPdmVycmlkZV9yb3V0ZUA2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MzUKICAgIC8vIGIyQ2FudE92ZXJyaWRlKCk6IHN0cmluZyB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGIyQ2FudE92ZXJyaWRlCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX21ldGhvZFR3b19yb3V0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MjYKICAgIC8vIG1ldGhvZFR3bygpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgbWV0aG9kVHdvCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX2JhcmVfcm91dGluZ0AxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZVR3byBleHRlbmRzIENvbW1vbkJhc2UgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDExCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTI6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTM6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxNAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VUd28gZXh0ZW5kcyBDb21tb25CYXNlIHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28uX19wdXlhX2FyYzRfcm91dGVyX19AMTUKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3by5tZXRob2RUd28oKSAtPiBieXRlczoKbWV0aG9kVHdvOgoKbWV0aG9kVHdvX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoyNwogICAgLy8gcmV0dXJuICdiYXNlLXR3bycKICAgIGJ5dGVjXzEgLy8gImJhc2UtdHdvIgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28uYjJDYW50T3ZlcnJpZGUoKSAtPiBieXRlczoKYjJDYW50T3ZlcnJpZGU6CgpiMkNhbnRPdmVycmlkZV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MzYKICAgIC8vIHJldHVybiAnYmFzZS10d28nCiAgICBieXRlY18xIC8vICJiYXNlLXR3byIKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLm1ldGhvZENvbW1vbigpIC0+IGJ5dGVzOgptZXRob2RDb21tb246CgptZXRob2RDb21tb25fYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjkKICAgIC8vIHJldHVybiAnY29tbW9uJwogICAgcHVzaGJ5dGVzICJjb21tb24iCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3by5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvLmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKY29uc3RydWN0b3I6Cgpjb25zdHJ1Y3Rvcl9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlVHdvIGV4dGVuZHMgQ29tbW9uQmFzZSB7CiAgICBjYWxsc3ViIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmNvbnN0cnVjdG9yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoyNQogICAgLy8gc3RhdGVUd28gPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogJ0hlbGxvJyB9KQogICAgcHVzaGJ5dGVzICJzdGF0ZVR3byIKICAgIHB1c2hieXRlcyAiSGVsbG8iCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuY29uc3RydWN0b3IoKSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3RvcjoKCnRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmNvbnN0cnVjdG9yX2Jsb2NrQDA6Cgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3Rvcl9ibG9ja0AxOgoKdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuY29uc3RydWN0b3JfYWZ0ZXJfaW5saW5lZF9AYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY29uc3RydWN0b3JAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjYKICAgIC8vIHN0YXRlQ29tbW9uID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGluaXRpYWxWYWx1ZTogMTIzIH0pCiAgICBwdXNoYnl0ZXMgInN0YXRlQ29tbW9uIgogICAgcHVzaGludCAxMjMgLy8gMTIzCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/multi-inheritance/BaseTwo.arc56.json b/tests/approvals/out/unoptimized/multi-inheritance/BaseTwo.arc56.json index a61e889d1..36df5c96f 100644 --- a/tests/approvals/out/unoptimized/multi-inheritance/BaseTwo.arc56.json +++ b/tests/approvals/out/unoptimized/multi-inheritance/BaseTwo.arc56.json @@ -130,8 +130,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUgImJhc2UtdHdvIgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMgoKbWFpbl9pZl9ib2R5QDE6CiAgICBjYWxsc3ViIGNvbnN0cnVjdG9yCgptYWluX2FmdGVyX2lmX2Vsc2VAMjoKCm1haW5fYmxvY2tAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZVR3byBleHRlbmRzIENvbW1vbkJhc2UgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAMTAKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZVR3byBleHRlbmRzIENvbW1vbkJhc2UgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4MzYzYjMyOWUgLy8gbWV0aG9kICJtZXRob2RUd28oKXN0cmluZyIKICAgIHB1c2hieXRlcyAweGY5ZjUxNDJjIC8vIG1ldGhvZCAiYjJDYW50T3ZlcnJpZGUoKXN0cmluZyIKICAgIHB1c2hieXRlcyAweDQ1NWM4ZDA5IC8vIG1ldGhvZCAibWV0aG9kQ29tbW9uKClzdHJpbmciCiAgICB1bmNvdmVyIDMKICAgIG1hdGNoIG1haW5fbWV0aG9kVHdvX3JvdXRlQDUgbWFpbl9iMkNhbnRPdmVycmlkZV9yb3V0ZUA2IG1haW5fbWV0aG9kQ29tbW9uX3JvdXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VUd28gZXh0ZW5kcyBDb21tb25CYXNlIHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28uX19wdXlhX2FyYzRfcm91dGVyX19AMTU6CiAgICByZXR1cm4KCm1haW5fbWV0aG9kQ29tbW9uX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo4CiAgICAvLyBtZXRob2RDb21tb24oKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIG1ldGhvZENvbW1vbgogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3by5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9iMkNhbnRPdmVycmlkZV9yb3V0ZUA2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MzUKICAgIC8vIGIyQ2FudE92ZXJyaWRlKCk6IHN0cmluZyB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGIyQ2FudE92ZXJyaWRlCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX21ldGhvZFR3b19yb3V0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MjYKICAgIC8vIG1ldGhvZFR3bygpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgbWV0aG9kVHdvCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX2JhcmVfcm91dGluZ0AxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZVR3byBleHRlbmRzIENvbW1vbkJhc2UgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDExCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTI6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTM6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxNAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VUd28gZXh0ZW5kcyBDb21tb25CYXNlIHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28uX19wdXlhX2FyYzRfcm91dGVyX19AMTUKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3by5tZXRob2RUd28oKSAtPiBieXRlczoKbWV0aG9kVHdvOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MjcKICAgIC8vIHJldHVybiAnYmFzZS10d28nCiAgICBieXRlY18xIC8vICJiYXNlLXR3byIKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvLmIyQ2FudE92ZXJyaWRlKCkgLT4gYnl0ZXM6CmIyQ2FudE92ZXJyaWRlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MzYKICAgIC8vIHJldHVybiAnYmFzZS10d28nCiAgICBieXRlY18xIC8vICJiYXNlLXR3byIKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLm1ldGhvZENvbW1vbigpIC0+IGJ5dGVzOgptZXRob2RDb21tb246CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo5CiAgICAvLyByZXR1cm4gJ2NvbW1vbicKICAgIHB1c2hieXRlcyAiY29tbW9uIgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28uX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28uY29uc3RydWN0b3IoKSAtPiB2b2lkOgpjb25zdHJ1Y3RvcjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZVR3byBleHRlbmRzIENvbW1vbkJhc2UgewogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3RvcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MjUKICAgIC8vIHN0YXRlVHdvID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6ICdIZWxsbycgfSkKICAgIHB1c2hieXRlcyAic3RhdGVUd28iCiAgICBwdXNoYnl0ZXMgIkhlbGxvIgogICAgYXBwX2dsb2JhbF9wdXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuY29uc3RydWN0b3I6Cgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3Rvcl9ibG9ja0AxOgoKdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuY29uc3RydWN0b3JfYWZ0ZXJfaW5saW5lZF9AYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY29uc3RydWN0b3JAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjYKICAgIC8vIHN0YXRlQ29tbW9uID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGluaXRpYWxWYWx1ZTogMTIzIH0pCiAgICBwdXNoYnl0ZXMgInN0YXRlQ29tbW9uIgogICAgcHVzaGludCAxMjMgLy8gMTIzCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUgImJhc2UtdHdvIgoKbWFpbl9ibG9ja0AwOgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMgoKbWFpbl9pZl9ib2R5QDE6CiAgICBjYWxsc3ViIGNvbnN0cnVjdG9yCgptYWluX2FmdGVyX2lmX2Vsc2VAMjoKCm1haW5fYmxvY2tAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZVR3byBleHRlbmRzIENvbW1vbkJhc2UgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAMTAKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZVR3byBleHRlbmRzIENvbW1vbkJhc2UgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4MzYzYjMyOWUgLy8gbWV0aG9kICJtZXRob2RUd28oKXN0cmluZyIKICAgIHB1c2hieXRlcyAweGY5ZjUxNDJjIC8vIG1ldGhvZCAiYjJDYW50T3ZlcnJpZGUoKXN0cmluZyIKICAgIHB1c2hieXRlcyAweDQ1NWM4ZDA5IC8vIG1ldGhvZCAibWV0aG9kQ29tbW9uKClzdHJpbmciCiAgICB1bmNvdmVyIDMKICAgIG1hdGNoIG1haW5fbWV0aG9kVHdvX3JvdXRlQDUgbWFpbl9iMkNhbnRPdmVycmlkZV9yb3V0ZUA2IG1haW5fbWV0aG9kQ29tbW9uX3JvdXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VUd28gZXh0ZW5kcyBDb21tb25CYXNlIHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28uX19wdXlhX2FyYzRfcm91dGVyX19AMTU6CiAgICByZXR1cm4KCm1haW5fbWV0aG9kQ29tbW9uX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo4CiAgICAvLyBtZXRob2RDb21tb24oKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIG1ldGhvZENvbW1vbgogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3by5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9iMkNhbnRPdmVycmlkZV9yb3V0ZUA2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MzUKICAgIC8vIGIyQ2FudE92ZXJyaWRlKCk6IHN0cmluZyB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGIyQ2FudE92ZXJyaWRlCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX21ldGhvZFR3b19yb3V0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MjYKICAgIC8vIG1ldGhvZFR3bygpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgbWV0aG9kVHdvCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX2JhcmVfcm91dGluZ0AxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZVR3byBleHRlbmRzIENvbW1vbkJhc2UgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDExCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTI6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTM6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxNAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VUd28gZXh0ZW5kcyBDb21tb25CYXNlIHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28uX19wdXlhX2FyYzRfcm91dGVyX19AMTUKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3by5tZXRob2RUd28oKSAtPiBieXRlczoKbWV0aG9kVHdvOgoKbWV0aG9kVHdvX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoyNwogICAgLy8gcmV0dXJuICdiYXNlLXR3bycKICAgIGJ5dGVjXzEgLy8gImJhc2UtdHdvIgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28uYjJDYW50T3ZlcnJpZGUoKSAtPiBieXRlczoKYjJDYW50T3ZlcnJpZGU6CgpiMkNhbnRPdmVycmlkZV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MzYKICAgIC8vIHJldHVybiAnYmFzZS10d28nCiAgICBieXRlY18xIC8vICJiYXNlLXR3byIKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLm1ldGhvZENvbW1vbigpIC0+IGJ5dGVzOgptZXRob2RDb21tb246CgptZXRob2RDb21tb25fYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjkKICAgIC8vIHJldHVybiAnY29tbW9uJwogICAgcHVzaGJ5dGVzICJjb21tb24iCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3by5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvLmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKY29uc3RydWN0b3I6Cgpjb25zdHJ1Y3Rvcl9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlVHdvIGV4dGVuZHMgQ29tbW9uQmFzZSB7CiAgICBjYWxsc3ViIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmNvbnN0cnVjdG9yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoyNQogICAgLy8gc3RhdGVUd28gPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogJ0hlbGxvJyB9KQogICAgcHVzaGJ5dGVzICJzdGF0ZVR3byIKICAgIHB1c2hieXRlcyAiSGVsbG8iCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuY29uc3RydWN0b3IoKSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3RvcjoKCnRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmNvbnN0cnVjdG9yX2Jsb2NrQDA6Cgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3Rvcl9ibG9ja0AxOgoKdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuY29uc3RydWN0b3JfYWZ0ZXJfaW5saW5lZF9AYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY29uc3RydWN0b3JAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjYKICAgIC8vIHN0YXRlQ29tbW9uID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGluaXRpYWxWYWx1ZTogMTIzIH0pCiAgICBwdXNoYnl0ZXMgInN0YXRlQ29tbW9uIgogICAgcHVzaGludCAxMjMgLy8gMTIzCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAEmAgQVH3x1CGJhc2UtdHdvMRhAAAOIAKQxGyITQQB4NhoAgAQ2OzKegAT59RQsgARFXI0JTwOOAwA8AB8AAiJDMRkiEkQxGCITRIgAZUkVFlcGAkxQKExQsCNC/+IxGSISRDEYIhNEiABGSRUWVwYCTFAoTFCwI0L/xTEZIhJEMRgiE0SIACdJFRZXBgJMUChMULAjQv+oMRkiTI4BAANC/5wxGCISRIgAESNC/5EpiSmJgAZjb21tb26JiYgAE4AIc3RhdGVUd2+ABUhlbGxvZ4mAC3N0YXRlQ29tbW9ugXtniQ==", @@ -142,7 +142,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/multi-inheritance/BaseTwo.clear.teal b/tests/approvals/out/unoptimized/multi-inheritance/BaseTwo.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/multi-inheritance/BaseTwo.clear.teal +++ b/tests/approvals/out/unoptimized/multi-inheritance/BaseTwo.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/multi-inheritance/CommonBase.approval.teal b/tests/approvals/out/unoptimized/multi-inheritance/CommonBase.approval.teal index bc0965e8a..6662114ee 100644 --- a/tests/approvals/out/unoptimized/multi-inheritance/CommonBase.approval.teal +++ b/tests/approvals/out/unoptimized/multi-inheritance/CommonBase.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 bytecblock 0x151f7c75 "common" + +main_block@0: txn ApplicationID bnz main_after_if_else@2 @@ -119,6 +121,8 @@ main___algots__.defaultCreate@10: // tests/approvals/multi-inheritance.algo.ts::CommonBase.methodCommon() -> bytes: methodCommon: + +methodCommon_block@0: // tests/approvals/multi-inheritance.algo.ts:9 // return 'common' bytec_1 // "common" @@ -127,6 +131,8 @@ methodCommon: // tests/approvals/multi-inheritance.algo.ts::CommonBase.b2CantOverride() -> bytes: b2CantOverride: + +b2CantOverride_block@0: // tests/approvals/multi-inheritance.algo.ts:13 // return 'common' bytec_1 // "common" @@ -135,12 +141,16 @@ b2CantOverride: // tests/approvals/multi-inheritance.algo.ts::CommonBase.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub // tests/approvals/multi-inheritance.algo.ts::CommonBase.constructor() -> void: constructor: +constructor_block@0: + constructor_block@1: constructor_after_inlined_@algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.constructor@2: diff --git a/tests/approvals/out/unoptimized/multi-inheritance/CommonBase.arc32.json b/tests/approvals/out/unoptimized/multi-inheritance/CommonBase.arc32.json index 970b36590..d8b4927fb 100644 --- a/tests/approvals/out/unoptimized/multi-inheritance/CommonBase.arc32.json +++ b/tests/approvals/out/unoptimized/multi-inheritance/CommonBase.arc32.json @@ -12,8 +12,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUgImNvbW1vbiIKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKCm1haW5faWZfYm9keUAxOgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CgptYWluX2Jsb2NrQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo1CiAgICAvLyBleHBvcnQgY2xhc3MgQ29tbW9uQmFzZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDkKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjUKICAgIC8vIGV4cG9ydCBjbGFzcyBDb21tb25CYXNlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4NDU1YzhkMDkgLy8gbWV0aG9kICJtZXRob2RDb21tb24oKXN0cmluZyIKICAgIHB1c2hieXRlcyAweGY5ZjUxNDJjIC8vIG1ldGhvZCAiYjJDYW50T3ZlcnJpZGUoKXN0cmluZyIKICAgIHVuY292ZXIgMgogICAgbWF0Y2ggbWFpbl9tZXRob2RDb21tb25fcm91dGVANSBtYWluX2IyQ2FudE92ZXJyaWRlX3JvdXRlQDYKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA3OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDg6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo1CiAgICAvLyBleHBvcnQgY2xhc3MgQ29tbW9uQmFzZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuX19wdXlhX2FyYzRfcm91dGVyX19AMTQ6CiAgICByZXR1cm4KCm1haW5fYjJDYW50T3ZlcnJpZGVfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjEyCiAgICAvLyBiMkNhbnRPdmVycmlkZSgpOiBzdHJpbmcgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBiMkNhbnRPdmVycmlkZQogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl9tZXRob2RDb21tb25fcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjgKICAgIC8vIG1ldGhvZENvbW1vbigpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgbWV0aG9kQ29tbW9uCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2JhcmVfcm91dGluZ0A5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NQogICAgLy8gZXhwb3J0IGNsYXNzIENvbW1vbkJhc2UgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTAKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMjoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEzCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjUKICAgIC8vIGV4cG9ydCBjbGFzcyBDb21tb25CYXNlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLm1ldGhvZENvbW1vbigpIC0+IGJ5dGVzOgptZXRob2RDb21tb246CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo5CiAgICAvLyByZXR1cm4gJ2NvbW1vbicKICAgIGJ5dGVjXzEgLy8gImNvbW1vbiIKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmIyQ2FudE92ZXJyaWRlKCkgLT4gYnl0ZXM6CmIyQ2FudE92ZXJyaWRlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MTMKICAgIC8vIHJldHVybiAnY29tbW9uJwogICAgYnl0ZWNfMSAvLyAiY29tbW9uIgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuY29uc3RydWN0b3IoKSAtPiB2b2lkOgpjb25zdHJ1Y3RvcjoKCmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgpjb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NgogICAgLy8gc3RhdGVDb21tb24gPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsgaW5pdGlhbFZhbHVlOiAxMjMgfSkKICAgIHB1c2hieXRlcyAic3RhdGVDb21tb24iCiAgICBwdXNoaW50IDEyMyAvLyAxMjMKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUgImNvbW1vbiIKCm1haW5fYmxvY2tAMDoKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKCm1haW5faWZfYm9keUAxOgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CgptYWluX2Jsb2NrQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo1CiAgICAvLyBleHBvcnQgY2xhc3MgQ29tbW9uQmFzZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDkKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjUKICAgIC8vIGV4cG9ydCBjbGFzcyBDb21tb25CYXNlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4NDU1YzhkMDkgLy8gbWV0aG9kICJtZXRob2RDb21tb24oKXN0cmluZyIKICAgIHB1c2hieXRlcyAweGY5ZjUxNDJjIC8vIG1ldGhvZCAiYjJDYW50T3ZlcnJpZGUoKXN0cmluZyIKICAgIHVuY292ZXIgMgogICAgbWF0Y2ggbWFpbl9tZXRob2RDb21tb25fcm91dGVANSBtYWluX2IyQ2FudE92ZXJyaWRlX3JvdXRlQDYKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA3OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDg6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo1CiAgICAvLyBleHBvcnQgY2xhc3MgQ29tbW9uQmFzZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuX19wdXlhX2FyYzRfcm91dGVyX19AMTQ6CiAgICByZXR1cm4KCm1haW5fYjJDYW50T3ZlcnJpZGVfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjEyCiAgICAvLyBiMkNhbnRPdmVycmlkZSgpOiBzdHJpbmcgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBiMkNhbnRPdmVycmlkZQogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl9tZXRob2RDb21tb25fcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjgKICAgIC8vIG1ldGhvZENvbW1vbigpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgbWV0aG9kQ29tbW9uCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2JhcmVfcm91dGluZ0A5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NQogICAgLy8gZXhwb3J0IGNsYXNzIENvbW1vbkJhc2UgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTAKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMjoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEzCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjUKICAgIC8vIGV4cG9ydCBjbGFzcyBDb21tb25CYXNlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLm1ldGhvZENvbW1vbigpIC0+IGJ5dGVzOgptZXRob2RDb21tb246CgptZXRob2RDb21tb25fYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjkKICAgIC8vIHJldHVybiAnY29tbW9uJwogICAgYnl0ZWNfMSAvLyAiY29tbW9uIgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuYjJDYW50T3ZlcnJpZGUoKSAtPiBieXRlczoKYjJDYW50T3ZlcnJpZGU6CgpiMkNhbnRPdmVycmlkZV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MTMKICAgIC8vIHJldHVybiAnY29tbW9uJwogICAgYnl0ZWNfMSAvLyAiY29tbW9uIgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CmNvbnN0cnVjdG9yOgoKY29uc3RydWN0b3JfYmxvY2tAMDoKCmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgpjb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NgogICAgLy8gc3RhdGVDb21tb24gPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsgaW5pdGlhbFZhbHVlOiAxMjMgfSkKICAgIHB1c2hieXRlcyAic3RhdGVDb21tb24iCiAgICBwdXNoaW50IDEyMyAvLyAxMjMKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/multi-inheritance/CommonBase.arc56.json b/tests/approvals/out/unoptimized/multi-inheritance/CommonBase.arc56.json index 8ddd1bc30..5c83939ad 100644 --- a/tests/approvals/out/unoptimized/multi-inheritance/CommonBase.arc56.json +++ b/tests/approvals/out/unoptimized/multi-inheritance/CommonBase.arc56.json @@ -106,8 +106,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUgImNvbW1vbiIKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKCm1haW5faWZfYm9keUAxOgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CgptYWluX2Jsb2NrQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo1CiAgICAvLyBleHBvcnQgY2xhc3MgQ29tbW9uQmFzZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDkKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjUKICAgIC8vIGV4cG9ydCBjbGFzcyBDb21tb25CYXNlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4NDU1YzhkMDkgLy8gbWV0aG9kICJtZXRob2RDb21tb24oKXN0cmluZyIKICAgIHB1c2hieXRlcyAweGY5ZjUxNDJjIC8vIG1ldGhvZCAiYjJDYW50T3ZlcnJpZGUoKXN0cmluZyIKICAgIHVuY292ZXIgMgogICAgbWF0Y2ggbWFpbl9tZXRob2RDb21tb25fcm91dGVANSBtYWluX2IyQ2FudE92ZXJyaWRlX3JvdXRlQDYKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA3OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDg6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo1CiAgICAvLyBleHBvcnQgY2xhc3MgQ29tbW9uQmFzZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuX19wdXlhX2FyYzRfcm91dGVyX19AMTQ6CiAgICByZXR1cm4KCm1haW5fYjJDYW50T3ZlcnJpZGVfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjEyCiAgICAvLyBiMkNhbnRPdmVycmlkZSgpOiBzdHJpbmcgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBiMkNhbnRPdmVycmlkZQogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl9tZXRob2RDb21tb25fcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjgKICAgIC8vIG1ldGhvZENvbW1vbigpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgbWV0aG9kQ29tbW9uCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2JhcmVfcm91dGluZ0A5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NQogICAgLy8gZXhwb3J0IGNsYXNzIENvbW1vbkJhc2UgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTAKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMjoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEzCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjUKICAgIC8vIGV4cG9ydCBjbGFzcyBDb21tb25CYXNlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLm1ldGhvZENvbW1vbigpIC0+IGJ5dGVzOgptZXRob2RDb21tb246CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo5CiAgICAvLyByZXR1cm4gJ2NvbW1vbicKICAgIGJ5dGVjXzEgLy8gImNvbW1vbiIKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmIyQ2FudE92ZXJyaWRlKCkgLT4gYnl0ZXM6CmIyQ2FudE92ZXJyaWRlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MTMKICAgIC8vIHJldHVybiAnY29tbW9uJwogICAgYnl0ZWNfMSAvLyAiY29tbW9uIgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuY29uc3RydWN0b3IoKSAtPiB2b2lkOgpjb25zdHJ1Y3RvcjoKCmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgpjb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NgogICAgLy8gc3RhdGVDb21tb24gPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsgaW5pdGlhbFZhbHVlOiAxMjMgfSkKICAgIHB1c2hieXRlcyAic3RhdGVDb21tb24iCiAgICBwdXNoaW50IDEyMyAvLyAxMjMKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUgImNvbW1vbiIKCm1haW5fYmxvY2tAMDoKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKCm1haW5faWZfYm9keUAxOgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CgptYWluX2Jsb2NrQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo1CiAgICAvLyBleHBvcnQgY2xhc3MgQ29tbW9uQmFzZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDkKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjUKICAgIC8vIGV4cG9ydCBjbGFzcyBDb21tb25CYXNlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4NDU1YzhkMDkgLy8gbWV0aG9kICJtZXRob2RDb21tb24oKXN0cmluZyIKICAgIHB1c2hieXRlcyAweGY5ZjUxNDJjIC8vIG1ldGhvZCAiYjJDYW50T3ZlcnJpZGUoKXN0cmluZyIKICAgIHVuY292ZXIgMgogICAgbWF0Y2ggbWFpbl9tZXRob2RDb21tb25fcm91dGVANSBtYWluX2IyQ2FudE92ZXJyaWRlX3JvdXRlQDYKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA3OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDg6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo1CiAgICAvLyBleHBvcnQgY2xhc3MgQ29tbW9uQmFzZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuX19wdXlhX2FyYzRfcm91dGVyX19AMTQ6CiAgICByZXR1cm4KCm1haW5fYjJDYW50T3ZlcnJpZGVfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjEyCiAgICAvLyBiMkNhbnRPdmVycmlkZSgpOiBzdHJpbmcgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBiMkNhbnRPdmVycmlkZQogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl9tZXRob2RDb21tb25fcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjgKICAgIC8vIG1ldGhvZENvbW1vbigpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgbWV0aG9kQ29tbW9uCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2JhcmVfcm91dGluZ0A5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NQogICAgLy8gZXhwb3J0IGNsYXNzIENvbW1vbkJhc2UgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTAKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMjoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEzCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjUKICAgIC8vIGV4cG9ydCBjbGFzcyBDb21tb25CYXNlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLm1ldGhvZENvbW1vbigpIC0+IGJ5dGVzOgptZXRob2RDb21tb246CgptZXRob2RDb21tb25fYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjkKICAgIC8vIHJldHVybiAnY29tbW9uJwogICAgYnl0ZWNfMSAvLyAiY29tbW9uIgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuYjJDYW50T3ZlcnJpZGUoKSAtPiBieXRlczoKYjJDYW50T3ZlcnJpZGU6CgpiMkNhbnRPdmVycmlkZV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MTMKICAgIC8vIHJldHVybiAnY29tbW9uJwogICAgYnl0ZWNfMSAvLyAiY29tbW9uIgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CmNvbnN0cnVjdG9yOgoKY29uc3RydWN0b3JfYmxvY2tAMDoKCmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgpjb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NgogICAgLy8gc3RhdGVDb21tb24gPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsgaW5pdGlhbFZhbHVlOiAxMjMgfSkKICAgIHB1c2hieXRlcyAic3RhdGVDb21tb24iCiAgICBwdXNoaW50IDEyMyAvLyAxMjMKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAEmAgQVH3x1BmNvbW1vbjEYQAADiAB2MRsiE0EAUzYaAIAERVyNCYAE+fUULE8CjgIAHwACIkMxGSISRDEYIhNEiABGSRUWVwYCTFAoTFCwI0L/4jEZIhJEMRgiE0SIACdJFRZXBgJMUChMULAjQv/FMRkiTI4BAANC/7kxGCISRIgACCNC/64piSmJiYALc3RhdGVDb21tb26Be2eJ", @@ -118,7 +118,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/multi-inheritance/CommonBase.clear.teal b/tests/approvals/out/unoptimized/multi-inheritance/CommonBase.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/multi-inheritance/CommonBase.clear.teal +++ b/tests/approvals/out/unoptimized/multi-inheritance/CommonBase.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/multi-inheritance/MultiBases.approval.teal b/tests/approvals/out/unoptimized/multi-inheritance/MultiBases.approval.teal index b15b80ddc..10013468a 100644 --- a/tests/approvals/out/unoptimized/multi-inheritance/MultiBases.approval.teal +++ b/tests/approvals/out/unoptimized/multi-inheritance/MultiBases.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 bytecblock 0x151f7c75 "common" "base-two" + +main_block@0: txn ApplicationID bnz main_after_if_else@2 @@ -275,6 +277,8 @@ main___algots__.defaultCreate@16: // tests/approvals/multi-inheritance.algo.ts::MultiBases.methodMulti() -> bytes: methodMulti: + +methodMulti_block@0: // tests/approvals/multi-inheritance.algo.ts:44 // return 'multi-bases' pushbytes "multi-bases" @@ -283,6 +287,8 @@ methodMulti: // tests/approvals/multi-inheritance.algo.ts::MultiBases.methodCallsSuper() -> bytes: methodCallsSuper: + +methodCallsSuper_block@0: // tests/approvals/multi-inheritance.algo.ts:48 // return super.methodTwo() callsub methodTwo @@ -291,6 +297,8 @@ methodCallsSuper: // tests/approvals/multi-inheritance.algo.ts::MultiBases.callB2CantOverride() -> bytes: callB2CantOverride: + +callB2CantOverride_block@0: // tests/approvals/multi-inheritance.algo.ts:52 // return super.class(BaseTwo).b2CantOverride() callsub tests/approvals/multi-inheritance.algo.ts::BaseTwo.b2CantOverride @@ -299,6 +307,8 @@ callB2CantOverride: // tests/approvals/multi-inheritance.algo.ts::MultiBases.callB2Common() -> bytes: callB2Common: + +callB2Common_block@0: // tests/approvals/multi-inheritance.algo.ts:56 // return super.class(BaseTwo).methodCommon() callsub methodCommon @@ -307,6 +317,8 @@ callB2Common: // tests/approvals/multi-inheritance.algo.ts::BaseOne.methodOne() -> bytes: methodOne: + +methodOne_block@0: // tests/approvals/multi-inheritance.algo.ts:20 // return 'base-one' pushbytes "base-one" @@ -315,6 +327,8 @@ methodOne: // tests/approvals/multi-inheritance.algo.ts::CommonBase.methodCommon() -> bytes: methodCommon: + +methodCommon_block@0: // tests/approvals/multi-inheritance.algo.ts:9 // return 'common' bytec_1 // "common" @@ -323,6 +337,8 @@ methodCommon: // tests/approvals/multi-inheritance.algo.ts::CommonBase.b2CantOverride() -> bytes: b2CantOverride: + +b2CantOverride_block@0: // tests/approvals/multi-inheritance.algo.ts:13 // return 'common' bytec_1 // "common" @@ -331,6 +347,8 @@ b2CantOverride: // tests/approvals/multi-inheritance.algo.ts::BaseTwo.methodTwo() -> bytes: methodTwo: + +methodTwo_block@0: // tests/approvals/multi-inheritance.algo.ts:27 // return 'base-two' bytec_2 // "base-two" @@ -339,6 +357,8 @@ methodTwo: // tests/approvals/multi-inheritance.algo.ts::BaseTwo.b2CantOverride() -> bytes: tests/approvals/multi-inheritance.algo.ts::BaseTwo.b2CantOverride: + +tests/approvals/multi-inheritance.algo.ts::BaseTwo.b2CantOverride_block@0: // tests/approvals/multi-inheritance.algo.ts:36 // return 'base-two' bytec_2 // "base-two" @@ -347,11 +367,15 @@ tests/approvals/multi-inheritance.algo.ts::BaseTwo.b2CantOverride: // tests/approvals/multi-inheritance.algo.ts::MultiBases.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub // tests/approvals/multi-inheritance.algo.ts::MultiBases.constructor() -> void: constructor: + +constructor_block@0: // tests/approvals/multi-inheritance.algo.ts:40 // export class MultiBases extends classes(BaseOne, BaseTwo) { callsub polytype/lib/polytype-module.d.ts::ClusteredContract.constructor @@ -365,6 +389,8 @@ constructor: // polytype/lib/polytype-module.d.ts::ClusteredContract.constructor() -> void: polytype/lib/polytype-module.d.ts::ClusteredContract.constructor: + +polytype/lib/polytype-module.d.ts::ClusteredContract.constructor_block@0: callsub tests/approvals/multi-inheritance.algo.ts::BaseOne.constructor callsub tests/approvals/multi-inheritance.algo.ts::BaseTwo.constructor retsub @@ -372,6 +398,8 @@ polytype/lib/polytype-module.d.ts::ClusteredContract void: tests/approvals/multi-inheritance.algo.ts::BaseOne.constructor: + +tests/approvals/multi-inheritance.algo.ts::BaseOne.constructor_block@0: // tests/approvals/multi-inheritance.algo.ts:17 // export class BaseOne extends CommonBase { callsub tests/approvals/multi-inheritance.algo.ts::CommonBase.constructor @@ -386,6 +414,8 @@ tests/approvals/multi-inheritance.algo.ts::BaseOne.constructor: // tests/approvals/multi-inheritance.algo.ts::CommonBase.constructor() -> void: tests/approvals/multi-inheritance.algo.ts::CommonBase.constructor: +tests/approvals/multi-inheritance.algo.ts::CommonBase.constructor_block@0: + tests/approvals/multi-inheritance.algo.ts::CommonBase.constructor_block@1: tests/approvals/multi-inheritance.algo.ts::CommonBase.constructor_after_inlined_@algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.constructor@2: @@ -399,6 +429,8 @@ tests/approvals/multi-inheritance.algo.ts::CommonBase.constructor_after_inlined_ // tests/approvals/multi-inheritance.algo.ts::BaseTwo.constructor() -> void: tests/approvals/multi-inheritance.algo.ts::BaseTwo.constructor: + +tests/approvals/multi-inheritance.algo.ts::BaseTwo.constructor_block@0: // tests/approvals/multi-inheritance.algo.ts:24 // export class BaseTwo extends CommonBase { callsub tests/approvals/multi-inheritance.algo.ts::CommonBase.constructor diff --git a/tests/approvals/out/unoptimized/multi-inheritance/MultiBases.arc32.json b/tests/approvals/out/unoptimized/multi-inheritance/MultiBases.arc32.json index ee2c8bf87..acde7a0fc 100644 --- a/tests/approvals/out/unoptimized/multi-inheritance/MultiBases.arc32.json +++ b/tests/approvals/out/unoptimized/multi-inheritance/MultiBases.arc32.json @@ -42,8 +42,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUgImNvbW1vbiIgImJhc2UtdHdvIgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMgoKbWFpbl9pZl9ib2R5QDE6CiAgICBjYWxsc3ViIGNvbnN0cnVjdG9yCgptYWluX2FmdGVyX2lmX2Vsc2VAMjoKCm1haW5fYmxvY2tAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQwCiAgICAvLyBleHBvcnQgY2xhc3MgTXVsdGlCYXNlcyBleHRlbmRzIGNsYXNzZXMoQmFzZU9uZSwgQmFzZVR3bykgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAMTUKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQwCiAgICAvLyBleHBvcnQgY2xhc3MgTXVsdGlCYXNlcyBleHRlbmRzIGNsYXNzZXMoQmFzZU9uZSwgQmFzZVR3bykgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4MjkwZWJhOWYgLy8gbWV0aG9kICJtZXRob2RNdWx0aSgpc3RyaW5nIgogICAgcHVzaGJ5dGVzIDB4ODM5ZDk2ZmYgLy8gbWV0aG9kICJtZXRob2RDYWxsc1N1cGVyKClzdHJpbmciCiAgICBwdXNoYnl0ZXMgMHhhOTc4Y2E1NiAvLyBtZXRob2QgImNhbGxCMkNhbnRPdmVycmlkZSgpc3RyaW5nIgogICAgcHVzaGJ5dGVzIDB4ODg1NDdlYjggLy8gbWV0aG9kICJjYWxsQjJDb21tb24oKXN0cmluZyIKICAgIHB1c2hieXRlcyAweGMzMjUzM2UzIC8vIG1ldGhvZCAibWV0aG9kT25lKClzdHJpbmciCiAgICBwdXNoYnl0ZXMgMHg0NTVjOGQwOSAvLyBtZXRob2QgIm1ldGhvZENvbW1vbigpc3RyaW5nIgogICAgcHVzaGJ5dGVzIDB4ZjlmNTE0MmMgLy8gbWV0aG9kICJiMkNhbnRPdmVycmlkZSgpc3RyaW5nIgogICAgcHVzaGJ5dGVzIDB4MzYzYjMyOWUgLy8gbWV0aG9kICJtZXRob2RUd28oKXN0cmluZyIKICAgIHVuY292ZXIgOAogICAgbWF0Y2ggbWFpbl9tZXRob2RNdWx0aV9yb3V0ZUA1IG1haW5fbWV0aG9kQ2FsbHNTdXBlcl9yb3V0ZUA2IG1haW5fY2FsbEIyQ2FudE92ZXJyaWRlX3JvdXRlQDcgbWFpbl9jYWxsQjJDb21tb25fcm91dGVAOCBtYWluX21ldGhvZE9uZV9yb3V0ZUA5IG1haW5fbWV0aG9kQ29tbW9uX3JvdXRlQDEwIG1haW5fYjJDYW50T3ZlcnJpZGVfcm91dGVAMTEgbWFpbl9tZXRob2RUd29fcm91dGVAMTIKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMzoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxNDoKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQwCiAgICAvLyBleHBvcnQgY2xhc3MgTXVsdGlCYXNlcyBleHRlbmRzIGNsYXNzZXMoQmFzZU9uZSwgQmFzZVR3bykgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6TXVsdGlCYXNlcy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AyMDoKICAgIHJldHVybgoKbWFpbl9tZXRob2RUd29fcm91dGVAMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoyNgogICAgLy8gbWV0aG9kVHdvKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBtZXRob2RUd28KICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fYjJDYW50T3ZlcnJpZGVfcm91dGVAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxMgogICAgLy8gYjJDYW50T3ZlcnJpZGUoKTogc3RyaW5nIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgYjJDYW50T3ZlcnJpZGUKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fbWV0aG9kQ29tbW9uX3JvdXRlQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OAogICAgLy8gbWV0aG9kQ29tbW9uKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBtZXRob2RDb21tb24KICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fbWV0aG9kT25lX3JvdXRlQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxOQogICAgLy8gbWV0aG9kT25lKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBtZXRob2RPbmUKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fY2FsbEIyQ29tbW9uX3JvdXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo1NQogICAgLy8gY2FsbEIyQ29tbW9uKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBjYWxsQjJDb21tb24KICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fY2FsbEIyQ2FudE92ZXJyaWRlX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo1MQogICAgLy8gY2FsbEIyQ2FudE92ZXJyaWRlKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBjYWxsQjJDYW50T3ZlcnJpZGUKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fbWV0aG9kQ2FsbHNTdXBlcl9yb3V0ZUA2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NDcKICAgIC8vIG1ldGhvZENhbGxzU3VwZXIoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIG1ldGhvZENhbGxzU3VwZXIKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fbWV0aG9kTXVsdGlfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQzCiAgICAvLyBtZXRob2RNdWx0aSgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgbWV0aG9kTXVsdGkKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fYmFyZV9yb3V0aW5nQDE1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NDAKICAgIC8vIGV4cG9ydCBjbGFzcyBNdWx0aUJhc2VzIGV4dGVuZHMgY2xhc3NlcyhCYXNlT25lLCBCYXNlVHdvKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTYKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxNzoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxODoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDE5CgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxNjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQwCiAgICAvLyBleHBvcnQgY2xhc3MgTXVsdGlCYXNlcyBleHRlbmRzIGNsYXNzZXMoQmFzZU9uZSwgQmFzZVR3bykgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6TXVsdGlCYXNlcy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AyMAoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpNdWx0aUJhc2VzLm1ldGhvZE11bHRpKCkgLT4gYnl0ZXM6Cm1ldGhvZE11bHRpOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NDQKICAgIC8vIHJldHVybiAnbXVsdGktYmFzZXMnCiAgICBwdXNoYnl0ZXMgIm11bHRpLWJhc2VzIgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMubWV0aG9kQ2FsbHNTdXBlcigpIC0+IGJ5dGVzOgptZXRob2RDYWxsc1N1cGVyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NDgKICAgIC8vIHJldHVybiBzdXBlci5tZXRob2RUd28oKQogICAgY2FsbHN1YiBtZXRob2RUd28KICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpNdWx0aUJhc2VzLmNhbGxCMkNhbnRPdmVycmlkZSgpIC0+IGJ5dGVzOgpjYWxsQjJDYW50T3ZlcnJpZGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo1MgogICAgLy8gcmV0dXJuIHN1cGVyLmNsYXNzKEJhc2VUd28pLmIyQ2FudE92ZXJyaWRlKCkKICAgIGNhbGxzdWIgdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28uYjJDYW50T3ZlcnJpZGUKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpNdWx0aUJhc2VzLmNhbGxCMkNvbW1vbigpIC0+IGJ5dGVzOgpjYWxsQjJDb21tb246CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo1NgogICAgLy8gcmV0dXJuIHN1cGVyLmNsYXNzKEJhc2VUd28pLm1ldGhvZENvbW1vbigpCiAgICBjYWxsc3ViIG1ldGhvZENvbW1vbgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VPbmUubWV0aG9kT25lKCkgLT4gYnl0ZXM6Cm1ldGhvZE9uZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjIwCiAgICAvLyByZXR1cm4gJ2Jhc2Utb25lJwogICAgcHVzaGJ5dGVzICJiYXNlLW9uZSIKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLm1ldGhvZENvbW1vbigpIC0+IGJ5dGVzOgptZXRob2RDb21tb246CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo5CiAgICAvLyByZXR1cm4gJ2NvbW1vbicKICAgIGJ5dGVjXzEgLy8gImNvbW1vbiIKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmIyQ2FudE92ZXJyaWRlKCkgLT4gYnl0ZXM6CmIyQ2FudE92ZXJyaWRlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MTMKICAgIC8vIHJldHVybiAnY29tbW9uJwogICAgYnl0ZWNfMSAvLyAiY29tbW9uIgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28ubWV0aG9kVHdvKCkgLT4gYnl0ZXM6Cm1ldGhvZFR3bzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjI3CiAgICAvLyByZXR1cm4gJ2Jhc2UtdHdvJwogICAgYnl0ZWNfMiAvLyAiYmFzZS10d28iCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3by5iMkNhbnRPdmVycmlkZSgpIC0+IGJ5dGVzOgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3by5iMkNhbnRPdmVycmlkZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjM2CiAgICAvLyByZXR1cm4gJ2Jhc2UtdHdvJwogICAgYnl0ZWNfMiAvLyAiYmFzZS10d28iCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6TXVsdGlCYXNlcy5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6TXVsdGlCYXNlcy5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CmNvbnN0cnVjdG9yOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NDAKICAgIC8vIGV4cG9ydCBjbGFzcyBNdWx0aUJhc2VzIGV4dGVuZHMgY2xhc3NlcyhCYXNlT25lLCBCYXNlVHdvKSB7CiAgICBjYWxsc3ViIHBvbHl0eXBlL2xpYi9wb2x5dHlwZS1tb2R1bGUuZC50czo6Q2x1c3RlcmVkQ29udHJhY3Q8dGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VPbmUsdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28+LmNvbnN0cnVjdG9yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo0MQogICAgLy8gc3RhdGVNdWx0aSA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiAnSG1tbScgfSkKICAgIHB1c2hieXRlcyAic3RhdGVNdWx0aSIKICAgIHB1c2hieXRlcyAiSG1tbSIKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIKCgovLyBwb2x5dHlwZS9saWIvcG9seXR5cGUtbW9kdWxlLmQudHM6OkNsdXN0ZXJlZENvbnRyYWN0PHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlT25lLHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvPi5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CnBvbHl0eXBlL2xpYi9wb2x5dHlwZS1tb2R1bGUuZC50czo6Q2x1c3RlcmVkQ29udHJhY3Q8dGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VPbmUsdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28+LmNvbnN0cnVjdG9yOgogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZU9uZS5jb25zdHJ1Y3RvcgogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3by5jb25zdHJ1Y3RvcgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VPbmUuY29uc3RydWN0b3IoKSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZU9uZS5jb25zdHJ1Y3RvcjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjE3CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZU9uZSBleHRlbmRzIENvbW1vbkJhc2UgewogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3RvcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MTgKICAgIC8vIHN0YXRlT25lID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6IFVpbnQ2NCg0NSkgfSkKICAgIHB1c2hieXRlcyAic3RhdGVPbmUiCiAgICBwdXNoaW50IDQ1IC8vIDQ1CiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuY29uc3RydWN0b3IoKSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3RvcjoKCnRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NgogICAgLy8gc3RhdGVDb21tb24gPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsgaW5pdGlhbFZhbHVlOiAxMjMgfSkKICAgIHB1c2hieXRlcyAic3RhdGVDb21tb24iCiAgICBwdXNoaW50IDEyMyAvLyAxMjMKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3by5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CnRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvLmNvbnN0cnVjdG9yOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlVHdvIGV4dGVuZHMgQ29tbW9uQmFzZSB7CiAgICBjYWxsc3ViIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmNvbnN0cnVjdG9yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoyNQogICAgLy8gc3RhdGVUd28gPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogJ0hlbGxvJyB9KQogICAgcHVzaGJ5dGVzICJzdGF0ZVR3byIKICAgIHB1c2hieXRlcyAiSGVsbG8iCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUgImNvbW1vbiIgImJhc2UtdHdvIgoKbWFpbl9ibG9ja0AwOgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMgoKbWFpbl9pZl9ib2R5QDE6CiAgICBjYWxsc3ViIGNvbnN0cnVjdG9yCgptYWluX2FmdGVyX2lmX2Vsc2VAMjoKCm1haW5fYmxvY2tAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQwCiAgICAvLyBleHBvcnQgY2xhc3MgTXVsdGlCYXNlcyBleHRlbmRzIGNsYXNzZXMoQmFzZU9uZSwgQmFzZVR3bykgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAMTUKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQwCiAgICAvLyBleHBvcnQgY2xhc3MgTXVsdGlCYXNlcyBleHRlbmRzIGNsYXNzZXMoQmFzZU9uZSwgQmFzZVR3bykgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4MjkwZWJhOWYgLy8gbWV0aG9kICJtZXRob2RNdWx0aSgpc3RyaW5nIgogICAgcHVzaGJ5dGVzIDB4ODM5ZDk2ZmYgLy8gbWV0aG9kICJtZXRob2RDYWxsc1N1cGVyKClzdHJpbmciCiAgICBwdXNoYnl0ZXMgMHhhOTc4Y2E1NiAvLyBtZXRob2QgImNhbGxCMkNhbnRPdmVycmlkZSgpc3RyaW5nIgogICAgcHVzaGJ5dGVzIDB4ODg1NDdlYjggLy8gbWV0aG9kICJjYWxsQjJDb21tb24oKXN0cmluZyIKICAgIHB1c2hieXRlcyAweGMzMjUzM2UzIC8vIG1ldGhvZCAibWV0aG9kT25lKClzdHJpbmciCiAgICBwdXNoYnl0ZXMgMHg0NTVjOGQwOSAvLyBtZXRob2QgIm1ldGhvZENvbW1vbigpc3RyaW5nIgogICAgcHVzaGJ5dGVzIDB4ZjlmNTE0MmMgLy8gbWV0aG9kICJiMkNhbnRPdmVycmlkZSgpc3RyaW5nIgogICAgcHVzaGJ5dGVzIDB4MzYzYjMyOWUgLy8gbWV0aG9kICJtZXRob2RUd28oKXN0cmluZyIKICAgIHVuY292ZXIgOAogICAgbWF0Y2ggbWFpbl9tZXRob2RNdWx0aV9yb3V0ZUA1IG1haW5fbWV0aG9kQ2FsbHNTdXBlcl9yb3V0ZUA2IG1haW5fY2FsbEIyQ2FudE92ZXJyaWRlX3JvdXRlQDcgbWFpbl9jYWxsQjJDb21tb25fcm91dGVAOCBtYWluX21ldGhvZE9uZV9yb3V0ZUA5IG1haW5fbWV0aG9kQ29tbW9uX3JvdXRlQDEwIG1haW5fYjJDYW50T3ZlcnJpZGVfcm91dGVAMTEgbWFpbl9tZXRob2RUd29fcm91dGVAMTIKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMzoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxNDoKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQwCiAgICAvLyBleHBvcnQgY2xhc3MgTXVsdGlCYXNlcyBleHRlbmRzIGNsYXNzZXMoQmFzZU9uZSwgQmFzZVR3bykgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6TXVsdGlCYXNlcy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AyMDoKICAgIHJldHVybgoKbWFpbl9tZXRob2RUd29fcm91dGVAMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoyNgogICAgLy8gbWV0aG9kVHdvKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBtZXRob2RUd28KICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fYjJDYW50T3ZlcnJpZGVfcm91dGVAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxMgogICAgLy8gYjJDYW50T3ZlcnJpZGUoKTogc3RyaW5nIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgYjJDYW50T3ZlcnJpZGUKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fbWV0aG9kQ29tbW9uX3JvdXRlQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OAogICAgLy8gbWV0aG9kQ29tbW9uKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBtZXRob2RDb21tb24KICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fbWV0aG9kT25lX3JvdXRlQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxOQogICAgLy8gbWV0aG9kT25lKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBtZXRob2RPbmUKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fY2FsbEIyQ29tbW9uX3JvdXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo1NQogICAgLy8gY2FsbEIyQ29tbW9uKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBjYWxsQjJDb21tb24KICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fY2FsbEIyQ2FudE92ZXJyaWRlX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo1MQogICAgLy8gY2FsbEIyQ2FudE92ZXJyaWRlKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBjYWxsQjJDYW50T3ZlcnJpZGUKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fbWV0aG9kQ2FsbHNTdXBlcl9yb3V0ZUA2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NDcKICAgIC8vIG1ldGhvZENhbGxzU3VwZXIoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIG1ldGhvZENhbGxzU3VwZXIKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fbWV0aG9kTXVsdGlfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQzCiAgICAvLyBtZXRob2RNdWx0aSgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgbWV0aG9kTXVsdGkKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fYmFyZV9yb3V0aW5nQDE1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NDAKICAgIC8vIGV4cG9ydCBjbGFzcyBNdWx0aUJhc2VzIGV4dGVuZHMgY2xhc3NlcyhCYXNlT25lLCBCYXNlVHdvKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTYKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxNzoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxODoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDE5CgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxNjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQwCiAgICAvLyBleHBvcnQgY2xhc3MgTXVsdGlCYXNlcyBleHRlbmRzIGNsYXNzZXMoQmFzZU9uZSwgQmFzZVR3bykgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6TXVsdGlCYXNlcy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AyMAoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpNdWx0aUJhc2VzLm1ldGhvZE11bHRpKCkgLT4gYnl0ZXM6Cm1ldGhvZE11bHRpOgoKbWV0aG9kTXVsdGlfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQ0CiAgICAvLyByZXR1cm4gJ211bHRpLWJhc2VzJwogICAgcHVzaGJ5dGVzICJtdWx0aS1iYXNlcyIKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpNdWx0aUJhc2VzLm1ldGhvZENhbGxzU3VwZXIoKSAtPiBieXRlczoKbWV0aG9kQ2FsbHNTdXBlcjoKCm1ldGhvZENhbGxzU3VwZXJfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQ4CiAgICAvLyByZXR1cm4gc3VwZXIubWV0aG9kVHdvKCkKICAgIGNhbGxzdWIgbWV0aG9kVHdvCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6TXVsdGlCYXNlcy5jYWxsQjJDYW50T3ZlcnJpZGUoKSAtPiBieXRlczoKY2FsbEIyQ2FudE92ZXJyaWRlOgoKY2FsbEIyQ2FudE92ZXJyaWRlX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo1MgogICAgLy8gcmV0dXJuIHN1cGVyLmNsYXNzKEJhc2VUd28pLmIyQ2FudE92ZXJyaWRlKCkKICAgIGNhbGxzdWIgdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28uYjJDYW50T3ZlcnJpZGUKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpNdWx0aUJhc2VzLmNhbGxCMkNvbW1vbigpIC0+IGJ5dGVzOgpjYWxsQjJDb21tb246CgpjYWxsQjJDb21tb25fYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjU2CiAgICAvLyByZXR1cm4gc3VwZXIuY2xhc3MoQmFzZVR3bykubWV0aG9kQ29tbW9uKCkKICAgIGNhbGxzdWIgbWV0aG9kQ29tbW9uCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZU9uZS5tZXRob2RPbmUoKSAtPiBieXRlczoKbWV0aG9kT25lOgoKbWV0aG9kT25lX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoyMAogICAgLy8gcmV0dXJuICdiYXNlLW9uZScKICAgIHB1c2hieXRlcyAiYmFzZS1vbmUiCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5tZXRob2RDb21tb24oKSAtPiBieXRlczoKbWV0aG9kQ29tbW9uOgoKbWV0aG9kQ29tbW9uX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo5CiAgICAvLyByZXR1cm4gJ2NvbW1vbicKICAgIGJ5dGVjXzEgLy8gImNvbW1vbiIKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmIyQ2FudE92ZXJyaWRlKCkgLT4gYnl0ZXM6CmIyQ2FudE92ZXJyaWRlOgoKYjJDYW50T3ZlcnJpZGVfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjEzCiAgICAvLyByZXR1cm4gJ2NvbW1vbicKICAgIGJ5dGVjXzEgLy8gImNvbW1vbiIKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvLm1ldGhvZFR3bygpIC0+IGJ5dGVzOgptZXRob2RUd286CgptZXRob2RUd29fYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjI3CiAgICAvLyByZXR1cm4gJ2Jhc2UtdHdvJwogICAgYnl0ZWNfMiAvLyAiYmFzZS10d28iCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3by5iMkNhbnRPdmVycmlkZSgpIC0+IGJ5dGVzOgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3by5iMkNhbnRPdmVycmlkZToKCnRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvLmIyQ2FudE92ZXJyaWRlX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czozNgogICAgLy8gcmV0dXJuICdiYXNlLXR3bycKICAgIGJ5dGVjXzIgLy8gImJhc2UtdHdvIgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6TXVsdGlCYXNlcy5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CmNvbnN0cnVjdG9yOgoKY29uc3RydWN0b3JfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQwCiAgICAvLyBleHBvcnQgY2xhc3MgTXVsdGlCYXNlcyBleHRlbmRzIGNsYXNzZXMoQmFzZU9uZSwgQmFzZVR3bykgewogICAgY2FsbHN1YiBwb2x5dHlwZS9saWIvcG9seXR5cGUtbW9kdWxlLmQudHM6OkNsdXN0ZXJlZENvbnRyYWN0PHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlT25lLHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvPi5jb25zdHJ1Y3RvcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NDEKICAgIC8vIHN0YXRlTXVsdGkgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogJ0htbW0nIH0pCiAgICBwdXNoYnl0ZXMgInN0YXRlTXVsdGkiCiAgICBwdXNoYnl0ZXMgIkhtbW0iCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gcG9seXR5cGUvbGliL3BvbHl0eXBlLW1vZHVsZS5kLnRzOjpDbHVzdGVyZWRDb250cmFjdDx0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZU9uZSx0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3bz4uY29uc3RydWN0b3IoKSAtPiB2b2lkOgpwb2x5dHlwZS9saWIvcG9seXR5cGUtbW9kdWxlLmQudHM6OkNsdXN0ZXJlZENvbnRyYWN0PHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlT25lLHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvPi5jb25zdHJ1Y3RvcjoKCnBvbHl0eXBlL2xpYi9wb2x5dHlwZS1tb2R1bGUuZC50czo6Q2x1c3RlcmVkQ29udHJhY3Q8dGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VPbmUsdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28+LmNvbnN0cnVjdG9yX2Jsb2NrQDA6CiAgICBjYWxsc3ViIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlT25lLmNvbnN0cnVjdG9yCiAgICBjYWxsc3ViIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvLmNvbnN0cnVjdG9yCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZU9uZS5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CnRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlT25lLmNvbnN0cnVjdG9yOgoKdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VPbmUuY29uc3RydWN0b3JfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjE3CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZU9uZSBleHRlbmRzIENvbW1vbkJhc2UgewogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3RvcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MTgKICAgIC8vIHN0YXRlT25lID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6IFVpbnQ2NCg0NSkgfSkKICAgIHB1c2hieXRlcyAic3RhdGVPbmUiCiAgICBwdXNoaW50IDQ1IC8vIDQ1CiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuY29uc3RydWN0b3IoKSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3RvcjoKCnRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmNvbnN0cnVjdG9yX2Jsb2NrQDA6Cgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3Rvcl9ibG9ja0AxOgoKdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuY29uc3RydWN0b3JfYWZ0ZXJfaW5saW5lZF9AYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY29uc3RydWN0b3JAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjYKICAgIC8vIHN0YXRlQ29tbW9uID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGluaXRpYWxWYWx1ZTogMTIzIH0pCiAgICBwdXNoYnl0ZXMgInN0YXRlQ29tbW9uIgogICAgcHVzaGludCAxMjMgLy8gMTIzCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28uY29uc3RydWN0b3IoKSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3by5jb25zdHJ1Y3RvcjoKCnRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvLmNvbnN0cnVjdG9yX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VUd28gZXh0ZW5kcyBDb21tb25CYXNlIHsKICAgIGNhbGxzdWIgdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuY29uc3RydWN0b3IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjI1CiAgICAvLyBzdGF0ZVR3byA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiAnSGVsbG8nIH0pCiAgICBwdXNoYnl0ZXMgInN0YXRlVHdvIgogICAgcHVzaGJ5dGVzICJIZWxsbyIKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/multi-inheritance/MultiBases.arc56.json b/tests/approvals/out/unoptimized/multi-inheritance/MultiBases.arc56.json index d0c778412..60cc6970c 100644 --- a/tests/approvals/out/unoptimized/multi-inheritance/MultiBases.arc56.json +++ b/tests/approvals/out/unoptimized/multi-inheritance/MultiBases.arc56.json @@ -229,8 +229,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUgImNvbW1vbiIgImJhc2UtdHdvIgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMgoKbWFpbl9pZl9ib2R5QDE6CiAgICBjYWxsc3ViIGNvbnN0cnVjdG9yCgptYWluX2FmdGVyX2lmX2Vsc2VAMjoKCm1haW5fYmxvY2tAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQwCiAgICAvLyBleHBvcnQgY2xhc3MgTXVsdGlCYXNlcyBleHRlbmRzIGNsYXNzZXMoQmFzZU9uZSwgQmFzZVR3bykgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAMTUKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQwCiAgICAvLyBleHBvcnQgY2xhc3MgTXVsdGlCYXNlcyBleHRlbmRzIGNsYXNzZXMoQmFzZU9uZSwgQmFzZVR3bykgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4MjkwZWJhOWYgLy8gbWV0aG9kICJtZXRob2RNdWx0aSgpc3RyaW5nIgogICAgcHVzaGJ5dGVzIDB4ODM5ZDk2ZmYgLy8gbWV0aG9kICJtZXRob2RDYWxsc1N1cGVyKClzdHJpbmciCiAgICBwdXNoYnl0ZXMgMHhhOTc4Y2E1NiAvLyBtZXRob2QgImNhbGxCMkNhbnRPdmVycmlkZSgpc3RyaW5nIgogICAgcHVzaGJ5dGVzIDB4ODg1NDdlYjggLy8gbWV0aG9kICJjYWxsQjJDb21tb24oKXN0cmluZyIKICAgIHB1c2hieXRlcyAweGMzMjUzM2UzIC8vIG1ldGhvZCAibWV0aG9kT25lKClzdHJpbmciCiAgICBwdXNoYnl0ZXMgMHg0NTVjOGQwOSAvLyBtZXRob2QgIm1ldGhvZENvbW1vbigpc3RyaW5nIgogICAgcHVzaGJ5dGVzIDB4ZjlmNTE0MmMgLy8gbWV0aG9kICJiMkNhbnRPdmVycmlkZSgpc3RyaW5nIgogICAgcHVzaGJ5dGVzIDB4MzYzYjMyOWUgLy8gbWV0aG9kICJtZXRob2RUd28oKXN0cmluZyIKICAgIHVuY292ZXIgOAogICAgbWF0Y2ggbWFpbl9tZXRob2RNdWx0aV9yb3V0ZUA1IG1haW5fbWV0aG9kQ2FsbHNTdXBlcl9yb3V0ZUA2IG1haW5fY2FsbEIyQ2FudE92ZXJyaWRlX3JvdXRlQDcgbWFpbl9jYWxsQjJDb21tb25fcm91dGVAOCBtYWluX21ldGhvZE9uZV9yb3V0ZUA5IG1haW5fbWV0aG9kQ29tbW9uX3JvdXRlQDEwIG1haW5fYjJDYW50T3ZlcnJpZGVfcm91dGVAMTEgbWFpbl9tZXRob2RUd29fcm91dGVAMTIKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMzoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxNDoKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQwCiAgICAvLyBleHBvcnQgY2xhc3MgTXVsdGlCYXNlcyBleHRlbmRzIGNsYXNzZXMoQmFzZU9uZSwgQmFzZVR3bykgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6TXVsdGlCYXNlcy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AyMDoKICAgIHJldHVybgoKbWFpbl9tZXRob2RUd29fcm91dGVAMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoyNgogICAgLy8gbWV0aG9kVHdvKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBtZXRob2RUd28KICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fYjJDYW50T3ZlcnJpZGVfcm91dGVAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxMgogICAgLy8gYjJDYW50T3ZlcnJpZGUoKTogc3RyaW5nIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgYjJDYW50T3ZlcnJpZGUKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fbWV0aG9kQ29tbW9uX3JvdXRlQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OAogICAgLy8gbWV0aG9kQ29tbW9uKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBtZXRob2RDb21tb24KICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fbWV0aG9kT25lX3JvdXRlQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxOQogICAgLy8gbWV0aG9kT25lKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBtZXRob2RPbmUKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fY2FsbEIyQ29tbW9uX3JvdXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo1NQogICAgLy8gY2FsbEIyQ29tbW9uKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBjYWxsQjJDb21tb24KICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fY2FsbEIyQ2FudE92ZXJyaWRlX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo1MQogICAgLy8gY2FsbEIyQ2FudE92ZXJyaWRlKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBjYWxsQjJDYW50T3ZlcnJpZGUKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fbWV0aG9kQ2FsbHNTdXBlcl9yb3V0ZUA2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NDcKICAgIC8vIG1ldGhvZENhbGxzU3VwZXIoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIG1ldGhvZENhbGxzU3VwZXIKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fbWV0aG9kTXVsdGlfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQzCiAgICAvLyBtZXRob2RNdWx0aSgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgbWV0aG9kTXVsdGkKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fYmFyZV9yb3V0aW5nQDE1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NDAKICAgIC8vIGV4cG9ydCBjbGFzcyBNdWx0aUJhc2VzIGV4dGVuZHMgY2xhc3NlcyhCYXNlT25lLCBCYXNlVHdvKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTYKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxNzoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxODoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDE5CgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxNjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQwCiAgICAvLyBleHBvcnQgY2xhc3MgTXVsdGlCYXNlcyBleHRlbmRzIGNsYXNzZXMoQmFzZU9uZSwgQmFzZVR3bykgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6TXVsdGlCYXNlcy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AyMAoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpNdWx0aUJhc2VzLm1ldGhvZE11bHRpKCkgLT4gYnl0ZXM6Cm1ldGhvZE11bHRpOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NDQKICAgIC8vIHJldHVybiAnbXVsdGktYmFzZXMnCiAgICBwdXNoYnl0ZXMgIm11bHRpLWJhc2VzIgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMubWV0aG9kQ2FsbHNTdXBlcigpIC0+IGJ5dGVzOgptZXRob2RDYWxsc1N1cGVyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NDgKICAgIC8vIHJldHVybiBzdXBlci5tZXRob2RUd28oKQogICAgY2FsbHN1YiBtZXRob2RUd28KICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpNdWx0aUJhc2VzLmNhbGxCMkNhbnRPdmVycmlkZSgpIC0+IGJ5dGVzOgpjYWxsQjJDYW50T3ZlcnJpZGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo1MgogICAgLy8gcmV0dXJuIHN1cGVyLmNsYXNzKEJhc2VUd28pLmIyQ2FudE92ZXJyaWRlKCkKICAgIGNhbGxzdWIgdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28uYjJDYW50T3ZlcnJpZGUKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpNdWx0aUJhc2VzLmNhbGxCMkNvbW1vbigpIC0+IGJ5dGVzOgpjYWxsQjJDb21tb246CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo1NgogICAgLy8gcmV0dXJuIHN1cGVyLmNsYXNzKEJhc2VUd28pLm1ldGhvZENvbW1vbigpCiAgICBjYWxsc3ViIG1ldGhvZENvbW1vbgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VPbmUubWV0aG9kT25lKCkgLT4gYnl0ZXM6Cm1ldGhvZE9uZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjIwCiAgICAvLyByZXR1cm4gJ2Jhc2Utb25lJwogICAgcHVzaGJ5dGVzICJiYXNlLW9uZSIKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLm1ldGhvZENvbW1vbigpIC0+IGJ5dGVzOgptZXRob2RDb21tb246CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo5CiAgICAvLyByZXR1cm4gJ2NvbW1vbicKICAgIGJ5dGVjXzEgLy8gImNvbW1vbiIKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmIyQ2FudE92ZXJyaWRlKCkgLT4gYnl0ZXM6CmIyQ2FudE92ZXJyaWRlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MTMKICAgIC8vIHJldHVybiAnY29tbW9uJwogICAgYnl0ZWNfMSAvLyAiY29tbW9uIgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28ubWV0aG9kVHdvKCkgLT4gYnl0ZXM6Cm1ldGhvZFR3bzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjI3CiAgICAvLyByZXR1cm4gJ2Jhc2UtdHdvJwogICAgYnl0ZWNfMiAvLyAiYmFzZS10d28iCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3by5iMkNhbnRPdmVycmlkZSgpIC0+IGJ5dGVzOgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3by5iMkNhbnRPdmVycmlkZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjM2CiAgICAvLyByZXR1cm4gJ2Jhc2UtdHdvJwogICAgYnl0ZWNfMiAvLyAiYmFzZS10d28iCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6TXVsdGlCYXNlcy5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6TXVsdGlCYXNlcy5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CmNvbnN0cnVjdG9yOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NDAKICAgIC8vIGV4cG9ydCBjbGFzcyBNdWx0aUJhc2VzIGV4dGVuZHMgY2xhc3NlcyhCYXNlT25lLCBCYXNlVHdvKSB7CiAgICBjYWxsc3ViIHBvbHl0eXBlL2xpYi9wb2x5dHlwZS1tb2R1bGUuZC50czo6Q2x1c3RlcmVkQ29udHJhY3Q8dGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VPbmUsdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28+LmNvbnN0cnVjdG9yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo0MQogICAgLy8gc3RhdGVNdWx0aSA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiAnSG1tbScgfSkKICAgIHB1c2hieXRlcyAic3RhdGVNdWx0aSIKICAgIHB1c2hieXRlcyAiSG1tbSIKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIKCgovLyBwb2x5dHlwZS9saWIvcG9seXR5cGUtbW9kdWxlLmQudHM6OkNsdXN0ZXJlZENvbnRyYWN0PHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlT25lLHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvPi5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CnBvbHl0eXBlL2xpYi9wb2x5dHlwZS1tb2R1bGUuZC50czo6Q2x1c3RlcmVkQ29udHJhY3Q8dGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VPbmUsdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28+LmNvbnN0cnVjdG9yOgogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZU9uZS5jb25zdHJ1Y3RvcgogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3by5jb25zdHJ1Y3RvcgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VPbmUuY29uc3RydWN0b3IoKSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZU9uZS5jb25zdHJ1Y3RvcjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjE3CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZU9uZSBleHRlbmRzIENvbW1vbkJhc2UgewogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3RvcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MTgKICAgIC8vIHN0YXRlT25lID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6IFVpbnQ2NCg0NSkgfSkKICAgIHB1c2hieXRlcyAic3RhdGVPbmUiCiAgICBwdXNoaW50IDQ1IC8vIDQ1CiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuY29uc3RydWN0b3IoKSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3RvcjoKCnRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NgogICAgLy8gc3RhdGVDb21tb24gPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsgaW5pdGlhbFZhbHVlOiAxMjMgfSkKICAgIHB1c2hieXRlcyAic3RhdGVDb21tb24iCiAgICBwdXNoaW50IDEyMyAvLyAxMjMKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3by5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CnRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvLmNvbnN0cnVjdG9yOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlVHdvIGV4dGVuZHMgQ29tbW9uQmFzZSB7CiAgICBjYWxsc3ViIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmNvbnN0cnVjdG9yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoyNQogICAgLy8gc3RhdGVUd28gPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogJ0hlbGxvJyB9KQogICAgcHVzaGJ5dGVzICJzdGF0ZVR3byIKICAgIHB1c2hieXRlcyAiSGVsbG8iCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUgImNvbW1vbiIgImJhc2UtdHdvIgoKbWFpbl9ibG9ja0AwOgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMgoKbWFpbl9pZl9ib2R5QDE6CiAgICBjYWxsc3ViIGNvbnN0cnVjdG9yCgptYWluX2FmdGVyX2lmX2Vsc2VAMjoKCm1haW5fYmxvY2tAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQwCiAgICAvLyBleHBvcnQgY2xhc3MgTXVsdGlCYXNlcyBleHRlbmRzIGNsYXNzZXMoQmFzZU9uZSwgQmFzZVR3bykgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAMTUKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQwCiAgICAvLyBleHBvcnQgY2xhc3MgTXVsdGlCYXNlcyBleHRlbmRzIGNsYXNzZXMoQmFzZU9uZSwgQmFzZVR3bykgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4MjkwZWJhOWYgLy8gbWV0aG9kICJtZXRob2RNdWx0aSgpc3RyaW5nIgogICAgcHVzaGJ5dGVzIDB4ODM5ZDk2ZmYgLy8gbWV0aG9kICJtZXRob2RDYWxsc1N1cGVyKClzdHJpbmciCiAgICBwdXNoYnl0ZXMgMHhhOTc4Y2E1NiAvLyBtZXRob2QgImNhbGxCMkNhbnRPdmVycmlkZSgpc3RyaW5nIgogICAgcHVzaGJ5dGVzIDB4ODg1NDdlYjggLy8gbWV0aG9kICJjYWxsQjJDb21tb24oKXN0cmluZyIKICAgIHB1c2hieXRlcyAweGMzMjUzM2UzIC8vIG1ldGhvZCAibWV0aG9kT25lKClzdHJpbmciCiAgICBwdXNoYnl0ZXMgMHg0NTVjOGQwOSAvLyBtZXRob2QgIm1ldGhvZENvbW1vbigpc3RyaW5nIgogICAgcHVzaGJ5dGVzIDB4ZjlmNTE0MmMgLy8gbWV0aG9kICJiMkNhbnRPdmVycmlkZSgpc3RyaW5nIgogICAgcHVzaGJ5dGVzIDB4MzYzYjMyOWUgLy8gbWV0aG9kICJtZXRob2RUd28oKXN0cmluZyIKICAgIHVuY292ZXIgOAogICAgbWF0Y2ggbWFpbl9tZXRob2RNdWx0aV9yb3V0ZUA1IG1haW5fbWV0aG9kQ2FsbHNTdXBlcl9yb3V0ZUA2IG1haW5fY2FsbEIyQ2FudE92ZXJyaWRlX3JvdXRlQDcgbWFpbl9jYWxsQjJDb21tb25fcm91dGVAOCBtYWluX21ldGhvZE9uZV9yb3V0ZUA5IG1haW5fbWV0aG9kQ29tbW9uX3JvdXRlQDEwIG1haW5fYjJDYW50T3ZlcnJpZGVfcm91dGVAMTEgbWFpbl9tZXRob2RUd29fcm91dGVAMTIKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMzoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxNDoKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQwCiAgICAvLyBleHBvcnQgY2xhc3MgTXVsdGlCYXNlcyBleHRlbmRzIGNsYXNzZXMoQmFzZU9uZSwgQmFzZVR3bykgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6TXVsdGlCYXNlcy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AyMDoKICAgIHJldHVybgoKbWFpbl9tZXRob2RUd29fcm91dGVAMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoyNgogICAgLy8gbWV0aG9kVHdvKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBtZXRob2RUd28KICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fYjJDYW50T3ZlcnJpZGVfcm91dGVAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxMgogICAgLy8gYjJDYW50T3ZlcnJpZGUoKTogc3RyaW5nIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgYjJDYW50T3ZlcnJpZGUKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fbWV0aG9kQ29tbW9uX3JvdXRlQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OAogICAgLy8gbWV0aG9kQ29tbW9uKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBtZXRob2RDb21tb24KICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fbWV0aG9kT25lX3JvdXRlQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoxOQogICAgLy8gbWV0aG9kT25lKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBtZXRob2RPbmUKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fY2FsbEIyQ29tbW9uX3JvdXRlQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo1NQogICAgLy8gY2FsbEIyQ29tbW9uKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBjYWxsQjJDb21tb24KICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fY2FsbEIyQ2FudE92ZXJyaWRlX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo1MQogICAgLy8gY2FsbEIyQ2FudE92ZXJyaWRlKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBjYWxsQjJDYW50T3ZlcnJpZGUKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fbWV0aG9kQ2FsbHNTdXBlcl9yb3V0ZUA2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NDcKICAgIC8vIG1ldGhvZENhbGxzU3VwZXIoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIG1ldGhvZENhbGxzU3VwZXIKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fbWV0aG9kTXVsdGlfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQzCiAgICAvLyBtZXRob2RNdWx0aSgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgbWV0aG9kTXVsdGkKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19wdXlhX2FyYzRfcm91dGVyX19AMjAKCm1haW5fYmFyZV9yb3V0aW5nQDE1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NDAKICAgIC8vIGV4cG9ydCBjbGFzcyBNdWx0aUJhc2VzIGV4dGVuZHMgY2xhc3NlcyhCYXNlT25lLCBCYXNlVHdvKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTYKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxNzoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxODoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDE5CgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxNjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQwCiAgICAvLyBleHBvcnQgY2xhc3MgTXVsdGlCYXNlcyBleHRlbmRzIGNsYXNzZXMoQmFzZU9uZSwgQmFzZVR3bykgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6TXVsdGlCYXNlcy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AyMAoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpNdWx0aUJhc2VzLm1ldGhvZE11bHRpKCkgLT4gYnl0ZXM6Cm1ldGhvZE11bHRpOgoKbWV0aG9kTXVsdGlfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQ0CiAgICAvLyByZXR1cm4gJ211bHRpLWJhc2VzJwogICAgcHVzaGJ5dGVzICJtdWx0aS1iYXNlcyIKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpNdWx0aUJhc2VzLm1ldGhvZENhbGxzU3VwZXIoKSAtPiBieXRlczoKbWV0aG9kQ2FsbHNTdXBlcjoKCm1ldGhvZENhbGxzU3VwZXJfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQ4CiAgICAvLyByZXR1cm4gc3VwZXIubWV0aG9kVHdvKCkKICAgIGNhbGxzdWIgbWV0aG9kVHdvCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6TXVsdGlCYXNlcy5jYWxsQjJDYW50T3ZlcnJpZGUoKSAtPiBieXRlczoKY2FsbEIyQ2FudE92ZXJyaWRlOgoKY2FsbEIyQ2FudE92ZXJyaWRlX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo1MgogICAgLy8gcmV0dXJuIHN1cGVyLmNsYXNzKEJhc2VUd28pLmIyQ2FudE92ZXJyaWRlKCkKICAgIGNhbGxzdWIgdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28uYjJDYW50T3ZlcnJpZGUKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpNdWx0aUJhc2VzLmNhbGxCMkNvbW1vbigpIC0+IGJ5dGVzOgpjYWxsQjJDb21tb246CgpjYWxsQjJDb21tb25fYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjU2CiAgICAvLyByZXR1cm4gc3VwZXIuY2xhc3MoQmFzZVR3bykubWV0aG9kQ29tbW9uKCkKICAgIGNhbGxzdWIgbWV0aG9kQ29tbW9uCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZU9uZS5tZXRob2RPbmUoKSAtPiBieXRlczoKbWV0aG9kT25lOgoKbWV0aG9kT25lX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoyMAogICAgLy8gcmV0dXJuICdiYXNlLW9uZScKICAgIHB1c2hieXRlcyAiYmFzZS1vbmUiCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5tZXRob2RDb21tb24oKSAtPiBieXRlczoKbWV0aG9kQ29tbW9uOgoKbWV0aG9kQ29tbW9uX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo5CiAgICAvLyByZXR1cm4gJ2NvbW1vbicKICAgIGJ5dGVjXzEgLy8gImNvbW1vbiIKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmIyQ2FudE92ZXJyaWRlKCkgLT4gYnl0ZXM6CmIyQ2FudE92ZXJyaWRlOgoKYjJDYW50T3ZlcnJpZGVfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjEzCiAgICAvLyByZXR1cm4gJ2NvbW1vbicKICAgIGJ5dGVjXzEgLy8gImNvbW1vbiIKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvLm1ldGhvZFR3bygpIC0+IGJ5dGVzOgptZXRob2RUd286CgptZXRob2RUd29fYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjI3CiAgICAvLyByZXR1cm4gJ2Jhc2UtdHdvJwogICAgYnl0ZWNfMiAvLyAiYmFzZS10d28iCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3by5iMkNhbnRPdmVycmlkZSgpIC0+IGJ5dGVzOgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3by5iMkNhbnRPdmVycmlkZToKCnRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvLmIyQ2FudE92ZXJyaWRlX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czozNgogICAgLy8gcmV0dXJuICdiYXNlLXR3bycKICAgIGJ5dGVjXzIgLy8gImJhc2UtdHdvIgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6Ok11bHRpQmFzZXMuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6TXVsdGlCYXNlcy5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CmNvbnN0cnVjdG9yOgoKY29uc3RydWN0b3JfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjQwCiAgICAvLyBleHBvcnQgY2xhc3MgTXVsdGlCYXNlcyBleHRlbmRzIGNsYXNzZXMoQmFzZU9uZSwgQmFzZVR3bykgewogICAgY2FsbHN1YiBwb2x5dHlwZS9saWIvcG9seXR5cGUtbW9kdWxlLmQudHM6OkNsdXN0ZXJlZENvbnRyYWN0PHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlT25lLHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvPi5jb25zdHJ1Y3RvcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6NDEKICAgIC8vIHN0YXRlTXVsdGkgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogJ0htbW0nIH0pCiAgICBwdXNoYnl0ZXMgInN0YXRlTXVsdGkiCiAgICBwdXNoYnl0ZXMgIkhtbW0iCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gcG9seXR5cGUvbGliL3BvbHl0eXBlLW1vZHVsZS5kLnRzOjpDbHVzdGVyZWRDb250cmFjdDx0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZU9uZSx0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3bz4uY29uc3RydWN0b3IoKSAtPiB2b2lkOgpwb2x5dHlwZS9saWIvcG9seXR5cGUtbW9kdWxlLmQudHM6OkNsdXN0ZXJlZENvbnRyYWN0PHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlT25lLHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvPi5jb25zdHJ1Y3RvcjoKCnBvbHl0eXBlL2xpYi9wb2x5dHlwZS1tb2R1bGUuZC50czo6Q2x1c3RlcmVkQ29udHJhY3Q8dGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VPbmUsdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28+LmNvbnN0cnVjdG9yX2Jsb2NrQDA6CiAgICBjYWxsc3ViIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlT25lLmNvbnN0cnVjdG9yCiAgICBjYWxsc3ViIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvLmNvbnN0cnVjdG9yCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZU9uZS5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CnRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlT25lLmNvbnN0cnVjdG9yOgoKdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VPbmUuY29uc3RydWN0b3JfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjE3CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZU9uZSBleHRlbmRzIENvbW1vbkJhc2UgewogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3RvcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6MTgKICAgIC8vIHN0YXRlT25lID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6IFVpbnQ2NCg0NSkgfSkKICAgIHB1c2hieXRlcyAic3RhdGVPbmUiCiAgICBwdXNoaW50IDQ1IC8vIDQ1CiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuY29uc3RydWN0b3IoKSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3RvcjoKCnRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpDb21tb25CYXNlLmNvbnN0cnVjdG9yX2Jsb2NrQDA6Cgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6Q29tbW9uQmFzZS5jb25zdHJ1Y3Rvcl9ibG9ja0AxOgoKdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuY29uc3RydWN0b3JfYWZ0ZXJfaW5saW5lZF9AYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY29uc3RydWN0b3JAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjYKICAgIC8vIHN0YXRlQ29tbW9uID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGluaXRpYWxWYWx1ZTogMTIzIH0pCiAgICBwdXNoYnl0ZXMgInN0YXRlQ29tbW9uIgogICAgcHVzaGludCAxMjMgLy8gMTIzCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkJhc2VUd28uY29uc3RydWN0b3IoKSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czo6QmFzZVR3by5jb25zdHJ1Y3RvcjoKCnRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjpCYXNlVHdvLmNvbnN0cnVjdG9yX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXVsdGktaW5oZXJpdGFuY2UuYWxnby50czoyNAogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VUd28gZXh0ZW5kcyBDb21tb25CYXNlIHsKICAgIGNhbGxzdWIgdGVzdHMvYXBwcm92YWxzL211bHRpLWluaGVyaXRhbmNlLmFsZ28udHM6OkNvbW1vbkJhc2UuY29uc3RydWN0b3IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdWx0aS1pbmhlcml0YW5jZS5hbGdvLnRzOjI1CiAgICAvLyBzdGF0ZVR3byA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiAnSGVsbG8nIH0pCiAgICBwdXNoYnl0ZXMgInN0YXRlVHdvIgogICAgcHVzaGJ5dGVzICJIZWxsbyIKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAEmAwQVH3x1BmNvbW1vbghiYXNlLXR3bzEYQAADiAF9MRsiE0EBMTYaAIAEKQ66n4AEg52W/4AEqXjKVoAEiFR+uIAEwyUz44AERVyNCYAE+fUULIAENjsynk8IjggAzQCwAJMAdgBZADwAHwACIkMxGSISRDEYIhNEiAEbSRUWVwYCTFAoTFCwI0L/4jEZIhJEMRgiE0SIAPxJFRZXBgJMUChMULAjQv/FMRkiEkQxGCITRIgA3UkVFlcGAkxQKExQsCNC/6gxGSISRDEYIhNEiAC1SRUWVwYCTFAoTFCwI0L/izEZIhJEMRgiE0SIAJRJFRZXBgJMUChMULAjQv9uMRkiEkQxGCITRIgAc0kVFlcGAkxQKExQsCNC/1ExGSISRDEYIhNEiABSSRUWVwYCTFAoTFCwI0L/NDEZIhJEMRgiE0SIACdJFRZXBgJMUChMULAjQv8XMRkiTI4BAANC/wsxGCISRIgAMSNC/wCAC211bHRpLWJhc2VziYgAGImIABaJiAAMiYAIYmFzZS1vbmWJKYkpiSqJKomJiAAUgApzdGF0ZU11bHRpgARIbW1tZ4mIAASIACOJiAAOgAhzdGF0ZU9uZYEtZ4mAC3N0YXRlQ29tbW9ugXtniYj/7IAIc3RhdGVUd2+ABUhlbGxvZ4k=", @@ -241,7 +241,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/multi-inheritance/MultiBases.clear.teal b/tests/approvals/out/unoptimized/multi-inheritance/MultiBases.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/multi-inheritance/MultiBases.clear.teal +++ b/tests/approvals/out/unoptimized/multi-inheritance/MultiBases.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/mutable-arrays/MutableArraysAlgo.approval.teal b/tests/approvals/out/unoptimized/mutable-arrays/MutableArraysAlgo.approval.teal index 0c4b3be00..aa214f13c 100644 --- a/tests/approvals/out/unoptimized/mutable-arrays/MutableArraysAlgo.approval.teal +++ b/tests/approvals/out/unoptimized/mutable-arrays/MutableArraysAlgo.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 8 1 bytecblock 0x 0x068101 + +main_block@0: pushbytes 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff store 0 @@ -85,6 +87,8 @@ main___algots__.defaultCreate@7: // _puya_lib.util.ensure_budget(required_budget: uint64, fee_source: uint64) -> void: ensure_budget: proto 2 0 + +ensure_budget_block@0: frame_dig -2 pushint 10 // 10 + @@ -135,6 +139,8 @@ test: // tests/approvals/mutable-arrays.algo.ts:5 // test(length: uint64) { proto 1 0 + +test_block@0: // tests/approvals/mutable-arrays.algo.ts:6 // ensureBudget(2000) pushint 2000 // 2000 @@ -245,11 +251,15 @@ test_after_while@3: // tests/approvals/mutable-arrays.algo.ts::MutableArraysAlgo.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub // _puya_lib.mem.new_slot() -> uint64: _puya_lib.mem.new_slot: + +_puya_lib.mem.new_slot@entry: load 0 bitlen load 0 diff --git a/tests/approvals/out/unoptimized/mutable-arrays/MutableArraysAlgo.arc32.json b/tests/approvals/out/unoptimized/mutable-arrays/MutableArraysAlgo.arc32.json index 2645cf9c2..eaed33f1a 100644 --- a/tests/approvals/out/unoptimized/mutable-arrays/MutableArraysAlgo.arc32.json +++ b/tests/approvals/out/unoptimized/mutable-arrays/MutableArraysAlgo.arc32.json @@ -7,8 +7,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA4IDEKICAgIGJ5dGVjYmxvY2sgMHggMHgwNjgxMDEKICAgIHB1c2hieXRlcyAweDdmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYKICAgIHN0b3JlIDAKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIE11dGFibGVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANgoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgTXV0YWJsZUFycmF5c0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgyYTMzNzc3MSAvLyBtZXRob2QgInRlc3QodWludDY0KXZvaWQiCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3Rlc3Rfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIE11dGFibGVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo6TXV0YWJsZUFycmF5c0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTE6CiAgICByZXR1cm4KCm1haW5fdGVzdF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6NQogICAgLy8gdGVzdChsZW5ndGg6IHVpbnQ2NCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgTXV0YWJsZUFycmF5c0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo1CiAgICAvLyB0ZXN0KGxlbmd0aDogdWludDY0KSB7CiAgICBjYWxsc3ViIHRlc3QKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo6TXV0YWJsZUFycmF5c0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo0CiAgICAvLyBjbGFzcyBNdXRhYmxlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo0CiAgICAvLyBjbGFzcyBNdXRhYmxlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6Ok11dGFibGVBcnJheXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gX3B1eWFfbGliLnV0aWwuZW5zdXJlX2J1ZGdldChyZXF1aXJlZF9idWRnZXQ6IHVpbnQ2NCwgZmVlX3NvdXJjZTogdWludDY0KSAtPiB2b2lkOgplbnN1cmVfYnVkZ2V0OgogICAgcHJvdG8gMiAwCiAgICBmcmFtZV9kaWcgLTIKICAgIHB1c2hpbnQgMTAgLy8gMTAKICAgICsKCmVuc3VyZV9idWRnZXRfd2hpbGVfdG9wQDE6CiAgICBnbG9iYWwgT3Bjb2RlQnVkZ2V0CiAgICBmcmFtZV9kaWcgMAogICAgPAogICAgYnogZW5zdXJlX2J1ZGdldF9hZnRlcl93aGlsZUA3CgplbnN1cmVfYnVkZ2V0X3doaWxlX2JvZHlAMjoKICAgIGl0eG5fYmVnaW4KICAgIHB1c2hpbnQgNiAvLyBhcHBsCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBwdXNoaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICBieXRlY18xIC8vIDB4MDY4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQogICAgYnl0ZWNfMSAvLyAweDA2ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQogICAgaW50Y18wIC8vIDAKICAgIGludGNfMiAvLyAxCiAgICBmcmFtZV9kaWcgLTEKICAgIG1hdGNoIGVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfMEAzIGVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfMUA0CgplbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlX2RlZmF1bHRANToKCmVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfbmV4dEA2OgogICAgaXR4bl9zdWJtaXQKICAgIGIgZW5zdXJlX2J1ZGdldF93aGlsZV90b3BAMQoKZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV8xQDQ6CiAgICBnbG9iYWwgTWluVHhuRmVlCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgYiBlbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlX25leHRANgoKZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV8wQDM6CiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIGIgZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV9uZXh0QDYKCmVuc3VyZV9idWRnZXRfYWZ0ZXJfd2hpbGVANzoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjpNdXRhYmxlQXJyYXlzQWxnby50ZXN0KGxlbmd0aDogdWludDY0KSAtPiB2b2lkOgp0ZXN0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6NQogICAgLy8gdGVzdChsZW5ndGg6IHVpbnQ2NCkgewogICAgcHJvdG8gMSAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo2CiAgICAvLyBlbnN1cmVCdWRnZXQoMjAwMCkKICAgIHB1c2hpbnQgMjAwMCAvLyAyMDAwCiAgICBpbnRjXzAgLy8gMAogICAgY2FsbHN1YiBlbnN1cmVfYnVkZ2V0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo3CiAgICAvLyBjb25zdCBtYSA9IG5ldyBNdXRhYmxlQXJyYXk8dWludDY0PigpCiAgICBjYWxsc3ViIF9wdXlhX2xpYi5tZW0ubmV3X3Nsb3QKICAgIGR1cAogICAgYnl0ZWNfMCAvLyAweAogICAgc3RvcmVzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo4CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKICAgIGludGNfMCAvLyAwCgp0ZXN0X3doaWxlX3RvcEAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6OAogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICBmcmFtZV9kaWcgMQogICAgZnJhbWVfZGlnIC0xCiAgICA8CiAgICBieiB0ZXN0X2FmdGVyX3doaWxlQDMKCnRlc3Rfd2hpbGVfYm9keUAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6OQogICAgLy8gbWEucHVzaChpKQogICAgZnJhbWVfZGlnIDEKICAgIGR1cAogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAwCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGxvYWRzCiAgICBzd2FwCiAgICBjb25jYXQgLy8gb24gZXJyb3I6IG1heCBhcnJheSBsZW5ndGggZXhjZWVkZWQKICAgIHN0b3JlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6OAogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICBpbnRjXzIgLy8gMQogICAgKwogICAgZnJhbWVfYnVyeSAxCiAgICBiIHRlc3Rfd2hpbGVfdG9wQDEKCnRlc3RfYWZ0ZXJfd2hpbGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjEyCiAgICAvLyBhc3NlcnQobWEubGVuZ3RoID09PSBsZW5ndGgpCiAgICBmcmFtZV9kaWcgMAogICAgZHVwCiAgICBsb2FkcwogICAgbGVuCiAgICBpbnRjXzEgLy8gOAogICAgLwogICAgZnJhbWVfZGlnIC0xCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czoxMwogICAgLy8gYXNzZXJ0KGxlbmd0aCwgJ2hhcyBsZW5ndGgnKQogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NlcnQgLy8gaGFzIGxlbmd0aAogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6MTQKICAgIC8vIGNvbnN0IHBvcHBlZCA9IG1hLnBvcCgpCiAgICBkdXAKICAgIGxvYWRzCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDgKICAgIC0KICAgIGR1cAogICAgaW50Y18xIC8vIDgKICAgIC8KICAgIHN3YXAKICAgIGRpZyAyCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBleHRyYWN0MwogICAgY292ZXIgMgogICAgaW50Y18xIC8vIDgKICAgICoKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MwogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MwogICAgYnRvaQogICAgc3dhcAogICAgdW5jb3ZlciAyCiAgICBzd2FwCiAgICBzdG9yZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjE1CiAgICAvLyBhc3NlcnQobGVuZ3RoLCAnaGFzIGxlbmd0aCcpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2VydCAvLyBoYXMgbGVuZ3RoCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czoxNwogICAgLy8gYXNzZXJ0KHBvcHBlZCA9PT0gbGVuZ3RoIC0gMSkKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18yIC8vIDEKICAgIC0KICAgID09CiAgICBhc3NlcnQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjpNdXRhYmxlQXJyYXlzQWxnby5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIKCgovLyBfcHV5YV9saWIubWVtLm5ld19zbG90KCkgLT4gdWludDY0OgpfcHV5YV9saWIubWVtLm5ld19zbG90OgogICAgbG9hZCAwCiAgICBiaXRsZW4KICAgIGxvYWQgMAogICAgcHVzaGludCAyNTYgLy8gMjU2CiAgICBkaWcgMgogICAgLQogICAgaW50Y18wIC8vIDAKICAgIHNldGJpdCAvLyBvbiBlcnJvcjogbm8gYXZhaWxhYmxlIHNsb3RzCiAgICBzdG9yZSAwCiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA4IDEKICAgIGJ5dGVjYmxvY2sgMHggMHgwNjgxMDEKCm1haW5fYmxvY2tAMDoKICAgIHB1c2hieXRlcyAweDdmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYKICAgIHN0b3JlIDAKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIE11dGFibGVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANgoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgTXV0YWJsZUFycmF5c0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgyYTMzNzc3MSAvLyBtZXRob2QgInRlc3QodWludDY0KXZvaWQiCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3Rlc3Rfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIE11dGFibGVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo6TXV0YWJsZUFycmF5c0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTE6CiAgICByZXR1cm4KCm1haW5fdGVzdF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6NQogICAgLy8gdGVzdChsZW5ndGg6IHVpbnQ2NCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgTXV0YWJsZUFycmF5c0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo1CiAgICAvLyB0ZXN0KGxlbmd0aDogdWludDY0KSB7CiAgICBjYWxsc3ViIHRlc3QKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo6TXV0YWJsZUFycmF5c0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo0CiAgICAvLyBjbGFzcyBNdXRhYmxlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo0CiAgICAvLyBjbGFzcyBNdXRhYmxlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6Ok11dGFibGVBcnJheXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gX3B1eWFfbGliLnV0aWwuZW5zdXJlX2J1ZGdldChyZXF1aXJlZF9idWRnZXQ6IHVpbnQ2NCwgZmVlX3NvdXJjZTogdWludDY0KSAtPiB2b2lkOgplbnN1cmVfYnVkZ2V0OgogICAgcHJvdG8gMiAwCgplbnN1cmVfYnVkZ2V0X2Jsb2NrQDA6CiAgICBmcmFtZV9kaWcgLTIKICAgIHB1c2hpbnQgMTAgLy8gMTAKICAgICsKCmVuc3VyZV9idWRnZXRfd2hpbGVfdG9wQDE6CiAgICBnbG9iYWwgT3Bjb2RlQnVkZ2V0CiAgICBmcmFtZV9kaWcgMAogICAgPAogICAgYnogZW5zdXJlX2J1ZGdldF9hZnRlcl93aGlsZUA3CgplbnN1cmVfYnVkZ2V0X3doaWxlX2JvZHlAMjoKICAgIGl0eG5fYmVnaW4KICAgIHB1c2hpbnQgNiAvLyBhcHBsCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBwdXNoaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICBieXRlY18xIC8vIDB4MDY4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQogICAgYnl0ZWNfMSAvLyAweDA2ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQogICAgaW50Y18wIC8vIDAKICAgIGludGNfMiAvLyAxCiAgICBmcmFtZV9kaWcgLTEKICAgIG1hdGNoIGVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfMEAzIGVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfMUA0CgplbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlX2RlZmF1bHRANToKCmVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfbmV4dEA2OgogICAgaXR4bl9zdWJtaXQKICAgIGIgZW5zdXJlX2J1ZGdldF93aGlsZV90b3BAMQoKZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV8xQDQ6CiAgICBnbG9iYWwgTWluVHhuRmVlCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgYiBlbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlX25leHRANgoKZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV8wQDM6CiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIGIgZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV9uZXh0QDYKCmVuc3VyZV9idWRnZXRfYWZ0ZXJfd2hpbGVANzoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjpNdXRhYmxlQXJyYXlzQWxnby50ZXN0KGxlbmd0aDogdWludDY0KSAtPiB2b2lkOgp0ZXN0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6NQogICAgLy8gdGVzdChsZW5ndGg6IHVpbnQ2NCkgewogICAgcHJvdG8gMSAwCgp0ZXN0X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo2CiAgICAvLyBlbnN1cmVCdWRnZXQoMjAwMCkKICAgIHB1c2hpbnQgMjAwMCAvLyAyMDAwCiAgICBpbnRjXzAgLy8gMAogICAgY2FsbHN1YiBlbnN1cmVfYnVkZ2V0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo3CiAgICAvLyBjb25zdCBtYSA9IG5ldyBNdXRhYmxlQXJyYXk8dWludDY0PigpCiAgICBjYWxsc3ViIF9wdXlhX2xpYi5tZW0ubmV3X3Nsb3QKICAgIGR1cAogICAgYnl0ZWNfMCAvLyAweAogICAgc3RvcmVzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo4CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKICAgIGludGNfMCAvLyAwCgp0ZXN0X3doaWxlX3RvcEAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6OAogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICBmcmFtZV9kaWcgMQogICAgZnJhbWVfZGlnIC0xCiAgICA8CiAgICBieiB0ZXN0X2FmdGVyX3doaWxlQDMKCnRlc3Rfd2hpbGVfYm9keUAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6OQogICAgLy8gbWEucHVzaChpKQogICAgZnJhbWVfZGlnIDEKICAgIGR1cAogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAwCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGxvYWRzCiAgICBzd2FwCiAgICBjb25jYXQgLy8gb24gZXJyb3I6IG1heCBhcnJheSBsZW5ndGggZXhjZWVkZWQKICAgIHN0b3JlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6OAogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICBpbnRjXzIgLy8gMQogICAgKwogICAgZnJhbWVfYnVyeSAxCiAgICBiIHRlc3Rfd2hpbGVfdG9wQDEKCnRlc3RfYWZ0ZXJfd2hpbGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjEyCiAgICAvLyBhc3NlcnQobWEubGVuZ3RoID09PSBsZW5ndGgpCiAgICBmcmFtZV9kaWcgMAogICAgZHVwCiAgICBsb2FkcwogICAgbGVuCiAgICBpbnRjXzEgLy8gOAogICAgLwogICAgZnJhbWVfZGlnIC0xCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czoxMwogICAgLy8gYXNzZXJ0KGxlbmd0aCwgJ2hhcyBsZW5ndGgnKQogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NlcnQgLy8gaGFzIGxlbmd0aAogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6MTQKICAgIC8vIGNvbnN0IHBvcHBlZCA9IG1hLnBvcCgpCiAgICBkdXAKICAgIGxvYWRzCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDgKICAgIC0KICAgIGR1cAogICAgaW50Y18xIC8vIDgKICAgIC8KICAgIHN3YXAKICAgIGRpZyAyCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBleHRyYWN0MwogICAgY292ZXIgMgogICAgaW50Y18xIC8vIDgKICAgICoKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MwogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MwogICAgYnRvaQogICAgc3dhcAogICAgdW5jb3ZlciAyCiAgICBzd2FwCiAgICBzdG9yZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjE1CiAgICAvLyBhc3NlcnQobGVuZ3RoLCAnaGFzIGxlbmd0aCcpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2VydCAvLyBoYXMgbGVuZ3RoCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czoxNwogICAgLy8gYXNzZXJ0KHBvcHBlZCA9PT0gbGVuZ3RoIC0gMSkKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18yIC8vIDEKICAgIC0KICAgID09CiAgICBhc3NlcnQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjpNdXRhYmxlQXJyYXlzQWxnby5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIF9wdXlhX2xpYi5tZW0ubmV3X3Nsb3QoKSAtPiB1aW50NjQ6Cl9wdXlhX2xpYi5tZW0ubmV3X3Nsb3Q6CgpfcHV5YV9saWIubWVtLm5ld19zbG90QGVudHJ5OgogICAgbG9hZCAwCiAgICBiaXRsZW4KICAgIGxvYWQgMAogICAgcHVzaGludCAyNTYgLy8gMjU2CiAgICBkaWcgMgogICAgLQogICAgaW50Y18wIC8vIDAKICAgIHNldGJpdCAvLyBvbiBlcnJvcjogbm8gYXZhaWxhYmxlIHNsb3RzCiAgICBzdG9yZSAwCiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/mutable-arrays/MutableArraysAlgo.arc56.json b/tests/approvals/out/unoptimized/mutable-arrays/MutableArraysAlgo.arc56.json index 08ce267d8..c21cad33f 100644 --- a/tests/approvals/out/unoptimized/mutable-arrays/MutableArraysAlgo.arc56.json +++ b/tests/approvals/out/unoptimized/mutable-arrays/MutableArraysAlgo.arc56.json @@ -106,8 +106,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA4IDEKICAgIGJ5dGVjYmxvY2sgMHggMHgwNjgxMDEKICAgIHB1c2hieXRlcyAweDdmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYKICAgIHN0b3JlIDAKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIE11dGFibGVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANgoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgTXV0YWJsZUFycmF5c0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgyYTMzNzc3MSAvLyBtZXRob2QgInRlc3QodWludDY0KXZvaWQiCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3Rlc3Rfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIE11dGFibGVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo6TXV0YWJsZUFycmF5c0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTE6CiAgICByZXR1cm4KCm1haW5fdGVzdF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6NQogICAgLy8gdGVzdChsZW5ndGg6IHVpbnQ2NCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgTXV0YWJsZUFycmF5c0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo1CiAgICAvLyB0ZXN0KGxlbmd0aDogdWludDY0KSB7CiAgICBjYWxsc3ViIHRlc3QKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo6TXV0YWJsZUFycmF5c0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo0CiAgICAvLyBjbGFzcyBNdXRhYmxlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo0CiAgICAvLyBjbGFzcyBNdXRhYmxlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6Ok11dGFibGVBcnJheXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gX3B1eWFfbGliLnV0aWwuZW5zdXJlX2J1ZGdldChyZXF1aXJlZF9idWRnZXQ6IHVpbnQ2NCwgZmVlX3NvdXJjZTogdWludDY0KSAtPiB2b2lkOgplbnN1cmVfYnVkZ2V0OgogICAgcHJvdG8gMiAwCiAgICBmcmFtZV9kaWcgLTIKICAgIHB1c2hpbnQgMTAgLy8gMTAKICAgICsKCmVuc3VyZV9idWRnZXRfd2hpbGVfdG9wQDE6CiAgICBnbG9iYWwgT3Bjb2RlQnVkZ2V0CiAgICBmcmFtZV9kaWcgMAogICAgPAogICAgYnogZW5zdXJlX2J1ZGdldF9hZnRlcl93aGlsZUA3CgplbnN1cmVfYnVkZ2V0X3doaWxlX2JvZHlAMjoKICAgIGl0eG5fYmVnaW4KICAgIHB1c2hpbnQgNiAvLyBhcHBsCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBwdXNoaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICBieXRlY18xIC8vIDB4MDY4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQogICAgYnl0ZWNfMSAvLyAweDA2ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQogICAgaW50Y18wIC8vIDAKICAgIGludGNfMiAvLyAxCiAgICBmcmFtZV9kaWcgLTEKICAgIG1hdGNoIGVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfMEAzIGVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfMUA0CgplbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlX2RlZmF1bHRANToKCmVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfbmV4dEA2OgogICAgaXR4bl9zdWJtaXQKICAgIGIgZW5zdXJlX2J1ZGdldF93aGlsZV90b3BAMQoKZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV8xQDQ6CiAgICBnbG9iYWwgTWluVHhuRmVlCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgYiBlbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlX25leHRANgoKZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV8wQDM6CiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIGIgZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV9uZXh0QDYKCmVuc3VyZV9idWRnZXRfYWZ0ZXJfd2hpbGVANzoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjpNdXRhYmxlQXJyYXlzQWxnby50ZXN0KGxlbmd0aDogdWludDY0KSAtPiB2b2lkOgp0ZXN0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6NQogICAgLy8gdGVzdChsZW5ndGg6IHVpbnQ2NCkgewogICAgcHJvdG8gMSAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo2CiAgICAvLyBlbnN1cmVCdWRnZXQoMjAwMCkKICAgIHB1c2hpbnQgMjAwMCAvLyAyMDAwCiAgICBpbnRjXzAgLy8gMAogICAgY2FsbHN1YiBlbnN1cmVfYnVkZ2V0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo3CiAgICAvLyBjb25zdCBtYSA9IG5ldyBNdXRhYmxlQXJyYXk8dWludDY0PigpCiAgICBjYWxsc3ViIF9wdXlhX2xpYi5tZW0ubmV3X3Nsb3QKICAgIGR1cAogICAgYnl0ZWNfMCAvLyAweAogICAgc3RvcmVzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo4CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKICAgIGludGNfMCAvLyAwCgp0ZXN0X3doaWxlX3RvcEAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6OAogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICBmcmFtZV9kaWcgMQogICAgZnJhbWVfZGlnIC0xCiAgICA8CiAgICBieiB0ZXN0X2FmdGVyX3doaWxlQDMKCnRlc3Rfd2hpbGVfYm9keUAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6OQogICAgLy8gbWEucHVzaChpKQogICAgZnJhbWVfZGlnIDEKICAgIGR1cAogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAwCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGxvYWRzCiAgICBzd2FwCiAgICBjb25jYXQgLy8gb24gZXJyb3I6IG1heCBhcnJheSBsZW5ndGggZXhjZWVkZWQKICAgIHN0b3JlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6OAogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICBpbnRjXzIgLy8gMQogICAgKwogICAgZnJhbWVfYnVyeSAxCiAgICBiIHRlc3Rfd2hpbGVfdG9wQDEKCnRlc3RfYWZ0ZXJfd2hpbGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjEyCiAgICAvLyBhc3NlcnQobWEubGVuZ3RoID09PSBsZW5ndGgpCiAgICBmcmFtZV9kaWcgMAogICAgZHVwCiAgICBsb2FkcwogICAgbGVuCiAgICBpbnRjXzEgLy8gOAogICAgLwogICAgZnJhbWVfZGlnIC0xCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czoxMwogICAgLy8gYXNzZXJ0KGxlbmd0aCwgJ2hhcyBsZW5ndGgnKQogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NlcnQgLy8gaGFzIGxlbmd0aAogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6MTQKICAgIC8vIGNvbnN0IHBvcHBlZCA9IG1hLnBvcCgpCiAgICBkdXAKICAgIGxvYWRzCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDgKICAgIC0KICAgIGR1cAogICAgaW50Y18xIC8vIDgKICAgIC8KICAgIHN3YXAKICAgIGRpZyAyCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBleHRyYWN0MwogICAgY292ZXIgMgogICAgaW50Y18xIC8vIDgKICAgICoKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MwogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MwogICAgYnRvaQogICAgc3dhcAogICAgdW5jb3ZlciAyCiAgICBzd2FwCiAgICBzdG9yZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjE1CiAgICAvLyBhc3NlcnQobGVuZ3RoLCAnaGFzIGxlbmd0aCcpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2VydCAvLyBoYXMgbGVuZ3RoCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czoxNwogICAgLy8gYXNzZXJ0KHBvcHBlZCA9PT0gbGVuZ3RoIC0gMSkKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18yIC8vIDEKICAgIC0KICAgID09CiAgICBhc3NlcnQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjpNdXRhYmxlQXJyYXlzQWxnby5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIKCgovLyBfcHV5YV9saWIubWVtLm5ld19zbG90KCkgLT4gdWludDY0OgpfcHV5YV9saWIubWVtLm5ld19zbG90OgogICAgbG9hZCAwCiAgICBiaXRsZW4KICAgIGxvYWQgMAogICAgcHVzaGludCAyNTYgLy8gMjU2CiAgICBkaWcgMgogICAgLQogICAgaW50Y18wIC8vIDAKICAgIHNldGJpdCAvLyBvbiBlcnJvcjogbm8gYXZhaWxhYmxlIHNsb3RzCiAgICBzdG9yZSAwCiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA4IDEKICAgIGJ5dGVjYmxvY2sgMHggMHgwNjgxMDEKCm1haW5fYmxvY2tAMDoKICAgIHB1c2hieXRlcyAweDdmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYKICAgIHN0b3JlIDAKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIE11dGFibGVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANgoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgTXV0YWJsZUFycmF5c0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgyYTMzNzc3MSAvLyBtZXRob2QgInRlc3QodWludDY0KXZvaWQiCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3Rlc3Rfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIE11dGFibGVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo6TXV0YWJsZUFycmF5c0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTE6CiAgICByZXR1cm4KCm1haW5fdGVzdF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6NQogICAgLy8gdGVzdChsZW5ndGg6IHVpbnQ2NCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgTXV0YWJsZUFycmF5c0FsZ28gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo1CiAgICAvLyB0ZXN0KGxlbmd0aDogdWludDY0KSB7CiAgICBjYWxsc3ViIHRlc3QKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo6TXV0YWJsZUFycmF5c0FsZ28uX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo0CiAgICAvLyBjbGFzcyBNdXRhYmxlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo0CiAgICAvLyBjbGFzcyBNdXRhYmxlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6Ok11dGFibGVBcnJheXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gX3B1eWFfbGliLnV0aWwuZW5zdXJlX2J1ZGdldChyZXF1aXJlZF9idWRnZXQ6IHVpbnQ2NCwgZmVlX3NvdXJjZTogdWludDY0KSAtPiB2b2lkOgplbnN1cmVfYnVkZ2V0OgogICAgcHJvdG8gMiAwCgplbnN1cmVfYnVkZ2V0X2Jsb2NrQDA6CiAgICBmcmFtZV9kaWcgLTIKICAgIHB1c2hpbnQgMTAgLy8gMTAKICAgICsKCmVuc3VyZV9idWRnZXRfd2hpbGVfdG9wQDE6CiAgICBnbG9iYWwgT3Bjb2RlQnVkZ2V0CiAgICBmcmFtZV9kaWcgMAogICAgPAogICAgYnogZW5zdXJlX2J1ZGdldF9hZnRlcl93aGlsZUA3CgplbnN1cmVfYnVkZ2V0X3doaWxlX2JvZHlAMjoKICAgIGl0eG5fYmVnaW4KICAgIHB1c2hpbnQgNiAvLyBhcHBsCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBwdXNoaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICBieXRlY18xIC8vIDB4MDY4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQogICAgYnl0ZWNfMSAvLyAweDA2ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQogICAgaW50Y18wIC8vIDAKICAgIGludGNfMiAvLyAxCiAgICBmcmFtZV9kaWcgLTEKICAgIG1hdGNoIGVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfMEAzIGVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfMUA0CgplbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlX2RlZmF1bHRANToKCmVuc3VyZV9idWRnZXRfc3dpdGNoX2Nhc2VfbmV4dEA2OgogICAgaXR4bl9zdWJtaXQKICAgIGIgZW5zdXJlX2J1ZGdldF93aGlsZV90b3BAMQoKZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV8xQDQ6CiAgICBnbG9iYWwgTWluVHhuRmVlCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgYiBlbnN1cmVfYnVkZ2V0X3N3aXRjaF9jYXNlX25leHRANgoKZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV8wQDM6CiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIGIgZW5zdXJlX2J1ZGdldF9zd2l0Y2hfY2FzZV9uZXh0QDYKCmVuc3VyZV9idWRnZXRfYWZ0ZXJfd2hpbGVANzoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjpNdXRhYmxlQXJyYXlzQWxnby50ZXN0KGxlbmd0aDogdWludDY0KSAtPiB2b2lkOgp0ZXN0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6NQogICAgLy8gdGVzdChsZW5ndGg6IHVpbnQ2NCkgewogICAgcHJvdG8gMSAwCgp0ZXN0X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo2CiAgICAvLyBlbnN1cmVCdWRnZXQoMjAwMCkKICAgIHB1c2hpbnQgMjAwMCAvLyAyMDAwCiAgICBpbnRjXzAgLy8gMAogICAgY2FsbHN1YiBlbnN1cmVfYnVkZ2V0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo3CiAgICAvLyBjb25zdCBtYSA9IG5ldyBNdXRhYmxlQXJyYXk8dWludDY0PigpCiAgICBjYWxsc3ViIF9wdXlhX2xpYi5tZW0ubmV3X3Nsb3QKICAgIGR1cAogICAgYnl0ZWNfMCAvLyAweAogICAgc3RvcmVzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czo4CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKICAgIGludGNfMCAvLyAwCgp0ZXN0X3doaWxlX3RvcEAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6OAogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICBmcmFtZV9kaWcgMQogICAgZnJhbWVfZGlnIC0xCiAgICA8CiAgICBieiB0ZXN0X2FmdGVyX3doaWxlQDMKCnRlc3Rfd2hpbGVfYm9keUAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6OQogICAgLy8gbWEucHVzaChpKQogICAgZnJhbWVfZGlnIDEKICAgIGR1cAogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAwCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGxvYWRzCiAgICBzd2FwCiAgICBjb25jYXQgLy8gb24gZXJyb3I6IG1heCBhcnJheSBsZW5ndGggZXhjZWVkZWQKICAgIHN0b3JlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6OAogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICBpbnRjXzIgLy8gMQogICAgKwogICAgZnJhbWVfYnVyeSAxCiAgICBiIHRlc3Rfd2hpbGVfdG9wQDEKCnRlc3RfYWZ0ZXJfd2hpbGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjEyCiAgICAvLyBhc3NlcnQobWEubGVuZ3RoID09PSBsZW5ndGgpCiAgICBmcmFtZV9kaWcgMAogICAgZHVwCiAgICBsb2FkcwogICAgbGVuCiAgICBpbnRjXzEgLy8gOAogICAgLwogICAgZnJhbWVfZGlnIC0xCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czoxMwogICAgLy8gYXNzZXJ0KGxlbmd0aCwgJ2hhcyBsZW5ndGgnKQogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NlcnQgLy8gaGFzIGxlbmd0aAogICAgLy8gdGVzdHMvYXBwcm92YWxzL211dGFibGUtYXJyYXlzLmFsZ28udHM6MTQKICAgIC8vIGNvbnN0IHBvcHBlZCA9IG1hLnBvcCgpCiAgICBkdXAKICAgIGxvYWRzCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDgKICAgIC0KICAgIGR1cAogICAgaW50Y18xIC8vIDgKICAgIC8KICAgIHN3YXAKICAgIGRpZyAyCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBleHRyYWN0MwogICAgY292ZXIgMgogICAgaW50Y18xIC8vIDgKICAgICoKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MwogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MwogICAgYnRvaQogICAgc3dhcAogICAgdW5jb3ZlciAyCiAgICBzd2FwCiAgICBzdG9yZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjE1CiAgICAvLyBhc3NlcnQobGVuZ3RoLCAnaGFzIGxlbmd0aCcpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2VydCAvLyBoYXMgbGVuZ3RoCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbXV0YWJsZS1hcnJheXMuYWxnby50czoxNwogICAgLy8gYXNzZXJ0KHBvcHBlZCA9PT0gbGVuZ3RoIC0gMSkKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18yIC8vIDEKICAgIC0KICAgID09CiAgICBhc3NlcnQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9tdXRhYmxlLWFycmF5cy5hbGdvLnRzOjpNdXRhYmxlQXJyYXlzQWxnby5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIF9wdXlhX2xpYi5tZW0ubmV3X3Nsb3QoKSAtPiB1aW50NjQ6Cl9wdXlhX2xpYi5tZW0ubmV3X3Nsb3Q6CgpfcHV5YV9saWIubWVtLm5ld19zbG90QGVudHJ5OgogICAgbG9hZCAwCiAgICBiaXRsZW4KICAgIGxvYWQgMAogICAgcHVzaGludCAyNTYgLy8gMjU2CiAgICBkaWcgMgogICAgLQogICAgaW50Y18wIC8vIDAKICAgIHNldGJpdCAvLyBvbiBlcnJvcjogbm8gYXZhaWxhYmxlIHNsb3RzCiAgICBzdG9yZSAwCiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiADAAgBJgIAAwaBAYAgf/////////////////////////////////////////81ADEbIhNBACU2GgCABCozd3FMjgEAAiJDMRkiEkQxGCITRDYaAReIAFYkQv/qMRkiTI4BAANC/94xGCISRIgAqSRC/9OKAgCL/oEKCDIMiwAMQQAqsYEGshCBBbIZKbIeKbIfIiSL/44CAAsABLNC/9syALIBQv/1IrIBQv/viYoBAIHQDyKI/7uIAF5JKD8iiwGL/wxBABqLAUkWKExQKExQiwBJTgI+TFA/JAiMAUL/3osAST4VIwqL/xJEi/9EST5JFSMJSSMKTEsCIk8CWE4CIwsjWCIjWBdMTwJMP4v/RIv/JAkSRImJNACTNACBgAJLAgkiVDUAiQ==", @@ -118,7 +118,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/mutable-arrays/MutableArraysAlgo.clear.teal b/tests/approvals/out/unoptimized/mutable-arrays/MutableArraysAlgo.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/mutable-arrays/MutableArraysAlgo.clear.teal +++ b/tests/approvals/out/unoptimized/mutable-arrays/MutableArraysAlgo.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/named-types/MyContract.approval.teal b/tests/approvals/out/unoptimized/named-types/MyContract.approval.teal index 0adfb611b..837beb90a 100644 --- a/tests/approvals/out/unoptimized/named-types/MyContract.approval.teal +++ b/tests/approvals/out/unoptimized/named-types/MyContract.approval.teal @@ -6,6 +6,8 @@ main: intcblock 0 1 8 bytecblock 0x 0x151f7c75 +main_block@0: + main_block@1: // tests/approvals/named-types.algo.ts:14 // export class MyContract extends Contract { @@ -257,6 +259,8 @@ main___algots__.defaultCreate@11: // tests/approvals/named-types.algo.ts::MyContract.getXY() -> uint64, uint64: getXY: + +getXY_block@0: // tests/approvals/named-types.algo.ts:17 // x: 1, intc_1 // 1 @@ -273,6 +277,8 @@ getXY: // tests/approvals/named-types.algo.ts::MyContract.getYX() -> uint64, uint64: getYX: + +getYX_block@0: // tests/approvals/named-types.algo.ts:25 // y: 111, pushint 111 // 111 @@ -289,6 +295,8 @@ getYX: // tests/approvals/named-types.algo.ts::MyContract.getAnon() -> uint64, uint64: getAnon: + +getAnon_block@0: // tests/approvals/named-types.algo.ts:31 // x: Uint64(3), pushint 3 // 3 @@ -308,6 +316,8 @@ test: // tests/approvals/named-types.algo.ts:36 // public test(x: XY, y: YX) { proto 4 0 + +test_block@0: // tests/approvals/named-types.algo.ts:37 // assertMatch(x, { ...y }) frame_dig -3 @@ -339,6 +349,8 @@ test_bool_false@3: // tests/approvals/named-types.algo.ts::MyContract.testing() -> uint64, uint64, uint64, uint64, uint64, uint64: testing: + +testing_block@0: // tests/approvals/named-types.algo.ts:41 // const a = this.getXY() callsub getXY @@ -368,4 +380,6 @@ testing: // tests/approvals/named-types.algo.ts::MyContract.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/named-types/MyContract.arc32.json b/tests/approvals/out/unoptimized/named-types/MyContract.arc32.json index 223335731..49b7286e8 100644 --- a/tests/approvals/out/unoptimized/named-types/MyContract.arc32.json +++ b/tests/approvals/out/unoptimized/named-types/MyContract.arc32.json @@ -100,8 +100,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDgKICAgIGJ5dGVjYmxvY2sgMHggMHgxNTFmN2M3NQoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MTQKICAgIC8vIGV4cG9ydCBjbGFzcyBNeUNvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAMTAKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweGYwMjIyOGIwIC8vIG1ldGhvZCAiZ2V0WFkoKSh1aW50NjQsdWludDY0KSIKICAgIHB1c2hieXRlcyAweGQ5MDg1NzViIC8vIG1ldGhvZCAiZ2V0WVgoKSh1aW50NjQsdWludDY0KSIKICAgIHB1c2hieXRlcyAweDU3N2IxZmZjIC8vIG1ldGhvZCAiZ2V0QW5vbigpKHVpbnQ2NCx1aW50NjQpIgogICAgcHVzaGJ5dGVzIDB4ZGM3NWY4MWQgLy8gbWV0aG9kICJ0ZXN0KCh1aW50NjQsdWludDY0KSwodWludDY0LHVpbnQ2NCkpdm9pZCIKICAgIHB1c2hieXRlcyAweDA0MGUyZTRlIC8vIG1ldGhvZCAidGVzdGluZygpKCh1aW50NjQsdWludDY0KSwodWludDY0LHVpbnQ2NCksKHVpbnQ2NCx1aW50NjQpKSIKICAgIHVuY292ZXIgNQogICAgbWF0Y2ggbWFpbl9nZXRYWV9yb3V0ZUAzIG1haW5fZ2V0WVhfcm91dGVANCBtYWluX2dldEFub25fcm91dGVANSBtYWluX3Rlc3Rfcm91dGVANiBtYWluX3Rlc3Rpbmdfcm91dGVANwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDg6CgptYWluX3N3aXRjaF9jYXNlX25leHRAOToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxNDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6Ok15Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTU6CiAgICByZXR1cm4KCm1haW5fdGVzdGluZ19yb3V0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6NDAKICAgIC8vIHB1YmxpYyB0ZXN0aW5nKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0aW5nCiAgICBjb3ZlciA1CiAgICBjb3ZlciA0CiAgICBjb3ZlciAzCiAgICBjb3ZlciAyCiAgICBzd2FwCiAgICBpdG9iCiAgICBzd2FwCiAgICBpdG9iCiAgICBzd2FwCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgY292ZXIgMgogICAgaXRvYgogICAgc3dhcAogICAgaXRvYgogICAgc3dhcAogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgaXRvYgogICAgdW5jb3ZlciAzCiAgICBpdG9iCiAgICBzd2FwCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweAogICAgdW5jb3ZlciAzCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzEgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl90ZXN0X3JvdXRlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czozNgogICAgLy8gcHVibGljIHRlc3QoeDogWFksIHk6IFlYKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czoxNAogICAgLy8gZXhwb3J0IGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzIgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBzd2FwCiAgICBpbnRjXzIgLy8gOAogICAgZHVwCiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGludGNfMiAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHN3YXAKICAgIGludGNfMiAvLyA4CiAgICBkdXAKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MzYKICAgIC8vIHB1YmxpYyB0ZXN0KHg6IFhZLCB5OiBZWCkgewogICAgdW5jb3ZlciAzCiAgICB1bmNvdmVyIDMKICAgIHVuY292ZXIgMwogICAgdW5jb3ZlciAzCiAgICBjYWxsc3ViIHRlc3QKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9nZXRBbm9uX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czoyOQogICAgLy8gcHVibGljIGdldEFub24oKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGdldEFub24KICAgIHN3YXAKICAgIGl0b2IKICAgIHN3YXAKICAgIGl0b2IKICAgIHN3YXAKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18xIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6Ok15Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTUKCm1haW5fZ2V0WVhfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjIyCiAgICAvLyBwdWJsaWMgZ2V0WVgoKTogWVggewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBnZXRZWAogICAgc3dhcAogICAgaXRvYgogICAgc3dhcAogICAgaXRvYgogICAgc3dhcAogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzEgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9nZXRYWV9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MTUKICAgIC8vIHB1YmxpYyBnZXRYWSgpOiBYWSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGdldFhZCiAgICBzd2FwCiAgICBpdG9iCiAgICBzd2FwCiAgICBpdG9iCiAgICBzd2FwCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjpNeUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX2JhcmVfcm91dGluZ0AxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMQoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDEyOgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEzOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTQKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDExOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MTQKICAgIC8vIGV4cG9ydCBjbGFzcyBNeUNvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjpNeUNvbnRyYWN0LmdldFhZKCkgLT4gdWludDY0LCB1aW50NjQ6CmdldFhZOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MTcKICAgIC8vIHg6IDEsCiAgICBpbnRjXzEgLy8gMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MTgKICAgIC8vIHk6IDIsCiAgICBwdXNoaW50IDIgLy8gMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MTYtMTkKICAgIC8vIHJldHVybiB7CiAgICAvLyAgIHg6IDEsCiAgICAvLyAgIHk6IDIsCiAgICAvLyB9CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5nZXRZWCgpIC0+IHVpbnQ2NCwgdWludDY0OgpnZXRZWDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjI1CiAgICAvLyB5OiAxMTEsCiAgICBwdXNoaW50IDExMSAvLyAxMTEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjI0CiAgICAvLyB4OiAyMjIsCiAgICBwdXNoaW50IDIyMiAvLyAyMjIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjIzLTI2CiAgICAvLyByZXR1cm4gewogICAgLy8gICB4OiAyMjIsCiAgICAvLyAgIHk6IDExMSwKICAgIC8vIH0KICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjpNeUNvbnRyYWN0LmdldEFub24oKSAtPiB1aW50NjQsIHVpbnQ2NDoKZ2V0QW5vbjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjMxCiAgICAvLyB4OiBVaW50NjQoMyksCiAgICBwdXNoaW50IDMgLy8gMwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MzIKICAgIC8vIHk6IFVpbnQ2NCg0KSwKICAgIHB1c2hpbnQgNCAvLyA0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czozMC0zMwogICAgLy8gcmV0dXJuIHsKICAgIC8vICAgeDogVWludDY0KDMpLAogICAgLy8gICB5OiBVaW50NjQoNCksCiAgICAvLyB9CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC50ZXN0KHgueDogdWludDY0LCB4Lnk6IHVpbnQ2NCwgeS55OiB1aW50NjQsIHkueDogdWludDY0KSAtPiB2b2lkOgp0ZXN0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MzYKICAgIC8vIHB1YmxpYyB0ZXN0KHg6IFhZLCB5OiBZWCkgewogICAgcHJvdG8gNCAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czozNwogICAgLy8gYXNzZXJ0TWF0Y2goeCwgeyAuLi55IH0pCiAgICBmcmFtZV9kaWcgLTMKICAgIGZyYW1lX2RpZyAtMgogICAgPT0KICAgIGJ6IHRlc3RfYm9vbF9mYWxzZUAzCgp0ZXN0X2FuZF9jb250ZEAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MzcKICAgIC8vIGFzc2VydE1hdGNoKHgsIHsgLi4ueSB9KQogICAgZnJhbWVfZGlnIC00CiAgICBmcmFtZV9kaWcgLTEKICAgID09CiAgICBieiB0ZXN0X2Jvb2xfZmFsc2VAMwoKdGVzdF9ib29sX3RydWVAMjoKICAgIGludGNfMSAvLyAxCgp0ZXN0X2Jvb2xfbWVyZ2VANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjM3CiAgICAvLyBhc3NlcnRNYXRjaCh4LCB7IC4uLnkgfSkKICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICByZXRzdWIKCnRlc3RfYm9vbF9mYWxzZUAzOgogICAgaW50Y18wIC8vIDAKICAgIGIgdGVzdF9ib29sX21lcmdlQDQKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC50ZXN0aW5nKCkgLT4gdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NDoKdGVzdGluZzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjQxCiAgICAvLyBjb25zdCBhID0gdGhpcy5nZXRYWSgpCiAgICBjYWxsc3ViIGdldFhZCiAgICBzd2FwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo0MgogICAgLy8gY29uc3QgYiA9IHRoaXMuZ2V0WVgoKQogICAgY2FsbHN1YiBnZXRZWAogICAgY292ZXIgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6NDMKICAgIC8vIGNvbnN0IGMgPSB0aGlzLmdldEFub24oKQogICAgY2FsbHN1YiBnZXRBbm9uCiAgICBwb3AKICAgIGNhbGxzdWIgZ2V0QW5vbgogICAgY292ZXIgMgogICAgcG9wCiAgICBzd2FwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo0NAogICAgLy8gcmV0dXJuIFthLCBiLCBjXSBhcyBjb25zdAogICAgdW5jb3ZlciAzCiAgICB1bmNvdmVyIDUKICAgIHVuY292ZXIgNAogICAgdW5jb3ZlciA1CiAgICB1bmNvdmVyIDUKICAgIHVuY292ZXIgNQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6Ok15Q29udHJhY3QuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDgKICAgIGJ5dGVjYmxvY2sgMHggMHgxNTFmN2M3NQoKbWFpbl9ibG9ja0AwOgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MTQKICAgIC8vIGV4cG9ydCBjbGFzcyBNeUNvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAMTAKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweGYwMjIyOGIwIC8vIG1ldGhvZCAiZ2V0WFkoKSh1aW50NjQsdWludDY0KSIKICAgIHB1c2hieXRlcyAweGQ5MDg1NzViIC8vIG1ldGhvZCAiZ2V0WVgoKSh1aW50NjQsdWludDY0KSIKICAgIHB1c2hieXRlcyAweDU3N2IxZmZjIC8vIG1ldGhvZCAiZ2V0QW5vbigpKHVpbnQ2NCx1aW50NjQpIgogICAgcHVzaGJ5dGVzIDB4ZGM3NWY4MWQgLy8gbWV0aG9kICJ0ZXN0KCh1aW50NjQsdWludDY0KSwodWludDY0LHVpbnQ2NCkpdm9pZCIKICAgIHB1c2hieXRlcyAweDA0MGUyZTRlIC8vIG1ldGhvZCAidGVzdGluZygpKCh1aW50NjQsdWludDY0KSwodWludDY0LHVpbnQ2NCksKHVpbnQ2NCx1aW50NjQpKSIKICAgIHVuY292ZXIgNQogICAgbWF0Y2ggbWFpbl9nZXRYWV9yb3V0ZUAzIG1haW5fZ2V0WVhfcm91dGVANCBtYWluX2dldEFub25fcm91dGVANSBtYWluX3Rlc3Rfcm91dGVANiBtYWluX3Rlc3Rpbmdfcm91dGVANwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDg6CgptYWluX3N3aXRjaF9jYXNlX25leHRAOToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxNDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6Ok15Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTU6CiAgICByZXR1cm4KCm1haW5fdGVzdGluZ19yb3V0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6NDAKICAgIC8vIHB1YmxpYyB0ZXN0aW5nKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0aW5nCiAgICBjb3ZlciA1CiAgICBjb3ZlciA0CiAgICBjb3ZlciAzCiAgICBjb3ZlciAyCiAgICBzd2FwCiAgICBpdG9iCiAgICBzd2FwCiAgICBpdG9iCiAgICBzd2FwCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgY292ZXIgMgogICAgaXRvYgogICAgc3dhcAogICAgaXRvYgogICAgc3dhcAogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgaXRvYgogICAgdW5jb3ZlciAzCiAgICBpdG9iCiAgICBzd2FwCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweAogICAgdW5jb3ZlciAzCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzEgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl90ZXN0X3JvdXRlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czozNgogICAgLy8gcHVibGljIHRlc3QoeDogWFksIHk6IFlYKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czoxNAogICAgLy8gZXhwb3J0IGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzIgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBzd2FwCiAgICBpbnRjXzIgLy8gOAogICAgZHVwCiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGludGNfMiAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHN3YXAKICAgIGludGNfMiAvLyA4CiAgICBkdXAKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MzYKICAgIC8vIHB1YmxpYyB0ZXN0KHg6IFhZLCB5OiBZWCkgewogICAgdW5jb3ZlciAzCiAgICB1bmNvdmVyIDMKICAgIHVuY292ZXIgMwogICAgdW5jb3ZlciAzCiAgICBjYWxsc3ViIHRlc3QKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9nZXRBbm9uX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czoyOQogICAgLy8gcHVibGljIGdldEFub24oKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGdldEFub24KICAgIHN3YXAKICAgIGl0b2IKICAgIHN3YXAKICAgIGl0b2IKICAgIHN3YXAKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18xIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6Ok15Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTUKCm1haW5fZ2V0WVhfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjIyCiAgICAvLyBwdWJsaWMgZ2V0WVgoKTogWVggewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBnZXRZWAogICAgc3dhcAogICAgaXRvYgogICAgc3dhcAogICAgaXRvYgogICAgc3dhcAogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzEgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9nZXRYWV9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MTUKICAgIC8vIHB1YmxpYyBnZXRYWSgpOiBYWSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGdldFhZCiAgICBzd2FwCiAgICBpdG9iCiAgICBzd2FwCiAgICBpdG9iCiAgICBzd2FwCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjpNeUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX2JhcmVfcm91dGluZ0AxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMQoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDEyOgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEzOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTQKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDExOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MTQKICAgIC8vIGV4cG9ydCBjbGFzcyBNeUNvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjpNeUNvbnRyYWN0LmdldFhZKCkgLT4gdWludDY0LCB1aW50NjQ6CmdldFhZOgoKZ2V0WFlfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjE3CiAgICAvLyB4OiAxLAogICAgaW50Y18xIC8vIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjE4CiAgICAvLyB5OiAyLAogICAgcHVzaGludCAyIC8vIDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjE2LTE5CiAgICAvLyByZXR1cm4gewogICAgLy8gICB4OiAxLAogICAgLy8gICB5OiAyLAogICAgLy8gfQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6Ok15Q29udHJhY3QuZ2V0WVgoKSAtPiB1aW50NjQsIHVpbnQ2NDoKZ2V0WVg6CgpnZXRZWF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MjUKICAgIC8vIHk6IDExMSwKICAgIHB1c2hpbnQgMTExIC8vIDExMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MjQKICAgIC8vIHg6IDIyMiwKICAgIHB1c2hpbnQgMjIyIC8vIDIyMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MjMtMjYKICAgIC8vIHJldHVybiB7CiAgICAvLyAgIHg6IDIyMiwKICAgIC8vICAgeTogMTExLAogICAgLy8gfQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6Ok15Q29udHJhY3QuZ2V0QW5vbigpIC0+IHVpbnQ2NCwgdWludDY0OgpnZXRBbm9uOgoKZ2V0QW5vbl9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MzEKICAgIC8vIHg6IFVpbnQ2NCgzKSwKICAgIHB1c2hpbnQgMyAvLyAzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czozMgogICAgLy8geTogVWludDY0KDQpLAogICAgcHVzaGludCA0IC8vIDQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjMwLTMzCiAgICAvLyByZXR1cm4gewogICAgLy8gICB4OiBVaW50NjQoMyksCiAgICAvLyAgIHk6IFVpbnQ2NCg0KSwKICAgIC8vIH0KICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjpNeUNvbnRyYWN0LnRlc3QoeC54OiB1aW50NjQsIHgueTogdWludDY0LCB5Lnk6IHVpbnQ2NCwgeS54OiB1aW50NjQpIC0+IHZvaWQ6CnRlc3Q6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czozNgogICAgLy8gcHVibGljIHRlc3QoeDogWFksIHk6IFlYKSB7CiAgICBwcm90byA0IDAKCnRlc3RfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjM3CiAgICAvLyBhc3NlcnRNYXRjaCh4LCB7IC4uLnkgfSkKICAgIGZyYW1lX2RpZyAtMwogICAgZnJhbWVfZGlnIC0yCiAgICA9PQogICAgYnogdGVzdF9ib29sX2ZhbHNlQDMKCnRlc3RfYW5kX2NvbnRkQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czozNwogICAgLy8gYXNzZXJ0TWF0Y2goeCwgeyAuLi55IH0pCiAgICBmcmFtZV9kaWcgLTQKICAgIGZyYW1lX2RpZyAtMQogICAgPT0KICAgIGJ6IHRlc3RfYm9vbF9mYWxzZUAzCgp0ZXN0X2Jvb2xfdHJ1ZUAyOgogICAgaW50Y18xIC8vIDEKCnRlc3RfYm9vbF9tZXJnZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MzcKICAgIC8vIGFzc2VydE1hdGNoKHgsIHsgLi4ueSB9KQogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIHJldHN1YgoKdGVzdF9ib29sX2ZhbHNlQDM6CiAgICBpbnRjXzAgLy8gMAogICAgYiB0ZXN0X2Jvb2xfbWVyZ2VANAoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjpNeUNvbnRyYWN0LnRlc3RpbmcoKSAtPiB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0Ogp0ZXN0aW5nOgoKdGVzdGluZ19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6NDEKICAgIC8vIGNvbnN0IGEgPSB0aGlzLmdldFhZKCkKICAgIGNhbGxzdWIgZ2V0WFkKICAgIHN3YXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjQyCiAgICAvLyBjb25zdCBiID0gdGhpcy5nZXRZWCgpCiAgICBjYWxsc3ViIGdldFlYCiAgICBjb3ZlciAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo0MwogICAgLy8gY29uc3QgYyA9IHRoaXMuZ2V0QW5vbigpCiAgICBjYWxsc3ViIGdldEFub24KICAgIHBvcAogICAgY2FsbHN1YiBnZXRBbm9uCiAgICBjb3ZlciAyCiAgICBwb3AKICAgIHN3YXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjQ0CiAgICAvLyByZXR1cm4gW2EsIGIsIGNdIGFzIGNvbnN0CiAgICB1bmNvdmVyIDMKICAgIHVuY292ZXIgNQogICAgdW5jb3ZlciA0CiAgICB1bmNvdmVyIDUKICAgIHVuY292ZXIgNQogICAgdW5jb3ZlciA1CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/named-types/MyContract.arc56.json b/tests/approvals/out/unoptimized/named-types/MyContract.arc56.json index 1f966dae9..6f532672e 100644 --- a/tests/approvals/out/unoptimized/named-types/MyContract.arc56.json +++ b/tests/approvals/out/unoptimized/named-types/MyContract.arc56.json @@ -214,8 +214,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDgKICAgIGJ5dGVjYmxvY2sgMHggMHgxNTFmN2M3NQoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MTQKICAgIC8vIGV4cG9ydCBjbGFzcyBNeUNvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAMTAKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweGYwMjIyOGIwIC8vIG1ldGhvZCAiZ2V0WFkoKSh1aW50NjQsdWludDY0KSIKICAgIHB1c2hieXRlcyAweGQ5MDg1NzViIC8vIG1ldGhvZCAiZ2V0WVgoKSh1aW50NjQsdWludDY0KSIKICAgIHB1c2hieXRlcyAweDU3N2IxZmZjIC8vIG1ldGhvZCAiZ2V0QW5vbigpKHVpbnQ2NCx1aW50NjQpIgogICAgcHVzaGJ5dGVzIDB4ZGM3NWY4MWQgLy8gbWV0aG9kICJ0ZXN0KCh1aW50NjQsdWludDY0KSwodWludDY0LHVpbnQ2NCkpdm9pZCIKICAgIHB1c2hieXRlcyAweDA0MGUyZTRlIC8vIG1ldGhvZCAidGVzdGluZygpKCh1aW50NjQsdWludDY0KSwodWludDY0LHVpbnQ2NCksKHVpbnQ2NCx1aW50NjQpKSIKICAgIHVuY292ZXIgNQogICAgbWF0Y2ggbWFpbl9nZXRYWV9yb3V0ZUAzIG1haW5fZ2V0WVhfcm91dGVANCBtYWluX2dldEFub25fcm91dGVANSBtYWluX3Rlc3Rfcm91dGVANiBtYWluX3Rlc3Rpbmdfcm91dGVANwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDg6CgptYWluX3N3aXRjaF9jYXNlX25leHRAOToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxNDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6Ok15Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTU6CiAgICByZXR1cm4KCm1haW5fdGVzdGluZ19yb3V0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6NDAKICAgIC8vIHB1YmxpYyB0ZXN0aW5nKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0aW5nCiAgICBjb3ZlciA1CiAgICBjb3ZlciA0CiAgICBjb3ZlciAzCiAgICBjb3ZlciAyCiAgICBzd2FwCiAgICBpdG9iCiAgICBzd2FwCiAgICBpdG9iCiAgICBzd2FwCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgY292ZXIgMgogICAgaXRvYgogICAgc3dhcAogICAgaXRvYgogICAgc3dhcAogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgaXRvYgogICAgdW5jb3ZlciAzCiAgICBpdG9iCiAgICBzd2FwCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweAogICAgdW5jb3ZlciAzCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzEgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl90ZXN0X3JvdXRlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czozNgogICAgLy8gcHVibGljIHRlc3QoeDogWFksIHk6IFlYKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czoxNAogICAgLy8gZXhwb3J0IGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzIgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBzd2FwCiAgICBpbnRjXzIgLy8gOAogICAgZHVwCiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGludGNfMiAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHN3YXAKICAgIGludGNfMiAvLyA4CiAgICBkdXAKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MzYKICAgIC8vIHB1YmxpYyB0ZXN0KHg6IFhZLCB5OiBZWCkgewogICAgdW5jb3ZlciAzCiAgICB1bmNvdmVyIDMKICAgIHVuY292ZXIgMwogICAgdW5jb3ZlciAzCiAgICBjYWxsc3ViIHRlc3QKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9nZXRBbm9uX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czoyOQogICAgLy8gcHVibGljIGdldEFub24oKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGdldEFub24KICAgIHN3YXAKICAgIGl0b2IKICAgIHN3YXAKICAgIGl0b2IKICAgIHN3YXAKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18xIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6Ok15Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTUKCm1haW5fZ2V0WVhfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjIyCiAgICAvLyBwdWJsaWMgZ2V0WVgoKTogWVggewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBnZXRZWAogICAgc3dhcAogICAgaXRvYgogICAgc3dhcAogICAgaXRvYgogICAgc3dhcAogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzEgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9nZXRYWV9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MTUKICAgIC8vIHB1YmxpYyBnZXRYWSgpOiBYWSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGdldFhZCiAgICBzd2FwCiAgICBpdG9iCiAgICBzd2FwCiAgICBpdG9iCiAgICBzd2FwCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjpNeUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX2JhcmVfcm91dGluZ0AxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMQoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDEyOgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEzOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTQKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDExOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MTQKICAgIC8vIGV4cG9ydCBjbGFzcyBNeUNvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjpNeUNvbnRyYWN0LmdldFhZKCkgLT4gdWludDY0LCB1aW50NjQ6CmdldFhZOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MTcKICAgIC8vIHg6IDEsCiAgICBpbnRjXzEgLy8gMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MTgKICAgIC8vIHk6IDIsCiAgICBwdXNoaW50IDIgLy8gMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MTYtMTkKICAgIC8vIHJldHVybiB7CiAgICAvLyAgIHg6IDEsCiAgICAvLyAgIHk6IDIsCiAgICAvLyB9CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5nZXRZWCgpIC0+IHVpbnQ2NCwgdWludDY0OgpnZXRZWDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjI1CiAgICAvLyB5OiAxMTEsCiAgICBwdXNoaW50IDExMSAvLyAxMTEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjI0CiAgICAvLyB4OiAyMjIsCiAgICBwdXNoaW50IDIyMiAvLyAyMjIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjIzLTI2CiAgICAvLyByZXR1cm4gewogICAgLy8gICB4OiAyMjIsCiAgICAvLyAgIHk6IDExMSwKICAgIC8vIH0KICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjpNeUNvbnRyYWN0LmdldEFub24oKSAtPiB1aW50NjQsIHVpbnQ2NDoKZ2V0QW5vbjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjMxCiAgICAvLyB4OiBVaW50NjQoMyksCiAgICBwdXNoaW50IDMgLy8gMwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MzIKICAgIC8vIHk6IFVpbnQ2NCg0KSwKICAgIHB1c2hpbnQgNCAvLyA0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czozMC0zMwogICAgLy8gcmV0dXJuIHsKICAgIC8vICAgeDogVWludDY0KDMpLAogICAgLy8gICB5OiBVaW50NjQoNCksCiAgICAvLyB9CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC50ZXN0KHgueDogdWludDY0LCB4Lnk6IHVpbnQ2NCwgeS55OiB1aW50NjQsIHkueDogdWludDY0KSAtPiB2b2lkOgp0ZXN0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MzYKICAgIC8vIHB1YmxpYyB0ZXN0KHg6IFhZLCB5OiBZWCkgewogICAgcHJvdG8gNCAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czozNwogICAgLy8gYXNzZXJ0TWF0Y2goeCwgeyAuLi55IH0pCiAgICBmcmFtZV9kaWcgLTMKICAgIGZyYW1lX2RpZyAtMgogICAgPT0KICAgIGJ6IHRlc3RfYm9vbF9mYWxzZUAzCgp0ZXN0X2FuZF9jb250ZEAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MzcKICAgIC8vIGFzc2VydE1hdGNoKHgsIHsgLi4ueSB9KQogICAgZnJhbWVfZGlnIC00CiAgICBmcmFtZV9kaWcgLTEKICAgID09CiAgICBieiB0ZXN0X2Jvb2xfZmFsc2VAMwoKdGVzdF9ib29sX3RydWVAMjoKICAgIGludGNfMSAvLyAxCgp0ZXN0X2Jvb2xfbWVyZ2VANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjM3CiAgICAvLyBhc3NlcnRNYXRjaCh4LCB7IC4uLnkgfSkKICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICByZXRzdWIKCnRlc3RfYm9vbF9mYWxzZUAzOgogICAgaW50Y18wIC8vIDAKICAgIGIgdGVzdF9ib29sX21lcmdlQDQKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC50ZXN0aW5nKCkgLT4gdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NDoKdGVzdGluZzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjQxCiAgICAvLyBjb25zdCBhID0gdGhpcy5nZXRYWSgpCiAgICBjYWxsc3ViIGdldFhZCiAgICBzd2FwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo0MgogICAgLy8gY29uc3QgYiA9IHRoaXMuZ2V0WVgoKQogICAgY2FsbHN1YiBnZXRZWAogICAgY292ZXIgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6NDMKICAgIC8vIGNvbnN0IGMgPSB0aGlzLmdldEFub24oKQogICAgY2FsbHN1YiBnZXRBbm9uCiAgICBwb3AKICAgIGNhbGxzdWIgZ2V0QW5vbgogICAgY292ZXIgMgogICAgcG9wCiAgICBzd2FwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo0NAogICAgLy8gcmV0dXJuIFthLCBiLCBjXSBhcyBjb25zdAogICAgdW5jb3ZlciAzCiAgICB1bmNvdmVyIDUKICAgIHVuY292ZXIgNAogICAgdW5jb3ZlciA1CiAgICB1bmNvdmVyIDUKICAgIHVuY292ZXIgNQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6Ok15Q29udHJhY3QuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDgKICAgIGJ5dGVjYmxvY2sgMHggMHgxNTFmN2M3NQoKbWFpbl9ibG9ja0AwOgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MTQKICAgIC8vIGV4cG9ydCBjbGFzcyBNeUNvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAMTAKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweGYwMjIyOGIwIC8vIG1ldGhvZCAiZ2V0WFkoKSh1aW50NjQsdWludDY0KSIKICAgIHB1c2hieXRlcyAweGQ5MDg1NzViIC8vIG1ldGhvZCAiZ2V0WVgoKSh1aW50NjQsdWludDY0KSIKICAgIHB1c2hieXRlcyAweDU3N2IxZmZjIC8vIG1ldGhvZCAiZ2V0QW5vbigpKHVpbnQ2NCx1aW50NjQpIgogICAgcHVzaGJ5dGVzIDB4ZGM3NWY4MWQgLy8gbWV0aG9kICJ0ZXN0KCh1aW50NjQsdWludDY0KSwodWludDY0LHVpbnQ2NCkpdm9pZCIKICAgIHB1c2hieXRlcyAweDA0MGUyZTRlIC8vIG1ldGhvZCAidGVzdGluZygpKCh1aW50NjQsdWludDY0KSwodWludDY0LHVpbnQ2NCksKHVpbnQ2NCx1aW50NjQpKSIKICAgIHVuY292ZXIgNQogICAgbWF0Y2ggbWFpbl9nZXRYWV9yb3V0ZUAzIG1haW5fZ2V0WVhfcm91dGVANCBtYWluX2dldEFub25fcm91dGVANSBtYWluX3Rlc3Rfcm91dGVANiBtYWluX3Rlc3Rpbmdfcm91dGVANwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDg6CgptYWluX3N3aXRjaF9jYXNlX25leHRAOToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxNDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6Ok15Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTU6CiAgICByZXR1cm4KCm1haW5fdGVzdGluZ19yb3V0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6NDAKICAgIC8vIHB1YmxpYyB0ZXN0aW5nKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0aW5nCiAgICBjb3ZlciA1CiAgICBjb3ZlciA0CiAgICBjb3ZlciAzCiAgICBjb3ZlciAyCiAgICBzd2FwCiAgICBpdG9iCiAgICBzd2FwCiAgICBpdG9iCiAgICBzd2FwCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgY292ZXIgMgogICAgaXRvYgogICAgc3dhcAogICAgaXRvYgogICAgc3dhcAogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgaXRvYgogICAgdW5jb3ZlciAzCiAgICBpdG9iCiAgICBzd2FwCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweAogICAgdW5jb3ZlciAzCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzEgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl90ZXN0X3JvdXRlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czozNgogICAgLy8gcHVibGljIHRlc3QoeDogWFksIHk6IFlYKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czoxNAogICAgLy8gZXhwb3J0IGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzIgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBzd2FwCiAgICBpbnRjXzIgLy8gOAogICAgZHVwCiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGludGNfMiAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHN3YXAKICAgIGludGNfMiAvLyA4CiAgICBkdXAKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MzYKICAgIC8vIHB1YmxpYyB0ZXN0KHg6IFhZLCB5OiBZWCkgewogICAgdW5jb3ZlciAzCiAgICB1bmNvdmVyIDMKICAgIHVuY292ZXIgMwogICAgdW5jb3ZlciAzCiAgICBjYWxsc3ViIHRlc3QKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9nZXRBbm9uX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czoyOQogICAgLy8gcHVibGljIGdldEFub24oKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGdldEFub24KICAgIHN3YXAKICAgIGl0b2IKICAgIHN3YXAKICAgIGl0b2IKICAgIHN3YXAKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18xIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6Ok15Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTUKCm1haW5fZ2V0WVhfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjIyCiAgICAvLyBwdWJsaWMgZ2V0WVgoKTogWVggewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBnZXRZWAogICAgc3dhcAogICAgaXRvYgogICAgc3dhcAogICAgaXRvYgogICAgc3dhcAogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzEgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKbWFpbl9nZXRYWV9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MTUKICAgIC8vIHB1YmxpYyBnZXRYWSgpOiBYWSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGdldFhZCiAgICBzd2FwCiAgICBpdG9iCiAgICBzd2FwCiAgICBpdG9iCiAgICBzd2FwCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjpNeUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE1CgptYWluX2JhcmVfcm91dGluZ0AxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMQoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDEyOgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEzOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTQKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDExOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MTQKICAgIC8vIGV4cG9ydCBjbGFzcyBNeUNvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNQoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjpNeUNvbnRyYWN0LmdldFhZKCkgLT4gdWludDY0LCB1aW50NjQ6CmdldFhZOgoKZ2V0WFlfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjE3CiAgICAvLyB4OiAxLAogICAgaW50Y18xIC8vIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjE4CiAgICAvLyB5OiAyLAogICAgcHVzaGludCAyIC8vIDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjE2LTE5CiAgICAvLyByZXR1cm4gewogICAgLy8gICB4OiAxLAogICAgLy8gICB5OiAyLAogICAgLy8gfQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6Ok15Q29udHJhY3QuZ2V0WVgoKSAtPiB1aW50NjQsIHVpbnQ2NDoKZ2V0WVg6CgpnZXRZWF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MjUKICAgIC8vIHk6IDExMSwKICAgIHB1c2hpbnQgMTExIC8vIDExMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MjQKICAgIC8vIHg6IDIyMiwKICAgIHB1c2hpbnQgMjIyIC8vIDIyMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MjMtMjYKICAgIC8vIHJldHVybiB7CiAgICAvLyAgIHg6IDIyMiwKICAgIC8vICAgeTogMTExLAogICAgLy8gfQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6Ok15Q29udHJhY3QuZ2V0QW5vbigpIC0+IHVpbnQ2NCwgdWludDY0OgpnZXRBbm9uOgoKZ2V0QW5vbl9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MzEKICAgIC8vIHg6IFVpbnQ2NCgzKSwKICAgIHB1c2hpbnQgMyAvLyAzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czozMgogICAgLy8geTogVWludDY0KDQpLAogICAgcHVzaGludCA0IC8vIDQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjMwLTMzCiAgICAvLyByZXR1cm4gewogICAgLy8gICB4OiBVaW50NjQoMyksCiAgICAvLyAgIHk6IFVpbnQ2NCg0KSwKICAgIC8vIH0KICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjpNeUNvbnRyYWN0LnRlc3QoeC54OiB1aW50NjQsIHgueTogdWludDY0LCB5Lnk6IHVpbnQ2NCwgeS54OiB1aW50NjQpIC0+IHZvaWQ6CnRlc3Q6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czozNgogICAgLy8gcHVibGljIHRlc3QoeDogWFksIHk6IFlYKSB7CiAgICBwcm90byA0IDAKCnRlc3RfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjM3CiAgICAvLyBhc3NlcnRNYXRjaCh4LCB7IC4uLnkgfSkKICAgIGZyYW1lX2RpZyAtMwogICAgZnJhbWVfZGlnIC0yCiAgICA9PQogICAgYnogdGVzdF9ib29sX2ZhbHNlQDMKCnRlc3RfYW5kX2NvbnRkQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czozNwogICAgLy8gYXNzZXJ0TWF0Y2goeCwgeyAuLi55IH0pCiAgICBmcmFtZV9kaWcgLTQKICAgIGZyYW1lX2RpZyAtMQogICAgPT0KICAgIGJ6IHRlc3RfYm9vbF9mYWxzZUAzCgp0ZXN0X2Jvb2xfdHJ1ZUAyOgogICAgaW50Y18xIC8vIDEKCnRlc3RfYm9vbF9tZXJnZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MzcKICAgIC8vIGFzc2VydE1hdGNoKHgsIHsgLi4ueSB9KQogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIHJldHN1YgoKdGVzdF9ib29sX2ZhbHNlQDM6CiAgICBpbnRjXzAgLy8gMAogICAgYiB0ZXN0X2Jvb2xfbWVyZ2VANAoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjpNeUNvbnRyYWN0LnRlc3RpbmcoKSAtPiB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0Ogp0ZXN0aW5nOgoKdGVzdGluZ19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6NDEKICAgIC8vIGNvbnN0IGEgPSB0aGlzLmdldFhZKCkKICAgIGNhbGxzdWIgZ2V0WFkKICAgIHN3YXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjQyCiAgICAvLyBjb25zdCBiID0gdGhpcy5nZXRZWCgpCiAgICBjYWxsc3ViIGdldFlYCiAgICBjb3ZlciAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo0MwogICAgLy8gY29uc3QgYyA9IHRoaXMuZ2V0QW5vbigpCiAgICBjYWxsc3ViIGdldEFub24KICAgIHBvcAogICAgY2FsbHN1YiBnZXRBbm9uCiAgICBjb3ZlciAyCiAgICBwb3AKICAgIHN3YXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjQ0CiAgICAvLyByZXR1cm4gW2EsIGIsIGNdIGFzIGNvbnN0CiAgICB1bmNvdmVyIDMKICAgIHVuY292ZXIgNQogICAgdW5jb3ZlciA0CiAgICB1bmNvdmVyIDUKICAgIHVuY292ZXIgNQogICAgdW5jb3ZlciA1CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiADAAEIJgIABBUffHUxGyITQQEINhoAgATwIiiwgATZCFdbgARXex/8gATcdfgdgAQEDi5OTwWOBQC6AJsAfABJAAIiQzEZIhJEMRgiE0SIAQpOBU4ETgNOAkwWTBZMKExQTFBOAhZMFkwoTFBMUE8CFk8DFkwoTFBMUChPA1BPAlBMUClMULAjQv+4MRkiEkQxGCITRDYaAUkiJFgXTCRJWBc2GgJJIiRYF0wkSVgXTwNPA08DTwOIAIcjQv+FMRkiEkQxGCITRIgAcUwWTBZMKExQTFApTFCwI0L/ZjEZIhJEMRgiE0SIAExMFkwWTChMUExQKUxQsCNC/0cxGSISRDEYIhNEiAApTBZMFkwoTFBMUClMULAjQv8oMRkiTI4BAANC/xwxGCISRIgATiNC/xEjgQKJgW+B3gGJgQOBBImKBACL/Yv+EkEAC4v8i/8SQQADI0SJIkL/+oj/1EyI/9ROAoj/1UiI/9FOAkhMTwNPBU8ETwVPBU8FiYk=", @@ -226,7 +226,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/named-types/MyContract.clear.teal b/tests/approvals/out/unoptimized/named-types/MyContract.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/named-types/MyContract.clear.teal +++ b/tests/approvals/out/unoptimized/named-types/MyContract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/native-arrays/NativeArraysAlgo.approval.teal b/tests/approvals/out/unoptimized/native-arrays/NativeArraysAlgo.approval.teal index 9a29bac57..3c7c1beb1 100644 --- a/tests/approvals/out/unoptimized/native-arrays/NativeArraysAlgo.approval.teal +++ b/tests/approvals/out/unoptimized/native-arrays/NativeArraysAlgo.approval.teal @@ -6,6 +6,8 @@ main: intcblock 8 0 1 4 bytecblock 0x 0x0000007b 0x0000 0x151f7c75 +main_block@0: + main_block@1: // tests/approvals/native-arrays.algo.ts:6 // export class NativeArraysAlgo extends Contract { @@ -147,6 +149,8 @@ main___algots__.defaultCreate@10: // tests/approvals/native-arrays.algo.ts::NativeArraysAlgo.buildArray() -> bytes: buildArray: + +buildArray_block@0: // tests/approvals/native-arrays.algo.ts:8 // return [1, 2, 3, 4] bytec_2 // 0x0000 @@ -196,6 +200,8 @@ doThings: // tests/approvals/native-arrays.algo.ts:11 // doThings() { proto 0 0 + +doThings_block@0: // tests/approvals/native-arrays.algo.ts:12 // let arr = this.buildArray() callsub buildArray @@ -908,6 +914,8 @@ arc4Interop: // tests/approvals/native-arrays.algo.ts:42 // arc4Interop() { proto 0 0 + +arc4Interop_block@0: // tests/approvals/native-arrays.algo.ts:45 // const da1 = new DynamicArray(u1, u1) bytec_0 // 0x @@ -1139,6 +1147,10 @@ structs: // tests/approvals/native-arrays.algo.ts:54 // structs({ x, y }: Vector) { proto 2 1 + +structs_block@0: + // tests/approvals/native-arrays.algo.ts:54 + // structs({ x, y }: Vector) { frame_dig -2 dup frame_dig -1 @@ -1236,4 +1248,6 @@ structs_bool_false@4: // tests/approvals/native-arrays.algo.ts::NativeArraysAlgo.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/native-arrays/NativeArraysAlgo.arc32.json b/tests/approvals/out/unoptimized/native-arrays/NativeArraysAlgo.arc32.json index 7cb7b3758..5b1d90117 100644 --- a/tests/approvals/out/unoptimized/native-arrays/NativeArraysAlgo.arc32.json +++ b/tests/approvals/out/unoptimized/native-arrays/NativeArraysAlgo.arc32.json @@ -37,8 +37,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgOCAwIDEgNAogICAgYnl0ZWNibG9jayAweCAweDAwMDAwMDdiIDB4MDAwMCAweDE1MWY3Yzc1CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjYKICAgIC8vIGV4cG9ydCBjbGFzcyBOYXRpdmVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMSAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAOQoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo2CiAgICAvLyBleHBvcnQgY2xhc3MgTmF0aXZlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDBmNGMxMWNhIC8vIG1ldGhvZCAiYnVpbGRBcnJheSgpdWludDY0W10iCiAgICBwdXNoYnl0ZXMgMHgxM2E1ODhjOCAvLyBtZXRob2QgImRvVGhpbmdzKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4Nzg3YjUwYjIgLy8gbWV0aG9kICJhcmM0SW50ZXJvcCgpdm9pZCIKICAgIHB1c2hieXRlcyAweGViODdhMDY0IC8vIG1ldGhvZCAic3RydWN0cygodWludDY0LHVpbnQ2NCkpKHVpbnQ2NCx1aW50NjQpW10iCiAgICB1bmNvdmVyIDQKICAgIG1hdGNoIG1haW5fYnVpbGRBcnJheV9yb3V0ZUAzIG1haW5fZG9UaGluZ3Nfcm91dGVANCBtYWluX2FyYzRJbnRlcm9wX3JvdXRlQDUgbWFpbl9zdHJ1Y3RzX3JvdXRlQDYKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA3OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDg6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjYKICAgIC8vIGV4cG9ydCBjbGFzcyBOYXRpdmVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18xIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0OgogICAgcmV0dXJuCgptYWluX3N0cnVjdHNfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTQKICAgIC8vIHN0cnVjdHMoeyB4LCB5IH06IFZlY3RvcikgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18xIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18xIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo2CiAgICAvLyBleHBvcnQgY2xhc3MgTmF0aXZlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDAKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHN3YXAKICAgIGludGNfMCAvLyA4CiAgICBkdXAKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1NAogICAgLy8gc3RydWN0cyh7IHgsIHkgfTogVmVjdG9yKSB7CiAgICBjYWxsc3ViIHN0cnVjdHMKICAgIGJ5dGVjXzMgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2FyYzRJbnRlcm9wX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQyCiAgICAvLyBhcmM0SW50ZXJvcCgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMSAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMSAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgYXJjNEludGVyb3AKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2RvVGhpbmdzX3JvdXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjExCiAgICAvLyBkb1RoaW5ncygpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMSAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMSAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgZG9UaGluZ3MKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2J1aWxkQXJyYXlfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NwogICAgLy8gYnVpbGRBcnJheSgpOiB1aW50NjRbXSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzEgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzEgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGJ1aWxkQXJyYXkKICAgIGJ5dGVjXzMgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2JhcmVfcm91dGluZ0A5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo2CiAgICAvLyBleHBvcnQgY2xhc3MgTmF0aXZlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMSAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMAoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDExOgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEyOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTMKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo2CiAgICAvLyBleHBvcnQgY2xhc3MgTmF0aXZlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzEgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYnVpbGRBcnJheSgpIC0+IGJ5dGVzOgpidWlsZEFycmF5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo4CiAgICAvLyByZXR1cm4gWzEsIDIsIDMsIDRdCiAgICBieXRlY18yIC8vIDB4MDAwMAogICAgYnl0ZWNfMCAvLyAweAogICAgY29uY2F0CiAgICBleHRyYWN0IDIgMAogICAgaW50Y18yIC8vIDEKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoaW50IDIgLy8gMgogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBjb25jYXQKICAgIHB1c2hpbnQgMyAvLyAzCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGNvbmNhdAogICAgaW50Y18zIC8vIDQKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgY29uY2F0CiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzAgLy8gOAogICAgLwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5ncygpIC0+IHZvaWQ6CmRvVGhpbmdzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxMQogICAgLy8gZG9UaGluZ3MoKSB7CiAgICBwcm90byAwIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTIKICAgIC8vIGxldCBhcnIgPSB0aGlzLmJ1aWxkQXJyYXkoKQogICAgY2FsbHN1YiBidWlsZEFycmF5CiAgICBkdXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTQKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDRdKQogICAgaW50Y18xIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzMgLy8gNAogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANgoKZG9UaGluZ3NfYW5kX2NvbnRkQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE0CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAyLCAzLCA0XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18xIC8vIDAKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzIgLy8gMQogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANgoKZG9UaGluZ3NfYW5kX2NvbnRkQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE0CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAyLCAzLCA0XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18yIC8vIDEKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDIgLy8gMgogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANgoKZG9UaGluZ3NfYW5kX2NvbnRkQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE0CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAyLCAzLCA0XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCAyIC8vIDIKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDMgLy8gMwogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANgoKZG9UaGluZ3NfYW5kX2NvbnRkQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE0CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAyLCAzLCA0XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCAzIC8vIDMKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzMgLy8gNAogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANgoKZG9UaGluZ3NfYm9vbF90cnVlQDU6CiAgICBpbnRjXzIgLy8gMQoKZG9UaGluZ3NfYm9vbF9tZXJnZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxNAogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNF0pCiAgICBhc3NlcnQgLy8gYXNzZXJ0IHRhcmdldCBpcyBtYXRjaCBmb3IgY29uZGl0aW9ucwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxNwogICAgLy8gYXJyID0gWy4uLmFyciwgVWludDY0KDUpXQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBieXRlY18yIC8vIDB4MDAwMAogICAgYnl0ZWNfMCAvLyAweAogICAgY29uY2F0CiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCA1IC8vIDUKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzAgLy8gOAogICAgLwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZXh0cmFjdCAyIDAKICAgIGNvbmNhdAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMCAvLyA4CiAgICAvCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxOQogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNCwgNV0pCiAgICBpbnRjXzEgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIHB1c2hpbnQgNSAvLyA1CiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUAxNAoKZG9UaGluZ3NfYW5kX2NvbnRkQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAyLCAzLCA0LCA1XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18xIC8vIDAKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzIgLy8gMQogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VAMTQKCmRvVGhpbmdzX2FuZF9jb250ZEA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxOQogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNCwgNV0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMiAvLyAxCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAyIC8vIDIKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDE0Cgpkb1RoaW5nc19hbmRfY29udGRAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAyLCAzLCA0LCA1XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCAyIC8vIDIKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDMgLy8gMwogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VAMTQKCmRvVGhpbmdzX2FuZF9jb250ZEAxMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDQsIDVdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDMgLy8gMwogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMyAvLyA0CiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUAxNAoKZG9UaGluZ3NfYW5kX2NvbnRkQDEyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxOQogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNCwgNV0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMyAvLyA0CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCA1IC8vIDUKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDE0Cgpkb1RoaW5nc19ib29sX3RydWVAMTM6CiAgICBpbnRjXzIgLy8gMQoKZG9UaGluZ3NfYm9vbF9tZXJnZUAxNToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDQsIDVdKQogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MjIKICAgIC8vIGNvbnN0IHRvcCA9IGFyclthcnIubGVuZ3RoIC0gMV0KICAgIGZyYW1lX2RpZyAwCiAgICBkdXAKICAgIGludGNfMSAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDEKICAgIC0KICAgIHN3YXAKICAgIGV4dHJhY3QgMiAwCiAgICBzd2FwCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoyMwogICAgLy8gYXNzZXJ0KHRvcCA9PT0gNSkKICAgIHB1c2hpbnQgNSAvLyA1CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjI2CiAgICAvLyBhcnIgPSBbMSwgMiwgMywgNF0KICAgIGJ5dGVjXzIgLy8gMHgwMDAwCiAgICBieXRlY18wIC8vIDB4CiAgICBjb25jYXQKICAgIGV4dHJhY3QgMiAwCiAgICBpbnRjXzIgLy8gMQogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hpbnQgMiAvLyAyCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGNvbmNhdAogICAgcHVzaGludCAzIC8vIDMKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgY29uY2F0CiAgICBpbnRjXzMgLy8gNAogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBjb25jYXQKICAgIGNvbmNhdAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMCAvLyA4CiAgICAvCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoyOAogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNF0pCiAgICBpbnRjXzEgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMyAvLyA0CiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUAyMQoKZG9UaGluZ3NfYW5kX2NvbnRkQDE2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoyOAogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNF0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMSAvLyAwCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18yIC8vIDEKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDIxCgpkb1RoaW5nc19hbmRfY29udGRAMTc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjI4CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAyLCAzLCA0XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18yIC8vIDEKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDIgLy8gMgogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VAMjEKCmRvVGhpbmdzX2FuZF9jb250ZEAxODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MjgKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDRdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDIgLy8gMgogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMyAvLyAzCiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUAyMQoKZG9UaGluZ3NfYW5kX2NvbnRkQDE5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoyOAogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNF0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgMyAvLyAzCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18zIC8vIDQKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDIxCgpkb1RoaW5nc19ib29sX3RydWVAMjA6CiAgICBpbnRjXzIgLy8gMQoKZG9UaGluZ3NfYm9vbF9tZXJnZUAyMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MjgKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDRdKQogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzEKICAgIC8vIGFyciA9IGFyci53aXRoKDEsIDEwKQogICAgcHVzaGludCAxMCAvLyAxMAogICAgaXRvYgogICAgZnJhbWVfZGlnIDAKICAgIGR1cAogICAgaW50Y18xIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzIgLy8gMQogICAgPgogICAgYXNzZXJ0IC8vIEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBwdXNoaW50IDEwIC8vIDEwCiAgICB1bmNvdmVyIDIKICAgIHJlcGxhY2UzCiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozMwogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMTAsIDMsIDRdKQogICAgaW50Y18xIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzMgLy8gNAogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VAMjgKCmRvVGhpbmdzX2FuZF9jb250ZEAyMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzMKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18xIC8vIDAKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzIgLy8gMQogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VAMjgKCmRvVGhpbmdzX2FuZF9jb250ZEAyNDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzMKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18yIC8vIDEKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDEwIC8vIDEwCiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUAyOAoKZG9UaGluZ3NfYW5kX2NvbnRkQDI1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozMwogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMTAsIDMsIDRdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDIgLy8gMgogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMyAvLyAzCiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUAyOAoKZG9UaGluZ3NfYW5kX2NvbnRkQDI2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozMwogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMTAsIDMsIDRdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDMgLy8gMwogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMyAvLyA0CiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUAyOAoKZG9UaGluZ3NfYm9vbF90cnVlQDI3OgogICAgaW50Y18yIC8vIDEKCmRvVGhpbmdzX2Jvb2xfbWVyZ2VAMjk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjMzCiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNF0pCiAgICBhc3NlcnQgLy8gYXNzZXJ0IHRhcmdldCBpcyBtYXRjaCBmb3IgY29uZGl0aW9ucwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozNwogICAgLy8gYXJyID0gYXJyLmNvbmNhdChhcnIsIDExLCB0MSkKICAgIGZyYW1lX2RpZyAwCiAgICBkdXAKICAgIGV4dHJhY3QgMiAwCiAgICBzd2FwCiAgICBleHRyYWN0IDIgMAogICAgY29uY2F0CiAgICBkdXAKICAgIGxlbgogICAgaW50Y18wIC8vIDgKICAgIC8KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDExIC8vIDExCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgY29uY2F0CiAgICBkdXAKICAgIGxlbgogICAgaW50Y18wIC8vIDgKICAgIC8KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGV4dHJhY3QgMiAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM2CiAgICAvLyBjb25zdCB0MTogW3VpbnQ2NCwgdWludDY0XSA9IFsxMiwgMTNdCiAgICBwdXNoaW50IDEyIC8vIDEyCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzcKICAgIC8vIGFyciA9IGFyci5jb25jYXQoYXJyLCAxMSwgdDEpCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzYKICAgIC8vIGNvbnN0IHQxOiBbdWludDY0LCB1aW50NjRdID0gWzEyLCAxM10KICAgIHB1c2hpbnQgMTMgLy8gMTMKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozNwogICAgLy8gYXJyID0gYXJyLmNvbmNhdChhcnIsIDExLCB0MSkKICAgIGNvbmNhdAogICAgY29uY2F0CiAgICBkdXAKICAgIGxlbgogICAgaW50Y18wIC8vIDgKICAgIC8KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgZnJhbWVfYnVyeSAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNCwgMSwgMTAsIDMsIDQsIDExLCAxMiwgMTNdKQogICAgaW50Y18xIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBwdXNoaW50IDExIC8vIDExCiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUA0MgoKZG9UaGluZ3NfYW5kX2NvbnRkQDMwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozOQogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMTAsIDMsIDQsIDEsIDEwLCAzLCA0LCAxMSwgMTIsIDEzXSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18xIC8vIDAKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzIgLy8gMQogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANDIKCmRvVGhpbmdzX2FuZF9jb250ZEAzMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0LCAxLCAxMCwgMywgNCwgMTEsIDEyLCAxM10pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMiAvLyAxCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAxMCAvLyAxMAogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANDIKCmRvVGhpbmdzX2FuZF9jb250ZEAzMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0LCAxLCAxMCwgMywgNCwgMTEsIDEyLCAxM10pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgMiAvLyAyCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAzIC8vIDMKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDQyCgpkb1RoaW5nc19hbmRfY29udGRAMzM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNCwgMSwgMTAsIDMsIDQsIDExLCAxMiwgMTNdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDMgLy8gMwogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMyAvLyA0CiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUA0MgoKZG9UaGluZ3NfYW5kX2NvbnRkQDM0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozOQogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMTAsIDMsIDQsIDEsIDEwLCAzLCA0LCAxMSwgMTIsIDEzXSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18zIC8vIDQKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzIgLy8gMQogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANDIKCmRvVGhpbmdzX2FuZF9jb250ZEAzNToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0LCAxLCAxMCwgMywgNCwgMTEsIDEyLCAxM10pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgNSAvLyA1CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAxMCAvLyAxMAogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANDIKCmRvVGhpbmdzX2FuZF9jb250ZEAzNjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0LCAxLCAxMCwgMywgNCwgMTEsIDEyLCAxM10pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgNiAvLyA2CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAzIC8vIDMKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDQyCgpkb1RoaW5nc19hbmRfY29udGRAMzc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNCwgMSwgMTAsIDMsIDQsIDExLCAxMiwgMTNdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDcgLy8gNwogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMyAvLyA0CiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUA0MgoKZG9UaGluZ3NfYW5kX2NvbnRkQDM4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozOQogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMTAsIDMsIDQsIDEsIDEwLCAzLCA0LCAxMSwgMTIsIDEzXSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18wIC8vIDgKICAgIGR1cAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAxMSAvLyAxMQogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANDIKCmRvVGhpbmdzX2FuZF9jb250ZEAzOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0LCAxLCAxMCwgMywgNCwgMTEsIDEyLCAxM10pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgOSAvLyA5CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAxMiAvLyAxMgogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANDIKCmRvVGhpbmdzX2FuZF9jb250ZEA0MDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0LCAxLCAxMCwgMywgNCwgMTEsIDEyLCAxM10pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgMTAgLy8gMTAKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDEzIC8vIDEzCiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUA0MgoKZG9UaGluZ3NfYm9vbF90cnVlQDQxOgogICAgaW50Y18yIC8vIDEKCmRvVGhpbmdzX2Jvb2xfbWVyZ2VANDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNCwgMSwgMTAsIDMsIDQsIDExLCAxMiwgMTNdKQogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIHJldHN1YgoKZG9UaGluZ3NfYm9vbF9mYWxzZUA0MjoKICAgIGludGNfMSAvLyAwCiAgICBiIGRvVGhpbmdzX2Jvb2xfbWVyZ2VANDMKCmRvVGhpbmdzX2Jvb2xfZmFsc2VAMjg6CiAgICBpbnRjXzEgLy8gMAogICAgYiBkb1RoaW5nc19ib29sX21lcmdlQDI5Cgpkb1RoaW5nc19ib29sX2ZhbHNlQDIxOgogICAgaW50Y18xIC8vIDAKICAgIGIgZG9UaGluZ3NfYm9vbF9tZXJnZUAyMgoKZG9UaGluZ3NfYm9vbF9mYWxzZUAxNDoKICAgIGludGNfMSAvLyAwCiAgICBiIGRvVGhpbmdzX2Jvb2xfbWVyZ2VAMTUKCmRvVGhpbmdzX2Jvb2xfZmFsc2VANjoKICAgIGludGNfMSAvLyAwCiAgICBiIGRvVGhpbmdzX2Jvb2xfbWVyZ2VANwoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYXJjNEludGVyb3AoKSAtPiB2b2lkOgphcmM0SW50ZXJvcDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDIKICAgIC8vIGFyYzRJbnRlcm9wKCkgewogICAgcHJvdG8gMCAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQ1CiAgICAvLyBjb25zdCBkYTEgPSBuZXcgRHluYW1pY0FycmF5KHUxLCB1MSkKICAgIGJ5dGVjXzAgLy8gMHgKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDMKICAgIC8vIGNvbnN0IHUxID0gbmV3IFVpbnROMzIoMTIzKQogICAgYnl0ZWNfMSAvLyAweDAwMDAwMDdiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQ1CiAgICAvLyBjb25zdCBkYTEgPSBuZXcgRHluYW1pY0FycmF5KHUxLCB1MSkKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0MwogICAgLy8gY29uc3QgdTEgPSBuZXcgVWludE4zMigxMjMpCiAgICBieXRlY18xIC8vIDB4MDAwMDAwN2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDUKICAgIC8vIGNvbnN0IGRhMSA9IG5ldyBEeW5hbWljQXJyYXkodTEsIHUxKQogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgMHgwMDAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDYKICAgIC8vIGNvbnN0IHNhMSA9IG5ldyBTdGF0aWNBcnJheSh1MSwgdTEpCiAgICBieXRlY18wIC8vIDB4CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQzCiAgICAvLyBjb25zdCB1MSA9IG5ldyBVaW50TjMyKDEyMykKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDA3YgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0NgogICAgLy8gY29uc3Qgc2ExID0gbmV3IFN0YXRpY0FycmF5KHUxLCB1MSkKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0MwogICAgLy8gY29uc3QgdTEgPSBuZXcgVWludE4zMigxMjMpCiAgICBieXRlY18xIC8vIDB4MDAwMDAwN2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDYKICAgIC8vIGNvbnN0IHNhMSA9IG5ldyBTdGF0aWNBcnJheSh1MSwgdTEpCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0NwogICAgLy8gbGV0IGExID0gW3UxLCB1MV0KICAgIGJ5dGVjXzIgLy8gMHgwMDAwCiAgICBieXRlY18wIC8vIDB4CiAgICBjb25jYXQKICAgIGV4dHJhY3QgMiAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQzCiAgICAvLyBjb25zdCB1MSA9IG5ldyBVaW50TjMyKDEyMykKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDA3YgogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQ3CiAgICAvLyBsZXQgYTEgPSBbdTEsIHUxXQogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQzCiAgICAvLyBjb25zdCB1MSA9IG5ldyBVaW50TjMyKDEyMykKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDA3YgogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQ3CiAgICAvLyBsZXQgYTEgPSBbdTEsIHUxXQogICAgY29uY2F0CiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gNAogICAgLwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0OQogICAgLy8gYTEgPSBbLi4uYTEsIC4uLmRhMSwgLi4uc2ExXQogICAgZXh0cmFjdCAyIDAKICAgIHN3YXAKICAgIGV4dHJhY3QgMiAwCiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gNAogICAgLwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZXh0cmFjdCAyIDAKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA0CiAgICAvCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICBpbnRjXzEgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIHB1c2hpbnQgNiAvLyA2CiAgICA9PQogICAgYnogYXJjNEludGVyb3BfYm9vbF9mYWxzZUA4CgphcmM0SW50ZXJvcF9hbmRfY29udGRAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMSAvLyAwCiAgICBpbnRjXzMgLy8gNAogICAgKgogICAgaW50Y18zIC8vIDQKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0MwogICAgLy8gY29uc3QgdTEgPSBuZXcgVWludE4zMigxMjMpCiAgICBieXRlY18xIC8vIDB4MDAwMDAwN2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICA9PQogICAgYnogYXJjNEludGVyb3BfYm9vbF9mYWxzZUA4CgphcmM0SW50ZXJvcF9hbmRfY29udGRAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMiAvLyAxCiAgICBpbnRjXzMgLy8gNAogICAgKgogICAgaW50Y18zIC8vIDQKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0MwogICAgLy8gY29uc3QgdTEgPSBuZXcgVWludE4zMigxMjMpCiAgICBieXRlY18xIC8vIDB4MDAwMDAwN2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICA9PQogICAgYnogYXJjNEludGVyb3BfYm9vbF9mYWxzZUA4CgphcmM0SW50ZXJvcF9hbmRfY29udGRAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgMiAvLyAyCiAgICBpbnRjXzMgLy8gNAogICAgKgogICAgaW50Y18zIC8vIDQKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0MwogICAgLy8gY29uc3QgdTEgPSBuZXcgVWludE4zMigxMjMpCiAgICBieXRlY18xIC8vIDB4MDAwMDAwN2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICA9PQogICAgYnogYXJjNEludGVyb3BfYm9vbF9mYWxzZUA4CgphcmM0SW50ZXJvcF9hbmRfY29udGRANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgMyAvLyAzCiAgICBpbnRjXzMgLy8gNAogICAgKgogICAgaW50Y18zIC8vIDQKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0MwogICAgLy8gY29uc3QgdTEgPSBuZXcgVWludE4zMigxMjMpCiAgICBieXRlY18xIC8vIDB4MDAwMDAwN2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICA9PQogICAgYnogYXJjNEludGVyb3BfYm9vbF9mYWxzZUA4CgphcmM0SW50ZXJvcF9hbmRfY29udGRANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMyAvLyA0CiAgICBkdXAKICAgICoKICAgIGludGNfMyAvLyA0CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDMKICAgIC8vIGNvbnN0IHUxID0gbmV3IFVpbnROMzIoMTIzKQogICAgYnl0ZWNfMSAvLyAweDAwMDAwMDdiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjUxCiAgICAvLyBhc3NlcnRNYXRjaChhMSwgW3UxLCB1MSwgdTEsIHUxLCB1MSwgdTFdKQogICAgPT0KICAgIGJ6IGFyYzRJbnRlcm9wX2Jvb2xfZmFsc2VAOAoKYXJjNEludGVyb3BfYW5kX2NvbnRkQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjUxCiAgICAvLyBhc3NlcnRNYXRjaChhMSwgW3UxLCB1MSwgdTEsIHUxLCB1MSwgdTFdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDUgLy8gNQogICAgaW50Y18zIC8vIDQKICAgICoKICAgIGludGNfMyAvLyA0CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDMKICAgIC8vIGNvbnN0IHUxID0gbmV3IFVpbnROMzIoMTIzKQogICAgYnl0ZWNfMSAvLyAweDAwMDAwMDdiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjUxCiAgICAvLyBhc3NlcnRNYXRjaChhMSwgW3UxLCB1MSwgdTEsIHUxLCB1MSwgdTFdKQogICAgPT0KICAgIGJ6IGFyYzRJbnRlcm9wX2Jvb2xfZmFsc2VAOAoKYXJjNEludGVyb3BfYm9vbF90cnVlQDc6CiAgICBpbnRjXzIgLy8gMQoKYXJjNEludGVyb3BfYm9vbF9tZXJnZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0TWF0Y2goYTEsIFt1MSwgdTEsIHUxLCB1MSwgdTEsIHUxXSkKICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICByZXRzdWIKCmFyYzRJbnRlcm9wX2Jvb2xfZmFsc2VAODoKICAgIGludGNfMSAvLyAwCiAgICBiIGFyYzRJbnRlcm9wX2Jvb2xfbWVyZ2VAOQoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uc3RydWN0cyhwLng6IHVpbnQ2NCwgcC55OiB1aW50NjQpIC0+IGJ5dGVzOgpzdHJ1Y3RzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1NAogICAgLy8gc3RydWN0cyh7IHgsIHkgfTogVmVjdG9yKSB7CiAgICBwcm90byAyIDEKICAgIGZyYW1lX2RpZyAtMgogICAgZHVwCiAgICBmcmFtZV9kaWcgLTEKICAgIGR1cAogICAgY292ZXIgMgogICAgY292ZXIgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1NwogICAgLy8gbXlWZWN0b3JzID0gW3sgeCwgeSB9XQogICAgYnl0ZWNfMiAvLyAweDAwMDAKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGNvbmNhdAogICAgZXh0cmFjdCAyIDAKICAgIGNvdmVyIDIKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgaXRvYgogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGNvbmNhdAogICAgZHVwCiAgICBsZW4KICAgIHB1c2hpbnQgMTYgLy8gMTYKICAgIC8KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1OQogICAgLy8gYXNzZXJ0TWF0Y2gobXlWZWN0b3JzLCBbeyB4LCB5IH1dKQogICAgaW50Y18xIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzIgLy8gMQogICAgPT0KICAgIGJ6IHN0cnVjdHNfYm9vbF9mYWxzZUA0CgpzdHJ1Y3RzX2FuZF9jb250ZEAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1OQogICAgLy8gYXNzZXJ0TWF0Y2gobXlWZWN0b3JzLCBbeyB4LCB5IH1dKQogICAgZnJhbWVfZGlnIDIKICAgIGV4dHJhY3QgMiAwCiAgICBpbnRjXzEgLy8gMAogICAgcHVzaGludCAxNiAvLyAxNgogICAgKgogICAgcHVzaGludCAxNiAvLyAxNgogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBpbnRjXzEgLy8gMAogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgZnJhbWVfZGlnIDAKICAgID09CiAgICBieiBzdHJ1Y3RzX2Jvb2xfZmFsc2VANAoKc3RydWN0c19hbmRfY29udGRAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTkKICAgIC8vIGFzc2VydE1hdGNoKG15VmVjdG9ycywgW3sgeCwgeSB9XSkKICAgIGZyYW1lX2RpZyAyCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18xIC8vIDAKICAgIHB1c2hpbnQgMTYgLy8gMTYKICAgICoKICAgIHB1c2hpbnQgMTYgLy8gMTYKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgaW50Y18wIC8vIDgKICAgIGR1cAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBmcmFtZV9kaWcgMQogICAgPT0KICAgIGJ6IHN0cnVjdHNfYm9vbF9mYWxzZUA0CgpzdHJ1Y3RzX2Jvb2xfdHJ1ZUAzOgogICAgaW50Y18yIC8vIDEKCnN0cnVjdHNfYm9vbF9tZXJnZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1OQogICAgLy8gYXNzZXJ0TWF0Y2gobXlWZWN0b3JzLCBbeyB4LCB5IH1dKQogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NjAKICAgIC8vIHJldHVybiBteVZlY3RvcnMKICAgIGZyYW1lX2RpZyAyCiAgICBmcmFtZV9idXJ5IDAKICAgIHJldHN1YgoKc3RydWN0c19ib29sX2ZhbHNlQDQ6CiAgICBpbnRjXzEgLy8gMAogICAgYiBzdHJ1Y3RzX2Jvb2xfbWVyZ2VANQoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgOCAwIDEgNAogICAgYnl0ZWNibG9jayAweCAweDAwMDAwMDdiIDB4MDAwMCAweDE1MWY3Yzc1CgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjYKICAgIC8vIGV4cG9ydCBjbGFzcyBOYXRpdmVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMSAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAOQoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo2CiAgICAvLyBleHBvcnQgY2xhc3MgTmF0aXZlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDBmNGMxMWNhIC8vIG1ldGhvZCAiYnVpbGRBcnJheSgpdWludDY0W10iCiAgICBwdXNoYnl0ZXMgMHgxM2E1ODhjOCAvLyBtZXRob2QgImRvVGhpbmdzKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4Nzg3YjUwYjIgLy8gbWV0aG9kICJhcmM0SW50ZXJvcCgpdm9pZCIKICAgIHB1c2hieXRlcyAweGViODdhMDY0IC8vIG1ldGhvZCAic3RydWN0cygodWludDY0LHVpbnQ2NCkpKHVpbnQ2NCx1aW50NjQpW10iCiAgICB1bmNvdmVyIDQKICAgIG1hdGNoIG1haW5fYnVpbGRBcnJheV9yb3V0ZUAzIG1haW5fZG9UaGluZ3Nfcm91dGVANCBtYWluX2FyYzRJbnRlcm9wX3JvdXRlQDUgbWFpbl9zdHJ1Y3RzX3JvdXRlQDYKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA3OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDg6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjYKICAgIC8vIGV4cG9ydCBjbGFzcyBOYXRpdmVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18xIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0OgogICAgcmV0dXJuCgptYWluX3N0cnVjdHNfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTQKICAgIC8vIHN0cnVjdHMoeyB4LCB5IH06IFZlY3RvcikgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18xIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18xIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo2CiAgICAvLyBleHBvcnQgY2xhc3MgTmF0aXZlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDAKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHN3YXAKICAgIGludGNfMCAvLyA4CiAgICBkdXAKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1NAogICAgLy8gc3RydWN0cyh7IHgsIHkgfTogVmVjdG9yKSB7CiAgICBjYWxsc3ViIHN0cnVjdHMKICAgIGJ5dGVjXzMgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2FyYzRJbnRlcm9wX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQyCiAgICAvLyBhcmM0SW50ZXJvcCgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMSAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMSAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgYXJjNEludGVyb3AKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2RvVGhpbmdzX3JvdXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjExCiAgICAvLyBkb1RoaW5ncygpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMSAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMSAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgZG9UaGluZ3MKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2J1aWxkQXJyYXlfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NwogICAgLy8gYnVpbGRBcnJheSgpOiB1aW50NjRbXSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzEgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzEgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGJ1aWxkQXJyYXkKICAgIGJ5dGVjXzMgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2JhcmVfcm91dGluZ0A5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo2CiAgICAvLyBleHBvcnQgY2xhc3MgTmF0aXZlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMSAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMAoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDExOgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEyOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTMKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo2CiAgICAvLyBleHBvcnQgY2xhc3MgTmF0aXZlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzEgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYnVpbGRBcnJheSgpIC0+IGJ5dGVzOgpidWlsZEFycmF5OgoKYnVpbGRBcnJheV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo4CiAgICAvLyByZXR1cm4gWzEsIDIsIDMsIDRdCiAgICBieXRlY18yIC8vIDB4MDAwMAogICAgYnl0ZWNfMCAvLyAweAogICAgY29uY2F0CiAgICBleHRyYWN0IDIgMAogICAgaW50Y18yIC8vIDEKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoaW50IDIgLy8gMgogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBjb25jYXQKICAgIHB1c2hpbnQgMyAvLyAzCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGNvbmNhdAogICAgaW50Y18zIC8vIDQKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgY29uY2F0CiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzAgLy8gOAogICAgLwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5ncygpIC0+IHZvaWQ6CmRvVGhpbmdzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxMQogICAgLy8gZG9UaGluZ3MoKSB7CiAgICBwcm90byAwIDAKCmRvVGhpbmdzX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjEyCiAgICAvLyBsZXQgYXJyID0gdGhpcy5idWlsZEFycmF5KCkKICAgIGNhbGxzdWIgYnVpbGRBcnJheQogICAgZHVwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE0CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAyLCAzLCA0XSkKICAgIGludGNfMSAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18zIC8vIDQKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDYKCmRvVGhpbmdzX2FuZF9jb250ZEAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxNAogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNF0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMSAvLyAwCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18yIC8vIDEKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDYKCmRvVGhpbmdzX2FuZF9jb250ZEAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxNAogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNF0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMiAvLyAxCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAyIC8vIDIKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDYKCmRvVGhpbmdzX2FuZF9jb250ZEAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxNAogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNF0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgMiAvLyAyCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAzIC8vIDMKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDYKCmRvVGhpbmdzX2FuZF9jb250ZEA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxNAogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNF0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgMyAvLyAzCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18zIC8vIDQKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDYKCmRvVGhpbmdzX2Jvb2xfdHJ1ZUA1OgogICAgaW50Y18yIC8vIDEKCmRvVGhpbmdzX2Jvb2xfbWVyZ2VANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTQKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDRdKQogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTcKICAgIC8vIGFyciA9IFsuLi5hcnIsIFVpbnQ2NCg1KV0KICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgYnl0ZWNfMiAvLyAweDAwMDAKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGNvbmNhdAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgNSAvLyA1CiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgY29uY2F0CiAgICBkdXAKICAgIGxlbgogICAgaW50Y18wIC8vIDgKICAgIC8KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGV4dHJhY3QgMiAwCiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzAgLy8gOAogICAgLwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDQsIDVdKQogICAgaW50Y18xIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBwdXNoaW50IDUgLy8gNQogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VAMTQKCmRvVGhpbmdzX2FuZF9jb250ZEA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxOQogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNCwgNV0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMSAvLyAwCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18yIC8vIDEKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDE0Cgpkb1RoaW5nc19hbmRfY29udGRAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDQsIDVdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBpbnRjXzIgLy8gMQogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMiAvLyAyCiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUAxNAoKZG9UaGluZ3NfYW5kX2NvbnRkQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxOQogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNCwgNV0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgMiAvLyAyCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAzIC8vIDMKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDE0Cgpkb1RoaW5nc19hbmRfY29udGRAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAyLCAzLCA0LCA1XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCAzIC8vIDMKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzMgLy8gNAogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VAMTQKCmRvVGhpbmdzX2FuZF9jb250ZEAxMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDQsIDVdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBpbnRjXzMgLy8gNAogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgNSAvLyA1CiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUAxNAoKZG9UaGluZ3NfYm9vbF90cnVlQDEzOgogICAgaW50Y18yIC8vIDEKCmRvVGhpbmdzX2Jvb2xfbWVyZ2VAMTU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAyLCAzLCA0LCA1XSkKICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjIyCiAgICAvLyBjb25zdCB0b3AgPSBhcnJbYXJyLmxlbmd0aCAtIDFdCiAgICBmcmFtZV9kaWcgMAogICAgZHVwCiAgICBpbnRjXzEgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAxCiAgICAtCiAgICBzd2FwCiAgICBleHRyYWN0IDIgMAogICAgc3dhcAogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MjMKICAgIC8vIGFzc2VydCh0b3AgPT09IDUpCiAgICBwdXNoaW50IDUgLy8gNQogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoyNgogICAgLy8gYXJyID0gWzEsIDIsIDMsIDRdCiAgICBieXRlY18yIC8vIDB4MDAwMAogICAgYnl0ZWNfMCAvLyAweAogICAgY29uY2F0CiAgICBleHRyYWN0IDIgMAogICAgaW50Y18yIC8vIDEKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoaW50IDIgLy8gMgogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBjb25jYXQKICAgIHB1c2hpbnQgMyAvLyAzCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGNvbmNhdAogICAgaW50Y18zIC8vIDQKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgY29uY2F0CiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzAgLy8gOAogICAgLwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MjgKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDRdKQogICAgaW50Y18xIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzMgLy8gNAogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VAMjEKCmRvVGhpbmdzX2FuZF9jb250ZEAxNjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MjgKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDRdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBpbnRjXzEgLy8gMAogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMiAvLyAxCiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUAyMQoKZG9UaGluZ3NfYW5kX2NvbnRkQDE3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoyOAogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNF0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMiAvLyAxCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAyIC8vIDIKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDIxCgpkb1RoaW5nc19hbmRfY29udGRAMTg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjI4CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAyLCAzLCA0XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCAyIC8vIDIKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDMgLy8gMwogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VAMjEKCmRvVGhpbmdzX2FuZF9jb250ZEAxOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MjgKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDRdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDMgLy8gMwogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMyAvLyA0CiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUAyMQoKZG9UaGluZ3NfYm9vbF90cnVlQDIwOgogICAgaW50Y18yIC8vIDEKCmRvVGhpbmdzX2Jvb2xfbWVyZ2VAMjI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjI4CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAyLCAzLCA0XSkKICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjMxCiAgICAvLyBhcnIgPSBhcnIud2l0aCgxLCAxMCkKICAgIHB1c2hpbnQgMTAgLy8gMTAKICAgIGl0b2IKICAgIGZyYW1lX2RpZyAwCiAgICBkdXAKICAgIGludGNfMSAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDEKICAgID4KICAgIGFzc2VydCAvLyBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgcHVzaGludCAxMCAvLyAxMAogICAgdW5jb3ZlciAyCiAgICByZXBsYWNlMwogICAgZHVwCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzMKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0XSkKICAgIGludGNfMSAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18zIC8vIDQKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDI4Cgpkb1RoaW5nc19hbmRfY29udGRAMjM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjMzCiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNF0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMSAvLyAwCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18yIC8vIDEKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDI4Cgpkb1RoaW5nc19hbmRfY29udGRAMjQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjMzCiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNF0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMiAvLyAxCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAxMCAvLyAxMAogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VAMjgKCmRvVGhpbmdzX2FuZF9jb250ZEAyNToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzMKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCAyIC8vIDIKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDMgLy8gMwogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VAMjgKCmRvVGhpbmdzX2FuZF9jb250ZEAyNjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzMKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCAzIC8vIDMKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzMgLy8gNAogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VAMjgKCmRvVGhpbmdzX2Jvb2xfdHJ1ZUAyNzoKICAgIGludGNfMiAvLyAxCgpkb1RoaW5nc19ib29sX21lcmdlQDI5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozMwogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMTAsIDMsIDRdKQogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzcKICAgIC8vIGFyciA9IGFyci5jb25jYXQoYXJyLCAxMSwgdDEpCiAgICBmcmFtZV9kaWcgMAogICAgZHVwCiAgICBleHRyYWN0IDIgMAogICAgc3dhcAogICAgZXh0cmFjdCAyIDAKICAgIGNvbmNhdAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMCAvLyA4CiAgICAvCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCAxMSAvLyAxMQogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGNvbmNhdAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMCAvLyA4CiAgICAvCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozNgogICAgLy8gY29uc3QgdDE6IFt1aW50NjQsIHVpbnQ2NF0gPSBbMTIsIDEzXQogICAgcHVzaGludCAxMiAvLyAxMgogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM3CiAgICAvLyBhcnIgPSBhcnIuY29uY2F0KGFyciwgMTEsIHQxKQogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM2CiAgICAvLyBjb25zdCB0MTogW3VpbnQ2NCwgdWludDY0XSA9IFsxMiwgMTNdCiAgICBwdXNoaW50IDEzIC8vIDEzCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzcKICAgIC8vIGFyciA9IGFyci5jb25jYXQoYXJyLCAxMSwgdDEpCiAgICBjb25jYXQKICAgIGNvbmNhdAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMCAvLyA4CiAgICAvCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozOQogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMTAsIDMsIDQsIDEsIDEwLCAzLCA0LCAxMSwgMTIsIDEzXSkKICAgIGludGNfMSAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgcHVzaGludCAxMSAvLyAxMQogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANDIKCmRvVGhpbmdzX2FuZF9jb250ZEAzMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0LCAxLCAxMCwgMywgNCwgMTEsIDEyLCAxM10pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMSAvLyAwCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18yIC8vIDEKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDQyCgpkb1RoaW5nc19hbmRfY29udGRAMzE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNCwgMSwgMTAsIDMsIDQsIDExLCAxMiwgMTNdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBpbnRjXzIgLy8gMQogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMTAgLy8gMTAKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDQyCgpkb1RoaW5nc19hbmRfY29udGRAMzI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNCwgMSwgMTAsIDMsIDQsIDExLCAxMiwgMTNdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDIgLy8gMgogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMyAvLyAzCiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUA0MgoKZG9UaGluZ3NfYW5kX2NvbnRkQDMzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozOQogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMTAsIDMsIDQsIDEsIDEwLCAzLCA0LCAxMSwgMTIsIDEzXSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCAzIC8vIDMKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzMgLy8gNAogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANDIKCmRvVGhpbmdzX2FuZF9jb250ZEAzNDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0LCAxLCAxMCwgMywgNCwgMTEsIDEyLCAxM10pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMyAvLyA0CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18yIC8vIDEKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDQyCgpkb1RoaW5nc19hbmRfY29udGRAMzU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNCwgMSwgMTAsIDMsIDQsIDExLCAxMiwgMTNdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDUgLy8gNQogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMTAgLy8gMTAKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDQyCgpkb1RoaW5nc19hbmRfY29udGRAMzY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNCwgMSwgMTAsIDMsIDQsIDExLCAxMiwgMTNdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDYgLy8gNgogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMyAvLyAzCiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUA0MgoKZG9UaGluZ3NfYW5kX2NvbnRkQDM3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozOQogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMTAsIDMsIDQsIDEsIDEwLCAzLCA0LCAxMSwgMTIsIDEzXSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCA3IC8vIDcKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzMgLy8gNAogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANDIKCmRvVGhpbmdzX2FuZF9jb250ZEAzODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0LCAxLCAxMCwgMywgNCwgMTEsIDEyLCAxM10pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMCAvLyA4CiAgICBkdXAKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMTEgLy8gMTEKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDQyCgpkb1RoaW5nc19hbmRfY29udGRAMzk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNCwgMSwgMTAsIDMsIDQsIDExLCAxMiwgMTNdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDkgLy8gOQogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMTIgLy8gMTIKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDQyCgpkb1RoaW5nc19hbmRfY29udGRANDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNCwgMSwgMTAsIDMsIDQsIDExLCAxMiwgMTNdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDEwIC8vIDEwCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAxMyAvLyAxMwogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANDIKCmRvVGhpbmdzX2Jvb2xfdHJ1ZUA0MToKICAgIGludGNfMiAvLyAxCgpkb1RoaW5nc19ib29sX21lcmdlQDQzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozOQogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMTAsIDMsIDQsIDEsIDEwLCAzLCA0LCAxMSwgMTIsIDEzXSkKICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICByZXRzdWIKCmRvVGhpbmdzX2Jvb2xfZmFsc2VANDI6CiAgICBpbnRjXzEgLy8gMAogICAgYiBkb1RoaW5nc19ib29sX21lcmdlQDQzCgpkb1RoaW5nc19ib29sX2ZhbHNlQDI4OgogICAgaW50Y18xIC8vIDAKICAgIGIgZG9UaGluZ3NfYm9vbF9tZXJnZUAyOQoKZG9UaGluZ3NfYm9vbF9mYWxzZUAyMToKICAgIGludGNfMSAvLyAwCiAgICBiIGRvVGhpbmdzX2Jvb2xfbWVyZ2VAMjIKCmRvVGhpbmdzX2Jvb2xfZmFsc2VAMTQ6CiAgICBpbnRjXzEgLy8gMAogICAgYiBkb1RoaW5nc19ib29sX21lcmdlQDE1Cgpkb1RoaW5nc19ib29sX2ZhbHNlQDY6CiAgICBpbnRjXzEgLy8gMAogICAgYiBkb1RoaW5nc19ib29sX21lcmdlQDcKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmFyYzRJbnRlcm9wKCkgLT4gdm9pZDoKYXJjNEludGVyb3A6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQyCiAgICAvLyBhcmM0SW50ZXJvcCgpIHsKICAgIHByb3RvIDAgMAoKYXJjNEludGVyb3BfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDUKICAgIC8vIGNvbnN0IGRhMSA9IG5ldyBEeW5hbWljQXJyYXkodTEsIHUxKQogICAgYnl0ZWNfMCAvLyAweAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0MwogICAgLy8gY29uc3QgdTEgPSBuZXcgVWludE4zMigxMjMpCiAgICBieXRlY18xIC8vIDB4MDAwMDAwN2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDUKICAgIC8vIGNvbnN0IGRhMSA9IG5ldyBEeW5hbWljQXJyYXkodTEsIHUxKQogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQzCiAgICAvLyBjb25zdCB1MSA9IG5ldyBVaW50TjMyKDEyMykKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDA3YgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0NQogICAgLy8gY29uc3QgZGExID0gbmV3IER5bmFtaWNBcnJheSh1MSwgdTEpCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDAwMDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0NgogICAgLy8gY29uc3Qgc2ExID0gbmV3IFN0YXRpY0FycmF5KHUxLCB1MSkKICAgIGJ5dGVjXzAgLy8gMHgKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDMKICAgIC8vIGNvbnN0IHUxID0gbmV3IFVpbnROMzIoMTIzKQogICAgYnl0ZWNfMSAvLyAweDAwMDAwMDdiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQ2CiAgICAvLyBjb25zdCBzYTEgPSBuZXcgU3RhdGljQXJyYXkodTEsIHUxKQogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQzCiAgICAvLyBjb25zdCB1MSA9IG5ldyBVaW50TjMyKDEyMykKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDA3YgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0NgogICAgLy8gY29uc3Qgc2ExID0gbmV3IFN0YXRpY0FycmF5KHUxLCB1MSkKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQ3CiAgICAvLyBsZXQgYTEgPSBbdTEsIHUxXQogICAgYnl0ZWNfMiAvLyAweDAwMDAKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGNvbmNhdAogICAgZXh0cmFjdCAyIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDMKICAgIC8vIGNvbnN0IHUxID0gbmV3IFVpbnROMzIoMTIzKQogICAgYnl0ZWNfMCAvLyAweAogICAgYnl0ZWNfMSAvLyAweDAwMDAwMDdiCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDcKICAgIC8vIGxldCBhMSA9IFt1MSwgdTFdCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDMKICAgIC8vIGNvbnN0IHUxID0gbmV3IFVpbnROMzIoMTIzKQogICAgYnl0ZWNfMCAvLyAweAogICAgYnl0ZWNfMSAvLyAweDAwMDAwMDdiCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDcKICAgIC8vIGxldCBhMSA9IFt1MSwgdTFdCiAgICBjb25jYXQKICAgIGNvbmNhdAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA0CiAgICAvCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQ5CiAgICAvLyBhMSA9IFsuLi5hMSwgLi4uZGExLCAuLi5zYTFdCiAgICBleHRyYWN0IDIgMAogICAgc3dhcAogICAgZXh0cmFjdCAyIDAKICAgIGNvbmNhdAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA0CiAgICAvCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBleHRyYWN0IDIgMAogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDQKICAgIC8KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0TWF0Y2goYTEsIFt1MSwgdTEsIHUxLCB1MSwgdTEsIHUxXSkKICAgIGludGNfMSAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgcHVzaGludCA2IC8vIDYKICAgID09CiAgICBieiBhcmM0SW50ZXJvcF9ib29sX2ZhbHNlQDgKCmFyYzRJbnRlcm9wX2FuZF9jb250ZEAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0TWF0Y2goYTEsIFt1MSwgdTEsIHUxLCB1MSwgdTEsIHUxXSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18xIC8vIDAKICAgIGludGNfMyAvLyA0CiAgICAqCiAgICBpbnRjXzMgLy8gNAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQzCiAgICAvLyBjb25zdCB1MSA9IG5ldyBVaW50TjMyKDEyMykKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDA3YgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0TWF0Y2goYTEsIFt1MSwgdTEsIHUxLCB1MSwgdTEsIHUxXSkKICAgID09CiAgICBieiBhcmM0SW50ZXJvcF9ib29sX2ZhbHNlQDgKCmFyYzRJbnRlcm9wX2FuZF9jb250ZEAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0TWF0Y2goYTEsIFt1MSwgdTEsIHUxLCB1MSwgdTEsIHUxXSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18yIC8vIDEKICAgIGludGNfMyAvLyA0CiAgICAqCiAgICBpbnRjXzMgLy8gNAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQzCiAgICAvLyBjb25zdCB1MSA9IG5ldyBVaW50TjMyKDEyMykKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDA3YgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0TWF0Y2goYTEsIFt1MSwgdTEsIHUxLCB1MSwgdTEsIHUxXSkKICAgID09CiAgICBieiBhcmM0SW50ZXJvcF9ib29sX2ZhbHNlQDgKCmFyYzRJbnRlcm9wX2FuZF9jb250ZEAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0TWF0Y2goYTEsIFt1MSwgdTEsIHUxLCB1MSwgdTEsIHUxXSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCAyIC8vIDIKICAgIGludGNfMyAvLyA0CiAgICAqCiAgICBpbnRjXzMgLy8gNAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQzCiAgICAvLyBjb25zdCB1MSA9IG5ldyBVaW50TjMyKDEyMykKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDA3YgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0TWF0Y2goYTEsIFt1MSwgdTEsIHUxLCB1MSwgdTEsIHUxXSkKICAgID09CiAgICBieiBhcmM0SW50ZXJvcF9ib29sX2ZhbHNlQDgKCmFyYzRJbnRlcm9wX2FuZF9jb250ZEA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0TWF0Y2goYTEsIFt1MSwgdTEsIHUxLCB1MSwgdTEsIHUxXSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCAzIC8vIDMKICAgIGludGNfMyAvLyA0CiAgICAqCiAgICBpbnRjXzMgLy8gNAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQzCiAgICAvLyBjb25zdCB1MSA9IG5ldyBVaW50TjMyKDEyMykKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDA3YgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0TWF0Y2goYTEsIFt1MSwgdTEsIHUxLCB1MSwgdTEsIHUxXSkKICAgID09CiAgICBieiBhcmM0SW50ZXJvcF9ib29sX2ZhbHNlQDgKCmFyYzRJbnRlcm9wX2FuZF9jb250ZEA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0TWF0Y2goYTEsIFt1MSwgdTEsIHUxLCB1MSwgdTEsIHUxXSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18zIC8vIDQKICAgIGR1cAogICAgKgogICAgaW50Y18zIC8vIDQKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0MwogICAgLy8gY29uc3QgdTEgPSBuZXcgVWludE4zMigxMjMpCiAgICBieXRlY18xIC8vIDB4MDAwMDAwN2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICA9PQogICAgYnogYXJjNEludGVyb3BfYm9vbF9mYWxzZUA4CgphcmM0SW50ZXJvcF9hbmRfY29udGRANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgNSAvLyA1CiAgICBpbnRjXzMgLy8gNAogICAgKgogICAgaW50Y18zIC8vIDQKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0MwogICAgLy8gY29uc3QgdTEgPSBuZXcgVWludE4zMigxMjMpCiAgICBieXRlY18xIC8vIDB4MDAwMDAwN2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICA9PQogICAgYnogYXJjNEludGVyb3BfYm9vbF9mYWxzZUA4CgphcmM0SW50ZXJvcF9ib29sX3RydWVANzoKICAgIGludGNfMiAvLyAxCgphcmM0SW50ZXJvcF9ib29sX21lcmdlQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjUxCiAgICAvLyBhc3NlcnRNYXRjaChhMSwgW3UxLCB1MSwgdTEsIHUxLCB1MSwgdTFdKQogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIHJldHN1YgoKYXJjNEludGVyb3BfYm9vbF9mYWxzZUA4OgogICAgaW50Y18xIC8vIDAKICAgIGIgYXJjNEludGVyb3BfYm9vbF9tZXJnZUA5CgoKLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5zdHJ1Y3RzKHAueDogdWludDY0LCBwLnk6IHVpbnQ2NCkgLT4gYnl0ZXM6CnN0cnVjdHM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjU0CiAgICAvLyBzdHJ1Y3RzKHsgeCwgeSB9OiBWZWN0b3IpIHsKICAgIHByb3RvIDIgMQoKc3RydWN0c19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1NAogICAgLy8gc3RydWN0cyh7IHgsIHkgfTogVmVjdG9yKSB7CiAgICBmcmFtZV9kaWcgLTIKICAgIGR1cAogICAgZnJhbWVfZGlnIC0xCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGNvdmVyIDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTcKICAgIC8vIG15VmVjdG9ycyA9IFt7IHgsIHkgfV0KICAgIGJ5dGVjXzIgLy8gMHgwMDAwCiAgICBieXRlY18wIC8vIDB4CiAgICBjb25jYXQKICAgIGV4dHJhY3QgMiAwCiAgICBjb3ZlciAyCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGl0b2IKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBwdXNoaW50IDE2IC8vIDE2CiAgICAvCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTkKICAgIC8vIGFzc2VydE1hdGNoKG15VmVjdG9ycywgW3sgeCwgeSB9XSkKICAgIGludGNfMSAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDEKICAgID09CiAgICBieiBzdHJ1Y3RzX2Jvb2xfZmFsc2VANAoKc3RydWN0c19hbmRfY29udGRAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTkKICAgIC8vIGFzc2VydE1hdGNoKG15VmVjdG9ycywgW3sgeCwgeSB9XSkKICAgIGZyYW1lX2RpZyAyCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18xIC8vIDAKICAgIHB1c2hpbnQgMTYgLy8gMTYKICAgICoKICAgIHB1c2hpbnQgMTYgLy8gMTYKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgaW50Y18xIC8vIDAKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGZyYW1lX2RpZyAwCiAgICA9PQogICAgYnogc3RydWN0c19ib29sX2ZhbHNlQDQKCnN0cnVjdHNfYW5kX2NvbnRkQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjU5CiAgICAvLyBhc3NlcnRNYXRjaChteVZlY3RvcnMsIFt7IHgsIHkgfV0pCiAgICBmcmFtZV9kaWcgMgogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMSAvLyAwCiAgICBwdXNoaW50IDE2IC8vIDE2CiAgICAqCiAgICBwdXNoaW50IDE2IC8vIDE2CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGludGNfMCAvLyA4CiAgICBkdXAKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgZnJhbWVfZGlnIDEKICAgID09CiAgICBieiBzdHJ1Y3RzX2Jvb2xfZmFsc2VANAoKc3RydWN0c19ib29sX3RydWVAMzoKICAgIGludGNfMiAvLyAxCgpzdHJ1Y3RzX2Jvb2xfbWVyZ2VANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTkKICAgIC8vIGFzc2VydE1hdGNoKG15VmVjdG9ycywgW3sgeCwgeSB9XSkKICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjYwCiAgICAvLyByZXR1cm4gbXlWZWN0b3JzCiAgICBmcmFtZV9kaWcgMgogICAgZnJhbWVfYnVyeSAwCiAgICByZXRzdWIKCnN0cnVjdHNfYm9vbF9mYWxzZUA0OgogICAgaW50Y18xIC8vIDAKICAgIGIgc3RydWN0c19ib29sX21lcmdlQDUKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/native-arrays/NativeArraysAlgo.arc56.json b/tests/approvals/out/unoptimized/native-arrays/NativeArraysAlgo.arc56.json index d3997a9df..b287e3eeb 100644 --- a/tests/approvals/out/unoptimized/native-arrays/NativeArraysAlgo.arc56.json +++ b/tests/approvals/out/unoptimized/native-arrays/NativeArraysAlgo.arc56.json @@ -212,8 +212,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgOCAwIDEgNAogICAgYnl0ZWNibG9jayAweCAweDAwMDAwMDdiIDB4MDAwMCAweDE1MWY3Yzc1CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjYKICAgIC8vIGV4cG9ydCBjbGFzcyBOYXRpdmVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMSAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAOQoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo2CiAgICAvLyBleHBvcnQgY2xhc3MgTmF0aXZlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDBmNGMxMWNhIC8vIG1ldGhvZCAiYnVpbGRBcnJheSgpdWludDY0W10iCiAgICBwdXNoYnl0ZXMgMHgxM2E1ODhjOCAvLyBtZXRob2QgImRvVGhpbmdzKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4Nzg3YjUwYjIgLy8gbWV0aG9kICJhcmM0SW50ZXJvcCgpdm9pZCIKICAgIHB1c2hieXRlcyAweGViODdhMDY0IC8vIG1ldGhvZCAic3RydWN0cygodWludDY0LHVpbnQ2NCkpKHVpbnQ2NCx1aW50NjQpW10iCiAgICB1bmNvdmVyIDQKICAgIG1hdGNoIG1haW5fYnVpbGRBcnJheV9yb3V0ZUAzIG1haW5fZG9UaGluZ3Nfcm91dGVANCBtYWluX2FyYzRJbnRlcm9wX3JvdXRlQDUgbWFpbl9zdHJ1Y3RzX3JvdXRlQDYKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA3OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDg6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjYKICAgIC8vIGV4cG9ydCBjbGFzcyBOYXRpdmVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18xIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0OgogICAgcmV0dXJuCgptYWluX3N0cnVjdHNfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTQKICAgIC8vIHN0cnVjdHMoeyB4LCB5IH06IFZlY3RvcikgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18xIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18xIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo2CiAgICAvLyBleHBvcnQgY2xhc3MgTmF0aXZlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDAKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHN3YXAKICAgIGludGNfMCAvLyA4CiAgICBkdXAKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1NAogICAgLy8gc3RydWN0cyh7IHgsIHkgfTogVmVjdG9yKSB7CiAgICBjYWxsc3ViIHN0cnVjdHMKICAgIGJ5dGVjXzMgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2FyYzRJbnRlcm9wX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQyCiAgICAvLyBhcmM0SW50ZXJvcCgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMSAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMSAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgYXJjNEludGVyb3AKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2RvVGhpbmdzX3JvdXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjExCiAgICAvLyBkb1RoaW5ncygpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMSAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMSAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgZG9UaGluZ3MKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2J1aWxkQXJyYXlfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NwogICAgLy8gYnVpbGRBcnJheSgpOiB1aW50NjRbXSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzEgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzEgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGJ1aWxkQXJyYXkKICAgIGJ5dGVjXzMgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2JhcmVfcm91dGluZ0A5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo2CiAgICAvLyBleHBvcnQgY2xhc3MgTmF0aXZlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMSAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMAoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDExOgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEyOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTMKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo2CiAgICAvLyBleHBvcnQgY2xhc3MgTmF0aXZlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzEgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYnVpbGRBcnJheSgpIC0+IGJ5dGVzOgpidWlsZEFycmF5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo4CiAgICAvLyByZXR1cm4gWzEsIDIsIDMsIDRdCiAgICBieXRlY18yIC8vIDB4MDAwMAogICAgYnl0ZWNfMCAvLyAweAogICAgY29uY2F0CiAgICBleHRyYWN0IDIgMAogICAgaW50Y18yIC8vIDEKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoaW50IDIgLy8gMgogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBjb25jYXQKICAgIHB1c2hpbnQgMyAvLyAzCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGNvbmNhdAogICAgaW50Y18zIC8vIDQKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgY29uY2F0CiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzAgLy8gOAogICAgLwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5ncygpIC0+IHZvaWQ6CmRvVGhpbmdzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxMQogICAgLy8gZG9UaGluZ3MoKSB7CiAgICBwcm90byAwIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTIKICAgIC8vIGxldCBhcnIgPSB0aGlzLmJ1aWxkQXJyYXkoKQogICAgY2FsbHN1YiBidWlsZEFycmF5CiAgICBkdXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTQKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDRdKQogICAgaW50Y18xIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzMgLy8gNAogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANgoKZG9UaGluZ3NfYW5kX2NvbnRkQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE0CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAyLCAzLCA0XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18xIC8vIDAKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzIgLy8gMQogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANgoKZG9UaGluZ3NfYW5kX2NvbnRkQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE0CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAyLCAzLCA0XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18yIC8vIDEKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDIgLy8gMgogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANgoKZG9UaGluZ3NfYW5kX2NvbnRkQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE0CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAyLCAzLCA0XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCAyIC8vIDIKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDMgLy8gMwogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANgoKZG9UaGluZ3NfYW5kX2NvbnRkQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE0CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAyLCAzLCA0XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCAzIC8vIDMKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzMgLy8gNAogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANgoKZG9UaGluZ3NfYm9vbF90cnVlQDU6CiAgICBpbnRjXzIgLy8gMQoKZG9UaGluZ3NfYm9vbF9tZXJnZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxNAogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNF0pCiAgICBhc3NlcnQgLy8gYXNzZXJ0IHRhcmdldCBpcyBtYXRjaCBmb3IgY29uZGl0aW9ucwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxNwogICAgLy8gYXJyID0gWy4uLmFyciwgVWludDY0KDUpXQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBieXRlY18yIC8vIDB4MDAwMAogICAgYnl0ZWNfMCAvLyAweAogICAgY29uY2F0CiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCA1IC8vIDUKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzAgLy8gOAogICAgLwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZXh0cmFjdCAyIDAKICAgIGNvbmNhdAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMCAvLyA4CiAgICAvCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxOQogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNCwgNV0pCiAgICBpbnRjXzEgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIHB1c2hpbnQgNSAvLyA1CiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUAxNAoKZG9UaGluZ3NfYW5kX2NvbnRkQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAyLCAzLCA0LCA1XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18xIC8vIDAKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzIgLy8gMQogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VAMTQKCmRvVGhpbmdzX2FuZF9jb250ZEA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxOQogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNCwgNV0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMiAvLyAxCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAyIC8vIDIKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDE0Cgpkb1RoaW5nc19hbmRfY29udGRAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAyLCAzLCA0LCA1XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCAyIC8vIDIKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDMgLy8gMwogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VAMTQKCmRvVGhpbmdzX2FuZF9jb250ZEAxMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDQsIDVdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDMgLy8gMwogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMyAvLyA0CiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUAxNAoKZG9UaGluZ3NfYW5kX2NvbnRkQDEyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxOQogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNCwgNV0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMyAvLyA0CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCA1IC8vIDUKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDE0Cgpkb1RoaW5nc19ib29sX3RydWVAMTM6CiAgICBpbnRjXzIgLy8gMQoKZG9UaGluZ3NfYm9vbF9tZXJnZUAxNToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDQsIDVdKQogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MjIKICAgIC8vIGNvbnN0IHRvcCA9IGFyclthcnIubGVuZ3RoIC0gMV0KICAgIGZyYW1lX2RpZyAwCiAgICBkdXAKICAgIGludGNfMSAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDEKICAgIC0KICAgIHN3YXAKICAgIGV4dHJhY3QgMiAwCiAgICBzd2FwCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoyMwogICAgLy8gYXNzZXJ0KHRvcCA9PT0gNSkKICAgIHB1c2hpbnQgNSAvLyA1CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjI2CiAgICAvLyBhcnIgPSBbMSwgMiwgMywgNF0KICAgIGJ5dGVjXzIgLy8gMHgwMDAwCiAgICBieXRlY18wIC8vIDB4CiAgICBjb25jYXQKICAgIGV4dHJhY3QgMiAwCiAgICBpbnRjXzIgLy8gMQogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hpbnQgMiAvLyAyCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGNvbmNhdAogICAgcHVzaGludCAzIC8vIDMKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgY29uY2F0CiAgICBpbnRjXzMgLy8gNAogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBjb25jYXQKICAgIGNvbmNhdAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMCAvLyA4CiAgICAvCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoyOAogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNF0pCiAgICBpbnRjXzEgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMyAvLyA0CiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUAyMQoKZG9UaGluZ3NfYW5kX2NvbnRkQDE2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoyOAogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNF0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMSAvLyAwCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18yIC8vIDEKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDIxCgpkb1RoaW5nc19hbmRfY29udGRAMTc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjI4CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAyLCAzLCA0XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18yIC8vIDEKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDIgLy8gMgogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VAMjEKCmRvVGhpbmdzX2FuZF9jb250ZEAxODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MjgKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDRdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDIgLy8gMgogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMyAvLyAzCiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUAyMQoKZG9UaGluZ3NfYW5kX2NvbnRkQDE5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoyOAogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNF0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgMyAvLyAzCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18zIC8vIDQKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDIxCgpkb1RoaW5nc19ib29sX3RydWVAMjA6CiAgICBpbnRjXzIgLy8gMQoKZG9UaGluZ3NfYm9vbF9tZXJnZUAyMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MjgKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDRdKQogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzEKICAgIC8vIGFyciA9IGFyci53aXRoKDEsIDEwKQogICAgcHVzaGludCAxMCAvLyAxMAogICAgaXRvYgogICAgZnJhbWVfZGlnIDAKICAgIGR1cAogICAgaW50Y18xIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzIgLy8gMQogICAgPgogICAgYXNzZXJ0IC8vIEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBwdXNoaW50IDEwIC8vIDEwCiAgICB1bmNvdmVyIDIKICAgIHJlcGxhY2UzCiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozMwogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMTAsIDMsIDRdKQogICAgaW50Y18xIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzMgLy8gNAogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VAMjgKCmRvVGhpbmdzX2FuZF9jb250ZEAyMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzMKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18xIC8vIDAKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzIgLy8gMQogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VAMjgKCmRvVGhpbmdzX2FuZF9jb250ZEAyNDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzMKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18yIC8vIDEKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDEwIC8vIDEwCiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUAyOAoKZG9UaGluZ3NfYW5kX2NvbnRkQDI1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozMwogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMTAsIDMsIDRdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDIgLy8gMgogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMyAvLyAzCiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUAyOAoKZG9UaGluZ3NfYW5kX2NvbnRkQDI2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozMwogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMTAsIDMsIDRdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDMgLy8gMwogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMyAvLyA0CiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUAyOAoKZG9UaGluZ3NfYm9vbF90cnVlQDI3OgogICAgaW50Y18yIC8vIDEKCmRvVGhpbmdzX2Jvb2xfbWVyZ2VAMjk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjMzCiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNF0pCiAgICBhc3NlcnQgLy8gYXNzZXJ0IHRhcmdldCBpcyBtYXRjaCBmb3IgY29uZGl0aW9ucwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozNwogICAgLy8gYXJyID0gYXJyLmNvbmNhdChhcnIsIDExLCB0MSkKICAgIGZyYW1lX2RpZyAwCiAgICBkdXAKICAgIGV4dHJhY3QgMiAwCiAgICBzd2FwCiAgICBleHRyYWN0IDIgMAogICAgY29uY2F0CiAgICBkdXAKICAgIGxlbgogICAgaW50Y18wIC8vIDgKICAgIC8KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDExIC8vIDExCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgY29uY2F0CiAgICBkdXAKICAgIGxlbgogICAgaW50Y18wIC8vIDgKICAgIC8KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGV4dHJhY3QgMiAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM2CiAgICAvLyBjb25zdCB0MTogW3VpbnQ2NCwgdWludDY0XSA9IFsxMiwgMTNdCiAgICBwdXNoaW50IDEyIC8vIDEyCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzcKICAgIC8vIGFyciA9IGFyci5jb25jYXQoYXJyLCAxMSwgdDEpCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzYKICAgIC8vIGNvbnN0IHQxOiBbdWludDY0LCB1aW50NjRdID0gWzEyLCAxM10KICAgIHB1c2hpbnQgMTMgLy8gMTMKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozNwogICAgLy8gYXJyID0gYXJyLmNvbmNhdChhcnIsIDExLCB0MSkKICAgIGNvbmNhdAogICAgY29uY2F0CiAgICBkdXAKICAgIGxlbgogICAgaW50Y18wIC8vIDgKICAgIC8KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgZnJhbWVfYnVyeSAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNCwgMSwgMTAsIDMsIDQsIDExLCAxMiwgMTNdKQogICAgaW50Y18xIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBwdXNoaW50IDExIC8vIDExCiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUA0MgoKZG9UaGluZ3NfYW5kX2NvbnRkQDMwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozOQogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMTAsIDMsIDQsIDEsIDEwLCAzLCA0LCAxMSwgMTIsIDEzXSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18xIC8vIDAKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzIgLy8gMQogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANDIKCmRvVGhpbmdzX2FuZF9jb250ZEAzMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0LCAxLCAxMCwgMywgNCwgMTEsIDEyLCAxM10pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMiAvLyAxCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAxMCAvLyAxMAogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANDIKCmRvVGhpbmdzX2FuZF9jb250ZEAzMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0LCAxLCAxMCwgMywgNCwgMTEsIDEyLCAxM10pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgMiAvLyAyCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAzIC8vIDMKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDQyCgpkb1RoaW5nc19hbmRfY29udGRAMzM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNCwgMSwgMTAsIDMsIDQsIDExLCAxMiwgMTNdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDMgLy8gMwogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMyAvLyA0CiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUA0MgoKZG9UaGluZ3NfYW5kX2NvbnRkQDM0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozOQogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMTAsIDMsIDQsIDEsIDEwLCAzLCA0LCAxMSwgMTIsIDEzXSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18zIC8vIDQKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzIgLy8gMQogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANDIKCmRvVGhpbmdzX2FuZF9jb250ZEAzNToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0LCAxLCAxMCwgMywgNCwgMTEsIDEyLCAxM10pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgNSAvLyA1CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAxMCAvLyAxMAogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANDIKCmRvVGhpbmdzX2FuZF9jb250ZEAzNjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0LCAxLCAxMCwgMywgNCwgMTEsIDEyLCAxM10pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgNiAvLyA2CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAzIC8vIDMKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDQyCgpkb1RoaW5nc19hbmRfY29udGRAMzc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNCwgMSwgMTAsIDMsIDQsIDExLCAxMiwgMTNdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDcgLy8gNwogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMyAvLyA0CiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUA0MgoKZG9UaGluZ3NfYW5kX2NvbnRkQDM4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozOQogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMTAsIDMsIDQsIDEsIDEwLCAzLCA0LCAxMSwgMTIsIDEzXSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18wIC8vIDgKICAgIGR1cAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAxMSAvLyAxMQogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANDIKCmRvVGhpbmdzX2FuZF9jb250ZEAzOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0LCAxLCAxMCwgMywgNCwgMTEsIDEyLCAxM10pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgOSAvLyA5CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAxMiAvLyAxMgogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANDIKCmRvVGhpbmdzX2FuZF9jb250ZEA0MDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0LCAxLCAxMCwgMywgNCwgMTEsIDEyLCAxM10pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgMTAgLy8gMTAKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDEzIC8vIDEzCiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUA0MgoKZG9UaGluZ3NfYm9vbF90cnVlQDQxOgogICAgaW50Y18yIC8vIDEKCmRvVGhpbmdzX2Jvb2xfbWVyZ2VANDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNCwgMSwgMTAsIDMsIDQsIDExLCAxMiwgMTNdKQogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIHJldHN1YgoKZG9UaGluZ3NfYm9vbF9mYWxzZUA0MjoKICAgIGludGNfMSAvLyAwCiAgICBiIGRvVGhpbmdzX2Jvb2xfbWVyZ2VANDMKCmRvVGhpbmdzX2Jvb2xfZmFsc2VAMjg6CiAgICBpbnRjXzEgLy8gMAogICAgYiBkb1RoaW5nc19ib29sX21lcmdlQDI5Cgpkb1RoaW5nc19ib29sX2ZhbHNlQDIxOgogICAgaW50Y18xIC8vIDAKICAgIGIgZG9UaGluZ3NfYm9vbF9tZXJnZUAyMgoKZG9UaGluZ3NfYm9vbF9mYWxzZUAxNDoKICAgIGludGNfMSAvLyAwCiAgICBiIGRvVGhpbmdzX2Jvb2xfbWVyZ2VAMTUKCmRvVGhpbmdzX2Jvb2xfZmFsc2VANjoKICAgIGludGNfMSAvLyAwCiAgICBiIGRvVGhpbmdzX2Jvb2xfbWVyZ2VANwoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYXJjNEludGVyb3AoKSAtPiB2b2lkOgphcmM0SW50ZXJvcDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDIKICAgIC8vIGFyYzRJbnRlcm9wKCkgewogICAgcHJvdG8gMCAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQ1CiAgICAvLyBjb25zdCBkYTEgPSBuZXcgRHluYW1pY0FycmF5KHUxLCB1MSkKICAgIGJ5dGVjXzAgLy8gMHgKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDMKICAgIC8vIGNvbnN0IHUxID0gbmV3IFVpbnROMzIoMTIzKQogICAgYnl0ZWNfMSAvLyAweDAwMDAwMDdiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQ1CiAgICAvLyBjb25zdCBkYTEgPSBuZXcgRHluYW1pY0FycmF5KHUxLCB1MSkKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0MwogICAgLy8gY29uc3QgdTEgPSBuZXcgVWludE4zMigxMjMpCiAgICBieXRlY18xIC8vIDB4MDAwMDAwN2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDUKICAgIC8vIGNvbnN0IGRhMSA9IG5ldyBEeW5hbWljQXJyYXkodTEsIHUxKQogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgMHgwMDAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDYKICAgIC8vIGNvbnN0IHNhMSA9IG5ldyBTdGF0aWNBcnJheSh1MSwgdTEpCiAgICBieXRlY18wIC8vIDB4CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQzCiAgICAvLyBjb25zdCB1MSA9IG5ldyBVaW50TjMyKDEyMykKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDA3YgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0NgogICAgLy8gY29uc3Qgc2ExID0gbmV3IFN0YXRpY0FycmF5KHUxLCB1MSkKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0MwogICAgLy8gY29uc3QgdTEgPSBuZXcgVWludE4zMigxMjMpCiAgICBieXRlY18xIC8vIDB4MDAwMDAwN2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDYKICAgIC8vIGNvbnN0IHNhMSA9IG5ldyBTdGF0aWNBcnJheSh1MSwgdTEpCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0NwogICAgLy8gbGV0IGExID0gW3UxLCB1MV0KICAgIGJ5dGVjXzIgLy8gMHgwMDAwCiAgICBieXRlY18wIC8vIDB4CiAgICBjb25jYXQKICAgIGV4dHJhY3QgMiAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQzCiAgICAvLyBjb25zdCB1MSA9IG5ldyBVaW50TjMyKDEyMykKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDA3YgogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQ3CiAgICAvLyBsZXQgYTEgPSBbdTEsIHUxXQogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQzCiAgICAvLyBjb25zdCB1MSA9IG5ldyBVaW50TjMyKDEyMykKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDA3YgogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQ3CiAgICAvLyBsZXQgYTEgPSBbdTEsIHUxXQogICAgY29uY2F0CiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gNAogICAgLwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0OQogICAgLy8gYTEgPSBbLi4uYTEsIC4uLmRhMSwgLi4uc2ExXQogICAgZXh0cmFjdCAyIDAKICAgIHN3YXAKICAgIGV4dHJhY3QgMiAwCiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gNAogICAgLwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZXh0cmFjdCAyIDAKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA0CiAgICAvCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICBpbnRjXzEgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIHB1c2hpbnQgNiAvLyA2CiAgICA9PQogICAgYnogYXJjNEludGVyb3BfYm9vbF9mYWxzZUA4CgphcmM0SW50ZXJvcF9hbmRfY29udGRAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMSAvLyAwCiAgICBpbnRjXzMgLy8gNAogICAgKgogICAgaW50Y18zIC8vIDQKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0MwogICAgLy8gY29uc3QgdTEgPSBuZXcgVWludE4zMigxMjMpCiAgICBieXRlY18xIC8vIDB4MDAwMDAwN2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICA9PQogICAgYnogYXJjNEludGVyb3BfYm9vbF9mYWxzZUA4CgphcmM0SW50ZXJvcF9hbmRfY29udGRAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMiAvLyAxCiAgICBpbnRjXzMgLy8gNAogICAgKgogICAgaW50Y18zIC8vIDQKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0MwogICAgLy8gY29uc3QgdTEgPSBuZXcgVWludE4zMigxMjMpCiAgICBieXRlY18xIC8vIDB4MDAwMDAwN2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICA9PQogICAgYnogYXJjNEludGVyb3BfYm9vbF9mYWxzZUA4CgphcmM0SW50ZXJvcF9hbmRfY29udGRAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgMiAvLyAyCiAgICBpbnRjXzMgLy8gNAogICAgKgogICAgaW50Y18zIC8vIDQKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0MwogICAgLy8gY29uc3QgdTEgPSBuZXcgVWludE4zMigxMjMpCiAgICBieXRlY18xIC8vIDB4MDAwMDAwN2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICA9PQogICAgYnogYXJjNEludGVyb3BfYm9vbF9mYWxzZUA4CgphcmM0SW50ZXJvcF9hbmRfY29udGRANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgMyAvLyAzCiAgICBpbnRjXzMgLy8gNAogICAgKgogICAgaW50Y18zIC8vIDQKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0MwogICAgLy8gY29uc3QgdTEgPSBuZXcgVWludE4zMigxMjMpCiAgICBieXRlY18xIC8vIDB4MDAwMDAwN2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICA9PQogICAgYnogYXJjNEludGVyb3BfYm9vbF9mYWxzZUA4CgphcmM0SW50ZXJvcF9hbmRfY29udGRANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMyAvLyA0CiAgICBkdXAKICAgICoKICAgIGludGNfMyAvLyA0CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDMKICAgIC8vIGNvbnN0IHUxID0gbmV3IFVpbnROMzIoMTIzKQogICAgYnl0ZWNfMSAvLyAweDAwMDAwMDdiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjUxCiAgICAvLyBhc3NlcnRNYXRjaChhMSwgW3UxLCB1MSwgdTEsIHUxLCB1MSwgdTFdKQogICAgPT0KICAgIGJ6IGFyYzRJbnRlcm9wX2Jvb2xfZmFsc2VAOAoKYXJjNEludGVyb3BfYW5kX2NvbnRkQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjUxCiAgICAvLyBhc3NlcnRNYXRjaChhMSwgW3UxLCB1MSwgdTEsIHUxLCB1MSwgdTFdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDUgLy8gNQogICAgaW50Y18zIC8vIDQKICAgICoKICAgIGludGNfMyAvLyA0CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDMKICAgIC8vIGNvbnN0IHUxID0gbmV3IFVpbnROMzIoMTIzKQogICAgYnl0ZWNfMSAvLyAweDAwMDAwMDdiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjUxCiAgICAvLyBhc3NlcnRNYXRjaChhMSwgW3UxLCB1MSwgdTEsIHUxLCB1MSwgdTFdKQogICAgPT0KICAgIGJ6IGFyYzRJbnRlcm9wX2Jvb2xfZmFsc2VAOAoKYXJjNEludGVyb3BfYm9vbF90cnVlQDc6CiAgICBpbnRjXzIgLy8gMQoKYXJjNEludGVyb3BfYm9vbF9tZXJnZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0TWF0Y2goYTEsIFt1MSwgdTEsIHUxLCB1MSwgdTEsIHUxXSkKICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICByZXRzdWIKCmFyYzRJbnRlcm9wX2Jvb2xfZmFsc2VAODoKICAgIGludGNfMSAvLyAwCiAgICBiIGFyYzRJbnRlcm9wX2Jvb2xfbWVyZ2VAOQoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uc3RydWN0cyhwLng6IHVpbnQ2NCwgcC55OiB1aW50NjQpIC0+IGJ5dGVzOgpzdHJ1Y3RzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1NAogICAgLy8gc3RydWN0cyh7IHgsIHkgfTogVmVjdG9yKSB7CiAgICBwcm90byAyIDEKICAgIGZyYW1lX2RpZyAtMgogICAgZHVwCiAgICBmcmFtZV9kaWcgLTEKICAgIGR1cAogICAgY292ZXIgMgogICAgY292ZXIgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1NwogICAgLy8gbXlWZWN0b3JzID0gW3sgeCwgeSB9XQogICAgYnl0ZWNfMiAvLyAweDAwMDAKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGNvbmNhdAogICAgZXh0cmFjdCAyIDAKICAgIGNvdmVyIDIKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgaXRvYgogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGNvbmNhdAogICAgZHVwCiAgICBsZW4KICAgIHB1c2hpbnQgMTYgLy8gMTYKICAgIC8KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1OQogICAgLy8gYXNzZXJ0TWF0Y2gobXlWZWN0b3JzLCBbeyB4LCB5IH1dKQogICAgaW50Y18xIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzIgLy8gMQogICAgPT0KICAgIGJ6IHN0cnVjdHNfYm9vbF9mYWxzZUA0CgpzdHJ1Y3RzX2FuZF9jb250ZEAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1OQogICAgLy8gYXNzZXJ0TWF0Y2gobXlWZWN0b3JzLCBbeyB4LCB5IH1dKQogICAgZnJhbWVfZGlnIDIKICAgIGV4dHJhY3QgMiAwCiAgICBpbnRjXzEgLy8gMAogICAgcHVzaGludCAxNiAvLyAxNgogICAgKgogICAgcHVzaGludCAxNiAvLyAxNgogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBpbnRjXzEgLy8gMAogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgZnJhbWVfZGlnIDAKICAgID09CiAgICBieiBzdHJ1Y3RzX2Jvb2xfZmFsc2VANAoKc3RydWN0c19hbmRfY29udGRAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTkKICAgIC8vIGFzc2VydE1hdGNoKG15VmVjdG9ycywgW3sgeCwgeSB9XSkKICAgIGZyYW1lX2RpZyAyCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18xIC8vIDAKICAgIHB1c2hpbnQgMTYgLy8gMTYKICAgICoKICAgIHB1c2hpbnQgMTYgLy8gMTYKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgaW50Y18wIC8vIDgKICAgIGR1cAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBmcmFtZV9kaWcgMQogICAgPT0KICAgIGJ6IHN0cnVjdHNfYm9vbF9mYWxzZUA0CgpzdHJ1Y3RzX2Jvb2xfdHJ1ZUAzOgogICAgaW50Y18yIC8vIDEKCnN0cnVjdHNfYm9vbF9tZXJnZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1OQogICAgLy8gYXNzZXJ0TWF0Y2gobXlWZWN0b3JzLCBbeyB4LCB5IH1dKQogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NjAKICAgIC8vIHJldHVybiBteVZlY3RvcnMKICAgIGZyYW1lX2RpZyAyCiAgICBmcmFtZV9idXJ5IDAKICAgIHJldHN1YgoKc3RydWN0c19ib29sX2ZhbHNlQDQ6CiAgICBpbnRjXzEgLy8gMAogICAgYiBzdHJ1Y3RzX2Jvb2xfbWVyZ2VANQoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgOCAwIDEgNAogICAgYnl0ZWNibG9jayAweCAweDAwMDAwMDdiIDB4MDAwMCAweDE1MWY3Yzc1CgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjYKICAgIC8vIGV4cG9ydCBjbGFzcyBOYXRpdmVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMSAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAOQoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo2CiAgICAvLyBleHBvcnQgY2xhc3MgTmF0aXZlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDBmNGMxMWNhIC8vIG1ldGhvZCAiYnVpbGRBcnJheSgpdWludDY0W10iCiAgICBwdXNoYnl0ZXMgMHgxM2E1ODhjOCAvLyBtZXRob2QgImRvVGhpbmdzKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4Nzg3YjUwYjIgLy8gbWV0aG9kICJhcmM0SW50ZXJvcCgpdm9pZCIKICAgIHB1c2hieXRlcyAweGViODdhMDY0IC8vIG1ldGhvZCAic3RydWN0cygodWludDY0LHVpbnQ2NCkpKHVpbnQ2NCx1aW50NjQpW10iCiAgICB1bmNvdmVyIDQKICAgIG1hdGNoIG1haW5fYnVpbGRBcnJheV9yb3V0ZUAzIG1haW5fZG9UaGluZ3Nfcm91dGVANCBtYWluX2FyYzRJbnRlcm9wX3JvdXRlQDUgbWFpbl9zdHJ1Y3RzX3JvdXRlQDYKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA3OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDg6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjYKICAgIC8vIGV4cG9ydCBjbGFzcyBOYXRpdmVBcnJheXNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18xIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0OgogICAgcmV0dXJuCgptYWluX3N0cnVjdHNfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTQKICAgIC8vIHN0cnVjdHMoeyB4LCB5IH06IFZlY3RvcikgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18xIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18xIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo2CiAgICAvLyBleHBvcnQgY2xhc3MgTmF0aXZlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDAKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHN3YXAKICAgIGludGNfMCAvLyA4CiAgICBkdXAKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1NAogICAgLy8gc3RydWN0cyh7IHgsIHkgfTogVmVjdG9yKSB7CiAgICBjYWxsc3ViIHN0cnVjdHMKICAgIGJ5dGVjXzMgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2FyYzRJbnRlcm9wX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQyCiAgICAvLyBhcmM0SW50ZXJvcCgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMSAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMSAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgYXJjNEludGVyb3AKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2RvVGhpbmdzX3JvdXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjExCiAgICAvLyBkb1RoaW5ncygpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMSAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMSAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgZG9UaGluZ3MKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2J1aWxkQXJyYXlfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NwogICAgLy8gYnVpbGRBcnJheSgpOiB1aW50NjRbXSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzEgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzEgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGJ1aWxkQXJyYXkKICAgIGJ5dGVjXzMgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2JhcmVfcm91dGluZ0A5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo2CiAgICAvLyBleHBvcnQgY2xhc3MgTmF0aXZlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMSAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMAoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDExOgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEyOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTMKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo2CiAgICAvLyBleHBvcnQgY2xhc3MgTmF0aXZlQXJyYXlzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzEgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6Ok5hdGl2ZUFycmF5c0FsZ28uYnVpbGRBcnJheSgpIC0+IGJ5dGVzOgpidWlsZEFycmF5OgoKYnVpbGRBcnJheV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo4CiAgICAvLyByZXR1cm4gWzEsIDIsIDMsIDRdCiAgICBieXRlY18yIC8vIDB4MDAwMAogICAgYnl0ZWNfMCAvLyAweAogICAgY29uY2F0CiAgICBleHRyYWN0IDIgMAogICAgaW50Y18yIC8vIDEKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoaW50IDIgLy8gMgogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBjb25jYXQKICAgIHB1c2hpbnQgMyAvLyAzCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGNvbmNhdAogICAgaW50Y18zIC8vIDQKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgY29uY2F0CiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzAgLy8gOAogICAgLwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5kb1RoaW5ncygpIC0+IHZvaWQ6CmRvVGhpbmdzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxMQogICAgLy8gZG9UaGluZ3MoKSB7CiAgICBwcm90byAwIDAKCmRvVGhpbmdzX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjEyCiAgICAvLyBsZXQgYXJyID0gdGhpcy5idWlsZEFycmF5KCkKICAgIGNhbGxzdWIgYnVpbGRBcnJheQogICAgZHVwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE0CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAyLCAzLCA0XSkKICAgIGludGNfMSAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18zIC8vIDQKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDYKCmRvVGhpbmdzX2FuZF9jb250ZEAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxNAogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNF0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMSAvLyAwCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18yIC8vIDEKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDYKCmRvVGhpbmdzX2FuZF9jb250ZEAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxNAogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNF0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMiAvLyAxCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAyIC8vIDIKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDYKCmRvVGhpbmdzX2FuZF9jb250ZEAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxNAogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNF0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgMiAvLyAyCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAzIC8vIDMKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDYKCmRvVGhpbmdzX2FuZF9jb250ZEA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxNAogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNF0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgMyAvLyAzCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18zIC8vIDQKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDYKCmRvVGhpbmdzX2Jvb2xfdHJ1ZUA1OgogICAgaW50Y18yIC8vIDEKCmRvVGhpbmdzX2Jvb2xfbWVyZ2VANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTQKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDRdKQogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTcKICAgIC8vIGFyciA9IFsuLi5hcnIsIFVpbnQ2NCg1KV0KICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgYnl0ZWNfMiAvLyAweDAwMDAKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGNvbmNhdAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgNSAvLyA1CiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgY29uY2F0CiAgICBkdXAKICAgIGxlbgogICAgaW50Y18wIC8vIDgKICAgIC8KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGV4dHJhY3QgMiAwCiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzAgLy8gOAogICAgLwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDQsIDVdKQogICAgaW50Y18xIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBwdXNoaW50IDUgLy8gNQogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VAMTQKCmRvVGhpbmdzX2FuZF9jb250ZEA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxOQogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNCwgNV0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMSAvLyAwCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18yIC8vIDEKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDE0Cgpkb1RoaW5nc19hbmRfY29udGRAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDQsIDVdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBpbnRjXzIgLy8gMQogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMiAvLyAyCiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUAxNAoKZG9UaGluZ3NfYW5kX2NvbnRkQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoxOQogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNCwgNV0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgMiAvLyAyCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAzIC8vIDMKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDE0Cgpkb1RoaW5nc19hbmRfY29udGRAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAyLCAzLCA0LCA1XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCAzIC8vIDMKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzMgLy8gNAogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VAMTQKCmRvVGhpbmdzX2FuZF9jb250ZEAxMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MTkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDQsIDVdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBpbnRjXzMgLy8gNAogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgNSAvLyA1CiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUAxNAoKZG9UaGluZ3NfYm9vbF90cnVlQDEzOgogICAgaW50Y18yIC8vIDEKCmRvVGhpbmdzX2Jvb2xfbWVyZ2VAMTU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjE5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAyLCAzLCA0LCA1XSkKICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjIyCiAgICAvLyBjb25zdCB0b3AgPSBhcnJbYXJyLmxlbmd0aCAtIDFdCiAgICBmcmFtZV9kaWcgMAogICAgZHVwCiAgICBpbnRjXzEgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAxCiAgICAtCiAgICBzd2FwCiAgICBleHRyYWN0IDIgMAogICAgc3dhcAogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MjMKICAgIC8vIGFzc2VydCh0b3AgPT09IDUpCiAgICBwdXNoaW50IDUgLy8gNQogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoyNgogICAgLy8gYXJyID0gWzEsIDIsIDMsIDRdCiAgICBieXRlY18yIC8vIDB4MDAwMAogICAgYnl0ZWNfMCAvLyAweAogICAgY29uY2F0CiAgICBleHRyYWN0IDIgMAogICAgaW50Y18yIC8vIDEKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoaW50IDIgLy8gMgogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBjb25jYXQKICAgIHB1c2hpbnQgMyAvLyAzCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGNvbmNhdAogICAgaW50Y18zIC8vIDQKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgY29uY2F0CiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzAgLy8gOAogICAgLwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MjgKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDRdKQogICAgaW50Y18xIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzMgLy8gNAogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VAMjEKCmRvVGhpbmdzX2FuZF9jb250ZEAxNjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MjgKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDRdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBpbnRjXzEgLy8gMAogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMiAvLyAxCiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUAyMQoKZG9UaGluZ3NfYW5kX2NvbnRkQDE3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czoyOAogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMiwgMywgNF0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMiAvLyAxCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAyIC8vIDIKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDIxCgpkb1RoaW5nc19hbmRfY29udGRAMTg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjI4CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAyLCAzLCA0XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCAyIC8vIDIKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDMgLy8gMwogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VAMjEKCmRvVGhpbmdzX2FuZF9jb250ZEAxOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MjgKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDIsIDMsIDRdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDMgLy8gMwogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMyAvLyA0CiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUAyMQoKZG9UaGluZ3NfYm9vbF90cnVlQDIwOgogICAgaW50Y18yIC8vIDEKCmRvVGhpbmdzX2Jvb2xfbWVyZ2VAMjI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjI4CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAyLCAzLCA0XSkKICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjMxCiAgICAvLyBhcnIgPSBhcnIud2l0aCgxLCAxMCkKICAgIHB1c2hpbnQgMTAgLy8gMTAKICAgIGl0b2IKICAgIGZyYW1lX2RpZyAwCiAgICBkdXAKICAgIGludGNfMSAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDEKICAgID4KICAgIGFzc2VydCAvLyBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgcHVzaGludCAxMCAvLyAxMAogICAgdW5jb3ZlciAyCiAgICByZXBsYWNlMwogICAgZHVwCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzMKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0XSkKICAgIGludGNfMSAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18zIC8vIDQKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDI4Cgpkb1RoaW5nc19hbmRfY29udGRAMjM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjMzCiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNF0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMSAvLyAwCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18yIC8vIDEKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDI4Cgpkb1RoaW5nc19hbmRfY29udGRAMjQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjMzCiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNF0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMiAvLyAxCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAxMCAvLyAxMAogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VAMjgKCmRvVGhpbmdzX2FuZF9jb250ZEAyNToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzMKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCAyIC8vIDIKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBwdXNoaW50IDMgLy8gMwogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VAMjgKCmRvVGhpbmdzX2FuZF9jb250ZEAyNjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzMKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0XSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCAzIC8vIDMKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzMgLy8gNAogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VAMjgKCmRvVGhpbmdzX2Jvb2xfdHJ1ZUAyNzoKICAgIGludGNfMiAvLyAxCgpkb1RoaW5nc19ib29sX21lcmdlQDI5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozMwogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMTAsIDMsIDRdKQogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzcKICAgIC8vIGFyciA9IGFyci5jb25jYXQoYXJyLCAxMSwgdDEpCiAgICBmcmFtZV9kaWcgMAogICAgZHVwCiAgICBleHRyYWN0IDIgMAogICAgc3dhcAogICAgZXh0cmFjdCAyIDAKICAgIGNvbmNhdAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMCAvLyA4CiAgICAvCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCAxMSAvLyAxMQogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGNvbmNhdAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMCAvLyA4CiAgICAvCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozNgogICAgLy8gY29uc3QgdDE6IFt1aW50NjQsIHVpbnQ2NF0gPSBbMTIsIDEzXQogICAgcHVzaGludCAxMiAvLyAxMgogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM3CiAgICAvLyBhcnIgPSBhcnIuY29uY2F0KGFyciwgMTEsIHQxKQogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM2CiAgICAvLyBjb25zdCB0MTogW3VpbnQ2NCwgdWludDY0XSA9IFsxMiwgMTNdCiAgICBwdXNoaW50IDEzIC8vIDEzCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzcKICAgIC8vIGFyciA9IGFyci5jb25jYXQoYXJyLCAxMSwgdDEpCiAgICBjb25jYXQKICAgIGNvbmNhdAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMCAvLyA4CiAgICAvCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozOQogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMTAsIDMsIDQsIDEsIDEwLCAzLCA0LCAxMSwgMTIsIDEzXSkKICAgIGludGNfMSAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgcHVzaGludCAxMSAvLyAxMQogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANDIKCmRvVGhpbmdzX2FuZF9jb250ZEAzMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0LCAxLCAxMCwgMywgNCwgMTEsIDEyLCAxM10pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMSAvLyAwCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18yIC8vIDEKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDQyCgpkb1RoaW5nc19hbmRfY29udGRAMzE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNCwgMSwgMTAsIDMsIDQsIDExLCAxMiwgMTNdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBpbnRjXzIgLy8gMQogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMTAgLy8gMTAKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDQyCgpkb1RoaW5nc19hbmRfY29udGRAMzI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNCwgMSwgMTAsIDMsIDQsIDExLCAxMiwgMTNdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDIgLy8gMgogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMyAvLyAzCiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUA0MgoKZG9UaGluZ3NfYW5kX2NvbnRkQDMzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozOQogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMTAsIDMsIDQsIDEsIDEwLCAzLCA0LCAxMSwgMTIsIDEzXSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCAzIC8vIDMKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzMgLy8gNAogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANDIKCmRvVGhpbmdzX2FuZF9jb250ZEAzNDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0LCAxLCAxMCwgMywgNCwgMTEsIDEyLCAxM10pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMyAvLyA0CiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgaW50Y18yIC8vIDEKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDQyCgpkb1RoaW5nc19hbmRfY29udGRAMzU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNCwgMSwgMTAsIDMsIDQsIDExLCAxMiwgMTNdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDUgLy8gNQogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMTAgLy8gMTAKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDQyCgpkb1RoaW5nc19hbmRfY29udGRAMzY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNCwgMSwgMTAsIDMsIDQsIDExLCAxMiwgMTNdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDYgLy8gNgogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMyAvLyAzCiAgICA9PQogICAgYnogZG9UaGluZ3NfYm9vbF9mYWxzZUA0MgoKZG9UaGluZ3NfYW5kX2NvbnRkQDM3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozOQogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMTAsIDMsIDQsIDEsIDEwLCAzLCA0LCAxMSwgMTIsIDEzXSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCA3IC8vIDcKICAgIGludGNfMCAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBpbnRjXzMgLy8gNAogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANDIKCmRvVGhpbmdzX2FuZF9jb250ZEAzODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6MzkKICAgIC8vIGFzc2VydE1hdGNoKGFyciwgWzEsIDEwLCAzLCA0LCAxLCAxMCwgMywgNCwgMTEsIDEyLCAxM10pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMCAvLyA4CiAgICBkdXAKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMTEgLy8gMTEKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDQyCgpkb1RoaW5nc19hbmRfY29udGRAMzk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNCwgMSwgMTAsIDMsIDQsIDExLCAxMiwgMTNdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDkgLy8gOQogICAgaW50Y18wIC8vIDgKICAgICoKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHB1c2hpbnQgMTIgLy8gMTIKICAgID09CiAgICBieiBkb1RoaW5nc19ib29sX2ZhbHNlQDQyCgpkb1RoaW5nc19hbmRfY29udGRANDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnRNYXRjaChhcnIsIFsxLCAxMCwgMywgNCwgMSwgMTAsIDMsIDQsIDExLCAxMiwgMTNdKQogICAgZnJhbWVfZGlnIDAKICAgIGV4dHJhY3QgMiAwCiAgICBwdXNoaW50IDEwIC8vIDEwCiAgICBpbnRjXzAgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgcHVzaGludCAxMyAvLyAxMwogICAgPT0KICAgIGJ6IGRvVGhpbmdzX2Jvb2xfZmFsc2VANDIKCmRvVGhpbmdzX2Jvb2xfdHJ1ZUA0MToKICAgIGludGNfMiAvLyAxCgpkb1RoaW5nc19ib29sX21lcmdlQDQzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czozOQogICAgLy8gYXNzZXJ0TWF0Y2goYXJyLCBbMSwgMTAsIDMsIDQsIDEsIDEwLCAzLCA0LCAxMSwgMTIsIDEzXSkKICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICByZXRzdWIKCmRvVGhpbmdzX2Jvb2xfZmFsc2VANDI6CiAgICBpbnRjXzEgLy8gMAogICAgYiBkb1RoaW5nc19ib29sX21lcmdlQDQzCgpkb1RoaW5nc19ib29sX2ZhbHNlQDI4OgogICAgaW50Y18xIC8vIDAKICAgIGIgZG9UaGluZ3NfYm9vbF9tZXJnZUAyOQoKZG9UaGluZ3NfYm9vbF9mYWxzZUAyMToKICAgIGludGNfMSAvLyAwCiAgICBiIGRvVGhpbmdzX2Jvb2xfbWVyZ2VAMjIKCmRvVGhpbmdzX2Jvb2xfZmFsc2VAMTQ6CiAgICBpbnRjXzEgLy8gMAogICAgYiBkb1RoaW5nc19ib29sX21lcmdlQDE1Cgpkb1RoaW5nc19ib29sX2ZhbHNlQDY6CiAgICBpbnRjXzEgLy8gMAogICAgYiBkb1RoaW5nc19ib29sX21lcmdlQDcKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLmFyYzRJbnRlcm9wKCkgLT4gdm9pZDoKYXJjNEludGVyb3A6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQyCiAgICAvLyBhcmM0SW50ZXJvcCgpIHsKICAgIHByb3RvIDAgMAoKYXJjNEludGVyb3BfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDUKICAgIC8vIGNvbnN0IGRhMSA9IG5ldyBEeW5hbWljQXJyYXkodTEsIHUxKQogICAgYnl0ZWNfMCAvLyAweAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0MwogICAgLy8gY29uc3QgdTEgPSBuZXcgVWludE4zMigxMjMpCiAgICBieXRlY18xIC8vIDB4MDAwMDAwN2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDUKICAgIC8vIGNvbnN0IGRhMSA9IG5ldyBEeW5hbWljQXJyYXkodTEsIHUxKQogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQzCiAgICAvLyBjb25zdCB1MSA9IG5ldyBVaW50TjMyKDEyMykKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDA3YgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0NQogICAgLy8gY29uc3QgZGExID0gbmV3IER5bmFtaWNBcnJheSh1MSwgdTEpCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDAwMDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0NgogICAgLy8gY29uc3Qgc2ExID0gbmV3IFN0YXRpY0FycmF5KHUxLCB1MSkKICAgIGJ5dGVjXzAgLy8gMHgKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDMKICAgIC8vIGNvbnN0IHUxID0gbmV3IFVpbnROMzIoMTIzKQogICAgYnl0ZWNfMSAvLyAweDAwMDAwMDdiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQ2CiAgICAvLyBjb25zdCBzYTEgPSBuZXcgU3RhdGljQXJyYXkodTEsIHUxKQogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQzCiAgICAvLyBjb25zdCB1MSA9IG5ldyBVaW50TjMyKDEyMykKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDA3YgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0NgogICAgLy8gY29uc3Qgc2ExID0gbmV3IFN0YXRpY0FycmF5KHUxLCB1MSkKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQ3CiAgICAvLyBsZXQgYTEgPSBbdTEsIHUxXQogICAgYnl0ZWNfMiAvLyAweDAwMDAKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGNvbmNhdAogICAgZXh0cmFjdCAyIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDMKICAgIC8vIGNvbnN0IHUxID0gbmV3IFVpbnROMzIoMTIzKQogICAgYnl0ZWNfMCAvLyAweAogICAgYnl0ZWNfMSAvLyAweDAwMDAwMDdiCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDcKICAgIC8vIGxldCBhMSA9IFt1MSwgdTFdCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDMKICAgIC8vIGNvbnN0IHUxID0gbmV3IFVpbnROMzIoMTIzKQogICAgYnl0ZWNfMCAvLyAweAogICAgYnl0ZWNfMSAvLyAweDAwMDAwMDdiCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NDcKICAgIC8vIGxldCBhMSA9IFt1MSwgdTFdCiAgICBjb25jYXQKICAgIGNvbmNhdAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA0CiAgICAvCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQ5CiAgICAvLyBhMSA9IFsuLi5hMSwgLi4uZGExLCAuLi5zYTFdCiAgICBleHRyYWN0IDIgMAogICAgc3dhcAogICAgZXh0cmFjdCAyIDAKICAgIGNvbmNhdAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA0CiAgICAvCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBleHRyYWN0IDIgMAogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDQKICAgIC8KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0TWF0Y2goYTEsIFt1MSwgdTEsIHUxLCB1MSwgdTEsIHUxXSkKICAgIGludGNfMSAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgcHVzaGludCA2IC8vIDYKICAgID09CiAgICBieiBhcmM0SW50ZXJvcF9ib29sX2ZhbHNlQDgKCmFyYzRJbnRlcm9wX2FuZF9jb250ZEAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0TWF0Y2goYTEsIFt1MSwgdTEsIHUxLCB1MSwgdTEsIHUxXSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18xIC8vIDAKICAgIGludGNfMyAvLyA0CiAgICAqCiAgICBpbnRjXzMgLy8gNAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQzCiAgICAvLyBjb25zdCB1MSA9IG5ldyBVaW50TjMyKDEyMykKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDA3YgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0TWF0Y2goYTEsIFt1MSwgdTEsIHUxLCB1MSwgdTEsIHUxXSkKICAgID09CiAgICBieiBhcmM0SW50ZXJvcF9ib29sX2ZhbHNlQDgKCmFyYzRJbnRlcm9wX2FuZF9jb250ZEAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0TWF0Y2goYTEsIFt1MSwgdTEsIHUxLCB1MSwgdTEsIHUxXSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18yIC8vIDEKICAgIGludGNfMyAvLyA0CiAgICAqCiAgICBpbnRjXzMgLy8gNAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQzCiAgICAvLyBjb25zdCB1MSA9IG5ldyBVaW50TjMyKDEyMykKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDA3YgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0TWF0Y2goYTEsIFt1MSwgdTEsIHUxLCB1MSwgdTEsIHUxXSkKICAgID09CiAgICBieiBhcmM0SW50ZXJvcF9ib29sX2ZhbHNlQDgKCmFyYzRJbnRlcm9wX2FuZF9jb250ZEAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0TWF0Y2goYTEsIFt1MSwgdTEsIHUxLCB1MSwgdTEsIHUxXSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCAyIC8vIDIKICAgIGludGNfMyAvLyA0CiAgICAqCiAgICBpbnRjXzMgLy8gNAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQzCiAgICAvLyBjb25zdCB1MSA9IG5ldyBVaW50TjMyKDEyMykKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDA3YgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0TWF0Y2goYTEsIFt1MSwgdTEsIHUxLCB1MSwgdTEsIHUxXSkKICAgID09CiAgICBieiBhcmM0SW50ZXJvcF9ib29sX2ZhbHNlQDgKCmFyYzRJbnRlcm9wX2FuZF9jb250ZEA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0TWF0Y2goYTEsIFt1MSwgdTEsIHUxLCB1MSwgdTEsIHUxXSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgcHVzaGludCAzIC8vIDMKICAgIGludGNfMyAvLyA0CiAgICAqCiAgICBpbnRjXzMgLy8gNAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjQzCiAgICAvLyBjb25zdCB1MSA9IG5ldyBVaW50TjMyKDEyMykKICAgIGJ5dGVjXzEgLy8gMHgwMDAwMDA3YgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0TWF0Y2goYTEsIFt1MSwgdTEsIHUxLCB1MSwgdTEsIHUxXSkKICAgID09CiAgICBieiBhcmM0SW50ZXJvcF9ib29sX2ZhbHNlQDgKCmFyYzRJbnRlcm9wX2FuZF9jb250ZEA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0TWF0Y2goYTEsIFt1MSwgdTEsIHUxLCB1MSwgdTEsIHUxXSkKICAgIGZyYW1lX2RpZyAwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18zIC8vIDQKICAgIGR1cAogICAgKgogICAgaW50Y18zIC8vIDQKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0MwogICAgLy8gY29uc3QgdTEgPSBuZXcgVWludE4zMigxMjMpCiAgICBieXRlY18xIC8vIDB4MDAwMDAwN2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICA9PQogICAgYnogYXJjNEludGVyb3BfYm9vbF9mYWxzZUA4CgphcmM0SW50ZXJvcF9hbmRfY29udGRANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICBmcmFtZV9kaWcgMAogICAgZXh0cmFjdCAyIDAKICAgIHB1c2hpbnQgNSAvLyA1CiAgICBpbnRjXzMgLy8gNAogICAgKgogICAgaW50Y18zIC8vIDQKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo0MwogICAgLy8gY29uc3QgdTEgPSBuZXcgVWludE4zMigxMjMpCiAgICBieXRlY18xIC8vIDB4MDAwMDAwN2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTEKICAgIC8vIGFzc2VydE1hdGNoKGExLCBbdTEsIHUxLCB1MSwgdTEsIHUxLCB1MV0pCiAgICA9PQogICAgYnogYXJjNEludGVyb3BfYm9vbF9mYWxzZUA4CgphcmM0SW50ZXJvcF9ib29sX3RydWVANzoKICAgIGludGNfMiAvLyAxCgphcmM0SW50ZXJvcF9ib29sX21lcmdlQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjUxCiAgICAvLyBhc3NlcnRNYXRjaChhMSwgW3UxLCB1MSwgdTEsIHUxLCB1MSwgdTFdKQogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIHJldHN1YgoKYXJjNEludGVyb3BfYm9vbF9mYWxzZUA4OgogICAgaW50Y18xIC8vIDAKICAgIGIgYXJjNEludGVyb3BfYm9vbF9tZXJnZUA5CgoKLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo6TmF0aXZlQXJyYXlzQWxnby5zdHJ1Y3RzKHAueDogdWludDY0LCBwLnk6IHVpbnQ2NCkgLT4gYnl0ZXM6CnN0cnVjdHM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjU0CiAgICAvLyBzdHJ1Y3RzKHsgeCwgeSB9OiBWZWN0b3IpIHsKICAgIHByb3RvIDIgMQoKc3RydWN0c19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hdGl2ZS1hcnJheXMuYWxnby50czo1NAogICAgLy8gc3RydWN0cyh7IHgsIHkgfTogVmVjdG9yKSB7CiAgICBmcmFtZV9kaWcgLTIKICAgIGR1cAogICAgZnJhbWVfZGlnIC0xCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGNvdmVyIDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTcKICAgIC8vIG15VmVjdG9ycyA9IFt7IHgsIHkgfV0KICAgIGJ5dGVjXzIgLy8gMHgwMDAwCiAgICBieXRlY18wIC8vIDB4CiAgICBjb25jYXQKICAgIGV4dHJhY3QgMiAwCiAgICBjb3ZlciAyCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGl0b2IKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBwdXNoaW50IDE2IC8vIDE2CiAgICAvCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTkKICAgIC8vIGFzc2VydE1hdGNoKG15VmVjdG9ycywgW3sgeCwgeSB9XSkKICAgIGludGNfMSAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDEKICAgID09CiAgICBieiBzdHJ1Y3RzX2Jvb2xfZmFsc2VANAoKc3RydWN0c19hbmRfY29udGRAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTkKICAgIC8vIGFzc2VydE1hdGNoKG15VmVjdG9ycywgW3sgeCwgeSB9XSkKICAgIGZyYW1lX2RpZyAyCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18xIC8vIDAKICAgIHB1c2hpbnQgMTYgLy8gMTYKICAgICoKICAgIHB1c2hpbnQgMTYgLy8gMTYKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgaW50Y18xIC8vIDAKICAgIGludGNfMCAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGZyYW1lX2RpZyAwCiAgICA9PQogICAgYnogc3RydWN0c19ib29sX2ZhbHNlQDQKCnN0cnVjdHNfYW5kX2NvbnRkQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjU5CiAgICAvLyBhc3NlcnRNYXRjaChteVZlY3RvcnMsIFt7IHgsIHkgfV0pCiAgICBmcmFtZV9kaWcgMgogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMSAvLyAwCiAgICBwdXNoaW50IDE2IC8vIDE2CiAgICAqCiAgICBwdXNoaW50IDE2IC8vIDE2CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGludGNfMCAvLyA4CiAgICBkdXAKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgZnJhbWVfZGlnIDEKICAgID09CiAgICBieiBzdHJ1Y3RzX2Jvb2xfZmFsc2VANAoKc3RydWN0c19ib29sX3RydWVAMzoKICAgIGludGNfMiAvLyAxCgpzdHJ1Y3RzX2Jvb2xfbWVyZ2VANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYXRpdmUtYXJyYXlzLmFsZ28udHM6NTkKICAgIC8vIGFzc2VydE1hdGNoKG15VmVjdG9ycywgW3sgeCwgeSB9XSkKICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjYwCiAgICAvLyByZXR1cm4gbXlWZWN0b3JzCiAgICBmcmFtZV9kaWcgMgogICAgZnJhbWVfYnVyeSAwCiAgICByZXRzdWIKCnN0cnVjdHNfYm9vbF9mYWxzZUA0OgogICAgaW50Y18xIC8vIDAKICAgIGIgc3RydWN0c19ib29sX21lcmdlQDUKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmF0aXZlLWFycmF5cy5hbGdvLnRzOjpOYXRpdmVBcnJheXNBbGdvLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiAECAABBCYEAAQAAAB7AgAABBUffHUxGyMTQQCCNhoAgAQPTBHKgAQTpYjIgAR4e1CygATrh6BkTwSOBABGADUAJAACI0MxGSMSRDEYIxNENhoBSSMiWBdMIklYF4gEQytMULAkQv/dMRkjEkQxGCMTRIgDbiRC/8wxGSMSRDEYIxNEiABeJEL/uzEZIxJEMRgjE0SIAB8rTFCwJEL/pjEZI0yOAQADQv+aMRgjEkSIBFskQv+PKihQVwIAJBYoTFAoTFCBAhYoTFBQgQMWKExQUCUWKExQUFBJFSIKFlcGAkxQiYoAAIj/zEkjWSUSQQLtiwBXAgAjIgsiWBckEkEC3YsAVwIAJCILIlgXgQISQQLMiwBXAgCBAiILIlgXgQMSQQK6iwBXAgCBAyILIlgXJRJBAqkkRIsAVwIAKihQVwIAgQUWKExQKExQUEkVIgoWVwYCTFBXAgBQSRUiChZXBgJMUEmMACNZgQUSQQJriwBXAgAjIgsiWBckEkECW4sAVwIAJCILIlgXgQISQQJKiwBXAgCBAiILIlgXgQMSQQI4iwBXAgCBAyILIlgXJRJBAieLAFcCACUiCyJYF4EFEkECFiREiwBJI1kkCUxXAgBMIgsiWBeBBRJEKihQVwIAJBYoTFAoTFCBAhYoTFBQgQMWKExQUCUWKExQUFBJFSIKFlcGAkxQSYwAI1klEkEBxIsAVwIAIyILIlgXJBJBAbSLAFcCACQiCyJYF4ECEkEBo4sAVwIAgQIiCyJYF4EDEkEBkYsAVwIAgQMiCyJYFyUSQQGAJESBChaLAEkjWSQNRIEKTwJdSYwAI1klEkEBYIsAVwIAIyILIlgXJBJBAVCLAFcCACQiCyJYF4EKEkEBP4sAVwIAgQIiCyJYF4EDEkEBLYsAVwIAgQMiCyJYFyUSQQEcJESLAElXAgBMVwIAUEkVIgoWVwYCTFBXAgCBCxYoTFAoTFBQSRUiChZXBgJMUFcCAIEMFihMUChMUIENFihMUFBQSRUiChZXBgJMUEmMACNZgQsSQQDBiwBXAgAjIgsiWBckEkEAsYsAVwIAJCILIlgXgQoSQQCgiwBXAgCBAiILIlgXgQMSQQCOiwBXAgCBAyILIlgXJRJBAH2LAFcCACUiCyJYFyQSQQBtiwBXAgCBBSILIlgXgQoSQQBbiwBXAgCBBiILIlgXgQMSQQBJiwBXAgCBByILIlgXJRJBADiLAFcCACJJCyJYF4ELEkEAJ4sAVwIAgQkiCyJYF4EMEkEAFYsAVwIAgQoiCyJYF4ENEkEAAyREiSNC//ojQv7hI0L+fSNC/ecjQv1UigAAKClQKVCAAgACTFAoKVApUChMUEwqKFBXAgAoKVAoTFAoKVBQUEkVJQoWVwYCTFBXAgBMVwIAUEkVJQoWVwYCTFBXAgBMUEkVJQoWVwYCTFBJI1mBBhJBAGCLAFcCACMlCyVYKRJBAFGLAFcCACQlCyVYKRJBAEKLAFcCAIECJQslWCkSQQAyiwBXAgCBAyULJVgpEkEAIosAVwIAJUkLJVgpEkEAE4sAVwIAgQUlCyVYKRJBAAMkRIkjQv/6igIBi/5Ji/9JTgJOAiooUFcCAE4CFihMUEwWUChMUFBJFYEQChZXBgJMUEkjWSQSQQAziwJXAgAjgRALgRBYIyJYF4sAEkEAHYsCVwIAI4EQC4EQWCJJWBeLARJBAAckRIsCjACJI0L/9ok=", @@ -224,7 +224,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/native-arrays/NativeArraysAlgo.clear.teal b/tests/approvals/out/unoptimized/native-arrays/NativeArraysAlgo.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/native-arrays/NativeArraysAlgo.clear.teal +++ b/tests/approvals/out/unoptimized/native-arrays/NativeArraysAlgo.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/non-arc4/HelloWorldContract.approval.teal b/tests/approvals/out/unoptimized/non-arc4/HelloWorldContract.approval.teal index e75805c78..017be74b8 100644 --- a/tests/approvals/out/unoptimized/non-arc4/HelloWorldContract.approval.teal +++ b/tests/approvals/out/unoptimized/non-arc4/HelloWorldContract.approval.teal @@ -3,6 +3,8 @@ // tests/approvals/non-arc4.algo.ts::HelloWorldContract.approvalProgram() -> uint64: main: + +main_block@0: // tests/approvals/non-arc4.algo.ts:5 // const name = String(op.Txn.applicationArgs(0)) pushint 0 // 0 diff --git a/tests/approvals/out/unoptimized/non-arc4/HelloWorldContract.clear.teal b/tests/approvals/out/unoptimized/non-arc4/HelloWorldContract.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/non-arc4/HelloWorldContract.clear.teal +++ b/tests/approvals/out/unoptimized/non-arc4/HelloWorldContract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/ops/MyContract.approval.teal b/tests/approvals/out/unoptimized/ops/MyContract.approval.teal index 49710c024..31639b7c7 100644 --- a/tests/approvals/out/unoptimized/ops/MyContract.approval.teal +++ b/tests/approvals/out/unoptimized/ops/MyContract.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 +main_block@0: + main_block@1: // tests/approvals/ops.algo.ts:5 // class MyContract extends Contract { @@ -75,6 +77,8 @@ main___algots__.defaultCreate@7: // tests/approvals/ops.algo.ts::MyContract.test() -> void: test: + +test_block@0: // tests/approvals/ops.algo.ts:7 // const a = bzero(8).bitwiseInvert() pushint 8 // 8 @@ -103,4 +107,6 @@ test: // tests/approvals/ops.algo.ts::MyContract.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/ops/MyContract.arc32.json b/tests/approvals/out/unoptimized/ops/MyContract.arc32.json index 4df9b777d..9f2411762 100644 --- a/tests/approvals/out/unoptimized/ops/MyContract.arc32.json +++ b/tests/approvals/out/unoptimized/ops/MyContract.arc32.json @@ -7,8 +7,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvb3BzLmFsZ28udHM6NQogICAgLy8gY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czo1CiAgICAvLyBjbGFzcyBNeUNvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4YTc4MDAwZGUgLy8gbWV0aG9kICJ0ZXN0KCl2b2lkIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl90ZXN0X3JvdXRlQDMKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA0OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDU6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvb3BzLmFsZ28udHM6NQogICAgLy8gY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL29wcy5hbGdvLnRzOjpNeUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX3Rlc3Rfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czo2CiAgICAvLyB0ZXN0KCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0CiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL29wcy5hbGdvLnRzOjpNeUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL29wcy5hbGdvLnRzOjUKICAgIC8vIGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDg6CgptYWluX3N3aXRjaF9jYXNlX25leHRAOToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEwCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL29wcy5hbGdvLnRzOjUKICAgIC8vIGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKCi8vIHRlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czo6TXlDb250cmFjdC50ZXN0KCkgLT4gdm9pZDoKdGVzdDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czo3CiAgICAvLyBjb25zdCBhID0gYnplcm8oOCkuYml0d2lzZUludmVydCgpCiAgICBwdXNoaW50IDggLy8gOAogICAgYnplcm8KICAgIGJ+CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvb3BzLmFsZ28udHM6OAogICAgLy8gY29uc3QgYiA9IG9wMi5idG9pKGEpCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvb3BzLmFsZ28udHM6OQogICAgLy8gYXNzZXJ0KGIgPT09IDIgKiogNjQgLSAxKQogICAgZHVwCiAgICBwdXNoaW50IDE4NDQ2NzQ0MDczNzA5NTUxNjE1IC8vIDE4NDQ2NzQ0MDczNzA5NTUxNjE1CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvb3BzLmFsZ28udHM6MTEKICAgIC8vIGNvbnN0IGMgPSBvcC5zaHIoYiwgMzIpCiAgICBwdXNoaW50IDMyIC8vIDMyCiAgICBzaHIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czoxMwogICAgLy8gYXNzZXJ0KGMgPT09IDIgKiogMzIgLSAxKQogICAgcHVzaGludCA0Mjk0OTY3Mjk1IC8vIDQyOTQ5NjcyOTUKICAgID09CiAgICBhc3NlcnQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czo6TXlDb250cmFjdC5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvb3BzLmFsZ28udHM6NQogICAgLy8gY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czo1CiAgICAvLyBjbGFzcyBNeUNvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4YTc4MDAwZGUgLy8gbWV0aG9kICJ0ZXN0KCl2b2lkIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl90ZXN0X3JvdXRlQDMKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA0OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDU6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvb3BzLmFsZ28udHM6NQogICAgLy8gY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL29wcy5hbGdvLnRzOjpNeUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX3Rlc3Rfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czo2CiAgICAvLyB0ZXN0KCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0CiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL29wcy5hbGdvLnRzOjpNeUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL29wcy5hbGdvLnRzOjUKICAgIC8vIGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDg6CgptYWluX3N3aXRjaF9jYXNlX25leHRAOToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEwCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL29wcy5hbGdvLnRzOjUKICAgIC8vIGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKCi8vIHRlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czo6TXlDb250cmFjdC50ZXN0KCkgLT4gdm9pZDoKdGVzdDoKCnRlc3RfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czo3CiAgICAvLyBjb25zdCBhID0gYnplcm8oOCkuYml0d2lzZUludmVydCgpCiAgICBwdXNoaW50IDggLy8gOAogICAgYnplcm8KICAgIGJ+CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvb3BzLmFsZ28udHM6OAogICAgLy8gY29uc3QgYiA9IG9wMi5idG9pKGEpCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvb3BzLmFsZ28udHM6OQogICAgLy8gYXNzZXJ0KGIgPT09IDIgKiogNjQgLSAxKQogICAgZHVwCiAgICBwdXNoaW50IDE4NDQ2NzQ0MDczNzA5NTUxNjE1IC8vIDE4NDQ2NzQ0MDczNzA5NTUxNjE1CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvb3BzLmFsZ28udHM6MTEKICAgIC8vIGNvbnN0IGMgPSBvcC5zaHIoYiwgMzIpCiAgICBwdXNoaW50IDMyIC8vIDMyCiAgICBzaHIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czoxMwogICAgLy8gYXNzZXJ0KGMgPT09IDIgKiogMzIgLSAxKQogICAgcHVzaGludCA0Mjk0OTY3Mjk1IC8vIDQyOTQ5NjcyOTUKICAgID09CiAgICBhc3NlcnQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czo6TXlDb250cmFjdC5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/ops/MyContract.arc56.json b/tests/approvals/out/unoptimized/ops/MyContract.arc56.json index d8fa39554..e219d3e6a 100644 --- a/tests/approvals/out/unoptimized/ops/MyContract.arc56.json +++ b/tests/approvals/out/unoptimized/ops/MyContract.arc56.json @@ -82,8 +82,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvb3BzLmFsZ28udHM6NQogICAgLy8gY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czo1CiAgICAvLyBjbGFzcyBNeUNvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4YTc4MDAwZGUgLy8gbWV0aG9kICJ0ZXN0KCl2b2lkIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl90ZXN0X3JvdXRlQDMKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA0OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDU6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvb3BzLmFsZ28udHM6NQogICAgLy8gY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL29wcy5hbGdvLnRzOjpNeUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX3Rlc3Rfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czo2CiAgICAvLyB0ZXN0KCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0CiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL29wcy5hbGdvLnRzOjpNeUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL29wcy5hbGdvLnRzOjUKICAgIC8vIGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDg6CgptYWluX3N3aXRjaF9jYXNlX25leHRAOToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEwCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL29wcy5hbGdvLnRzOjUKICAgIC8vIGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKCi8vIHRlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czo6TXlDb250cmFjdC50ZXN0KCkgLT4gdm9pZDoKdGVzdDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czo3CiAgICAvLyBjb25zdCBhID0gYnplcm8oOCkuYml0d2lzZUludmVydCgpCiAgICBwdXNoaW50IDggLy8gOAogICAgYnplcm8KICAgIGJ+CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvb3BzLmFsZ28udHM6OAogICAgLy8gY29uc3QgYiA9IG9wMi5idG9pKGEpCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvb3BzLmFsZ28udHM6OQogICAgLy8gYXNzZXJ0KGIgPT09IDIgKiogNjQgLSAxKQogICAgZHVwCiAgICBwdXNoaW50IDE4NDQ2NzQ0MDczNzA5NTUxNjE1IC8vIDE4NDQ2NzQ0MDczNzA5NTUxNjE1CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvb3BzLmFsZ28udHM6MTEKICAgIC8vIGNvbnN0IGMgPSBvcC5zaHIoYiwgMzIpCiAgICBwdXNoaW50IDMyIC8vIDMyCiAgICBzaHIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czoxMwogICAgLy8gYXNzZXJ0KGMgPT09IDIgKiogMzIgLSAxKQogICAgcHVzaGludCA0Mjk0OTY3Mjk1IC8vIDQyOTQ5NjcyOTUKICAgID09CiAgICBhc3NlcnQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czo6TXlDb250cmFjdC5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvb3BzLmFsZ28udHM6NQogICAgLy8gY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czo1CiAgICAvLyBjbGFzcyBNeUNvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4YTc4MDAwZGUgLy8gbWV0aG9kICJ0ZXN0KCl2b2lkIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl90ZXN0X3JvdXRlQDMKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA0OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDU6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvb3BzLmFsZ28udHM6NQogICAgLy8gY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL29wcy5hbGdvLnRzOjpNeUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX3Rlc3Rfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czo2CiAgICAvLyB0ZXN0KCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0CiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL29wcy5hbGdvLnRzOjpNeUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL29wcy5hbGdvLnRzOjUKICAgIC8vIGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDg6CgptYWluX3N3aXRjaF9jYXNlX25leHRAOToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEwCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL29wcy5hbGdvLnRzOjUKICAgIC8vIGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKCi8vIHRlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czo6TXlDb250cmFjdC50ZXN0KCkgLT4gdm9pZDoKdGVzdDoKCnRlc3RfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czo3CiAgICAvLyBjb25zdCBhID0gYnplcm8oOCkuYml0d2lzZUludmVydCgpCiAgICBwdXNoaW50IDggLy8gOAogICAgYnplcm8KICAgIGJ+CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvb3BzLmFsZ28udHM6OAogICAgLy8gY29uc3QgYiA9IG9wMi5idG9pKGEpCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvb3BzLmFsZ28udHM6OQogICAgLy8gYXNzZXJ0KGIgPT09IDIgKiogNjQgLSAxKQogICAgZHVwCiAgICBwdXNoaW50IDE4NDQ2NzQ0MDczNzA5NTUxNjE1IC8vIDE4NDQ2NzQ0MDczNzA5NTUxNjE1CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvb3BzLmFsZ28udHM6MTEKICAgIC8vIGNvbnN0IGMgPSBvcC5zaHIoYiwgMzIpCiAgICBwdXNoaW50IDMyIC8vIDMyCiAgICBzaHIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czoxMwogICAgLy8gYXNzZXJ0KGMgPT09IDIgKiogMzIgLSAxKQogICAgcHVzaGludCA0Mjk0OTY3Mjk1IC8vIDQyOTQ5NjcyOTUKICAgID09CiAgICBhc3NlcnQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9vcHMuYWxnby50czo6TXlDb250cmFjdC5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAExGyITQQAhNhoAgASngADeTI4BAAIiQzEZIhJEMRgiE0SIABsjQv/uMRkiTI4BAANC/+IxGCISRIgAIyNC/9eBCK+uF0mB////////////ARJEgSCRgf////8PEkSJiQ==", @@ -94,7 +94,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/ops/MyContract.clear.teal b/tests/approvals/out/unoptimized/ops/MyContract.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/ops/MyContract.clear.teal +++ b/tests/approvals/out/unoptimized/ops/MyContract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/pre-approved-sale/PreApprovedSale.teal b/tests/approvals/out/unoptimized/pre-approved-sale/PreApprovedSale.teal index 8f4a2b9a1..eabde042c 100644 --- a/tests/approvals/out/unoptimized/pre-approved-sale/PreApprovedSale.teal +++ b/tests/approvals/out/unoptimized/pre-approved-sale/PreApprovedSale.teal @@ -5,6 +5,8 @@ main: intcblock 1 0 TMPL_PRICE TMPL_ASSET bytecblock TMPL_SELLER + +main_block@0: // tests/approvals/pre-approved-sale.algo.ts:12 // const seller = TemplateVar('SELLER') bytec_0 // TMPL_SELLER diff --git a/tests/approvals/out/unoptimized/precompiled-apps/Hello.approval.teal b/tests/approvals/out/unoptimized/precompiled-apps/Hello.approval.teal index 4ca4545f5..f0c261b09 100644 --- a/tests/approvals/out/unoptimized/precompiled-apps/Hello.approval.teal +++ b/tests/approvals/out/unoptimized/precompiled-apps/Hello.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 bytecblock "greeting" "" + +main_block@0: txn ApplicationID bnz main_after_if_else@2 @@ -136,6 +138,8 @@ create: // @abimethod({ name: 'helloCreate', onCreate: 'require' }) // create(greeting: string) { proto 1 0 + +create_block@0: // tests/approvals/precompiled-apps.algo.ts:4 // greeting = GlobalState({ initialValue: '' }) bytec_0 // "greeting" @@ -148,11 +152,15 @@ create: // tests/approvals/precompiled-apps.algo.ts::HelloBase.delete() -> void: delete: + +delete_block@0: retsub // tests/approvals/precompiled-apps.algo.ts::HelloBase.update() -> void: update: + +update_block@0: retsub @@ -161,6 +169,8 @@ greet: // tests/approvals/precompiled-apps.algo.ts:12 // greet(name: string): string { proto 1 1 + +greet_block@0: // tests/approvals/precompiled-apps.algo.ts:4 // greeting = GlobalState({ initialValue: '' }) intc_0 // 0 @@ -182,6 +192,8 @@ greet: // tests/approvals/precompiled-apps.algo.ts::HelloBase.constructor() -> void: constructor: +constructor_block@0: + constructor_block@1: constructor_after_inlined_@algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.constructor@2: diff --git a/tests/approvals/out/unoptimized/precompiled-apps/Hello.arc32.json b/tests/approvals/out/unoptimized/precompiled-apps/Hello.arc32.json index ca334a9f0..0b7bc88fb 100644 --- a/tests/approvals/out/unoptimized/precompiled-apps/Hello.arc32.json +++ b/tests/approvals/out/unoptimized/precompiled-apps/Hello.arc32.json @@ -22,8 +22,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJncmVldGluZyIgIiIKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKCm1haW5faWZfYm9keUAxOgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CgptYWluX2Jsb2NrQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjE3CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG8gZXh0ZW5kcyBIZWxsb0Jhc2UgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAMTEKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTcKICAgIC8vIGV4cG9ydCBjbGFzcyBIZWxsbyBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgwMDkyMjVhZSAvLyBtZXRob2QgImhlbGxvQ3JlYXRlKHN0cmluZyl2b2lkIgogICAgcHVzaGJ5dGVzIDB4MjQzNzhkM2MgLy8gbWV0aG9kICJkZWxldGUoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhhMGU4MTg3MiAvLyBtZXRob2QgInVwZGF0ZSgpdm9pZCIKICAgIHB1c2hieXRlcyAweGQwYTI4MjAwIC8vIG1ldGhvZCAiZ3JlZXQoc3RyaW5nKXN0cmluZyIKICAgIHVuY292ZXIgNAogICAgbWF0Y2ggbWFpbl9oZWxsb0NyZWF0ZV9yb3V0ZUA1IG1haW5fZGVsZXRlX3JvdXRlQDYgbWFpbl91cGRhdGVfcm91dGVANyBtYWluX2dyZWV0X3JvdXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoxNwogICAgLy8gZXhwb3J0IGNsYXNzIEhlbGxvIGV4dGVuZHMgSGVsbG9CYXNlIHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG8uX19wdXlhX2FyYzRfcm91dGVyX19AMTM6CiAgICByZXR1cm4KCm1haW5fZ3JlZXRfcm91dGVAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTIKICAgIC8vIGdyZWV0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjE3CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG8gZXh0ZW5kcyBIZWxsb0Jhc2UgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZXh0cmFjdCAyIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTIKICAgIC8vIGdyZWV0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7CiAgICBjYWxsc3ViIGdyZWV0CiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG8uX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fdXBkYXRlX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjkKICAgIC8vIEBhYmltZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdVcGRhdGVBcHBsaWNhdGlvbicgfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIHB1c2hpbnQgNCAvLyBVcGRhdGVBcHBsaWNhdGlvbgogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IFVwZGF0ZUFwcGxpY2F0aW9uCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB1cGRhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl9kZWxldGVfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NgogICAgLy8gQGFiaW1ldGhvZCh7IGFsbG93QWN0aW9uczogJ0RlbGV0ZUFwcGxpY2F0aW9uJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgcHVzaGludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgRGVsZXRlQXBwbGljYXRpb24KICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGRlbGV0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX2hlbGxvQ3JlYXRlX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjE4CiAgICAvLyBAYWJpbWV0aG9kKHsgbmFtZTogJ2hlbGxvQ3JlYXRlJywgb25DcmVhdGU6ICdyZXF1aXJlJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjE3CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG8gZXh0ZW5kcyBIZWxsb0Jhc2UgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZXh0cmFjdCAyIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTgKICAgIC8vIEBhYmltZXRob2QoeyBuYW1lOiAnaGVsbG9DcmVhdGUnLCBvbkNyZWF0ZTogJ3JlcXVpcmUnIH0pCiAgICBjYWxsc3ViIGNyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX2JhcmVfcm91dGluZ0AxMToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG8uY3JlYXRlKGdyZWV0aW5nOiBieXRlcykgLT4gdm9pZDoKY3JlYXRlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoxOC0xOQogICAgLy8gQGFiaW1ldGhvZCh7IG5hbWU6ICdoZWxsb0NyZWF0ZScsIG9uQ3JlYXRlOiAncmVxdWlyZScgfSkKICAgIC8vIGNyZWF0ZShncmVldGluZzogc3RyaW5nKSB7CiAgICBwcm90byAxIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NAogICAgLy8gZ3JlZXRpbmcgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogJycgfSkKICAgIGJ5dGVjXzAgLy8gImdyZWV0aW5nIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoyMAogICAgLy8gdGhpcy5ncmVldGluZy52YWx1ZSA9IGdyZWV0aW5nCiAgICBmcmFtZV9kaWcgLTEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UuZGVsZXRlKCkgLT4gdm9pZDoKZGVsZXRlOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLnVwZGF0ZSgpIC0+IHZvaWQ6CnVwZGF0ZToKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5ncmVldChuYW1lOiBieXRlcykgLT4gYnl0ZXM6CmdyZWV0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoxMgogICAgLy8gZ3JlZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHsKICAgIHByb3RvIDEgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0CiAgICAvLyBncmVldGluZyA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiAnJyB9KQogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzAgLy8gImdyZWV0aW5nIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTMKICAgIC8vIHJldHVybiBgJHt0aGlzLmdyZWV0aW5nLnZhbHVlfSAke25hbWV9YAogICAgYnl0ZWNfMSAvLyAiIgogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgIiAiCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMQogICAgY29uY2F0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UuY29uc3RydWN0b3IoKSAtPiB2b2lkOgpjb25zdHJ1Y3RvcjoKCmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgpjb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0CiAgICAvLyBncmVldGluZyA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiAnJyB9KQogICAgYnl0ZWNfMCAvLyAiZ3JlZXRpbmciCiAgICBieXRlY18xIC8vICIiCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJncmVldGluZyIgIiIKCm1haW5fYmxvY2tAMDoKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKCm1haW5faWZfYm9keUAxOgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CgptYWluX2Jsb2NrQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjE3CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG8gZXh0ZW5kcyBIZWxsb0Jhc2UgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAMTEKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTcKICAgIC8vIGV4cG9ydCBjbGFzcyBIZWxsbyBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgwMDkyMjVhZSAvLyBtZXRob2QgImhlbGxvQ3JlYXRlKHN0cmluZyl2b2lkIgogICAgcHVzaGJ5dGVzIDB4MjQzNzhkM2MgLy8gbWV0aG9kICJkZWxldGUoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhhMGU4MTg3MiAvLyBtZXRob2QgInVwZGF0ZSgpdm9pZCIKICAgIHB1c2hieXRlcyAweGQwYTI4MjAwIC8vIG1ldGhvZCAiZ3JlZXQoc3RyaW5nKXN0cmluZyIKICAgIHVuY292ZXIgNAogICAgbWF0Y2ggbWFpbl9oZWxsb0NyZWF0ZV9yb3V0ZUA1IG1haW5fZGVsZXRlX3JvdXRlQDYgbWFpbl91cGRhdGVfcm91dGVANyBtYWluX2dyZWV0X3JvdXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoxNwogICAgLy8gZXhwb3J0IGNsYXNzIEhlbGxvIGV4dGVuZHMgSGVsbG9CYXNlIHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG8uX19wdXlhX2FyYzRfcm91dGVyX19AMTM6CiAgICByZXR1cm4KCm1haW5fZ3JlZXRfcm91dGVAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTIKICAgIC8vIGdyZWV0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjE3CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG8gZXh0ZW5kcyBIZWxsb0Jhc2UgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZXh0cmFjdCAyIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTIKICAgIC8vIGdyZWV0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7CiAgICBjYWxsc3ViIGdyZWV0CiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG8uX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fdXBkYXRlX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjkKICAgIC8vIEBhYmltZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdVcGRhdGVBcHBsaWNhdGlvbicgfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIHB1c2hpbnQgNCAvLyBVcGRhdGVBcHBsaWNhdGlvbgogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IFVwZGF0ZUFwcGxpY2F0aW9uCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB1cGRhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl9kZWxldGVfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NgogICAgLy8gQGFiaW1ldGhvZCh7IGFsbG93QWN0aW9uczogJ0RlbGV0ZUFwcGxpY2F0aW9uJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgcHVzaGludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgRGVsZXRlQXBwbGljYXRpb24KICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGRlbGV0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX2hlbGxvQ3JlYXRlX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjE4CiAgICAvLyBAYWJpbWV0aG9kKHsgbmFtZTogJ2hlbGxvQ3JlYXRlJywgb25DcmVhdGU6ICdyZXF1aXJlJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjE3CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG8gZXh0ZW5kcyBIZWxsb0Jhc2UgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZXh0cmFjdCAyIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTgKICAgIC8vIEBhYmltZXRob2QoeyBuYW1lOiAnaGVsbG9DcmVhdGUnLCBvbkNyZWF0ZTogJ3JlcXVpcmUnIH0pCiAgICBjYWxsc3ViIGNyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX2JhcmVfcm91dGluZ0AxMToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG8uY3JlYXRlKGdyZWV0aW5nOiBieXRlcykgLT4gdm9pZDoKY3JlYXRlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoxOC0xOQogICAgLy8gQGFiaW1ldGhvZCh7IG5hbWU6ICdoZWxsb0NyZWF0ZScsIG9uQ3JlYXRlOiAncmVxdWlyZScgfSkKICAgIC8vIGNyZWF0ZShncmVldGluZzogc3RyaW5nKSB7CiAgICBwcm90byAxIDAKCmNyZWF0ZV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0CiAgICAvLyBncmVldGluZyA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiAnJyB9KQogICAgYnl0ZWNfMCAvLyAiZ3JlZXRpbmciCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjIwCiAgICAvLyB0aGlzLmdyZWV0aW5nLnZhbHVlID0gZ3JlZXRpbmcKICAgIGZyYW1lX2RpZyAtMQogICAgYXBwX2dsb2JhbF9wdXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5kZWxldGUoKSAtPiB2b2lkOgpkZWxldGU6CgpkZWxldGVfYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS51cGRhdGUoKSAtPiB2b2lkOgp1cGRhdGU6Cgp1cGRhdGVfYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5ncmVldChuYW1lOiBieXRlcykgLT4gYnl0ZXM6CmdyZWV0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoxMgogICAgLy8gZ3JlZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHsKICAgIHByb3RvIDEgMQoKZ3JlZXRfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NAogICAgLy8gZ3JlZXRpbmcgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogJycgfSkKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18wIC8vICJncmVldGluZyIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjEzCiAgICAvLyByZXR1cm4gYCR7dGhpcy5ncmVldGluZy52YWx1ZX0gJHtuYW1lfWAKICAgIGJ5dGVjXzEgLy8gIiIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzICIgIgogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTEKICAgIGNvbmNhdAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKY29uc3RydWN0b3I6Cgpjb25zdHJ1Y3Rvcl9ibG9ja0AwOgoKY29uc3RydWN0b3JfYmxvY2tAMToKCmNvbnN0cnVjdG9yX2FmdGVyX2lubGluZWRfQGFsZ29yYW5kZm91bmRhdGlvbi9hbGdvcmFuZC10eXBlc2NyaXB0L2Jhc2UtY29udHJhY3QuZC50czo6QmFzZUNvbnRyYWN0LmNvbnN0cnVjdG9yQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjQKICAgIC8vIGdyZWV0aW5nID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6ICcnIH0pCiAgICBieXRlY18wIC8vICJncmVldGluZyIKICAgIGJ5dGVjXzEgLy8gIiIKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/precompiled-apps/Hello.arc56.json b/tests/approvals/out/unoptimized/precompiled-apps/Hello.arc56.json index 4194a8f2d..97bdb562b 100644 --- a/tests/approvals/out/unoptimized/precompiled-apps/Hello.arc56.json +++ b/tests/approvals/out/unoptimized/precompiled-apps/Hello.arc56.json @@ -165,8 +165,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJncmVldGluZyIgIiIKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKCm1haW5faWZfYm9keUAxOgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CgptYWluX2Jsb2NrQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjE3CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG8gZXh0ZW5kcyBIZWxsb0Jhc2UgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAMTEKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTcKICAgIC8vIGV4cG9ydCBjbGFzcyBIZWxsbyBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgwMDkyMjVhZSAvLyBtZXRob2QgImhlbGxvQ3JlYXRlKHN0cmluZyl2b2lkIgogICAgcHVzaGJ5dGVzIDB4MjQzNzhkM2MgLy8gbWV0aG9kICJkZWxldGUoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhhMGU4MTg3MiAvLyBtZXRob2QgInVwZGF0ZSgpdm9pZCIKICAgIHB1c2hieXRlcyAweGQwYTI4MjAwIC8vIG1ldGhvZCAiZ3JlZXQoc3RyaW5nKXN0cmluZyIKICAgIHVuY292ZXIgNAogICAgbWF0Y2ggbWFpbl9oZWxsb0NyZWF0ZV9yb3V0ZUA1IG1haW5fZGVsZXRlX3JvdXRlQDYgbWFpbl91cGRhdGVfcm91dGVANyBtYWluX2dyZWV0X3JvdXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoxNwogICAgLy8gZXhwb3J0IGNsYXNzIEhlbGxvIGV4dGVuZHMgSGVsbG9CYXNlIHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG8uX19wdXlhX2FyYzRfcm91dGVyX19AMTM6CiAgICByZXR1cm4KCm1haW5fZ3JlZXRfcm91dGVAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTIKICAgIC8vIGdyZWV0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjE3CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG8gZXh0ZW5kcyBIZWxsb0Jhc2UgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZXh0cmFjdCAyIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTIKICAgIC8vIGdyZWV0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7CiAgICBjYWxsc3ViIGdyZWV0CiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG8uX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fdXBkYXRlX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjkKICAgIC8vIEBhYmltZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdVcGRhdGVBcHBsaWNhdGlvbicgfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIHB1c2hpbnQgNCAvLyBVcGRhdGVBcHBsaWNhdGlvbgogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IFVwZGF0ZUFwcGxpY2F0aW9uCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB1cGRhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl9kZWxldGVfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NgogICAgLy8gQGFiaW1ldGhvZCh7IGFsbG93QWN0aW9uczogJ0RlbGV0ZUFwcGxpY2F0aW9uJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgcHVzaGludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgRGVsZXRlQXBwbGljYXRpb24KICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGRlbGV0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX2hlbGxvQ3JlYXRlX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjE4CiAgICAvLyBAYWJpbWV0aG9kKHsgbmFtZTogJ2hlbGxvQ3JlYXRlJywgb25DcmVhdGU6ICdyZXF1aXJlJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjE3CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG8gZXh0ZW5kcyBIZWxsb0Jhc2UgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZXh0cmFjdCAyIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTgKICAgIC8vIEBhYmltZXRob2QoeyBuYW1lOiAnaGVsbG9DcmVhdGUnLCBvbkNyZWF0ZTogJ3JlcXVpcmUnIH0pCiAgICBjYWxsc3ViIGNyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX2JhcmVfcm91dGluZ0AxMToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG8uY3JlYXRlKGdyZWV0aW5nOiBieXRlcykgLT4gdm9pZDoKY3JlYXRlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoxOC0xOQogICAgLy8gQGFiaW1ldGhvZCh7IG5hbWU6ICdoZWxsb0NyZWF0ZScsIG9uQ3JlYXRlOiAncmVxdWlyZScgfSkKICAgIC8vIGNyZWF0ZShncmVldGluZzogc3RyaW5nKSB7CiAgICBwcm90byAxIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NAogICAgLy8gZ3JlZXRpbmcgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogJycgfSkKICAgIGJ5dGVjXzAgLy8gImdyZWV0aW5nIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoyMAogICAgLy8gdGhpcy5ncmVldGluZy52YWx1ZSA9IGdyZWV0aW5nCiAgICBmcmFtZV9kaWcgLTEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UuZGVsZXRlKCkgLT4gdm9pZDoKZGVsZXRlOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLnVwZGF0ZSgpIC0+IHZvaWQ6CnVwZGF0ZToKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5ncmVldChuYW1lOiBieXRlcykgLT4gYnl0ZXM6CmdyZWV0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoxMgogICAgLy8gZ3JlZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHsKICAgIHByb3RvIDEgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0CiAgICAvLyBncmVldGluZyA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiAnJyB9KQogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzAgLy8gImdyZWV0aW5nIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTMKICAgIC8vIHJldHVybiBgJHt0aGlzLmdyZWV0aW5nLnZhbHVlfSAke25hbWV9YAogICAgYnl0ZWNfMSAvLyAiIgogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgIiAiCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMQogICAgY29uY2F0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UuY29uc3RydWN0b3IoKSAtPiB2b2lkOgpjb25zdHJ1Y3RvcjoKCmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgpjb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0CiAgICAvLyBncmVldGluZyA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiAnJyB9KQogICAgYnl0ZWNfMCAvLyAiZ3JlZXRpbmciCiAgICBieXRlY18xIC8vICIiCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJncmVldGluZyIgIiIKCm1haW5fYmxvY2tAMDoKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKCm1haW5faWZfYm9keUAxOgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CgptYWluX2Jsb2NrQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjE3CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG8gZXh0ZW5kcyBIZWxsb0Jhc2UgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAMTEKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTcKICAgIC8vIGV4cG9ydCBjbGFzcyBIZWxsbyBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgwMDkyMjVhZSAvLyBtZXRob2QgImhlbGxvQ3JlYXRlKHN0cmluZyl2b2lkIgogICAgcHVzaGJ5dGVzIDB4MjQzNzhkM2MgLy8gbWV0aG9kICJkZWxldGUoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhhMGU4MTg3MiAvLyBtZXRob2QgInVwZGF0ZSgpdm9pZCIKICAgIHB1c2hieXRlcyAweGQwYTI4MjAwIC8vIG1ldGhvZCAiZ3JlZXQoc3RyaW5nKXN0cmluZyIKICAgIHVuY292ZXIgNAogICAgbWF0Y2ggbWFpbl9oZWxsb0NyZWF0ZV9yb3V0ZUA1IG1haW5fZGVsZXRlX3JvdXRlQDYgbWFpbl91cGRhdGVfcm91dGVANyBtYWluX2dyZWV0X3JvdXRlQDgKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDEwOgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoxNwogICAgLy8gZXhwb3J0IGNsYXNzIEhlbGxvIGV4dGVuZHMgSGVsbG9CYXNlIHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG8uX19wdXlhX2FyYzRfcm91dGVyX19AMTM6CiAgICByZXR1cm4KCm1haW5fZ3JlZXRfcm91dGVAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTIKICAgIC8vIGdyZWV0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjE3CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG8gZXh0ZW5kcyBIZWxsb0Jhc2UgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZXh0cmFjdCAyIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTIKICAgIC8vIGdyZWV0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7CiAgICBjYWxsc3ViIGdyZWV0CiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG8uX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fdXBkYXRlX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjkKICAgIC8vIEBhYmltZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdVcGRhdGVBcHBsaWNhdGlvbicgfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIHB1c2hpbnQgNCAvLyBVcGRhdGVBcHBsaWNhdGlvbgogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IFVwZGF0ZUFwcGxpY2F0aW9uCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB1cGRhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsby5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl9kZWxldGVfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NgogICAgLy8gQGFiaW1ldGhvZCh7IGFsbG93QWN0aW9uczogJ0RlbGV0ZUFwcGxpY2F0aW9uJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgcHVzaGludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgRGVsZXRlQXBwbGljYXRpb24KICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGRlbGV0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX2hlbGxvQ3JlYXRlX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjE4CiAgICAvLyBAYWJpbWV0aG9kKHsgbmFtZTogJ2hlbGxvQ3JlYXRlJywgb25DcmVhdGU6ICdyZXF1aXJlJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjE3CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG8gZXh0ZW5kcyBIZWxsb0Jhc2UgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZXh0cmFjdCAyIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTgKICAgIC8vIEBhYmltZXRob2QoeyBuYW1lOiAnaGVsbG9DcmVhdGUnLCBvbkNyZWF0ZTogJ3JlcXVpcmUnIH0pCiAgICBjYWxsc3ViIGNyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX2JhcmVfcm91dGluZ0AxMToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG8uY3JlYXRlKGdyZWV0aW5nOiBieXRlcykgLT4gdm9pZDoKY3JlYXRlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoxOC0xOQogICAgLy8gQGFiaW1ldGhvZCh7IG5hbWU6ICdoZWxsb0NyZWF0ZScsIG9uQ3JlYXRlOiAncmVxdWlyZScgfSkKICAgIC8vIGNyZWF0ZShncmVldGluZzogc3RyaW5nKSB7CiAgICBwcm90byAxIDAKCmNyZWF0ZV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0CiAgICAvLyBncmVldGluZyA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiAnJyB9KQogICAgYnl0ZWNfMCAvLyAiZ3JlZXRpbmciCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjIwCiAgICAvLyB0aGlzLmdyZWV0aW5nLnZhbHVlID0gZ3JlZXRpbmcKICAgIGZyYW1lX2RpZyAtMQogICAgYXBwX2dsb2JhbF9wdXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5kZWxldGUoKSAtPiB2b2lkOgpkZWxldGU6CgpkZWxldGVfYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS51cGRhdGUoKSAtPiB2b2lkOgp1cGRhdGU6Cgp1cGRhdGVfYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5ncmVldChuYW1lOiBieXRlcykgLT4gYnl0ZXM6CmdyZWV0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoxMgogICAgLy8gZ3JlZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHsKICAgIHByb3RvIDEgMQoKZ3JlZXRfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NAogICAgLy8gZ3JlZXRpbmcgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogJycgfSkKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18wIC8vICJncmVldGluZyIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjEzCiAgICAvLyByZXR1cm4gYCR7dGhpcy5ncmVldGluZy52YWx1ZX0gJHtuYW1lfWAKICAgIGJ5dGVjXzEgLy8gIiIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzICIgIgogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTEKICAgIGNvbmNhdAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKY29uc3RydWN0b3I6Cgpjb25zdHJ1Y3Rvcl9ibG9ja0AwOgoKY29uc3RydWN0b3JfYmxvY2tAMToKCmNvbnN0cnVjdG9yX2FmdGVyX2lubGluZWRfQGFsZ29yYW5kZm91bmRhdGlvbi9hbGdvcmFuZC10eXBlc2NyaXB0L2Jhc2UtY29udHJhY3QuZC50czo6QmFzZUNvbnRyYWN0LmNvbnN0cnVjdG9yQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjQKICAgIC8vIGdyZWV0aW5nID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6ICcnIH0pCiAgICBieXRlY18wIC8vICJncmVldGluZyIKICAgIGJ5dGVjXzEgLy8gIiIKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAEmAghncmVldGluZwAxGEAAA4gAsjEbIhNBAIw2GgCABACSJa6ABCQ3jTyABKDoGHKABNCiggBPBI4EAE4APAAqAAIiQzEZIhJEMRgiE0Q2GgFXAgCIAF1JFRZXBgJMUIAEFR98dUxQsCNC/9cxGYEEEkQxGCITRIgAOSNC/8UxGYEFEkQxGCITRIgAJiNC/7MxGSISRDEYIhJENhoBVwIAiAAHI0L/nEL/mIoBACiL/2eJiYmKAQEiKGVEKUxQgAEgUIv/UIkoKWeJ", @@ -177,7 +177,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/precompiled-apps/Hello.clear.teal b/tests/approvals/out/unoptimized/precompiled-apps/Hello.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/precompiled-apps/Hello.clear.teal +++ b/tests/approvals/out/unoptimized/precompiled-apps/Hello.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplate.approval.teal b/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplate.approval.teal index 13c4d6819..266f59a25 100644 --- a/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplate.approval.teal +++ b/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplate.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 bytecblock "greeting" "" TMPL_GREETING + +main_block@0: txn ApplicationID bnz main_after_if_else@2 @@ -126,16 +128,22 @@ main_bare_routing@11: // tests/approvals/precompiled-apps.algo.ts::HelloTemplate.create() -> void: create: + +create_block@0: retsub // tests/approvals/precompiled-apps.algo.ts::HelloBase.delete() -> void: delete: + +delete_block@0: retsub // tests/approvals/precompiled-apps.algo.ts::HelloBase.update() -> void: update: + +update_block@0: retsub @@ -144,6 +152,8 @@ greet: // tests/approvals/precompiled-apps.algo.ts:12 // greet(name: string): string { proto 1 1 + +greet_block@0: // tests/approvals/precompiled-apps.algo.ts:4 // greeting = GlobalState({ initialValue: '' }) intc_0 // 0 @@ -164,6 +174,8 @@ greet: // tests/approvals/precompiled-apps.algo.ts::HelloTemplate.constructor() -> void: constructor: + +constructor_block@0: // tests/approvals/precompiled-apps.algo.ts:26 // super() callsub tests/approvals/precompiled-apps.algo.ts::HelloBase.constructor @@ -180,6 +192,8 @@ constructor: // tests/approvals/precompiled-apps.algo.ts::HelloBase.constructor() -> void: tests/approvals/precompiled-apps.algo.ts::HelloBase.constructor: +tests/approvals/precompiled-apps.algo.ts::HelloBase.constructor_block@0: + tests/approvals/precompiled-apps.algo.ts::HelloBase.constructor_block@1: tests/approvals/precompiled-apps.algo.ts::HelloBase.constructor_after_inlined_@algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.constructor@2: diff --git a/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplate.arc32.json b/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplate.arc32.json index e95a82437..57aeaa83a 100644 --- a/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplate.arc32.json +++ b/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplate.arc32.json @@ -22,8 +22,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJncmVldGluZyIgIiIgVE1QTF9HUkVFVElORwogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMgoKbWFpbl9pZl9ib2R5QDE6CiAgICBjYWxsc3ViIGNvbnN0cnVjdG9yCgptYWluX2FmdGVyX2lmX2Vsc2VAMjoKCm1haW5fYmxvY2tAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MjQKICAgIC8vIGV4cG9ydCBjbGFzcyBIZWxsb1RlbXBsYXRlIGV4dGVuZHMgSGVsbG9CYXNlIHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDExCgptYWluX2FiaV9yb3V0aW5nQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG9UZW1wbGF0ZSBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg0YzVjNjFiYSAvLyBtZXRob2QgImNyZWF0ZSgpdm9pZCIKICAgIHB1c2hieXRlcyAweDI0Mzc4ZDNjIC8vIG1ldGhvZCAiZGVsZXRlKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4YTBlODE4NzIgLy8gbWV0aG9kICJ1cGRhdGUoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhkMGEyODIwMCAvLyBtZXRob2QgImdyZWV0KHN0cmluZylzdHJpbmciCiAgICB1bmNvdmVyIDQKICAgIG1hdGNoIG1haW5fY3JlYXRlX3JvdXRlQDUgbWFpbl9kZWxldGVfcm91dGVANiBtYWluX3VwZGF0ZV9yb3V0ZUA3IG1haW5fZ3JlZXRfcm91dGVAOAoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDk6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTA6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG9UZW1wbGF0ZSBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGUuX19wdXlhX2FyYzRfcm91dGVyX19AMTM6CiAgICByZXR1cm4KCm1haW5fZ3JlZXRfcm91dGVAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTIKICAgIC8vIGdyZWV0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG9UZW1wbGF0ZSBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoxMgogICAgLy8gZ3JlZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHsKICAgIGNhbGxzdWIgZ3JlZXQKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb1RlbXBsYXRlLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX3VwZGF0ZV9yb3V0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo5CiAgICAvLyBAYWJpbWV0aG9kKHsgYWxsb3dBY3Rpb25zOiAnVXBkYXRlQXBwbGljYXRpb24nIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBwdXNoaW50IDQgLy8gVXBkYXRlQXBwbGljYXRpb24KICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBVcGRhdGVBcHBsaWNhdGlvbgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdXBkYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9UZW1wbGF0ZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl9kZWxldGVfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NgogICAgLy8gQGFiaW1ldGhvZCh7IGFsbG93QWN0aW9uczogJ0RlbGV0ZUFwcGxpY2F0aW9uJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgcHVzaGludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgRGVsZXRlQXBwbGljYXRpb24KICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGRlbGV0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGUuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fY3JlYXRlX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjMwCiAgICAvLyBAYWJpbWV0aG9kKHsgb25DcmVhdGU6ICdyZXF1aXJlJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIGNyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGUuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fYmFyZV9yb3V0aW5nQDExOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb1RlbXBsYXRlLmNyZWF0ZSgpIC0+IHZvaWQ6CmNyZWF0ZToKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5kZWxldGUoKSAtPiB2b2lkOgpkZWxldGU6CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UudXBkYXRlKCkgLT4gdm9pZDoKdXBkYXRlOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLmdyZWV0KG5hbWU6IGJ5dGVzKSAtPiBieXRlczoKZ3JlZXQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjEyCiAgICAvLyBncmVldChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgewogICAgcHJvdG8gMSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjQKICAgIC8vIGdyZWV0aW5nID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6ICcnIH0pCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMCAvLyAiZ3JlZXRpbmciCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoxMwogICAgLy8gcmV0dXJuIGAke3RoaXMuZ3JlZXRpbmcudmFsdWV9ICR7bmFtZX1gCiAgICBieXRlY18xIC8vICIiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAiICIKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC0xCiAgICBjb25jYXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGUuY29uc3RydWN0b3IoKSAtPiB2b2lkOgpjb25zdHJ1Y3RvcjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MjYKICAgIC8vIHN1cGVyKCkKICAgIGNhbGxzdWIgdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLmNvbnN0cnVjdG9yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjQKICAgIC8vIGdyZWV0aW5nID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6ICcnIH0pCiAgICBieXRlY18wIC8vICJncmVldGluZyIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MjcKICAgIC8vIHRoaXMuZ3JlZXRpbmcudmFsdWUgPSBUZW1wbGF0ZVZhcjxzdHJpbmc+KCdHUkVFVElORycpCiAgICBieXRlY18yIC8vIFRNUExfR1JFRVRJTkcKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UuY29uc3RydWN0b3IoKSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UuY29uc3RydWN0b3I6Cgp0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UuY29uc3RydWN0b3JfYmxvY2tAMToKCnRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5jb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0CiAgICAvLyBncmVldGluZyA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiAnJyB9KQogICAgYnl0ZWNfMCAvLyAiZ3JlZXRpbmciCiAgICBieXRlY18xIC8vICIiCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJncmVldGluZyIgIiIgVE1QTF9HUkVFVElORwoKbWFpbl9ibG9ja0AwOgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMgoKbWFpbl9pZl9ib2R5QDE6CiAgICBjYWxsc3ViIGNvbnN0cnVjdG9yCgptYWluX2FmdGVyX2lmX2Vsc2VAMjoKCm1haW5fYmxvY2tAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MjQKICAgIC8vIGV4cG9ydCBjbGFzcyBIZWxsb1RlbXBsYXRlIGV4dGVuZHMgSGVsbG9CYXNlIHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDExCgptYWluX2FiaV9yb3V0aW5nQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG9UZW1wbGF0ZSBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg0YzVjNjFiYSAvLyBtZXRob2QgImNyZWF0ZSgpdm9pZCIKICAgIHB1c2hieXRlcyAweDI0Mzc4ZDNjIC8vIG1ldGhvZCAiZGVsZXRlKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4YTBlODE4NzIgLy8gbWV0aG9kICJ1cGRhdGUoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhkMGEyODIwMCAvLyBtZXRob2QgImdyZWV0KHN0cmluZylzdHJpbmciCiAgICB1bmNvdmVyIDQKICAgIG1hdGNoIG1haW5fY3JlYXRlX3JvdXRlQDUgbWFpbl9kZWxldGVfcm91dGVANiBtYWluX3VwZGF0ZV9yb3V0ZUA3IG1haW5fZ3JlZXRfcm91dGVAOAoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDk6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTA6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG9UZW1wbGF0ZSBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGUuX19wdXlhX2FyYzRfcm91dGVyX19AMTM6CiAgICByZXR1cm4KCm1haW5fZ3JlZXRfcm91dGVAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTIKICAgIC8vIGdyZWV0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG9UZW1wbGF0ZSBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoxMgogICAgLy8gZ3JlZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHsKICAgIGNhbGxzdWIgZ3JlZXQKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb1RlbXBsYXRlLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX3VwZGF0ZV9yb3V0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo5CiAgICAvLyBAYWJpbWV0aG9kKHsgYWxsb3dBY3Rpb25zOiAnVXBkYXRlQXBwbGljYXRpb24nIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBwdXNoaW50IDQgLy8gVXBkYXRlQXBwbGljYXRpb24KICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBVcGRhdGVBcHBsaWNhdGlvbgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdXBkYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9UZW1wbGF0ZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl9kZWxldGVfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NgogICAgLy8gQGFiaW1ldGhvZCh7IGFsbG93QWN0aW9uczogJ0RlbGV0ZUFwcGxpY2F0aW9uJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgcHVzaGludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgRGVsZXRlQXBwbGljYXRpb24KICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGRlbGV0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGUuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fY3JlYXRlX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjMwCiAgICAvLyBAYWJpbWV0aG9kKHsgb25DcmVhdGU6ICdyZXF1aXJlJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIGNyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGUuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fYmFyZV9yb3V0aW5nQDExOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb1RlbXBsYXRlLmNyZWF0ZSgpIC0+IHZvaWQ6CmNyZWF0ZToKCmNyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLmRlbGV0ZSgpIC0+IHZvaWQ6CmRlbGV0ZToKCmRlbGV0ZV9ibG9ja0AwOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLnVwZGF0ZSgpIC0+IHZvaWQ6CnVwZGF0ZToKCnVwZGF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLmdyZWV0KG5hbWU6IGJ5dGVzKSAtPiBieXRlczoKZ3JlZXQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjEyCiAgICAvLyBncmVldChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgewogICAgcHJvdG8gMSAxCgpncmVldF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0CiAgICAvLyBncmVldGluZyA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiAnJyB9KQogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzAgLy8gImdyZWV0aW5nIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTMKICAgIC8vIHJldHVybiBgJHt0aGlzLmdyZWV0aW5nLnZhbHVlfSAke25hbWV9YAogICAgYnl0ZWNfMSAvLyAiIgogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgIiAiCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMQogICAgY29uY2F0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb1RlbXBsYXRlLmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKY29uc3RydWN0b3I6Cgpjb25zdHJ1Y3Rvcl9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoyNgogICAgLy8gc3VwZXIoKQogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UuY29uc3RydWN0b3IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NAogICAgLy8gZ3JlZXRpbmcgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogJycgfSkKICAgIGJ5dGVjXzAgLy8gImdyZWV0aW5nIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoyNwogICAgLy8gdGhpcy5ncmVldGluZy52YWx1ZSA9IFRlbXBsYXRlVmFyPHN0cmluZz4oJ0dSRUVUSU5HJykKICAgIGJ5dGVjXzIgLy8gVE1QTF9HUkVFVElORwogICAgYXBwX2dsb2JhbF9wdXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CnRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5jb25zdHJ1Y3RvcjoKCnRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5jb25zdHJ1Y3Rvcl9ibG9ja0AwOgoKdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgp0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UuY29uc3RydWN0b3JfYWZ0ZXJfaW5saW5lZF9AYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY29uc3RydWN0b3JAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NAogICAgLy8gZ3JlZXRpbmcgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogJycgfSkKICAgIGJ5dGVjXzAgLy8gImdyZWV0aW5nIgogICAgYnl0ZWNfMSAvLyAiIgogICAgYXBwX2dsb2JhbF9wdXQKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplate.arc56.json b/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplate.arc56.json index dab1e6792..89f9ed7cb 100644 --- a/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplate.arc56.json +++ b/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplate.arc56.json @@ -160,8 +160,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJncmVldGluZyIgIiIgVE1QTF9HUkVFVElORwogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMgoKbWFpbl9pZl9ib2R5QDE6CiAgICBjYWxsc3ViIGNvbnN0cnVjdG9yCgptYWluX2FmdGVyX2lmX2Vsc2VAMjoKCm1haW5fYmxvY2tAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MjQKICAgIC8vIGV4cG9ydCBjbGFzcyBIZWxsb1RlbXBsYXRlIGV4dGVuZHMgSGVsbG9CYXNlIHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDExCgptYWluX2FiaV9yb3V0aW5nQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG9UZW1wbGF0ZSBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg0YzVjNjFiYSAvLyBtZXRob2QgImNyZWF0ZSgpdm9pZCIKICAgIHB1c2hieXRlcyAweDI0Mzc4ZDNjIC8vIG1ldGhvZCAiZGVsZXRlKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4YTBlODE4NzIgLy8gbWV0aG9kICJ1cGRhdGUoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhkMGEyODIwMCAvLyBtZXRob2QgImdyZWV0KHN0cmluZylzdHJpbmciCiAgICB1bmNvdmVyIDQKICAgIG1hdGNoIG1haW5fY3JlYXRlX3JvdXRlQDUgbWFpbl9kZWxldGVfcm91dGVANiBtYWluX3VwZGF0ZV9yb3V0ZUA3IG1haW5fZ3JlZXRfcm91dGVAOAoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDk6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTA6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG9UZW1wbGF0ZSBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGUuX19wdXlhX2FyYzRfcm91dGVyX19AMTM6CiAgICByZXR1cm4KCm1haW5fZ3JlZXRfcm91dGVAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTIKICAgIC8vIGdyZWV0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG9UZW1wbGF0ZSBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoxMgogICAgLy8gZ3JlZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHsKICAgIGNhbGxzdWIgZ3JlZXQKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb1RlbXBsYXRlLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX3VwZGF0ZV9yb3V0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo5CiAgICAvLyBAYWJpbWV0aG9kKHsgYWxsb3dBY3Rpb25zOiAnVXBkYXRlQXBwbGljYXRpb24nIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBwdXNoaW50IDQgLy8gVXBkYXRlQXBwbGljYXRpb24KICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBVcGRhdGVBcHBsaWNhdGlvbgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdXBkYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9UZW1wbGF0ZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl9kZWxldGVfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NgogICAgLy8gQGFiaW1ldGhvZCh7IGFsbG93QWN0aW9uczogJ0RlbGV0ZUFwcGxpY2F0aW9uJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgcHVzaGludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgRGVsZXRlQXBwbGljYXRpb24KICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGRlbGV0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGUuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fY3JlYXRlX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjMwCiAgICAvLyBAYWJpbWV0aG9kKHsgb25DcmVhdGU6ICdyZXF1aXJlJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIGNyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGUuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fYmFyZV9yb3V0aW5nQDExOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb1RlbXBsYXRlLmNyZWF0ZSgpIC0+IHZvaWQ6CmNyZWF0ZToKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5kZWxldGUoKSAtPiB2b2lkOgpkZWxldGU6CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UudXBkYXRlKCkgLT4gdm9pZDoKdXBkYXRlOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLmdyZWV0KG5hbWU6IGJ5dGVzKSAtPiBieXRlczoKZ3JlZXQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjEyCiAgICAvLyBncmVldChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgewogICAgcHJvdG8gMSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjQKICAgIC8vIGdyZWV0aW5nID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6ICcnIH0pCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMCAvLyAiZ3JlZXRpbmciCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoxMwogICAgLy8gcmV0dXJuIGAke3RoaXMuZ3JlZXRpbmcudmFsdWV9ICR7bmFtZX1gCiAgICBieXRlY18xIC8vICIiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAiICIKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC0xCiAgICBjb25jYXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGUuY29uc3RydWN0b3IoKSAtPiB2b2lkOgpjb25zdHJ1Y3RvcjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MjYKICAgIC8vIHN1cGVyKCkKICAgIGNhbGxzdWIgdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLmNvbnN0cnVjdG9yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjQKICAgIC8vIGdyZWV0aW5nID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6ICcnIH0pCiAgICBieXRlY18wIC8vICJncmVldGluZyIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MjcKICAgIC8vIHRoaXMuZ3JlZXRpbmcudmFsdWUgPSBUZW1wbGF0ZVZhcjxzdHJpbmc+KCdHUkVFVElORycpCiAgICBieXRlY18yIC8vIFRNUExfR1JFRVRJTkcKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UuY29uc3RydWN0b3IoKSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UuY29uc3RydWN0b3I6Cgp0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UuY29uc3RydWN0b3JfYmxvY2tAMToKCnRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5jb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0CiAgICAvLyBncmVldGluZyA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiAnJyB9KQogICAgYnl0ZWNfMCAvLyAiZ3JlZXRpbmciCiAgICBieXRlY18xIC8vICIiCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJncmVldGluZyIgIiIgVE1QTF9HUkVFVElORwoKbWFpbl9ibG9ja0AwOgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMgoKbWFpbl9pZl9ib2R5QDE6CiAgICBjYWxsc3ViIGNvbnN0cnVjdG9yCgptYWluX2FmdGVyX2lmX2Vsc2VAMjoKCm1haW5fYmxvY2tAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MjQKICAgIC8vIGV4cG9ydCBjbGFzcyBIZWxsb1RlbXBsYXRlIGV4dGVuZHMgSGVsbG9CYXNlIHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDExCgptYWluX2FiaV9yb3V0aW5nQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG9UZW1wbGF0ZSBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg0YzVjNjFiYSAvLyBtZXRob2QgImNyZWF0ZSgpdm9pZCIKICAgIHB1c2hieXRlcyAweDI0Mzc4ZDNjIC8vIG1ldGhvZCAiZGVsZXRlKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4YTBlODE4NzIgLy8gbWV0aG9kICJ1cGRhdGUoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhkMGEyODIwMCAvLyBtZXRob2QgImdyZWV0KHN0cmluZylzdHJpbmciCiAgICB1bmNvdmVyIDQKICAgIG1hdGNoIG1haW5fY3JlYXRlX3JvdXRlQDUgbWFpbl9kZWxldGVfcm91dGVANiBtYWluX3VwZGF0ZV9yb3V0ZUA3IG1haW5fZ3JlZXRfcm91dGVAOAoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDk6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTA6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG9UZW1wbGF0ZSBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGUuX19wdXlhX2FyYzRfcm91dGVyX19AMTM6CiAgICByZXR1cm4KCm1haW5fZ3JlZXRfcm91dGVAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTIKICAgIC8vIGdyZWV0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjI0CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG9UZW1wbGF0ZSBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoxMgogICAgLy8gZ3JlZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHsKICAgIGNhbGxzdWIgZ3JlZXQKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb1RlbXBsYXRlLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX3VwZGF0ZV9yb3V0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo5CiAgICAvLyBAYWJpbWV0aG9kKHsgYWxsb3dBY3Rpb25zOiAnVXBkYXRlQXBwbGljYXRpb24nIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBwdXNoaW50IDQgLy8gVXBkYXRlQXBwbGljYXRpb24KICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBVcGRhdGVBcHBsaWNhdGlvbgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdXBkYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9UZW1wbGF0ZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl9kZWxldGVfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NgogICAgLy8gQGFiaW1ldGhvZCh7IGFsbG93QWN0aW9uczogJ0RlbGV0ZUFwcGxpY2F0aW9uJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgcHVzaGludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgRGVsZXRlQXBwbGljYXRpb24KICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGRlbGV0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGUuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fY3JlYXRlX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjMwCiAgICAvLyBAYWJpbWV0aG9kKHsgb25DcmVhdGU6ICdyZXF1aXJlJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIGNyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGUuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fYmFyZV9yb3V0aW5nQDExOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb1RlbXBsYXRlLmNyZWF0ZSgpIC0+IHZvaWQ6CmNyZWF0ZToKCmNyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLmRlbGV0ZSgpIC0+IHZvaWQ6CmRlbGV0ZToKCmRlbGV0ZV9ibG9ja0AwOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLnVwZGF0ZSgpIC0+IHZvaWQ6CnVwZGF0ZToKCnVwZGF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLmdyZWV0KG5hbWU6IGJ5dGVzKSAtPiBieXRlczoKZ3JlZXQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjEyCiAgICAvLyBncmVldChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgewogICAgcHJvdG8gMSAxCgpncmVldF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0CiAgICAvLyBncmVldGluZyA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiAnJyB9KQogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzAgLy8gImdyZWV0aW5nIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTMKICAgIC8vIHJldHVybiBgJHt0aGlzLmdyZWV0aW5nLnZhbHVlfSAke25hbWV9YAogICAgYnl0ZWNfMSAvLyAiIgogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgIiAiCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMQogICAgY29uY2F0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb1RlbXBsYXRlLmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKY29uc3RydWN0b3I6Cgpjb25zdHJ1Y3Rvcl9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoyNgogICAgLy8gc3VwZXIoKQogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UuY29uc3RydWN0b3IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NAogICAgLy8gZ3JlZXRpbmcgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogJycgfSkKICAgIGJ5dGVjXzAgLy8gImdyZWV0aW5nIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoyNwogICAgLy8gdGhpcy5ncmVldGluZy52YWx1ZSA9IFRlbXBsYXRlVmFyPHN0cmluZz4oJ0dSRUVUSU5HJykKICAgIGJ5dGVjXzIgLy8gVE1QTF9HUkVFVElORwogICAgYXBwX2dsb2JhbF9wdXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CnRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5jb25zdHJ1Y3RvcjoKCnRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5jb25zdHJ1Y3Rvcl9ibG9ja0AwOgoKdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgp0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UuY29uc3RydWN0b3JfYWZ0ZXJfaW5saW5lZF9AYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY29uc3RydWN0b3JAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NAogICAgLy8gZ3JlZXRpbmcgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogJycgfSkKICAgIGJ5dGVjXzAgLy8gImdyZWV0aW5nIgogICAgYnl0ZWNfMSAvLyAiIgogICAgYXBwX2dsb2JhbF9wdXQKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAEmAwhncmVldGluZwAAMRhAAAOIAKUxGyITQQCGNhoAgARMXGG6gAQkN408gASg6BhygATQooIATwSOBABOADwAKgACIkMxGSISRDEYIhNENhoBVwIAiABQSRUWVwYCTFCABBUffHVMULAjQv/XMRmBBBJEMRgiE0SIACwjQv/FMRmBBRJEMRgiE0SIABkjQv+zMRkiEkQxGCISRIgAByNC/6JC/56JiYmKAQEiKGVEKUxQgAEgUIv/UImIAAQoKmeJKClniQ==", @@ -172,7 +172,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplate.clear.teal b/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplate.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplate.clear.teal +++ b/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplate.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplateCustomPrefix.approval.teal b/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplateCustomPrefix.approval.teal index ee679942b..9fa331463 100644 --- a/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplateCustomPrefix.approval.teal +++ b/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplateCustomPrefix.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 bytecblock "greeting" "" PRFX_GREETING + +main_block@0: txn ApplicationID bnz main_after_if_else@2 @@ -126,16 +128,22 @@ main_bare_routing@11: // tests/approvals/precompiled-apps.algo.ts::HelloTemplateCustomPrefix.create() -> void: create: + +create_block@0: retsub // tests/approvals/precompiled-apps.algo.ts::HelloBase.delete() -> void: delete: + +delete_block@0: retsub // tests/approvals/precompiled-apps.algo.ts::HelloBase.update() -> void: update: + +update_block@0: retsub @@ -144,6 +152,8 @@ greet: // tests/approvals/precompiled-apps.algo.ts:12 // greet(name: string): string { proto 1 1 + +greet_block@0: // tests/approvals/precompiled-apps.algo.ts:4 // greeting = GlobalState({ initialValue: '' }) intc_0 // 0 @@ -164,6 +174,8 @@ greet: // tests/approvals/precompiled-apps.algo.ts::HelloTemplateCustomPrefix.constructor() -> void: constructor: + +constructor_block@0: // tests/approvals/precompiled-apps.algo.ts:36 // super() callsub tests/approvals/precompiled-apps.algo.ts::HelloBase.constructor @@ -180,6 +192,8 @@ constructor: // tests/approvals/precompiled-apps.algo.ts::HelloBase.constructor() -> void: tests/approvals/precompiled-apps.algo.ts::HelloBase.constructor: +tests/approvals/precompiled-apps.algo.ts::HelloBase.constructor_block@0: + tests/approvals/precompiled-apps.algo.ts::HelloBase.constructor_block@1: tests/approvals/precompiled-apps.algo.ts::HelloBase.constructor_after_inlined_@algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.constructor@2: diff --git a/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplateCustomPrefix.arc32.json b/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplateCustomPrefix.arc32.json index 8f05cf689..f53d2b7a8 100644 --- a/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplateCustomPrefix.arc32.json +++ b/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplateCustomPrefix.arc32.json @@ -22,8 +22,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJncmVldGluZyIgIiIgUFJGWF9HUkVFVElORwogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMgoKbWFpbl9pZl9ib2R5QDE6CiAgICBjYWxsc3ViIGNvbnN0cnVjdG9yCgptYWluX2FmdGVyX2lmX2Vsc2VAMjoKCm1haW5fYmxvY2tAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MzQKICAgIC8vIGV4cG9ydCBjbGFzcyBIZWxsb1RlbXBsYXRlQ3VzdG9tUHJlZml4IGV4dGVuZHMgSGVsbG9CYXNlIHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDExCgptYWluX2FiaV9yb3V0aW5nQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjM0CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG9UZW1wbGF0ZUN1c3RvbVByZWZpeCBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg0YzVjNjFiYSAvLyBtZXRob2QgImNyZWF0ZSgpdm9pZCIKICAgIHB1c2hieXRlcyAweDI0Mzc4ZDNjIC8vIG1ldGhvZCAiZGVsZXRlKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4YTBlODE4NzIgLy8gbWV0aG9kICJ1cGRhdGUoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhkMGEyODIwMCAvLyBtZXRob2QgImdyZWV0KHN0cmluZylzdHJpbmciCiAgICB1bmNvdmVyIDQKICAgIG1hdGNoIG1haW5fY3JlYXRlX3JvdXRlQDUgbWFpbl9kZWxldGVfcm91dGVANiBtYWluX3VwZGF0ZV9yb3V0ZUA3IG1haW5fZ3JlZXRfcm91dGVAOAoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDk6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTA6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjM0CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG9UZW1wbGF0ZUN1c3RvbVByZWZpeCBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGVDdXN0b21QcmVmaXguX19wdXlhX2FyYzRfcm91dGVyX19AMTM6CiAgICByZXR1cm4KCm1haW5fZ3JlZXRfcm91dGVAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTIKICAgIC8vIGdyZWV0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjM0CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG9UZW1wbGF0ZUN1c3RvbVByZWZpeCBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoxMgogICAgLy8gZ3JlZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHsKICAgIGNhbGxzdWIgZ3JlZXQKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb1RlbXBsYXRlQ3VzdG9tUHJlZml4Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX3VwZGF0ZV9yb3V0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo5CiAgICAvLyBAYWJpbWV0aG9kKHsgYWxsb3dBY3Rpb25zOiAnVXBkYXRlQXBwbGljYXRpb24nIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBwdXNoaW50IDQgLy8gVXBkYXRlQXBwbGljYXRpb24KICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBVcGRhdGVBcHBsaWNhdGlvbgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdXBkYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9UZW1wbGF0ZUN1c3RvbVByZWZpeC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl9kZWxldGVfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NgogICAgLy8gQGFiaW1ldGhvZCh7IGFsbG93QWN0aW9uczogJ0RlbGV0ZUFwcGxpY2F0aW9uJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgcHVzaGludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgRGVsZXRlQXBwbGljYXRpb24KICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGRlbGV0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGVDdXN0b21QcmVmaXguX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fY3JlYXRlX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjQwCiAgICAvLyBAYWJpbWV0aG9kKHsgb25DcmVhdGU6ICdyZXF1aXJlJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIGNyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGVDdXN0b21QcmVmaXguX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fYmFyZV9yb3V0aW5nQDExOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb1RlbXBsYXRlQ3VzdG9tUHJlZml4LmNyZWF0ZSgpIC0+IHZvaWQ6CmNyZWF0ZToKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5kZWxldGUoKSAtPiB2b2lkOgpkZWxldGU6CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UudXBkYXRlKCkgLT4gdm9pZDoKdXBkYXRlOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLmdyZWV0KG5hbWU6IGJ5dGVzKSAtPiBieXRlczoKZ3JlZXQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjEyCiAgICAvLyBncmVldChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgewogICAgcHJvdG8gMSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjQKICAgIC8vIGdyZWV0aW5nID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6ICcnIH0pCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMCAvLyAiZ3JlZXRpbmciCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoxMwogICAgLy8gcmV0dXJuIGAke3RoaXMuZ3JlZXRpbmcudmFsdWV9ICR7bmFtZX1gCiAgICBieXRlY18xIC8vICIiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAiICIKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC0xCiAgICBjb25jYXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGVDdXN0b21QcmVmaXguY29uc3RydWN0b3IoKSAtPiB2b2lkOgpjb25zdHJ1Y3RvcjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MzYKICAgIC8vIHN1cGVyKCkKICAgIGNhbGxzdWIgdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLmNvbnN0cnVjdG9yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjQKICAgIC8vIGdyZWV0aW5nID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6ICcnIH0pCiAgICBieXRlY18wIC8vICJncmVldGluZyIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MzcKICAgIC8vIHRoaXMuZ3JlZXRpbmcudmFsdWUgPSBUZW1wbGF0ZVZhcjxzdHJpbmc+KCdHUkVFVElORycsICdQUkZYXycpCiAgICBieXRlY18yIC8vIFBSRlhfR1JFRVRJTkcKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UuY29uc3RydWN0b3IoKSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UuY29uc3RydWN0b3I6Cgp0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UuY29uc3RydWN0b3JfYmxvY2tAMToKCnRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5jb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0CiAgICAvLyBncmVldGluZyA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiAnJyB9KQogICAgYnl0ZWNfMCAvLyAiZ3JlZXRpbmciCiAgICBieXRlY18xIC8vICIiCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJncmVldGluZyIgIiIgUFJGWF9HUkVFVElORwoKbWFpbl9ibG9ja0AwOgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMgoKbWFpbl9pZl9ib2R5QDE6CiAgICBjYWxsc3ViIGNvbnN0cnVjdG9yCgptYWluX2FmdGVyX2lmX2Vsc2VAMjoKCm1haW5fYmxvY2tAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MzQKICAgIC8vIGV4cG9ydCBjbGFzcyBIZWxsb1RlbXBsYXRlQ3VzdG9tUHJlZml4IGV4dGVuZHMgSGVsbG9CYXNlIHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDExCgptYWluX2FiaV9yb3V0aW5nQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjM0CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG9UZW1wbGF0ZUN1c3RvbVByZWZpeCBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg0YzVjNjFiYSAvLyBtZXRob2QgImNyZWF0ZSgpdm9pZCIKICAgIHB1c2hieXRlcyAweDI0Mzc4ZDNjIC8vIG1ldGhvZCAiZGVsZXRlKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4YTBlODE4NzIgLy8gbWV0aG9kICJ1cGRhdGUoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhkMGEyODIwMCAvLyBtZXRob2QgImdyZWV0KHN0cmluZylzdHJpbmciCiAgICB1bmNvdmVyIDQKICAgIG1hdGNoIG1haW5fY3JlYXRlX3JvdXRlQDUgbWFpbl9kZWxldGVfcm91dGVANiBtYWluX3VwZGF0ZV9yb3V0ZUA3IG1haW5fZ3JlZXRfcm91dGVAOAoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDk6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTA6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjM0CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG9UZW1wbGF0ZUN1c3RvbVByZWZpeCBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGVDdXN0b21QcmVmaXguX19wdXlhX2FyYzRfcm91dGVyX19AMTM6CiAgICByZXR1cm4KCm1haW5fZ3JlZXRfcm91dGVAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTIKICAgIC8vIGdyZWV0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjM0CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG9UZW1wbGF0ZUN1c3RvbVByZWZpeCBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoxMgogICAgLy8gZ3JlZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHsKICAgIGNhbGxzdWIgZ3JlZXQKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb1RlbXBsYXRlQ3VzdG9tUHJlZml4Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX3VwZGF0ZV9yb3V0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo5CiAgICAvLyBAYWJpbWV0aG9kKHsgYWxsb3dBY3Rpb25zOiAnVXBkYXRlQXBwbGljYXRpb24nIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBwdXNoaW50IDQgLy8gVXBkYXRlQXBwbGljYXRpb24KICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBVcGRhdGVBcHBsaWNhdGlvbgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdXBkYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9UZW1wbGF0ZUN1c3RvbVByZWZpeC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl9kZWxldGVfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NgogICAgLy8gQGFiaW1ldGhvZCh7IGFsbG93QWN0aW9uczogJ0RlbGV0ZUFwcGxpY2F0aW9uJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgcHVzaGludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgRGVsZXRlQXBwbGljYXRpb24KICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGRlbGV0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGVDdXN0b21QcmVmaXguX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fY3JlYXRlX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjQwCiAgICAvLyBAYWJpbWV0aG9kKHsgb25DcmVhdGU6ICdyZXF1aXJlJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIGNyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGVDdXN0b21QcmVmaXguX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fYmFyZV9yb3V0aW5nQDExOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb1RlbXBsYXRlQ3VzdG9tUHJlZml4LmNyZWF0ZSgpIC0+IHZvaWQ6CmNyZWF0ZToKCmNyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLmRlbGV0ZSgpIC0+IHZvaWQ6CmRlbGV0ZToKCmRlbGV0ZV9ibG9ja0AwOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLnVwZGF0ZSgpIC0+IHZvaWQ6CnVwZGF0ZToKCnVwZGF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLmdyZWV0KG5hbWU6IGJ5dGVzKSAtPiBieXRlczoKZ3JlZXQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjEyCiAgICAvLyBncmVldChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgewogICAgcHJvdG8gMSAxCgpncmVldF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0CiAgICAvLyBncmVldGluZyA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiAnJyB9KQogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzAgLy8gImdyZWV0aW5nIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTMKICAgIC8vIHJldHVybiBgJHt0aGlzLmdyZWV0aW5nLnZhbHVlfSAke25hbWV9YAogICAgYnl0ZWNfMSAvLyAiIgogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgIiAiCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMQogICAgY29uY2F0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb1RlbXBsYXRlQ3VzdG9tUHJlZml4LmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKY29uc3RydWN0b3I6Cgpjb25zdHJ1Y3Rvcl9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czozNgogICAgLy8gc3VwZXIoKQogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UuY29uc3RydWN0b3IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NAogICAgLy8gZ3JlZXRpbmcgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogJycgfSkKICAgIGJ5dGVjXzAgLy8gImdyZWV0aW5nIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czozNwogICAgLy8gdGhpcy5ncmVldGluZy52YWx1ZSA9IFRlbXBsYXRlVmFyPHN0cmluZz4oJ0dSRUVUSU5HJywgJ1BSRlhfJykKICAgIGJ5dGVjXzIgLy8gUFJGWF9HUkVFVElORwogICAgYXBwX2dsb2JhbF9wdXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CnRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5jb25zdHJ1Y3RvcjoKCnRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5jb25zdHJ1Y3Rvcl9ibG9ja0AwOgoKdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgp0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UuY29uc3RydWN0b3JfYWZ0ZXJfaW5saW5lZF9AYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY29uc3RydWN0b3JAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NAogICAgLy8gZ3JlZXRpbmcgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogJycgfSkKICAgIGJ5dGVjXzAgLy8gImdyZWV0aW5nIgogICAgYnl0ZWNfMSAvLyAiIgogICAgYXBwX2dsb2JhbF9wdXQKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplateCustomPrefix.arc56.json b/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplateCustomPrefix.arc56.json index 98d0a4694..168081d35 100644 --- a/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplateCustomPrefix.arc56.json +++ b/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplateCustomPrefix.arc56.json @@ -160,8 +160,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJncmVldGluZyIgIiIgUFJGWF9HUkVFVElORwogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMgoKbWFpbl9pZl9ib2R5QDE6CiAgICBjYWxsc3ViIGNvbnN0cnVjdG9yCgptYWluX2FmdGVyX2lmX2Vsc2VAMjoKCm1haW5fYmxvY2tAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MzQKICAgIC8vIGV4cG9ydCBjbGFzcyBIZWxsb1RlbXBsYXRlQ3VzdG9tUHJlZml4IGV4dGVuZHMgSGVsbG9CYXNlIHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDExCgptYWluX2FiaV9yb3V0aW5nQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjM0CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG9UZW1wbGF0ZUN1c3RvbVByZWZpeCBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg0YzVjNjFiYSAvLyBtZXRob2QgImNyZWF0ZSgpdm9pZCIKICAgIHB1c2hieXRlcyAweDI0Mzc4ZDNjIC8vIG1ldGhvZCAiZGVsZXRlKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4YTBlODE4NzIgLy8gbWV0aG9kICJ1cGRhdGUoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhkMGEyODIwMCAvLyBtZXRob2QgImdyZWV0KHN0cmluZylzdHJpbmciCiAgICB1bmNvdmVyIDQKICAgIG1hdGNoIG1haW5fY3JlYXRlX3JvdXRlQDUgbWFpbl9kZWxldGVfcm91dGVANiBtYWluX3VwZGF0ZV9yb3V0ZUA3IG1haW5fZ3JlZXRfcm91dGVAOAoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDk6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTA6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjM0CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG9UZW1wbGF0ZUN1c3RvbVByZWZpeCBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGVDdXN0b21QcmVmaXguX19wdXlhX2FyYzRfcm91dGVyX19AMTM6CiAgICByZXR1cm4KCm1haW5fZ3JlZXRfcm91dGVAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTIKICAgIC8vIGdyZWV0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjM0CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG9UZW1wbGF0ZUN1c3RvbVByZWZpeCBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoxMgogICAgLy8gZ3JlZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHsKICAgIGNhbGxzdWIgZ3JlZXQKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb1RlbXBsYXRlQ3VzdG9tUHJlZml4Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX3VwZGF0ZV9yb3V0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo5CiAgICAvLyBAYWJpbWV0aG9kKHsgYWxsb3dBY3Rpb25zOiAnVXBkYXRlQXBwbGljYXRpb24nIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBwdXNoaW50IDQgLy8gVXBkYXRlQXBwbGljYXRpb24KICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBVcGRhdGVBcHBsaWNhdGlvbgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdXBkYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9UZW1wbGF0ZUN1c3RvbVByZWZpeC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl9kZWxldGVfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NgogICAgLy8gQGFiaW1ldGhvZCh7IGFsbG93QWN0aW9uczogJ0RlbGV0ZUFwcGxpY2F0aW9uJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgcHVzaGludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgRGVsZXRlQXBwbGljYXRpb24KICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGRlbGV0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGVDdXN0b21QcmVmaXguX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fY3JlYXRlX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjQwCiAgICAvLyBAYWJpbWV0aG9kKHsgb25DcmVhdGU6ICdyZXF1aXJlJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIGNyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGVDdXN0b21QcmVmaXguX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fYmFyZV9yb3V0aW5nQDExOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb1RlbXBsYXRlQ3VzdG9tUHJlZml4LmNyZWF0ZSgpIC0+IHZvaWQ6CmNyZWF0ZToKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5kZWxldGUoKSAtPiB2b2lkOgpkZWxldGU6CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UudXBkYXRlKCkgLT4gdm9pZDoKdXBkYXRlOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLmdyZWV0KG5hbWU6IGJ5dGVzKSAtPiBieXRlczoKZ3JlZXQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjEyCiAgICAvLyBncmVldChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgewogICAgcHJvdG8gMSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjQKICAgIC8vIGdyZWV0aW5nID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6ICcnIH0pCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMCAvLyAiZ3JlZXRpbmciCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoxMwogICAgLy8gcmV0dXJuIGAke3RoaXMuZ3JlZXRpbmcudmFsdWV9ICR7bmFtZX1gCiAgICBieXRlY18xIC8vICIiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAiICIKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC0xCiAgICBjb25jYXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGVDdXN0b21QcmVmaXguY29uc3RydWN0b3IoKSAtPiB2b2lkOgpjb25zdHJ1Y3RvcjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MzYKICAgIC8vIHN1cGVyKCkKICAgIGNhbGxzdWIgdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLmNvbnN0cnVjdG9yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjQKICAgIC8vIGdyZWV0aW5nID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6ICcnIH0pCiAgICBieXRlY18wIC8vICJncmVldGluZyIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MzcKICAgIC8vIHRoaXMuZ3JlZXRpbmcudmFsdWUgPSBUZW1wbGF0ZVZhcjxzdHJpbmc+KCdHUkVFVElORycsICdQUkZYXycpCiAgICBieXRlY18yIC8vIFBSRlhfR1JFRVRJTkcKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UuY29uc3RydWN0b3IoKSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UuY29uc3RydWN0b3I6Cgp0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UuY29uc3RydWN0b3JfYmxvY2tAMToKCnRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5jb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0CiAgICAvLyBncmVldGluZyA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiAnJyB9KQogICAgYnl0ZWNfMCAvLyAiZ3JlZXRpbmciCiAgICBieXRlY18xIC8vICIiCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJncmVldGluZyIgIiIgUFJGWF9HUkVFVElORwoKbWFpbl9ibG9ja0AwOgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMgoKbWFpbl9pZl9ib2R5QDE6CiAgICBjYWxsc3ViIGNvbnN0cnVjdG9yCgptYWluX2FmdGVyX2lmX2Vsc2VAMjoKCm1haW5fYmxvY2tAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MzQKICAgIC8vIGV4cG9ydCBjbGFzcyBIZWxsb1RlbXBsYXRlQ3VzdG9tUHJlZml4IGV4dGVuZHMgSGVsbG9CYXNlIHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDExCgptYWluX2FiaV9yb3V0aW5nQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjM0CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG9UZW1wbGF0ZUN1c3RvbVByZWZpeCBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg0YzVjNjFiYSAvLyBtZXRob2QgImNyZWF0ZSgpdm9pZCIKICAgIHB1c2hieXRlcyAweDI0Mzc4ZDNjIC8vIG1ldGhvZCAiZGVsZXRlKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4YTBlODE4NzIgLy8gbWV0aG9kICJ1cGRhdGUoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhkMGEyODIwMCAvLyBtZXRob2QgImdyZWV0KHN0cmluZylzdHJpbmciCiAgICB1bmNvdmVyIDQKICAgIG1hdGNoIG1haW5fY3JlYXRlX3JvdXRlQDUgbWFpbl9kZWxldGVfcm91dGVANiBtYWluX3VwZGF0ZV9yb3V0ZUA3IG1haW5fZ3JlZXRfcm91dGVAOAoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDk6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTA6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjM0CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG9UZW1wbGF0ZUN1c3RvbVByZWZpeCBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGVDdXN0b21QcmVmaXguX19wdXlhX2FyYzRfcm91dGVyX19AMTM6CiAgICByZXR1cm4KCm1haW5fZ3JlZXRfcm91dGVAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTIKICAgIC8vIGdyZWV0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjM0CiAgICAvLyBleHBvcnQgY2xhc3MgSGVsbG9UZW1wbGF0ZUN1c3RvbVByZWZpeCBleHRlbmRzIEhlbGxvQmFzZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czoxMgogICAgLy8gZ3JlZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHsKICAgIGNhbGxzdWIgZ3JlZXQKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb1RlbXBsYXRlQ3VzdG9tUHJlZml4Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX3VwZGF0ZV9yb3V0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo5CiAgICAvLyBAYWJpbWV0aG9kKHsgYWxsb3dBY3Rpb25zOiAnVXBkYXRlQXBwbGljYXRpb24nIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBwdXNoaW50IDQgLy8gVXBkYXRlQXBwbGljYXRpb24KICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBVcGRhdGVBcHBsaWNhdGlvbgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdXBkYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9UZW1wbGF0ZUN1c3RvbVByZWZpeC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl9kZWxldGVfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NgogICAgLy8gQGFiaW1ldGhvZCh7IGFsbG93QWN0aW9uczogJ0RlbGV0ZUFwcGxpY2F0aW9uJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgcHVzaGludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgRGVsZXRlQXBwbGljYXRpb24KICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGRlbGV0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGVDdXN0b21QcmVmaXguX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fY3JlYXRlX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjQwCiAgICAvLyBAYWJpbWV0aG9kKHsgb25DcmVhdGU6ICdyZXF1aXJlJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIGNyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvVGVtcGxhdGVDdXN0b21QcmVmaXguX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fYmFyZV9yb3V0aW5nQDExOgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb1RlbXBsYXRlQ3VzdG9tUHJlZml4LmNyZWF0ZSgpIC0+IHZvaWQ6CmNyZWF0ZToKCmNyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLmRlbGV0ZSgpIC0+IHZvaWQ6CmRlbGV0ZToKCmRlbGV0ZV9ibG9ja0AwOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLnVwZGF0ZSgpIC0+IHZvaWQ6CnVwZGF0ZToKCnVwZGF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLmdyZWV0KG5hbWU6IGJ5dGVzKSAtPiBieXRlczoKZ3JlZXQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjEyCiAgICAvLyBncmVldChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgewogICAgcHJvdG8gMSAxCgpncmVldF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0CiAgICAvLyBncmVldGluZyA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiAnJyB9KQogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzAgLy8gImdyZWV0aW5nIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6MTMKICAgIC8vIHJldHVybiBgJHt0aGlzLmdyZWV0aW5nLnZhbHVlfSAke25hbWV9YAogICAgYnl0ZWNfMSAvLyAiIgogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgIiAiCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMQogICAgY29uY2F0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb1RlbXBsYXRlQ3VzdG9tUHJlZml4LmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKY29uc3RydWN0b3I6Cgpjb25zdHJ1Y3Rvcl9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czozNgogICAgLy8gc3VwZXIoKQogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UuY29uc3RydWN0b3IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NAogICAgLy8gZ3JlZXRpbmcgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogJycgfSkKICAgIGJ5dGVjXzAgLy8gImdyZWV0aW5nIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czozNwogICAgLy8gdGhpcy5ncmVldGluZy52YWx1ZSA9IFRlbXBsYXRlVmFyPHN0cmluZz4oJ0dSRUVUSU5HJywgJ1BSRlhfJykKICAgIGJ5dGVjXzIgLy8gUFJGWF9HUkVFVElORwogICAgYXBwX2dsb2JhbF9wdXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CnRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5jb25zdHJ1Y3RvcjoKCnRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkhlbGxvQmFzZS5jb25zdHJ1Y3Rvcl9ibG9ja0AwOgoKdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6SGVsbG9CYXNlLmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgp0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpIZWxsb0Jhc2UuY29uc3RydWN0b3JfYWZ0ZXJfaW5saW5lZF9AYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY29uc3RydWN0b3JAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NAogICAgLy8gZ3JlZXRpbmcgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogJycgfSkKICAgIGJ5dGVjXzAgLy8gImdyZWV0aW5nIgogICAgYnl0ZWNfMSAvLyAiIgogICAgYXBwX2dsb2JhbF9wdXQKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAEmAwhncmVldGluZwAAMRhAAAOIAKUxGyITQQCGNhoAgARMXGG6gAQkN408gASg6BhygATQooIATwSOBABOADwAKgACIkMxGSISRDEYIhNENhoBVwIAiABQSRUWVwYCTFCABBUffHVMULAjQv/XMRmBBBJEMRgiE0SIACwjQv/FMRmBBRJEMRgiE0SIABkjQv+zMRkiEkQxGCISRIgAByNC/6JC/56JiYmKAQEiKGVEKUxQgAEgUIv/UImIAAQoKmeJKClniQ==", @@ -172,7 +172,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplateCustomPrefix.clear.teal b/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplateCustomPrefix.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplateCustomPrefix.clear.teal +++ b/tests/approvals/out/unoptimized/precompiled-apps/HelloTemplateCustomPrefix.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/precompiled-apps/LargeProgram.approval.teal b/tests/approvals/out/unoptimized/precompiled-apps/LargeProgram.approval.teal index 1d98f9fbe..4d8dc4422 100644 --- a/tests/approvals/out/unoptimized/precompiled-apps/LargeProgram.approval.teal +++ b/tests/approvals/out/unoptimized/precompiled-apps/LargeProgram.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 +main_block@0: + main_block@1: // tests/approvals/precompiled-apps.algo.ts:48 // export class LargeProgram extends Contract { @@ -96,6 +98,8 @@ main___algots__.defaultCreate@8: // tests/approvals/precompiled-apps.algo.ts::getBigBytes() -> bytes: getBigBytes: + +getBigBytes_block@0: // tests/approvals/precompiled-apps.algo.ts:45 // return op.bzero(4096) pushint 4096 // 4096 @@ -105,6 +109,8 @@ getBigBytes: // tests/approvals/precompiled-apps.algo.ts::LargeProgram.getBigBytesLength() -> uint64: getBigBytesLength: + +getBigBytesLength_block@0: // tests/approvals/precompiled-apps.algo.ts:50 // return getBigBytes().length callsub getBigBytes @@ -114,9 +120,13 @@ getBigBytesLength: // tests/approvals/precompiled-apps.algo.ts::LargeProgram.delete() -> void: delete: + +delete_block@0: retsub // tests/approvals/precompiled-apps.algo.ts::LargeProgram.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/precompiled-apps/LargeProgram.arc32.json b/tests/approvals/out/unoptimized/precompiled-apps/LargeProgram.arc32.json index b41ba8122..1960aed27 100644 --- a/tests/approvals/out/unoptimized/precompiled-apps/LargeProgram.arc32.json +++ b/tests/approvals/out/unoptimized/precompiled-apps/LargeProgram.arc32.json @@ -12,8 +12,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjQ4CiAgICAvLyBleHBvcnQgY2xhc3MgTGFyZ2VQcm9ncmFtIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANwoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0OAogICAgLy8gZXhwb3J0IGNsYXNzIExhcmdlUHJvZ3JhbSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDAyYmYzMGNmIC8vIG1ldGhvZCAiZ2V0QmlnQnl0ZXNMZW5ndGgoKXVpbnQ2NCIKICAgIHB1c2hieXRlcyAweDI0Mzc4ZDNjIC8vIG1ldGhvZCAiZGVsZXRlKCl2b2lkIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX2dldEJpZ0J5dGVzTGVuZ3RoX3JvdXRlQDMgbWFpbl9kZWxldGVfcm91dGVANAoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDU6CgptYWluX3N3aXRjaF9jYXNlX25leHRANjoKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NDgKICAgIC8vIGV4cG9ydCBjbGFzcyBMYXJnZVByb2dyYW0gZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkxhcmdlUHJvZ3JhbS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMjoKICAgIHJldHVybgoKbWFpbl9kZWxldGVfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NTMKICAgIC8vIEBhYmltZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdEZWxldGVBcHBsaWNhdGlvbicgfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIHB1c2hpbnQgNSAvLyBEZWxldGVBcHBsaWNhdGlvbgogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IERlbGV0ZUFwcGxpY2F0aW9uCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBkZWxldGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpMYXJnZVByb2dyYW0uX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCm1haW5fZ2V0QmlnQnl0ZXNMZW5ndGhfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NDkKICAgIC8vIGdldEJpZ0J5dGVzTGVuZ3RoKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBnZXRCaWdCeXRlc0xlbmd0aAogICAgaXRvYgogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6TGFyZ2VQcm9ncmFtLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX2JhcmVfcm91dGluZ0A3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0OAogICAgLy8gZXhwb3J0IGNsYXNzIExhcmdlUHJvZ3JhbSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAOToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDExCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0OAogICAgLy8gZXhwb3J0IGNsYXNzIExhcmdlUHJvZ3JhbSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6TGFyZ2VQcm9ncmFtLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6Z2V0QmlnQnl0ZXMoKSAtPiBieXRlczoKZ2V0QmlnQnl0ZXM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjQ1CiAgICAvLyByZXR1cm4gb3AuYnplcm8oNDA5NikKICAgIHB1c2hpbnQgNDA5NiAvLyA0MDk2CiAgICBiemVybwogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6TGFyZ2VQcm9ncmFtLmdldEJpZ0J5dGVzTGVuZ3RoKCkgLT4gdWludDY0OgpnZXRCaWdCeXRlc0xlbmd0aDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NTAKICAgIC8vIHJldHVybiBnZXRCaWdCeXRlcygpLmxlbmd0aAogICAgY2FsbHN1YiBnZXRCaWdCeXRlcwogICAgbGVuCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpMYXJnZVByb2dyYW0uZGVsZXRlKCkgLT4gdm9pZDoKZGVsZXRlOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6TGFyZ2VQcm9ncmFtLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjQ4CiAgICAvLyBleHBvcnQgY2xhc3MgTGFyZ2VQcm9ncmFtIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANwoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0OAogICAgLy8gZXhwb3J0IGNsYXNzIExhcmdlUHJvZ3JhbSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDAyYmYzMGNmIC8vIG1ldGhvZCAiZ2V0QmlnQnl0ZXNMZW5ndGgoKXVpbnQ2NCIKICAgIHB1c2hieXRlcyAweDI0Mzc4ZDNjIC8vIG1ldGhvZCAiZGVsZXRlKCl2b2lkIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX2dldEJpZ0J5dGVzTGVuZ3RoX3JvdXRlQDMgbWFpbl9kZWxldGVfcm91dGVANAoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDU6CgptYWluX3N3aXRjaF9jYXNlX25leHRANjoKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NDgKICAgIC8vIGV4cG9ydCBjbGFzcyBMYXJnZVByb2dyYW0gZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkxhcmdlUHJvZ3JhbS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMjoKICAgIHJldHVybgoKbWFpbl9kZWxldGVfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NTMKICAgIC8vIEBhYmltZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdEZWxldGVBcHBsaWNhdGlvbicgfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIHB1c2hpbnQgNSAvLyBEZWxldGVBcHBsaWNhdGlvbgogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IERlbGV0ZUFwcGxpY2F0aW9uCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBkZWxldGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpMYXJnZVByb2dyYW0uX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCm1haW5fZ2V0QmlnQnl0ZXNMZW5ndGhfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NDkKICAgIC8vIGdldEJpZ0J5dGVzTGVuZ3RoKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBnZXRCaWdCeXRlc0xlbmd0aAogICAgaXRvYgogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6TGFyZ2VQcm9ncmFtLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX2JhcmVfcm91dGluZ0A3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0OAogICAgLy8gZXhwb3J0IGNsYXNzIExhcmdlUHJvZ3JhbSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAOToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDExCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0OAogICAgLy8gZXhwb3J0IGNsYXNzIExhcmdlUHJvZ3JhbSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6TGFyZ2VQcm9ncmFtLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6Z2V0QmlnQnl0ZXMoKSAtPiBieXRlczoKZ2V0QmlnQnl0ZXM6CgpnZXRCaWdCeXRlc19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0NQogICAgLy8gcmV0dXJuIG9wLmJ6ZXJvKDQwOTYpCiAgICBwdXNoaW50IDQwOTYgLy8gNDA5NgogICAgYnplcm8KICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkxhcmdlUHJvZ3JhbS5nZXRCaWdCeXRlc0xlbmd0aCgpIC0+IHVpbnQ2NDoKZ2V0QmlnQnl0ZXNMZW5ndGg6CgpnZXRCaWdCeXRlc0xlbmd0aF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo1MAogICAgLy8gcmV0dXJuIGdldEJpZ0J5dGVzKCkubGVuZ3RoCiAgICBjYWxsc3ViIGdldEJpZ0J5dGVzCiAgICBsZW4KICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkxhcmdlUHJvZ3JhbS5kZWxldGUoKSAtPiB2b2lkOgpkZWxldGU6CgpkZWxldGVfYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkxhcmdlUHJvZ3JhbS5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/precompiled-apps/LargeProgram.arc56.json b/tests/approvals/out/unoptimized/precompiled-apps/LargeProgram.arc56.json index 2c612769a..6295a4598 100644 --- a/tests/approvals/out/unoptimized/precompiled-apps/LargeProgram.arc56.json +++ b/tests/approvals/out/unoptimized/precompiled-apps/LargeProgram.arc56.json @@ -105,8 +105,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjQ4CiAgICAvLyBleHBvcnQgY2xhc3MgTGFyZ2VQcm9ncmFtIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANwoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0OAogICAgLy8gZXhwb3J0IGNsYXNzIExhcmdlUHJvZ3JhbSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDAyYmYzMGNmIC8vIG1ldGhvZCAiZ2V0QmlnQnl0ZXNMZW5ndGgoKXVpbnQ2NCIKICAgIHB1c2hieXRlcyAweDI0Mzc4ZDNjIC8vIG1ldGhvZCAiZGVsZXRlKCl2b2lkIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX2dldEJpZ0J5dGVzTGVuZ3RoX3JvdXRlQDMgbWFpbl9kZWxldGVfcm91dGVANAoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDU6CgptYWluX3N3aXRjaF9jYXNlX25leHRANjoKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NDgKICAgIC8vIGV4cG9ydCBjbGFzcyBMYXJnZVByb2dyYW0gZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkxhcmdlUHJvZ3JhbS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMjoKICAgIHJldHVybgoKbWFpbl9kZWxldGVfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NTMKICAgIC8vIEBhYmltZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdEZWxldGVBcHBsaWNhdGlvbicgfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIHB1c2hpbnQgNSAvLyBEZWxldGVBcHBsaWNhdGlvbgogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IERlbGV0ZUFwcGxpY2F0aW9uCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBkZWxldGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpMYXJnZVByb2dyYW0uX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCm1haW5fZ2V0QmlnQnl0ZXNMZW5ndGhfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NDkKICAgIC8vIGdldEJpZ0J5dGVzTGVuZ3RoKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBnZXRCaWdCeXRlc0xlbmd0aAogICAgaXRvYgogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6TGFyZ2VQcm9ncmFtLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX2JhcmVfcm91dGluZ0A3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0OAogICAgLy8gZXhwb3J0IGNsYXNzIExhcmdlUHJvZ3JhbSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAOToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDExCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0OAogICAgLy8gZXhwb3J0IGNsYXNzIExhcmdlUHJvZ3JhbSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6TGFyZ2VQcm9ncmFtLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6Z2V0QmlnQnl0ZXMoKSAtPiBieXRlczoKZ2V0QmlnQnl0ZXM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjQ1CiAgICAvLyByZXR1cm4gb3AuYnplcm8oNDA5NikKICAgIHB1c2hpbnQgNDA5NiAvLyA0MDk2CiAgICBiemVybwogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6TGFyZ2VQcm9ncmFtLmdldEJpZ0J5dGVzTGVuZ3RoKCkgLT4gdWludDY0OgpnZXRCaWdCeXRlc0xlbmd0aDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NTAKICAgIC8vIHJldHVybiBnZXRCaWdCeXRlcygpLmxlbmd0aAogICAgY2FsbHN1YiBnZXRCaWdCeXRlcwogICAgbGVuCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpMYXJnZVByb2dyYW0uZGVsZXRlKCkgLT4gdm9pZDoKZGVsZXRlOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6TGFyZ2VQcm9ncmFtLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjQ4CiAgICAvLyBleHBvcnQgY2xhc3MgTGFyZ2VQcm9ncmFtIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdANwoKbWFpbl9hYmlfcm91dGluZ0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0OAogICAgLy8gZXhwb3J0IGNsYXNzIExhcmdlUHJvZ3JhbSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDAyYmYzMGNmIC8vIG1ldGhvZCAiZ2V0QmlnQnl0ZXNMZW5ndGgoKXVpbnQ2NCIKICAgIHB1c2hieXRlcyAweDI0Mzc4ZDNjIC8vIG1ldGhvZCAiZGVsZXRlKCl2b2lkIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX2dldEJpZ0J5dGVzTGVuZ3RoX3JvdXRlQDMgbWFpbl9kZWxldGVfcm91dGVANAoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDU6CgptYWluX3N3aXRjaF9jYXNlX25leHRANjoKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NDgKICAgIC8vIGV4cG9ydCBjbGFzcyBMYXJnZVByb2dyYW0gZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAoKbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkxhcmdlUHJvZ3JhbS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMjoKICAgIHJldHVybgoKbWFpbl9kZWxldGVfcm91dGVANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NTMKICAgIC8vIEBhYmltZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdEZWxldGVBcHBsaWNhdGlvbicgfSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIHB1c2hpbnQgNSAvLyBEZWxldGVBcHBsaWNhdGlvbgogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IERlbGV0ZUFwcGxpY2F0aW9uCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBkZWxldGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtYXBwcy5hbGdvLnRzOjpMYXJnZVByb2dyYW0uX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCm1haW5fZ2V0QmlnQnl0ZXNMZW5ndGhfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6NDkKICAgIC8vIGdldEJpZ0J5dGVzTGVuZ3RoKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBnZXRCaWdCeXRlc0xlbmd0aAogICAgaXRvYgogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6TGFyZ2VQcm9ncmFtLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX2JhcmVfcm91dGluZ0A3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0OAogICAgLy8gZXhwb3J0IGNsYXNzIExhcmdlUHJvZ3JhbSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAOToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDExCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0OAogICAgLy8gZXhwb3J0IGNsYXNzIExhcmdlUHJvZ3JhbSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6TGFyZ2VQcm9ncmFtLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo6Z2V0QmlnQnl0ZXMoKSAtPiBieXRlczoKZ2V0QmlnQnl0ZXM6CgpnZXRCaWdCeXRlc19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo0NQogICAgLy8gcmV0dXJuIG9wLmJ6ZXJvKDQwOTYpCiAgICBwdXNoaW50IDQwOTYgLy8gNDA5NgogICAgYnplcm8KICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkxhcmdlUHJvZ3JhbS5nZXRCaWdCeXRlc0xlbmd0aCgpIC0+IHVpbnQ2NDoKZ2V0QmlnQnl0ZXNMZW5ndGg6CgpnZXRCaWdCeXRlc0xlbmd0aF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWFwcHMuYWxnby50czo1MAogICAgLy8gcmV0dXJuIGdldEJpZ0J5dGVzKCkubGVuZ3RoCiAgICBjYWxsc3ViIGdldEJpZ0J5dGVzCiAgICBsZW4KICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkxhcmdlUHJvZ3JhbS5kZWxldGUoKSAtPiB2b2lkOgpkZWxldGU6CgpkZWxldGVfYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1hcHBzLmFsZ28udHM6OkxhcmdlUHJvZ3JhbS5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAExGyITQQBGNhoAgAQCvzDPgAQkN408TwKOAgAUAAIiQzEZgQUSRDEYIhNEiABAI0L/7TEZIhJEMRgiE0SIACoWgAQVH3x1TFCwI0L/0jEZIkyOAQADQv/GMRgiEkSIAA8jQv+7gYAgr4mI//gViYmJ", @@ -117,7 +117,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/precompiled-apps/LargeProgram.clear.teal b/tests/approvals/out/unoptimized/precompiled-apps/LargeProgram.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/precompiled-apps/LargeProgram.clear.teal +++ b/tests/approvals/out/unoptimized/precompiled-apps/LargeProgram.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/precompiled-apps/TerribleCustodialAccount.teal b/tests/approvals/out/unoptimized/precompiled-apps/TerribleCustodialAccount.teal index ea01a2f5f..e543cf51f 100644 --- a/tests/approvals/out/unoptimized/precompiled-apps/TerribleCustodialAccount.teal +++ b/tests/approvals/out/unoptimized/precompiled-apps/TerribleCustodialAccount.teal @@ -3,6 +3,8 @@ // tests/approvals/precompiled-apps.algo.ts::program() -> uint64: main: + +main_block@0: // tests/approvals/precompiled-apps.algo.ts:63 // return true pushint 1 // 1 diff --git a/tests/approvals/out/unoptimized/precompiled-factory/HelloFactory.approval.teal b/tests/approvals/out/unoptimized/precompiled-factory/HelloFactory.approval.teal index 5c03b9e1a..730454928 100644 --- a/tests/approvals/out/unoptimized/precompiled-factory/HelloFactory.approval.teal +++ b/tests/approvals/out/unoptimized/precompiled-factory/HelloFactory.approval.teal @@ -6,6 +6,8 @@ main: intcblock 0 6 1 5 bytecblock 0x "world" base64(CoEBQw==) 0x151f7c75 0x24378d3c 0xd0a28200 "hello" 0x4c5c61ba +main_block@0: + main_block@1: // tests/approvals/precompiled-factory.algo.ts:6 // class HelloFactory extends Contract { @@ -124,6 +126,8 @@ main___algots__.defaultCreate@10: // tests/approvals/precompiled-factory.algo.ts::HelloFactory.test_compile_contract() -> void: test_compile_contract: + +test_compile_contract_block@0: // tests/approvals/precompiled-factory.algo.ts:10-17 // const helloApp = itxn // .applicationCall({ @@ -304,6 +308,8 @@ test_compile_contract_next_txn@3: // tests/approvals/precompiled-factory.algo.ts::HelloFactory.test_compile_contract_with_template() -> void: test_compile_contract_with_template: + +test_compile_contract_with_template_block@0: // tests/approvals/precompiled-factory.algo.ts:41-48 // const helloApp = itxn // .applicationCall({ @@ -475,6 +481,8 @@ test_compile_contract_with_template_next_txn@3: // tests/approvals/precompiled-factory.algo.ts::HelloFactory.test_compile_contract_with_template_and_custom_prefix() -> void: test_compile_contract_with_template_and_custom_prefix: + +test_compile_contract_with_template_and_custom_prefix_block@0: // tests/approvals/precompiled-factory.algo.ts:72-79 // const helloApp = itxn // .applicationCall({ @@ -646,6 +654,8 @@ test_compile_contract_with_template_and_custom_prefix_next_txn@3: // tests/approvals/precompiled-factory.algo.ts::HelloFactory.test_compile_contract_large() -> void: test_compile_contract_large: + +test_compile_contract_large_block@0: // tests/approvals/precompiled-factory.algo.ts:103-110 // const largeApp = itxn // .applicationCall({ @@ -801,4 +811,6 @@ test_compile_contract_large_next_txn@3: // tests/approvals/precompiled-factory.algo.ts::HelloFactory.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/precompiled-factory/HelloFactory.arc32.json b/tests/approvals/out/unoptimized/precompiled-factory/HelloFactory.arc32.json index dd78003f2..fe521822e 100644 --- a/tests/approvals/out/unoptimized/precompiled-factory/HelloFactory.arc32.json +++ b/tests/approvals/out/unoptimized/precompiled-factory/HelloFactory.arc32.json @@ -22,8 +22,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA2IDEgNQogICAgYnl0ZWNibG9jayAweCAid29ybGQiIGJhc2U2NChDb0VCUXc9PSkgMHgxNTFmN2M3NSAweDI0Mzc4ZDNjIDB4ZDBhMjgyMDAgImhlbGxvIiAweDRjNWM2MWJhCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjYKICAgIC8vIGNsYXNzIEhlbGxvRmFjdG9yeSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDkKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NgogICAgLy8gY2xhc3MgSGVsbG9GYWN0b3J5IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4MmExNzk5NWMgLy8gbWV0aG9kICJ0ZXN0X2NvbXBpbGVfY29udHJhY3QoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhlMzI1NGJjOSAvLyBtZXRob2QgInRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4ZTJiN2M2OTIgLy8gbWV0aG9kICJ0ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9hbmRfY3VzdG9tX3ByZWZpeCgpdm9pZCIKICAgIHB1c2hieXRlcyAweDAyOTQ3Y2EyIC8vIG1ldGhvZCAidGVzdF9jb21waWxlX2NvbnRyYWN0X2xhcmdlKCl2b2lkIgogICAgdW5jb3ZlciA0CiAgICBtYXRjaCBtYWluX3Rlc3RfY29tcGlsZV9jb250cmFjdF9yb3V0ZUAzIG1haW5fdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfcm91dGVANCBtYWluX3Rlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX2FuZF9jdXN0b21fcHJlZml4X3JvdXRlQDUgbWFpbl90ZXN0X2NvbXBpbGVfY29udHJhY3RfbGFyZ2Vfcm91dGVANgoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDc6CgptYWluX3N3aXRjaF9jYXNlX25leHRAODoKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NgogICAgLy8gY2xhc3MgSGVsbG9GYWN0b3J5IGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkuX19wdXlhX2FyYzRfcm91dGVyX19AMTQ6CiAgICByZXR1cm4KCm1haW5fdGVzdF9jb21waWxlX2NvbnRyYWN0X2xhcmdlX3JvdXRlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjEwMAogICAgLy8gdGVzdF9jb21waWxlX2NvbnRyYWN0X2xhcmdlKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0X2NvbXBpbGVfY29udHJhY3RfbGFyZ2UKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfYW5kX2N1c3RvbV9wcmVmaXhfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NjkKICAgIC8vIHRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX2FuZF9jdXN0b21fcHJlZml4KCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9hbmRfY3VzdG9tX3ByZWZpeAogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl90ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czozOAogICAgLy8gdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGUoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX3Rlc3RfY29tcGlsZV9jb250cmFjdF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo3CiAgICAvLyB0ZXN0X2NvbXBpbGVfY29udHJhY3QoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3RfY29tcGlsZV9jb250cmFjdAogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl9iYXJlX3JvdXRpbmdAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NgogICAgLy8gY2xhc3MgSGVsbG9GYWN0b3J5IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDEwCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTE6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTI6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMwoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjYKICAgIC8vIGNsYXNzIEhlbGxvRmFjdG9yeSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5LnRlc3RfY29tcGlsZV9jb250cmFjdCgpIC0+IHZvaWQ6CnRlc3RfY29tcGlsZV9jb250cmFjdDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTAtMTcKICAgIC8vIGNvbnN0IGhlbGxvQXBwID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoSGVsbG8ucHJvdG90eXBlLmNyZWF0ZSksIGVuY29kZUFyYzQoJ2hlbGxvJyldLAogICAgLy8gICAgIGFwcHJvdmFsUHJvZ3JhbTogY29tcGlsZWQuYXBwcm92YWxQcm9ncmFtLAogICAgLy8gICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBjb21waWxlZC5jbGVhclN0YXRlUHJvZ3JhbSwKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogMSwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpLmNyZWF0ZWRBcHAKICAgIGl0eG5fYmVnaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTIKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuY3JlYXRlKSwgZW5jb2RlQXJjNCgnaGVsbG8nKV0sCiAgICBieXRlYyA2IC8vICJoZWxsbyIKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGJ5dGVjIDYgLy8gImhlbGxvIgogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjE1CiAgICAvLyBnbG9iYWxOdW1CeXRlczogMSwKICAgIGludGNfMiAvLyAxCiAgICBpdHhuX2ZpZWxkIEdsb2JhbE51bUJ5dGVTbGljZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo4CiAgICAvLyBjb25zdCBjb21waWxlZCA9IGNvbXBpbGUoSGVsbG8pCiAgICBieXRlY18yIC8vIGJhc2U2NChDb0VCUXc9PSkKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweAogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBwdXNoYnl0ZXMgYmFzZTY0KENpQUNBQUVtQWdobmNtVmxkR2x1WndBeEdFQUFBNGdBc2pFYkloTkJBSXcyR2dDQUJBQ1NKYTZBQkNRM2pUeUFCS0RvR0hLQUJOQ2lnZ0JQQkk0RUFFNEFQQUFxQUFJaVF6RVpJaEpFTVJnaUUwUTJHZ0ZYQWdDSUFGMUpGUlpYQmdKTVVJQUVGUjk4ZFV4UXNDTkMvOWN4R1lFRUVrUXhHQ0lUUklnQU9TTkMvOFV4R1lFRkVrUXhHQ0lUUklnQUppTkMvN014R1NJU1JERVlJaEpFTmhvQlZ3SUFpQUFISTBML25FTC9tSW9CQUNpTC8yZUppWW1LQVFFaUtHVkVLVXhRZ0FFZ1VJdi9VSWtvS1dlSikKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTIKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuY3JlYXRlKSwgZW5jb2RlQXJjNCgnaGVsbG8nKV0sCiAgICBwdXNoYnl0ZXMgMHgwMDkyMjVhZSAvLyBtZXRob2QgImhlbGxvQ3JlYXRlKHN0cmluZyl2b2lkIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjEwLTE2CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKEhlbGxvLnByb3RvdHlwZS5jcmVhdGUpLCBlbmNvZGVBcmM0KCdoZWxsbycpXSwKICAgIC8vICAgICBhcHByb3ZhbFByb2dyYW06IGNvbXBpbGVkLmFwcHJvdmFsUHJvZ3JhbSwKICAgIC8vICAgICBjbGVhclN0YXRlUHJvZ3JhbTogY29tcGlsZWQuY2xlYXJTdGF0ZVByb2dyYW0sCiAgICAvLyAgICAgZ2xvYmFsTnVtQnl0ZXM6IDEsCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0X2NvbXBpbGVfY29udHJhY3RfbmV4dF90eG5AMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTAtMTcKICAgIC8vIGNvbnN0IGhlbGxvQXBwID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoSGVsbG8ucHJvdG90eXBlLmNyZWF0ZSksIGVuY29kZUFyYzQoJ2hlbGxvJyldLAogICAgLy8gICAgIGFwcHJvdmFsUHJvZ3JhbTogY29tcGlsZWQuYXBwcm92YWxQcm9ncmFtLAogICAgLy8gICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBjb21waWxlZC5jbGVhclN0YXRlUHJvZ3JhbSwKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogMSwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpLmNyZWF0ZWRBcHAKICAgIGl0eG5fc3VibWl0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjE3CiAgICAvLyAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4biBDcmVhdGVkQXBwbGljYXRpb25JRAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMC0xNwogICAgLy8gY29uc3QgaGVsbG9BcHAgPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuY3JlYXRlKSwgZW5jb2RlQXJjNCgnaGVsbG8nKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgZHVwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjE5LTI0CiAgICAvLyBjb25zdCB0eG4gPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuZ3JlZXQpLCBlbmNvZGVBcmM0KCd3b3JsZCcpXSwKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoyMQogICAgLy8gYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKEhlbGxvLnByb3RvdHlwZS5ncmVldCksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgYnl0ZWNfMSAvLyAid29ybGQiCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBieXRlY18xIC8vICJ3b3JsZCIKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoyMgogICAgLy8gYXBwSWQ6IGhlbGxvQXBwLAogICAgc3dhcAogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjIxCiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoSGVsbG8ucHJvdG90eXBlLmdyZWV0KSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICBieXRlYyA1IC8vIG1ldGhvZCAiZ3JlZXQoc3RyaW5nKXN0cmluZyIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxOS0yMwogICAgLy8gY29uc3QgdHhuID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoSGVsbG8ucHJvdG90eXBlLmdyZWV0KSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdF9jb21waWxlX2NvbnRyYWN0X25leHRfdHhuQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjE5LTI0CiAgICAvLyBjb25zdCB0eG4gPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuZ3JlZXQpLCBlbmNvZGVBcmM0KCd3b3JsZCcpXSwKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIGl0eG4gTGFzdExvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoyNQogICAgLy8gY29uc3QgcmVzdWx0ID0gZGVjb2RlQXJjNDxzdHJpbmc+KHR4bi5sYXN0TG9nLCAnbG9nJykKICAgIGR1cAogICAgZXh0cmFjdCA0IDAKICAgIHN3YXAKICAgIGV4dHJhY3QgMCA0CiAgICBieXRlY18zIC8vIDB4MTUxZjdjNzUKICAgID09CiAgICBhc3NlcnQgLy8gQnl0ZXMgaGFzIHZhbGlkIHByZWZpeAogICAgZXh0cmFjdCAyIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MjcKICAgIC8vIGFzc2VydChyZXN1bHQgPT09ICdoZWxsbyB3b3JsZCcpCiAgICBwdXNoYnl0ZXMgImhlbGxvIHdvcmxkIgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoyOS0zNQogICAgLy8gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKEhlbGxvLnByb3RvdHlwZS5kZWxldGUpXSwKICAgIC8vICAgICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czozMwogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18zIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjMyCiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoSGVsbG8ucHJvdG90eXBlLmRlbGV0ZSldLAogICAgYnl0ZWMgNCAvLyBtZXRob2QgImRlbGV0ZSgpdm9pZCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MjktMzQKICAgIC8vIGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuZGVsZXRlKV0sCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdF9jb21waWxlX2NvbnRyYWN0X25leHRfdHhuQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjI5LTM1CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoSGVsbG8ucHJvdG90eXBlLmRlbGV0ZSldLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5LnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlKCkgLT4gdm9pZDoKdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjQxLTQ4CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdjcmVhdGUoKXZvaWQnKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo0NgogICAgLy8gZ2xvYmFsTnVtQnl0ZXM6IDEsCiAgICBpbnRjXzIgLy8gMQogICAgaXR4bl9maWVsZCBHbG9iYWxOdW1CeXRlU2xpY2UKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MzkKICAgIC8vIGNvbnN0IGNvbXBpbGVkID0gY29tcGlsZShIZWxsb1RlbXBsYXRlLCB7IHRlbXBsYXRlVmFyczogeyBHUkVFVElORzogJ2hleScgfSB9KQogICAgYnl0ZWNfMiAvLyBiYXNlNjQoQ29FQlF3PT0pCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgcHVzaGJ5dGVzIGJhc2U2NChDaUFDQUFFbUF3aG5jbVZsZEdsdVp3QURhR1Y1TVJoQUFBT0lBS1V4R3lJVFFRQ0dOaG9BZ0FSTVhHRzZnQVFrTjQwOGdBU2c2Qmh5Z0FUUW9vSUFUd1NPQkFCT0FEd0FLZ0FDSWtNeEdTSVNSREVZSWhORU5ob0JWd0lBaUFCUVNSVVdWd1lDVEZDQUJCVWZmSFZNVUxBalF2L1hNUm1CQkJKRU1SZ2lFMFNJQUN3alF2L0ZNUm1CQlJKRU1SZ2lFMFNJQUJralF2K3pNUmtpRWtReEdDSVNSSWdBQnlOQy82SkMvNTZKaVltS0FRRWlLR1ZFS1V4UWdBRWdVSXYvVUltSUFBUW9LbWVKS0NsbmlRPT0pCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICBieXRlY18wIC8vIDB4CiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjQzCiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2NyZWF0ZSgpdm9pZCcpXSwKICAgIGJ5dGVjIDcgLy8gbWV0aG9kICJjcmVhdGUoKXZvaWQiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo0MS00NwogICAgLy8gY29uc3QgaGVsbG9BcHAgPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignY3JlYXRlKCl2b2lkJyldLAogICAgLy8gICAgIGFwcHJvdmFsUHJvZ3JhbTogY29tcGlsZWQuYXBwcm92YWxQcm9ncmFtLAogICAgLy8gICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBjb21waWxlZC5jbGVhclN0YXRlUHJvZ3JhbSwKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogMSwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX25leHRfdHhuQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjQxLTQ4CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdjcmVhdGUoKXZvaWQnKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4bl9zdWJtaXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NDgKICAgIC8vIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBpdHhuIENyZWF0ZWRBcHBsaWNhdGlvbklECiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjQxLTQ4CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdjcmVhdGUoKXZvaWQnKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgZHVwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjUwLTU1CiAgICAvLyBjb25zdCB0eG4gPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZ3JlZXQoc3RyaW5nKXN0cmluZycpLCBlbmNvZGVBcmM0KCd3b3JsZCcpXSwKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo1MgogICAgLy8gYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdncmVldChzdHJpbmcpc3RyaW5nJyksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgYnl0ZWNfMSAvLyAid29ybGQiCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBieXRlY18xIC8vICJ3b3JsZCIKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo1MwogICAgLy8gYXBwSWQ6IGhlbGxvQXBwLAogICAgc3dhcAogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjUyCiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2dyZWV0KHN0cmluZylzdHJpbmcnKSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICBieXRlYyA1IC8vIG1ldGhvZCAiZ3JlZXQoc3RyaW5nKXN0cmluZyIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo1MC01NAogICAgLy8gY29uc3QgdHhuID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2dyZWV0KHN0cmluZylzdHJpbmcnKSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfbmV4dF90eG5AMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NTAtNTUKICAgIC8vIGNvbnN0IHR4biA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdncmVldChzdHJpbmcpc3RyaW5nJyksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBMYXN0TG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjU2CiAgICAvLyBjb25zdCByZXN1bHQgPSBkZWNvZGVBcmM0PHN0cmluZz4odHhuLmxhc3RMb2csICdsb2cnKQogICAgZHVwCiAgICBleHRyYWN0IDQgMAogICAgc3dhcAogICAgZXh0cmFjdCAwIDQKICAgIGJ5dGVjXzMgLy8gMHgxNTFmN2M3NQogICAgPT0KICAgIGFzc2VydCAvLyBCeXRlcyBoYXMgdmFsaWQgcHJlZml4CiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo1OAogICAgLy8gYXNzZXJ0KHJlc3VsdCA9PT0gJ2hleSB3b3JsZCcpCiAgICBwdXNoYnl0ZXMgImhleSB3b3JsZCIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NjAtNjYKICAgIC8vIGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZGVsZXRlKCl2b2lkJyldLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjY0CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzMgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NjMKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZGVsZXRlKCl2b2lkJyldLAogICAgYnl0ZWMgNCAvLyBtZXRob2QgImRlbGV0ZSgpdm9pZCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NjAtNjUKICAgIC8vIGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZGVsZXRlKCl2b2lkJyldLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX25leHRfdHhuQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjYwLTY2CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2RlbGV0ZSgpdm9pZCcpXSwKICAgIC8vICAgICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS50ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9hbmRfY3VzdG9tX3ByZWZpeCgpIC0+IHZvaWQ6CnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX2FuZF9jdXN0b21fcHJlZml4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo3Mi03OQogICAgLy8gY29uc3QgaGVsbG9BcHAgPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignY3JlYXRlKCl2b2lkJyldLAogICAgLy8gICAgIGFwcHJvdmFsUHJvZ3JhbTogY29tcGlsZWQuYXBwcm92YWxQcm9ncmFtLAogICAgLy8gICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBjb21waWxlZC5jbGVhclN0YXRlUHJvZ3JhbSwKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogMSwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpLmNyZWF0ZWRBcHAKICAgIGl0eG5fYmVnaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NzcKICAgIC8vIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgaW50Y18yIC8vIDEKICAgIGl0eG5fZmllbGQgR2xvYmFsTnVtQnl0ZVNsaWNlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjcwCiAgICAvLyBjb25zdCBjb21waWxlZCA9IGNvbXBpbGUoSGVsbG9UZW1wbGF0ZUN1c3RvbVByZWZpeCwgeyB0ZW1wbGF0ZVZhcnM6IHsgR1JFRVRJTkc6ICdib25qb3VyJyB9LCB0ZW1wbGF0ZVZhcnNQcmVmaXg6ICdQUkZYXycgfSkKICAgIGJ5dGVjXzIgLy8gYmFzZTY0KENvRUJRdz09KQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBieXRlY18wIC8vIDB4CiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIHB1c2hieXRlcyBiYXNlNjQoQ2lBQ0FBRW1Bd2huY21WbGRHbHVad0FIWW05dWFtOTFjakVZUUFBRGlBQ2xNUnNpRTBFQWhqWWFBSUFFVEZ4aHVvQUVKRGVOUElBRW9PZ1ljb0FFMEtLQ0FFOEVqZ1FBVGdBOEFDb0FBaUpETVJraUVrUXhHQ0lUUkRZYUFWY0NBSWdBVUVrVkZsY0dBa3hRZ0FRVkgzeDFURkN3STBMLzF6RVpnUVFTUkRFWUloTkVpQUFzSTBML3hURVpnUVVTUkRFWUloTkVpQUFaSTBML3N6RVpJaEpFTVJnaUVrU0lBQWNqUXYraVF2K2VpWW1KaWdFQklpaGxSQ2xNVUlBQklGQ0wvMUNKaUFBRUtDcG5pU2dwWjRrPSkKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NzQKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignY3JlYXRlKCl2b2lkJyldLAogICAgYnl0ZWMgNyAvLyBtZXRob2QgImNyZWF0ZSgpdm9pZCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjcyLTc4CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdjcmVhdGUoKXZvaWQnKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfYW5kX2N1c3RvbV9wcmVmaXhfbmV4dF90eG5AMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NzItNzkKICAgIC8vIGNvbnN0IGhlbGxvQXBwID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2NyZWF0ZSgpdm9pZCcpXSwKICAgIC8vICAgICBhcHByb3ZhbFByb2dyYW06IGNvbXBpbGVkLmFwcHJvdmFsUHJvZ3JhbSwKICAgIC8vICAgICBjbGVhclN0YXRlUHJvZ3JhbTogY29tcGlsZWQuY2xlYXJTdGF0ZVByb2dyYW0sCiAgICAvLyAgICAgZ2xvYmFsTnVtQnl0ZXM6IDEsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBpdHhuX3N1Ym1pdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo3OQogICAgLy8gLnN1Ym1pdCgpLmNyZWF0ZWRBcHAKICAgIGl0eG4gQ3JlYXRlZEFwcGxpY2F0aW9uSUQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NzItNzkKICAgIC8vIGNvbnN0IGhlbGxvQXBwID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2NyZWF0ZSgpdm9pZCcpXSwKICAgIC8vICAgICBhcHByb3ZhbFByb2dyYW06IGNvbXBpbGVkLmFwcHJvdmFsUHJvZ3JhbSwKICAgIC8vICAgICBjbGVhclN0YXRlUHJvZ3JhbTogY29tcGlsZWQuY2xlYXJTdGF0ZVByb2dyYW0sCiAgICAvLyAgICAgZ2xvYmFsTnVtQnl0ZXM6IDEsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBkdXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6ODEtODYKICAgIC8vIGNvbnN0IHR4biA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdncmVldChzdHJpbmcpc3RyaW5nJyksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjgzCiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2dyZWV0KHN0cmluZylzdHJpbmcnKSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICBieXRlY18xIC8vICJ3b3JsZCIKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGJ5dGVjXzEgLy8gIndvcmxkIgogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjg0CiAgICAvLyBhcHBJZDogaGVsbG9BcHAsCiAgICBzd2FwCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6ODMKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZ3JlZXQoc3RyaW5nKXN0cmluZycpLCBlbmNvZGVBcmM0KCd3b3JsZCcpXSwKICAgIGJ5dGVjIDUgLy8gbWV0aG9kICJncmVldChzdHJpbmcpc3RyaW5nIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjgxLTg1CiAgICAvLyBjb25zdCB0eG4gPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZ3JlZXQoc3RyaW5nKXN0cmluZycpLCBlbmNvZGVBcmM0KCd3b3JsZCcpXSwKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9hbmRfY3VzdG9tX3ByZWZpeF9uZXh0X3R4bkAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo4MS04NgogICAgLy8gY29uc3QgdHhuID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2dyZWV0KHN0cmluZylzdHJpbmcnKSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CiAgICBpdHhuIExhc3RMb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6ODcKICAgIC8vIGNvbnN0IHJlc3VsdCA9IGRlY29kZUFyYzQ8c3RyaW5nPih0eG4ubGFzdExvZywgJ2xvZycpCiAgICBkdXAKICAgIGV4dHJhY3QgNCAwCiAgICBzd2FwCiAgICBleHRyYWN0IDAgNAogICAgYnl0ZWNfMyAvLyAweDE1MWY3Yzc1CiAgICA9PQogICAgYXNzZXJ0IC8vIEJ5dGVzIGhhcyB2YWxpZCBwcmVmaXgKICAgIGV4dHJhY3QgMiAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjg5CiAgICAvLyBhc3NlcnQocmVzdWx0ID09PSAnYm9uam91ciB3b3JsZCcpCiAgICBwdXNoYnl0ZXMgImJvbmpvdXIgd29ybGQiCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjkxLTk3CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2RlbGV0ZSgpdm9pZCcpXSwKICAgIC8vICAgICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo5NQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18zIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjk0CiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2RlbGV0ZSgpdm9pZCcpXSwKICAgIGJ5dGVjIDQgLy8gbWV0aG9kICJkZWxldGUoKXZvaWQiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjkxLTk2CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2RlbGV0ZSgpdm9pZCcpXSwKICAgIC8vICAgICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9hbmRfY3VzdG9tX3ByZWZpeF9uZXh0X3R4bkAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo5MS05NwogICAgLy8gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdkZWxldGUoKXZvaWQnKV0sCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkudGVzdF9jb21waWxlX2NvbnRyYWN0X2xhcmdlKCkgLT4gdm9pZDoKdGVzdF9jb21waWxlX2NvbnRyYWN0X2xhcmdlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMDMtMTEwCiAgICAvLyBjb25zdCBsYXJnZUFwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGV4dHJhUHJvZ3JhbVBhZ2VzOiBjb21waWxlZC5leHRyYVByb2dyYW1QYWdlcywKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogY29tcGlsZWQuZ2xvYmFsQnl0ZXMsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBpdHhuX2JlZ2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjEwMQogICAgLy8gY29uc3QgY29tcGlsZWQgPSBjb21waWxlKExhcmdlUHJvZ3JhbSkKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEdsb2JhbE51bUJ5dGVTbGljZQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRXh0cmFQcm9ncmFtUGFnZXMKICAgIGJ5dGVjXzIgLy8gYmFzZTY0KENvRUJRdz09KQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBieXRlY18wIC8vIDB4CiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIHB1c2hieXRlcyBiYXNlNjQoQ2lBQ0FBRXhHeUlUUVFCR05ob0FnQVFDdnpEUGdBUWtONDA4VHdLT0FnQVVBQUlpUXpFWmdRVVNSREVZSWhORWlBQkFJMEwvN1RFWkloSkVNUmdpRTBTSUFDb1dnQVFWSDN4MVRGQ3dJMEwvMGpFWklreU9BUUFEUXYvR01SZ2lFa1NJQUE4alF2KzdnWUFncjRtSS8vZ1ZpWW1KKQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweAogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMDMtMTA5CiAgICAvLyBjb25zdCBsYXJnZUFwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGV4dHJhUHJvZ3JhbVBhZ2VzOiBjb21waWxlZC5leHRyYVByb2dyYW1QYWdlcywKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogY29tcGlsZWQuZ2xvYmFsQnl0ZXMsCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0X2NvbXBpbGVfY29udHJhY3RfbGFyZ2VfbmV4dF90eG5AMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTAzLTExMAogICAgLy8gY29uc3QgbGFyZ2VBcHAgPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcHJvdmFsUHJvZ3JhbTogY29tcGlsZWQuYXBwcm92YWxQcm9ncmFtLAogICAgLy8gICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBjb21waWxlZC5jbGVhclN0YXRlUHJvZ3JhbSwKICAgIC8vICAgICBleHRyYVByb2dyYW1QYWdlczogY29tcGlsZWQuZXh0cmFQcm9ncmFtUGFnZXMsCiAgICAvLyAgICAgZ2xvYmFsTnVtQnl0ZXM6IGNvbXBpbGVkLmdsb2JhbEJ5dGVzLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4bl9zdWJtaXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTEwCiAgICAvLyAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4biBDcmVhdGVkQXBwbGljYXRpb25JRAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMDMtMTEwCiAgICAvLyBjb25zdCBsYXJnZUFwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGV4dHJhUHJvZ3JhbVBhZ2VzOiBjb21waWxlZC5leHRyYVByb2dyYW1QYWdlcywKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogY29tcGlsZWQuZ2xvYmFsQnl0ZXMsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBkdXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTEyLTExNwogICAgLy8gY29uc3QgdHhuID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2dldEJpZ0J5dGVzTGVuZ3RoKCl1aW50NjQnKV0sCiAgICAvLyAgICAgYXBwSWQ6IGxhcmdlQXBwLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25JRAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMTQKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZ2V0QmlnQnl0ZXNMZW5ndGgoKXVpbnQ2NCcpXSwKICAgIHB1c2hieXRlcyAweDAyYmYzMGNmIC8vIG1ldGhvZCAiZ2V0QmlnQnl0ZXNMZW5ndGgoKXVpbnQ2NCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjExMi0xMTYKICAgIC8vIGNvbnN0IHR4biA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdnZXRCaWdCeXRlc0xlbmd0aCgpdWludDY0JyldLAogICAgLy8gICAgIGFwcElkOiBsYXJnZUFwcCwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3RfY29tcGlsZV9jb250cmFjdF9sYXJnZV9uZXh0X3R4bkAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMTItMTE3CiAgICAvLyBjb25zdCB0eG4gPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZ2V0QmlnQnl0ZXNMZW5ndGgoKXVpbnQ2NCcpXSwKICAgIC8vICAgICBhcHBJZDogbGFyZ2VBcHAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIGl0eG4gTGFzdExvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMTgKICAgIC8vIGNvbnN0IHJlc3VsdCA9IGRlY29kZUFyYzQ8dWludDY0Pih0eG4ubGFzdExvZywgJ2xvZycpCiAgICBkdXAKICAgIGV4dHJhY3QgNCAwCiAgICBzd2FwCiAgICBleHRyYWN0IDAgNAogICAgYnl0ZWNfMyAvLyAweDE1MWY3Yzc1CiAgICA9PQogICAgYXNzZXJ0IC8vIEJ5dGVzIGhhcyB2YWxpZCBwcmVmaXgKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTIwCiAgICAvLyBhc3NlcnQocmVzdWx0ID09PSA0MDk2KQogICAgcHVzaGludCA0MDk2IC8vIDQwOTYKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTIyLTEyOAogICAgLy8gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBJZDogbGFyZ2VBcHAsCiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdkZWxldGUoKXZvaWQnKV0sCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTI2CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzMgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTI1CiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2RlbGV0ZSgpdm9pZCcpXSwKICAgIGJ5dGVjIDQgLy8gbWV0aG9kICJkZWxldGUoKXZvaWQiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjEyMi0xMjcKICAgIC8vIGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwSWQ6IGxhcmdlQXBwLAogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZGVsZXRlKCl2b2lkJyldLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3RfY29tcGlsZV9jb250cmFjdF9sYXJnZV9uZXh0X3R4bkAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMjItMTI4CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcElkOiBsYXJnZUFwcCwKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2RlbGV0ZSgpdm9pZCcpXSwKICAgIC8vICAgICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA2IDEgNQogICAgYnl0ZWNibG9jayAweCAid29ybGQiIGJhc2U2NChDb0VCUXc9PSkgMHgxNTFmN2M3NSAweDI0Mzc4ZDNjIDB4ZDBhMjgyMDAgImhlbGxvIiAweDRjNWM2MWJhCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjYKICAgIC8vIGNsYXNzIEhlbGxvRmFjdG9yeSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDkKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NgogICAgLy8gY2xhc3MgSGVsbG9GYWN0b3J5IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4MmExNzk5NWMgLy8gbWV0aG9kICJ0ZXN0X2NvbXBpbGVfY29udHJhY3QoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhlMzI1NGJjOSAvLyBtZXRob2QgInRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4ZTJiN2M2OTIgLy8gbWV0aG9kICJ0ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9hbmRfY3VzdG9tX3ByZWZpeCgpdm9pZCIKICAgIHB1c2hieXRlcyAweDAyOTQ3Y2EyIC8vIG1ldGhvZCAidGVzdF9jb21waWxlX2NvbnRyYWN0X2xhcmdlKCl2b2lkIgogICAgdW5jb3ZlciA0CiAgICBtYXRjaCBtYWluX3Rlc3RfY29tcGlsZV9jb250cmFjdF9yb3V0ZUAzIG1haW5fdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfcm91dGVANCBtYWluX3Rlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX2FuZF9jdXN0b21fcHJlZml4X3JvdXRlQDUgbWFpbl90ZXN0X2NvbXBpbGVfY29udHJhY3RfbGFyZ2Vfcm91dGVANgoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDc6CgptYWluX3N3aXRjaF9jYXNlX25leHRAODoKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NgogICAgLy8gY2xhc3MgSGVsbG9GYWN0b3J5IGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkuX19wdXlhX2FyYzRfcm91dGVyX19AMTQ6CiAgICByZXR1cm4KCm1haW5fdGVzdF9jb21waWxlX2NvbnRyYWN0X2xhcmdlX3JvdXRlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjEwMAogICAgLy8gdGVzdF9jb21waWxlX2NvbnRyYWN0X2xhcmdlKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0X2NvbXBpbGVfY29udHJhY3RfbGFyZ2UKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfYW5kX2N1c3RvbV9wcmVmaXhfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NjkKICAgIC8vIHRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX2FuZF9jdXN0b21fcHJlZml4KCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9hbmRfY3VzdG9tX3ByZWZpeAogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl90ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czozOAogICAgLy8gdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGUoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX3Rlc3RfY29tcGlsZV9jb250cmFjdF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo3CiAgICAvLyB0ZXN0X2NvbXBpbGVfY29udHJhY3QoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3RfY29tcGlsZV9jb250cmFjdAogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl9iYXJlX3JvdXRpbmdAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NgogICAgLy8gY2xhc3MgSGVsbG9GYWN0b3J5IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDEwCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTE6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTI6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMwoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjYKICAgIC8vIGNsYXNzIEhlbGxvRmFjdG9yeSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5LnRlc3RfY29tcGlsZV9jb250cmFjdCgpIC0+IHZvaWQ6CnRlc3RfY29tcGlsZV9jb250cmFjdDoKCnRlc3RfY29tcGlsZV9jb250cmFjdF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMC0xNwogICAgLy8gY29uc3QgaGVsbG9BcHAgPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuY3JlYXRlKSwgZW5jb2RlQXJjNCgnaGVsbG8nKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMgogICAgLy8gYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKEhlbGxvLnByb3RvdHlwZS5jcmVhdGUpLCBlbmNvZGVBcmM0KCdoZWxsbycpXSwKICAgIGJ5dGVjIDYgLy8gImhlbGxvIgogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgYnl0ZWMgNiAvLyAiaGVsbG8iCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTUKICAgIC8vIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgaW50Y18yIC8vIDEKICAgIGl0eG5fZmllbGQgR2xvYmFsTnVtQnl0ZVNsaWNlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjgKICAgIC8vIGNvbnN0IGNvbXBpbGVkID0gY29tcGlsZShIZWxsbykKICAgIGJ5dGVjXzIgLy8gYmFzZTY0KENvRUJRdz09KQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBieXRlY18wIC8vIDB4CiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIHB1c2hieXRlcyBiYXNlNjQoQ2lBQ0FBRW1BZ2huY21WbGRHbHVad0F4R0VBQUE0Z0FzakViSWhOQkFJdzJHZ0NBQkFDU0phNkFCQ1EzalR5QUJLRG9HSEtBQk5DaWdnQlBCSTRFQUU0QVBBQXFBQUlpUXpFWkloSkVNUmdpRTBRMkdnRlhBZ0NJQUYxSkZSWlhCZ0pNVUlBRUZSOThkVXhRc0NOQy85Y3hHWUVFRWtReEdDSVRSSWdBT1NOQy84VXhHWUVGRWtReEdDSVRSSWdBSmlOQy83TXhHU0lTUkRFWUloSkVOaG9CVndJQWlBQUhJMEwvbkVML21Jb0JBQ2lMLzJlSmlZbUtBUUVpS0dWRUtVeFFnQUVnVUl2L1VJa29LV2VKKQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweAogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMgogICAgLy8gYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKEhlbGxvLnByb3RvdHlwZS5jcmVhdGUpLCBlbmNvZGVBcmM0KCdoZWxsbycpXSwKICAgIHB1c2hieXRlcyAweDAwOTIyNWFlIC8vIG1ldGhvZCAiaGVsbG9DcmVhdGUoc3RyaW5nKXZvaWQiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTAtMTYKICAgIC8vIGNvbnN0IGhlbGxvQXBwID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoSGVsbG8ucHJvdG90eXBlLmNyZWF0ZSksIGVuY29kZUFyYzQoJ2hlbGxvJyldLAogICAgLy8gICAgIGFwcHJvdmFsUHJvZ3JhbTogY29tcGlsZWQuYXBwcm92YWxQcm9ncmFtLAogICAgLy8gICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBjb21waWxlZC5jbGVhclN0YXRlUHJvZ3JhbSwKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogMSwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3RfY29tcGlsZV9jb250cmFjdF9uZXh0X3R4bkAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMC0xNwogICAgLy8gY29uc3QgaGVsbG9BcHAgPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuY3JlYXRlKSwgZW5jb2RlQXJjNCgnaGVsbG8nKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4bl9zdWJtaXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTcKICAgIC8vIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBpdHhuIENyZWF0ZWRBcHBsaWNhdGlvbklECiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjEwLTE3CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKEhlbGxvLnByb3RvdHlwZS5jcmVhdGUpLCBlbmNvZGVBcmM0KCdoZWxsbycpXSwKICAgIC8vICAgICBhcHByb3ZhbFByb2dyYW06IGNvbXBpbGVkLmFwcHJvdmFsUHJvZ3JhbSwKICAgIC8vICAgICBjbGVhclN0YXRlUHJvZ3JhbTogY29tcGlsZWQuY2xlYXJTdGF0ZVByb2dyYW0sCiAgICAvLyAgICAgZ2xvYmFsTnVtQnl0ZXM6IDEsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBkdXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTktMjQKICAgIC8vIGNvbnN0IHR4biA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKEhlbGxvLnByb3RvdHlwZS5ncmVldCksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjIxCiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoSGVsbG8ucHJvdG90eXBlLmdyZWV0KSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICBieXRlY18xIC8vICJ3b3JsZCIKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGJ5dGVjXzEgLy8gIndvcmxkIgogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjIyCiAgICAvLyBhcHBJZDogaGVsbG9BcHAsCiAgICBzd2FwCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MjEKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuZ3JlZXQpLCBlbmNvZGVBcmM0KCd3b3JsZCcpXSwKICAgIGJ5dGVjIDUgLy8gbWV0aG9kICJncmVldChzdHJpbmcpc3RyaW5nIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjE5LTIzCiAgICAvLyBjb25zdCB0eG4gPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuZ3JlZXQpLCBlbmNvZGVBcmM0KCd3b3JsZCcpXSwKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0X2NvbXBpbGVfY29udHJhY3RfbmV4dF90eG5AMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTktMjQKICAgIC8vIGNvbnN0IHR4biA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKEhlbGxvLnByb3RvdHlwZS5ncmVldCksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBMYXN0TG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjI1CiAgICAvLyBjb25zdCByZXN1bHQgPSBkZWNvZGVBcmM0PHN0cmluZz4odHhuLmxhc3RMb2csICdsb2cnKQogICAgZHVwCiAgICBleHRyYWN0IDQgMAogICAgc3dhcAogICAgZXh0cmFjdCAwIDQKICAgIGJ5dGVjXzMgLy8gMHgxNTFmN2M3NQogICAgPT0KICAgIGFzc2VydCAvLyBCeXRlcyBoYXMgdmFsaWQgcHJlZml4CiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoyNwogICAgLy8gYXNzZXJ0KHJlc3VsdCA9PT0gJ2hlbGxvIHdvcmxkJykKICAgIHB1c2hieXRlcyAiaGVsbG8gd29ybGQiCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjI5LTM1CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoSGVsbG8ucHJvdG90eXBlLmRlbGV0ZSldLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjMzCiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzMgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MzIKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuZGVsZXRlKV0sCiAgICBieXRlYyA0IC8vIG1ldGhvZCAiZGVsZXRlKCl2b2lkIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25JRAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoyOS0zNAogICAgLy8gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKEhlbGxvLnByb3RvdHlwZS5kZWxldGUpXSwKICAgIC8vICAgICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0X2NvbXBpbGVfY29udHJhY3RfbmV4dF90eG5AMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MjktMzUKICAgIC8vIGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuZGVsZXRlKV0sCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkudGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGUoKSAtPiB2b2lkOgp0ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZToKCnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjQxLTQ4CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdjcmVhdGUoKXZvaWQnKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo0NgogICAgLy8gZ2xvYmFsTnVtQnl0ZXM6IDEsCiAgICBpbnRjXzIgLy8gMQogICAgaXR4bl9maWVsZCBHbG9iYWxOdW1CeXRlU2xpY2UKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MzkKICAgIC8vIGNvbnN0IGNvbXBpbGVkID0gY29tcGlsZShIZWxsb1RlbXBsYXRlLCB7IHRlbXBsYXRlVmFyczogeyBHUkVFVElORzogJ2hleScgfSB9KQogICAgYnl0ZWNfMiAvLyBiYXNlNjQoQ29FQlF3PT0pCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgcHVzaGJ5dGVzIGJhc2U2NChDaUFDQUFFbUF3aG5jbVZsZEdsdVp3QURhR1Y1TVJoQUFBT0lBS1V4R3lJVFFRQ0dOaG9BZ0FSTVhHRzZnQVFrTjQwOGdBU2c2Qmh5Z0FUUW9vSUFUd1NPQkFCT0FEd0FLZ0FDSWtNeEdTSVNSREVZSWhORU5ob0JWd0lBaUFCUVNSVVdWd1lDVEZDQUJCVWZmSFZNVUxBalF2L1hNUm1CQkJKRU1SZ2lFMFNJQUN3alF2L0ZNUm1CQlJKRU1SZ2lFMFNJQUJralF2K3pNUmtpRWtReEdDSVNSSWdBQnlOQy82SkMvNTZKaVltS0FRRWlLR1ZFS1V4UWdBRWdVSXYvVUltSUFBUW9LbWVKS0NsbmlRPT0pCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICBieXRlY18wIC8vIDB4CiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjQzCiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2NyZWF0ZSgpdm9pZCcpXSwKICAgIGJ5dGVjIDcgLy8gbWV0aG9kICJjcmVhdGUoKXZvaWQiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo0MS00NwogICAgLy8gY29uc3QgaGVsbG9BcHAgPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignY3JlYXRlKCl2b2lkJyldLAogICAgLy8gICAgIGFwcHJvdmFsUHJvZ3JhbTogY29tcGlsZWQuYXBwcm92YWxQcm9ncmFtLAogICAgLy8gICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBjb21waWxlZC5jbGVhclN0YXRlUHJvZ3JhbSwKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogMSwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX25leHRfdHhuQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjQxLTQ4CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdjcmVhdGUoKXZvaWQnKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4bl9zdWJtaXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NDgKICAgIC8vIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBpdHhuIENyZWF0ZWRBcHBsaWNhdGlvbklECiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjQxLTQ4CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdjcmVhdGUoKXZvaWQnKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgZHVwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjUwLTU1CiAgICAvLyBjb25zdCB0eG4gPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZ3JlZXQoc3RyaW5nKXN0cmluZycpLCBlbmNvZGVBcmM0KCd3b3JsZCcpXSwKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo1MgogICAgLy8gYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdncmVldChzdHJpbmcpc3RyaW5nJyksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgYnl0ZWNfMSAvLyAid29ybGQiCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBieXRlY18xIC8vICJ3b3JsZCIKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo1MwogICAgLy8gYXBwSWQ6IGhlbGxvQXBwLAogICAgc3dhcAogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjUyCiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2dyZWV0KHN0cmluZylzdHJpbmcnKSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICBieXRlYyA1IC8vIG1ldGhvZCAiZ3JlZXQoc3RyaW5nKXN0cmluZyIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo1MC01NAogICAgLy8gY29uc3QgdHhuID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2dyZWV0KHN0cmluZylzdHJpbmcnKSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfbmV4dF90eG5AMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NTAtNTUKICAgIC8vIGNvbnN0IHR4biA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdncmVldChzdHJpbmcpc3RyaW5nJyksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBMYXN0TG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjU2CiAgICAvLyBjb25zdCByZXN1bHQgPSBkZWNvZGVBcmM0PHN0cmluZz4odHhuLmxhc3RMb2csICdsb2cnKQogICAgZHVwCiAgICBleHRyYWN0IDQgMAogICAgc3dhcAogICAgZXh0cmFjdCAwIDQKICAgIGJ5dGVjXzMgLy8gMHgxNTFmN2M3NQogICAgPT0KICAgIGFzc2VydCAvLyBCeXRlcyBoYXMgdmFsaWQgcHJlZml4CiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo1OAogICAgLy8gYXNzZXJ0KHJlc3VsdCA9PT0gJ2hleSB3b3JsZCcpCiAgICBwdXNoYnl0ZXMgImhleSB3b3JsZCIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NjAtNjYKICAgIC8vIGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZGVsZXRlKCl2b2lkJyldLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjY0CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzMgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NjMKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZGVsZXRlKCl2b2lkJyldLAogICAgYnl0ZWMgNCAvLyBtZXRob2QgImRlbGV0ZSgpdm9pZCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NjAtNjUKICAgIC8vIGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZGVsZXRlKCl2b2lkJyldLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX25leHRfdHhuQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjYwLTY2CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2RlbGV0ZSgpdm9pZCcpXSwKICAgIC8vICAgICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS50ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9hbmRfY3VzdG9tX3ByZWZpeCgpIC0+IHZvaWQ6CnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX2FuZF9jdXN0b21fcHJlZml4OgoKdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfYW5kX2N1c3RvbV9wcmVmaXhfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NzItNzkKICAgIC8vIGNvbnN0IGhlbGxvQXBwID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2NyZWF0ZSgpdm9pZCcpXSwKICAgIC8vICAgICBhcHByb3ZhbFByb2dyYW06IGNvbXBpbGVkLmFwcHJvdmFsUHJvZ3JhbSwKICAgIC8vICAgICBjbGVhclN0YXRlUHJvZ3JhbTogY29tcGlsZWQuY2xlYXJTdGF0ZVByb2dyYW0sCiAgICAvLyAgICAgZ2xvYmFsTnVtQnl0ZXM6IDEsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBpdHhuX2JlZ2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjc3CiAgICAvLyBnbG9iYWxOdW1CeXRlczogMSwKICAgIGludGNfMiAvLyAxCiAgICBpdHhuX2ZpZWxkIEdsb2JhbE51bUJ5dGVTbGljZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo3MAogICAgLy8gY29uc3QgY29tcGlsZWQgPSBjb21waWxlKEhlbGxvVGVtcGxhdGVDdXN0b21QcmVmaXgsIHsgdGVtcGxhdGVWYXJzOiB7IEdSRUVUSU5HOiAnYm9uam91cicgfSwgdGVtcGxhdGVWYXJzUHJlZml4OiAnUFJGWF8nIH0pCiAgICBieXRlY18yIC8vIGJhc2U2NChDb0VCUXc9PSkKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweAogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBwdXNoYnl0ZXMgYmFzZTY0KENpQUNBQUVtQXdobmNtVmxkR2x1WndBSFltOXVhbTkxY2pFWVFBQURpQUNsTVJzaUUwRUFoallhQUlBRVRGeGh1b0FFSkRlTlBJQUVvT2dZY29BRTBLS0NBRThFamdRQVRnQThBQ29BQWlKRE1Sa2lFa1F4R0NJVFJEWWFBVmNDQUlnQVVFa1ZGbGNHQWt4UWdBUVZIM3gxVEZDd0kwTC8xekVaZ1FRU1JERVlJaE5FaUFBc0kwTC94VEVaZ1FVU1JERVlJaE5FaUFBWkkwTC9zekVaSWhKRU1SZ2lFa1NJQUFjalF2K2lRditlaVltSmlnRUJJaWhsUkNsTVVJQUJJRkNMLzFDSmlBQUVLQ3BuaVNncFo0az0pCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICBieXRlY18wIC8vIDB4CiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjc0CiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2NyZWF0ZSgpdm9pZCcpXSwKICAgIGJ5dGVjIDcgLy8gbWV0aG9kICJjcmVhdGUoKXZvaWQiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo3Mi03OAogICAgLy8gY29uc3QgaGVsbG9BcHAgPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignY3JlYXRlKCl2b2lkJyldLAogICAgLy8gICAgIGFwcHJvdmFsUHJvZ3JhbTogY29tcGlsZWQuYXBwcm92YWxQcm9ncmFtLAogICAgLy8gICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBjb21waWxlZC5jbGVhclN0YXRlUHJvZ3JhbSwKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogMSwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX2FuZF9jdXN0b21fcHJlZml4X25leHRfdHhuQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjcyLTc5CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdjcmVhdGUoKXZvaWQnKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4bl9zdWJtaXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NzkKICAgIC8vIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBpdHhuIENyZWF0ZWRBcHBsaWNhdGlvbklECiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjcyLTc5CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdjcmVhdGUoKXZvaWQnKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgZHVwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjgxLTg2CiAgICAvLyBjb25zdCB0eG4gPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZ3JlZXQoc3RyaW5nKXN0cmluZycpLCBlbmNvZGVBcmM0KCd3b3JsZCcpXSwKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo4MwogICAgLy8gYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdncmVldChzdHJpbmcpc3RyaW5nJyksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgYnl0ZWNfMSAvLyAid29ybGQiCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBieXRlY18xIC8vICJ3b3JsZCIKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo4NAogICAgLy8gYXBwSWQ6IGhlbGxvQXBwLAogICAgc3dhcAogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjgzCiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2dyZWV0KHN0cmluZylzdHJpbmcnKSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICBieXRlYyA1IC8vIG1ldGhvZCAiZ3JlZXQoc3RyaW5nKXN0cmluZyIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo4MS04NQogICAgLy8gY29uc3QgdHhuID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2dyZWV0KHN0cmluZylzdHJpbmcnKSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfYW5kX2N1c3RvbV9wcmVmaXhfbmV4dF90eG5AMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6ODEtODYKICAgIC8vIGNvbnN0IHR4biA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdncmVldChzdHJpbmcpc3RyaW5nJyksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBMYXN0TG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjg3CiAgICAvLyBjb25zdCByZXN1bHQgPSBkZWNvZGVBcmM0PHN0cmluZz4odHhuLmxhc3RMb2csICdsb2cnKQogICAgZHVwCiAgICBleHRyYWN0IDQgMAogICAgc3dhcAogICAgZXh0cmFjdCAwIDQKICAgIGJ5dGVjXzMgLy8gMHgxNTFmN2M3NQogICAgPT0KICAgIGFzc2VydCAvLyBCeXRlcyBoYXMgdmFsaWQgcHJlZml4CiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo4OQogICAgLy8gYXNzZXJ0KHJlc3VsdCA9PT0gJ2JvbmpvdXIgd29ybGQnKQogICAgcHVzaGJ5dGVzICJib25qb3VyIHdvcmxkIgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo5MS05NwogICAgLy8gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdkZWxldGUoKXZvaWQnKV0sCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OTUKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMyAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo5NAogICAgLy8gYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdkZWxldGUoKXZvaWQnKV0sCiAgICBieXRlYyA0IC8vIG1ldGhvZCAiZGVsZXRlKCl2b2lkIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25JRAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo5MS05NgogICAgLy8gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdkZWxldGUoKXZvaWQnKV0sCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfYW5kX2N1c3RvbV9wcmVmaXhfbmV4dF90eG5AMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OTEtOTcKICAgIC8vIGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZGVsZXRlKCl2b2lkJyldLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5LnRlc3RfY29tcGlsZV9jb250cmFjdF9sYXJnZSgpIC0+IHZvaWQ6CnRlc3RfY29tcGlsZV9jb250cmFjdF9sYXJnZToKCnRlc3RfY29tcGlsZV9jb250cmFjdF9sYXJnZV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMDMtMTEwCiAgICAvLyBjb25zdCBsYXJnZUFwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGV4dHJhUHJvZ3JhbVBhZ2VzOiBjb21waWxlZC5leHRyYVByb2dyYW1QYWdlcywKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogY29tcGlsZWQuZ2xvYmFsQnl0ZXMsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBpdHhuX2JlZ2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjEwMQogICAgLy8gY29uc3QgY29tcGlsZWQgPSBjb21waWxlKExhcmdlUHJvZ3JhbSkKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEdsb2JhbE51bUJ5dGVTbGljZQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRXh0cmFQcm9ncmFtUGFnZXMKICAgIGJ5dGVjXzIgLy8gYmFzZTY0KENvRUJRdz09KQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBieXRlY18wIC8vIDB4CiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIHB1c2hieXRlcyBiYXNlNjQoQ2lBQ0FBRXhHeUlUUVFCR05ob0FnQVFDdnpEUGdBUWtONDA4VHdLT0FnQVVBQUlpUXpFWmdRVVNSREVZSWhORWlBQkFJMEwvN1RFWkloSkVNUmdpRTBTSUFDb1dnQVFWSDN4MVRGQ3dJMEwvMGpFWklreU9BUUFEUXYvR01SZ2lFa1NJQUE4alF2KzdnWUFncjRtSS8vZ1ZpWW1KKQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweAogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMDMtMTA5CiAgICAvLyBjb25zdCBsYXJnZUFwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGV4dHJhUHJvZ3JhbVBhZ2VzOiBjb21waWxlZC5leHRyYVByb2dyYW1QYWdlcywKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogY29tcGlsZWQuZ2xvYmFsQnl0ZXMsCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0X2NvbXBpbGVfY29udHJhY3RfbGFyZ2VfbmV4dF90eG5AMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTAzLTExMAogICAgLy8gY29uc3QgbGFyZ2VBcHAgPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcHJvdmFsUHJvZ3JhbTogY29tcGlsZWQuYXBwcm92YWxQcm9ncmFtLAogICAgLy8gICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBjb21waWxlZC5jbGVhclN0YXRlUHJvZ3JhbSwKICAgIC8vICAgICBleHRyYVByb2dyYW1QYWdlczogY29tcGlsZWQuZXh0cmFQcm9ncmFtUGFnZXMsCiAgICAvLyAgICAgZ2xvYmFsTnVtQnl0ZXM6IGNvbXBpbGVkLmdsb2JhbEJ5dGVzLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4bl9zdWJtaXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTEwCiAgICAvLyAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4biBDcmVhdGVkQXBwbGljYXRpb25JRAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMDMtMTEwCiAgICAvLyBjb25zdCBsYXJnZUFwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGV4dHJhUHJvZ3JhbVBhZ2VzOiBjb21waWxlZC5leHRyYVByb2dyYW1QYWdlcywKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogY29tcGlsZWQuZ2xvYmFsQnl0ZXMsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBkdXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTEyLTExNwogICAgLy8gY29uc3QgdHhuID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2dldEJpZ0J5dGVzTGVuZ3RoKCl1aW50NjQnKV0sCiAgICAvLyAgICAgYXBwSWQ6IGxhcmdlQXBwLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25JRAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMTQKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZ2V0QmlnQnl0ZXNMZW5ndGgoKXVpbnQ2NCcpXSwKICAgIHB1c2hieXRlcyAweDAyYmYzMGNmIC8vIG1ldGhvZCAiZ2V0QmlnQnl0ZXNMZW5ndGgoKXVpbnQ2NCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjExMi0xMTYKICAgIC8vIGNvbnN0IHR4biA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdnZXRCaWdCeXRlc0xlbmd0aCgpdWludDY0JyldLAogICAgLy8gICAgIGFwcElkOiBsYXJnZUFwcCwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3RfY29tcGlsZV9jb250cmFjdF9sYXJnZV9uZXh0X3R4bkAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMTItMTE3CiAgICAvLyBjb25zdCB0eG4gPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZ2V0QmlnQnl0ZXNMZW5ndGgoKXVpbnQ2NCcpXSwKICAgIC8vICAgICBhcHBJZDogbGFyZ2VBcHAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIGl0eG4gTGFzdExvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMTgKICAgIC8vIGNvbnN0IHJlc3VsdCA9IGRlY29kZUFyYzQ8dWludDY0Pih0eG4ubGFzdExvZywgJ2xvZycpCiAgICBkdXAKICAgIGV4dHJhY3QgNCAwCiAgICBzd2FwCiAgICBleHRyYWN0IDAgNAogICAgYnl0ZWNfMyAvLyAweDE1MWY3Yzc1CiAgICA9PQogICAgYXNzZXJ0IC8vIEJ5dGVzIGhhcyB2YWxpZCBwcmVmaXgKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTIwCiAgICAvLyBhc3NlcnQocmVzdWx0ID09PSA0MDk2KQogICAgcHVzaGludCA0MDk2IC8vIDQwOTYKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTIyLTEyOAogICAgLy8gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBJZDogbGFyZ2VBcHAsCiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdkZWxldGUoKXZvaWQnKV0sCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTI2CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzMgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTI1CiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2RlbGV0ZSgpdm9pZCcpXSwKICAgIGJ5dGVjIDQgLy8gbWV0aG9kICJkZWxldGUoKXZvaWQiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjEyMi0xMjcKICAgIC8vIGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwSWQ6IGxhcmdlQXBwLAogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZGVsZXRlKCl2b2lkJyldLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3RfY29tcGlsZV9jb250cmFjdF9sYXJnZV9uZXh0X3R4bkAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMjItMTI4CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcElkOiBsYXJnZUFwcCwKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2RlbGV0ZSgpdm9pZCcpXSwKICAgIC8vICAgICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/precompiled-factory/HelloFactory.arc56.json b/tests/approvals/out/unoptimized/precompiled-factory/HelloFactory.arc56.json index 7d5dcca5f..0731afe45 100644 --- a/tests/approvals/out/unoptimized/precompiled-factory/HelloFactory.arc56.json +++ b/tests/approvals/out/unoptimized/precompiled-factory/HelloFactory.arc56.json @@ -145,8 +145,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA2IDEgNQogICAgYnl0ZWNibG9jayAweCAid29ybGQiIGJhc2U2NChDb0VCUXc9PSkgMHgxNTFmN2M3NSAweDI0Mzc4ZDNjIDB4ZDBhMjgyMDAgImhlbGxvIiAweDRjNWM2MWJhCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjYKICAgIC8vIGNsYXNzIEhlbGxvRmFjdG9yeSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDkKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NgogICAgLy8gY2xhc3MgSGVsbG9GYWN0b3J5IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4MmExNzk5NWMgLy8gbWV0aG9kICJ0ZXN0X2NvbXBpbGVfY29udHJhY3QoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhlMzI1NGJjOSAvLyBtZXRob2QgInRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4ZTJiN2M2OTIgLy8gbWV0aG9kICJ0ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9hbmRfY3VzdG9tX3ByZWZpeCgpdm9pZCIKICAgIHB1c2hieXRlcyAweDAyOTQ3Y2EyIC8vIG1ldGhvZCAidGVzdF9jb21waWxlX2NvbnRyYWN0X2xhcmdlKCl2b2lkIgogICAgdW5jb3ZlciA0CiAgICBtYXRjaCBtYWluX3Rlc3RfY29tcGlsZV9jb250cmFjdF9yb3V0ZUAzIG1haW5fdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfcm91dGVANCBtYWluX3Rlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX2FuZF9jdXN0b21fcHJlZml4X3JvdXRlQDUgbWFpbl90ZXN0X2NvbXBpbGVfY29udHJhY3RfbGFyZ2Vfcm91dGVANgoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDc6CgptYWluX3N3aXRjaF9jYXNlX25leHRAODoKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NgogICAgLy8gY2xhc3MgSGVsbG9GYWN0b3J5IGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkuX19wdXlhX2FyYzRfcm91dGVyX19AMTQ6CiAgICByZXR1cm4KCm1haW5fdGVzdF9jb21waWxlX2NvbnRyYWN0X2xhcmdlX3JvdXRlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjEwMAogICAgLy8gdGVzdF9jb21waWxlX2NvbnRyYWN0X2xhcmdlKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0X2NvbXBpbGVfY29udHJhY3RfbGFyZ2UKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfYW5kX2N1c3RvbV9wcmVmaXhfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NjkKICAgIC8vIHRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX2FuZF9jdXN0b21fcHJlZml4KCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9hbmRfY3VzdG9tX3ByZWZpeAogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl90ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czozOAogICAgLy8gdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGUoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX3Rlc3RfY29tcGlsZV9jb250cmFjdF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo3CiAgICAvLyB0ZXN0X2NvbXBpbGVfY29udHJhY3QoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3RfY29tcGlsZV9jb250cmFjdAogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl9iYXJlX3JvdXRpbmdAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NgogICAgLy8gY2xhc3MgSGVsbG9GYWN0b3J5IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDEwCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTE6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTI6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMwoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjYKICAgIC8vIGNsYXNzIEhlbGxvRmFjdG9yeSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5LnRlc3RfY29tcGlsZV9jb250cmFjdCgpIC0+IHZvaWQ6CnRlc3RfY29tcGlsZV9jb250cmFjdDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTAtMTcKICAgIC8vIGNvbnN0IGhlbGxvQXBwID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoSGVsbG8ucHJvdG90eXBlLmNyZWF0ZSksIGVuY29kZUFyYzQoJ2hlbGxvJyldLAogICAgLy8gICAgIGFwcHJvdmFsUHJvZ3JhbTogY29tcGlsZWQuYXBwcm92YWxQcm9ncmFtLAogICAgLy8gICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBjb21waWxlZC5jbGVhclN0YXRlUHJvZ3JhbSwKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogMSwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpLmNyZWF0ZWRBcHAKICAgIGl0eG5fYmVnaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTIKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuY3JlYXRlKSwgZW5jb2RlQXJjNCgnaGVsbG8nKV0sCiAgICBieXRlYyA2IC8vICJoZWxsbyIKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGJ5dGVjIDYgLy8gImhlbGxvIgogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjE1CiAgICAvLyBnbG9iYWxOdW1CeXRlczogMSwKICAgIGludGNfMiAvLyAxCiAgICBpdHhuX2ZpZWxkIEdsb2JhbE51bUJ5dGVTbGljZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo4CiAgICAvLyBjb25zdCBjb21waWxlZCA9IGNvbXBpbGUoSGVsbG8pCiAgICBieXRlY18yIC8vIGJhc2U2NChDb0VCUXc9PSkKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweAogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBwdXNoYnl0ZXMgYmFzZTY0KENpQUNBQUVtQWdobmNtVmxkR2x1WndBeEdFQUFBNGdBc2pFYkloTkJBSXcyR2dDQUJBQ1NKYTZBQkNRM2pUeUFCS0RvR0hLQUJOQ2lnZ0JQQkk0RUFFNEFQQUFxQUFJaVF6RVpJaEpFTVJnaUUwUTJHZ0ZYQWdDSUFGMUpGUlpYQmdKTVVJQUVGUjk4ZFV4UXNDTkMvOWN4R1lFRUVrUXhHQ0lUUklnQU9TTkMvOFV4R1lFRkVrUXhHQ0lUUklnQUppTkMvN014R1NJU1JERVlJaEpFTmhvQlZ3SUFpQUFISTBML25FTC9tSW9CQUNpTC8yZUppWW1LQVFFaUtHVkVLVXhRZ0FFZ1VJdi9VSWtvS1dlSikKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTIKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuY3JlYXRlKSwgZW5jb2RlQXJjNCgnaGVsbG8nKV0sCiAgICBwdXNoYnl0ZXMgMHgwMDkyMjVhZSAvLyBtZXRob2QgImhlbGxvQ3JlYXRlKHN0cmluZyl2b2lkIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjEwLTE2CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKEhlbGxvLnByb3RvdHlwZS5jcmVhdGUpLCBlbmNvZGVBcmM0KCdoZWxsbycpXSwKICAgIC8vICAgICBhcHByb3ZhbFByb2dyYW06IGNvbXBpbGVkLmFwcHJvdmFsUHJvZ3JhbSwKICAgIC8vICAgICBjbGVhclN0YXRlUHJvZ3JhbTogY29tcGlsZWQuY2xlYXJTdGF0ZVByb2dyYW0sCiAgICAvLyAgICAgZ2xvYmFsTnVtQnl0ZXM6IDEsCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0X2NvbXBpbGVfY29udHJhY3RfbmV4dF90eG5AMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTAtMTcKICAgIC8vIGNvbnN0IGhlbGxvQXBwID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoSGVsbG8ucHJvdG90eXBlLmNyZWF0ZSksIGVuY29kZUFyYzQoJ2hlbGxvJyldLAogICAgLy8gICAgIGFwcHJvdmFsUHJvZ3JhbTogY29tcGlsZWQuYXBwcm92YWxQcm9ncmFtLAogICAgLy8gICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBjb21waWxlZC5jbGVhclN0YXRlUHJvZ3JhbSwKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogMSwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpLmNyZWF0ZWRBcHAKICAgIGl0eG5fc3VibWl0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjE3CiAgICAvLyAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4biBDcmVhdGVkQXBwbGljYXRpb25JRAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMC0xNwogICAgLy8gY29uc3QgaGVsbG9BcHAgPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuY3JlYXRlKSwgZW5jb2RlQXJjNCgnaGVsbG8nKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgZHVwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjE5LTI0CiAgICAvLyBjb25zdCB0eG4gPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuZ3JlZXQpLCBlbmNvZGVBcmM0KCd3b3JsZCcpXSwKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoyMQogICAgLy8gYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKEhlbGxvLnByb3RvdHlwZS5ncmVldCksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgYnl0ZWNfMSAvLyAid29ybGQiCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBieXRlY18xIC8vICJ3b3JsZCIKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoyMgogICAgLy8gYXBwSWQ6IGhlbGxvQXBwLAogICAgc3dhcAogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjIxCiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoSGVsbG8ucHJvdG90eXBlLmdyZWV0KSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICBieXRlYyA1IC8vIG1ldGhvZCAiZ3JlZXQoc3RyaW5nKXN0cmluZyIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxOS0yMwogICAgLy8gY29uc3QgdHhuID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoSGVsbG8ucHJvdG90eXBlLmdyZWV0KSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdF9jb21waWxlX2NvbnRyYWN0X25leHRfdHhuQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjE5LTI0CiAgICAvLyBjb25zdCB0eG4gPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuZ3JlZXQpLCBlbmNvZGVBcmM0KCd3b3JsZCcpXSwKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIGl0eG4gTGFzdExvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoyNQogICAgLy8gY29uc3QgcmVzdWx0ID0gZGVjb2RlQXJjNDxzdHJpbmc+KHR4bi5sYXN0TG9nLCAnbG9nJykKICAgIGR1cAogICAgZXh0cmFjdCA0IDAKICAgIHN3YXAKICAgIGV4dHJhY3QgMCA0CiAgICBieXRlY18zIC8vIDB4MTUxZjdjNzUKICAgID09CiAgICBhc3NlcnQgLy8gQnl0ZXMgaGFzIHZhbGlkIHByZWZpeAogICAgZXh0cmFjdCAyIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MjcKICAgIC8vIGFzc2VydChyZXN1bHQgPT09ICdoZWxsbyB3b3JsZCcpCiAgICBwdXNoYnl0ZXMgImhlbGxvIHdvcmxkIgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoyOS0zNQogICAgLy8gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKEhlbGxvLnByb3RvdHlwZS5kZWxldGUpXSwKICAgIC8vICAgICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czozMwogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18zIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjMyCiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoSGVsbG8ucHJvdG90eXBlLmRlbGV0ZSldLAogICAgYnl0ZWMgNCAvLyBtZXRob2QgImRlbGV0ZSgpdm9pZCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MjktMzQKICAgIC8vIGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuZGVsZXRlKV0sCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdF9jb21waWxlX2NvbnRyYWN0X25leHRfdHhuQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjI5LTM1CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoSGVsbG8ucHJvdG90eXBlLmRlbGV0ZSldLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5LnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlKCkgLT4gdm9pZDoKdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjQxLTQ4CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdjcmVhdGUoKXZvaWQnKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo0NgogICAgLy8gZ2xvYmFsTnVtQnl0ZXM6IDEsCiAgICBpbnRjXzIgLy8gMQogICAgaXR4bl9maWVsZCBHbG9iYWxOdW1CeXRlU2xpY2UKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MzkKICAgIC8vIGNvbnN0IGNvbXBpbGVkID0gY29tcGlsZShIZWxsb1RlbXBsYXRlLCB7IHRlbXBsYXRlVmFyczogeyBHUkVFVElORzogJ2hleScgfSB9KQogICAgYnl0ZWNfMiAvLyBiYXNlNjQoQ29FQlF3PT0pCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgcHVzaGJ5dGVzIGJhc2U2NChDaUFDQUFFbUF3aG5jbVZsZEdsdVp3QURhR1Y1TVJoQUFBT0lBS1V4R3lJVFFRQ0dOaG9BZ0FSTVhHRzZnQVFrTjQwOGdBU2c2Qmh5Z0FUUW9vSUFUd1NPQkFCT0FEd0FLZ0FDSWtNeEdTSVNSREVZSWhORU5ob0JWd0lBaUFCUVNSVVdWd1lDVEZDQUJCVWZmSFZNVUxBalF2L1hNUm1CQkJKRU1SZ2lFMFNJQUN3alF2L0ZNUm1CQlJKRU1SZ2lFMFNJQUJralF2K3pNUmtpRWtReEdDSVNSSWdBQnlOQy82SkMvNTZKaVltS0FRRWlLR1ZFS1V4UWdBRWdVSXYvVUltSUFBUW9LbWVKS0NsbmlRPT0pCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICBieXRlY18wIC8vIDB4CiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjQzCiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2NyZWF0ZSgpdm9pZCcpXSwKICAgIGJ5dGVjIDcgLy8gbWV0aG9kICJjcmVhdGUoKXZvaWQiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo0MS00NwogICAgLy8gY29uc3QgaGVsbG9BcHAgPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignY3JlYXRlKCl2b2lkJyldLAogICAgLy8gICAgIGFwcHJvdmFsUHJvZ3JhbTogY29tcGlsZWQuYXBwcm92YWxQcm9ncmFtLAogICAgLy8gICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBjb21waWxlZC5jbGVhclN0YXRlUHJvZ3JhbSwKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogMSwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX25leHRfdHhuQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjQxLTQ4CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdjcmVhdGUoKXZvaWQnKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4bl9zdWJtaXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NDgKICAgIC8vIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBpdHhuIENyZWF0ZWRBcHBsaWNhdGlvbklECiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjQxLTQ4CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdjcmVhdGUoKXZvaWQnKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgZHVwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjUwLTU1CiAgICAvLyBjb25zdCB0eG4gPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZ3JlZXQoc3RyaW5nKXN0cmluZycpLCBlbmNvZGVBcmM0KCd3b3JsZCcpXSwKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo1MgogICAgLy8gYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdncmVldChzdHJpbmcpc3RyaW5nJyksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgYnl0ZWNfMSAvLyAid29ybGQiCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBieXRlY18xIC8vICJ3b3JsZCIKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo1MwogICAgLy8gYXBwSWQ6IGhlbGxvQXBwLAogICAgc3dhcAogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjUyCiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2dyZWV0KHN0cmluZylzdHJpbmcnKSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICBieXRlYyA1IC8vIG1ldGhvZCAiZ3JlZXQoc3RyaW5nKXN0cmluZyIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo1MC01NAogICAgLy8gY29uc3QgdHhuID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2dyZWV0KHN0cmluZylzdHJpbmcnKSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfbmV4dF90eG5AMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NTAtNTUKICAgIC8vIGNvbnN0IHR4biA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdncmVldChzdHJpbmcpc3RyaW5nJyksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBMYXN0TG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjU2CiAgICAvLyBjb25zdCByZXN1bHQgPSBkZWNvZGVBcmM0PHN0cmluZz4odHhuLmxhc3RMb2csICdsb2cnKQogICAgZHVwCiAgICBleHRyYWN0IDQgMAogICAgc3dhcAogICAgZXh0cmFjdCAwIDQKICAgIGJ5dGVjXzMgLy8gMHgxNTFmN2M3NQogICAgPT0KICAgIGFzc2VydCAvLyBCeXRlcyBoYXMgdmFsaWQgcHJlZml4CiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo1OAogICAgLy8gYXNzZXJ0KHJlc3VsdCA9PT0gJ2hleSB3b3JsZCcpCiAgICBwdXNoYnl0ZXMgImhleSB3b3JsZCIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NjAtNjYKICAgIC8vIGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZGVsZXRlKCl2b2lkJyldLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjY0CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzMgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NjMKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZGVsZXRlKCl2b2lkJyldLAogICAgYnl0ZWMgNCAvLyBtZXRob2QgImRlbGV0ZSgpdm9pZCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NjAtNjUKICAgIC8vIGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZGVsZXRlKCl2b2lkJyldLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX25leHRfdHhuQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjYwLTY2CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2RlbGV0ZSgpdm9pZCcpXSwKICAgIC8vICAgICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS50ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9hbmRfY3VzdG9tX3ByZWZpeCgpIC0+IHZvaWQ6CnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX2FuZF9jdXN0b21fcHJlZml4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo3Mi03OQogICAgLy8gY29uc3QgaGVsbG9BcHAgPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignY3JlYXRlKCl2b2lkJyldLAogICAgLy8gICAgIGFwcHJvdmFsUHJvZ3JhbTogY29tcGlsZWQuYXBwcm92YWxQcm9ncmFtLAogICAgLy8gICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBjb21waWxlZC5jbGVhclN0YXRlUHJvZ3JhbSwKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogMSwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpLmNyZWF0ZWRBcHAKICAgIGl0eG5fYmVnaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NzcKICAgIC8vIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgaW50Y18yIC8vIDEKICAgIGl0eG5fZmllbGQgR2xvYmFsTnVtQnl0ZVNsaWNlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjcwCiAgICAvLyBjb25zdCBjb21waWxlZCA9IGNvbXBpbGUoSGVsbG9UZW1wbGF0ZUN1c3RvbVByZWZpeCwgeyB0ZW1wbGF0ZVZhcnM6IHsgR1JFRVRJTkc6ICdib25qb3VyJyB9LCB0ZW1wbGF0ZVZhcnNQcmVmaXg6ICdQUkZYXycgfSkKICAgIGJ5dGVjXzIgLy8gYmFzZTY0KENvRUJRdz09KQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBieXRlY18wIC8vIDB4CiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIHB1c2hieXRlcyBiYXNlNjQoQ2lBQ0FBRW1Bd2huY21WbGRHbHVad0FIWW05dWFtOTFjakVZUUFBRGlBQ2xNUnNpRTBFQWhqWWFBSUFFVEZ4aHVvQUVKRGVOUElBRW9PZ1ljb0FFMEtLQ0FFOEVqZ1FBVGdBOEFDb0FBaUpETVJraUVrUXhHQ0lUUkRZYUFWY0NBSWdBVUVrVkZsY0dBa3hRZ0FRVkgzeDFURkN3STBMLzF6RVpnUVFTUkRFWUloTkVpQUFzSTBML3hURVpnUVVTUkRFWUloTkVpQUFaSTBML3N6RVpJaEpFTVJnaUVrU0lBQWNqUXYraVF2K2VpWW1KaWdFQklpaGxSQ2xNVUlBQklGQ0wvMUNKaUFBRUtDcG5pU2dwWjRrPSkKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NzQKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignY3JlYXRlKCl2b2lkJyldLAogICAgYnl0ZWMgNyAvLyBtZXRob2QgImNyZWF0ZSgpdm9pZCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjcyLTc4CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdjcmVhdGUoKXZvaWQnKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfYW5kX2N1c3RvbV9wcmVmaXhfbmV4dF90eG5AMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NzItNzkKICAgIC8vIGNvbnN0IGhlbGxvQXBwID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2NyZWF0ZSgpdm9pZCcpXSwKICAgIC8vICAgICBhcHByb3ZhbFByb2dyYW06IGNvbXBpbGVkLmFwcHJvdmFsUHJvZ3JhbSwKICAgIC8vICAgICBjbGVhclN0YXRlUHJvZ3JhbTogY29tcGlsZWQuY2xlYXJTdGF0ZVByb2dyYW0sCiAgICAvLyAgICAgZ2xvYmFsTnVtQnl0ZXM6IDEsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBpdHhuX3N1Ym1pdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo3OQogICAgLy8gLnN1Ym1pdCgpLmNyZWF0ZWRBcHAKICAgIGl0eG4gQ3JlYXRlZEFwcGxpY2F0aW9uSUQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NzItNzkKICAgIC8vIGNvbnN0IGhlbGxvQXBwID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2NyZWF0ZSgpdm9pZCcpXSwKICAgIC8vICAgICBhcHByb3ZhbFByb2dyYW06IGNvbXBpbGVkLmFwcHJvdmFsUHJvZ3JhbSwKICAgIC8vICAgICBjbGVhclN0YXRlUHJvZ3JhbTogY29tcGlsZWQuY2xlYXJTdGF0ZVByb2dyYW0sCiAgICAvLyAgICAgZ2xvYmFsTnVtQnl0ZXM6IDEsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBkdXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6ODEtODYKICAgIC8vIGNvbnN0IHR4biA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdncmVldChzdHJpbmcpc3RyaW5nJyksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjgzCiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2dyZWV0KHN0cmluZylzdHJpbmcnKSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICBieXRlY18xIC8vICJ3b3JsZCIKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGJ5dGVjXzEgLy8gIndvcmxkIgogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjg0CiAgICAvLyBhcHBJZDogaGVsbG9BcHAsCiAgICBzd2FwCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6ODMKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZ3JlZXQoc3RyaW5nKXN0cmluZycpLCBlbmNvZGVBcmM0KCd3b3JsZCcpXSwKICAgIGJ5dGVjIDUgLy8gbWV0aG9kICJncmVldChzdHJpbmcpc3RyaW5nIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjgxLTg1CiAgICAvLyBjb25zdCB0eG4gPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZ3JlZXQoc3RyaW5nKXN0cmluZycpLCBlbmNvZGVBcmM0KCd3b3JsZCcpXSwKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9hbmRfY3VzdG9tX3ByZWZpeF9uZXh0X3R4bkAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo4MS04NgogICAgLy8gY29uc3QgdHhuID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2dyZWV0KHN0cmluZylzdHJpbmcnKSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CiAgICBpdHhuIExhc3RMb2cKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6ODcKICAgIC8vIGNvbnN0IHJlc3VsdCA9IGRlY29kZUFyYzQ8c3RyaW5nPih0eG4ubGFzdExvZywgJ2xvZycpCiAgICBkdXAKICAgIGV4dHJhY3QgNCAwCiAgICBzd2FwCiAgICBleHRyYWN0IDAgNAogICAgYnl0ZWNfMyAvLyAweDE1MWY3Yzc1CiAgICA9PQogICAgYXNzZXJ0IC8vIEJ5dGVzIGhhcyB2YWxpZCBwcmVmaXgKICAgIGV4dHJhY3QgMiAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjg5CiAgICAvLyBhc3NlcnQocmVzdWx0ID09PSAnYm9uam91ciB3b3JsZCcpCiAgICBwdXNoYnl0ZXMgImJvbmpvdXIgd29ybGQiCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjkxLTk3CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2RlbGV0ZSgpdm9pZCcpXSwKICAgIC8vICAgICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo5NQogICAgLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgaW50Y18zIC8vIDUKICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjk0CiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2RlbGV0ZSgpdm9pZCcpXSwKICAgIGJ5dGVjIDQgLy8gbWV0aG9kICJkZWxldGUoKXZvaWQiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjkxLTk2CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2RlbGV0ZSgpdm9pZCcpXSwKICAgIC8vICAgICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9hbmRfY3VzdG9tX3ByZWZpeF9uZXh0X3R4bkAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo5MS05NwogICAgLy8gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdkZWxldGUoKXZvaWQnKV0sCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkudGVzdF9jb21waWxlX2NvbnRyYWN0X2xhcmdlKCkgLT4gdm9pZDoKdGVzdF9jb21waWxlX2NvbnRyYWN0X2xhcmdlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMDMtMTEwCiAgICAvLyBjb25zdCBsYXJnZUFwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGV4dHJhUHJvZ3JhbVBhZ2VzOiBjb21waWxlZC5leHRyYVByb2dyYW1QYWdlcywKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogY29tcGlsZWQuZ2xvYmFsQnl0ZXMsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBpdHhuX2JlZ2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjEwMQogICAgLy8gY29uc3QgY29tcGlsZWQgPSBjb21waWxlKExhcmdlUHJvZ3JhbSkKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEdsb2JhbE51bUJ5dGVTbGljZQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRXh0cmFQcm9ncmFtUGFnZXMKICAgIGJ5dGVjXzIgLy8gYmFzZTY0KENvRUJRdz09KQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBieXRlY18wIC8vIDB4CiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIHB1c2hieXRlcyBiYXNlNjQoQ2lBQ0FBRXhHeUlUUVFCR05ob0FnQVFDdnpEUGdBUWtONDA4VHdLT0FnQVVBQUlpUXpFWmdRVVNSREVZSWhORWlBQkFJMEwvN1RFWkloSkVNUmdpRTBTSUFDb1dnQVFWSDN4MVRGQ3dJMEwvMGpFWklreU9BUUFEUXYvR01SZ2lFa1NJQUE4alF2KzdnWUFncjRtSS8vZ1ZpWW1KKQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweAogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMDMtMTA5CiAgICAvLyBjb25zdCBsYXJnZUFwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGV4dHJhUHJvZ3JhbVBhZ2VzOiBjb21waWxlZC5leHRyYVByb2dyYW1QYWdlcywKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogY29tcGlsZWQuZ2xvYmFsQnl0ZXMsCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0X2NvbXBpbGVfY29udHJhY3RfbGFyZ2VfbmV4dF90eG5AMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTAzLTExMAogICAgLy8gY29uc3QgbGFyZ2VBcHAgPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcHJvdmFsUHJvZ3JhbTogY29tcGlsZWQuYXBwcm92YWxQcm9ncmFtLAogICAgLy8gICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBjb21waWxlZC5jbGVhclN0YXRlUHJvZ3JhbSwKICAgIC8vICAgICBleHRyYVByb2dyYW1QYWdlczogY29tcGlsZWQuZXh0cmFQcm9ncmFtUGFnZXMsCiAgICAvLyAgICAgZ2xvYmFsTnVtQnl0ZXM6IGNvbXBpbGVkLmdsb2JhbEJ5dGVzLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4bl9zdWJtaXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTEwCiAgICAvLyAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4biBDcmVhdGVkQXBwbGljYXRpb25JRAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMDMtMTEwCiAgICAvLyBjb25zdCBsYXJnZUFwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGV4dHJhUHJvZ3JhbVBhZ2VzOiBjb21waWxlZC5leHRyYVByb2dyYW1QYWdlcywKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogY29tcGlsZWQuZ2xvYmFsQnl0ZXMsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBkdXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTEyLTExNwogICAgLy8gY29uc3QgdHhuID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2dldEJpZ0J5dGVzTGVuZ3RoKCl1aW50NjQnKV0sCiAgICAvLyAgICAgYXBwSWQ6IGxhcmdlQXBwLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25JRAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMTQKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZ2V0QmlnQnl0ZXNMZW5ndGgoKXVpbnQ2NCcpXSwKICAgIHB1c2hieXRlcyAweDAyYmYzMGNmIC8vIG1ldGhvZCAiZ2V0QmlnQnl0ZXNMZW5ndGgoKXVpbnQ2NCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjExMi0xMTYKICAgIC8vIGNvbnN0IHR4biA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdnZXRCaWdCeXRlc0xlbmd0aCgpdWludDY0JyldLAogICAgLy8gICAgIGFwcElkOiBsYXJnZUFwcCwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3RfY29tcGlsZV9jb250cmFjdF9sYXJnZV9uZXh0X3R4bkAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMTItMTE3CiAgICAvLyBjb25zdCB0eG4gPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZ2V0QmlnQnl0ZXNMZW5ndGgoKXVpbnQ2NCcpXSwKICAgIC8vICAgICBhcHBJZDogbGFyZ2VBcHAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIGl0eG4gTGFzdExvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMTgKICAgIC8vIGNvbnN0IHJlc3VsdCA9IGRlY29kZUFyYzQ8dWludDY0Pih0eG4ubGFzdExvZywgJ2xvZycpCiAgICBkdXAKICAgIGV4dHJhY3QgNCAwCiAgICBzd2FwCiAgICBleHRyYWN0IDAgNAogICAgYnl0ZWNfMyAvLyAweDE1MWY3Yzc1CiAgICA9PQogICAgYXNzZXJ0IC8vIEJ5dGVzIGhhcyB2YWxpZCBwcmVmaXgKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTIwCiAgICAvLyBhc3NlcnQocmVzdWx0ID09PSA0MDk2KQogICAgcHVzaGludCA0MDk2IC8vIDQwOTYKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTIyLTEyOAogICAgLy8gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBJZDogbGFyZ2VBcHAsCiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdkZWxldGUoKXZvaWQnKV0sCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTI2CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzMgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTI1CiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2RlbGV0ZSgpdm9pZCcpXSwKICAgIGJ5dGVjIDQgLy8gbWV0aG9kICJkZWxldGUoKXZvaWQiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjEyMi0xMjcKICAgIC8vIGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwSWQ6IGxhcmdlQXBwLAogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZGVsZXRlKCl2b2lkJyldLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3RfY29tcGlsZV9jb250cmFjdF9sYXJnZV9uZXh0X3R4bkAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMjItMTI4CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcElkOiBsYXJnZUFwcCwKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2RlbGV0ZSgpdm9pZCcpXSwKICAgIC8vICAgICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCA2IDEgNQogICAgYnl0ZWNibG9jayAweCAid29ybGQiIGJhc2U2NChDb0VCUXc9PSkgMHgxNTFmN2M3NSAweDI0Mzc4ZDNjIDB4ZDBhMjgyMDAgImhlbGxvIiAweDRjNWM2MWJhCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjYKICAgIC8vIGNsYXNzIEhlbGxvRmFjdG9yeSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDkKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NgogICAgLy8gY2xhc3MgSGVsbG9GYWN0b3J5IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4MmExNzk5NWMgLy8gbWV0aG9kICJ0ZXN0X2NvbXBpbGVfY29udHJhY3QoKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHhlMzI1NGJjOSAvLyBtZXRob2QgInRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlKCl2b2lkIgogICAgcHVzaGJ5dGVzIDB4ZTJiN2M2OTIgLy8gbWV0aG9kICJ0ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9hbmRfY3VzdG9tX3ByZWZpeCgpdm9pZCIKICAgIHB1c2hieXRlcyAweDAyOTQ3Y2EyIC8vIG1ldGhvZCAidGVzdF9jb21waWxlX2NvbnRyYWN0X2xhcmdlKCl2b2lkIgogICAgdW5jb3ZlciA0CiAgICBtYXRjaCBtYWluX3Rlc3RfY29tcGlsZV9jb250cmFjdF9yb3V0ZUAzIG1haW5fdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfcm91dGVANCBtYWluX3Rlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX2FuZF9jdXN0b21fcHJlZml4X3JvdXRlQDUgbWFpbl90ZXN0X2NvbXBpbGVfY29udHJhY3RfbGFyZ2Vfcm91dGVANgoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDc6CgptYWluX3N3aXRjaF9jYXNlX25leHRAODoKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NgogICAgLy8gY2xhc3MgSGVsbG9GYWN0b3J5IGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkuX19wdXlhX2FyYzRfcm91dGVyX19AMTQ6CiAgICByZXR1cm4KCm1haW5fdGVzdF9jb21waWxlX2NvbnRyYWN0X2xhcmdlX3JvdXRlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjEwMAogICAgLy8gdGVzdF9jb21waWxlX2NvbnRyYWN0X2xhcmdlKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0X2NvbXBpbGVfY29udHJhY3RfbGFyZ2UKICAgIGludGNfMiAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfYW5kX2N1c3RvbV9wcmVmaXhfcm91dGVANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NjkKICAgIC8vIHRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX2FuZF9jdXN0b21fcHJlZml4KCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9hbmRfY3VzdG9tX3ByZWZpeAogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl90ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czozOAogICAgLy8gdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGUoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX3Rlc3RfY29tcGlsZV9jb250cmFjdF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo3CiAgICAvLyB0ZXN0X2NvbXBpbGVfY29udHJhY3QoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3RfY29tcGlsZV9jb250cmFjdAogICAgaW50Y18yIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl9iYXJlX3JvdXRpbmdAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NgogICAgLy8gY2xhc3MgSGVsbG9GYWN0b3J5IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDEwCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTE6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTI6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMwoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjYKICAgIC8vIGNsYXNzIEhlbGxvRmFjdG9yeSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzIgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5LnRlc3RfY29tcGlsZV9jb250cmFjdCgpIC0+IHZvaWQ6CnRlc3RfY29tcGlsZV9jb250cmFjdDoKCnRlc3RfY29tcGlsZV9jb250cmFjdF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMC0xNwogICAgLy8gY29uc3QgaGVsbG9BcHAgPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuY3JlYXRlKSwgZW5jb2RlQXJjNCgnaGVsbG8nKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMgogICAgLy8gYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKEhlbGxvLnByb3RvdHlwZS5jcmVhdGUpLCBlbmNvZGVBcmM0KCdoZWxsbycpXSwKICAgIGJ5dGVjIDYgLy8gImhlbGxvIgogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgYnl0ZWMgNiAvLyAiaGVsbG8iCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTUKICAgIC8vIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgaW50Y18yIC8vIDEKICAgIGl0eG5fZmllbGQgR2xvYmFsTnVtQnl0ZVNsaWNlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjgKICAgIC8vIGNvbnN0IGNvbXBpbGVkID0gY29tcGlsZShIZWxsbykKICAgIGJ5dGVjXzIgLy8gYmFzZTY0KENvRUJRdz09KQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBieXRlY18wIC8vIDB4CiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIHB1c2hieXRlcyBiYXNlNjQoQ2lBQ0FBRW1BZ2huY21WbGRHbHVad0F4R0VBQUE0Z0FzakViSWhOQkFJdzJHZ0NBQkFDU0phNkFCQ1EzalR5QUJLRG9HSEtBQk5DaWdnQlBCSTRFQUU0QVBBQXFBQUlpUXpFWkloSkVNUmdpRTBRMkdnRlhBZ0NJQUYxSkZSWlhCZ0pNVUlBRUZSOThkVXhRc0NOQy85Y3hHWUVFRWtReEdDSVRSSWdBT1NOQy84VXhHWUVGRWtReEdDSVRSSWdBSmlOQy83TXhHU0lTUkRFWUloSkVOaG9CVndJQWlBQUhJMEwvbkVML21Jb0JBQ2lMLzJlSmlZbUtBUUVpS0dWRUtVeFFnQUVnVUl2L1VJa29LV2VKKQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweAogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMgogICAgLy8gYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKEhlbGxvLnByb3RvdHlwZS5jcmVhdGUpLCBlbmNvZGVBcmM0KCdoZWxsbycpXSwKICAgIHB1c2hieXRlcyAweDAwOTIyNWFlIC8vIG1ldGhvZCAiaGVsbG9DcmVhdGUoc3RyaW5nKXZvaWQiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTAtMTYKICAgIC8vIGNvbnN0IGhlbGxvQXBwID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoSGVsbG8ucHJvdG90eXBlLmNyZWF0ZSksIGVuY29kZUFyYzQoJ2hlbGxvJyldLAogICAgLy8gICAgIGFwcHJvdmFsUHJvZ3JhbTogY29tcGlsZWQuYXBwcm92YWxQcm9ncmFtLAogICAgLy8gICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBjb21waWxlZC5jbGVhclN0YXRlUHJvZ3JhbSwKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogMSwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3RfY29tcGlsZV9jb250cmFjdF9uZXh0X3R4bkAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMC0xNwogICAgLy8gY29uc3QgaGVsbG9BcHAgPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuY3JlYXRlKSwgZW5jb2RlQXJjNCgnaGVsbG8nKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4bl9zdWJtaXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTcKICAgIC8vIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBpdHhuIENyZWF0ZWRBcHBsaWNhdGlvbklECiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjEwLTE3CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKEhlbGxvLnByb3RvdHlwZS5jcmVhdGUpLCBlbmNvZGVBcmM0KCdoZWxsbycpXSwKICAgIC8vICAgICBhcHByb3ZhbFByb2dyYW06IGNvbXBpbGVkLmFwcHJvdmFsUHJvZ3JhbSwKICAgIC8vICAgICBjbGVhclN0YXRlUHJvZ3JhbTogY29tcGlsZWQuY2xlYXJTdGF0ZVByb2dyYW0sCiAgICAvLyAgICAgZ2xvYmFsTnVtQnl0ZXM6IDEsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBkdXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTktMjQKICAgIC8vIGNvbnN0IHR4biA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKEhlbGxvLnByb3RvdHlwZS5ncmVldCksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjIxCiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoSGVsbG8ucHJvdG90eXBlLmdyZWV0KSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICBieXRlY18xIC8vICJ3b3JsZCIKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGJ5dGVjXzEgLy8gIndvcmxkIgogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjIyCiAgICAvLyBhcHBJZDogaGVsbG9BcHAsCiAgICBzd2FwCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MjEKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuZ3JlZXQpLCBlbmNvZGVBcmM0KCd3b3JsZCcpXSwKICAgIGJ5dGVjIDUgLy8gbWV0aG9kICJncmVldChzdHJpbmcpc3RyaW5nIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjE5LTIzCiAgICAvLyBjb25zdCB0eG4gPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuZ3JlZXQpLCBlbmNvZGVBcmM0KCd3b3JsZCcpXSwKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0X2NvbXBpbGVfY29udHJhY3RfbmV4dF90eG5AMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTktMjQKICAgIC8vIGNvbnN0IHR4biA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKEhlbGxvLnByb3RvdHlwZS5ncmVldCksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBMYXN0TG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjI1CiAgICAvLyBjb25zdCByZXN1bHQgPSBkZWNvZGVBcmM0PHN0cmluZz4odHhuLmxhc3RMb2csICdsb2cnKQogICAgZHVwCiAgICBleHRyYWN0IDQgMAogICAgc3dhcAogICAgZXh0cmFjdCAwIDQKICAgIGJ5dGVjXzMgLy8gMHgxNTFmN2M3NQogICAgPT0KICAgIGFzc2VydCAvLyBCeXRlcyBoYXMgdmFsaWQgcHJlZml4CiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoyNwogICAgLy8gYXNzZXJ0KHJlc3VsdCA9PT0gJ2hlbGxvIHdvcmxkJykKICAgIHB1c2hieXRlcyAiaGVsbG8gd29ybGQiCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjI5LTM1CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoSGVsbG8ucHJvdG90eXBlLmRlbGV0ZSldLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjMzCiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzMgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MzIKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuZGVsZXRlKV0sCiAgICBieXRlYyA0IC8vIG1ldGhvZCAiZGVsZXRlKCl2b2lkIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25JRAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoyOS0zNAogICAgLy8gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKEhlbGxvLnByb3RvdHlwZS5kZWxldGUpXSwKICAgIC8vICAgICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0X2NvbXBpbGVfY29udHJhY3RfbmV4dF90eG5AMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MjktMzUKICAgIC8vIGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcihIZWxsby5wcm90b3R5cGUuZGVsZXRlKV0sCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjpIZWxsb0ZhY3RvcnkudGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGUoKSAtPiB2b2lkOgp0ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZToKCnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjQxLTQ4CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdjcmVhdGUoKXZvaWQnKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo0NgogICAgLy8gZ2xvYmFsTnVtQnl0ZXM6IDEsCiAgICBpbnRjXzIgLy8gMQogICAgaXR4bl9maWVsZCBHbG9iYWxOdW1CeXRlU2xpY2UKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MzkKICAgIC8vIGNvbnN0IGNvbXBpbGVkID0gY29tcGlsZShIZWxsb1RlbXBsYXRlLCB7IHRlbXBsYXRlVmFyczogeyBHUkVFVElORzogJ2hleScgfSB9KQogICAgYnl0ZWNfMiAvLyBiYXNlNjQoQ29FQlF3PT0pCiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIGJ5dGVjXzAgLy8gMHgKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgcHVzaGJ5dGVzIGJhc2U2NChDaUFDQUFFbUF3aG5jbVZsZEdsdVp3QURhR1Y1TVJoQUFBT0lBS1V4R3lJVFFRQ0dOaG9BZ0FSTVhHRzZnQVFrTjQwOGdBU2c2Qmh5Z0FUUW9vSUFUd1NPQkFCT0FEd0FLZ0FDSWtNeEdTSVNSREVZSWhORU5ob0JWd0lBaUFCUVNSVVdWd1lDVEZDQUJCVWZmSFZNVUxBalF2L1hNUm1CQkJKRU1SZ2lFMFNJQUN3alF2L0ZNUm1CQlJKRU1SZ2lFMFNJQUJralF2K3pNUmtpRWtReEdDSVNSSWdBQnlOQy82SkMvNTZKaVltS0FRRWlLR1ZFS1V4UWdBRWdVSXYvVUltSUFBUW9LbWVKS0NsbmlRPT0pCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICBieXRlY18wIC8vIDB4CiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjQzCiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2NyZWF0ZSgpdm9pZCcpXSwKICAgIGJ5dGVjIDcgLy8gbWV0aG9kICJjcmVhdGUoKXZvaWQiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo0MS00NwogICAgLy8gY29uc3QgaGVsbG9BcHAgPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignY3JlYXRlKCl2b2lkJyldLAogICAgLy8gICAgIGFwcHJvdmFsUHJvZ3JhbTogY29tcGlsZWQuYXBwcm92YWxQcm9ncmFtLAogICAgLy8gICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBjb21waWxlZC5jbGVhclN0YXRlUHJvZ3JhbSwKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogMSwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX25leHRfdHhuQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjQxLTQ4CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdjcmVhdGUoKXZvaWQnKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4bl9zdWJtaXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NDgKICAgIC8vIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBpdHhuIENyZWF0ZWRBcHBsaWNhdGlvbklECiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjQxLTQ4CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdjcmVhdGUoKXZvaWQnKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgZHVwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjUwLTU1CiAgICAvLyBjb25zdCB0eG4gPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZ3JlZXQoc3RyaW5nKXN0cmluZycpLCBlbmNvZGVBcmM0KCd3b3JsZCcpXSwKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo1MgogICAgLy8gYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdncmVldChzdHJpbmcpc3RyaW5nJyksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgYnl0ZWNfMSAvLyAid29ybGQiCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBieXRlY18xIC8vICJ3b3JsZCIKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo1MwogICAgLy8gYXBwSWQ6IGhlbGxvQXBwLAogICAgc3dhcAogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjUyCiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2dyZWV0KHN0cmluZylzdHJpbmcnKSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICBieXRlYyA1IC8vIG1ldGhvZCAiZ3JlZXQoc3RyaW5nKXN0cmluZyIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo1MC01NAogICAgLy8gY29uc3QgdHhuID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2dyZWV0KHN0cmluZylzdHJpbmcnKSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfbmV4dF90eG5AMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NTAtNTUKICAgIC8vIGNvbnN0IHR4biA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdncmVldChzdHJpbmcpc3RyaW5nJyksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBMYXN0TG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjU2CiAgICAvLyBjb25zdCByZXN1bHQgPSBkZWNvZGVBcmM0PHN0cmluZz4odHhuLmxhc3RMb2csICdsb2cnKQogICAgZHVwCiAgICBleHRyYWN0IDQgMAogICAgc3dhcAogICAgZXh0cmFjdCAwIDQKICAgIGJ5dGVjXzMgLy8gMHgxNTFmN2M3NQogICAgPT0KICAgIGFzc2VydCAvLyBCeXRlcyBoYXMgdmFsaWQgcHJlZml4CiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo1OAogICAgLy8gYXNzZXJ0KHJlc3VsdCA9PT0gJ2hleSB3b3JsZCcpCiAgICBwdXNoYnl0ZXMgImhleSB3b3JsZCIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NjAtNjYKICAgIC8vIGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZGVsZXRlKCl2b2lkJyldLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjY0CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzMgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NjMKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZGVsZXRlKCl2b2lkJyldLAogICAgYnl0ZWMgNCAvLyBtZXRob2QgImRlbGV0ZSgpdm9pZCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NjAtNjUKICAgIC8vIGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZGVsZXRlKCl2b2lkJyldLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX25leHRfdHhuQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjYwLTY2CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2RlbGV0ZSgpdm9pZCcpXSwKICAgIC8vICAgICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS50ZXN0X2NvbXBpbGVfY29udHJhY3Rfd2l0aF90ZW1wbGF0ZV9hbmRfY3VzdG9tX3ByZWZpeCgpIC0+IHZvaWQ6CnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX2FuZF9jdXN0b21fcHJlZml4OgoKdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfYW5kX2N1c3RvbV9wcmVmaXhfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NzItNzkKICAgIC8vIGNvbnN0IGhlbGxvQXBwID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2NyZWF0ZSgpdm9pZCcpXSwKICAgIC8vICAgICBhcHByb3ZhbFByb2dyYW06IGNvbXBpbGVkLmFwcHJvdmFsUHJvZ3JhbSwKICAgIC8vICAgICBjbGVhclN0YXRlUHJvZ3JhbTogY29tcGlsZWQuY2xlYXJTdGF0ZVByb2dyYW0sCiAgICAvLyAgICAgZ2xvYmFsTnVtQnl0ZXM6IDEsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBpdHhuX2JlZ2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjc3CiAgICAvLyBnbG9iYWxOdW1CeXRlczogMSwKICAgIGludGNfMiAvLyAxCiAgICBpdHhuX2ZpZWxkIEdsb2JhbE51bUJ5dGVTbGljZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo3MAogICAgLy8gY29uc3QgY29tcGlsZWQgPSBjb21waWxlKEhlbGxvVGVtcGxhdGVDdXN0b21QcmVmaXgsIHsgdGVtcGxhdGVWYXJzOiB7IEdSRUVUSU5HOiAnYm9uam91cicgfSwgdGVtcGxhdGVWYXJzUHJlZml4OiAnUFJGWF8nIH0pCiAgICBieXRlY18yIC8vIGJhc2U2NChDb0VCUXc9PSkKICAgIGl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweAogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBwdXNoYnl0ZXMgYmFzZTY0KENpQUNBQUVtQXdobmNtVmxkR2x1WndBSFltOXVhbTkxY2pFWVFBQURpQUNsTVJzaUUwRUFoallhQUlBRVRGeGh1b0FFSkRlTlBJQUVvT2dZY29BRTBLS0NBRThFamdRQVRnQThBQ29BQWlKRE1Sa2lFa1F4R0NJVFJEWWFBVmNDQUlnQVVFa1ZGbGNHQWt4UWdBUVZIM3gxVEZDd0kwTC8xekVaZ1FRU1JERVlJaE5FaUFBc0kwTC94VEVaZ1FVU1JERVlJaE5FaUFBWkkwTC9zekVaSWhKRU1SZ2lFa1NJQUFjalF2K2lRditlaVltSmlnRUJJaWhsUkNsTVVJQUJJRkNMLzFDSmlBQUVLQ3BuaVNncFo0az0pCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICBieXRlY18wIC8vIDB4CiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjc0CiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2NyZWF0ZSgpdm9pZCcpXSwKICAgIGJ5dGVjIDcgLy8gbWV0aG9kICJjcmVhdGUoKXZvaWQiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo3Mi03OAogICAgLy8gY29uc3QgaGVsbG9BcHAgPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignY3JlYXRlKCl2b2lkJyldLAogICAgLy8gICAgIGFwcHJvdmFsUHJvZ3JhbTogY29tcGlsZWQuYXBwcm92YWxQcm9ncmFtLAogICAgLy8gICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBjb21waWxlZC5jbGVhclN0YXRlUHJvZ3JhbSwKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogMSwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3RfY29tcGlsZV9jb250cmFjdF93aXRoX3RlbXBsYXRlX2FuZF9jdXN0b21fcHJlZml4X25leHRfdHhuQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjcyLTc5CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdjcmVhdGUoKXZvaWQnKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4bl9zdWJtaXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6NzkKICAgIC8vIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBpdHhuIENyZWF0ZWRBcHBsaWNhdGlvbklECiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjcyLTc5CiAgICAvLyBjb25zdCBoZWxsb0FwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdjcmVhdGUoKXZvaWQnKV0sCiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGdsb2JhbE51bUJ5dGVzOiAxLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgZHVwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjgxLTg2CiAgICAvLyBjb25zdCB0eG4gPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZ3JlZXQoc3RyaW5nKXN0cmluZycpLCBlbmNvZGVBcmM0KCd3b3JsZCcpXSwKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo4MwogICAgLy8gYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdncmVldChzdHJpbmcpc3RyaW5nJyksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgYnl0ZWNfMSAvLyAid29ybGQiCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBieXRlY18xIC8vICJ3b3JsZCIKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo4NAogICAgLy8gYXBwSWQ6IGhlbGxvQXBwLAogICAgc3dhcAogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjgzCiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2dyZWV0KHN0cmluZylzdHJpbmcnKSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICBieXRlYyA1IC8vIG1ldGhvZCAiZ3JlZXQoc3RyaW5nKXN0cmluZyIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo4MS04NQogICAgLy8gY29uc3QgdHhuID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2dyZWV0KHN0cmluZylzdHJpbmcnKSwgZW5jb2RlQXJjNCgnd29ybGQnKV0sCiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfYW5kX2N1c3RvbV9wcmVmaXhfbmV4dF90eG5AMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6ODEtODYKICAgIC8vIGNvbnN0IHR4biA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdncmVldChzdHJpbmcpc3RyaW5nJyksIGVuY29kZUFyYzQoJ3dvcmxkJyldLAogICAgLy8gICAgIGFwcElkOiBoZWxsb0FwcCwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBMYXN0TG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjg3CiAgICAvLyBjb25zdCByZXN1bHQgPSBkZWNvZGVBcmM0PHN0cmluZz4odHhuLmxhc3RMb2csICdsb2cnKQogICAgZHVwCiAgICBleHRyYWN0IDQgMAogICAgc3dhcAogICAgZXh0cmFjdCAwIDQKICAgIGJ5dGVjXzMgLy8gMHgxNTFmN2M3NQogICAgPT0KICAgIGFzc2VydCAvLyBCeXRlcyBoYXMgdmFsaWQgcHJlZml4CiAgICBleHRyYWN0IDIgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo4OQogICAgLy8gYXNzZXJ0KHJlc3VsdCA9PT0gJ2JvbmpvdXIgd29ybGQnKQogICAgcHVzaGJ5dGVzICJib25qb3VyIHdvcmxkIgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo5MS05NwogICAgLy8gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdkZWxldGUoKXZvaWQnKV0sCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OTUKICAgIC8vIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIGludGNfMyAvLyA1CiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo5NAogICAgLy8gYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdkZWxldGUoKXZvaWQnKV0sCiAgICBieXRlYyA0IC8vIG1ldGhvZCAiZGVsZXRlKCl2b2lkIgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25JRAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo5MS05NgogICAgLy8gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBJZDogaGVsbG9BcHAsCiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdkZWxldGUoKXZvaWQnKV0sCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDYKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQoKdGVzdF9jb21waWxlX2NvbnRyYWN0X3dpdGhfdGVtcGxhdGVfYW5kX2N1c3RvbV9wcmVmaXhfbmV4dF90eG5AMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OTEtOTcKICAgIC8vIGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwSWQ6IGhlbGxvQXBwLAogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZGVsZXRlKCl2b2lkJyldLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czo6SGVsbG9GYWN0b3J5LnRlc3RfY29tcGlsZV9jb250cmFjdF9sYXJnZSgpIC0+IHZvaWQ6CnRlc3RfY29tcGlsZV9jb250cmFjdF9sYXJnZToKCnRlc3RfY29tcGlsZV9jb250cmFjdF9sYXJnZV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMDMtMTEwCiAgICAvLyBjb25zdCBsYXJnZUFwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGV4dHJhUHJvZ3JhbVBhZ2VzOiBjb21waWxlZC5leHRyYVByb2dyYW1QYWdlcywKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogY29tcGlsZWQuZ2xvYmFsQnl0ZXMsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBpdHhuX2JlZ2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjEwMQogICAgLy8gY29uc3QgY29tcGlsZWQgPSBjb21waWxlKExhcmdlUHJvZ3JhbSkKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEdsb2JhbE51bUJ5dGVTbGljZQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRXh0cmFQcm9ncmFtUGFnZXMKICAgIGJ5dGVjXzIgLy8gYmFzZTY0KENvRUJRdz09KQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbVBhZ2VzCiAgICBieXRlY18wIC8vIDB4CiAgICBpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIHB1c2hieXRlcyBiYXNlNjQoQ2lBQ0FBRXhHeUlUUVFCR05ob0FnQVFDdnpEUGdBUWtONDA4VHdLT0FnQVVBQUlpUXpFWmdRVVNSREVZSWhORWlBQkFJMEwvN1RFWkloSkVNUmdpRTBTSUFDb1dnQVFWSDN4MVRGQ3dJMEwvMGpFWklreU9BUUFEUXYvR01SZ2lFa1NJQUE4alF2KzdnWUFncjRtSS8vZ1ZpWW1KKQogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgYnl0ZWNfMCAvLyAweAogICAgaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMDMtMTA5CiAgICAvLyBjb25zdCBsYXJnZUFwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGV4dHJhUHJvZ3JhbVBhZ2VzOiBjb21waWxlZC5leHRyYVByb2dyYW1QYWdlcywKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogY29tcGlsZWQuZ2xvYmFsQnl0ZXMsCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gNgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCgp0ZXN0X2NvbXBpbGVfY29udHJhY3RfbGFyZ2VfbmV4dF90eG5AMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTAzLTExMAogICAgLy8gY29uc3QgbGFyZ2VBcHAgPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcHJvdmFsUHJvZ3JhbTogY29tcGlsZWQuYXBwcm92YWxQcm9ncmFtLAogICAgLy8gICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBjb21waWxlZC5jbGVhclN0YXRlUHJvZ3JhbSwKICAgIC8vICAgICBleHRyYVByb2dyYW1QYWdlczogY29tcGlsZWQuZXh0cmFQcm9ncmFtUGFnZXMsCiAgICAvLyAgICAgZ2xvYmFsTnVtQnl0ZXM6IGNvbXBpbGVkLmdsb2JhbEJ5dGVzLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4bl9zdWJtaXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTEwCiAgICAvLyAuc3VibWl0KCkuY3JlYXRlZEFwcAogICAgaXR4biBDcmVhdGVkQXBwbGljYXRpb25JRAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMDMtMTEwCiAgICAvLyBjb25zdCBsYXJnZUFwcCA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwcm92YWxQcm9ncmFtOiBjb21waWxlZC5hcHByb3ZhbFByb2dyYW0sCiAgICAvLyAgICAgY2xlYXJTdGF0ZVByb2dyYW06IGNvbXBpbGVkLmNsZWFyU3RhdGVQcm9ncmFtLAogICAgLy8gICAgIGV4dHJhUHJvZ3JhbVBhZ2VzOiBjb21waWxlZC5leHRyYVByb2dyYW1QYWdlcywKICAgIC8vICAgICBnbG9iYWxOdW1CeXRlczogY29tcGlsZWQuZ2xvYmFsQnl0ZXMsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKS5jcmVhdGVkQXBwCiAgICBkdXAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTEyLTExNwogICAgLy8gY29uc3QgdHhuID0gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2dldEJpZ0J5dGVzTGVuZ3RoKCl1aW50NjQnKV0sCiAgICAvLyAgICAgYXBwSWQ6IGxhcmdlQXBwLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25JRAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMTQKICAgIC8vIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZ2V0QmlnQnl0ZXNMZW5ndGgoKXVpbnQ2NCcpXSwKICAgIHB1c2hieXRlcyAweDAyYmYzMGNmIC8vIG1ldGhvZCAiZ2V0QmlnQnl0ZXNMZW5ndGgoKXVpbnQ2NCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjExMi0xMTYKICAgIC8vIGNvbnN0IHR4biA9IGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdnZXRCaWdCeXRlc0xlbmd0aCgpdWludDY0JyldLAogICAgLy8gICAgIGFwcElkOiBsYXJnZUFwcCwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3RfY29tcGlsZV9jb250cmFjdF9sYXJnZV9uZXh0X3R4bkAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMTItMTE3CiAgICAvLyBjb25zdCB0eG4gPSBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZ2V0QmlnQnl0ZXNMZW5ndGgoKXVpbnQ2NCcpXSwKICAgIC8vICAgICBhcHBJZDogbGFyZ2VBcHAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIGl0eG4gTGFzdExvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMTgKICAgIC8vIGNvbnN0IHJlc3VsdCA9IGRlY29kZUFyYzQ8dWludDY0Pih0eG4ubGFzdExvZywgJ2xvZycpCiAgICBkdXAKICAgIGV4dHJhY3QgNCAwCiAgICBzd2FwCiAgICBleHRyYWN0IDAgNAogICAgYnl0ZWNfMyAvLyAweDE1MWY3Yzc1CiAgICA9PQogICAgYXNzZXJ0IC8vIEJ5dGVzIGhhcyB2YWxpZCBwcmVmaXgKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTIwCiAgICAvLyBhc3NlcnQocmVzdWx0ID09PSA0MDk2KQogICAgcHVzaGludCA0MDk2IC8vIDQwOTYKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTIyLTEyOAogICAgLy8gaXR4bgogICAgLy8gICAuYXBwbGljYXRpb25DYWxsKHsKICAgIC8vICAgICBhcHBJZDogbGFyZ2VBcHAsCiAgICAvLyAgICAgYXBwQXJnczogW21ldGhvZFNlbGVjdG9yKCdkZWxldGUoKXZvaWQnKV0sCiAgICAvLyAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRlQWN0aW9uLkRlbGV0ZUFwcGxpY2F0aW9uLAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTI2CiAgICAvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICBpbnRjXzMgLy8gNQogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6MTI1CiAgICAvLyBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2RlbGV0ZSgpdm9pZCcpXSwKICAgIGJ5dGVjIDQgLy8gbWV0aG9kICJkZWxldGUoKXZvaWQiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlY29tcGlsZWQtZmFjdG9yeS5hbGdvLnRzOjEyMi0xMjcKICAgIC8vIGl0eG4KICAgIC8vICAgLmFwcGxpY2F0aW9uQ2FsbCh7CiAgICAvLyAgICAgYXBwSWQ6IGxhcmdlQXBwLAogICAgLy8gICAgIGFwcEFyZ3M6IFttZXRob2RTZWxlY3RvcignZGVsZXRlKCl2b2lkJyldLAogICAgLy8gICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0ZUFjdGlvbi5EZWxldGVBcHBsaWNhdGlvbiwKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyA2CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKCnRlc3RfY29tcGlsZV9jb250cmFjdF9sYXJnZV9uZXh0X3R4bkAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWNvbXBpbGVkLWZhY3RvcnkuYWxnby50czoxMjItMTI4CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hcHBsaWNhdGlvbkNhbGwoewogICAgLy8gICAgIGFwcElkOiBsYXJnZUFwcCwKICAgIC8vICAgICBhcHBBcmdzOiBbbWV0aG9kU2VsZWN0b3IoJ2RlbGV0ZSgpdm9pZCcpXSwKICAgIC8vICAgICBvbkNvbXBsZXRpb246IE9uQ29tcGxldGVBY3Rpb24uRGVsZXRlQXBwbGljYXRpb24sCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVjb21waWxlZC1mYWN0b3J5LmFsZ28udHM6OkhlbGxvRmFjdG9yeS5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiAEAAYBBSYIAAV3b3JsZAQKgQFDBBUffHUEJDeNPATQooIABWhlbGxvBExcYboxGyITQQBtNhoAgAQqF5lcgATjJUvJgATit8aSgAQClHyiTwSOBAA1ACQAEwACIkMxGSISRDEYIhNEiAQJJEL/7jEZIhJEMRgiE0SIArskQv/dMRkiEkQxGCITRIgBdSRC/8wxGSISRDEYIhNEiAAbJEL/uzEZIkyOAQADQv+vMRgiEkSIBIkkQv+ksScGFRZXBgInBlAksjUqskIoskKAzwEKIAIAASYCCGdyZWV0aW5nADEYQAADiACyMRsiE0EAjDYaAIAEAJIlroAEJDeNPIAEoOgYcoAE0KKCAE8EjgQATgA8ACoAAiJDMRkiEkQxGCITRDYaAVcCAIgAXUkVFlcGAkxQgAQVH3x1TFCwI0L/1zEZgQQSRDEYIhNEiAA5I0L/xTEZgQUSRDEYIhNEiAAmI0L/szEZIhJEMRgiEkQ2GgFXAgCIAAcjQv+cQv+YigEAKIv/Z4mJiYoBASIoZUQpTFCAASBQi/9QiSgpZ4myQCiyQIAEAJIlrrIashojshAisgGztD1JsSkVFlcGAilQTLIYJwWyGrIaI7IQIrIBs7Q+SVcEAExXAAQrEkRXAgCAC2hlbGxvIHdvcmxkEkSxJbIZJwSyGrIYI7IQIrIBs4mxJLI1KrJCKLJCgM0BCiACAAEmAwhncmVldGluZwADaGV5MRhAAAOIAKUxGyITQQCGNhoAgARMXGG6gAQkN408gASg6BhygATQooIATwSOBABOADwAKgACIkMxGSISRDEYIhNENhoBVwIAiABQSRUWVwYCTFCABBUffHVMULAjQv/XMRmBBBJEMRgiE0SIACwjQv/FMRmBBRJEMRgiE0SIABkjQv+zMRkiEkQxGCISRIgAByNC/6JC/56JiYmKAQEiKGVEKUxQgAEgUIv/UImIAAQoKmeJKClnibJAKLJAJweyGiOyECKyAbO0PUmxKRUWVwYCKVBMshgnBbIashojshAisgGztD5JVwQATFcABCsSRFcCAIAJaGV5IHdvcmxkEkSxJbIZJwSyGrIYI7IQIrIBs4mxJLI1KrJCKLJCgNEBCiACAAEmAwhncmVldGluZwAHYm9uam91cjEYQAADiAClMRsiE0EAhjYaAIAETFxhuoAEJDeNPIAEoOgYcoAE0KKCAE8EjgQATgA8ACoAAiJDMRkiEkQxGCITRDYaAVcCAIgAUEkVFlcGAkxQgAQVH3x1TFCwI0L/1zEZgQQSRDEYIhNEiAAsI0L/xTEZgQUSRDEYIhNEiAAZI0L/szEZIhJEMRgiEkSIAAcjQv+iQv+eiYmJigEBIihlRClMUIABIFCL/1CJiAAEKCpniSgpZ4myQCiyQCcHshojshAisgGztD1JsSkVFlcGAilQTLIYJwWyGrIaI7IQIrIBs7Q+SVcEAExXAAQrEkRXAgCADWJvbmpvdXIgd29ybGQSRLElshknBLIashgjshAisgGzibEisjUisjgqskIoskKAdQogAgABMRsiE0EARjYaAIAEAr8wz4AEJDeNPE8CjgIAFAACIkMxGYEFEkQxGCITRIgAQCNC/+0xGSISRDEYIhNEiAAqFoAEFR98dUxQsCNC/9IxGSJMjgEAA0L/xjEYIhJEiAAPI0L/u4GAIK+JiP/4FYmJibJAKLJAI7IQIrIBs7Q9SbGyGIAEAr8wz7IaI7IQIrIBs7Q+SVcEAExXAAQrEkQXgYAgEkSxJbIZJwSyGrIYI7IQIrIBs4mJ", @@ -157,7 +157,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/precompiled-factory/HelloFactory.clear.teal b/tests/approvals/out/unoptimized/precompiled-factory/HelloFactory.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/precompiled-factory/HelloFactory.clear.teal +++ b/tests/approvals/out/unoptimized/precompiled-factory/HelloFactory.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/prefix-postfix-operators/DemoContract.approval.teal b/tests/approvals/out/unoptimized/prefix-postfix-operators/DemoContract.approval.teal index 78edba03c..628b4b127 100644 --- a/tests/approvals/out/unoptimized/prefix-postfix-operators/DemoContract.approval.teal +++ b/tests/approvals/out/unoptimized/prefix-postfix-operators/DemoContract.approval.teal @@ -6,6 +6,8 @@ main: intcblock 0 1 10 5 bytecblock 0x0a 0x01 0x05 +main_block@0: + main_block@1: // tests/approvals/prefix-postfix-operators.algo.ts:57 // export class DemoContract extends Contract { @@ -87,6 +89,8 @@ test_uint64: // tests/approvals/prefix-postfix-operators.algo.ts:5 // function test_uint64(x: uint64, y: uint64) { proto 2 1 + +test_uint64_block@0: // tests/approvals/prefix-postfix-operators.algo.ts:6 // assert(x === 10, 'x input must be 10') frame_dig -2 @@ -200,6 +204,8 @@ test_biguint: // tests/approvals/prefix-postfix-operators.algo.ts:30 // function test_biguint(x: biguint, y: biguint) { proto 2 1 + +test_biguint_block@0: // tests/approvals/prefix-postfix-operators.algo.ts:31 // assert(x === 10n, 'x input must be 10') frame_dig -2 @@ -303,6 +309,8 @@ test_bytes: // tests/approvals/prefix-postfix-operators.algo.ts:50 // function test_bytes(x: bytes) { proto 1 0 + +test_bytes_block@0: // tests/approvals/prefix-postfix-operators.algo.ts:51 // assert(x === bzero(4), 'x must be 4 unset bytes') pushint 4 // 4 @@ -324,6 +332,8 @@ test_bytes: // tests/approvals/prefix-postfix-operators.algo.ts::DemoContract.test() -> uint64: test: + +test_block@0: // tests/approvals/prefix-postfix-operators.algo.ts:59 // test_uint64(10, 5) intc_2 // 10 @@ -349,4 +359,6 @@ test: // tests/approvals/prefix-postfix-operators.algo.ts::DemoContract.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/prefix-postfix-operators/DemoContract.arc32.json b/tests/approvals/out/unoptimized/prefix-postfix-operators/DemoContract.arc32.json index f86a99db5..da61d5d19 100644 --- a/tests/approvals/out/unoptimized/prefix-postfix-operators/DemoContract.arc32.json +++ b/tests/approvals/out/unoptimized/prefix-postfix-operators/DemoContract.arc32.json @@ -7,8 +7,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDEwIDUKICAgIGJ5dGVjYmxvY2sgMHgwYSAweDAxIDB4MDUKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo1NwogICAgLy8gZXhwb3J0IGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo1NwogICAgLy8gZXhwb3J0IGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweGY1OWUzY2M0IC8vIG1ldGhvZCAidGVzdCgpYm9vbCIKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fdGVzdF9yb3V0ZUAzCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA1OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjU3CiAgICAvLyBleHBvcnQgY2xhc3MgRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6OkRlbW9Db250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMToKICAgIHJldHVybgoKbWFpbl90ZXN0X3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NTgKICAgIC8vIHRlc3QoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3QKICAgIHB1c2hieXRlcyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBzZXRiaXQKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjU3CiAgICAvLyBleHBvcnQgY2xhc3MgRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo1NwogICAgLy8gZXhwb3J0IGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjpEZW1vQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6OnRlc3RfdWludDY0KHg6IHVpbnQ2NCwgeTogdWludDY0KSAtPiB1aW50NjQ6CnRlc3RfdWludDY0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjUKICAgIC8vIGZ1bmN0aW9uIHRlc3RfdWludDY0KHg6IHVpbnQ2NCwgeTogdWludDY0KSB7CiAgICBwcm90byAyIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo2CiAgICAvLyBhc3NlcnQoeCA9PT0gMTAsICd4IGlucHV0IG11c3QgYmUgMTAnKQogICAgZnJhbWVfZGlnIC0yCiAgICBpbnRjXzIgLy8gMTAKICAgID09CiAgICBhc3NlcnQgLy8geCBpbnB1dCBtdXN0IGJlIDEwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NwogICAgLy8gYXNzZXJ0KHkgPT09IDUsICd5IGlucHV0IG11c3QgYmUgNScpCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMyAvLyA1CiAgICA9PQogICAgYXNzZXJ0IC8vIHkgaW5wdXQgbXVzdCBiZSA1CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6OAogICAgLy8geCsrCiAgICBmcmFtZV9kaWcgLTIKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBkdXAKICAgIGZyYW1lX2J1cnkgLTIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo5CiAgICAvLyBhc3NlcnQoeCA9PT0gMTEpCiAgICBwdXNoaW50IDExIC8vIDExCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6MTAKICAgIC8vIHgtLQogICAgZnJhbWVfZGlnIC0yCiAgICBpbnRjXzEgLy8gMQogICAgLQogICAgZHVwCiAgICBmcmFtZV9idXJ5IC0yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6MTEKICAgIC8vIGFzc2VydCh4ID09PSAxMCkKICAgIGludGNfMiAvLyAxMAogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjEyCiAgICAvLyB4IC09IC0teQogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzEgLy8gMQogICAgLQogICAgZnJhbWVfYnVyeSAtMQogICAgZnJhbWVfZGlnIC0yCiAgICBmcmFtZV9kaWcgLTEKICAgIC0KICAgIGR1cAogICAgZnJhbWVfYnVyeSAtMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjEzCiAgICAvLyBhc3NlcnQoeCA9PT0gNikKICAgIHB1c2hpbnQgNiAvLyA2CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6MTQKICAgIC8vIGFzc2VydCh5ID09PSA0KQogICAgZnJhbWVfZGlnIC0xCiAgICBwdXNoaW50IDQgLy8gNAogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjE1CiAgICAvLyB4ICs9IHkrKwogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgZnJhbWVfZGlnIC0yCiAgICBmcmFtZV9kaWcgLTEKICAgICsKICAgIGR1cAogICAgZnJhbWVfYnVyeSAtMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjE2CiAgICAvLyBhc3NlcnQoeCA9PT0gMTApCiAgICBpbnRjXzIgLy8gMTAKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czoxNwogICAgLy8gYXNzZXJ0KHkgPT09IDUpCiAgICBkdXAKICAgIGludGNfMyAvLyA1CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6MTgKICAgIC8vIGNvbnN0IGludmVydGVkOiB1aW50NjQgPSB+eQogICAgZHVwCiAgICB+CiAgICBzd2FwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6MTkKICAgIC8vIGFzc2VydChpbnZlcnRlZCA9PT0gMiAqKiA2NCAtIDEgLSB5KQogICAgcHVzaGludCAxODQ0Njc0NDA3MzcwOTU1MTYxNSAvLyAxODQ0Njc0NDA3MzcwOTU1MTYxNQogICAgZGlnIDEKICAgIC0KICAgIHVuY292ZXIgMgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjI2CiAgICAvLyBhc3NlcnQoeSkKICAgIGR1cAogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6MjcKICAgIC8vIGFzc2VydCghIXkpCiAgICBkdXAKICAgICEKICAgICEKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjI4CiAgICAvLyByZXR1cm4gIXkKICAgICEKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo6dGVzdF9iaWd1aW50KHg6IGJ5dGVzLCB5OiBieXRlcykgLT4gdWludDY0Ogp0ZXN0X2JpZ3VpbnQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6MzAKICAgIC8vIGZ1bmN0aW9uIHRlc3RfYmlndWludCh4OiBiaWd1aW50LCB5OiBiaWd1aW50KSB7CiAgICBwcm90byAyIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czozMQogICAgLy8gYXNzZXJ0KHggPT09IDEwbiwgJ3ggaW5wdXQgbXVzdCBiZSAxMCcpCiAgICBmcmFtZV9kaWcgLTIKICAgIGJ5dGVjXzAgLy8gMHgwYQogICAgYj09CiAgICBhc3NlcnQgLy8geCBpbnB1dCBtdXN0IGJlIDEwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6MzIKICAgIC8vIGFzc2VydCh5ID09PSA1biwgJ3kgaW5wdXQgbXVzdCBiZSA1JykKICAgIGZyYW1lX2RpZyAtMQogICAgYnl0ZWNfMiAvLyAweDA1CiAgICBiPT0KICAgIGFzc2VydCAvLyB5IGlucHV0IG11c3QgYmUgNQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjM0CiAgICAvLyB4KysKICAgIGZyYW1lX2RpZyAtMgogICAgYnl0ZWNfMSAvLyAweDAxCiAgICBiKwogICAgZHVwCiAgICBmcmFtZV9idXJ5IC0yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6MzUKICAgIC8vIGFzc2VydCh4ID09PSAxMW4pCiAgICBwdXNoYnl0ZXMgMHgwYgogICAgYj09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czozNwogICAgLy8geC0tCiAgICBmcmFtZV9kaWcgLTIKICAgIGJ5dGVjXzEgLy8gMHgwMQogICAgYi0KICAgIGR1cAogICAgZnJhbWVfYnVyeSAtMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnQoeCA9PT0gMTBuKQogICAgYnl0ZWNfMCAvLyAweDBhCiAgICBiPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjQwCiAgICAvLyB4IC09IC0teQogICAgZnJhbWVfZGlnIC0xCiAgICBieXRlY18xIC8vIDB4MDEKICAgIGItCiAgICBmcmFtZV9idXJ5IC0xCiAgICBmcmFtZV9kaWcgLTIKICAgIGZyYW1lX2RpZyAtMQogICAgYi0KICAgIGZyYW1lX2J1cnkgLTIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo0MQogICAgLy8gYXNzZXJ0KHkgPT09IDRuKQogICAgZnJhbWVfZGlnIC0xCiAgICBwdXNoYnl0ZXMgMHgwNAogICAgYj09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo0MgogICAgLy8gYXNzZXJ0KHggPT09IDZuKQogICAgZnJhbWVfZGlnIC0yCiAgICBwdXNoYnl0ZXMgMHgwNgogICAgYj09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo0MwogICAgLy8geCArPSB5KysKICAgIGZyYW1lX2RpZyAtMQogICAgYnl0ZWNfMSAvLyAweDAxCiAgICBiKwogICAgZnJhbWVfZGlnIC0yCiAgICBmcmFtZV9kaWcgLTEKICAgIGIrCiAgICBmcmFtZV9idXJ5IC0yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NDQKICAgIC8vIGFzc2VydCh5ID09PSA1bikKICAgIGR1cAogICAgYnl0ZWNfMiAvLyAweDA1CiAgICBiPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjQ1CiAgICAvLyBhc3NlcnQoeCA9PT0gMTBuKQogICAgZnJhbWVfZGlnIC0yCiAgICBieXRlY18wIC8vIDB4MGEKICAgIGI9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NDYKICAgIC8vIGFzc2VydCh5KQogICAgZHVwCiAgICBiaXRsZW4KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjQ3CiAgICAvLyBhc3NlcnQoISF5KQogICAgZHVwCiAgICBiaXRsZW4KICAgICEKICAgICEKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjQ4CiAgICAvLyByZXR1cm4gIXkKICAgIGJpdGxlbgogICAgIQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjp0ZXN0X2J5dGVzKHg6IGJ5dGVzKSAtPiB2b2lkOgp0ZXN0X2J5dGVzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjUwCiAgICAvLyBmdW5jdGlvbiB0ZXN0X2J5dGVzKHg6IGJ5dGVzKSB7CiAgICBwcm90byAxIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0KHggPT09IGJ6ZXJvKDQpLCAneCBtdXN0IGJlIDQgdW5zZXQgYnl0ZXMnKQogICAgcHVzaGludCA0IC8vIDQKICAgIGJ6ZXJvCiAgICBmcmFtZV9kaWcgLTEKICAgID09CiAgICBhc3NlcnQgLy8geCBtdXN0IGJlIDQgdW5zZXQgYnl0ZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo1MgogICAgLy8gY29uc3QgeSA9IHguYml0d2lzZUludmVydCgpCiAgICBmcmFtZV9kaWcgLTEKICAgIGJ+CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NTQKICAgIC8vIGFzc2VydCh5ID09PSBCeXRlcy5mcm9tSGV4KCdGRkZGRkZGRicpKQogICAgcHVzaGJ5dGVzIDB4ZmZmZmZmZmYKICAgID09CiAgICBhc3NlcnQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo6RGVtb0NvbnRyYWN0LnRlc3QoKSAtPiB1aW50NjQ6CnRlc3Q6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NTkKICAgIC8vIHRlc3RfdWludDY0KDEwLCA1KQogICAgaW50Y18yIC8vIDEwCiAgICBpbnRjXzMgLy8gNQogICAgY2FsbHN1YiB0ZXN0X3VpbnQ2NAogICAgcG9wCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NjAKICAgIC8vIHRlc3RfYmlndWludCgxMG4sIDVuKQogICAgYnl0ZWNfMCAvLyAweDBhCiAgICBieXRlY18yIC8vIDB4MDUKICAgIGNhbGxzdWIgdGVzdF9iaWd1aW50CiAgICBwb3AKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo2MgogICAgLy8gdGVzdF9ieXRlcyhiemVybyg0KSkKICAgIHB1c2hpbnQgNCAvLyA0CiAgICBiemVybwogICAgY2FsbHN1YiB0ZXN0X2J5dGVzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NjQKICAgIC8vIHJldHVybiB0cnVlCiAgICBpbnRjXzEgLy8gMQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjpEZW1vQ29udHJhY3QuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDEwIDUKICAgIGJ5dGVjYmxvY2sgMHgwYSAweDAxIDB4MDUKCm1haW5fYmxvY2tAMDoKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo1NwogICAgLy8gZXhwb3J0IGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo1NwogICAgLy8gZXhwb3J0IGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweGY1OWUzY2M0IC8vIG1ldGhvZCAidGVzdCgpYm9vbCIKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fdGVzdF9yb3V0ZUAzCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA1OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjU3CiAgICAvLyBleHBvcnQgY2xhc3MgRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6OkRlbW9Db250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMToKICAgIHJldHVybgoKbWFpbl90ZXN0X3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NTgKICAgIC8vIHRlc3QoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3QKICAgIHB1c2hieXRlcyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBzZXRiaXQKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjU3CiAgICAvLyBleHBvcnQgY2xhc3MgRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo1NwogICAgLy8gZXhwb3J0IGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjpEZW1vQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6OnRlc3RfdWludDY0KHg6IHVpbnQ2NCwgeTogdWludDY0KSAtPiB1aW50NjQ6CnRlc3RfdWludDY0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjUKICAgIC8vIGZ1bmN0aW9uIHRlc3RfdWludDY0KHg6IHVpbnQ2NCwgeTogdWludDY0KSB7CiAgICBwcm90byAyIDEKCnRlc3RfdWludDY0X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NgogICAgLy8gYXNzZXJ0KHggPT09IDEwLCAneCBpbnB1dCBtdXN0IGJlIDEwJykKICAgIGZyYW1lX2RpZyAtMgogICAgaW50Y18yIC8vIDEwCiAgICA9PQogICAgYXNzZXJ0IC8vIHggaW5wdXQgbXVzdCBiZSAxMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjcKICAgIC8vIGFzc2VydCh5ID09PSA1LCAneSBpbnB1dCBtdXN0IGJlIDUnKQogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzMgLy8gNQogICAgPT0KICAgIGFzc2VydCAvLyB5IGlucHV0IG11c3QgYmUgNQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjgKICAgIC8vIHgrKwogICAgZnJhbWVfZGlnIC0yCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgZHVwCiAgICBmcmFtZV9idXJ5IC0yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6OQogICAgLy8gYXNzZXJ0KHggPT09IDExKQogICAgcHVzaGludCAxMSAvLyAxMQogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjEwCiAgICAvLyB4LS0KICAgIGZyYW1lX2RpZyAtMgogICAgaW50Y18xIC8vIDEKICAgIC0KICAgIGR1cAogICAgZnJhbWVfYnVyeSAtMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjExCiAgICAvLyBhc3NlcnQoeCA9PT0gMTApCiAgICBpbnRjXzIgLy8gMTAKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czoxMgogICAgLy8geCAtPSAtLXkKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18xIC8vIDEKICAgIC0KICAgIGZyYW1lX2J1cnkgLTEKICAgIGZyYW1lX2RpZyAtMgogICAgZnJhbWVfZGlnIC0xCiAgICAtCiAgICBkdXAKICAgIGZyYW1lX2J1cnkgLTIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czoxMwogICAgLy8gYXNzZXJ0KHggPT09IDYpCiAgICBwdXNoaW50IDYgLy8gNgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjE0CiAgICAvLyBhc3NlcnQoeSA9PT0gNCkKICAgIGZyYW1lX2RpZyAtMQogICAgcHVzaGludCA0IC8vIDQKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czoxNQogICAgLy8geCArPSB5KysKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGZyYW1lX2RpZyAtMgogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICBkdXAKICAgIGZyYW1lX2J1cnkgLTIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czoxNgogICAgLy8gYXNzZXJ0KHggPT09IDEwKQogICAgaW50Y18yIC8vIDEwCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6MTcKICAgIC8vIGFzc2VydCh5ID09PSA1KQogICAgZHVwCiAgICBpbnRjXzMgLy8gNQogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjE4CiAgICAvLyBjb25zdCBpbnZlcnRlZDogdWludDY0ID0gfnkKICAgIGR1cAogICAgfgogICAgc3dhcAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjE5CiAgICAvLyBhc3NlcnQoaW52ZXJ0ZWQgPT09IDIgKiogNjQgLSAxIC0geSkKICAgIHB1c2hpbnQgMTg0NDY3NDQwNzM3MDk1NTE2MTUgLy8gMTg0NDY3NDQwNzM3MDk1NTE2MTUKICAgIGRpZyAxCiAgICAtCiAgICB1bmNvdmVyIDIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czoyNgogICAgLy8gYXNzZXJ0KHkpCiAgICBkdXAKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjI3CiAgICAvLyBhc3NlcnQoISF5KQogICAgZHVwCiAgICAhCiAgICAhCiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czoyOAogICAgLy8gcmV0dXJuICF5CiAgICAhCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6OnRlc3RfYmlndWludCh4OiBieXRlcywgeTogYnl0ZXMpIC0+IHVpbnQ2NDoKdGVzdF9iaWd1aW50OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjMwCiAgICAvLyBmdW5jdGlvbiB0ZXN0X2JpZ3VpbnQoeDogYmlndWludCwgeTogYmlndWludCkgewogICAgcHJvdG8gMiAxCgp0ZXN0X2JpZ3VpbnRfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czozMQogICAgLy8gYXNzZXJ0KHggPT09IDEwbiwgJ3ggaW5wdXQgbXVzdCBiZSAxMCcpCiAgICBmcmFtZV9kaWcgLTIKICAgIGJ5dGVjXzAgLy8gMHgwYQogICAgYj09CiAgICBhc3NlcnQgLy8geCBpbnB1dCBtdXN0IGJlIDEwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6MzIKICAgIC8vIGFzc2VydCh5ID09PSA1biwgJ3kgaW5wdXQgbXVzdCBiZSA1JykKICAgIGZyYW1lX2RpZyAtMQogICAgYnl0ZWNfMiAvLyAweDA1CiAgICBiPT0KICAgIGFzc2VydCAvLyB5IGlucHV0IG11c3QgYmUgNQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjM0CiAgICAvLyB4KysKICAgIGZyYW1lX2RpZyAtMgogICAgYnl0ZWNfMSAvLyAweDAxCiAgICBiKwogICAgZHVwCiAgICBmcmFtZV9idXJ5IC0yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6MzUKICAgIC8vIGFzc2VydCh4ID09PSAxMW4pCiAgICBwdXNoYnl0ZXMgMHgwYgogICAgYj09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czozNwogICAgLy8geC0tCiAgICBmcmFtZV9kaWcgLTIKICAgIGJ5dGVjXzEgLy8gMHgwMQogICAgYi0KICAgIGR1cAogICAgZnJhbWVfYnVyeSAtMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnQoeCA9PT0gMTBuKQogICAgYnl0ZWNfMCAvLyAweDBhCiAgICBiPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjQwCiAgICAvLyB4IC09IC0teQogICAgZnJhbWVfZGlnIC0xCiAgICBieXRlY18xIC8vIDB4MDEKICAgIGItCiAgICBmcmFtZV9idXJ5IC0xCiAgICBmcmFtZV9kaWcgLTIKICAgIGZyYW1lX2RpZyAtMQogICAgYi0KICAgIGZyYW1lX2J1cnkgLTIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo0MQogICAgLy8gYXNzZXJ0KHkgPT09IDRuKQogICAgZnJhbWVfZGlnIC0xCiAgICBwdXNoYnl0ZXMgMHgwNAogICAgYj09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo0MgogICAgLy8gYXNzZXJ0KHggPT09IDZuKQogICAgZnJhbWVfZGlnIC0yCiAgICBwdXNoYnl0ZXMgMHgwNgogICAgYj09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo0MwogICAgLy8geCArPSB5KysKICAgIGZyYW1lX2RpZyAtMQogICAgYnl0ZWNfMSAvLyAweDAxCiAgICBiKwogICAgZnJhbWVfZGlnIC0yCiAgICBmcmFtZV9kaWcgLTEKICAgIGIrCiAgICBmcmFtZV9idXJ5IC0yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NDQKICAgIC8vIGFzc2VydCh5ID09PSA1bikKICAgIGR1cAogICAgYnl0ZWNfMiAvLyAweDA1CiAgICBiPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjQ1CiAgICAvLyBhc3NlcnQoeCA9PT0gMTBuKQogICAgZnJhbWVfZGlnIC0yCiAgICBieXRlY18wIC8vIDB4MGEKICAgIGI9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NDYKICAgIC8vIGFzc2VydCh5KQogICAgZHVwCiAgICBiaXRsZW4KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjQ3CiAgICAvLyBhc3NlcnQoISF5KQogICAgZHVwCiAgICBiaXRsZW4KICAgICEKICAgICEKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjQ4CiAgICAvLyByZXR1cm4gIXkKICAgIGJpdGxlbgogICAgIQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjp0ZXN0X2J5dGVzKHg6IGJ5dGVzKSAtPiB2b2lkOgp0ZXN0X2J5dGVzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjUwCiAgICAvLyBmdW5jdGlvbiB0ZXN0X2J5dGVzKHg6IGJ5dGVzKSB7CiAgICBwcm90byAxIDAKCnRlc3RfYnl0ZXNfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0KHggPT09IGJ6ZXJvKDQpLCAneCBtdXN0IGJlIDQgdW5zZXQgYnl0ZXMnKQogICAgcHVzaGludCA0IC8vIDQKICAgIGJ6ZXJvCiAgICBmcmFtZV9kaWcgLTEKICAgID09CiAgICBhc3NlcnQgLy8geCBtdXN0IGJlIDQgdW5zZXQgYnl0ZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo1MgogICAgLy8gY29uc3QgeSA9IHguYml0d2lzZUludmVydCgpCiAgICBmcmFtZV9kaWcgLTEKICAgIGJ+CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NTQKICAgIC8vIGFzc2VydCh5ID09PSBCeXRlcy5mcm9tSGV4KCdGRkZGRkZGRicpKQogICAgcHVzaGJ5dGVzIDB4ZmZmZmZmZmYKICAgID09CiAgICBhc3NlcnQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo6RGVtb0NvbnRyYWN0LnRlc3QoKSAtPiB1aW50NjQ6CnRlc3Q6Cgp0ZXN0X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NTkKICAgIC8vIHRlc3RfdWludDY0KDEwLCA1KQogICAgaW50Y18yIC8vIDEwCiAgICBpbnRjXzMgLy8gNQogICAgY2FsbHN1YiB0ZXN0X3VpbnQ2NAogICAgcG9wCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NjAKICAgIC8vIHRlc3RfYmlndWludCgxMG4sIDVuKQogICAgYnl0ZWNfMCAvLyAweDBhCiAgICBieXRlY18yIC8vIDB4MDUKICAgIGNhbGxzdWIgdGVzdF9iaWd1aW50CiAgICBwb3AKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo2MgogICAgLy8gdGVzdF9ieXRlcyhiemVybyg0KSkKICAgIHB1c2hpbnQgNCAvLyA0CiAgICBiemVybwogICAgY2FsbHN1YiB0ZXN0X2J5dGVzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NjQKICAgIC8vIHJldHVybiB0cnVlCiAgICBpbnRjXzEgLy8gMQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjpEZW1vQ29udHJhY3QuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/prefix-postfix-operators/DemoContract.arc56.json b/tests/approvals/out/unoptimized/prefix-postfix-operators/DemoContract.arc56.json index e1a44b7ef..cf1ad92c9 100644 --- a/tests/approvals/out/unoptimized/prefix-postfix-operators/DemoContract.arc56.json +++ b/tests/approvals/out/unoptimized/prefix-postfix-operators/DemoContract.arc56.json @@ -102,8 +102,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDEwIDUKICAgIGJ5dGVjYmxvY2sgMHgwYSAweDAxIDB4MDUKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo1NwogICAgLy8gZXhwb3J0IGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo1NwogICAgLy8gZXhwb3J0IGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweGY1OWUzY2M0IC8vIG1ldGhvZCAidGVzdCgpYm9vbCIKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fdGVzdF9yb3V0ZUAzCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA1OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjU3CiAgICAvLyBleHBvcnQgY2xhc3MgRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6OkRlbW9Db250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMToKICAgIHJldHVybgoKbWFpbl90ZXN0X3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NTgKICAgIC8vIHRlc3QoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3QKICAgIHB1c2hieXRlcyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBzZXRiaXQKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjU3CiAgICAvLyBleHBvcnQgY2xhc3MgRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo1NwogICAgLy8gZXhwb3J0IGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjpEZW1vQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6OnRlc3RfdWludDY0KHg6IHVpbnQ2NCwgeTogdWludDY0KSAtPiB1aW50NjQ6CnRlc3RfdWludDY0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjUKICAgIC8vIGZ1bmN0aW9uIHRlc3RfdWludDY0KHg6IHVpbnQ2NCwgeTogdWludDY0KSB7CiAgICBwcm90byAyIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo2CiAgICAvLyBhc3NlcnQoeCA9PT0gMTAsICd4IGlucHV0IG11c3QgYmUgMTAnKQogICAgZnJhbWVfZGlnIC0yCiAgICBpbnRjXzIgLy8gMTAKICAgID09CiAgICBhc3NlcnQgLy8geCBpbnB1dCBtdXN0IGJlIDEwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NwogICAgLy8gYXNzZXJ0KHkgPT09IDUsICd5IGlucHV0IG11c3QgYmUgNScpCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMyAvLyA1CiAgICA9PQogICAgYXNzZXJ0IC8vIHkgaW5wdXQgbXVzdCBiZSA1CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6OAogICAgLy8geCsrCiAgICBmcmFtZV9kaWcgLTIKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBkdXAKICAgIGZyYW1lX2J1cnkgLTIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo5CiAgICAvLyBhc3NlcnQoeCA9PT0gMTEpCiAgICBwdXNoaW50IDExIC8vIDExCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6MTAKICAgIC8vIHgtLQogICAgZnJhbWVfZGlnIC0yCiAgICBpbnRjXzEgLy8gMQogICAgLQogICAgZHVwCiAgICBmcmFtZV9idXJ5IC0yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6MTEKICAgIC8vIGFzc2VydCh4ID09PSAxMCkKICAgIGludGNfMiAvLyAxMAogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjEyCiAgICAvLyB4IC09IC0teQogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzEgLy8gMQogICAgLQogICAgZnJhbWVfYnVyeSAtMQogICAgZnJhbWVfZGlnIC0yCiAgICBmcmFtZV9kaWcgLTEKICAgIC0KICAgIGR1cAogICAgZnJhbWVfYnVyeSAtMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjEzCiAgICAvLyBhc3NlcnQoeCA9PT0gNikKICAgIHB1c2hpbnQgNiAvLyA2CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6MTQKICAgIC8vIGFzc2VydCh5ID09PSA0KQogICAgZnJhbWVfZGlnIC0xCiAgICBwdXNoaW50IDQgLy8gNAogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjE1CiAgICAvLyB4ICs9IHkrKwogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgZnJhbWVfZGlnIC0yCiAgICBmcmFtZV9kaWcgLTEKICAgICsKICAgIGR1cAogICAgZnJhbWVfYnVyeSAtMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjE2CiAgICAvLyBhc3NlcnQoeCA9PT0gMTApCiAgICBpbnRjXzIgLy8gMTAKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czoxNwogICAgLy8gYXNzZXJ0KHkgPT09IDUpCiAgICBkdXAKICAgIGludGNfMyAvLyA1CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6MTgKICAgIC8vIGNvbnN0IGludmVydGVkOiB1aW50NjQgPSB+eQogICAgZHVwCiAgICB+CiAgICBzd2FwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6MTkKICAgIC8vIGFzc2VydChpbnZlcnRlZCA9PT0gMiAqKiA2NCAtIDEgLSB5KQogICAgcHVzaGludCAxODQ0Njc0NDA3MzcwOTU1MTYxNSAvLyAxODQ0Njc0NDA3MzcwOTU1MTYxNQogICAgZGlnIDEKICAgIC0KICAgIHVuY292ZXIgMgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjI2CiAgICAvLyBhc3NlcnQoeSkKICAgIGR1cAogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6MjcKICAgIC8vIGFzc2VydCghIXkpCiAgICBkdXAKICAgICEKICAgICEKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjI4CiAgICAvLyByZXR1cm4gIXkKICAgICEKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo6dGVzdF9iaWd1aW50KHg6IGJ5dGVzLCB5OiBieXRlcykgLT4gdWludDY0Ogp0ZXN0X2JpZ3VpbnQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6MzAKICAgIC8vIGZ1bmN0aW9uIHRlc3RfYmlndWludCh4OiBiaWd1aW50LCB5OiBiaWd1aW50KSB7CiAgICBwcm90byAyIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czozMQogICAgLy8gYXNzZXJ0KHggPT09IDEwbiwgJ3ggaW5wdXQgbXVzdCBiZSAxMCcpCiAgICBmcmFtZV9kaWcgLTIKICAgIGJ5dGVjXzAgLy8gMHgwYQogICAgYj09CiAgICBhc3NlcnQgLy8geCBpbnB1dCBtdXN0IGJlIDEwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6MzIKICAgIC8vIGFzc2VydCh5ID09PSA1biwgJ3kgaW5wdXQgbXVzdCBiZSA1JykKICAgIGZyYW1lX2RpZyAtMQogICAgYnl0ZWNfMiAvLyAweDA1CiAgICBiPT0KICAgIGFzc2VydCAvLyB5IGlucHV0IG11c3QgYmUgNQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjM0CiAgICAvLyB4KysKICAgIGZyYW1lX2RpZyAtMgogICAgYnl0ZWNfMSAvLyAweDAxCiAgICBiKwogICAgZHVwCiAgICBmcmFtZV9idXJ5IC0yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6MzUKICAgIC8vIGFzc2VydCh4ID09PSAxMW4pCiAgICBwdXNoYnl0ZXMgMHgwYgogICAgYj09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czozNwogICAgLy8geC0tCiAgICBmcmFtZV9kaWcgLTIKICAgIGJ5dGVjXzEgLy8gMHgwMQogICAgYi0KICAgIGR1cAogICAgZnJhbWVfYnVyeSAtMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnQoeCA9PT0gMTBuKQogICAgYnl0ZWNfMCAvLyAweDBhCiAgICBiPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjQwCiAgICAvLyB4IC09IC0teQogICAgZnJhbWVfZGlnIC0xCiAgICBieXRlY18xIC8vIDB4MDEKICAgIGItCiAgICBmcmFtZV9idXJ5IC0xCiAgICBmcmFtZV9kaWcgLTIKICAgIGZyYW1lX2RpZyAtMQogICAgYi0KICAgIGZyYW1lX2J1cnkgLTIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo0MQogICAgLy8gYXNzZXJ0KHkgPT09IDRuKQogICAgZnJhbWVfZGlnIC0xCiAgICBwdXNoYnl0ZXMgMHgwNAogICAgYj09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo0MgogICAgLy8gYXNzZXJ0KHggPT09IDZuKQogICAgZnJhbWVfZGlnIC0yCiAgICBwdXNoYnl0ZXMgMHgwNgogICAgYj09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo0MwogICAgLy8geCArPSB5KysKICAgIGZyYW1lX2RpZyAtMQogICAgYnl0ZWNfMSAvLyAweDAxCiAgICBiKwogICAgZnJhbWVfZGlnIC0yCiAgICBmcmFtZV9kaWcgLTEKICAgIGIrCiAgICBmcmFtZV9idXJ5IC0yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NDQKICAgIC8vIGFzc2VydCh5ID09PSA1bikKICAgIGR1cAogICAgYnl0ZWNfMiAvLyAweDA1CiAgICBiPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjQ1CiAgICAvLyBhc3NlcnQoeCA9PT0gMTBuKQogICAgZnJhbWVfZGlnIC0yCiAgICBieXRlY18wIC8vIDB4MGEKICAgIGI9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NDYKICAgIC8vIGFzc2VydCh5KQogICAgZHVwCiAgICBiaXRsZW4KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjQ3CiAgICAvLyBhc3NlcnQoISF5KQogICAgZHVwCiAgICBiaXRsZW4KICAgICEKICAgICEKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjQ4CiAgICAvLyByZXR1cm4gIXkKICAgIGJpdGxlbgogICAgIQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjp0ZXN0X2J5dGVzKHg6IGJ5dGVzKSAtPiB2b2lkOgp0ZXN0X2J5dGVzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjUwCiAgICAvLyBmdW5jdGlvbiB0ZXN0X2J5dGVzKHg6IGJ5dGVzKSB7CiAgICBwcm90byAxIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0KHggPT09IGJ6ZXJvKDQpLCAneCBtdXN0IGJlIDQgdW5zZXQgYnl0ZXMnKQogICAgcHVzaGludCA0IC8vIDQKICAgIGJ6ZXJvCiAgICBmcmFtZV9kaWcgLTEKICAgID09CiAgICBhc3NlcnQgLy8geCBtdXN0IGJlIDQgdW5zZXQgYnl0ZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo1MgogICAgLy8gY29uc3QgeSA9IHguYml0d2lzZUludmVydCgpCiAgICBmcmFtZV9kaWcgLTEKICAgIGJ+CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NTQKICAgIC8vIGFzc2VydCh5ID09PSBCeXRlcy5mcm9tSGV4KCdGRkZGRkZGRicpKQogICAgcHVzaGJ5dGVzIDB4ZmZmZmZmZmYKICAgID09CiAgICBhc3NlcnQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo6RGVtb0NvbnRyYWN0LnRlc3QoKSAtPiB1aW50NjQ6CnRlc3Q6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NTkKICAgIC8vIHRlc3RfdWludDY0KDEwLCA1KQogICAgaW50Y18yIC8vIDEwCiAgICBpbnRjXzMgLy8gNQogICAgY2FsbHN1YiB0ZXN0X3VpbnQ2NAogICAgcG9wCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NjAKICAgIC8vIHRlc3RfYmlndWludCgxMG4sIDVuKQogICAgYnl0ZWNfMCAvLyAweDBhCiAgICBieXRlY18yIC8vIDB4MDUKICAgIGNhbGxzdWIgdGVzdF9iaWd1aW50CiAgICBwb3AKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo2MgogICAgLy8gdGVzdF9ieXRlcyhiemVybyg0KSkKICAgIHB1c2hpbnQgNCAvLyA0CiAgICBiemVybwogICAgY2FsbHN1YiB0ZXN0X2J5dGVzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NjQKICAgIC8vIHJldHVybiB0cnVlCiAgICBpbnRjXzEgLy8gMQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjpEZW1vQ29udHJhY3QuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDEwIDUKICAgIGJ5dGVjYmxvY2sgMHgwYSAweDAxIDB4MDUKCm1haW5fYmxvY2tAMDoKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo1NwogICAgLy8gZXhwb3J0IGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo1NwogICAgLy8gZXhwb3J0IGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweGY1OWUzY2M0IC8vIG1ldGhvZCAidGVzdCgpYm9vbCIKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fdGVzdF9yb3V0ZUAzCgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA1OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjU3CiAgICAvLyBleHBvcnQgY2xhc3MgRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6OkRlbW9Db250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMToKICAgIHJldHVybgoKbWFpbl90ZXN0X3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NTgKICAgIC8vIHRlc3QoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3QKICAgIHB1c2hieXRlcyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBzZXRiaXQKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjU3CiAgICAvLyBleHBvcnQgY2xhc3MgRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDcKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA4OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDk6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo1NwogICAgLy8gZXhwb3J0IGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjpEZW1vQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6OnRlc3RfdWludDY0KHg6IHVpbnQ2NCwgeTogdWludDY0KSAtPiB1aW50NjQ6CnRlc3RfdWludDY0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjUKICAgIC8vIGZ1bmN0aW9uIHRlc3RfdWludDY0KHg6IHVpbnQ2NCwgeTogdWludDY0KSB7CiAgICBwcm90byAyIDEKCnRlc3RfdWludDY0X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NgogICAgLy8gYXNzZXJ0KHggPT09IDEwLCAneCBpbnB1dCBtdXN0IGJlIDEwJykKICAgIGZyYW1lX2RpZyAtMgogICAgaW50Y18yIC8vIDEwCiAgICA9PQogICAgYXNzZXJ0IC8vIHggaW5wdXQgbXVzdCBiZSAxMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjcKICAgIC8vIGFzc2VydCh5ID09PSA1LCAneSBpbnB1dCBtdXN0IGJlIDUnKQogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzMgLy8gNQogICAgPT0KICAgIGFzc2VydCAvLyB5IGlucHV0IG11c3QgYmUgNQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjgKICAgIC8vIHgrKwogICAgZnJhbWVfZGlnIC0yCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgZHVwCiAgICBmcmFtZV9idXJ5IC0yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6OQogICAgLy8gYXNzZXJ0KHggPT09IDExKQogICAgcHVzaGludCAxMSAvLyAxMQogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjEwCiAgICAvLyB4LS0KICAgIGZyYW1lX2RpZyAtMgogICAgaW50Y18xIC8vIDEKICAgIC0KICAgIGR1cAogICAgZnJhbWVfYnVyeSAtMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjExCiAgICAvLyBhc3NlcnQoeCA9PT0gMTApCiAgICBpbnRjXzIgLy8gMTAKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czoxMgogICAgLy8geCAtPSAtLXkKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18xIC8vIDEKICAgIC0KICAgIGZyYW1lX2J1cnkgLTEKICAgIGZyYW1lX2RpZyAtMgogICAgZnJhbWVfZGlnIC0xCiAgICAtCiAgICBkdXAKICAgIGZyYW1lX2J1cnkgLTIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czoxMwogICAgLy8gYXNzZXJ0KHggPT09IDYpCiAgICBwdXNoaW50IDYgLy8gNgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjE0CiAgICAvLyBhc3NlcnQoeSA9PT0gNCkKICAgIGZyYW1lX2RpZyAtMQogICAgcHVzaGludCA0IC8vIDQKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czoxNQogICAgLy8geCArPSB5KysKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGZyYW1lX2RpZyAtMgogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICBkdXAKICAgIGZyYW1lX2J1cnkgLTIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czoxNgogICAgLy8gYXNzZXJ0KHggPT09IDEwKQogICAgaW50Y18yIC8vIDEwCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6MTcKICAgIC8vIGFzc2VydCh5ID09PSA1KQogICAgZHVwCiAgICBpbnRjXzMgLy8gNQogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjE4CiAgICAvLyBjb25zdCBpbnZlcnRlZDogdWludDY0ID0gfnkKICAgIGR1cAogICAgfgogICAgc3dhcAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjE5CiAgICAvLyBhc3NlcnQoaW52ZXJ0ZWQgPT09IDIgKiogNjQgLSAxIC0geSkKICAgIHB1c2hpbnQgMTg0NDY3NDQwNzM3MDk1NTE2MTUgLy8gMTg0NDY3NDQwNzM3MDk1NTE2MTUKICAgIGRpZyAxCiAgICAtCiAgICB1bmNvdmVyIDIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czoyNgogICAgLy8gYXNzZXJ0KHkpCiAgICBkdXAKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjI3CiAgICAvLyBhc3NlcnQoISF5KQogICAgZHVwCiAgICAhCiAgICAhCiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czoyOAogICAgLy8gcmV0dXJuICF5CiAgICAhCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6OnRlc3RfYmlndWludCh4OiBieXRlcywgeTogYnl0ZXMpIC0+IHVpbnQ2NDoKdGVzdF9iaWd1aW50OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjMwCiAgICAvLyBmdW5jdGlvbiB0ZXN0X2JpZ3VpbnQoeDogYmlndWludCwgeTogYmlndWludCkgewogICAgcHJvdG8gMiAxCgp0ZXN0X2JpZ3VpbnRfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czozMQogICAgLy8gYXNzZXJ0KHggPT09IDEwbiwgJ3ggaW5wdXQgbXVzdCBiZSAxMCcpCiAgICBmcmFtZV9kaWcgLTIKICAgIGJ5dGVjXzAgLy8gMHgwYQogICAgYj09CiAgICBhc3NlcnQgLy8geCBpbnB1dCBtdXN0IGJlIDEwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6MzIKICAgIC8vIGFzc2VydCh5ID09PSA1biwgJ3kgaW5wdXQgbXVzdCBiZSA1JykKICAgIGZyYW1lX2RpZyAtMQogICAgYnl0ZWNfMiAvLyAweDA1CiAgICBiPT0KICAgIGFzc2VydCAvLyB5IGlucHV0IG11c3QgYmUgNQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjM0CiAgICAvLyB4KysKICAgIGZyYW1lX2RpZyAtMgogICAgYnl0ZWNfMSAvLyAweDAxCiAgICBiKwogICAgZHVwCiAgICBmcmFtZV9idXJ5IC0yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6MzUKICAgIC8vIGFzc2VydCh4ID09PSAxMW4pCiAgICBwdXNoYnl0ZXMgMHgwYgogICAgYj09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czozNwogICAgLy8geC0tCiAgICBmcmFtZV9kaWcgLTIKICAgIGJ5dGVjXzEgLy8gMHgwMQogICAgYi0KICAgIGR1cAogICAgZnJhbWVfYnVyeSAtMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnQoeCA9PT0gMTBuKQogICAgYnl0ZWNfMCAvLyAweDBhCiAgICBiPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjQwCiAgICAvLyB4IC09IC0teQogICAgZnJhbWVfZGlnIC0xCiAgICBieXRlY18xIC8vIDB4MDEKICAgIGItCiAgICBmcmFtZV9idXJ5IC0xCiAgICBmcmFtZV9kaWcgLTIKICAgIGZyYW1lX2RpZyAtMQogICAgYi0KICAgIGZyYW1lX2J1cnkgLTIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo0MQogICAgLy8gYXNzZXJ0KHkgPT09IDRuKQogICAgZnJhbWVfZGlnIC0xCiAgICBwdXNoYnl0ZXMgMHgwNAogICAgYj09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo0MgogICAgLy8gYXNzZXJ0KHggPT09IDZuKQogICAgZnJhbWVfZGlnIC0yCiAgICBwdXNoYnl0ZXMgMHgwNgogICAgYj09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo0MwogICAgLy8geCArPSB5KysKICAgIGZyYW1lX2RpZyAtMQogICAgYnl0ZWNfMSAvLyAweDAxCiAgICBiKwogICAgZnJhbWVfZGlnIC0yCiAgICBmcmFtZV9kaWcgLTEKICAgIGIrCiAgICBmcmFtZV9idXJ5IC0yCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NDQKICAgIC8vIGFzc2VydCh5ID09PSA1bikKICAgIGR1cAogICAgYnl0ZWNfMiAvLyAweDA1CiAgICBiPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjQ1CiAgICAvLyBhc3NlcnQoeCA9PT0gMTBuKQogICAgZnJhbWVfZGlnIC0yCiAgICBieXRlY18wIC8vIDB4MGEKICAgIGI9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NDYKICAgIC8vIGFzc2VydCh5KQogICAgZHVwCiAgICBiaXRsZW4KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjQ3CiAgICAvLyBhc3NlcnQoISF5KQogICAgZHVwCiAgICBiaXRsZW4KICAgICEKICAgICEKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjQ4CiAgICAvLyByZXR1cm4gIXkKICAgIGJpdGxlbgogICAgIQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjp0ZXN0X2J5dGVzKHg6IGJ5dGVzKSAtPiB2b2lkOgp0ZXN0X2J5dGVzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjUwCiAgICAvLyBmdW5jdGlvbiB0ZXN0X2J5dGVzKHg6IGJ5dGVzKSB7CiAgICBwcm90byAxIDAKCnRlc3RfYnl0ZXNfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo1MQogICAgLy8gYXNzZXJ0KHggPT09IGJ6ZXJvKDQpLCAneCBtdXN0IGJlIDQgdW5zZXQgYnl0ZXMnKQogICAgcHVzaGludCA0IC8vIDQKICAgIGJ6ZXJvCiAgICBmcmFtZV9kaWcgLTEKICAgID09CiAgICBhc3NlcnQgLy8geCBtdXN0IGJlIDQgdW5zZXQgYnl0ZXMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo1MgogICAgLy8gY29uc3QgeSA9IHguYml0d2lzZUludmVydCgpCiAgICBmcmFtZV9kaWcgLTEKICAgIGJ+CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NTQKICAgIC8vIGFzc2VydCh5ID09PSBCeXRlcy5mcm9tSGV4KCdGRkZGRkZGRicpKQogICAgcHVzaGJ5dGVzIDB4ZmZmZmZmZmYKICAgID09CiAgICBhc3NlcnQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo6RGVtb0NvbnRyYWN0LnRlc3QoKSAtPiB1aW50NjQ6CnRlc3Q6Cgp0ZXN0X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NTkKICAgIC8vIHRlc3RfdWludDY0KDEwLCA1KQogICAgaW50Y18yIC8vIDEwCiAgICBpbnRjXzMgLy8gNQogICAgY2FsbHN1YiB0ZXN0X3VpbnQ2NAogICAgcG9wCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NjAKICAgIC8vIHRlc3RfYmlndWludCgxMG4sIDVuKQogICAgYnl0ZWNfMCAvLyAweDBhCiAgICBieXRlY18yIC8vIDB4MDUKICAgIGNhbGxzdWIgdGVzdF9iaWd1aW50CiAgICBwb3AKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9wcmVmaXgtcG9zdGZpeC1vcGVyYXRvcnMuYWxnby50czo2MgogICAgLy8gdGVzdF9ieXRlcyhiemVybyg0KSkKICAgIHB1c2hpbnQgNCAvLyA0CiAgICBiemVybwogICAgY2FsbHN1YiB0ZXN0X2J5dGVzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvcHJlZml4LXBvc3RmaXgtb3BlcmF0b3JzLmFsZ28udHM6NjQKICAgIC8vIHJldHVybiB0cnVlCiAgICBpbnRjXzEgLy8gMQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3ByZWZpeC1wb3N0Zml4LW9wZXJhdG9ycy5hbGdvLnRzOjpEZW1vQ29udHJhY3QuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlX2Jsb2NrQDA6CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiAEAAEKBSYDAQoBAQEFMRsiE0EAMTYaAIAE9Z48xEyOAQACIkMxGSISRDEYIhNEiAEIgAEAIk8CVIAEFR98dUxQsCNC/94xGSJMjgEAA0L/0jEYIhJEiAD1I0L/x4oCAYv+JBJEi/8lEkSL/iMISYz+gQsSRIv+IwlJjP4kEkSL/yMJjP+L/ov/CUmM/oEGEkSL/4EEEkSL/yMIi/6L/whJjP4kEkRJJRJESRxMgf///////////wFLAQlPAhJESURJFBREFImKAgGL/iioRIv/KqhEi/4poEmM/oABC6hEi/4poUmM/iioRIv/KaGM/4v+i/+hjP6L/4ABBKhEi/6AAQaoRIv/KaCL/ov/oIz+SSqoRIv+KKhESZNESZMUFESTFImKAQCBBK+L/xJEi/+ugAT/////EkSJJCWI/x5IKCqI/4JIgQSviP/YI4mJ", @@ -114,7 +114,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/prefix-postfix-operators/DemoContract.clear.teal b/tests/approvals/out/unoptimized/prefix-postfix-operators/DemoContract.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/prefix-postfix-operators/DemoContract.clear.teal +++ b/tests/approvals/out/unoptimized/prefix-postfix-operators/DemoContract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/property-ordering/Demo.approval.teal b/tests/approvals/out/unoptimized/property-ordering/Demo.approval.teal index 2781728db..8e2c90932 100644 --- a/tests/approvals/out/unoptimized/property-ordering/Demo.approval.teal +++ b/tests/approvals/out/unoptimized/property-ordering/Demo.approval.teal @@ -3,6 +3,8 @@ // tests/approvals/property-ordering.algo.ts::Demo.approvalProgram() -> uint64: main: + +main_block@0: // tests/approvals/property-ordering.algo.ts:20 // test_assign_from_literal(4) pushint 4 // 4 @@ -23,6 +25,8 @@ test_assign_from_var: // tests/approvals/property-ordering.algo.ts:6 // function test_assign_from_var(x: { a: uint64; b: uint64 }) { proto 2 0 + +test_assign_from_var_block@0: retsub @@ -31,4 +35,6 @@ test_assign_from_literal: // tests/approvals/property-ordering.algo.ts:10 // function test_assign_from_literal(x: uint64) { proto 1 0 + +test_assign_from_literal_block@0: retsub diff --git a/tests/approvals/out/unoptimized/property-ordering/Demo.clear.teal b/tests/approvals/out/unoptimized/property-ordering/Demo.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/property-ordering/Demo.clear.teal +++ b/tests/approvals/out/unoptimized/property-ordering/Demo.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/reserve-scratch/ReserveScratchAlgo.approval.teal b/tests/approvals/out/unoptimized/reserve-scratch/ReserveScratchAlgo.approval.teal index 03688cf92..e4c4fd3a0 100644 --- a/tests/approvals/out/unoptimized/reserve-scratch/ReserveScratchAlgo.approval.teal +++ b/tests/approvals/out/unoptimized/reserve-scratch/ReserveScratchAlgo.approval.teal @@ -5,6 +5,8 @@ main: intcblock 1 0 15 45 bytecblock "hello" + +main_block@0: // tests/approvals/reserve-scratch.algo.ts:18 // this.setThings() callsub setThings @@ -37,6 +39,8 @@ main: // tests/approvals/reserve-scratch.algo.ts::ReserveScratchAlgo.setThings() -> void: setThings: + +setThings_block@0: // tests/approvals/reserve-scratch.algo.ts:12 // Scratch.store(0, 1) intc_1 // 0 diff --git a/tests/approvals/out/unoptimized/reserve-scratch/ReserveScratchAlgo.clear.teal b/tests/approvals/out/unoptimized/reserve-scratch/ReserveScratchAlgo.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/reserve-scratch/ReserveScratchAlgo.clear.teal +++ b/tests/approvals/out/unoptimized/reserve-scratch/ReserveScratchAlgo.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/reserve-scratch/SubReserveScratchAlgo.approval.teal b/tests/approvals/out/unoptimized/reserve-scratch/SubReserveScratchAlgo.approval.teal index f364e6036..d47a6e1d4 100644 --- a/tests/approvals/out/unoptimized/reserve-scratch/SubReserveScratchAlgo.approval.teal +++ b/tests/approvals/out/unoptimized/reserve-scratch/SubReserveScratchAlgo.approval.teal @@ -5,6 +5,8 @@ main: intcblock 1 0 15 45 bytecblock "world" "hello" + +main_block@0: // tests/approvals/reserve-scratch.algo.ts:30 // super.approvalProgram() callsub approvalProgram @@ -27,6 +29,8 @@ main: // tests/approvals/reserve-scratch.algo.ts::ReserveScratchAlgo.approvalProgram() -> uint64: approvalProgram: + +approvalProgram_block@0: // tests/approvals/reserve-scratch.algo.ts:18 // this.setThings() callsub setThings @@ -59,6 +63,8 @@ approvalProgram: // tests/approvals/reserve-scratch.algo.ts::ReserveScratchAlgo.setThings() -> void: setThings: + +setThings_block@0: // tests/approvals/reserve-scratch.algo.ts:12 // Scratch.store(0, 1) intc_1 // 0 diff --git a/tests/approvals/out/unoptimized/reserve-scratch/SubReserveScratchAlgo.clear.teal b/tests/approvals/out/unoptimized/reserve-scratch/SubReserveScratchAlgo.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/reserve-scratch/SubReserveScratchAlgo.clear.teal +++ b/tests/approvals/out/unoptimized/reserve-scratch/SubReserveScratchAlgo.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/shadowed-variables/ShadowedVariablesAlgo.approval.teal b/tests/approvals/out/unoptimized/shadowed-variables/ShadowedVariablesAlgo.approval.teal index dd01d8481..1838fe0c0 100644 --- a/tests/approvals/out/unoptimized/shadowed-variables/ShadowedVariablesAlgo.approval.teal +++ b/tests/approvals/out/unoptimized/shadowed-variables/ShadowedVariablesAlgo.approval.teal @@ -4,6 +4,8 @@ // tests/approvals/shadowed-variables.algo.ts::ShadowedVariablesAlgo.approvalProgram() -> uint64: main: bytecblock "123" + +main_block@0: // tests/approvals/shadowed-variables.algo.ts:8 // const [b, u, f] = this.getValues() callsub getValues @@ -63,6 +65,8 @@ main: // tests/approvals/shadowed-variables.algo.ts::ShadowedVariablesAlgo.getValues() -> bytes, uint64, uint64: getValues: + +getValues_block@0: // tests/approvals/shadowed-variables.algo.ts:4 // const a = Bytes('123') bytec_0 // "123" diff --git a/tests/approvals/out/unoptimized/shadowed-variables/ShadowedVariablesAlgo.clear.teal b/tests/approvals/out/unoptimized/shadowed-variables/ShadowedVariablesAlgo.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/shadowed-variables/ShadowedVariablesAlgo.clear.teal +++ b/tests/approvals/out/unoptimized/shadowed-variables/ShadowedVariablesAlgo.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/state-totals/BaseWithState.approval.teal b/tests/approvals/out/unoptimized/state-totals/BaseWithState.approval.teal index a244c012e..7a3d3dd46 100644 --- a/tests/approvals/out/unoptimized/state-totals/BaseWithState.approval.teal +++ b/tests/approvals/out/unoptimized/state-totals/BaseWithState.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 bytecblock "oneGlobal" + +main_block@0: txn ApplicationID bnz main_after_if_else@2 @@ -92,6 +94,8 @@ setState: // tests/approvals/state-totals.algo.ts:9 // setState(n: uint64) { proto 1 0 + +setState_block@0: // tests/approvals/state-totals.algo.ts:5 // oneGlobal = GlobalState({ initialValue: Uint64(1) }) bytec_0 // "oneGlobal" @@ -111,12 +115,16 @@ setState: // tests/approvals/state-totals.algo.ts::BaseWithState.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub // tests/approvals/state-totals.algo.ts::BaseWithState.constructor() -> void: constructor: +constructor_block@0: + constructor_block@1: constructor_after_inlined_@algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.constructor@2: diff --git a/tests/approvals/out/unoptimized/state-totals/BaseWithState.arc32.json b/tests/approvals/out/unoptimized/state-totals/BaseWithState.arc32.json index d39733839..88c3c29e3 100644 --- a/tests/approvals/out/unoptimized/state-totals/BaseWithState.arc32.json +++ b/tests/approvals/out/unoptimized/state-totals/BaseWithState.arc32.json @@ -7,8 +7,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJvbmVHbG9iYWwiCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAyCgptYWluX2lmX2JvZHlAMToKICAgIGNhbGxzdWIgY29uc3RydWN0b3IKCm1haW5fYWZ0ZXJfaWZfZWxzZUAyOgoKbWFpbl9ibG9ja0AzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlV2l0aFN0YXRlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAOAoKbWFpbl9hYmlfcm91dGluZ0A0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlV2l0aFN0YXRlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4MmNkOTVhYTEgLy8gbWV0aG9kICJzZXRTdGF0ZSh1aW50NjQpdm9pZCIKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fc2V0U3RhdGVfcm91dGVANQoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDY6CgptYWluX3N3aXRjaF9jYXNlX25leHRANzoKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZVdpdGhTdGF0ZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpCYXNlV2l0aFN0YXRlLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzOgogICAgcmV0dXJuCgptYWluX3NldFN0YXRlX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OQogICAgLy8gc2V0U3RhdGUobjogdWludDY0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VXaXRoU3RhdGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OQogICAgLy8gc2V0U3RhdGUobjogdWludDY0KSB7CiAgICBjYWxsc3ViIHNldFN0YXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpCYXNlV2l0aFN0YXRlLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX2JhcmVfcm91dGluZ0A4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlV2l0aFN0YXRlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDkKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlV2l0aFN0YXRlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuc2V0U3RhdGUobjogdWludDY0KSAtPiB2b2lkOgpzZXRTdGF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo5CiAgICAvLyBzZXRTdGF0ZShuOiB1aW50NjQpIHsKICAgIHByb3RvIDEgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjUKICAgIC8vIG9uZUdsb2JhbCA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBVaW50NjQoMSkgfSkKICAgIGJ5dGVjXzAgLy8gIm9uZUdsb2JhbCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxMAogICAgLy8gdGhpcy5vbmVHbG9iYWwudmFsdWUgPSBuCiAgICBmcmFtZV9kaWcgLTEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6NgogICAgLy8gdHdvR2xvYmFsID0gR2xvYmFsU3RhdGU8dWludDY0PigpCiAgICBwdXNoYnl0ZXMgInR3b0dsb2JhbCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxMQogICAgLy8gdGhpcy50d29HbG9iYWwudmFsdWUgPSBuCiAgICBmcmFtZV9kaWcgLTEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpCYXNlV2l0aFN0YXRlLmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKY29uc3RydWN0b3I6Cgpjb25zdHJ1Y3Rvcl9ibG9ja0AxOgoKY29uc3RydWN0b3JfYWZ0ZXJfaW5saW5lZF9AYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY29uc3RydWN0b3JAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo1CiAgICAvLyBvbmVHbG9iYWwgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogVWludDY0KDEpIH0pCiAgICBieXRlY18wIC8vICJvbmVHbG9iYWwiCiAgICBpbnRjXzEgLy8gMQogICAgYXBwX2dsb2JhbF9wdXQKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJvbmVHbG9iYWwiCgptYWluX2Jsb2NrQDA6CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAyCgptYWluX2lmX2JvZHlAMToKICAgIGNhbGxzdWIgY29uc3RydWN0b3IKCm1haW5fYWZ0ZXJfaWZfZWxzZUAyOgoKbWFpbl9ibG9ja0AzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlV2l0aFN0YXRlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAOAoKbWFpbl9hYmlfcm91dGluZ0A0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlV2l0aFN0YXRlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4MmNkOTVhYTEgLy8gbWV0aG9kICJzZXRTdGF0ZSh1aW50NjQpdm9pZCIKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fc2V0U3RhdGVfcm91dGVANQoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDY6CgptYWluX3N3aXRjaF9jYXNlX25leHRANzoKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZVdpdGhTdGF0ZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpCYXNlV2l0aFN0YXRlLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzOgogICAgcmV0dXJuCgptYWluX3NldFN0YXRlX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OQogICAgLy8gc2V0U3RhdGUobjogdWludDY0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VXaXRoU3RhdGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OQogICAgLy8gc2V0U3RhdGUobjogdWludDY0KSB7CiAgICBjYWxsc3ViIHNldFN0YXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpCYXNlV2l0aFN0YXRlLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX2JhcmVfcm91dGluZ0A4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlV2l0aFN0YXRlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDkKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlV2l0aFN0YXRlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuc2V0U3RhdGUobjogdWludDY0KSAtPiB2b2lkOgpzZXRTdGF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo5CiAgICAvLyBzZXRTdGF0ZShuOiB1aW50NjQpIHsKICAgIHByb3RvIDEgMAoKc2V0U3RhdGVfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo1CiAgICAvLyBvbmVHbG9iYWwgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogVWludDY0KDEpIH0pCiAgICBieXRlY18wIC8vICJvbmVHbG9iYWwiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTAKICAgIC8vIHRoaXMub25lR2xvYmFsLnZhbHVlID0gbgogICAgZnJhbWVfZGlnIC0xCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjYKICAgIC8vIHR3b0dsb2JhbCA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oKQogICAgcHVzaGJ5dGVzICJ0d29HbG9iYWwiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTEKICAgIC8vIHRoaXMudHdvR2xvYmFsLnZhbHVlID0gbgogICAgZnJhbWVfZGlnIC0xCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpCYXNlV2l0aFN0YXRlLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpCYXNlV2l0aFN0YXRlLmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKY29uc3RydWN0b3I6Cgpjb25zdHJ1Y3Rvcl9ibG9ja0AwOgoKY29uc3RydWN0b3JfYmxvY2tAMToKCmNvbnN0cnVjdG9yX2FmdGVyX2lubGluZWRfQGFsZ29yYW5kZm91bmRhdGlvbi9hbGdvcmFuZC10eXBlc2NyaXB0L2Jhc2UtY29udHJhY3QuZC50czo6QmFzZUNvbnRyYWN0LmNvbnN0cnVjdG9yQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6NQogICAgLy8gb25lR2xvYmFsID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6IFVpbnQ2NCgxKSB9KQogICAgYnl0ZWNfMCAvLyAib25lR2xvYmFsIgogICAgaW50Y18xIC8vIDEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/state-totals/BaseWithState.arc56.json b/tests/approvals/out/unoptimized/state-totals/BaseWithState.arc56.json index 4b1c97764..60b776d03 100644 --- a/tests/approvals/out/unoptimized/state-totals/BaseWithState.arc56.json +++ b/tests/approvals/out/unoptimized/state-totals/BaseWithState.arc56.json @@ -104,8 +104,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJvbmVHbG9iYWwiCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAyCgptYWluX2lmX2JvZHlAMToKICAgIGNhbGxzdWIgY29uc3RydWN0b3IKCm1haW5fYWZ0ZXJfaWZfZWxzZUAyOgoKbWFpbl9ibG9ja0AzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlV2l0aFN0YXRlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAOAoKbWFpbl9hYmlfcm91dGluZ0A0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlV2l0aFN0YXRlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4MmNkOTVhYTEgLy8gbWV0aG9kICJzZXRTdGF0ZSh1aW50NjQpdm9pZCIKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fc2V0U3RhdGVfcm91dGVANQoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDY6CgptYWluX3N3aXRjaF9jYXNlX25leHRANzoKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZVdpdGhTdGF0ZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpCYXNlV2l0aFN0YXRlLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzOgogICAgcmV0dXJuCgptYWluX3NldFN0YXRlX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OQogICAgLy8gc2V0U3RhdGUobjogdWludDY0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VXaXRoU3RhdGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OQogICAgLy8gc2V0U3RhdGUobjogdWludDY0KSB7CiAgICBjYWxsc3ViIHNldFN0YXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpCYXNlV2l0aFN0YXRlLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX2JhcmVfcm91dGluZ0A4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlV2l0aFN0YXRlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDkKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlV2l0aFN0YXRlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuc2V0U3RhdGUobjogdWludDY0KSAtPiB2b2lkOgpzZXRTdGF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo5CiAgICAvLyBzZXRTdGF0ZShuOiB1aW50NjQpIHsKICAgIHByb3RvIDEgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjUKICAgIC8vIG9uZUdsb2JhbCA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBVaW50NjQoMSkgfSkKICAgIGJ5dGVjXzAgLy8gIm9uZUdsb2JhbCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxMAogICAgLy8gdGhpcy5vbmVHbG9iYWwudmFsdWUgPSBuCiAgICBmcmFtZV9kaWcgLTEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6NgogICAgLy8gdHdvR2xvYmFsID0gR2xvYmFsU3RhdGU8dWludDY0PigpCiAgICBwdXNoYnl0ZXMgInR3b0dsb2JhbCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxMQogICAgLy8gdGhpcy50d29HbG9iYWwudmFsdWUgPSBuCiAgICBmcmFtZV9kaWcgLTEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpCYXNlV2l0aFN0YXRlLmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKY29uc3RydWN0b3I6Cgpjb25zdHJ1Y3Rvcl9ibG9ja0AxOgoKY29uc3RydWN0b3JfYWZ0ZXJfaW5saW5lZF9AYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY29uc3RydWN0b3JAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo1CiAgICAvLyBvbmVHbG9iYWwgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogVWludDY0KDEpIH0pCiAgICBieXRlY18wIC8vICJvbmVHbG9iYWwiCiAgICBpbnRjXzEgLy8gMQogICAgYXBwX2dsb2JhbF9wdXQKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJvbmVHbG9iYWwiCgptYWluX2Jsb2NrQDA6CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAyCgptYWluX2lmX2JvZHlAMToKICAgIGNhbGxzdWIgY29uc3RydWN0b3IKCm1haW5fYWZ0ZXJfaWZfZWxzZUAyOgoKbWFpbl9ibG9ja0AzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlV2l0aFN0YXRlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAOAoKbWFpbl9hYmlfcm91dGluZ0A0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlV2l0aFN0YXRlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4MmNkOTVhYTEgLy8gbWV0aG9kICJzZXRTdGF0ZSh1aW50NjQpdm9pZCIKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fc2V0U3RhdGVfcm91dGVANQoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDY6CgptYWluX3N3aXRjaF9jYXNlX25leHRANzoKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZVdpdGhTdGF0ZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpCYXNlV2l0aFN0YXRlLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzOgogICAgcmV0dXJuCgptYWluX3NldFN0YXRlX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OQogICAgLy8gc2V0U3RhdGUobjogdWludDY0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEJhc2VXaXRoU3RhdGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OQogICAgLy8gc2V0U3RhdGUobjogdWludDY0KSB7CiAgICBjYWxsc3ViIHNldFN0YXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpCYXNlV2l0aFN0YXRlLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX2JhcmVfcm91dGluZ0A4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlV2l0aFN0YXRlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDkKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlV2l0aFN0YXRlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuc2V0U3RhdGUobjogdWludDY0KSAtPiB2b2lkOgpzZXRTdGF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo5CiAgICAvLyBzZXRTdGF0ZShuOiB1aW50NjQpIHsKICAgIHByb3RvIDEgMAoKc2V0U3RhdGVfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo1CiAgICAvLyBvbmVHbG9iYWwgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogVWludDY0KDEpIH0pCiAgICBieXRlY18wIC8vICJvbmVHbG9iYWwiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTAKICAgIC8vIHRoaXMub25lR2xvYmFsLnZhbHVlID0gbgogICAgZnJhbWVfZGlnIC0xCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjYKICAgIC8vIHR3b0dsb2JhbCA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oKQogICAgcHVzaGJ5dGVzICJ0d29HbG9iYWwiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTEKICAgIC8vIHRoaXMudHdvR2xvYmFsLnZhbHVlID0gbgogICAgZnJhbWVfZGlnIC0xCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpCYXNlV2l0aFN0YXRlLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpCYXNlV2l0aFN0YXRlLmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKY29uc3RydWN0b3I6Cgpjb25zdHJ1Y3Rvcl9ibG9ja0AwOgoKY29uc3RydWN0b3JfYmxvY2tAMToKCmNvbnN0cnVjdG9yX2FmdGVyX2lubGluZWRfQGFsZ29yYW5kZm91bmRhdGlvbi9hbGdvcmFuZC10eXBlc2NyaXB0L2Jhc2UtY29udHJhY3QuZC50czo6QmFzZUNvbnRyYWN0LmNvbnN0cnVjdG9yQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6NQogICAgLy8gb25lR2xvYmFsID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6IFVpbnQ2NCgxKSB9KQogICAgYnl0ZWNfMCAvLyAib25lR2xvYmFsIgogICAgaW50Y18xIC8vIDEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAEmAQlvbmVHbG9iYWwxGEAAA4gAWjEbIhNBACU2GgCABCzZWqFMjgEAAiJDMRkiEkQxGCITRDYaAReIABsjQv/qMRkiTI4BAANC/94xGCISRIgAGiNC/9OKAQAoi/9ngAl0d29HbG9iYWyL/2eJiSgjZ4k=", @@ -116,7 +116,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/state-totals/BaseWithState.clear.teal b/tests/approvals/out/unoptimized/state-totals/BaseWithState.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/state-totals/BaseWithState.clear.teal +++ b/tests/approvals/out/unoptimized/state-totals/BaseWithState.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/state-totals/ExtendsSubWithTotals.approval.teal b/tests/approvals/out/unoptimized/state-totals/ExtendsSubWithTotals.approval.teal index 5f011a38b..b3a89579d 100644 --- a/tests/approvals/out/unoptimized/state-totals/ExtendsSubWithTotals.approval.teal +++ b/tests/approvals/out/unoptimized/state-totals/ExtendsSubWithTotals.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 bytecblock "oneGlobal" + +main_block@0: txn ApplicationID bnz main_after_if_else@2 @@ -99,6 +101,8 @@ setState: // @abimethod({ allowActions: 'OptIn' }) // setState(n: uint64) { proto 1 0 + +setState_block@0: // tests/approvals/state-totals.algo.ts:33 // super.setState(n) frame_dig -1 @@ -121,6 +125,8 @@ tests/approvals/state-totals.algo.ts::BaseWithState.setState: // tests/approvals/state-totals.algo.ts:9 // setState(n: uint64) { proto 1 0 + +tests/approvals/state-totals.algo.ts::BaseWithState.setState_block@0: // tests/approvals/state-totals.algo.ts:5 // oneGlobal = GlobalState({ initialValue: Uint64(1) }) bytec_0 // "oneGlobal" @@ -140,12 +146,16 @@ tests/approvals/state-totals.algo.ts::BaseWithState.setState: // tests/approvals/state-totals.algo.ts::ExtendsSubWithTotals.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub // tests/approvals/state-totals.algo.ts::BaseWithState.constructor() -> void: constructor: +constructor_block@0: + constructor_block@1: constructor_after_inlined_@algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.constructor@2: diff --git a/tests/approvals/out/unoptimized/state-totals/ExtendsSubWithTotals.arc32.json b/tests/approvals/out/unoptimized/state-totals/ExtendsSubWithTotals.arc32.json index 3bca2e798..a691708ec 100644 --- a/tests/approvals/out/unoptimized/state-totals/ExtendsSubWithTotals.arc32.json +++ b/tests/approvals/out/unoptimized/state-totals/ExtendsSubWithTotals.arc32.json @@ -7,8 +7,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJvbmVHbG9iYWwiCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAyCgptYWluX2lmX2JvZHlAMToKICAgIGNhbGxzdWIgY29uc3RydWN0b3IKCm1haW5fYWZ0ZXJfaWZfZWxzZUAyOgoKbWFpbl9ibG9ja0AzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI3LTI4CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczoge30gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBFeHRlbmRzU3ViV2l0aFRvdGFscyBleHRlbmRzIFN1YkNsYXNzV2l0aEV4cGxpY2l0VG90YWxzIHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDgKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoyNy0yOAogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHt9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgRXh0ZW5kc1N1YldpdGhUb3RhbHMgZXh0ZW5kcyBTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscyB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgyY2Q5NWFhMSAvLyBtZXRob2QgInNldFN0YXRlKHVpbnQ2NCl2b2lkIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9zZXRTdGF0ZV9yb3V0ZUA1CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANjoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA3OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI3LTI4CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczoge30gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBFeHRlbmRzU3ViV2l0aFRvdGFscyBleHRlbmRzIFN1YkNsYXNzV2l0aEV4cGxpY2l0VG90YWxzIHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpFeHRlbmRzU3ViV2l0aFRvdGFscy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMzoKICAgIHJldHVybgoKbWFpbl9zZXRTdGF0ZV9yb3V0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjMxCiAgICAvLyBAYWJpbWV0aG9kKHsgYWxsb3dBY3Rpb25zOiAnT3B0SW4nIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzEgLy8gT3B0SW4KICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBPcHRJbgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoyNy0yOAogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHt9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgRXh0ZW5kc1N1YldpdGhUb3RhbHMgZXh0ZW5kcyBTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscyB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MzEKICAgIC8vIEBhYmltZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdPcHRJbicgfSkKICAgIGNhbGxzdWIgc2V0U3RhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkV4dGVuZHNTdWJXaXRoVG90YWxzLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX2JhcmVfcm91dGluZ0A4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI3LTI4CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczoge30gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBFeHRlbmRzU3ViV2l0aFRvdGFscyBleHRlbmRzIFN1YkNsYXNzV2l0aEV4cGxpY2l0VG90YWxzIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTA6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTE6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMgoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoyNy0yOAogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHt9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgRXh0ZW5kc1N1YldpdGhUb3RhbHMgZXh0ZW5kcyBTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscyB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6RXh0ZW5kc1N1YldpdGhUb3RhbHMuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkV4dGVuZHNTdWJXaXRoVG90YWxzLnNldFN0YXRlKG46IHVpbnQ2NCkgLT4gdm9pZDoKc2V0U3RhdGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MzEtMzIKICAgIC8vIEBhYmltZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdPcHRJbicgfSkKICAgIC8vIHNldFN0YXRlKG46IHVpbnQ2NCkgewogICAgcHJvdG8gMSAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MzMKICAgIC8vIHN1cGVyLnNldFN0YXRlKG4pCiAgICBmcmFtZV9kaWcgLTEKICAgIGNhbGxzdWIgdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpCYXNlV2l0aFN0YXRlLnNldFN0YXRlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MzUKICAgIC8vIHRoaXMub25lTG9jYWwoVHhuLnNlbmRlcikudmFsdWUgPSBuCiAgICB0eG4gU2VuZGVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MjkKICAgIC8vIG9uZUxvY2FsID0gTG9jYWxTdGF0ZTx1aW50NjQ+KCkKICAgIHB1c2hieXRlcyAib25lTG9jYWwiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MzUKICAgIC8vIHRoaXMub25lTG9jYWwoVHhuLnNlbmRlcikudmFsdWUgPSBuCiAgICBmcmFtZV9kaWcgLTEKICAgIGFwcF9sb2NhbF9wdXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6QmFzZVdpdGhTdGF0ZS5zZXRTdGF0ZShuOiB1aW50NjQpIC0+IHZvaWQ6CnRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6QmFzZVdpdGhTdGF0ZS5zZXRTdGF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo5CiAgICAvLyBzZXRTdGF0ZShuOiB1aW50NjQpIHsKICAgIHByb3RvIDEgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjUKICAgIC8vIG9uZUdsb2JhbCA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBVaW50NjQoMSkgfSkKICAgIGJ5dGVjXzAgLy8gIm9uZUdsb2JhbCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxMAogICAgLy8gdGhpcy5vbmVHbG9iYWwudmFsdWUgPSBuCiAgICBmcmFtZV9kaWcgLTEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6NgogICAgLy8gdHdvR2xvYmFsID0gR2xvYmFsU3RhdGU8dWludDY0PigpCiAgICBwdXNoYnl0ZXMgInR3b0dsb2JhbCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxMQogICAgLy8gdGhpcy50d29HbG9iYWwudmFsdWUgPSBuCiAgICBmcmFtZV9kaWcgLTEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkV4dGVuZHNTdWJXaXRoVG90YWxzLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6QmFzZVdpdGhTdGF0ZS5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CmNvbnN0cnVjdG9yOgoKY29uc3RydWN0b3JfYmxvY2tAMToKCmNvbnN0cnVjdG9yX2FmdGVyX2lubGluZWRfQGFsZ29yYW5kZm91bmRhdGlvbi9hbGdvcmFuZC10eXBlc2NyaXB0L2Jhc2UtY29udHJhY3QuZC50czo6QmFzZUNvbnRyYWN0LmNvbnN0cnVjdG9yQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6NQogICAgLy8gb25lR2xvYmFsID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6IFVpbnQ2NCgxKSB9KQogICAgYnl0ZWNfMCAvLyAib25lR2xvYmFsIgogICAgaW50Y18xIC8vIDEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJvbmVHbG9iYWwiCgptYWluX2Jsb2NrQDA6CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAyCgptYWluX2lmX2JvZHlAMToKICAgIGNhbGxzdWIgY29uc3RydWN0b3IKCm1haW5fYWZ0ZXJfaWZfZWxzZUAyOgoKbWFpbl9ibG9ja0AzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI3LTI4CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczoge30gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBFeHRlbmRzU3ViV2l0aFRvdGFscyBleHRlbmRzIFN1YkNsYXNzV2l0aEV4cGxpY2l0VG90YWxzIHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDgKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoyNy0yOAogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHt9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgRXh0ZW5kc1N1YldpdGhUb3RhbHMgZXh0ZW5kcyBTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscyB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgyY2Q5NWFhMSAvLyBtZXRob2QgInNldFN0YXRlKHVpbnQ2NCl2b2lkIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9zZXRTdGF0ZV9yb3V0ZUA1CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANjoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA3OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI3LTI4CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczoge30gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBFeHRlbmRzU3ViV2l0aFRvdGFscyBleHRlbmRzIFN1YkNsYXNzV2l0aEV4cGxpY2l0VG90YWxzIHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpFeHRlbmRzU3ViV2l0aFRvdGFscy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMzoKICAgIHJldHVybgoKbWFpbl9zZXRTdGF0ZV9yb3V0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjMxCiAgICAvLyBAYWJpbWV0aG9kKHsgYWxsb3dBY3Rpb25zOiAnT3B0SW4nIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzEgLy8gT3B0SW4KICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBPcHRJbgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoyNy0yOAogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHt9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgRXh0ZW5kc1N1YldpdGhUb3RhbHMgZXh0ZW5kcyBTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscyB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MzEKICAgIC8vIEBhYmltZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdPcHRJbicgfSkKICAgIGNhbGxzdWIgc2V0U3RhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkV4dGVuZHNTdWJXaXRoVG90YWxzLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX2JhcmVfcm91dGluZ0A4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI3LTI4CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczoge30gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBFeHRlbmRzU3ViV2l0aFRvdGFscyBleHRlbmRzIFN1YkNsYXNzV2l0aEV4cGxpY2l0VG90YWxzIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTA6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTE6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMgoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoyNy0yOAogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHt9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgRXh0ZW5kc1N1YldpdGhUb3RhbHMgZXh0ZW5kcyBTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscyB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6RXh0ZW5kc1N1YldpdGhUb3RhbHMuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkV4dGVuZHNTdWJXaXRoVG90YWxzLnNldFN0YXRlKG46IHVpbnQ2NCkgLT4gdm9pZDoKc2V0U3RhdGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MzEtMzIKICAgIC8vIEBhYmltZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdPcHRJbicgfSkKICAgIC8vIHNldFN0YXRlKG46IHVpbnQ2NCkgewogICAgcHJvdG8gMSAwCgpzZXRTdGF0ZV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjMzCiAgICAvLyBzdXBlci5zZXRTdGF0ZShuKQogICAgZnJhbWVfZGlnIC0xCiAgICBjYWxsc3ViIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6QmFzZVdpdGhTdGF0ZS5zZXRTdGF0ZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjM1CiAgICAvLyB0aGlzLm9uZUxvY2FsKFR4bi5zZW5kZXIpLnZhbHVlID0gbgogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI5CiAgICAvLyBvbmVMb2NhbCA9IExvY2FsU3RhdGU8dWludDY0PigpCiAgICBwdXNoYnl0ZXMgIm9uZUxvY2FsIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjM1CiAgICAvLyB0aGlzLm9uZUxvY2FsKFR4bi5zZW5kZXIpLnZhbHVlID0gbgogICAgZnJhbWVfZGlnIC0xCiAgICBhcHBfbG9jYWxfcHV0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuc2V0U3RhdGUobjogdWludDY0KSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuc2V0U3RhdGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OQogICAgLy8gc2V0U3RhdGUobjogdWludDY0KSB7CiAgICBwcm90byAxIDAKCnRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6QmFzZVdpdGhTdGF0ZS5zZXRTdGF0ZV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjUKICAgIC8vIG9uZUdsb2JhbCA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBVaW50NjQoMSkgfSkKICAgIGJ5dGVjXzAgLy8gIm9uZUdsb2JhbCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxMAogICAgLy8gdGhpcy5vbmVHbG9iYWwudmFsdWUgPSBuCiAgICBmcmFtZV9kaWcgLTEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6NgogICAgLy8gdHdvR2xvYmFsID0gR2xvYmFsU3RhdGU8dWludDY0PigpCiAgICBwdXNoYnl0ZXMgInR3b0dsb2JhbCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxMQogICAgLy8gdGhpcy50d29HbG9iYWwudmFsdWUgPSBuCiAgICBmcmFtZV9kaWcgLTEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkV4dGVuZHNTdWJXaXRoVG90YWxzLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpCYXNlV2l0aFN0YXRlLmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKY29uc3RydWN0b3I6Cgpjb25zdHJ1Y3Rvcl9ibG9ja0AwOgoKY29uc3RydWN0b3JfYmxvY2tAMToKCmNvbnN0cnVjdG9yX2FmdGVyX2lubGluZWRfQGFsZ29yYW5kZm91bmRhdGlvbi9hbGdvcmFuZC10eXBlc2NyaXB0L2Jhc2UtY29udHJhY3QuZC50czo6QmFzZUNvbnRyYWN0LmNvbnN0cnVjdG9yQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6NQogICAgLy8gb25lR2xvYmFsID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6IFVpbnQ2NCgxKSB9KQogICAgYnl0ZWNfMCAvLyAib25lR2xvYmFsIgogICAgaW50Y18xIC8vIDEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/state-totals/ExtendsSubWithTotals.arc56.json b/tests/approvals/out/unoptimized/state-totals/ExtendsSubWithTotals.arc56.json index af840bdc2..020f1c01a 100644 --- a/tests/approvals/out/unoptimized/state-totals/ExtendsSubWithTotals.arc56.json +++ b/tests/approvals/out/unoptimized/state-totals/ExtendsSubWithTotals.arc56.json @@ -109,8 +109,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJvbmVHbG9iYWwiCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAyCgptYWluX2lmX2JvZHlAMToKICAgIGNhbGxzdWIgY29uc3RydWN0b3IKCm1haW5fYWZ0ZXJfaWZfZWxzZUAyOgoKbWFpbl9ibG9ja0AzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI3LTI4CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczoge30gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBFeHRlbmRzU3ViV2l0aFRvdGFscyBleHRlbmRzIFN1YkNsYXNzV2l0aEV4cGxpY2l0VG90YWxzIHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDgKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoyNy0yOAogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHt9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgRXh0ZW5kc1N1YldpdGhUb3RhbHMgZXh0ZW5kcyBTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscyB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgyY2Q5NWFhMSAvLyBtZXRob2QgInNldFN0YXRlKHVpbnQ2NCl2b2lkIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9zZXRTdGF0ZV9yb3V0ZUA1CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANjoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA3OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI3LTI4CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczoge30gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBFeHRlbmRzU3ViV2l0aFRvdGFscyBleHRlbmRzIFN1YkNsYXNzV2l0aEV4cGxpY2l0VG90YWxzIHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpFeHRlbmRzU3ViV2l0aFRvdGFscy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMzoKICAgIHJldHVybgoKbWFpbl9zZXRTdGF0ZV9yb3V0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjMxCiAgICAvLyBAYWJpbWV0aG9kKHsgYWxsb3dBY3Rpb25zOiAnT3B0SW4nIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzEgLy8gT3B0SW4KICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBPcHRJbgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoyNy0yOAogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHt9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgRXh0ZW5kc1N1YldpdGhUb3RhbHMgZXh0ZW5kcyBTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscyB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MzEKICAgIC8vIEBhYmltZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdPcHRJbicgfSkKICAgIGNhbGxzdWIgc2V0U3RhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkV4dGVuZHNTdWJXaXRoVG90YWxzLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX2JhcmVfcm91dGluZ0A4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI3LTI4CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczoge30gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBFeHRlbmRzU3ViV2l0aFRvdGFscyBleHRlbmRzIFN1YkNsYXNzV2l0aEV4cGxpY2l0VG90YWxzIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTA6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTE6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMgoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoyNy0yOAogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHt9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgRXh0ZW5kc1N1YldpdGhUb3RhbHMgZXh0ZW5kcyBTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscyB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6RXh0ZW5kc1N1YldpdGhUb3RhbHMuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkV4dGVuZHNTdWJXaXRoVG90YWxzLnNldFN0YXRlKG46IHVpbnQ2NCkgLT4gdm9pZDoKc2V0U3RhdGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MzEtMzIKICAgIC8vIEBhYmltZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdPcHRJbicgfSkKICAgIC8vIHNldFN0YXRlKG46IHVpbnQ2NCkgewogICAgcHJvdG8gMSAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MzMKICAgIC8vIHN1cGVyLnNldFN0YXRlKG4pCiAgICBmcmFtZV9kaWcgLTEKICAgIGNhbGxzdWIgdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpCYXNlV2l0aFN0YXRlLnNldFN0YXRlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MzUKICAgIC8vIHRoaXMub25lTG9jYWwoVHhuLnNlbmRlcikudmFsdWUgPSBuCiAgICB0eG4gU2VuZGVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MjkKICAgIC8vIG9uZUxvY2FsID0gTG9jYWxTdGF0ZTx1aW50NjQ+KCkKICAgIHB1c2hieXRlcyAib25lTG9jYWwiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MzUKICAgIC8vIHRoaXMub25lTG9jYWwoVHhuLnNlbmRlcikudmFsdWUgPSBuCiAgICBmcmFtZV9kaWcgLTEKICAgIGFwcF9sb2NhbF9wdXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6QmFzZVdpdGhTdGF0ZS5zZXRTdGF0ZShuOiB1aW50NjQpIC0+IHZvaWQ6CnRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6QmFzZVdpdGhTdGF0ZS5zZXRTdGF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo5CiAgICAvLyBzZXRTdGF0ZShuOiB1aW50NjQpIHsKICAgIHByb3RvIDEgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjUKICAgIC8vIG9uZUdsb2JhbCA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBVaW50NjQoMSkgfSkKICAgIGJ5dGVjXzAgLy8gIm9uZUdsb2JhbCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxMAogICAgLy8gdGhpcy5vbmVHbG9iYWwudmFsdWUgPSBuCiAgICBmcmFtZV9kaWcgLTEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6NgogICAgLy8gdHdvR2xvYmFsID0gR2xvYmFsU3RhdGU8dWludDY0PigpCiAgICBwdXNoYnl0ZXMgInR3b0dsb2JhbCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxMQogICAgLy8gdGhpcy50d29HbG9iYWwudmFsdWUgPSBuCiAgICBmcmFtZV9kaWcgLTEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkV4dGVuZHNTdWJXaXRoVG90YWxzLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6QmFzZVdpdGhTdGF0ZS5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CmNvbnN0cnVjdG9yOgoKY29uc3RydWN0b3JfYmxvY2tAMToKCmNvbnN0cnVjdG9yX2FmdGVyX2lubGluZWRfQGFsZ29yYW5kZm91bmRhdGlvbi9hbGdvcmFuZC10eXBlc2NyaXB0L2Jhc2UtY29udHJhY3QuZC50czo6QmFzZUNvbnRyYWN0LmNvbnN0cnVjdG9yQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6NQogICAgLy8gb25lR2xvYmFsID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6IFVpbnQ2NCgxKSB9KQogICAgYnl0ZWNfMCAvLyAib25lR2xvYmFsIgogICAgaW50Y18xIC8vIDEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJvbmVHbG9iYWwiCgptYWluX2Jsb2NrQDA6CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAyCgptYWluX2lmX2JvZHlAMToKICAgIGNhbGxzdWIgY29uc3RydWN0b3IKCm1haW5fYWZ0ZXJfaWZfZWxzZUAyOgoKbWFpbl9ibG9ja0AzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI3LTI4CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczoge30gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBFeHRlbmRzU3ViV2l0aFRvdGFscyBleHRlbmRzIFN1YkNsYXNzV2l0aEV4cGxpY2l0VG90YWxzIHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDgKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoyNy0yOAogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHt9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgRXh0ZW5kc1N1YldpdGhUb3RhbHMgZXh0ZW5kcyBTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscyB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgyY2Q5NWFhMSAvLyBtZXRob2QgInNldFN0YXRlKHVpbnQ2NCl2b2lkIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9zZXRTdGF0ZV9yb3V0ZUA1CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANjoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA3OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI3LTI4CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczoge30gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBFeHRlbmRzU3ViV2l0aFRvdGFscyBleHRlbmRzIFN1YkNsYXNzV2l0aEV4cGxpY2l0VG90YWxzIHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpFeHRlbmRzU3ViV2l0aFRvdGFscy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMzoKICAgIHJldHVybgoKbWFpbl9zZXRTdGF0ZV9yb3V0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjMxCiAgICAvLyBAYWJpbWV0aG9kKHsgYWxsb3dBY3Rpb25zOiAnT3B0SW4nIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzEgLy8gT3B0SW4KICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBPcHRJbgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoyNy0yOAogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHt9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgRXh0ZW5kc1N1YldpdGhUb3RhbHMgZXh0ZW5kcyBTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscyB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MzEKICAgIC8vIEBhYmltZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdPcHRJbicgfSkKICAgIGNhbGxzdWIgc2V0U3RhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkV4dGVuZHNTdWJXaXRoVG90YWxzLl9fcHV5YV9hcmM0X3JvdXRlcl9fQDEzCgptYWluX2JhcmVfcm91dGluZ0A4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI3LTI4CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczoge30gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBFeHRlbmRzU3ViV2l0aFRvdGFscyBleHRlbmRzIFN1YkNsYXNzV2l0aEV4cGxpY2l0VG90YWxzIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTA6CgptYWluX3N3aXRjaF9jYXNlX25leHRAMTE6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMgoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoyNy0yOAogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHt9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgRXh0ZW5kc1N1YldpdGhUb3RhbHMgZXh0ZW5kcyBTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscyB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6RXh0ZW5kc1N1YldpdGhUb3RhbHMuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkV4dGVuZHNTdWJXaXRoVG90YWxzLnNldFN0YXRlKG46IHVpbnQ2NCkgLT4gdm9pZDoKc2V0U3RhdGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MzEtMzIKICAgIC8vIEBhYmltZXRob2QoeyBhbGxvd0FjdGlvbnM6ICdPcHRJbicgfSkKICAgIC8vIHNldFN0YXRlKG46IHVpbnQ2NCkgewogICAgcHJvdG8gMSAwCgpzZXRTdGF0ZV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjMzCiAgICAvLyBzdXBlci5zZXRTdGF0ZShuKQogICAgZnJhbWVfZGlnIC0xCiAgICBjYWxsc3ViIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6QmFzZVdpdGhTdGF0ZS5zZXRTdGF0ZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjM1CiAgICAvLyB0aGlzLm9uZUxvY2FsKFR4bi5zZW5kZXIpLnZhbHVlID0gbgogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI5CiAgICAvLyBvbmVMb2NhbCA9IExvY2FsU3RhdGU8dWludDY0PigpCiAgICBwdXNoYnl0ZXMgIm9uZUxvY2FsIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjM1CiAgICAvLyB0aGlzLm9uZUxvY2FsKFR4bi5zZW5kZXIpLnZhbHVlID0gbgogICAgZnJhbWVfZGlnIC0xCiAgICBhcHBfbG9jYWxfcHV0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuc2V0U3RhdGUobjogdWludDY0KSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuc2V0U3RhdGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OQogICAgLy8gc2V0U3RhdGUobjogdWludDY0KSB7CiAgICBwcm90byAxIDAKCnRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6QmFzZVdpdGhTdGF0ZS5zZXRTdGF0ZV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjUKICAgIC8vIG9uZUdsb2JhbCA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBVaW50NjQoMSkgfSkKICAgIGJ5dGVjXzAgLy8gIm9uZUdsb2JhbCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxMAogICAgLy8gdGhpcy5vbmVHbG9iYWwudmFsdWUgPSBuCiAgICBmcmFtZV9kaWcgLTEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6NgogICAgLy8gdHdvR2xvYmFsID0gR2xvYmFsU3RhdGU8dWludDY0PigpCiAgICBwdXNoYnl0ZXMgInR3b0dsb2JhbCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxMQogICAgLy8gdGhpcy50d29HbG9iYWwudmFsdWUgPSBuCiAgICBmcmFtZV9kaWcgLTEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkV4dGVuZHNTdWJXaXRoVG90YWxzLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpCYXNlV2l0aFN0YXRlLmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKY29uc3RydWN0b3I6Cgpjb25zdHJ1Y3Rvcl9ibG9ja0AwOgoKY29uc3RydWN0b3JfYmxvY2tAMToKCmNvbnN0cnVjdG9yX2FmdGVyX2lubGluZWRfQGFsZ29yYW5kZm91bmRhdGlvbi9hbGdvcmFuZC10eXBlc2NyaXB0L2Jhc2UtY29udHJhY3QuZC50czo6QmFzZUNvbnRyYWN0LmNvbnN0cnVjdG9yQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6NQogICAgLy8gb25lR2xvYmFsID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6IFVpbnQ2NCgxKSB9KQogICAgYnl0ZWNfMCAvLyAib25lR2xvYmFsIgogICAgaW50Y18xIC8vIDEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAEmAQlvbmVHbG9iYWwxGEAAA4gAcjEbIhNBACU2GgCABCzZWqFMjgEAAiJDMRkjEkQxGCITRDYaAReIABsjQv/qMRkiTI4BAANC/94xGCISRIgAMiNC/9OKAQCL/4gAEDEAgAhvbmVMb2NhbIv/ZomKAQAoi/9ngAl0d29HbG9iYWyL/2eJiSgjZ4k=", @@ -121,7 +121,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/state-totals/ExtendsSubWithTotals.clear.teal b/tests/approvals/out/unoptimized/state-totals/ExtendsSubWithTotals.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/state-totals/ExtendsSubWithTotals.clear.teal +++ b/tests/approvals/out/unoptimized/state-totals/ExtendsSubWithTotals.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/state-totals/SubClassWithExplicitTotals.approval.teal b/tests/approvals/out/unoptimized/state-totals/SubClassWithExplicitTotals.approval.teal index e61364503..2b8b27f9e 100644 --- a/tests/approvals/out/unoptimized/state-totals/SubClassWithExplicitTotals.approval.teal +++ b/tests/approvals/out/unoptimized/state-totals/SubClassWithExplicitTotals.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 bytecblock "oneGlobal" + +main_block@0: txn ApplicationID bnz main_after_if_else@2 @@ -98,6 +100,8 @@ setState: // tests/approvals/state-totals.algo.ts:9 // setState(n: uint64) { proto 1 0 + +setState_block@0: // tests/approvals/state-totals.algo.ts:5 // oneGlobal = GlobalState({ initialValue: Uint64(1) }) bytec_0 // "oneGlobal" @@ -117,12 +121,16 @@ setState: // tests/approvals/state-totals.algo.ts::SubClassWithExplicitTotals.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub // tests/approvals/state-totals.algo.ts::BaseWithState.constructor() -> void: constructor: +constructor_block@0: + constructor_block@1: constructor_after_inlined_@algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.constructor@2: diff --git a/tests/approvals/out/unoptimized/state-totals/SubClassWithExplicitTotals.arc32.json b/tests/approvals/out/unoptimized/state-totals/SubClassWithExplicitTotals.arc32.json index 6faa8c05a..2ea98d550 100644 --- a/tests/approvals/out/unoptimized/state-totals/SubClassWithExplicitTotals.arc32.json +++ b/tests/approvals/out/unoptimized/state-totals/SubClassWithExplicitTotals.arc32.json @@ -7,8 +7,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJvbmVHbG9iYWwiCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAyCgptYWluX2lmX2JvZHlAMToKICAgIGNhbGxzdWIgY29uc3RydWN0b3IKCm1haW5fYWZ0ZXJfaWZfZWxzZUAyOgoKbWFpbl9ibG9ja0AzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI0LTI1CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczogeyBnbG9iYWxVaW50czogNCwgbG9jYWxVaW50czogMCB9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQ2xhc3NXaXRoRXhwbGljaXRUb3RhbHMgZXh0ZW5kcyBCYXNlV2l0aFN0YXRlIHt9CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A4CgptYWluX2FiaV9yb3V0aW5nQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MjQtMjUKICAgIC8vIEBjb250cmFjdCh7IHN0YXRlVG90YWxzOiB7IGdsb2JhbFVpbnRzOiA0LCBsb2NhbFVpbnRzOiAwIH0gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscyBleHRlbmRzIEJhc2VXaXRoU3RhdGUge30KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDJjZDk1YWExIC8vIG1ldGhvZCAic2V0U3RhdGUodWludDY0KXZvaWQiCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3NldFN0YXRlX3JvdXRlQDUKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA2OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDc6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MjQtMjUKICAgIC8vIEBjb250cmFjdCh7IHN0YXRlVG90YWxzOiB7IGdsb2JhbFVpbnRzOiA0LCBsb2NhbFVpbnRzOiAwIH0gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscyBleHRlbmRzIEJhc2VXaXRoU3RhdGUge30KICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMzoKICAgIHJldHVybgoKbWFpbl9zZXRTdGF0ZV9yb3V0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjkKICAgIC8vIHNldFN0YXRlKG46IHVpbnQ2NCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI0LTI1CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczogeyBnbG9iYWxVaW50czogNCwgbG9jYWxVaW50czogMCB9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQ2xhc3NXaXRoRXhwbGljaXRUb3RhbHMgZXh0ZW5kcyBCYXNlV2l0aFN0YXRlIHt9CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OQogICAgLy8gc2V0U3RhdGUobjogdWludDY0KSB7CiAgICBjYWxsc3ViIHNldFN0YXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl9iYXJlX3JvdXRpbmdAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoyNC0yNQogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHsgZ2xvYmFsVWludHM6IDQsIGxvY2FsVWludHM6IDAgfSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkNsYXNzV2l0aEV4cGxpY2l0VG90YWxzIGV4dGVuZHMgQmFzZVdpdGhTdGF0ZSB7fQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDkKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI0LTI1CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczogeyBnbG9iYWxVaW50czogNCwgbG9jYWxVaW50czogMCB9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQ2xhc3NXaXRoRXhwbGljaXRUb3RhbHMgZXh0ZW5kcyBCYXNlV2l0aFN0YXRlIHt9CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6U3ViQ2xhc3NXaXRoRXhwbGljaXRUb3RhbHMuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuc2V0U3RhdGUobjogdWludDY0KSAtPiB2b2lkOgpzZXRTdGF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo5CiAgICAvLyBzZXRTdGF0ZShuOiB1aW50NjQpIHsKICAgIHByb3RvIDEgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjUKICAgIC8vIG9uZUdsb2JhbCA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBVaW50NjQoMSkgfSkKICAgIGJ5dGVjXzAgLy8gIm9uZUdsb2JhbCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxMAogICAgLy8gdGhpcy5vbmVHbG9iYWwudmFsdWUgPSBuCiAgICBmcmFtZV9kaWcgLTEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6NgogICAgLy8gdHdvR2xvYmFsID0gR2xvYmFsU3RhdGU8dWludDY0PigpCiAgICBwdXNoYnl0ZXMgInR3b0dsb2JhbCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxMQogICAgLy8gdGhpcy50d29HbG9iYWwudmFsdWUgPSBuCiAgICBmcmFtZV9kaWcgLTEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OlN1YkNsYXNzV2l0aEV4cGxpY2l0VG90YWxzLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6QmFzZVdpdGhTdGF0ZS5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CmNvbnN0cnVjdG9yOgoKY29uc3RydWN0b3JfYmxvY2tAMToKCmNvbnN0cnVjdG9yX2FmdGVyX2lubGluZWRfQGFsZ29yYW5kZm91bmRhdGlvbi9hbGdvcmFuZC10eXBlc2NyaXB0L2Jhc2UtY29udHJhY3QuZC50czo6QmFzZUNvbnRyYWN0LmNvbnN0cnVjdG9yQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6NQogICAgLy8gb25lR2xvYmFsID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6IFVpbnQ2NCgxKSB9KQogICAgYnl0ZWNfMCAvLyAib25lR2xvYmFsIgogICAgaW50Y18xIC8vIDEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJvbmVHbG9iYWwiCgptYWluX2Jsb2NrQDA6CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAyCgptYWluX2lmX2JvZHlAMToKICAgIGNhbGxzdWIgY29uc3RydWN0b3IKCm1haW5fYWZ0ZXJfaWZfZWxzZUAyOgoKbWFpbl9ibG9ja0AzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI0LTI1CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczogeyBnbG9iYWxVaW50czogNCwgbG9jYWxVaW50czogMCB9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQ2xhc3NXaXRoRXhwbGljaXRUb3RhbHMgZXh0ZW5kcyBCYXNlV2l0aFN0YXRlIHt9CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A4CgptYWluX2FiaV9yb3V0aW5nQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MjQtMjUKICAgIC8vIEBjb250cmFjdCh7IHN0YXRlVG90YWxzOiB7IGdsb2JhbFVpbnRzOiA0LCBsb2NhbFVpbnRzOiAwIH0gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscyBleHRlbmRzIEJhc2VXaXRoU3RhdGUge30KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDJjZDk1YWExIC8vIG1ldGhvZCAic2V0U3RhdGUodWludDY0KXZvaWQiCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3NldFN0YXRlX3JvdXRlQDUKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA2OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDc6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MjQtMjUKICAgIC8vIEBjb250cmFjdCh7IHN0YXRlVG90YWxzOiB7IGdsb2JhbFVpbnRzOiA0LCBsb2NhbFVpbnRzOiAwIH0gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscyBleHRlbmRzIEJhc2VXaXRoU3RhdGUge30KICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMzoKICAgIHJldHVybgoKbWFpbl9zZXRTdGF0ZV9yb3V0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjkKICAgIC8vIHNldFN0YXRlKG46IHVpbnQ2NCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI0LTI1CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczogeyBnbG9iYWxVaW50czogNCwgbG9jYWxVaW50czogMCB9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQ2xhc3NXaXRoRXhwbGljaXRUb3RhbHMgZXh0ZW5kcyBCYXNlV2l0aFN0YXRlIHt9CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OQogICAgLy8gc2V0U3RhdGUobjogdWludDY0KSB7CiAgICBjYWxsc3ViIHNldFN0YXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl9iYXJlX3JvdXRpbmdAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoyNC0yNQogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHsgZ2xvYmFsVWludHM6IDQsIGxvY2FsVWludHM6IDAgfSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkNsYXNzV2l0aEV4cGxpY2l0VG90YWxzIGV4dGVuZHMgQmFzZVdpdGhTdGF0ZSB7fQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDkKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI0LTI1CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczogeyBnbG9iYWxVaW50czogNCwgbG9jYWxVaW50czogMCB9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQ2xhc3NXaXRoRXhwbGljaXRUb3RhbHMgZXh0ZW5kcyBCYXNlV2l0aFN0YXRlIHt9CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6U3ViQ2xhc3NXaXRoRXhwbGljaXRUb3RhbHMuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuc2V0U3RhdGUobjogdWludDY0KSAtPiB2b2lkOgpzZXRTdGF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo5CiAgICAvLyBzZXRTdGF0ZShuOiB1aW50NjQpIHsKICAgIHByb3RvIDEgMAoKc2V0U3RhdGVfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo1CiAgICAvLyBvbmVHbG9iYWwgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogVWludDY0KDEpIH0pCiAgICBieXRlY18wIC8vICJvbmVHbG9iYWwiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTAKICAgIC8vIHRoaXMub25lR2xvYmFsLnZhbHVlID0gbgogICAgZnJhbWVfZGlnIC0xCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjYKICAgIC8vIHR3b0dsb2JhbCA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oKQogICAgcHVzaGJ5dGVzICJ0d29HbG9iYWwiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTEKICAgIC8vIHRoaXMudHdvR2xvYmFsLnZhbHVlID0gbgogICAgZnJhbWVfZGlnIC0xCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscy5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6QmFzZVdpdGhTdGF0ZS5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CmNvbnN0cnVjdG9yOgoKY29uc3RydWN0b3JfYmxvY2tAMDoKCmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgpjb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjUKICAgIC8vIG9uZUdsb2JhbCA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBVaW50NjQoMSkgfSkKICAgIGJ5dGVjXzAgLy8gIm9uZUdsb2JhbCIKICAgIGludGNfMSAvLyAxCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/state-totals/SubClassWithExplicitTotals.arc56.json b/tests/approvals/out/unoptimized/state-totals/SubClassWithExplicitTotals.arc56.json index bdc1a6d96..07b1e826e 100644 --- a/tests/approvals/out/unoptimized/state-totals/SubClassWithExplicitTotals.arc56.json +++ b/tests/approvals/out/unoptimized/state-totals/SubClassWithExplicitTotals.arc56.json @@ -104,8 +104,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJvbmVHbG9iYWwiCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAyCgptYWluX2lmX2JvZHlAMToKICAgIGNhbGxzdWIgY29uc3RydWN0b3IKCm1haW5fYWZ0ZXJfaWZfZWxzZUAyOgoKbWFpbl9ibG9ja0AzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI0LTI1CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczogeyBnbG9iYWxVaW50czogNCwgbG9jYWxVaW50czogMCB9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQ2xhc3NXaXRoRXhwbGljaXRUb3RhbHMgZXh0ZW5kcyBCYXNlV2l0aFN0YXRlIHt9CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A4CgptYWluX2FiaV9yb3V0aW5nQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MjQtMjUKICAgIC8vIEBjb250cmFjdCh7IHN0YXRlVG90YWxzOiB7IGdsb2JhbFVpbnRzOiA0LCBsb2NhbFVpbnRzOiAwIH0gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscyBleHRlbmRzIEJhc2VXaXRoU3RhdGUge30KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDJjZDk1YWExIC8vIG1ldGhvZCAic2V0U3RhdGUodWludDY0KXZvaWQiCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3NldFN0YXRlX3JvdXRlQDUKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA2OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDc6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MjQtMjUKICAgIC8vIEBjb250cmFjdCh7IHN0YXRlVG90YWxzOiB7IGdsb2JhbFVpbnRzOiA0LCBsb2NhbFVpbnRzOiAwIH0gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscyBleHRlbmRzIEJhc2VXaXRoU3RhdGUge30KICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMzoKICAgIHJldHVybgoKbWFpbl9zZXRTdGF0ZV9yb3V0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjkKICAgIC8vIHNldFN0YXRlKG46IHVpbnQ2NCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI0LTI1CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczogeyBnbG9iYWxVaW50czogNCwgbG9jYWxVaW50czogMCB9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQ2xhc3NXaXRoRXhwbGljaXRUb3RhbHMgZXh0ZW5kcyBCYXNlV2l0aFN0YXRlIHt9CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OQogICAgLy8gc2V0U3RhdGUobjogdWludDY0KSB7CiAgICBjYWxsc3ViIHNldFN0YXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl9iYXJlX3JvdXRpbmdAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoyNC0yNQogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHsgZ2xvYmFsVWludHM6IDQsIGxvY2FsVWludHM6IDAgfSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkNsYXNzV2l0aEV4cGxpY2l0VG90YWxzIGV4dGVuZHMgQmFzZVdpdGhTdGF0ZSB7fQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDkKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI0LTI1CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczogeyBnbG9iYWxVaW50czogNCwgbG9jYWxVaW50czogMCB9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQ2xhc3NXaXRoRXhwbGljaXRUb3RhbHMgZXh0ZW5kcyBCYXNlV2l0aFN0YXRlIHt9CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6U3ViQ2xhc3NXaXRoRXhwbGljaXRUb3RhbHMuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuc2V0U3RhdGUobjogdWludDY0KSAtPiB2b2lkOgpzZXRTdGF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo5CiAgICAvLyBzZXRTdGF0ZShuOiB1aW50NjQpIHsKICAgIHByb3RvIDEgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjUKICAgIC8vIG9uZUdsb2JhbCA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBVaW50NjQoMSkgfSkKICAgIGJ5dGVjXzAgLy8gIm9uZUdsb2JhbCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxMAogICAgLy8gdGhpcy5vbmVHbG9iYWwudmFsdWUgPSBuCiAgICBmcmFtZV9kaWcgLTEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6NgogICAgLy8gdHdvR2xvYmFsID0gR2xvYmFsU3RhdGU8dWludDY0PigpCiAgICBwdXNoYnl0ZXMgInR3b0dsb2JhbCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxMQogICAgLy8gdGhpcy50d29HbG9iYWwudmFsdWUgPSBuCiAgICBmcmFtZV9kaWcgLTEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OlN1YkNsYXNzV2l0aEV4cGxpY2l0VG90YWxzLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6QmFzZVdpdGhTdGF0ZS5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CmNvbnN0cnVjdG9yOgoKY29uc3RydWN0b3JfYmxvY2tAMToKCmNvbnN0cnVjdG9yX2FmdGVyX2lubGluZWRfQGFsZ29yYW5kZm91bmRhdGlvbi9hbGdvcmFuZC10eXBlc2NyaXB0L2Jhc2UtY29udHJhY3QuZC50czo6QmFzZUNvbnRyYWN0LmNvbnN0cnVjdG9yQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6NQogICAgLy8gb25lR2xvYmFsID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6IFVpbnQ2NCgxKSB9KQogICAgYnl0ZWNfMCAvLyAib25lR2xvYmFsIgogICAgaW50Y18xIC8vIDEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJvbmVHbG9iYWwiCgptYWluX2Jsb2NrQDA6CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAyCgptYWluX2lmX2JvZHlAMToKICAgIGNhbGxzdWIgY29uc3RydWN0b3IKCm1haW5fYWZ0ZXJfaWZfZWxzZUAyOgoKbWFpbl9ibG9ja0AzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI0LTI1CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczogeyBnbG9iYWxVaW50czogNCwgbG9jYWxVaW50czogMCB9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQ2xhc3NXaXRoRXhwbGljaXRUb3RhbHMgZXh0ZW5kcyBCYXNlV2l0aFN0YXRlIHt9CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A4CgptYWluX2FiaV9yb3V0aW5nQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MjQtMjUKICAgIC8vIEBjb250cmFjdCh7IHN0YXRlVG90YWxzOiB7IGdsb2JhbFVpbnRzOiA0LCBsb2NhbFVpbnRzOiAwIH0gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscyBleHRlbmRzIEJhc2VXaXRoU3RhdGUge30KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweDJjZDk1YWExIC8vIG1ldGhvZCAic2V0U3RhdGUodWludDY0KXZvaWQiCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3NldFN0YXRlX3JvdXRlQDUKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA2OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDc6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MjQtMjUKICAgIC8vIEBjb250cmFjdCh7IHN0YXRlVG90YWxzOiB7IGdsb2JhbFVpbnRzOiA0LCBsb2NhbFVpbnRzOiAwIH0gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscyBleHRlbmRzIEJhc2VXaXRoU3RhdGUge30KICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMzoKICAgIHJldHVybgoKbWFpbl9zZXRTdGF0ZV9yb3V0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjkKICAgIC8vIHNldFN0YXRlKG46IHVpbnQ2NCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI0LTI1CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczogeyBnbG9iYWxVaW50czogNCwgbG9jYWxVaW50czogMCB9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQ2xhc3NXaXRoRXhwbGljaXRUb3RhbHMgZXh0ZW5kcyBCYXNlV2l0aFN0YXRlIHt9CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OQogICAgLy8gc2V0U3RhdGUobjogdWludDY0KSB7CiAgICBjYWxsc3ViIHNldFN0YXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscy5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKbWFpbl9iYXJlX3JvdXRpbmdAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoyNC0yNQogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHsgZ2xvYmFsVWludHM6IDQsIGxvY2FsVWludHM6IDAgfSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkNsYXNzV2l0aEV4cGxpY2l0VG90YWxzIGV4dGVuZHMgQmFzZVdpdGhTdGF0ZSB7fQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDkKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjI0LTI1CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczogeyBnbG9iYWxVaW50czogNCwgbG9jYWxVaW50czogMCB9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQ2xhc3NXaXRoRXhwbGljaXRUb3RhbHMgZXh0ZW5kcyBCYXNlV2l0aFN0YXRlIHt9CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6U3ViQ2xhc3NXaXRoRXhwbGljaXRUb3RhbHMuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuc2V0U3RhdGUobjogdWludDY0KSAtPiB2b2lkOgpzZXRTdGF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo5CiAgICAvLyBzZXRTdGF0ZShuOiB1aW50NjQpIHsKICAgIHByb3RvIDEgMAoKc2V0U3RhdGVfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo1CiAgICAvLyBvbmVHbG9iYWwgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogVWludDY0KDEpIH0pCiAgICBieXRlY18wIC8vICJvbmVHbG9iYWwiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTAKICAgIC8vIHRoaXMub25lR2xvYmFsLnZhbHVlID0gbgogICAgZnJhbWVfZGlnIC0xCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjYKICAgIC8vIHR3b0dsb2JhbCA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oKQogICAgcHVzaGJ5dGVzICJ0d29HbG9iYWwiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTEKICAgIC8vIHRoaXMudHdvR2xvYmFsLnZhbHVlID0gbgogICAgZnJhbWVfZGlnIC0xCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpTdWJDbGFzc1dpdGhFeHBsaWNpdFRvdGFscy5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6QmFzZVdpdGhTdGF0ZS5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CmNvbnN0cnVjdG9yOgoKY29uc3RydWN0b3JfYmxvY2tAMDoKCmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgpjb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjUKICAgIC8vIG9uZUdsb2JhbCA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBVaW50NjQoMSkgfSkKICAgIGJ5dGVjXzAgLy8gIm9uZUdsb2JhbCIKICAgIGludGNfMSAvLyAxCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAEmAQlvbmVHbG9iYWwxGEAAA4gAWjEbIhNBACU2GgCABCzZWqFMjgEAAiJDMRkiEkQxGCITRDYaAReIABsjQv/qMRkiTI4BAANC/94xGCISRIgAGiNC/9OKAQAoi/9ngAl0d29HbG9iYWyL/2eJiSgjZ4k=", @@ -116,7 +116,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/state-totals/SubClassWithExplicitTotals.clear.teal b/tests/approvals/out/unoptimized/state-totals/SubClassWithExplicitTotals.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/state-totals/SubClassWithExplicitTotals.clear.teal +++ b/tests/approvals/out/unoptimized/state-totals/SubClassWithExplicitTotals.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/state-totals/SubClassWithState.approval.teal b/tests/approvals/out/unoptimized/state-totals/SubClassWithState.approval.teal index d0d6eb534..de69f638b 100644 --- a/tests/approvals/out/unoptimized/state-totals/SubClassWithState.approval.teal +++ b/tests/approvals/out/unoptimized/state-totals/SubClassWithState.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 bytecblock "oneGlobal" + +main_block@0: txn ApplicationID bnz main_after_if_else@2 @@ -92,6 +94,8 @@ setState: // tests/approvals/state-totals.algo.ts:18 // setState(n: uint64) { proto 1 0 + +setState_block@0: // tests/approvals/state-totals.algo.ts:19 // super.setState(n) frame_dig -1 @@ -111,6 +115,8 @@ tests/approvals/state-totals.algo.ts::BaseWithState.setState: // tests/approvals/state-totals.algo.ts:9 // setState(n: uint64) { proto 1 0 + +tests/approvals/state-totals.algo.ts::BaseWithState.setState_block@0: // tests/approvals/state-totals.algo.ts:5 // oneGlobal = GlobalState({ initialValue: Uint64(1) }) bytec_0 // "oneGlobal" @@ -130,12 +136,16 @@ tests/approvals/state-totals.algo.ts::BaseWithState.setState: // tests/approvals/state-totals.algo.ts::SubClassWithState.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub // tests/approvals/state-totals.algo.ts::BaseWithState.constructor() -> void: constructor: +constructor_block@0: + constructor_block@1: constructor_after_inlined_@algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.constructor@2: diff --git a/tests/approvals/out/unoptimized/state-totals/SubClassWithState.arc32.json b/tests/approvals/out/unoptimized/state-totals/SubClassWithState.arc32.json index ec0d9db2b..da235a631 100644 --- a/tests/approvals/out/unoptimized/state-totals/SubClassWithState.arc32.json +++ b/tests/approvals/out/unoptimized/state-totals/SubClassWithState.arc32.json @@ -7,8 +7,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJvbmVHbG9iYWwiCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAyCgptYWluX2lmX2JvZHlAMToKICAgIGNhbGxzdWIgY29uc3RydWN0b3IKCm1haW5fYWZ0ZXJfaWZfZWxzZUAyOgoKbWFpbl9ibG9ja0AzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjE1CiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQ2xhc3NXaXRoU3RhdGUgZXh0ZW5kcyBCYXNlV2l0aFN0YXRlIHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDgKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxNQogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkNsYXNzV2l0aFN0YXRlIGV4dGVuZHMgQmFzZVdpdGhTdGF0ZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgyY2Q5NWFhMSAvLyBtZXRob2QgInNldFN0YXRlKHVpbnQ2NCl2b2lkIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9zZXRTdGF0ZV9yb3V0ZUA1CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANjoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA3OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjE1CiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQ2xhc3NXaXRoU3RhdGUgZXh0ZW5kcyBCYXNlV2l0aFN0YXRlIHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpTdWJDbGFzc1dpdGhTdGF0ZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMzoKICAgIHJldHVybgoKbWFpbl9zZXRTdGF0ZV9yb3V0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjE4CiAgICAvLyBzZXRTdGF0ZShuOiB1aW50NjQpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxNQogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkNsYXNzV2l0aFN0YXRlIGV4dGVuZHMgQmFzZVdpdGhTdGF0ZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTgKICAgIC8vIHNldFN0YXRlKG46IHVpbnQ2NCkgewogICAgY2FsbHN1YiBzZXRTdGF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6U3ViQ2xhc3NXaXRoU3RhdGUuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fYmFyZV9yb3V0aW5nQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTUKICAgIC8vIGV4cG9ydCBjbGFzcyBTdWJDbGFzc1dpdGhTdGF0ZSBleHRlbmRzIEJhc2VXaXRoU3RhdGUgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDkKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjE1CiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQ2xhc3NXaXRoU3RhdGUgZXh0ZW5kcyBCYXNlV2l0aFN0YXRlIHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpTdWJDbGFzc1dpdGhTdGF0ZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKCi8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6U3ViQ2xhc3NXaXRoU3RhdGUuc2V0U3RhdGUobjogdWludDY0KSAtPiB2b2lkOgpzZXRTdGF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxOAogICAgLy8gc2V0U3RhdGUobjogdWludDY0KSB7CiAgICBwcm90byAxIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxOQogICAgLy8gc3VwZXIuc2V0U3RhdGUobikKICAgIGZyYW1lX2RpZyAtMQogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuc2V0U3RhdGUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxNgogICAgLy8gdGhyZWVHbG9iYWwgPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KCkKICAgIHB1c2hieXRlcyAidGhyZWVHbG9iYWwiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MjAKICAgIC8vIHRoaXMudGhyZWVHbG9iYWwudmFsdWUgPSBuCiAgICBmcmFtZV9kaWcgLTEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuc2V0U3RhdGUobjogdWludDY0KSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuc2V0U3RhdGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OQogICAgLy8gc2V0U3RhdGUobjogdWludDY0KSB7CiAgICBwcm90byAxIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo1CiAgICAvLyBvbmVHbG9iYWwgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogVWludDY0KDEpIH0pCiAgICBieXRlY18wIC8vICJvbmVHbG9iYWwiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTAKICAgIC8vIHRoaXMub25lR2xvYmFsLnZhbHVlID0gbgogICAgZnJhbWVfZGlnIC0xCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjYKICAgIC8vIHR3b0dsb2JhbCA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oKQogICAgcHVzaGJ5dGVzICJ0d29HbG9iYWwiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTEKICAgIC8vIHRoaXMudHdvR2xvYmFsLnZhbHVlID0gbgogICAgZnJhbWVfZGlnIC0xCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpTdWJDbGFzc1dpdGhTdGF0ZS5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuY29uc3RydWN0b3IoKSAtPiB2b2lkOgpjb25zdHJ1Y3RvcjoKCmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgpjb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjUKICAgIC8vIG9uZUdsb2JhbCA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBVaW50NjQoMSkgfSkKICAgIGJ5dGVjXzAgLy8gIm9uZUdsb2JhbCIKICAgIGludGNfMSAvLyAxCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJvbmVHbG9iYWwiCgptYWluX2Jsb2NrQDA6CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAyCgptYWluX2lmX2JvZHlAMToKICAgIGNhbGxzdWIgY29uc3RydWN0b3IKCm1haW5fYWZ0ZXJfaWZfZWxzZUAyOgoKbWFpbl9ibG9ja0AzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjE1CiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQ2xhc3NXaXRoU3RhdGUgZXh0ZW5kcyBCYXNlV2l0aFN0YXRlIHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDgKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxNQogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkNsYXNzV2l0aFN0YXRlIGV4dGVuZHMgQmFzZVdpdGhTdGF0ZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgyY2Q5NWFhMSAvLyBtZXRob2QgInNldFN0YXRlKHVpbnQ2NCl2b2lkIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9zZXRTdGF0ZV9yb3V0ZUA1CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANjoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA3OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjE1CiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQ2xhc3NXaXRoU3RhdGUgZXh0ZW5kcyBCYXNlV2l0aFN0YXRlIHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpTdWJDbGFzc1dpdGhTdGF0ZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMzoKICAgIHJldHVybgoKbWFpbl9zZXRTdGF0ZV9yb3V0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjE4CiAgICAvLyBzZXRTdGF0ZShuOiB1aW50NjQpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxNQogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkNsYXNzV2l0aFN0YXRlIGV4dGVuZHMgQmFzZVdpdGhTdGF0ZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTgKICAgIC8vIHNldFN0YXRlKG46IHVpbnQ2NCkgewogICAgY2FsbHN1YiBzZXRTdGF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6U3ViQ2xhc3NXaXRoU3RhdGUuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fYmFyZV9yb3V0aW5nQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTUKICAgIC8vIGV4cG9ydCBjbGFzcyBTdWJDbGFzc1dpdGhTdGF0ZSBleHRlbmRzIEJhc2VXaXRoU3RhdGUgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDkKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjE1CiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQ2xhc3NXaXRoU3RhdGUgZXh0ZW5kcyBCYXNlV2l0aFN0YXRlIHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpTdWJDbGFzc1dpdGhTdGF0ZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKCi8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6U3ViQ2xhc3NXaXRoU3RhdGUuc2V0U3RhdGUobjogdWludDY0KSAtPiB2b2lkOgpzZXRTdGF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxOAogICAgLy8gc2V0U3RhdGUobjogdWludDY0KSB7CiAgICBwcm90byAxIDAKCnNldFN0YXRlX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTkKICAgIC8vIHN1cGVyLnNldFN0YXRlKG4pCiAgICBmcmFtZV9kaWcgLTEKICAgIGNhbGxzdWIgdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpCYXNlV2l0aFN0YXRlLnNldFN0YXRlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTYKICAgIC8vIHRocmVlR2xvYmFsID0gR2xvYmFsU3RhdGU8dWludDY0PigpCiAgICBwdXNoYnl0ZXMgInRocmVlR2xvYmFsIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjIwCiAgICAvLyB0aGlzLnRocmVlR2xvYmFsLnZhbHVlID0gbgogICAgZnJhbWVfZGlnIC0xCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpCYXNlV2l0aFN0YXRlLnNldFN0YXRlKG46IHVpbnQ2NCkgLT4gdm9pZDoKdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpCYXNlV2l0aFN0YXRlLnNldFN0YXRlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjkKICAgIC8vIHNldFN0YXRlKG46IHVpbnQ2NCkgewogICAgcHJvdG8gMSAwCgp0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuc2V0U3RhdGVfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo1CiAgICAvLyBvbmVHbG9iYWwgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogVWludDY0KDEpIH0pCiAgICBieXRlY18wIC8vICJvbmVHbG9iYWwiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTAKICAgIC8vIHRoaXMub25lR2xvYmFsLnZhbHVlID0gbgogICAgZnJhbWVfZGlnIC0xCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjYKICAgIC8vIHR3b0dsb2JhbCA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oKQogICAgcHVzaGJ5dGVzICJ0d29HbG9iYWwiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTEKICAgIC8vIHRoaXMudHdvR2xvYmFsLnZhbHVlID0gbgogICAgZnJhbWVfZGlnIC0xCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpTdWJDbGFzc1dpdGhTdGF0ZS5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6QmFzZVdpdGhTdGF0ZS5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CmNvbnN0cnVjdG9yOgoKY29uc3RydWN0b3JfYmxvY2tAMDoKCmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgpjb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjUKICAgIC8vIG9uZUdsb2JhbCA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBVaW50NjQoMSkgfSkKICAgIGJ5dGVjXzAgLy8gIm9uZUdsb2JhbCIKICAgIGludGNfMSAvLyAxCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/state-totals/SubClassWithState.arc56.json b/tests/approvals/out/unoptimized/state-totals/SubClassWithState.arc56.json index 0a91dc7be..1ca714b3c 100644 --- a/tests/approvals/out/unoptimized/state-totals/SubClassWithState.arc56.json +++ b/tests/approvals/out/unoptimized/state-totals/SubClassWithState.arc56.json @@ -114,8 +114,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJvbmVHbG9iYWwiCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAyCgptYWluX2lmX2JvZHlAMToKICAgIGNhbGxzdWIgY29uc3RydWN0b3IKCm1haW5fYWZ0ZXJfaWZfZWxzZUAyOgoKbWFpbl9ibG9ja0AzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjE1CiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQ2xhc3NXaXRoU3RhdGUgZXh0ZW5kcyBCYXNlV2l0aFN0YXRlIHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDgKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxNQogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkNsYXNzV2l0aFN0YXRlIGV4dGVuZHMgQmFzZVdpdGhTdGF0ZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgyY2Q5NWFhMSAvLyBtZXRob2QgInNldFN0YXRlKHVpbnQ2NCl2b2lkIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9zZXRTdGF0ZV9yb3V0ZUA1CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANjoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA3OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjE1CiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQ2xhc3NXaXRoU3RhdGUgZXh0ZW5kcyBCYXNlV2l0aFN0YXRlIHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpTdWJDbGFzc1dpdGhTdGF0ZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMzoKICAgIHJldHVybgoKbWFpbl9zZXRTdGF0ZV9yb3V0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjE4CiAgICAvLyBzZXRTdGF0ZShuOiB1aW50NjQpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxNQogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkNsYXNzV2l0aFN0YXRlIGV4dGVuZHMgQmFzZVdpdGhTdGF0ZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTgKICAgIC8vIHNldFN0YXRlKG46IHVpbnQ2NCkgewogICAgY2FsbHN1YiBzZXRTdGF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6U3ViQ2xhc3NXaXRoU3RhdGUuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fYmFyZV9yb3V0aW5nQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTUKICAgIC8vIGV4cG9ydCBjbGFzcyBTdWJDbGFzc1dpdGhTdGF0ZSBleHRlbmRzIEJhc2VXaXRoU3RhdGUgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDkKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjE1CiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQ2xhc3NXaXRoU3RhdGUgZXh0ZW5kcyBCYXNlV2l0aFN0YXRlIHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpTdWJDbGFzc1dpdGhTdGF0ZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKCi8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6U3ViQ2xhc3NXaXRoU3RhdGUuc2V0U3RhdGUobjogdWludDY0KSAtPiB2b2lkOgpzZXRTdGF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxOAogICAgLy8gc2V0U3RhdGUobjogdWludDY0KSB7CiAgICBwcm90byAxIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxOQogICAgLy8gc3VwZXIuc2V0U3RhdGUobikKICAgIGZyYW1lX2RpZyAtMQogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuc2V0U3RhdGUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxNgogICAgLy8gdGhyZWVHbG9iYWwgPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KCkKICAgIHB1c2hieXRlcyAidGhyZWVHbG9iYWwiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MjAKICAgIC8vIHRoaXMudGhyZWVHbG9iYWwudmFsdWUgPSBuCiAgICBmcmFtZV9kaWcgLTEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuc2V0U3RhdGUobjogdWludDY0KSAtPiB2b2lkOgp0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuc2V0U3RhdGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OQogICAgLy8gc2V0U3RhdGUobjogdWludDY0KSB7CiAgICBwcm90byAxIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo1CiAgICAvLyBvbmVHbG9iYWwgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogVWludDY0KDEpIH0pCiAgICBieXRlY18wIC8vICJvbmVHbG9iYWwiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTAKICAgIC8vIHRoaXMub25lR2xvYmFsLnZhbHVlID0gbgogICAgZnJhbWVfZGlnIC0xCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjYKICAgIC8vIHR3b0dsb2JhbCA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oKQogICAgcHVzaGJ5dGVzICJ0d29HbG9iYWwiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTEKICAgIC8vIHRoaXMudHdvR2xvYmFsLnZhbHVlID0gbgogICAgZnJhbWVfZGlnIC0xCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpTdWJDbGFzc1dpdGhTdGF0ZS5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuY29uc3RydWN0b3IoKSAtPiB2b2lkOgpjb25zdHJ1Y3RvcjoKCmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgpjb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjUKICAgIC8vIG9uZUdsb2JhbCA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBVaW50NjQoMSkgfSkKICAgIGJ5dGVjXzAgLy8gIm9uZUdsb2JhbCIKICAgIGludGNfMSAvLyAxCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrICJvbmVHbG9iYWwiCgptYWluX2Jsb2NrQDA6CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAyCgptYWluX2lmX2JvZHlAMToKICAgIGNhbGxzdWIgY29uc3RydWN0b3IKCm1haW5fYWZ0ZXJfaWZfZWxzZUAyOgoKbWFpbl9ibG9ja0AzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjE1CiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQ2xhc3NXaXRoU3RhdGUgZXh0ZW5kcyBCYXNlV2l0aFN0YXRlIHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDgKCm1haW5fYWJpX3JvdXRpbmdANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxNQogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkNsYXNzV2l0aFN0YXRlIGV4dGVuZHMgQmFzZVdpdGhTdGF0ZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgyY2Q5NWFhMSAvLyBtZXRob2QgInNldFN0YXRlKHVpbnQ2NCl2b2lkIgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9zZXRTdGF0ZV9yb3V0ZUA1CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRANjoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA3OgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjE1CiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQ2xhc3NXaXRoU3RhdGUgZXh0ZW5kcyBCYXNlV2l0aFN0YXRlIHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpTdWJDbGFzc1dpdGhTdGF0ZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMzoKICAgIHJldHVybgoKbWFpbl9zZXRTdGF0ZV9yb3V0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjE4CiAgICAvLyBzZXRTdGF0ZShuOiB1aW50NjQpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxNQogICAgLy8gZXhwb3J0IGNsYXNzIFN1YkNsYXNzV2l0aFN0YXRlIGV4dGVuZHMgQmFzZVdpdGhTdGF0ZSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTgKICAgIC8vIHNldFN0YXRlKG46IHVpbnQ2NCkgewogICAgY2FsbHN1YiBzZXRTdGF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6U3ViQ2xhc3NXaXRoU3RhdGUuX19wdXlhX2FyYzRfcm91dGVyX19AMTMKCm1haW5fYmFyZV9yb3V0aW5nQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTUKICAgIC8vIGV4cG9ydCBjbGFzcyBTdWJDbGFzc1dpdGhTdGF0ZSBleHRlbmRzIEJhc2VXaXRoU3RhdGUgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDkKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMDoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEyCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjE1CiAgICAvLyBleHBvcnQgY2xhc3MgU3ViQ2xhc3NXaXRoU3RhdGUgZXh0ZW5kcyBCYXNlV2l0aFN0YXRlIHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpTdWJDbGFzc1dpdGhTdGF0ZS5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMwoKCi8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6U3ViQ2xhc3NXaXRoU3RhdGUuc2V0U3RhdGUobjogdWludDY0KSAtPiB2b2lkOgpzZXRTdGF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czoxOAogICAgLy8gc2V0U3RhdGUobjogdWludDY0KSB7CiAgICBwcm90byAxIDAKCnNldFN0YXRlX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTkKICAgIC8vIHN1cGVyLnNldFN0YXRlKG4pCiAgICBmcmFtZV9kaWcgLTEKICAgIGNhbGxzdWIgdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpCYXNlV2l0aFN0YXRlLnNldFN0YXRlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTYKICAgIC8vIHRocmVlR2xvYmFsID0gR2xvYmFsU3RhdGU8dWludDY0PigpCiAgICBwdXNoYnl0ZXMgInRocmVlR2xvYmFsIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjIwCiAgICAvLyB0aGlzLnRocmVlR2xvYmFsLnZhbHVlID0gbgogICAgZnJhbWVfZGlnIC0xCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpCYXNlV2l0aFN0YXRlLnNldFN0YXRlKG46IHVpbnQ2NCkgLT4gdm9pZDoKdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpCYXNlV2l0aFN0YXRlLnNldFN0YXRlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjkKICAgIC8vIHNldFN0YXRlKG46IHVpbnQ2NCkgewogICAgcHJvdG8gMSAwCgp0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6OkJhc2VXaXRoU3RhdGUuc2V0U3RhdGVfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo1CiAgICAvLyBvbmVHbG9iYWwgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogVWludDY0KDEpIH0pCiAgICBieXRlY18wIC8vICJvbmVHbG9iYWwiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTAKICAgIC8vIHRoaXMub25lR2xvYmFsLnZhbHVlID0gbgogICAgZnJhbWVfZGlnIC0xCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjYKICAgIC8vIHR3b0dsb2JhbCA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oKQogICAgcHVzaGJ5dGVzICJ0d29HbG9iYWwiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RhdGUtdG90YWxzLmFsZ28udHM6MTEKICAgIC8vIHRoaXMudHdvR2xvYmFsLnZhbHVlID0gbgogICAgZnJhbWVfZGlnIC0xCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjpTdWJDbGFzc1dpdGhTdGF0ZS5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9zdGF0ZS10b3RhbHMuYWxnby50czo6QmFzZVdpdGhTdGF0ZS5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CmNvbnN0cnVjdG9yOgoKY29uc3RydWN0b3JfYmxvY2tAMDoKCmNvbnN0cnVjdG9yX2Jsb2NrQDE6Cgpjb25zdHJ1Y3Rvcl9hZnRlcl9pbmxpbmVkX0BhbGdvcmFuZGZvdW5kYXRpb24vYWxnb3JhbmQtdHlwZXNjcmlwdC9iYXNlLWNvbnRyYWN0LmQudHM6OkJhc2VDb250cmFjdC5jb25zdHJ1Y3RvckAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0YXRlLXRvdGFscy5hbGdvLnRzOjUKICAgIC8vIG9uZUdsb2JhbCA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBVaW50NjQoMSkgfSkKICAgIGJ5dGVjXzAgLy8gIm9uZUdsb2JhbCIKICAgIGludGNfMSAvLyAxCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAEmAQlvbmVHbG9iYWwxGEAAA4gAczEbIhNBACU2GgCABCzZWqFMjgEAAiJDMRkiEkQxGCITRDYaAReIABsjQv/qMRkiTI4BAANC/94xGCISRIgAMyNC/9OKAQCL/4gAEYALdGhyZWVHbG9iYWyL/2eJigEAKIv/Z4AJdHdvR2xvYmFsi/9niYkoI2eJ", @@ -126,7 +126,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/state-totals/SubClassWithState.clear.teal b/tests/approvals/out/unoptimized/state-totals/SubClassWithState.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/state-totals/SubClassWithState.clear.teal +++ b/tests/approvals/out/unoptimized/state-totals/SubClassWithState.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/strings/StringContract.approval.teal b/tests/approvals/out/unoptimized/strings/StringContract.approval.teal index 5f927fa53..b8e798d29 100644 --- a/tests/approvals/out/unoptimized/strings/StringContract.approval.teal +++ b/tests/approvals/out/unoptimized/strings/StringContract.approval.teal @@ -6,6 +6,8 @@ main: intcblock 0 1 bytecblock 0x151f7c75 +main_block@0: + main_block@1: // tests/approvals/strings.algo.ts:3 // class StringContract extends Contract { @@ -129,6 +131,8 @@ join: // tests/approvals/strings.algo.ts:4 // join(a: string, b: string): string { proto 2 1 + +join_block@0: // tests/approvals/strings.algo.ts:5 // return a + b frame_dig -2 @@ -142,6 +146,8 @@ interpolate: // tests/approvals/strings.algo.ts:8 // interpolate(a: string): string { proto 1 1 + +interpolate_block@0: // tests/approvals/strings.algo.ts:9 // return `You interpolated ${a}` pushbytes "You interpolated " @@ -152,4 +158,6 @@ interpolate: // tests/approvals/strings.algo.ts::StringContract.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/strings/StringContract.arc32.json b/tests/approvals/out/unoptimized/strings/StringContract.arc32.json index 1d78979a0..fc85dbf87 100644 --- a/tests/approvals/out/unoptimized/strings/StringContract.arc32.json +++ b/tests/approvals/out/unoptimized/strings/StringContract.arc32.json @@ -12,8 +12,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdHJpbmdzLmFsZ28udHM6MwogICAgLy8gY2xhc3MgU3RyaW5nQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A3CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjMKICAgIC8vIGNsYXNzIFN0cmluZ0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4NTA0OWJkMWIgLy8gbWV0aG9kICJqb2luKHN0cmluZyxzdHJpbmcpc3RyaW5nIgogICAgcHVzaGJ5dGVzIDB4ZGM4ODJlMmYgLy8gbWV0aG9kICJpbnRlcnBvbGF0ZShzdHJpbmcpc3RyaW5nIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX2pvaW5fcm91dGVAMyBtYWluX2ludGVycG9sYXRlX3JvdXRlQDQKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDY6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjMKICAgIC8vIGNsYXNzIFN0cmluZ0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjpTdHJpbmdDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMjoKICAgIHJldHVybgoKbWFpbl9pbnRlcnBvbGF0ZV9yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czo4CiAgICAvLyBpbnRlcnBvbGF0ZShhOiBzdHJpbmcpOiBzdHJpbmcgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czozCiAgICAvLyBjbGFzcyBTdHJpbmdDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGV4dHJhY3QgMiAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjgKICAgIC8vIGludGVycG9sYXRlKGE6IHN0cmluZyk6IHN0cmluZyB7CiAgICBjYWxsc3ViIGludGVycG9sYXRlCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9zdHJpbmdzLmFsZ28udHM6OlN0cmluZ0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX2pvaW5fcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdHJpbmdzLmFsZ28udHM6NAogICAgLy8gam9pbihhOiBzdHJpbmcsIGI6IHN0cmluZyk6IHN0cmluZyB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjMKICAgIC8vIGNsYXNzIFN0cmluZ0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGV4dHJhY3QgMiAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjQKICAgIC8vIGpvaW4oYTogc3RyaW5nLCBiOiBzdHJpbmcpOiBzdHJpbmcgewogICAgY2FsbHN1YiBqb2luCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9zdHJpbmdzLmFsZ28udHM6OlN0cmluZ0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX2JhcmVfcm91dGluZ0A3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czozCiAgICAvLyBjbGFzcyBTdHJpbmdDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAOToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDExCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czozCiAgICAvLyBjbGFzcyBTdHJpbmdDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czo6U3RyaW5nQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjpTdHJpbmdDb250cmFjdC5qb2luKGE6IGJ5dGVzLCBiOiBieXRlcykgLT4gYnl0ZXM6CmpvaW46CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjQKICAgIC8vIGpvaW4oYTogc3RyaW5nLCBiOiBzdHJpbmcpOiBzdHJpbmcgewogICAgcHJvdG8gMiAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjUKICAgIC8vIHJldHVybiBhICsgYgogICAgZnJhbWVfZGlnIC0yCiAgICBmcmFtZV9kaWcgLTEKICAgIGNvbmNhdAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czo6U3RyaW5nQ29udHJhY3QuaW50ZXJwb2xhdGUoYTogYnl0ZXMpIC0+IGJ5dGVzOgppbnRlcnBvbGF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdHJpbmdzLmFsZ28udHM6OAogICAgLy8gaW50ZXJwb2xhdGUoYTogc3RyaW5nKTogc3RyaW5nIHsKICAgIHByb3RvIDEgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czo5CiAgICAvLyByZXR1cm4gYFlvdSBpbnRlcnBvbGF0ZWQgJHthfWAKICAgIHB1c2hieXRlcyAiWW91IGludGVycG9sYXRlZCAiCiAgICBmcmFtZV9kaWcgLTEKICAgIGNvbmNhdAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czo6U3RyaW5nQ29udHJhY3QuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMDoKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdHJpbmdzLmFsZ28udHM6MwogICAgLy8gY2xhc3MgU3RyaW5nQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A3CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjMKICAgIC8vIGNsYXNzIFN0cmluZ0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4NTA0OWJkMWIgLy8gbWV0aG9kICJqb2luKHN0cmluZyxzdHJpbmcpc3RyaW5nIgogICAgcHVzaGJ5dGVzIDB4ZGM4ODJlMmYgLy8gbWV0aG9kICJpbnRlcnBvbGF0ZShzdHJpbmcpc3RyaW5nIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX2pvaW5fcm91dGVAMyBtYWluX2ludGVycG9sYXRlX3JvdXRlQDQKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDY6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjMKICAgIC8vIGNsYXNzIFN0cmluZ0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjpTdHJpbmdDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMjoKICAgIHJldHVybgoKbWFpbl9pbnRlcnBvbGF0ZV9yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czo4CiAgICAvLyBpbnRlcnBvbGF0ZShhOiBzdHJpbmcpOiBzdHJpbmcgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czozCiAgICAvLyBjbGFzcyBTdHJpbmdDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGV4dHJhY3QgMiAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjgKICAgIC8vIGludGVycG9sYXRlKGE6IHN0cmluZyk6IHN0cmluZyB7CiAgICBjYWxsc3ViIGludGVycG9sYXRlCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9zdHJpbmdzLmFsZ28udHM6OlN0cmluZ0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX2pvaW5fcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdHJpbmdzLmFsZ28udHM6NAogICAgLy8gam9pbihhOiBzdHJpbmcsIGI6IHN0cmluZyk6IHN0cmluZyB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjMKICAgIC8vIGNsYXNzIFN0cmluZ0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGV4dHJhY3QgMiAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjQKICAgIC8vIGpvaW4oYTogc3RyaW5nLCBiOiBzdHJpbmcpOiBzdHJpbmcgewogICAgY2FsbHN1YiBqb2luCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9zdHJpbmdzLmFsZ28udHM6OlN0cmluZ0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX2JhcmVfcm91dGluZ0A3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czozCiAgICAvLyBjbGFzcyBTdHJpbmdDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAOToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDExCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czozCiAgICAvLyBjbGFzcyBTdHJpbmdDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czo6U3RyaW5nQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjpTdHJpbmdDb250cmFjdC5qb2luKGE6IGJ5dGVzLCBiOiBieXRlcykgLT4gYnl0ZXM6CmpvaW46CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjQKICAgIC8vIGpvaW4oYTogc3RyaW5nLCBiOiBzdHJpbmcpOiBzdHJpbmcgewogICAgcHJvdG8gMiAxCgpqb2luX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjUKICAgIC8vIHJldHVybiBhICsgYgogICAgZnJhbWVfZGlnIC0yCiAgICBmcmFtZV9kaWcgLTEKICAgIGNvbmNhdAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czo6U3RyaW5nQ29udHJhY3QuaW50ZXJwb2xhdGUoYTogYnl0ZXMpIC0+IGJ5dGVzOgppbnRlcnBvbGF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdHJpbmdzLmFsZ28udHM6OAogICAgLy8gaW50ZXJwb2xhdGUoYTogc3RyaW5nKTogc3RyaW5nIHsKICAgIHByb3RvIDEgMQoKaW50ZXJwb2xhdGVfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdHJpbmdzLmFsZ28udHM6OQogICAgLy8gcmV0dXJuIGBZb3UgaW50ZXJwb2xhdGVkICR7YX1gCiAgICBwdXNoYnl0ZXMgIllvdSBpbnRlcnBvbGF0ZWQgIgogICAgZnJhbWVfZGlnIC0xCiAgICBjb25jYXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9zdHJpbmdzLmFsZ28udHM6OlN0cmluZ0NvbnRyYWN0Ll9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/strings/StringContract.arc56.json b/tests/approvals/out/unoptimized/strings/StringContract.arc56.json index 65e4c7078..f7d8c38f9 100644 --- a/tests/approvals/out/unoptimized/strings/StringContract.arc56.json +++ b/tests/approvals/out/unoptimized/strings/StringContract.arc56.json @@ -114,8 +114,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdHJpbmdzLmFsZ28udHM6MwogICAgLy8gY2xhc3MgU3RyaW5nQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A3CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjMKICAgIC8vIGNsYXNzIFN0cmluZ0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4NTA0OWJkMWIgLy8gbWV0aG9kICJqb2luKHN0cmluZyxzdHJpbmcpc3RyaW5nIgogICAgcHVzaGJ5dGVzIDB4ZGM4ODJlMmYgLy8gbWV0aG9kICJpbnRlcnBvbGF0ZShzdHJpbmcpc3RyaW5nIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX2pvaW5fcm91dGVAMyBtYWluX2ludGVycG9sYXRlX3JvdXRlQDQKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDY6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjMKICAgIC8vIGNsYXNzIFN0cmluZ0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjpTdHJpbmdDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMjoKICAgIHJldHVybgoKbWFpbl9pbnRlcnBvbGF0ZV9yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czo4CiAgICAvLyBpbnRlcnBvbGF0ZShhOiBzdHJpbmcpOiBzdHJpbmcgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czozCiAgICAvLyBjbGFzcyBTdHJpbmdDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGV4dHJhY3QgMiAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjgKICAgIC8vIGludGVycG9sYXRlKGE6IHN0cmluZyk6IHN0cmluZyB7CiAgICBjYWxsc3ViIGludGVycG9sYXRlCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9zdHJpbmdzLmFsZ28udHM6OlN0cmluZ0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX2pvaW5fcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdHJpbmdzLmFsZ28udHM6NAogICAgLy8gam9pbihhOiBzdHJpbmcsIGI6IHN0cmluZyk6IHN0cmluZyB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjMKICAgIC8vIGNsYXNzIFN0cmluZ0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGV4dHJhY3QgMiAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjQKICAgIC8vIGpvaW4oYTogc3RyaW5nLCBiOiBzdHJpbmcpOiBzdHJpbmcgewogICAgY2FsbHN1YiBqb2luCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9zdHJpbmdzLmFsZ28udHM6OlN0cmluZ0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX2JhcmVfcm91dGluZ0A3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czozCiAgICAvLyBjbGFzcyBTdHJpbmdDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAOToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDExCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czozCiAgICAvLyBjbGFzcyBTdHJpbmdDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czo6U3RyaW5nQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjpTdHJpbmdDb250cmFjdC5qb2luKGE6IGJ5dGVzLCBiOiBieXRlcykgLT4gYnl0ZXM6CmpvaW46CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjQKICAgIC8vIGpvaW4oYTogc3RyaW5nLCBiOiBzdHJpbmcpOiBzdHJpbmcgewogICAgcHJvdG8gMiAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjUKICAgIC8vIHJldHVybiBhICsgYgogICAgZnJhbWVfZGlnIC0yCiAgICBmcmFtZV9kaWcgLTEKICAgIGNvbmNhdAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czo6U3RyaW5nQ29udHJhY3QuaW50ZXJwb2xhdGUoYTogYnl0ZXMpIC0+IGJ5dGVzOgppbnRlcnBvbGF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdHJpbmdzLmFsZ28udHM6OAogICAgLy8gaW50ZXJwb2xhdGUoYTogc3RyaW5nKTogc3RyaW5nIHsKICAgIHByb3RvIDEgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czo5CiAgICAvLyByZXR1cm4gYFlvdSBpbnRlcnBvbGF0ZWQgJHthfWAKICAgIHB1c2hieXRlcyAiWW91IGludGVycG9sYXRlZCAiCiAgICBmcmFtZV9kaWcgLTEKICAgIGNvbmNhdAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czo6U3RyaW5nQ29udHJhY3QuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUKCm1haW5fYmxvY2tAMDoKCm1haW5fYmxvY2tAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdHJpbmdzLmFsZ28udHM6MwogICAgLy8gY2xhc3MgU3RyaW5nQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A3CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjMKICAgIC8vIGNsYXNzIFN0cmluZ0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4NTA0OWJkMWIgLy8gbWV0aG9kICJqb2luKHN0cmluZyxzdHJpbmcpc3RyaW5nIgogICAgcHVzaGJ5dGVzIDB4ZGM4ODJlMmYgLy8gbWV0aG9kICJpbnRlcnBvbGF0ZShzdHJpbmcpc3RyaW5nIgogICAgdW5jb3ZlciAyCiAgICBtYXRjaCBtYWluX2pvaW5fcm91dGVAMyBtYWluX2ludGVycG9sYXRlX3JvdXRlQDQKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA1OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDY6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjMKICAgIC8vIGNsYXNzIFN0cmluZ0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjpTdHJpbmdDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMjoKICAgIHJldHVybgoKbWFpbl9pbnRlcnBvbGF0ZV9yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czo4CiAgICAvLyBpbnRlcnBvbGF0ZShhOiBzdHJpbmcpOiBzdHJpbmcgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czozCiAgICAvLyBjbGFzcyBTdHJpbmdDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGV4dHJhY3QgMiAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjgKICAgIC8vIGludGVycG9sYXRlKGE6IHN0cmluZyk6IHN0cmluZyB7CiAgICBjYWxsc3ViIGludGVycG9sYXRlCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9zdHJpbmdzLmFsZ28udHM6OlN0cmluZ0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX2pvaW5fcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdHJpbmdzLmFsZ28udHM6NAogICAgLy8gam9pbihhOiBzdHJpbmcsIGI6IHN0cmluZyk6IHN0cmluZyB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjMKICAgIC8vIGNsYXNzIFN0cmluZ0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGV4dHJhY3QgMiAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjQKICAgIC8vIGpvaW4oYTogc3RyaW5nLCBiOiBzdHJpbmcpOiBzdHJpbmcgewogICAgY2FsbHN1YiBqb2luCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9zdHJpbmdzLmFsZ28udHM6OlN0cmluZ0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDEyCgptYWluX2JhcmVfcm91dGluZ0A3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czozCiAgICAvLyBjbGFzcyBTdHJpbmdDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAOToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMDoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDExCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czozCiAgICAvLyBjbGFzcyBTdHJpbmdDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czo6U3RyaW5nQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjpTdHJpbmdDb250cmFjdC5qb2luKGE6IGJ5dGVzLCBiOiBieXRlcykgLT4gYnl0ZXM6CmpvaW46CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjQKICAgIC8vIGpvaW4oYTogc3RyaW5nLCBiOiBzdHJpbmcpOiBzdHJpbmcgewogICAgcHJvdG8gMiAxCgpqb2luX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3RyaW5ncy5hbGdvLnRzOjUKICAgIC8vIHJldHVybiBhICsgYgogICAgZnJhbWVfZGlnIC0yCiAgICBmcmFtZV9kaWcgLTEKICAgIGNvbmNhdAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N0cmluZ3MuYWxnby50czo6U3RyaW5nQ29udHJhY3QuaW50ZXJwb2xhdGUoYTogYnl0ZXMpIC0+IGJ5dGVzOgppbnRlcnBvbGF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdHJpbmdzLmFsZ28udHM6OAogICAgLy8gaW50ZXJwb2xhdGUoYTogc3RyaW5nKTogc3RyaW5nIHsKICAgIHByb3RvIDEgMQoKaW50ZXJwb2xhdGVfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zdHJpbmdzLmFsZ28udHM6OQogICAgLy8gcmV0dXJuIGBZb3UgaW50ZXJwb2xhdGVkICR7YX1gCiAgICBwdXNoYnl0ZXMgIllvdSBpbnRlcnBvbGF0ZWQgIgogICAgZnJhbWVfZGlnIC0xCiAgICBjb25jYXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9zdHJpbmdzLmFsZ28udHM6OlN0cmluZ0NvbnRyYWN0Ll9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAEmAQQVH3x1MRsiE0EAZTYaAIAEUEm9G4AE3IguL08CjgIAJQACIkMxGSISRDEYIhNENhoBVwIAiABZSRUWVwYCTFAoTFCwI0L/3DEZIhJEMRgiE0Q2GgFXAgA2GgJXAgCIACdJFRZXBgJMUChMULAjQv+zMRkiTI4BAANC/6cxGCISRIgAJyNC/5yKAgGL/ov/UImKAQGAEVlvdSBpbnRlcnBvbGF0ZWQgi/9QiYk=", @@ -126,7 +126,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/strings/StringContract.clear.teal b/tests/approvals/out/unoptimized/strings/StringContract.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/strings/StringContract.clear.teal +++ b/tests/approvals/out/unoptimized/strings/StringContract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/super-calls/SubContract.approval.teal b/tests/approvals/out/unoptimized/super-calls/SubContract.approval.teal index 9e9725253..8179ac8e6 100644 --- a/tests/approvals/out/unoptimized/super-calls/SubContract.approval.teal +++ b/tests/approvals/out/unoptimized/super-calls/SubContract.approval.teal @@ -5,6 +5,8 @@ main: intcblock 1 0 2 bytecblock "g1" "g2" + +main_block@0: txn ApplicationID bnz main_after_if_else@2 @@ -42,6 +44,8 @@ main_after_if_else@2: // tests/approvals/super-calls.algo.ts::SubContract.constructor() -> void: constructor: + +constructor_block@0: // tests/approvals/super-calls.algo.ts:17 // export class SubContract extends SuperContract { callsub tests/approvals/super-calls.algo.ts::SuperContract.constructor @@ -56,6 +60,8 @@ constructor: // tests/approvals/super-calls.algo.ts::SuperContract.constructor() -> void: tests/approvals/super-calls.algo.ts::SuperContract.constructor: +tests/approvals/super-calls.algo.ts::SuperContract.constructor_block@0: + tests/approvals/super-calls.algo.ts::SuperContract.constructor_block@1: tests/approvals/super-calls.algo.ts::SuperContract.constructor_after_inlined_@algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.constructor@2: diff --git a/tests/approvals/out/unoptimized/super-calls/SubContract.clear.teal b/tests/approvals/out/unoptimized/super-calls/SubContract.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/super-calls/SubContract.clear.teal +++ b/tests/approvals/out/unoptimized/super-calls/SubContract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/super-calls/SubSubContract.approval.teal b/tests/approvals/out/unoptimized/super-calls/SubSubContract.approval.teal index 0d2c0fde9..b9937ed8b 100644 --- a/tests/approvals/out/unoptimized/super-calls/SubSubContract.approval.teal +++ b/tests/approvals/out/unoptimized/super-calls/SubSubContract.approval.teal @@ -5,6 +5,8 @@ main: intcblock 1 0 2 bytecblock "g1" "g2" + +main_block@0: txn ApplicationID bnz main_after_if_else@2 @@ -42,6 +44,8 @@ main_after_if_else@2: // tests/approvals/super-calls.algo.ts::SubContract.constructor() -> void: constructor: + +constructor_block@0: // tests/approvals/super-calls.algo.ts:17 // export class SubContract extends SuperContract { callsub tests/approvals/super-calls.algo.ts::SuperContract.constructor @@ -56,6 +60,8 @@ constructor: // tests/approvals/super-calls.algo.ts::SuperContract.constructor() -> void: tests/approvals/super-calls.algo.ts::SuperContract.constructor: +tests/approvals/super-calls.algo.ts::SuperContract.constructor_block@0: + tests/approvals/super-calls.algo.ts::SuperContract.constructor_block@1: tests/approvals/super-calls.algo.ts::SuperContract.constructor_after_inlined_@algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.constructor@2: diff --git a/tests/approvals/out/unoptimized/super-calls/SubSubContract.clear.teal b/tests/approvals/out/unoptimized/super-calls/SubSubContract.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/super-calls/SubSubContract.clear.teal +++ b/tests/approvals/out/unoptimized/super-calls/SubSubContract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/super-calls/SubSubSubContract.approval.teal b/tests/approvals/out/unoptimized/super-calls/SubSubSubContract.approval.teal index ab1322a4b..35e08ab71 100644 --- a/tests/approvals/out/unoptimized/super-calls/SubSubSubContract.approval.teal +++ b/tests/approvals/out/unoptimized/super-calls/SubSubSubContract.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 2 3 bytecblock "g1" "g2" "g3" + +main_block@0: txn ApplicationID bnz main_after_if_else@2 @@ -53,6 +55,8 @@ main_after_if_else@2: // tests/approvals/super-calls.algo.ts::SubSubSubContract.constructor() -> void: constructor: + +constructor_block@0: // tests/approvals/super-calls.algo.ts:38 // super() callsub tests/approvals/super-calls.algo.ts::SubContract.constructor @@ -68,6 +72,8 @@ constructor: // tests/approvals/super-calls.algo.ts::SubContract.constructor() -> void: tests/approvals/super-calls.algo.ts::SubContract.constructor: + +tests/approvals/super-calls.algo.ts::SubContract.constructor_block@0: // tests/approvals/super-calls.algo.ts:17 // export class SubContract extends SuperContract { callsub tests/approvals/super-calls.algo.ts::SuperContract.constructor @@ -82,6 +88,8 @@ tests/approvals/super-calls.algo.ts::SubContract.constructor: // tests/approvals/super-calls.algo.ts::SuperContract.constructor() -> void: tests/approvals/super-calls.algo.ts::SuperContract.constructor: +tests/approvals/super-calls.algo.ts::SuperContract.constructor_block@0: + tests/approvals/super-calls.algo.ts::SuperContract.constructor_block@1: tests/approvals/super-calls.algo.ts::SuperContract.constructor_after_inlined_@algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.constructor@2: diff --git a/tests/approvals/out/unoptimized/super-calls/SubSubSubContract.clear.teal b/tests/approvals/out/unoptimized/super-calls/SubSubSubContract.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/super-calls/SubSubSubContract.clear.teal +++ b/tests/approvals/out/unoptimized/super-calls/SubSubSubContract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/super-calls/SuperContract.approval.teal b/tests/approvals/out/unoptimized/super-calls/SuperContract.approval.teal index dd80141b8..ca23c83d7 100644 --- a/tests/approvals/out/unoptimized/super-calls/SuperContract.approval.teal +++ b/tests/approvals/out/unoptimized/super-calls/SuperContract.approval.teal @@ -4,6 +4,8 @@ // tests/approvals/super-calls.algo.ts::SuperContract.approvalProgram() -> uint64: main: bytecblock "g1" + +main_block@0: txn ApplicationID bnz main_after_if_else@2 @@ -31,6 +33,8 @@ main_after_if_else@2: // tests/approvals/super-calls.algo.ts::SuperContract.constructor() -> void: constructor: +constructor_block@0: + constructor_block@1: constructor_after_inlined_@algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.constructor@2: diff --git a/tests/approvals/out/unoptimized/super-calls/SuperContract.clear.teal b/tests/approvals/out/unoptimized/super-calls/SuperContract.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/super-calls/SuperContract.clear.teal +++ b/tests/approvals/out/unoptimized/super-calls/SuperContract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/switch-statements/DemoContract.approval.teal b/tests/approvals/out/unoptimized/switch-statements/DemoContract.approval.teal index fd92b5953..690f0b6b4 100644 --- a/tests/approvals/out/unoptimized/switch-statements/DemoContract.approval.teal +++ b/tests/approvals/out/unoptimized/switch-statements/DemoContract.approval.teal @@ -6,6 +6,8 @@ main: intcblock 1 0 3 2 bytecblock "hmmm" 0xff base64(ZHNmc2Rmc2Q=) base32(ONSGMZ3OMJTGOZDGMRSGM) +main_block@0: + main_block@1: // tests/approvals/switch-statements.algo.ts:4 // export class DemoContract extends Contract { @@ -76,6 +78,8 @@ main___algots__.defaultCreate@7: // tests/approvals/switch-statements.algo.ts::DemoContract.run() -> void: run: + +run_block@0: // tests/approvals/switch-statements.algo.ts:6 // assert(this.test_uint64(1) === 3) intc_0 // 1 @@ -173,6 +177,8 @@ test_uint64: // tests/approvals/switch-statements.algo.ts:24 // private test_uint64(x: uint64): uint64 { proto 1 1 + +test_uint64_block@0: // tests/approvals/switch-statements.algo.ts:26 // case 1: intc_0 // 1 @@ -231,6 +237,8 @@ test_break: // tests/approvals/switch-statements.algo.ts:36 // private test_break(x: uint64): uint64 { proto 1 1 + +test_break_block@0: // tests/approvals/switch-statements.algo.ts:37 // let i: uint64 = 10 pushint 10 // 10 @@ -318,6 +326,8 @@ test_bytes: // tests/approvals/switch-statements.algo.ts:50 // private test_bytes(x: bytes): boolean { proto 1 1 + +test_bytes_block@0: // tests/approvals/switch-statements.algo.ts:52 // case Bytes('hmmm'): bytec_0 // "hmmm" @@ -381,4 +391,6 @@ test_bytes_block@2: // tests/approvals/switch-statements.algo.ts::DemoContract.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/switch-statements/DemoContract.arc32.json b/tests/approvals/out/unoptimized/switch-statements/DemoContract.arc32.json index f3ad0eed7..aae4970c1 100644 --- a/tests/approvals/out/unoptimized/switch-statements/DemoContract.arc32.json +++ b/tests/approvals/out/unoptimized/switch-statements/DemoContract.arc32.json @@ -7,8 +7,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMSAwIDMgMgogICAgYnl0ZWNibG9jayAiaG1tbSIgMHhmZiBiYXNlNjQoWkhObWMyUm1jMlE9KSBiYXNlMzIoT05TR01aM09NSlRHT1pER01SU0dNKQoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzEgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhhNmZmOTQ0YSAvLyBtZXRob2QgInJ1bigpdm9pZCIKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fcnVuX3JvdXRlQDMKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA0OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDU6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18xIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX3J1bl9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NQogICAgLy8gcnVuKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18xIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18xIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBydW4KICAgIGludGNfMCAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMSAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMSAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMCAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6OkRlbW9Db250cmFjdC5ydW4oKSAtPiB2b2lkOgpydW46CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo2CiAgICAvLyBhc3NlcnQodGhpcy50ZXN0X3VpbnQ2NCgxKSA9PT0gMykKICAgIGludGNfMCAvLyAxCiAgICBjYWxsc3ViIHRlc3RfdWludDY0CiAgICBpbnRjXzIgLy8gMwogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NwogICAgLy8gYXNzZXJ0KHRoaXMudGVzdF91aW50NjQoMikgPT09IDMpCiAgICBpbnRjXzMgLy8gMgogICAgY2FsbHN1YiB0ZXN0X3VpbnQ2NAogICAgaW50Y18yIC8vIDMKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjgKICAgIC8vIGFzc2VydCh0aGlzLnRlc3RfdWludDY0KDMpID09PSAxKQogICAgaW50Y18yIC8vIDMKICAgIGNhbGxzdWIgdGVzdF91aW50NjQKICAgIGludGNfMCAvLyAxCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo5CiAgICAvLyBhc3NlcnQodGhpcy50ZXN0X3VpbnQ2NCg0KSA9PT0gMykKICAgIHB1c2hpbnQgNCAvLyA0CiAgICBjYWxsc3ViIHRlc3RfdWludDY0CiAgICBpbnRjXzIgLy8gMwogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MTEKICAgIC8vIGFzc2VydCh0aGlzLnRlc3RfYnJlYWsoMSkgPT09IDExKQogICAgaW50Y18wIC8vIDEKICAgIGNhbGxzdWIgdGVzdF9icmVhawogICAgcHVzaGludCAxMSAvLyAxMQogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MTIKICAgIC8vIGFzc2VydCh0aGlzLnRlc3RfYnJlYWsoMikgPT09IDEyKQogICAgaW50Y18zIC8vIDIKICAgIGNhbGxzdWIgdGVzdF9icmVhawogICAgcHVzaGludCAxMiAvLyAxMgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MTMKICAgIC8vIGFzc2VydCh0aGlzLnRlc3RfYnJlYWsoMykgPT09IDEwKQogICAgaW50Y18yIC8vIDMKICAgIGNhbGxzdWIgdGVzdF9icmVhawogICAgcHVzaGludCAxMCAvLyAxMAogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MTQKICAgIC8vIGFzc2VydCh0aGlzLnRlc3RfYnJlYWsoNCkgPT09IDE0KQogICAgcHVzaGludCA0IC8vIDQKICAgIGNhbGxzdWIgdGVzdF9icmVhawogICAgcHVzaGludCAxNCAvLyAxNAogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MTUKICAgIC8vIGFzc2VydCh0aGlzLnRlc3RfYnJlYWsoNSkgPT09IDUwKQogICAgcHVzaGludCA1IC8vIDUKICAgIGNhbGxzdWIgdGVzdF9icmVhawogICAgcHVzaGludCA1MCAvLyA1MAogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MTcKICAgIC8vIGFzc2VydCh0aGlzLnRlc3RfYnl0ZXMoQnl0ZXMoJ2htbW0nKSkpCiAgICBieXRlY18wIC8vICJobW1tIgogICAgY2FsbHN1YiB0ZXN0X2J5dGVzCiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjE4CiAgICAvLyBhc3NlcnQodGhpcy50ZXN0X2J5dGVzKEJ5dGVzLmZyb21IZXgoJ2ZmJykpKQogICAgYnl0ZWNfMSAvLyAweGZmCiAgICBjYWxsc3ViIHRlc3RfYnl0ZXMKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MTkKICAgIC8vIGFzc2VydCh0aGlzLnRlc3RfYnl0ZXMoQnl0ZXMuZnJvbUJhc2U2NCgnWkhObWMyUm1jMlE9JykpKQogICAgYnl0ZWNfMiAvLyBiYXNlNjQoWkhObWMyUm1jMlE9KQogICAgY2FsbHN1YiB0ZXN0X2J5dGVzCiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjIwCiAgICAvLyBhc3NlcnQodGhpcy50ZXN0X2J5dGVzKEJ5dGVzLmZyb21CYXNlMzIoJ09OU0dNWjNPTUpUR09aREdNUlNHTT09PScpKSkKICAgIGJ5dGVjXzMgLy8gYmFzZTMyKE9OU0dNWjNPTUpUR09aREdNUlNHTSkKICAgIGNhbGxzdWIgdGVzdF9ieXRlcwogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoyMQogICAgLy8gYXNzZXJ0KCF0aGlzLnRlc3RfYnl0ZXMoQnl0ZXMoKSkpCiAgICBwdXNoYnl0ZXMgMHgKICAgIGNhbGxzdWIgdGVzdF9ieXRlcwogICAgIQogICAgYXNzZXJ0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo6RGVtb0NvbnRyYWN0LnRlc3RfdWludDY0KHg6IHVpbnQ2NCkgLT4gdWludDY0Ogp0ZXN0X3VpbnQ2NDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjI0CiAgICAvLyBwcml2YXRlIHRlc3RfdWludDY0KHg6IHVpbnQ2NCk6IHVpbnQ2NCB7CiAgICBwcm90byAxIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjI2CiAgICAvLyBjYXNlIDE6CiAgICBpbnRjXzAgLy8gMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MjcKICAgIC8vIGNhc2UgMjoKICAgIGludGNfMyAvLyAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoyOAogICAgLy8gY2FzZSBVaW50NjQoNCk6CiAgICBwdXNoaW50IDQgLy8gNAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MjUtMzMKICAgIC8vIHN3aXRjaCAoeCkgewogICAgLy8gICBjYXNlIDE6CiAgICAvLyAgIGNhc2UgMjoKICAgIC8vICAgY2FzZSBVaW50NjQoNCk6CiAgICAvLyAgICAgcmV0dXJuIDMKICAgIC8vICAgZGVmYXVsdDogewogICAgLy8gICAgIHJldHVybiAxCiAgICAvLyAgIH0KICAgIC8vIH0KICAgIGZyYW1lX2RpZyAtMQogICAgbWF0Y2ggdGVzdF91aW50NjRfc3dpdGNoX2Nhc2VfMEAxIHRlc3RfdWludDY0X3N3aXRjaF9jYXNlXzFAMyB0ZXN0X3VpbnQ2NF9zd2l0Y2hfY2FzZV8yQDUKCnRlc3RfdWludDY0X3N3aXRjaF9jYXNlX2RlZmF1bHRANzoKCnRlc3RfdWludDY0X2Jsb2NrQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czozMQogICAgLy8gcmV0dXJuIDEKICAgIGludGNfMCAvLyAxCiAgICByZXRzdWIKCnRlc3RfdWludDY0X3N3aXRjaF9jYXNlXzJANToKCnRlc3RfdWludDY0X2Jsb2NrQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoyOQogICAgLy8gcmV0dXJuIDMKICAgIGludGNfMiAvLyAzCiAgICByZXRzdWIKCnRlc3RfdWludDY0X3N3aXRjaF9jYXNlXzFAMzoKCnRlc3RfdWludDY0X2Jsb2NrQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoyNwogICAgLy8gY2FzZSAyOgogICAgYiB0ZXN0X3VpbnQ2NF9ibG9ja0A2Cgp0ZXN0X3VpbnQ2NF9zd2l0Y2hfY2FzZV8wQDE6Cgp0ZXN0X3VpbnQ2NF9ibG9ja0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MjYKICAgIC8vIGNhc2UgMToKICAgIGIgdGVzdF91aW50NjRfYmxvY2tANAoKCi8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjpEZW1vQ29udHJhY3QudGVzdF9icmVhayh4OiB1aW50NjQpIC0+IHVpbnQ2NDoKdGVzdF9icmVhazoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjM2CiAgICAvLyBwcml2YXRlIHRlc3RfYnJlYWsoeDogdWludDY0KTogdWludDY0IHsKICAgIHByb3RvIDEgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MzcKICAgIC8vIGxldCBpOiB1aW50NjQgPSAxMAogICAgcHVzaGludCAxMCAvLyAxMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MzkKICAgIC8vIGNhc2UgMToKICAgIGludGNfMCAvLyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo0MAogICAgLy8gY2FzZSAyOgogICAgaW50Y18zIC8vIDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjQxCiAgICAvLyBjYXNlIFVpbnQ2NCg0KToKICAgIHB1c2hpbnQgNCAvLyA0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo0NAogICAgLy8gY2FzZSA1OgogICAgcHVzaGludCA1IC8vIDUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjM4LTQ2CiAgICAvLyBzd2l0Y2ggKHgpIHsKICAgIC8vICAgY2FzZSAxOgogICAgLy8gICBjYXNlIDI6CiAgICAvLyAgIGNhc2UgVWludDY0KDQpOgogICAgLy8gICAgIGkgKz0geAogICAgLy8gICAgIGJyZWFrCiAgICAvLyAgIGNhc2UgNToKICAgIC8vICAgICBpICo9IHgKICAgIC8vIH0KICAgIGZyYW1lX2RpZyAtMQogICAgbWF0Y2ggdGVzdF9icmVha19zd2l0Y2hfY2FzZV8wQDEgdGVzdF9icmVha19zd2l0Y2hfY2FzZV8xQDMgdGVzdF9icmVha19zd2l0Y2hfY2FzZV8yQDUgdGVzdF9icmVha19zd2l0Y2hfY2FzZV8zQDcKCnRlc3RfYnJlYWtfc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKdGVzdF9icmVha19zd2l0Y2hfY2FzZV9uZXh0QDEwOgoKdGVzdF9icmVha19ibG9ja0AxMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjQ3CiAgICAvLyByZXR1cm4gaQogICAgZnJhbWVfZGlnIDAKICAgIHN3YXAKICAgIHJldHN1YgoKdGVzdF9icmVha19zd2l0Y2hfY2FzZV8zQDc6Cgp0ZXN0X2JyZWFrX2Jsb2NrQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czozNwogICAgLy8gbGV0IGk6IHVpbnQ2NCA9IDEwCiAgICBwdXNoaW50IDEwIC8vIDEwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo0NQogICAgLy8gaSAqPSB4CiAgICBmcmFtZV9kaWcgLTEKICAgICoKICAgIGZyYW1lX2J1cnkgMAogICAgYiB0ZXN0X2JyZWFrX3N3aXRjaF9jYXNlX25leHRAMTAKCnRlc3RfYnJlYWtfc3dpdGNoX2Nhc2VfMkA1OgoKdGVzdF9icmVha19ibG9ja0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MzcKICAgIC8vIGxldCBpOiB1aW50NjQgPSAxMAogICAgcHVzaGludCAxMCAvLyAxMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NDIKICAgIC8vIGkgKz0geAogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjQzCiAgICAvLyBicmVhawogICAgYiB0ZXN0X2JyZWFrX2Jsb2NrQDExCgp0ZXN0X2JyZWFrX3N3aXRjaF9jYXNlXzFAMzoKCnRlc3RfYnJlYWtfYmxvY2tANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjQwCiAgICAvLyBjYXNlIDI6CiAgICBiIHRlc3RfYnJlYWtfYmxvY2tANgoKdGVzdF9icmVha19zd2l0Y2hfY2FzZV8wQDE6Cgp0ZXN0X2JyZWFrX2Jsb2NrQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czozOQogICAgLy8gY2FzZSAxOgogICAgYiB0ZXN0X2JyZWFrX2Jsb2NrQDQKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo6RGVtb0NvbnRyYWN0LnRlc3RfYnl0ZXMoeDogYnl0ZXMpIC0+IHVpbnQ2NDoKdGVzdF9ieXRlczoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjUwCiAgICAvLyBwcml2YXRlIHRlc3RfYnl0ZXMoeDogYnl0ZXMpOiBib29sZWFuIHsKICAgIHByb3RvIDEgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NTIKICAgIC8vIGNhc2UgQnl0ZXMoJ2htbW0nKToKICAgIGJ5dGVjXzAgLy8gImhtbW0iCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo1MwogICAgLy8gY2FzZSBCeXRlcy5mcm9tSGV4KCdGZicpOgogICAgYnl0ZWNfMSAvLyAweGZmCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo1NAogICAgLy8gY2FzZSBCeXRlcy5mcm9tQmFzZTY0KCdaSE5tYzJSbWMyUT0nKToKICAgIGJ5dGVjXzIgLy8gYmFzZTY0KFpITm1jMlJtYzJRPSkKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjU1CiAgICAvLyBjYXNlIEJ5dGVzLmZyb21CYXNlMzIoJ09OU0dNWjNPTUpUR09aREdNUlNHTT09PScpOgogICAgYnl0ZWNfMyAvLyBiYXNlMzIoT05TR01aM09NSlRHT1pER01SU0dNKQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NTEtNTcKICAgIC8vIHN3aXRjaCAoeCkgewogICAgLy8gICBjYXNlIEJ5dGVzKCdobW1tJyk6CiAgICAvLyAgIGNhc2UgQnl0ZXMuZnJvbUhleCgnRmYnKToKICAgIC8vICAgY2FzZSBCeXRlcy5mcm9tQmFzZTY0KCdaSE5tYzJSbWMyUT0nKToKICAgIC8vICAgY2FzZSBCeXRlcy5mcm9tQmFzZTMyKCdPTlNHTVozT01KVEdPWkRHTVJTR009PT0nKToKICAgIC8vICAgICByZXR1cm4gdHJ1ZQogICAgLy8gfQogICAgZnJhbWVfZGlnIC0xCiAgICBtYXRjaCB0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlXzBAMSB0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlXzFAMyB0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlXzJANSB0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlXzNANwoKdGVzdF9ieXRlc19zd2l0Y2hfY2FzZV9kZWZhdWx0QDk6Cgp0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlX25leHRAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo1OAogICAgLy8gcmV0dXJuIGZhbHNlCiAgICBpbnRjXzEgLy8gMAogICAgcmV0c3ViCgp0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlXzNANzoKCnRlc3RfYnl0ZXNfYmxvY2tAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjU2CiAgICAvLyByZXR1cm4gdHJ1ZQogICAgaW50Y18wIC8vIDEKICAgIHJldHN1YgoKdGVzdF9ieXRlc19zd2l0Y2hfY2FzZV8yQDU6Cgp0ZXN0X2J5dGVzX2Jsb2NrQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo1NAogICAgLy8gY2FzZSBCeXRlcy5mcm9tQmFzZTY0KCdaSE5tYzJSbWMyUT0nKToKICAgIGIgdGVzdF9ieXRlc19ibG9ja0A4Cgp0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlXzFAMzoKCnRlc3RfYnl0ZXNfYmxvY2tANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjUzCiAgICAvLyBjYXNlIEJ5dGVzLmZyb21IZXgoJ0ZmJyk6CiAgICBiIHRlc3RfYnl0ZXNfYmxvY2tANgoKdGVzdF9ieXRlc19zd2l0Y2hfY2FzZV8wQDE6Cgp0ZXN0X2J5dGVzX2Jsb2NrQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo1MgogICAgLy8gY2FzZSBCeXRlcygnaG1tbScpOgogICAgYiB0ZXN0X2J5dGVzX2Jsb2NrQDQKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMSAwIDMgMgogICAgYnl0ZWNibG9jayAiaG1tbSIgMHhmZiBiYXNlNjQoWkhObWMyUm1jMlE9KSBiYXNlMzIoT05TR01aM09NSlRHT1pER01SU0dNKQoKbWFpbl9ibG9ja0AwOgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzEgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhhNmZmOTQ0YSAvLyBtZXRob2QgInJ1bigpdm9pZCIKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fcnVuX3JvdXRlQDMKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA0OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDU6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18xIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX3J1bl9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NQogICAgLy8gcnVuKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18xIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18xIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBydW4KICAgIGludGNfMCAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMSAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMSAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMCAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6OkRlbW9Db250cmFjdC5ydW4oKSAtPiB2b2lkOgpydW46CgpydW5fYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjYKICAgIC8vIGFzc2VydCh0aGlzLnRlc3RfdWludDY0KDEpID09PSAzKQogICAgaW50Y18wIC8vIDEKICAgIGNhbGxzdWIgdGVzdF91aW50NjQKICAgIGludGNfMiAvLyAzCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo3CiAgICAvLyBhc3NlcnQodGhpcy50ZXN0X3VpbnQ2NCgyKSA9PT0gMykKICAgIGludGNfMyAvLyAyCiAgICBjYWxsc3ViIHRlc3RfdWludDY0CiAgICBpbnRjXzIgLy8gMwogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6OAogICAgLy8gYXNzZXJ0KHRoaXMudGVzdF91aW50NjQoMykgPT09IDEpCiAgICBpbnRjXzIgLy8gMwogICAgY2FsbHN1YiB0ZXN0X3VpbnQ2NAogICAgaW50Y18wIC8vIDEKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjkKICAgIC8vIGFzc2VydCh0aGlzLnRlc3RfdWludDY0KDQpID09PSAzKQogICAgcHVzaGludCA0IC8vIDQKICAgIGNhbGxzdWIgdGVzdF91aW50NjQKICAgIGludGNfMiAvLyAzCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoxMQogICAgLy8gYXNzZXJ0KHRoaXMudGVzdF9icmVhaygxKSA9PT0gMTEpCiAgICBpbnRjXzAgLy8gMQogICAgY2FsbHN1YiB0ZXN0X2JyZWFrCiAgICBwdXNoaW50IDExIC8vIDExCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoxMgogICAgLy8gYXNzZXJ0KHRoaXMudGVzdF9icmVhaygyKSA9PT0gMTIpCiAgICBpbnRjXzMgLy8gMgogICAgY2FsbHN1YiB0ZXN0X2JyZWFrCiAgICBwdXNoaW50IDEyIC8vIDEyCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoxMwogICAgLy8gYXNzZXJ0KHRoaXMudGVzdF9icmVhaygzKSA9PT0gMTApCiAgICBpbnRjXzIgLy8gMwogICAgY2FsbHN1YiB0ZXN0X2JyZWFrCiAgICBwdXNoaW50IDEwIC8vIDEwCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoxNAogICAgLy8gYXNzZXJ0KHRoaXMudGVzdF9icmVhayg0KSA9PT0gMTQpCiAgICBwdXNoaW50IDQgLy8gNAogICAgY2FsbHN1YiB0ZXN0X2JyZWFrCiAgICBwdXNoaW50IDE0IC8vIDE0CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoxNQogICAgLy8gYXNzZXJ0KHRoaXMudGVzdF9icmVhayg1KSA9PT0gNTApCiAgICBwdXNoaW50IDUgLy8gNQogICAgY2FsbHN1YiB0ZXN0X2JyZWFrCiAgICBwdXNoaW50IDUwIC8vIDUwCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoxNwogICAgLy8gYXNzZXJ0KHRoaXMudGVzdF9ieXRlcyhCeXRlcygnaG1tbScpKSkKICAgIGJ5dGVjXzAgLy8gImhtbW0iCiAgICBjYWxsc3ViIHRlc3RfYnl0ZXMKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MTgKICAgIC8vIGFzc2VydCh0aGlzLnRlc3RfYnl0ZXMoQnl0ZXMuZnJvbUhleCgnZmYnKSkpCiAgICBieXRlY18xIC8vIDB4ZmYKICAgIGNhbGxzdWIgdGVzdF9ieXRlcwogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoxOQogICAgLy8gYXNzZXJ0KHRoaXMudGVzdF9ieXRlcyhCeXRlcy5mcm9tQmFzZTY0KCdaSE5tYzJSbWMyUT0nKSkpCiAgICBieXRlY18yIC8vIGJhc2U2NChaSE5tYzJSbWMyUT0pCiAgICBjYWxsc3ViIHRlc3RfYnl0ZXMKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MjAKICAgIC8vIGFzc2VydCh0aGlzLnRlc3RfYnl0ZXMoQnl0ZXMuZnJvbUJhc2UzMignT05TR01aM09NSlRHT1pER01SU0dNPT09JykpKQogICAgYnl0ZWNfMyAvLyBiYXNlMzIoT05TR01aM09NSlRHT1pER01SU0dNKQogICAgY2FsbHN1YiB0ZXN0X2J5dGVzCiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjIxCiAgICAvLyBhc3NlcnQoIXRoaXMudGVzdF9ieXRlcyhCeXRlcygpKSkKICAgIHB1c2hieXRlcyAweAogICAgY2FsbHN1YiB0ZXN0X2J5dGVzCiAgICAhCiAgICBhc3NlcnQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjpEZW1vQ29udHJhY3QudGVzdF91aW50NjQoeDogdWludDY0KSAtPiB1aW50NjQ6CnRlc3RfdWludDY0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MjQKICAgIC8vIHByaXZhdGUgdGVzdF91aW50NjQoeDogdWludDY0KTogdWludDY0IHsKICAgIHByb3RvIDEgMQoKdGVzdF91aW50NjRfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjI2CiAgICAvLyBjYXNlIDE6CiAgICBpbnRjXzAgLy8gMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MjcKICAgIC8vIGNhc2UgMjoKICAgIGludGNfMyAvLyAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoyOAogICAgLy8gY2FzZSBVaW50NjQoNCk6CiAgICBwdXNoaW50IDQgLy8gNAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MjUtMzMKICAgIC8vIHN3aXRjaCAoeCkgewogICAgLy8gICBjYXNlIDE6CiAgICAvLyAgIGNhc2UgMjoKICAgIC8vICAgY2FzZSBVaW50NjQoNCk6CiAgICAvLyAgICAgcmV0dXJuIDMKICAgIC8vICAgZGVmYXVsdDogewogICAgLy8gICAgIHJldHVybiAxCiAgICAvLyAgIH0KICAgIC8vIH0KICAgIGZyYW1lX2RpZyAtMQogICAgbWF0Y2ggdGVzdF91aW50NjRfc3dpdGNoX2Nhc2VfMEAxIHRlc3RfdWludDY0X3N3aXRjaF9jYXNlXzFAMyB0ZXN0X3VpbnQ2NF9zd2l0Y2hfY2FzZV8yQDUKCnRlc3RfdWludDY0X3N3aXRjaF9jYXNlX2RlZmF1bHRANzoKCnRlc3RfdWludDY0X2Jsb2NrQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czozMQogICAgLy8gcmV0dXJuIDEKICAgIGludGNfMCAvLyAxCiAgICByZXRzdWIKCnRlc3RfdWludDY0X3N3aXRjaF9jYXNlXzJANToKCnRlc3RfdWludDY0X2Jsb2NrQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoyOQogICAgLy8gcmV0dXJuIDMKICAgIGludGNfMiAvLyAzCiAgICByZXRzdWIKCnRlc3RfdWludDY0X3N3aXRjaF9jYXNlXzFAMzoKCnRlc3RfdWludDY0X2Jsb2NrQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoyNwogICAgLy8gY2FzZSAyOgogICAgYiB0ZXN0X3VpbnQ2NF9ibG9ja0A2Cgp0ZXN0X3VpbnQ2NF9zd2l0Y2hfY2FzZV8wQDE6Cgp0ZXN0X3VpbnQ2NF9ibG9ja0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MjYKICAgIC8vIGNhc2UgMToKICAgIGIgdGVzdF91aW50NjRfYmxvY2tANAoKCi8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjpEZW1vQ29udHJhY3QudGVzdF9icmVhayh4OiB1aW50NjQpIC0+IHVpbnQ2NDoKdGVzdF9icmVhazoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjM2CiAgICAvLyBwcml2YXRlIHRlc3RfYnJlYWsoeDogdWludDY0KTogdWludDY0IHsKICAgIHByb3RvIDEgMQoKdGVzdF9icmVha19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MzcKICAgIC8vIGxldCBpOiB1aW50NjQgPSAxMAogICAgcHVzaGludCAxMCAvLyAxMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MzkKICAgIC8vIGNhc2UgMToKICAgIGludGNfMCAvLyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo0MAogICAgLy8gY2FzZSAyOgogICAgaW50Y18zIC8vIDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjQxCiAgICAvLyBjYXNlIFVpbnQ2NCg0KToKICAgIHB1c2hpbnQgNCAvLyA0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo0NAogICAgLy8gY2FzZSA1OgogICAgcHVzaGludCA1IC8vIDUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjM4LTQ2CiAgICAvLyBzd2l0Y2ggKHgpIHsKICAgIC8vICAgY2FzZSAxOgogICAgLy8gICBjYXNlIDI6CiAgICAvLyAgIGNhc2UgVWludDY0KDQpOgogICAgLy8gICAgIGkgKz0geAogICAgLy8gICAgIGJyZWFrCiAgICAvLyAgIGNhc2UgNToKICAgIC8vICAgICBpICo9IHgKICAgIC8vIH0KICAgIGZyYW1lX2RpZyAtMQogICAgbWF0Y2ggdGVzdF9icmVha19zd2l0Y2hfY2FzZV8wQDEgdGVzdF9icmVha19zd2l0Y2hfY2FzZV8xQDMgdGVzdF9icmVha19zd2l0Y2hfY2FzZV8yQDUgdGVzdF9icmVha19zd2l0Y2hfY2FzZV8zQDcKCnRlc3RfYnJlYWtfc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKdGVzdF9icmVha19zd2l0Y2hfY2FzZV9uZXh0QDEwOgoKdGVzdF9icmVha19ibG9ja0AxMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjQ3CiAgICAvLyByZXR1cm4gaQogICAgZnJhbWVfZGlnIDAKICAgIHN3YXAKICAgIHJldHN1YgoKdGVzdF9icmVha19zd2l0Y2hfY2FzZV8zQDc6Cgp0ZXN0X2JyZWFrX2Jsb2NrQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czozNwogICAgLy8gbGV0IGk6IHVpbnQ2NCA9IDEwCiAgICBwdXNoaW50IDEwIC8vIDEwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo0NQogICAgLy8gaSAqPSB4CiAgICBmcmFtZV9kaWcgLTEKICAgICoKICAgIGZyYW1lX2J1cnkgMAogICAgYiB0ZXN0X2JyZWFrX3N3aXRjaF9jYXNlX25leHRAMTAKCnRlc3RfYnJlYWtfc3dpdGNoX2Nhc2VfMkA1OgoKdGVzdF9icmVha19ibG9ja0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MzcKICAgIC8vIGxldCBpOiB1aW50NjQgPSAxMAogICAgcHVzaGludCAxMCAvLyAxMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NDIKICAgIC8vIGkgKz0geAogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjQzCiAgICAvLyBicmVhawogICAgYiB0ZXN0X2JyZWFrX2Jsb2NrQDExCgp0ZXN0X2JyZWFrX3N3aXRjaF9jYXNlXzFAMzoKCnRlc3RfYnJlYWtfYmxvY2tANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjQwCiAgICAvLyBjYXNlIDI6CiAgICBiIHRlc3RfYnJlYWtfYmxvY2tANgoKdGVzdF9icmVha19zd2l0Y2hfY2FzZV8wQDE6Cgp0ZXN0X2JyZWFrX2Jsb2NrQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czozOQogICAgLy8gY2FzZSAxOgogICAgYiB0ZXN0X2JyZWFrX2Jsb2NrQDQKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo6RGVtb0NvbnRyYWN0LnRlc3RfYnl0ZXMoeDogYnl0ZXMpIC0+IHVpbnQ2NDoKdGVzdF9ieXRlczoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjUwCiAgICAvLyBwcml2YXRlIHRlc3RfYnl0ZXMoeDogYnl0ZXMpOiBib29sZWFuIHsKICAgIHByb3RvIDEgMQoKdGVzdF9ieXRlc19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NTIKICAgIC8vIGNhc2UgQnl0ZXMoJ2htbW0nKToKICAgIGJ5dGVjXzAgLy8gImhtbW0iCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo1MwogICAgLy8gY2FzZSBCeXRlcy5mcm9tSGV4KCdGZicpOgogICAgYnl0ZWNfMSAvLyAweGZmCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo1NAogICAgLy8gY2FzZSBCeXRlcy5mcm9tQmFzZTY0KCdaSE5tYzJSbWMyUT0nKToKICAgIGJ5dGVjXzIgLy8gYmFzZTY0KFpITm1jMlJtYzJRPSkKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjU1CiAgICAvLyBjYXNlIEJ5dGVzLmZyb21CYXNlMzIoJ09OU0dNWjNPTUpUR09aREdNUlNHTT09PScpOgogICAgYnl0ZWNfMyAvLyBiYXNlMzIoT05TR01aM09NSlRHT1pER01SU0dNKQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NTEtNTcKICAgIC8vIHN3aXRjaCAoeCkgewogICAgLy8gICBjYXNlIEJ5dGVzKCdobW1tJyk6CiAgICAvLyAgIGNhc2UgQnl0ZXMuZnJvbUhleCgnRmYnKToKICAgIC8vICAgY2FzZSBCeXRlcy5mcm9tQmFzZTY0KCdaSE5tYzJSbWMyUT0nKToKICAgIC8vICAgY2FzZSBCeXRlcy5mcm9tQmFzZTMyKCdPTlNHTVozT01KVEdPWkRHTVJTR009PT0nKToKICAgIC8vICAgICByZXR1cm4gdHJ1ZQogICAgLy8gfQogICAgZnJhbWVfZGlnIC0xCiAgICBtYXRjaCB0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlXzBAMSB0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlXzFAMyB0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlXzJANSB0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlXzNANwoKdGVzdF9ieXRlc19zd2l0Y2hfY2FzZV9kZWZhdWx0QDk6Cgp0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlX25leHRAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo1OAogICAgLy8gcmV0dXJuIGZhbHNlCiAgICBpbnRjXzEgLy8gMAogICAgcmV0c3ViCgp0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlXzNANzoKCnRlc3RfYnl0ZXNfYmxvY2tAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjU2CiAgICAvLyByZXR1cm4gdHJ1ZQogICAgaW50Y18wIC8vIDEKICAgIHJldHN1YgoKdGVzdF9ieXRlc19zd2l0Y2hfY2FzZV8yQDU6Cgp0ZXN0X2J5dGVzX2Jsb2NrQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo1NAogICAgLy8gY2FzZSBCeXRlcy5mcm9tQmFzZTY0KCdaSE5tYzJSbWMyUT0nKToKICAgIGIgdGVzdF9ieXRlc19ibG9ja0A4Cgp0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlXzFAMzoKCnRlc3RfYnl0ZXNfYmxvY2tANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjUzCiAgICAvLyBjYXNlIEJ5dGVzLmZyb21IZXgoJ0ZmJyk6CiAgICBiIHRlc3RfYnl0ZXNfYmxvY2tANgoKdGVzdF9ieXRlc19zd2l0Y2hfY2FzZV8wQDE6Cgp0ZXN0X2J5dGVzX2Jsb2NrQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo1MgogICAgLy8gY2FzZSBCeXRlcygnaG1tbScpOgogICAgYiB0ZXN0X2J5dGVzX2Jsb2NrQDQKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/switch-statements/DemoContract.arc56.json b/tests/approvals/out/unoptimized/switch-statements/DemoContract.arc56.json index 1804dba76..861da460e 100644 --- a/tests/approvals/out/unoptimized/switch-statements/DemoContract.arc56.json +++ b/tests/approvals/out/unoptimized/switch-statements/DemoContract.arc56.json @@ -82,8 +82,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMSAwIDMgMgogICAgYnl0ZWNibG9jayAiaG1tbSIgMHhmZiBiYXNlNjQoWkhObWMyUm1jMlE9KSBiYXNlMzIoT05TR01aM09NSlRHT1pER01SU0dNKQoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzEgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhhNmZmOTQ0YSAvLyBtZXRob2QgInJ1bigpdm9pZCIKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fcnVuX3JvdXRlQDMKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA0OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDU6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18xIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX3J1bl9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NQogICAgLy8gcnVuKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18xIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18xIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBydW4KICAgIGludGNfMCAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMSAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMSAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMCAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6OkRlbW9Db250cmFjdC5ydW4oKSAtPiB2b2lkOgpydW46CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo2CiAgICAvLyBhc3NlcnQodGhpcy50ZXN0X3VpbnQ2NCgxKSA9PT0gMykKICAgIGludGNfMCAvLyAxCiAgICBjYWxsc3ViIHRlc3RfdWludDY0CiAgICBpbnRjXzIgLy8gMwogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NwogICAgLy8gYXNzZXJ0KHRoaXMudGVzdF91aW50NjQoMikgPT09IDMpCiAgICBpbnRjXzMgLy8gMgogICAgY2FsbHN1YiB0ZXN0X3VpbnQ2NAogICAgaW50Y18yIC8vIDMKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjgKICAgIC8vIGFzc2VydCh0aGlzLnRlc3RfdWludDY0KDMpID09PSAxKQogICAgaW50Y18yIC8vIDMKICAgIGNhbGxzdWIgdGVzdF91aW50NjQKICAgIGludGNfMCAvLyAxCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo5CiAgICAvLyBhc3NlcnQodGhpcy50ZXN0X3VpbnQ2NCg0KSA9PT0gMykKICAgIHB1c2hpbnQgNCAvLyA0CiAgICBjYWxsc3ViIHRlc3RfdWludDY0CiAgICBpbnRjXzIgLy8gMwogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MTEKICAgIC8vIGFzc2VydCh0aGlzLnRlc3RfYnJlYWsoMSkgPT09IDExKQogICAgaW50Y18wIC8vIDEKICAgIGNhbGxzdWIgdGVzdF9icmVhawogICAgcHVzaGludCAxMSAvLyAxMQogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MTIKICAgIC8vIGFzc2VydCh0aGlzLnRlc3RfYnJlYWsoMikgPT09IDEyKQogICAgaW50Y18zIC8vIDIKICAgIGNhbGxzdWIgdGVzdF9icmVhawogICAgcHVzaGludCAxMiAvLyAxMgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MTMKICAgIC8vIGFzc2VydCh0aGlzLnRlc3RfYnJlYWsoMykgPT09IDEwKQogICAgaW50Y18yIC8vIDMKICAgIGNhbGxzdWIgdGVzdF9icmVhawogICAgcHVzaGludCAxMCAvLyAxMAogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MTQKICAgIC8vIGFzc2VydCh0aGlzLnRlc3RfYnJlYWsoNCkgPT09IDE0KQogICAgcHVzaGludCA0IC8vIDQKICAgIGNhbGxzdWIgdGVzdF9icmVhawogICAgcHVzaGludCAxNCAvLyAxNAogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MTUKICAgIC8vIGFzc2VydCh0aGlzLnRlc3RfYnJlYWsoNSkgPT09IDUwKQogICAgcHVzaGludCA1IC8vIDUKICAgIGNhbGxzdWIgdGVzdF9icmVhawogICAgcHVzaGludCA1MCAvLyA1MAogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MTcKICAgIC8vIGFzc2VydCh0aGlzLnRlc3RfYnl0ZXMoQnl0ZXMoJ2htbW0nKSkpCiAgICBieXRlY18wIC8vICJobW1tIgogICAgY2FsbHN1YiB0ZXN0X2J5dGVzCiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjE4CiAgICAvLyBhc3NlcnQodGhpcy50ZXN0X2J5dGVzKEJ5dGVzLmZyb21IZXgoJ2ZmJykpKQogICAgYnl0ZWNfMSAvLyAweGZmCiAgICBjYWxsc3ViIHRlc3RfYnl0ZXMKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MTkKICAgIC8vIGFzc2VydCh0aGlzLnRlc3RfYnl0ZXMoQnl0ZXMuZnJvbUJhc2U2NCgnWkhObWMyUm1jMlE9JykpKQogICAgYnl0ZWNfMiAvLyBiYXNlNjQoWkhObWMyUm1jMlE9KQogICAgY2FsbHN1YiB0ZXN0X2J5dGVzCiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjIwCiAgICAvLyBhc3NlcnQodGhpcy50ZXN0X2J5dGVzKEJ5dGVzLmZyb21CYXNlMzIoJ09OU0dNWjNPTUpUR09aREdNUlNHTT09PScpKSkKICAgIGJ5dGVjXzMgLy8gYmFzZTMyKE9OU0dNWjNPTUpUR09aREdNUlNHTSkKICAgIGNhbGxzdWIgdGVzdF9ieXRlcwogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoyMQogICAgLy8gYXNzZXJ0KCF0aGlzLnRlc3RfYnl0ZXMoQnl0ZXMoKSkpCiAgICBwdXNoYnl0ZXMgMHgKICAgIGNhbGxzdWIgdGVzdF9ieXRlcwogICAgIQogICAgYXNzZXJ0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo6RGVtb0NvbnRyYWN0LnRlc3RfdWludDY0KHg6IHVpbnQ2NCkgLT4gdWludDY0Ogp0ZXN0X3VpbnQ2NDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjI0CiAgICAvLyBwcml2YXRlIHRlc3RfdWludDY0KHg6IHVpbnQ2NCk6IHVpbnQ2NCB7CiAgICBwcm90byAxIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjI2CiAgICAvLyBjYXNlIDE6CiAgICBpbnRjXzAgLy8gMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MjcKICAgIC8vIGNhc2UgMjoKICAgIGludGNfMyAvLyAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoyOAogICAgLy8gY2FzZSBVaW50NjQoNCk6CiAgICBwdXNoaW50IDQgLy8gNAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MjUtMzMKICAgIC8vIHN3aXRjaCAoeCkgewogICAgLy8gICBjYXNlIDE6CiAgICAvLyAgIGNhc2UgMjoKICAgIC8vICAgY2FzZSBVaW50NjQoNCk6CiAgICAvLyAgICAgcmV0dXJuIDMKICAgIC8vICAgZGVmYXVsdDogewogICAgLy8gICAgIHJldHVybiAxCiAgICAvLyAgIH0KICAgIC8vIH0KICAgIGZyYW1lX2RpZyAtMQogICAgbWF0Y2ggdGVzdF91aW50NjRfc3dpdGNoX2Nhc2VfMEAxIHRlc3RfdWludDY0X3N3aXRjaF9jYXNlXzFAMyB0ZXN0X3VpbnQ2NF9zd2l0Y2hfY2FzZV8yQDUKCnRlc3RfdWludDY0X3N3aXRjaF9jYXNlX2RlZmF1bHRANzoKCnRlc3RfdWludDY0X2Jsb2NrQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czozMQogICAgLy8gcmV0dXJuIDEKICAgIGludGNfMCAvLyAxCiAgICByZXRzdWIKCnRlc3RfdWludDY0X3N3aXRjaF9jYXNlXzJANToKCnRlc3RfdWludDY0X2Jsb2NrQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoyOQogICAgLy8gcmV0dXJuIDMKICAgIGludGNfMiAvLyAzCiAgICByZXRzdWIKCnRlc3RfdWludDY0X3N3aXRjaF9jYXNlXzFAMzoKCnRlc3RfdWludDY0X2Jsb2NrQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoyNwogICAgLy8gY2FzZSAyOgogICAgYiB0ZXN0X3VpbnQ2NF9ibG9ja0A2Cgp0ZXN0X3VpbnQ2NF9zd2l0Y2hfY2FzZV8wQDE6Cgp0ZXN0X3VpbnQ2NF9ibG9ja0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MjYKICAgIC8vIGNhc2UgMToKICAgIGIgdGVzdF91aW50NjRfYmxvY2tANAoKCi8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjpEZW1vQ29udHJhY3QudGVzdF9icmVhayh4OiB1aW50NjQpIC0+IHVpbnQ2NDoKdGVzdF9icmVhazoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjM2CiAgICAvLyBwcml2YXRlIHRlc3RfYnJlYWsoeDogdWludDY0KTogdWludDY0IHsKICAgIHByb3RvIDEgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MzcKICAgIC8vIGxldCBpOiB1aW50NjQgPSAxMAogICAgcHVzaGludCAxMCAvLyAxMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MzkKICAgIC8vIGNhc2UgMToKICAgIGludGNfMCAvLyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo0MAogICAgLy8gY2FzZSAyOgogICAgaW50Y18zIC8vIDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjQxCiAgICAvLyBjYXNlIFVpbnQ2NCg0KToKICAgIHB1c2hpbnQgNCAvLyA0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo0NAogICAgLy8gY2FzZSA1OgogICAgcHVzaGludCA1IC8vIDUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjM4LTQ2CiAgICAvLyBzd2l0Y2ggKHgpIHsKICAgIC8vICAgY2FzZSAxOgogICAgLy8gICBjYXNlIDI6CiAgICAvLyAgIGNhc2UgVWludDY0KDQpOgogICAgLy8gICAgIGkgKz0geAogICAgLy8gICAgIGJyZWFrCiAgICAvLyAgIGNhc2UgNToKICAgIC8vICAgICBpICo9IHgKICAgIC8vIH0KICAgIGZyYW1lX2RpZyAtMQogICAgbWF0Y2ggdGVzdF9icmVha19zd2l0Y2hfY2FzZV8wQDEgdGVzdF9icmVha19zd2l0Y2hfY2FzZV8xQDMgdGVzdF9icmVha19zd2l0Y2hfY2FzZV8yQDUgdGVzdF9icmVha19zd2l0Y2hfY2FzZV8zQDcKCnRlc3RfYnJlYWtfc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKdGVzdF9icmVha19zd2l0Y2hfY2FzZV9uZXh0QDEwOgoKdGVzdF9icmVha19ibG9ja0AxMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjQ3CiAgICAvLyByZXR1cm4gaQogICAgZnJhbWVfZGlnIDAKICAgIHN3YXAKICAgIHJldHN1YgoKdGVzdF9icmVha19zd2l0Y2hfY2FzZV8zQDc6Cgp0ZXN0X2JyZWFrX2Jsb2NrQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czozNwogICAgLy8gbGV0IGk6IHVpbnQ2NCA9IDEwCiAgICBwdXNoaW50IDEwIC8vIDEwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo0NQogICAgLy8gaSAqPSB4CiAgICBmcmFtZV9kaWcgLTEKICAgICoKICAgIGZyYW1lX2J1cnkgMAogICAgYiB0ZXN0X2JyZWFrX3N3aXRjaF9jYXNlX25leHRAMTAKCnRlc3RfYnJlYWtfc3dpdGNoX2Nhc2VfMkA1OgoKdGVzdF9icmVha19ibG9ja0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MzcKICAgIC8vIGxldCBpOiB1aW50NjQgPSAxMAogICAgcHVzaGludCAxMCAvLyAxMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NDIKICAgIC8vIGkgKz0geAogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjQzCiAgICAvLyBicmVhawogICAgYiB0ZXN0X2JyZWFrX2Jsb2NrQDExCgp0ZXN0X2JyZWFrX3N3aXRjaF9jYXNlXzFAMzoKCnRlc3RfYnJlYWtfYmxvY2tANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjQwCiAgICAvLyBjYXNlIDI6CiAgICBiIHRlc3RfYnJlYWtfYmxvY2tANgoKdGVzdF9icmVha19zd2l0Y2hfY2FzZV8wQDE6Cgp0ZXN0X2JyZWFrX2Jsb2NrQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czozOQogICAgLy8gY2FzZSAxOgogICAgYiB0ZXN0X2JyZWFrX2Jsb2NrQDQKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo6RGVtb0NvbnRyYWN0LnRlc3RfYnl0ZXMoeDogYnl0ZXMpIC0+IHVpbnQ2NDoKdGVzdF9ieXRlczoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjUwCiAgICAvLyBwcml2YXRlIHRlc3RfYnl0ZXMoeDogYnl0ZXMpOiBib29sZWFuIHsKICAgIHByb3RvIDEgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NTIKICAgIC8vIGNhc2UgQnl0ZXMoJ2htbW0nKToKICAgIGJ5dGVjXzAgLy8gImhtbW0iCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo1MwogICAgLy8gY2FzZSBCeXRlcy5mcm9tSGV4KCdGZicpOgogICAgYnl0ZWNfMSAvLyAweGZmCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo1NAogICAgLy8gY2FzZSBCeXRlcy5mcm9tQmFzZTY0KCdaSE5tYzJSbWMyUT0nKToKICAgIGJ5dGVjXzIgLy8gYmFzZTY0KFpITm1jMlJtYzJRPSkKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjU1CiAgICAvLyBjYXNlIEJ5dGVzLmZyb21CYXNlMzIoJ09OU0dNWjNPTUpUR09aREdNUlNHTT09PScpOgogICAgYnl0ZWNfMyAvLyBiYXNlMzIoT05TR01aM09NSlRHT1pER01SU0dNKQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NTEtNTcKICAgIC8vIHN3aXRjaCAoeCkgewogICAgLy8gICBjYXNlIEJ5dGVzKCdobW1tJyk6CiAgICAvLyAgIGNhc2UgQnl0ZXMuZnJvbUhleCgnRmYnKToKICAgIC8vICAgY2FzZSBCeXRlcy5mcm9tQmFzZTY0KCdaSE5tYzJSbWMyUT0nKToKICAgIC8vICAgY2FzZSBCeXRlcy5mcm9tQmFzZTMyKCdPTlNHTVozT01KVEdPWkRHTVJTR009PT0nKToKICAgIC8vICAgICByZXR1cm4gdHJ1ZQogICAgLy8gfQogICAgZnJhbWVfZGlnIC0xCiAgICBtYXRjaCB0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlXzBAMSB0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlXzFAMyB0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlXzJANSB0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlXzNANwoKdGVzdF9ieXRlc19zd2l0Y2hfY2FzZV9kZWZhdWx0QDk6Cgp0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlX25leHRAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo1OAogICAgLy8gcmV0dXJuIGZhbHNlCiAgICBpbnRjXzEgLy8gMAogICAgcmV0c3ViCgp0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlXzNANzoKCnRlc3RfYnl0ZXNfYmxvY2tAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjU2CiAgICAvLyByZXR1cm4gdHJ1ZQogICAgaW50Y18wIC8vIDEKICAgIHJldHN1YgoKdGVzdF9ieXRlc19zd2l0Y2hfY2FzZV8yQDU6Cgp0ZXN0X2J5dGVzX2Jsb2NrQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo1NAogICAgLy8gY2FzZSBCeXRlcy5mcm9tQmFzZTY0KCdaSE5tYzJSbWMyUT0nKToKICAgIGIgdGVzdF9ieXRlc19ibG9ja0A4Cgp0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlXzFAMzoKCnRlc3RfYnl0ZXNfYmxvY2tANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjUzCiAgICAvLyBjYXNlIEJ5dGVzLmZyb21IZXgoJ0ZmJyk6CiAgICBiIHRlc3RfYnl0ZXNfYmxvY2tANgoKdGVzdF9ieXRlc19zd2l0Y2hfY2FzZV8wQDE6Cgp0ZXN0X2J5dGVzX2Jsb2NrQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo1MgogICAgLy8gY2FzZSBCeXRlcygnaG1tbScpOgogICAgYiB0ZXN0X2J5dGVzX2Jsb2NrQDQKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIHJldHN1Ygo=", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMSAwIDMgMgogICAgYnl0ZWNibG9jayAiaG1tbSIgMHhmZiBiYXNlNjQoWkhObWMyUm1jMlE9KSBiYXNlMzIoT05TR01aM09NSlRHT1pER01SU0dNKQoKbWFpbl9ibG9ja0AwOgoKbWFpbl9ibG9ja0AxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzEgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDYKCm1haW5fYWJpX3JvdXRpbmdAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhhNmZmOTQ0YSAvLyBtZXRob2QgInJ1bigpdm9pZCIKICAgIHN3YXAKICAgIG1hdGNoIG1haW5fcnVuX3JvdXRlQDMKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEA0OgoKbWFpbl9zd2l0Y2hfY2FzZV9uZXh0QDU6CgptYWluX2FmdGVyX2lmX2Vsc2VAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18xIC8vIDAKCm1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExOgogICAgcmV0dXJuCgptYWluX3J1bl9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NQogICAgLy8gcnVuKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18xIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18xIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBydW4KICAgIGludGNfMCAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgptYWluX2JhcmVfcm91dGluZ0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMSAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMSAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMCAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6OkRlbW9Db250cmFjdC5ydW4oKSAtPiB2b2lkOgpydW46CgpydW5fYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjYKICAgIC8vIGFzc2VydCh0aGlzLnRlc3RfdWludDY0KDEpID09PSAzKQogICAgaW50Y18wIC8vIDEKICAgIGNhbGxzdWIgdGVzdF91aW50NjQKICAgIGludGNfMiAvLyAzCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo3CiAgICAvLyBhc3NlcnQodGhpcy50ZXN0X3VpbnQ2NCgyKSA9PT0gMykKICAgIGludGNfMyAvLyAyCiAgICBjYWxsc3ViIHRlc3RfdWludDY0CiAgICBpbnRjXzIgLy8gMwogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6OAogICAgLy8gYXNzZXJ0KHRoaXMudGVzdF91aW50NjQoMykgPT09IDEpCiAgICBpbnRjXzIgLy8gMwogICAgY2FsbHN1YiB0ZXN0X3VpbnQ2NAogICAgaW50Y18wIC8vIDEKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjkKICAgIC8vIGFzc2VydCh0aGlzLnRlc3RfdWludDY0KDQpID09PSAzKQogICAgcHVzaGludCA0IC8vIDQKICAgIGNhbGxzdWIgdGVzdF91aW50NjQKICAgIGludGNfMiAvLyAzCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoxMQogICAgLy8gYXNzZXJ0KHRoaXMudGVzdF9icmVhaygxKSA9PT0gMTEpCiAgICBpbnRjXzAgLy8gMQogICAgY2FsbHN1YiB0ZXN0X2JyZWFrCiAgICBwdXNoaW50IDExIC8vIDExCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoxMgogICAgLy8gYXNzZXJ0KHRoaXMudGVzdF9icmVhaygyKSA9PT0gMTIpCiAgICBpbnRjXzMgLy8gMgogICAgY2FsbHN1YiB0ZXN0X2JyZWFrCiAgICBwdXNoaW50IDEyIC8vIDEyCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoxMwogICAgLy8gYXNzZXJ0KHRoaXMudGVzdF9icmVhaygzKSA9PT0gMTApCiAgICBpbnRjXzIgLy8gMwogICAgY2FsbHN1YiB0ZXN0X2JyZWFrCiAgICBwdXNoaW50IDEwIC8vIDEwCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoxNAogICAgLy8gYXNzZXJ0KHRoaXMudGVzdF9icmVhayg0KSA9PT0gMTQpCiAgICBwdXNoaW50IDQgLy8gNAogICAgY2FsbHN1YiB0ZXN0X2JyZWFrCiAgICBwdXNoaW50IDE0IC8vIDE0CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoxNQogICAgLy8gYXNzZXJ0KHRoaXMudGVzdF9icmVhayg1KSA9PT0gNTApCiAgICBwdXNoaW50IDUgLy8gNQogICAgY2FsbHN1YiB0ZXN0X2JyZWFrCiAgICBwdXNoaW50IDUwIC8vIDUwCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoxNwogICAgLy8gYXNzZXJ0KHRoaXMudGVzdF9ieXRlcyhCeXRlcygnaG1tbScpKSkKICAgIGJ5dGVjXzAgLy8gImhtbW0iCiAgICBjYWxsc3ViIHRlc3RfYnl0ZXMKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MTgKICAgIC8vIGFzc2VydCh0aGlzLnRlc3RfYnl0ZXMoQnl0ZXMuZnJvbUhleCgnZmYnKSkpCiAgICBieXRlY18xIC8vIDB4ZmYKICAgIGNhbGxzdWIgdGVzdF9ieXRlcwogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoxOQogICAgLy8gYXNzZXJ0KHRoaXMudGVzdF9ieXRlcyhCeXRlcy5mcm9tQmFzZTY0KCdaSE5tYzJSbWMyUT0nKSkpCiAgICBieXRlY18yIC8vIGJhc2U2NChaSE5tYzJSbWMyUT0pCiAgICBjYWxsc3ViIHRlc3RfYnl0ZXMKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MjAKICAgIC8vIGFzc2VydCh0aGlzLnRlc3RfYnl0ZXMoQnl0ZXMuZnJvbUJhc2UzMignT05TR01aM09NSlRHT1pER01SU0dNPT09JykpKQogICAgYnl0ZWNfMyAvLyBiYXNlMzIoT05TR01aM09NSlRHT1pER01SU0dNKQogICAgY2FsbHN1YiB0ZXN0X2J5dGVzCiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjIxCiAgICAvLyBhc3NlcnQoIXRoaXMudGVzdF9ieXRlcyhCeXRlcygpKSkKICAgIHB1c2hieXRlcyAweAogICAgY2FsbHN1YiB0ZXN0X2J5dGVzCiAgICAhCiAgICBhc3NlcnQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjpEZW1vQ29udHJhY3QudGVzdF91aW50NjQoeDogdWludDY0KSAtPiB1aW50NjQ6CnRlc3RfdWludDY0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MjQKICAgIC8vIHByaXZhdGUgdGVzdF91aW50NjQoeDogdWludDY0KTogdWludDY0IHsKICAgIHByb3RvIDEgMQoKdGVzdF91aW50NjRfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjI2CiAgICAvLyBjYXNlIDE6CiAgICBpbnRjXzAgLy8gMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MjcKICAgIC8vIGNhc2UgMjoKICAgIGludGNfMyAvLyAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoyOAogICAgLy8gY2FzZSBVaW50NjQoNCk6CiAgICBwdXNoaW50IDQgLy8gNAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MjUtMzMKICAgIC8vIHN3aXRjaCAoeCkgewogICAgLy8gICBjYXNlIDE6CiAgICAvLyAgIGNhc2UgMjoKICAgIC8vICAgY2FzZSBVaW50NjQoNCk6CiAgICAvLyAgICAgcmV0dXJuIDMKICAgIC8vICAgZGVmYXVsdDogewogICAgLy8gICAgIHJldHVybiAxCiAgICAvLyAgIH0KICAgIC8vIH0KICAgIGZyYW1lX2RpZyAtMQogICAgbWF0Y2ggdGVzdF91aW50NjRfc3dpdGNoX2Nhc2VfMEAxIHRlc3RfdWludDY0X3N3aXRjaF9jYXNlXzFAMyB0ZXN0X3VpbnQ2NF9zd2l0Y2hfY2FzZV8yQDUKCnRlc3RfdWludDY0X3N3aXRjaF9jYXNlX2RlZmF1bHRANzoKCnRlc3RfdWludDY0X2Jsb2NrQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czozMQogICAgLy8gcmV0dXJuIDEKICAgIGludGNfMCAvLyAxCiAgICByZXRzdWIKCnRlc3RfdWludDY0X3N3aXRjaF9jYXNlXzJANToKCnRlc3RfdWludDY0X2Jsb2NrQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoyOQogICAgLy8gcmV0dXJuIDMKICAgIGludGNfMiAvLyAzCiAgICByZXRzdWIKCnRlc3RfdWludDY0X3N3aXRjaF9jYXNlXzFAMzoKCnRlc3RfdWludDY0X2Jsb2NrQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czoyNwogICAgLy8gY2FzZSAyOgogICAgYiB0ZXN0X3VpbnQ2NF9ibG9ja0A2Cgp0ZXN0X3VpbnQ2NF9zd2l0Y2hfY2FzZV8wQDE6Cgp0ZXN0X3VpbnQ2NF9ibG9ja0AyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MjYKICAgIC8vIGNhc2UgMToKICAgIGIgdGVzdF91aW50NjRfYmxvY2tANAoKCi8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjpEZW1vQ29udHJhY3QudGVzdF9icmVhayh4OiB1aW50NjQpIC0+IHVpbnQ2NDoKdGVzdF9icmVhazoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjM2CiAgICAvLyBwcml2YXRlIHRlc3RfYnJlYWsoeDogdWludDY0KTogdWludDY0IHsKICAgIHByb3RvIDEgMQoKdGVzdF9icmVha19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MzcKICAgIC8vIGxldCBpOiB1aW50NjQgPSAxMAogICAgcHVzaGludCAxMCAvLyAxMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MzkKICAgIC8vIGNhc2UgMToKICAgIGludGNfMCAvLyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo0MAogICAgLy8gY2FzZSAyOgogICAgaW50Y18zIC8vIDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjQxCiAgICAvLyBjYXNlIFVpbnQ2NCg0KToKICAgIHB1c2hpbnQgNCAvLyA0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo0NAogICAgLy8gY2FzZSA1OgogICAgcHVzaGludCA1IC8vIDUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjM4LTQ2CiAgICAvLyBzd2l0Y2ggKHgpIHsKICAgIC8vICAgY2FzZSAxOgogICAgLy8gICBjYXNlIDI6CiAgICAvLyAgIGNhc2UgVWludDY0KDQpOgogICAgLy8gICAgIGkgKz0geAogICAgLy8gICAgIGJyZWFrCiAgICAvLyAgIGNhc2UgNToKICAgIC8vICAgICBpICo9IHgKICAgIC8vIH0KICAgIGZyYW1lX2RpZyAtMQogICAgbWF0Y2ggdGVzdF9icmVha19zd2l0Y2hfY2FzZV8wQDEgdGVzdF9icmVha19zd2l0Y2hfY2FzZV8xQDMgdGVzdF9icmVha19zd2l0Y2hfY2FzZV8yQDUgdGVzdF9icmVha19zd2l0Y2hfY2FzZV8zQDcKCnRlc3RfYnJlYWtfc3dpdGNoX2Nhc2VfZGVmYXVsdEA5OgoKdGVzdF9icmVha19zd2l0Y2hfY2FzZV9uZXh0QDEwOgoKdGVzdF9icmVha19ibG9ja0AxMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjQ3CiAgICAvLyByZXR1cm4gaQogICAgZnJhbWVfZGlnIDAKICAgIHN3YXAKICAgIHJldHN1YgoKdGVzdF9icmVha19zd2l0Y2hfY2FzZV8zQDc6Cgp0ZXN0X2JyZWFrX2Jsb2NrQDg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czozNwogICAgLy8gbGV0IGk6IHVpbnQ2NCA9IDEwCiAgICBwdXNoaW50IDEwIC8vIDEwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo0NQogICAgLy8gaSAqPSB4CiAgICBmcmFtZV9kaWcgLTEKICAgICoKICAgIGZyYW1lX2J1cnkgMAogICAgYiB0ZXN0X2JyZWFrX3N3aXRjaF9jYXNlX25leHRAMTAKCnRlc3RfYnJlYWtfc3dpdGNoX2Nhc2VfMkA1OgoKdGVzdF9icmVha19ibG9ja0A2OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6MzcKICAgIC8vIGxldCBpOiB1aW50NjQgPSAxMAogICAgcHVzaGludCAxMCAvLyAxMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NDIKICAgIC8vIGkgKz0geAogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjQzCiAgICAvLyBicmVhawogICAgYiB0ZXN0X2JyZWFrX2Jsb2NrQDExCgp0ZXN0X2JyZWFrX3N3aXRjaF9jYXNlXzFAMzoKCnRlc3RfYnJlYWtfYmxvY2tANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjQwCiAgICAvLyBjYXNlIDI6CiAgICBiIHRlc3RfYnJlYWtfYmxvY2tANgoKdGVzdF9icmVha19zd2l0Y2hfY2FzZV8wQDE6Cgp0ZXN0X2JyZWFrX2Jsb2NrQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czozOQogICAgLy8gY2FzZSAxOgogICAgYiB0ZXN0X2JyZWFrX2Jsb2NrQDQKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo6RGVtb0NvbnRyYWN0LnRlc3RfYnl0ZXMoeDogYnl0ZXMpIC0+IHVpbnQ2NDoKdGVzdF9ieXRlczoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjUwCiAgICAvLyBwcml2YXRlIHRlc3RfYnl0ZXMoeDogYnl0ZXMpOiBib29sZWFuIHsKICAgIHByb3RvIDEgMQoKdGVzdF9ieXRlc19ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NTIKICAgIC8vIGNhc2UgQnl0ZXMoJ2htbW0nKToKICAgIGJ5dGVjXzAgLy8gImhtbW0iCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo1MwogICAgLy8gY2FzZSBCeXRlcy5mcm9tSGV4KCdGZicpOgogICAgYnl0ZWNfMSAvLyAweGZmCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo1NAogICAgLy8gY2FzZSBCeXRlcy5mcm9tQmFzZTY0KCdaSE5tYzJSbWMyUT0nKToKICAgIGJ5dGVjXzIgLy8gYmFzZTY0KFpITm1jMlJtYzJRPSkKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjU1CiAgICAvLyBjYXNlIEJ5dGVzLmZyb21CYXNlMzIoJ09OU0dNWjNPTUpUR09aREdNUlNHTT09PScpOgogICAgYnl0ZWNfMyAvLyBiYXNlMzIoT05TR01aM09NSlRHT1pER01SU0dNKQogICAgLy8gdGVzdHMvYXBwcm92YWxzL3N3aXRjaC1zdGF0ZW1lbnRzLmFsZ28udHM6NTEtNTcKICAgIC8vIHN3aXRjaCAoeCkgewogICAgLy8gICBjYXNlIEJ5dGVzKCdobW1tJyk6CiAgICAvLyAgIGNhc2UgQnl0ZXMuZnJvbUhleCgnRmYnKToKICAgIC8vICAgY2FzZSBCeXRlcy5mcm9tQmFzZTY0KCdaSE5tYzJSbWMyUT0nKToKICAgIC8vICAgY2FzZSBCeXRlcy5mcm9tQmFzZTMyKCdPTlNHTVozT01KVEdPWkRHTVJTR009PT0nKToKICAgIC8vICAgICByZXR1cm4gdHJ1ZQogICAgLy8gfQogICAgZnJhbWVfZGlnIC0xCiAgICBtYXRjaCB0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlXzBAMSB0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlXzFAMyB0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlXzJANSB0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlXzNANwoKdGVzdF9ieXRlc19zd2l0Y2hfY2FzZV9kZWZhdWx0QDk6Cgp0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlX25leHRAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo1OAogICAgLy8gcmV0dXJuIGZhbHNlCiAgICBpbnRjXzEgLy8gMAogICAgcmV0c3ViCgp0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlXzNANzoKCnRlc3RfYnl0ZXNfYmxvY2tAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjU2CiAgICAvLyByZXR1cm4gdHJ1ZQogICAgaW50Y18wIC8vIDEKICAgIHJldHN1YgoKdGVzdF9ieXRlc19zd2l0Y2hfY2FzZV8yQDU6Cgp0ZXN0X2J5dGVzX2Jsb2NrQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo1NAogICAgLy8gY2FzZSBCeXRlcy5mcm9tQmFzZTY0KCdaSE5tYzJSbWMyUT0nKToKICAgIGIgdGVzdF9ieXRlc19ibG9ja0A4Cgp0ZXN0X2J5dGVzX3N3aXRjaF9jYXNlXzFAMzoKCnRlc3RfYnl0ZXNfYmxvY2tANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9zd2l0Y2gtc3RhdGVtZW50cy5hbGdvLnRzOjUzCiAgICAvLyBjYXNlIEJ5dGVzLmZyb21IZXgoJ0ZmJyk6CiAgICBiIHRlc3RfYnl0ZXNfYmxvY2tANgoKdGVzdF9ieXRlc19zd2l0Y2hfY2FzZV8wQDE6Cgp0ZXN0X2J5dGVzX2Jsb2NrQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo1MgogICAgLy8gY2FzZSBCeXRlcygnaG1tbScpOgogICAgYiB0ZXN0X2J5dGVzX2Jsb2NrQDQKCgovLyB0ZXN0cy9hcHByb3ZhbHMvc3dpdGNoLXN0YXRlbWVudHMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiAEAQADAiYEBGhtbW0B/whkc2ZzZGZzZA1zZGZnbmJmZ2RmZGRmMRsjE0EAITYaAIAEpv+USkyOAQACI0MxGSMSRDEYIxNEiAAbIkL/7jEZI0yOAQADQv/iMRgjEkSIANciQv/XIogAXyQSRCWIAFgkEkQkiABRIhJEgQSIAEkkEkQiiABdgQsSRCWIAFWBDBJEJIgATYEKEkSBBIgARIEOEkSBBYgAO4EyEkQoiABoRCmIAGNEKogAXkQriABZRIAAiABTFESJigEBIiWBBIv/jgMABwAEAAIiiSSJQv/7Qv/6igEBgQoiJYEEgQWL/44EABsAGAAOAASLAEyJgQqL/wuMAEL/8oEKi/8IjABC/+hC//NC//qKAQEoKSori/+OBAAKAAcABAACI4kiiUL/+0L/+kL/+ok=", @@ -94,7 +94,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/switch-statements/DemoContract.clear.teal b/tests/approvals/out/unoptimized/switch-statements/DemoContract.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/switch-statements/DemoContract.clear.teal +++ b/tests/approvals/out/unoptimized/switch-statements/DemoContract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/template-var/MyContract.approval.teal b/tests/approvals/out/unoptimized/template-var/MyContract.approval.teal index 364fa6237..3c13bc00f 100644 --- a/tests/approvals/out/unoptimized/template-var/MyContract.approval.teal +++ b/tests/approvals/out/unoptimized/template-var/MyContract.approval.teal @@ -6,6 +6,8 @@ main: intcblock 0 1 TMPL_AN_INT bytecblock 0x151f7c75 TMPL_A_STRING TMPL_SOME_BYTES TMPL_AN_ADDRESS +main_block@0: + main_block@1: // tests/approvals/template-var.algo.ts:7 // export class MyContract extends Contract { @@ -153,6 +155,8 @@ main___algots__.defaultCreate@10: // tests/approvals/template-var.algo.ts::MyContract.getInt() -> uint64: getInt: + +getInt_block@0: // tests/approvals/template-var.algo.ts:9 // return TemplateVar('AN_INT') intc_2 // TMPL_AN_INT @@ -161,6 +165,8 @@ getInt: // tests/approvals/template-var.algo.ts::MyContract.getString() -> bytes: getString: + +getString_block@0: // tests/approvals/template-var.algo.ts:13 // return TemplateVar('A_STRING') bytec_1 // TMPL_A_STRING @@ -169,6 +175,8 @@ getString: // tests/approvals/template-var.algo.ts::MyContract.getBytes() -> bytes: getBytes: + +getBytes_block@0: // tests/approvals/template-var.algo.ts:17 // return TemplateVar('SOME_BYTES') bytec_2 // TMPL_SOME_BYTES @@ -177,6 +185,8 @@ getBytes: // tests/approvals/template-var.algo.ts::MyContract.getAddress() -> bytes: getAddress: + +getAddress_block@0: // tests/approvals/template-var.algo.ts:5 // const specialAddress = TemplateVar
('AN_ADDRESS') bytec_3 // TMPL_AN_ADDRESS @@ -187,4 +197,6 @@ getAddress: // tests/approvals/template-var.algo.ts::MyContract.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/template-var/MyContract.arc32.json b/tests/approvals/out/unoptimized/template-var/MyContract.arc32.json index c6561fb3c..9427f94fa 100644 --- a/tests/approvals/out/unoptimized/template-var/MyContract.arc32.json +++ b/tests/approvals/out/unoptimized/template-var/MyContract.arc32.json @@ -22,8 +22,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIFRNUExfQU5fSU5UCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUgVE1QTF9BX1NUUklORyBUTVBMX1NPTUVfQllURVMgVE1QTF9BTl9BRERSRVNTCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A5CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhiZTkzMjAwYiAvLyBtZXRob2QgImdldEludCgpdWludDY0IgogICAgcHVzaGJ5dGVzIDB4YzFhMTMyOTUgLy8gbWV0aG9kICJnZXRTdHJpbmcoKXN0cmluZyIKICAgIHB1c2hieXRlcyAweGFmNDNkYjM2IC8vIG1ldGhvZCAiZ2V0Qnl0ZXMoKWJ5dGVbXSIKICAgIHB1c2hieXRlcyAweDA1NTljYWMxIC8vIG1ldGhvZCAiZ2V0QWRkcmVzcygpYWRkcmVzcyIKICAgIHVuY292ZXIgNAogICAgbWF0Y2ggbWFpbl9nZXRJbnRfcm91dGVAMyBtYWluX2dldFN0cmluZ19yb3V0ZUA0IG1haW5fZ2V0Qnl0ZXNfcm91dGVANSBtYWluX2dldEFkZHJlc3Nfcm91dGVANgoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDc6CgptYWluX3N3aXRjaF9jYXNlX25leHRAODoKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjpNeUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0OgogICAgcmV0dXJuCgptYWluX2dldEFkZHJlc3Nfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czoyMAogICAgLy8gZ2V0QWRkcmVzcygpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgZ2V0QWRkcmVzcwogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl9nZXRCeXRlc19yb3V0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjE2CiAgICAvLyBnZXRCeXRlcygpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgZ2V0Qnl0ZXMKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjpNeUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2dldFN0cmluZ19yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjEyCiAgICAvLyBnZXRTdHJpbmcoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGdldFN0cmluZwogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6Ok15Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fZ2V0SW50X3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6OAogICAgLy8gZ2V0SW50KCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBnZXRJbnQKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6Ok15Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fYmFyZV9yb3V0aW5nQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTAKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMjoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEzCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjpNeUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgoKLy8gdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjpNeUNvbnRyYWN0LmdldEludCgpIC0+IHVpbnQ2NDoKZ2V0SW50OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjkKICAgIC8vIHJldHVybiBUZW1wbGF0ZVZhcjx1aW50NjQ+KCdBTl9JTlQnKQogICAgaW50Y18yIC8vIFRNUExfQU5fSU5UCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6Ok15Q29udHJhY3QuZ2V0U3RyaW5nKCkgLT4gYnl0ZXM6CmdldFN0cmluZzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czoxMwogICAgLy8gcmV0dXJuIFRlbXBsYXRlVmFyPHN0cmluZz4oJ0FfU1RSSU5HJykKICAgIGJ5dGVjXzEgLy8gVE1QTF9BX1NUUklORwogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjpNeUNvbnRyYWN0LmdldEJ5dGVzKCkgLT4gYnl0ZXM6CmdldEJ5dGVzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjE3CiAgICAvLyByZXR1cm4gVGVtcGxhdGVWYXI8Ynl0ZXM+KCdTT01FX0JZVEVTJykKICAgIGJ5dGVjXzIgLy8gVE1QTF9TT01FX0JZVEVTCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6Ok15Q29udHJhY3QuZ2V0QWRkcmVzcygpIC0+IGJ5dGVzOgpnZXRBZGRyZXNzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IHNwZWNpYWxBZGRyZXNzID0gVGVtcGxhdGVWYXI8QWRkcmVzcz4oJ0FOX0FERFJFU1MnKQogICAgYnl0ZWNfMyAvLyBUTVBMX0FOX0FERFJFU1MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czoyMQogICAgLy8gcmV0dXJuIHNwZWNpYWxBZGRyZXNzCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6Ok15Q29udHJhY3QuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIFRNUExfQU5fSU5UCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUgVE1QTF9BX1NUUklORyBUTVBMX1NPTUVfQllURVMgVE1QTF9BTl9BRERSRVNTCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A5CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhiZTkzMjAwYiAvLyBtZXRob2QgImdldEludCgpdWludDY0IgogICAgcHVzaGJ5dGVzIDB4YzFhMTMyOTUgLy8gbWV0aG9kICJnZXRTdHJpbmcoKXN0cmluZyIKICAgIHB1c2hieXRlcyAweGFmNDNkYjM2IC8vIG1ldGhvZCAiZ2V0Qnl0ZXMoKWJ5dGVbXSIKICAgIHB1c2hieXRlcyAweDA1NTljYWMxIC8vIG1ldGhvZCAiZ2V0QWRkcmVzcygpYWRkcmVzcyIKICAgIHVuY292ZXIgNAogICAgbWF0Y2ggbWFpbl9nZXRJbnRfcm91dGVAMyBtYWluX2dldFN0cmluZ19yb3V0ZUA0IG1haW5fZ2V0Qnl0ZXNfcm91dGVANSBtYWluX2dldEFkZHJlc3Nfcm91dGVANgoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDc6CgptYWluX3N3aXRjaF9jYXNlX25leHRAODoKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjpNeUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0OgogICAgcmV0dXJuCgptYWluX2dldEFkZHJlc3Nfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czoyMAogICAgLy8gZ2V0QWRkcmVzcygpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgZ2V0QWRkcmVzcwogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl9nZXRCeXRlc19yb3V0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjE2CiAgICAvLyBnZXRCeXRlcygpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgZ2V0Qnl0ZXMKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjpNeUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2dldFN0cmluZ19yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjEyCiAgICAvLyBnZXRTdHJpbmcoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGdldFN0cmluZwogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6Ok15Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fZ2V0SW50X3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6OAogICAgLy8gZ2V0SW50KCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBnZXRJbnQKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6Ok15Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fYmFyZV9yb3V0aW5nQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTAKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMjoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEzCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjpNeUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgoKLy8gdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjpNeUNvbnRyYWN0LmdldEludCgpIC0+IHVpbnQ2NDoKZ2V0SW50OgoKZ2V0SW50X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6OQogICAgLy8gcmV0dXJuIFRlbXBsYXRlVmFyPHVpbnQ2ND4oJ0FOX0lOVCcpCiAgICBpbnRjXzIgLy8gVE1QTF9BTl9JTlQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czo6TXlDb250cmFjdC5nZXRTdHJpbmcoKSAtPiBieXRlczoKZ2V0U3RyaW5nOgoKZ2V0U3RyaW5nX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6MTMKICAgIC8vIHJldHVybiBUZW1wbGF0ZVZhcjxzdHJpbmc+KCdBX1NUUklORycpCiAgICBieXRlY18xIC8vIFRNUExfQV9TVFJJTkcKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czo6TXlDb250cmFjdC5nZXRCeXRlcygpIC0+IGJ5dGVzOgpnZXRCeXRlczoKCmdldEJ5dGVzX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6MTcKICAgIC8vIHJldHVybiBUZW1wbGF0ZVZhcjxieXRlcz4oJ1NPTUVfQllURVMnKQogICAgYnl0ZWNfMiAvLyBUTVBMX1NPTUVfQllURVMKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czo6TXlDb250cmFjdC5nZXRBZGRyZXNzKCkgLT4gYnl0ZXM6CmdldEFkZHJlc3M6CgpnZXRBZGRyZXNzX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6NQogICAgLy8gY29uc3Qgc3BlY2lhbEFkZHJlc3MgPSBUZW1wbGF0ZVZhcjxBZGRyZXNzPignQU5fQUREUkVTUycpCiAgICBieXRlY18zIC8vIFRNUExfQU5fQUREUkVTUwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjIxCiAgICAvLyByZXR1cm4gc3BlY2lhbEFkZHJlc3MKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czo6TXlDb250cmFjdC5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/template-var/MyContract.arc56.json b/tests/approvals/out/unoptimized/template-var/MyContract.arc56.json index ec9bb151f..b98ebed23 100644 --- a/tests/approvals/out/unoptimized/template-var/MyContract.arc56.json +++ b/tests/approvals/out/unoptimized/template-var/MyContract.arc56.json @@ -136,8 +136,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIFRNUExfQU5fSU5UCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUgVE1QTF9BX1NUUklORyBUTVBMX1NPTUVfQllURVMgVE1QTF9BTl9BRERSRVNTCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A5CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhiZTkzMjAwYiAvLyBtZXRob2QgImdldEludCgpdWludDY0IgogICAgcHVzaGJ5dGVzIDB4YzFhMTMyOTUgLy8gbWV0aG9kICJnZXRTdHJpbmcoKXN0cmluZyIKICAgIHB1c2hieXRlcyAweGFmNDNkYjM2IC8vIG1ldGhvZCAiZ2V0Qnl0ZXMoKWJ5dGVbXSIKICAgIHB1c2hieXRlcyAweDA1NTljYWMxIC8vIG1ldGhvZCAiZ2V0QWRkcmVzcygpYWRkcmVzcyIKICAgIHVuY292ZXIgNAogICAgbWF0Y2ggbWFpbl9nZXRJbnRfcm91dGVAMyBtYWluX2dldFN0cmluZ19yb3V0ZUA0IG1haW5fZ2V0Qnl0ZXNfcm91dGVANSBtYWluX2dldEFkZHJlc3Nfcm91dGVANgoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDc6CgptYWluX3N3aXRjaF9jYXNlX25leHRAODoKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjpNeUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0OgogICAgcmV0dXJuCgptYWluX2dldEFkZHJlc3Nfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czoyMAogICAgLy8gZ2V0QWRkcmVzcygpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgZ2V0QWRkcmVzcwogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl9nZXRCeXRlc19yb3V0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjE2CiAgICAvLyBnZXRCeXRlcygpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgZ2V0Qnl0ZXMKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjpNeUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2dldFN0cmluZ19yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjEyCiAgICAvLyBnZXRTdHJpbmcoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGdldFN0cmluZwogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6Ok15Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fZ2V0SW50X3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6OAogICAgLy8gZ2V0SW50KCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBnZXRJbnQKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6Ok15Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fYmFyZV9yb3V0aW5nQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTAKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMjoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEzCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjpNeUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgoKLy8gdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjpNeUNvbnRyYWN0LmdldEludCgpIC0+IHVpbnQ2NDoKZ2V0SW50OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjkKICAgIC8vIHJldHVybiBUZW1wbGF0ZVZhcjx1aW50NjQ+KCdBTl9JTlQnKQogICAgaW50Y18yIC8vIFRNUExfQU5fSU5UCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6Ok15Q29udHJhY3QuZ2V0U3RyaW5nKCkgLT4gYnl0ZXM6CmdldFN0cmluZzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czoxMwogICAgLy8gcmV0dXJuIFRlbXBsYXRlVmFyPHN0cmluZz4oJ0FfU1RSSU5HJykKICAgIGJ5dGVjXzEgLy8gVE1QTF9BX1NUUklORwogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjpNeUNvbnRyYWN0LmdldEJ5dGVzKCkgLT4gYnl0ZXM6CmdldEJ5dGVzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjE3CiAgICAvLyByZXR1cm4gVGVtcGxhdGVWYXI8Ynl0ZXM+KCdTT01FX0JZVEVTJykKICAgIGJ5dGVjXzIgLy8gVE1QTF9TT01FX0JZVEVTCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6Ok15Q29udHJhY3QuZ2V0QWRkcmVzcygpIC0+IGJ5dGVzOgpnZXRBZGRyZXNzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjUKICAgIC8vIGNvbnN0IHNwZWNpYWxBZGRyZXNzID0gVGVtcGxhdGVWYXI8QWRkcmVzcz4oJ0FOX0FERFJFU1MnKQogICAgYnl0ZWNfMyAvLyBUTVBMX0FOX0FERFJFU1MKICAgIC8vIHRlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czoyMQogICAgLy8gcmV0dXJuIHNwZWNpYWxBZGRyZXNzCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6Ok15Q29udHJhY3QuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgcmV0c3ViCg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIFRNUExfQU5fSU5UCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUgVE1QTF9BX1NUUklORyBUTVBMX1NPTUVfQllURVMgVE1QTF9BTl9BRERSRVNTCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A5CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhiZTkzMjAwYiAvLyBtZXRob2QgImdldEludCgpdWludDY0IgogICAgcHVzaGJ5dGVzIDB4YzFhMTMyOTUgLy8gbWV0aG9kICJnZXRTdHJpbmcoKXN0cmluZyIKICAgIHB1c2hieXRlcyAweGFmNDNkYjM2IC8vIG1ldGhvZCAiZ2V0Qnl0ZXMoKWJ5dGVbXSIKICAgIHB1c2hieXRlcyAweDA1NTljYWMxIC8vIG1ldGhvZCAiZ2V0QWRkcmVzcygpYWRkcmVzcyIKICAgIHVuY292ZXIgNAogICAgbWF0Y2ggbWFpbl9nZXRJbnRfcm91dGVAMyBtYWluX2dldFN0cmluZ19yb3V0ZUA0IG1haW5fZ2V0Qnl0ZXNfcm91dGVANSBtYWluX2dldEFkZHJlc3Nfcm91dGVANgoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDc6CgptYWluX3N3aXRjaF9jYXNlX25leHRAODoKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjpNeUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0OgogICAgcmV0dXJuCgptYWluX2dldEFkZHJlc3Nfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czoyMAogICAgLy8gZ2V0QWRkcmVzcygpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgZ2V0QWRkcmVzcwogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxNAoKbWFpbl9nZXRCeXRlc19yb3V0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjE2CiAgICAvLyBnZXRCeXRlcygpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgZ2V0Qnl0ZXMKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjpNeUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgptYWluX2dldFN0cmluZ19yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjEyCiAgICAvLyBnZXRTdHJpbmcoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGdldFN0cmluZwogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6Ok15Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fZ2V0SW50X3JvdXRlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6OAogICAgLy8gZ2V0SW50KCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBnZXRJbnQKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6Ok15Q29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTQKCm1haW5fYmFyZV9yb3V0aW5nQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTAKCm1haW5fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMToKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEAxMjoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEzCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgYiBtYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjpNeUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDE0CgoKLy8gdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjpNeUNvbnRyYWN0LmdldEludCgpIC0+IHVpbnQ2NDoKZ2V0SW50OgoKZ2V0SW50X2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6OQogICAgLy8gcmV0dXJuIFRlbXBsYXRlVmFyPHVpbnQ2ND4oJ0FOX0lOVCcpCiAgICBpbnRjXzIgLy8gVE1QTF9BTl9JTlQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czo6TXlDb250cmFjdC5nZXRTdHJpbmcoKSAtPiBieXRlczoKZ2V0U3RyaW5nOgoKZ2V0U3RyaW5nX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6MTMKICAgIC8vIHJldHVybiBUZW1wbGF0ZVZhcjxzdHJpbmc+KCdBX1NUUklORycpCiAgICBieXRlY18xIC8vIFRNUExfQV9TVFJJTkcKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czo6TXlDb250cmFjdC5nZXRCeXRlcygpIC0+IGJ5dGVzOgpnZXRCeXRlczoKCmdldEJ5dGVzX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6MTcKICAgIC8vIHJldHVybiBUZW1wbGF0ZVZhcjxieXRlcz4oJ1NPTUVfQllURVMnKQogICAgYnl0ZWNfMiAvLyBUTVBMX1NPTUVfQllURVMKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czo6TXlDb250cmFjdC5nZXRBZGRyZXNzKCkgLT4gYnl0ZXM6CmdldEFkZHJlc3M6CgpnZXRBZGRyZXNzX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvdGVtcGxhdGUtdmFyLmFsZ28udHM6NQogICAgLy8gY29uc3Qgc3BlY2lhbEFkZHJlc3MgPSBUZW1wbGF0ZVZhcjxBZGRyZXNzPignQU5fQUREUkVTUycpCiAgICBieXRlY18zIC8vIFRNUExfQU5fQUREUkVTUwogICAgLy8gdGVzdHMvYXBwcm92YWxzL3RlbXBsYXRlLXZhci5hbGdvLnRzOjIxCiAgICAvLyByZXR1cm4gc3BlY2lhbEFkZHJlc3MKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy90ZW1wbGF0ZS12YXIuYWxnby50czo6TXlDb250cmFjdC5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiADAAEAJgQEFR98dQAAADEbIhNBAI42GgCABL6TIAuABMGhMpWABK9D2zaABAVZysFPBI4EAFEANAAXAAIiQzEZIhJEMRgiE0SIAHUoTFCwI0L/6jEZIhJEMRgiE0SIAF5JFRZXBgJMUChMULAjQv/NMRkiEkQxGCITRIgAP0kVFlcGAkxQKExQsCNC/7AxGSISRDEYIhNEiAAgFihMULAjQv+aMRkiTI4BAANC/44xGCISRIgADCNC/4MkiSmJKokriYk=", @@ -148,7 +148,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/template-var/MyContract.clear.teal b/tests/approvals/out/unoptimized/template-var/MyContract.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/template-var/MyContract.clear.teal +++ b/tests/approvals/out/unoptimized/template-var/MyContract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/uint64-expressions/DemoContract.approval.teal b/tests/approvals/out/unoptimized/uint64-expressions/DemoContract.approval.teal index efa6127bc..fd290234d 100644 --- a/tests/approvals/out/unoptimized/uint64-expressions/DemoContract.approval.teal +++ b/tests/approvals/out/unoptimized/uint64-expressions/DemoContract.approval.teal @@ -3,6 +3,8 @@ // tests/approvals/uint64-expressions.algo.ts::DemoContract.approvalProgram() -> uint64: main: + +main_block@0: // tests/approvals/uint64-expressions.algo.ts:15 // test2() callsub test2 @@ -14,4 +16,6 @@ main: // tests/approvals/uint64-expressions.algo.ts::test2() -> void: test2: + +test2_block@0: retsub diff --git a/tests/approvals/out/unoptimized/uint64-expressions/DemoContract.clear.teal b/tests/approvals/out/unoptimized/uint64-expressions/DemoContract.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/uint64-expressions/DemoContract.clear.teal +++ b/tests/approvals/out/unoptimized/uint64-expressions/DemoContract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return diff --git a/tests/approvals/out/unoptimized/while-loops/DemoContract.approval.teal b/tests/approvals/out/unoptimized/while-loops/DemoContract.approval.teal index 45801caa6..941748c93 100644 --- a/tests/approvals/out/unoptimized/while-loops/DemoContract.approval.teal +++ b/tests/approvals/out/unoptimized/while-loops/DemoContract.approval.teal @@ -5,6 +5,8 @@ main: intcblock 0 1 +main_block@0: + main_block@1: // tests/approvals/while-loops.algo.ts:4 // class DemoContract extends Contract { @@ -89,6 +91,8 @@ testWhile: // tests/approvals/while-loops.algo.ts:5 // public testWhile(stop: uint64) { proto 1 1 + +testWhile_block@0: // tests/approvals/while-loops.algo.ts:6 // let i = Uint64(0) intc_0 // 0 @@ -124,4 +128,6 @@ testWhile_after_while@3: // tests/approvals/while-loops.algo.ts::DemoContract.__algots__.defaultCreate() -> void: __algots__.defaultCreate: + +__algots__.defaultCreate_block@0: retsub diff --git a/tests/approvals/out/unoptimized/while-loops/DemoContract.arc32.json b/tests/approvals/out/unoptimized/while-loops/DemoContract.arc32.json index 8b603014d..84e7bfe6f 100644 --- a/tests/approvals/out/unoptimized/while-loops/DemoContract.arc32.json +++ b/tests/approvals/out/unoptimized/while-loops/DemoContract.arc32.json @@ -7,8 +7,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgyOGE1MmQ3MyAvLyBtZXRob2QgInRlc3RXaGlsZSh1aW50NjQpdWludDY0IgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl90ZXN0V2hpbGVfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy93aGlsZS1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3doaWxlLWxvb3BzLmFsZ28udHM6OkRlbW9Db250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMToKICAgIHJldHVybgoKbWFpbl90ZXN0V2hpbGVfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy93aGlsZS1sb29wcy5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyB0ZXN0V2hpbGUoc3RvcDogdWludDY0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo1CiAgICAvLyBwdWJsaWMgdGVzdFdoaWxlKHN0b3A6IHVpbnQ2NCkgewogICAgY2FsbHN1YiB0ZXN0V2hpbGUKICAgIGl0b2IKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy93aGlsZS1sb29wcy5hbGdvLnRzOjpEZW1vQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDg6CgptYWluX3N3aXRjaF9jYXNlX25leHRAOToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEwCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3doaWxlLWxvb3BzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL3doaWxlLWxvb3BzLmFsZ28udHM6OkRlbW9Db250cmFjdC50ZXN0V2hpbGUoc3RvcDogdWludDY0KSAtPiB1aW50NjQ6CnRlc3RXaGlsZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy93aGlsZS1sb29wcy5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyB0ZXN0V2hpbGUoc3RvcDogdWludDY0KSB7CiAgICBwcm90byAxIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy93aGlsZS1sb29wcy5hbGdvLnRzOjYKICAgIC8vIGxldCBpID0gVWludDY0KDApCiAgICBpbnRjXzAgLy8gMAoKdGVzdFdoaWxlX3doaWxlX3RvcEAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3doaWxlLWxvb3BzLmFsZ28udHM6NwogICAgLy8gd2hpbGUgKGkgPCBzdG9wKSB7CiAgICBmcmFtZV9kaWcgMAogICAgZnJhbWVfZGlnIC0xCiAgICA8CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo3LTkKICAgIC8vIHdoaWxlIChpIDwgc3RvcCkgewogICAgLy8gICBpICs9IDEKICAgIC8vIH0KICAgIGJ6IHRlc3RXaGlsZV9hZnRlcl93aGlsZUAzCgp0ZXN0V2hpbGVfd2hpbGVfYm9keUAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3doaWxlLWxvb3BzLmFsZ28udHM6OAogICAgLy8gaSArPSAxCiAgICBmcmFtZV9kaWcgMAogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMAogICAgYiB0ZXN0V2hpbGVfd2hpbGVfdG9wQDEKCnRlc3RXaGlsZV9hZnRlcl93aGlsZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3doaWxlLWxvb3BzLmFsZ28udHM6MTEKICAgIC8vIHJldHVybiBpCiAgICBmcmFtZV9kaWcgMAogICAgc3dhcAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3doaWxlLWxvb3BzLmFsZ28udHM6OkRlbW9Db250cmFjdC5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgyOGE1MmQ3MyAvLyBtZXRob2QgInRlc3RXaGlsZSh1aW50NjQpdWludDY0IgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl90ZXN0V2hpbGVfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy93aGlsZS1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3doaWxlLWxvb3BzLmFsZ28udHM6OkRlbW9Db250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMToKICAgIHJldHVybgoKbWFpbl90ZXN0V2hpbGVfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy93aGlsZS1sb29wcy5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyB0ZXN0V2hpbGUoc3RvcDogdWludDY0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo1CiAgICAvLyBwdWJsaWMgdGVzdFdoaWxlKHN0b3A6IHVpbnQ2NCkgewogICAgY2FsbHN1YiB0ZXN0V2hpbGUKICAgIGl0b2IKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy93aGlsZS1sb29wcy5hbGdvLnRzOjpEZW1vQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDg6CgptYWluX3N3aXRjaF9jYXNlX25leHRAOToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEwCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3doaWxlLWxvb3BzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL3doaWxlLWxvb3BzLmFsZ28udHM6OkRlbW9Db250cmFjdC50ZXN0V2hpbGUoc3RvcDogdWludDY0KSAtPiB1aW50NjQ6CnRlc3RXaGlsZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy93aGlsZS1sb29wcy5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyB0ZXN0V2hpbGUoc3RvcDogdWludDY0KSB7CiAgICBwcm90byAxIDEKCnRlc3RXaGlsZV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3doaWxlLWxvb3BzLmFsZ28udHM6NgogICAgLy8gbGV0IGkgPSBVaW50NjQoMCkKICAgIGludGNfMCAvLyAwCgp0ZXN0V2hpbGVfd2hpbGVfdG9wQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo3CiAgICAvLyB3aGlsZSAoaSA8IHN0b3ApIHsKICAgIGZyYW1lX2RpZyAwCiAgICBmcmFtZV9kaWcgLTEKICAgIDwKICAgIC8vIHRlc3RzL2FwcHJvdmFscy93aGlsZS1sb29wcy5hbGdvLnRzOjctOQogICAgLy8gd2hpbGUgKGkgPCBzdG9wKSB7CiAgICAvLyAgIGkgKz0gMQogICAgLy8gfQogICAgYnogdGVzdFdoaWxlX2FmdGVyX3doaWxlQDMKCnRlc3RXaGlsZV93aGlsZV9ib2R5QDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo4CiAgICAvLyBpICs9IDEKICAgIGZyYW1lX2RpZyAwCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgZnJhbWVfYnVyeSAwCiAgICBiIHRlc3RXaGlsZV93aGlsZV90b3BAMQoKdGVzdFdoaWxlX2FmdGVyX3doaWxlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czoxMQogICAgLy8gcmV0dXJuIGkKICAgIGZyYW1lX2RpZyAwCiAgICBzd2FwCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { "global": { diff --git a/tests/approvals/out/unoptimized/while-loops/DemoContract.arc56.json b/tests/approvals/out/unoptimized/while-loops/DemoContract.arc56.json index c747bb6e0..3b2ee4355 100644 --- a/tests/approvals/out/unoptimized/while-loops/DemoContract.arc56.json +++ b/tests/approvals/out/unoptimized/while-loops/DemoContract.arc56.json @@ -87,8 +87,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgyOGE1MmQ3MyAvLyBtZXRob2QgInRlc3RXaGlsZSh1aW50NjQpdWludDY0IgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl90ZXN0V2hpbGVfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy93aGlsZS1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3doaWxlLWxvb3BzLmFsZ28udHM6OkRlbW9Db250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMToKICAgIHJldHVybgoKbWFpbl90ZXN0V2hpbGVfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy93aGlsZS1sb29wcy5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyB0ZXN0V2hpbGUoc3RvcDogdWludDY0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo1CiAgICAvLyBwdWJsaWMgdGVzdFdoaWxlKHN0b3A6IHVpbnQ2NCkgewogICAgY2FsbHN1YiB0ZXN0V2hpbGUKICAgIGl0b2IKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy93aGlsZS1sb29wcy5hbGdvLnRzOjpEZW1vQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDg6CgptYWluX3N3aXRjaF9jYXNlX25leHRAOToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEwCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3doaWxlLWxvb3BzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL3doaWxlLWxvb3BzLmFsZ28udHM6OkRlbW9Db250cmFjdC50ZXN0V2hpbGUoc3RvcDogdWludDY0KSAtPiB1aW50NjQ6CnRlc3RXaGlsZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy93aGlsZS1sb29wcy5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyB0ZXN0V2hpbGUoc3RvcDogdWludDY0KSB7CiAgICBwcm90byAxIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy93aGlsZS1sb29wcy5hbGdvLnRzOjYKICAgIC8vIGxldCBpID0gVWludDY0KDApCiAgICBpbnRjXzAgLy8gMAoKdGVzdFdoaWxlX3doaWxlX3RvcEAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3doaWxlLWxvb3BzLmFsZ28udHM6NwogICAgLy8gd2hpbGUgKGkgPCBzdG9wKSB7CiAgICBmcmFtZV9kaWcgMAogICAgZnJhbWVfZGlnIC0xCiAgICA8CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo3LTkKICAgIC8vIHdoaWxlIChpIDwgc3RvcCkgewogICAgLy8gICBpICs9IDEKICAgIC8vIH0KICAgIGJ6IHRlc3RXaGlsZV9hZnRlcl93aGlsZUAzCgp0ZXN0V2hpbGVfd2hpbGVfYm9keUAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3doaWxlLWxvb3BzLmFsZ28udHM6OAogICAgLy8gaSArPSAxCiAgICBmcmFtZV9kaWcgMAogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMAogICAgYiB0ZXN0V2hpbGVfd2hpbGVfdG9wQDEKCnRlc3RXaGlsZV9hZnRlcl93aGlsZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3doaWxlLWxvb3BzLmFsZ28udHM6MTEKICAgIC8vIHJldHVybiBpCiAgICBmcmFtZV9kaWcgMAogICAgc3dhcAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL3doaWxlLWxvb3BzLmFsZ28udHM6OkRlbW9Db250cmFjdC5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICByZXRzdWIK", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDA6CgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHgyOGE1MmQ3MyAvLyBtZXRob2QgInRlc3RXaGlsZSh1aW50NjQpdWludDY0IgogICAgc3dhcAogICAgbWF0Y2ggbWFpbl90ZXN0V2hpbGVfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy93aGlsZS1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIERlbW9Db250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL3doaWxlLWxvb3BzLmFsZ28udHM6OkRlbW9Db250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMToKICAgIHJldHVybgoKbWFpbl90ZXN0V2hpbGVfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy93aGlsZS1sb29wcy5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyB0ZXN0V2hpbGUoc3RvcDogdWludDY0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo1CiAgICAvLyBwdWJsaWMgdGVzdFdoaWxlKHN0b3A6IHVpbnQ2NCkgewogICAgY2FsbHN1YiB0ZXN0V2hpbGUKICAgIGl0b2IKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy93aGlsZS1sb29wcy5hbGdvLnRzOjpEZW1vQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTEKCm1haW5fYmFyZV9yb3V0aW5nQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo0CiAgICAvLyBjbGFzcyBEZW1vQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDg6CgptYWluX3N3aXRjaF9jYXNlX25leHRAOToKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEwCgptYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3doaWxlLWxvb3BzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgRGVtb0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL3doaWxlLWxvb3BzLmFsZ28udHM6OkRlbW9Db250cmFjdC50ZXN0V2hpbGUoc3RvcDogdWludDY0KSAtPiB1aW50NjQ6CnRlc3RXaGlsZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy93aGlsZS1sb29wcy5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyB0ZXN0V2hpbGUoc3RvcDogdWludDY0KSB7CiAgICBwcm90byAxIDEKCnRlc3RXaGlsZV9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL3doaWxlLWxvb3BzLmFsZ28udHM6NgogICAgLy8gbGV0IGkgPSBVaW50NjQoMCkKICAgIGludGNfMCAvLyAwCgp0ZXN0V2hpbGVfd2hpbGVfdG9wQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo3CiAgICAvLyB3aGlsZSAoaSA8IHN0b3ApIHsKICAgIGZyYW1lX2RpZyAwCiAgICBmcmFtZV9kaWcgLTEKICAgIDwKICAgIC8vIHRlc3RzL2FwcHJvdmFscy93aGlsZS1sb29wcy5hbGdvLnRzOjctOQogICAgLy8gd2hpbGUgKGkgPCBzdG9wKSB7CiAgICAvLyAgIGkgKz0gMQogICAgLy8gfQogICAgYnogdGVzdFdoaWxlX2FmdGVyX3doaWxlQDMKCnRlc3RXaGlsZV93aGlsZV9ib2R5QDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo4CiAgICAvLyBpICs9IDEKICAgIGZyYW1lX2RpZyAwCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgZnJhbWVfYnVyeSAwCiAgICBiIHRlc3RXaGlsZV93aGlsZV90b3BAMQoKdGVzdFdoaWxlX2FmdGVyX3doaWxlQDM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czoxMQogICAgLy8gcmV0dXJuIGkKICAgIGZyYW1lX2RpZyAwCiAgICBzd2FwCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvd2hpbGUtbG9vcHMuYWxnby50czo6RGVtb0NvbnRyYWN0Ll9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKCl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwOgogICAgcmV0c3ViCg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CgptYWluX2Jsb2NrQDA6CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CiACAAExGyITQQAvNhoAgAQopS1zTI4BAAIiQzEZIhJEMRgiE0Q2GgEXiAAlFoAEFR98dUxQsCNC/+AxGSJMjgEAA0L/1DEYIhJEiAAdI0L/yYoBASKLAIv/DEEACYsAIwiMAEL/74sATImJ", @@ -99,7 +99,7 @@ "compilerVersion": { "major": 4, "minor": 4, - "patch": 0 + "patch": 2 } }, "events": [], diff --git a/tests/approvals/out/unoptimized/while-loops/DemoContract.clear.teal b/tests/approvals/out/unoptimized/while-loops/DemoContract.clear.teal index a4d580477..00bb3f1d1 100644 --- a/tests/approvals/out/unoptimized/while-loops/DemoContract.clear.teal +++ b/tests/approvals/out/unoptimized/while-loops/DemoContract.clear.teal @@ -3,5 +3,7 @@ // @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: main: + +main_block@0: pushint 1 // 1 return