ZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL01ha2VfYWxsLm1hayBiL3NyYy90ZXN0ZGlyL01ha2VfYWxsLm1hawppbmRleCBkNTE3NjY3Li5iMmQ5YWM2IDEwMDY0NAotLS0gYS9zcmMvdGVzdGRpci9NYWtlX2FsbC5tYWsKKysrIGIvc3JjL3Rlc3RkaXIvTWFrZV9hbGwubWFrCkBAIC0xNCw5ICsxNCw3IEBACiAjIFRlc3RzIHRoYXQgcnVuIG9uIGFsbCBzeXN0ZW1zLgogU0NSSVBUU19BTEwgPSBcCiAJdGVzdDQyLm91dCBcCi0JdGVzdDQ0Lm91dCBcCi0JdGVzdDcwLm91dCBcCi0JdGVzdDk5Lm91dAorCXRlc3Q3MC5vdXQKIAogIyBUZXN0cyB0aGF0IHJ1biBvbiBtb3N0IHN5c3RlbXMsIGJ1dCBub3Qgb24gQW1pZ2EuCiBTQ1JJUFRTX01PUkUxID0gXApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RkaXIvTWFrZV92bXMubW1zIGIvc3JjL3Rlc3RkaXIvTWFrZV92bXMubW1zCmluZGV4IDk5MWEyZjcuLjM1MmU1NTMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL01ha2Vfdm1zLm1tcworKysgYi9zcmMvdGVzdGRpci9NYWtlX3Ztcy5tbXMKQEAgLTc0LDcgKzc0LDcgQEAKIC5TVUZGSVhFUyA6IC5vdXQgLmluCiAKIFNDUklQVCA9IHRlc3QxLm91dCBcCi0gICAgICAgdGVzdDQyLm91dCB0ZXN0NDQub3V0IHRlc3Q0OS5vdXQgdGVzdDc3YS5vdXQgdGVzdDk5Lm91dAorICAgICAgIHRlc3Q0Mi5vdXQgdGVzdDQ5Lm91dCB0ZXN0NzdhLm91dAogCiAjIEtub3duIHByb2JsZW1zOgogIwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RkaXIvdGVzdDQ0LmluIGIvc3JjL3Rlc3RkaXIvdGVzdDQ0LmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTI2MzkyLi4wMDAwMDAwCi0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3Q0NC5pbgorKysgL2Rldi9udWxsCkBAIC0xLDgxICswLDAgQEAKLVRlc3RzIGZvciByZWdleHAgd2l0aCBtdWx0aS1ieXRlIGVuY29kaW5nIGFuZCB2YXJpb3VzIG1hZ2ljIHNldHRpbmdzLgotVGVzdCBtYXRjaHN0cigpIHdpdGggYSBjb3VudCBhbmQgbXVsdGktYnl0ZSBjaGFycy4KLVNlZSB0ZXN0OTkgZm9yIGV4YWN0bHkgdGhlIHNhbWUgdGVzdCB3aXRoIHJlPTIuCi0KLVNUQVJUVEVTVAotOnNvIG1ieXRlLnZpbQotOnNldCBub2NvbXBhdGlibGUgZW5jb2Rpbmc9dXRmLTggdGVybWVuY29kaW5nPWxhdGluMSB2aW1pbmZvKz1udmltaW5mbwotOnNldCByZT0xCi0vXjEKLS9hKmJcezJ9Y1wrL2UKLXgvXE1kXCplXHsyfWZcKy9lCi14OnNldCBub21hZ2ljCi0vZ1wqaFx7Mn1pXCsvZQoteC9cbWoqa1x7Mn1sXCsvZQoteC9cdm0qbnsyfW8rL2UKLXgvXFZeYWEkCi14OnNldCBtYWdpYwotL1x2KGEpKGIpXDJcMVwxL2UKLXgvXFZbYWJdXChcW3h5XVwpXDEKLXg6IiBOb3cgc2VhcmNoIGZvciBtdWx0aS1ieXRlIHdpdGhvdXQgY29tcG9zaW5nIGNoYXIKLS/guKEKLXg6IiBOb3cgc2VhcmNoIGZvciBtdWx0aS1ieXRlIHdpdGggY29tcG9zaW5nIGNoYXIKLS/guKHguYgKLXg6IiBmaW5kIHdvcmQgYnkgY2hhbmdlIG9mIHdvcmQgY2xhc3MKLS/jgaFcPOOCq+ODqFw+44GvCi14OiIgVGVzdCBcJXUsIFtcdV0gYW5kIGZyaWVuZHMKLToiIGMKLS9cJXUyMGFjCi14OiIgZAotL1tcdTRmN2ZcdTU5MjldXCsKLXg6IiBlCi0vXCVVMTIzNDU2NzgKLXg6IiBmCi0vW1xVMTIzNGFiY2RcdTEyMzRcdWFiY2RdCi14OiIgZwotL1wlZDIxODc5YgoteDoiIGogVGVzdCBiYWNrd2FyZHMgc2VhcmNoIGZyb20gYSBtdWx0aS1ieXRlIGNoYXIKLS94Ci14Py4KLXg6IiBrCi06bGV0IEB3PSc6JXMjY29tYltpXW5hdGlvbnMjxZPMhOG5o8yBbcylzITOscyEzIbMgSNnJwotOkB3Ci06IgotOiIgbCBUZXN0IHdoYXQgNy4zLjE5MiBmaXhlZAotL15sCi06cy8gXD8vIC9nCi06P14xPywkdyEgdGVzdC5vdXQKLTplISB0ZXN0Lm91dAotRzpwdXQgPW1hdGNoc3RyKFwi15DXkdeS15NcIiwgXCIuXCIsIDAsIDIpICIg15EKLTpwdXQgPW1hdGNoc3RyKFwi15DXkdeS15NcIiwgXCIuLlwiLCAwLCAyKSAiINeR15IKLTpwdXQgPW1hdGNoc3RyKFwi15DXkdeS15NcIiwgXCIuXCIsIDAsIDApICIg15AKLTpwdXQgPW1hdGNoc3RyKFwi15DXkdeS15NcIiwgXCIuXCIsIDQsIC0xKSAiINeSCi06bmV3Ci06JHB1dCA9Wydkb2coYScsICdjYXQoJ10KLS8oL2UrCi0iYXluOmJkIQotOiRwdXQgPScnCi1HImFwCi06dyEKLTpxYSEKLUVORFRFU1QKLQotMSBhIGFhIGFiYiBhYmJjY2MKLTIgZCBkZCBkZWUgZGVlZmZmCi0zIGcgZ2cgZ2hoIGdoaGlpaQotNCBqIGpqIGprayBqa2tsbGwKLTUgbSBtbSBtbm4gbW5ub29vCi02IHggXmFhJCB4Ci03IChhKShiKSBhYmJhYQotOCBheHggW2FiXXh4Ci05IOC4q+C4oeC5iHgg4Lit4LiheAotYSDguK3guKF4IOC4q+C4oeC5iHgKLWIg44Gh44Kr44Oo44GvCi1jIHggwqzigqx4Ci1kIOWkqeS9v3gKLWUg/JKNhZm4eQotZiD8ko2Kr416Ci1nIGHllbdiYgotaiAwMTIz4p2keAotayBjb21iaW5hdGlvbnMKLWwgw6TDtiDDvM6xzITMhsyBCmRpZmYgLS1naXQgYS9zcmMvdGVzdGRpci90ZXN0NDQub2sgYi9zcmMvdGVzdGRpci90ZXN0NDQub2sKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1Nzc0ZDcuLjAwMDAwMDAKLS0tIGEvc3JjL3Rlc3RkaXIvdGVzdDQ0Lm9rCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotMSBhIGFhIGFiYiBhYmJjYwotMiBkIGRkIGRlZSBkZWVmZgotMyBnIGdnIGdoaCBnaGhpaQotNCBqIGpqIGprayBqa2tsbAotNSBtIG1tIG1ubiBtbm5vbwotNiB4IGFhJCB4Ci03IChhKShiKSBhYmJhCi04IGF4eCBhYl14eAotOSDguKvguKHguYh4IOC4rXgKLWEg4Lit4LiheCDguKt4Ci1iIOOCq+ODqOOBrwotYyB4IMKseAotZCDkvb94Ci1lIHkKLWYgegotZyBhYmIKLWogMDEy4p2kCi1rIMWTzIThuaPMgW3MpcyEzrHMhMyGzIEKLSBsIMOkIMO2IMO8IM6xzITMhsyBCi3XkQot15HXkgot15AKLdeSCi1hCi1jYXQoCmRpZmYgLS1naXQgYS9zcmMvdGVzdGRpci90ZXN0OTkuaW4gYi9zcmMvdGVzdGRpci90ZXN0OTkuaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5NjEyNDQuLjAwMDAwMDAKLS0tIGEvc3JjL3Rlc3RkaXIvdGVzdDk5LmluCisrKyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBAQAotVGVzdHMgZm9yIHJlZ2V4cCB3aXRoIG11bHRpLWJ5dGUgZW5jb2RpbmcgYW5kIHZhcmlvdXMgbWFnaWMgc2V0dGluZ3MuCi1UZXN0IG1hdGNoc3RyKCkgd2l0aCBhIGNvdW50IGFuZCBtdWx0aS1ieXRlIGNoYXJzLgotU2VlIHRlc3Q0NCBmb3IgZXhhY3RseSB0aGUgc2FtZSB0ZXN0IHdpdGggcmU9MS4KLQotU1RBUlRURVNUCi06c28gbWJ5dGUudmltCi06c2V0IG5vY29tcGF0aWJsZSBlbmNvZGluZz11dGYtOCB0ZXJtZW5jb2Rpbmc9bGF0aW4xIHZpbWluZm8rPW52aW1pbmZvCi06c2V0IHJlPTIKLS9eMQotL2EqYlx7Mn1jXCsvZQoteC9cTWRcKmVcezJ9ZlwrL2UKLXg6c2V0IG5vbWFnaWMKLS9nXCpoXHsyfWlcKy9lCi14L1xtaiprXHsyfWxcKy9lCi14L1x2bSpuezJ9bysvZQoteC9cVl5hYSQKLXg6c2V0IG1hZ2ljCi0vXHYoYSkoYilcMlwxXDEvZQoteC9cVlthYl1cKFxbeHldXClcMQoteDoiIE5vdyBzZWFyY2ggZm9yIG11bHRpLWJ5dGUgd2l0aG91dCBjb21wb3NpbmcgY2hhcgotL+C4oQoteDoiIE5vdyBzZWFyY2ggZm9yIG11bHRpLWJ5dGUgd2l0aCBjb21wb3NpbmcgY2hhcgotL+C4oeC5iAoteDoiIGZpbmQgd29yZCBieSBjaGFuZ2Ugb2Ygd29yZCBjbGFzcwotL+OBoVw844Kr44OoXD7jga8KLXg6IiBUZXN0IFwldSwgW1x1XSBhbmQgZnJpZW5kcwotL1wldTIwYWMKLXgvW1x1NGY3Zlx1NTkyOV1cKwoteC9cJVUxMjM0NTY3OAoteC9bXFUxMjM0YWJjZFx1MTIzNFx1YWJjZF0KLXgvXCVkMjE4NzliCi14OiIgVGVzdCBiYWNrd2FyZHMgc2VhcmNoIGZyb20gYSBtdWx0aS1ieXRlIGNoYXIKLS94Ci14Py4KLXg6bGV0IEB3PSc6JXMjY29tYltpXW5hdGlvbnMjxZPMhOG5o8yBbcylzITOscyEzIbMgSNnJwotOkB3Ci06IgotOiIgbCBUZXN0IHdoYXQgNy4zLjE5MiBmaXhlZAotL15sCi06cy8gXD8vIC9nCi06P14xPywkdyEgdGVzdC5vdXQKLTplISB0ZXN0Lm91dAotRzpwdXQgPW1hdGNoc3RyKFwi15DXkdeS15NcIiwgXCIuXCIsIDAsIDIpICIg15EKLTpwdXQgPW1hdGNoc3RyKFwi15DXkdeS15NcIiwgXCIuLlwiLCAwLCAyKSAiINeR15IKLTpwdXQgPW1hdGNoc3RyKFwi15DXkdeS15NcIiwgXCIuXCIsIDAsIDApICIg15AKLTpwdXQgPW1hdGNoc3RyKFwi15DXkdeS15NcIiwgXCIuXCIsIDQsIC0xKSAiINeSCi06dyEKLTpxYSEKLUVORFRFU1QKLQotMSBhIGFhIGFiYiBhYmJjY2MKLTIgZCBkZCBkZWUgZGVlZmZmCi0zIGcgZ2cgZ2hoIGdoaGlpaQotNCBqIGpqIGprayBqa2tsbGwKLTUgbSBtbSBtbm4gbW5ub29vCi02IHggXmFhJCB4Ci03IChhKShiKSBhYmJhYQotOCBheHggW2FiXXh4Ci05IOC4q+C4oeC5iHgg4Lit4LiheAotYSDguK3guKF4IOC4q+C4oeC5iHgKLWIg44Gh44Kr44Oo44GvCi1jIHggwqzigqx4Ci1kIOWkqeS9v3gKLWUg/JKNhZm4eQotZiD8ko2Kr416Ci1nIGHllbdiYgotaiAwMTIz4p2keAotayBjb21iaW5hdGlvbnMKLWwgw6TDtiDDvM6xzITMhsyBCmRpZmYgLS1naXQgYS9zcmMvdGVzdGRpci90ZXN0OTkub2sgYi9zcmMvdGVzdGRpci90ZXN0OTkub2sKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlYTM2NjUuLjAwMDAwMDAKLS0tIGEvc3JjL3Rlc3RkaXIvdGVzdDk5Lm9rCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotMSBhIGFhIGFiYiBhYmJjYwotMiBkIGRkIGRlZSBkZWVmZgotMyBnIGdnIGdoaCBnaGhpaQotNCBqIGpqIGprayBqa2tsbAotNSBtIG1tIG1ubiBtbm5vbwotNiB4IGFhJCB4Ci03IChhKShiKSBhYmJhCi04IGF4eCBhYl14eAotOSDguKvguKHguYh4IOC4rXgKLWEg4Lit4LiheCDguKt4Ci1iIOOCq+ODqOOBrwotYyB4IMKseAotZCDkvb94Ci1lIHkKLWYgegotZyBhYmIKLWogMDEy4p2kCi1rIMWTzIThuaPMgW3MpcyEzrHMhMyGzIEKLSBsIMOkIMO2IMO8IM6xzITMhsyBCi3XkQot15HXkgot15AKLdeSCmRpZmYgLS1naXQgYS9zcmMvdGVzdGRpci90ZXN0X3JlZ2V4cF91dGY4LnZpbSBiL3NyYy90ZXN0ZGlyL3Rlc3RfcmVnZXhwX3V0ZjgudmltCmluZGV4IDUxMDBiMzcuLmNjN2RmOWUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3RfcmVnZXhwX3V0ZjgudmltCisrKyBiL3NyYy90ZXN0ZGlyL3Rlc3RfcmVnZXhwX3V0ZjgudmltCkBAIC0zNzcsNCArMzc3LDEyOCBAQAogICBzZXQgcmVnZXhwZW5naW5lJgogZW5kZnVuYwogCisiIFRlc3RzIGZvciByZWdleHAgd2l0aCBtdWx0aS1ieXRlIGVuY29kaW5nIGFuZCB2YXJpb3VzIG1hZ2ljIHNldHRpbmdzCitmdW5jIFJ1bl9yZWdleHBfbXVsdGlieXRlX21hZ2ljKCkKKyAgbGV0IHRleHQgPTw8IHRyaW0gRU5ECisgICAgMSBhIGFhIGFiYiBhYmJjY2MKKyAgICAyIGQgZGQgZGVlIGRlZWZmZgorICAgIDMgZyBnZyBnaGggZ2hoaWlpCisgICAgNCBqIGpqIGprayBqa2tsbGwKKyAgICA1IG0gbW0gbW5uIG1ubm9vbworICAgIDYgeCBeYWEkIHgKKyAgICA3IChhKShiKSBhYmJhYQorICAgIDggYXh4IFthYl14eAorICAgIDkg4Lir4Lih4LmIeCDguK3guKF4CisgICAgYSDguK3guKF4IOC4q+C4oeC5iHgKKyAgICBiIOOBoeOCq+ODqOOBrworICAgIGMgeCDCrOKCrHgKKyAgICBkIOWkqeS9v3gKKyAgICBlIPySjYWZuHkKKyAgICBmIPySjYqvjXoKKyAgICBnIGHllbdiYgorICAgIGogMDEyM+KdpHgKKyAgICBrIGNvbWJpbmF0aW9ucworICAgIGwgw6TDtiDDvM6xzITMhsyBCisgIEVORAorCisgIG5ldworICBjYWxsIHNldGxpbmUoMSwgdGV4dCkKKyAgZXhlICdub3JtYWwgL2EqYlx7Mn1jXCsvZScgLi4gIlw8Q1I+eCIKKyAgY2FsbCBhc3NlcnRfZXF1YWwoJzEgYSBhYSBhYmIgYWJiY2MnLCBnZXRsaW5lKCcuJykpCisgIGV4ZSAnbm9ybWFsIC9cTWRcKmVcezJ9ZlwrL2UnIC4uICJcPENSPngiCisgIGNhbGwgYXNzZXJ0X2VxdWFsKCcyIGQgZGQgZGVlIGRlZWZmJywgZ2V0bGluZSgnLicpKQorICBzZXQgbm9tYWdpYworICBleGUgJ25vcm1hbCAvZ1wqaFx7Mn1pXCsvZScgLi4gIlw8Q1I+eCIKKyAgY2FsbCBhc3NlcnRfZXF1YWwoJzMgZyBnZyBnaGggZ2hoaWknLCBnZXRsaW5lKCcuJykpCisgIGV4ZSAnbm9ybWFsIC9cbWoqa1x7Mn1sXCsvZScgLi4gIlw8Q1I+eCIKKyAgY2FsbCBhc3NlcnRfZXF1YWwoJzQgaiBqaiBqa2sgamtrbGwnLCBnZXRsaW5lKCcuJykpCisgIGV4ZSAnbm9ybWFsIC9cdm0qbnsyfW8rL2UnIC4uICJcPENSPngiCisgIGNhbGwgYXNzZXJ0X2VxdWFsKCc1IG0gbW0gbW5uIG1ubm9vJywgZ2V0bGluZSgnLicpKQorICBleGUgJ25vcm1hbCAvXFZeYWEkLycgLi4gIlw8Q1I+eCIKKyAgY2FsbCBhc3NlcnRfZXF1YWwoJzYgeCBhYSQgeCcsIGdldGxpbmUoJy4nKSkKKyAgc2V0IG1hZ2ljCisgIGV4ZSAnbm9ybWFsIC9cdihhKShiKVwyXDFcMS9lJyAuLiAiXDxDUj54IgorICBjYWxsIGFzc2VydF9lcXVhbCgnNyAoYSkoYikgYWJiYScsIGdldGxpbmUoJy4nKSkKKyAgZXhlICdub3JtYWwgL1xWW2FiXVwoXFt4eV1cKVwxJyAuLiAiXDxDUj54IgorICBjYWxsIGFzc2VydF9lcXVhbCgnOCBheHggYWJdeHgnLCBnZXRsaW5lKCcuJykpCisKKyAgIiBzZWFyY2ggZm9yIG11bHRpLWJ5dGUgd2l0aG91dCBjb21wb3NpbmcgY2hhcgorICBleGUgJ25vcm1hbCAv4LihJyAuLiAiXDxDUj54IgorICBjYWxsIGFzc2VydF9lcXVhbCgnOSDguKvguKHguYh4IOC4rXgnLCBnZXRsaW5lKCcuJykpCisKKyAgIiBzZWFyY2ggZm9yIG11bHRpLWJ5dGUgd2l0aCBjb21wb3NpbmcgY2hhcgorICBleGUgJ25vcm1hbCAv4Lih4LmIJyAuLiAiXDxDUj54IgorICBjYWxsIGFzc2VydF9lcXVhbCgnYSDguK3guKF4IOC4q3gnLCBnZXRsaW5lKCcuJykpCisKKyAgIiBmaW5kIHdvcmQgYnkgY2hhbmdlIG9mIHdvcmQgY2xhc3MKKyAgZXhlICdub3JtYWwgL+OBoVw844Kr44OoXD7jga8nIC4uICJcPENSPngiCisgIGNhbGwgYXNzZXJ0X2VxdWFsKCdiIOOCq+ODqOOBrycsIGdldGxpbmUoJy4nKSkKKworICAiIFRlc3QgXCV1LCBbXHVdIGFuZCBmcmllbmRzCisgICIgYworICBleGUgJ25vcm1hbCAvXCV1MjBhYycgLi4gIlw8Q1I+eCIKKyAgY2FsbCBhc3NlcnRfZXF1YWwoJ2MgeCDCrHgnLCBnZXRsaW5lKCcuJykpCisgICIgZAorICBleGUgJ25vcm1hbCAvW1x1NGY3Zlx1NTkyOV1cKycgLi4gIlw8Q1I+eCIKKyAgY2FsbCBhc3NlcnRfZXF1YWwoJ2Qg5L2/eCcsIGdldGxpbmUoJy4nKSkKKyAgIiBlCisgIGV4ZSAnbm9ybWFsIC9cJVUxMjM0NTY3OCcgLi4gIlw8Q1I+eCIKKyAgY2FsbCBhc3NlcnRfZXF1YWwoJ2UgeScsIGdldGxpbmUoJy4nKSkKKyAgIiBmCisgIGV4ZSAnbm9ybWFsIC9bXFUxMjM0YWJjZFx1MTIzNFx1YWJjZF0nIC4uICJcPENSPngiCisgIGNhbGwgYXNzZXJ0X2VxdWFsKCdmIHonLCBnZXRsaW5lKCcuJykpCisgICIgZworICBleGUgJ25vcm1hbCAvXCVkMjE4NzliJyAuLiAiXDxDUj54IgorICBjYWxsIGFzc2VydF9lcXVhbCgnZyBhYmInLCBnZXRsaW5lKCcuJykpCisKKyAgIiBqIFRlc3QgYmFja3dhcmRzIHNlYXJjaCBmcm9tIGEgbXVsdGktYnl0ZSBjaGFyCisgIGV4ZSAibm9ybWFsIC94XDxDUj54Py5cPENSPngiCisgIGNhbGwgYXNzZXJ0X2VxdWFsKCdqIDAxMuKdpCcsIGdldGxpbmUoJy4nKSkKKyAgIiBrCisgIGxldCBAdz0nOiVzI2NvbWJbaV1uYXRpb25zI8WTzIThuaPMgW3MpcyEzrHMhMyGzIEjZycKKyAgQHcKKyAgY2FsbCBhc3NlcnRfZXF1YWwoJ2sgxZPMhOG5o8yBbcylzITOscyEzIbMgScsIGdldGxpbmUoMTgpKQorCisgIGNsb3NlIQorZW5kZnVuYworCitmdW5jIFRlc3RfcmVnZXhwX211bHRpYnl0ZV9tYWdpYygpCisgIHNldCByZWdleHBlbmdpbmU9MQorICBjYWxsIFJ1bl9yZWdleHBfbXVsdGlieXRlX21hZ2ljKCkKKyAgc2V0IHJlZ2V4cGVuZ2luZT0yCisgIGNhbGwgUnVuX3JlZ2V4cF9tdWx0aWJ5dGVfbWFnaWMoKQorICBzZXQgcmVnZXhwZW5naW5lJgorZW5kZnVuYworCisiIFRlc3QgZm9yIDcuMy4xOTIKKyIgY29tbWFuZCAiOnMvIFw/LyAvZyIgc3BsaXRzIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBpbnRvIGJ5dGVzCitmdW5jIFRlc3Rfc3BsaXRfbXVsdGlieXRlX3RvX2J5dGVzKCkKKyAgbmV3CisgIGNhbGwgc2V0bGluZSgxLCAnbCDDpMO2IMO8zrHMhMyGzIEnKQorICBzLyBcPy8gL2cKKyAgY2FsbCBhc3NlcnRfZXF1YWwoJyBsIMOkIMO2IMO8IM6xzITMhsyBJywgZ2V0bGluZSgxKSkKKyAgY2xvc2UhCitlbmRmdW5jCisKKyIgVGVzdCBmb3IgbWF0Y2hzdHIoKSB3aXRoIG11bHRpYnl0ZSBjaGFyYWN0ZXJzCitmdW5jIFRlc3RfbWF0Y2hzdHJfbXVsdGlieXRlKCkKKyAgbmV3CisgIGNhbGwgYXNzZXJ0X2VxdWFsKCfXkScsIG1hdGNoc3RyKCLXkNeR15LXkyIsICIuIiwgMCwgMikpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKCfXkdeSJywgbWF0Y2hzdHIoIteQ15HXkteTIiwgIi4uIiwgMCwgMikpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKCfXkCcsIG1hdGNoc3RyKCLXkNeR15LXkyIsICIuIiwgMCwgMCkpCisgIGNhbGwgYXNzZXJ0X2VxdWFsKCfXkicsIG1hdGNoc3RyKCLXkNeR15LXkyIsICIuIiwgNCwgLTEpKQorICBjbG9zZSEKK2VuZGZ1bmMKKworIiBUZXN0IGZvciA3LjQuNjM2CisiIEEgc2VhcmNoIHdpdGggZW5kIG9mZnNldCBnZXRzIHN0dWNrIGF0IGVuZCBvZiBmaWxlLgorZnVuYyBUZXN0X3NlYXJjaF93aXRoX2VuZF9vZmZzZXQoKQorICBuZXcKKyAgY2FsbCBzZXRsaW5lKDEsIFsnJywgJ2RvZyhhJywgJ2NhdCgnXSkKKyAgZXhlICJub3JtYWwgLygvZSsiIC4uICJcPENSPiIKKyAgbm9ybWFsICJheW4KKyAgY2FsbCBhc3NlcnRfZXF1YWwoImFcbmNhdCgiLCBAYSkKKyAgY2xvc2UhCitlbmRmdW5jCisKICIgdmltOiBzaGlmdHdpZHRoPTIgc3RzPTIgZXhwYW5kdGFiCg==