Re-generated website based on recent test case additions.

This commit is contained in:
David Fugate 2011-03-09 12:07:59 -08:00
parent efb7996904
commit 465b4d72bb
20 changed files with 777 additions and 20 deletions

View File

@ -2,7 +2,7 @@
<!-- adding section element if in the future we want to store information about the -->
<!-- spec structure in this file, for now the section structure is defined in the -->
<!-- sections.js file -->
<section name="Chapter - 15.12" numTests="81">
<section name="Chapter - 15.12" numTests="102">
<test id="15.12.1.1-0-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTIuMS4xLTAtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjEyLzE1LjEyLjEvMjUuMTIuMS4xLzE1LjEyLjEuMS0wLTEuanMiLA0KDQpkZXNjcmlwdGlvbjogIlRoZSBKU09OIGxleGljYWwgZ3JhbW1hciB0cmVhdHMgd2hpdGVzcGFjZSBhcyBhIHRva2VuIHNlcGVyYXRvciIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICANCiAgdHJ5IHsNCiAgICBKU09OLnBhcnNlKCcxMlx0XHJcbiAzNCcpOyAvLyBzaG91bGQgcHJvZHVjZSBhIHN5bnRheCBlcnJvciBhcyB3aGl0ZXNwYWNlIHJlc3VsdHMgaW4gdHdvIHRva2Vucw0KICAgIH0NCiAgY2F0Y2ggKGUpIHsNCiAgICAgIGlmIChlLm5hbWUgPT09ICdTeW50YXhFcnJvcicpIHJldHVybiB0cnVlOw0KICAgICAgfQ0KICB9LA0KICANCiBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXEgKCkgew0KICByZXR1cm4gSlNPTiAmJiBmbkV4aXN0cyhKU09OLnBhcnNlKSAmJiBKU09OLnBhcnNlKCcxMjM0Jyk9PT0xMjM0Ow0KIH0NCn0gKTsNCg==]]></test>
<test id="15.12.1.1-0-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTIuMS4xLTAtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjEyLzE1LjEyLjEvMjUuMTIuMS4xLzE1LjEyLjEuMS0wLTIuanMiLA0KDQpkZXNjcmlwdGlvbjogIjxWVD4gaXMgbm90IHZhbGlkIEpTT04gd2hpdGVzcGFjZSBhcyBzcGVjaWZpZWQgYnkgdGhlIHByb2R1Y3Rpb24gSlNPTldoaXRlc3BhY2UuIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIA0KICB0cnkgew0KICAgIEpTT04ucGFyc2UoJ1x1MDAwYjEyMzQnKTsgLy8gc2hvdWxkIHByb2R1Y2UgYSBzeW50YXggZXJyb3IgDQogICAgfQ0KICBjYXRjaCAoZSkgew0KICAgICAgcmV0dXJuIHRydWU7IC8vIHRyZWF0IGFueSBleGNlcHRpb24gYXMgYSBwYXNzLCBvdGhlciB0ZXN0cyBlbnN1cmUgdGhhdCBKU09OLnBhcnNlIHRocm93cyBTeW50YXhFcnJvciBleGNlcHRpb25zDQogICAgICB9DQogIH0sDQogIA0KIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcSAoKSB7DQogIHJldHVybiBKU09OICYmIGZuRXhpc3RzKEpTT04ucGFyc2UpICYmIEpTT04ucGFyc2UoJyAxMjM0Jyk9PT0xMjM0Ow0KIH0NCn0gKTsNCg==]]></test>
<test id="15.12.1.1-0-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTIuMS4xLTAtMyIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjEyLzE1LjEyLjEvMjUuMTIuMS4xLzE1LjEyLjEuMS0wLTMuanMiLA0KDQpkZXNjcmlwdGlvbjogIjxGRj4gaXMgbm90IHZhbGlkIEpTT04gd2hpdGVzcGFjZSBhcyBzcGVjaWZpZWQgYnkgdGhlIHByb2R1Y3Rpb24gSlNPTldoaXRlc3BhY2UuIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIA0KICB0cnkgew0KICAgIEpTT04ucGFyc2UoJ1x1MDAwYzEyMzQnKTsgLy8gc2hvdWxkIHByb2R1Y2UgYSBzeW50YXggZXJyb3IgDQogICAgfQ0KICBjYXRjaCAoZSkgew0KICAgICAgcmV0dXJuIHRydWU7IC8vIHRyZWF0IGFueSBleGNlcHRpb24gYXMgYSBwYXNzLCBvdGhlciB0ZXN0cyBlbnN1cmUgdGhhdCBKU09OLnBhcnNlIHRocm93cyBTeW50YXhFcnJvciBleGNlcHRpb25zDQogICAgICB9DQogIH0sDQogIA0KIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcSAoKSB7DQogIHJldHVybiBKU09OICYmIGZuRXhpc3RzKEpTT04ucGFyc2UpICYmIEpTT04ucGFyc2UoJyAxMjM0Jyk9PT0xMjM0Ow0KIH0NCn0gKTsNCg==]]></test>
@ -38,6 +38,16 @@
<test id="15.12.2-0-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTIuMi0wLTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMi8xNS4xMi4yLzE1LjEyLjItMC0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJKU09OLnBhcnNlIG11c3QgZXhpc3QgYXMgYSBmdW5jdGlvbiIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgZiA9IEpTT04ucGFyc2U7DQoNCiAgaWYgKHR5cGVvZihmKSA9PT0gImZ1bmN0aW9uIikgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcSAoKSB7DQogIHJldHVybiBKU09OICE9PSB1bmRlZmluZWQ7DQogIH0NCg0KfSk7DQo=]]></test>
<test id="15.12.2-0-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTIuMi0wLTIiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMi8xNS4xMi4yLzE1LjEyLjItMC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJKU09OLnBhcnNlIG11c3QgZXhpc3QgYXMgYSBmdW5jdGlvbiB0YWtpbmcgMiBwYXJhbWV0ZXJzIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBmID0gSlNPTi5wYXJzZTsNCg0KICBpZiAodHlwZW9mKGYpID09PSAiZnVuY3Rpb24iICYmIGYubGVuZ3RoID09PSAyKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQogcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVxICgpIHsNCiAgcmV0dXJuIEpTT04gIT09IHVuZGVmaW5lZDsNCiAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.12.2-0-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTIuMi0wLTMiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMi8xNS4xMi4yLzE1LjEyLjItMC0zLmpzIiwNCg0KZGVzY3JpcHRpb246ICJKU09OLnBhcnNlIG11c3QgYmUgZGVsZXRhYmxlIChjb25maWd1cmFibGUpIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBvID0gSlNPTjsNCiAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sICJwYXJzZSIpOw0KICByZXR1cm4gZGVzYy5jb25maWd1cmFibGUgPT09IHRydWU7DQogfSwNCiANCiBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXEgKCkgew0KICAgIHJldHVybiB0eXBlb2YgSlNPTiAhPSAidW5kZWZpbmVkIiAmJiBmbkV4aXN0cyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKQ0KICB9DQoNCn0pOw0K]]></test>
<test id="15.12.2-2-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMTIuMi0yLTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMTIvMTUuMTIuMi8xNS4xMi4yLTItMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkpTT04ucGFyc2UgLSBwYXJzaW5nIGFuIG9iamVjdCB3aGVyZSBwcm9wZXJ0eSBuYW1lIGlzIGEgbnVsbCBjaGFyYWN0ZXIiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHJlc3VsdCA9IHRydWU7DQoNCiAgICAgICAgdmFyIG51bGxDaGFycyA9IG5ldyBBcnJheSgpOw0KICAgICAgICBudWxsQ2hhcnNbMF0gPSAnXCJcdTAwMDBcIic7DQogICAgICAgIG51bGxDaGFyc1sxXSA9ICdcIlx1MDAwMVwiJzsNCiAgICAgICAgbnVsbENoYXJzWzJdID0gJ1wiXHUwMDAyXCInOw0KICAgICAgICBudWxsQ2hhcnNbM10gPSAnXCJcdTAwMDNcIic7DQogICAgICAgIG51bGxDaGFyc1s0XSA9ICdcIlx1MDAwNFwiJzsNCiAgICAgICAgbnVsbENoYXJzWzVdID0gJ1wiXHUwMDA1XCInOw0KICAgICAgICBudWxsQ2hhcnNbNl0gPSAnXCJcdTAwMDZcIic7DQogICAgICAgIG51bGxDaGFyc1s3XSA9ICdcIlx1MDAwN1wiJzsNCiAgICAgICAgbnVsbENoYXJzWzhdID0gJ1wiXHUwMDA4XCInOw0KICAgICAgICBudWxsQ2hhcnNbOV0gPSAnXCJcdTAwMDlcIic7DQogICAgICAgIG51bGxDaGFyc1sxMF0gPSAnXCJcdTAwMEFcIic7DQogICAgICAgIG51bGxDaGFyc1sxMV0gPSAnXCJcdTAwMEJcIic7DQogICAgICAgIG51bGxDaGFyc1sxMl0gPSAnXCJcdTAwMENcIic7DQogICAgICAgIG51bGxDaGFyc1sxM10gPSAnXCJcdTAwMERcIic7DQogICAgICAgIG51bGxDaGFyc1sxNF0gPSAnXCJcdTAwMEVcIic7DQogICAgICAgIG51bGxDaGFyc1sxNV0gPSAnXCJcdTAwMEZcIic7DQogICAgICAgIG51bGxDaGFyc1sxNl0gPSAnXCJcdTAwMTBcIic7DQogICAgICAgIG51bGxDaGFyc1sxN10gPSAnXCJcdTAwMTFcIic7DQogICAgICAgIG51bGxDaGFyc1sxOF0gPSAnXCJcdTAwMTJcIic7DQogICAgICAgIG51bGxDaGFyc1sxOV0gPSAnXCJcdTAwMTNcIic7DQogICAgICAgIG51bGxDaGFyc1syMF0gPSAnXCJcdTAwMTRcIic7DQogICAgICAgIG51bGxDaGFyc1syMV0gPSAnXCJcdTAwMTVcIic7DQogICAgICAgIG51bGxDaGFyc1syMl0gPSAnXCJcdTAwMTZcIic7DQogICAgICAgIG51bGxDaGFyc1syM10gPSAnXCJcdTAwMTdcIic7DQogICAgICAgIG51bGxDaGFyc1syNF0gPSAnXCJcdTAwMThcIic7DQogICAgICAgIG51bGxDaGFyc1syNV0gPSAnXCJcdTAwMTlcIic7DQogICAgICAgIG51bGxDaGFyc1syNl0gPSAnXCJcdTAwMUFcIic7DQogICAgICAgIG51bGxDaGFyc1syN10gPSAnXCJcdTAwMUJcIic7DQogICAgICAgIG51bGxDaGFyc1syOF0gPSAnXCJcdTAwMUNcIic7DQogICAgICAgIG51bGxDaGFyc1syOV0gPSAnXCJcdTAwMURcIic7DQogICAgICAgIG51bGxDaGFyc1szMF0gPSAnXCJcdTAwMUVcIic7DQogICAgICAgIG51bGxDaGFyc1szMV0gPSAnXCJcdTAwMUZcIic7DQoNCiAgICAgICAgZm9yICh2YXIgaW5kZXggaW4gbnVsbENoYXJzKSB7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIHZhciBvYmogPSBKU09OLnBhcnNlKCd7ICcgKyBudWxsQ2hhcnNbaW5kZXhdICsgJyA6ICJKb2huIiB9ICcpOw0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgJiYgZmFsc2UpOw0KICAgICAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgJiYgKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.12.2-2-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMTIuMi0yLTEwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjEyLzE1LjEyLjIvMTUuMTIuMi0yLTEwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiSlNPTi5wYXJzZSAtIHBhcnNpbmcgYW4gb2JqZWN0IHdoZXJlIHByb3BlcnR5IHZhbHVlIG1pZGRsZXMgd2l0aCBhIG51bGwgY2hhcmFjdGVyIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciByZXN1bHQgPSB0cnVlOw0KDQogICAgICAgIHZhciBudWxsQ2hhcnMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgbnVsbENoYXJzWzBdID0gJ1wiXHUwMDAwXCInOw0KICAgICAgICBudWxsQ2hhcnNbMV0gPSAnXCJcdTAwMDFcIic7DQogICAgICAgIG51bGxDaGFyc1syXSA9ICdcIlx1MDAwMlwiJzsNCiAgICAgICAgbnVsbENoYXJzWzNdID0gJ1wiXHUwMDAzXCInOw0KICAgICAgICBudWxsQ2hhcnNbNF0gPSAnXCJcdTAwMDRcIic7DQogICAgICAgIG51bGxDaGFyc1s1XSA9ICdcIlx1MDAwNVwiJzsNCiAgICAgICAgbnVsbENoYXJzWzZdID0gJ1wiXHUwMDA2XCInOw0KICAgICAgICBudWxsQ2hhcnNbN10gPSAnXCJcdTAwMDdcIic7DQogICAgICAgIG51bGxDaGFyc1s4XSA9ICdcIlx1MDAwOFwiJzsNCiAgICAgICAgbnVsbENoYXJzWzldID0gJ1wiXHUwMDA5XCInOw0KICAgICAgICBudWxsQ2hhcnNbMTBdID0gJ1wiXHUwMDBBXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTFdID0gJ1wiXHUwMDBCXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTJdID0gJ1wiXHUwMDBDXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTNdID0gJ1wiXHUwMDBEXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTRdID0gJ1wiXHUwMDBFXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTVdID0gJ1wiXHUwMDBGXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTZdID0gJ1wiXHUwMDEwXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTddID0gJ1wiXHUwMDExXCInOw0KICAgICAgICBudWxsQ2hhcnNbMThdID0gJ1wiXHUwMDEyXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTldID0gJ1wiXHUwMDEzXCInOw0KICAgICAgICBudWxsQ2hhcnNbMjBdID0gJ1wiXHUwMDE0XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjFdID0gJ1wiXHUwMDE1XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjJdID0gJ1wiXHUwMDE2XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjNdID0gJ1wiXHUwMDE3XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjRdID0gJ1wiXHUwMDE4XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjVdID0gJ1wiXHUwMDE5XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjZdID0gJ1wiXHUwMDFBXCInOw0KICAgICAgICBudWxsQ2hhcnNbMjddID0gJ1wiXHUwMDFCXCInOw0KICAgICAgICBudWxsQ2hhcnNbMjhdID0gJ1wiXHUwMDFDXCInOw0KICAgICAgICBudWxsQ2hhcnNbMjldID0gJ1wiXHUwMDFEXCInOw0KICAgICAgICBudWxsQ2hhcnNbMzBdID0gJ1wiXHUwMDFFXCInOw0KICAgICAgICBudWxsQ2hhcnNbMzFdID0gJ1wiXHUwMDFGXCInOw0KDQogICAgICAgIGZvciAodmFyIGluZGV4IGluIG51bGxDaGFycykgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICB2YXIgb2JqID0gSlNPTi5wYXJzZSgneyAibmFtZSIgOiAnICsgIkpvIiArIG51bGxDaGFyc1tpbmRleF0gKyAiaG4iICsgJyB9ICcpOw0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgJiYgZmFsc2UpOw0KICAgICAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgJiYgKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.12.2-2-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMTIuMi0yLTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMTIvMTUuMTIuMi8xNS4xMi4yLTItMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkpTT04ucGFyc2UgLSBwYXJzaW5nIGFuIG9iamVjdCB3aGVyZSBwcm9wZXJ0eSBuYW1lIHN0YXJ0cyB3aXRoIGEgbnVsbCBjaGFyYWN0ZXIiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHJlc3VsdCA9IHRydWU7DQoNCiAgICAgICAgdmFyIG51bGxDaGFycyA9IG5ldyBBcnJheSgpOw0KICAgICAgICBudWxsQ2hhcnNbMF0gPSAnXCJcdTAwMDBcIic7DQogICAgICAgIG51bGxDaGFyc1sxXSA9ICdcIlx1MDAwMVwiJzsNCiAgICAgICAgbnVsbENoYXJzWzJdID0gJ1wiXHUwMDAyXCInOw0KICAgICAgICBudWxsQ2hhcnNbM10gPSAnXCJcdTAwMDNcIic7DQogICAgICAgIG51bGxDaGFyc1s0XSA9ICdcIlx1MDAwNFwiJzsNCiAgICAgICAgbnVsbENoYXJzWzVdID0gJ1wiXHUwMDA1XCInOw0KICAgICAgICBudWxsQ2hhcnNbNl0gPSAnXCJcdTAwMDZcIic7DQogICAgICAgIG51bGxDaGFyc1s3XSA9ICdcIlx1MDAwN1wiJzsNCiAgICAgICAgbnVsbENoYXJzWzhdID0gJ1wiXHUwMDA4XCInOw0KICAgICAgICBudWxsQ2hhcnNbOV0gPSAnXCJcdTAwMDlcIic7DQogICAgICAgIG51bGxDaGFyc1sxMF0gPSAnXCJcdTAwMEFcIic7DQogICAgICAgIG51bGxDaGFyc1sxMV0gPSAnXCJcdTAwMEJcIic7DQogICAgICAgIG51bGxDaGFyc1sxMl0gPSAnXCJcdTAwMENcIic7DQogICAgICAgIG51bGxDaGFyc1sxM10gPSAnXCJcdTAwMERcIic7DQogICAgICAgIG51bGxDaGFyc1sxNF0gPSAnXCJcdTAwMEVcIic7DQogICAgICAgIG51bGxDaGFyc1sxNV0gPSAnXCJcdTAwMEZcIic7DQogICAgICAgIG51bGxDaGFyc1sxNl0gPSAnXCJcdTAwMTBcIic7DQogICAgICAgIG51bGxDaGFyc1sxN10gPSAnXCJcdTAwMTFcIic7DQogICAgICAgIG51bGxDaGFyc1sxOF0gPSAnXCJcdTAwMTJcIic7DQogICAgICAgIG51bGxDaGFyc1sxOV0gPSAnXCJcdTAwMTNcIic7DQogICAgICAgIG51bGxDaGFyc1syMF0gPSAnXCJcdTAwMTRcIic7DQogICAgICAgIG51bGxDaGFyc1syMV0gPSAnXCJcdTAwMTVcIic7DQogICAgICAgIG51bGxDaGFyc1syMl0gPSAnXCJcdTAwMTZcIic7DQogICAgICAgIG51bGxDaGFyc1syM10gPSAnXCJcdTAwMTdcIic7DQogICAgICAgIG51bGxDaGFyc1syNF0gPSAnXCJcdTAwMThcIic7DQogICAgICAgIG51bGxDaGFyc1syNV0gPSAnXCJcdTAwMTlcIic7DQogICAgICAgIG51bGxDaGFyc1syNl0gPSAnXCJcdTAwMUFcIic7DQogICAgICAgIG51bGxDaGFyc1syN10gPSAnXCJcdTAwMUJcIic7DQogICAgICAgIG51bGxDaGFyc1syOF0gPSAnXCJcdTAwMUNcIic7DQogICAgICAgIG51bGxDaGFyc1syOV0gPSAnXCJcdTAwMURcIic7DQogICAgICAgIG51bGxDaGFyc1szMF0gPSAnXCJcdTAwMUVcIic7DQogICAgICAgIG51bGxDaGFyc1szMV0gPSAnXCJcdTAwMUZcIic7DQoNCiAgICAgICAgZm9yICh2YXIgaW5kZXggaW4gbnVsbENoYXJzKSB7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIHZhciBvYmogPSBKU09OLnBhcnNlKCd7ICcgKyBudWxsQ2hhcnNbaW5kZXhdICsgIm5hbWUiICsgJyA6ICJKb2huIiB9ICcpOw0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgJiYgZmFsc2UpOw0KICAgICAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgJiYgKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.12.2-2-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMTIuMi0yLTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMTIvMTUuMTIuMi8xNS4xMi4yLTItMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkpTT04ucGFyc2UgLSBwYXJzaW5nIGFuIG9iamVjdCB3aGVyZSBwcm9wZXJ0eSBuYW1lIGVuZHMgd2l0aCBhIG51bGwgY2hhcmFjdGVyIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciByZXN1bHQgPSB0cnVlOw0KDQogICAgICAgIHZhciBudWxsQ2hhcnMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgbnVsbENoYXJzWzBdID0gJ1wiXHUwMDAwXCInOw0KICAgICAgICBudWxsQ2hhcnNbMV0gPSAnXCJcdTAwMDFcIic7DQogICAgICAgIG51bGxDaGFyc1syXSA9ICdcIlx1MDAwMlwiJzsNCiAgICAgICAgbnVsbENoYXJzWzNdID0gJ1wiXHUwMDAzXCInOw0KICAgICAgICBudWxsQ2hhcnNbNF0gPSAnXCJcdTAwMDRcIic7DQogICAgICAgIG51bGxDaGFyc1s1XSA9ICdcIlx1MDAwNVwiJzsNCiAgICAgICAgbnVsbENoYXJzWzZdID0gJ1wiXHUwMDA2XCInOw0KICAgICAgICBudWxsQ2hhcnNbN10gPSAnXCJcdTAwMDdcIic7DQogICAgICAgIG51bGxDaGFyc1s4XSA9ICdcIlx1MDAwOFwiJzsNCiAgICAgICAgbnVsbENoYXJzWzldID0gJ1wiXHUwMDA5XCInOw0KICAgICAgICBudWxsQ2hhcnNbMTBdID0gJ1wiXHUwMDBBXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTFdID0gJ1wiXHUwMDBCXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTJdID0gJ1wiXHUwMDBDXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTNdID0gJ1wiXHUwMDBEXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTRdID0gJ1wiXHUwMDBFXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTVdID0gJ1wiXHUwMDBGXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTZdID0gJ1wiXHUwMDEwXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTddID0gJ1wiXHUwMDExXCInOw0KICAgICAgICBudWxsQ2hhcnNbMThdID0gJ1wiXHUwMDEyXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTldID0gJ1wiXHUwMDEzXCInOw0KICAgICAgICBudWxsQ2hhcnNbMjBdID0gJ1wiXHUwMDE0XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjFdID0gJ1wiXHUwMDE1XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjJdID0gJ1wiXHUwMDE2XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjNdID0gJ1wiXHUwMDE3XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjRdID0gJ1wiXHUwMDE4XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjVdID0gJ1wiXHUwMDE5XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjZdID0gJ1wiXHUwMDFBXCInOw0KICAgICAgICBudWxsQ2hhcnNbMjddID0gJ1wiXHUwMDFCXCInOw0KICAgICAgICBudWxsQ2hhcnNbMjhdID0gJ1wiXHUwMDFDXCInOw0KICAgICAgICBudWxsQ2hhcnNbMjldID0gJ1wiXHUwMDFEXCInOw0KICAgICAgICBudWxsQ2hhcnNbMzBdID0gJ1wiXHUwMDFFXCInOw0KICAgICAgICBudWxsQ2hhcnNbMzFdID0gJ1wiXHUwMDFGXCInOw0KDQogICAgICAgIGZvciAodmFyIGluZGV4IGluIG51bGxDaGFycykgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICB2YXIgb2JqID0gSlNPTi5wYXJzZSgneycgKyAibmFtZSIgKyBudWxsQ2hhcnNbaW5kZXhdICsgJyA6ICJKb2huIiB9ICcpOw0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgJiYgZmFsc2UpOw0KICAgICAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgJiYgKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.12.2-2-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMTIuMi0yLTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMTIvMTUuMTIuMi8xNS4xMi4yLTItNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkpTT04ucGFyc2UgLSBwYXJzaW5nIGFuIG9iamVjdCB3aGVyZSBwcm9wZXJ0eSBuYW1lIHN0YXJ0cyBhbmQgZW5kcyB3aXRoIGEgbnVsbCBjaGFyYWN0ZXIiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHJlc3VsdCA9IHRydWU7DQoNCiAgICAgICAgdmFyIG51bGxDaGFycyA9IG5ldyBBcnJheSgpOw0KICAgICAgICBudWxsQ2hhcnNbMF0gPSAnXCJcdTAwMDBcIic7DQogICAgICAgIG51bGxDaGFyc1sxXSA9ICdcIlx1MDAwMVwiJzsNCiAgICAgICAgbnVsbENoYXJzWzJdID0gJ1wiXHUwMDAyXCInOw0KICAgICAgICBudWxsQ2hhcnNbM10gPSAnXCJcdTAwMDNcIic7DQogICAgICAgIG51bGxDaGFyc1s0XSA9ICdcIlx1MDAwNFwiJzsNCiAgICAgICAgbnVsbENoYXJzWzVdID0gJ1wiXHUwMDA1XCInOw0KICAgICAgICBudWxsQ2hhcnNbNl0gPSAnXCJcdTAwMDZcIic7DQogICAgICAgIG51bGxDaGFyc1s3XSA9ICdcIlx1MDAwN1wiJzsNCiAgICAgICAgbnVsbENoYXJzWzhdID0gJ1wiXHUwMDA4XCInOw0KICAgICAgICBudWxsQ2hhcnNbOV0gPSAnXCJcdTAwMDlcIic7DQogICAgICAgIG51bGxDaGFyc1sxMF0gPSAnXCJcdTAwMEFcIic7DQogICAgICAgIG51bGxDaGFyc1sxMV0gPSAnXCJcdTAwMEJcIic7DQogICAgICAgIG51bGxDaGFyc1sxMl0gPSAnXCJcdTAwMENcIic7DQogICAgICAgIG51bGxDaGFyc1sxM10gPSAnXCJcdTAwMERcIic7DQogICAgICAgIG51bGxDaGFyc1sxNF0gPSAnXCJcdTAwMEVcIic7DQogICAgICAgIG51bGxDaGFyc1sxNV0gPSAnXCJcdTAwMEZcIic7DQogICAgICAgIG51bGxDaGFyc1sxNl0gPSAnXCJcdTAwMTBcIic7DQogICAgICAgIG51bGxDaGFyc1sxN10gPSAnXCJcdTAwMTFcIic7DQogICAgICAgIG51bGxDaGFyc1sxOF0gPSAnXCJcdTAwMTJcIic7DQogICAgICAgIG51bGxDaGFyc1sxOV0gPSAnXCJcdTAwMTNcIic7DQogICAgICAgIG51bGxDaGFyc1syMF0gPSAnXCJcdTAwMTRcIic7DQogICAgICAgIG51bGxDaGFyc1syMV0gPSAnXCJcdTAwMTVcIic7DQogICAgICAgIG51bGxDaGFyc1syMl0gPSAnXCJcdTAwMTZcIic7DQogICAgICAgIG51bGxDaGFyc1syM10gPSAnXCJcdTAwMTdcIic7DQogICAgICAgIG51bGxDaGFyc1syNF0gPSAnXCJcdTAwMThcIic7DQogICAgICAgIG51bGxDaGFyc1syNV0gPSAnXCJcdTAwMTlcIic7DQogICAgICAgIG51bGxDaGFyc1syNl0gPSAnXCJcdTAwMUFcIic7DQogICAgICAgIG51bGxDaGFyc1syN10gPSAnXCJcdTAwMUJcIic7DQogICAgICAgIG51bGxDaGFyc1syOF0gPSAnXCJcdTAwMUNcIic7DQogICAgICAgIG51bGxDaGFyc1syOV0gPSAnXCJcdTAwMURcIic7DQogICAgICAgIG51bGxDaGFyc1szMF0gPSAnXCJcdTAwMUVcIic7DQogICAgICAgIG51bGxDaGFyc1szMV0gPSAnXCJcdTAwMUZcIic7DQoNCiAgICAgICAgZm9yICh2YXIgaW5kZXggaW4gbnVsbENoYXJzKSB7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIHZhciBvYmogPSBKU09OLnBhcnNlKCd7JyArIG51bGxDaGFyc1tpbmRleF0gKyAibmFtZSIgKyBudWxsQ2hhcnNbaW5kZXhdICsgJyA6ICJKb2huIiB9ICcpOw0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgJiYgZmFsc2UpOw0KICAgICAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgJiYgKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.12.2-2-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMTIuMi0yLTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMTIvMTUuMTIuMi8xNS4xMi4yLTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJKU09OLnBhcnNlIC0gcGFyc2luZyBhbiBvYmplY3Qgd2hlcmUgcHJvcGVydHkgbmFtZSBtaWRkbGVzIHdpdGggYSBudWxsIGNoYXJhY3RlciIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgcmVzdWx0ID0gdHJ1ZTsNCg0KICAgICAgICB2YXIgbnVsbENoYXJzID0gbmV3IEFycmF5KCk7DQogICAgICAgIG51bGxDaGFyc1swXSA9ICdcIlx1MDAwMFwiJzsNCiAgICAgICAgbnVsbENoYXJzWzFdID0gJ1wiXHUwMDAxXCInOw0KICAgICAgICBudWxsQ2hhcnNbMl0gPSAnXCJcdTAwMDJcIic7DQogICAgICAgIG51bGxDaGFyc1szXSA9ICdcIlx1MDAwM1wiJzsNCiAgICAgICAgbnVsbENoYXJzWzRdID0gJ1wiXHUwMDA0XCInOw0KICAgICAgICBudWxsQ2hhcnNbNV0gPSAnXCJcdTAwMDVcIic7DQogICAgICAgIG51bGxDaGFyc1s2XSA9ICdcIlx1MDAwNlwiJzsNCiAgICAgICAgbnVsbENoYXJzWzddID0gJ1wiXHUwMDA3XCInOw0KICAgICAgICBudWxsQ2hhcnNbOF0gPSAnXCJcdTAwMDhcIic7DQogICAgICAgIG51bGxDaGFyc1s5XSA9ICdcIlx1MDAwOVwiJzsNCiAgICAgICAgbnVsbENoYXJzWzEwXSA9ICdcIlx1MDAwQVwiJzsNCiAgICAgICAgbnVsbENoYXJzWzExXSA9ICdcIlx1MDAwQlwiJzsNCiAgICAgICAgbnVsbENoYXJzWzEyXSA9ICdcIlx1MDAwQ1wiJzsNCiAgICAgICAgbnVsbENoYXJzWzEzXSA9ICdcIlx1MDAwRFwiJzsNCiAgICAgICAgbnVsbENoYXJzWzE0XSA9ICdcIlx1MDAwRVwiJzsNCiAgICAgICAgbnVsbENoYXJzWzE1XSA9ICdcIlx1MDAwRlwiJzsNCiAgICAgICAgbnVsbENoYXJzWzE2XSA9ICdcIlx1MDAxMFwiJzsNCiAgICAgICAgbnVsbENoYXJzWzE3XSA9ICdcIlx1MDAxMVwiJzsNCiAgICAgICAgbnVsbENoYXJzWzE4XSA9ICdcIlx1MDAxMlwiJzsNCiAgICAgICAgbnVsbENoYXJzWzE5XSA9ICdcIlx1MDAxM1wiJzsNCiAgICAgICAgbnVsbENoYXJzWzIwXSA9ICdcIlx1MDAxNFwiJzsNCiAgICAgICAgbnVsbENoYXJzWzIxXSA9ICdcIlx1MDAxNVwiJzsNCiAgICAgICAgbnVsbENoYXJzWzIyXSA9ICdcIlx1MDAxNlwiJzsNCiAgICAgICAgbnVsbENoYXJzWzIzXSA9ICdcIlx1MDAxN1wiJzsNCiAgICAgICAgbnVsbENoYXJzWzI0XSA9ICdcIlx1MDAxOFwiJzsNCiAgICAgICAgbnVsbENoYXJzWzI1XSA9ICdcIlx1MDAxOVwiJzsNCiAgICAgICAgbnVsbENoYXJzWzI2XSA9ICdcIlx1MDAxQVwiJzsNCiAgICAgICAgbnVsbENoYXJzWzI3XSA9ICdcIlx1MDAxQlwiJzsNCiAgICAgICAgbnVsbENoYXJzWzI4XSA9ICdcIlx1MDAxQ1wiJzsNCiAgICAgICAgbnVsbENoYXJzWzI5XSA9ICdcIlx1MDAxRFwiJzsNCiAgICAgICAgbnVsbENoYXJzWzMwXSA9ICdcIlx1MDAxRVwiJzsNCiAgICAgICAgbnVsbENoYXJzWzMxXSA9ICdcIlx1MDAxRlwiJzsNCg0KICAgICAgICBmb3IgKHZhciBpbmRleCBpbiBudWxsQ2hhcnMpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgdmFyIG9iaiA9IEpTT04ucGFyc2UoJ3sgJyArICJuYSIgKyBudWxsQ2hhcnNbaW5kZXhdICsgIm1lIiArICcgOiAiSm9obiIgfSAnKTsNCiAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICYmIGZhbHNlKTsNCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICYmIChlIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gcmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.12.2-2-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMTIuMi0yLTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMTIvMTUuMTIuMi8xNS4xMi4yLTItNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkpTT04ucGFyc2UgLSBwYXJzaW5nIGFuIG9iamVjdCB3aGVyZSBwcm9wZXJ0eSB2YWx1ZSBpcyBhIG51bGwgY2hhcmFjdGVyIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciByZXN1bHQgPSB0cnVlOw0KDQogICAgICAgIHZhciBudWxsQ2hhcnMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgbnVsbENoYXJzWzBdID0gJ1wiXHUwMDAwXCInOw0KICAgICAgICBudWxsQ2hhcnNbMV0gPSAnXCJcdTAwMDFcIic7DQogICAgICAgIG51bGxDaGFyc1syXSA9ICdcIlx1MDAwMlwiJzsNCiAgICAgICAgbnVsbENoYXJzWzNdID0gJ1wiXHUwMDAzXCInOw0KICAgICAgICBudWxsQ2hhcnNbNF0gPSAnXCJcdTAwMDRcIic7DQogICAgICAgIG51bGxDaGFyc1s1XSA9ICdcIlx1MDAwNVwiJzsNCiAgICAgICAgbnVsbENoYXJzWzZdID0gJ1wiXHUwMDA2XCInOw0KICAgICAgICBudWxsQ2hhcnNbN10gPSAnXCJcdTAwMDdcIic7DQogICAgICAgIG51bGxDaGFyc1s4XSA9ICdcIlx1MDAwOFwiJzsNCiAgICAgICAgbnVsbENoYXJzWzldID0gJ1wiXHUwMDA5XCInOw0KICAgICAgICBudWxsQ2hhcnNbMTBdID0gJ1wiXHUwMDBBXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTFdID0gJ1wiXHUwMDBCXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTJdID0gJ1wiXHUwMDBDXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTNdID0gJ1wiXHUwMDBEXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTRdID0gJ1wiXHUwMDBFXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTVdID0gJ1wiXHUwMDBGXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTZdID0gJ1wiXHUwMDEwXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTddID0gJ1wiXHUwMDExXCInOw0KICAgICAgICBudWxsQ2hhcnNbMThdID0gJ1wiXHUwMDEyXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTldID0gJ1wiXHUwMDEzXCInOw0KICAgICAgICBudWxsQ2hhcnNbMjBdID0gJ1wiXHUwMDE0XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjFdID0gJ1wiXHUwMDE1XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjJdID0gJ1wiXHUwMDE2XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjNdID0gJ1wiXHUwMDE3XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjRdID0gJ1wiXHUwMDE4XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjVdID0gJ1wiXHUwMDE5XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjZdID0gJ1wiXHUwMDFBXCInOw0KICAgICAgICBudWxsQ2hhcnNbMjddID0gJ1wiXHUwMDFCXCInOw0KICAgICAgICBudWxsQ2hhcnNbMjhdID0gJ1wiXHUwMDFDXCInOw0KICAgICAgICBudWxsQ2hhcnNbMjldID0gJ1wiXHUwMDFEXCInOw0KICAgICAgICBudWxsQ2hhcnNbMzBdID0gJ1wiXHUwMDFFXCInOw0KICAgICAgICBudWxsQ2hhcnNbMzFdID0gJ1wiXHUwMDFGXCInOw0KDQogICAgICAgIGZvciAodmFyIGluZGV4IGluIG51bGxDaGFycykgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICB2YXIgb2JqID0gSlNPTi5wYXJzZSgneyAibmFtZSIgOiAnICsgbnVsbENoYXJzW2luZGV4XSArICcgfSAnKTsNCiAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICYmIGZhbHNlKTsNCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICYmIChlIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gcmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.12.2-2-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMTIuMi0yLTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMTIvMTUuMTIuMi8xNS4xMi4yLTItNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkpTT04ucGFyc2UgLSBwYXJzaW5nIGFuIG9iamVjdCB3aGVyZSBwcm9wZXJ0eSB2YWx1ZSBzdGFydHMgd2l0aCBhIG51bGwgY2hhcmFjdGVyIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciByZXN1bHQgPSB0cnVlOw0KDQogICAgICAgIHZhciBudWxsQ2hhcnMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgbnVsbENoYXJzWzBdID0gJ1wiXHUwMDAwXCInOw0KICAgICAgICBudWxsQ2hhcnNbMV0gPSAnXCJcdTAwMDFcIic7DQogICAgICAgIG51bGxDaGFyc1syXSA9ICdcIlx1MDAwMlwiJzsNCiAgICAgICAgbnVsbENoYXJzWzNdID0gJ1wiXHUwMDAzXCInOw0KICAgICAgICBudWxsQ2hhcnNbNF0gPSAnXCJcdTAwMDRcIic7DQogICAgICAgIG51bGxDaGFyc1s1XSA9ICdcIlx1MDAwNVwiJzsNCiAgICAgICAgbnVsbENoYXJzWzZdID0gJ1wiXHUwMDA2XCInOw0KICAgICAgICBudWxsQ2hhcnNbN10gPSAnXCJcdTAwMDdcIic7DQogICAgICAgIG51bGxDaGFyc1s4XSA9ICdcIlx1MDAwOFwiJzsNCiAgICAgICAgbnVsbENoYXJzWzldID0gJ1wiXHUwMDA5XCInOw0KICAgICAgICBudWxsQ2hhcnNbMTBdID0gJ1wiXHUwMDBBXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTFdID0gJ1wiXHUwMDBCXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTJdID0gJ1wiXHUwMDBDXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTNdID0gJ1wiXHUwMDBEXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTRdID0gJ1wiXHUwMDBFXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTVdID0gJ1wiXHUwMDBGXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTZdID0gJ1wiXHUwMDEwXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTddID0gJ1wiXHUwMDExXCInOw0KICAgICAgICBudWxsQ2hhcnNbMThdID0gJ1wiXHUwMDEyXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTldID0gJ1wiXHUwMDEzXCInOw0KICAgICAgICBudWxsQ2hhcnNbMjBdID0gJ1wiXHUwMDE0XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjFdID0gJ1wiXHUwMDE1XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjJdID0gJ1wiXHUwMDE2XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjNdID0gJ1wiXHUwMDE3XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjRdID0gJ1wiXHUwMDE4XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjVdID0gJ1wiXHUwMDE5XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjZdID0gJ1wiXHUwMDFBXCInOw0KICAgICAgICBudWxsQ2hhcnNbMjddID0gJ1wiXHUwMDFCXCInOw0KICAgICAgICBudWxsQ2hhcnNbMjhdID0gJ1wiXHUwMDFDXCInOw0KICAgICAgICBudWxsQ2hhcnNbMjldID0gJ1wiXHUwMDFEXCInOw0KICAgICAgICBudWxsQ2hhcnNbMzBdID0gJ1wiXHUwMDFFXCInOw0KICAgICAgICBudWxsQ2hhcnNbMzFdID0gJ1wiXHUwMDFGXCInOw0KDQogICAgICAgIGZvciAodmFyIGluZGV4IGluIG51bGxDaGFycykgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICB2YXIgb2JqID0gSlNPTi5wYXJzZSgneyAibmFtZSIgOiAnICsgbnVsbENoYXJzW2luZGV4XSArICJKb2huIiArICcgfSAnKTsNCiAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICYmIGZhbHNlKTsNCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICYmIChlIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gcmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.12.2-2-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMTIuMi0yLTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMTIvMTUuMTIuMi8xNS4xMi4yLTItOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkpTT04ucGFyc2UgLSBwYXJzaW5nIGFuIG9iamVjdCB3aGVyZSBwcm9wZXJ0eSB2YWx1ZSBlbmRzIHdpdGggYSBudWxsIGNoYXJhY3RlciIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgcmVzdWx0ID0gdHJ1ZTsNCg0KICAgICAgICB2YXIgbnVsbENoYXJzID0gbmV3IEFycmF5KCk7DQogICAgICAgIG51bGxDaGFyc1swXSA9ICdcIlx1MDAwMFwiJzsNCiAgICAgICAgbnVsbENoYXJzWzFdID0gJ1wiXHUwMDAxXCInOw0KICAgICAgICBudWxsQ2hhcnNbMl0gPSAnXCJcdTAwMDJcIic7DQogICAgICAgIG51bGxDaGFyc1szXSA9ICdcIlx1MDAwM1wiJzsNCiAgICAgICAgbnVsbENoYXJzWzRdID0gJ1wiXHUwMDA0XCInOw0KICAgICAgICBudWxsQ2hhcnNbNV0gPSAnXCJcdTAwMDVcIic7DQogICAgICAgIG51bGxDaGFyc1s2XSA9ICdcIlx1MDAwNlwiJzsNCiAgICAgICAgbnVsbENoYXJzWzddID0gJ1wiXHUwMDA3XCInOw0KICAgICAgICBudWxsQ2hhcnNbOF0gPSAnXCJcdTAwMDhcIic7DQogICAgICAgIG51bGxDaGFyc1s5XSA9ICdcIlx1MDAwOVwiJzsNCiAgICAgICAgbnVsbENoYXJzWzEwXSA9ICdcIlx1MDAwQVwiJzsNCiAgICAgICAgbnVsbENoYXJzWzExXSA9ICdcIlx1MDAwQlwiJzsNCiAgICAgICAgbnVsbENoYXJzWzEyXSA9ICdcIlx1MDAwQ1wiJzsNCiAgICAgICAgbnVsbENoYXJzWzEzXSA9ICdcIlx1MDAwRFwiJzsNCiAgICAgICAgbnVsbENoYXJzWzE0XSA9ICdcIlx1MDAwRVwiJzsNCiAgICAgICAgbnVsbENoYXJzWzE1XSA9ICdcIlx1MDAwRlwiJzsNCiAgICAgICAgbnVsbENoYXJzWzE2XSA9ICdcIlx1MDAxMFwiJzsNCiAgICAgICAgbnVsbENoYXJzWzE3XSA9ICdcIlx1MDAxMVwiJzsNCiAgICAgICAgbnVsbENoYXJzWzE4XSA9ICdcIlx1MDAxMlwiJzsNCiAgICAgICAgbnVsbENoYXJzWzE5XSA9ICdcIlx1MDAxM1wiJzsNCiAgICAgICAgbnVsbENoYXJzWzIwXSA9ICdcIlx1MDAxNFwiJzsNCiAgICAgICAgbnVsbENoYXJzWzIxXSA9ICdcIlx1MDAxNVwiJzsNCiAgICAgICAgbnVsbENoYXJzWzIyXSA9ICdcIlx1MDAxNlwiJzsNCiAgICAgICAgbnVsbENoYXJzWzIzXSA9ICdcIlx1MDAxN1wiJzsNCiAgICAgICAgbnVsbENoYXJzWzI0XSA9ICdcIlx1MDAxOFwiJzsNCiAgICAgICAgbnVsbENoYXJzWzI1XSA9ICdcIlx1MDAxOVwiJzsNCiAgICAgICAgbnVsbENoYXJzWzI2XSA9ICdcIlx1MDAxQVwiJzsNCiAgICAgICAgbnVsbENoYXJzWzI3XSA9ICdcIlx1MDAxQlwiJzsNCiAgICAgICAgbnVsbENoYXJzWzI4XSA9ICdcIlx1MDAxQ1wiJzsNCiAgICAgICAgbnVsbENoYXJzWzI5XSA9ICdcIlx1MDAxRFwiJzsNCiAgICAgICAgbnVsbENoYXJzWzMwXSA9ICdcIlx1MDAxRVwiJzsNCiAgICAgICAgbnVsbENoYXJzWzMxXSA9ICdcIlx1MDAxRlwiJzsNCg0KICAgICAgICBmb3IgKHZhciBpbmRleCBpbiBudWxsQ2hhcnMpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgdmFyIG9iaiA9IEpTT04ucGFyc2UoJ3sgIm5hbWUiIDogJyArICJKb2huIiArIG51bGxDaGFyc1tpbmRleF0gKyAnIH0gJyk7DQogICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAmJiBmYWxzZSk7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAmJiAoZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.12.2-2-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMTIuMi0yLTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMTIvMTUuMTIuMi8xNS4xMi4yLTItOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkpTT04ucGFyc2UgLSBwYXJzaW5nIGFuIG9iamVjdCB3aGVyZSBwcm9wZXJ0eSB2YWx1ZSBzdGFydHMgYW5kIGVuZHMgd2l0aCBhIG51bGwgY2hhcmFjdGVyIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciByZXN1bHQgPSB0cnVlOw0KDQogICAgICAgIHZhciBudWxsQ2hhcnMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgbnVsbENoYXJzWzBdID0gJ1wiXHUwMDAwXCInOw0KICAgICAgICBudWxsQ2hhcnNbMV0gPSAnXCJcdTAwMDFcIic7DQogICAgICAgIG51bGxDaGFyc1syXSA9ICdcIlx1MDAwMlwiJzsNCiAgICAgICAgbnVsbENoYXJzWzNdID0gJ1wiXHUwMDAzXCInOw0KICAgICAgICBudWxsQ2hhcnNbNF0gPSAnXCJcdTAwMDRcIic7DQogICAgICAgIG51bGxDaGFyc1s1XSA9ICdcIlx1MDAwNVwiJzsNCiAgICAgICAgbnVsbENoYXJzWzZdID0gJ1wiXHUwMDA2XCInOw0KICAgICAgICBudWxsQ2hhcnNbN10gPSAnXCJcdTAwMDdcIic7DQogICAgICAgIG51bGxDaGFyc1s4XSA9ICdcIlx1MDAwOFwiJzsNCiAgICAgICAgbnVsbENoYXJzWzldID0gJ1wiXHUwMDA5XCInOw0KICAgICAgICBudWxsQ2hhcnNbMTBdID0gJ1wiXHUwMDBBXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTFdID0gJ1wiXHUwMDBCXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTJdID0gJ1wiXHUwMDBDXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTNdID0gJ1wiXHUwMDBEXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTRdID0gJ1wiXHUwMDBFXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTVdID0gJ1wiXHUwMDBGXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTZdID0gJ1wiXHUwMDEwXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTddID0gJ1wiXHUwMDExXCInOw0KICAgICAgICBudWxsQ2hhcnNbMThdID0gJ1wiXHUwMDEyXCInOw0KICAgICAgICBudWxsQ2hhcnNbMTldID0gJ1wiXHUwMDEzXCInOw0KICAgICAgICBudWxsQ2hhcnNbMjBdID0gJ1wiXHUwMDE0XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjFdID0gJ1wiXHUwMDE1XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjJdID0gJ1wiXHUwMDE2XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjNdID0gJ1wiXHUwMDE3XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjRdID0gJ1wiXHUwMDE4XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjVdID0gJ1wiXHUwMDE5XCInOw0KICAgICAgICBudWxsQ2hhcnNbMjZdID0gJ1wiXHUwMDFBXCInOw0KICAgICAgICBudWxsQ2hhcnNbMjddID0gJ1wiXHUwMDFCXCInOw0KICAgICAgICBudWxsQ2hhcnNbMjhdID0gJ1wiXHUwMDFDXCInOw0KICAgICAgICBudWxsQ2hhcnNbMjldID0gJ1wiXHUwMDFEXCInOw0KICAgICAgICBudWxsQ2hhcnNbMzBdID0gJ1wiXHUwMDFFXCInOw0KICAgICAgICBudWxsQ2hhcnNbMzFdID0gJ1wiXHUwMDFGXCInOw0KDQogICAgICAgIGZvciAodmFyIGluZGV4IGluIG51bGxDaGFycykgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICB2YXIgb2JqID0gSlNPTi5wYXJzZSgneyAibmFtZSIgOiAnICsgbnVsbENoYXJzW2luZGV4XSArICJKb2huIiArIG51bGxDaGFyc1tpbmRleF0gKyAnIH0gJyk7DQogICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAmJiBmYWxzZSk7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAmJiAoZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.12.3-0-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTIuMy0wLTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMi8xNS4xMi4zLzE1LjEyLjMtMC0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJKU09OLnN0cmluZ2lmeSBtdXN0IGV4aXN0IGFzIGJlIGEgZnVuY3Rpb24iLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGYgPSBKU09OLnN0cmluZ2lmeTsNCg0KICBpZiAodHlwZW9mKGYpID09PSAiZnVuY3Rpb24iKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQogcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVxICgpIHsNCiAgcmV0dXJuIEpTT04gIT09IHVuZGVmaW5lZDsNCiAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.12.3-0-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTIuMy0wLTIiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMi8xNS4xMi4zLzE1LjEyLjMtMC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJKU09OLnN0cmluZ2lmeSBtdXN0IGV4aXN0IGFzIGJlIGEgZnVuY3Rpb24gdGFraW5nIDMgcGFyYW1ldGVycyIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgZiA9IEpTT04uc3RyaW5naWZ5Ow0KDQogIGlmICh0eXBlb2YoZikgPT09ICJmdW5jdGlvbiIgJiYgZi5sZW5ndGggPT09IDMpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCiBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXEgKCkgew0KICByZXR1cm4gSlNPTiAhPT0gdW5kZWZpbmVkOw0KICB9DQp9KTsNCg==]]></test>
<test id="15.12.3-0-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTIuMy0wLTMiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMi8xNS4xMi4zLzE1LjEyLjMtMC0zLmpzIiwNCg0KZGVzY3JpcHRpb246ICJKU09OLnN0cmluZ2lmeSBtdXN0IGJlIGRlbGV0YWJsZSAoY29uZmlndXJhYmxlKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgbyA9IEpTT047DQogIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCAic3RyaW5naWZ5Iik7DQogIGlmIChkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gdHJ1ZSkgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcSAoKSB7DQogIHJldHVybiB0eXBlb2YgSlNPTiAhPSAidW5kZWZpbmVkIiAmJiBmbkV4aXN0cyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKQ0KICB9DQp9KTsNCg==]]></test>
@ -48,7 +58,18 @@
<test id="15.12.3-11-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTIuMy0xMS0xMyIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjEyLzE1LjEyLjMvMTUuMTIuMy0xMS0xMy5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQSBKU09OLnN0cmluZ2lmeSByZXBsYWNlciBmdW5jdGlvbiBhcHBsaWVkIHRvIGEgdG9wIGxldmVsIHNjYWxhciBjYW4gcmV0dXJuIGFuIE9iamVjdC4iLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KDQyLCBmdW5jdGlvbihrLCB2KSB7IHJldHVybiB2PT00MiA/IHtmb3J0eToyfTogdn0pID09PSAneyJmb3J0eSI6Mn0nOw0KICB9LA0KICANCiBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXEgKCkgew0KICByZXR1cm4gSlNPTiAmJiBmbkV4aXN0cyhKU09OLnN0cmluZ2lmeSk7DQogfQ0KfSApOw0K]]></test>
<test id="15.12.3-11-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTIuMy0xMS0xNCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjEyLzE1LjEyLjMvMTUuMTIuMy0xMS0xNC5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQXBwbHlpbmcgSlNPTi5zdHJpbmdpZnkgdG8gYSAgZnVuY3Rpb24gcmV0dXJucyB1bmRlZmluZWQuIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHJldHVybiBKU09OLnN0cmluZ2lmeShmdW5jdGlvbigpIHt9KSA9PT0gdW5kZWZpbmVkOw0KICB9LA0KICANCiBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXEgKCkgew0KICByZXR1cm4gSlNPTiAmJiBmbkV4aXN0cyhKU09OLnN0cmluZ2lmeSk7DQogfQ0KfSApOw0K]]></test>
<test id="15.12.3-11-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTIuMy0xMS0xNSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjEyLzE1LjEyLjMvMTUuMTIuMy0xMS0xNS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQXBwbHlpbmcgSlNPTi5zdHJpbmdpZnkgd2l0aCBhIHJlcGxhY2VyIGZ1bmN0aW9uIHRvIGEgZnVuY3Rpb24gcmV0dXJucyB0aGUgcmVwbGFjZXIgdmFsdWUuIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHJldHVybiBKU09OLnN0cmluZ2lmeShmdW5jdGlvbigpIHt9LCBmdW5jdGlvbihrLHYpIHtyZXR1cm4gOTl9KSA9PT0gJzk5JzsNCiAgfSwNCiAgDQogcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVxICgpIHsNCiAgcmV0dXJuIEpTT04gJiYgZm5FeGlzdHMoSlNPTi5zdHJpbmdpZnkpOw0KIH0NCn0gKTsNCg==]]></test>
<test id="15.12.3-11-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMTIuMy0xMS0xNiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMi8xNS4xMi4zLzE1LjEyLjMtMTEtMTYuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJKU09OLnN0cmluZ2lmeSAtIHN0cmluZ2lmeWluZyBhbiBvYmplY3Qgd2hlcmUgcHJvcGVydHkgbmFtZSBpcyB0aGUgdW5pb24gb2YgYWxsIG51bGwgY2hhcmFjdGVyIChUaGUgYWJzdHJhY3Qgb3BlcmF0aW9uIFF1b3RlKHZhbHVlKSBzdGVwIDIuYykiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHJlc3VsdCA9IHRydWU7DQoNCiAgICAgICAgdmFyIGV4cGVjdGVkTnVsbENoYXJzID0gbmV3IEFycmF5KCk7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzBdID0gIlxcdTAwMDAiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxXSA9ICJcXHUwMDAxIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMl0gPSAiXFx1MDAwMiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzNdID0gIlxcdTAwMDMiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1s0XSA9ICJcXHUwMDA0IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbNV0gPSAiXFx1MDAwNSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzZdID0gIlxcdTAwMDYiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1s3XSA9ICJcXHUwMDA3IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbOF0gPSAiXFxiIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbOV0gPSAiXFx0IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTBdID0gIlxcbiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzExXSA9ICJcXHUwMDBiIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTJdID0gIlxcZiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzEzXSA9ICJcXHIiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxNF0gPSAiXFx1MDAwZSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzE1XSA9ICJcXHUwMDBmIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTZdID0gIlxcdTAwMTAiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxN10gPSAiXFx1MDAxMSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzE4XSA9ICJcXHUwMDEyIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTldID0gIlxcdTAwMTMiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syMF0gPSAiXFx1MDAxNCI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzIxXSA9ICJcXHUwMDE1IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjJdID0gIlxcdTAwMTYiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syM10gPSAiXFx1MDAxNyI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzI0XSA9ICJcXHUwMDE4IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjVdID0gIlxcdTAwMTkiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syNl0gPSAiXFx1MDAxYSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzI3XSA9ICJcXHUwMDFiIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjhdID0gIlxcdTAwMWMiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syOV0gPSAiXFx1MDAxZCI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzMwXSA9ICJcXHUwMDFlIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMzFdID0gIlxcdTAwMWYiOw0KDQogICAgICAgIGZvciAodmFyIGluZGV4IGluIGV4cGVjdGVkTnVsbENoYXJzKSB7DQoNCiAgICAgICAgICAgIHZhciBzdHIgPSBKU09OLnN0cmluZ2lmeSh7ICJcdTAwMDBcdTAwMDFcdTAwMDJcdTAwMDNcdTAwMDRcdTAwMDVcdTAwMDZcdTAwMDdcdTAwMDhcdTAwMDlcdTAwMEFcdTAwMEJcdTAwMENcdTAwMERcdTAwMEVcdTAwMEZcdTAwMTBcdTAwMTFcdTAwMTJcdTAwMTNcdTAwMTRcdTAwMTVcdTAwMTZcdTAwMTdcdTAwMThcdTAwMTlcdTAwMUFcdTAwMUJcdTAwMUNcdTAwMURcdTAwMUVcdTAwMUYiOiAiSm9obiIgfSk7DQogICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICYmIHN0ci5pbmRleE9mKGV4cGVjdGVkTnVsbENoYXJzW2luZGV4XSkgIT09IC0xKTsgDQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.12.3-11-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMTIuMy0xMS0xNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMi8xNS4xMi4zLzE1LjEyLjMtMTEtMTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJKU09OLnN0cmluZ2lmeSAtIHN0cmluZ2lmeWluZyBhbiBvYmplY3Qgd2hlcmUgcHJvcGVydHkgbmFtZSBzdGFydHMgd2l0aCB0aGUgdW5pb24gb2YgYWxsIG51bGwgY2hhcmFjdGVyIChUaGUgYWJzdHJhY3Qgb3BlcmF0aW9uIFF1b3RlKHZhbHVlKSBzdGVwIDIuYykiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHJlc3VsdCA9IHRydWU7DQoNCiAgICAgICAgdmFyIGV4cGVjdGVkTnVsbENoYXJzID0gbmV3IEFycmF5KCk7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzBdID0gIlxcdTAwMDAiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxXSA9ICJcXHUwMDAxIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMl0gPSAiXFx1MDAwMiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzNdID0gIlxcdTAwMDMiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1s0XSA9ICJcXHUwMDA0IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbNV0gPSAiXFx1MDAwNSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzZdID0gIlxcdTAwMDYiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1s3XSA9ICJcXHUwMDA3IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbOF0gPSAiXFxiIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbOV0gPSAiXFx0IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTBdID0gIlxcbiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzExXSA9ICJcXHUwMDBiIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTJdID0gIlxcZiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzEzXSA9ICJcXHIiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxNF0gPSAiXFx1MDAwZSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzE1XSA9ICJcXHUwMDBmIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTZdID0gIlxcdTAwMTAiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxN10gPSAiXFx1MDAxMSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzE4XSA9ICJcXHUwMDEyIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTldID0gIlxcdTAwMTMiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syMF0gPSAiXFx1MDAxNCI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzIxXSA9ICJcXHUwMDE1IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjJdID0gIlxcdTAwMTYiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syM10gPSAiXFx1MDAxNyI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzI0XSA9ICJcXHUwMDE4IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjVdID0gIlxcdTAwMTkiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syNl0gPSAiXFx1MDAxYSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzI3XSA9ICJcXHUwMDFiIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjhdID0gIlxcdTAwMWMiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syOV0gPSAiXFx1MDAxZCI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzMwXSA9ICJcXHUwMDFlIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMzFdID0gIlxcdTAwMWYiOw0KDQogICAgICAgIGZvciAodmFyIGluZGV4IGluIGV4cGVjdGVkTnVsbENoYXJzKSB7DQoNCiAgICAgICAgICAgIHZhciBzdHIgPSBKU09OLnN0cmluZ2lmeSh7ICJcdTAwMDBcdTAwMDFcdTAwMDJcdTAwMDNcdTAwMDRcdTAwMDVcdTAwMDZcdTAwMDdcdTAwMDhcdTAwMDlcdTAwMEFcdTAwMEJcdTAwMENcdTAwMERcdTAwMEVcdTAwMEZcdTAwMTBcdTAwMTFcdTAwMTJcdTAwMTNcdTAwMTRcdTAwMTVcdTAwMTZcdTAwMTdcdTAwMThcdTAwMTlcdTAwMUFcdTAwMUJcdTAwMUNcdTAwMURcdTAwMUVcdTAwMUZuYW1lIjogIkpvaG4iIH0pOw0KICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAmJiBzdHIuaW5kZXhPZihleHBlY3RlZE51bGxDaGFyc1tpbmRleF0pICE9PSAtMSk7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.12.3-11-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMTIuMy0xMS0xOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMi8xNS4xMi4zLzE1LjEyLjMtMTEtMTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJKU09OLnN0cmluZ2lmeSAtIHN0cmluZ2lmeWluZyBhbiBvYmplY3Qgd2hlcmUgcHJvcGVydHkgbmFtZSBlbmRzIHdpdGggdGhlIHVuaW9uIG9mIGFsbCBudWxsIGNoYXJhY3RlciAoVGhlIGFic3RyYWN0IG9wZXJhdGlvbiBRdW90ZSh2YWx1ZSkgc3RlcCAyLmMpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciByZXN1bHQgPSB0cnVlOw0KDQogICAgICAgIHZhciBleHBlY3RlZE51bGxDaGFycyA9IG5ldyBBcnJheSgpOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1swXSA9ICJcXHUwMDAwIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMV0gPSAiXFx1MDAwMSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzJdID0gIlxcdTAwMDIiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1szXSA9ICJcXHUwMDAzIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbNF0gPSAiXFx1MDAwNCI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzVdID0gIlxcdTAwMDUiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1s2XSA9ICJcXHUwMDA2IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbN10gPSAiXFx1MDAwNyI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzhdID0gIlxcYiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzldID0gIlxcdCI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzEwXSA9ICJcXG4iOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxMV0gPSAiXFx1MDAwYiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzEyXSA9ICJcXGYiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxM10gPSAiXFxyIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTRdID0gIlxcdTAwMGUiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxNV0gPSAiXFx1MDAwZiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzE2XSA9ICJcXHUwMDEwIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTddID0gIlxcdTAwMTEiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxOF0gPSAiXFx1MDAxMiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzE5XSA9ICJcXHUwMDEzIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjBdID0gIlxcdTAwMTQiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syMV0gPSAiXFx1MDAxNSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzIyXSA9ICJcXHUwMDE2IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjNdID0gIlxcdTAwMTciOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syNF0gPSAiXFx1MDAxOCI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzI1XSA9ICJcXHUwMDE5IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjZdID0gIlxcdTAwMWEiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syN10gPSAiXFx1MDAxYiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzI4XSA9ICJcXHUwMDFjIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjldID0gIlxcdTAwMWQiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1szMF0gPSAiXFx1MDAxZSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzMxXSA9ICJcXHUwMDFmIjsNCg0KICAgICAgICBmb3IgKHZhciBpbmRleCBpbiBleHBlY3RlZE51bGxDaGFycykgew0KDQogICAgICAgICAgICB2YXIgc3RyID0gSlNPTi5zdHJpbmdpZnkoeyAibmFtZVx1MDAwMFx1MDAwMVx1MDAwMlx1MDAwM1x1MDAwNFx1MDAwNVx1MDAwNlx1MDAwN1x1MDAwOFx1MDAwOVx1MDAwQVx1MDAwQlx1MDAwQ1x1MDAwRFx1MDAwRVx1MDAwRlx1MDAxMFx1MDAxMVx1MDAxMlx1MDAxM1x1MDAxNFx1MDAxNVx1MDAxNlx1MDAxN1x1MDAxOFx1MDAxOVx1MDAxQVx1MDAxQlx1MDAxQ1x1MDAxRFx1MDAxRVx1MDAxRiI6ICJKb2huIiB9KTsNCiAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgJiYgc3RyLmluZGV4T2YoZXhwZWN0ZWROdWxsQ2hhcnNbaW5kZXhdKSAhPT0gLTEpOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.12.3-11-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMTIuMy0xMS0xOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMi8xNS4xMi4zLzE1LjEyLjMtMTEtMTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJKU09OLnN0cmluZ2lmeSAtIHN0cmluZ2lmeWluZyBhbiBvYmplY3Qgd2hlcmUgcHJvcGVydHkgbmFtZSBzdGFydHMgYW5kIGVuZHMgd2l0aCB0aGUgdW5pb24gb2YgYWxsIG51bGwgY2hhcmFjdGVyIChUaGUgYWJzdHJhY3Qgb3BlcmF0aW9uIFF1b3RlKHZhbHVlKSBzdGVwIDIuYykiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHJlc3VsdCA9IHRydWU7DQoNCiAgICAgICAgdmFyIGV4cGVjdGVkTnVsbENoYXJzID0gbmV3IEFycmF5KCk7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzBdID0gIlxcdTAwMDAiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxXSA9ICJcXHUwMDAxIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMl0gPSAiXFx1MDAwMiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzNdID0gIlxcdTAwMDMiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1s0XSA9ICJcXHUwMDA0IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbNV0gPSAiXFx1MDAwNSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzZdID0gIlxcdTAwMDYiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1s3XSA9ICJcXHUwMDA3IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbOF0gPSAiXFxiIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbOV0gPSAiXFx0IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTBdID0gIlxcbiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzExXSA9ICJcXHUwMDBiIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTJdID0gIlxcZiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzEzXSA9ICJcXHIiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxNF0gPSAiXFx1MDAwZSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzE1XSA9ICJcXHUwMDBmIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTZdID0gIlxcdTAwMTAiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxN10gPSAiXFx1MDAxMSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzE4XSA9ICJcXHUwMDEyIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTldID0gIlxcdTAwMTMiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syMF0gPSAiXFx1MDAxNCI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzIxXSA9ICJcXHUwMDE1IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjJdID0gIlxcdTAwMTYiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syM10gPSAiXFx1MDAxNyI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzI0XSA9ICJcXHUwMDE4IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjVdID0gIlxcdTAwMTkiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syNl0gPSAiXFx1MDAxYSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzI3XSA9ICJcXHUwMDFiIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjhdID0gIlxcdTAwMWMiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syOV0gPSAiXFx1MDAxZCI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzMwXSA9ICJcXHUwMDFlIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMzFdID0gIlxcdTAwMWYiOw0KDQogICAgICAgIGZvciAodmFyIGluZGV4IGluIGV4cGVjdGVkTnVsbENoYXJzKSB7DQoNCiAgICAgICAgICAgIHZhciBzdHIgPSBKU09OLnN0cmluZ2lmeSh7ICJcdTAwMDBcdTAwMDFcdTAwMDJcdTAwMDNcdTAwMDRcdTAwMDVcdTAwMDZcdTAwMDdcdTAwMDhcdTAwMDlcdTAwMEFcdTAwMEJcdTAwMENcdTAwMERcdTAwMEVcdTAwMEZcdTAwMTBcdTAwMTFcdTAwMTJcdTAwMTNcdTAwMTRcdTAwMTVcdTAwMTZcdTAwMTdcdTAwMThcdTAwMTlcdTAwMUFcdTAwMUJcdTAwMUNcdTAwMURcdTAwMUVcdTAwMUZuYW1lXHUwMDAwXHUwMDAxXHUwMDAyXHUwMDAzXHUwMDA0XHUwMDA1XHUwMDA2XHUwMDA3XHUwMDA4XHUwMDA5XHUwMDBBXHUwMDBCXHUwMDBDXHUwMDBEXHUwMDBFXHUwMDBGXHUwMDEwXHUwMDExXHUwMDEyXHUwMDEzXHUwMDE0XHUwMDE1XHUwMDE2XHUwMDE3XHUwMDE4XHUwMDE5XHUwMDFBXHUwMDFCXHUwMDFDXHUwMDFEXHUwMDFFXHUwMDFGIjogIkpvaG4iIH0pOw0KICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAmJiBzdHIuaW5kZXhPZihleHBlY3RlZE51bGxDaGFyc1tpbmRleF0pICE9PSAtMSAmJiBzdHIuaW5kZXhPZihleHBlY3RlZE51bGxDaGFyc1tpbmRleF0pICE9PSAtMSk7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.12.3-11-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTIuMy0xMS0yIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMTIvMTUuMTIuMy8xNS4xMi4zLTExLTIuanMiLA0KDQpkZXNjcmlwdGlvbjogIkEgSlNPTi5zdHJpbmdpZnkgcmVwbGFjZXIgZnVuY3Rpb24gd29ya3MgaXMgYXBwbGllZCB0byBhIHRvcCBsZXZlbCB1bmRlZmluZWQgdmFsdWUuIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHJldHVybiBKU09OLnN0cmluZ2lmeSh1bmRlZmluZWQsIGZ1bmN0aW9uKGssIHYpIHsgcmV0dXJuICJyZXBsYWNlbWVudCIgfSkgPT09ICcicmVwbGFjZW1lbnQiJzsNCiAgfSwNCiAgDQogcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVxICgpIHsNCiAgcmV0dXJuIEpTT04gJiYgZm5FeGlzdHMoSlNPTi5zdHJpbmdpZnkpOw0KIH0NCn0gKTsNCg==]]></test>
<test id="15.12.3-11-20"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMTIuMy0xMS0yMCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMi8xNS4xMi4zLzE1LjEyLjMtMTEtMjAuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJKU09OLnN0cmluZ2lmeSAtIHN0cmluZ2lmeWluZyBhbiBvYmplY3Qgd2hlcmUgcHJvcGVydHkgbmFtZSBtaWRkbGVzIHdpdGggdGhlIHVuaW9uIG9mIGFsbCBudWxsIGNoYXJhY3RlciAoVGhlIGFic3RyYWN0IG9wZXJhdGlvbiBRdW90ZSh2YWx1ZSkgc3RlcCAyLmMpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciByZXN1bHQgPSB0cnVlOw0KDQogICAgICAgIHZhciBleHBlY3RlZE51bGxDaGFycyA9IG5ldyBBcnJheSgpOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1swXSA9ICJcXHUwMDAwIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMV0gPSAiXFx1MDAwMSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzJdID0gIlxcdTAwMDIiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1szXSA9ICJcXHUwMDAzIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbNF0gPSAiXFx1MDAwNCI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzVdID0gIlxcdTAwMDUiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1s2XSA9ICJcXHUwMDA2IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbN10gPSAiXFx1MDAwNyI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzhdID0gIlxcYiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzldID0gIlxcdCI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzEwXSA9ICJcXG4iOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxMV0gPSAiXFx1MDAwYiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzEyXSA9ICJcXGYiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxM10gPSAiXFxyIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTRdID0gIlxcdTAwMGUiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxNV0gPSAiXFx1MDAwZiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzE2XSA9ICJcXHUwMDEwIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTddID0gIlxcdTAwMTEiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxOF0gPSAiXFx1MDAxMiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzE5XSA9ICJcXHUwMDEzIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjBdID0gIlxcdTAwMTQiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syMV0gPSAiXFx1MDAxNSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzIyXSA9ICJcXHUwMDE2IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjNdID0gIlxcdTAwMTciOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syNF0gPSAiXFx1MDAxOCI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzI1XSA9ICJcXHUwMDE5IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjZdID0gIlxcdTAwMWEiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syN10gPSAiXFx1MDAxYiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzI4XSA9ICJcXHUwMDFjIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjldID0gIlxcdTAwMWQiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1szMF0gPSAiXFx1MDAxZSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzMxXSA9ICJcXHUwMDFmIjsNCg0KICAgICAgICBmb3IgKHZhciBpbmRleCBpbiBleHBlY3RlZE51bGxDaGFycykgew0KDQogICAgICAgICAgICB2YXIgc3RyID0gSlNPTi5zdHJpbmdpZnkoeyAibmFcdTAwMDBcdTAwMDFcdTAwMDJcdTAwMDNcdTAwMDRcdTAwMDVcdTAwMDZcdTAwMDdcdTAwMDhcdTAwMDlcdTAwMEFcdTAwMEJcdTAwMENcdTAwMERcdTAwMEVcdTAwMEZcdTAwMTBcdTAwMTFcdTAwMTJcdTAwMTNcdTAwMTRcdTAwMTVcdTAwMTZcdTAwMTdcdTAwMThcdTAwMTlcdTAwMUFcdTAwMUJcdTAwMUNcdTAwMURcdTAwMUVcdTAwMUZtZSI6ICJKb2huIiB9KTsNCiAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgJiYgc3RyLmluZGV4T2YoZXhwZWN0ZWROdWxsQ2hhcnNbaW5kZXhdKSAhPT0gLTEpOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.12.3-11-21"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMTIuMy0xMS0yMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMi8xNS4xMi4zLzE1LjEyLjMtMTEtMjEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJKU09OLnN0cmluZ2lmeSAtIHN0cmluZ2lmeWluZyBhbiBvYmplY3Qgd2hlcmUgcHJvcGVydHkgdmFsdWUgaXMgdGhlIHVuaW9uIG9mIGFsbCBudWxsIGNoYXJhY3RlciAoVGhlIGFic3RyYWN0IG9wZXJhdGlvbiBRdW90ZSh2YWx1ZSkgc3RlcCAyLmMpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciByZXN1bHQgPSB0cnVlOw0KDQogICAgICAgIHZhciBleHBlY3RlZE51bGxDaGFycyA9IG5ldyBBcnJheSgpOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1swXSA9ICJcXHUwMDAwIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMV0gPSAiXFx1MDAwMSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzJdID0gIlxcdTAwMDIiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1szXSA9ICJcXHUwMDAzIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbNF0gPSAiXFx1MDAwNCI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzVdID0gIlxcdTAwMDUiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1s2XSA9ICJcXHUwMDA2IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbN10gPSAiXFx1MDAwNyI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzhdID0gIlxcYiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzldID0gIlxcdCI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzEwXSA9ICJcXG4iOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxMV0gPSAiXFx1MDAwYiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzEyXSA9ICJcXGYiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxM10gPSAiXFxyIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTRdID0gIlxcdTAwMGUiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxNV0gPSAiXFx1MDAwZiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzE2XSA9ICJcXHUwMDEwIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTddID0gIlxcdTAwMTEiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxOF0gPSAiXFx1MDAxMiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzE5XSA9ICJcXHUwMDEzIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjBdID0gIlxcdTAwMTQiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syMV0gPSAiXFx1MDAxNSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzIyXSA9ICJcXHUwMDE2IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjNdID0gIlxcdTAwMTciOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syNF0gPSAiXFx1MDAxOCI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzI1XSA9ICJcXHUwMDE5IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjZdID0gIlxcdTAwMWEiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syN10gPSAiXFx1MDAxYiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzI4XSA9ICJcXHUwMDFjIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjldID0gIlxcdTAwMWQiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1szMF0gPSAiXFx1MDAxZSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzMxXSA9ICJcXHUwMDFmIjsNCg0KICAgICAgICBmb3IgKHZhciBpbmRleCBpbiBleHBlY3RlZE51bGxDaGFycykgew0KDQogICAgICAgICAgICB2YXIgc3RyID0gSlNPTi5zdHJpbmdpZnkoeyAibmFtZSI6ICJcdTAwMDBcdTAwMDFcdTAwMDJcdTAwMDNcdTAwMDRcdTAwMDVcdTAwMDZcdTAwMDdcdTAwMDhcdTAwMDlcdTAwMEFcdTAwMEJcdTAwMENcdTAwMERcdTAwMEVcdTAwMEZcdTAwMTBcdTAwMTFcdTAwMTJcdTAwMTNcdTAwMTRcdTAwMTVcdTAwMTZcdTAwMTdcdTAwMThcdTAwMTlcdTAwMUFcdTAwMUJcdTAwMUNcdTAwMURcdTAwMUVcdTAwMUYiIH0pOw0KICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCAmJiBzdHIuaW5kZXhPZihleHBlY3RlZE51bGxDaGFyc1tpbmRleF0pICE9PSAtMSk7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.12.3-11-22"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMTIuMy0xMS0yMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMi8xNS4xMi4zLzE1LjEyLjMtMTEtMjIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJKU09OLnN0cmluZ2lmeSAtIHN0cmluZ2lmeWluZyBhbiBvYmplY3Qgd2hlcmUgcHJvcGVydHkgdmFsdWUgc3RhcnRzIHdpdGggdGhlIHVuaW9uIG9mIGFsbCBudWxsIGNoYXJhY3RlciAoVGhlIGFic3RyYWN0IG9wZXJhdGlvbiBRdW90ZSh2YWx1ZSkgc3RlcCAyLmMpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciByZXN1bHQgPSB0cnVlOw0KDQogICAgICAgIHZhciBleHBlY3RlZE51bGxDaGFycyA9IG5ldyBBcnJheSgpOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1swXSA9ICJcXHUwMDAwIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMV0gPSAiXFx1MDAwMSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzJdID0gIlxcdTAwMDIiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1szXSA9ICJcXHUwMDAzIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbNF0gPSAiXFx1MDAwNCI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzVdID0gIlxcdTAwMDUiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1s2XSA9ICJcXHUwMDA2IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbN10gPSAiXFx1MDAwNyI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzhdID0gIlxcYiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzldID0gIlxcdCI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzEwXSA9ICJcXG4iOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxMV0gPSAiXFx1MDAwYiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzEyXSA9ICJcXGYiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxM10gPSAiXFxyIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTRdID0gIlxcdTAwMGUiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxNV0gPSAiXFx1MDAwZiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzE2XSA9ICJcXHUwMDEwIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTddID0gIlxcdTAwMTEiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxOF0gPSAiXFx1MDAxMiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzE5XSA9ICJcXHUwMDEzIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjBdID0gIlxcdTAwMTQiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syMV0gPSAiXFx1MDAxNSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzIyXSA9ICJcXHUwMDE2IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjNdID0gIlxcdTAwMTciOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syNF0gPSAiXFx1MDAxOCI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzI1XSA9ICJcXHUwMDE5IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjZdID0gIlxcdTAwMWEiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syN10gPSAiXFx1MDAxYiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzI4XSA9ICJcXHUwMDFjIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjldID0gIlxcdTAwMWQiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1szMF0gPSAiXFx1MDAxZSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzMxXSA9ICJcXHUwMDFmIjsNCg0KICAgICAgICBmb3IgKHZhciBpbmRleCBpbiBleHBlY3RlZE51bGxDaGFycykgew0KDQogICAgICAgICAgICB2YXIgc3RyID0gSlNPTi5zdHJpbmdpZnkoeyAibmFtZSI6ICJcdTAwMDBcdTAwMDFcdTAwMDJcdTAwMDNcdTAwMDRcdTAwMDVcdTAwMDZcdTAwMDdcdTAwMDhcdTAwMDlcdTAwMEFcdTAwMEJcdTAwMENcdTAwMERcdTAwMEVcdTAwMEZcdTAwMTBcdTAwMTFcdTAwMTJcdTAwMTNcdTAwMTRcdTAwMTVcdTAwMTZcdTAwMTdcdTAwMThcdTAwMTlcdTAwMUFcdTAwMUJcdTAwMUNcdTAwMURcdTAwMUVcdTAwMUZKb2huIiB9KTsNCiAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgJiYgc3RyLmluZGV4T2YoZXhwZWN0ZWROdWxsQ2hhcnNbaW5kZXhdKSAhPT0gLTEpOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.12.3-11-23"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMTIuMy0xMS0yMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMi8xNS4xMi4zLzE1LjEyLjMtMTEtMjMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJKU09OLnN0cmluZ2lmeSAtIHN0cmluZ2lmeWluZyBhbiBvYmplY3Qgd2hlcmUgcHJvcGVydHkgdmFsdWUgZW5kcyB3aXRoIHRoZSB1bmlvbiBvZiBhbGwgbnVsbCBjaGFyYWN0ZXIgKFRoZSBhYnN0cmFjdCBvcGVyYXRpb24gUXVvdGUodmFsdWUpIHN0ZXAgMi5jKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgcmVzdWx0ID0gdHJ1ZTsNCg0KICAgICAgICB2YXIgZXhwZWN0ZWROdWxsQ2hhcnMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMF0gPSAiXFx1MDAwMCI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzFdID0gIlxcdTAwMDEiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syXSA9ICJcXHUwMDAyIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbM10gPSAiXFx1MDAwMyI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzRdID0gIlxcdTAwMDQiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1s1XSA9ICJcXHUwMDA1IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbNl0gPSAiXFx1MDAwNiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzddID0gIlxcdTAwMDciOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1s4XSA9ICJcXGIiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1s5XSA9ICJcXHQiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxMF0gPSAiXFxuIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTFdID0gIlxcdTAwMGIiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxMl0gPSAiXFxmIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTNdID0gIlxcciI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzE0XSA9ICJcXHUwMDBlIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTVdID0gIlxcdTAwMGYiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxNl0gPSAiXFx1MDAxMCI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzE3XSA9ICJcXHUwMDExIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMThdID0gIlxcdTAwMTIiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxOV0gPSAiXFx1MDAxMyI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzIwXSA9ICJcXHUwMDE0IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjFdID0gIlxcdTAwMTUiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syMl0gPSAiXFx1MDAxNiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzIzXSA9ICJcXHUwMDE3IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjRdID0gIlxcdTAwMTgiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syNV0gPSAiXFx1MDAxOSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzI2XSA9ICJcXHUwMDFhIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjddID0gIlxcdTAwMWIiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syOF0gPSAiXFx1MDAxYyI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzI5XSA9ICJcXHUwMDFkIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMzBdID0gIlxcdTAwMWUiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1szMV0gPSAiXFx1MDAxZiI7DQoNCiAgICAgICAgZm9yICh2YXIgaW5kZXggaW4gZXhwZWN0ZWROdWxsQ2hhcnMpIHsNCg0KICAgICAgICAgICAgdmFyIHN0ciA9IEpTT04uc3RyaW5naWZ5KHsgIm5hbWUiOiAiSm9oblx1MDAwMFx1MDAwMVx1MDAwMlx1MDAwM1x1MDAwNFx1MDAwNVx1MDAwNlx1MDAwN1x1MDAwOFx1MDAwOVx1MDAwQVx1MDAwQlx1MDAwQ1x1MDAwRFx1MDAwRVx1MDAwRlx1MDAxMFx1MDAxMVx1MDAxMlx1MDAxM1x1MDAxNFx1MDAxNVx1MDAxNlx1MDAxN1x1MDAxOFx1MDAxOVx1MDAxQVx1MDAxQlx1MDAxQ1x1MDAxRFx1MDAxRVx1MDAxRiIgfSk7DQogICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICYmIHN0ci5pbmRleE9mKGV4cGVjdGVkTnVsbENoYXJzW2luZGV4XSkgIT09IC0xKTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gcmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.12.3-11-24"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMTIuMy0xMS0yNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMi8xNS4xMi4zLzE1LjEyLjMtMTEtMjQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJKU09OLnN0cmluZ2lmeSAtIHN0cmluZ2lmeWluZyBhbiBvYmplY3Qgd2hlcmUgcHJvcGVydHkgdmFsdWUgc3RhcnRzIGFuZCBlbmRzIHdpdGggdGhlIHVuaW9uIG9mIGFsbCBudWxsIGNoYXJhY3RlciAoVGhlIGFic3RyYWN0IG9wZXJhdGlvbiBRdW90ZSh2YWx1ZSkgc3RlcCAyLmMpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciByZXN1bHQgPSB0cnVlOw0KDQogICAgICAgIHZhciBleHBlY3RlZE51bGxDaGFycyA9IG5ldyBBcnJheSgpOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1swXSA9ICJcXHUwMDAwIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMV0gPSAiXFx1MDAwMSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzJdID0gIlxcdTAwMDIiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1szXSA9ICJcXHUwMDAzIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbNF0gPSAiXFx1MDAwNCI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzVdID0gIlxcdTAwMDUiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1s2XSA9ICJcXHUwMDA2IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbN10gPSAiXFx1MDAwNyI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzhdID0gIlxcYiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzldID0gIlxcdCI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzEwXSA9ICJcXG4iOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxMV0gPSAiXFx1MDAwYiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzEyXSA9ICJcXGYiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxM10gPSAiXFxyIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTRdID0gIlxcdTAwMGUiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxNV0gPSAiXFx1MDAwZiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzE2XSA9ICJcXHUwMDEwIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTddID0gIlxcdTAwMTEiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxOF0gPSAiXFx1MDAxMiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzE5XSA9ICJcXHUwMDEzIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjBdID0gIlxcdTAwMTQiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syMV0gPSAiXFx1MDAxNSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzIyXSA9ICJcXHUwMDE2IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjNdID0gIlxcdTAwMTciOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syNF0gPSAiXFx1MDAxOCI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzI1XSA9ICJcXHUwMDE5IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjZdID0gIlxcdTAwMWEiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syN10gPSAiXFx1MDAxYiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzI4XSA9ICJcXHUwMDFjIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjldID0gIlxcdTAwMWQiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1szMF0gPSAiXFx1MDAxZSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzMxXSA9ICJcXHUwMDFmIjsNCg0KICAgICAgICBmb3IgKHZhciBpbmRleCBpbiBleHBlY3RlZE51bGxDaGFycykgew0KDQogICAgICAgICAgICB2YXIgc3RyID0gSlNPTi5zdHJpbmdpZnkoeyAibmFtZSI6ICJcdTAwMDBcdTAwMDFcdTAwMDJcdTAwMDNcdTAwMDRcdTAwMDVcdTAwMDZcdTAwMDdcdTAwMDhcdTAwMDlcdTAwMEFcdTAwMEJcdTAwMENcdTAwMERcdTAwMEVcdTAwMEZcdTAwMTBcdTAwMTFcdTAwMTJcdTAwMTNcdTAwMTRcdTAwMTVcdTAwMTZcdTAwMTdcdTAwMThcdTAwMTlcdTAwMUFcdTAwMUJcdTAwMUNcdTAwMURcdTAwMUVcdTAwMUZKb2huXHUwMDAwXHUwMDAxXHUwMDAyXHUwMDAzXHUwMDA0XHUwMDA1XHUwMDA2XHUwMDA3XHUwMDA4XHUwMDA5XHUwMDBBXHUwMDBCXHUwMDBDXHUwMDBEXHUwMDBFXHUwMDBGXHUwMDEwXHUwMDExXHUwMDEyXHUwMDEzXHUwMDE0XHUwMDE1XHUwMDE2XHUwMDE3XHUwMDE4XHUwMDE5XHUwMDFBXHUwMDFCXHUwMDFDXHUwMDFEXHUwMDFFXHUwMDFGIiB9KTsNCiAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgJiYgc3RyLmluZGV4T2YoZXhwZWN0ZWROdWxsQ2hhcnNbaW5kZXhdKSAhPT0gLTEgJiYgc3RyLmluZGV4T2YoZXhwZWN0ZWROdWxsQ2hhcnNbaW5kZXhdKSAhPT0gLTEpOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.12.3-11-25"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMTIuMy0xMS0yNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMi8xNS4xMi4zLzE1LjEyLjMtMTEtMjUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJKU09OLnN0cmluZ2lmeSAtIHN0cmluZ2lmeWluZyBhbiBvYmplY3Qgd2hlcmUgcHJvcGVydHkgdmFsdWUgbWlkZGxlcyB3aXRoIHRoZSB1bmlvbiBvZiBhbGwgbnVsbCBjaGFyYWN0ZXIgKFRoZSBhYnN0cmFjdCBvcGVyYXRpb24gUXVvdGUodmFsdWUpIHN0ZXAgMi5jKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgcmVzdWx0ID0gdHJ1ZTsNCg0KICAgICAgICB2YXIgZXhwZWN0ZWROdWxsQ2hhcnMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMF0gPSAiXFx1MDAwMCI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzFdID0gIlxcdTAwMDEiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syXSA9ICJcXHUwMDAyIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbM10gPSAiXFx1MDAwMyI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzRdID0gIlxcdTAwMDQiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1s1XSA9ICJcXHUwMDA1IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbNl0gPSAiXFx1MDAwNiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzddID0gIlxcdTAwMDciOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1s4XSA9ICJcXGIiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1s5XSA9ICJcXHQiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxMF0gPSAiXFxuIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTFdID0gIlxcdTAwMGIiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxMl0gPSAiXFxmIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTNdID0gIlxcciI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzE0XSA9ICJcXHUwMDBlIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMTVdID0gIlxcdTAwMGYiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxNl0gPSAiXFx1MDAxMCI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzE3XSA9ICJcXHUwMDExIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMThdID0gIlxcdTAwMTIiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1sxOV0gPSAiXFx1MDAxMyI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzIwXSA9ICJcXHUwMDE0IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjFdID0gIlxcdTAwMTUiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syMl0gPSAiXFx1MDAxNiI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzIzXSA9ICJcXHUwMDE3IjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjRdID0gIlxcdTAwMTgiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syNV0gPSAiXFx1MDAxOSI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzI2XSA9ICJcXHUwMDFhIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMjddID0gIlxcdTAwMWIiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1syOF0gPSAiXFx1MDAxYyI7DQogICAgICAgIGV4cGVjdGVkTnVsbENoYXJzWzI5XSA9ICJcXHUwMDFkIjsNCiAgICAgICAgZXhwZWN0ZWROdWxsQ2hhcnNbMzBdID0gIlxcdTAwMWUiOw0KICAgICAgICBleHBlY3RlZE51bGxDaGFyc1szMV0gPSAiXFx1MDAxZiI7DQoNCiAgICAgICAgZm9yICh2YXIgaW5kZXggaW4gZXhwZWN0ZWROdWxsQ2hhcnMpIHsNCg0KICAgICAgICAgICAgdmFyIHN0ciA9IEpTT04uc3RyaW5naWZ5KHsgIm5hbWUiOiAiSm9cdTAwMDBcdTAwMDFcdTAwMDJcdTAwMDNcdTAwMDRcdTAwMDVcdTAwMDZcdTAwMDdcdTAwMDhcdTAwMDlcdTAwMEFcdTAwMEJcdTAwMENcdTAwMERcdTAwMEVcdTAwMEZcdTAwMTBcdTAwMTFcdTAwMTJcdTAwMTNcdTAwMTRcdTAwMTVcdTAwMTZcdTAwMTdcdTAwMThcdTAwMTlcdTAwMUFcdTAwMUJcdTAwMUNcdTAwMURcdTAwMUVcdTAwMUZobiIgfSk7DQogICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICYmIHN0ci5pbmRleE9mKGV4cGVjdGVkTnVsbENoYXJzW2luZGV4XSkgIT09IC0xICYmIHN0ci5pbmRleE9mKGV4cGVjdGVkTnVsbENoYXJzW2luZGV4XSkgIT09IC0xKTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gcmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.12.3-11-26"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMTIuMy0xMS0yNiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMi8xNS4xMi4zLzE1LjEyLjMtMTEtMjYuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJKU09OLnN0cmluZ2lmeSAtIHRoZSBsYXN0IGVsZW1lbnQgb2YgdGhlIGNvbmNhdGVuYXRpb24gaXMgJ10nIChUaGUgYWJzdHJhY3Qgb3BlcmF0aW9uIEpBKHZhbHVlKSBzdGVwIDEwLmIuaWlpKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIGFyck9iaiA9IFtdOw0KICAgICAgICBhcnJPYmpbMF0gPSAiYSI7DQogICAgICAgIGFyck9ialsxXSA9ICJiIjsNCiAgICAgICAgYXJyT2JqWzJdID0gImMiOw0KDQogICAgICAgIHZhciBqc29uVGV4dCA9IEpTT04uc3RyaW5naWZ5KGFyck9iaiwgdW5kZWZpbmVkLCAiIikudG9TdHJpbmcoKTsNCiAgICAgICAgcmV0dXJuIGpzb25UZXh0LnN1YnN0cihqc29uVGV4dC5sZW5ndGggLSAxLCAxKSA9PT0gIl0iOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.12.3-11-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTIuMy0xMS0zIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMTIvMTUuMTIuMy8xNS4xMi4zLTExLTMuanMiLA0KDQpkZXNjcmlwdGlvbjogIkEgSlNPTi5zdHJpbmdpZnkgY29ycmVjdGx5IHdvcmtzIG9uIHRvcCBsZXZlbCBzdHJpbmcgdmFsdWVzLiIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoImEgc3RyaW5nIikgPT09ICciYSBzdHJpbmciJzsNCiAgfSwNCiAgDQogcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVxICgpIHsNCiAgIHJldHVybiBKU09OICYmIGZuRXhpc3RzKEpTT04uc3RyaW5naWZ5KTsNCiB9DQp9ICk7DQo=]]></test>
<test id="15.12.3-11-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTIuMy0xMS00IiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMTIvMTUuMTIuMy8xNS4xMi4zLTExLTQuanMiLA0KDQpkZXNjcmlwdGlvbjogIkpTT04uc3RyaW5naWZ5IGNvcnJlY3RseSB3b3JrcyBvbiB0b3AgbGV2ZWwgTnVtYmVyIHZhbHVlcy4iLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KDEyMykgPT09ICcxMjMnOw0KICB9LA0KICANCiBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXEgKCkgew0KICByZXR1cm4gSlNPTiAmJiBmbkV4aXN0cyhKU09OLnN0cmluZ2lmeSk7DQogfQ0KfSApOw0K]]></test>
<test id="15.12.3-11-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTIuMy0xMS01IiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMTIvMTUuMTIuMy8xNS4xMi4zLTExLTUuanMiLA0KDQpkZXNjcmlwdGlvbjogIkpTT04uc3RyaW5naWZ5IGNvcnJlY3RseSB3b3JrcyBvbiB0b3AgbGV2ZWwgQm9vbGVhbiB2YWx1ZXMuIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHJldHVybiBKU09OLnN0cmluZ2lmeSh0cnVlKSA9PT0gJ3RydWUnOw0KICB9LA0KICANCiBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXEgKCkgew0KICByZXR1cm4gSlNPTiAmJiBmbkV4aXN0cyhKU09OLnN0cmluZ2lmeSk7DQogfQ0KfSApOw0K]]></test>

View File

@ -2,10 +2,40 @@
<!-- adding section element if in the future we want to store information about the -->
<!-- spec structure in this file, for now the section structure is defined in the -->
<!-- sections.js file -->
<section name="Chapter - 15.2.3.10" numTests="4">
<section name="Chapter - 15.2.3.10" numTests="34">
<test id="15.2.3.10-0-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEwLTAtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMC8xNS4yLjMuMTAtMC0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3QucHJldmVudEV4dGVuc2lvbnMgbXVzdCBleGlzdCBhcyBhIGZ1bmN0aW9uIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBmID0gT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zOw0KICBpZiAodHlwZW9mKGYpID09PSAiZnVuY3Rpb24iKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9DQp9KTsNCg==]]></test>
<test id="15.2.3.10-0-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEwLTAtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMC8xNS4yLjMuMTAtMC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3QucHJldmVudEV4dGVuc2lvbnMgbXVzdCBleGlzdCBhcyBhIGZ1bmN0aW9uIHRha2luZyAxIHBhcmFtZXRlciIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICBpZiAoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zLmxlbmd0aCA9PT0gMSkgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhPYmplY3QucHJldmVudEV4dGVuc2lvbnMpOw0KIH0NCn0pOw0K]]></test>
<test id="15.2.3.10-1-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTEtMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTAvMTUuMi4zLjEwLTEtMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyB0aHJvd3MgVHlwZUVycm9yIGlmICdPJyBpcyB1bmRlZmluZWQiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QucHJldmVudEV4dGVuc2lvbnModW5kZWZpbmVkKTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIChlIGluc3RhbmNlb2YgVHlwZUVycm9yKTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.10-1-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTEtMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTAvMTUuMi4zLjEwLTEtMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyB0aHJvd3MgVHlwZUVycm9yIGlmICdPJyBpcyBudWxsIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKG51bGwpOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.10-1-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTEtMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTAvMTUuMi4zLjEwLTEtMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyB0aHJvd3MgVHlwZUVycm9yIGlmICdPJyBpcyBhIGJvb2xlYW4gcHJpbWl0aXZlIHZhbHVlIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHRydWUpOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.10-1-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTEtNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTAvMTUuMi4zLjEwLTEtNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyB0aHJvd3MgVHlwZUVycm9yIGlmICdPJyBpcyBhIHN0cmluZyBwcmltaXRpdmUgdmFsdWUiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QucHJldmVudEV4dGVuc2lvbnMoImFiYyIpOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.10-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEwLTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTAvMTUuMi4zLjEwLTEuanMiLA0KDQpkZXNjcmlwdGlvbjogIk9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyB0aHJvd3MgVHlwZUVycm9yIGlmIHR5cGUgb2YgZmlyc3QgcGFyYW0gaXMgbm90IE9iamVjdCIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgIHRyeSB7DQogICAgICBPYmplY3QucHJldmVudEV4dGVuc2lvbnMoMCk7DQogICAgfQ0KICAgIGNhdGNoIChlKSB7DQogICAgICBpZiAoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikgew0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgIH0NCiAgICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhPYmplY3QucHJldmVudEV4dGVuc2lvbnMpOw0KIH0NCn0pOw0K]]></test>
<test id="15.2.3.10-2-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTItMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTAvMTUuMi4zLjEwLTItMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyAtIHJlcGVhdGVkIGNhbGxzIHRvIHByZXZlbnRFeHRlbnNpb25zIGhhdmUgbm8gc2lkZSBlZmZlY3RzIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgb2JqID0ge307DQogICAgICAgIHZhciB0ZXN0UmVzdWx0MSA9IHRydWU7DQogICAgICAgIHZhciB0ZXN0UmVzdWx0MiA9IHRydWU7DQoNCiAgICAgICAgdmFyIHByZUNoZWNrID0gT2JqZWN0LmlzRXh0ZW5zaWJsZShvYmopOw0KDQogICAgICAgIE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyhvYmopOw0KICAgICAgICB0ZXN0UmVzdWx0MSA9IE9iamVjdC5pc0V4dGVuc2libGUob2JqKTsNCiAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKG9iaik7DQogICAgICAgIHRlc3RSZXN1bHQyID0gT2JqZWN0LmlzRXh0ZW5zaWJsZShvYmopOw0KDQogICAgICAgIHJldHVybiBwcmVDaGVjayAmJiAhdGVzdFJlc3VsdDEgJiYgIXRlc3RSZXN1bHQyOw0KDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKSAmJiBmbkV4aXN0cyhPYmplY3QuaXNFeHRlbnNpYmxlKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.10-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEwLTIiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTAvMTUuMi4zLjEwLTIuanMiLA0KDQpkZXNjcmlwdGlvbjogIk9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyByZXR1cm5zIGl0cyBhcmd1bWVudHMgYWZ0ZXIgc2V0dGluZyBpdHMgZXh0ZW5zaWJsZSBwcm9wZXJ0eSB0byBmYWxzZSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgbyAgPSB7fTsNCiAgdmFyIG8yID0gdW5kZWZpbmVkOw0KDQogIG8yID0gT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKG8pOw0KICBpZiAobzIgPT09IG8gJiYgT2JqZWN0LmlzRXh0ZW5zaWJsZShvMikgPT09IGZhbHNlKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.2.3.10-3-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTMtMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTAvMTUuMi4zLjEwLTMtMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyAtIE9iamVjdC5pc0V4dGVuc2libGUoYXJnKSByZXR1cm5zIGZhbHNlIGlmIGFyZyBpcyB0aGUgcmV0dXJuZWQgb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgb2JqID0ge307DQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUob2JqKTsNCiAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKG9iaik7DQoNCiAgICAgICAgcmV0dXJuIHByZUNoZWNrICYmICFPYmplY3QuaXNFeHRlbnNpYmxlKG9iaik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKSAmJiBmbkV4aXN0cyhPYmplY3QuaXNFeHRlbnNpYmxlKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.10-3-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTMtMTAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjEwLzE1LjIuMy4xMC0zLTEwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zIC0gaW5kZXhlZCBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBhZGRlZCBpbnRvIGFuIEVycm9yIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIGVyck9iaiA9IG5ldyBFcnJvcigpOw0KICAgICAgICB2YXIgcHJlQ2hlY2sgPSBPYmplY3QuaXNFeHRlbnNpYmxlKGVyck9iaik7DQogICAgICAgIE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyhlcnJPYmopOw0KDQogICAgICAgIGVyck9ialswXSA9IDEyOw0KICAgICAgICByZXR1cm4gcHJlQ2hlY2sgJiYgIWVyck9iai5oYXNPd25Qcm9wZXJ0eSgiMCIpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucykgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.10-3-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTMtMTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjEwLzE1LjIuMy4xMC0zLTExLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zIC0gaW5kZXhlZCBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBhZGRlZCBpbnRvIGFuIEFyZ3VtZW50cyBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBhcmdPYmo7DQogICAgICAgIChmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBhcmdPYmogPSBhcmd1bWVudHM7DQogICAgICAgIH0oKSk7DQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUoYXJnT2JqKTsNCiAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKGFyZ09iaik7DQoNCiAgICAgICAgYXJnT2JqWzBdID0gMTI7DQogICAgICAgIHJldHVybiBwcmVDaGVjayAmJiAhYXJnT2JqLmhhc093blByb3BlcnR5KCIwIik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKSAmJiBmbkV4aXN0cyhPYmplY3QuaXNFeHRlbnNpYmxlKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.10-3-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTMtMTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjEwLzE1LjIuMy4xMC0zLTEyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zIC0gbmFtZWQgcHJvcGVydGllcyBjYW5ub3QgYmUgYWRkZWQgaW50byB0aGUgcmV0dXJuZWQgb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgb2JqID0ge307DQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUob2JqKTsNCiAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKG9iaik7DQoNCiAgICAgICAgb2JqLmV4TmFtZSA9IDI7DQogICAgICAgIHJldHVybiBwcmVDaGVjayAmJiAhT2JqZWN0Lmhhc093blByb3BlcnR5KCJleE5hbWUiKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QucHJldmVudEV4dGVuc2lvbnMpICYmIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.10-3-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTMtMTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjEwLzE1LjIuMy4xMC0zLTEzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zIC0gbmFtZWQgcHJvcGVydGllcyBjYW5ub3QgYmUgYWRkZWQgaW50byBhIEZ1bmN0aW9uIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIGZ1bk9iaiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgdmFyIHByZUNoZWNrID0gT2JqZWN0LmlzRXh0ZW5zaWJsZShmdW5PYmopOw0KICAgICAgICBPYmplY3QucHJldmVudEV4dGVuc2lvbnMoZnVuT2JqKTsNCg0KICAgICAgICBmdW5PYmouZXhOYW1lID0gMjsNCiAgICAgICAgcmV0dXJuIHByZUNoZWNrICYmICFmdW5PYmouaGFzT3duUHJvcGVydHkoImV4TmFtZSIpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucykgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.10-3-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTMtMTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjEwLzE1LjIuMy4xMC0zLTE0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zIC0gbmFtZWQgcHJvcGVydGllcyBjYW5ub3QgYmUgYWRkZWQgaW50byBhbiBBcnJheSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBhcnJPYmogPSBbXTsNCiAgICAgICAgdmFyIHByZUNoZWNrID0gT2JqZWN0LmlzRXh0ZW5zaWJsZShhcnJPYmopOw0KICAgICAgICBPYmplY3QucHJldmVudEV4dGVuc2lvbnMoYXJyT2JqKTsNCg0KICAgICAgICBhcnJPYmouZXhOYW1lID0gMjsNCiAgICAgICAgcmV0dXJuIHByZUNoZWNrICYmICFhcnJPYmouaGFzT3duUHJvcGVydHkoImV4TmFtZSIpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucykgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.10-3-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTMtMTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjEwLzE1LjIuMy4xMC0zLTE1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zIC0gbmFtZWQgcHJvcGVydGllcyBjYW5ub3QgYmUgYWRkZWQgaW50byBhIFN0cmluZyBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBzdHJPYmogPSBuZXcgU3RyaW5nKCJiYnEiKTsNCiAgICAgICAgdmFyIHByZUNoZWNrID0gT2JqZWN0LmlzRXh0ZW5zaWJsZShzdHJPYmopOw0KICAgICAgICBPYmplY3QucHJldmVudEV4dGVuc2lvbnMoc3RyT2JqKTsNCg0KICAgICAgICBzdHJPYmouZXhOYW1lID0gMjsNCiAgICAgICAgcmV0dXJuIHByZUNoZWNrICYmICFzdHJPYmouaGFzT3duUHJvcGVydHkoImV4TmFtZSIpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucykgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.10-3-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTMtMTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjEwLzE1LjIuMy4xMC0zLTE2LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zIC0gbmFtZWQgcHJvcGVydGllcyBjYW5ub3QgYmUgYWRkZWQgaW50byBhIEJvb2xlYW4gb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgYm9vbE9iaiA9IG5ldyBCb29sZWFuKHRydWUpOw0KICAgICAgICB2YXIgcHJlQ2hlY2sgPSBPYmplY3QuaXNFeHRlbnNpYmxlKGJvb2xPYmopOw0KICAgICAgICBPYmplY3QucHJldmVudEV4dGVuc2lvbnMoYm9vbE9iaik7DQoNCiAgICAgICAgYm9vbE9iai5leE5hbWUgPSAyOw0KICAgICAgICByZXR1cm4gcHJlQ2hlY2sgJiYgIWJvb2xPYmouaGFzT3duUHJvcGVydHkoImV4TmFtZSIpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucykgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.10-3-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTMtMTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjEwLzE1LjIuMy4xMC0zLTE3LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zIC0gbmFtZWQgcHJvcGVydGllcyBjYW5ub3QgYmUgYWRkZWQgaW50byBhIE51bWJlciBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBudW1PYmogPSBuZXcgTnVtYmVyKDEyMyk7DQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUobnVtT2JqKTsNCiAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKG51bU9iaik7DQoNCiAgICAgICAgbnVtT2JqLmV4TmFtZSA9IDI7DQogICAgICAgIHJldHVybiBwcmVDaGVjayAmJiAhbnVtT2JqLmhhc093blByb3BlcnR5KCJleE5hbWUiKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QucHJldmVudEV4dGVuc2lvbnMpICYmIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.10-3-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTMtMTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjEwLzE1LjIuMy4xMC0zLTE4LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zIC0gbmFtZWQgcHJvcGVydGllcyBjYW5ub3QgYmUgYWRkZWQgaW50byBhIERhdGUgb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgZGF0ZU9iaiA9IG5ldyBEYXRlKCk7DQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUoZGF0ZU9iaik7DQogICAgICAgIE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyhkYXRlT2JqKTsNCg0KICAgICAgICBkYXRlT2JqLmV4TmFtZSA9IDI7DQogICAgICAgIHJldHVybiBwcmVDaGVjayAmJiAhZGF0ZU9iai5oYXNPd25Qcm9wZXJ0eSgiZXhOYW1lIik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKSAmJiBmbkV4aXN0cyhPYmplY3QuaXNFeHRlbnNpYmxlKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.10-3-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTMtMTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjEwLzE1LjIuMy4xMC0zLTE5LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zIC0gbmFtZWQgcHJvcGVydGllcyBjYW5ub3QgYmUgYWRkZWQgaW50byBhIFJlZ0V4cCBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciByZWdPYmogPSBuZXcgUmVnRXhwKCk7DQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUocmVnT2JqKTsNCiAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHJlZ09iaik7DQoNCiAgICAgICAgcmVnT2JqLmV4TmFtZSA9IDI7DQogICAgICAgIHJldHVybiBwcmVDaGVjayAmJiAhcmVnT2JqLmhhc093blByb3BlcnR5KCJleE5hbWUiKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QucHJldmVudEV4dGVuc2lvbnMpICYmIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.10-3-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTMtMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTAvMTUuMi4zLjEwLTMtMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyAtIGluZGV4ZWQgcHJvcGVydGllcyBjYW5ub3QgYmUgYWRkZWQgaW50byB0aGUgcmV0dXJuZWQgb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBvYmogPSB7fTsNCiAgICAgICAgdmFyIHByZUNoZWNrID0gT2JqZWN0LmlzRXh0ZW5zaWJsZShvYmopOw0KICAgICAgICBPYmplY3QucHJldmVudEV4dGVuc2lvbnMob2JqKTsNCg0KICAgICAgICBvYmpbMF0gPSAxMjsNCiAgICAgICAgcmV0dXJuIHByZUNoZWNrICYmICFvYmouaGFzT3duUHJvcGVydHkoIjAiKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QucHJldmVudEV4dGVuc2lvbnMpICYmIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.10-3-20"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTMtMjAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjEwLzE1LjIuMy4xMC0zLTIwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zIC0gbmFtZWQgcHJvcGVydGllcyBjYW5ub3QgYmUgYWRkZWQgaW50byBhbiBFcnJvciBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBlcnJPYmogPSBuZXcgRXJyb3IoKTsNCiAgICAgICAgdmFyIHByZUNoZWNrID0gT2JqZWN0LmlzRXh0ZW5zaWJsZShlcnJPYmopOw0KICAgICAgICBPYmplY3QucHJldmVudEV4dGVuc2lvbnMoZXJyT2JqKTsNCg0KICAgICAgICBlcnJPYmouZXhOYW1lID0gMjsNCiAgICAgICAgcmV0dXJuIHByZUNoZWNrICYmICFlcnJPYmouaGFzT3duUHJvcGVydHkoImV4TmFtZSIpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucykgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.10-3-21"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTMtMjEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjEwLzE1LjIuMy4xMC0zLTIxLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zIC0gbmFtZWQgcHJvcGVydGllcyBjYW5ub3QgYmUgYWRkZWQgaW50byBhbiBBcmd1bWVudHMgb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgYXJnT2JqOw0KICAgICAgICAoZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgYXJnT2JqID0gYXJndW1lbnRzOw0KICAgICAgICB9KCkpOw0KICAgICAgICB2YXIgcHJlQ2hlY2sgPSBPYmplY3QuaXNFeHRlbnNpYmxlKGFyZ09iaik7DQogICAgICAgIE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyhhcmdPYmopOw0KDQogICAgICAgIGFyZ09iai5leE5hbWUgPSAyOw0KICAgICAgICByZXR1cm4gcHJlQ2hlY2sgJiYgIWFyZ09iai5oYXNPd25Qcm9wZXJ0eSgiZXhOYW1lIik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKSAmJiBmbkV4aXN0cyhPYmplY3QuaXNFeHRlbnNpYmxlKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.10-3-22"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTMtMjIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjEwLzE1LjIuMy4xMC0zLTIyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zIC0gcHJvcGVydGllcyBjYW4gc3RpbGwgYmUgZGVsZXRlZCBhZnRlciBleHRlbnNpb25zIGhhdmUgYmVlbiBwcmV2ZW50ZWQiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBvYmogPSB7IHByb3A6IDEyIH07DQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUob2JqKTsNCiAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKG9iaik7DQoNCiAgICAgICAgZGVsZXRlIG9iai5wcm9wOw0KDQogICAgICAgIHJldHVybiBwcmVDaGVjayAmJiAhb2JqLmhhc093blByb3BlcnR5KCJwcm9wIik7DQoNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QucHJldmVudEV4dGVuc2lvbnMpICYmIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.10-3-23"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTMtMjMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjEwLzE1LjIuMy4xMC0zLTIzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zIC0gcHJvcGVydGllcyBjYW4gc3RpbGwgYmUgcmVhc3NpZ25lZCBhZnRlciBleHRlbnNpb25zIGhhdmUgYmVlbiBwcmV2ZW50ZWQiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBvYmogPSB7IHByb3A6IDEyIH07DQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUob2JqKTsNCiAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKG9iaik7DQoNCiAgICAgICAgb2JqLnByb3AgPSAtMTsNCg0KICAgICAgICByZXR1cm4gcHJlQ2hlY2sgJiYgb2JqLnByb3AgPT09IC0xOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucykgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.10-3-24"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTMtMjQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjEwLzE1LjIuMy4xMC0zLTI0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zIC0gW1tFeHRlbnNpYmxlXV06IGZhbHNlIG9uIGEgcHJvdG90eXBlIGRvZXNuJ3QgcHJldmVudCBhZGRpbmcgcHJvcGVydGllcyB0byBhbiBpbnN0YW5jZSB0aGF0IGluaGVyaXRzIGZyb20gdGhhdCBwcm90b3R5cGUiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBwcm90byA9IHt9Ow0KICAgICAgICB2YXIgcHJlQ2hlY2sgPSBPYmplY3QuaXNFeHRlbnNpYmxlKHByb3RvKTsNCiAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHByb3RvKTsNCg0KICAgICAgICB2YXIgQ29uc3RydWN0RnVuID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb25zdHJ1Y3RGdW4ucHJvdG90eXBlID0gcHJvdG87DQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb25zdHJ1Y3RGdW4oKTsNCg0KICAgICAgICBjaGlsZC5wcm9wID0gMTA7DQoNCiAgICAgICAgcmV0dXJuIHByZUNoZWNrICYmIGNoaWxkLmhhc093blByb3BlcnR5KCJwcm9wIik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKSAmJiBmbkV4aXN0cyhPYmplY3QuaXNFeHRlbnNpYmxlKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.10-3-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTMtMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTAvMTUuMi4zLjEwLTMtMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyAtIGluZGV4ZWQgcHJvcGVydGllcyBjYW5ub3QgYmUgYWRkZWQgaW50byBhIEZ1bmN0aW9uIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIGZ1bk9iaiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgdmFyIHByZUNoZWNrID0gT2JqZWN0LmlzRXh0ZW5zaWJsZShmdW5PYmopOw0KICAgICAgICBPYmplY3QucHJldmVudEV4dGVuc2lvbnMoZnVuT2JqKTsNCg0KICAgICAgICBmdW5PYmpbMF0gPSAxMjsNCiAgICAgICAgcmV0dXJuIHByZUNoZWNrICYmICFmdW5PYmouaGFzT3duUHJvcGVydHkoIjAiKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QucHJldmVudEV4dGVuc2lvbnMpICYmIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.10-3-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTMtNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTAvMTUuMi4zLjEwLTMtNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyAtIGluZGV4ZWQgcHJvcGVydGllcyBjYW5ub3QgYmUgYWRkZWQgaW50byBhbiBBcnJheSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBhcnJPYmogPSBbXTsNCiAgICAgICAgdmFyIHByZUNoZWNrID0gT2JqZWN0LmlzRXh0ZW5zaWJsZShhcnJPYmopOw0KICAgICAgICBPYmplY3QucHJldmVudEV4dGVuc2lvbnMoYXJyT2JqKTsNCg0KICAgICAgICBhcnJPYmpbMF0gPSAxMjsNCiAgICAgICAgcmV0dXJuIHByZUNoZWNrICYmICFhcnJPYmouaGFzT3duUHJvcGVydHkoIjAiKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QucHJldmVudEV4dGVuc2lvbnMpICYmIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.10-3-5-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTMtNS0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMC8xNS4yLjMuMTAtMy01LTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QucHJldmVudEV4dGVuc2lvbnMgLSBpbmRleGVkIHByb3BlcnRpZXMgY2Fubm90IGJlIGFkZGVkIGludG8gYSBTdHJpbmcgb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgc3RyT2JqID0gbmV3IFN0cmluZygiYmJxIik7DQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUoc3RyT2JqKTsNCiAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHN0ck9iaik7DQoNCiAgICAgICAgc3RyT2JqWzEwXSA9IDEyOw0KICAgICAgICByZXR1cm4gcHJlQ2hlY2sgJiYgIXN0ck9iai5oYXNPd25Qcm9wZXJ0eSgiMTAiKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QucHJldmVudEV4dGVuc2lvbnMpICYmIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.10-3-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTMtNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTAvMTUuMi4zLjEwLTMtNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyAtIGluZGV4ZWQgcHJvcGVydGllcyBjYW5ub3QgYmUgYWRkZWQgaW50byBhIFN0cmluZyBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBzdHJPYmogPSBuZXcgU3RyaW5nKCk7DQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUoc3RyT2JqKTsNCiAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHN0ck9iaik7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc3RyT2JqLCAiMCIsIHsgdmFsdWU6ICJjIiB9KTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IgJiYgcHJlQ2hlY2sgJiYNCiAgICAgICAgICAgICAgICAhc3RyT2JqLmhhc093blByb3BlcnR5KCIwIikgJiYgdHlwZW9mIHN0ck9ialswXSA9PT0gInVuZGVmaW5lZCI7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QucHJldmVudEV4dGVuc2lvbnMpICYmIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.10-3-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTMtNiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTAvMTUuMi4zLjEwLTMtNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyAtIGluZGV4ZWQgcHJvcGVydGllcyBjYW5ub3QgYmUgYWRkZWQgaW50byBhIEJvb2xlYW4gb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgYm9vbE9iaiA9IG5ldyBCb29sZWFuKHRydWUpOw0KICAgICAgICB2YXIgcHJlQ2hlY2sgPSBPYmplY3QuaXNFeHRlbnNpYmxlKGJvb2xPYmopOw0KICAgICAgICBPYmplY3QucHJldmVudEV4dGVuc2lvbnMoYm9vbE9iaik7DQoNCiAgICAgICAgYm9vbE9ialswXSA9IDEyOw0KICAgICAgICByZXR1cm4gcHJlQ2hlY2sgJiYgIWJvb2xPYmouaGFzT3duUHJvcGVydHkoIjAiKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QucHJldmVudEV4dGVuc2lvbnMpICYmIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.10-3-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTMtNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTAvMTUuMi4zLjEwLTMtNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyAtIGluZGV4ZWQgcHJvcGVydGllcyBjYW5ub3QgYmUgYWRkZWQgaW50byBhIE51bWJlciBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBudW1PYmogPSBuZXcgTnVtYmVyKDEyMyk7DQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUobnVtT2JqKTsNCiAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKG51bU9iaik7DQoNCiAgICAgICAgbnVtT2JqWzBdID0gMTI7DQogICAgICAgIHJldHVybiBwcmVDaGVjayAmJiAhbnVtT2JqLmhhc093blByb3BlcnR5KCIwIik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKSAmJiBmbkV4aXN0cyhPYmplY3QuaXNFeHRlbnNpYmxlKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.10-3-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTMtOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTAvMTUuMi4zLjEwLTMtOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyAtIGluZGV4ZWQgcHJvcGVydGllcyBjYW5ub3QgYmUgYWRkZWQgaW50byBhIERhdGUgb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgZGF0ZU9iaiA9IG5ldyBEYXRlKCk7DQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUoZGF0ZU9iaik7DQogICAgICAgIE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyhkYXRlT2JqKTsNCg0KICAgICAgICBkYXRlT2JqWzBdID0gMTI7DQogICAgICAgIHJldHVybiBwcmVDaGVjayAmJiAhZGF0ZU9iai5oYXNPd25Qcm9wZXJ0eSgiMCIpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucykgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.10-3-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEwLTMtOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTAvMTUuMi4zLjEwLTMtOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyAtIGluZGV4ZWQgcHJvcGVydGllcyBjYW5ub3QgYmUgYWRkZWQgaW50byBhIFJlZ0V4cCBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciByZWdPYmogPSBuZXcgUmVnRXhwKCk7DQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUocmVnT2JqKTsNCiAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHJlZ09iaik7DQoNCiAgICAgICAgcmVnT2JqWzBdID0gMTI7DQogICAgICAgIHJldHVybiBwcmVDaGVjayAmJiAhcmVnT2JqLmhhc093blByb3BlcnR5KCIwIik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKSAmJiBmbkV4aXN0cyhPYmplY3QuaXNFeHRlbnNpYmxlKTsNCiAgICB9DQp9KTsNCg==]]></test>
</section>
</testCollection>

View File

@ -2,10 +2,34 @@
<!-- adding section element if in the future we want to store information about the -->
<!-- spec structure in this file, for now the section structure is defined in the -->
<!-- sections.js file -->
<section name="Chapter - 15.2.3.12" numTests="30">
<section name="Chapter - 15.2.3.12" numTests="56">
<test id="15.2.3.12-0-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEyLTAtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMi8xNS4yLjMuMTItMC0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3QuaXNGcm96ZW4gbXVzdCBleGlzdCBhcyBhIGZ1bmN0aW9uIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBmID0gT2JqZWN0LmlzRnJvemVuOw0KICBpZiAodHlwZW9mKGYpID09PSAiZnVuY3Rpb24iKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9DQp9KTsNCg==]]></test>
<test id="15.2.3.12-0-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEyLTAtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMi8xNS4yLjMuMTItMC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3QuaXNGcm96ZW4gbXVzdCBleGlzdCBhcyBhIGZ1bmN0aW9uIHRha2luZyAxIHBhcmFtZXRlciIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICBpZiAoT2JqZWN0LmlzRnJvemVuLmxlbmd0aCA9PT0gMSkgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhPYmplY3QuaXNGcm96ZW4pOw0KIH0NCn0pOw0K]]></test>
<test id="15.2.3.12-1-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEyLTEtMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTIvMTUuMi4zLjEyLTEtMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5pc0Zyb3plbiAtIFR5cGVFcnJvciBpcyB0aHJvd24gd2hlbiB0aGUgZmlyc3QgcGFyYW0gJ08nIGlzIHVuZGVmaW5lZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5pc0Zyb3plbih1bmRlZmluZWQpOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmlzRnJvemVuKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.12-1-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEyLTEtMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTIvMTUuMi4zLjEyLTEtMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5pc0Zyb3plbiAtIFR5cGVFcnJvciBpcyB0aHJvd24gd2hlbiB0aGUgZmlyc3QgcGFyYW0gJ08nIGlzIG51bGwiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuaXNGcm96ZW4obnVsbCk7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiAoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcik7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QuaXNGcm96ZW4pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.12-1-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEyLTEtMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTIvMTUuMi4zLjEyLTEtMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5pc0Zyb3plbiAtIFR5cGVFcnJvciBpcyB0aHJvd24gd2hlbiB0aGUgZmlyc3QgcGFyYW0gJ08nIGlzIGEgYm9vbGVhbiIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5pc0Zyb3plbih0cnVlKTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIChlIGluc3RhbmNlb2YgVHlwZUVycm9yKTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0Zyb3plbik7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.12-1-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEyLTEtNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTIvMTUuMi4zLjEyLTEtNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5pc0Zyb3plbiAtIFR5cGVFcnJvciBpcyB0aHJvd24gd2hlbiB0aGUgZmlyc3QgcGFyYW0gJ08nIGlzIGEgc3RyaW5nIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmlzRnJvemVuKCJhYmMiKTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIChlIGluc3RhbmNlb2YgVHlwZUVycm9yKTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0Zyb3plbik7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.12-1-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEyLTEtNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTIvMTUuMi4zLjEyLTEtNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5pc0Zyb3plbiBhcHBsaWVzIHRvIGRlbnNlIGFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgb2JqID0gT2JqZWN0LmZyZWV6ZShbMCwgMSwgMl0pOw0KICAgICAgICByZXR1cm4gT2JqZWN0LmlzRnJvemVuKG9iaik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmlzRnJvemVuKSAmJiBmbkV4aXN0cyhPYmplY3QuZnJlZXplKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.12-1-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEyLTEtNiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTIvMTUuMi4zLjEyLTEtNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5pc0Zyb3plbiBhcHBsaWVzIHRvIHNwYXJzZSBhcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIHNwYXJzZUFyciA9IFswLCAxXTsNCiAgICAgICAgc3BhcnNlQXJyWzEwMDAwXSA9IDEwMDAwOw0KDQogICAgICAgIHNwYXJzZUFyciA9IE9iamVjdC5mcmVlemUoc3BhcnNlQXJyKTsNCiAgICAgICAgcmV0dXJuIE9iamVjdC5pc0Zyb3plbihzcGFyc2VBcnIpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0Zyb3plbikgJiYgZm5FeGlzdHMoT2JqZWN0LmZyZWV6ZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.12-1-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEyLTEtNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTIvMTUuMi4zLjEyLTEtNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5pc0Zyb3plbiBhcHBsaWVzIHRvIG5vbi1hcnJheSBvYmplY3Qgd2hpY2ggY29udGFpbnMgaW5kZXggbmFtZWQgcHJvcGVydGllcyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IE9iamVjdC5mcmVlemUoeyAwOiAwLCAxOiAxLCAxMDAwOiAxMDAwIH0pOw0KICAgICAgICByZXR1cm4gT2JqZWN0LmlzRnJvemVuKG9iaik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmlzRnJvemVuKSAmJiBmbkV4aXN0cyhPYmplY3QuZnJlZXplKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.12-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEyLTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTIvMTUuMi4zLjEyLTEuanMiLA0KDQpkZXNjcmlwdGlvbjogIk9iamVjdC5pc0Zyb3plbiB0aHJvd3MgVHlwZUVycm9yIGlmIHR5cGUgb2YgZmlyc3QgcGFyYW0gaXMgbm90IE9iamVjdCIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgIHRyeSB7DQogICAgICBPYmplY3QuaXNGcm96ZW4oMCk7DQogICAgfQ0KICAgIGNhdGNoIChlKSB7DQogICAgICBpZiAoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikgew0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgIH0NCiAgICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhPYmplY3QuaXNGcm96ZW4pOw0KIH0NCn0pOw0K]]></test>
<test id="15.2.3.12-2-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS4yLjMuMTItMi0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMi8xNS4yLjMuMTItMi0xLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LmlzRnJvemVuIC0gaW5oZXJpdGVkIGRhdGEgcHJvcGVydHkgaXMgbm90IGNvbnNpZGVyZWQgaW50byB0aGUgZm9yIGVhY2ggbG9vcCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgcHJvdG8gPSB7fTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAiRmF0aGVyIiwgew0KICAgICAgICAgICAgdmFsdWU6IDEwLA0KICAgICAgICAgICAgd3JpdGFibGU6IGZhbHNlLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQoNCiAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKGNoaWxkKTsNCg0KICAgICAgICByZXR1cm4gT2JqZWN0LmlzRnJvemVuKGNoaWxkKTsNCg0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0Zyb3plbikgJiYgZm5FeGlzdHMoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCn0pOw0KDQo=]]></test>
<test id="15.2.3.12-2-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS4yLjMuMTItMi0yIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMi8xNS4yLjMuMTItMi0yLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LmlzRnJvemVuIC0gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IGlzIG5vdCBjb25zaWRlcmVkIGludG8gdGhlIGZvciBlYWNoIGxvb3AiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHByb3RvID0ge307DQogICAgICAgIA0KICAgICAgICBmdW5jdGlvbiBnZXRfZnVuYygpIHsNCiAgICAgICAgICAgIHJldHVybiAxMDsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBzZXRfZnVuYygpIHsgfQ0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywgIkZhdGhlciIsIHsNCiAgICAgICAgICAgIGdldDogZ2V0X2Z1bmMsDQogICAgICAgICAgICBzZXQ6IHNldF9mdW5jLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQoNCiAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKGNoaWxkKTsNCg0KICAgICAgICByZXR1cm4gT2JqZWN0LmlzRnJvemVuKGNoaWxkKTsNCg0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0Zyb3plbikgJiYgZm5FeGlzdHMoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCn0pOw0KDQo=]]></test>
<test id="15.2.3.12-2-a-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEyLTItYS0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMi8xNS4yLjMuMTItMi1hLTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuaXNGcm96ZW4gLSAnUCcgaXMgb3duIGRhdGEgcHJvcGVydHkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJmb28iLCB7DQogICAgICAgICAgICB2YWx1ZTogMTIsDQogICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKG9iaik7DQoNCiAgICAgICAgcmV0dXJuICFPYmplY3QuaXNGcm96ZW4ob2JqKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QuaXNGcm96ZW4pICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5FeGlzdHMoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.12-2-a-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEyLTItYS0xMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTIvMTUuMi4zLjEyLTItYS0xMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5pc0Zyb3plbiAtICdPJyBpcyB0aGUgQXJndW1lbnRzIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYXJnOw0KDQogICAgICAgIChmdW5jdGlvbiBmdW4oKSB7DQogICAgICAgICAgICBhcmcgPSBhcmd1bWVudHM7DQogICAgICAgIH0oMSwgMiwgMykpOw0KDQogICAgICAgIE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyhhcmcpOw0KICAgICAgICByZXR1cm4gIU9iamVjdC5pc0Zyb3plbihhcmcpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0Zyb3plbikgJiYgZm5FeGlzdHMoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.12-2-a-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEyLTItYS0xMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTIvMTUuMi4zLjEyLTItYS0xMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5pc0Zyb3plbiAtICdPJyBpcyBhIFN0cmluZyBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iaiA9IG5ldyBTdHJpbmcoImFiYyIpOw0KDQogICAgICAgIG9iai5sZW4gPSAxMDA7DQoNCiAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKG9iaik7DQoNCiAgICAgICAgcmV0dXJuICFPYmplY3QuaXNGcm96ZW4ob2JqKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QuaXNGcm96ZW4pICYmIGZuRXhpc3RzKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.12-2-a-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEyLTItYS0xMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTIvMTUuMi4zLjEyLTItYS0xMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5pc0Zyb3plbiAtICdPJyBpcyBhIEZ1bmN0aW9uIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgb2JqID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICANCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgInByb3BlcnR5Iiwgew0KICAgICAgICAgICAgdmFsdWU6IDEyLA0KICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyhvYmopOw0KDQogICAgICAgIHJldHVybiAhT2JqZWN0LmlzRnJvemVuKG9iaik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmlzRnJvemVuKSAmJiBmbkV4aXN0cyhPYmplY3QucHJldmVudEV4dGVuc2lvbnMpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.12-2-a-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEyLTItYS0xNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTIvMTUuMi4zLjEyLTItYS0xNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5pc0Zyb3plbiAtICdPJyBpcyBhbiBBcnJheSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iaiA9IFsyXTsNCiAgICAgICAgb2JqLmxlbiA9IDIwMDsNCg0KICAgICAgICBPYmplY3QucHJldmVudEV4dGVuc2lvbnMob2JqKTsNCg0KICAgICAgICByZXR1cm4gIU9iamVjdC5pc0Zyb3plbihvYmopOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0Zyb3plbikgJiYgZm5FeGlzdHMoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.12-2-a-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEyLTItYS0yIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMi8xNS4yLjMuMTItMi1hLTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuaXNGcm96ZW4gLSAnUCcgaXMgb3duIGRhdGEgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGRhdGEgcHJvcGVydHkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHByb3RvID0ge307DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAiZm9vIiwgew0KICAgICAgICAgICAgdmFsdWU6IDksDQogICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjaGlsZCwgImZvbyIsIHsNCiAgICAgICAgICAgIHZhbHVlOiAxMiwNCiAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QucHJldmVudEV4dGVuc2lvbnMoY2hpbGQpOw0KICAgICAgICByZXR1cm4gIU9iamVjdC5pc0Zyb3plbihjaGlsZCk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmlzRnJvemVuKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuRXhpc3RzKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.12-2-a-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEyLTItYS0zIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMi8xNS4yLjMuMTItMi1hLTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuaXNGcm96ZW4gLSAnUCcgaXMgb3duIGRhdGEgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBwcm90byA9IHt9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywgImZvbyIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiA5Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQoNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY2hpbGQsICJmb28iLCB7DQogICAgICAgICAgICB2YWx1ZTogMTIsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKGNoaWxkKTsNCiAgICAgICAgcmV0dXJuICFPYmplY3QuaXNGcm96ZW4oY2hpbGQpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0Zyb3plbikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmbkV4aXN0cyhPYmplY3QucHJldmVudEV4dGVuc2lvbnMpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.12-2-a-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEyLTItYS00IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMi8xNS4yLjMuMTItMi1hLTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuaXNGcm96ZW4gLSAnUCcgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBvYmogPSB7fTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImZvbyIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiA5Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QucHJldmVudEV4dGVuc2lvbnMob2JqKTsNCiAgICAgICAgcmV0dXJuICFPYmplY3QuaXNGcm96ZW4ob2JqKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QuaXNGcm96ZW4pICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5FeGlzdHMoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.12-2-a-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEyLTItYS01IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMi8xNS4yLjMuMTItMi1hLTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuaXNGcm96ZW4gLSAnUCcgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBkYXRhIHByb3BlcnR5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBwcm90byA9IHt9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywgImZvbyIsIHsNCiAgICAgICAgICAgIHZhbHVlOiAxMiwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNoaWxkLCAiZm9vIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyhjaGlsZCk7DQogICAgICAgIHJldHVybiAhT2JqZWN0LmlzRnJvemVuKGNoaWxkKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QuaXNGcm96ZW4pICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5FeGlzdHMoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.12-2-a-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEyLTItYS02IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMi8xNS4yLjMuMTItMi1hLTYuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuaXNGcm96ZW4gLSAnUCcgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgcHJvdG8gPSB7fTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICJmb28iLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTI7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb24oKTsNCg0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjaGlsZCwgImZvbyIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiA5Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QucHJldmVudEV4dGVuc2lvbnMoY2hpbGQpOw0KICAgICAgICByZXR1cm4gIU9iamVjdC5pc0Zyb3plbihjaGlsZCk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmlzRnJvemVuKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuRXhpc3RzKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.12-2-a-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEyLTItYS03IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMi8xNS4yLjMuMTItMi1hLTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuaXNGcm96ZW4gLSAnUCcgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24iLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZm9vIiwgew0KICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKG9iaik7DQogICAgICAgIHJldHVybiAhT2JqZWN0LmlzRnJvemVuKG9iaik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmlzRnJvemVuKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuRXhpc3RzKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.12-2-a-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEyLTItYS04IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMi8xNS4yLjMuMTItMi1hLTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuaXNGcm96ZW4gLSAnUCcgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBwcm90byA9IHt9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywgImZvbyIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiA5Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNoaWxkLCAiZm9vIiwgew0KICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKGNoaWxkKTsNCiAgICAgICAgcmV0dXJuICFPYmplY3QuaXNGcm96ZW4oY2hpbGQpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0Zyb3plbikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmbkV4aXN0cyhPYmplY3QucHJldmVudEV4dGVuc2lvbnMpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.12-2-b-i-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS4yLjMuMTItMi1iLWktMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTIvMTUuMi4zLjEyLTItYi1pLTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuaXNGcm96ZW4gcmV0dXJucyBmYWxzZSBpZiAnTycgY29udGFpbnMgb3duIHdyaXRhYmxlIGRhdGEgcHJvcGVydHkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZm9vIiwgew0KICAgICAgICAgICAgdmFsdWU6IDIwLA0KICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlDQogICAgICAgIH0pOw0KICAgICAgICBPYmplY3QucHJldmVudEV4dGVuc2lvbnMob2JqKTsNCiAgICAgICAgcmV0dXJuICFPYmplY3QuaXNGcm96ZW4ob2JqKTsNCg0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0Zyb3plbikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmbkV4aXN0cyhPYmplY3QucHJldmVudEV4dGVuc2lvbnMpOw0KICAgIH0NCn0pOw0KDQo=]]></test>
<test id="15.2.3.12-2-c-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS4yLjMuMTItMi1jLTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjEyLzE1LjIuMy4xMi0yLWMtMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5pc0Zyb3plbiByZXR1cm5zIGZhbHNlIGlmICdPJyBjb250YWlucyBvd24gY29uZmlndXJhYmxlIGRhdGEgcHJvcGVydHkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZm9vIiwgew0KICAgICAgICAgICAgdmFsdWU6IDIwLA0KICAgICAgICAgICAgd3JpdGFibGU6IGZhbHNlLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyhvYmopOw0KICAgICAgICByZXR1cm4gIU9iamVjdC5pc0Zyb3plbihvYmopOw0KDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmlzRnJvemVuKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuRXhpc3RzKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyk7DQogICAgfQ0KfSk7DQoNCg==]]></test>
<test id="15.2.3.12-2-c-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS4yLjMuMTItMi1jLTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjEyLzE1LjIuMy4xMi0yLWMtMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5pc0Zyb3plbiByZXR1cm5zIGZhbHNlIGlmICdPJyBjb250YWlucyBvd24gY29uZmlndXJhYmxlIGFjY2Vzc29yIHByb3BlcnR5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBvYmogPSB7fTsNCg0KICAgICAgICBmdW5jdGlvbiBnZXRfZnVuYygpIHsNCiAgICAgICAgICAgIHJldHVybiAxMDsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBzZXRfZnVuYygpIHsgfQ0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJmb28iLCB7DQogICAgICAgICAgICBnZXQ6IGdldF9mdW5jLA0KICAgICAgICAgICAgc2V0OiBzZXRfZnVuYywNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QucHJldmVudEV4dGVuc2lvbnMob2JqKTsNCiAgICAgICAgcmV0dXJuICFPYmplY3QuaXNGcm96ZW4ob2JqKTsNCg0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0Zyb3plbikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmbkV4aXN0cyhPYmplY3QucHJldmVudEV4dGVuc2lvbnMpOw0KICAgIH0NCn0pOw0KDQo=]]></test>
<test id="15.2.3.12-3-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEyLTMtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMi8xNS4yLjMuMTItMy0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3QuaXNGcm96ZW4gcmV0dXJucyBmYWxzZSBmb3IgYWxsIGJ1aWx0LWluIG9iamVjdHMgKEdsb2JhbCkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgLy8gaW4gbm9uLXN0cmljdCBtb2RlLCAndGhpcycgaXMgYm91bmQgdG8gdGhlIGdsb2JhbCBvYmplY3QuDQogIHZhciBiID0gT2JqZWN0LmlzRnJvemVuKHRoaXMpOw0KICBpZiAoYiA9PT0gZmFsc2UpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmlzRnJvemVuKTsNCiB9DQoNCn0pOw0K]]></test>
<test id="15.2.3.12-3-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEyLTMtMTAiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTIvMTUuMi4zLjEyLTMtMTAuanMiLA0KDQpkZXNjcmlwdGlvbjogIk9iamVjdC5pc0Zyb3plbiByZXR1cm5zIGZhbHNlIGZvciBhbGwgYnVpbHQtaW4gb2JqZWN0cyAoQm9vbGVhbikiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGIgPSBPYmplY3QuaXNGcm96ZW4oQm9vbGVhbik7DQogIGlmIChiID09PSBmYWxzZSkgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhPYmplY3QuaXNGcm96ZW4pOw0KIH0NCg0KfSk7DQo=]]></test>
<test id="15.2.3.12-3-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEyLTMtMTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTIvMTUuMi4zLjEyLTMtMTEuanMiLA0KDQpkZXNjcmlwdGlvbjogIk9iamVjdC5pc0Zyb3plbiByZXR1cm5zIGZhbHNlIGZvciBhbGwgYnVpbHQtaW4gb2JqZWN0cyAoQm9vbGVhbi5wcm90b3R5cGUpIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBiID0gT2JqZWN0LmlzRnJvemVuKEJvb2xlYW4ucHJvdG90eXBlKTsNCiAgaWYgKGIgPT09IGZhbHNlKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0Zyb3plbik7DQogfQ0KDQp9KTsNCg==]]></test>
@ -26,6 +50,7 @@
<test id="15.2.3.12-3-25"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEyLTMtMjUiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTIvMTUuMi4zLjEyLTMtMjUuanMiLA0KDQpkZXNjcmlwdGlvbjogIk9iamVjdC5pc0Zyb3plbiByZXR1cm5zIGZhbHNlIGZvciBhbGwgYnVpbHQtaW4gb2JqZWN0cyAoVHlwZUVycm9yKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgYiA9IE9iamVjdC5pc0Zyb3plbihUeXBlRXJyb3IpOw0KICBpZiAoYiA9PT0gZmFsc2UpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmlzRnJvemVuKTsNCiB9DQoNCn0pOw0K]]></test>
<test id="15.2.3.12-3-26"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEyLTMtMjYiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTIvMTUuMi4zLjEyLTMtMjYuanMiLA0KDQpkZXNjcmlwdGlvbjogIk9iamVjdC5pc0Zyb3plbiByZXR1cm5zIGZhbHNlIGZvciBhbGwgYnVpbHQtaW4gb2JqZWN0cyAoVVJJRXJyb3IpIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBiID0gT2JqZWN0LmlzRnJvemVuKFVSSUVycm9yKTsNCiAgaWYgKGIgPT09IGZhbHNlKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0Zyb3plbik7DQogfQ0KDQp9KTsNCg==]]></test>
<test id="15.2.3.12-3-27"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEyLTMtMjciLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTIvMTUuMi4zLjEyLTMtMjcuanMiLA0KDQpkZXNjcmlwdGlvbjogIk9iamVjdC5pc0Zyb3plbiByZXR1cm5zIGZhbHNlIGZvciBhbGwgYnVpbHQtaW4gb2JqZWN0cyAoSlNPTikiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGIgPSBPYmplY3QuaXNGcm96ZW4oSlNPTik7DQogIGlmIChiID09PSBmYWxzZSkgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhPYmplY3QuaXNGcm96ZW4pOw0KIH0NCg0KfSk7DQo=]]></test>
<test id="15.2.3.12-3-28"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS4yLjMuMTItMy0yOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTIvMTUuMi4zLjEyLTMtMjguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuaXNGcm96ZW4gcmV0dXJucyB0cnVlIHdoZW4gYWxsIG93biBwcm9wZXJ0aWVzIG9mICdPJyBhcmUgbm90IHdyaXRhYmxlIGFuZCBub3QgY29uZmlndXJhYmxlLCBhbmQgJ08nIGlzIG5vdCBleHRlbnNpYmxlIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBvYmogPSB7fTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZm9vMSIsIHsNCiAgICAgICAgICAgIHZhbHVlOiAyMCwNCiAgICAgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwNCiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZQ0KICAgICAgICB9KTsNCg0KDQogICAgICAgIGZ1bmN0aW9uIGdldF9mdW5jKCkgew0KICAgICAgICAgICAgcmV0dXJuIDEwOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHNldF9mdW5jKCkgeyB9DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImZvbzIiLCB7DQogICAgICAgICAgICBnZXQ6IGdldF9mdW5jLA0KICAgICAgICAgICAgc2V0OiBzZXRfZnVuYywNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKG9iaik7DQogICAgICAgIHJldHVybiBPYmplY3QuaXNGcm96ZW4ob2JqKTsNCg0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0Zyb3plbikgJiYgZm5FeGlzdHMoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCn0pOw0KDQo=]]></test>
<test id="15.2.3.12-3-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEyLTMtMyIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMi8xNS4yLjMuMTItMy0zLmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3QuaXNGcm96ZW4gcmV0dXJucyBmYWxzZSBmb3IgYWxsIGJ1aWx0LWluIG9iamVjdHMgKE9iamVjdC5wcm90b3R5cGUpIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBiID0gT2JqZWN0LmlzRnJvemVuKE9iamVjdC5wcm90b3R5cGUpOw0KICBpZiAoYiA9PT0gZmFsc2UpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmlzRnJvemVuKTsNCiB9DQoNCn0pOw0K]]></test>
<test id="15.2.3.12-3-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEyLTMtNCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMi8xNS4yLjMuMTItMy00LmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3QuaXNGcm96ZW4gcmV0dXJucyBmYWxzZSBmb3IgYWxsIGJ1aWx0LWluIG9iamVjdHMgKEZ1bmN0aW9uKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgYiA9IE9iamVjdC5pc0Zyb3plbihGdW5jdGlvbik7DQogIGlmIChiID09PSBmYWxzZSkgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhPYmplY3QuaXNGcm96ZW4pOw0KIH0NCg0KfSk7DQo=]]></test>
<test id="15.2.3.12-3-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEyLTMtNSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMi8xNS4yLjMuMTItMy01LmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3QuaXNGcm96ZW4gcmV0dXJucyBmYWxzZSBmb3IgYWxsIGJ1aWx0LWluIG9iamVjdHMgKEZ1bmN0aW9uLnByb3RvdHlwZSkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGIgPSBPYmplY3QuaXNGcm96ZW4oRnVuY3Rpb24ucHJvdG90eXBlKTsNCiAgaWYgKGIgPT09IGZhbHNlKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0Zyb3plbik7DQogfQ0KDQp9KTsNCg==]]></test>
@ -33,5 +58,6 @@
<test id="15.2.3.12-3-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEyLTMtNyIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMi8xNS4yLjMuMTItMy03LmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3QuaXNGcm96ZW4gcmV0dXJucyBmYWxzZSBmb3IgYWxsIGJ1aWx0LWluIG9iamVjdHMgKEFycmF5LnByb3RvdHlwZSkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGIgPSBPYmplY3QuaXNGcm96ZW4oQXJyYXkucHJvdG90eXBlKTsNCiAgaWYgKGIgPT09IGZhbHNlKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0Zyb3plbik7DQogfQ0KDQp9KTsNCg==]]></test>
<test id="15.2.3.12-3-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEyLTMtOCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMi8xNS4yLjMuMTItMy04LmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3QuaXNGcm96ZW4gcmV0dXJucyBmYWxzZSBmb3IgYWxsIGJ1aWx0LWluIG9iamVjdHMgKFN0cmluZykiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGIgPSBPYmplY3QuaXNGcm96ZW4oU3RyaW5nKTsNCiAgaWYgKGIgPT09IGZhbHNlKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0Zyb3plbik7DQogfQ0KDQp9KTsNCg==]]></test>
<test id="15.2.3.12-3-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEyLTMtOSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMi8xNS4yLjMuMTItMy05LmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3QuaXNGcm96ZW4gcmV0dXJucyBmYWxzZSBmb3IgYWxsIGJ1aWx0LWluIG9iamVjdHMgKFN0cmluZy5wcm90b3R5cGUpIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBiID0gT2JqZWN0LmlzRnJvemVuKFN0cmluZy5wcm90b3R5cGUpOw0KICBpZiAoYiA9PT0gZmFsc2UpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmlzRnJvemVuKTsNCiB9DQoNCn0pOw0K]]></test>
<test id="15.2.3.12-4-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS4yLjMuMTItNC0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMi8xNS4yLjMuMTItNC0xLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LmlzRnJvemVuIHJldHVybnMgZmFsc2UgaWYgZXh0ZW5zaWJsZSBpcyB0cnVlIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICByZXR1cm4gIU9iamVjdC5pc0Zyb3plbih7fSk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmlzRnJvemVuKTsNCiAgICB9DQp9KTsNCg0K]]></test>
</section>
</testCollection>

View File

@ -2,10 +2,14 @@
<!-- adding section element if in the future we want to store information about the -->
<!-- spec structure in this file, for now the section structure is defined in the -->
<!-- sections.js file -->
<section name="Chapter - 15.2.3.13" numTests="25">
<section name="Chapter - 15.2.3.13" numTests="36">
<test id="15.2.3.13-0-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEzLTAtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMy8xNS4yLjMuMTMtMC0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3QuaXNFeHRlbnNpYmxlIG11c3QgZXhpc3QgYXMgYSBmdW5jdGlvbiIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgZiA9IE9iamVjdC5pc0V4dGVuc2libGUgOw0KICBpZiAodHlwZW9mKGYpID09PSAiZnVuY3Rpb24iKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9DQp9KTsNCg==]]></test>
<test id="15.2.3.13-0-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEzLTAtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMy8xNS4yLjMuMTMtMC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3QuaXNFeHRlbnNpYmxlIG11c3QgZXhpc3QgYXMgYSBmdW5jdGlvbiB0YWtpbmcgMSBwYXJhbWV0ZXIiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgaWYgKE9iamVjdC5pc0V4dGVuc2libGUubGVuZ3RoID09PSAxKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KIH0NCn0pOw0K]]></test>
<test id="15.2.3.13-0-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEzLTAtMyIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMy8xNS4yLjMuMTMtMC0zLmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3QuaXNFeHRlbnNpYmxlIGlzIHRydWUgZm9yIG9iamVjdHMgY3JlYXRlZCB1c2luZyB0aGUgT2JqZWN0IGNvbnN0cnVjdG9yIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBvID0gbmV3IE9iamVjdCgpOw0KDQogIGlmIChPYmplY3QuaXNFeHRlbnNpYmxlKG8pID09PSB0cnVlKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KIH0NCn0pOw0K]]></test>
<test id="15.2.3.13-1-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEzLTEtMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTMvMTUuMi4zLjEzLTEtMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5pc0V4dGVuc2libGUgdGhyb3dzIFR5cGVFcnJvciBpZiAnTycgaXMgdW5kZWZpbmVkIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuaXNFeHRlbnNpYmxlKHVuZGVmaW5lZCk7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiAoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcik7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QuaXNFeHRlbnNpYmxlKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.13-1-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEzLTEtMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTMvMTUuMi4zLjEzLTEtMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5pc0V4dGVuc2libGUgdGhyb3dzIFR5cGVFcnJvciBpZiAnTycgaXMgbnVsbCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmlzRXh0ZW5zaWJsZShudWxsKTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIChlIGluc3RhbmNlb2YgVHlwZUVycm9yKTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.13-1-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEzLTEtMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTMvMTUuMi4zLjEzLTEtMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5pc0V4dGVuc2libGUgdGhyb3dzIFR5cGVFcnJvciBpZiAnTycgaXMgYSBib29sZWFuIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuaXNFeHRlbnNpYmxlKHRydWUpOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.13-1-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEzLTEtNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTMvMTUuMi4zLjEzLTEtNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5pc0V4dGVuc2libGUgdGhyb3dzIFR5cGVFcnJvciBpZiAnTycgaXMgYSBzdHJpbmciLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5pc0V4dGVuc2libGUoImFiYyIpOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.13-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEzLTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTMvMTUuMi4zLjEzLTEuanMiLA0KDQpkZXNjcmlwdGlvbjogIk9iamVjdC5pc0V4dGVuc2libGUgdGhyb3dzIFR5cGVFcnJvciBpZiB0eXBlIG9mIGZpcnN0IHBhcmFtIGlzIG5vdCBPYmplY3QiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICB0cnkgew0KICAgICAgT2JqZWN0LmlzRXh0ZW5zaWJsZSgwKTsNCiAgICB9DQogICAgY2F0Y2ggKGUpIHsNCiAgICAgIGlmIChlIGluc3RhbmNlb2YgVHlwZUVycm9yKSB7DQogICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgfQ0KICAgIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KIH0NCn0pOw0K]]></test>
<test id="15.2.3.13-2-1"><![CDATA[Z2xvYmFsID0gdGhpczsNCg0KDQpFUzVIYXJuZXNzLnJlZ2lzdGVyVGVzdCggew0KaWQ6ICIxNS4yLjMuMTMtMi0xIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjEzLzE1LjIuMy4xMy0yLTEuanMiLA0KDQpkZXNjcmlwdGlvbjogIk9iamVjdC5pc0V4dGVuc2libGUgcmV0dXJucyB0cnVlIGZvciBhbGwgYnVpbHQtaW4gb2JqZWN0cyAoR2xvYmFsKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAvLyBpbiBub24tc3RyaWN0IG1vZGUsICd0aGlzJyBpcyBib3VuZCB0byB0aGUgZ2xvYmFsIG9iamVjdC4NCiAgdmFyIGUgPSBPYmplY3QuaXNFeHRlbnNpYmxlKHRoaXMpOw0KICBpZiAoZSA9PT0gdHJ1ZSkgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhPYmplY3QuaXNFeHRlbnNpYmxlKTsNCiB9DQp9KTsNCg==]]></test>
<test id="15.2.3.13-2-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEzLTItMTAiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTMvMTUuMi4zLjEzLTItMTAuanMiLA0KDQpkZXNjcmlwdGlvbjogIk9iamVjdC5pc0V4dGVuc2libGUgcmV0dXJucyB0cnVlIGZvciBhbGwgYnVpbHQtaW4gb2JqZWN0cyAoUmVnRXhwKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgZSA9IE9iamVjdC5pc0V4dGVuc2libGUoUmVnRXhwKTsNCiAgaWYgKGUgPT09IHRydWUpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogfQ0KfSk7DQo=]]></test>
@ -21,6 +25,13 @@
<test id="15.2.3.13-2-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEzLTItMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMy8xNS4yLjMuMTMtMi0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3QuaXNFeHRlbnNpYmxlIHJldHVybnMgdHJ1ZSBmb3IgYWxsIGJ1aWx0LWluIG9iamVjdHMgKE9iamVjdCkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIG8gPSB7fTsNCiAgdmFyIGUgPSBPYmplY3QuaXNFeHRlbnNpYmxlKG8pOw0KICBpZiAoZSA9PT0gdHJ1ZSkgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhPYmplY3QuaXNFeHRlbnNpYmxlKTsNCiB9DQp9KTsNCg==]]></test>
<test id="15.2.3.13-2-20"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEzLTItMjAiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTMvMTUuMi4zLjEzLTItMjAuanMiLA0KDQpkZXNjcmlwdGlvbjogIk9iamVjdC5pc0V4dGVuc2libGUgcmV0dXJucyB0cnVlIGZvciBhbGwgYnVpbHQtaW4gb2JqZWN0cyAoUmVnRXhwLnByb3RvdHlwZSkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGUgPSBPYmplY3QuaXNFeHRlbnNpYmxlKFJlZ0V4cC5wcm90b3R5cGUpOw0KICBpZiAoZSA9PT0gdHJ1ZSkgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhPYmplY3QuaXNFeHRlbnNpYmxlKTsNCiB9DQp9KTsNCg==]]></test>
<test id="15.2.3.13-2-21"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEzLTItMjEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTMvMTUuMi4zLjEzLTItMjEuanMiLA0KDQpkZXNjcmlwdGlvbjogIk9iamVjdC5pc0V4dGVuc2libGUgcmV0dXJucyB0cnVlIGZvciBhbGwgYnVpbHQtaW4gb2JqZWN0cyAoRXJyb3IucHJvdG90eXBlKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgZSA9IE9iamVjdC5pc0V4dGVuc2libGUoRXJyb3IucHJvdG90eXBlKTsNCiAgaWYgKGUgPT09IHRydWUpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.2.3.13-2-22"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEzLTItMjIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjEzLzE1LjIuMy4xMy0yLTIyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LmlzRXh0ZW5zaWJsZSByZXR1cm5zIHRydWUgaWYgJ08nIGlzIGV4dGVuc2libGUiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KICAgICAgICByZXR1cm4gT2JqZWN0LmlzRXh0ZW5zaWJsZShvYmopOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.13-2-23"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEzLTItMjMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjEzLzE1LjIuMy4xMy0yLTIzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LmlzRXh0ZW5zaWJsZSByZXR1cm5zIGZhbHNlIGlmICdPJyBpcyBub3QgZXh0ZW5zaWJsZSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgb2JqID0ge307DQogICAgICAgIE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyhvYmopOw0KICAgICAgICByZXR1cm4gIU9iamVjdC5pc0V4dGVuc2libGUob2JqKTsNCg0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpICYmIGZuRXhpc3RzKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.13-2-24"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEzLTItMjQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjEzLzE1LjIuMy4xMy0yLTI0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LmlzRXh0ZW5zaWJsZSByZXR1cm5zIHRydWUgaWYgTyBpcyBleHRlbnNpYmxlIGFuZCBoYXMgYSBwcm90b3R5cGUgdGhhdCBpcyBleHRlbnNpYmxlIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgIA0KICAgICAgICB2YXIgcHJvdG8gPSB7fTsNCg0KICAgICAgICB2YXIgQ29uc3RydWN0RnVuID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb25zdHJ1Y3RGdW4ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIG9iaiA9IG5ldyBDb25zdHJ1Y3RGdW4oKTsNCg0KICAgICAgICByZXR1cm4gT2JqZWN0LmlzRXh0ZW5zaWJsZShvYmopOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.13-2-25"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEzLTItMjUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjEzLzE1LjIuMy4xMy0yLTI1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LmlzRXh0ZW5zaWJsZSByZXR1cm5zIHRydWUgaWYgTyBpcyBleHRlbnNpYmxlIGFuZCBoYXMgYSBwcm90b3R5cGUgdGhhdCBpcyBub3QgZXh0ZW5zaWJsZSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgcHJvdG8gPSB7fTsNCiAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHByb3RvKTsNCiAgICAgIA0KICAgICAgICB2YXIgQ29uc3RydWN0RnVuID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb25zdHJ1Y3RGdW4ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIG9iaiA9IG5ldyBDb25zdHJ1Y3RGdW4oKTsNCg0KICAgICAgICByZXR1cm4gT2JqZWN0LmlzRXh0ZW5zaWJsZShvYmopOw0KDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSkgJiYgZm5FeGlzdHMoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.13-2-26"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEzLTItMjYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjEzLzE1LjIuMy4xMy0yLTI2LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LmlzRXh0ZW5zaWJsZSByZXR1cm5zIGZhbHNlIGlmIE8gaXMgbm90IGV4dGVuc2libGUgYW5kIGhhcyBhIHByb3RvdHlwZSB0aGF0IGlzIGV4dGVuc2libGUiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHByb3RvID0ge307DQoNCiAgICAgICAgdmFyIENvbnN0cnVjdEZ1biA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uc3RydWN0RnVuLnByb3RvdHlwZSA9IHByb3RvOw0KICAgICAgICB2YXIgb2JqID0gbmV3IENvbnN0cnVjdEZ1bigpOw0KDQogICAgICAgIE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyhvYmopOw0KDQogICAgICAgIHJldHVybiAhT2JqZWN0LmlzRXh0ZW5zaWJsZShvYmopOw0KDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSkgJiYgZm5FeGlzdHMoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.13-2-27"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEzLTItMjciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjEzLzE1LjIuMy4xMy0yLTI3LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LmlzRXh0ZW5zaWJsZSByZXR1cm5zIGZhbHNlIGlmIE8gaXMgbm90IGV4dGVuc2libGUgYW5kIGhhcyBhIHByb3RvdHlwZSB0aGF0IGlzIG5vdCBleHRlbnNpYmxlIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBwcm90byA9IHt9Ow0KICAgICAgICBPYmplY3QucHJldmVudEV4dGVuc2lvbnMocHJvdG8pOw0KDQogICAgICAgIHZhciBDb25zdHJ1Y3RGdW4gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbnN0cnVjdEZ1bi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgb2JqID0gbmV3IENvbnN0cnVjdEZ1bigpOw0KICAgICAgICBPYmplY3QucHJldmVudEV4dGVuc2lvbnMob2JqKTsNCg0KICAgICAgICByZXR1cm4gIU9iamVjdC5pc0V4dGVuc2libGUob2JqKTsNCg0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpICYmIGZuRXhpc3RzKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.13-2-29"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjEzLTItMjkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjEzLzE1LjIuMy4xMy0yLTI5LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LmlzRXh0ZW5zaWJsZSByZXR1cm5zIHRydWUgZm9yIHRoZSBnbG9iYWwgb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHJldHVybiBPYmplY3QuaXNFeHRlbnNpYmxlKGZuR2xvYmFsT2JqZWN0KCkpOw0KDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.13-2-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEzLTItMyIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMy8xNS4yLjMuMTMtMi0zLmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3QuaXNFeHRlbnNpYmxlIHJldHVybnMgdHJ1ZSBmb3IgYWxsIGJ1aWx0LWluIG9iamVjdHMgKEZ1bmN0aW9uKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICBmdW5jdGlvbiBmb28oKSB7fQ0KIA0KICB2YXIgZSA9IE9iamVjdC5pc0V4dGVuc2libGUoZm9vKTsNCiAgaWYgKGUgPT09IHRydWUpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.2.3.13-2-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEzLTItNCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMy8xNS4yLjMuMTMtMi00LmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3QuaXNFeHRlbnNpYmxlIHJldHVybnMgdHJ1ZSBmb3IgYWxsIGJ1aWx0LWluIG9iamVjdHMgKEFycmF5KSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgZSA9IE9iamVjdC5pc0V4dGVuc2libGUoQXJyYXkpOw0KICBpZiAoZSA9PT0gdHJ1ZSkgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhPYmplY3QuaXNFeHRlbnNpYmxlKTsNCiB9DQp9KTsNCg==]]></test>
<test id="15.2.3.13-2-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjEzLTItNSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xMy8xNS4yLjMuMTMtMi01LmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3QuaXNFeHRlbnNpYmxlIHJldHVybnMgdHJ1ZSBmb3IgYWxsIGJ1aWx0LWluIG9iamVjdHMgKFN0cmluZykiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGUgPSBPYmplY3QuaXNFeHRlbnNpYmxlKFN0cmluZyk7DQogIGlmIChlID09PSB0cnVlKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KIH0NCn0pOw0K]]></test>

View File

@ -2,7 +2,7 @@
<!-- adding section element if in the future we want to store information about the -->
<!-- spec structure in this file, for now the section structure is defined in the -->
<!-- sections.js file -->
<section name="Chapter - 15.2.3.14" numTests="18">
<section name="Chapter - 15.2.3.14" numTests="50">
<test id="15.2.3.14-0-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjE0LTAtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xNC8xNS4yLjMuMTQtMC0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3Qua2V5cyBtdXN0IGV4aXN0IGFzIGEgZnVuY3Rpb24iLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGYgPSBPYmplY3Qua2V5czsNCiAgaWYgKHR5cGVvZihmKSA9PT0gImZ1bmN0aW9uIikgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfQ0KfSk7DQo=]]></test>
<test id="15.2.3.14-0-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjE0LTAtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xNC8xNS4yLjMuMTQtMC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3Qua2V5cyBtdXN0IGV4aXN0IGFzIGEgZnVuY3Rpb24gdGFraW5nIDEgcGFyYW1ldGVyIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIGlmIChPYmplY3Qua2V5cy5sZW5ndGggPT09IDEpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmtleXMpOw0KIH0NCn0pOw0K]]></test>
<test id="15.2.3.14-1-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjE0LTEtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xNC8xNS4yLjMuMTQtMS0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3Qua2V5cyB0aHJvd3MgVHlwZUVycm9yIGlmIHR5cGUgb2YgZmlyc3QgcGFyYW0gaXMgbm90IE9iamVjdCIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB0cnkgew0KICAgIE9iamVjdC5rZXlzKDApOw0KICB9DQogIGNhdGNoIChlKSB7DQogICAgaWYgKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpIHsNCiAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmtleXMpOw0KIH0NCn0pOw0K]]></test>
@ -16,10 +16,42 @@
<test id="15.2.3.14-2-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjE0LTItNCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xNC8xNS4yLjMuMTQtMi00LmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3Qua2V5cyByZXR1cm5zIHRoZSBzdGFuZGFyZCBidWlsdC1pbiBBcnJheSB0aGF0IGlzIGV4dGVuc2libGUiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIG8gPSB7IHg6IDEsIHk6IDJ9Ow0KDQogIHZhciBhID0gT2JqZWN0LmtleXMobyk7DQogIGlmIChPYmplY3QuaXNFeHRlbnNpYmxlKGEpID09PSB0cnVlKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5rZXlzKSAmJiBmbkV4aXN0cyhPYmplY3QuaXNFeHRlbnNpYmxlKTsNCiB9DQp9KTsNCg==]]></test>
<test id="15.2.3.14-2-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjE0LTItNSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xNC8xNS4yLjMuMTQtMi01LmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3Qua2V5cyByZXR1cm5zIHRoZSBzdGFuZGFyZCBidWlsdC1pbiBBcnJheSB0aGF0IGlzIG5vdCBzZWFsZWQiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIG8gPSB7IHg6IDEsIHk6IDJ9Ow0KDQogIHZhciBhID0gT2JqZWN0LmtleXMobyk7DQogIGlmIChPYmplY3QuaXNTZWFsZWQoYSkgPT09IGZhbHNlKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5rZXlzKSAmJiBmbkV4aXN0cyhPYmplY3QuaXNTZWFsZWQpOw0KIH0NCn0pOw0K]]></test>
<test id="15.2.3.14-2-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjE0LTItNiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xNC8xNS4yLjMuMTQtMi02LmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3Qua2V5cyByZXR1cm5zIHRoZSBzdGFuZGFyZCBidWlsdC1pbiBBcnJheSB0aGF0IGlzIG5vdCBmcm96ZW4iLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIG8gPSB7IHg6IDEsIHk6IDJ9Ow0KDQogIHZhciBhID0gT2JqZWN0LmtleXMobyk7DQogIGlmIChPYmplY3QuaXNGcm96ZW4oYSkgPT09IGZhbHNlKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5rZXlzKSAmJiBmbkV4aXN0cyhPYmplY3QuaXNGcm96ZW4pOw0KIH0NCn0pOw0K]]></test>
<test id="15.2.3.14-2-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTItNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTQvMTUuMi4zLjE0LTItNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5rZXlzIC0gJ24nIGlzIDAgd2hlbiAnTycgZG9lc24ndCBjb250YWluIG93biBlbnVtZXJhYmxlIGRhdGEgb3IgYWNjZXNzb3IgcHJvcGVydGllcyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJwcm9wMSIsIHsNCiAgICAgICAgICAgIHZhbHVlOiAxMDAxLA0KICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgInByb3AyIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDEwMDI7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIGFyciA9IE9iamVjdC5rZXlzKG9iaik7DQoNCiAgICAgICAgcmV0dXJuIGFyci5sZW5ndGggPT09IDA7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmtleXMpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.14-2-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTItOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTQvMTUuMi4zLjE0LTItOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5rZXlzIC0gJ24nIGlzIHRoZSBjb3JyZWN0IHZhbHVlIHdoZW4gZW51bWVyYWJsZSBwcm9wZXJ0aWVzIGV4aXN0IGluICdPJyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IHsNCiAgICAgICAgICAgIHByb3AxOiAxMDAxLA0KICAgICAgICAgICAgcHJvcDI6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTAwMjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAicHJvcDMiLCB7DQogICAgICAgICAgICB2YWx1ZTogMTAwMywNCiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJwcm9wNCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAxMDA0Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBhcnIgPSBPYmplY3Qua2V5cyhvYmopOw0KDQogICAgICAgIHJldHVybiAoYXJyLmxlbmd0aCA9PT0gMikgJiYgKGFyclswXSA9PT0gInByb3AxIikgJiYgKGFyclsxXSA9PT0gInByb3AyIik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmtleXMpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.14-3-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjE0LTMtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xNC8xNS4yLjMuMTQtMy0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3Qua2V5cyByZXR1cm5zIHRoZSBzdGFuZGFyZCBidWlsdC1pbiBBcnJheSBjb250YWluaW5nIG93biBlbnVtZXJhYmxlIHByb3BlcnRpZXMiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIG8gPSB7IHg6IDEsIHk6IDJ9Ow0KDQogIHZhciBhID0gT2JqZWN0LmtleXMobyk7DQogIGlmIChhLmxlbmd0aCA9PT0gMiAmJg0KICAgICAgYVswXSA9PT0gJ3gnICYmDQogICAgICBhWzFdID09PSAneScpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmtleXMpOw0KIH0NCn0pOw0K]]></test>
<test id="15.2.3.14-3-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjE0LTMtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xNC8xNS4yLjMuMTQtMy0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3Qua2V5cyByZXR1cm5zIHRoZSBzdGFuZGFyZCBidWlsdC1pbiBBcnJheSBjb250YWluaW5nIG93biBlbnVtZXJhYmxlIHByb3BlcnRpZXMgKGZ1bmN0aW9uKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICBmdW5jdGlvbiBmb28oKSB7fQ0KICBmb28ueCA9IDE7DQogIA0KICB2YXIgYSA9IE9iamVjdC5rZXlzKGZvbyk7DQogIGlmIChhLmxlbmd0aCA9PT0gMSAmJg0KICAgICAgYVswXSA9PT0gJ3gnKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5rZXlzKTsNCiB9DQp9KTsNCg==]]></test>
<test id="15.2.3.14-3-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjE0LTMtMyIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xNC8xNS4yLjMuMTQtMy0zLmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3Qua2V5cyByZXR1cm5zIHRoZSBzdGFuZGFyZCBidWlsdC1pbiBBcnJheSBjb250YWluaW5nIG93biBlbnVtZXJhYmxlIHByb3BlcnRpZXMgKGFycmF5KSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgbyA9IFsxLCAyXTsNCiAgdmFyIGEgPSBPYmplY3Qua2V5cyhvKTsNCiAgaWYgKGEubGVuZ3RoID09PSAyICYmDQogICAgICBhWzBdID09PSAnMCcgJiYNCiAgICAgIGFbMV0gPT09ICcxJykgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhPYmplY3Qua2V5cyk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.2.3.14-3-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjE0LTMtNCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xNC8xNS4yLjMuMTQtMy00LmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3Qua2V5cyBvZiBhbiBhcmd1bWVudHMgb2JqZWN0IHJldHVybnMgdGhlIGluZGljZXMgb2YgdGhlIGdpdmVuIGFyZ3VtZW50cyIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICBmdW5jdGlvbiB0ZXN0QXJnczIoeCwgeSwgeikgew0KICAgIC8vIFByb3BlcnRpZXMgb2YgdGhlIGFyZ3VtZW50cyBvYmplY3QgYXJlIGVudW1lcmFibGUuDQogICAgdmFyIGEgPSBPYmplY3Qua2V5cyhhcmd1bWVudHMpOw0KICAgIGlmIChhLmxlbmd0aCA9PT0gMiAmJiBhWzBdID09PSAiMCIgJiYgYVsxXSA9PT0gIjEiKQ0KICAgICAgcmV0dXJuIHRydWU7DQogIH0NCiAgZnVuY3Rpb24gdGVzdEFyZ3MzKHgsIHksIHopIHsNCiAgICAvLyBQcm9wZXJ0aWVzIG9mIHRoZSBhcmd1bWVudHMgb2JqZWN0IGFyZSBlbnVtZXJhYmxlLg0KICAgIHZhciBhID0gT2JqZWN0LmtleXMoYXJndW1lbnRzKTsNCiAgICBpZiAoYS5sZW5ndGggPT09IDMgJiYgYVswXSA9PT0gIjAiICYmIGFbMV0gPT09ICIxIiAmJiBhWzJdID09PSAiMiIpDQogICAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KICBmdW5jdGlvbiB0ZXN0QXJnczQoeCwgeSwgeikgew0KICAgIC8vIFByb3BlcnRpZXMgb2YgdGhlIGFyZ3VtZW50cyBvYmplY3QgYXJlIGVudW1lcmFibGUuDQogICAgdmFyIGEgPSBPYmplY3Qua2V5cyhhcmd1bWVudHMpOw0KICAgIGlmIChhLmxlbmd0aCA9PT0gNCAmJiBhWzBdID09PSAiMCIgJiYgYVsxXSA9PT0gIjEiICYmIGFbMl0gPT09ICIyIiAmJiBhWzNdID09PSAiMyIpDQogICAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KICByZXR1cm4gdGVzdEFyZ3MyKDEsIDIpICYmIHRlc3RBcmdzMygxLCAyLCAzKSAmJiB0ZXN0QXJnczQoMSwgMiwgMywgNCk7DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhPYmplY3Qua2V5cyk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.2.3.14-3-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjE0LTMtNSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xNC8xNS4yLjMuMTQtMy01LmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3Qua2V5cyBtdXN0IHJldHVybiBhIGZyZXNoIGFycmF5IG9uIGVhY2ggaW52b2NhdGlvbiIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgbGl0ZXJhbCA9IHthOiAxfTsNCiAgdmFyIGtleXNCZWZvcmUgPSBPYmplY3Qua2V5cyhsaXRlcmFsKTsNCiAgaWYgKGtleXNCZWZvcmVbMF0gIT0gJ2EnKSByZXR1cm4gZmFsc2U7DQogIGtleXNCZWZvcmVbMF0gPSAneCc7DQogIHZhciBrZXlzQWZ0ZXIgPSBPYmplY3Qua2V5cyhsaXRlcmFsKTsNCiAgcmV0dXJuIChrZXlzQmVmb3JlWzBdID09ICd4JykgJiYgKGtleXNBZnRlclswXSA9PSAnYScpOw0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmtleXMpOw0KIH0NCn0pOw0K]]></test>
<test id="15.2.3.14-3-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTMtNiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTQvMTUuMi4zLjE0LTMtNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5rZXlzIC0gcmV0dXJucyB0aGUgc3RhbmRhcmQgYnVpbHQtaW4gQXJyYXkgKGluc3RhbmNlb2YgQXJyYXkpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgb2JqID0ge307DQoNCiAgICAgICAgdmFyIGFyciA9IE9iamVjdC5rZXlzKG9iaik7DQoNCiAgICAgICAgcmV0dXJuIGFyciBpbnN0YW5jZW9mIEFycmF5Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5rZXlzKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.14-3-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTMtNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTQvMTUuMi4zLjE0LTMtNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5rZXlzIC0gbGVuZ3RoIG9mIHRoZSByZXR1cm5lZCBhcnJheSBlcXVhbHMgdGhlIG51bWJlciBvZiBvd24gZW51bWVyYWJsZSBwcm9wZXJ0aWVzIG9mICdPJyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IHsgcHJvcDE6IDEwMDEsIHByb3AyOiAxMDAyIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgInByb3AzIiwgew0KICAgICAgICAgICAgdmFsdWU6IDEwMDMsDQogICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJwcm9wNCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAxMDAzOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBhcnIgPSBPYmplY3Qua2V5cyhvYmopOw0KDQogICAgICAgIHJldHVybiBhcnIubGVuZ3RoID09PSAzOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5rZXlzKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.14-4-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTQtMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTQvMTUuMi4zLjE0LTQtMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5rZXlzIC0gZWxlbWVudHMgb2YgdGhlIHJldHVybmVkIGFycmF5IHN0YXJ0IGZyb20gaW5kZXggMCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IHsgcHJvcDE6IDEwMDEsIHByb3AyOiAxMDAyIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgInByb3AzIiwgew0KICAgICAgICAgICAgdmFsdWU6IDEwMDMsDQogICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJwcm9wNCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAxMDAzOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIGFyciA9IE9iamVjdC5rZXlzKG9iaik7DQoNCiAgICAgICAgcmV0dXJuIGFyci5oYXNPd25Qcm9wZXJ0eSgwKSAmJiBhcnJbMF0gPT09ICJwcm9wMSI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmtleXMpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.14-5-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTUtMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTQvMTUuMi4zLjE0LTUtMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5rZXlzIC0gb3duIGVudW1lcmFibGUgZGF0YSBwcm9wZXJ0eSBvZiAnTycgaXMgZGVmaW5lZCBpbiByZXR1cm5lZCBhcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IHsgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAicHJvcCIsIHsNCiAgICAgICAgICAgIHZhbHVlOiAxMDAzLA0KICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgYXJyID0gT2JqZWN0LmtleXMob2JqKTsNCg0KICAgICAgICByZXR1cm4gYXJyLmhhc093blByb3BlcnR5KDApICYmIGFyclswXSA9PT0gInByb3AiOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5rZXlzKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.14-5-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTUtMTAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjE0LzE1LjIuMy4xNC01LTEwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LmtleXMgLSBpbmhlcnRlZCBlbnVtZXJhYmxlIGFjY2Vzc29yIHByb3BlcnR5IHRoYXQgaXMgb3Zlci1yaWRkZW4gYnkgbm9uLWVudW1lcmFibGUgb3duIGFjY2Vzc29yIHByb3BlcnR5IGlzIG5vdCBkZWZpbmVkIGluIHJldHVybmVkIGFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgcHJvdG8gPSB7fTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAicHJvcCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBvYmogPSBuZXcgQ29uKCk7DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJwcm9wIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgYXJyID0gT2JqZWN0LmtleXMob2JqKTsNCg0KICAgICAgICBmb3IgKHZhciBwIGluIGFycikgew0KICAgICAgICAgICAgaWYgKGFycltwXSA9PT0gInByb3AiKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmtleXMpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.14-5-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTUtMTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjE0LzE1LjIuMy4xNC01LTExLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LmtleXMgLSBvd24gZW51bWVyYWJsZSBpbmRleGVkIGRhdGEgcHJvcGVydHkgb2YgZGVuc2UgYXJyYXkgJ08nIGlzIGRlZmluZWQgaW4gcmV0dXJuZWQgYXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBvYmogPSBbMSwgMiwgMywgNCwgNV07DQoNCiAgICAgICAgdmFyIGFyciA9IE9iamVjdC5rZXlzKG9iaik7DQoNCiAgICAgICAgdmFyIGluaXRWYWx1ZSA9IDA7DQogICAgICAgIGZvciAodmFyIHAgaW4gYXJyKSB7DQogICAgICAgICAgICBpZiAoYXJyLmhhc093blByb3BlcnR5KHApKSB7DQogICAgICAgICAgICAgICAgaWYgKGFycltwXSAhPT0gaW5pdFZhbHVlLnRvU3RyaW5nKCkpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpbml0VmFsdWUrKzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5rZXlzKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.14-5-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTUtMTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjE0LzE1LjIuMy4xNC01LTEyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LmtleXMgLSBvd24gZW51bWVyYWJsZSBpbmRleGVkIGFjY2Vzc29yIHByb3BlcnR5IG9mIGRlbnNlIGFycmF5ICdPJyBpcyBkZWZpbmVkIGluIHJldHVybmVkIGFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgb2JqID0gWzIsIDMsIDQsIDVdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJwcm9wIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDY7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgYXJyID0gT2JqZWN0LmtleXMob2JqKTsNCg0KICAgICAgICBmb3IgKHZhciBwIGluIGFycikgew0KICAgICAgICAgICAgaWYgKGFyci5oYXNPd25Qcm9wZXJ0eShwKSkgew0KICAgICAgICAgICAgICAgIGlmIChhcnJbcF0gPT09ICJwcm9wIikgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmtleXMpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.14-5-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTUtMTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjE0LzE1LjIuMy4xNC01LTEzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LmtleXMgLSBvd24gZW51bWVyYWJsZSBpbmRleGVkIGRhdGEgcHJvcGVydHkgb2Ygc3BhcnNlIGFycmF5ICdPJyBpcyBkZWZpbmVkIGluIHJldHVybmVkIGFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgb2JqID0gWzEsICwgMywgLCA1XTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCA1LCB7DQogICAgICAgICAgICB2YWx1ZTogNywNCiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIDEwMDAwLCB7DQogICAgICAgICAgICB2YWx1ZTogIkVsZW1lbnRXaXRoTGFyZ2VJbmRleCIsDQogICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBhcnIgPSBPYmplY3Qua2V5cyhvYmopOw0KDQogICAgICAgIHZhciBpbmRleDsNCiAgICAgICAgdmFyIGluaXRWYWx1ZSA9IDA7DQogICAgICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IDM7IGluZGV4KyspIHsNCiAgICAgICAgICAgIGlmIChhcnJbaW5kZXhdICE9PSBpbml0VmFsdWUudG9TdHJpbmcoKSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGluaXRWYWx1ZSArPSAyOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKGFyci5sZW5ndGggIT09IDQgfHwgYXJyWzNdICE9PSAiMTAwMDAiKSB7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3Qua2V5cykgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.14-5-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTUtMTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjE0LzE1LjIuMy4xNC01LTE0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LmtleXMgLSBvd24gZW51bWVyYWJsZSBpbmRleGVkIGFjY2Vzc29yIHByb3BlcnR5IG9mIHNwYXJzZSBhcnJheSAnTycgaXMgZGVmaW5lZCBpbiByZXR1cm5lZCBhcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IFsxLCAsIDMsICwgNV07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjEwMDAwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuICJFbGVtZW50V2l0aExhcmdlSW5kZXgiOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIGFyciA9IE9iamVjdC5rZXlzKG9iaik7DQoNCiAgICAgICAgZm9yICh2YXIgcCBpbiBhcnIpIHsNCiAgICAgICAgICAgIGlmIChhcnJbcF0gPT09ICIxMDAwMCIpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiBmYWxzZTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3Qua2V5cykgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.14-5-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTUtMTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjE0LzE1LjIuMy4xNC01LTE1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LmtleXMgLSBvd24gZW51bWVyYWJsZSBpbmRleGVkIGRhdGEgcHJvcGVydHkgb2YgU3RyaW5nIG9iamVjdCAnTycgaXMgZGVmaW5lZCBpbiByZXR1cm5lZCBhcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IG5ldyBTdHJpbmcoInh5eiIpOw0KICAgICAgICBvYmpbLTIwXSA9IC0yMDsNCiAgICAgICAgb2JqWzIwXSA9IDIwOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJwcm9wIiwgew0KICAgICAgICAgICAgdmFsdWU6IDEwMDMsDQogICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgYXJyID0gT2JqZWN0LmtleXMob2JqKTsNCg0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKCFvYmouaGFzT3duUHJvcGVydHkoYXJyW2ldKSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5rZXlzKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.14-5-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTUtMTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjE0LzE1LjIuMy4xNC01LTE2LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LmtleXMgLSBvd24gZW51bWVyYWJsZSBpbmRleGVkIGFjY2Vzc29yIHByb3BlcnR5IG9mIFN0cmluZyBvYmplY3QgJ08nIGlzIGRlZmluZWQgaW4gcmV0dXJuZWQgYXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBvYmogPSBuZXcgU3RyaW5nKCJ4eXoiKTsNCiAgICAgICAgb2JqWy0yMF0gPSAtMjA7DQogICAgICAgIG9ialsyMF0gPSAyMDsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAicHJvcDEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJwcm9wMiIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIGFyciA9IE9iamVjdC5rZXlzKG9iaik7DQoNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmICghb2JqLmhhc093blByb3BlcnR5KGFycltpXSkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3Qua2V5cykgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.14-5-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTUtMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTQvMTUuMi4zLjE0LTUtMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5rZXlzIC0gb3duIGVudW1lcmFibGUgYWNjZXNzb3IgcHJvcGVydHkgb2YgJ08nIGlzIGRlZmluZWQgaW4gcmV0dXJuZWQgYXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBvYmogPSB7IH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgInByb3AiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTAwMzsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBhcnIgPSBPYmplY3Qua2V5cyhvYmopOw0KDQogICAgICAgIHJldHVybiBhcnIuaGFzT3duUHJvcGVydHkoMCkgJiYgYXJyWzBdID09PSAicHJvcCI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmtleXMpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.14-5-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTUtMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTQvMTUuMi4zLjE0LTUtMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5rZXlzIC0gbm9uLWVudW1lcmFibGUgb3duIGRhdGEgcHJvcGVydHkgb2YgJ08nIGlzIG5vdCBkZWZpbmVkIGluIHJldHVybmVkIGFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgb2JqID0geyBwcm9wMTogMTAwMSwgcHJvcDI6IDEwMDIgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAicHJvcDMiLCB7DQogICAgICAgICAgICB2YWx1ZTogMTAwMywNCiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgInByb3A0Iiwgew0KICAgICAgICAgICAgdmFsdWU6IDEwMDQsDQogICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgYXJyID0gT2JqZWN0LmtleXMob2JqKTsNCg0KICAgICAgICBmb3IgKHZhciBwIGluIGFycikgew0KICAgICAgICAgICAgaWYgKGFyci5oYXNPd25Qcm9wZXJ0eShwKSkgew0KICAgICAgICAgICAgICAgIGlmIChhcnJbcF0gPT09ICJwcm9wNCIpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5rZXlzKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.14-5-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTUtNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTQvMTUuMi4zLjE0LTUtNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5rZXlzIC0gbm9uLWVudW1lcmFibGUgb3duIGFjY2Vzc29yIHByb3BlcnR5IG9mICdPJyBpcyBub3QgZGVmaW5lZCBpbiByZXR1cm5lZCBhcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJwcm9wMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgInByb3AyIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgInByb3AzIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBhcnIgPSBPYmplY3Qua2V5cyhvYmopOw0KDQogICAgICAgIGZvciAodmFyIHAgaW4gYXJyKSB7DQogICAgICAgICAgICBpZiAoYXJyLmhhc093blByb3BlcnR5KHApKSB7DQogICAgICAgICAgICAgICAgaWYgKGFycltwXSA9PT0gInByb3AyIikgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmtleXMpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.14-5-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTUtNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTQvMTUuMi4zLjE0LTUtNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5rZXlzIC0gaW5oZXJpdGVkIGVudW1lcmFibGUgZGF0YSBwcm9wZXJ0eSBvZiAnTycgaXMgbm90IGRlZmluZWQgaW4gcmV0dXJuZWQgYXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBwcm90byA9IHt9Ow0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICJpbmhlcml0ZWRQcm9wIiwgew0KICAgICAgICAgICAgdmFsdWU6IDEwMDMsDQogICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIG9iaiA9IG5ldyBDb24oKTsNCiAgICAgICAgb2JqLnByb3AgPSAxMDA0Ow0KDQogICAgICAgIHZhciBhcnIgPSBPYmplY3Qua2V5cyhvYmopOw0KDQogICAgICAgIGZvciAodmFyIHAgaW4gYXJyKSB7DQogICAgICAgICAgICBpZiAoYXJyW3BdID09PSAiaW5oZXJpdGVkUHJvcCIpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3Qua2V5cykgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.14-5-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTUtNiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTQvMTUuMi4zLjE0LTUtNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5rZXlzIC0gaW5oZXJpdGVkIGVudW1lcmFibGUgYWNjZXNzb3IgcHJvcGVydHkgb2YgJ08nIGlzIG5vdCBkZWZpbmVkIGluIHJldHVybmVkIGFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgcHJvdG8gPSB7fTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAiaW5oZXJpdGVkUHJvcCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAxMDAzOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgb2JqID0gbmV3IENvbigpOw0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAicHJvcCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAxMDA0Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIGFyciA9IE9iamVjdC5rZXlzKG9iaik7DQoNCiAgICAgICAgZm9yICh2YXIgcCBpbiBhcnIpIHsNCiAgICAgICAgICAgIGlmIChhcnJbcF0gPT09ICJpbmhlcml0ZWRQcm9wIikgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5rZXlzKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.14-5-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTUtNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTQvMTUuMi4zLjE0LTUtNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5rZXlzIC0gaW5oZXJ0ZWQgZW51bWVyYWJsZSBkYXRhIHByb3BlcnR5IHRoYXQgaXMgb3Zlci1yaWRkZW4gYnkgbm9uLWVudW1lcmFibGUgb3duIGRhdGEgcHJvcGVydHkgaXMgbm90IGRlZmluZWQgaW4gcmV0dXJuZWQgYXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBwcm90byA9IHt9Ow0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICJwcm9wIiwgew0KICAgICAgICAgICAgdmFsdWU6IDEwMDMsDQogICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIG9iaiA9IG5ldyBDb24oKTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgInByb3AiLCB7DQogICAgICAgICAgICB2YWx1ZTogMTAwNCwNCiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBhcnIgPSBPYmplY3Qua2V5cyhvYmopOw0KDQogICAgICAgIGZvciAodmFyIHAgaW4gYXJyKSB7DQogICAgICAgICAgICBpZiAoYXJyW3BdID09PSAicHJvcCIpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3Qua2V5cykgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.14-5-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTUtOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTQvMTUuMi4zLjE0LTUtOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5rZXlzIC0gaW5oZXJ0ZWQgZW51bWVyYWJsZSBkYXRhIHByb3BlcnR5IHRoYXQgaXMgb3Zlci1yaWRkZW4gYnkgbm9uLWVudW1lcmFibGUgb3duIGFjY2Vzc29yIHByb3BlcnR5IGlzIG5vdCBkZWZpbmVkIGluIHJldHVybmVkIGFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgcHJvdG8gPSB7fTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAicHJvcCIsIHsNCiAgICAgICAgICAgIHZhbHVlOiAxMDAzLA0KICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBvYmogPSBuZXcgQ29uKCk7DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJwcm9wIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgYXJyID0gT2JqZWN0LmtleXMob2JqKTsNCg0KICAgICAgICBmb3IgKHZhciBwIGluIGFycikgew0KICAgICAgICAgICAgaWYgKGFycltwXSA9PT0gInByb3AiKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmtleXMpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.14-5-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTUtOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTQvMTUuMi4zLjE0LTUtOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5rZXlzIC0gaW5oZXJ0ZWQgZW51bWVyYWJsZSBhY2Nlc3NvciBwcm9wZXJ0eSB0aGF0IGlzIG92ZXItcmlkZGVuIGJ5IG5vbi1lbnVtZXJhYmxlIG93biBkYXRhIHByb3BlcnR5IGlzIG5vdCBkZWZpbmVkIGluIHJldHVybmVkIGFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgcHJvdG8gPSB7fTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAicHJvcCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBvYmogPSBuZXcgQ29uKCk7DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJwcm9wIiwgew0KICAgICAgICAgICAgdmFsdWU6IDEwMDMsDQogICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgYXJyID0gT2JqZWN0LmtleXMob2JqKTsNCg0KICAgICAgICBmb3IgKHZhciBwIGluIGFycikgew0KICAgICAgICAgICAgaWYgKGFycltwXSA9PT0gInByb3AiKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmtleXMpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.14-5-a-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTUtYS0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xNC8xNS4yLjMuMTQtNS1hLTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Qua2V5cyAtICd2YWx1ZScgYXR0cmlidXRlIG9mIGVsZW1lbnQgaW4gcmV0dXJuZWQgYXJyYXkgaXMgY29ycmVjdC4iLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBvYmogPSB7IHByb3AxOiAxIH07DQoNCiAgICAgICAgdmFyIGFycmF5ID0gT2JqZWN0LmtleXMob2JqKTsNCg0KICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYXJyYXksICIwIik7DQoNCiAgICAgICAgcmV0dXJuIGRlc2MuaGFzT3duUHJvcGVydHkoInZhbHVlIikgJiYgZGVzYy52YWx1ZSA9PT0gInByb3AxIjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3Qua2V5cyk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.14-5-a-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTUtYS0yIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xNC8xNS4yLjMuMTQtNS1hLTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Qua2V5cyAtICd3cml0YWJsZScgYXR0cmlidXRlIG9mIGVsZW1lbnQgb2YgcmV0dXJuZWQgYXJyYXkgaXMgY29ycmVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IHsgcHJvcDE6IDEwMCB9Ow0KDQogICAgICAgIHZhciBhcnJheSA9IE9iamVjdC5rZXlzKG9iaik7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGFycmF5WzBdID0gImlzV3JpdGFibGUiOw0KDQogICAgICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYXJyYXksICIwIik7DQoNCiAgICAgICAgICAgIHJldHVybiBhcnJheVswXSA9PT0gImlzV3JpdGFibGUiICYmIGRlc2MuaGFzT3duUHJvcGVydHkoIndyaXRhYmxlIikgJiYgZGVzYy53cml0YWJsZSA9PT0gdHJ1ZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmtleXMpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.14-5-a-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTUtYS0zIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xNC8xNS4yLjMuMTQtNS1hLTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Qua2V5cyAtICdlbnVtZXJhYmxlJyBhdHRyaWJ1dGUgb2YgZWxlbWVudCBvZiByZXR1cm5lZCBhcnJheSBpcyBjb3JyZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgb2JqID0geyBwcm9wMTogMTAwIH07DQoNCiAgICAgICAgdmFyIGFycmF5ID0gT2JqZWN0LmtleXMob2JqKTsNCiAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFycmF5LCAiMCIpOw0KICAgICAgICB2YXIgcmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZvciAodmFyIGluZGV4IGluIGFycmF5KSB7DQogICAgICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGFycmF5W2luZGV4XSkgJiYgYXJyYXlbaW5kZXhdID09PSAicHJvcDEiKSB7DQogICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiByZXN1bHQgJiYgZGVzYy5oYXNPd25Qcm9wZXJ0eSgiZW51bWVyYWJsZSIpICYmIGRlc2MuZW51bWVyYWJsZSA9PT0gdHJ1ZTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3Qua2V5cyk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.14-5-a-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTUtYS00IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xNC8xNS4yLjMuMTQtNS1hLTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Qua2V5cyAtIFZlcmlmeSB0aGF0ICdjb25maWd1cmFibGUnIGF0dHJpYnV0ZSBvZiBlbGVtZW50IG9mIHJldHVybmVkIGFycmF5IGlzIGNvcnJlY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBvYmogPSB7IHByb3AxOiAxMDAgfTsNCg0KICAgICAgICB2YXIgYXJyYXkgPSBPYmplY3Qua2V5cyhvYmopOw0KICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYXJyYXksICIwIik7DQoNCiAgICAgICAgZGVsZXRlIGFycmF5WzBdOw0KDQogICAgICAgIHJldHVybiB0eXBlb2YgYXJyYXlbMF0gPT09ICJ1bmRlZmluZWQiICYmIGRlc2MuaGFzT3duUHJvcGVydHkoImNvbmZpZ3VyYWJsZSIpICYmIGRlc2MuY29uZmlndXJhYmxlID09PSB0cnVlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5rZXlzKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.14-5-b-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTUtYi0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4xNC8xNS4yLjMuMTQtNS1iLTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Qua2V5cyAtIFZlcmlmeSB0aGF0ICdpbmRleCcgb2YgcmV0dXJuZWQgYXJyYXkgaXMgYXNjZW5kIGJ5IDEiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBvYmogPSB7IHByb3AxOiAxMDAsIHByb3AyOiAyMDAsIHByb3AzOiAzMDAgfTsNCg0KICAgICAgICB2YXIgYXJyYXkgPSBPYmplY3Qua2V5cyhvYmopOw0KDQogICAgICAgIHZhciBpZHggPSAwOw0KICAgICAgICBmb3IgKHZhciBpbmRleCBpbiBhcnJheSkgew0KICAgICAgICAgICAgaWYgKGFycmF5Lmhhc093blByb3BlcnR5KGluZGV4KSkgew0KICAgICAgICAgICAgICAgIGlmIChpbmRleCAhPT0gaWR4LnRvU3RyaW5nKCkpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZHgrKzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5rZXlzKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.14-6-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTYtMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTQvMTUuMi4zLjE0LTYtMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5rZXlzIC0gdGhlIG9yZGVyIG9mIGVsZW1lbnRzIGluIHJldHVybmVkIGFycmF5IGlzIHRoZSBzYW1lIHdpdGggdGhlIG9yZGVyIG9mIHByb3BlcnRpZXMgaW4gJ08nIChkZW5zZSBhcnJheSkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBkZW5zZUFycmF5ID0gWzEsIDIsIDNdOw0KDQogICAgICAgIHZhciB0ZW1wQXJyYXkgPSBbXTsNCiAgICAgICAgZm9yICh2YXIgcCBpbiBkZW5zZUFycmF5KSB7DQogICAgICAgICAgICBpZiAoZGVuc2VBcnJheS5oYXNPd25Qcm9wZXJ0eShwKSkgew0KICAgICAgICAgICAgICAgIHRlbXBBcnJheS5wdXNoKHApOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHJldHVybmVkQXJyYXkgPSBPYmplY3Qua2V5cyhkZW5zZUFycmF5KTsNCg0KICAgICAgICBmb3IgKHZhciBpbmRleCBpbiByZXR1cm5lZEFycmF5KSB7DQogICAgICAgICAgICBpZiAodGVtcEFycmF5W2luZGV4XSAhPT0gcmV0dXJuZWRBcnJheVtpbmRleF0pIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRydWU7DQoNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3Qua2V5cyk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.14-6-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTYtMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTQvMTUuMi4zLjE0LTYtMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5rZXlzIC0gdGhlIG9yZGVyIG9mIGVsZW1lbnRzIGluIHJldHVybmVkIGFycmF5IGlzIHRoZSBzYW1lIHdpdGggdGhlIG9yZGVyIG9mIHByb3BlcnRpZXMgaW4gJ08nIChzcGFyc2UgYXJyYXkpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgc3BhcnNlQXJyYXkgPSBbMSwgMiwgLCA0LCAsIDZdOw0KDQogICAgICAgIHZhciB0ZW1wQXJyYXkgPSBbXTsNCiAgICAgICAgZm9yICh2YXIgcCBpbiBzcGFyc2VBcnJheSkgew0KICAgICAgICAgICAgaWYgKHNwYXJzZUFycmF5Lmhhc093blByb3BlcnR5KHApKSB7DQogICAgICAgICAgICAgICAgdGVtcEFycmF5LnB1c2gocCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcmV0dXJuZWRBcnJheSA9IE9iamVjdC5rZXlzKHNwYXJzZUFycmF5KTsNCg0KICAgICAgICBmb3IgKHZhciBpbmRleCBpbiByZXR1cm5lZEFycmF5KSB7DQogICAgICAgICAgICBpZiAodGVtcEFycmF5W2luZGV4XSAhPT0gcmV0dXJuZWRBcnJheVtpbmRleF0pIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmtleXMpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.14-6-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTYtMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTQvMTUuMi4zLjE0LTYtMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5rZXlzIC0gdGhlIG9yZGVyIG9mIGVsZW1lbnRzIGluIHJldHVybmVkIGFycmF5IGlzIHRoZSBzYW1lIHdpdGggdGhlIG9yZGVyIG9mIHByb3BlcnRpZXMgaW4gJ08nIChTdHJpbmcgb2JqZWN0KSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIHN0ciA9IG5ldyBTdHJpbmcoImFiYyIpOw0KDQogICAgICAgIHZhciB0ZW1wQXJyYXkgPSBbXTsNCiAgICAgICAgZm9yICh2YXIgcCBpbiBzdHIpIHsNCiAgICAgICAgICAgIGlmIChzdHIuaGFzT3duUHJvcGVydHkocCkpIHsNCiAgICAgICAgICAgICAgICB0ZW1wQXJyYXkucHVzaChwKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciByZXR1cm5lZEFycmF5ID0gT2JqZWN0LmtleXMoc3RyKTsNCg0KICAgICAgICBmb3IgKHZhciBpbmRleCBpbiByZXR1cm5lZEFycmF5KSB7DQogICAgICAgICAgICBpZiAodGVtcEFycmF5W2luZGV4XSAhPT0gcmV0dXJuZWRBcnJheVtpbmRleF0pIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmtleXMpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.14-6-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTYtNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTQvMTUuMi4zLjE0LTYtNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5rZXlzIC0gdGhlIG9yZGVyIG9mIGVsZW1lbnRzIGluIHJldHVybmVkIGFycmF5IGlzIHRoZSBzYW1lIHdpdGggdGhlIG9yZGVyIG9mIHByb3BlcnRpZXMgaW4gJ08nIChBcmd1bWVudHMgb2JqZWN0KSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIGZ1bmMgPSBmdW5jdGlvbiAoYSwgYiwgYykgew0KICAgICAgICAgICAgcmV0dXJuIGFyZ3VtZW50czsNCiAgICAgICAgfTsNCg0KICAgICAgICB2YXIgYXJncyA9IGZ1bmMoMSwgImIiLCBmYWxzZSk7DQoNCiAgICAgICAgdmFyIHRlbXBBcnJheSA9IFtdOw0KICAgICAgICBmb3IgKHZhciBwIGluIGFyZ3MpIHsNCiAgICAgICAgICAgIGlmIChhcmdzLmhhc093blByb3BlcnR5KHApKSB7DQogICAgICAgICAgICAgICAgdGVtcEFycmF5LnB1c2gocCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcmV0dXJuZWRBcnJheSA9IE9iamVjdC5rZXlzKGFyZ3MpOw0KDQogICAgICAgIGZvciAodmFyIGluZGV4IGluIHJldHVybmVkQXJyYXkpIHsNCiAgICAgICAgICAgIGlmICh0ZW1wQXJyYXlbaW5kZXhdICE9PSByZXR1cm5lZEFycmF5W2luZGV4XSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3Qua2V5cyk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.14-6-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTYtNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTQvMTUuMi4zLjE0LTYtNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5rZXlzIC0gdGhlIG9yZGVyIG9mIGVsZW1lbnRzIGluIHJldHVybmVkIGFycmF5IGlzIHRoZSBzYW1lIHdpdGggdGhlIG9yZGVyIG9mIHByb3BlcnRpZXMgaW4gJ08nIChhbnkgb3RoZXIgYnVpbHQtaW4gb2JqZWN0KSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IG5ldyBEYXRlKCk7DQogICAgICAgIG9iai5wcm9wMSA9IDEwMDsNCiAgICAgICAgb2JqLnByb3AyID0gInByb3AyIjsNCg0KICAgICAgICB2YXIgdGVtcEFycmF5ID0gW107DQogICAgICAgIGZvciAodmFyIHAgaW4gb2JqKSB7DQogICAgICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KHApKSB7DQogICAgICAgICAgICAgICAgdGVtcEFycmF5LnB1c2gocCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcmV0dXJuZWRBcnJheSA9IE9iamVjdC5rZXlzKG9iaik7DQoNCiAgICAgICAgZm9yICh2YXIgaW5kZXggaW4gcmV0dXJuZWRBcnJheSkgew0KICAgICAgICAgICAgaWYgKHRlbXBBcnJheVtpbmRleF0gIT09IHJldHVybmVkQXJyYXlbaW5kZXhdKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5rZXlzKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.14-6-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjE0LTYtNiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMTQvMTUuMi4zLjE0LTYtNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5rZXlzIC0gdGhlIG9yZGVyIG9mIGVsZW1lbnRzIGluIHJldHVybmVkIGFycmF5IGlzIHRoZSBzYW1lIHdpdGggdGhlIG9yZGVyIG9mIHByb3BlcnRpZXMgaW4gJ08nIChnbG9iYWwgT2JqZWN0KSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IGZuR2xvYmFsT2JqZWN0KCk7DQoNCiAgICAgICAgdmFyIHRlbXBBcnJheSA9IFtdOw0KICAgICAgICBmb3IgKHZhciBwIGluIG9iaikgew0KICAgICAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShwKSkgew0KICAgICAgICAgICAgICAgIHRlbXBBcnJheS5wdXNoKHApOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHJldHVybmVkQXJyYXkgPSBPYmplY3Qua2V5cyhvYmopOw0KDQogICAgICAgIGZvciAodmFyIGluZGV4IGluIHJldHVybmVkQXJyYXkpIHsNCiAgICAgICAgICAgIGlmICh0ZW1wQXJyYXlbaW5kZXhdICE9PSByZXR1cm5lZEFycmF5W2luZGV4XSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3Qua2V5cyk7DQogICAgfQ0KfSk7DQo=]]></test>
</section>
</testCollection>

View File

@ -2,9 +2,49 @@
<!-- adding section element if in the future we want to store information about the -->
<!-- spec structure in this file, for now the section structure is defined in the -->
<!-- sections.js file -->
<section name="Chapter - 15.2.3.8" numTests="3">
<section name="Chapter - 15.2.3.8" numTests="43">
<test id="15.2.3.8-0-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjgtMC0xIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjgvMTUuMi4zLjgtMC0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3Quc2VhbCBtdXN0IGV4aXN0IGFzIGEgZnVuY3Rpb24iLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGYgPSBPYmplY3Quc2VhbDsNCiAgaWYgKHR5cGVvZihmKSA9PT0gImZ1bmN0aW9uIikgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfQ0KfSk7DQo=]]></test>
<test id="15.2.3.8-0-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjgtMC0yIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjgvMTUuMi4zLjgtMC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3Quc2VhbCBtdXN0IGV4aXN0IGFzIGEgZnVuY3Rpb24gdGFraW5nIDEgcGFyYW1ldGVyIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIGlmIChPYmplY3Quc2VhbC5sZW5ndGggPT09IDEpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnNlYWwpOw0KIH0NCn0pOw0K]]></test>
<test id="15.2.3.8-1-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMS0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy44LzE1LjIuMy44LTEtMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5zZWFsIHRocm93cyBUeXBlRXJyb3IgaWYgdHlwZSBvZiBmaXJzdCBwYXJhbSBpcyB1bmRlZmluZWQiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3Quc2VhbCh1bmRlZmluZWQpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFR5cGVFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5zZWFsKTsNCiAgICB9DQp9KTsgDQo=]]></test>
<test id="15.2.3.8-1-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMS0yIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy44LzE1LjIuMy44LTEtMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5zZWFsIHRocm93cyBUeXBlRXJyb3IgaWYgdHlwZSBvZiBmaXJzdCBwYXJhbSBpcyBudWxsIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LnNlYWwobnVsbCk7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgVHlwZUVycm9yOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnNlYWwpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.8-1-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMS0zIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy44LzE1LjIuMy44LTEtMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5zZWFsIHRocm93cyBUeXBlRXJyb3IgaWYgdHlwZSBvZiBmaXJzdCBwYXJhbSBpcyBhIGJvb2xlYW4gcHJpbWl0aXZlIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LnNlYWwoZmFsc2UpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFR5cGVFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5zZWFsKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.8-1-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMS00IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy44LzE1LjIuMy44LTEtNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5zZWFsIHRocm93cyBUeXBlRXJyb3IgaWYgdHlwZSBvZiBmaXJzdCBwYXJhbSBpcyBhIHN0cmluZyBwcmltaXRpdmUiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3Quc2VhbCgiYWJjIik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgVHlwZUVycm9yOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnNlYWwpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.8-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjgtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy44LzE1LjIuMy44LTEuanMiLA0KDQpkZXNjcmlwdGlvbjogIk9iamVjdC5zZWFsIHRocm93cyBUeXBlRXJyb3IgaWYgdHlwZSBvZiBmaXJzdCBwYXJhbSBpcyBub3QgT2JqZWN0IiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgdHJ5IHsNCiAgICAgIE9iamVjdC5zZWFsKDApOw0KICAgIH0NCiAgICBjYXRjaCAoZSkgew0KICAgICAgaWYgKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpIHsNCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICB9DQogICAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnNlYWwpOw0KIH0NCn0pOw0K]]></test>
<test id="15.2.3.8-2-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy44LzE1LjIuMy44LTItMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5zZWFsIC0gZXh0ZW5zaWJsZSBvZiAnTycgaXMgc2V0IGFzIGZhbHNlIGV2ZW4gaWYgJ08nIGhhcyBubyBvd24gcHJvcGVydHkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBvYmogPSB7fTsNCg0KICAgICAgICB2YXIgcHJlQ2hlY2sgPSBPYmplY3QuaXNFeHRlbnNpYmxlKG9iaik7DQoNCiAgICAgICAgT2JqZWN0LnNlYWwob2JqKTsNCg0KICAgICAgICByZXR1cm4gcHJlQ2hlY2sgJiYgIU9iamVjdC5pc0V4dGVuc2libGUob2JqKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3Quc2VhbCkgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.8-2-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi0yIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy44LzE1LjIuMy44LTItMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5zZWFsIC0gaW5oZXJpdGVkIGRhdGEgcHJvcGVydGllcyBhcmUgaWdub3JlZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIHByb3RvID0ge307DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAiRmF0aGVyIiwgew0KICAgICAgICAgICAgdmFsdWU6IDEwLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBDb25zdHJ1Y3RGdW4gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbnN0cnVjdEZ1bi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uc3RydWN0RnVuKCk7DQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUoY2hpbGQpOw0KICAgICAgICBPYmplY3Quc2VhbChjaGlsZCk7DQoNCiAgICAgICAgdmFyIGJlZm9yZURlbGV0ZWQgPSBwcm90by5oYXNPd25Qcm9wZXJ0eSgiRmF0aGVyIik7DQogICAgICAgIGRlbGV0ZSBwcm90by5GYXRoZXI7DQogICAgICAgIHZhciBhZnRlckRlbGV0ZWQgPSBwcm90by5oYXNPd25Qcm9wZXJ0eSgiRmF0aGVyIik7DQoNCiAgICAgICAgcmV0dXJuIHByZUNoZWNrICYmIGJlZm9yZURlbGV0ZWQgJiYgIWFmdGVyRGVsZXRlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3Quc2VhbCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmbkV4aXN0cyhPYmplY3QuaXNFeHRlbnNpYmxlKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.8-2-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi0zIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy44LzE1LjIuMy44LTItMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5zZWFsIC0gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnRpZXMgYXJlIGlnbm9yZWQiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBwcm90byA9IHt9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywgIkZhdGhlciIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAxMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIENvbnN0cnVjdEZ1biA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uc3RydWN0RnVuLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb25zdHJ1Y3RGdW4oKTsNCiAgICAgICAgdmFyIHByZUNoZWNrID0gT2JqZWN0LmlzRXh0ZW5zaWJsZShjaGlsZCk7DQogICAgICAgIE9iamVjdC5zZWFsKGNoaWxkKTsNCg0KICAgICAgICB2YXIgYmVmb3JlRGVsZXRlZCA9IHByb3RvLmhhc093blByb3BlcnR5KCJGYXRoZXIiKTsNCiAgICAgICAgZGVsZXRlIHByb3RvLkZhdGhlcjsNCiAgICAgICAgdmFyIGFmdGVyRGVsZXRlZCA9IHByb3RvLmhhc093blByb3BlcnR5KCJGYXRoZXIiKTsNCg0KICAgICAgICByZXR1cm4gcHJlQ2hlY2sgJiYgYmVmb3JlRGVsZXRlZCAmJiAhYWZ0ZXJEZWxldGVkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5zZWFsKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.8-2-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi00IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy44LzE1LjIuMy44LTItNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5zZWFsIC0gbm9uLWVudW1lcmFibGUgb3duIHByb3BlcnR5IG9mICdPJyBpcyBzZWFsZWQiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBvYmogPSB7fTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZm9vIiwgew0KICAgICAgICAgICAgdmFsdWU6IDEwLA0KICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUob2JqKTsNCiAgICAgICAgT2JqZWN0LnNlYWwob2JqKTsNCg0KICAgICAgICB2YXIgYmVmb3JlRGVsZXRlZCA9IG9iai5oYXNPd25Qcm9wZXJ0eSgiZm9vIik7DQogICAgICAgIGRlbGV0ZSBvYmouZm9vOw0KICAgICAgICB2YXIgYWZ0ZXJEZWxldGVkID0gb2JqLmhhc093blByb3BlcnR5KCJmb28iKTsNCg0KICAgICAgICByZXR1cm4gcHJlQ2hlY2sgJiYgYmVmb3JlRGVsZXRlZCAmJiBhZnRlckRlbGV0ZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnNlYWwpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.8-2-a-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1hLTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjgvMTUuMi4zLjgtMi1hLTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Quc2VhbCAtICdQJyBpcyBvd24gZGF0YSBwcm9wZXJ0eSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KDQogICAgICAgIG9iai5mb28gPSAxMDsgLy8gZGVmYXVsdCBbW0NvbmZpZ3VyYWJsZV1dIGF0dHJpYnV0ZSB2YWx1ZSBvZiBmb286IHRydWUNCiAgICAgICAgdmFyIHByZUNoZWNrID0gT2JqZWN0LmlzRXh0ZW5zaWJsZShvYmopOw0KICAgICAgICBPYmplY3Quc2VhbChvYmopOw0KDQogICAgICAgIGRlbGV0ZSBvYmouZm9vOw0KICAgICAgICByZXR1cm4gcHJlQ2hlY2sgJiYgb2JqLmZvbyA9PT0gMTA7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnNlYWwpICYmIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.8-2-a-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1hLTEwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy44LzE1LjIuMy44LTItYS0xMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5zZWFsIC0gJ1AnIGlzIG93biBwcm9wZXJ0eSBvZiBhIEJvb2xlYW4gb2JqZWN0IHRoYXQgdXNlcyBPYmplY3QncyBbW0dldE93blByb3BlcnR5XV0iLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBib29sT2JqID0gbmV3IEJvb2xlYW4oZmFsc2UpOw0KDQogICAgICAgIGJvb2xPYmouZm9vID0gMTA7DQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUoYm9vbE9iaik7DQogICAgICAgIE9iamVjdC5zZWFsKGJvb2xPYmopOw0KDQogICAgICAgIGRlbGV0ZSBib29sT2JqLmZvbzsNCiAgICAgICAgcmV0dXJuIHByZUNoZWNrICYmIGJvb2xPYmouZm9vID09PSAxMDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3Quc2VhbCkgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.8-2-a-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1hLTExIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy44LzE1LjIuMy44LTItYS0xMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5zZWFsIC0gJ1AnIGlzIG93biBwcm9wZXJ0eSBvZiBhIE51bWJlciBvYmplY3QgdGhhdCB1c2VzIE9iamVjdCdzIFtbR2V0T3duUHJvcGVydHldXSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG51bU9iaiA9IG5ldyBOdW1iZXIoLTEpOw0KDQogICAgICAgIG51bU9iai5mb28gPSAxMDsNCiAgICAgICAgdmFyIHByZUNoZWNrID0gT2JqZWN0LmlzRXh0ZW5zaWJsZShudW1PYmopOw0KICAgICAgICBPYmplY3Quc2VhbChudW1PYmopOw0KDQogICAgICAgIGRlbGV0ZSBudW1PYmouZm9vOw0KICAgICAgICByZXR1cm4gcHJlQ2hlY2sgJiYgbnVtT2JqLmZvbyA9PT0gMTA7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnNlYWwpICYmIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.8-2-a-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1hLTEyIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy44LzE1LjIuMy44LTItYS0xMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5zZWFsIC0gJ1AnIGlzIG93biBwcm9wZXJ0eSBvZiBhIERhdGUgb2JqZWN0IHRoYXQgdXNlcyBPYmplY3QncyBbW0dldE93blByb3BlcnR5XV0iLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBkYXRlT2JqID0gbmV3IERhdGUoKTsNCg0KICAgICAgICBkYXRlT2JqLmZvbyA9IDEwOw0KICAgICAgICB2YXIgcHJlQ2hlY2sgPSBPYmplY3QuaXNFeHRlbnNpYmxlKGRhdGVPYmopOw0KICAgICAgICBPYmplY3Quc2VhbChkYXRlT2JqKTsNCg0KICAgICAgICBkZWxldGUgZGF0ZU9iai5mb287DQogICAgICAgIHJldHVybiBwcmVDaGVjayAmJiBkYXRlT2JqLmZvbyA9PT0gMTA7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnNlYWwpICYmIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.8-2-a-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1hLTEzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy44LzE1LjIuMy44LTItYS0xMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5zZWFsIC0gJ1AnIGlzIG93biBwcm9wZXJ0eSBvZiBhIFJlZ0V4cCBvYmplY3QgdGhhdCB1c2VzIE9iamVjdCdzIFtbR2V0T3duUHJvcGVydHldXSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIHJlZ09iaiA9IG5ldyBSZWdFeHAoKTsNCg0KICAgICAgICByZWdPYmouZm9vID0gMTA7DQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUocmVnT2JqKTsNCiAgICAgICAgT2JqZWN0LnNlYWwocmVnT2JqKTsNCg0KICAgICAgICBkZWxldGUgcmVnT2JqLmZvbzsNCiAgICAgICAgcmV0dXJuIHByZUNoZWNrICYmIHJlZ09iai5mb28gPT09IDEwOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5zZWFsKSAmJiBmbkV4aXN0cyhPYmplY3QuaXNFeHRlbnNpYmxlKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.8-2-a-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1hLTE0IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy44LzE1LjIuMy44LTItYS0xNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5zZWFsIC0gJ1AnIGlzIG93biBwcm9wZXJ0eSBvZiBhbiBFcnJvciBvYmplY3QgdGhhdCB1c2VzIE9iamVjdCdzIFtbR2V0T3duUHJvcGVydHldXSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIGVyck9iaiA9IG5ldyBFcnJvcigpOw0KDQogICAgICAgIGVyck9iai5mb28gPSAxMDsNCiAgICAgICAgdmFyIHByZUNoZWNrID0gT2JqZWN0LmlzRXh0ZW5zaWJsZShlcnJPYmopOw0KICAgICAgICBPYmplY3Quc2VhbChlcnJPYmopOw0KDQogICAgICAgIGRlbGV0ZSBlcnJPYmouZm9vOw0KICAgICAgICByZXR1cm4gcHJlQ2hlY2sgJiYgZXJyT2JqLmZvbyA9PT0gMTA7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnNlYWwpICYmIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.8-2-a-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1hLTE1IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy44LzE1LjIuMy44LTItYS0xNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5zZWFsIC0gJ1AnIGlzIG93biBwcm9wZXJ0eSBvZiBhbiBBcmd1bWVudHMgb2JqZWN0IHdoaWNoIGltcGxlbWVudHMgaXRzIG93biBbW0dldE93blByb3BlcnR5XV0iLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBhcmdPYmogPSAoZnVuY3Rpb24gKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KSgpOw0KDQogICAgICAgIGFyZ09iai5mb28gPSAxMDsgLy8gZGVmYXVsdCBbW0NvbmZpZ3VyYWJsZV1dIGF0dHJpYnV0ZSB2YWx1ZSBvZiBmb286IHRydWUNCiAgICAgICAgdmFyIHByZUNoZWNrID0gT2JqZWN0LmlzRXh0ZW5zaWJsZShhcmdPYmopOw0KICAgICAgICBPYmplY3Quc2VhbChhcmdPYmopOw0KDQogICAgICAgIGRlbGV0ZSBhcmdPYmouZm9vOw0KICAgICAgICByZXR1cm4gcHJlQ2hlY2sgJiYgYXJnT2JqLmZvbyA9PT0gMTA7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnNlYWwpICYmIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.8-2-a-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1hLTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjgvMTUuMi4zLjgtMi1hLTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Quc2VhbCAtICdQJyBpcyBvd24gZGF0YSBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgZGF0YSBwcm9wZXJ0eSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIHByb3RvID0geyBmb286IDAgfTsNCg0KICAgICAgICB2YXIgQ29uc3RydWN0RnVuID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb25zdHJ1Y3RGdW4ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbnN0cnVjdEZ1bigpOw0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY2hpbGQsICJmb28iLCB7DQogICAgICAgICAgICB2YWx1ZTogMTAsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUoY2hpbGQpOw0KICAgICAgICBPYmplY3Quc2VhbChjaGlsZCk7DQoNCiAgICAgICAgZGVsZXRlIGNoaWxkLmZvbzsNCiAgICAgICAgcmV0dXJuIHByZUNoZWNrICYmIGNoaWxkLmZvbyA9PT0gMTA7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnNlYWwpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.8-2-a-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1hLTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjgvMTUuMi4zLjgtMi1hLTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Quc2VhbCAtICdQJyBpcyBvd24gZGF0YSBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBwcm90byA9IHt9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywgImZvbyIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgQ29uc3RydWN0RnVuID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb25zdHJ1Y3RGdW4ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbnN0cnVjdEZ1bigpOw0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY2hpbGQsICJmb28iLCB7DQogICAgICAgICAgICB2YWx1ZTogMTAsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUoY2hpbGQpOw0KICAgICAgICBPYmplY3Quc2VhbChjaGlsZCk7DQoNCiAgICAgICAgZGVsZXRlIGNoaWxkLmZvbzsNCiAgICAgICAgcmV0dXJuIHByZUNoZWNrICYmIGNoaWxkLmZvbyA9PT0gMTA7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnNlYWwpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.8-2-a-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1hLTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjgvMTUuMi4zLjgtMi1hLTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Quc2VhbCAtICdQJyBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBvYmogPSB7fTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZm9vIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDEwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCiAgICAgICAgdmFyIHByZUNoZWNrID0gT2JqZWN0LmlzRXh0ZW5zaWJsZShvYmopOw0KICAgICAgICBPYmplY3Quc2VhbChvYmopOw0KDQogICAgICAgIGRlbGV0ZSBvYmouZm9vOw0KICAgICAgICByZXR1cm4gcHJlQ2hlY2sgJiYgb2JqLmZvbyA9PT0gMTA7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnNlYWwpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.8-2-a-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1hLTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjgvMTUuMi4zLjgtMi1hLTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Quc2VhbCAtICdQJyBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGRhdGEgcHJvcGVydHkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBwcm90byA9IHt9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywgImZvbyIsIHsNCiAgICAgICAgICAgIHZhbHVlOiAwLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBDb25zdHJ1Y3RGdW4gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbnN0cnVjdEZ1bi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uc3RydWN0RnVuKCk7DQogICAgICAgIA0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY2hpbGQsICJmb28iLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KICAgICAgICB2YXIgcHJlQ2hlY2sgPSBPYmplY3QuaXNFeHRlbnNpYmxlKGNoaWxkKTsNCiAgICAgICAgT2JqZWN0LnNlYWwoY2hpbGQpOw0KDQogICAgICAgIGRlbGV0ZSBjaGlsZC5mb287DQogICAgICAgIHJldHVybiBwcmVDaGVjayAmJiBjaGlsZC5mb28gPT09IDEwOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5zZWFsKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.8-2-a-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1hLTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjgvMTUuMi4zLjgtMi1hLTYuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Quc2VhbCAtICdQJyBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgcHJvdG8gPSB7fTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICJmb28iLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIENvbnN0cnVjdEZ1biA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uc3RydWN0RnVuLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb25zdHJ1Y3RGdW4oKTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY2hpbGQsICJmb28iLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KICAgICAgICB2YXIgcHJlQ2hlY2sgPSBPYmplY3QuaXNFeHRlbnNpYmxlKGNoaWxkKTsNCiAgICAgICAgT2JqZWN0LnNlYWwoY2hpbGQpOw0KDQogICAgICAgIGRlbGV0ZSBjaGlsZC5mb287DQogICAgICAgIHJldHVybiBwcmVDaGVjayAmJiBjaGlsZC5mb28gPT09IDEwOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5zZWFsKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.8-2-a-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1hLTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjgvMTUuMi4zLjgtMi1hLTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Quc2VhbCAtICdQJyBpcyBvd24gcHJvcGVydHkgb2YgYSBGdW5jdGlvbiBvYmplY3QgdGhhdCB1c2VzIE9iamVjdCdzIFtbR2V0T3duUHJvcGVydHldXSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIGZ1bk9iaiA9IGZ1bmN0aW9uICgpIHsgfTsNCg0KICAgICAgICBmdW5PYmouZm9vID0gMTA7IC8vIGRlZmF1bHQgW1tDb25maWd1cmFibGVdXSBhdHRyaWJ1dGUgdmFsdWUgb2YgZm9vOiB0cnVlDQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUoZnVuT2JqKTsNCiAgICAgICAgT2JqZWN0LnNlYWwoZnVuT2JqKTsNCg0KICAgICAgICBkZWxldGUgZnVuT2JqLmZvbzsNCiAgICAgICAgcmV0dXJuIHByZUNoZWNrICYmIGZ1bk9iai5mb28gPT09IDEwOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5zZWFsKSAmJiBmbkV4aXN0cyhPYmplY3QuaXNFeHRlbnNpYmxlKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.8-2-a-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1hLTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjgvMTUuMi4zLjgtMi1hLTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Quc2VhbCAtICdQJyBpcyBvd24gcHJvcGVydHkgb2YgYW4gQXJyYXkgb2JqZWN0IHRoYXQgdXNlcyBPYmplY3QncyBbW0dldE93blByb3BlcnR5XV0iLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBhcnJPYmogPSBbXTsNCg0KICAgICAgICBhcnJPYmouZm9vID0gMTA7DQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUoYXJyT2JqKTsNCiAgICAgICAgT2JqZWN0LnNlYWwoYXJyT2JqKTsNCg0KICAgICAgICBkZWxldGUgYXJyT2JqLmZvbzsNCiAgICAgICAgcmV0dXJuIHByZUNoZWNrICYmIGFyck9iai5mb28gPT09IDEwOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5zZWFsKSAmJiBmbkV4aXN0cyhPYmplY3QuaXNFeHRlbnNpYmxlKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.8-2-a-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1hLTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjgvMTUuMi4zLjgtMi1hLTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Quc2VhbCAtICdQJyBpcyBvd24gcHJvcGVydHkgb2YgYSBTdHJpbmcgb2JqZWN0IHdoaWNoIGltcGxlbWVudHMgaXRzIG93biBbW0dldE93blByb3BlcnR5XV0iLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBzdHJPYmogPSBuZXcgU3RyaW5nKCJhYmMiKTsNCg0KICAgICAgICBzdHJPYmouZm9vID0gMTA7IC8vIGRlZmF1bHQgW1tDb25maWd1cmFibGVdXSBhdHRyaWJ1dGUgdmFsdWUgb2YgZm9vOiB0cnVlDQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUoc3RyT2JqKTsNCiAgICAgICAgT2JqZWN0LnNlYWwoc3RyT2JqKTsNCg0KICAgICAgICBkZWxldGUgc3RyT2JqLmZvbzsNCiAgICAgICAgcmV0dXJuIHByZUNoZWNrICYmIHN0ck9iai5mb28gPT09IDEwOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5zZWFsKSAmJiBmbkV4aXN0cyhPYmplY3QuaXNFeHRlbnNpYmxlKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.8-2-b-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1iLTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjgvMTUuMi4zLjgtMi1iLTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Quc2VhbCAtIHRoZSBbW0NvbmZpZ3VyYWJsZV1dIGF0dHJpYnV0ZSBvZiBvd24gZGF0YSBwcm9wZXJ0eSBvZiAnTycgaXMgc2V0IGZyb20gdHJ1ZSB0byBmYWxzZSBhbmQgb3RoZXIgYXR0cmlidXRlcyBvZiB0aGUgcHJvcGVydHkgYXJlIHVuYWx0ZXJlZCIsDQogICAgDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBvYmogPSB7fTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZm9vIiwgew0KICAgICAgICAgICAgdmFsdWU6IDEwLA0KICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsDQogICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KICAgICAgICB2YXIgcHJlQ2hlY2sgPSBPYmplY3QuaXNFeHRlbnNpYmxlKG9iaik7DQogICAgICAgIE9iamVjdC5zZWFsKG9iaik7DQoNCiAgICAgICAgcmV0dXJuIHByZUNoZWNrICYmIGRhdGFQcm9wZXJ0eUF0dHJpYnV0ZXNBcmVDb3JyZWN0KG9iaiwgImZvbyIsIDEwLCB0cnVlLCB0cnVlLCBmYWxzZSk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnNlYWwpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.8-2-b-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1iLTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjgvMTUuMi4zLjgtMi1iLTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Quc2VhbCAtIHRoZSBbW0NvbmZpZ3VyYWJsZV1dIGF0dHJpYnV0ZSBvZiBvd24gYWNjZXNzb3IgcHJvcGVydHkgb2YgJ08nIGlzIHNldCBmcm9tIHRydWUgdG8gZmFsc2UgYW5kIG90aGVyIGF0dHJpYnV0ZXMgb2YgdGhlIHByb3BlcnR5IGFyZSB1bmFsdGVyZWQiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBvYmogPSB7fTsNCiAgICAgICAgb2JqLnZhcmlhYmxlRm9ySGVscFZlcmlmeSA9ICJkYXRhIjsNCg0KICAgICAgICBmdW5jdGlvbiBzZXRGdW5jKHZhbHVlKSB7DQogICAgICAgICAgICBvYmoudmFyaWFibGVGb3JIZWxwVmVyaWZ5ID0gdmFsdWU7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZ2V0RnVuYygpIHsNCiAgICAgICAgICAgIHJldHVybiAxMDsNCiAgICAgICAgfQ0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZm9vIiwgew0KICAgICAgICAgICAgZ2V0OiBnZXRGdW5jLA0KICAgICAgICAgICAgc2V0OiBzZXRGdW5jLA0KICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCiAgICAgICAgdmFyIHByZUNoZWNrID0gT2JqZWN0LmlzRXh0ZW5zaWJsZShvYmopOw0KICAgICAgICBPYmplY3Quc2VhbChvYmopOw0KDQogICAgICAgIHJldHVybiBwcmVDaGVjayAmJiBhY2Nlc3NvclByb3BlcnR5QXR0cmlidXRlc0FyZUNvcnJlY3Qob2JqLCAiZm9vIiwgZ2V0RnVuYywgc2V0RnVuYywgInZhcmlhYmxlRm9ySGVscFZlcmlmeSIsIHRydWUsIGZhbHNlKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3Quc2VhbCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmbkV4aXN0cyhPYmplY3QuaXNFeHRlbnNpYmxlKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.8-2-b-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1iLTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjgvMTUuMi4zLjgtMi1iLTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Quc2VhbCAtIHRoZSBbW0NvbmZpZ3VyYWJsZV1dIGF0dHJpYnV0ZSBvZiBhbGwgb3duIHByb3BlcnRpZXMgb2YgJ08nIGFyZSBzZXQgZnJvbSB0cnVlIHRvIGZhbHNlIGFuZCBvdGhlciBhdHRyaWJ1dGVzIG9mIHRoZSBwcm9wZXJ0eSBhcmUgdW5hbHRlcmVkIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgb2JqID0ge307DQogICAgICAgIG9iai52YXJpYWJsZUZvckhlbHBWZXJpZnkgPSAiZGF0YSI7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImZvbzEiLCB7DQogICAgICAgICAgICB2YWx1ZTogMTAsDQogICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSwNCiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgZnVuY3Rpb24gc2V0X2Z1bmModmFsdWUpIHsNCiAgICAgICAgICAgIG9iai52YXJpYWJsZUZvckhlbHBWZXJpZnkgPSB2YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBnZXRfZnVuYygpIHsNCiAgICAgICAgICAgIHJldHVybiAxMDsNCiAgICAgICAgfQ0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZm9vMiIsIHsNCiAgICAgICAgICAgIGdldDogZ2V0X2Z1bmMsDQogICAgICAgICAgICBzZXQ6IHNldF9mdW5jLA0KICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCiAgICAgICAgdmFyIHByZUNoZWNrID0gT2JqZWN0LmlzRXh0ZW5zaWJsZShvYmopOw0KICAgICAgICBPYmplY3Quc2VhbChvYmopOw0KDQogICAgICAgIHJldHVybiBwcmVDaGVjayAmJiBkYXRhUHJvcGVydHlBdHRyaWJ1dGVzQXJlQ29ycmVjdChvYmosICJmb28xIiwgMTAsIHRydWUsIHRydWUsIGZhbHNlKSAmJg0KICAgICAgICAgICAgYWNjZXNzb3JQcm9wZXJ0eUF0dHJpYnV0ZXNBcmVDb3JyZWN0KG9iaiwgImZvbzIiLCBnZXRfZnVuYywgc2V0X2Z1bmMsICJ2YXJpYWJsZUZvckhlbHBWZXJpZnkiLCB0cnVlLCBmYWxzZSk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnNlYWwpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.8-2-b-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1iLTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjgvMTUuMi4zLjgtMi1iLTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Quc2VhbCAtIGFsbCBvd24gcHJvcGVydGllcyBvZiAnTycgYXJlIGFscmVhZHkgbm9uLWNvbmZpZ3VyYWJsZSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KICAgICAgICBvYmoudmFyaWFibGVGb3JIZWxwVmVyaWZ5ID0gImRhdGEiOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJmb28xIiwgew0KICAgICAgICAgICAgdmFsdWU6IDEwLA0KICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsDQogICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBmdW5jdGlvbiBzZXRfZnVuYyh2YWx1ZSkgew0KICAgICAgICAgICAgb2JqLnZhcmlhYmxlRm9ySGVscFZlcmlmeSA9IHZhbHVlOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGdldF9mdW5jKCkgew0KICAgICAgICAgICAgcmV0dXJuIDEwOw0KICAgICAgICB9DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJmb28yIiwgew0KICAgICAgICAgICAgZ2V0OiBnZXRfZnVuYywNCiAgICAgICAgICAgIHNldDogc2V0X2Z1bmMsDQogICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZQ0KICAgICAgICB9KTsNCiAgICAgICAgdmFyIHByZUNoZWNrID0gT2JqZWN0LmlzRXh0ZW5zaWJsZShvYmopOw0KICAgICAgICBPYmplY3Quc2VhbChvYmopOw0KDQogICAgICAgIHJldHVybiBwcmVDaGVjayAmJiBkYXRhUHJvcGVydHlBdHRyaWJ1dGVzQXJlQ29ycmVjdChvYmosICJmb28xIiwgMTAsIHRydWUsIHRydWUsIGZhbHNlKSAmJg0KICAgICAgICAgICAgYWNjZXNzb3JQcm9wZXJ0eUF0dHJpYnV0ZXNBcmVDb3JyZWN0KG9iaiwgImZvbzIiLCBnZXRfZnVuYywgc2V0X2Z1bmMsICJ2YXJpYWJsZUZvckhlbHBWZXJpZnkiLCB0cnVlLCBmYWxzZSk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnNlYWwpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.8-2-c-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1jLTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjgvMTUuMi4zLjgtMi1jLTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Quc2VhbCAtICdPJyBpcyBhIEZ1bmN0aW9uIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgZnVuID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICB2YXIgcHJlQ2hlY2sgPSBPYmplY3QuaXNFeHRlbnNpYmxlKGZ1bik7DQogICAgICAgIE9iamVjdC5zZWFsKGZ1bik7DQoNCiAgICAgICAgcmV0dXJuIHByZUNoZWNrICYmIE9iamVjdC5pc1NlYWxlZChmdW4pOw0KDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnNlYWwpICYmIGZuRXhpc3RzKE9iamVjdC5pc1NlYWxlZCkgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.8-2-c-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1jLTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjgvMTUuMi4zLjgtMi1jLTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Quc2VhbCAtICdPJyBpcyBhbiBBcnJheSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFyciA9IFswLCAxXTsNCiAgICAgICAgdmFyIHByZUNoZWNrID0gT2JqZWN0LmlzRXh0ZW5zaWJsZShhcnIpOw0KICAgICAgICBPYmplY3Quc2VhbChhcnIpOw0KDQogICAgICAgIHJldHVybiBwcmVDaGVjayAmJiBPYmplY3QuaXNTZWFsZWQoYXJyKTsNCg0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5zZWFsKSAmJiBmbkV4aXN0cyhPYmplY3QuaXNTZWFsZWQpICYmIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.8-2-c-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1jLTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjgvMTUuMi4zLjgtMi1jLTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Quc2VhbCAtICdPJyBpcyBhIFN0cmluZyBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHN0ck9iaiA9IG5ldyBTdHJpbmcoImEiKTsNCiAgICAgICAgdmFyIHByZUNoZWNrID0gT2JqZWN0LmlzRXh0ZW5zaWJsZShzdHJPYmopOw0KICAgICAgICBPYmplY3Quc2VhbChzdHJPYmopOw0KDQogICAgICAgIHJldHVybiBwcmVDaGVjayAmJiBPYmplY3QuaXNTZWFsZWQoc3RyT2JqKTsNCg0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5zZWFsKSAmJiBmbkV4aXN0cyhPYmplY3QuaXNTZWFsZWQpICYmIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.8-2-c-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1jLTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjgvMTUuMi4zLjgtMi1jLTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Quc2VhbCAtICdPJyBpcyBhIEJvb2xlYW4gb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBib29sT2JqID0gbmV3IEJvb2xlYW4oZmFsc2UpOw0KICAgICAgICB2YXIgcHJlQ2hlY2sgPSBPYmplY3QuaXNFeHRlbnNpYmxlKGJvb2xPYmopOw0KICAgICAgICBPYmplY3Quc2VhbChib29sT2JqKTsNCg0KICAgICAgICByZXR1cm4gcHJlQ2hlY2sgJiYgT2JqZWN0LmlzU2VhbGVkKGJvb2xPYmopOw0KDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnNlYWwpICYmIGZuRXhpc3RzKE9iamVjdC5pc1NlYWxlZCkgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.8-2-c-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1jLTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjgvMTUuMi4zLjgtMi1jLTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Quc2VhbCAtICdPJyBpcyBhIE51bWJlciBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG51bU9iaiA9IG5ldyBOdW1iZXIoMyk7DQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUobnVtT2JqKTsNCiAgICAgICAgT2JqZWN0LnNlYWwobnVtT2JqKTsNCg0KICAgICAgICByZXR1cm4gcHJlQ2hlY2sgJiYgT2JqZWN0LmlzU2VhbGVkKG51bU9iaik7DQoNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3Quc2VhbCkgJiYgZm5FeGlzdHMoT2JqZWN0LmlzU2VhbGVkKSAmJiBmbkV4aXN0cyhPYmplY3QuaXNFeHRlbnNpYmxlKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.8-2-c-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1jLTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjgvMTUuMi4zLjgtMi1jLTYuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Quc2VhbCAtICdPJyBpcyBhIERhdGUgb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBkYXRlT2JqID0gbmV3IERhdGUoKTsNCiAgICAgICAgdmFyIHByZUNoZWNrID0gT2JqZWN0LmlzRXh0ZW5zaWJsZShkYXRlT2JqKTsNCiAgICAgICAgT2JqZWN0LnNlYWwoZGF0ZU9iaik7DQoNCiAgICAgICAgcmV0dXJuIHByZUNoZWNrICYmIE9iamVjdC5pc1NlYWxlZChkYXRlT2JqKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3Quc2VhbCkgJiYgZm5FeGlzdHMoT2JqZWN0LmlzU2VhbGVkKSAmJiBmbkV4aXN0cyhPYmplY3QuaXNFeHRlbnNpYmxlKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.8-2-c-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1jLTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjgvMTUuMi4zLjgtMi1jLTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Quc2VhbCAtICdPJyBpcyBhIFJlZ0V4cCBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciByZWdPYmogPSBuZXcgUmVnRXhwKCk7DQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUocmVnT2JqKTsNCiAgICAgICAgT2JqZWN0LnNlYWwocmVnT2JqKTsNCg0KICAgICAgICByZXR1cm4gcHJlQ2hlY2sgJiYgT2JqZWN0LmlzU2VhbGVkKHJlZ09iaik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnNlYWwpICYmIGZuRXhpc3RzKE9iamVjdC5pc1NlYWxlZCkgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.8-2-c-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1jLTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjgvMTUuMi4zLjgtMi1jLTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Quc2VhbCAtICdPJyBpcyBhbiBFcnJvciBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGVyck9iaiA9IG5ldyBFcnJvcigpOw0KICAgICAgICB2YXIgcHJlQ2hlY2sgPSBPYmplY3QuaXNFeHRlbnNpYmxlKGVyck9iaik7DQogICAgICAgIE9iamVjdC5zZWFsKGVyck9iaik7DQoNCiAgICAgICAgcmV0dXJuIHByZUNoZWNrICYmIE9iamVjdC5pc1NlYWxlZChlcnJPYmopOw0KDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnNlYWwpICYmIGZuRXhpc3RzKE9iamVjdC5pc1NlYWxlZCkgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.8-2-c-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMi1jLTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjgvMTUuMi4zLjgtMi1jLTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3Quc2VhbCAtICdPJyBpcyBhbiBBcmd1bWVudHMgb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhcmdPYmogPSAoZnVuY3Rpb24gKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KSgpOw0KDQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUoYXJnT2JqKTsNCiAgICAgICAgT2JqZWN0LnNlYWwoYXJnT2JqKTsNCg0KICAgICAgICByZXR1cm4gcHJlQ2hlY2sgJiYgT2JqZWN0LmlzU2VhbGVkKGFyZ09iaik7DQoNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3Quc2VhbCkgJiYgZm5FeGlzdHMoT2JqZWN0LmlzU2VhbGVkKSAmJiBmbkV4aXN0cyhPYmplY3QuaXNFeHRlbnNpYmxlKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.8-3-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtMy0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy44LzE1LjIuMy44LTMtMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5zZWFsIC0gcmV0dXJuZWQgb2JqZWN0IGlzIG5vdCBleHRlbnNpYmxlIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBvYmogPSB7fTsNCiAgICAgICAgdmFyIHByZUNoZWNrID0gT2JqZWN0LmlzRXh0ZW5zaWJsZShvYmopOw0KICAgICAgICBPYmplY3Quc2VhbChvYmopOw0KICAgICAgICByZXR1cm4gcHJlQ2hlY2sgJiYgIU9iamVjdC5pc0V4dGVuc2libGUob2JqKTsNCg0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5zZWFsKSAmJiBmbkV4aXN0cyhPYmplY3QuaXNFeHRlbnNpYmxlKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.8-4-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtNC0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy44LzE1LjIuMy44LTQtMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5zZWFsIC0gJ08nIGlzIHNlYWxlZCBhbHJlYWR5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBvYmogPSB7fTsNCg0KICAgICAgICBvYmouZm9vID0gMTA7IC8vIGRlZmF1bHQgdmFsdWUgb2YgYXR0cmlidXRlczogd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZQ0KICAgICAgICB2YXIgcHJlQ2hlY2sgPSBPYmplY3QuaXNFeHRlbnNpYmxlKG9iaik7DQogICAgICAgIE9iamVjdC5zZWFsKG9iaik7DQoNCiAgICAgICAgT2JqZWN0LnNlYWwob2JqKTsNCiAgICAgICAgcmV0dXJuIHByZUNoZWNrICYmIE9iamVjdC5pc1NlYWxlZChvYmopOw0KDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnNlYWwpICYmIGZuRXhpc3RzKE9iamVjdC5pc1NlYWxlZCkgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.8-4-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtNC0yIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy44LzE1LjIuMy44LTQtMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5zZWFsIC0gJ08nIGlzIGZyb3plbiBhbHJlYWR5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBvYmogPSB7fTsNCg0KICAgICAgICBvYmouZm9vID0gMTA7IC8vIGRlZmF1bHQgdmFsdWUgb2YgYXR0cmlidXRlczogd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZQ0KICAgICAgICB2YXIgcHJlQ2hlY2sgPSBPYmplY3QuaXNFeHRlbnNpYmxlKG9iaik7DQogICAgICAgIE9iamVjdC5mcmVlemUob2JqKTsNCg0KICAgICAgICBPYmplY3Quc2VhbChvYmopOw0KICAgICAgICByZXR1cm4gcHJlQ2hlY2sgJiYgT2JqZWN0LmlzU2VhbGVkKG9iaik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LnNlYWwpICYmIGZuRXhpc3RzKE9iamVjdC5pc1NlYWxlZCkgJiYgZm5FeGlzdHMoT2JqZWN0LmZyZWV6ZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.8-4-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjgtNC0zIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy44LzE1LjIuMy44LTQtMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5zZWFsIC0gdGhlIGV4dGVuc2lvbiBvZiAnTycgaXMgcHJldmVudGVkIGFscmVhZHkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KDQogICAgICAgIG9iai5mb28gPSAxMDsgLy8gZGVmYXVsdCB2YWx1ZSBvZiBhdHRyaWJ1dGVzOiB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiB0cnVlDQogICAgICAgIHZhciBwcmVDaGVjayA9IE9iamVjdC5pc0V4dGVuc2libGUob2JqKTsNCiAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKG9iaik7DQogICAgICAgIE9iamVjdC5zZWFsKG9iaik7DQogICAgICAgIHJldHVybiBwcmVDaGVjayAmJiBPYmplY3QuaXNTZWFsZWQob2JqKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3Quc2VhbCkgJiYgZm5FeGlzdHMoT2JqZWN0LmlzU2VhbGVkKSAmJiBmbkV4aXN0cyhPYmplY3QucHJldmVudEV4dGVuc2lvbnMpICYmIGZuRXhpc3RzKE9iamVjdC5pc0V4dGVuc2libGUpOw0KICAgIH0NCn0pOw0K]]></test>
</section>
</testCollection>

View File

@ -2,9 +2,50 @@
<!-- adding section element if in the future we want to store information about the -->
<!-- spec structure in this file, for now the section structure is defined in the -->
<!-- sections.js file -->
<section name="Chapter - 15.2.3.9" numTests="3">
<section name="Chapter - 15.2.3.9" numTests="44">
<test id="15.2.3.9-0-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjktMC0xIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjkvMTUuMi4zLjktMC0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3QuZnJlZXplIG11c3QgZXhpc3QgYXMgYSBmdW5jdGlvbiIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgZiA9IE9iamVjdC5mcmVlemU7DQogIGlmICh0eXBlb2YoZikgPT09ICJmdW5jdGlvbiIpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0NCn0pOw0K]]></test>
<test id="15.2.3.9-0-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjktMC0yIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjkvMTUuMi4zLjktMC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3QuZnJlZXplIG11c3QgZXhpc3QgYXMgYSBmdW5jdGlvbiB0YWtpbmcgMSBwYXJhbWV0ZXIiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgaWYgKE9iamVjdC5mcmVlemUubGVuZ3RoID09PSAxKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5mcmVlemUpOw0KIH0NCn0pOw0K]]></test>
<test id="15.2.3.9-1-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMS0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy45LzE1LjIuMy45LTEtMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5mcmVlemUgdGhyb3dzIFR5cGVFcnJvciBpZiB0eXBlIG9mIGZpcnN0IHBhcmFtIGlzIHVuZGVmaW5lZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5mcmVlemUodW5kZWZpbmVkKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBUeXBlRXJyb3I7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QuZnJlZXplKTsNCiAgICB9DQp9KTsgDQo=]]></test>
<test id="15.2.3.9-1-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMS0yIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy45LzE1LjIuMy45LTEtMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5mcmVlemUgdGhyb3dzIFR5cGVFcnJvciBpZiB0eXBlIG9mIGZpcnN0IHBhcmFtIGlzIG51bGwiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZnJlZXplKG51bGwpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFR5cGVFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5mcmVlemUpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.9-1-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMS0zIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy45LzE1LjIuMy45LTEtMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5mcmVlemUgdGhyb3dzIFR5cGVFcnJvciBpZiB0eXBlIG9mIGZpcnN0IHBhcmFtIGlzIGJvb2xlYW4gcHJpbWl0aXZlIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgcmVzdWx0ID0gZmFsc2U7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZnJlZXplKGZhbHNlKTsNCg0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXN1bHQgPSBlIGluc3RhbmNlb2YgVHlwZUVycm9yOw0KICAgICAgICB9DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZnJlZXplKHRydWUpOw0KDQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiByZXN1bHQgJiYgZSBpbnN0YW5jZW9mIFR5cGVFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5mcmVlemUpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.9-1-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMS00IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy45LzE1LjIuMy45LTEtNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5mcmVlemUgdGhyb3dzIFR5cGVFcnJvciBpZiB0eXBlIG9mIGZpcnN0IHBhcmFtIGlzIHN0cmluZyBwcmltaXRpdmUiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZnJlZXplKCJhYmMiKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBUeXBlRXJyb3I7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QuZnJlZXplKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.9-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuOS8xNS4yLjMuOS0xLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LmZyZWV6ZSB0aHJvd3MgVHlwZUVycm9yIGlmIHR5cGUgb2YgZmlyc3QgcGFyYW0gaXMgbm90IE9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5mcmVlemUoMCk7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgVHlwZUVycm9yOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmZyZWV6ZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.9-2-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy45LzE1LjIuMy45LTItMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5mcmVlemUgLSBleHRlbnNpYmxlIG9mICdPJyBpcyBzZXQgYXMgZmFsc2UgZXZlbiBpZiAnTycgaGFzIG5vIG93biBwcm9wZXJ0eSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KDQogICAgICAgIE9iamVjdC5mcmVlemUob2JqKTsNCg0KICAgICAgICByZXR1cm4gIU9iamVjdC5pc0V4dGVuc2libGUob2JqKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QuZnJlZXplKSAmJiBmbkV4aXN0cyhPYmplY3QuaXNFeHRlbnNpYmxlKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.9-2-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi0yIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy45LzE1LjIuMy45LTItMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5mcmVlemUgLSBpbmhlcml0ZWQgZGF0YSBwcm9wZXJ0aWVzIGFyZSBub3QgZnJvemVuIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgcHJvdG8gPSB7fTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICJGYXRoZXIiLCB7DQogICAgICAgICAgICB2YWx1ZTogMTAsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb24oKTsNCiAgICAgICAgT2JqZWN0LmZyZWV6ZShjaGlsZCk7DQoNCiAgICAgICAgdmFyIGJlZm9yZURlbGV0ZWQgPSBwcm90by5oYXNPd25Qcm9wZXJ0eSgiRmF0aGVyIik7DQogICAgICAgIGRlbGV0ZSBwcm90by5GYXRoZXI7DQogICAgICAgIHZhciBhZnRlckRlbGV0ZWQgPSBwcm90by5oYXNPd25Qcm9wZXJ0eSgiRmF0aGVyIik7DQoNCiAgICAgICAgcmV0dXJuIGJlZm9yZURlbGV0ZWQgJiYgIWFmdGVyRGVsZXRlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QuZnJlZXplKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.9-2-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi0zIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy45LzE1LjIuMy45LTItMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5mcmVlemUgLSBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydGllcyBhcmUgbm90IGZyb3plbiIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIHByb3RvID0ge307DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAiRmF0aGVyIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDEwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBPYmplY3QuZnJlZXplKGNoaWxkKTsNCg0KICAgICAgICB2YXIgYmVmb3JlRGVsZXRlZCA9IHByb3RvLmhhc093blByb3BlcnR5KCJGYXRoZXIiKTsNCiAgICAgICAgZGVsZXRlIHByb3RvLkZhdGhlcjsNCiAgICAgICAgdmFyIGFmdGVyRGVsZXRlZCA9IHByb3RvLmhhc093blByb3BlcnR5KCJGYXRoZXIiKTsNCg0KICAgICAgICByZXR1cm4gYmVmb3JlRGVsZXRlZCAmJiAhYWZ0ZXJEZWxldGVkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5mcmVlemUpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.9-2-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi00IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy45LzE1LjIuMy45LTItNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5mcmVlemUgLSBOb24tZW51bWVyYWJsZSBvd24gcHJvcGVydGllcyBvZiAnTycgYXJlIGZyb3plbiIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJmb28iLCB7DQogICAgICAgICAgICB2YWx1ZTogMTAsDQogICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZnJlZXplKG9iaik7DQoNCiAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwgImZvbyIpOw0KDQogICAgICAgIHZhciBiZWZvcmVEZWxldGVkID0gb2JqLmhhc093blByb3BlcnR5KCJmb28iKTsNCiAgICAgICAgZGVsZXRlIG9iai5mb287DQogICAgICAgIHZhciBhZnRlckRlbGV0ZWQgPSBvYmouaGFzT3duUHJvcGVydHkoImZvbyIpOw0KDQogICAgICAgIHJldHVybiBiZWZvcmVEZWxldGVkICYmIGFmdGVyRGVsZXRlZCAmJiBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UgJiYgZGVzYy53cml0YWJsZSA9PT0gZmFsc2U7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmZyZWV6ZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmbkV4aXN0cyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.9-2-a-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1hLTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjkvMTUuMi4zLjktMi1hLTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuZnJlZXplIC0gJ1AnIGlzIG93biBkYXRhIHByb3BlcnR5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgb2JqID0ge307DQoNCiAgICAgICAgb2JqLmZvbyA9IDEwOyAvLyBkZWZhdWx0IFtbQ29uZmlndXJhYmxlXV0gYXR0cmlidXRlIHZhbHVlIG9mIGZvbzogdHJ1ZQ0KDQogICAgICAgIE9iamVjdC5mcmVlemUob2JqKTsNCg0KICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCAiZm9vIik7DQoNCiAgICAgICAgZGVsZXRlIG9iai5mb287DQogICAgICAgIHJldHVybiBvYmouZm9vID09PSAxMCAmJiBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UgJiYgZGVzYy53cml0YWJsZSA9PT0gZmFsc2U7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmZyZWV6ZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.9-2-a-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1hLTEwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy45LzE1LjIuMy45LTItYS0xMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5mcmVlemUgLSAnUCcgaXMgb3duIG5hbWVkIHByb3BlcnR5IG9mIGFuIEFycmF5IG9iamVjdCB0aGF0IHVzZXMgT2JqZWN0J3MgW1tHZXRPd25Qcm9wZXJ0eV1dIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgYXJyT2JqID0gW107DQoNCiAgICAgICAgYXJyT2JqLmZvbyA9IDEwOyAvLyBkZWZhdWx0IFtbQ29uZmlndXJhYmxlXV0gYXR0cmlidXRlIHZhbHVlIG9mIGZvbzogdHJ1ZQ0KDQogICAgICAgIE9iamVjdC5mcmVlemUoYXJyT2JqKTsNCg0KICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYXJyT2JqLCAiZm9vIik7DQoNCiAgICAgICAgZGVsZXRlIGFyck9iai5mb287DQogICAgICAgIHJldHVybiBhcnJPYmouZm9vID09PSAxMCAmJiBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UgJiYgZGVzYy53cml0YWJsZSA9PT0gZmFsc2U7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmZyZWV6ZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.9-2-a-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1hLTExIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy45LzE1LjIuMy45LTItYS0xMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5mcmVlemUgLSAnUCcgaXMgb3duIGluZGV4IHByb3BlcnR5IG9mIHRoZSBBcmd1bWVudHMgb2JqZWN0IHRoYXQgaW1wbGVtZW50cyBpdHMgb3duIFtbR2V0T3duUHJvcGVydHldXSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICAvLyBkZWZhdWx0IFtbQ29uZmlndXJhYmxlXV0gYXR0cmlidXRlIHZhbHVlIG9mICIwIjogdHJ1ZQ0KICAgICAgICB2YXIgYXJnT2JqID0gKGZ1bmN0aW9uICgpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSgxLCAyLCAzKSk7DQoNCiAgICAgICAgT2JqZWN0LmZyZWV6ZShhcmdPYmopOw0KDQogICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhcmdPYmosICIwIik7DQoNCiAgICAgICAgZGVsZXRlIGFyZ09ialswXTsNCiAgICAgICAgcmV0dXJuIGFyZ09ialswXSA9PT0gMSAmJiBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UgJiYgZGVzYy53cml0YWJsZSA9PT0gZmFsc2U7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmZyZWV6ZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.9-2-a-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1hLTEyIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy45LzE1LjIuMy45LTItYS0xMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5mcmVlemUgLSAnUCcgaXMgb3duIGluZGV4IHByb3BlcnR5IG9mIGEgU3RyaW5nIG9iamVjdCB0aGF0IGltcGxlbWVudHMgaXRzIG93biBbW0dldE93blByb3BlcnR5XV0iLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgLy8gZGVmYXVsdCBbW0NvbmZpZ3VyYWJsZV1dIGF0dHJpYnV0ZSB2YWx1ZSBvZiAiMCI6IHRydWUNCiAgICAgICAgdmFyIHN0ck9iaiA9IG5ldyBTdHJpbmcoImFiYyIpOw0KDQogICAgICAgIE9iamVjdC5mcmVlemUoc3RyT2JqKTsNCg0KICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc3RyT2JqLCAiMCIpOw0KDQogICAgICAgIGRlbGV0ZSBzdHJPYmpbMF07DQogICAgICAgIHJldHVybiBzdHJPYmpbMF0gPT09ICJhIiAmJiBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UgJiYgZGVzYy53cml0YWJsZSA9PT0gZmFsc2U7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmZyZWV6ZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.9-2-a-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1hLTEzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy45LzE1LjIuMy45LTItYS0xMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5mcmVlemUgLSAnUCcgaXMgb3duIGluZGV4IHByb3BlcnR5IG9mIHRoZSBPYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgLy8gZGVmYXVsdCBbW0NvbmZpZ3VyYWJsZV1dIGF0dHJpYnV0ZSB2YWx1ZSBvZiAiMCI6IHRydWUNCiAgICAgICAgdmFyIG9iaiA9IHsgMDogMCwgMTogMSwgbGVuZ3RoOiAyfTsNCg0KICAgICAgICBPYmplY3QuZnJlZXplKG9iaik7DQoNCiAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwgIjAiKTsNCg0KICAgICAgICBkZWxldGUgb2JqWzBdOw0KICAgICAgICByZXR1cm4gb2JqWzBdID09PSAwICYmIGRlc2MuY29uZmlndXJhYmxlID09PSBmYWxzZSAmJiBkZXNjLndyaXRhYmxlID09PSBmYWxzZTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QuZnJlZXplKSAmJiBmbkV4aXN0cyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.9-2-a-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1hLTE0IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy45LzE1LjIuMy45LTItYS0xNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5mcmVlemUgLSAnUCcgaXMgb3duIGluZGV4IHByb3BlcnR5IG9mIGFuIEFycmF5IG9iamVjdCB0aGF0IHVzZXMgT2JqZWN0J3MgW1tHZXRPd25Qcm9wZXJ0eV1dIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIC8vIGRlZmF1bHQgW1tDb25maWd1cmFibGVdXSBhdHRyaWJ1dGUgdmFsdWUgb2YgIjAiOiB0cnVlDQogICAgICAgIHZhciBhcnJPYmogPSBbMCwgMSwgMl07DQoNCiAgICAgICAgT2JqZWN0LmZyZWV6ZShhcnJPYmopOw0KDQogICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhcnJPYmosICIwIik7DQoNCiAgICAgICAgZGVsZXRlIGFyck9ialswXTsNCiAgICAgICAgcmV0dXJuIGFyck9ialswXSA9PT0gMCAmJiBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UgJiYgZGVzYy53cml0YWJsZSA9PT0gZmFsc2U7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmZyZWV6ZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.9-2-a-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1hLTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjkvMTUuMi4zLjktMi1hLTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuZnJlZXplIC0gJ1AnIGlzIG93biBkYXRhIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBkYXRhIHByb3BlcnR5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBwcm90byA9IHsgZm9vOiAwIH07IC8vIGRlZmF1bHQgW1tDb25maWd1cmFibGVdXSBhdHRyaWJ1dGUgdmFsdWUgb2YgZm9vOiB0cnVlDQoNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb24oKTsNCg0KICAgICAgICBjaGlsZC5mb28gPSAxMDsgLy8gZGVmYXVsdCBbW0NvbmZpZ3VyYWJsZV1dIGF0dHJpYnV0ZSB2YWx1ZSBvZiBmb286IHRydWUNCiANCiAgICAgICAgT2JqZWN0LmZyZWV6ZShjaGlsZCk7DQoNCiAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGNoaWxkLCAiZm9vIik7DQoNCiAgICAgICAgZGVsZXRlIGNoaWxkLmZvbzsNCiAgICAgICAgcmV0dXJuIGNoaWxkLmZvbyA9PT0gMTAgJiYgZGVzYy5jb25maWd1cmFibGUgPT09IGZhbHNlICYmIGRlc2Mud3JpdGFibGUgPT09IGZhbHNlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5mcmVlemUpICYmIGZuRXhpc3RzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.9-2-a-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1hLTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjkvMTUuMi4zLjktMi1hLTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuZnJlZXplIC0gJ1AnIGlzIG93biBkYXRhIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIHByb3RvID0ge307DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAiZm9vIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjaGlsZCwgImZvbyIsIHsNCiAgICAgICAgICAgIHZhbHVlOiAxMCwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZnJlZXplKGNoaWxkKTsNCg0KICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY2hpbGQsICJmb28iKTsNCg0KICAgICAgICBkZWxldGUgY2hpbGQuZm9vOw0KICAgICAgICByZXR1cm4gY2hpbGQuZm9vID09PSAxMCAmJiBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UgJiYgZGVzYy53cml0YWJsZSA9PT0gZmFsc2U7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmZyZWV6ZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmbkV4aXN0cyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.9-2-a-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1hLTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjkvMTUuMi4zLjktMi1hLTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuZnJlZXplIC0gJ1AnIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJmb28iLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5mcmVlemUob2JqKTsNCg0KICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCAiZm9vIik7DQoNCiAgICAgICAgZGVsZXRlIG9iai5mb287DQogICAgICAgIHJldHVybiBvYmouZm9vID09PSAxMCAmJiBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2U7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmZyZWV6ZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmbkV4aXN0cyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.9-2-a-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1hLTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjkvMTUuMi4zLjktMi1hLTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuZnJlZXplIC0gJ1AnIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgZGF0YSBwcm9wZXJ0eSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgcHJvdG8gPSB7fTsNCg0KICAgICAgICBwcm90by5mb28gPSAwOyAvLyBkZWZhdWx0IFtbQ29uZmlndXJhYmxlXV0gYXR0cmlidXRlIHZhbHVlIG9mIGZvbzogdHJ1ZQ0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNoaWxkLCAiZm9vIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDEwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZnJlZXplKGNoaWxkKTsNCg0KICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY2hpbGQsICJmb28iKTsNCg0KICAgICAgICBkZWxldGUgY2hpbGQuZm9vOw0KICAgICAgICByZXR1cm4gY2hpbGQuZm9vID09PSAxMCAmJiBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2U7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmZyZWV6ZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmbkV4aXN0cyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.9-2-a-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1hLTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjkvMTUuMi4zLjktMi1hLTYuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuZnJlZXplIC0gJ1AnIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBwcm90byA9IHt9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywgImZvbyIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjaGlsZCwgImZvbyIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAxMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmZyZWV6ZShjaGlsZCk7DQoNCiAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGNoaWxkLCAiZm9vIik7DQoNCiAgICAgICAgZGVsZXRlIGNoaWxkLmZvbzsNCiAgICAgICAgcmV0dXJuIGNoaWxkLmZvbyA9PT0gMTAgJiYgZGVzYy5jb25maWd1cmFibGUgPT09IGZhbHNlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5mcmVlemUpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.9-2-a-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1hLTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjkvMTUuMi4zLjktMi1hLTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuZnJlZXplIC0gJ1AnIGlzIG93biBuYW1lZCBwcm9wZXJ0eSBvZiBhbiBBcmd1bWVudHMgb2JqZWN0IHRoYXQgaW1wbGVtZW50cyBpdHMgb3duIFtbR2V0T3duUHJvcGVydHldXSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIGFyZ09iaiA9IChmdW5jdGlvbiAoKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSk7DQoNCiAgICAgICAgYXJnT2JqLmZvbyA9IDEwOyAvLyBkZWZhdWx0IFtbQ29uZmlndXJhYmxlXV0gYXR0cmlidXRlIHZhbHVlIG9mIGZvbzogdHJ1ZQ0KDQogICAgICAgIE9iamVjdC5mcmVlemUoYXJnT2JqKTsNCg0KICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYXJnT2JqLCAiZm9vIik7DQoNCiAgICAgICAgZGVsZXRlIGFyZ09iai5mb287DQogICAgICAgIHJldHVybiBhcmdPYmouZm9vID09PSAxMCAmJiBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UgJiYgZGVzYy53cml0YWJsZSA9PT0gZmFsc2U7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmZyZWV6ZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.9-2-a-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1hLTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjkvMTUuMi4zLjktMi1hLTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuZnJlZXplIC0gJ1AnIGlzIG93biBuYW1lZCBwcm9wZXJ0eSBvZiB0aGUgU3RyaW5nIG9iamVjdCB0aGF0IGltcGxlbWVudHMgaXRzIG93biBbW0dldE93blByb3BlcnR5XV0iLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBzdHJPYmogPSBuZXcgU3RyaW5nKCJhYmMiKTsNCg0KICAgICAgICBzdHJPYmouZm9vID0gMTA7IC8vIGRlZmF1bHQgW1tDb25maWd1cmFibGVdXSBhdHRyaWJ1dGUgdmFsdWUgb2YgZm9vOiB0cnVlDQoNCiAgICAgICAgT2JqZWN0LmZyZWV6ZShzdHJPYmopOw0KDQogICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzdHJPYmosICJmb28iKTsNCg0KICAgICAgICBkZWxldGUgc3RyT2JqLmZvbzsNCiAgICAgICAgcmV0dXJuIHN0ck9iai5mb28gPT09IDEwICYmIGRlc2MuY29uZmlndXJhYmxlID09PSBmYWxzZSAmJiBkZXNjLndyaXRhYmxlID09PSBmYWxzZTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QuZnJlZXplKSAmJiBmbkV4aXN0cyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.9-2-a-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1hLTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjkvMTUuMi4zLjktMi1hLTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuZnJlZXplIC0gJ1AnIGlzIG93biBwcm9wZXJ0eSBvZiB0aGUgRnVuY3Rpb24gb2JqZWN0IHRoYXQgdXNlcyBPYmplY3QncyBbW0dldE93blByb3BlcnR5XV0iLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBmdW5PYmogPSBmdW5jdGlvbiAoKSB7IH07DQoNCiAgICAgICAgZnVuT2JqLmZvbyA9IDEwOyAvLyBkZWZhdWx0IFtbQ29uZmlndXJhYmxlXV0gYXR0cmlidXRlIHZhbHVlIG9mIGZvbzogdHJ1ZQ0KDQogICAgICAgIE9iamVjdC5mcmVlemUoZnVuT2JqKTsNCg0KICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZnVuT2JqLCAiZm9vIik7DQoNCiAgICAgICAgZGVsZXRlIGZ1bk9iai5mb287DQogICAgICAgIHJldHVybiBmdW5PYmouZm9vID09PSAxMCAmJiBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UgJiYgZGVzYy53cml0YWJsZSA9PT0gZmFsc2U7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmZyZWV6ZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.9-2-b-i-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1iLWktMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuOS8xNS4yLjMuOS0yLWItaS0xLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LmZyZWV6ZSAtIFRoZSBbW1dydGlhYmxlXV0gYXR0cmlidXRlIG9mIG93biBkYXRhIHByb3BlcnR5IG9mICdPJyBpcyBzZXQgdG8gZmFsc2Ugd2hpbGUgb3RoZXIgYXR0cmlidXRlcyBhcmUgdW5jaGFuZ2VkIiwNCiAgICANCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJmb28iLCB7DQogICAgICAgICAgICB2YWx1ZTogMTAsDQogICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSwNCiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5mcmVlemUob2JqKTsNCiAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwgImZvbyIpOw0KDQogICAgICAgIHJldHVybiBkYXRhUHJvcGVydHlBdHRyaWJ1dGVzQXJlQ29ycmVjdChvYmosICJmb28iLCAxMCwgZmFsc2UsIHRydWUsIGZhbHNlKSAmJg0KICAgICAgICAgICAgZGVzYy53cml0YWJsZSA9PT0gZmFsc2UgJiYgZGVzYy5jb25maWd1cmFibGUgPT09IGZhbHNlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5mcmVlemUpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.9-2-b-i-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1iLWktMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuOS8xNS4yLjMuOS0yLWItaS0yLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiT2JqZWN0LmZyZWV6ZSAtIFRoZSBbW1dydGlhYmxlXV0gYXR0cmlidXRlIG9mIGFsbCBvd24gZGF0YSBwcm9wZXJ0eSBvZiAnTycgaXMgc2V0IHRvIGZhbHNlIHdoaWxlIG90aGVyIGF0dHJpYnV0ZXMgYXJlIHVuY2hhbmdlZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJmb28xIiwgew0KICAgICAgICAgICAgdmFsdWU6IDEwLA0KICAgICAgICAgICAgd3JpdGFibGU6IGZhbHNlLA0KICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImZvbzIiLCB7DQogICAgICAgICAgICB2YWx1ZTogMjAsDQogICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSwNCiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZnJlZXplKG9iaik7DQoNCiAgICAgICAgdmFyIGRlc2MxID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosICJmb28xIik7DQogICAgICAgIHZhciBkZXNjMiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCAiZm9vMiIpOw0KDQogICAgICAgIHJldHVybiBkYXRhUHJvcGVydHlBdHRyaWJ1dGVzQXJlQ29ycmVjdChvYmosICJmb28xIiwgMTAsIGZhbHNlLCB0cnVlLCBmYWxzZSkgJiYNCiAgICAgICAgICAgIGRhdGFQcm9wZXJ0eUF0dHJpYnV0ZXNBcmVDb3JyZWN0KG9iaiwgImZvbzIiLCAyMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSkgJiYNCiAgICAgICAgICAgIGRlc2MxLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UgJiYgZGVzYzEud3JpdGFibGUgPT09IGZhbHNlICYmDQogICAgICAgICAgICBkZXNjMi5jb25maWd1cmFibGUgPT09IGZhbHNlICYmIGRlc2MyLndyaXRhYmxlID09PSBmYWxzZTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QuZnJlZXplKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuRXhpc3RzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.9-2-c-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1jLTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjkvMTUuMi4zLjktMi1jLTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuZnJlZXplIC0gVGhlIFtbQ29uZmlndXJhYmxlXV0gYXR0cmlidXRlIG9mIG93biBkYXRhIHByb3BlcnR5IG9mICdPJyBpcyBzZXQgdG8gZmFsc2Ugd2hpbGUgb3RoZXIgYXR0cmlidXRlcyBhcmUgdW5jaGFuZ2VkIiwNCiAgICANCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJmb28iLCB7DQogICAgICAgICAgICB2YWx1ZTogMTAsDQogICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsDQogICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5mcmVlemUob2JqKTsNCiAgICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwgImZvbyIpOw0KDQogICAgICAgIHJldHVybiBkYXRhUHJvcGVydHlBdHRyaWJ1dGVzQXJlQ29ycmVjdChvYmosICJmb28iLCAxMCwgZmFsc2UsIHRydWUsIGZhbHNlKSAmJg0KICAgICAgICAgICAgZGVzYy5jb25maWd1cmFibGUgPT09IGZhbHNlICYmIGRlc2Mud3JpdGFibGUgPT09IGZhbHNlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5mcmVlemUpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.9-2-c-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1jLTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjkvMTUuMi4zLjktMi1jLTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuZnJlZXplIC0gVGhlIFtbQ29uZmlndXJhYmxlXV0gYXR0cmlidXRlIG9mIG93biBhY2Nlc3NvciBwcm9wZXJ0eSBvZiAnTycgaXMgc2V0IHRvIGZhbHNlIHdoaWxlIG90aGVyIGF0dHJpYnV0ZXMgYXJlIHVuY2hhbmdlZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KDQogICAgICAgIGZ1bmN0aW9uIGdldF9mdW5jKCkgew0KICAgICAgICAgICAgcmV0dXJuIDEwOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHJlc3VsdFNldEZ1biA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBzZXRfZnVuYygpIHsNCiAgICAgICAgICAgIHJlc3VsdFNldEZ1biA9IHRydWU7DQogICAgICAgIH0NCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZm9vIiwgew0KICAgICAgICAgICAgZ2V0OiBnZXRfZnVuYywNCiAgICAgICAgICAgIHNldDogc2V0X2Z1bmMsDQogICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5mcmVlemUob2JqKTsNCiAgICAgICAgdmFyIHJlczEgPSBvYmouaGFzT3duUHJvcGVydHkoImZvbyIpOw0KICAgICAgICBkZWxldGUgb2JqLmZvbzsNCiAgICAgICAgdmFyIHJlczIgPSBvYmouaGFzT3duUHJvcGVydHkoImZvbyIpOw0KICAgICAgICB2YXIgcmVzdWx0Q29uZmlndXJhYmxlID0gKHJlczEgJiYgcmVzMik7DQoNCiAgICAgICAgdmFyIHJlc3VsdEdldEZ1biA9IChvYmouZm9vID09PSAxMCk7DQogICAgICAgIG9iai5mb28gPSAxMjsNCg0KICAgICAgICB2YXIgcmVzdWx0RW51bWVyYWJsZSA9IGZhbHNlOw0KICAgICAgICBmb3IgKHZhciBwcm9wIGluIG9iaikgew0KICAgICAgICAgICAgaWYgKHByb3AgPT09ICJmb28iKSB7DQogICAgICAgICAgICAgICAgcmVzdWx0RW51bWVyYWJsZSA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCAiZm9vIik7DQogICAgICAgIHZhciByZXN1bHQgPSByZXN1bHRDb25maWd1cmFibGUgJiYgcmVzdWx0RW51bWVyYWJsZSAmJiByZXN1bHRHZXRGdW4gJiYgcmVzdWx0U2V0RnVuOw0KDQogICAgICAgIHJldHVybiBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UgJiYgcmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5mcmVlemUpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.9-2-c-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1jLTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjkvMTUuMi4zLjktMi1jLTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuZnJlZXplIC0gVGhlIFtbQ29uZmlndXJhYmxlXV0gYXR0cmlidXRlIG9mIGFsbCBvd24gZGF0YSBwcm9wZXJ0eSBvZiAnTycgaXMgc2V0IHRvIGZhbHNlIHdoaWxlIG90aGVyIGF0dHJpYnV0ZXMgYXJlIHVuY2hhbmdlZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgb2JqID0ge307DQogICAgICAgIHZhciByZXN1bHRTZXRGdW4gPSBmYWxzZTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZm9vMSIsIHsNCiAgICAgICAgICAgIHZhbHVlOiAxMCwNCiAgICAgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwNCiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgZnVuY3Rpb24gZ2V0X2Z1bmMoKSB7DQogICAgICAgICAgICByZXR1cm4gMTA7DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBzZXRfZnVuYygpIHsNCiAgICAgICAgICAgIHJlc3VsdFNldEZ1biA9IHRydWU7DQogICAgICAgIH0NCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZm9vMiIsIHsNCiAgICAgICAgICAgIGdldDogZ2V0X2Z1bmMsDQogICAgICAgICAgICBzZXQ6IHNldF9mdW5jLA0KICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZnJlZXplKG9iaik7DQoNCiAgICAgICAgdmFyIHJlczEgPSBvYmouaGFzT3duUHJvcGVydHkoImZvbzIiKTsNCiAgICAgICAgZGVsZXRlIG9iai5mb28yOw0KICAgICAgICB2YXIgcmVzMiA9IG9iai5oYXNPd25Qcm9wZXJ0eSgiZm9vMiIpOw0KICAgICAgICB2YXIgcmVzdWx0Q29uZmlndXJhYmxlID0gKHJlczEgJiYgcmVzMik7DQoNCiAgICAgICAgdmFyIHJlc3VsdEdldEZ1biA9IChvYmouZm9vMiA9PT0gMTApOw0KICAgICAgICBvYmouZm9vMiA9IDEyOw0KDQogICAgICAgIHZhciByZXN1bHRFbnVtZXJhYmxlID0gZmFsc2U7DQogICAgICAgIGZvciAodmFyIHByb3AgaW4gb2JqKSB7DQogICAgICAgICAgICBpZiAocHJvcCA9PT0gImZvbzIiKSB7DQogICAgICAgICAgICAgICAgcmVzdWx0RW51bWVyYWJsZSA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgZGVzYzEgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwgImZvbzEiKTsNCiAgICAgICAgdmFyIGRlc2MyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosICJmb28yIik7DQoNCiAgICAgICAgdmFyIHJlc3VsdCA9IHJlc3VsdENvbmZpZ3VyYWJsZSAmJiByZXN1bHRFbnVtZXJhYmxlICYmIHJlc3VsdEdldEZ1biAmJiByZXN1bHRTZXRGdW47DQoNCiAgICAgICAgcmV0dXJuIGRhdGFQcm9wZXJ0eUF0dHJpYnV0ZXNBcmVDb3JyZWN0KG9iaiwgImZvbzEiLCAxMCwgZmFsc2UsIHRydWUsIGZhbHNlKSAmJiByZXN1bHQgJiYNCiAgICAgICAgICAgIGRlc2MxLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UgJiYgZGVzYzEud3JpdGFibGUgPT09IGZhbHNlICYmIGRlc2MyLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2U7DQoNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QuZnJlZXplKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuRXhpc3RzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.9-2-c-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1jLTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjkvMTUuMi4zLjktMi1jLTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuZnJlZXplIC0gYWxsIG93biBwcm9wZXJ0aWVzIG9mICdPJyBhcmUgbm90IHdyaXRhYmxlIGFuZCBub3QgY29uZmlndXJhYmxlIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgb2JqID0ge307DQogICAgICAgIHZhciByZXN1bHRTZXRGdW4gPSBmYWxzZTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZm9vMSIsIHsNCiAgICAgICAgICAgIHZhbHVlOiAxMCwNCiAgICAgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwNCiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlDQogICAgICAgIH0pOw0KDQogICAgICAgIGZ1bmN0aW9uIGdldF9mdW5jKCkgew0KICAgICAgICAgICAgcmV0dXJuIDEwOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gc2V0X2Z1bmMoKSB7DQogICAgICAgICAgICByZXN1bHRTZXRGdW4gPSB0cnVlOw0KICAgICAgICB9DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImZvbzIiLCB7DQogICAgICAgICAgICBnZXQ6IGdldF9mdW5jLA0KICAgICAgICAgICAgc2V0OiBzZXRfZnVuYywNCiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmZyZWV6ZShvYmopOw0KDQogICAgICAgIHZhciByZXMxID0gb2JqLmhhc093blByb3BlcnR5KCJmb28yIik7DQogICAgICAgIGRlbGV0ZSBvYmouZm9vMjsNCiAgICAgICAgdmFyIHJlczIgPSBvYmouaGFzT3duUHJvcGVydHkoImZvbzIiKTsNCiAgICAgICAgdmFyIHJlc3VsdENvbmZpZ3VyYWJsZSA9IChyZXMxICYmIHJlczIpOw0KDQogICAgICAgIHZhciByZXN1bHRHZXRGdW4gPSAob2JqLmZvbzIgPT09IDEwKTsNCiAgICAgICAgb2JqLmZvbzIgPSAxMjsNCg0KICAgICAgICB2YXIgcmVzdWx0RW51bWVyYWJsZSA9IGZhbHNlOw0KICAgICAgICBmb3IgKHZhciBwcm9wIGluIG9iaikgew0KICAgICAgICAgICAgaWYgKHByb3AgPT09ICJmb28yIikgew0KICAgICAgICAgICAgICAgIHJlc3VsdEVudW1lcmFibGUgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGRlc2MxID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosICJmb28xIik7DQogICAgICAgIHZhciBkZXNjMiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCAiZm9vMiIpOw0KDQogICAgICAgIHZhciByZXN1bHQgPSByZXN1bHRDb25maWd1cmFibGUgJiYgcmVzdWx0RW51bWVyYWJsZSAmJiByZXN1bHRHZXRGdW4gJiYgcmVzdWx0U2V0RnVuOw0KDQogICAgICAgIHJldHVybiBkYXRhUHJvcGVydHlBdHRyaWJ1dGVzQXJlQ29ycmVjdChvYmosICJmb28xIiwgMTAsIGZhbHNlLCB0cnVlLCBmYWxzZSkgJiYNCiAgICAgICAgICAgIHJlc3VsdCAmJiBkZXNjMS5jb25maWd1cmFibGUgPT09IGZhbHNlICYmIGRlc2MxLndyaXRhYmxlID09PSBmYWxzZSAmJiBkZXNjMi5jb25maWd1cmFibGUgPT09IGZhbHNlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5mcmVlemUpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.9-2-d-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1kLTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjkvMTUuMi4zLjktMi1kLTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuZnJlZXplIC0gJ08nIGlzIGEgRnVuY3Rpb24gb2JqZWN0IiwNCiAgICANCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIGZ1bk9iaiA9IGZ1bmN0aW9uICgpIHsgfTsNCg0KICAgICAgICBPYmplY3QuZnJlZXplKGZ1bk9iaik7DQoNCiAgICAgICAgcmV0dXJuIE9iamVjdC5pc0Zyb3plbihmdW5PYmopOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5mcmVlemUpICYmIGZuRXhpc3RzKE9iamVjdC5pc0Zyb3plbik7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.9-2-d-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1kLTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjkvMTUuMi4zLjktMi1kLTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuZnJlZXplIC0gJ08nIGlzIGFuIEFycmF5IG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIGFyck9iaiA9IFswLCAxXTsNCg0KICAgICAgICBPYmplY3QuZnJlZXplKGFyck9iaik7DQoNCiAgICAgICAgcmV0dXJuIE9iamVjdC5pc0Zyb3plbihhcnJPYmopOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5mcmVlemUpICYmIGZuRXhpc3RzKE9iamVjdC5pc0Zyb3plbik7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.9-2-d-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1kLTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjkvMTUuMi4zLjktMi1kLTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuZnJlZXplIC0gJ08nIGlzIGEgU3RyaW5nIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIHN0ck9iaiA9IG5ldyBTdHJpbmcoImEiKTsNCg0KICAgICAgICBPYmplY3QuZnJlZXplKHN0ck9iaik7DQoNCiAgICAgICAgcmV0dXJuIE9iamVjdC5pc0Zyb3plbihzdHJPYmopOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5mcmVlemUpICYmIGZuRXhpc3RzKE9iamVjdC5pc0Zyb3plbik7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.9-2-d-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1kLTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjkvMTUuMi4zLjktMi1kLTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuZnJlZXplIC0gJ08nIGlzIGEgQm9vbGVhbiBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBib29sT2JqID0gbmV3IEJvb2xlYW4oZmFsc2UpOw0KDQogICAgICAgIE9iamVjdC5mcmVlemUoYm9vbE9iaik7DQoNCiAgICAgICAgcmV0dXJuIE9iamVjdC5pc0Zyb3plbihib29sT2JqKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QuZnJlZXplKSAmJiBmbkV4aXN0cyhPYmplY3QuaXNGcm96ZW4pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.9-2-d-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1kLTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjkvMTUuMi4zLjktMi1kLTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuZnJlZXplIC0gJ08nIGlzIGEgTnVtYmVyIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG51bU9iaiA9IG5ldyBOdW1iZXIoMyk7DQoNCiAgICAgICAgT2JqZWN0LmZyZWV6ZShudW1PYmopOw0KDQogICAgICAgIHJldHVybiBPYmplY3QuaXNGcm96ZW4obnVtT2JqKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhPYmplY3QuZnJlZXplKSAmJiBmbkV4aXN0cyhPYmplY3QuaXNGcm96ZW4pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.2.3.9-2-d-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1kLTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjkvMTUuMi4zLjktMi1kLTYuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuZnJlZXplIC0gJ08nIGlzIGEgRGF0ZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBkYXRlT2JqID0gbmV3IERhdGUoKTsNCg0KICAgICAgICBPYmplY3QuZnJlZXplKGRhdGVPYmopOw0KDQogICAgICAgIHJldHVybiBPYmplY3QuaXNGcm96ZW4oZGF0ZU9iaik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmZyZWV6ZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRnJvemVuKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.9-2-d-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1kLTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjkvMTUuMi4zLjktMi1kLTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuZnJlZXplIC0gJ08nIGlzIGEgUmVnRXhwIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIHJlZ09iaiA9IG5ldyBSZWdFeHAoKTsNCg0KICAgICAgICBPYmplY3QuZnJlZXplKHJlZ09iaik7DQoNCiAgICAgICAgcmV0dXJuIE9iamVjdC5pc0Zyb3plbihyZWdPYmopOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5mcmVlemUpICYmIGZuRXhpc3RzKE9iamVjdC5pc0Zyb3plbik7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.9-2-d-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1kLTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjkvMTUuMi4zLjktMi1kLTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuZnJlZXplIC0gJ08nIGlzIGFuIEVycm9yIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIGVyck9iaiA9IG5ldyBTeW50YXhFcnJvcigpOw0KDQogICAgICAgIE9iamVjdC5mcmVlemUoZXJyT2JqKTsNCg0KICAgICAgICByZXR1cm4gT2JqZWN0LmlzRnJvemVuKGVyck9iaik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmZyZWV6ZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRnJvemVuKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.2.3.9-2-d-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMi1kLTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuMi8xNS4yLjMvMTUuMi4zLjkvMTUuMi4zLjktMi1kLTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJPYmplY3QuZnJlZXplIC0gJ08nIGlzIHRoZSBBcmd1bWVudHMgb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgYXJnT2JqID0gKGZ1bmN0aW9uICgpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSAoKSk7DQoNCiAgICAgICAgT2JqZWN0LmZyZWV6ZShhcmdPYmopOw0KDQogICAgICAgIHJldHVybiBPYmplY3QuaXNGcm96ZW4oYXJnT2JqKTsNCg0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5mcmVlemUpICYmIGZuRXhpc3RzKE9iamVjdC5pc0Zyb3plbik7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.9-3-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktMy0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy45LzE1LjIuMy45LTMtMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5mcmVlemUgLSByZXR1cm5lZCBvYmplY3QgaXMgbm90IGV4dGVuc2libGUiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KICAgICAgICBPYmplY3QuZnJlZXplKG9iaik7DQogICAgICAgIHJldHVybiAhT2JqZWN0LmlzRXh0ZW5zaWJsZShvYmopOw0KDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmZyZWV6ZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmlzRXh0ZW5zaWJsZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.9-4-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktNC0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy45LzE1LjIuMy45LTQtMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5mcmVlemUgLSAnTycgaXMgc2VhbGVkIGFscmVhZHkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KDQogICAgICAgIG9iai5mb28gPSAxMDsgLy8gZGVmYXVsdCB2YWx1ZSBvZiBhdHRyaWJ1dGVzOiB3cml0YWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZQ0KDQogICAgICAgIE9iamVjdC5zZWFsKG9iaik7DQoNCiAgICAgICAgT2JqZWN0LmZyZWV6ZShvYmopOw0KICAgICAgICByZXR1cm4gT2JqZWN0LmlzRnJvemVuKG9iaik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmZyZWV6ZSkgJiYgZm5FeGlzdHMoT2JqZWN0LnNlYWwpICYmIGZuRXhpc3RzKE9iamVjdC5pc0Zyb3plbik7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.9-4-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktNC0yIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy45LzE1LjIuMy45LTQtMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5mcmVlemUgLSAnTycgaXMgZnJvemVuIGFscmVhZHkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KDQogICAgICAgIG9iai5mb28gPSAxMDsgLy8gZGVmYXVsdCB2YWx1ZSBvZiBhdHRyaWJ1dGVzOiB3cml0YWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZQ0KDQogICAgICAgIE9iamVjdC5mcmVlemUob2JqKTsNCg0KICAgICAgICBPYmplY3QuZnJlZXplKG9iaik7DQogICAgICAgIHJldHVybiBPYmplY3QuaXNGcm96ZW4ob2JqKTsNCg0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5mcmVlemUpICYmIGZuRXhpc3RzKE9iamVjdC5pc0Zyb3plbik7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.2.3.9-4-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuMi4zLjktNC0zIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy45LzE1LjIuMy45LTQtMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIk9iamVjdC5mcmVlemUgLSB0aGUgZXh0ZW5zaW9ucyBvZiAnTycgaXMgcHJldmVudGVkIGFscmVhZHkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KDQogICAgICAgIG9iai5mb28gPSAxMDsgLy8gZGVmYXVsdCB2YWx1ZSBvZiBhdHRyaWJ1dGVzOiB3cml0YWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZQ0KDQogICAgICAgIE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyhvYmopOw0KDQogICAgICAgIE9iamVjdC5mcmVlemUob2JqKTsNCiAgICAgICAgcmV0dXJuIE9iamVjdC5pc0Zyb3plbihvYmopOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5mcmVlemUpICYmIGZuRXhpc3RzKE9iamVjdC5pc0Zyb3plbikgJiYgZm5FeGlzdHMoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKTsNCiAgICB9DQp9KTsNCg==]]></test>
</section>
</testCollection>

View File

@ -2,7 +2,7 @@
<!-- adding section element if in the future we want to store information about the -->
<!-- spec structure in this file, for now the section structure is defined in the -->
<!-- sections.js file -->
<section name="Chapter - 15.4.3" numTests="7">
<section name="Chapter - 15.4.3" numTests="24">
<test id="15.4.3.2-0-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC4zLjItMC0xIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjMvMTUuNC4zLjIvMTUuNC4zLjItMC0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5pc0FycmF5IG11c3QgZXhpc3QgYXMgYSBmdW5jdGlvbiIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgZiA9IEFycmF5LmlzQXJyYXk7DQogIGlmICh0eXBlb2YoZikgPT09ICJmdW5jdGlvbiIpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0NCn0pOw0K]]></test>
<test id="15.4.3.2-0-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC4zLjItMC0yIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjMvMTUuNC4zLjIvMTUuNC4zLjItMC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5pc0FycmF5IG11c3QgZXhpc3QgYXMgYSBmdW5jdGlvbiB0YWtpbmcgMSBwYXJhbWV0ZXIiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgaWYgKEFycmF5LmlzQXJyYXkubGVuZ3RoID09PSAxKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LmlzQXJyYXkpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.3.2-0-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC4zLjItMC0zIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjMvMTUuNC4zLjIvMTUuNC4zLjItMC0zLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5pc0FycmF5IHJldHVybiB0cnVlIGlmIGl0cyBhcmd1bWVudCBpcyBhbiBBcnJheSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgYSA9IFtdOw0KICB2YXIgYiA9IEFycmF5LmlzQXJyYXkoYSk7DQogIGlmIChiID09PSB0cnVlKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LmlzQXJyYXkpOw0KIH0NCn0pOw0K]]></test>
@ -10,5 +10,22 @@
<test id="15.4.3.2-0-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC4zLjItMC01IiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjMvMTUuNC4zLjIvMTUuNC4zLjItMC01LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5pc0FycmF5IHJldHVybiB0cnVlIGlmIGl0cyBhcmd1bWVudCBpcyBhbiBBcnJheSAoQXJyYXkucHJvdG90eXBlKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgYiA9IEFycmF5LmlzQXJyYXkoQXJyYXkucHJvdG90eXBlKTsNCiAgaWYgKGIgPT09IHRydWUpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkuaXNBcnJheSk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.3.2-0-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC4zLjItMC02IiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjMvMTUuNC4zLjIvMTUuNC4zLjItMC02LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5pc0FycmF5IHJldHVybiB0cnVlIGlmIGl0cyBhcmd1bWVudCBpcyBhbiBBcnJheSAobmV3IEFycmF5KCkpIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBhID0gbmV3IEFycmF5KDEwKTsNCiAgdmFyIGIgPSBBcnJheS5pc0FycmF5KGEpOw0KICBpZiAoYiA9PT0gdHJ1ZSkgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5pc0FycmF5KTsNCiB9DQp9KTsNCg==]]></test>
<test id="15.4.3.2-0-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC4zLjItMC03IiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjMvMTUuNC4zLjIvMTUuNC4zLjItMC03LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5pc0FycmF5IHJldHVybnMgZmFsc2UgaWYgaXRzIGFyZ3VtZW50IGlzIG5vdCBhbiBBcnJheSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgbyA9IG5ldyBPYmplY3QoKTsNCiAgb1sxMl0gPSAxMzsNCiAgdmFyIGIgPSBBcnJheS5pc0FycmF5KG8pOw0KICBpZiAoYiA9PT0gZmFsc2UpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkuaXNBcnJheSk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.3.2-1-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNC4zLjItMS0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC4zLzE1LjQuMy4yLzE1LjQuMy4yLTEtMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LmlzQXJyYXkgYXBwbGllZCB0byBib29sZWFuIHByaW1pdGl2ZSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICByZXR1cm4gIUFycmF5LmlzQXJyYXkodHJ1ZSk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkuaXNBcnJheSk7DQogICAgfQ0KDQp9KTsNCg0K]]></test>
<test id="15.4.3.2-1-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjMuMi0xLTEwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC4zLzE1LjQuMy4yLzE1LjQuMy4yLTEtMTAuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5pc0FycmF5IGFwcGxpZWQgdG8gUmVnRXhwIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICByZXR1cm4gIUFycmF5LmlzQXJyYXkobmV3IFJlZ0V4cCgpKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5pc0FycmF5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.3.2-1-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjMuMi0xLTExIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC4zLzE1LjQuMy4yLzE1LjQuMy4yLTEtMTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5pc0FycmF5IGFwcGxpZWQgdG8gdGhlIEpTT04gb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHJldHVybiAhQXJyYXkuaXNBcnJheShKU09OKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5pc0FycmF5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.3.2-1-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC4zLjItMS0xMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuMy8xNS40LjMuMi8xNS40LjMuMi0xLTEyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkuaXNBcnJheSBhcHBsaWVkIHRvIEVycm9yIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICByZXR1cm4gIUFycmF5LmlzQXJyYXkobmV3IFN5bnRheEVycm9yKCkpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LmlzQXJyYXkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.3.2-1-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjMuMi0xLTEzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC4zLzE1LjQuMy4yLzE1LjQuMy4yLTEtMTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5pc0FycmF5IGFwcGxpZWQgdG8gQXJndW1lbnRzIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYXJnOw0KDQogICAgICAgIChmdW5jdGlvbiBmdW4oKSB7DQogICAgICAgICAgICBhcmcgPSBhcmd1bWVudHM7DQogICAgICAgIH0oMSwgMiwgMykpOw0KDQogICAgICAgIHJldHVybiAhQXJyYXkuaXNBcnJheShhcmcpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LmlzQXJyYXkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.3.2-1-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjMuMi0xLTE1IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC4zLzE1LjQuMy4yLzE1LjQuMy4yLTEtMTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5pc0FycmF5IGFwcGxpZWQgdG8gdGhlIGdsb2JhbCBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgcmV0dXJuICFBcnJheS5pc0FycmF5KGZuR2xvYmFsT2JqZWN0KCkpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LmlzQXJyYXkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.3.2-1-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNC4zLjItMS0yIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC4zLzE1LjQuMy4yLzE1LjQuMy4yLTEtMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LmlzQXJyYXkgYXBwbGllZCB0byBCb29sZWFuIE9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICByZXR1cm4gIUFycmF5LmlzQXJyYXkobmV3IEJvb2xlYW4oZmFsc2UpKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5pc0FycmF5KTsNCiAgICB9DQoNCn0pOw0KDQo=]]></test>
<test id="15.4.3.2-1-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNC4zLjItMS0zIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC4zLzE1LjQuMy4yLzE1LjQuMy4yLTEtMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LmlzQXJyYXkgYXBwbGllZCB0byBudW1iZXIgcHJpbWl0aXZlIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHJldHVybiAhQXJyYXkuaXNBcnJheSg1KTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5pc0FycmF5KTsNCiAgICB9DQoNCn0pOw0KDQo=]]></test>
<test id="15.4.3.2-1-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNC4zLjItMS00IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC4zLzE1LjQuMy4yLzE1LjQuMy4yLTEtNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LmlzQXJyYXkgYXBwbGllZCB0byBOdW1iZXIgb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHJldHVybiAhQXJyYXkuaXNBcnJheShuZXcgTnVtYmVyKC0zKSk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkuaXNBcnJheSk7DQogICAgfQ0KDQp9KTsNCg0K]]></test>
<test id="15.4.3.2-1-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNC4zLjItMS01IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC4zLzE1LjQuMy4yLzE1LjQuMy4yLTEtNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LmlzQXJyYXkgYXBwbGllZCB0byBzdHJpbmcgcHJpbWl0aXZlIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHJldHVybiAhQXJyYXkuaXNBcnJheSgiYWJjIik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkuaXNBcnJheSk7DQogICAgfQ0KDQp9KTsNCg0K]]></test>
<test id="15.4.3.2-1-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNC4zLjItMS02IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC4zLzE1LjQuMy4yLzE1LjQuMy4yLTEtNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LmlzQXJyYXkgYXBwbGllZCB0byBTdHJpbmcgb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHJldHVybiAhQXJyYXkuaXNBcnJheShuZXcgU3RyaW5nKCJoZWxsb1xud29ybGRcXCEiKSk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkuaXNBcnJheSk7DQogICAgfQ0KDQp9KTsNCg0K]]></test>
<test id="15.4.3.2-1-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjMuMi0xLTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjMvMTUuNC4zLjIvMTUuNC4zLjItMS03LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkuaXNBcnJheSBhcHBsaWVkIHRvIEZ1bmN0aW9uIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICByZXR1cm4gIUFycmF5LmlzQXJyYXkoZnVuY3Rpb24gKCkgeyB9KTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5pc0FycmF5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.3.2-1-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjMuMi0xLTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjMvMTUuNC4zLjIvMTUuNC4zLjItMS04LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkuaXNBcnJheSBhcHBsaWVkIHRvIHRoZSBNYXRoIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICByZXR1cm4gIUFycmF5LmlzQXJyYXkoTWF0aCk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkuaXNBcnJheSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.3.2-1-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjMuMi0xLTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjMvMTUuNC4zLjIvMTUuNC4zLjItMS05LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkuaXNBcnJheSBhcHBsaWVkIHRvIERhdGUgb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHJldHVybiAhQXJyYXkuaXNBcnJheShuZXcgRGF0ZSgpKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5pc0FycmF5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.3.2-2-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNC4zLjItMi0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC4zLzE1LjQuMy4yLzE1LjQuMy4yLTItMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LmlzQXJyYXkgYXBwbGllZCB0byBhbiBvYmplY3Qgd2l0aCBhbiBhcnJheSBhcyB0aGUgcHJvdG90eXBlIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBwcm90byA9IFtdOw0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICByZXR1cm4gIUFycmF5LmlzQXJyYXkoY2hpbGQpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LmlzQXJyYXkpOw0KICAgIH0NCg0KfSk7DQoNCg==]]></test>
<test id="15.4.3.2-2-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNC4zLjItMi0yIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC4zLzE1LjQuMy4yLzE1LjQuMy4yLTItMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LmlzQXJyYXkgYXBwbGllZCB0byBhbiBvYmplY3Qgd2l0aCBBcnJheS5wcm90b3R5cGUgYXMgdGhlIHByb3RvdHlwZSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgcHJvdG8gPSBBcnJheS5wcm90b3R5cGU7DQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQoNCiAgICAgICAgcmV0dXJuICFBcnJheS5pc0FycmF5KGNoaWxkKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5pc0FycmF5KTsNCiAgICB9DQoNCn0pOw0KDQo=]]></test>
<test id="15.4.3.2-2-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNC4zLjItMi0zIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC4zLzE1LjQuMy4yLzE1LjQuMy4yLTItMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LmlzQXJyYXkgYXBwbGllZCB0byBhbiBBcnJheS1saWtlIG9iamVjdCB3aXRoIGxlbmd0aCBhbmQgc29tZSBpbmRleGVkIHByb3BlcnRpZXMiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgcmV0dXJuICFBcnJheS5pc0FycmF5KHsgMDogMTIsIDE6IDksIGxlbmd0aDogMiB9KTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5pc0FycmF5KTsNCiAgICB9DQoNCn0pOw0KDQo=]]></test>
</section>
</testCollection>

View File

@ -2,7 +2,7 @@
<!-- adding section element if in the future we want to store information about the -->
<!-- spec structure in this file, for now the section structure is defined in the -->
<!-- sections.js file -->
<section name="Chapter - 15.4.4.14" numTests="154">
<section name="Chapter - 15.4.4.14" numTests="193">
<test id="15.4.4.14-0-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE0LTAtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtMC0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiBtdXN0IGV4aXN0IGFzIGEgZnVuY3Rpb24iLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGYgPSBBcnJheS5wcm90b3R5cGUuaW5kZXhPZjsNCiAgaWYgKHR5cGVvZihmKSA9PT0gImZ1bmN0aW9uIikgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.14-0-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE0LTAtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtMC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiBoYXMgYSBsZW5ndGggcHJvcGVydHkgd2hvc2UgdmFsdWUgaXMgMS4iLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgaWYgKEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmxlbmd0aCA9PT0gMSkgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZik7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.14-1-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE0LTEtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtMS0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiBhcHBsaWVkIHRvIHVuZGVmaW5lZCB0aHJvd3MgYSBUeXBlRXJyb3IiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdHJ5IHsNCiAgICAgQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbCh1bmRlZmluZWQpOw0KICAgICByZXR1cm4gZmFsc2U7DQogIH0NCiAgY2F0Y2ggKGUpIHsNCiAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBUeXBlRXJyb3I7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKTsNCn0NCn0pOw0K]]></test>
@ -12,6 +12,7 @@
<test id="15.4.4.14-1-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtMS0xMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTEtMTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiBhcHBsaWVkIHRvIHRoZSBKU09OIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIHRhcmdldE9iaiA9IHt9Ow0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgSlNPTlszXSA9IHRhcmdldE9iajsNCiAgICAgICAgICAgIEpTT04ubGVuZ3RoID0gNTsNCiAgICAgICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKEpTT04sIHRhcmdldE9iaikgPT09IDM7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgSlNPTlszXTsNCiAgICAgICAgICAgIGRlbGV0ZSBKU09OLmxlbmd0aDsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.14-1-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE0LTEtMTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC0xLTE0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmluZGV4T2YgYXBwbGllZCB0byBFcnJvciBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iaiA9IG5ldyBTeW50YXhFcnJvcigpOw0KICAgICAgICBvYmpbMV0gPSB0cnVlOw0KICAgICAgICBvYmoubGVuZ3RoID0gMjsNCg0KICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChvYmosIHRydWUpID09PSAxOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.14-1-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtMS0xNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTEtMTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiBhcHBsaWVkIHRvIEFyZ3VtZW50cyBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gZnVuKCkgew0KICAgICAgICAgICAgcmV0dXJuIGFyZ3VtZW50czsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgb2JqID0gZnVuKDEsIHRydWUsIDMpOw0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKG9iaiwgdHJ1ZSkgPT09IDE7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.14-1-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtMS0xNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTEtMTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiBhcHBsaWVkIHRvIHRoZSBnbG9iYWwgb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgdmFyIG9sZExlbiA9IGZuR2xvYmFsT2JqZWN0KCkubGVuZ3RoOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKVsxXSA9IHRydWU7DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aCA9IDI7DQogICAgICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChmbkdsb2JhbE9iamVjdCgpLCB0cnVlKSA9PT0gMTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBmbkdsb2JhbE9iamVjdCgpWzFdOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKS5sZW5ndGggPSBvbGRMZW47DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-1-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE0LTEtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtMS0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiBhcHBsaWVkIHRvIG51bGwgdGhyb3dzIGEgVHlwZUVycm9yIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHRyeSB7DQogICAgIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwobnVsbCk7DQogICAgIHJldHVybiBmYWxzZTsNCiAgfQ0KICBjYXRjaCAoZSkgew0KICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFR5cGVFcnJvcjsNCiAgICAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.14-1-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtMS0zIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtMS0zLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmluZGV4T2YgYXBwbGllZCB0byBib29sZWFuIHByaW1pdGl2ZSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIHRhcmdldE9iaiA9IHt9Ow0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQm9vbGVhbi5wcm90b3R5cGVbMV0gPSB0YXJnZXRPYmo7DQogICAgICAgICAgICBCb29sZWFuLnByb3RvdHlwZS5sZW5ndGggPSAyOw0KDQogICAgICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbCh0cnVlLCB0YXJnZXRPYmopID09PSAxOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEJvb2xlYW4ucHJvdG90eXBlWzFdOw0KICAgICAgICAgICAgZGVsZXRlIEJvb2xlYW4ucHJvdG90eXBlLmxlbmd0aDsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.14-1-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE0LTEtNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTEtNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIGFwcGxpZWQgdG8gQm9vbGVhbiBPYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iaiA9IG5ldyBCb29sZWFuKGZhbHNlKTsNCiAgICAgICAgb2JqLmxlbmd0aCA9IDI7DQogICAgICAgIG9ialsxXSA9IHRydWU7DQoNCiAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwob2JqLCB0cnVlKSA9PT0gMTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
@ -21,12 +22,14 @@
<test id="15.4.4.14-1-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE0LTEtOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTEtOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIGFwcGxpZWQgdG8gU3RyaW5nIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgb2JqID0gbmV3IFN0cmluZygibnVsbCIpOw0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKG9iaiwgJ2wnKSA9PT0gMjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-1-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE0LTEtOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTEtOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIGFwcGxpZWQgdG8gRnVuY3Rpb24gb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBvYmogPSBmdW5jdGlvbiAoYSwgYikgew0KICAgICAgICAgICAgcmV0dXJuIGEgKyBiOw0KICAgICAgICB9Ow0KICAgICAgICBvYmpbMV0gPSB0cnVlOw0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKG9iaiwgdHJ1ZSkgPT09IDE7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.14-10-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE0LTEwLTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTEwLTEuanMiLA0KDQpkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIHJldHVybnMgLTEgZm9yIGVsZW1lbnRzIG5vdCBwcmVzZW50IGluIGFycmF5IiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBhID0gbmV3IEFycmF5KCk7DQogIGFbMTAwXSA9IDE7DQogIGFbOTk5OTldID0gIiI7ICANCiAgYVsxMF0gPSBuZXcgT2JqZWN0KCk7DQogIGFbNTU1NV0gPSA1LjU7DQogIGFbMTIzNDU2XSA9ICJzdHIiOw0KICBhWzVdID0gMUUrMzA5Ow0KICBpZiAoYS5pbmRleE9mKDEpICE9PSAxMDAgfHwgDQogICAgICBhLmluZGV4T2YoIiIpICE9PSA5OTk5OSB8fA0KICAgICAgYS5pbmRleE9mKCJzdHIiKSAhPT0gMTIzNDU2IHx8DQogICAgICBhLmluZGV4T2YoMUUrMzA5KSAhPT0gNSB8fCAgIC8vSW5maW5pdHkNCiAgICAgIGEuaW5kZXhPZig1LjUpICE9PSA1NTU1ICkNCiAgew0KICAgIHJldHVybiBmYWxzZTsNCiAgfQ0KICBpZiAoYS5pbmRleE9mKHRydWUpID09PSAtMSAmJiANCiAgICAgIGEuaW5kZXhPZig1KSA9PT0gLTEgJiYNCiAgICAgIGEuaW5kZXhPZigic3RyMSIpID09PSAtMSAmJg0KICAgICAgYS5pbmRleE9mKG51bGwpID09PSAtMSAmJg0KICAgICAgYS5pbmRleE9mKG5ldyBPYmplY3QoKSkgPT09IC0xKSANCiAgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZik7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.14-10-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE0LTEwLTIiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTEwLTIuanMiLA0KDQpkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIHJldHVybnMgLTEgaWYgJ2xlbmd0aCcgaXMgMCBhbmQgZG9lcyBub3QgYWNjZXNzIGFueSBvdGhlciBwcm9wZXJ0aWVzIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICB2YXIgZiA9IHtsZW5ndGg6IDB9Ow0KICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZiwiMCIse2dldDogZnVuY3Rpb24gKCkge2FjY2Vzc2VkID0gdHJ1ZTsgcmV0dXJuIDE7fX0pOw0KDQogIA0KICB2YXIgaSA9IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoZiwxKTsNCiAgDQogIGlmIChpID09PSAtMSAmJiBhY2Nlc3NlZD09ZmFsc2UpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiB9DQp9KTsNCg==]]></test>
<test id="15.4.4.14-2-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtMi0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtMi0xLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmluZGV4T2YgLSAnbGVuZ3RoJyBpcyBvd24gZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iak9uZSA9IHsgMTogdHJ1ZSwgbGVuZ3RoOiAyIH07DQogICAgICAgIHZhciBvYmpUd28gPSB7IDI6IHRydWUsIGxlbmd0aDogMiB9Ow0KICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChvYmpPbmUsIHRydWUpID09PSAxICYmDQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKG9ialR3bywgdHJ1ZSkgPT09IC0xOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.14-2-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtMi0xMCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTItMTAuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiAtICdsZW5ndGgnIGlzIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgcHJvdG8gPSB7fTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAibGVuZ3RoIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDI7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7fTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZE9uZSA9IG5ldyBDb24oKTsNCiAgICAgICAgY2hpbGRPbmVbMV0gPSB0cnVlOw0KICAgICAgICB2YXIgY2hpbGRUd28gPSBuZXcgQ29uKCk7DQogICAgICAgIGNoaWxkVHdvWzJdID0gdHJ1ZTsNCg0KICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChjaGlsZE9uZSwgdHJ1ZSkgPT09IDEgJiYNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoY2hpbGRUd28sIHRydWUpID09PSAtMTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.14-2-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtMi0xMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTItMTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiAtICdsZW5ndGgnIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBvYmogPSB7IDE6IHRydWUgfTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImxlbmd0aCIsIHsNCiAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKG9iaiwgdHJ1ZSkgPT09IC0xOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.14-2-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtMi0xMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTItMTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiAtICdsZW5ndGgnIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QucHJvdG90eXBlLCAibGVuZ3RoIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjA7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICB2YXIgb2JqID0geyAxOiAxIH07DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAibGVuZ3RoIiwgew0KICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKG9iaiwgMSkgPT09IC0xOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGUubGVuZ3RoOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-2-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtMi0xMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTItMTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiAtICdsZW5ndGgnIGlzIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBwcm90byA9IHt9Ow0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICJsZW5ndGgiLCB7DQogICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkge307DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQogICAgICAgIGNoaWxkWzFdID0gdHJ1ZTsNCg0KICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChjaGlsZCwgdHJ1ZSkgPT09IC0xOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.14-2-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtMi0xNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTItMTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiAtICdsZW5ndGgnIGlzIHVuZGVmaW5lZCBwcm9wZXJ0eSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgb2JqID0geyAwOiB0cnVlLCAxOiB0cnVlIH07DQoNCiAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwob2JqLCB0cnVlKSA9PT0gLTE7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.14-2-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtMi0xNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTItMTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiAtICdsZW5ndGgnIGlzIHByb3BlcnR5IG9mIHRoZSBnbG9iYWwgb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgdGFyZ2V0T2JqID0ge307DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICB2YXIgb2xkTGVuID0gZm5HbG9iYWxPYmplY3QoKS5sZW5ndGg7DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aCA9IDI7DQoNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KClbMV0gPSB0YXJnZXRPYmo7DQogICAgICAgICAgICBpZiAoQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChmbkdsb2JhbE9iamVjdCgpLCB0YXJnZXRPYmopICE9PSAxKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpWzFdID0ge307DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpWzJdID0gdGFyZ2V0T2JqOw0KDQogICAgICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChmbkdsb2JhbE9iamVjdCgpLCB0YXJnZXRPYmopID09PSAtMTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBmbkdsb2JhbE9iamVjdCgpWzFdOw0KICAgICAgICAgICAgZGVsZXRlIGZuR2xvYmFsT2JqZWN0KClbMl07DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aCA9IG9sZExlbjsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.14-2-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtMi0xNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTItMTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiBhcHBsaWVkIHRvIEFyZ3VtZW50cyBvYmplY3Qgd2hpY2ggaW1wbGVtZW50cyBpdHMgb3duIHByb3BlcnR5IGdldCBtZXRob2QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGZ1bmMgPSBmdW5jdGlvbiAoYSwgYikgew0KICAgICAgICAgICAgYXJndW1lbnRzWzJdID0gZmFsc2U7DQogICAgICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChhcmd1bWVudHMsIHRydWUpID09PSAxICYmDQogICAgICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChhcmd1bWVudHMsIGZhbHNlKSA9PT0gLTE7DQogICAgICAgIH07DQoNCiAgICAgICAgcmV0dXJuIGZ1bmMoMCwgdHJ1ZSk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.14-2-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtMi0xOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTItMTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiBhcHBsaWVkIHRvIFN0cmluZyBvYmplY3QsIHdoaWNoIGltcGxlbWVudHMgaXRzIG93biBwcm9wZXJ0eSBnZXQgbWV0aG9kIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgc3RyID0gbmV3IFN0cmluZygiMDEyIik7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBTdHJpbmcucHJvdG90eXBlWzNdID0gIjMiOw0KICAgICAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoc3RyLCAiMiIpID09PSAyICYmDQogICAgICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChzdHIsICIzIikgPT09IC0xOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIFN0cmluZy5wcm90b3R5cGVbM107DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-2-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtMi0xOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTItMTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiBhcHBsaWVkIHRvIEZ1bmN0aW9uIG9iamVjdCB3aGljaCBpbXBsZW1lbnRzIGl0cyBvd24gcHJvcGVydHkgZ2V0IG1ldGhvZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgb2JqID0gZnVuY3Rpb24gKGEsIGIpIHsNCiAgICAgICAgICAgIHJldHVybiBhICsgYjsNCiAgICAgICAgfTsNCiAgICAgICAgb2JqWzFdID0gImIiOw0KICAgICAgICBvYmpbMl0gPSAiYyI7DQoNCiAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwob2JqLCBvYmpbMV0pID09PSAxICYmDQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKG9iaiwgb2JqWzJdKSA9PT0gLTE7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
@ -121,6 +124,7 @@
<test id="15.4.4.14-8-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOC00IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtOC00LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmluZGV4T2YgcmV0dXJucyAtMSB3aGVuIGFicygnZnJvbUluZGV4JykgaXMgbGVuZ3RoIG9mIGFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHJldHVybiBbMSwgMiwgMywgNF0uaW5kZXhPZigwLCAtNCkgPT09IC0xOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKTsNCiAgICB9DQoNCn0pDQoNCg==]]></test>
<test id="15.4.4.14-9-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE0LTktMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtOS0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiBtdXN0IHJldHVybiBjb3JyZWN0IGluZGV4IChib29sZWFuKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgb2JqID0ge3RvU3RyaW5nOmZ1bmN0aW9uICgpe3JldHVybiB0cnVlfX07DQogIHZhciBfZmFsc2UgPSBmYWxzZTsNCiAgdmFyIGEgPSBbb2JqLCJ0cnVlIiwgdW5kZWZpbmVkLDAsX2ZhbHNlLG51bGwsMSwic3RyIiwwLDEsdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlXTsNCiAgaWYgKGEuaW5kZXhPZih0cnVlKSA9PT0gMTAgJiYgIC8vYVsxMF09dHJ1ZQ0KICAgICAgYS5pbmRleE9mKGZhbHNlKSA9PT0gNCkgICAgLy9hWzRdID1fZmFsc2UNCiAgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZik7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.14-9-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE0LTktMTAiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTktMTAuanMiLA0KDQpkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIG11c3QgcmV0dXJuIGNvcnJlY3QgaW5kZXggKE5hTikiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIF9OYU4gPSBOYU47DQogIHZhciBhID0gbmV3IEFycmF5KCJOYU4iLHVuZGVmaW5lZCwwLGZhbHNlLG51bGwse3RvU3RyaW5nOmZ1bmN0aW9uICgpe3JldHVybiBOYU59fSwiZmFsc2UiLF9OYU4sTmFOKTsNCiAgaWYgKGEuaW5kZXhPZihOYU4pID09PSAtMSkgIC8vIE5hTiBpcyBlcXVhbCB0byBub3RoaW5nLCBpbmNsdWRpbmcgaXRzZWxmLg0KICB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKTsNCiB9DQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS0xMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTktMTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiAtIHRoZSBsZW5ndGggb2YgaXRlcmF0aW9uIGlzbid0IGNoYW5nZWQgYnkgYWRkaW5nIGVsZW1lbnRzIHRvIHRoZSBhcnJheSBkdXJpbmcgaXRlcmF0aW9uIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhcnIgPSBbMjBdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgYXJyWzFdID0gMTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgcmV0dXJuIGFyci5pbmRleE9mKDEpID09PSAtMTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.14-9-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE0LTktMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtOS0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiBtdXN0IHJldHVybiBjb3JyZWN0IGluZGV4IChOdW1iZXIpIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBvYmogPSB7dG9TdHJpbmc6ZnVuY3Rpb24gKCl7cmV0dXJuIDB9fTsNCiAgdmFyIG9uZSA9IDE7DQogIHZhciBfZmxvYXQgPSAtKDQvMyk7DQogIHZhciBhID0gbmV3IEFycmF5KGZhbHNlLHVuZGVmaW5lZCxudWxsLCIwIixvYmosLTEuMzMzMzMzMzMzMzMzMywgInN0ciIsLTAsdHJ1ZSwrMCwgb25lLCAxLDAsIGZhbHNlLCBfZmxvYXQsIC0oNC8zKSk7DQogIGlmIChhLmluZGV4T2YoLSg0LzMpKSA9PT0gMTQgJiYgICAgICAvLyBhWzE0XT1fZmxvYXQ9PT0tKDQvMykNCiAgICAgIGEuaW5kZXhPZigwKSA9PT0gNyAgICAgICYmICAgICAgIC8vIGFbN10gPSArMCwgMD09PSswDQogICAgICBhLmluZGV4T2YoLTApID09PSA3ICAgICAgJiYgICAgIC8vIGFbN10gPSArMCwgLTA9PT0rMA0KICAgICAgYS5pbmRleE9mKDEpID09PSAxMCApICAgICAgICAgICAgLy8gYVsxMF0gPW9uZT09PSAxDQogIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.14-9-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE0LTktMyIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtOS0zLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiBtdXN0IHJldHVybiBjb3JyZWN0IGluZGV4KHN0cmluZykiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIG9iaiA9IHt0b1N0cmluZzpmdW5jdGlvbiAoKXtyZXR1cm4gImZhbHNlIn19Ow0KICB2YXIgc3pGYWxzZSA9ICJmYWxzZSI7DQogIHZhciBhID0gbmV3IEFycmF5KCJmYWxzZTEiLHVuZGVmaW5lZCwwLGZhbHNlLG51bGwsMSxvYmosMCxzekZhbHNlLCAiZmFsc2UiKTsNCiAgaWYgKGEuaW5kZXhPZigiZmFsc2UiKSA9PT0gOCkgIC8vYVs4XT1zekZhbHNlDQogIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.14-9-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE0LTktNCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtOS00LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiBtdXN0IHJldHVybiBjb3JyZWN0IGluZGV4KHVuZGVmaW5lZCkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIG9iaiA9IHt0b1N0cmluZzpmdW5jdGlvbiAoKXtyZXR1cm4gdW5kZWZpbmVkO319Ow0KICB2YXIgX3VuZGVmaW5lZDEgPSB1bmRlZmluZWQ7DQogIHZhciBfdW5kZWZpbmVkMjsNCiAgdmFyIGEgPSBuZXcgQXJyYXkodHJ1ZSwwLGZhbHNlLG51bGwsMSwidW5kZWZpbmVkIixvYmosMSxfdW5kZWZpbmVkMixfdW5kZWZpbmVkMSx1bmRlZmluZWQpOw0KICBpZiAoYS5pbmRleE9mKHVuZGVmaW5lZCkgPT09IDgpIC8vYVs4XT1fdW5kZWZpbmVkMg0KICB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKTsNCiB9DQp9KTsNCg==]]></test>
@ -130,21 +134,55 @@
<test id="15.4.4.14-9-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE0LTktOCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtOS04LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiBtdXN0IHJldHVybiBjb3JyZWN0IGluZGV4IChBcnJheSkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGIgPSBuZXcgQXJyYXkoIjAsMSIpOyAgDQogIHZhciBhID0gbmV3IEFycmF5KDAsYiwiMCwxIiwzKTsgIA0KICBpZiAoYS5pbmRleE9mKGIudG9TdHJpbmcoKSkgPT09IDIgJiYgIA0KICAgICAgYS5pbmRleE9mKCIwLDEiKSA9PT0gMiApIA0KICB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKTsNCiB9DQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE0LTktOSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtOS05LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiBtdXN0IHJldHVybiBjb3JyZWN0IGluZGV4IChTcGFyc2UgQXJyYXkpIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBhID0gbmV3IEFycmF5KDAsMSk7ICANCiAgYVs0Mjk0OTY3Mjk0XSA9IDI7ICAgICAgICAgIC8vIDJeMzItMiAtIGlzIG1heCBhcnJheSBlbGVtZW50DQogIGFbNDI5NDk2NzI5NV0gPSAzOyAgICAgICAgICAvLyAyXjMyLTEgYWRkZWQgYXMgbm9uLWFycmF5IGVsZW1lbnQgcHJvcGVydHkNCiAgYVs0Mjk0OTY3Mjk2XSA9IDQ7ICAgICAgICAgIC8vIDJeMzIgICBhZGRlZCBhcyBub24tYXJyYXkgZWxlbWVudCBwcm9wZXJ0eQ0KICBhWzQyOTQ5NjcyOTddID0gNTsgICAgICAgICAgLy8gMl4zMisxIGFkZGVkIGFzIG5vbi1hcnJheSBlbGVtZW50IHByb3BlcnR5DQoNCiAgLy8gc3RhcnQgc2VhcmNoaW5nIG5lYXIgdGhlIGVuZCBzbyBpbiBjYXNlIGltcGxlbWVudGF0aW9uIGFjdHVhbGx5IHRyaWVzIHRvIHRlc3QgYWxsIG1pc3NpbmcgZWxlbWVudHMhIQ0KICByZXR1cm4gKGEuaW5kZXhPZigyLDQyOTQ5NjcyOTAgKSA9PT0gNDI5NDk2NzI5NCAmJiAgICANCiAgICAgIGEuaW5kZXhPZigzLDQyOTQ5NjcyOTApID09PSAtMSAmJiAgIA0KICAgICAgYS5pbmRleE9mKDQsNDI5NDk2NzI5MCkgPT09IC0xICYmICANCiAgICAgIGEuaW5kZXhPZig1LDQyOTQ5NjcyOTApID09PSAtMSAgICkgOw0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.14-9-a-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1hLTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWEtMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gYWRkZWQgcHJvcGVydGllcyBpbiBzdGVwIDIgYXJlIHZpc2libGUgaGVyZSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYXJyID0geyB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICJsZW5ndGgiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBhcnJbMl0gPSAibGVuZ3RoIjsNCiAgICAgICAgICAgICAgICByZXR1cm4gMzsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgcmV0dXJuIDIgPT09IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoYXJyLCAibGVuZ3RoIik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-a-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1hLTEwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtOS1hLTEwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmluZGV4T2YgLSBwcm9wZXJ0aWVzIGNhbiBiZSBhZGRlZCB0byBwcm90b3R5cGUgYWZ0ZXIgY3VycmVudCBwb3NpdGlvbiBhcmUgdmlzaXRlZCBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYXJyID0gWzAsICwgMl07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMSIsIHsNCiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gNi45OTsNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICByZXR1cm4gYXJyLmluZGV4T2YoNi45OSkgPT09IDE7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzFdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgIVssIDFdLmhhc093blByb3BlcnR5KDApICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-a-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1hLTExIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtOS1hLTExLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmluZGV4T2YgLSBkZWxldGluZyBvd24gcHJvcGVydHkgY2F1c2VzIGluZGV4IHByb3BlcnR5IG5vdCB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhcnIgPSB7IGxlbmd0aDogMiB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDYuOTk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIGFyclsxXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgcmV0dXJuIC0xID09PSBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGFyciwgNi45OSk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-a-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1hLTEyIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtOS1hLTEyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmluZGV4T2YgLSBkZWxldGluZyBvd24gcHJvcGVydHkgY2F1c2VzIGluZGV4IHByb3BlcnR5IG5vdCB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhcnIgPSBbMSwgMl07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gIjYuOTkiOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGRlbGV0ZSBhcnJbMV07DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiAtMSA9PT0gYXJyLmluZGV4T2YoIjYuOTkiKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.14-9-a-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1hLTEzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtOS1hLTEzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmluZGV4T2YgLSBkZWxldGluZyBwcm9wZXJ0eSBvZiBwcm90b3R5cGUgY2F1c2VzIHByb3RvdHlwZSBpbmRleCBwcm9wZXJ0eSBub3QgdG8gYmUgdmlzaXRlZCBvbiBhbiBBcnJheS1saWtlIE9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYXJyID0geyAyOiAyLCBsZW5ndGg6IDIwIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZVsxXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGVbMV0gPSAxOw0KICAgICAgICAgICAgcmV0dXJuIC0xID09PSBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGFyciwgMSk7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.14-9-a-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1hLTE0IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtOS1hLTE0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmluZGV4T2YgLSBkZWxldGluZyBwcm9wZXJ0eSBvZiBwcm90b3R5cGUgY2F1c2VzIHByb3RvdHlwZSBpbmRleCBwcm9wZXJ0eSBub3QgdG8gYmUgdmlzaXRlZCBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYXJyID0gWzAsICwgMl07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzFdOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzFdID0gMTsNCiAgICAgICAgICAgIHJldHVybiAtMSA9PT0gYXJyLmluZGV4T2YoMSk7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzFdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgIVssIDFdLmhhc093blByb3BlcnR5KDApICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-a-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1hLTE1IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtOS1hLTE1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmluZGV4T2YgLSBkZWxldGluZyBvd24gcHJvcGVydHkgd2l0aCBwcm90b3R5cGUgcHJvcGVydHkgY2F1c2VzIHByb3RvdHlwZSBpbmRleCBwcm9wZXJ0eSB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhcnIgPSB7IDA6IDAsIDE6IDExMSwgMjogMiwgbGVuZ3RoOiAxMCB9Ow0KICAgICAgICANCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgYXJyWzFdOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZVsxXSA9IDE7DQogICAgICAgICAgICByZXR1cm4gMSA9PT0gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChhcnIsIDEpOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.14-9-a-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1hLTE2IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtOS1hLTE2LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmluZGV4T2YgLSBkZWxldGluZyBvd24gcHJvcGVydHkgd2l0aCBwcm90b3R5cGUgcHJvcGVydHkgY2F1c2VzIHByb3RvdHlwZSBpbmRleCBwcm9wZXJ0eSB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhcnIgPSBbMCwgMTExLCAyXTsgDQogICAgICAgIA0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGRlbGV0ZSBhcnJbMV07DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGVbMV0gPSAxOw0KICAgICAgICAgICAgcmV0dXJuIDEgPT09IGFyci5pbmRleE9mKDEpOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-a-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1hLTE3IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtOS1hLTE3LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmluZGV4T2YgLSBkZWNyZWFzaW5nIGxlbmd0aCBvZiBhcnJheSBjYXVzZXMgaW5kZXggcHJvcGVydHkgbm90IHRvIGJlIHZpc2l0ZWQiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFyciA9IFswLCAxLCAyLCAibGFzdCJdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgYXJyLmxlbmd0aCA9IDM7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiAtMSA9PT0gYXJyLmluZGV4T2YoImxhc3QiKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.14-9-a-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1hLTE4IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtOS1hLTE4LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmluZGV4T2YgLSBkZWNyZWFzaW5nIGxlbmd0aCBvZiBhcnJheSB3aXRoIHByb3RvdHlwZSBwcm9wZXJ0eSBjYXVzZXMgcHJvdG90eXBlIGluZGV4IHByb3BlcnR5IHRvIGJlIHZpc2l0ZWQiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFyciA9IFswLCAxLCAyXTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjIiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAicHJvdG90eXBlIjsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICBhcnIubGVuZ3RoID0gMjsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICByZXR1cm4gMiA9PT0gYXJyLmluZGV4T2YoInByb3RvdHlwZSIpOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsyXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-a-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1hLTE5IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtOS1hLTE5LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmluZGV4T2YgLSBkZWNyZWFzaW5nIGxlbmd0aCBvZiBhcnJheSBkb2VzIG5vdCBkZWxldGUgbm9uLWNvbmZpZ3VyYWJsZSBwcm9wZXJ0aWVzIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhcnIgPSBbMCwgMSwgMl07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjIiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gInVuY29uZmlndXJhYmxlIjsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgYXJyLmxlbmd0aCA9IDI7DQogICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KICAgICAgICANCiAgICAgICAgcmV0dXJuIDIgPT09IGFyci5pbmRleE9mKCJ1bmNvbmZpZ3VyYWJsZSIpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-a-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1hLTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWEtMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gYWRkZWQgcHJvcGVydGllcyBpbiBzdGVwIDUgYXJlIHZpc2libGUgaGVyZSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYXJyID0geyBsZW5ndGg6IDMwIH07DQogICAgICAgIHZhciB0YXJnZXRPYmogPSBmdW5jdGlvbiAoKSB7IH07DQoNCiAgICAgICAgdmFyIGZyb21JbmRleCA9IHsNCiAgICAgICAgICAgIHZhbHVlT2Y6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBhcnJbNF0gPSB0YXJnZXRPYmo7DQogICAgICAgICAgICAgICAgcmV0dXJuIDM7DQogICAgICAgICAgICB9DQogICAgICAgIH07DQogICAgICAgIA0KICAgICAgICByZXR1cm4gNCA9PT0gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChhcnIsIHRhcmdldE9iaiwgZnJvbUluZGV4KTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-a-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1hLTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWEtMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gYWRkZWQgcHJvcGVydGllcyBpbiBzdGVwIDUgYXJlIHZpc2libGUgaGVyZSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYXJyID0gW107DQogICAgICAgIGFyci5sZW5ndGggPSAzMDsNCiAgICAgICAgdmFyIHRhcmdldE9iaiA9IGZ1bmN0aW9uICgpIHsgfTsNCg0KICAgICAgICB2YXIgZnJvbUluZGV4ID0gew0KICAgICAgICAgICAgdmFsdWVPZjogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGFycls0XSA9IHRhcmdldE9iajsNCiAgICAgICAgICAgICAgICByZXR1cm4gMzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfTsNCg0KICAgICAgICByZXR1cm4gNCA9PT0gYXJyLmluZGV4T2YodGFyZ2V0T2JqLCBmcm9tSW5kZXgpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.14-9-a-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1hLTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWEtNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gZGVsZXRlZCBwcm9wZXJ0aWVzIGluIHN0ZXAgMiBhcmUgdmlzaWJsZSBoZXJlIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhcnIgPSB7IDI6IDYuOTkgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAibGVuZ3RoIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIGFyclsyXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMzsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgcmV0dXJuIC0xID09PSBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGFyciwgNi45OSk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-a-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1hLTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWEtNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gZGVsZXRlZCBwcm9wZXJ0aWVzIGluIHN0ZXAgNSBhcmUgdmlzaWJsZSBoZXJlIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhcnIgPSB7IDEwOiBmYWxzZSwgbGVuZ3RoOiAzMCB9Ow0KDQogICAgICAgIHZhciBmcm9tSW5kZXggPSB7DQogICAgICAgICAgICB2YWx1ZU9mOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIGFyclsxMF07DQogICAgICAgICAgICAgICAgcmV0dXJuIDM7DQogICAgICAgICAgICB9DQogICAgICAgIH07DQoNCiAgICAgICAgcmV0dXJuIC0xID09PSBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGFyciwgZmFsc2UsIGZyb21JbmRleCk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.14-9-a-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1hLTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWEtNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gZGVsZXRlZCBwcm9wZXJ0aWVzIGluIHN0ZXAgNSBhcmUgdmlzaWJsZSBoZXJlIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhcnIgPSBbXTsNCiAgICAgICAgYXJyWzEwXSA9ICIxMCI7DQogICAgICAgIGFyci5sZW5ndGggPSAyMDsNCg0KICAgICAgICB2YXIgZnJvbUluZGV4ID0gew0KICAgICAgICAgICAgdmFsdWVPZjogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGRlbGV0ZSBhcnJbMTBdOw0KICAgICAgICAgICAgICAgIHJldHVybiAzOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KDQogICAgICAgIHJldHVybiAtMSA9PT0gYXJyLmluZGV4T2YoIjEwIiwgZnJvbUluZGV4KTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-a-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1hLTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWEtNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gcHJvcGVydGllcyBhZGRlZCBpbnRvIG93biBvYmplY3QgYWZ0ZXIgY3VycmVudCBwb3NpdGlvbiBhcmUgdmlzaXRlZCBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICANCiAgICAgICAgdmFyIGFyciA9IHsgbGVuZ3RoOiAyIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGFyciwgMSkgPT09IDE7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-a-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1hLTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWEtOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gcHJvcGVydGllcyBhZGRlZCBpbnRvIG93biBvYmplY3QgYWZ0ZXIgY3VycmVudCBwb3NpdGlvbiBhcmUgdmlzaXRlZCBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYXJyID0gWzAsICwgMl07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiBhcnIuaW5kZXhPZigxKSA9PT0gMTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.14-9-a-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1hLTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWEtOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gcHJvcGVydGllcyBjYW4gYmUgYWRkZWQgdG8gcHJvdG90eXBlIGFmdGVyIGN1cnJlbnQgcG9zaXRpb24gYXJlIHZpc2l0ZWQgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFyciA9IHsgbGVuZ3RoOiAyIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LnByb3RvdHlwZSwgIjEiLCB7DQogICAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDYuOTk7DQogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoYXJyLCA2Ljk5KSA9PT0gMTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlWzFdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-b-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWItMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gbm9uLWV4aXN0ZW50IHByb3BlcnR5IHdvdWxkbid0IGJlIGNhbGxlZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICByZXR1cm4gWzAsICwgMl0uaW5kZXhPZih1bmRlZmluZWQpID09PSAtMTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-b-i-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTktYi1pLTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgb2JqID0geyAwOiAwLCAxOiAxLCAyOiAyLCBsZW5ndGg6IDMgfTsNCiAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwob2JqLCAwKSA9PT0gMCAmJg0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChvYmosIDEpID09PSAxICYmDQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKG9iaiwgMikgPT09IDI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.14-9-b-i-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktMTAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWItaS0xMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBvYmogPSB7IGxlbmd0aDogMyB9Ow0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMiIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAyOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICByZXR1cm4gMCA9PT0gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChvYmosIDApICYmDQogICAgICAgICAgICAxID09PSBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKG9iaiwgMSkgJiYNCiAgICAgICAgICAgIDIgPT09IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwob2JqLCAyKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.14-9-b-i-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktMTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWItaS0xMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhcnIgPSBbXTsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVswXSA9IGZhbHNlOw0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgcmV0dXJuIDAgPT09IGFyci5pbmRleE9mKHRydWUpOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-b-i-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktMTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWItaS0xMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgb2JqID0geyBsZW5ndGg6IDEgfTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZVswXSA9IGZhbHNlOw0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjAiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgcmV0dXJuIDAgPT09IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwob2JqLCB0cnVlKTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlWzBdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-b-i-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktMTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWItaS0xMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYXJyID0gW107DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMCIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgcmV0dXJuIDAgPT09IGFyci5pbmRleE9mKHRydWUpOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-b-i-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktMTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWItaS0xNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgb2JqID0geyBsZW5ndGg6IDEgfTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5wcm90b3R5cGUsICIwIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMCIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICByZXR1cm4gMCA9PT0gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChvYmosIHRydWUpOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMF07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.14-9-b-i-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktMTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWItaS0xNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjAiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAxMDsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICIxIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjA7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMiIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDMwOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgcmV0dXJuIDAgPT09IFssICwgLCBdLmluZGV4T2YoMTApICYmDQogICAgICAgICAgICAgICAgMSA9PT0gWywgLCAsIF0uaW5kZXhPZigyMCkgJiYgDQogICAgICAgICAgICAgICAgMiA9PT0gWywgLCAsIF0uaW5kZXhPZigzMCk7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzBdOw0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsgDQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzJdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgIVssIDFdLmhhc093blByb3BlcnR5KDApICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-b-i-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktMTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWItaS0xNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LnByb3RvdHlwZSwgIjAiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAxMDsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QucHJvdG90eXBlLCAiMSIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDIwOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5wcm90b3R5cGUsICIyIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMzA7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICByZXR1cm4gMCA9PT0gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbCh7IGxlbmd0aDogMyB9LCAxMCkgJiYNCiAgICAgICAgICAgICAgICAxID09PSBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKHsgbGVuZ3RoOiAzIH0sIDIwKSAmJg0KICAgICAgICAgICAgICAgIDIgPT09IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoeyBsZW5ndGg6IDMgfSwgMzApOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMF07DQogICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZVsxXTsNCiAgICAgICAgICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlWzJdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-b-i-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktMTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWItaS0xNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFyciA9IFtdOw0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiBhcnIuaW5kZXhPZih1bmRlZmluZWQpID09PSAwOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-b-i-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktMTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWItaS0xOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgbGVuZ3RoOiAxIH07DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIwIiwgew0KICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgcmV0dXJuIDAgPT09IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwob2JqLCB1bmRlZmluZWQpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.14-9-b-i-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktMTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWItaS0xOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhcnIgPSBbXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMCIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDI7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICByZXR1cm4gYXJyLmluZGV4T2YodW5kZWZpbmVkKSA9PT0gMDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMF07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.14-9-b-i-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTktYi1pLTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICByZXR1cm4gW3RydWUsIHRydWUsIHRydWVdLmluZGV4T2YodHJ1ZSkgPT09IDAgJiYNCiAgICAgICAgICAgIFtmYWxzZSwgdHJ1ZSwgdHJ1ZV0uaW5kZXhPZih0cnVlKSA9PT0gMSAmJg0KICAgICAgICAgICAgW2ZhbHNlLCBmYWxzZSwgdHJ1ZV0uaW5kZXhPZih0cnVlKSA9PT0gMjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-b-i-20"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktMjAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWItaS0yMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBwcm90byA9IHt9Ow0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDI7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQogICAgICAgIGNoaWxkLmxlbmd0aCA9IDE7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNoaWxkLCAiMCIsIHsNCiAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGNoaWxkLCB1bmRlZmluZWQpID09PSAwOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.14-9-b-i-21"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktMjEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWItaS0yMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMCIsIHsNCiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgcmV0dXJuIDAgPT09IFssIF0uaW5kZXhPZih1bmRlZmluZWQpOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmICFbLCAxXS5oYXNPd25Qcm9wZXJ0eSgwKSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.14-9-b-i-22"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktMjIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWItaS0yMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QucHJvdG90eXBlLCAiMCIsIHsNCiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgcmV0dXJuIDAgPT09IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoeyBsZW5ndGg6IDEgfSwgdW5kZWZpbmVkKTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlWzBdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-b-i-23"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktMjMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWItaS0yMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gVGhpcyBvYmplY3QgaXMgdGhlIGdsb2JhbCBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRhcmdldE9iaiA9IHt9Ow0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgdmFyIG9sZExlbiA9IGZuR2xvYmFsT2JqZWN0KCkubGVuZ3RoOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKVswXSA9IHRhcmdldE9iajsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KClbMTAwXSA9ICIxMDAiOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKVsyMDBdID0gIjIwMCI7DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aCA9IDIwMDsNCiAgICAgICAgICAgIHJldHVybiAwID09PSBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGZuR2xvYmFsT2JqZWN0KCksIHRhcmdldE9iaikgJiYNCiAgICAgICAgICAgICAgICAxMDAgPT09IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoZm5HbG9iYWxPYmplY3QoKSwgIjEwMCIpICYmDQogICAgICAgICAgICAgICAgLTEgPT09IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoZm5HbG9iYWxPYmplY3QoKSwgIjIwMCIpOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIGZuR2xvYmFsT2JqZWN0KClbMF07DQogICAgICAgICAgICBkZWxldGUgZm5HbG9iYWxPYmplY3QoKVsxMDBdOw0KICAgICAgICAgICAgZGVsZXRlIGZuR2xvYmFsT2JqZWN0KClbMjAwXTsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KCkubGVuZ3RoID0gb2xkTGVuOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.14-9-b-i-25"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktMjUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWItaS0yNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIGFwcGxpZWQgdG8gQXJndW1lbnRzIG9iamVjdCB3aGljaCBpbXBsZW1lbnRzIGl0cyBvd24gcHJvcGVydHkgZ2V0IG1ldGhvZCAobnVtYmVyIG9mIGFyZ3VtZW50cyBpcyBsZXNzIHRoYW4gbnVtYmVyIG9mIHBhcmFtZXRlcnMpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBmdW5jID0gZnVuY3Rpb24gKGEsIGIpIHsNCiAgICAgICAgICAgIHJldHVybiAwID09PSBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGFyZ3VtZW50cywgYXJndW1lbnRzWzBdKSAmJg0KICAgICAgICAgICAgLTEgPT09IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoYXJndW1lbnRzLCBhcmd1bWVudHNbMV0pOw0KICAgICAgICB9Ow0KDQogICAgICAgIHJldHVybiBmdW5jKHRydWUpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.14-9-b-i-26"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktMjYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWItaS0yNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIGFwcGxpZWQgdG8gQXJndW1lbnRzIG9iamVjdCB3aGljaCBpbXBsZW1lbnRzIGl0cyBvd24gcHJvcGVydHkgZ2V0IG1ldGhvZCAobnVtYmVyIG9mIGFyZ3VtZW50cyBlcXVhbHMgdG8gbnVtYmVyIG9mIHBhcmFtZXRlcnMpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBmdW5jID0gZnVuY3Rpb24gKGEsIGIpIHsNCiAgICAgICAgICAgIHJldHVybiAwID09PSBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGFyZ3VtZW50cywgYXJndW1lbnRzWzBdKSAmJg0KICAgICAgICAgICAgMSA9PT0gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChhcmd1bWVudHMsIGFyZ3VtZW50c1sxXSkgJiYNCiAgICAgICAgICAgIC0xID09PSBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGFyZ3VtZW50cywgYXJndW1lbnRzWzJdKTsNCiAgICAgICAgfTsNCg0KICAgICAgICByZXR1cm4gZnVuYygwLCB0cnVlKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-b-i-27"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktMjciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWItaS0yNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIGFwcGxpZWQgdG8gQXJndW1lbnRzIG9iamVjdCB3aGljaCBpbXBsZW1lbnRzIGl0cyBvd24gcHJvcGVydHkgZ2V0IG1ldGhvZCAobnVtYmVyIG9mIGFyZ3VtZW50cyBpcyBncmVhdGVyIHRoYW4gbnVtYmVyIG9mIHBhcmFtZXRlcnMpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBmdW5jID0gZnVuY3Rpb24gKGEsIGIpIHsNCiAgICAgICAgICAgIHJldHVybiAwID09PSBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGFyZ3VtZW50cywgYXJndW1lbnRzWzBdKSAmJg0KICAgICAgICAgICAgMyA9PT0gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChhcmd1bWVudHMsIGFyZ3VtZW50c1szXSkgJiYNCiAgICAgICAgICAgIC0xID09PSBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGFyZ3VtZW50cywgYXJndW1lbnRzWzRdKTsNCiAgICAgICAgfTsNCg0KICAgICAgICByZXR1cm4gZnVuYygwLCBmYWxzZSwgMCwgdHJ1ZSk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.14-9-b-i-28"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktMjgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWItaS0yOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gc2lkZS1lZmZlY3RzIGFyZSB2aXNpYmxlIGluIHN1YnNlcXVlbnQgaXRlcmF0aW9ucyBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgcHJlSXRlclZpc2libGUgPSBmYWxzZTsNCiAgICAgICAgdmFyIGFyciA9IFtdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcHJlSXRlclZpc2libGUgPSB0cnVlOw0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBpZiAocHJlSXRlclZpc2libGUpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgcmV0dXJuIGFyci5pbmRleE9mKHRydWUpID09PSAxOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-b-i-29"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktMjkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWItaS0yOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gc2lkZS1lZmZlY3RzIGFyZSB2aXNpYmxlIGluIHN1YnNlcXVlbnQgaXRlcmF0aW9ucyBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgcHJlSXRlclZpc2libGUgPSBmYWxzZTsNCiAgICAgICAgdmFyIG9iaiA9IHsgbGVuZ3RoOiAyIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBwcmVJdGVyVmlzaWJsZSA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGlmIChwcmVJdGVyVmlzaWJsZSkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChvYmosIHRydWUpID09PSAxOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.14-9-b-i-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTktYi1pLTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBkYXRhIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzBdID0gZmFsc2U7DQogICAgICAgICAgICByZXR1cm4gW3RydWVdLmluZGV4T2YodHJ1ZSkgPT09IDA7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzBdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.14-9-b-i-30"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktMzAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWItaS0zMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gdGVybWluYXRlcyBpdGVyYXRpb24gb24gdW5oYW5kbGVkIGV4Y2VwdGlvbiBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIGFyciA9IFtdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGFyci5pbmRleE9mKHRydWUpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpICYmICFhY2Nlc3NlZDsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-b-i-31"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktMzEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWItaS0zMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gdGVybWluYXRlcyBpdGVyYXRpb24gb24gdW5oYW5kbGVkIGV4Y2VwdGlvbiBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIG9iaiA9IHsgbGVuZ3RoOiAyIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChvYmosIHRydWUpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpICYmICFhY2Nlc3NlZDsNCiAgICAgICAgfQ0KDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-b-i-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTktYi1pLTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBkYXRhIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QucHJvdG90eXBlWzBdID0gZmFsc2U7DQogICAgICAgICAgICByZXR1cm4gMCA9PT0gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbCh7IDA6IHRydWUsIDE6IDEsIGxlbmd0aDogMiB9LCB0cnVlKTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlWzBdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.14-9-b-i-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTktYi1pLTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBkYXRhIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICIwIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgcmV0dXJuIDAgPT09IFt0cnVlXS5pbmRleE9mKHRydWUpOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-b-i-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktNiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTktYi1pLTYuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBkYXRhIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5wcm90b3R5cGUsICIwIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgcmV0dXJuIDAgPT09IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoeyAwOiB0cnVlLCAxOiAxLCBsZW5ndGg6IDIgfSwgdHJ1ZSk7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.14-9-b-i-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTktYi1pLTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIGluaGVyaXRlZCBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzBdID0gdHJ1ZTsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVsxXSA9IGZhbHNlOw0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzJdID0gInRydWUiOw0KICAgICAgICAgICAgcmV0dXJuIDAgPT09IFssICwgLCBdLmluZGV4T2YodHJ1ZSkgJiYNCiAgICAgICAgICAgICAgICAxID09PSBbLCAsICwgXS5pbmRleE9mKGZhbHNlKSAmJg0KICAgICAgICAgICAgICAgIDIgPT09IFssICwgLCBdLmluZGV4T2YoInRydWUiKTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMF07DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzFdOw0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsyXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSAmJiAhWywgMV0uaGFzT3duUHJvcGVydHkoMCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-b-i-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTktYi1pLTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIGluaGVyaXRlZCBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QucHJvdG90eXBlWzBdID0gdHJ1ZTsNCiAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGVbMV0gPSBmYWxzZTsNCiAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGVbMl0gPSAidHJ1ZSI7DQogICAgICAgICAgICByZXR1cm4gMCA9PT0gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbCh7IGxlbmd0aDogMyB9LCB0cnVlKSAmJg0KICAgICAgICAgICAgICAgIDEgPT09IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoeyBsZW5ndGg6IDMgfSwgZmFsc2UpICYmDQogICAgICAgICAgICAgICAgMiA9PT0gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbCh7IGxlbmd0aDogMyB9LCAidHJ1ZSIpOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMF07DQogICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZVsxXTsNCiAgICAgICAgICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlWzJdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.14-9-b-i-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWktOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTktYi1pLTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYXJyID0gWywgLCAsIF07DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KICAgICAgICANCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjIiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMjsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgcmV0dXJuIGFyci5pbmRleE9mKDApID09PSAwICYmIGFyci5pbmRleE9mKDEpID09PSAxICYmIGFyci5pbmRleE9mKDIpID09PSAyOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-b-ii-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWlpLTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWItaWktMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gdHlwZSBvZiBhcnJheSBlbGVtZW50IGlzIGRpZmZlcmVudCBmcm9tIHR5cGUgb2Ygc2VhcmNoIGVsZW1lbnQiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgcmV0dXJuIFsidHJ1ZSJdLmluZGV4T2YodHJ1ZSkgPT09IC0xICYmDQogICAgICAgICAgICBbIjAiXS5pbmRleE9mKDApID09PSAtMSAmJg0KICAgICAgICAgICAgW2ZhbHNlXS5pbmRleE9mKDApID09PSAtMSAmJg0KICAgICAgICAgICAgW3VuZGVmaW5lZF0uaW5kZXhPZigwKSA9PT0gLTEgJiYNCiAgICAgICAgICAgIFtudWxsXS5pbmRleE9mKDApID09PSAtMSAmJg0KICAgICAgICAgICAgW1tdXS5pbmRleE9mKDApID09PSAtMTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-b-ii-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWlpLTEwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtOS1iLWlpLTEwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmluZGV4T2YgLSBib3RoIGFycmF5IGVsZW1lbnQgYW5kIHNlYXJjaCBlbGVtZW50IGFyZSBCb29sZWFuIHR5cGUsIGFuZCB0aGV5IGhhdmUgc2FtZSB2YWx1ZSIsDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgcmV0dXJuIFtmYWxzZSwgdHJ1ZV0uaW5kZXhPZih0cnVlKSA9PT0gMTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-b-ii-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWlpLTExIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtOS1iLWlpLTExLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmluZGV4T2YgLSBib3RoIGFycmF5IGVsZW1lbnQgYW5kIHNlYXJjaCBlbGVtZW50IGFyZSBPYmplY3QgdHlwZSwgYW5kIHRoZXkgcmVmZXIgdG8gdGhlIHNhbWUgb2JqZWN0IiwNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgb2JqMSA9IHt9Ow0KICAgICAgICB2YXIgb2JqMiA9IHt9Ow0KICAgICAgICB2YXIgb2JqMyA9IG9iajI7DQogICAgICAgIHJldHVybiBbe30sIG9iajEsIG9iajJdLmluZGV4T2Yob2JqMykgPT09IDI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
@ -157,5 +195,6 @@
<test id="15.4.4.14-9-b-ii-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWlpLTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWItaWktOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gYm90aCBhcnJheSBlbGVtZW50IGFuZCBzZWFyY2ggZWxlbWVudCBhcmUgTnVtYmVyLCBhbmQgdGhleSBoYXZlIHNhbWUgdmFsdWUiLA0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHJldHVybiBbLTEsIDAsIDFdLmluZGV4T2YoMSkgPT09IDI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.14-9-b-ii-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWlpLTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC05LWItaWktOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIC0gYm90aCBhcnJheSBlbGVtZW50IGFuZCBzZWFyY2ggZWxlbWVudCBhcmUgU3RyaW5nLCBhbmQgdGhleSBoYXZlIGV4YWN0bHkgdGhlIHNhbWUgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyIsDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgcmV0dXJuIFsiIiwgImFiIiwgImJjYSIsICJhYmMiXS5pbmRleE9mKCJhYmMiKSA9PT0gMzsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.14-9-b-iii-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWlpaS0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtOS1iLWlpaS0xLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmluZGV4T2YgLSByZXR1cm5zIGluZGV4IG9mIGxhc3Qgb25lIHdoZW4gbW9yZSB0aGFuIHR3byBlbGVtZW50cyBpbiBhcnJheSBhcmUgZWxpZ2libGUiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgcmV0dXJuIFsxLCAyLCAyLCAxLCAyXS5pbmRleE9mKDIpID09PSAxOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.14-9-b-iii-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtOS1iLWlpaS0yIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtOS1iLWlpaS0yLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmluZGV4T2YgLSByZXR1cm5zIHdpdGhvdXQgdmlzaXRpbmcgc3Vic2VxdWVudCBlbGVtZW50IG9uY2Ugc2VhcmNoIHZhbHVlIGlzIGZvdW5kIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgYXJyID0gWzEsIDIsICwgMSwgMl07DQogICAgICAgIHZhciBlbGVtZW50VGhpcmRBY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICB2YXIgZWxlbWVudEZpZnRoQWNjZXNzZWQgPSBmYWxzZTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMiIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGVsZW1lbnRUaGlyZEFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMjsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICI0Iiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZWxlbWVudEZpZnRoQWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgIHJldHVybiAyOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBhcnIuaW5kZXhPZigyKTsNCiAgICAgICAgcmV0dXJuICFlbGVtZW50VGhpcmRBY2Nlc3NlZCAmJiAhZWxlbWVudEZpZnRoQWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
</section>
</testCollection>

View File

@ -2,7 +2,7 @@
<!-- adding section element if in the future we want to store information about the -->
<!-- spec structure in this file, for now the section structure is defined in the -->
<!-- sections.js file -->
<section name="Chapter - 15.4.4.15" numTests="151">
<section name="Chapter - 15.4.4.15" numTests="190">
<test id="15.4.4.15-0-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE1LTAtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtMC0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgbXVzdCBleGlzdCBhcyBhIGZ1bmN0aW9uIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBmID0gQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mOw0KICBpZiAodHlwZW9mKGYpID09PSAiZnVuY3Rpb24iKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9DQp9KTsNCg==]]></test>
<test id="15.4.4.15-0-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE1LTAtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtMC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgaGFzIGEgbGVuZ3RoIHByb3BlcnR5IHdob3NlIHZhbHVlIGlzIDEuIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIGlmIChBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YubGVuZ3RoID09PSAxKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZik7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.15-1-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtMS0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtMS0xLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mIGFwcGxpZWQgdG8gdW5kZWZpbmVkIHRocm93cyBhIFR5cGVFcnJvciIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwodW5kZWZpbmVkKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
@ -12,6 +12,7 @@
<test id="15.4.4.15-1-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTEtMTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS0xLTEzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mIGFwcGxpZWQgdG8gdGhlIEpTT04gb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0YXJnZXRPYmogPSB7fTsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEpTT05bM10gPSB0YXJnZXRPYmo7DQogICAgICAgICAgICBKU09OLmxlbmd0aCA9IDU7DQogICAgICAgICAgICByZXR1cm4gMyA9PT0gQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwoSlNPTiwgdGFyZ2V0T2JqKTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBKU09OWzNdOw0KICAgICAgICAgICAgZGVsZXRlIEpTT04ubGVuZ3RoOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.15-1-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTEtMTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS0xLTE0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mIGFwcGxpZWQgdG8gRXJyb3Igb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBvYmogPSBuZXcgU3ludGF4RXJyb3IoKTsNCiAgICAgICAgb2JqLmxlbmd0aCA9IDI7DQogICAgICAgIG9ialsxXSA9IEluZmluaXR5Ow0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbChvYmosIEluZmluaXR5KSA9PT0gMTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-1-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtMS0xNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTUvMTUuNC40LjE1LTEtMTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgYXBwbGllZCB0byB0aGUgQXJndW1lbnRzIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgb2JqID0gKGZ1bmN0aW9uIGZ1bigpIHsNCiAgICAgICAgICAgIHJldHVybiBhcmd1bWVudHM7DQogICAgICAgIH0oMSwgMiwgMykpOw0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbChvYmosIDIpID09PSAxOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.15-1-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTEtMTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS0xLTE3LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mIGFwcGxpZWQgdG8gdGhlIGdsb2JhbCBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciB0YXJnZXRPYmogPSBbImdsb2JhbCJdOw0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgdmFyIG9sZExlbiA9IGZuR2xvYmFsT2JqZWN0KCkubGVuZ3RoOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKVsxXSA9IHRhcmdldE9iajsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KCkubGVuZ3RoID0gMzsNCiAgICAgICAgICAgIHJldHVybiAxID09PSBBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbChmbkdsb2JhbE9iamVjdCgpLCB0YXJnZXRPYmopOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIGZuR2xvYmFsT2JqZWN0KClbMV07DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aCA9IG9sZExlbjsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.15-1-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtMS0yIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtMS0yLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mIGFwcGxpZWQgdG8gbnVsbCB0aHJvd3MgYSBUeXBlRXJyb3IiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKG51bGwpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikgew0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.15-1-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTEtMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTUvMTUuNC40LjE1LTEtMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiBhcHBsaWVkIHRvIGJvb2xlYW4gcHJpbWl0aXZlIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBCb29sZWFuLnByb3RvdHlwZVsxXSA9IHRydWU7DQogICAgICAgICAgICBCb29sZWFuLnByb3RvdHlwZS5sZW5ndGggPSAyOw0KDQogICAgICAgICAgICByZXR1cm4gMSA9PT0gQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwodHJ1ZSwgdHJ1ZSk7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQm9vbGVhbi5wcm90b3R5cGVbMV07DQogICAgICAgICAgICBkZWxldGUgQm9vbGVhbi5wcm90b3R5cGUubGVuZ3RoOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.15-1-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTEtNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTUvMTUuNC40LjE1LTEtNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiBhcHBsaWVkIHRvIEJvb2xlYW4gb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBvYmogPSBuZXcgQm9vbGVhbihmYWxzZSk7DQogICAgICAgIG9iai5sZW5ndGggPSAyOw0KICAgICAgICBvYmpbMV0gPSB0cnVlOw0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbChvYmosIHRydWUpID09PSAxOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
@ -26,6 +27,7 @@
<test id="15.4.4.15-2-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtMi0xMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTUvMTUuNC40LjE1LTItMTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgLSAnbGVuZ3RoJyBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LnByb3RvdHlwZSwgImxlbmd0aCIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDIwOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgdmFyIG9iaiA9IHsgMTogMSB9Ow0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImxlbmd0aCIsIHsNCiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwob2JqLCAxKSA9PT0gLTE7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZS5sZW5ndGg7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.15-2-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtMi0xMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTUvMTUuNC40LjE1LTItMTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgLSAnbGVuZ3RoJyBpcyBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgcHJvdG8gPSB7fTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAibGVuZ3RoIiwgew0KICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHt9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZFswXSA9IHRydWU7DQoNCiAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKGNoaWxkLCB0cnVlKSA9PT0gLTE7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-2-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtMi0xNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTUvMTUuNC40LjE1LTItMTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgLSAnbGVuZ3RoJyBpcyB1bmRlZmluZWQgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMDogbnVsbCwgMTogdW5kZWZpbmVkIH07DQoNCiAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKG9iaiwgbnVsbCkgPT09IC0xOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.15-2-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTItMTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS0yLTE1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mIC0gJ2xlbmd0aCcgaXMgcHJvcGVydHkgb2YgdGhlIGdsb2JhbCBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciB0YXJnZXRPYmogPSB7fTsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIHZhciBvbGRMZW4gPSBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aDsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KCkubGVuZ3RoID0gMjsNCg0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKVsxXSA9IHRhcmdldE9iajsNCiAgICAgICAgICAgIGlmIChBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbChmbkdsb2JhbE9iamVjdCgpLCB0YXJnZXRPYmopICE9PSAxKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpWzFdID0ge307DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpWzJdID0gdGFyZ2V0T2JqOw0KDQogICAgICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwoZm5HbG9iYWxPYmplY3QoKSwgdGFyZ2V0T2JqKSA9PT0gLTE7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgZm5HbG9iYWxPYmplY3QoKVsxXTsNCiAgICAgICAgICAgIGRlbGV0ZSBmbkdsb2JhbE9iamVjdCgpWzJdOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKS5sZW5ndGggPSBvbGRMZW47DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-2-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtMi0xNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTUvMTUuNC40LjE1LTItMTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgYXBwbGllZCB0byBBcmd1bWVudHMgb2JqZWN0IHdoaWNoIGltcGxlbWVudHMgaXRzIG93biBwcm9wZXJ0eSBnZXQgbWV0aG9kIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0YXJnZXRPYmogPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIHZhciBmdW5jID0gZnVuY3Rpb24gKGEsIGIpIHsNCiAgICAgICAgICAgIGFyZ3VtZW50c1syXSA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbChhcmd1bWVudHMsIHRhcmdldE9iaikgPT09IDEgJiYNCiAgICAgICAgICAgICAgICBBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbChhcmd1bWVudHMsIGFyZ3VtZW50c1syXSkgPT09IC0xOw0KICAgICAgICB9Ow0KDQogICAgICAgIHJldHVybiBmdW5jKDAsIHRhcmdldE9iaik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.15-2-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtMi0xOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTUvMTUuNC40LjE1LTItMTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgYXBwbGllZCB0byBTdHJpbmcgb2JqZWN0IHdoaWNoIGltcGxlbWVudHMgaXRzIG93biBwcm9wZXJ0eSBnZXQgbWV0aG9kIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBzdHIgPSBuZXcgU3RyaW5nKCIwMTIiKTsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIFN0cmluZy5wcm90b3R5cGVbM10gPSAiMyI7DQogICAgICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwoc3RyLCAiMiIpID09PSAyICYmDQogICAgICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwoc3RyLCAiMyIpID09PSAtMTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBTdHJpbmcucHJvdG90eXBlWzNdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.15-2-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtMi0xOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTUvMTUuNC40LjE1LTItMTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgYXBwbGllZCB0byBTdHJpbmcgb2JqZWN0IHdoaWNoIGltcGxlbWVudHMgaXRzIG93biBwcm9wZXJ0eSBnZXQgbWV0aG9kIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBvYmogPSBmdW5jdGlvbiAoYSwgYikgew0KICAgICAgICAgICAgcmV0dXJuIGEgKyBiOw0KICAgICAgICB9Ow0KICAgICAgICBvYmpbMV0gPSAiYiI7DQogICAgICAgIG9ialsyXSA9ICJjIjsNCg0KICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwob2JqLCBvYmpbMV0pID09PSAxICYmDQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbChvYmosIG9ialsyXSkgPT09IC0xOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
@ -117,6 +119,7 @@
<test id="15.4.4.15-7-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTctNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTUvMTUuNC40LjE1LTctNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiByZXR1cm5zIC0xIHdoZW4gYWJzKCdmcm9tSW5kZXgnKSBpcyBsZW5ndGggb2YgYXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgcmV0dXJuIFsxLCAyLCAzLCA0XS5sYXN0SW5kZXhPZigyLCAtNCkgPT09IC0xOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZik7DQogICAgfQ0KDQp9KQ0KDQo=]]></test>
<test id="15.4.4.15-8-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE1LTgtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgbXVzdCByZXR1cm4gY29ycmVjdCBpbmRleChib29sZWFuKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgb2JqID0ge3RvU3RyaW5nOmZ1bmN0aW9uICgpe3JldHVybiB0cnVlfX07DQogIHZhciBfZmFsc2UgPSBmYWxzZTsNCiAgdmFyIGEgPSBuZXcgQXJyYXkoZmFsc2UsdHJ1ZSxmYWxzZSxvYmosX2ZhbHNlLHRydWUsInRydWUiLCB1bmRlZmluZWQsMCxudWxsLDEsInN0ciIsMCwxKTsNCiAgaWYgKGEubGFzdEluZGV4T2YodHJ1ZSkgPT09IDUgJiYgIC8vYVs1XT10cnVlDQogICAgICBhLmxhc3RJbmRleE9mKGZhbHNlKSA9PT0gNCkgICAgLy9hWzRdID1fZmFsc2UNCiAgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.15-8-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE1LTgtMTAiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTUvMTUuNC40LjE1LTgtMTAuanMiLA0KDQpkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiBtdXN0IHJldHVybiBjb3JyZWN0IGluZGV4IChOYU4pIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBfTmFOID0gTmFOOw0KICB2YXIgYSA9IG5ldyBBcnJheSgiTmFOIixfTmFOLE5hTiwgdW5kZWZpbmVkLDAsZmFsc2UsbnVsbCx7dG9TdHJpbmc6ZnVuY3Rpb24gKCl7cmV0dXJuIE5hTn19LCJmYWxzZSIpOw0KICBpZiAoYS5sYXN0SW5kZXhPZihOYU4pID09PSAtMSkgIC8vIE5hTiBtYXRjaGVzIG5vdGhpbmcsIG5vdCBldmVuIGl0c2VsZg0KICB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZik7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTgtMTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LTExLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mIC0gdGhlIGxlbmd0aCBvZiBpdGVyYXRpb24gaXNuJ3QgY2hhbmdlZCBieSBhZGRpbmcgZWxlbWVudHMgdG8gdGhlIGFycmF5IGR1cmluZyBpdGVyYXRpb24iLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFyciA9IFsyMF07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBhcnJbMV0gPSAxOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICByZXR1cm4gYXJyLmxhc3RJbmRleE9mKDEpID09PSAtMTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.15-8-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE1LTgtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgbXVzdCByZXR1cm4gY29ycmVjdCBpbmRleChOdW1iZXIpIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBvYmogPSB7dG9TdHJpbmc6ZnVuY3Rpb24gKCl7cmV0dXJuIDB9fTsNCiAgdmFyIG9uZSA9IDE7DQogIHZhciBfZmxvYXQgPSAtKDQvMyk7DQogIHZhciBhID0gbmV3IEFycmF5KCswLHRydWUsMCwtMCwgZmFsc2UsdW5kZWZpbmVkLG51bGwsIjAiLG9iaiwgX2Zsb2F0LC0oNC8zKSwtMS4zMzMzMzMzMzMzMzMzLCJzdHIiLG9uZSwgMSwgZmFsc2UpOw0KICBpZiAoYS5sYXN0SW5kZXhPZigtKDQvMykpID09PSAxMCAmJiAgICAgIC8vIGFbMTBdPS0oNC8zKQ0KICAgICAgYS5sYXN0SW5kZXhPZigwKSA9PT0gMyAgICAgICAmJiAgICAgICAvLyBhWzNdID0gLTAsIGJ1dCB1c2luZyA9PT0gLTAgYW5kIDAgYXJlIGVxdWFsDQogICAgICBhLmxhc3RJbmRleE9mKC0wKSA9PT0zICAgICAgICYmICAgICAgLy8gYVszXSA9IC0wDQogICAgICBhLmxhc3RJbmRleE9mKDEpID09PSAxNCApICAgICAgICAgICAgLy8gYVsxNF0gPSAxDQogIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKTsNCiB9DQp9KTsNCg==]]></test>
<test id="15.4.4.15-8-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE1LTgtMyIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC0zLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgbXVzdCByZXR1cm4gY29ycmVjdCBpbmRleChzdHJpbmcpIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBvYmogPSB7dG9TdHJpbmc6ZnVuY3Rpb24gKCl7cmV0dXJuICJmYWxzZSJ9fTsNCiAgdmFyIHN6RmFsc2UgPSAiZmFsc2UiOw0KICB2YXIgYSA9IG5ldyBBcnJheShzekZhbHNlLCAiZmFsc2UiLCJmYWxzZTEiLHVuZGVmaW5lZCwwLGZhbHNlLG51bGwsMSxvYmosMCk7DQogIGlmIChhLmxhc3RJbmRleE9mKCJmYWxzZSIpID09PSAxKSANCiAgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.15-8-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE1LTgtNCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC00LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgbXVzdCByZXR1cm4gY29ycmVjdCBpbmRleCh1bmRlZmluZWQpIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBvYmogPSB7dG9TdHJpbmc6ZnVuY3Rpb24gKCl7cmV0dXJuIHVuZGVmaW5lZDt9fTsNCiAgdmFyIF91bmRlZmluZWQxID0gdW5kZWZpbmVkOw0KICB2YXIgX3VuZGVmaW5lZDI7DQogIHZhciBhID0gbmV3IEFycmF5KF91bmRlZmluZWQxLF91bmRlZmluZWQyLHVuZGVmaW5lZCx0cnVlLDAsZmFsc2UsbnVsbCwxLCJ1bmRlZmluZWQiLG9iaiwxKTsNCiAgaWYgKGEubGFzdEluZGV4T2YodW5kZWZpbmVkKSA9PT0gMikgDQogIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKTsNCiB9DQp9KTsNCg==]]></test>
@ -126,21 +129,55 @@
<test id="15.4.4.15-8-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE1LTgtOCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC04LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgbXVzdCByZXR1cm4gY29ycmVjdCBpbmRleCAoQXJyYXkpIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBiID0gbmV3IEFycmF5KCIwLDEiKTsgIA0KICB2YXIgYSA9IG5ldyBBcnJheSgwLGIsIjAsMSIsMyk7ICANCiAgaWYgKGEubGFzdEluZGV4T2YoYi50b1N0cmluZygpKSA9PT0gMiAmJiAgDQogICAgICBhLmxhc3RJbmRleE9mKCIwLDEiKSA9PT0gMiApIA0KICB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZik7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE1LTgtOSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC05LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgbXVzdCByZXR1cm4gY29ycmVjdCBpbmRleCAoU3BhcnNlIEFycmF5KSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgYSA9IG5ldyBBcnJheSgwLDEpOyAgDQogIGFbNDI5NDk2NzI5NF0gPSAyOyAgICAgICAgICAvLyAyXjMyLTIgLSBpcyBtYXggYXJyYXkgZWxlbWVudCBpbmRleA0KICBhWzQyOTQ5NjcyOTVdID0gMzsgICAgICAgICAgLy8gMl4zMi0xIGFkZGVkIGFzIG5vbi1hcnJheSBlbGVtZW50IHByb3BlcnR5DQogIGFbNDI5NDk2NzI5Nl0gPSA0OyAgICAgICAgICAvLyAyXjMyICAgYWRkZWQgYXMgbm9uLWFycmF5IGVsZW1lbnQgcHJvcGVydHkNCiAgYVs0Mjk0OTY3Mjk3XSA9IDU7ICAgICAgICAgIC8vIDJeMzIrMSBhZGRlZCBhcyBub24tYXJyYXkgZWxlbWVudCBwcm9wZXJ0eQ0KICAvLyBzdG9wIHNlYXJjaGluZyBuZWFyIHRoZSBlbmQgaW4gY2FzZSBpbXBsZW1lbnRhdGlvbiBhY3R1YWxseSB0cmllcyB0byB0ZXN0IGFsbCBtaXNzaW5nIGVsZW1lbnRzISENCiAgYVs0Mjk0OTY3MjAwXSA9IDM7ICAgICAgICAgIA0KICBhWzQyOTQ5NjcyMDFdID0gNDsgICAgICAgICANCiAgYVs0Mjk0OTY3MjAyXSA9IDU7ICAgICAgICAgDQoNCg0KICByZXR1cm4gKGEubGFzdEluZGV4T2YoMikgPT09IDQyOTQ5NjcyOTQgJiYgICAgDQogICAgICBhLmxhc3RJbmRleE9mKDMpID09PSA0Mjk0OTY3MjAwICYmDQogICAgICBhLmxhc3RJbmRleE9mKDQpID09PSA0Mjk0OTY3MjAxICYmDQogICAgICBhLmxhc3RJbmRleE9mKDUpID09PSA0Mjk0OTY3MjAyKSA7DQogICB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZik7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-a-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1hLTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWEtMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiAtIGFkZGVkIHByb3BlcnRpZXMgaW4gc3RlcCAyIGFyZSB2aXNpYmxlIGhlcmUiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFyciA9IHsgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAibGVuZ3RoIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgYXJyWzJdID0gImxlbmd0aCI7DQogICAgICAgICAgICAgICAgcmV0dXJuIDM7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiAyID09PSBBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbChhcnIsICJsZW5ndGgiKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.15-8-a-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1hLTEwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC1hLTEwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mIC0gcHJvcGVydGllcyBjYW4gYmUgYWRkZWQgdG8gcHJvdG90eXBlIGFmdGVyIGN1cnJlbnQgcG9zaXRpb24gYXJlIHZpc2l0ZWQgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFyciA9IFswLCAsIDJdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIyIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjEiLCB7DQogICAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDYuOTk7DQogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgcmV0dXJuIGFyci5sYXN0SW5kZXhPZig2Ljk5KSA9PT0gMTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgIVssIDFdLmhhc093blByb3BlcnR5KDApICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.15-8-a-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1hLTExIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC1hLTExLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mIC0gZGVsZXRpbmcgb3duIHByb3BlcnR5IGNhdXNlcyBpbmRleCBwcm9wZXJ0eSBub3QgdG8gYmUgdmlzaXRlZCBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYXJyID0geyBsZW5ndGg6IDIwMCB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDYuOTk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxMDAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgYXJyWzFdOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICByZXR1cm4gLTEgPT09IEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKGFyciwgNi45OSk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-a-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1hLTEyIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC1hLTEyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mIC0gZGVsZXRpbmcgb3duIHByb3BlcnR5IGNhdXNlcyBpbmRleCBwcm9wZXJ0eSBub3QgdG8gYmUgdmlzaXRlZCBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYXJyID0gWzEsIDIsIDMsIDRdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuICI2Ljk5IjsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjMiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgYXJyWzFdOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICByZXR1cm4gLTEgPT09IGFyci5sYXN0SW5kZXhPZigiNi45OSIpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-a-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1hLTEzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC1hLTEzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mIC0gIGRlbGV0aW5nIHByb3BlcnR5IG9mIHByb3RvdHlwZSBjYXVzZXMgcHJvdG90eXBlIGluZGV4IHByb3BlcnR5IG5vdCB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5LWxpa2UgT2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhcnIgPSB7IDI6IDIsIGxlbmd0aDogMjAgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMyIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlWzFdOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZVsxXSA9IDE7DQogICAgICAgICAgICByZXR1cm4gLTEgPT09IEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKGFyciwgMSk7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.15-8-a-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1hLTE0IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC1hLTE0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mIC0gIGRlbGV0aW5nIHByb3BlcnR5IG9mIHByb3RvdHlwZSBjYXVzZXMgcHJvdG90eXBlIGluZGV4IHByb3BlcnR5IG5vdCB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhcnIgPSBbMCwgLCAyXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzFdOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzFdID0gMTsNCiAgICAgICAgICAgIHJldHVybiAtMSA9PT0gYXJyLmxhc3RJbmRleE9mKDEpOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiAhWywgMV0uaGFzT3duUHJvcGVydHkoMCkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.15-8-a-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1hLTE1IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC1hLTE1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mIC0gIGRlbGV0aW5nIG93biBwcm9wZXJ0eSB3aXRoIHByb3RvdHlwZSBwcm9wZXJ0eSBjYXVzZXMgcHJvdG90eXBlIGluZGV4IHByb3BlcnR5IHRvIGJlIHZpc2l0ZWQgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFyciA9IHsgMDogMCwgMTogMTExLCAyOiAyLCBsZW5ndGg6IDEwIH07DQogICAgICAgIA0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiNiIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGRlbGV0ZSBhcnJbMV07DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QucHJvdG90eXBlWzFdID0gMTsNCiAgICAgICAgICAgIHJldHVybiAxID09PSBBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbChhcnIsIDEpOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.15-8-a-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1hLTE2IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC1hLTE2LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mIC0gIGRlbGV0aW5nIG93biBwcm9wZXJ0eSB3aXRoIHByb3RvdHlwZSBwcm9wZXJ0eSBjYXVzZXMgcHJvdG90eXBlIGluZGV4IHByb3BlcnR5IHRvIGJlIHZpc2l0ZWQgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFyciA9IFswLCAxMTEsIDJdOyANCiAgICAgICAgDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIyIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIGFyclsxXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVsxXSA9IDE7DQogICAgICAgICAgICByZXR1cm4gMSA9PT0gYXJyLmxhc3RJbmRleE9mKDEpOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-a-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1hLTE3IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC1hLTE3LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mIC0gIGRlY3JlYXNpbmcgbGVuZ3RoIG9mIGFycmF5IGNhdXNlcyBpbmRleCBwcm9wZXJ0eSBub3QgdG8gYmUgdmlzaXRlZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYXJyID0gWzAsIDEsIDIsICJsYXN0IiwgNF07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjQiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBhcnIubGVuZ3RoID0gMzsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgcmV0dXJuIC0xID09PSBhcnIubGFzdEluZGV4T2YoImxhc3QiKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.15-8-a-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1hLTE4IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC1hLTE4LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mIC0gIGRlY3JlYXNpbmcgbGVuZ3RoIG9mIGFycmF5IHdpdGggcHJvdG90eXBlIHByb3BlcnR5IGNhdXNlcyBwcm90b3R5cGUgaW5kZXggcHJvcGVydHkgdG8gYmUgdmlzaXRlZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYXJyID0gWzAsIDEsIDIsIDMsIDRdOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMiIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJwcm90b3R5cGUiOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjMiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIGFyci5sZW5ndGggPSAyOw0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHJldHVybiAyID09PSBhcnIubGFzdEluZGV4T2YoInByb3RvdHlwZSIpOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsyXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-a-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1hLTE5IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC1hLTE5LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mIC0gIGRlY3JlYXNpbmcgbGVuZ3RoIG9mIGFycmF5IGRvZXMgbm90IGRlbGV0ZSBub24tY29uZmlndXJhYmxlIHByb3BlcnRpZXMiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFyciA9IFswLCAxLCAyLCAzXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMiIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAidW5jb25maWd1cmFibGUiOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjMiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBhcnIubGVuZ3RoID0gMjsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgcmV0dXJuIDIgPT09IGFyci5sYXN0SW5kZXhPZigidW5jb25maWd1cmFibGUiKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.15-8-a-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1hLTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWEtMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiAtICBhZGRlZCBwcm9wZXJ0aWVzIGluIHN0ZXAgNSBhcmUgdmlzaWJsZSBoZXJlIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhcnIgPSB7IGxlbmd0aDogMzAgfTsNCiAgICAgICAgdmFyIHRhcmdldE9iaiA9IGZ1bmN0aW9uICgpIHsgfTsNCg0KICAgICAgICB2YXIgZnJvbUluZGV4ID0gew0KICAgICAgICAgICAgdmFsdWVPZjogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGFycls0XSA9IHRhcmdldE9iajsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTA7DQogICAgICAgICAgICB9DQogICAgICAgIH07DQogICAgICAgIA0KICAgICAgICByZXR1cm4gNCA9PT0gQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwoYXJyLCB0YXJnZXRPYmosIGZyb21JbmRleCk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.15-8-a-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1hLTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWEtMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiAtICBhZGRlZCBwcm9wZXJ0aWVzIGluIHN0ZXAgNSBhcmUgdmlzaWJsZSBoZXJlIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhcnIgPSBbXTsNCiAgICAgICAgYXJyLmxlbmd0aCA9IDMwOw0KICAgICAgICB2YXIgdGFyZ2V0T2JqID0gZnVuY3Rpb24gKCkgeyB9Ow0KDQogICAgICAgIHZhciBmcm9tSW5kZXggPSB7DQogICAgICAgICAgICB2YWx1ZU9mOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgYXJyWzRdID0gdGFyZ2V0T2JqOw0KICAgICAgICAgICAgICAgIHJldHVybiAxMTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfTsNCg0KICAgICAgICByZXR1cm4gNCA9PT0gYXJyLmxhc3RJbmRleE9mKHRhcmdldE9iaiwgZnJvbUluZGV4KTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-a-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1hLTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWEtNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiAtICBkZWxldGVkIHByb3BlcnRpZXMgaW4gc3RlcCAyIGFyZSB2aXNpYmxlIGhlcmUiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFyciA9IHsgMjogNi45OSB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICJsZW5ndGgiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgYXJyWzJdOw0KICAgICAgICAgICAgICAgIHJldHVybiAzOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICByZXR1cm4gLTEgPT09IEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKGFyciwgNi45OSk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-a-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1hLTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWEtNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiAtICBkZWxldGVkIHByb3BlcnRpZXMgb2Ygc3RlcCA1IGFyZSB2aXNpYmxlIGhlcmUgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFyciA9IHsgMTA6IGZhbHNlLCBsZW5ndGg6IDMwIH07DQoNCiAgICAgICAgdmFyIGZyb21JbmRleCA9IHsNCiAgICAgICAgICAgIHZhbHVlT2Y6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgYXJyWzEwXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTU7DQogICAgICAgICAgICB9DQogICAgICAgIH07DQoNCiAgICAgICAgcmV0dXJuIC0xID09PSBBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbChhcnIsIGZhbHNlLCBmcm9tSW5kZXgpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.15-8-a-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1hLTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWEtNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiAtICBkZWxldGVkIHByb3BlcnRpZXMgb2Ygc3RlcCA1IGFyZSB2aXNpYmxlIGhlcmUgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFyciA9IFtdOw0KICAgICAgICBhcnJbMTBdID0gIjEwIjsNCiAgICAgICAgYXJyLmxlbmd0aCA9IDIwOw0KDQogICAgICAgIHZhciBmcm9tSW5kZXggPSB7DQogICAgICAgICAgICB2YWx1ZU9mOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIGFyclsxMF07DQogICAgICAgICAgICAgICAgcmV0dXJuIDExOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KDQogICAgICAgIHJldHVybiAtMSA9PT0gYXJyLmxhc3RJbmRleE9mKCIxMCIsIGZyb21JbmRleCk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.15-8-a-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1hLTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWEtNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiAtICBwcm9wZXJ0aWVzIGFkZGVkIGludG8gb3duIG9iamVjdCBhZnRlciBjdXJyZW50IHBvc2l0aW9uIGFyZSB2aXNpdGVkIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgIA0KICAgICAgICB2YXIgYXJyID0geyBsZW5ndGg6IDggfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiNCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKGFyciwgMSkgPT09IDE7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-a-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1hLTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWEtOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiAtICBwcm9wZXJ0aWVzIGFkZGVkIGludG8gb3duIG9iamVjdCBhZnRlciBjdXJyZW50IHBvc2l0aW9uIGFyZSB2aXNpdGVkIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhcnIgPSBbMCwgLCAyXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMiIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgcmV0dXJuIGFyci5sYXN0SW5kZXhPZigxKSA9PT0gMTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.15-8-a-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1hLTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWEtOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiAtICBwcm9wZXJ0aWVzIGNhbiBiZSBhZGRlZCB0byBwcm90b3R5cGUgYWZ0ZXIgY3VycmVudCBwb3NpdGlvbiBhcmUgdmlzaXRlZCBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYXJyID0geyBsZW5ndGg6IDkgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiNCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QucHJvdG90eXBlLCAiMSIsIHsNCiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSW5maW5pdHk7DQogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKGFyciwgSW5maW5pdHkpID09PSAxOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.15-8-b-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTgtYi0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC1iLTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgLSB1bmRlZmluZWQgcHJvcGVydHkgd291bGRuJ3QgYmUgY2FsbGVkIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHJldHVybiBbMCwgLCAyXS5sYXN0SW5kZXhPZih1bmRlZmluZWQpID09PSAtMTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-b-i-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTgtYi1pLTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWItaS0xLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMDogMCwgMTogMSwgMjogMiwgbGVuZ3RoOiAzIH07DQoNCiAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKG9iaiwgMCkgPT09IDAgJiYNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKG9iaiwgMSkgPT09IDEgJiYNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKG9iaiwgMikgPT09IDI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.15-8-b-i-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1iLWktMTAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWItaS0xMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgb2JqID0geyBsZW5ndGg6IDMgfTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjIiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMjsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgcmV0dXJuIDAgPT09IEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKG9iaiwgMCkgJiYNCiAgICAgICAgICAgIDEgPT09IEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKG9iaiwgMSkgJiYNCiAgICAgICAgICAgIDIgPT09IEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKG9iaiwgMik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-b-i-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTgtYi1pLTExIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC1iLWktMTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFyciA9IFtdOw0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzBdID0gZmFsc2U7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICByZXR1cm4gMCA9PT0gYXJyLmxhc3RJbmRleE9mKHRydWUpOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsgDQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.15-8-b-i-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1iLWktMTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWItaS0xMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IHsgbGVuZ3RoOiAxIH07DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGVbMF0gPSBmYWxzZTsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIwIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHJldHVybiAwID09PSBBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbChvYmosIHRydWUpOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMF07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.15-8-b-i-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTgtYi1pLTEzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC1iLWktMTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhcnIgPSBbXTsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICIwIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICByZXR1cm4gMCA9PT0gYXJyLmxhc3RJbmRleE9mKHRydWUpOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-b-i-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1iLWktMTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWItaS0xNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgbGVuZ3RoOiAxIH07DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QucHJvdG90eXBlLCAiMCIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjAiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgcmV0dXJuIDAgPT09IEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKG9iaiwgdHJ1ZSk7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.15-8-b-i-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTgtYi1pLTE1IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC1iLWktMTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMCIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDEwOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjEiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAyMDsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICIyIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMzA7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICByZXR1cm4gMCA9PT0gWywgLCAsIF0ubGFzdEluZGV4T2YoMTApICYmDQogICAgICAgICAgICAgICAgMSA9PT0gWywgLCAsIF0ubGFzdEluZGV4T2YoMjApICYmDQogICAgICAgICAgICAgICAgMiA9PT0gWywgLCAsIF0ubGFzdEluZGV4T2YoMzApOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzJdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmICFbLCAxXS5oYXNPd25Qcm9wZXJ0eSgwKSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-b-i-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1iLWktMTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWItaS0xNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5wcm90b3R5cGUsICIwIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTA7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LnByb3RvdHlwZSwgIjEiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAyMDsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QucHJvdG90eXBlLCAiMiIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDMwOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgcmV0dXJuIDAgPT09IEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKHsgbGVuZ3RoOiAzIH0sIDEwKSAmJg0KICAgICAgICAgICAgICAgIDEgPT09IEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKHsgbGVuZ3RoOiAzIH0sIDIwKSAmJg0KICAgICAgICAgICAgICAgIDIgPT09IEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKHsgbGVuZ3RoOiAzIH0sIDMwKTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlWzBdOw0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMV07DQogICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZVsyXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.15-8-b-i-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTgtYi1pLTE3IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC1iLWktMTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYXJyID0gW107DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgcmV0dXJuIGFyci5sYXN0SW5kZXhPZih1bmRlZmluZWQpID09PSAwOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-b-i-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1iLWktMTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWItaS0xOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBvYmogPSB7IGxlbmd0aDogMSB9Ow0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMCIsIHsNCiAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiAwID09PSBBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbChvYmosIHVuZGVmaW5lZCk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-b-i-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1iLWktMTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWItaS0xOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgb2JqID0geyBsZW5ndGg6IDEgfTsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QucHJvdG90eXBlLCAiMCIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDIwOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIwIiwgew0KICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHJldHVybiBvYmouaGFzT3duUHJvcGVydHkoMCkgJiYgMCA9PT0gQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwob2JqLCB1bmRlZmluZWQpOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMF07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.15-8-b-i-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1iLWktMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTUvMTUuNC40LjE1LTgtYi1pLTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgcmV0dXJuIFt0cnVlLCB0cnVlLCB0cnVlXS5sYXN0SW5kZXhPZih0cnVlKSA9PT0gMiAmJg0KICAgICAgICAgICAgW3RydWUsIHRydWUsIGZhbHNlXS5sYXN0SW5kZXhPZih0cnVlKSA9PT0gMSAmJg0KICAgICAgICAgICAgW3RydWUsIGZhbHNlLCBmYWxzZV0ubGFzdEluZGV4T2YodHJ1ZSkgPT09IDA7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.15-8-b-i-20"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1iLWktMjAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWItaS0yMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIGFuIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYXJyID0gWywgMV07DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMCIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDEwMDsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICByZXR1cm4gYXJyLmhhc093blByb3BlcnR5KDApICYmIGFyci5sYXN0SW5kZXhPZih1bmRlZmluZWQpID09PSAwOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-b-i-21"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTgtYi1pLTIxIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC1iLWktMjEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICIwIiwgew0KICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICByZXR1cm4gWywgXS5sYXN0SW5kZXhPZih1bmRlZmluZWQpID09PSAwOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiAhWywgMV0uaGFzT3duUHJvcGVydHkoMCkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.15-8-b-i-22"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1iLWktMjIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWItaS0yMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LnByb3RvdHlwZSwgIjAiLCB7DQogICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHJldHVybiAwID09PSBBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbCh7IGxlbmd0aDogMSB9LCB1bmRlZmluZWQpOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMF07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.15-8-b-i-23"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTgtYi1pLTIzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC1iLWktMjMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgLSBUaGlzIG9iamVjdCBpcyB0aGUgZ2xvYmFsIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGFyZ2V0T2JqID0ge307DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICB2YXIgb2xkTGVuID0gZm5HbG9iYWxPYmplY3QoKS5sZW5ndGg7DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpWzBdID0gdGFyZ2V0T2JqOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKVsxMDBdID0gIjEwMCI7DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpWzIwMF0gPSAiMjAwIjsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KCkubGVuZ3RoID0gMjAwOw0KICAgICAgICAgICAgcmV0dXJuIDAgPT09IEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKGZuR2xvYmFsT2JqZWN0KCksIHRhcmdldE9iaikgJiYNCiAgICAgICAgICAgICAgICAxMDAgPT09IEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKGZuR2xvYmFsT2JqZWN0KCksICIxMDAiKSAmJg0KICAgICAgICAgICAgICAgIC0xID09PSBBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbChmbkdsb2JhbE9iamVjdCgpLCAiMjAwIik7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgZm5HbG9iYWxPYmplY3QoKVswXTsNCiAgICAgICAgICAgIGRlbGV0ZSBmbkdsb2JhbE9iamVjdCgpWzEwMF07DQogICAgICAgICAgICBkZWxldGUgZm5HbG9iYWxPYmplY3QoKVsyMDBdOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKS5sZW5ndGggPSBvbGRMZW47DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-b-i-25"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1iLWktMjUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWItaS0yNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiBhcHBsaWVkIHRvIEFyZ3VtZW50cyBvYmplY3Qgd2hpY2ggaW1wbGVtZW50cyBpdHMgb3duIHByb3BlcnR5IGdldCBtZXRob2QgKG51bWJlciBvZiBhcmd1bWVudHMgaXMgbGVzcyB0aGFuIG51bWJlciBvZiBwYXJhbWV0ZXJzKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgZnVuYyA9IGZ1bmN0aW9uIChhLCBiKSB7DQogICAgICAgICAgICByZXR1cm4gMCA9PT0gQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwoYXJndW1lbnRzLCBhcmd1bWVudHNbMF0pICYmDQogICAgICAgICAgICAgICAgLTEgPT09IEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKGFyZ3VtZW50cywgYXJndW1lbnRzWzFdKTsNCiAgICAgICAgfTsNCg0KICAgICAgICByZXR1cm4gZnVuYyh0cnVlKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-b-i-26"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1iLWktMjYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWItaS0yNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiBhcHBsaWVkIHRvIEFyZ3VtZW50cyBvYmplY3Qgd2hpY2ggaW1wbGVtZW50cyBpdHMgb3duIHByb3BlcnR5IGdldCBtZXRob2QgKG51bWJlciBvZiBhcmd1bWVudHMgZXF1YWxzIHRvIG51bWJlciBvZiBwYXJhbWV0ZXJzKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgZnVuYyA9IGZ1bmN0aW9uIChhLCBiKSB7DQogICAgICAgICAgICByZXR1cm4gMCA9PT0gQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwoYXJndW1lbnRzLCBhcmd1bWVudHNbMF0pICYmDQogICAgICAgICAgICAgICAgMSA9PT0gQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwoYXJndW1lbnRzLCBhcmd1bWVudHNbMV0pICYmDQogICAgICAgICAgICAgICAgLTEgPT09IEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKGFyZ3VtZW50cywgYXJndW1lbnRzWzJdKTsNCiAgICAgICAgfTsNCg0KICAgICAgICByZXR1cm4gZnVuYygwLCB0cnVlKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-b-i-27"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1iLWktMjciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWItaS0yNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiBhcHBsaWVkIHRvIEFyZ3VtZW50cyBvYmplY3Qgd2hpY2ggaW1wbGVtZW50cyBpdHMgb3duIHByb3BlcnR5IGdldCBtZXRob2QgKG51bWJlciBvZiBhcmd1bWVudHMgaXMgZ3JlYXRlciB0aGFuIG51bWJlciBvZiBwYXJhbWV0ZXJzKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgZnVuYyA9IGZ1bmN0aW9uIChhLCBiKSB7DQogICAgICAgICAgICByZXR1cm4gMiA9PT0gQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwoYXJndW1lbnRzLCBhcmd1bWVudHNbMF0pICYmDQogICAgICAgICAgICAgICAgMyA9PT0gQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwoYXJndW1lbnRzLCBhcmd1bWVudHNbM10pICYmDQogICAgICAgICAgICAgICAgLTEgPT09IEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKGFyZ3VtZW50cywgYXJndW1lbnRzWzRdKTsNCiAgICAgICAgfTsNCg0KICAgICAgICByZXR1cm4gZnVuYygwLCBhcmd1bWVudHMsIDAsIE9iamVjdC5wcm90b3R5cGUpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.15-8-b-i-28"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTgtYi1pLTI4IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC1iLWktMjguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgLSBzaWRlLWVmZmVjdHMgYXJlIHZpc2libGUgaW4gc3Vic2VxdWVudCBpdGVyYXRpb25zIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBwcmVJdGVyVmlzaWJsZSA9IGZhbHNlOw0KICAgICAgICB2YXIgYXJyID0gW107DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjIiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBwcmVJdGVyVmlzaWJsZSA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGlmIChwcmVJdGVyVmlzaWJsZSkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICByZXR1cm4gYXJyLmxhc3RJbmRleE9mKHRydWUpID09PSAxOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-b-i-29"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1iLWktMjkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWItaS0yOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiAtIHNpZGUtZWZmZWN0cyBhcmUgdmlzaWJsZSBpbiBzdWJzZXF1ZW50IGl0ZXJhdGlvbnMgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHByZUl0ZXJWaXNpYmxlID0gZmFsc2U7DQogICAgICAgIHZhciBvYmogPSB7IGxlbmd0aDogMyB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIyIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcHJlSXRlclZpc2libGUgPSB0cnVlOw0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBpZiAocHJlSXRlclZpc2libGUpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKG9iaiwgdHJ1ZSkgPT09IDE7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-b-i-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTgtYi1pLTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWItaS0zLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGRhdGEgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGVbMF0gPSBPYmplY3Q7DQogICAgICAgICAgICByZXR1cm4gW09iamVjdC5wcm90b3R5cGVdLmxhc3RJbmRleE9mKE9iamVjdC5wcm90b3R5cGUpID09PSAwOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.15-8-b-i-30"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTgtYi1pLTMwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC1iLWktMzAuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgdGVybWluYXRlcyBpdGVyYXRpb24gb24gdW5oYW5kbGVkIGV4Y2VwdGlvbiBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIGFyciA9IFtdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIyIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGFyci5sYXN0SW5kZXhPZih0cnVlKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIChlIGluc3RhbmNlb2YgVHlwZUVycm9yKSAmJiAhYWNjZXNzZWQ7DQogICAgICAgIH0NCg0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-b-i-31"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1iLWktMzEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWItaS0zMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiB0ZXJtaW5hdGVzIGl0ZXJhdGlvbiBvbiB1bmhhbmRsZWQgZXhjZXB0aW9uIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICB2YXIgb2JqID0geyBsZW5ndGg6IDMgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMiIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbChvYmosIHRydWUpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpICYmICFhY2Nlc3NlZDsNCiAgICAgICAgfQ0KDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-b-i-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1iLWktNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTUvMTUuNC40LjE1LTgtYi1pLTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gZGF0YSBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZVswXSA9IGZhbHNlOw0KICAgICAgICAgICAgcmV0dXJuIDAgPT09IEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKHsgMDogdHJ1ZSwgMTogMSwgbGVuZ3RoOiAyIH0sIHRydWUpOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMF07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-b-i-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTgtYi1pLTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWItaS01LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGRhdGEgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjAiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICByZXR1cm4gMCA9PT0gW051bWJlcl0ubGFzdEluZGV4T2YoTnVtYmVyKTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMF07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.15-8-b-i-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1iLWktNiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTUvMTUuNC40LjE1LTgtYi1pLTYuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gZGF0YSBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QucHJvdG90eXBlLCAiMCIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHJldHVybiAwID09PSBBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbCh7IDA6IHRydWUsIDE6IDEsIGxlbmd0aDogMiB9LCB0cnVlKTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlWzBdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-b-i-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTgtYi1pLTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWItaS03LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgaW5oZXJpdGVkIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVswXSA9IHRydWU7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGVbMV0gPSBmYWxzZTsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVsyXSA9ICJ0cnVlIjsNCiAgICAgICAgICAgIHJldHVybiAwID09PSBbLCAsICwgXS5sYXN0SW5kZXhPZih0cnVlKSAmJg0KICAgICAgICAgICAgICAgIDEgPT09IFssICwgLCBdLmxhc3RJbmRleE9mKGZhbHNlKSAmJg0KICAgICAgICAgICAgICAgIDIgPT09IFssICwgLCBdLmxhc3RJbmRleE9mKCJ0cnVlIik7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzBdOw0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMl07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpICYmICFbLCAxXS5oYXNPd25Qcm9wZXJ0eSgwKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.15-8-b-i-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1iLWktOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTUvMTUuNC40LjE1LTgtYi1pLTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBpbmhlcml0ZWQgZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZVswXSA9IHRydWU7DQogICAgICAgICAgICBPYmplY3QucHJvdG90eXBlWzFdID0gZmFsc2U7DQogICAgICAgICAgICBPYmplY3QucHJvdG90eXBlWzJdID0gInRydWUiOw0KICAgICAgICAgICAgcmV0dXJuIDAgPT09IEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKHsgbGVuZ3RoOiAzIH0sIHRydWUpICYmDQogICAgICAgICAgICAgICAgMSA9PT0gQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwoeyBsZW5ndGg6IDMgfSwgZmFsc2UpICYmDQogICAgICAgICAgICAgICAgMiA9PT0gQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwoeyBsZW5ndGg6IDMgfSwgInRydWUiKTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlWzBdOw0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMV07DQogICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZVsyXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.15-8-b-i-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTgtYi1pLTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE1LzE1LjQuNC4xNS04LWItaS05LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhcnIgPSBbLCAsICwgXTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjIiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMjsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgcmV0dXJuIGFyci5sYXN0SW5kZXhPZigwKSA9PT0gMCAmJiBhcnIubGFzdEluZGV4T2YoMSkgPT09IDEgJiYgYXJyLmxhc3RJbmRleE9mKDIpID09PSAyOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-b-ii-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTgtYi1paS0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC1iLWlpLTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgLSB0eXBlIG9mIGFycmF5IGVsZW1lbnQgaXMgZGlmZmVyZW50IGZyb20gdHlwZSBvZiBzZWFyY2ggZWxlbWVudCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICByZXR1cm4gWyJ0cnVlIl0ubGFzdEluZGV4T2YodHJ1ZSkgPT09IC0xICYmDQogICAgICAgICAgICBbIjAiXS5sYXN0SW5kZXhPZigwKSA9PT0gLTEgJiYNCiAgICAgICAgICAgIFtmYWxzZV0ubGFzdEluZGV4T2YoMCkgPT09IC0xICYmDQogICAgICAgICAgICBbdW5kZWZpbmVkXS5sYXN0SW5kZXhPZigwKSA9PT0gLTEgJiYNCiAgICAgICAgICAgIFtudWxsXS5sYXN0SW5kZXhPZigwKSA9PT0gLTEgJiYNCiAgICAgICAgICAgIFtbXV0ubGFzdEluZGV4T2YoMCkgPT09IC0xOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.15-8-b-ii-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTgtYi1paS0xMCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTUvMTUuNC40LjE1LTgtYi1paS0xMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiAtIGJvdGggYXJyYXkgZWxlbWVudCBhbmQgc2VhcmNoIGVsZW1lbnQgYXJlIGJvb2xlYW5zLCBhbmQgdGhleSBoYXZlIHNhbWUgdmFsdWUiLA0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHJldHVybiBbZmFsc2UsIHRydWVdLmxhc3RJbmRleE9mKHRydWUpID09PSAxOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.15-8-b-ii-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTgtYi1paS0xMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTUvMTUuNC40LjE1LTgtYi1paS0xMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiAtIGJvdGggYXJyYXkgZWxlbWVudCBhbmQgc2VhcmNoIGVsZW1lbnQgYXJlIE9iamVjdHMsIGFuZCB0aGV5IHJlZmVyIHRvIHRoZSBzYW1lIG9iamVjdCIsDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iajEgPSB7fTsNCiAgICAgICAgdmFyIG9iajIgPSB7fTsNCiAgICAgICAgdmFyIG9iajMgPSBvYmoyOw0KICAgICAgICByZXR1cm4gW29iajIsIG9iajFdLmxhc3RJbmRleE9mKG9iajMpID09PSAwOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
@ -153,6 +190,8 @@
<test id="15.4.4.15-8-b-ii-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTgtYi1paS04IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC1iLWlpLTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgLSBib3RoIGFycmF5IGVsZW1lbnQgYW5kIHNlYXJjaCBlbGVtZW50IGFyZSBudW1iZXJzLCBhbmQgdGhleSBoYXZlIHNhbWUgdmFsdWUiLA0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHJldHVybiBbLTEsIDAsIDFdLmxhc3RJbmRleE9mKC0xKSA9PT0gMDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-b-ii-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTgtYi1paS05IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC1iLWlpLTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgLSBib3RoIGFycmF5IGVsZW1lbnQgYW5kIHNlYXJjaCBlbGVtZW50IGFyZSBzdHJpbmdzLCBhbmQgdGhleSBoYXZlIGV4YWN0bHkgdGhlIHNhbWUgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyIsDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgcmV0dXJuIFsiYWJjIiwgImFiIiwgImJjYSIsICIiXS5sYXN0SW5kZXhPZigiYWJjIikgPT09IDA7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.15-8-b-iii-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE1LTgtYi1paWktMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTUvMTUuNC40LjE1LTgtYi1paWktMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiByZXR1cm5zIGluZGV4IG9mIGxhc3Qgb25lIHdoZW4gbW9yZSB0aGFuIHR3byBlbGVtZW50cyBpbiBhcnJheSBhcmUgZWxpZ2libGUiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgcmV0dXJuIFsyLCAxLCAyLCAyLCAxXS5sYXN0SW5kZXhPZigyKSA9PT0gMzsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.15-8-b-iii-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTUtOC1iLWlpaS0yIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOC1iLWlpaS0yLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mIHJldHVybnMgd2l0aG91dCB2aXNpdGluZyBzdWJzZXF1ZW50IGVsZW1lbnQgb25jZSBzZWFyY2ggdmFsdWUgaXMgZm91bmQiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBhcnIgPSBbMiwgMSwgLCAxLCAyXTsNCiAgICAgICAgdmFyIGVsZW1lbnRGaXJzdEFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIHZhciBlbGVtZW50VGhpcmRBY2Nlc3NlZCA9IGZhbHNlOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIyIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZWxlbWVudFRoaXJkQWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgIHJldHVybiAyOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBlbGVtZW50Rmlyc3RBY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0dXJuIDI7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIGFyci5sYXN0SW5kZXhPZigyKTsNCiAgICAgICAgcmV0dXJuICFlbGVtZW50VGhpcmRBY2Nlc3NlZCAmJiAhZWxlbWVudEZpcnN0QWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.15-9-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE1LTktMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOS0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgcmV0dXJucyAtMSBmb3IgZWxlbWVudHMgbm90IHByZXNlbnQiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGEgPSBuZXcgQXJyYXkoKTsNCiAgYVsxMDBdID0gMTsNCiAgYVs5OTk5OV0gPSAiIjsgIA0KICBhWzEwXSA9IG5ldyBPYmplY3QoKTsNCiAgYVs1NTU1XSA9IDUuNTsNCiAgYVsxMjM0NTZdID0gInN0ciI7DQogIGFbNV0gPSAxRSszMDk7DQogIGlmIChhLmxhc3RJbmRleE9mKDEpICE9PSAxMDAgfHwNCiAgICAgIGEubGFzdEluZGV4T2YoIiIpICE9PSA5OTk5OSB8fA0KICAgICAgYS5sYXN0SW5kZXhPZigic3RyIikgIT09IDEyMzQ1NiB8fA0KICAgICAgYS5sYXN0SW5kZXhPZig1LjUpICE9PSA1NTU1IHx8DQogICAgICBhLmxhc3RJbmRleE9mKDFFKzMwOSkgIT09IDUgKSAgICAgIA0KICB7DQogICAgcmV0dXJuIGZhbHNlOw0KICB9ICAgIA0KICBpZiAoYS5sYXN0SW5kZXhPZih0cnVlKSA9PT0gLTEgJiYgDQogICAgICBhLmxhc3RJbmRleE9mKDUpID09PSAtMSAmJg0KICAgICAgYS5sYXN0SW5kZXhPZigic3RyMSIpID09PSAtMSAmJg0KICAgICAgYS5sYXN0SW5kZXhPZihudWxsKSA9PT0gLTEgICYmDQogICAgICBhLmxhc3RJbmRleE9mKG5ldyBPYmplY3QoKSkgPT09IC0xICkgDQogIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKTsNCiB9DQp9KTsNCg==]]></test>
<test id="15.4.4.15-9-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE1LTktMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNS8xNS40LjQuMTUtOS0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgcmV0dXJucyAtMSBpZiAnbGVuZ3RoJyBpcyAwIGFuZCBkb2VzIG5vdCBhY2Nlc3MgYW55IG90aGVyIHByb3BlcnRpZXMiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogIHZhciBmID0ge2xlbmd0aDogMH07DQogIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmLCIwIix7Z2V0OiBmdW5jdGlvbiAoKSB7YWNjZXNzZWQgPSB0cnVlOyByZXR1cm4gMTt9fSk7DQogIA0KICB2YXIgaSA9IEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKGYsMSk7DQogIA0KICBpZiAoaSA9PT0gLTEgJiYgYWNjZXNzZWQ9PWZhbHNlKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KIH0NCn0pOw0K]]></test>
</section>
</testCollection>

View File

@ -2,7 +2,7 @@
<!-- adding section element if in the future we want to store information about the -->
<!-- spec structure in this file, for now the section structure is defined in the -->
<!-- sections.js file -->
<section name="Chapter - 15.4.4.16" numTests="171">
<section name="Chapter - 15.4.4.16" numTests="212">
<test id="15.4.4.16-0-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE2LTAtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNi8xNS40LjQuMTYtMC0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgbXVzdCBleGlzdCBhcyBhIGZ1bmN0aW9uIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBmID0gQXJyYXkucHJvdG90eXBlLmV2ZXJ5Ow0KICBpZiAodHlwZW9mKGYpID09PSAiZnVuY3Rpb24iKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9DQp9KTsNCg==]]></test>
<test id="15.4.4.16-0-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE2LTAtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNi8xNS40LjQuMTYtMC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkubGVuZ3RoIG11c3QgYmUgMSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICBpZiAoQXJyYXkucHJvdG90eXBlLmV2ZXJ5Lmxlbmd0aCA9PT0gMSkgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.16-1-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtMS0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNi8xNS40LjQuMTYtMS0xLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmV2ZXJ5IGFwcGxpZWQgdG8gdW5kZWZpbmVkIHRocm93cyBhIFR5cGVFcnJvciIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5ldmVyeS5jYWxsKHVuZGVmaW5lZCk7IC8vIFR5cGVFcnJvciBpcyB0aHJvd24gaWYgdmFsdWUgaXMgdW5kZWZpbmVkDQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiAoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcik7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
@ -26,6 +26,7 @@
<test id="15.4.4.16-2-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtMi0xMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTItMTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSAnbGVuZ3RoJyBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIHZhbCA+IDEwOw0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QucHJvdG90eXBlLCAibGVuZ3RoIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHZhciBvYmogPSB7IDA6IDksIDE6IDggfTsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJsZW5ndGgiLCB7DQogICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5ldmVyeS5jYWxsKG9iaiwgY2FsbGJhY2tmbikgJiYgIWFjY2Vzc2VkOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGUubGVuZ3RoOw0KICAgICAgICB9DQoNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.16-2-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtMi0xMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTItMTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgYXBwbGllZCB0byB0aGUgQXJyYXktbGlrZSBvYmplY3QgdGhhdCAnbGVuZ3RoJyBpcyBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiB2YWwgPiAxMDsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHt9Ow0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICJsZW5ndGgiLCB7DQogICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZFswXSA9IDk7DQogICAgICAgIGNoaWxkWzFdID0gODsNCg0KICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmV2ZXJ5LmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4pICYmICFhY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.16-2-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtMi0xNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTItMTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgYXBwbGllZCB0byB0aGUgQXJyYXktbGlrZSBvYmplY3QgdGhhdCAnbGVuZ3RoJyBwcm9wZXJ0eSBkb2Vzbid0IGV4aXN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIHZhbCA+IDEwOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMDogMTEsIDE6IDEyIH07DQoNCiAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5ldmVyeS5jYWxsKG9iaiwgY2FsbGJhY2tmbikgJiYgIWFjY2Vzc2VkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.16-2-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtMi0xNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTItMTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSAnbGVuZ3RoJyBpcyBwcm9wZXJ0eSBvZiB0aGUgZ2xvYmFsIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbjEodmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIHZhbCA+IDEwOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbjIodmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIHZhbCA+IDExOw0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIHZhciBvbGRMZW4gPSBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aDsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KClbMF0gPSAxMjsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KClbMV0gPSAxMTsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KClbMl0gPSA5Ow0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKS5sZW5ndGggPSAyOw0KICAgICAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5ldmVyeS5jYWxsKGZuR2xvYmFsT2JqZWN0KCksIGNhbGxiYWNrZm4xKSAmJg0KICAgICAgICAgICAgICAgICFBcnJheS5wcm90b3R5cGUuZXZlcnkuY2FsbChmbkdsb2JhbE9iamVjdCgpLCBjYWxsYmFja2ZuMik7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgZm5HbG9iYWxPYmplY3QoKVswXTsNCiAgICAgICAgICAgIGRlbGV0ZSBmbkdsb2JhbE9iamVjdCgpWzFdOw0KICAgICAgICAgICAgZGVsZXRlIGZuR2xvYmFsT2JqZWN0KClbMl07DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aCA9IG9sZExlbjsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.16-2-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtMi0xNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTItMTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgYXBwbGllZCB0byB0aGUgQXJndW1lbnRzIG9iamVjdCwgd2hpY2ggaW1wbGVtZW50cyBpdHMgb3duIHByb3BlcnR5IGdldCBtZXRob2QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4xKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiB2YWwgPiAxMDsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4yKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiB2YWwgPiAxMTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBmdW5jID0gZnVuY3Rpb24gKGEsIGIpIHsNCiAgICAgICAgICAgIGFyZ3VtZW50c1syXSA9IDk7DQogICAgICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmV2ZXJ5LmNhbGwoYXJndW1lbnRzLCBjYWxsYmFja2ZuMSkgJiYNCiAgICAgICAgICAgICAgICAhQXJyYXkucHJvdG90eXBlLmV2ZXJ5LmNhbGwoYXJndW1lbnRzLCBjYWxsYmFja2ZuMik7DQogICAgICAgIH07DQoNCiAgICAgICAgcmV0dXJuIGZ1bmMoMTIsIDExKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-2-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtMi0xOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTItMTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgYXBwbGllZCB0byBTdHJpbmcgb2JqZWN0LCB3aGljaCBpbXBsZW1lbnRzIGl0cyBvd24gcHJvcGVydHkgZ2V0IG1ldGhvZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbjEodmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KHZhbCwgMTApID4gMTsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4yKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiBwYXJzZUludCh2YWwsIDEwKSA+IDI7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgc3RyID0gbmV3IFN0cmluZygiNDMyIik7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBTdHJpbmcucHJvdG90eXBlWzNdID0gIjEiOw0KICAgICAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5ldmVyeS5jYWxsKHN0ciwgY2FsbGJhY2tmbjEpICYmDQogICAgICAgICAgICAhQXJyYXkucHJvdG90eXBlLmV2ZXJ5LmNhbGwoc3RyLCBjYWxsYmFja2ZuMik7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgU3RyaW5nLnByb3RvdHlwZVszXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.16-2-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtMi0xOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTItMTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgYXBwbGllZCB0byBGdW5jdGlvbiBvYmplY3QsIHdoaWNoIGltcGxlbWVudHMgaXRzIG93biBwcm9wZXJ0eSBnZXQgbWV0aG9kIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuMSh2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gdmFsID4gMTA7DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuMih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gdmFsID4gMTE7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgZnVuID0gZnVuY3Rpb24gKGEsIGIpIHsNCiAgICAgICAgICAgIHJldHVybiBhICsgYjsNCiAgICAgICAgfTsNCiAgICAgICAgZnVuWzBdID0gMTI7DQogICAgICAgIGZ1blsxXSA9IDExOw0KICAgICAgICBmdW5bMl0gPSA5Ow0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuZXZlcnkuY2FsbChmdW4sIGNhbGxiYWNrZm4xKSAmJg0KICAgICAgICAgICAgIUFycmF5LnByb3RvdHlwZS5ldmVyeS5jYWxsKGZ1biwgY2FsbGJhY2tmbjIpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
@ -68,6 +69,7 @@
<test id="15.4.4.16-4-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNC0xMCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTQtMTAuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSB0aGUgZXhjZXB0aW9uIGlzIG5vdCB0aHJvd24gaWYgZXhjZXB0aW9uIHdhcyB0aHJvd24gYnkgc3RlcCAyIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBvYmogPSB7IDA6IDExLCAxOiAxMiB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJsZW5ndGgiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3IoKTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5ldmVyeS5jYWxsKG9iaiwgdW5kZWZpbmVkKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZXgpIHsNCiAgICAgICAgICAgIHJldHVybiAhKGV4IGluc3RhbmNlb2YgVHlwZUVycm9yKTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-4-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNC0xMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTQtMTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSB0aGUgZXhjZXB0aW9uIGlzIG5vdCB0aHJvd24gaWYgZXhjZXB0aW9uIHdhcyB0aHJvd24gYnkgc3RlcCAzIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBvYmogPSB7IDA6IDExLCAxOiAxMiB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJsZW5ndGgiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gew0KICAgICAgICAgICAgICAgICAgICB0b1N0cmluZzogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLmV2ZXJ5LmNhbGwob2JqLCB1bmRlZmluZWQpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChleCkgew0KICAgICAgICAgICAgcmV0dXJuICEoZXggaW5zdGFuY2VvZiBUeXBlRXJyb3IpOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmV2ZXJ5KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-4-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNC0xMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTQtMTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSAnY2FsbGJhY2tmbicgaXMgYSBmdW5jdGlvbiIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiB2YWwgPiAxMDsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiAhWzExLCA5XS5ldmVyeShjYWxsYmFja2ZuKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-4-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNC0xNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTQtMTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSBjYWxsaW5nIHdpdGggbm8gY2FsbGJhY2tmbiBpcyB0aGUgc2FtZSBhcyBwYXNzaW5nIHVuZGVmaW5lZCBmb3IgY2FsbGJhY2tmbiIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IHsgMTA6IDEwIH07DQogICAgICAgIHZhciBsZW5ndGhBY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICB2YXIgbG9vcEFjY2Vzc2VkID0gZmFsc2U7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImxlbmd0aCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGxlbmd0aEFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMjA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgbG9vcEFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuZXZlcnkuY2FsbChvYmopOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChleCkgew0KICAgICAgICAgICAgcmV0dXJuIChleCBpbnN0YW5jZW9mIFR5cGVFcnJvcikgJiYgbGVuZ3RoQWNjZXNzZWQgJiYgIWxvb3BBY2Nlc3NlZDsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-4-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE2LTQtMyIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNi8xNS40LjQuMTYtNC0zLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgdGhyb3dzIFR5cGVFcnJvciBpZiBjYWxsYmFja2ZuIGlzIG51bGwiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICB2YXIgYXJyID0gbmV3IEFycmF5KDEwKTsNCiAgdHJ5IHsNCiAgICBhcnIuZXZlcnkobnVsbCk7ICAgIA0KICB9DQogIGNhdGNoKGUpIHsNCiAgICBpZihlIGluc3RhbmNlb2YgVHlwZUVycm9yKQ0KICAgICAgcmV0dXJuIHRydWU7ICANCiAgfQ0KDQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.16-4-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE2LTQtNCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNi8xNS40LjQuMTYtNC00LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgdGhyb3dzIFR5cGVFcnJvciBpZiBjYWxsYmFja2ZuIGlzIGJvb2xlYW4iLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICB2YXIgYXJyID0gbmV3IEFycmF5KDEwKTsNCiAgdHJ5IHsNCiAgICBhcnIuZXZlcnkodHJ1ZSk7ICAgIA0KICB9DQogIGNhdGNoKGUpIHsNCiAgICBpZihlIGluc3RhbmNlb2YgVHlwZUVycm9yKQ0KICAgICAgcmV0dXJuIHRydWU7ICANCiAgfQ0KDQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.16-4-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE2LTQtNSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNi8xNS40LjQuMTYtNC01LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgdGhyb3dzIFR5cGVFcnJvciBpZiBjYWxsYmFja2ZuIGlzIG51bWJlciIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogIHZhciBhcnIgPSBuZXcgQXJyYXkoMTApOw0KICB0cnkgew0KICAgIGFyci5ldmVyeSg1KTsgICAgDQogIH0NCiAgY2F0Y2goZSkgew0KICAgIGlmKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpDQogICAgICByZXR1cm4gdHJ1ZTsgIA0KICB9DQoNCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSk7DQogfQ0KfSk7DQo=]]></test>
@ -87,6 +89,7 @@
<test id="15.4.4.16-5-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNS0xOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTUtMTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSBFcnJvciBPYmplY3QgY2FuIGJlIHVzZWQgYXMgdGhpc0FyZyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIG9iakVycm9yID0gbmV3IFJhbmdlRXJyb3IoKTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiB0aGlzID09PSBvYmpFcnJvcjsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiBbMTFdLmV2ZXJ5KGNhbGxiYWNrZm4sIG9iakVycm9yKSAmJiBhY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-5-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNS0xOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTUtMTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSB0aGUgQXJndW1lbnRzIG9iamVjdCBjYW4gYmUgdXNlZCBhcyB0aGlzQXJnIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICB2YXIgYXJnOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIHRoaXMgPT09IGFyZzsNCiAgICAgICAgfQ0KDQogICAgICAgIChmdW5jdGlvbiBmdW4oKSB7DQogICAgICAgICAgICBhcmcgPSBhcmd1bWVudHM7DQogICAgICAgIH0oMSwgMiwgMykpOw0KDQogICAgICAgIHJldHVybiBbMTFdLmV2ZXJ5KGNhbGxiYWNrZm4sIGFyZykgJiYgYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmV2ZXJ5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-5-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE2LTUtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNi8xNS40LjQuMTYtNS0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSB0aGlzQXJnIGlzIE9iamVjdCIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgcmVzID0gZmFsc2U7DQogIHZhciBvID0gbmV3IE9iamVjdCgpOw0KICBvLnJlcyA9IHRydWU7DQogIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikNCiAgew0KICAgIHJldHVybiB0aGlzLnJlczsNCiAgfQ0KDQogIHZhciBhcnIgPSBbMV07DQogIGlmKGFyci5ldmVyeShjYWxsYmFja2ZuLCBvKSA9PT0gdHJ1ZSkNCiAgICByZXR1cm4gdHJ1ZTsgICAgDQoNCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.16-5-21"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNS0yMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTUtMjEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSB0aGUgZ2xvYmFsIG9iamVjdCBjYW4gYmUgdXNlZCBhcyB0aGlzQXJnIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIHRoaXMgPT09IGZuR2xvYmFsT2JqZWN0KCk7DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gWzExXS5ldmVyeShjYWxsYmFja2ZuLCBmbkdsb2JhbE9iamVjdCgpKSAmJiBhY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-5-22"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNS0yMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTUtMjIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSBib29sZWFuIHByaW1pdGl2ZSBjYW4gYmUgdXNlZCBhcyB0aGlzQXJnIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVPZigpID09PSBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiBbMTFdLmV2ZXJ5KGNhbGxiYWNrZm4sIGZhbHNlKSAmJiBhY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-5-23"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNS0yMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTUtMjMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSBudW1iZXIgcHJpbWl0aXZlIGNhbiBiZSB1c2VkIGFzIHRoaXNBcmciLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZU9mKCkgPT09IDEwMTsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiBbMTFdLmV2ZXJ5KGNhbGxiYWNrZm4sIDEwMSkgJiYgYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmV2ZXJ5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-5-24"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNS0yNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTUtMjQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSBzdHJpbmcgcHJpbWl0aXZlIGNhbiBiZSB1c2VkIGFzIHRoaXNBcmciLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZU9mKCkgPT09ICJhYmMiOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIFsxMV0uZXZlcnkoY2FsbGJhY2tmbiwgImFiYyIpICYmIGFjY2Vzc2VkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
@ -102,19 +105,55 @@
<test id="15.4.4.16-7-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE2LTctNCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNi8xNS40LjQuMTYtNy00LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgZG9lc24ndCB2aXNpdCBkZWxldGVkIGVsZW1lbnRzIHdoZW4gQXJyYXkubGVuZ3RoIGlzIGRlY3JlYXNlZCIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgeyANCiANCiAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIElkeCwgb2JqKQ0KICB7DQogICAgYXJyLmxlbmd0aCA9IDM7DQogICAgaWYodmFsIDwgNCkNCiAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICBlbHNlIA0KICAgICAgIHJldHVybiBmYWxzZTsNCiAgfQ0KDQogIHZhciBhcnIgPSBbMSwyLDMsNCw2XTsNCiAgDQogIGlmKGFyci5ldmVyeShjYWxsYmFja2ZuKSA9PT0gdHJ1ZSkgICAgDQogICAgICByZXR1cm4gdHJ1ZTsgIA0KICANCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.16-7-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE2LTctNSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNi8xNS40LjQuMTYtNy01LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgZG9lc24ndCBjb25zaWRlciBuZXdseSBhZGRlZCBlbGVtZW50cyBpbiBzcGFyc2UgYXJyYXkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsgDQogDQogIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBJZHgsIG9iaikNCiAgew0KICAgIGFyclsxMDAwXSA9IDM7DQogICAgaWYodmFsIDwgMykNCiAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICBlbHNlIA0KICAgICAgIHJldHVybiBmYWxzZTsNCiAgfQ0KDQogIHZhciBhcnIgPSBuZXcgQXJyYXkoMTApOw0KICBhcnJbMV0gPSAxOw0KICBhcnJbMl0gPSAyOw0KICANCiAgaWYoYXJyLmV2ZXJ5KGNhbGxiYWNrZm4pID09PSB0cnVlKSAgICANCiAgICAgIHJldHVybiB0cnVlOyAgDQogIA0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmV2ZXJ5KTsNCiB9DQp9KTsNCg==]]></test>
<test id="15.4.4.16-7-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE2LTctNiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNi8xNS40LjQuMTYtNy02LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgdmlzaXRzIGRlbGV0ZWQgZWxlbWVudCBpbiBhcnJheSBhZnRlciB0aGUgY2FsbCB3aGVuIHNhbWUgaW5kZXggaXMgYWxzbyBwcmVzZW50IGluIHByb3RvdHlwZSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgeyANCiANCiAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIElkeCwgb2JqKQ0KICB7DQogICAgZGVsZXRlIGFyclsyXTsNCiAgICBpZih2YWwgPT0gMykNCiAgICAgICByZXR1cm4gZmFsc2U7DQogICAgZWxzZSANCiAgICAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KDQogIEFycmF5LnByb3RvdHlwZVsyXSA9IDM7DQogIHZhciBhcnIgPSBbMSwyLDMsNCw1XTsNCiAgDQogIHZhciByZXMgPSBhcnIuZXZlcnkoY2FsbGJhY2tmbik7DQogIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMl07DQoNCiAgaWYocmVzID09PSBmYWxzZSkgICAgDQogICAgICByZXR1cm4gdHJ1ZTsgIA0KICANCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.16-7-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNC40LjE2LTctNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTctNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIERlbGV0aW5nIHRoZSBhcnJheSBpdHNlbGYgd2l0aGluIHRoZSBjYWxsYmFja2ZuIG9mIEFycmF5LnByb3RvdHlwZS5ldmVyeSBpcyBzdWNjZXNzZnVsIG9uY2UgQXJyYXkucHJvdG90eXBlLmV2ZXJ5IGlzIGNhbGxlZCBmb3IgYWxsIGVsZW1lbnRzIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgbyA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgby5hcnIgPSBbMSwgMiwgMywgNCwgNV07DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIElkeCwgb2JqKSB7DQogICAgICAgICAgICBkZWxldGUgby5hcnI7DQogICAgICAgICAgICBpZiAodmFsID09PSBJZHggKyAxKQ0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiBvLmFyci5ldmVyeShjYWxsYmFja2ZuKSAmJiAhby5oYXNPd25Qcm9wZXJ0eSgiYXJyIik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmV2ZXJ5KTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.4.4.16-7-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy04IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNi8xNS40LjQuMTYtNy04LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmV2ZXJ5IC0gbm8gb2JzZXJ2YWJsZSBlZmZlY3RzIG9jY3VyIGlmIGxlbiBpcyAwIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIHZhbCA+IDEwOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMDogMTEsIDE6IDEyLCBsZW5ndGg6IDAgfTsNCg0KICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmV2ZXJ5LmNhbGwob2JqLCBjYWxsYmFja2ZuKSAmJiAhYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmV2ZXJ5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-7-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy05IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNi8xNS40LjQuMTYtNy05LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmV2ZXJ5IC0gbW9kaWZpY2F0aW9ucyB0byBsZW5ndGggZG9uJ3QgY2hhbmdlIG51bWJlciBvZiBpdGVyYXRpb25zIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBjYWxsZWQgPSAwOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgY2FsbGVkKys7DQogICAgICAgICAgICByZXR1cm4gdmFsID4gMTA7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyAxOiAxMiwgMjogOSwgbGVuZ3RoOiAyIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBvYmoubGVuZ3RoID0gMzsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuZXZlcnkuY2FsbChvYmosIGNhbGxiYWNrZm4pICYmIDIgPT09IGNhbGxlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.16-7-b-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE2LTctYi0xIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWItMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmV2ZXJ5IC0gY2FsbGJhY2tmbiBub3QgY2FsbGVkIGZvciBpbmRleGVzIG5ldmVyIGJlZW4gYXNzaWduZWQgdmFsdWVzIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7IA0KIA0KICB2YXIgY2FsbENudCA9IDAuOw0KICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgSWR4LCBvYmopDQogIHsNCiAgICBjYWxsQ250Kys7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCg0KICB2YXIgYXJyID0gbmV3IEFycmF5KDEwKTsNCiAgYXJyWzFdID0gdW5kZWZpbmVkOyAgDQogIGFyci5ldmVyeShjYWxsYmFja2ZuKTsNCiAgaWYoIGNhbGxDbnQgPT09IDEpICAgIA0KICAgICAgcmV0dXJuIHRydWU7ICANCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.16-7-b-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1iLTEwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNi8xNS40LjQuMTYtNy1iLTEwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmV2ZXJ5IC0gZGVsZXRpbmcgcHJvcGVydHkgb2YgcHJvdG90eXBlIGNhdXNlcyBwcm90b3R5cGUgaW5kZXggcHJvcGVydHkgbm90IHRvIGJlIHZpc2l0ZWQgb24gYW4gQXJyYXktbGlrZSBPYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiBpZHggIT09IDE7DQogICAgICAgIH0NCiAgICAgICAgdmFyIGFyciA9IHsgMjogMiwgbGVuZ3RoOiAyMCB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMV07DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QucHJvdG90eXBlWzFdID0gMTsNCiAgICAgICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuZXZlcnkuY2FsbChhcnIsIGNhbGxiYWNrZm4pICYmIGFjY2Vzc2VkOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.16-7-b-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1iLTExIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNi8xNS40LjQuMTYtNy1iLTExLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmV2ZXJ5IC0gZGVsZXRpbmcgcHJvcGVydHkgb2YgcHJvdG90eXBlIGNhdXNlcyBwcm90b3R5cGUgaW5kZXggcHJvcGVydHkgbm90IHRvIGJlIHZpc2l0ZWQgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiBpZHggIT09IDE7DQogICAgICAgIH0NCiAgICAgICAgdmFyIGFyciA9IFswLCAsIDJdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVsxXSA9IDE7DQogICAgICAgICAgICByZXR1cm4gYXJyLmV2ZXJ5KGNhbGxiYWNrZm4pICYmIGFjY2Vzc2VkOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiAhWywgMV0uaGFzT3duUHJvcGVydHkoMCkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-7-b-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1iLTEyIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNi8xNS40LjQuMTYtNy1iLTEyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmV2ZXJ5IC0gZGVsZXRpbmcgb3duIHByb3BlcnR5IHdpdGggcHJvdG90eXBlIHByb3BlcnR5IGNhdXNlcyBwcm90b3R5cGUgaW5kZXggcHJvcGVydHkgdG8gYmUgdmlzaXRlZCBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxICYmIHZhbCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgdmFyIGFyciA9IHsgMDogMCwgMTogMTExLCAyOiAyLCBsZW5ndGg6IDEwIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgYXJyWzFdOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZVsxXSA9IDE7DQogICAgICAgICAgICByZXR1cm4gIUFycmF5LnByb3RvdHlwZS5ldmVyeS5jYWxsKGFyciwgY2FsbGJhY2tmbik7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-7-b-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1iLTEzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNi8xNS40LjQuMTYtNy1iLTEzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmV2ZXJ5IC0gZGVsZXRpbmcgb3duIHByb3BlcnR5IHdpdGggcHJvdG90eXBlIHByb3BlcnR5IGNhdXNlcyBwcm90b3R5cGUgaW5kZXggcHJvcGVydHkgdG8gYmUgdmlzaXRlZCBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxICYmIHZhbCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgdmFyIGFyciA9IFswLCAxMTEsIDJdOyANCiAgICAgICAgDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIGFyclsxXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVsxXSA9IDE7DQogICAgICAgICAgICByZXR1cm4gIWFyci5ldmVyeShjYWxsYmFja2ZuKTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-7-b-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1iLTE0IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNi8xNS40LjQuMTYtNy1iLTE0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmV2ZXJ5IC0gZGVjcmVhc2luZyBsZW5ndGggb2YgYXJyYXkgY2F1c2VzIGluZGV4IHByb3BlcnR5IG5vdCB0byBiZSB2aXNpdGVkIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICByZXR1cm4gaWR4ICE9PSAzOw0KICAgICAgICB9DQogICAgICAgIHZhciBhcnIgPSBbMCwgMSwgMiwgImxhc3QiXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGFyci5sZW5ndGggPSAzOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICByZXR1cm4gYXJyLmV2ZXJ5KGNhbGxiYWNrZm4pICYmIGFjY2Vzc2VkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-7-b-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1iLTE1IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNi8xNS40LjQuMTYtNy1iLTE1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmV2ZXJ5IC0gZGVjcmVhc2luZyBsZW5ndGggb2YgYXJyYXkgd2l0aCBwcm90b3R5cGUgcHJvcGVydHkgY2F1c2VzIHByb3RvdHlwZSBpbmRleCBwcm9wZXJ0eSB0byBiZSB2aXNpdGVkIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDIgJiYgdmFsID09PSAicHJvdG90eXBlIikgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgdmFyIGFyciA9IFswLCAxLCAyXTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjIiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAicHJvdG90eXBlIjsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICBhcnIubGVuZ3RoID0gMjsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICByZXR1cm4gIWFyci5ldmVyeShjYWxsYmFja2ZuKTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMl07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-7-b-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1iLTE2IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNi8xNS40LjQuMTYtNy1iLTE2LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmV2ZXJ5IC0gZGVjcmVhc2luZyBsZW5ndGggb2YgYXJyYXkgZG9lcyBub3QgZGVsZXRlIG5vbi1jb25maWd1cmFibGUgcHJvcGVydGllcyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAyICYmIHZhbCA9PT0gInVuY29uZmlndXJhYmxlIikgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIHZhciBhcnIgPSBbMCwgMSwgMl07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjIiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gInVuY29uZmlndXJhYmxlIjsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgYXJyLmxlbmd0aCA9IDI7DQogICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiAhYXJyLmV2ZXJ5KGNhbGxiYWNrZm4pOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-7-b-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1iLTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWItMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIGFkZGVkIHByb3BlcnRpZXMgaW4gc3RlcCAyIGFyZSB2aXNpYmxlIGhlcmUiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMiAmJiB2YWwgPT09ICJsZW5ndGgiKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgdmFyIGFyciA9IHsgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAibGVuZ3RoIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgYXJyWzJdID0gImxlbmd0aCI7DQogICAgICAgICAgICAgICAgcmV0dXJuIDM7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiAhQXJyYXkucHJvdG90eXBlLmV2ZXJ5LmNhbGwoYXJyLCBjYWxsYmFja2ZuKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.16-7-b-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1iLTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWItMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIGRlbGV0ZWQgcHJvcGVydGllcyBpbiBzdGVwIDIgYXJlIHZpc2libGUgaGVyZSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIGlkeCAhPT0gMjsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgYXJyID0geyAyOiA2Ljk5LCA4OiAxOX07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgImxlbmd0aCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGRlbGV0ZSBhcnJbMl07DQogICAgICAgICAgICAgICAgcmV0dXJuIDEwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmV2ZXJ5LmNhbGwoYXJyLCBjYWxsYmFja2ZuKSAmJiBhY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.16-7-b-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1iLTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWItNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIHByb3BlcnRpZXMgYWRkZWQgaW50byBvd24gb2JqZWN0IGFmdGVyIGN1cnJlbnQgcG9zaXRpb24gYXJlIHZpc2l0ZWQgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxICYmIHZhbCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIHZhciBhcnIgPSB7IGxlbmd0aDogMiB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjEiLCB7DQogICAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICByZXR1cm4gIUFycmF5LnByb3RvdHlwZS5ldmVyeS5jYWxsKGFyciwgY2FsbGJhY2tmbik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmV2ZXJ5KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-7-b-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1iLTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWItNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIHByb3BlcnRpZXMgYWRkZWQgaW50byBvd24gb2JqZWN0IGFmdGVyIGN1cnJlbnQgcG9zaXRpb24gYXJlIHZpc2l0ZWQgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSAmJiB2YWwgPT09IDEpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFswLCAsIDJdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjEiLCB7DQogICAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICByZXR1cm4gIWFyci5ldmVyeShjYWxsYmFja2ZuKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-7-b-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1iLTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWItNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIHByb3BlcnRpZXMgY2FuIGJlIGFkZGVkIHRvIHByb3RvdHlwZSBhZnRlciBjdXJyZW50IHBvc2l0aW9uIGFyZSB2aXNpdGVkIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEgJiYgdmFsID09PSA2Ljk5KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB2YXIgYXJyID0geyBsZW5ndGg6IDIgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QucHJvdG90eXBlLCAiMSIsIHsNCiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gNi45OTsNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICByZXR1cm4gIUFycmF5LnByb3RvdHlwZS5ldmVyeS5jYWxsKGFyciwgY2FsbGJhY2tmbik7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-7-b-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1iLTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWItNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIHByb3BlcnRpZXMgY2FuIGJlIGFkZGVkIHRvIHByb3RvdHlwZSBhZnRlciBjdXJyZW50IHBvc2l0aW9uIGFyZSB2aXNpdGVkIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEgJiYgdmFsID09PSA2Ljk5KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB2YXIgYXJyID0gWzAsICwgMl07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMSIsIHsNCiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gNi45OTsNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICByZXR1cm4gIWFyci5ldmVyeShjYWxsYmFja2ZuKTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgIVssIDFdLmhhc093blByb3BlcnR5KDApICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.16-7-b-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1iLTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWItOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIGRlbGV0aW5nIG93biBwcm9wZXJ0eSBjYXVzZXMgaW5kZXggcHJvcGVydHkgbm90IHRvIGJlIHZpc2l0ZWQgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiBpZHggIT09IDE7DQogICAgICAgIH0NCiAgICAgICAgdmFyIG9iaiA9IHsgbGVuZ3RoOiAyIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gNi45OTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgb2JqWzFdOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmV2ZXJ5LmNhbGwob2JqLCBjYWxsYmFja2ZuKSAmJiBhY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.16-7-b-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1iLTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWItOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIGRlbGV0aW5nIG93biBwcm9wZXJ0eSBjYXVzZXMgaW5kZXggcHJvcGVydHkgbm90IHRvIGJlIHZpc2l0ZWQgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiBpZHggIT09IDE7DQogICAgICAgIH0NCiAgICAgICAgdmFyIGFyciA9IFsxLCAyXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAiNi45OSI7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIGFyclsxXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgcmV0dXJuIGFyci5ldmVyeShjYWxsYmFja2ZuKSAmJiBhY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-7-c-i-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTctYy1pLTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIga1ZhbHVlID0geyB9Ow0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDUpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsICE9PSBrVmFsdWU7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgNToga1ZhbHVlLCBsZW5ndGg6IDEwMCB9Ow0KDQogICAgICAgIHJldHVybiAhQXJyYXkucHJvdG90eXBlLmV2ZXJ5LmNhbGwob2JqLCBjYWxsYmFja2ZuKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-7-c-i-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktMTAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWMtaS0xMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDIpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsICE9PSAxMjsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gW107DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjIiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTI7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiAhYXJyLmV2ZXJ5KGNhbGxiYWNrZm4pOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-7-c-i-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktMTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWMtaS0xMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSA1Ow0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHsgMDogNSwgMTogNiB9Ow0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQogICAgICAgIGNoaWxkLmxlbmd0aCA9IDEwOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjaGlsZCwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiAhQXJyYXkucHJvdG90eXBlLmV2ZXJ5LmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4pOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-7-c-i-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktMTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWMtaS0xMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIiBBcnJheS5wcm90b3R5cGUuZXZlcnkgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IDEwOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbXTsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVswXSA9IDEwOw0KDQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDExMTsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHJldHVybiAhYXJyLmV2ZXJ5KGNhbGxiYWNrZm4pOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-7-c-i-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktMTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWMtaS0xMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IDY7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHByb3RvID0ge307DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiA2Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZC5sZW5ndGggPSAxMDsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY2hpbGQsICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDEyOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KDQogICAgICAgIHJldHVybiAhQXJyYXkucHJvdG90eXBlLmV2ZXJ5LmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4pOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-7-c-i-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktMTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWMtaS0xNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIiBBcnJheS5wcm90b3R5cGUuZXZlcnkgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IDU7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFtdOw0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjAiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiA1Ow0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAxMTsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHJldHVybiAhYXJyLmV2ZXJ5KGNhbGxiYWNrZm4pOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-7-c-i-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktMTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWMtaS0xNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsICE9PSAxMTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7fTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDExOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZC5sZW5ndGggPSAyMDsNCg0KICAgICAgICByZXR1cm4gIUFycmF5LnByb3RvdHlwZS5ldmVyeS5jYWxsKGNoaWxkLCBjYWxsYmFja2ZuKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.16-7-c-i-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktMTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWMtaS0xNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsICE9PSAxMTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjAiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAxMTsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHJldHVybiAhWywgLCAsIF0uZXZlcnkoY2FsbGJhY2tmbik7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzBdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmV2ZXJ5KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmICFbLCAxXS5oYXNPd25Qcm9wZXJ0eSgwKSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-7-c-i-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktMTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWMtaS0xNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICJ1bmRlZmluZWQiOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgbGVuZ3RoOiAyIH07DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIxIiwgew0KICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5ldmVyeS5jYWxsKG9iaiwgY2FsbGJhY2tmbikgJiYgYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmV2ZXJ5KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-7-c-i-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktMTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWMtaS0xOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICJ1bmRlZmluZWQiOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFtdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgcmV0dXJuIGFyci5ldmVyeShjYWxsYmFja2ZuKSAmJiBhY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-7-c-i-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktMTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWMtaS0xOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgdmFsID09PSAidW5kZWZpbmVkIjsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IGxlbmd0aDogMiB9Ow0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMSIsIHsNCiAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZVsxXSA9IDEwOw0KICAgICAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5ldmVyeS5jYWxsKG9iaiwgY2FsbGJhY2tmbikgJiYgYWNjZXNzZWQ7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-7-c-i-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTctYy1pLTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgY2FsbGVkID0gMDsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGNhbGxlZCsrOw0KICAgICAgICAgICAgcmV0dXJuIHZhbCA9PT0gMTE7DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gWzExXS5ldmVyeShjYWxsYmFja2ZuKSAmJiAxID09PSBjYWxsZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmV2ZXJ5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-7-c-i-20"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktMjAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWMtaS0yMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgdmFsID09PSAidW5kZWZpbmVkIjsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGVbMF0gPSAxMDA7DQogICAgICAgICAgICByZXR1cm4gYXJyLmV2ZXJ5KGNhbGxiYWNrZm4pICYmIGFjY2Vzc2VkOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-7-c-i-21"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktMjEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWMtaS0yMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICJ1bmRlZmluZWQiOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHByb3RvID0ge307DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywgIjEiLCB7DQogICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZC5sZW5ndGggPSAyOw0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuZXZlcnkuY2FsbChjaGlsZCwgY2FsbGJhY2tmbikgJiYgYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmV2ZXJ5KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.4.4.16-7-c-i-22"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktMjIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWMtaS0yMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICJ1bmRlZmluZWQiOw0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICIwIiwgew0KICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHJldHVybiBbLCBdLmV2ZXJ5KGNhbGxiYWNrZm4pICYmIGFjY2Vzc2VkOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmV2ZXJ5KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmICFbLCAxXS5oYXNPd25Qcm9wZXJ0eSgwKSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-7-c-i-23"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktMjMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWMtaS0yMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIFRoaXMgb2JqZWN0IGlzIGFuIGdsb2JhbCBvYmplY3Qgd2hpY2ggY29udGFpbnMgaW5kZXggcHJvcGVydHkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAwKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHZhbCAhPT0gMTE7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIHZhciBvbGRMZW4gPSBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aDsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KClbMF0gPSAxMTsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KCkubGVuZ3RoID0gMTsNCiAgICAgICAgICAgIHJldHVybiAhQXJyYXkucHJvdG90eXBlLmV2ZXJ5LmNhbGwoZm5HbG9iYWxPYmplY3QoKSwgY2FsbGJhY2tmbik7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgZm5HbG9iYWxPYmplY3QoKVswXTsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KCkubGVuZ3RoID0gb2xkTGVuOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmV2ZXJ5KTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.4.4.16-7-c-i-25"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktMjUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWMtaS0yNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIFRoaXMgb2JqZWN0IGlzIHRoZSBBcmd1bWVudHMgb2JqZWN0IHdoaWNoIGltcGxlbWVudHMgaXRzIG93biBwcm9wZXJ0eSBnZXQgbWV0aG9kIChudW1iZXIgb2YgYXJndW1lbnRzIGlzIGxlc3MgdGhhbiBudW1iZXIgb2YgcGFyYW1ldGVycykiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGNhbGxlZCA9IDA7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBjYWxsZWQrKzsNCiAgICAgICAgICAgIHJldHVybiB2YWwgPT09IDExOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGZ1bmMgPSBmdW5jdGlvbiAoYSwgYikgew0KICAgICAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5ldmVyeS5jYWxsKGFyZ3VtZW50cywgY2FsbGJhY2tmbik7DQogICAgICAgIH07DQoNCiAgICAgICAgcmV0dXJuIGZ1bmMoMTEpICYmIGNhbGxlZCA9PT0gMTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-7-c-i-26"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktMjYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWMtaS0yNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIFRoaXMgb2JqZWN0IGlzIHRoZSBBcmd1bWVudHMgb2JqZWN0IHdoaWNoIGltcGxlbWVudHMgaXRzIG93biBwcm9wZXJ0eSBnZXQgbWV0aG9kIChudW1iZXIgb2YgYXJndW1lbnRzIGVxdWFscyBudW1iZXIgb2YgcGFyYW1ldGVycykiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGNhbGxlZCA9IDA7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBjYWxsZWQrKzsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSAxMTsNCiAgICAgICAgICAgIH0gZWxzZSBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHZhbCA9PT0gOTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGZ1bmMgPSBmdW5jdGlvbiAoYSwgYikgew0KICAgICAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5ldmVyeS5jYWxsKGFyZ3VtZW50cywgY2FsbGJhY2tmbik7DQogICAgICAgIH07DQoNCiAgICAgICAgcmV0dXJuIGZ1bmMoMTEsIDkpICYmIGNhbGxlZCA9PT0gMjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-7-c-i-27"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktMjciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWMtaS0yNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIFRoaXMgb2JqZWN0IGlzIHRoZSBBcmd1bWVudHMgb2JqZWN0IHdoaWNoIGltcGxlbWVudHMgaXRzIG93biBwcm9wZXJ0eSBnZXQgbWV0aG9kIChudW1iZXIgb2YgYXJndW1lbnRzIGlzIGdyZWF0ZXIgdGhhbiBudW1iZXIgb2YgcGFyYW1ldGVycykiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGNhbGxlZCA9IDA7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBjYWxsZWQrKzsNCiAgICAgICAgICAgIGlmIChpZHggPCAyKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHZhbCA+IDEwOw0KICAgICAgICAgICAgfSBlbHNlIGlmIChpZHggPT09IDIpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsIDwgMTA7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBmdW5jID0gZnVuY3Rpb24gKGEsIGIpIHsNCiAgICAgICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuZXZlcnkuY2FsbChhcmd1bWVudHMsIGNhbGxiYWNrZm4pOw0KICAgICAgICB9Ow0KDQogICAgICAgIHJldHVybiBmdW5jKDExLCAxMiwgOSkgJiYgY2FsbGVkID09PSAzOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.16-7-c-i-28"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktMjgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWMtaS0yOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIGVsZW1lbnQgY2hhbmdlZCBieSBnZXR0ZXIgb24gcHJldmlvdXMgaXRlcmF0aW9ucyBpcyBvYnNlcnZlZCBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgcHJlSXRlclZpc2libGUgPSBmYWxzZTsNCiAgICAgICAgdmFyIGFyciA9IFtdOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIHZhbCA+IDEwOw0KICAgICAgICB9DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBwcmVJdGVyVmlzaWJsZSA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0dXJuIDExOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGlmIChwcmVJdGVyVmlzaWJsZSkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gOTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICByZXR1cm4gIWFyci5ldmVyeShjYWxsYmFja2ZuKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-7-c-i-29"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktMjkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWMtaS0yOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIGVsZW1lbnQgY2hhbmdlZCBieSBnZXR0ZXIgb24gcHJldmlvdXMgaXRlcmF0aW9ucyBpcyBvYnNlcnZlZCBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gdmFsID4gMTA7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJlSXRlclZpc2libGUgPSBmYWxzZTsNCiAgICAgICAgdmFyIG9iaiA9IHsgbGVuZ3RoOiAyIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBwcmVJdGVyVmlzaWJsZSA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0dXJuIDExOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGlmIChwcmVJdGVyVmlzaWJsZSkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gOTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTM7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICByZXR1cm4gIUFycmF5LnByb3RvdHlwZS5ldmVyeS5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmV2ZXJ5KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-7-c-i-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTctYy1pLTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gZGF0YSBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDUpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSAxMDA7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHByb3RvID0geyAwOiAxMSwgNTogMTAwIH07DQoNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb24oKTsNCiAgICAgICAgY2hpbGRbNV0gPSAiYWJjIjsNCiAgICAgICAgY2hpbGQubGVuZ3RoID0gMTA7DQoNCiAgICAgICAgcmV0dXJuICFBcnJheS5wcm90b3R5cGUuZXZlcnkuY2FsbChjaGlsZCwgY2FsbGJhY2tmbik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmV2ZXJ5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-7-c-i-30"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktMzAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWMtaS0zMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIHVubmhhbmRsZWQgZXhjZXB0aW9ucyBoYXBwZW5lZCBpbiBnZXR0ZXIgdGVybWluYXRlIGl0ZXJhdGlvbiBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID4gMSkgew0KICAgICAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMDogMTEsIDU6IDEwLCAxMDogOCwgbGVuZ3RoOiAyMCB9Ow0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCJ1bmhhbmRsZSBleGNlcHRpb24gaGFwcGVuZWQgaW4gZ2V0dGVyIik7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuZXZlcnkuY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChleCkgew0KICAgICAgICAgICAgcmV0dXJuIChleCBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpICYmICFhY2Nlc3NlZDsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-7-c-i-31"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktMzEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWMtaS0zMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5ldmVyeSAtIHVuaGFuZGxlZCBleGNlcHRpb25zIGhhcHBlbmVkIGluIGdldHRlciB0ZXJtaW5hdGUgaXRlcmF0aW9uIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPiAxKSB7DQogICAgICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gW107DQogICAgICAgIGFycls1XSA9IDEwOw0KICAgICAgICBhcnJbMTBdID0gMTAwOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoInVuaGFuZGxlIGV4Y2VwdGlvbiBoYXBwZW5lZCBpbiBnZXR0ZXIiKTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGFyci5ldmVyeShjYWxsYmFja2ZuKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZXgpIHsNCiAgICAgICAgICAgIHJldHVybiAoZXggaW5zdGFuY2VvZiBSYW5nZUVycm9yKSAmJiAhYWNjZXNzZWQ7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-7-c-i-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTctYy1pLTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gZGF0YSBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIGNhbGxlZCA9IDA7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgY2FsbGVkKys7DQogICAgICAgICAgICByZXR1cm4gdmFsID09PSAxMjsNCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGVbMF0gPSAxMTsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVsxXSA9IDExOw0KDQogICAgICAgICAgICByZXR1cm4gWzEyLCAxMl0uZXZlcnkoY2FsbGJhY2tmbikgJiYgY2FsbGVkID09PSAyOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-7-c-i-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTctYy1pLTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gZGF0YSBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAwKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHZhbCA9PT0gNTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7fTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDU7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQogICAgICAgIGNoaWxkLmxlbmd0aCA9IDI7DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjaGlsZCwgIjAiLCB7DQogICAgICAgICAgICB2YWx1ZTogMTEsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQogICAgICAgIGNoaWxkWzFdID0gMTI7DQoNCiAgICAgICAgcmV0dXJuICFBcnJheS5wcm90b3R5cGUuZXZlcnkuY2FsbChjaGlsZCwgY2FsbGJhY2tmbik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmV2ZXJ5KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-7-c-i-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktNiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTctYy1pLTYuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gZGF0YSBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICByZXR1cm4gdmFsID09PSAxMTsNCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMCIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDk7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgcmV0dXJuIFsxMV0uZXZlcnkoY2FsbGJhY2tmbikgJiYgYWNjZXNzZWQ7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzBdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmV2ZXJ5KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.16-7-c-i-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTctYy1pLTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBpbmhlcml0ZWQgZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIga1ZhbHVlID0gJ2FiYyc7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSA1KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHZhbCAhPT0ga1ZhbHVlOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHsgNToga1ZhbHVlIH07DQoNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb24oKTsNCiAgICAgICAgY2hpbGQubGVuZ3RoID0gMTA7DQoNCiAgICAgICAgcmV0dXJuICFBcnJheS5wcm90b3R5cGUuZXZlcnkuY2FsbChjaGlsZCwgY2FsbGJhY2tmbik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmV2ZXJ5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-7-c-i-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTctYy1pLTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBpbmhlcml0ZWQgZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsICE9PSAxMzsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzFdID0gMTM7DQogICAgICAgICAgICByZXR1cm4gIVssICwgLCBdLmV2ZXJ5KGNhbGxiYWNrZm4pOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSkgJiYgIVssIDFdLmhhc093blByb3BlcnR5KDApOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-7-c-i-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWktOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTctYy1pLTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAwKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHZhbCAhPT0gMTE7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMTA6IDEwLCBsZW5ndGg6IDIwIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KICAgICAgICANCiAgICAgICAgcmV0dXJuICFBcnJheS5wcm90b3R5cGUuZXZlcnkuY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-7-c-ii-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE2LTctYy1paS0xIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE2LzE1LjQuNC4xNi03LWMtaWktMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmV2ZXJ5IC0gY2FsbGJhY2tmbiBjYWxsZWQgd2l0aCBjb3JyZWN0IHBhcmFtZXRlcnMiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsgDQogDQogIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBJZHgsIG9iaikNCiAgew0KICAgIGlmKG9ialtJZHhdID09PSB2YWwpDQogICAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KDQogIHZhciBhcnIgPSBbMCwxLDIsMyw0LDUsNiw3LDgsOV07DQogIA0KICBpZihhcnIuZXZlcnkoY2FsbGJhY2tmbikgPT09IHRydWUpDQogICAgcmV0dXJuIHRydWU7DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.16-7-c-ii-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWlpLTEwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNi8xNS40LjQuMTYtNy1jLWlpLTEwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmV2ZXJ5IC0gY2FsbGJhY2tmbiBpcyBjYWxsZWQgd2l0aCAxIGZvcm1hbCBwYXJhbWV0ZXIiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGNhbGxlZCA9IDA7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwpIHsNCiAgICAgICAgICAgIGNhbGxlZCsrOw0KICAgICAgICAgICAgcmV0dXJuIHZhbCA+IDEwOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIFsxMSwgMTJdLmV2ZXJ5KGNhbGxiYWNrZm4pICYmIDIgPT09IGNhbGxlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-7-c-ii-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWlpLTExIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNi8xNS40LjQuMTYtNy1jLWlpLTExLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmV2ZXJ5IC0gY2FsbGJhY2tmbiBpcyBjYWxsZWQgd2l0aCAyIGZvcm1hbCBwYXJhbWV0ZXIiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGNhbGxlZCA9IDA7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCkgew0KICAgICAgICAgICAgY2FsbGVkKys7DQogICAgICAgICAgICByZXR1cm4gdmFsID4gMTAgJiYgYXJndW1lbnRzWzJdW2lkeF0gPT09IHZhbDsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiBbMTEsIDEyXS5ldmVyeShjYWxsYmFja2ZuKSAmJiAyID09PSBjYWxsZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmV2ZXJ5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
@ -154,6 +193,8 @@
<test id="15.4.4.16-7-c-iii-23"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWlpaS0yMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTctYy1paWktMjMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSByZXR1cm4gdmFsdWUgb2YgY2FsbGJhY2tmbiBpcyB0aGUgSlNPTiBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICByZXR1cm4gSlNPTjsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiBbMTFdLmV2ZXJ5KGNhbGxiYWNrZm4pICYmIGFjY2Vzc2VkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.16-7-c-iii-24"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWlpaS0yNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTctYy1paWktMjQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSByZXR1cm4gdmFsdWUgb2YgY2FsbGJhY2tmbiBpcyBhbiBFcnJvciBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICByZXR1cm4gbmV3IEV2YWxFcnJvcigpOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIFsxMV0uZXZlcnkoY2FsbGJhY2tmbikgJiYgYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmV2ZXJ5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-7-c-iii-25"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWlpaS0yNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTctYy1paWktMjUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSByZXR1cm4gdmFsdWUgb2YgY2FsbGJhY2tmbiBpcyB0aGUgQXJndW1lbnRzIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiBhcmd1bWVudHM7DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gWzExXS5ldmVyeShjYWxsYmFja2ZuKSAmJiBhY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-7-c-iii-27"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWlpaS0yNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTctYy1paWktMjcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSByZXR1cm4gdmFsdWUgb2YgY2FsbGJhY2tmbiBpcyB0aGUgZ2xvYmFsIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiBmbkdsb2JhbE9iamVjdCgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIFsxMV0uZXZlcnkoY2FsbGJhY2tmbikgJiYgYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmV2ZXJ5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-7-c-iii-28"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWlpaS0yOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTctYy1paWktMjguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSBmYWxzZSBwcmV2ZW50cyBmdXJ0aGVyIHNpZGUgZWZmZWN0cyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgcmVzdWx0ID0gZmFsc2U7DQogICAgICAgIHZhciBvYmogPSB7IGxlbmd0aDogMjAgfTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPiAxKSB7DQogICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiB2YWwgPiAxMDsNCiAgICAgICAgfQ0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDExOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiA4Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMiIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0dXJuIDg7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiAhQXJyYXkucHJvdG90eXBlLmV2ZXJ5LmNhbGwob2JqLCBjYWxsYmFja2ZuKSAmJiAhcmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-7-c-iii-29"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWlpaS0yOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTYvMTUuNC40LjE2LTctYy1paWktMjkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZXZlcnkgLSByZXR1cm4gdmFsdWUgKG5ldyBCb29sZWFuKGZhbHNlKSkgb2YgY2FsbGJhY2tmbiBpcyB0cmVhdGVkIGFzIHRydWUgdmFsdWUiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICByZXR1cm4gbmV3IEJvb2xlYW4oZmFsc2UpOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIFsxMV0uZXZlcnkoY2FsbGJhY2tmbikgJiYgYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmV2ZXJ5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.16-7-c-iii-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWlpaS0zIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNi8xNS40LjQuMTYtNy1jLWlpaS0zLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmV2ZXJ5IC0gcmV0dXJuIHZhbHVlIG9mIGNhbGxiYWNrZm4gaXMgYSBib29sZWFuICh2YWx1ZSBpcyBmYWxzZSkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIHZhciBvYmogPSB7IDA6IDExLCBsZW5ndGg6IDEgfTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiAhQXJyYXkucHJvdG90eXBlLmV2ZXJ5LmNhbGwob2JqLCBjYWxsYmFja2ZuKSAmJiBhY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZXZlcnkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.16-7-c-iii-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTYtNy1jLWlpaS00IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNi8xNS40LjQuMTYtNy1jLWlpaS00LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmV2ZXJ5IC0gcmV0dXJuIHZhbHVlIG9mIGNhbGxiYWNrZm4gaXMgYSBib29sZWFuICh2YWx1ZSBpcyB0cnVlKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIG9iaiA9IHsgMDogMTEsIGxlbmd0aDogMSB9Ow0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCg0KICAgICAgIA0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuZXZlcnkuY2FsbChvYmosIGNhbGxiYWNrZm4pICYmIGFjY2Vzc2VkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5ldmVyeSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>

View File

@ -2,7 +2,7 @@
<!-- adding section element if in the future we want to store information about the -->
<!-- spec structure in this file, for now the section structure is defined in the -->
<!-- sections.js file -->
<section name="Chapter - 15.4.4.17" numTests="171">
<section name="Chapter - 15.4.4.17" numTests="213">
<test id="15.4.4.17-0-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE3LTAtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctMC0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSBtdXN0IGV4aXN0IGFzIGEgZnVuY3Rpb24iLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGYgPSBBcnJheS5wcm90b3R5cGUuc29tZTsNCiAgaWYgKHR5cGVvZihmKSA9PT0gImZ1bmN0aW9uIikgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.17-0-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE3LTAtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctMC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZS5sZW5ndGggbXVzdCBiZSAxIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIGlmIChBcnJheS5wcm90b3R5cGUuc29tZS5sZW5ndGggPT09IDEpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.17-1-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctMS0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctMS0xLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnNvbWUgYXBwbGllZCB0byB1bmRlZmluZWQgdGhyb3dzIGEgVHlwZUVycm9yIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbCh1bmRlZmluZWQpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
@ -26,6 +26,7 @@
<test id="15.4.4.17-2-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctMi0xMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTItMTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtICdsZW5ndGgnIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICByZXR1cm4gdmFsID4gMTA7DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5wcm90b3R5cGUsICJsZW5ndGgiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAyOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgdmFyIG9iaiA9IHsgMDogMTEsIDE6IDEyIH07DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAibGVuZ3RoIiwgew0KICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHJldHVybiAhQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbChvYmosIGNhbGxiYWNrZm4pICYmICFhY2Nlc3NlZDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlLmxlbmd0aDsNCiAgICAgICAgfQ0KDQogICAgfSwNCg0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.17-2-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctMi0xMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTItMTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtICdsZW5ndGgnIGlzIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIHZhbCA+IDEwOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHByb3RvID0ge307DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywgImxlbmd0aCIsIHsNCiAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQogICAgICAgIGNoaWxkWzBdID0gMTE7DQogICAgICAgIGNoaWxkWzFdID0gMTI7DQoNCiAgICAgICAgcmV0dXJuICFBcnJheS5wcm90b3R5cGUuc29tZS5jYWxsKGNoaWxkLCBjYWxsYmFja2ZuKSAmJiAhYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.17-2-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctMi0xNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTItMTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtICdsZW5ndGgnIHByb3BlcnR5IGRvZXNuJ3QgZXhpc3Qgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICByZXR1cm4gdmFsID4gMTA7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyAwOiAxMSwgMTogMTIgfTsNCg0KICAgICAgICByZXR1cm4gIUFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwob2JqLCBjYWxsYmFja2ZuKSAmJiAhYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.17-2-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctMi0xNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTItMTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtICdsZW5ndGgnIGlzIHByb3BlcnR5IG9mIHRoZSBnbG9iYWwgb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuMSh2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gdmFsID4gMTA7DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuMih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gdmFsID4gMTE7DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgdmFyIG9sZExlbiA9IGZuR2xvYmFsT2JqZWN0KCkubGVuZ3RoOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKVswXSA9IDk7DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpWzFdID0gMTE7DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpWzJdID0gMTI7DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aCA9IDI7DQogICAgICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbChmbkdsb2JhbE9iamVjdCgpLCBjYWxsYmFja2ZuMSkgJiYNCiAgICAgICAgICAgICAgICAhQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbChmbkdsb2JhbE9iamVjdCgpLCBjYWxsYmFja2ZuMik7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgZm5HbG9iYWxPYmplY3QoKVswXTsNCiAgICAgICAgICAgIGRlbGV0ZSBmbkdsb2JhbE9iamVjdCgpWzFdOw0KICAgICAgICAgICAgZGVsZXRlIGZuR2xvYmFsT2JqZWN0KClbMl07DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aCA9IG9sZExlbjsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.17-2-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctMi0xNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTItMTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSBhcHBsaWVkIHRvIHRoZSBBcmd1bWVudHMgb2JqZWN0IHdoaWNoIGltcGxlbWVudHMgaXRzIG93biBwcm9wZXJ0eSBnZXQgbWV0aG9kIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuMSh2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gdmFsID4gMTA7DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuMih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gdmFsID4gMTE7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgZnVuYyA9IGZ1bmN0aW9uIChhLCBiKSB7DQogICAgICAgICAgICBhcmd1bWVudHNbMl0gPSAxMjsNCiAgICAgICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc29tZS5jYWxsKGFyZ3VtZW50cywgY2FsbGJhY2tmbjEpICYmDQogICAgICAgICAgICAgICAgIUFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwoYXJndW1lbnRzLCBjYWxsYmFja2ZuMik7DQogICAgICAgIH07DQoNCiAgICAgICAgcmV0dXJuIGZ1bmMoOSwgMTEpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.17-2-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctMi0xOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTItMTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSBhcHBsaWVkIHRvIFN0cmluZyBvYmplY3Qgd2hpY2ggaW1wbGVtZW50cyBpdHMgb3duIHByb3BlcnR5IGdldCBtZXRob2QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4xKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiBwYXJzZUludCh2YWwsIDEwKSA+IDE7DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuMih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQodmFsLCAxMCkgPiAyOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHN0ciA9IG5ldyBTdHJpbmcoIjEyIik7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBTdHJpbmcucHJvdG90eXBlWzJdID0gIjMiOw0KICAgICAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwoc3RyLCBjYWxsYmFja2ZuMSkgJiYNCiAgICAgICAgICAgICAgICAhQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbChzdHIsIGNhbGxiYWNrZm4yKTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBTdHJpbmcucHJvdG90eXBlWzJdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.17-2-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctMi0xOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTItMTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSBhcHBsaWVkIHRvIEZ1bmN0aW9uIG9iamVjdCB3aGljaCBpbXBsZW1lbnRzIGl0cyBvd24gcHJvcGVydHkgZ2V0IG1ldGhvZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbjEodmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIHZhbCA+IDEwOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbjIodmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIHZhbCA+IDExOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGZ1biA9IGZ1bmN0aW9uIChhLCBiKSB7DQogICAgICAgICAgICByZXR1cm4gYSArIGI7DQogICAgICAgIH07DQogICAgICAgIGZ1blswXSA9IDk7DQogICAgICAgIGZ1blsxXSA9IDExOw0KICAgICAgICBmdW5bMl0gPSAxMjsNCg0KICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbChmdW4sIGNhbGxiYWNrZm4xKSAmJg0KICAgICAgICAgICAgIUFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwoZnVuLCBjYWxsYmFja2ZuMik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
@ -68,6 +69,7 @@
<test id="15.4.4.17-4-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNC0xMCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTQtMTAuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIHRoZSBleGNlcHRpb24gaXMgbm90IHRocm93biBpZiBleGNlcHRpb24gd2FzIHRocm93biBieSBzdGVwIDIiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMDogMTEsIDE6IDEyIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImxlbmd0aCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBTeW50YXhFcnJvcigpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbChvYmosIHVuZGVmaW5lZCk7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGV4KSB7DQogICAgICAgICAgICByZXR1cm4gIShleCBpbnN0YW5jZW9mIFR5cGVFcnJvcik7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.17-4-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNC0xMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTQtMTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIHRoZSBleGNlcHRpb24gaXMgbm90IHRocm93biBpZiBleGNlcHRpb24gd2FzIHRocm93biBieSBzdGVwIDMiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMDogMTEsIDE6IDEyIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImxlbmd0aCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiB7DQogICAgICAgICAgICAgICAgICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3IoKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuc29tZS5jYWxsKG9iaiwgdW5kZWZpbmVkKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZXgpIHsNCiAgICAgICAgICAgIHJldHVybiAhKGV4IGluc3RhbmNlb2YgVHlwZUVycm9yKTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.17-4-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNC0xMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTQtMTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtICdjYWxsYmFja2ZuJyBpcyBhIGZ1bmN0aW9uIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIHZhbCA+IDEwOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIFs5LCAxMV0uc29tZShjYWxsYmFja2ZuKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.17-4-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNC0xNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTQtMTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIGNhbGxpbmcgd2l0aCBubyBjYWxsYmFja2ZuIGlzIHRoZSBzYW1lIGFzIHBhc3NpbmcgdW5kZWZpbmVkIGZvciBjYWxsYmFja2ZuIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgb2JqID0geyB9Ow0KICAgICAgICB2YXIgbGVuZ3RoQWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIGxvb3BBY2Nlc3NlZCA9IGZhbHNlOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJsZW5ndGgiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBsZW5ndGhBY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0dXJuIDIwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBsb29wQWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgIHJldHVybiAxMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwob2JqKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZXgpIHsNCiAgICAgICAgICAgIHJldHVybiAoZXggaW5zdGFuY2VvZiBUeXBlRXJyb3IpICYmIGxlbmd0aEFjY2Vzc2VkICYmICFsb29wQWNjZXNzZWQ7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.17-4-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE3LTQtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctNC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSB0aHJvd3MgUmVmZXJlbmNlRXJyb3IgaWYgY2FsbGJhY2tmbiBpcyB1bnJlZmVyZW5jZWQiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICB2YXIgYXJyID0gbmV3IEFycmF5KDEwKTsNCiAgdHJ5IHsNCiAgICBhcnIuc29tZShmb28pOyAgICANCiAgfQ0KICBjYXRjaChlKSB7DQogICAgaWYoZSBpbnN0YW5jZW9mIFJlZmVyZW5jZUVycm9yKQ0KICAgICAgcmV0dXJuIHRydWU7ICANCiAgfQ0KDQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.17-4-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE3LTQtMyIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctNC0zLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSB0aHJvd3MgVHlwZUVycm9yIGlmIGNhbGxiYWNrZm4gaXMgbnVsbCIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogIHZhciBhcnIgPSBuZXcgQXJyYXkoMTApOw0KICB0cnkgew0KICAgIGFyci5zb21lKG51bGwpOyAgICANCiAgfQ0KICBjYXRjaChlKSB7DQogICAgaWYoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikNCiAgICAgIHJldHVybiB0cnVlOyAgDQogIH0NCg0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.17-4-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE3LTQtNCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctNC00LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSB0aHJvd3MgVHlwZUVycm9yIGlmIGNhbGxiYWNrZm4gaXMgYm9vbGVhbiIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogIHZhciBhcnIgPSBuZXcgQXJyYXkoMTApOw0KICB0cnkgew0KICAgIGFyci5zb21lKHRydWUpOyAgICANCiAgfQ0KICBjYXRjaChlKSB7DQogICAgaWYoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikNCiAgICAgIHJldHVybiB0cnVlOyAgDQogIH0NCg0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpOw0KIH0NCn0pOw0K]]></test>
@ -88,9 +90,11 @@
<test id="15.4.4.17-5-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNS0xOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTUtMTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIEVycm9yIG9iamVjdCBjYW4gYmUgdXNlZCBhcyB0aGlzQXJnIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBvYmpFcnJvciA9IG5ldyBSYW5nZUVycm9yKCk7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gdGhpcyA9PT0gb2JqRXJyb3I7DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gWzExXS5zb21lKGNhbGxiYWNrZm4sIG9iakVycm9yKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.17-5-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNS0xOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTUtMTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIHRoZSBBcmd1bWVudHMgb2JqZWN0IGNhbiBiZSB1c2VkIGFzIHRoaXNBcmciLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFyZzsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiB0aGlzID09PSBhcmc7DQogICAgICAgIH0NCg0KICAgICAgICAoZnVuY3Rpb24gZnVuKCkgew0KICAgICAgICAgICAgYXJnID0gYXJndW1lbnRzOw0KICAgICAgICB9KDEsIDIsIDMpKTsNCg0KICAgICAgICByZXR1cm4gWzExXS5zb21lKGNhbGxiYWNrZm4sIGFyZyk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.17-5-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE3LTUtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctNS0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIHRoaXNBcmcgaXMgT2JqZWN0IiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciByZXMgPSBmYWxzZTsNCiAgdmFyIG8gPSBuZXcgT2JqZWN0KCk7DQogIG8ucmVzID0gdHJ1ZTsNCiAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKQ0KICB7DQogICAgcmV0dXJuIHRoaXMucmVzOw0KICB9DQoNCiAgdmFyIGFyciA9IFsxXTsNCiAgaWYoYXJyLnNvbWUoY2FsbGJhY2tmbiwgbykgPT09IHRydWUpDQogICAgcmV0dXJuIHRydWU7ICAgIA0KDQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.17-5-21"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNS0yMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTUtMjEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIHRoZSBnbG9iYWwgb2JqZWN0IGNhbiBiZSB1c2VkIGFzIHRoaXNBcmciLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiB0aGlzID09PSBmbkdsb2JhbE9iamVjdCgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIFsxMV0uc29tZShjYWxsYmFja2ZuLCBmbkdsb2JhbE9iamVjdCgpKTsNCiAgICB9LA0KDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.17-5-22"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNS0yMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTUtMjIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIGJvb2xlYW4gcHJpbWl0aXZlIGNhbiBiZSB1c2VkIGFzIHRoaXNBcmciLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZU9mKCkgPT09IGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIFsxMV0uc29tZShjYWxsYmFja2ZuLCBmYWxzZSk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.17-5-23"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNS0yMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTUtMjMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIG51bWJlciBwcmltaXRpdmUgY2FuIGJlIHVzZWQgYXMgdGhpc0FyZyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlT2YoKSA9PT0gMTAxOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIFsxMV0uc29tZShjYWxsYmFja2ZuLCAxMDEpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.17-5-24"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNS0yNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTUtMjQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIHN0cmluZyBwcmltaXRpdmUgY2FuIGJlIHVzZWQgYXMgdGhpc0FyZyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlT2YoKSA9PT0gImFiYyI7DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gWzExXS5zb21lKGNhbGxiYWNrZm4sICJhYmMiKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.17-5-25"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNC40LjE3LTUtMjUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy01LTI1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnNvbWUgLSB0aGlzQXJnIG5vdCBwYXNzZWQiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIGZ1bmN0aW9uIGlubmVyT2JqKCkgew0KICAgICAgICAgICAgdGhpcy5fMTVfNF80XzE3XzVfMjUgPSB0cnVlOw0KICAgICAgICAgICAgdmFyIF8xNV80XzRfMTdfNV8yNSA9IGZhbHNlOw0KICAgICAgICAgICAgDQogICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fMTVfNF80XzE3XzVfMjU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB2YXIgYXJyID0gWzFdOw0KICAgICAgICAgICAgdGhpcy5yZXRWYWwgPSAhYXJyLnNvbWUoY2FsbGJhY2tmbik7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIG5ldyBpbm5lck9iaigpLnJldFZhbDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.4.4.17-5-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE3LTUtMyIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctNS0zLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIHRoaXNBcmcgaXMgQXJyYXkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIHJlcyA9IGZhbHNlOw0KICB2YXIgYSA9IG5ldyBBcnJheSgpOw0KICBhLnJlcyA9IHRydWU7DQogIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikNCiAgew0KICAgIHJldHVybiB0aGlzLnJlczsNCiAgfQ0KDQogIHZhciBhcnIgPSBbMV07DQoNCiAgaWYoYXJyLnNvbWUoY2FsbGJhY2tmbiwgYSkgPT09IHRydWUpDQogICAgcmV0dXJuIHRydWU7ICAgIA0KDQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.17-5-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE3LTUtNCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctNS00LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIHRoaXNBcmcgaXMgb2JqZWN0IGZyb20gb2JqZWN0IHRlbXBsYXRlKHByb3RvdHlwZSkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIHJlcyA9IGZhbHNlOw0KICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopDQogIHsNCiAgICByZXR1cm4gdGhpcy5yZXM7DQogIH0NCiAgDQogIGZ1bmN0aW9uIGZvbygpe30NCiAgZm9vLnByb3RvdHlwZS5yZXMgPSB0cnVlOw0KICB2YXIgZiA9IG5ldyBmb28oKTsNCiAgdmFyIGFyciA9IFsxXTsNCg0KICAgIGlmKGFyci5zb21lKGNhbGxiYWNrZm4sZikgPT09IHRydWUpDQogICAgICByZXR1cm4gdHJ1ZTsgICAgDQoNCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKTsNCiB9DQp9KTsNCg==]]></test>
<test id="15.4.4.17-5-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE3LTUtNSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctNS01LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIHRoaXNBcmcgaXMgb2JqZWN0IGZyb20gb2JqZWN0IHRlbXBsYXRlIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciByZXMgPSBmYWxzZTsNCiAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKQ0KICB7DQogICAgcmV0dXJuIHRoaXMucmVzOw0KICB9DQoNCiAgZnVuY3Rpb24gZm9vKCl7fQ0KICB2YXIgZiA9IG5ldyBmb28oKTsNCiAgZi5yZXMgPSB0cnVlOw0KICB2YXIgYXJyID0gWzFdOw0KDQogIGlmKGFyci5zb21lKGNhbGxiYWNrZm4sZikgPT09IHRydWUpDQogICAgcmV0dXJuIHRydWU7ICAgIA0KDQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSk7DQogfQ0KfSk7DQo=]]></test>
@ -103,18 +107,54 @@
<test id="15.4.4.17-7-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE3LTctNCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctNy00LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSBkb2Vzbid0IHZpc2l0IGRlbGV0ZWQgZWxlbWVudHMgd2hlbiBBcnJheS5sZW5ndGggaXMgZGVjcmVhc2VkIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7IA0KIA0KICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopDQogIHsNCiAgICBhcnIubGVuZ3RoID0gMzsNCiAgICBpZih2YWwgPCA0KQ0KICAgICAgcmV0dXJuIGZhbHNlOw0KICAgIGVsc2UgDQogICAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KICANCiAgdmFyIGFyciA9IFsxLDIsMyw0LDZdOw0KICANCiAgaWYoYXJyLnNvbWUoY2FsbGJhY2tmbikgPT09IGZhbHNlKSAgICANCiAgICByZXR1cm4gdHJ1ZTsgICAgDQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.17-7-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE3LTctNSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctNy01LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSBkb2Vzbid0IGNvbnNpZGVyIG5ld2x5IGFkZGVkIGVsZW1lbnRzIGluIHNwYXJzZSBhcnJheSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgeyANCiANCiAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKQ0KICB7DQogICAgYXJyWzEwMDBdID0gNTsNCiAgICBpZih2YWwgPCA1KQ0KICAgICAgcmV0dXJuIGZhbHNlOw0KICAgIGVsc2UgDQogICAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KDQogIHZhciBhcnIgPSBuZXcgQXJyYXkoMTApOw0KICBhcnJbMV0gPSAxOw0KICBhcnJbMl0gPSAyOw0KICANCiAgaWYoYXJyLnNvbWUoY2FsbGJhY2tmbikgPT09IGZhbHNlKSAgICANCiAgICByZXR1cm4gdHJ1ZTsgIA0KIA0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.17-7-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE3LTctNiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctNy02LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSB2aXNpdHMgZGVsZXRlZCBlbGVtZW50IGluIGFycmF5IGFmdGVyIHRoZSBjYWxsIHdoZW4gc2FtZSBpbmRleCBpcyBhbHNvIHByZXNlbnQgaW4gcHJvdG90eXBlIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7IA0KIA0KICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopDQogIHsNCiAgICBkZWxldGUgYXJyWzRdOw0KICAgIGlmKHZhbCA8IDUpDQogICAgICByZXR1cm4gZmFsc2U7DQogICAgZWxzZSANCiAgICAgIHJldHVybiB0cnVlOw0KICB9DQoNCg0KICBBcnJheS5wcm90b3R5cGVbNF0gPSA1Ow0KICB2YXIgYXJyID0gWzEsMiwzLDQsNV07DQogIA0KICB2YXIgcmVzID0gYXJyLnNvbWUoY2FsbGJhY2tmbikgOw0KICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzRdOw0KICBpZihyZXMgPT09IHRydWUpICAgIA0KICAgIHJldHVybiB0cnVlOyAgDQogIA0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.17-7-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy04IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctNy04LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnNvbWUgLSBubyBvYnNlcnZhYmxlIGVmZmVjdHMgb2NjdXIgaWYgbGVuZ3RoIGlzIDAiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICByZXR1cm4gdmFsID4gMTA7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyAwOiAxMSwgMTogMTIsIGxlbmd0aDogMCB9Ow0KDQogICAgICAgIHJldHVybiAhQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbChvYmosIGNhbGxiYWNrZm4pICYmICFhY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.17-7-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy05IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctNy05LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnNvbWUgLSBtb2RpZmljYXRpb25zIHRvIGxlbmd0aCBkb24ndCBjaGFuZ2UgbnVtYmVyIG9mIGl0ZXJhdGlvbnMiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGNhbGxlZCA9IDA7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBjYWxsZWQrKzsNCiAgICAgICAgICAgIHJldHVybiB2YWwgPiAxMDsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IDA6IDksIDI6IDEyLCBsZW5ndGg6IDMgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIG9iai5sZW5ndGggPSAyOw0KICAgICAgICAgICAgICAgIHJldHVybiA4Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbChvYmosIGNhbGxiYWNrZm4pICYmIGNhbGxlZCA9PT0gMzsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.17-7-b-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE3LTctYi0xIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWItMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnNvbWUgLSBjYWxsYmFja2ZuIG5vdCBjYWxsZWQgZm9yIGluZGV4ZXMgbmV2ZXIgYmVlbiBhc3NpZ25lZCB2YWx1ZXMiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsgDQoNCiAgdmFyIGNhbGxDbnQgPSAwOyANCiAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKQ0KICB7DQogICAgY2FsbENudCsrOw0KICAgIHJldHVybiBmYWxzZTsNCiAgfQ0KDQogIHZhciBhcnIgPSBuZXcgQXJyYXkoMTApOw0KICBhcnJbMV0gPSB1bmRlZmluZWQ7DQogIGFyci5zb21lKGNhbGxiYWNrZm4pOw0KICBpZihjYWxsQ250ID09PSAxKSAgICANCiAgICAgIHJldHVybiB0cnVlOyAgDQogIA0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.17-7-b-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1iLTEwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctNy1iLTEwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnNvbWUgLSBkZWxldGluZyBwcm9wZXJ0eSBvZiBwcm90b3R5cGUgY2F1c2VzIHByb3RvdHlwZSBpbmRleCBwcm9wZXJ0eSBub3QgdG8gYmUgdmlzaXRlZCBvbiBhbiBBcnJheS1saWtlIE9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIGlkeCA9PT0gMTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgYXJyID0geyAyOiAyLCBsZW5ndGg6IDIwIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZVsxXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGVbMV0gPSAxOw0KICAgICAgICAgICAgcmV0dXJuICFBcnJheS5wcm90b3R5cGUuc29tZS5jYWxsKGFyciwgY2FsbGJhY2tmbikgJiYgYWNjZXNzZWQ7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.17-7-b-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1iLTExIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctNy1iLTExLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnNvbWUgLSBkZWxldGluZyBwcm9wZXJ0eSBvZiBwcm90b3R5cGUgY2F1c2VzIHByb3RvdHlwZSBpbmRleCBwcm9wZXJ0eSBub3QgdG8gYmUgdmlzaXRlZCBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIGlkeCA9PT0gMTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgYXJyID0gWzAsICwgMl07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzFdOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzFdID0gMTsNCiAgICAgICAgICAgIHJldHVybiAhYXJyLnNvbWUoY2FsbGJhY2tmbikgJiYgYWNjZXNzZWQ7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzFdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgIVssIDFdLmhhc093blByb3BlcnR5KDApICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.17-7-b-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1iLTEyIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctNy1iLTEyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnNvbWUgLSBkZWxldGluZyBvd24gcHJvcGVydHkgd2l0aCBwcm90b3R5cGUgcHJvcGVydHkgY2F1c2VzIHByb3RvdHlwZSBpbmRleCBwcm9wZXJ0eSB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEgJiYgdmFsID09PSAxKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB2YXIgYXJyID0geyAwOiAwLCAxOiAxMTEsIDI6IDIsIGxlbmd0aDogMTAgfTsNCiAgICAgICAgDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIGFyclsxXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGVbMV0gPSAxOw0KICAgICAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwoYXJyLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlWzFdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.17-7-b-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1iLTEzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctNy1iLTEzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnNvbWUgLSBkZWxldGluZyBvd24gcHJvcGVydHkgd2l0aCBwcm90b3R5cGUgcHJvcGVydHkgY2F1c2VzIHByb3RvdHlwZSBpbmRleCBwcm9wZXJ0eSB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEgJiYgdmFsID09PSAxKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB2YXIgYXJyID0gWzAsIDExMSwgMl07IA0KICAgICAgICANCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgYXJyWzFdOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzFdID0gMTsNCiAgICAgICAgICAgIHJldHVybiBhcnIuc29tZShjYWxsYmFja2ZuKTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.17-7-b-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1iLTE0IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctNy1iLTE0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnNvbWUgLSBkZWNyZWFzaW5nIGxlbmd0aCBvZiBhcnJheSBjYXVzZXMgaW5kZXggcHJvcGVydHkgbm90IHRvIGJlIHZpc2l0ZWQiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiBpZHggPT09IDM7DQogICAgICAgIH0NCiAgICAgICAgdmFyIGFyciA9IFswLCAxLCAyLCAibGFzdCJdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgYXJyLmxlbmd0aCA9IDM7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiAhYXJyLnNvbWUoY2FsbGJhY2tmbikgJiYgYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.17-7-b-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1iLTE1IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctNy1iLTE1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnNvbWUgLSBkZWNyZWFzaW5nIGxlbmd0aCBvZiBhcnJheSB3aXRoIHByb3RvdHlwZSBwcm9wZXJ0eSBjYXVzZXMgcHJvdG90eXBlIGluZGV4IHByb3BlcnR5IHRvIGJlIHZpc2l0ZWQiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMiAmJiB2YWwgPT09ICJwcm90b3R5cGUiKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB2YXIgYXJyID0gWzAsIDEsIDJdOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMiIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJwcm90b3R5cGUiOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjEiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIGFyci5sZW5ndGggPSAyOw0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHJldHVybiBhcnIuc29tZShjYWxsYmFja2ZuKTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMl07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.17-7-b-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1iLTE2IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctNy1iLTE2LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnNvbWUgLSBkZWNyZWFzaW5nIGxlbmd0aCBvZiBhcnJheSBkb2VzIG5vdCBkZWxldGUgbm9uLWNvbmZpZ3VyYWJsZSBwcm9wZXJ0aWVzIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDIgJiYgdmFsID09PSAidW5jb25maWd1cmFibGUiKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgdmFyIGFyciA9IFswLCAxLCAyXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMiIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAidW5jb25maWd1cmFibGUiOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBhcnIubGVuZ3RoID0gMjsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgcmV0dXJuIGFyci5zb21lKGNhbGxiYWNrZm4pOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.17-7-b-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1iLTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWItMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gYWRkZWQgcHJvcGVydGllcyBpbiBzdGVwIDIgYXJlIHZpc2libGUgaGVyZSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAyICYmIHZhbCA9PT0gImxlbmd0aCIpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICB2YXIgYXJyID0geyB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICJsZW5ndGgiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBhcnJbMl0gPSAibGVuZ3RoIjsNCiAgICAgICAgICAgICAgICByZXR1cm4gMzsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwoYXJyLCBjYWxsYmFja2ZuKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.17-7-b-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1iLTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWItMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gZGVsZXRlZCBwcm9wZXJ0aWVzIGluIHN0ZXAgMiBhcmUgdmlzaWJsZSBoZXJlIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICByZXR1cm4gaWR4ID09PSAyOw0KICAgICAgICB9DQogICAgICAgIHZhciBhcnIgPSB7IDI6IDYuOTksIDg6IDE5fTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAibGVuZ3RoIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIGFyclsyXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiAhQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbChhcnIsIGNhbGxiYWNrZm4pICYmIGFjY2Vzc2VkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.17-7-b-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1iLTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWItNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gcHJvcGVydGllcyBhZGRlZCBpbnRvIG93biBvYmplY3QgYWZ0ZXIgY3VycmVudCBwb3NpdGlvbiBhcmUgdmlzaXRlZCBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEgJiYgdmFsID09PSAxKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgdmFyIGFyciA9IHsgbGVuZ3RoOiAyIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc29tZS5jYWxsKGFyciwgY2FsbGJhY2tmbik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.17-7-b-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1iLTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWItNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gcHJvcGVydGllcyBhZGRlZCBpbnRvIG93biBvYmplY3QgYWZ0ZXIgY3VycmVudCBwb3NpdGlvbiBhcmUgdmlzaXRlZCBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxICYmIHZhbCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWzAsICwgMl07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiBhcnIuc29tZShjYWxsYmFja2ZuKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.17-7-b-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1iLTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWItNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gcHJvcGVydGllcyBjYW4gYmUgYWRkZWQgdG8gcHJvdG90eXBlIGFmdGVyIGN1cnJlbnQgcG9zaXRpb24gYXJlIHZpc2l0ZWQgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSAmJiB2YWwgPT09IDYuOTkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHZhciBhcnIgPSB7IGxlbmd0aDogMiB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5wcm90b3R5cGUsICIxIiwgew0KICAgICAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA2Ljk5Ow0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc29tZS5jYWxsKGFyciwgY2FsbGJhY2tmbik7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.17-7-b-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1iLTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWItNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gcHJvcGVydGllcyBjYW4gYmUgYWRkZWQgdG8gcHJvdG90eXBlIGFmdGVyIGN1cnJlbnQgcG9zaXRpb24gYXJlIHZpc2l0ZWQgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSAmJiB2YWwgPT09IDYuOTkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHZhciBhcnIgPSBbMCwgLCAyXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICIxIiwgew0KICAgICAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA2Ljk5Ow0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIHJldHVybiBhcnIuc29tZShjYWxsYmFja2ZuKTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiAhWywgMV0uaGFzT3duUHJvcGVydHkoMCkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.17-7-b-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1iLTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWItOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gZGVsZXRpbmcgb3duIHByb3BlcnR5IGNhdXNlcyBpbmRleCBwcm9wZXJ0eSBub3QgdG8gYmUgdmlzaXRlZCBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIGlkeCA9PT0gMTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgYXJyID0geyBsZW5ndGg6IDIgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiA2Ljk5Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGRlbGV0ZSBhcnJbMV07DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiAhQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbChhcnIsIGNhbGxiYWNrZm4pICYmIGFjY2Vzc2VkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.17-7-b-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1iLTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWItOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gZGVsZXRpbmcgb3duIHByb3BlcnR5IGNhdXNlcyBpbmRleCBwcm9wZXJ0eSBub3QgdG8gYmUgdmlzaXRlZCBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIGlkeCA9PT0gMTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgYXJyID0gWzEsIDJdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuICI2Ljk5IjsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgYXJyWzFdOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICByZXR1cm4gIWFyci5zb21lKGNhbGxiYWNrZm4pICYmIGFjY2Vzc2VkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.17-7-c-i-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTctYy1pLTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBrVmFsdWUgPSB7fTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDUpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSBrVmFsdWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyA1OiBrVmFsdWUsIGxlbmd0aDogMTAwIH07DQoNCiAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwob2JqLCBjYWxsYmFja2ZuKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.17-7-c-i-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktMTAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWMtaS0xMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBrVmFsdWUgPSAiYWJjIjsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEwKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHZhbCA9PT0ga1ZhbHVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFtdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiBrVmFsdWU7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiBhcnIuc29tZShjYWxsYmFja2ZuKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.17-7-c-i-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktMTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWMtaS0xMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBrVmFsdWUgPSAiYWJjIjsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSBrVmFsdWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7IDE6IDYgfTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZC5sZW5ndGggPSAxMDsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY2hpbGQsICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGtWYWx1ZTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4pOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.17-7-c-i-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktMTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWMtaS0xMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIiBBcnJheS5wcm90b3R5cGUuc29tZSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIga1ZhbHVlID0gImFiYyI7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHZhbCA9PT0ga1ZhbHVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICB2YXIgYXJyID0gW107DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGVbMV0gPSAxMDA7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGtWYWx1ZTsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHJldHVybiBhcnIuc29tZShjYWxsYmFja2ZuKTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.17-7-c-i-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktMTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWMtaS0xMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIga1ZhbHVlID0gImFiYyI7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHZhbCA9PT0ga1ZhbHVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHByb3RvID0ge307DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiA1Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZC5sZW5ndGggPSAxMDsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY2hpbGQsICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGtWYWx1ZTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCg0KICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbChjaGlsZCwgY2FsbGJhY2tmbik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.17-7-c-i-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktMTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWMtaS0xNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIiBBcnJheS5wcm90b3R5cGUuc29tZSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGtWYWx1ZSA9ICJhYmMiOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IGtWYWx1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbXTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4ga1ZhbHVlOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjEiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAxMDsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHJldHVybiBhcnIuc29tZShjYWxsYmFja2ZuKTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.17-7-c-i-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktMTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWMtaS0xNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBrVmFsdWUgPSAiYWJjIjsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSBrVmFsdWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7fTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGtWYWx1ZTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb24oKTsNCiAgICAgICAgY2hpbGQubGVuZ3RoID0gMjA7DQoNCiAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4pOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.17-7-c-i-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktMTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWMtaS0xNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBrVmFsdWUgPSAiYWJjIjsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSBrVmFsdWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjEiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBrVmFsdWU7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICByZXR1cm4gWywgLCBdLnNvbWUoY2FsbGJhY2tmbik7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzFdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgIVssIDFdLmhhc093blByb3BlcnR5KDApICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.17-7-c-i-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktMTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWMtaS0xNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICJ1bmRlZmluZWQiOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgbGVuZ3RoOiAyIH07DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIxIiwgew0KICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwob2JqLCBjYWxsYmFja2ZuKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.17-7-c-i-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktMTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWMtaS0xOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAwKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICJ1bmRlZmluZWQiOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFtdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgcmV0dXJuIGFyci5zb21lKGNhbGxiYWNrZm4pOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.17-7-c-i-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktMTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWMtaS0xOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHJldHVybiB0eXBlb2YgdmFsID09PSAidW5kZWZpbmVkIjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IGxlbmd0aDogMiB9Ow0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMSIsIHsNCiAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZVsxXSA9IDEwOw0KICAgICAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwob2JqLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlWzFdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.17-7-c-i-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTctYy1pLTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBrVmFsdWUgPSB7fTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICByZXR1cm4ga1ZhbHVlID09PSB2YWw7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gW2tWYWx1ZV0uc29tZShjYWxsYmFja2ZuKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.17-7-c-i-20"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktMjAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWMtaS0yMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIHJldHVybiB0eXBlb2YgdmFsID09PSAidW5kZWZpbmVkIjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGVbMF0gPSAxMDA7DQogICAgICAgICAgICByZXR1cm4gYXJyLnNvbWUoY2FsbGJhY2tmbik7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzBdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.17-7-c-i-21"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktMjEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWMtaS0yMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICJ1bmRlZmluZWQiOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHByb3RvID0ge307DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywgIjEiLCB7DQogICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZC5sZW5ndGggPSAyOw0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc29tZS5jYWxsKGNoaWxkLCBjYWxsYmFja2ZuKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.4.4.17-7-c-i-22"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktMjIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWMtaS0yMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAwKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICJ1bmRlZmluZWQiOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICIwIiwgew0KICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHJldHVybiBbLCBdLnNvbWUoY2FsbGJhY2tmbik7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzBdOw0KICAgICAgICB9DQoNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiAhWywgMV0uaGFzT3duUHJvcGVydHkoMCkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.17-7-c-i-23"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktMjMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWMtaS0yMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gVGhpcyBvYmplY3QgaXMgYW4gZ2xvYmFsIG9iamVjdCB3aGljaCBjb250YWlucyBpbmRleCBwcm9wZXJ0eSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSAxMTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICB2YXIgb2xkTGVuID0gZm5HbG9iYWxPYmplY3QoKS5sZW5ndGg7DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpWzBdID0gMTE7DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aCA9IDE7DQogICAgICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbChmbkdsb2JhbE9iamVjdCgpLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBmbkdsb2JhbE9iamVjdCgpWzBdOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKS5sZW5ndGggPSBvbGRMZW47DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.4.4.17-7-c-i-25"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktMjUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWMtaS0yNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gVGhpcyBvYmplY3QgaXMgdGhlIEFyZ3VtZW50cyBvYmplY3Qgd2hpY2ggaW1wbGVtZW50cyBpdHMgb3duIHByb3BlcnR5IGdldCBtZXRob2QgKG51bWJlciBvZiBhcmd1bWVudHMgaXMgbGVzcyB0aGFuIG51bWJlciBvZiBwYXJhbWV0ZXJzKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSAxMTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBmdW5jID0gZnVuY3Rpb24gKGEsIGIpIHsNCiAgICAgICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc29tZS5jYWxsKGFyZ3VtZW50cywgY2FsbGJhY2tmbik7DQogICAgICAgIH07DQoNCiAgICAgICAgcmV0dXJuIGZ1bmMoMTEpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.17-7-c-i-26"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktMjYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWMtaS0yNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gVGhpcyBvYmplY3QgaXMgdGhlIEFyZ3VtZW50cyBvYmplY3Qgd2hpY2ggaW1wbGVtZW50cyBpdHMgb3duIHByb3BlcnR5IGdldCBtZXRob2QgKG51bWJlciBvZiBhcmd1bWVudHMgZXF1YWxzIG51bWJlciBvZiBwYXJhbWV0ZXJzKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgZmlyc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgdmFyIHNlY29uZFJlc3VsdCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIGZpcnN0UmVzdWx0ID0gKHZhbCA9PT0gMTEpOw0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0gZWxzZSBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgc2Vjb25kUmVzdWx0ID0gKHZhbCA9PT0gOSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBmdW5jID0gZnVuY3Rpb24gKGEsIGIpIHsNCiAgICAgICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc29tZS5jYWxsKGFyZ3VtZW50cywgY2FsbGJhY2tmbik7DQogICAgICAgIH07DQoNCiAgICAgICAgcmV0dXJuICFmdW5jKDExLCA5KSAmJiBmaXJzdFJlc3VsdCAmJiBzZWNvbmRSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.17-7-c-i-27"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktMjciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWMtaS0yNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gVGhpcyBvYmplY3QgaXMgdGhlIEFyZ3VtZW50cyBvYmplY3Qgd2hpY2ggaW1wbGVtZW50cyBpdHMgb3duIHByb3BlcnR5IGdldCBtZXRob2QgKG51bWJlciBvZiBhcmd1bWVudHMgaXMgZ3JlYXRlciB0aGFuIG51bWJlciBvZiBwYXJhbWV0ZXJzKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgZmlyc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgdmFyIHNlY29uZFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICB2YXIgdGhpcmRSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICBmaXJzdFJlc3VsdCA9ICh2YWwgPT09IDExKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGVsc2UgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHNlY29uZFJlc3VsdCA9ICh2YWwgPT09IDEyKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGVsc2UgaWYgKGlkeCA9PT0gMikgew0KICAgICAgICAgICAgICAgIHRoaXJkUmVzdWx0ID0gKHZhbCA9PT0gOSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBmdW5jID0gZnVuY3Rpb24gKGEsIGIpIHsNCiAgICAgICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc29tZS5jYWxsKGFyZ3VtZW50cywgY2FsbGJhY2tmbik7DQogICAgICAgIH07DQoNCiAgICAgICAgcmV0dXJuICFmdW5jKDExLCAxMiwgOSkgJiYgZmlyc3RSZXN1bHQgJiYgc2Vjb25kUmVzdWx0ICYmIHRoaXJkUmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.17-7-c-i-28"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktMjgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWMtaS0yOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gZWxlbWVudCBjaGFuZ2VkIGJ5IGdldHRlciBvbiBwcmV2aW91cyBpdGVyYXRpb25zIGlzIG9ic2VydmVkIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IDEyOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFtdOw0KICAgICAgICB2YXIgaGVscFZlcmlmeVZhciA9IDExOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGhlbHBWZXJpZnlWYXI7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoYXJncykgew0KICAgICAgICAgICAgICAgIGhlbHBWZXJpZnlWYXIgPSBhcmdzOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGFyclsxXSA9IDEyOw0KICAgICAgICAgICAgICAgIHJldHVybiA5Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICByZXR1cm4gYXJyLnNvbWUoY2FsbGJhY2tmbik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.17-7-c-i-29"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktMjkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWMtaS0yOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gZWxlbWVudCBjaGFuZ2VkIGJ5IGdldHRlciBvbiBwcmV2aW91cyBpdGVyYXRpb25zIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IDEyOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgbGVuZ3RoOiAyIH07DQogICAgICAgIHZhciBoZWxwVmVyaWZ5VmFyID0gMTE7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gaGVscFZlcmlmeVZhcjsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uIChhcmdzKSB7DQogICAgICAgICAgICAgICAgaGVscFZlcmlmeVZhciA9IGFyZ3M7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgb2JqWzFdID0gMTI7DQogICAgICAgICAgICAgICAgcmV0dXJuIDExOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.17-7-c-i-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTctYy1pLTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBkYXRhIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBrVmFsdWUgPSAiYWJjIjsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDUpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSBrVmFsdWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7IDU6IDEwMCB9Ow0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQogICAgICAgIGNoaWxkWzVdID0ga1ZhbHVlOw0KICAgICAgICBjaGlsZC5sZW5ndGggPSAxMDsNCg0KICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbChjaGlsZCwgY2FsbGJhY2tmbik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.17-7-c-i-30"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktMzAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWMtaS0zMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gdW5oYW5kbGVkIGV4Y2VwdGlvbnMgaGFwcGVuZWQgaW4gZ2V0dGVyIHRlcm1pbmF0ZSBpdGVyYXRpb24gb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA+IDEpIHsNCiAgICAgICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IGxlbmd0aDogMjAgfTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcigidW5oYW5kbGUgZXhjZXB0aW9uIGhhcHBlbmVkIGluIGdldHRlciIpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChleCkgew0KICAgICAgICAgICAgcmV0dXJuIGV4IGluc3RhbmNlb2YgUmFuZ2VFcnJvciAmJiAhYWNjZXNzZWQ7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.17-7-c-i-31"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktMzEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWMtaS0zMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5zb21lIC0gdW5oYW5kbGVkIGV4Y2VwdGlvbnMgaGFwcGVuZWQgaW4gZ2V0dGVyIHRlcm1pbmF0ZSBpdGVyYXRpb24gb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA+IDApIHsNCiAgICAgICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbXTsNCiAgICAgICAgYXJyWzEwXSA9IDEwMDsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcigidW5oYW5kbGUgZXhjZXB0aW9uIGhhcHBlbmVkIGluIGdldHRlciIpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgYXJyLnNvbWUoY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGV4KSB7DQogICAgICAgICAgICByZXR1cm4gZXggaW5zdGFuY2VvZiBSYW5nZUVycm9yICYmICFhY2Nlc3NlZDsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.17-7-c-i-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTctYy1pLTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBkYXRhIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBrVmFsdWUgPSAiYWJjIjsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSBrVmFsdWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzBdID0gMTE7DQoNCiAgICAgICAgICAgIHJldHVybiBba1ZhbHVlXS5zb21lKGNhbGxiYWNrZm4pOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.17-7-c-i-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTctYy1pLTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBkYXRhIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIga1ZhbHVlID0gMTAwMDsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSBrVmFsdWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7fTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDU7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQogICAgICAgIGNoaWxkLmxlbmd0aCA9IDI7DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjaGlsZCwgIjAiLCB7DQogICAgICAgICAgICB2YWx1ZToga1ZhbHVlLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc29tZS5jYWxsKGNoaWxkLCBjYWxsYmFja2ZuKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.17-7-c-i-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktNiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTctYy1pLTYuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBkYXRhIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIga1ZhbHVlID0gMTAwMDsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSBrVmFsdWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjAiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiA5Ow0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHJldHVybiBba1ZhbHVlXS5zb21lKGNhbGxiYWNrZm4pOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.17-7-c-i-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTctYy1pLTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIGluaGVyaXRlZCBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBrVmFsdWUgPSAnYWJjJzsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmICg1ID09PSBpZHgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4ga1ZhbHVlID09PSB2YWw7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7IDU6IGtWYWx1ZSB9Ow0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQogICAgICAgIGNoaWxkLmxlbmd0aCA9IDEwOw0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc29tZS5jYWxsKGNoaWxkLCBjYWxsYmFja2ZuKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.17-7-c-i-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTctYy1pLTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIGluaGVyaXRlZCBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBrVmFsdWUgPSB7fTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmICgwID09PSBpZHgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4ga1ZhbHVlID09PSB2YWw7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzBdID0ga1ZhbHVlOw0KDQogICAgICAgICAgICByZXR1cm4gWywgXS5zb21lKGNhbGxiYWNrZm4pOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKSAmJiAhWywgMV0uaGFzT3duUHJvcGVydHkoMCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.17-7-c-i-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWktOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTctYy1pLTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIga1ZhbHVlID0gImFiYyI7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxMCkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IGtWYWx1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IGxlbmd0aDogMjAgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMTAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4ga1ZhbHVlOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.17-7-c-ii-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE3LTctYy1paS0xIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE3LzE1LjQuNC4xNy03LWMtaWktMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnNvbWUgLSBjYWxsYmFja2ZuIGNhbGxlZCB3aXRoIGNvcnJlY3QgcGFyYW1ldGVycyIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgeyANCiANCiAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKQ0KICB7DQogICAgaWYob2JqW2lkeF0gPT09IHZhbCkNCiAgICAgIHJldHVybiBmYWxzZTsNCiAgICBlbHNlDQogICAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KDQogIHZhciBhcnIgPSBbMCwxLDIsMyw0LDUsNiw3LDgsOV07DQogIA0KICBpZihhcnIuc29tZShjYWxsYmFja2ZuKSA9PT0gZmFsc2UpDQogICAgcmV0dXJuIHRydWU7DQoNCg0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.17-7-c-ii-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWlpLTEwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctNy1jLWlpLTEwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnNvbWUgLSBjYWxsYmFja2ZuIGlzIGNhbGxlZCB3aXRoIDEgZm9ybWFsIHBhcmFtZXRlciIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCkgew0KICAgICAgICAgICAgcmV0dXJuIHZhbCA+IDEwOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIFsxMSwgMTJdLnNvbWUoY2FsbGJhY2tmbik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.17-7-c-ii-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWlpLTExIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctNy1jLWlpLTExLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnNvbWUgLSBjYWxsYmFja2ZuIGlzIGNhbGxlZCB3aXRoIDIgZm9ybWFsIHBhcmFtZXRlciIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCkgew0KICAgICAgICAgICAgcmV0dXJuIHZhbCA+IDEwICYmIGFyZ3VtZW50c1syXVtpZHhdID09PSB2YWw7DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gWzksIDEyXS5zb21lKGNhbGxiYWNrZm4pOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKTsNCiAgICB9DQoNCn0pOw0K]]></test>
@ -154,6 +194,8 @@
<test id="15.4.4.17-7-c-iii-23"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWlpaS0yMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTctYy1paWktMjMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIHJldHVybiB2YWx1ZSBvZiBjYWxsYmFja2ZuIGlzIHRoZSBKU09OIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiBKU09OOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIFsxMV0uc29tZShjYWxsYmFja2ZuKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.17-7-c-iii-24"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWlpaS0yNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTctYy1paWktMjQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIHJldHVybiB2YWx1ZSBvZiBjYWxsYmFja2ZuIGlzIGFuIEVycm9yIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiBuZXcgRXZhbEVycm9yKCk7DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gWzExXS5zb21lKGNhbGxiYWNrZm4pOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.17-7-c-iii-25"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWlpaS0yNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTctYy1paWktMjUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIHJldHVybiB2YWx1ZSBvZiBjYWxsYmFja2ZuIGlzIHRoZSBBcmd1bWVudHMgb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIGFyZ3VtZW50czsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiBbMTFdLnNvbWUoY2FsbGJhY2tmbik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.17-7-c-iii-26"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWlpaS0yNiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTctYy1paWktMjYuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIHJldHVybiB2YWx1ZSBvZiBjYWxsYmFja2ZuIGlzIHRoZSBnbG9iYWwgb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIGZuR2xvYmFsT2JqZWN0KCk7DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gWzExXS5zb21lKGNhbGxiYWNrZm4pOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5zb21lKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.17-7-c-iii-28"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWlpaS0yOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTctYy1paWktMjguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIHRydWUgcHJldmVudHMgZnVydGhlciBzaWRlIGVmZmVjdHMiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciByZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID4gMSkgew0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gdmFsID4gMTA7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyBsZW5ndGg6IDIwIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gODsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIyIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc29tZS5jYWxsKG9iaiwgY2FsbGJhY2tmbikgJiYgIXJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.17-7-c-iii-29"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWlpaS0yOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTcvMTUuNC40LjE3LTctYy1paWktMjkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuc29tZSAtIHJldHVybiB2YWx1ZSAobmV3IEJvb2xlYW4oZmFsc2UpKSBvZiBjYWxsYmFja2ZuIGlzIHRyZWF0ZWQgYXMgdHJ1ZSB2YWx1ZSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKCkgew0KICAgICAgICAgICAgcmV0dXJuIG5ldyBCb29sZWFuKGZhbHNlKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiBbMTFdLnNvbWUoY2FsbGJhY2tmbik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnNvbWUpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.17-7-c-iii-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWlpaS0zIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctNy1jLWlpaS0zLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnNvbWUgLSByZXR1cm4gdmFsdWUgb2YgY2FsbGJhY2tmbiBpcyBhIGJvb2xlYW4gKHZhbHVlIGlzIGZhbHNlKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IDA6IDExLCBsZW5ndGg6IDIgfTsNCg0KICAgICAgICByZXR1cm4gIUFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwob2JqLCBjYWxsYmFja2ZuKSAmJiBhY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.17-7-c-iii-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTctNy1jLWlpaS00IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNy8xNS40LjQuMTctNy1jLWlpaS00LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnNvbWUgLSByZXR1cm4gdmFsdWUgb2YgY2FsbGJhY2tmbiBpcyBhIGJvb2xlYW4gKHZhbHVlIGlzIHRydWUpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyAwOiAxMSwgbGVuZ3RoOiAyIH07DQoNCiAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwob2JqLCBjYWxsYmFja2ZuKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuc29tZSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>

View File

@ -2,7 +2,7 @@
<!-- adding section element if in the future we want to store information about the -->
<!-- spec structure in this file, for now the section structure is defined in the -->
<!-- sections.js file -->
<section name="Chapter - 15.4.4.18" numTests="145">
<section name="Chapter - 15.4.4.18" numTests="185">
<test id="15.4.4.18-0-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE4LTAtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOC8xNS40LjQuMTgtMC0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCBtdXN0IGV4aXN0IGFzIGEgZnVuY3Rpb24iLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGYgPSBBcnJheS5wcm90b3R5cGUuZm9yRWFjaDsNCiAgaWYgKHR5cGVvZihmKSA9PT0gImZ1bmN0aW9uIikgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.18-0-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE4LTAtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOC8xNS40LjQuMTgtMC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5sZW5ndGggbXVzdCBiZSAxIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIGlmIChBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5sZW5ndGggPT09IDEpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.18-1-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtMS0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOC8xNS40LjQuMTgtMS0xLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZvckVhY2ggYXBwbGllZCB0byB1bmRlZmluZWQiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHVuZGVmaW5lZCk7IC8vIFR5cGVFcnJvciBpcyB0aHJvd24gaWYgdmFsdWUgaXMgdW5kZWZpbmVkDQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiAoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcik7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
@ -26,6 +26,7 @@
<test id="15.4.4.18-2-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtMi0xMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTItMTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtICdsZW5ndGgnIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QucHJvdG90eXBlLCAibGVuZ3RoIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHZhciBvYmogPSB7IDA6IDEyLCAxOiAxMSB9Ow0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImxlbmd0aCIsIHsNCiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gIWFjY2Vzc2VkOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGUubGVuZ3RoOw0KICAgICAgICB9DQoNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.18-2-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtMi0xMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTItMTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCBhcHBsaWVkIHRvIHRoZSBBcnJheS1saWtlIG9iamVjdCB0aGF0ICdsZW5ndGgnIGlzIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHByb3RvID0ge307DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywgImxlbmd0aCIsIHsNCiAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQogICAgICAgIGNoaWxkWzBdID0gMTE7DQogICAgICAgIGNoaWxkWzFdID0gMTI7DQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChjaGlsZCwgY2FsbGJhY2tmbik7DQogICAgICAgIHJldHVybiAhYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.18-2-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtMi0xNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTItMTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCBhcHBsaWVkIHRvIHRoZSBBcnJheS1saWtlIG9iamVjdCB0aGF0ICdsZW5ndGgnIHByb3BlcnR5IGRvZXNuJ3QgZXhpc3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyAwOiAxMSwgMTogMTIgfTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQogICAgICAgIHJldHVybiAhYWNjZXNzZWQ7DQoNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.18-2-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtMi0xNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTItMTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtICdsZW5ndGgnIGlzIHByb3BlcnR5IG9mIHRoZSBnbG9iYWwgb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgcmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmVzdWx0ID0gKG9iai5sZW5ndGggPT09IDIpOw0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIHZhciBvbGRMZW4gPSBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aDsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KClbMF0gPSAxMjsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KClbMV0gPSAxMTsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KClbMl0gPSA5Ow0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKS5sZW5ndGggPSAyOw0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChmbkdsb2JhbE9iamVjdCgpLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgZm5HbG9iYWxPYmplY3QoKVswXTsNCiAgICAgICAgICAgIGRlbGV0ZSBmbkdsb2JhbE9iamVjdCgpWzFdOw0KICAgICAgICAgICAgZGVsZXRlIGZuR2xvYmFsT2JqZWN0KClbMl07DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aCA9IG9sZExlbjsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.18-2-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtMi0xNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTItMTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCBhcHBsaWVkIHRvIHRoZSBBcmd1bWVudHMgb2JqZWN0LCB3aGljaCBpbXBsZW1lbnRzIGl0cyBvd24gcHJvcGVydHkgZ2V0IG1ldGhvZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIHJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJlc3VsdCA9IChvYmoubGVuZ3RoID09PSAyKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBmdW5jID0gZnVuY3Rpb24gKGEsIGIpIHsNCiAgICAgICAgICAgIGFyZ3VtZW50c1syXSA9IDk7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGFyZ3VtZW50cywgY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gcmVzdWx0Ow0KICAgICAgICB9Ow0KDQogICAgICAgIHJldHVybiBmdW5jKDEyLCAxMSk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.18-2-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtMi0xOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTItMTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCBhcHBsaWVkIHRvIFN0cmluZyBvYmplY3QsIHdoaWNoIGltcGxlbWVudHMgaXRzIG93biBwcm9wZXJ0eSBnZXQgbWV0aG9kIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgcmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmVzdWx0ID0gKG9iai5sZW5ndGggPT09IDMpOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHN0ciA9IG5ldyBTdHJpbmcoIjAxMiIpOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoc3RyLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgcmV0dXJuIHJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.18-2-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtMi0xOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTItMTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCBhcHBsaWVkIHRvIEZ1bmN0aW9uIG9iamVjdCwgd2hpY2ggaW1wbGVtZW50cyBpdHMgb3duIHByb3BlcnR5IGdldCBtZXRob2QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciByZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXN1bHQgPSAob2JqLmxlbmd0aCA9PT0gMik7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgZnVuID0gZnVuY3Rpb24gKGEsIGIpIHsNCiAgICAgICAgICAgIHJldHVybiBhICsgYjsNCiAgICAgICAgfTsNCiAgICAgICAgZnVuWzBdID0gMTI7DQogICAgICAgIGZ1blsxXSA9IDExOw0KICAgICAgICBmdW5bMl0gPSA5Ow0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZnVuLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgcmV0dXJuIHJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
@ -68,6 +69,7 @@
<test id="15.4.4.18-4-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNC0xMCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTQtMTAuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtIHRoZSBleGNlcHRpb24gaXMgbm90IHRocm93biBpZiBleGNlcHRpb24gd2FzIHRocm93biBieSBzdGVwIDIiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMDogMTEsIDE6IDEyIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImxlbmd0aCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBTeW50YXhFcnJvcigpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChvYmosIHVuZGVmaW5lZCk7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGV4KSB7DQogICAgICAgICAgICByZXR1cm4gIShleCBpbnN0YW5jZW9mIFR5cGVFcnJvcik7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.18-4-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNC0xMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTQtMTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtIHRoZSBleGNlcHRpb24gaXMgbm90IHRocm93biBpZiBleGNlcHRpb24gd2FzIHRocm93biBieSBzdGVwIDMiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMDogMTEsIDE6IDEyIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImxlbmd0aCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiB7DQogICAgICAgICAgICAgICAgICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3IoKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG9iaiwgdW5kZWZpbmVkKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZXgpIHsNCiAgICAgICAgICAgIHJldHVybiAhKGV4IGluc3RhbmNlb2YgVHlwZUVycm9yKTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.18-4-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNC0xMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTQtMTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtICdjYWxsYmFja2ZuJyBpcyBhIGZ1bmN0aW9uIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIFsxMSwgOV0uZm9yRWFjaChjYWxsYmFja2ZuKTsNCiAgICAgICAgcmV0dXJuIGFjY2Vzc2VkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.18-4-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNC0xNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTQtMTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtIGNhbGxpbmcgd2l0aCBubyBjYWxsYmFja2ZuIGlzIHRoZSBzYW1lIGFzIHBhc3NpbmcgdW5kZWZpbmVkIGZvciBjYWxsYmFja2ZuIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBvYmogPSB7IDEwOiAxMCB9Ow0KICAgICAgICB2YXIgbGVuZ3RoQWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIGxvb3BBY2Nlc3NlZCA9IGZhbHNlOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJsZW5ndGgiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBsZW5ndGhBY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0dXJuIDIwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGxvb3BBY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0dXJuIDEwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChvYmopOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChleCkgew0KICAgICAgICAgICAgcmV0dXJuIChleCBpbnN0YW5jZW9mIFR5cGVFcnJvcikgJiYgbGVuZ3RoQWNjZXNzZWQgJiYgIWxvb3BBY2Nlc3NlZDsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.18-4-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE4LTQtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOC8xNS40LjQuMTgtNC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCB0aHJvd3MgUmVmZXJlbmNlRXJyb3IgaWYgY2FsbGJhY2tmbiBpcyB1bnJlZmVyZW5jZWQiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICB2YXIgYXJyID0gbmV3IEFycmF5KDEwKTsNCiAgdHJ5IHsNCiAgICBhcnIuZm9yRWFjaChmb28pOyAgICANCiAgfQ0KICBjYXRjaChlKSB7DQogICAgaWYoZSBpbnN0YW5jZW9mIFJlZmVyZW5jZUVycm9yKQ0KICAgICAgcmV0dXJuIHRydWU7ICANCiAgfQ0KDQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.18-4-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE4LTQtMyIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOC8xNS40LjQuMTgtNC0zLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCB0aHJvd3MgVHlwZUVycm9yIGlmIGNhbGxiYWNrZm4gaXMgbnVsbCIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogIHZhciBhcnIgPSBuZXcgQXJyYXkoMTApOw0KICB0cnkgew0KICAgIGFyci5mb3JFYWNoKG51bGwpOyAgICANCiAgfQ0KICBjYXRjaChlKSB7DQogICAgaWYoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikNCiAgICAgIHJldHVybiB0cnVlOyAgDQogIH0NCg0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.18-4-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE4LTQtNCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOC8xNS40LjQuMTgtNC00LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCB0aHJvd3MgVHlwZUVycm9yIGlmIGNhbGxiYWNrZm4gaXMgYm9vbGVhbiIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogIHZhciBhcnIgPSBuZXcgQXJyYXkoMTApOw0KICB0cnkgew0KICAgIGFyci5mb3JFYWNoKHRydWUpOyAgICANCiAgfQ0KICBjYXRjaChlKSB7DQogICAgaWYoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikNCiAgICAgIHJldHVybiB0cnVlOyAgDQogIH0NCg0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpOw0KIH0NCn0pOw0K]]></test>
@ -88,9 +90,11 @@
<test id="15.4.4.18-5-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNS0xOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTUtMTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtIEVycm9yIE9iamVjdCBjYW4gYmUgdXNlZCBhcyB0aGlzQXJnIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciByZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgdmFyIG9iakVycm9yID0gbmV3IFJhbmdlRXJyb3IoKTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJlc3VsdCA9ICh0aGlzID09PSBvYmpFcnJvcik7DQogICAgICAgIH0NCg0KICAgICAgICBbMTFdLmZvckVhY2goY2FsbGJhY2tmbiwgb2JqRXJyb3IpOw0KICAgICAgICByZXR1cm4gcmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.18-5-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNS0xOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTUtMTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtIHRoZSBBcmd1bWVudHMgb2JqZWN0IGNhbiBiZSB1c2VkIGFzIHRoaXNBcmciLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHJlc3VsdCA9IGZhbHNlOw0KICAgICAgICB2YXIgYXJnOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmVzdWx0ID0gKHRoaXMgPT09IGFyZyk7DQogICAgICAgIH0NCg0KICAgICAgICAoZnVuY3Rpb24gZnVuKCkgew0KICAgICAgICAgICAgYXJnID0gYXJndW1lbnRzOw0KICAgICAgICB9KDEsIDIsIDMpKTsNCg0KICAgICAgICBbMTFdLmZvckVhY2goY2FsbGJhY2tmbiwgYXJnKTsNCiAgICAgICAgcmV0dXJuIHJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.18-5-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE4LTUtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOC8xNS40LjQuMTgtNS0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtIHRoaXNBcmcgaXMgT2JqZWN0IiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciByZXMgPSBmYWxzZTsNCiAgdmFyIG8gPSBuZXcgT2JqZWN0KCk7DQogIG8ucmVzID0gdHJ1ZTsNCiAgdmFyIHJlc3VsdDsNCiAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKQ0KICB7DQogICAgcmVzdWx0ID0gdGhpcy5yZXM7DQogIH0NCg0KICB2YXIgYXJyID0gWzFdOw0KICBhcnIuZm9yRWFjaChjYWxsYmFja2ZuLG8pDQogIGlmKCByZXN1bHQgPT09IHRydWUpDQogICAgcmV0dXJuIHRydWU7ICAgIA0KDQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.18-5-21"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNS0yMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTUtMjEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtIHRoZSBnbG9iYWwgb2JqZWN0IGNhbiBiZSB1c2VkIGFzIHRoaXNBcmciLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJlc3VsdCA9ICh0aGlzID09PSBmbkdsb2JhbE9iamVjdCgpKTsNCiAgICAgICAgfQ0KDQogICAgICAgIFsxMV0uZm9yRWFjaChjYWxsYmFja2ZuLCBmbkdsb2JhbE9iamVjdCgpKTsNCiAgICAgICAgcmV0dXJuIHJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.18-5-22"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNS0yMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTUtMjIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtIGJvb2xlYW4gcHJpbWl0aXZlIGNhbiBiZSB1c2VkIGFzIHRoaXNBcmciLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHJlc3VsdCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmVzdWx0ID0gKHRoaXMudmFsdWVPZigpID09PSBmYWxzZSk7DQogICAgICAgIH0NCg0KICAgICAgICBbMTFdLmZvckVhY2goY2FsbGJhY2tmbiwgZmFsc2UpOw0KICAgICAgICByZXR1cm4gcmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.18-5-23"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNS0yMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTUtMjMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtIG51bWJlciBwcmltaXRpdmUgY2FuIGJlIHVzZWQgYXMgdGhpc0FyZyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgcmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmVzdWx0ID0gKHRoaXMudmFsdWVPZigpID09PSAxMDEpOw0KICAgICAgICB9DQoNCiAgICAgICAgWzExXS5mb3JFYWNoKGNhbGxiYWNrZm4sIDEwMSk7DQogICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.18-5-24"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNS0yNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTUtMjQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtIHN0cmluZyBwcmltaXRpdmUgY2FuIGJlIHVzZWQgYXMgdGhpc0FyZyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgcmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmVzdWx0ID0gKHRoaXMudmFsdWVPZigpID09PSAiYWJjIik7DQogICAgICAgIH0NCg0KICAgICAgICBbMTFdLmZvckVhY2goY2FsbGJhY2tmbiwgImFiYyIpOw0KICAgICAgICByZXR1cm4gcmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.18-5-25"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNC40LjE4LTUtMjUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC01LTI1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZvckVhY2ggLSB0aGlzQXJnIG5vdCBwYXNzZWQiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIGZ1bmN0aW9uIGlubmVyT2JqKCkgew0KICAgICAgICAgICAgdGhpcy5fMTVfNF80XzE4XzVfMjUgPSB0cnVlOw0KICAgICAgICAgICAgdmFyIF8xNV80XzRfMThfNV8yNSA9IGZhbHNlOw0KICAgICAgICAgICAgdmFyIHJlc3VsdDsNCiAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRoaXMuXzE1XzRfNF8xOF81XzI1Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIGFyciA9IFsxXTsNCiAgICAgICAgICAgIGFyci5mb3JFYWNoKGNhbGxiYWNrZm4pDQogICAgICAgICAgICB0aGlzLnJldFZhbCA9ICFyZXN1bHQ7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIG5ldyBpbm5lck9iaigpLnJldFZhbDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.4.4.18-5-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE4LTUtMyIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOC8xNS40LjQuMTgtNS0zLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtIHRoaXNBcmcgaXMgQXJyYXkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIHJlcyA9IGZhbHNlOw0KICB2YXIgYSA9IG5ldyBBcnJheSgpOw0KICBhLnJlcyA9IHRydWU7DQogIHZhciByZXN1bHQ7DQogIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikNCiAgew0KICAgIHJlc3VsdCA9IHRoaXMucmVzOw0KICB9DQoNCiAgdmFyIGFyciA9IFsxXTsNCiAgYXJyLmZvckVhY2goY2FsbGJhY2tmbixhKQ0KICBpZiggcmVzdWx0ID09PSB0cnVlKQ0KICAgIHJldHVybiB0cnVlOyAgICANCg0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.18-5-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE4LTUtNCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOC8xNS40LjQuMTgtNS00LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtIHRoaXNBcmcgaXMgb2JqZWN0IGZyb20gb2JqZWN0IHRlbXBsYXRlKHByb3RvdHlwZSkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIHJlcyA9IGZhbHNlOw0KICB2YXIgcmVzdWx0Ow0KICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopDQogIHsNCiAgICByZXN1bHQgPSB0aGlzLnJlczsNCiAgfQ0KICANCiAgZnVuY3Rpb24gZm9vKCl7fQ0KICBmb28ucHJvdG90eXBlLnJlcyA9IHRydWU7DQogIHZhciBmID0gbmV3IGZvbygpOw0KICB2YXIgYXJyID0gWzFdOw0KICBhcnIuZm9yRWFjaChjYWxsYmFja2ZuLGYpDQogIGlmKCByZXN1bHQgPT09IHRydWUpDQogICAgcmV0dXJuIHRydWU7ICAgIA0KDQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.18-5-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE4LTUtNSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOC8xNS40LjQuMTgtNS01LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtIHRoaXNBcmcgaXMgb2JqZWN0IGZyb20gb2JqZWN0IHRlbXBsYXRlIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciByZXMgPSBmYWxzZTsNCiAgdmFyIHJlc3VsdDsNCiAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKQ0KICB7DQogICAgcmVzdWx0ID0gdGhpcy5yZXM7DQogIH0NCg0KICBmdW5jdGlvbiBmb28oKXt9DQogIHZhciBmID0gbmV3IGZvbygpOw0KICBmLnJlcyA9IHRydWU7DQogIA0KICB2YXIgYXJyID0gWzFdOw0KICBhcnIuZm9yRWFjaChjYWxsYmFja2ZuLGYpDQogIGlmKCByZXN1bHQgPT09IHRydWUpDQogICAgcmV0dXJuIHRydWU7ICAgIA0KDQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCk7DQogfQ0KfSk7DQo=]]></test>
@ -104,18 +108,53 @@
<test id="15.4.4.18-7-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE4LTctNSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOC8xNS40LjQuMTgtNy01LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCB2aXNpdHMgZGVsZXRlZCBlbGVtZW50IGluIGFycmF5IGFmdGVyIHRoZSBjYWxsIHdoZW4gc2FtZSBpbmRleCBpcyBhbHNvIHByZXNlbnQgaW4gcHJvdG90eXBlIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7IA0KIA0KICB2YXIgY2FsbENudCA9IDA7DQogIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikNCiAgew0KICAgIGRlbGV0ZSBhcnJbNF07DQogICAgY2FsbENudCsrOw0KICB9DQoNCiAgQXJyYXkucHJvdG90eXBlWzRdID0gNTsNCg0KICB2YXIgYXJyID0gWzEsMiwzLDQsNV07DQogIGFyci5mb3JFYWNoKGNhbGxiYWNrZm4pDQogIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbNF07DQogIGlmKCBjYWxsQ250ID09PSA1KSAgICANCiAgICAgIHJldHVybiB0cnVlOyAgDQogIA0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.18-7-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNC40LjE4LTctNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTctNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gY29uc2lkZXJzIG5ldyB2YWx1ZSBvZiBlbGVtZW50cyBpbiBhcnJheSBhZnRlciB0aGUgY2FsbCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgcmVzdWx0ID0gZmFsc2U7DQogICAgICAgIHZhciBhcnIgPSBbMSwgMiwgMywgNCwgNV07DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIElkeCwgb2JqKSB7DQogICAgICAgICAgICBhcnJbNF0gPSA2Ow0KICAgICAgICAgICAgaWYgKHZhbCA+PSA2KSB7DQogICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIGFyci5mb3JFYWNoKGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gcmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.18-7-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy04IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOC8xNS40LjQuMTgtNy04LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZvckVhY2ggLSBubyBvYnNlcnZhYmxlIGVmZmVjdHMgb2NjdXIgaWYgbGVuIGlzIDAiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMDogMTEsIDE6IDEyLCBsZW5ndGg6IDAgfTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQogICAgICAgIHJldHVybiAhYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.18-7-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy05IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOC8xNS40LjQuMTgtNy05LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZvckVhY2ggLSBtb2RpZmljYXRpb25zIHRvIGxlbmd0aCBkb24ndCBjaGFuZ2UgbnVtYmVyIG9mIGl0ZXJhdGlvbnMiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGNhbGxlZCA9IDA7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgY2FsbGVkKys7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyAxOiAxMiwgMjogOSwgbGVuZ3RoOiAyIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBvYmoubGVuZ3RoID0gMzsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwob2JqLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgcmV0dXJuIDIgPT09IGNhbGxlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.18-7-b-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE4LTctYi0xIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWItMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZvckVhY2ggLSBjYWxsYmFja2ZuIG5vdCBjYWxsZWQgZm9yIGluZGV4ZXMgbmV2ZXIgYmVlbiBhc3NpZ25lZCB2YWx1ZXMiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsgDQogDQogIHZhciBjYWxsQ250ID0gMDsNCiAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKQ0KICB7DQogICAgY2FsbENudCsrOw0KICB9DQoNCiAgdmFyIGFyciA9IG5ldyBBcnJheSgxMCk7DQogIGFyclsxXSA9IHVuZGVmaW5lZDsNCiAgYXJyLmZvckVhY2goY2FsbGJhY2tmbik7DQogIGlmKCBjYWxsQ250ID09PSAxKSAgICANCiAgICByZXR1cm4gdHJ1ZTsgICAgDQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.18-7-b-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1iLTEwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOC8xNS40LjQuMTgtNy1iLTEwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZvckVhY2ggLSBkZWxldGluZyBwcm9wZXJ0eSBvZiBwcm90b3R5cGUgY2F1c2VzIHByb3RvdHlwZSBpbmRleCBwcm9wZXJ0eSBub3QgdG8gYmUgdmlzaXRlZCBvbiBhbiBBcnJheS1saWtlIE9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSB0cnVlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMykgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IDI6IDIsIGxlbmd0aDogMjAgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlWzFdOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZVsxXSA9IDE7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdCAmJiBhY2Nlc3NlZDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlWzFdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.18-7-b-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1iLTExIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOC8xNS40LjQuMTgtNy1iLTExLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZvckVhY2ggLSBkZWxldGluZyBwcm9wZXJ0eSBvZiBwcm90b3R5cGUgY2F1c2VzIHByb3RvdHlwZSBpbmRleCBwcm9wZXJ0eSBub3QgdG8gYmUgdmlzaXRlZCBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSB0cnVlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbMCwgLCBdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVsxXSA9IDE7DQogICAgICAgICAgICBhcnIuZm9yRWFjaChjYWxsYmFja2ZuKTsNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0ICYmIGFjY2Vzc2VkOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmICFbLCAxXS5oYXNPd25Qcm9wZXJ0eSgwKSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.18-7-b-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1iLTEyIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOC8xNS40LjQuMTgtNy1iLTEyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZvckVhY2ggLSBkZWxldGluZyBvd24gcHJvcGVydHkgd2l0aCBwcm90b3R5cGUgcHJvcGVydHkgY2F1c2VzIHByb3RvdHlwZSBpbmRleCBwcm9wZXJ0eSB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxICYmIHZhbCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMDogMCwgMTogMTExLCBsZW5ndGg6IDEwIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgb2JqWzFdOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZVsxXSA9IDE7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlWzFdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.18-7-b-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1iLTEzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOC8xNS40LjQuMTgtNy1iLTEzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZvckVhY2ggLSBkZWxldGluZyBvd24gcHJvcGVydHkgd2l0aCBwcm90b3R5cGUgcHJvcGVydHkgY2F1c2VzIHByb3RvdHlwZSBpbmRleCBwcm9wZXJ0eSB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxICYmIHZhbCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHZhciBhcnIgPSBbMCwgMTExXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGRlbGV0ZSBhcnJbMV07DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGVbMV0gPSAxOw0KICAgICAgICAgICAgYXJyLmZvckVhY2goY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.18-7-b-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1iLTE0IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOC8xNS40LjQuMTgtNy1iLTE0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZvckVhY2ggLSBkZWNyZWFzaW5nIGxlbmd0aCBvZiBhcnJheSBjYXVzZXMgaW5kZXggcHJvcGVydHkgbm90IHRvIGJlIHZpc2l0ZWQiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gdHJ1ZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDMpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWzAsIDEsIDIsICJsYXN0Il07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBhcnIubGVuZ3RoID0gMzsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgYXJyLmZvckVhY2goY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQgJiYgYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.18-7-b-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1iLTE1IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOC8xNS40LjQuMTgtNy1iLTE1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZvckVhY2ggLSBkZWNyZWFzaW5nIGxlbmd0aCBvZiBhcnJheSB3aXRoIHByb3RvdHlwZSBwcm9wZXJ0eSBjYXVzZXMgcHJvdG90eXBlIGluZGV4IHByb3BlcnR5IHRvIGJlIHZpc2l0ZWQiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDIgJiYgdmFsID09PSAicHJvdG90eXBlIikgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHZhciBhcnIgPSBbMCwgMSwgMl07DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICIyIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gInByb3RvdHlwZSI7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgYXJyLmxlbmd0aCA9IDI7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgYXJyLmZvckVhY2goY2FsbGJhY2tmbik7DQoNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsyXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.18-7-b-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1iLTE2IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOC8xNS40LjQuMTgtNy1iLTE2LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZvckVhY2ggLSBkZWNyZWFzaW5nIGxlbmd0aCBvZiBhcnJheSBkb2VzIG5vdCBkZWxldGUgbm9uLWNvbmZpZ3VyYWJsZSBwcm9wZXJ0aWVzIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAyICYmIHZhbCA9PT0gInVuY29uZmlndXJhYmxlIikgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFswLCAxLCAyXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMiIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAidW5jb25maWd1cmFibGUiOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBhcnIubGVuZ3RoID0gMjsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgYXJyLmZvckVhY2goY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.18-7-b-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1iLTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWItMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gYWRkZWQgcHJvcGVydGllcyBpbiBzdGVwIDIgYXJlIHZpc2libGUgaGVyZSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMiAmJiB2YWwgPT09ICJsZW5ndGgiKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0ge307DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImxlbmd0aCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIG9ialsyXSA9ICJsZW5ndGgiOw0KICAgICAgICAgICAgICAgIHJldHVybiAzOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.18-7-b-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1iLTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWItMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gZGVsZXRlZCBwcm9wZXJ0aWVzIGluIHN0ZXAgMiBhcmUgdmlzaWJsZSBoZXJlIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IHRydWU7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICBpZiAoaWR4ID09PSA4KSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHZhciBvYmogPSB7IDI6IDYuOTksIDg6IDE5IH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImxlbmd0aCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGRlbGV0ZSBvYmpbOF07DQogICAgICAgICAgICAgICAgcmV0dXJuIDEwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0ICYmIGFjY2Vzc2VkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.18-7-b-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1iLTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWItNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gcHJvcGVydGllcyBhZGRlZCBpbnRvIG93biBvYmplY3QgYWZ0ZXIgY3VycmVudCBwb3NpdGlvbiBhcmUgdmlzaXRlZCBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSAmJiB2YWwgPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IGxlbmd0aDogMiB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjEiLCB7DQogICAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.18-7-b-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1iLTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWItNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gcHJvcGVydGllcyBhZGRlZCBpbnRvIG93biBvYmplY3QgYWZ0ZXIgY3VycmVudCBwb3NpdGlvbiBhcmUgdmlzaXRlZCBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSAmJiB2YWwgPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbMCwgLCAyXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgYXJyLmZvckVhY2goY2FsbGJhY2tmbik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmICFbLCAxXS5oYXNPd25Qcm9wZXJ0eSgwKSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.18-7-b-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1iLTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWItNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gcHJvcGVydGllcyBjYW4gYmUgYWRkZWQgdG8gcHJvdG90eXBlIGFmdGVyIGN1cnJlbnQgcG9zaXRpb24gYXJlIHZpc2l0ZWQgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEgJiYgdmFsID09PSA2Ljk5KSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyBsZW5ndGg6IDIgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QucHJvdG90eXBlLCAiMSIsIHsNCiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gNi45OTsNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlWzFdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.18-7-b-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1iLTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWItNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gcHJvcGVydGllcyBjYW4gYmUgYWRkZWQgdG8gcHJvdG90eXBlIGFmdGVyIGN1cnJlbnQgcG9zaXRpb24gYXJlIHZpc2l0ZWQgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEgJiYgdmFsID09PSA2Ljk5KSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWzAsICwgMl07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMSIsIHsNCiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gNi45OTsNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBhcnIuZm9yRWFjaChjYWxsYmFja2ZuKTsNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmICFbLCAxXS5oYXNPd25Qcm9wZXJ0eSgwKSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.18-7-b-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1iLTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWItOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gZGVsZXRpbmcgb3duIHByb3BlcnR5IGNhdXNlcyBpbmRleCBwcm9wZXJ0eSBub3QgdG8gYmUgdmlzaXRlZCBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSB0cnVlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IGxlbmd0aDogMiB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDYuOTk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIG9ialsxXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdCAmJiBhY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.18-7-b-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1iLTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWItOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gZGVsZXRpbmcgb3duIHByb3BlcnR5IGNhdXNlcyBpbmRleCBwcm9wZXJ0eSBub3QgdG8gYmUgdmlzaXRlZCBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSB0cnVlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbMSwgMl07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gIjYuOTkiOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGRlbGV0ZSBhcnJbMV07DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIGFyci5mb3JFYWNoKGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdCAmJiBhY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.18-7-c-i-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTctYy1pLTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBrVmFsdWUgPSB7IH07DQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSA1KSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9ICh2YWwgPT09IGtWYWx1ZSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyA1OiBrVmFsdWUsIGxlbmd0aDogMTAwIH07DQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KDQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.18-7-c-i-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktMTAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWMtaS0xMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAyKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9ICh2YWwgPT09IDEyKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMiIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAxMjsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgYXJyLmZvckVhY2goY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.18-7-c-i-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktMTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWMtaS0xMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAwKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9ICh2YWwgPT09IDExKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHsgMDogNSB9Ow0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQogICAgICAgIGNoaWxkLmxlbmd0aCA9IDEwOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjaGlsZCwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4pOw0KDQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.18-7-c-i-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktMTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWMtaS0xMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIiBBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAodmFsID09PSAxMTEpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFtdOw0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzBdID0gMTA7DQoNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTExOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgYXJyLmZvckVhY2goY2FsbGJhY2tmbik7DQoNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.18-7-c-i-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktMTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWMtaS0xMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAodmFsID09PSAxMik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7fTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDY7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQogICAgICAgIGNoaWxkLmxlbmd0aCA9IDEwOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjaGlsZCwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTI7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChjaGlsZCwgY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.18-7-c-i-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktMTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWMtaS0xNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIiBBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHZhbCA9PT0gMTEpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFtdOw0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjAiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiA1Ow0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAxMTsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIGFyci5mb3JFYWNoKGNhbGxiYWNrZm4pOw0KDQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMF07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.18-7-c-i-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktMTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWMtaS0xNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9ICh2YWwgPT09IDExKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHt9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQogICAgICAgIGNoaWxkLmxlbmd0aCA9IDIwOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4pOw0KDQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.18-7-c-i-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktMTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWMtaS0xNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAwKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9ICh2YWwgPT09IDExKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMCIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDExOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgWywgLCAsIF0uZm9yRWFjaChjYWxsYmFja2ZuKTsNCg0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzBdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgIVssIDFdLmhhc093blByb3BlcnR5KDApICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.18-7-c-i-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktMTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWMtaS0xNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHR5cGVvZiB2YWwgPT09ICJ1bmRlZmluZWQiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IGxlbmd0aDogMiB9Ow0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMSIsIHsNCiAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwob2JqLCBjYWxsYmFja2ZuKTsNCg0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.18-7-c-i-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktMTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWMtaS0xOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHR5cGVvZiB2YWwgPT09ICJ1bmRlZmluZWQiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIGFyci5mb3JFYWNoKGNhbGxiYWNrZm4pOw0KDQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.18-7-c-i-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktMTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWMtaS0xOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9ICh0eXBlb2YgdmFsID09PSAidW5kZWZpbmVkIik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyBsZW5ndGg6IDIgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMSIsIHsNCiAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LnByb3RvdHlwZSwgIjEiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAxMDsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwob2JqLCBjYWxsYmFja2ZuKTsNCg0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.18-7-c-i-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTctYy1pLTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAwKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9ICh2YWwgPT09IDExKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIFsxMV0uZm9yRWFjaChjYWxsYmFja2ZuKTsNCg0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.18-7-c-i-20"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktMjAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWMtaS0yMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAwKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9ICh0eXBlb2YgdmFsID09PSAidW5kZWZpbmVkIik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gW107DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjAiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAxMDA7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICBhcnIuZm9yRWFjaChjYWxsYmFja2ZuKTsNCg0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzBdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.18-7-c-i-21"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktMjEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWMtaS0yMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHR5cGVvZiB2YWwgPT09ICJ1bmRlZmluZWQiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHt9Ow0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICIxIiwgew0KICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb24oKTsNCiAgICAgICAgY2hpbGQubGVuZ3RoID0gMjsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGNoaWxkLCBjYWxsYmFja2ZuKTsNCg0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.4.4.18-7-c-i-22"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktMjIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWMtaS0yMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHR5cGVvZiB2YWwgPT09ICJ1bmRlZmluZWQiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMCIsIHsNCiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICBbLCAxXS5mb3JFYWNoKGNhbGxiYWNrZm4pOw0KDQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMF07DQogICAgICAgIH0NCg0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmICFbLCAxXS5oYXNPd25Qcm9wZXJ0eSgwKSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.18-7-c-i-23"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktMjMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWMtaS0yMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gVGhpcyBvYmplY3QgaXMgYW4gZ2xvYmFsIG9iamVjdCB3aGljaCBjb250YWlucyBpbmRleCBwcm9wZXJ0eSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAodmFsID09PSAxMSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgdmFyIG9sZExlbiA9IGZuR2xvYmFsT2JqZWN0KCkubGVuZ3RoOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKVswXSA9IDExOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKS5sZW5ndGggPSAxOw0KDQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGZuR2xvYmFsT2JqZWN0KCksIGNhbGxiYWNrZm4pOw0KDQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBmbkdsb2JhbE9iamVjdCgpWzBdOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKS5sZW5ndGggPSBvbGRMZW47DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.4.4.18-7-c-i-25"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktMjUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWMtaS0yNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gVGhpcyBvYmplY3QgaXMgdGhlIEFyZ3VtZW50cyBvYmplY3Qgd2hpY2ggaW1wbGVtZW50cyBpdHMgb3duIHByb3BlcnR5IGdldCBtZXRob2QgKG51bWJlciBvZiBhcmd1bWVudHMgaXMgbGVzcyB0aGFuIG51bWJlciBvZiBwYXJhbWV0ZXJzKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAodmFsID09PSAxMSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgZnVuYyA9IGZ1bmN0aW9uIChhLCBiKSB7DQogICAgICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChhcmd1bWVudHMsIGNhbGxiYWNrZm4pOw0KICAgICAgICB9Ow0KDQogICAgICAgIGZ1bmMoMTEpOw0KDQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.18-7-c-i-26"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktMjYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWMtaS0yNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gVGhpcyBvYmplY3QgaXMgdGhlIEFyZ3VtZW50cyBvYmplY3Qgd2hpY2ggaW1wbGVtZW50cyBpdHMgb3duIHByb3BlcnR5IGdldCBtZXRob2QgKG51bWJlciBvZiBhcmd1bWVudHMgZXF1YWxzIG51bWJlciBvZiBwYXJhbWV0ZXJzKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgY2FsbGVkID0gMDsNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGNhbGxlZCsrOw0KICAgICAgICAgICAgaWYgKGNhbGxlZCAhPT0gMSAmJiAhdGVzdFJlc3VsdCkgew0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHZhbCA9PT0gMTEpOw0KICAgICAgICAgICAgfSBlbHNlIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHZhbCA9PT0gOSk7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBmdW5jID0gZnVuY3Rpb24gKGEsIGIpIHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoYXJndW1lbnRzLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgfTsNCg0KICAgICAgICBmdW5jKDExLCA5KTsNCg0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.18-7-c-i-27"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktMjciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWMtaS0yNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gVGhpcyBvYmplY3QgaXMgdGhlIEFyZ3VtZW50cyBvYmplY3Qgd2hpY2ggaW1wbGVtZW50cyBpdHMgb3duIHByb3BlcnR5IGdldCBtZXRob2QgKG51bWJlciBvZiBhcmd1bWVudHMgaXMgZ3JlYXRlciB0aGFuIG51bWJlciBvZiBwYXJhbWV0ZXJzKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgY2FsbGVkID0gMDsNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGNhbGxlZCsrOw0KICAgICAgICAgICAgaWYgKGNhbGxlZCAhPT0gMSAmJiAhdGVzdFJlc3VsdCkgew0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHZhbCA9PT0gMTEpOw0KICAgICAgICAgICAgfSBlbHNlIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHZhbCA9PT0gMTIpOw0KICAgICAgICAgICAgfSBlbHNlIGlmIChpZHggPT09IDIpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHZhbCA9PT0gOSk7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBmdW5jID0gZnVuY3Rpb24gKGEsIGIpIHsNCiAgICAgICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGFyZ3VtZW50cywgY2FsbGJhY2tmbik7DQogICAgICAgIH07DQoNCiAgICAgICAgZnVuYygxMSwgMTIsIDkpOw0KDQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.18-7-c-i-28"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktMjgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWMtaS0yOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gZWxlbWVudCBjaGFuZ2VkIGJ5IGdldHRlciBvbiBwcmV2aW91cyBpdGVyYXRpb25zIGlzIG9ic2VydmVkIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBwcmVJdGVyVmlzaWJsZSA9IGZhbHNlOw0KICAgICAgICB2YXIgYXJyID0gW107DQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9ICh2YWwgPT09IDkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBwcmVJdGVyVmlzaWJsZSA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0dXJuIDExOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGlmIChwcmVJdGVyVmlzaWJsZSkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gOTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTM7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBhcnIuZm9yRWFjaChjYWxsYmFja2ZuKTsNCg0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.18-7-c-i-29"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktMjkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWMtaS0yOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gZWxlbWVudCBjaGFuZ2VkIGJ5IGdldHRlciBvbiBwcmV2aW91cyBpdGVyYXRpb25zIGlzIG9ic2VydmVkIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBwcmVJdGVyVmlzaWJsZSA9IGZhbHNlOw0KICAgICAgICB2YXIgb2JqID0geyBsZW5ndGg6IDIgfTsNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHZhbCA9PT0gOSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHByZUl0ZXJWaXNpYmxlID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgaWYgKHByZUl0ZXJWaXNpYmxlKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiA5Ow0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAxMzsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwob2JqLCBjYWxsYmFja2ZuKTsNCg0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.18-7-c-i-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTctYy1pLTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBkYXRhIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBrVmFsdWUgPSAiYWJjIjsNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDUpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHZhbCA9PT0ga1ZhbHVlKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHsgNTogMTAwIH07DQoNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb24oKTsNCiAgICAgICAgY2hpbGRbNV0gPSBrVmFsdWU7DQogICAgICAgIGNoaWxkLmxlbmd0aCA9IDEwOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4pOw0KDQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.18-7-c-i-30"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktMzAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWMtaS0zMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gdW5uaGFuZGxlZCBleGNlcHRpb25zIGhhcHBlbmVkIGluIGdldHRlciB0ZXJtaW5hdGUgaXRlcmF0aW9uIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBvYmogPSB7IDA6IDExLCA1OiAxMCwgMTA6IDgsIGxlbmd0aDogMjAgfTsNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID4gMSkgew0KICAgICAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoInVuaGFuZGxlIGV4Y2VwdGlvbiBoYXBwZW5lZCBpbiBnZXR0ZXIiKTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjIiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0dXJuIDEwMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwob2JqLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZXgpIHsNCiAgICAgICAgICAgIHJldHVybiAoZXggaW5zdGFuY2VvZiBSYW5nZUVycm9yKSAmJiAhYWNjZXNzZWQ7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.18-7-c-i-31"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktMzEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWMtaS0zMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gdW5uaGFuZGxlZCBleGNlcHRpb25zIGhhcHBlbmVkIGluIGdldHRlciB0ZXJtaW5hdGUgaXRlcmF0aW9uIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA+IDEpIHsNCiAgICAgICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gW107DQogICAgICAgIGFycls1XSA9IDEwOw0KICAgICAgICBhcnJbMTBdID0gMTAwOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoInVuaGFuZGxlIGV4Y2VwdGlvbiBoYXBwZW5lZCBpbiBnZXR0ZXIiKTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjIiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0dXJuIDEwMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGFyci5mb3JFYWNoKGNhbGxiYWNrZm4pOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChleCkgew0KICAgICAgICAgICAgcmV0dXJuIChleCBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpICYmICFhY2Nlc3NlZDsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.18-7-c-i-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTctYy1pLTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBkYXRhIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAwKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9ICh2YWwgPT09IDEyKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGVbMF0gPSAxMTsNCg0KICAgICAgICAgICAgWzEyXS5mb3JFYWNoKGNhbGxiYWNrZm4pOw0KDQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMF07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.18-7-c-i-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTctYy1pLTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBkYXRhIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAodmFsID09PSAxMSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7fTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDU7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQogICAgICAgIGNoaWxkLmxlbmd0aCA9IDI7DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjaGlsZCwgIjAiLCB7DQogICAgICAgICAgICB2YWx1ZTogMTEsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChjaGlsZCwgY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.18-7-c-i-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktNiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTctYy1pLTYuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBkYXRhIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAodmFsID09PSAxMSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjAiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiA5Ow0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgWzExXS5mb3JFYWNoKGNhbGxiYWNrZm4pOw0KDQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMF07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.18-7-c-i-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTctYy1pLTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIGluaGVyaXRlZCBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBrVmFsdWUgPSAnYWJjJzsNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDUpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHZhbCA9PT0ga1ZhbHVlKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHsgNToga1ZhbHVlIH07DQoNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb24oKTsNCiAgICAgICAgY2hpbGQubGVuZ3RoID0gMTA7DQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChjaGlsZCwgY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.18-7-c-i-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTctYy1pLTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIGluaGVyaXRlZCBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9ICh2YWwgPT09IDEzKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGVbMV0gPSAxMzsNCg0KICAgICAgICAgICAgWywgLCAsIF0uZm9yRWFjaChjYWxsYmFja2ZuKTsNCg0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzFdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpICYmICFbLCAxXS5oYXNPd25Qcm9wZXJ0eSgwKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.18-7-c-i-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWktOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTctYy1pLTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAodmFsID09PSAxMSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyAxMDogMTAsIGxlbmd0aDogMjAgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAxMTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KDQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.18-7-c-ii-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE4LTctYy1paS0xIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC03LWMtaWktMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZvckVhY2ggLSBjYWxsYmFja2ZuIGNhbGxlZCB3aXRoIGNvcnJlY3QgcGFyYW1ldGVycyIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgeyANCiANCiAgdmFyIGJQYXIgPSB0cnVlOw0KICB2YXIgYkNhbGxlZCA9IGZhbHNlOw0KICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopDQogIHsNCiAgICBiQ2FsbGVkID0gdHJ1ZTsNCiAgICBpZihvYmpbaWR4XSAhPT0gdmFsKQ0KICAgICAgYlBhciA9IGZhbHNlOw0KICB9DQoNCiAgdmFyIGFyciA9IFswLDEsdHJ1ZSxudWxsLG5ldyBPYmplY3QoKSwiZml2ZSJdOw0KICBhcnJbOTk5OTk5XSA9IC02LjY7DQogIGFyci5mb3JFYWNoKGNhbGxiYWNrZm4pOw0KICBpZihiQ2FsbGVkID09PSB0cnVlICYmIGJQYXIgPT09IHRydWUpDQogICAgcmV0dXJuIHRydWU7DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.18-7-c-ii-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWlpLTEwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOC8xNS40LjQuMTgtNy1jLWlpLTEwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZvckVhY2ggLSBjYWxsYmFja2ZuIGlzIGNhbGxlZCB3aXRoIDEgZm9ybWFsIHBhcmFtZXRlciIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgcmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsKSB7DQogICAgICAgICAgICByZXN1bHQgPSAodmFsID4gMTApOw0KICAgICAgICB9DQoNCiAgICAgICAgWzExXS5mb3JFYWNoKGNhbGxiYWNrZm4pOyANCiAgICAgICAgcmV0dXJuIHJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.18-7-c-ii-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTgtNy1jLWlpLTExIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOC8xNS40LjQuMTgtNy1jLWlpLTExLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZvckVhY2ggLSBjYWxsYmFja2ZuIGlzIGNhbGxlZCB3aXRoIDIgZm9ybWFsIHBhcmFtZXRlciIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgcmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgpIHsNCiAgICAgICAgICAgIHJlc3VsdCA9ICh2YWwgPiAxMCAmJiBhcmd1bWVudHNbMl1baWR4XSA9PT0gdmFsKTsNCiAgICAgICAgfQ0KDQogICAgICAgIFsxMV0uZm9yRWFjaChjYWxsYmFja2ZuKTsgDQogICAgICAgIHJldHVybiByZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
@ -140,6 +179,7 @@
<test id="15.4.4.18-8-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE4LTgtMTAiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTgtMTAuanMiLA0KDQpkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIC0gc3ViY2xhc3NlZCBhcnJheSB3aGVuIGxlbmd0aCBpcyByZWR1Y2VkIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIGZvby5wcm90b3R5cGUgPSBuZXcgQXJyYXkoMSwgMiwgMyk7DQogIGZ1bmN0aW9uIGZvbygpIHt9DQogIHZhciBmID0gbmV3IGZvbygpOw0KICBmLmxlbmd0aCA9IDE7DQogIA0KICB2YXIgY2FsbENudCA9IDA7DQogIGZ1bmN0aW9uIGNiKCl7Y2FsbENudCsrfQ0KICB2YXIgaSA9IGYuZm9yRWFjaChjYik7ICANCiAgaWYgKGNhbGxDbnQgPT09IDEpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.18-8-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE4LTgtMTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTgtMTEuanMiLA0KDQpkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIGRvZXNuJ3QgbXV0YXRlIHRoZSBhcnJheSBvbiB3aGljaCBpdCBpcyBjYWxsZWQgb24iLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopDQogIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KICB2YXIgYXJyID0gWzEsMiwzLDQsNV07DQogIGFyci5mb3JFYWNoKGNhbGxiYWNrZm4pOw0KICBpZihhcnJbMF0gPT09IDEgJiYNCiAgICAgYXJyWzFdID09PSAyICYmDQogICAgIGFyclsyXSA9PT0gMyAmJg0KICAgICBhcnJbM10gPT09IDQgJiYNCiAgICAgYXJyWzRdID09PSA1KQ0KICB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCg0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.18-8-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE4LTgtMTIiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTgvMTUuNC40LjE4LTgtMTIuanMiLA0KDQpkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIGRvZXNuJ3QgdmlzaXQgZXhwYW5kb3MiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICB2YXIgY2FsbENudCA9IDA7DQogIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikNCiAgew0KICAgIGNhbGxDbnQrKzsNCiAgfQ0KICB2YXIgYXJyID0gWzEsMiwzLDQsNV07DQogIGFyclsiaSJdID0gMTA7DQogIGFyclt0cnVlXSA9IDExOw0KDQogIGFyci5mb3JFYWNoKGNhbGxiYWNrZm4pOw0KICBpZihjYWxsQ250ID09IDUpDQogIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KDQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.18-8-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNC40LjE4LTgtMTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE4LzE1LjQuNC4xOC04LTEzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZvckVhY2ggLSB1bmRlZmluZWQgd2lsbCBiZSByZXR1cm5lZCB3aGVuICdsZW4nIGlzIDAiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHJlc3VsdCA9IFtdLmZvckVhY2goY2FsbGJhY2tmbik7DQogICAgICAgIHJldHVybiB0eXBlb2YgcmVzdWx0ID09PSAidW5kZWZpbmVkIiAmJiAhYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.4.4.18-8-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE4LTgtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOC8xNS40LjQuMTgtOC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCBkb2Vzbid0IGNhbGwgY2FsbGJhY2tmbiBpZiAnbGVuZ3RoJyBpcyAwIChzdWJjbGFzc2VkIEFycmF5LCBsZW5ndGggb3ZlcnJpZGRlbiB0byBudWxsICh0eXBlIGNvbnZlcnNpb24pKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICBmb28ucHJvdG90eXBlID0gbmV3IEFycmF5KDEsIDIsIDMpOw0KICBmdW5jdGlvbiBmb28oKSB7fQ0KICB2YXIgZiA9IG5ldyBmb28oKTsNCiAgZi5sZW5ndGggPSBudWxsOw0KICANCiAgdmFyIGNhbGxDbnQgPSAwOw0KICBmdW5jdGlvbiBjYigpe2NhbGxDbnQrK30NCiAgdmFyIGkgPSBmLmZvckVhY2goY2IpOyAgDQogIGlmIChjYWxsQ250ID09PSAwKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKTsNCiB9DQp9KTsNCg==]]></test>
<test id="15.4.4.18-8-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE4LTgtMyIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOC8xNS40LjQuMTgtOC0zLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCBkb2Vzbid0IGNhbGwgY2FsbGJhY2tmbiBpZiAnbGVuZ3RoJyBpcyAwIChzdWJjbGFzc2VkIEFycmF5LCBsZW5ndGggb3ZlcnJpZGRlbiB0byBmYWxzZSAodHlwZSBjb252ZXJzaW9uKSkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgZm9vLnByb3RvdHlwZSA9IG5ldyBBcnJheSgxLCAyLCAzKTsNCiAgZnVuY3Rpb24gZm9vKCkge30NCiAgdmFyIGYgPSBuZXcgZm9vKCk7DQogIGYubGVuZ3RoID0gZmFsc2U7DQoNCiAgdmFyIGNhbGxDbnQgPSAwOw0KICBmdW5jdGlvbiBjYigpe2NhbGxDbnQrK30NCiAgdmFyIGkgPSBmLmZvckVhY2goY2IpOyAgDQogIGlmIChjYWxsQ250ID09PSAwKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKTsNCiB9DQp9KTsNCg==]]></test>
<test id="15.4.4.18-8-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE4LTgtNCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOC8xNS40LjQuMTgtOC00LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCBkb2Vzbid0IGNhbGwgY2FsbGJhY2tmbiBpZiAnbGVuZ3RoJyBpcyAwIChzdWJjbGFzc2VkIEFycmF5LCBsZW5ndGggb3ZlcnJpZGRlbiB0byAwICh0eXBlIGNvbnZlcnNpb24pKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICBmb28ucHJvdG90eXBlID0gbmV3IEFycmF5KDEsIDIsIDMpOw0KICBmdW5jdGlvbiBmb28oKSB7fQ0KICB2YXIgZiA9IG5ldyBmb28oKTsNCiAgZi5sZW5ndGggPSAwOw0KDQogIHZhciBjYWxsQ250ID0gMDsNCiAgZnVuY3Rpb24gY2IoKXtjYWxsQ250Kyt9DQogIHZhciBpID0gZi5mb3JFYWNoKGNiKTsgIA0KICBpZiAoY2FsbENudCA9PT0gMCkgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZm9yRWFjaCk7DQogfQ0KfSk7DQo=]]></test>

View File

@ -2,7 +2,7 @@
<!-- adding section element if in the future we want to store information about the -->
<!-- spec structure in this file, for now the section structure is defined in the -->
<!-- sections.js file -->
<section name="Chapter - 15.4.4.19" numTests="153">
<section name="Chapter - 15.4.4.19" numTests="192">
<test id="15.4.4.19-0-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE5LTAtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOS8xNS40LjQuMTktMC0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIG11c3QgZXhpc3QgYXMgYSBmdW5jdGlvbiIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgZiA9IEFycmF5LnByb3RvdHlwZS5tYXA7DQogIGlmICh0eXBlb2YoZikgPT09ICJmdW5jdGlvbiIpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.19-0-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE5LTAtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOS8xNS40LjQuMTktMC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwLmxlbmd0aCBtdXN0IGJlIDEiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgaWYgKEFycmF5LnByb3RvdHlwZS5tYXAubGVuZ3RoID09PSAxKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.19-1-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktMS0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOS8xNS40LjQuMTktMS0xLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLm1hcCAtIGFwcGxpZWQgdG8gdW5kZWZpbmVkIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKHVuZGVmaW5lZCk7IC8vIFR5cGVFcnJvciBpcyB0aHJvd24gaWYgdmFsdWUgaXMgdW5kZWZpbmVkDQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiAoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcik7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubWFwKTsNCiAgICB9DQoNCn0pOw0K]]></test>
@ -26,6 +26,7 @@
<test id="15.4.4.19-2-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktMi0xMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTItMTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gYXBwbGllZCB0byB0aGUgQXJyYXktbGlrZSBvYmplY3Qgd2hlbiAnbGVuZ3RoJyBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIHZhbCA+IDEwOw0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QucHJvdG90eXBlLCAibGVuZ3RoIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHZhciBvYmogPSB7IDA6IDEyLCAxOiAxMSB9Ow0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImxlbmd0aCIsIHsNCiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQubGVuZ3RoID09PSAwOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGUubGVuZ3RoOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.19-2-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktMi0xMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTItMTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gYXBwbGllZCB0byB0aGUgQXJyYXktbGlrZSBvYmplY3Qgd2hlbiAnbGVuZ3RoJyBpcyBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiB2YWwgPiAxMDsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHt9Ow0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICJsZW5ndGgiLCB7DQogICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZFswXSA9IDExOw0KICAgICAgICBjaGlsZFsxXSA9IDEyOw0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKGNoaWxkLCBjYWxsYmFja2ZuKTsNCg0KICAgICAgICByZXR1cm4gMCA9PT0gdGVzdFJlc3VsdC5sZW5ndGg7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.19-2-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktMi0xNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTItMTQuanMiLA0KDQogICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLm1hcCAtIGFwcGxpZWQgdG8gdGhlIEFycmF5LWxpa2Ugb2JqZWN0IHRoYXQgJ2xlbmd0aCcgcHJvcGVydHkgZG9lc24ndCBleGlzdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiB2YWwgPiAxMDsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IDA6IDExLCAxOiAxMiB9Ow0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIDAgPT09IHRlc3RSZXN1bHQubGVuZ3RoOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-2-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktMi0xNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTItMTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gd2hlbiAnbGVuZ3RoJyBpcyBwcm9wZXJ0eSBvZiB0aGUgZ2xvYmFsIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gdmFsID4gMTA7DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgdmFyIG9sZExlbiA9IGZuR2xvYmFsT2JqZWN0KCkubGVuZ3RoOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKVswXSA9IDEyOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKVsxXSA9IDExOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKVsyXSA9IDk7DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aCA9IDI7DQogICAgICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbChmbkdsb2JhbE9iamVjdCgpLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Lmxlbmd0aCA9PT0gMjsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBmbkdsb2JhbE9iamVjdCgpWzBdOw0KICAgICAgICAgICAgZGVsZXRlIGZuR2xvYmFsT2JqZWN0KClbMV07DQogICAgICAgICAgICBkZWxldGUgZm5HbG9iYWxPYmplY3QoKVsyXTsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KCkubGVuZ3RoID0gb2xkTGVuOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.19-2-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktMi0xNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTItMTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gYXBwbGllZCB0byBBcmd1bWVudHMgb2JqZWN0LCB3aGljaCBpbXBsZW1lbnRzIGl0cyBvd24gcHJvcGVydHkgZ2V0IG1ldGhvZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gdmFsID4gMTA7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgZnVuYyA9IGZ1bmN0aW9uIChhLCBiKSB7DQogICAgICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKGFyZ3VtZW50cywgY2FsbGJhY2tmbik7DQogICAgICAgIH07DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmdW5jKDEyLCAxMSk7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQubGVuZ3RoID09PSAyOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-2-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktMi0xOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTItMTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gYXBwbGllZCB0byBTdHJpbmcgb2JqZWN0LCB3aGljaCBpbXBsZW1lbnRzIGl0cyBvd24gcHJvcGVydHkgZ2V0IG1ldGhvZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQodmFsLCAxMCkgPiAxOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHN0ciA9IG5ldyBTdHJpbmcoIjQzMiIpOw0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgU3RyaW5nLnByb3RvdHlwZVszXSA9ICIxIjsNCiAgICAgICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKHN0ciwgY2FsbGJhY2tmbik7DQoNCiAgICAgICAgICAgIHJldHVybiAzID09PSB0ZXN0UmVzdWx0Lmxlbmd0aDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBTdHJpbmcucHJvdG90eXBlWzNdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.19-2-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktMi0xOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTItMTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gYXBwbGllZCB0byBGdW5jdGlvbiBvYmplY3QsIHdoaWNoIGltcGxlbWVudHMgaXRzIG93biBwcm9wZXJ0eSBnZXQgbWV0aG9kIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiB2YWwgPiAxMDsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBmdW4gPSBmdW5jdGlvbiAoYSwgYikgew0KICAgICAgICAgICAgcmV0dXJuIGEgKyBiOw0KICAgICAgICB9Ow0KICAgICAgICBmdW5bMF0gPSAxMjsNCiAgICAgICAgZnVuWzFdID0gMTE7DQogICAgICAgIGZ1blsyXSA9IDk7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwoZnVuLCBjYWxsYmFja2ZuKTsNCg0KICAgICAgICByZXR1cm4gMiA9PT0gdGVzdFJlc3VsdC5sZW5ndGg7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
@ -68,6 +69,7 @@
<test id="15.4.4.19-4-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktNC0xMCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTQtMTAuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gdGhlIGV4Y2VwdGlvbiBpcyBub3QgdGhyb3duIGlmIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGJ5IHN0ZXAgMiIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgb2JqID0geyAwOiAxMSwgMTogMTIgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAibGVuZ3RoIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKCk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwob2JqLCB1bmRlZmluZWQpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChleCkgew0KICAgICAgICAgICAgcmV0dXJuICEoZXggaW5zdGFuY2VvZiBUeXBlRXJyb3IpOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.19-4-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktNC0xMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTQtMTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gdGhlIGV4Y2VwdGlvbiBpcyBub3QgdGhyb3duIGlmIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGJ5IHN0ZXAgMyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgb2JqID0geyAwOiAxMSwgMTogMTIgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAibGVuZ3RoIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHsNCiAgICAgICAgICAgICAgICAgICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTeW50YXhFcnJvcigpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbChvYmosIHVuZGVmaW5lZCk7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGV4KSB7DQogICAgICAgICAgICByZXR1cm4gIShleCBpbnN0YW5jZW9mIFR5cGVFcnJvcik7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubWFwKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-4-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktNC0xMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTQtMTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gJ2NhbGxiYWNrZm4nIGlzIGEgZnVuY3Rpb24iLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gdmFsID4gMTA7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IFsxMSwgOV0ubWFwKGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdC5sZW5ndGggPT09IDIgJiYgdGVzdFJlc3VsdFswXSA9PT0gdHJ1ZSAmJiB0ZXN0UmVzdWx0WzFdID09PSBmYWxzZTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubWFwKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.19-4-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktNC0xNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTQtMTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gY2FsbGluZyB3aXRoIG5vIGNhbGxiYWNrZm4gaXMgdGhlIHNhbWUgYXMgcGFzc2luZyB1bmRlZmluZWQgZm9yIGNhbGxiYWNrZm4iLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMTA6IDEwIH07DQogICAgICAgIHZhciBsZW5ndGhBY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICB2YXIgbG9vcEFjY2Vzc2VkID0gZmFsc2U7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImxlbmd0aCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGxlbmd0aEFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMjA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGxvb3BBY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0dXJuIDEwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKG9iaik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgVHlwZUVycm9yICYmIGxlbmd0aEFjY2Vzc2VkICYmICFsb29wQWNjZXNzZWQ7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubWFwKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-4-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE5LTQtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOS8xNS40LjQuMTktNC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIHRocm93cyBSZWZlcmVuY2VFcnJvciBpZiBjYWxsYmFja2ZuIGlzIHVucmVmZXJlbmNlZCIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogIHZhciBhcnIgPSBuZXcgQXJyYXkoMTApOw0KICB0cnkgew0KICAgIGFyci5tYXAoZm9vKTsgICAgDQogIH0NCiAgY2F0Y2goZSkgew0KICAgIGlmKGUgaW5zdGFuY2VvZiBSZWZlcmVuY2VFcnJvcikNCiAgICAgIHJldHVybiB0cnVlOyAgDQogIH0NCg0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.19-4-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE5LTQtMyIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOS8xNS40LjQuMTktNC0zLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIHRocm93cyBUeXBlRXJyb3IgaWYgY2FsbGJhY2tmbiBpcyBudWxsIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgdmFyIGFyciA9IG5ldyBBcnJheSgxMCk7DQogIHRyeSB7DQogICAgYXJyLm1hcChudWxsKTsgICAgDQogIH0NCiAgY2F0Y2goZSkgew0KICAgIGlmKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpDQogICAgICByZXR1cm4gdHJ1ZTsgIA0KICB9DQoNCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.19-4-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE5LTQtNCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOS8xNS40LjQuMTktNC00LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIHRocm93cyBUeXBlRXJyb3IgaWYgY2FsbGJhY2tmbiBpcyBib29sZWFuIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgdmFyIGFyciA9IG5ldyBBcnJheSgxMCk7DQogIHRyeSB7DQogICAgYXJyLm1hcCh0cnVlKTsgICAgDQogIH0NCiAgY2F0Y2goZSkgew0KICAgIGlmKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpDQogICAgICByZXR1cm4gdHJ1ZTsgIA0KICB9DQoNCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApOw0KIH0NCn0pOw0K]]></test>
@ -88,6 +90,7 @@
<test id="15.4.4.19-5-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktNS0xOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTUtMTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gRXJyb3Igb2JqZWN0IGNhbiBiZSB1c2VkIGFzIHRoaXNBcmciLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iakVycm9yID0gbmV3IFJhbmdlRXJyb3IoKTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiB0aGlzID09PSBvYmpFcnJvcjsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gWzExXS5tYXAoY2FsbGJhY2tmbiwgb2JqRXJyb3IpOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdFswXSA9PT0gdHJ1ZTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubWFwKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.19-5-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktNS0xOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTUtMTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gdGhlIEFyZ3VtZW50cyBvYmplY3QgY2FuIGJlIHVzZWQgYXMgdGhpc0FyZyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYXJnOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIHRoaXMgPT09IGFyZzsNCiAgICAgICAgfQ0KDQogICAgICAgIGFyZyA9IChmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICByZXR1cm4gYXJndW1lbnRzOw0KICAgICAgICB9KDEsIDIsIDMpKTsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IFsxMV0ubWFwKGNhbGxiYWNrZm4sIGFyZyk7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0WzBdID09PSB0cnVlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-5-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE5LTUtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOS8xNS40LjQuMTktNS0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gdGhpc0FyZyBpcyBPYmplY3QiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIHJlcyA9IGZhbHNlOw0KICB2YXIgbyA9IG5ldyBPYmplY3QoKTsNCiAgby5yZXMgPSB0cnVlOw0KICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopDQogIHsNCiAgICByZXR1cm4gdGhpcy5yZXM7DQogIH0NCg0KICB2YXIgc3JjQXJyID0gWzFdOw0KICB2YXIgcmVzQXJyID0gc3JjQXJyLm1hcChjYWxsYmFja2ZuLG8pOw0KICBpZiggcmVzQXJyWzBdID09PSB0cnVlKQ0KICAgIHJldHVybiB0cnVlOyAgICANCg0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.19-5-21"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktNS0yMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTUtMjEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gdGhlIGdsb2JhbCBvYmplY3QgY2FuIGJlIHVzZWQgYXMgdGhpc0FyZyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiB0aGlzID09PSBmbkdsb2JhbE9iamVjdCgpOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBbMTFdLm1hcChjYWxsYmFja2ZuLCBmbkdsb2JhbE9iamVjdCgpKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHRbMF0gPT09IHRydWU7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.19-5-22"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktNS0yMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTUtMjIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gYm9vbGVhbiBwcmltaXRpdmUgY2FuIGJlIHVzZWQgYXMgdGhpc0FyZyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlT2YoKSA9PT0gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IFsxMV0ubWFwKGNhbGxiYWNrZm4sIGZhbHNlKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHRbMF0gPT09IHRydWU7DQogICAgfSwNCg0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubWFwKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.19-5-23"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktNS0yMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTUtMjMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gbnVtYmVyIHByaW1pdGl2ZSBjYW4gYmUgdXNlZCBhcyB0aGlzQXJnIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVPZigpID09PSAxMDE7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IFsxMV0ubWFwKGNhbGxiYWNrZm4sIDEwMSk7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0WzBdID09PSB0cnVlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-5-24"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktNS0yNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTUtMjQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gc3RyaW5nIHByaW1pdGl2ZSBjYW4gYmUgdXNlZCBhcyB0aGlzQXJnIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVPZigpID09PSAiYWJjIjsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gWzExXS5tYXAoY2FsbGJhY2tmbiwgImFiYyIpOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdFswXSA9PT0gdHJ1ZTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubWFwKTsNCiAgICB9DQoNCn0pOw0K]]></test>
@ -106,18 +109,54 @@
<test id="15.4.4.19-8-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE5LTgtNSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOS8xNS40LjQuMTktOC01LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIGRvZXNuJ3QgY29uc2lkZXIgbmV3bHkgYWRkZWQgZWxlbWVudHMgaW4gc3BhcnNlIGFycmF5IiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7IA0KIA0KICB2YXIgY2FsbENudCA9IDA7DQogIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikNCiAgew0KICAgIHNyY0FyclsxMDAwXSA9IDM7DQogICAgY2FsbENudCsrOw0KICAgIHJldHVybiB2YWw7DQogIH0NCg0KICB2YXIgc3JjQXJyID0gbmV3IEFycmF5KDEwKTsNCiAgc3JjQXJyWzFdID0gMTsNCiAgc3JjQXJyWzJdID0gMjsNCiAgdmFyIHJlc0FyciA9IHNyY0Fyci5tYXAoY2FsbGJhY2tmbik7DQogIGlmKCByZXNBcnIubGVuZ3RoID09PSAxMCAmJiBjYWxsQ250ID09PSAyKSAgICANCiAgICAgIHJldHVybiB0cnVlOyAgDQogIA0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.19-8-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE5LTgtNiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOS8xNS40LjQuMTktOC02LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIHZpc2l0cyBkZWxldGVkIGVsZW1lbnQgaW4gYXJyYXkgYWZ0ZXIgdGhlIGNhbGwgd2hlbiBzYW1lIGluZGV4IGlzIGFsc28gcHJlc2VudCBpbiBwcm90b3R5cGUiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsgDQogDQogIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikNCiAgew0KICAgIGRlbGV0ZSBzcmNBcnJbNF07DQogICAgaWYodmFsID4gMCkNCiAgICAgIHJldHVybiAxOw0KICAgIGVsc2UNCiAgICAgIHJldHVybiAwOw0KDQogIH0NCg0KICBBcnJheS5wcm90b3R5cGVbNF0gPSA1Ow0KICB2YXIgc3JjQXJyID0gWzEsMiwzLDQsNV07DQogIHZhciByZXNBcnIgPSBzcmNBcnIubWFwKGNhbGxiYWNrZm4pOw0KICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzRdOw0KICBpZihyZXNBcnIubGVuZ3RoID09PSA1ICYmIHJlc0Fycls0XSA9PT0gMSkNCiAgICByZXR1cm4gdHJ1ZTsgIA0KICANCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.19-8-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNC40LjE5LTgtNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTgtNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgc3VjY2Vzc2Z1bCB0byBkZWxldGUgdGhlIG9iamVjdCBpbiBjYWxsYmFja2ZuIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgb2JqID0ge307DQogICAgICAgIG9iai5zcmNBcnIgPSBbMSwgMiwgMywgNCwgNV07DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBkZWxldGUgb2JqLnNyY0FycjsNCiAgICAgICAgICAgIGlmICh2YWwgPiAwKQ0KICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHJlc0FyciA9IG9iai5zcmNBcnIubWFwKGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gcmVzQXJyLnRvU3RyaW5nKCkgPT09ICIxLDEsMSwxLDEiICYmICFvYmouaGFzT3duUHJvcGVydHkoImFyciIpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.4.4.19-8-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC04IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOS8xNS40LjQuMTktOC04LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLm1hcCAtIG5vIG9ic2VydmFibGUgZWZmZWN0cyBvY2N1ciBpZiBsZW5ndGggaXMgMCBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICByZXR1cm4gdmFsID4gMTA7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyAwOiAxMSwgMTogMTIsIGxlbmd0aDogMCB9Ow0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQubGVuZ3RoID09PSAwICYmICFhY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubWFwKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.19-8-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC05IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOS8xNS40LjQuMTktOC05LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLm1hcCAtIG1vZGlmaWNhdGlvbnMgdG8gbGVuZ3RoIGRvbid0IGNoYW5nZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIGNhbGxlZCA9IDA7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgY2FsbGVkICs9IDE7DQogICAgICAgICAgICByZXR1cm4gdmFsID4gMTA7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWzksICwgMTJdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgYXJyLmxlbmd0aCA9IDI7DQogICAgICAgICAgICAgICAgcmV0dXJuIDg7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gYXJyLm1hcChjYWxsYmFja2ZuKTsNCg0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdC5sZW5ndGggPT09IDMgJiYgY2FsbGVkID09PSAyICYmIHR5cGVvZiB0ZXN0UmVzdWx0WzJdID09PSAidW5kZWZpbmVkIjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubWFwKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmICFbLCAxXS5oYXNPd25Qcm9wZXJ0eSgwKSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-8-b-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE5LTgtYi0xIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWItMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLm1hcCAtIGNhbGxiYWNrZm4gbm90IGNhbGxlZCBmb3IgaW5kZXhlcyBuZXZlciBiZWVuIGFzc2lnbmVkIHZhbHVlcyIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgeyANCiANCiAgdmFyIGNhbGxDbnQgPSAwOw0KICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopDQogIHsNCiAgICBjYWxsQ250Kys7DQogICAgcmV0dXJuIDE7DQogIH0NCg0KICB2YXIgc3JjQXJyID0gbmV3IEFycmF5KDEwKTsNCiAgc3JjQXJyWzFdID0gdW5kZWZpbmVkOyAvL2V4cGxpY2l0bHkgYXNzaWduaW5nIGEgdmFsdWUNCiAgdmFyIHJlc0FyciA9IHNyY0Fyci5tYXAoY2FsbGJhY2tmbik7DQogIGlmKCByZXNBcnIubGVuZ3RoID09PSAxMCAmJiBjYWxsQ250ID09PSAxKQ0KICAgICAgcmV0dXJuIHRydWU7ICAgIA0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.19-8-b-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1iLTEwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOS8xNS40LjQuMTktOC1iLTEwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLm1hcCAtIGRlbGV0aW5nIHByb3BlcnR5IG9mIHByb3RvdHlwZSBjYXVzZXMgcHJvdG90eXBlIGluZGV4IHByb3BlcnR5IG5vdCB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5LWxpa2UgT2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiBpZHggPT09IDEgJiYgdHlwZW9mIHZhbCA9PT0gInVuZGVmaW5lZCI7DQogICAgICAgIH0NCiAgICAgICAgdmFyIG9iaiA9IHsgMjogMiwgbGVuZ3RoOiAyMCB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMV07DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QucHJvdG90eXBlWzFdID0gMTsNCiAgICAgICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdC5sZW5ndGggPT09IDIwICYmIHR5cGVvZiB0ZXN0UmVzdWx0WzFdID09PSAidW5kZWZpbmVkIjsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlWzFdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.19-8-b-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1iLTExIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOS8xNS40LjQuMTktOC1iLTExLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLm1hcCAtIGRlbGV0aW5nIHByb3BlcnR5IG9mIHByb3RvdHlwZSBjYXVzZXMgcHJvdG90eXBlIGluZGV4IHByb3BlcnR5IG5vdCB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiBpZHggPT09IDEgJiYgdHlwZW9mIHZhbCA9PT0gInVuZGVmaW5lZCI7DQogICAgICAgIH0NCiAgICAgICAgdmFyIGFyciA9IFswLCAsIDJdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVsxXSA9IDE7DQogICAgICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGFyci5tYXAoY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdC5sZW5ndGggPT09IDMgJiYgdHlwZW9mIHRlc3RSZXN1bHRbMV0gPT09ICJ1bmRlZmluZWQiOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgIVssIDFdLmhhc093blByb3BlcnR5KDApICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.19-8-b-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1iLTEyIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOS8xNS40LjQuMTktOC1iLTEyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLm1hcCAtIGRlbGV0aW5nIG93biBwcm9wZXJ0eSB3aXRoIHByb3RvdHlwZSBwcm9wZXJ0eSBjYXVzZXMgcHJvdG90eXBlIGluZGV4IHByb3BlcnR5IHRvIGJlIHZpc2l0ZWQgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSAmJiB2YWwgPT09IDMpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHZhciBvYmogPSB7IDA6IDAsIDE6IDEsIDI6IDIsIGxlbmd0aDogMTAgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGRlbGV0ZSBvYmpbMV07DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QucHJvdG90eXBlWzFdID0gMzsNCiAgICAgICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdFsxXSA9PT0gZmFsc2U7IA0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubWFwKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-8-b-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1iLTEzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOS8xNS40LjQuMTktOC1iLTEzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLm1hcCAtIGRlbGV0aW5nIG93biBwcm9wZXJ0eSB3aXRoIHByb3RvdHlwZSBwcm9wZXJ0eSBjYXVzZXMgcHJvdG90eXBlIGluZGV4IHByb3BlcnR5IHRvIGJlIHZpc2l0ZWQgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSAmJiB2YWwgPT09IDMpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHZhciBhcnIgPSBbMCwgMSwgMl07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgYXJyWzFdOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzFdID0gMzsNCiAgICAgICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gYXJyLm1hcChjYWxsYmFja2ZuKTsNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0WzFdID09PSBmYWxzZTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubWFwKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.19-8-b-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1iLTE0IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOS8xNS40LjQuMTktOC1iLTE0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLm1hcCAtIGRlY3JlYXNpbmcgbGVuZ3RoIG9mIGFycmF5IGNhdXNlcyBpbmRleCBwcm9wZXJ0eSBub3QgdG8gYmUgdmlzaXRlZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiBpZHggPT09IDMgJiYgdHlwZW9mIHZhbCA9PT0gInVuZGVmaW5lZCI7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWzAsIDEsIDIsICJsYXN0Il07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBhcnIubGVuZ3RoID0gMzsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBhcnIubWFwKGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdHlwZW9mIHRlc3RSZXN1bHRbM10gPT09ICJ1bmRlZmluZWQiOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.19-8-b-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1iLTE1IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOS8xNS40LjQuMTktOC1iLTE1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLm1hcCAtIGRlY3JlYXNpbmcgbGVuZ3RoIG9mIGFycmF5IHdpdGggcHJvdG90eXBlIHByb3BlcnR5IGNhdXNlcyBwcm90b3R5cGUgaW5kZXggcHJvcGVydHkgdG8gYmUgdmlzaXRlZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAyICYmIHZhbCA9PT0gInByb3RvdHlwZSIpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHZhciBhcnIgPSBbMCwgMSwgMl07DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICIyIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gInByb3RvdHlwZSI7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgYXJyLmxlbmd0aCA9IDI7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBhcnIubWFwKGNhbGxiYWNrZm4pOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQubGVuZ3RoID09PSAzICYmIHRlc3RSZXN1bHRbMl0gPT09IGZhbHNlOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsyXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.19-8-b-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1iLTE2IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOS8xNS40LjQuMTktOC1iLTE2LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLm1hcCAtIGRlY3JlYXNpbmcgbGVuZ3RoIG9mIGFycmF5IGRvZXMgbm90IGRlbGV0ZSBub24tY29uZmlndXJhYmxlIHByb3BlcnRpZXMiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMiAmJiB2YWwgPT09ICJ1bmNvbmZpZ3VyYWJsZSIpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFswLCAxLCAyXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMiIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAidW5jb25maWd1cmFibGUiOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBhcnIubGVuZ3RoID0gMjsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBhcnIubWFwKGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdC5sZW5ndGggPT09IDMgJiYgdGVzdFJlc3VsdFsyXSA9PT0gZmFsc2U7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-8-b-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNC40LjE5LTgtYi0yIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOS8xNS40LjQuMTktOC1iLTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gYWRkZWQgcHJvcGVydGllcyBpbiBzdGVwIDIgYXJlIHZpc2libGUgaGVyZSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAyICYmIHZhbCA9PT0gImxlbmd0aCIpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJsZW5ndGgiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBvYmpbMl0gPSAibGVuZ3RoIjsNCiAgICAgICAgICAgICAgICByZXR1cm4gMzsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwob2JqLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHRbMl0gPT09IGZhbHNlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.4.4.19-8-b-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1iLTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWItMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBkZWxldGVkIHByb3BlcnRpZXMgaW4gc3RlcCAyIGFyZSB2aXNpYmxlIGhlcmUiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMikgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgdmFyIG9iaiA9IHsgMjogNi45OSwgODogMTkgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAibGVuZ3RoIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIG9ialsyXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQogICAgICAgIHJldHVybiB0eXBlb2YgdGVzdFJlc3VsdFsyXSA9PT0gInVuZGVmaW5lZCI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.19-8-b-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1iLTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWItNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBwcm9wZXJ0aWVzIGFkZGVkIGludG8gb3duIG9iamVjdCBhZnRlciBjdXJyZW50IHBvc2l0aW9uIGFyZSB2aXNpdGVkIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSAmJiB2YWwgPT09IDEpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgbGVuZ3RoOiAyIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMSIsIHsNCiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0WzBdID09PSB0cnVlICYmIHRlc3RSZXN1bHRbMV0gPT09IGZhbHNlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.19-8-b-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1iLTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWItNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBwcm9wZXJ0aWVzIGFkZGVkIGludG8gb3duIG9iamVjdCBhZnRlciBjdXJyZW50IHBvc2l0aW9uIGFyZSB2aXNpdGVkIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEgJiYgdmFsID09PSAxKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbMCwgLCAyXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBhcnIubWFwKGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdFswXSA9PT0gdHJ1ZSAmJiB0ZXN0UmVzdWx0WzFdID09PSBmYWxzZTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubWFwKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmICFbLCAxXS5oYXNPd25Qcm9wZXJ0eSgwKSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-8-b-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1iLTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWItNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBwcm9wZXJ0aWVzIGNhbiBiZSBhZGRlZCB0byBwcm90b3R5cGUgYWZ0ZXIgY3VycmVudCBwb3NpdGlvbiBhcmUgdmlzaXRlZCBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxICYmIHZhbCA9PT0gNi45OSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgdmFyIG9iaiA9IHsgbGVuZ3RoOiAyIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LnByb3RvdHlwZSwgIjEiLCB7DQogICAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDYuOTk7DQogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwob2JqLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0WzBdID09PSB0cnVlICYmIHRlc3RSZXN1bHRbMV0gPT09IGZhbHNlOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubWFwKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-8-b-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1iLTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWItNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBwcm9wZXJ0aWVzIGNhbiBiZSBhZGRlZCB0byBwcm90b3R5cGUgYWZ0ZXIgY3VycmVudCBwb3NpdGlvbiBhcmUgdmlzaXRlZCBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxICYmIHZhbCA9PT0gNi45OSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgdmFyIGFyciA9IFswLCAsIDJdOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjEiLCB7DQogICAgICAgICAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gNi45OTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBhcnIubWFwKGNhbGxiYWNrZm4pOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHRbMF0gPT09IHRydWUgJiYgdGVzdFJlc3VsdFsxXSA9PT0gZmFsc2U7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzFdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiAhWywgMV0uaGFzT3duUHJvcGVydHkoMCkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.19-8-b-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1iLTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWItOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBkZWxldGluZyBvd24gcHJvcGVydHkgY2F1c2VzIGluZGV4IHByb3BlcnR5IG5vdCB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHZhciBvYmogPSB7IGxlbmd0aDogMiB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDYuOTk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIG9ialsxXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwob2JqLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHRbMF0gPT09IHRydWUgJiYgdHlwZW9mIHRlc3RSZXN1bHRbMV0gPT09ICJ1bmRlZmluZWQiOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.19-8-b-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1iLTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWItOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBkZWxldGluZyBvd24gcHJvcGVydHkgY2F1c2VzIGluZGV4IHByb3BlcnR5IG5vdCB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgdmFyIGFyciA9IFsxLCAyXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAiNi45OSI7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIGFyclsxXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBhcnIubWFwKGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdFswXSA9PT0gdHJ1ZSAmJiB0eXBlb2YgdGVzdFJlc3VsdFsxXSA9PT0gInVuZGVmaW5lZCI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-8-c-i-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTgtYy1pLTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGtWYWx1ZSA9IHt9Ow0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gNSkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IGtWYWx1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IDU6IGtWYWx1ZSwgbGVuZ3RoOiAxMDAgfTsNCg0KICAgICAgICB2YXIgbmV3QXJyID0gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIG5ld0Fycls1XSA9PT0gdHJ1ZTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubWFwKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.19-8-c-i-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktMTAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWMtaS0xMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGtWYWx1ZSA9ICJhYmMiOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IGtWYWx1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiBrVmFsdWU7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gYXJyLm1hcChjYWxsYmFja2ZuKTsNCg0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdFswXSA9PT0gdHJ1ZTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubWFwKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.19-8-c-i-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktMTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWMtaS0xMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGtWYWx1ZSA9ICJhYmMiOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IGtWYWx1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHsgMDogNSwgbGVuZ3RoOiAyIH07DQoNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb24oKTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY2hpbGQsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGtWYWx1ZTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4pOw0KDQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0WzBdID09PSB0cnVlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.19-8-c-i-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktMTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWMtaS0xMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGtWYWx1ZSA9ICJhYmMiOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IGtWYWx1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbXTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzBdID0gMTE7DQoNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4ga1ZhbHVlOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBhcnIubWFwKGNhbGxiYWNrZm4pOw0KDQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdFswXSA9PT0gdHJ1ZTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMF07DQogICAgICAgIH0NCg0KDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-8-c-i-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktMTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWMtaS0xMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBrVmFsdWUgPSAiYWJjIjsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSBrVmFsdWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7IGxlbmd0aDogMiB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gNTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb24oKTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY2hpbGQsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGtWYWx1ZTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4pOw0KDQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0WzBdID09PSB0cnVlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.19-8-c-i-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktMTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWMtaS0xNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBrVmFsdWUgPSAiYWJjIjsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSBrVmFsdWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gW107DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICIwIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTE7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGtWYWx1ZTsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gYXJyLm1hcChjYWxsYmFja2ZuKTsNCg0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHRbMF0gPT09IHRydWU7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzBdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-8-c-i-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktMTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWMtaS0xNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGtWYWx1ZSA9ICJhYmMiOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IGtWYWx1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHsgbGVuZ3RoOiAyIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiBrVmFsdWU7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4pOw0KDQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0WzBdID09PSB0cnVlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.19-8-c-i-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktMTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWMtaS0xNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGtWYWx1ZSA9ICJhYmMiOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IGtWYWx1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMCIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGtWYWx1ZTsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gWywgXS5tYXAoY2FsbGJhY2tmbik7DQoNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0WzBdID09PSB0cnVlOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KDQoNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubWFwKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmICFbLCAxXS5oYXNPd25Qcm9wZXJ0eSgwKSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-8-c-i-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktMTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWMtaS0xNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gInVuZGVmaW5lZCI7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyBsZW5ndGg6IDIgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMSIsIHsNCiAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHRbMV0gPT09IHRydWU7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.19-8-c-i-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktMTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWMtaS0xOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gInVuZGVmaW5lZCI7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gW107DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjEiLCB7DQogICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGFyci5tYXAoY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHRbMV0gPT09IHRydWU7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-8-c-i-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktMTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWMtaS0xOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAwKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICJ1bmRlZmluZWQiOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFtdOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMCIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDEwMDsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gYXJyLm1hcChjYWxsYmFja2ZuKTsNCg0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHRbMF0gPT09IHRydWU7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzBdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-8-c-i-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTgtYy1pLTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGtWYWx1ZSA9IHt9Ow0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IGtWYWx1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBba1ZhbHVlXTsNCg0KICAgICAgICB2YXIgbmV3QXJyID0gYXJyLm1hcChjYWxsYmFja2ZuKTsNCg0KICAgICAgICByZXR1cm4gbmV3QXJyWzBdID09PSB0cnVlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-8-c-i-20"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktMjAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWMtaS0yMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAwKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICJ1bmRlZmluZWQiOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHByb3RvID0ge307DQoNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb24oKTsNCiAgICAgICAgY2hpbGQubGVuZ3RoID0gMjsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY2hpbGQsICIwIiwgew0KICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAxMDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKGNoaWxkLCBjYWxsYmFja2ZuKTsNCg0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdFswXSA9PT0gdHJ1ZTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubWFwKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-8-c-i-21"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktMjEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWMtaS0yMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gInVuZGVmaW5lZCI7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7IGxlbmd0aDogMiB9Ow0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICIwIiwgew0KICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb24oKTsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbChjaGlsZCwgY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHRbMF0gPT09IHRydWU7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.19-8-c-i-22"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktMjIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWMtaS0yMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gInVuZGVmaW5lZCI7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjAiLCB7DQogICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBbLF0ubWFwKGNhbGxiYWNrZm4pOw0KDQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdFswXSA9PT0gdHJ1ZTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMF07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubWFwKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmICFbLCAxXS5oYXNPd25Qcm9wZXJ0eSgwKSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-8-c-i-23"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktMjMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWMtaS0yMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBUaGlzIG9iamVjdCBpcyB0aGUgZ2xvYmFsIG9iamVjdCB3aGljaCBjb250YWlucyBpbmRleCBwcm9wZXJ0eSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIga1ZhbHVlID0gImFiYyI7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAwKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHZhbCA9PT0ga1ZhbHVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIHZhciBvbGRMZW4gPSBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aDsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KClbMF0gPSBrVmFsdWU7DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aCA9IDI7DQoNCiAgICAgICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKGZuR2xvYmFsT2JqZWN0KCksIGNhbGxiYWNrZm4pOw0KDQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdFswXSA9PT0gdHJ1ZTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBmbkdsb2JhbE9iamVjdCgpWzBdOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKS5sZW5ndGggPSBvbGRMZW47DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubWFwKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.19-8-c-i-25"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktMjUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWMtaS0yNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBUaGlzIG9iamVjdCBpcyB0aGUgQXJndW1lbnRzIG9iamVjdCB3aGljaCBpbXBsZW1lbnRzIGl0cyBvd24gcHJvcGVydHkgZ2V0IG1ldGhvZCAobnVtYmVyIG9mIGFyZ3VtZW50cyBpcyBsZXNzIHRoYW4gbnVtYmVyIG9mIHBhcmFtZXRlcnMpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IDk7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBmdW5jID0gZnVuY3Rpb24gKGEsIGIpIHsNCiAgICAgICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwoYXJndW1lbnRzLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgfTsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZ1bmMoOSk7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHRbMF0gPT09IHRydWU7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.19-8-c-i-26"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktMjYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWMtaS0yNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBUaGlzIG9iamVjdCBpcyB0aGUgQXJndW1lbnRzIG9iamVjdCB3aGljaCBpbXBsZW1lbnRzIGl0cyBvd24gcHJvcGVydHkgZ2V0IG1ldGhvZCAobnVtYmVyIG9mIGFyZ3VtZW50cyBlcXVhbHMgbnVtYmVyIG9mIHBhcmFtZXRlcnMpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IDk7DQogICAgICAgICAgICB9IGVsc2UgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IDExOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgZnVuYyA9IGZ1bmN0aW9uIChhLCBiKSB7DQogICAgICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKGFyZ3VtZW50cywgY2FsbGJhY2tmbik7DQogICAgICAgIH07DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmdW5jKDksIDExKTsNCg0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdFswXSA9PT0gdHJ1ZSAmJiB0ZXN0UmVzdWx0WzFdID09PSB0cnVlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-8-c-i-27"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktMjciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWMtaS0yNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBUaGlzIG9iamVjdCBpcyB0aGUgQXJndW1lbnRzIG9iamVjdCB3aGljaCBpbXBsZW1lbnRzIGl0cyBvd24gcHJvcGVydHkgZ2V0IG1ldGhvZCAobnVtYmVyIG9mIGFyZ3VtZW50cyBpcyBncmVhdGVyIHRoYW4gbnVtYmVyIG9mIHBhcmFtZXRlcnMpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IDk7DQogICAgICAgICAgICB9IGVsc2UgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IDExOw0KICAgICAgICAgICAgfSBlbHNlIGlmIChpZHggPT09IDIpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSAxMjsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgIH0NCg0KICAgICAgICB2YXIgZnVuYyA9IGZ1bmN0aW9uIChhLCBiKSB7DQogICAgICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKGFyZ3VtZW50cywgY2FsbGJhY2tmbik7DQogICAgICAgIH07DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmdW5jKDksIDExLCAxMik7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHRbMF0gPT09IHRydWUgJiYgdGVzdFJlc3VsdFsxXSA9PT0gdHJ1ZSAmJiB0ZXN0UmVzdWx0WzJdID09PSB0cnVlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-8-c-i-28"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktMjgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWMtaS0yOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBlbGVtZW50IGNoYW5nZWQgYnkgZ2V0dGVyIG9uIHByZXZpb3VzIGl0ZXJhdGlvbnMgaXMgb2JzZXJ2ZWQgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHByZUl0ZXJWaXNpYmxlID0gZmFsc2U7DQogICAgICAgIHZhciBhcnIgPSBbXTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSAxMTsNCiAgICAgICAgICAgIH0gZWxzZSBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHZhbCA9PT0gOTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBwcmVJdGVyVmlzaWJsZSA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0dXJuIDExOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGlmIChwcmVJdGVyVmlzaWJsZSkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gOTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGFyci5tYXAoY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHRbMF0gPT09IHRydWUgJiYgdGVzdFJlc3VsdFsxXSA9PT0gdHJ1ZTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubWFwKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.19-8-c-i-29"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktMjkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWMtaS0yOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSBlbGVtZW50IGNoYW5nZWQgYnkgZ2V0dGVyIG9uIHByZXZpb3VzIGl0ZXJhdGlvbnMgaXMgb2JzZXJ2ZWQgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHByZUl0ZXJWaXNpYmxlID0gZmFsc2U7DQogICAgICAgIHZhciBvYmogPSB7IGxlbmd0aDogMiB9Ow0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IDExOw0KICAgICAgICAgICAgfSBlbHNlIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSA5Ow0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHByZUl0ZXJWaXNpYmxlID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgaWYgKHByZUl0ZXJWaXNpYmxlKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiA5Ow0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAxMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHRbMF0gPT09IHRydWUgJiYgdGVzdFJlc3VsdFsxXSA9PT0gdHJ1ZTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubWFwKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-8-c-i-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTgtYy1pLTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGRhdGEgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGtWYWx1ZSA9ICJhYmMiOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gNSkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IGtWYWx1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHsgNTogMTIsIGxlbmd0aDogMTAgfTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZFs1XSA9IGtWYWx1ZTsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbChjaGlsZCwgY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHRbNV0gPT09IHRydWU7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.19-8-c-i-30"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktMzAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWMtaS0zMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSB1bmhhbmRsZWQgZXhjZXB0aW9ucyBoYXBwZW5lZCBpbiBnZXR0ZXIgdGVybWluYXRlIGl0ZXJhdGlvbiBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgb2JqID0geyAwOiAxMSwgNTogMTAsIDEwOiA4LCBsZW5ndGg6IDIwIH07DQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA+IDEpIHsNCiAgICAgICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCJ1bmhhbmRsZSBleGNlcHRpb24gaGFwcGVuZWQgaW4gZ2V0dGVyIik7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIyIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgIHJldHVybiAxMDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwob2JqLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZXgpIHsNCiAgICAgICAgICAgIHJldHVybiAoZXggaW5zdGFuY2VvZiBSYW5nZUVycm9yKSAmJiAhYWNjZXNzZWQ7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubWFwKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-8-c-i-31"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktMzEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWMtaS0zMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5tYXAgLSB1bmhhbmRsZWQgZXhjZXB0aW9ucyBoYXBwZW5lZCBpbiBnZXR0ZXIgdGVybWluYXRlIGl0ZXJhdGlvbiBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPiAxKSB7DQogICAgICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFtdOw0KICAgICAgICBhcnJbNV0gPSAxMDsNCiAgICAgICAgYXJyWzEwXSA9IDEwMDsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCJ1bmhhbmRsZSBleGNlcHRpb24gaGFwcGVuZWQgaW4gZ2V0dGVyIik7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIyIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgIHJldHVybiAxMDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBhcnIubWFwKGNhbGxiYWNrZm4pOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChleCkgew0KICAgICAgICAgICAgcmV0dXJuIChleCBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpICYmICFhY2Nlc3NlZDsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.19-8-c-i-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTgtYy1pLTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGRhdGEgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGtWYWx1ZSA9ICJhYmMiOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IGtWYWx1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGVbMF0gPSAxMTsNCg0KICAgICAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBba1ZhbHVlXS5tYXAoY2FsbGJhY2tmbik7DQoNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0WzBdID09PSB0cnVlOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-8-c-i-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTgtYy1pLTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGRhdGEgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBrVmFsdWUgPSAiYWJjIjsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDUpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSBrVmFsdWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7fTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICI1Iiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDExOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZC5sZW5ndGggPSAxMDsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNoaWxkLCAiNSIsIHsNCiAgICAgICAgICAgIHZhbHVlOiBrVmFsdWUsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4pOw0KDQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0WzVdID09PSB0cnVlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.19-8-c-i-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktNiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTgtYy1pLTYuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGRhdGEgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBrVmFsdWUgPSAiYWJjIjsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSBrVmFsdWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjAiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiA5Ow0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBba1ZhbHVlXS5tYXAoY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdFswXSA9PT0gdHJ1ZTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMF07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUubWFwKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.19-8-c-i-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTgtYy1pLTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgaW5oZXJpdGVkIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGtWYWx1ZSA9ICJhYmMiOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gNSkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IGtWYWx1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHsgNToga1ZhbHVlLCBsZW5ndGg6IDEwIH07DQoNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb24oKTsNCg0KICAgICAgICB2YXIgbmV3QXJyID0gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKGNoaWxkLCBjYWxsYmFja2ZuKTsNCg0KICAgICAgICByZXR1cm4gbmV3QXJyWzVdID09PSB0cnVlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-8-c-i-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTgtYy1pLTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgaW5oZXJpdGVkIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IDEzOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVsxXSA9IDEzOw0KDQogICAgICAgICAgICB2YXIgbmV3QXJyID0gWywgLCAsIF0ubWFwKGNhbGxiYWNrZm4pOw0KDQogICAgICAgICAgICByZXR1cm4gbmV3QXJyWzFdID09PSB0cnVlOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApICYmICFbLCAxXS5oYXNPd25Qcm9wZXJ0eSgwKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.19-8-c-i-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWktOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTkvMTUuNC40LjE5LTgtYy1pLTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUubWFwIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBrVmFsdWUgPSAiYWJjIjsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSBrVmFsdWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyBsZW5ndGg6IDIgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiBrVmFsdWU7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHRbMF0gPT09IHRydWU7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.19-8-c-ii-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE5LTgtYy1paS0xIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE5LzE1LjQuNC4xOS04LWMtaWktMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLm1hcCAtIGNhbGxiYWNrZm4gY2FsbGVkIHdpdGggY29ycmVjdCBwYXJhbWV0ZXJzIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7IA0KIA0KICB2YXIgYlBhciA9IHRydWU7DQogIHZhciBiQ2FsbGVkID0gZmFsc2U7DQogIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikNCiAgew0KICAgIGJDYWxsZWQgPSB0cnVlOw0KICAgIGlmKG9ialtpZHhdICE9PSB2YWwpDQogICAgICBiUGFyID0gZmFsc2U7DQogIH0NCg0KICB2YXIgc3JjQXJyID0gWzAsMSx0cnVlLG51bGwsbmV3IE9iamVjdCgpLCJmaXZlIl07DQogIHNyY0Fycls5OTk5OTldID0gLTYuNjsNCiAgcmVzQXJyID0gc3JjQXJyLm1hcChjYWxsYmFja2ZuKTsNCiAgDQogIGlmKGJDYWxsZWQgPT09IHRydWUgJiYgYlBhciA9PT0gdHJ1ZSkNCiAgICByZXR1cm4gdHJ1ZTsNCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.19-8-c-ii-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWlpLTEwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOS8xNS40LjQuMTktOC1jLWlpLTEwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLm1hcCAtIGNhbGxiYWNrZm4gaXMgY2FsbGVkIHdpdGggMSBmb3JtYWwgcGFyYW1ldGVyIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsKSB7DQogICAgICAgICAgICByZXR1cm4gdmFsID4gMTA7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IFsxMV0ubWFwKGNhbGxiYWNrZm4pOw0KDQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0WzBdID09PSB0cnVlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5tYXApOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.19-8-c-ii-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTktOC1jLWlpLTExIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xOS8xNS40LjQuMTktOC1jLWlpLTExLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLm1hcCAtIGNhbGxiYWNrZm4gaXMgY2FsbGVkIHdpdGggMiBmb3JtYWwgcGFyYW1ldGVycyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCkgew0KICAgICAgICAgICAgcmV0dXJuICh2YWwgPiAxMCAmJiBhcmd1bWVudHNbMl1baWR4XSA9PT0gdmFsKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gWzExXS5tYXAoY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHRbMF0gPT09IHRydWU7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLm1hcCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>

View File

@ -2,7 +2,7 @@
<!-- adding section element if in the future we want to store information about the -->
<!-- spec structure in this file, for now the section structure is defined in the -->
<!-- sections.js file -->
<section name="Chapter - 15.4.4.20" numTests="178">
<section name="Chapter - 15.4.4.20" numTests="219">
<test id="15.4.4.20-0-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIwLTAtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMC8xNS40LjQuMjAtMC0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIG11c3QgZXhpc3QgYXMgYSBmdW5jdGlvbiIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgZiA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXI7DQogIGlmICh0eXBlb2YoZikgPT09ICJmdW5jdGlvbiIpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.20-0-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIwLTAtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMC8xNS40LjQuMjAtMC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyLmxlbmd0aCBtdXN0IGJlIDEiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgaWYgKEFycmF5LnByb3RvdHlwZS5maWx0ZXIubGVuZ3RoID09PSAxKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.20-1-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNC40LjIwLTEtMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTEtMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgYXBwbGllZCB0byB1bmRlZmluZWQgdGhyb3dzIGEgVHlwZUVycm9yIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKHVuZGVmaW5lZCk7IC8vIFR5cGVFcnJvciBpcyB0aHJvd24gaWYgdmFsdWUgaXMgdW5kZWZpbmVkDQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGV4KSB7DQogICAgICAgICAgICByZXR1cm4gZXggaW5zdGFuY2VvZiBUeXBlRXJyb3I7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKTsNCiAgICB9DQp9KTsNCg==]]></test>
@ -30,6 +30,7 @@
<test id="15.4.4.20-2-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtMi0xMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTItMTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gJ2xlbmd0aCcgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QucHJvdG90eXBlLCAibGVuZ3RoIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHZhciBvYmogPSB7IDA6IDEyLCAxOiAxMSB9Ow0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImxlbmd0aCIsIHsNCiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICB2YXIgbmV3QXJyID0gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gbmV3QXJyLmxlbmd0aCA9PT0gMCAmJiAhYWNjZXNzZWQ7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZS5sZW5ndGg7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-2-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtMi0xMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTItMTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIGFwcGxpZWQgdG8gdGhlIEFycmF5LWxpa2Ugb2JqZWN0IHRoYXQgJ2xlbmd0aCcgaXMgaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24iLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7fTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAibGVuZ3RoIiwgew0KICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb24oKTsNCiAgICAgICAgY2hpbGRbMF0gPSAxMTsNCiAgICAgICAgY2hpbGRbMV0gPSAxMjsNCg0KICAgICAgICB2YXIgbmV3QXJyID0gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKGNoaWxkLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgcmV0dXJuIG5ld0Fyci5sZW5ndGggPT09IDAgJiYgIWFjY2Vzc2VkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.20-2-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtMi0xNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTItMTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIGFwcGxpZWQgdG8gdGhlIEFycmF5LWxpa2Ugb2JqZWN0IHRoYXQgJ2xlbmd0aCBwcm9wZXJ0eSBkb2Vzbid0IGV4aXN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMDogMTEsIDE6IDEyIH07DQoNCiAgICAgICAgdmFyIG5ld0FyciA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gbmV3QXJyLmxlbmd0aCA9PT0gMCAmJiAhYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZpbHRlcik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.20-2-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtMi0xNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTItMTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gJ2xlbmd0aCcgaXMgcHJvcGVydHkgb2YgdGhlIGdsb2JhbCBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuICBvYmoubGVuZ3RoID09PSAyOw0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIHZhciBvbGRMZW4gPSBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aDsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KClbMF0gPSAxMjsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KClbMV0gPSAxMTsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KClbMl0gPSA5Ow0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKS5sZW5ndGggPSAyOw0KICAgICAgICAgICAgdmFyIG5ld0FyciA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChmbkdsb2JhbE9iamVjdCgpLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgICAgIHJldHVybiBuZXdBcnIubGVuZ3RoID09PSAyOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIGZuR2xvYmFsT2JqZWN0KClbMF07DQogICAgICAgICAgICBkZWxldGUgZm5HbG9iYWxPYmplY3QoKVsxXTsNCiAgICAgICAgICAgIGRlbGV0ZSBmbkdsb2JhbE9iamVjdCgpWzJdOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKS5sZW5ndGggPSBvbGRMZW47DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-2-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtMi0xNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTItMTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIGFwcGxpZWQgdG8gdGhlIEFyZ3VtZW50cyBvYmplY3QsIHdoaWNoIGltcGxlbWVudHMgaXRzIG93biBwcm9wZXJ0eSBnZXQgbWV0aG9kIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIG9iai5sZW5ndGggPT09IDI7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgZnVuYyA9IGZ1bmN0aW9uIChhLCBiKSB7DQogICAgICAgICAgICB2YXIgbmV3QXJyID0gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKGFyZ3VtZW50cywgY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gbmV3QXJyLmxlbmd0aCA9PT0gMjsNCiAgICAgICAgfTsNCg0KICAgICAgICByZXR1cm4gZnVuYygxMiwgMTEpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-2-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtMi0xOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTItMTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIGFwcGxpZWQgdG8gU3RyaW5nIG9iamVjdCwgd2hpY2ggaW1wbGVtZW50cyBpdHMgb3duIHByb3BlcnR5IGdldCBtZXRob2QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gb2JqLmxlbmd0aCA9PT0gMzsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBzdHIgPSBuZXcgU3RyaW5nKCIwMTIiKTsNCg0KICAgICAgICB2YXIgbmV3QXJyID0gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKHN0ciwgY2FsbGJhY2tmbik7DQogICAgICAgIHJldHVybiBuZXdBcnIubGVuZ3RoID09PSAzOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-2-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtMi0xOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTItMTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIGFwcGxpZWQgdG8gRnVuY3Rpb24gb2JqZWN0LCB3aGljaCBpbXBsZW1lbnRzIGl0cyBvd24gcHJvcGVydHkgZ2V0IG1ldGhvZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiBvYmoubGVuZ3RoID09PSAyOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGZ1biA9IGZ1bmN0aW9uIChhLCBiKSB7DQogICAgICAgICAgICByZXR1cm4gYSArIGI7DQogICAgICAgIH07DQogICAgICAgIGZ1blswXSA9IDEyOw0KICAgICAgICBmdW5bMV0gPSAxMTsNCiAgICAgICAgZnVuWzJdID0gOTsNCg0KICAgICAgICB2YXIgbmV3QXJyID0gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKGZ1biwgY2FsbGJhY2tmbik7DQogICAgICAgIHJldHVybiBuZXdBcnIubGVuZ3RoID09PSAyOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
@ -68,6 +69,7 @@
<test id="15.4.4.20-4-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtNC0xMCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTQtMTAuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gdGhlIGV4Y2VwdGlvbiBpcyBub3QgdGhyb3duIGlmIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGJ5IHN0ZXAgMiIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgb2JqID0geyAwOiAxMSwgMTogMTIgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAibGVuZ3RoIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKCk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwob2JqLCB1bmRlZmluZWQpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChleCkgew0KICAgICAgICAgICAgcmV0dXJuICEoZXggaW5zdGFuY2VvZiBUeXBlRXJyb3IpOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZpbHRlcikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-4-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtNC0xMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTQtMTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gdGhlIGV4Y2VwdGlvbiBpcyBub3QgdGhyb3duIGlmIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGJ5IHN0ZXAgMyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgb2JqID0geyAwOiAxMSwgMTogMTIgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAibGVuZ3RoIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHsNCiAgICAgICAgICAgICAgICAgICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTeW50YXhFcnJvcigpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChvYmosIHVuZGVmaW5lZCk7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGV4KSB7DQogICAgICAgICAgICByZXR1cm4gIShleCBpbnN0YW5jZW9mIFR5cGVFcnJvcik7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-4-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtNC0xMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTQtMTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gJ2NhbGxiYWNrZm4nIGlzIGEgZnVuY3Rpb24iLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHZhbCA9PT0gOTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBuZXdBcnIgPSBbMTEsIDldLmZpbHRlcihjYWxsYmFja2ZuKTsNCiAgICAgICAgcmV0dXJuIG5ld0Fyci5sZW5ndGggPT09IDEgJiYgbmV3QXJyWzBdID09PSA5Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-4-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtNC0xNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTQtMTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gY2FsbGluZyB3aXRoIG5vIGNhbGxiYWNrZm4gaXMgdGhlIHNhbWUgYXMgcGFzc2luZyB1bmRlZmluZWQgZm9yIGNhbGxiYWNrZm4iLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBvYmogPSB7IDEwOiAxMCB9Ow0KICAgICAgICB2YXIgbGVuZ3RoQWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIGxvb3BBY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAibGVuZ3RoIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgbGVuZ3RoQWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgIHJldHVybiAyMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgbG9vcEFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwob2JqKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZXgpIHsNCiAgICAgICAgICAgIHJldHVybiAoZXggaW5zdGFuY2VvZiBUeXBlRXJyb3IpICYmIGxlbmd0aEFjY2Vzc2VkICYmICFsb29wQWNjZXNzZWQ7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-4-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIwLTQtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMC8xNS40LjQuMjAtNC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIHRocm93cyBSZWZlcmVuY2VFcnJvciBpZiBjYWxsYmFja2ZuIGlzIHVucmVmZXJlbmNlZCIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogIHZhciBhcnIgPSBuZXcgQXJyYXkoMTApOw0KICB0cnkgew0KICAgIGFyci5maWx0ZXIoZm9vKTsgICAgDQogIH0NCiAgY2F0Y2goZSkgew0KICAgIGlmKGUgaW5zdGFuY2VvZiBSZWZlcmVuY2VFcnJvcikNCiAgICAgIHJldHVybiB0cnVlOyAgDQogIH0NCg0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZpbHRlcik7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.20-4-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIwLTQtMyIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMC8xNS40LjQuMjAtNC0zLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIHRocm93cyBUeXBlRXJyb3IgaWYgY2FsbGJhY2tmbiBpcyBudWxsIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgdmFyIGFyciA9IG5ldyBBcnJheSgxMCk7DQogIHRyeSB7DQogICAgYXJyLmZpbHRlcihudWxsKTsgICAgDQogIH0NCiAgY2F0Y2goZSkgew0KICAgIGlmKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpDQogICAgICByZXR1cm4gdHJ1ZTsgIA0KICB9DQoNCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.20-4-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIwLTQtNCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMC8xNS40LjQuMjAtNC00LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIHRocm93cyBUeXBlRXJyb3IgaWYgY2FsbGJhY2tmbiBpcyBib29sZWFuIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgdmFyIGFyciA9IG5ldyBBcnJheSgxMCk7DQogIHRyeSB7DQogICAgYXJyLmZpbHRlcih0cnVlKTsgICAgDQogIH0NCiAgY2F0Y2goZSkgew0KICAgIGlmKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpDQogICAgICByZXR1cm4gdHJ1ZTsgIA0KICB9DQoNCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpOw0KIH0NCn0pOw0K]]></test>
@ -88,6 +90,7 @@
<test id="15.4.4.20-5-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtNS0xOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTUtMTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gRXJyb3IgT2JqZWN0IGNhbiBiZSB1c2VkIGFzIHRoaXNBcmciLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIHZhciBvYmpFcnJvciA9IG5ldyBSYW5nZUVycm9yKCk7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICByZXR1cm4gdGhpcyA9PT0gb2JqRXJyb3I7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgbmV3QXJyID0gWzExXS5maWx0ZXIoY2FsbGJhY2tmbiwgb2JqRXJyb3IpOw0KDQogICAgICAgIHJldHVybiBuZXdBcnJbMF0gPT09IDExICYmIGFjY2Vzc2VkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-5-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtNS0xOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTUtMTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gdGhlIEFyZ3VtZW50cyBvYmplY3QgY2FuIGJlIHVzZWQgYXMgdGhpc0FyZyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIGFyZzsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiB0aGlzID09PSBhcmc7DQogICAgICAgIH0NCg0KICAgICAgICAoZnVuY3Rpb24gZnVuKCkgew0KICAgICAgICAgICAgYXJnID0gYXJndW1lbnRzOw0KICAgICAgICB9KDEsIDIsIDMpKTsNCg0KICAgICAgICB2YXIgbmV3QXJyID0gWzExXS5maWx0ZXIoY2FsbGJhY2tmbiwgYXJnKTsNCiAgICAgICAgcmV0dXJuIG5ld0FyclswXSA9PT0gMTEgJiYgYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZpbHRlcik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.20-5-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIwLTUtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMC8xNS40LjQuMjAtNS0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gdGhpc0FyZyBpcyBPYmplY3QiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIHJlcyA9IGZhbHNlOw0KICB2YXIgbyA9IG5ldyBPYmplY3QoKTsNCiAgby5yZXMgPSB0cnVlOw0KICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopDQogIHsNCiAgICByZXR1cm4gdGhpcy5yZXM7DQogIH0NCg0KICB2YXIgc3JjQXJyID0gWzFdOw0KICB2YXIgcmVzQXJyID0gc3JjQXJyLmZpbHRlcihjYWxsYmFja2ZuLG8pOw0KICBpZiggcmVzQXJyLmxlbmd0aCA9PT0gMSkNCiAgICByZXR1cm4gdHJ1ZTsNCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.20-5-21"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtNS0yMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTUtMjEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gdGhlIGdsb2JhbCBvYmplY3QgY2FuIGJlIHVzZWQgYXMgdGhpc0FyZyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiB0aGlzID09PSBmbkdsb2JhbE9iamVjdCgpOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG5ld0FyciA9IFsxMV0uZmlsdGVyKGNhbGxiYWNrZm4sIGZuR2xvYmFsT2JqZWN0KCkpOw0KDQogICAgICAgIHJldHVybiBuZXdBcnJbMF0gPT09IDExICYmIGFjY2Vzc2VkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-5-22"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtNS0yMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTUtMjIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gYm9vbGVhbiBwcmltaXRpdmUgY2FuIGJlIHVzZWQgYXMgdGhpc0FyZyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlT2YoKSA9PT0gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgbmV3QXJyID0gWzExXS5maWx0ZXIoY2FsbGJhY2tmbiwgZmFsc2UpOw0KDQogICAgICAgIHJldHVybiBuZXdBcnJbMF0gPT09IDExICYmIGFjY2Vzc2VkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-5-23"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtNS0yMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTUtMjMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gbnVtYmVyIHByaW1pdGl2ZSBjYW4gYmUgdXNlZCBhcyB0aGlzQXJnIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVPZigpID09PSAxMDE7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgbmV3QXJyID0gWzExXS5maWx0ZXIoY2FsbGJhY2tmbiwgMTAxKTsNCg0KICAgICAgICByZXR1cm4gbmV3QXJyWzBdID09PSAxMSAmJiBhY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-5-24"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtNS0yNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTUtMjQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gc3RyaW5nIHByaW1pdGl2ZSBjYW4gYmUgdXNlZCBhcyB0aGlzQXJnIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVPZigpID09PSAiYWJjIjsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBuZXdBcnIgPSBbMTFdLmZpbHRlcihjYWxsYmFja2ZuLCAiYWJjIik7DQoNCiAgICAgICAgcmV0dXJuIG5ld0FyclswXSA9PT0gMTEgJiYgYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZpbHRlcik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
@ -95,6 +98,7 @@
<test id="15.4.4.20-5-28"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtNS0yOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTUtMjguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gdGhlIHJldHVybmVkIGFycmF5IGlzIGluc3RhbmNlb2YgQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG5ld0FyciA9IFsxMV0uZmlsdGVyKGZ1bmN0aW9uICgpIHsgfSk7DQoNCiAgICAgICAgcmV0dXJuIG5ld0FyciBpbnN0YW5jZW9mIEFycmF5Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-5-29"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtNS0yOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTUtMjkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gcmV0dXJucyBhbiBhcnJheSB3aG9zZSBsZW5ndGggaXMgMCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgbmV3QXJyID0gWzExXS5maWx0ZXIoZnVuY3Rpb24gKCkgeyB9KTsNCg0KICAgICAgICByZXR1cm4gbmV3QXJyLmxlbmd0aCA9PT0gMDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-5-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIwLTUtMyIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMC8xNS40LjQuMjAtNS0zLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gdGhpc0FyZyBpcyBBcnJheSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgcmVzID0gZmFsc2U7DQogIHZhciBhID0gbmV3IEFycmF5KCk7DQogIGEucmVzID0gdHJ1ZTsNCiAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKQ0KICB7DQogICAgcmV0dXJuIHRoaXMucmVzOw0KICB9DQoNCiAgdmFyIHNyY0FyciA9IFsxXTsNCiAgdmFyIHJlc0FyciA9IHNyY0Fyci5maWx0ZXIoY2FsbGJhY2tmbixhKTsNCiAgaWYoIHJlc0Fyci5sZW5ndGggPT09IDEpDQogICAgcmV0dXJuIHRydWU7DQoNCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.20-5-30"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNC40LjIwLTUtMzAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC01LTMwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZpbHRlciAtIHRoaXNBcmcgbm90IHBhc3NlZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgZnVuY3Rpb24gaW5uZXJPYmooKSB7DQogICAgICAgICAgICB0aGlzLl8xNV80XzRfMjBfNV8zMCA9IHRydWU7DQogICAgICAgICAgICB2YXIgXzE1XzRfNF8yMF81XzMwID0gZmFsc2U7DQogICAgICAgICAgICANCiAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl8xNV80XzRfMjBfNV8zMDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciBzcmNBcnIgPSBbMV07DQogICAgICAgICAgICB2YXIgcmVzQXJyID0gc3JjQXJyLmZpbHRlcihjYWxsYmFja2ZuKTsNCiAgICAgICAgICAgIHRoaXMucmV0VmFsID0gcmVzQXJyLmxlbmd0aCA9PT0gMDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gbmV3IGlubmVyT2JqKCkucmV0VmFsOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.4.4.20-5-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIwLTUtNCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMC8xNS40LjQuMjAtNS00LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gdGhpc0FyZyBpcyBvYmplY3QgZnJvbSBvYmplY3QgdGVtcGxhdGUocHJvdG90eXBlKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgcmVzID0gZmFsc2U7DQogIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikNCiAgew0KICAgIHJldHVybiB0aGlzLnJlczsNCiAgfQ0KICANCiAgZnVuY3Rpb24gZm9vKCl7fQ0KICBmb28ucHJvdG90eXBlLnJlcyA9IHRydWU7DQogIHZhciBmID0gbmV3IGZvbygpOw0KDQogIHZhciBzcmNBcnIgPSBbMV07DQogIHZhciByZXNBcnIgPSBzcmNBcnIuZmlsdGVyKGNhbGxiYWNrZm4sZik7DQogIGlmKCByZXNBcnIubGVuZ3RoID09PSAxKQ0KICAgIHJldHVybiB0cnVlOyAgICANCg0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZpbHRlcik7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.20-5-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIwLTUtNSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMC8xNS40LjQuMjAtNS01LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gdGhpc0FyZyBpcyBvYmplY3QgZnJvbSBvYmplY3QgdGVtcGxhdGUiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIHJlcyA9IGZhbHNlOw0KICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopDQogIHsNCiAgICByZXR1cm4gdGhpcy5yZXM7DQogIH0NCg0KICBmdW5jdGlvbiBmb28oKXt9DQogIHZhciBmID0gbmV3IGZvbygpOw0KICBmLnJlcyA9IHRydWU7DQogIA0KICB2YXIgc3JjQXJyID0gWzFdOw0KICB2YXIgcmVzQXJyID0gc3JjQXJyLmZpbHRlcihjYWxsYmFja2ZuLGYpOw0KICBpZiggcmVzQXJyLmxlbmd0aCA9PT0gMSkNCiAgICByZXR1cm4gdHJ1ZTsgICAgDQoNCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.20-5-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIwLTUtNiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMC8xNS40LjQuMjAtNS02LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gdGhpc0FyZyBpcyBmdW5jdGlvbiIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgcmVzID0gZmFsc2U7DQogIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikNCiAgew0KICAgIHJldHVybiB0aGlzLnJlczsNCiAgfQ0KDQogIGZ1bmN0aW9uIGZvbygpe30NCiAgZm9vLnJlcyA9IHRydWU7DQogIA0KICB2YXIgc3JjQXJyID0gWzFdOw0KICB2YXIgcmVzQXJyID0gc3JjQXJyLmZpbHRlcihjYWxsYmFja2ZuLGZvbyk7DQogIGlmKCByZXNBcnIubGVuZ3RoID09PSAxKQ0KICAgIHJldHVybiB0cnVlOyAgICANCg0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZpbHRlcik7DQogfQ0KfSk7DQo=]]></test>
@ -115,18 +119,54 @@
<test id="15.4.4.20-9-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIwLTktNSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMC8xNS40LjQuMjAtOS01LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIGRvZXNuJ3QgY29uc2lkZXIgbmV3bHkgYWRkZWQgZWxlbWVudHMgaW4gc3BhcnNlIGFycmF5IiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7IA0KIA0KICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopDQogIHsNCiAgICBzcmNBcnJbMTAwMF0gPSAzOw0KICAgIHJldHVybiB0cnVlOw0KICB9DQoNCiAgdmFyIHNyY0FyciA9IG5ldyBBcnJheSgxMCk7DQogIHNyY0FyclsxXSA9IDE7DQogIHNyY0FyclsyXSA9IDI7DQogIHZhciByZXNBcnIgPSBzcmNBcnIuZmlsdGVyKGNhbGxiYWNrZm4pOw0KICBpZiggcmVzQXJyLmxlbmd0aCA9PT0gMikgICAgDQogICAgICByZXR1cm4gdHJ1ZTsgIA0KICANCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.20-9-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIwLTktNiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMC8xNS40LjQuMjAtOS02LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIHZpc2l0cyBkZWxldGVkIGVsZW1lbnQgaW4gYXJyYXkgYWZ0ZXIgdGhlIGNhbGwgd2hlbiBzYW1lIGluZGV4IGlzIGFsc28gcHJlc2VudCBpbiBwcm90b3R5cGUiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsgDQogDQogIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikNCiAgew0KICAgIGRlbGV0ZSBzcmNBcnJbMl07DQogICAgZGVsZXRlIHNyY0Fycls0XTsNCiAgICBpZih2YWwgPiAwKQ0KICAgICAgcmV0dXJuIHRydWU7DQogICAgZWxzZQ0KICAgICAgcmV0dXJuIGZhbHNlOw0KICAgfQ0KDQogIEFycmF5LnByb3RvdHlwZVs0XSA9IDU7DQogIHZhciBzcmNBcnIgPSBbMSwyLDMsNCw1XTsNCiAgdmFyIHJlc0FyciA9IHNyY0Fyci5maWx0ZXIoY2FsbGJhY2tmbik7DQogIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbNF07DQogIGlmKHJlc0Fyci5sZW5ndGggPT09IDQgJiYgcmVzQXJyWzBdID09PSAxICYmIHJlc0FyclszXSA9PSA1KSAgICAvLyBvbmx5IG9uZSBlbGVtZW50IGRlbGV0ZWQNCiAgICAgIHJldHVybiB0cnVlOyAgDQogIA0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZpbHRlcik7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.20-9-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNC40LjIwLTktNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTktNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgc3RvcHMgY2FsbGluZyBjYWxsYmFja2ZuIG9uY2UgdGhlIGFycmF5IGlzIGRlbGV0ZWQgZHVyaW5nIHRoZSBjYWxsIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgbyA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgby5zcmNBcnIgPSBbMSwgMiwgMywgNCwgNV07DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBkZWxldGUgby5zcmNBcnI7DQogICAgICAgICAgICBpZiAodmFsID4gMCkNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcmVzQXJyID0gby5zcmNBcnIuZmlsdGVyKGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gcmVzQXJyLmxlbmd0aCA9PT0gNSAmJiB0eXBlb2Ygby5zcmNBcnIgPT09ICJ1bmRlZmluZWQiOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.4.4.20-9-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS04IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMC8xNS40LjQuMjAtOS04LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZpbHRlciAtIG5vIG9ic2VydmFibGUgZWZmZWN0cyBvY2N1ciBpZiBsZW4gaXMgMCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiB2YWwgPiAxMDsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IDA6IDExLCAxOiAxMiwgbGVuZ3RoOiAwIH07DQoNCiAgICAgICAgdmFyIG5ld0FyciA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KDQogICAgICAgIHJldHVybiBhY2Nlc3NlZCA9PT0gZmFsc2UgJiYgb2JqLmxlbmd0aCA9PT0gMCAmJiBuZXdBcnIubGVuZ3RoID09PSAwOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-9-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS05IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMC8xNS40LjQuMjAtOS05LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZpbHRlciAtIG1vZGlmaWNhdGlvbnMgdG8gbGVuZ3RoIGRvbid0IGNoYW5nZSBudW1iZXIgb2YgaXRlcmF0aW9ucyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgY2FsbGVkID0gMDsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGNhbGxlZCsrOw0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyAxOiAxMiwgMjogOSwgbGVuZ3RoOiAyIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBvYmoubGVuZ3RoID0gMzsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBuZXdBcnIgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwob2JqLCBjYWxsYmFja2ZuKTsNCg0KICAgICAgICByZXR1cm4gbmV3QXJyLmxlbmd0aCA9PT0gMiAmJiAyID09PSBjYWxsZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZpbHRlcikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-9-b-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIwLTktYi0xIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWItMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZpbHRlciAtIGNhbGxiYWNrZm4gbm90IGNhbGxlZCBmb3IgaW5kZXhlcyBuZXZlciBiZWVuIGFzc2lnbmVkIHZhbHVlcyIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgeyANCiANCiAgdmFyIGNhbGxDbnQgPSAwOw0KICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopDQogIHsNCiAgICBjYWxsQ250Kys7DQogICAgcmV0dXJuIGZhbHNlOw0KICB9DQoNCiAgdmFyIHNyY0FyciA9IG5ldyBBcnJheSgxMCk7DQogIHNyY0FyclsxXSA9IHVuZGVmaW5lZDsgLy9leHBsaWNpdGx5IGFzc2lnbmluZyBhIHZhbHVlDQogIHZhciByZXNBcnIgPSBzcmNBcnIuZmlsdGVyKGNhbGxiYWNrZm4pOw0KICBpZiggcmVzQXJyLmxlbmd0aCA9PT0gMCAmJiBjYWxsQ250ID09PSAxKQ0KICAgICAgcmV0dXJuIHRydWU7ICAgIA0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZpbHRlcik7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.20-9-b-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1iLTEwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMC8xNS40LjQuMjAtOS1iLTEwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZpbHRlciAtIGRlbGV0aW5nIHByb3BlcnR5IG9mIHByb3RvdHlwZSBjYXVzZXMgcHJvdG90eXBlIGluZGV4IHByb3BlcnR5IG5vdCB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5LWxpa2UgT2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCiAgICAgICAgdmFyIG9iaiA9IHsgMjogMiwgbGVuZ3RoOiAyMCB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMV07DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QucHJvdG90eXBlWzFdID0gMTsNCiAgICAgICAgICAgIHZhciBuZXdBcnIgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwob2JqLCBjYWxsYmFja2ZuKTsNCg0KICAgICAgICAgICAgcmV0dXJuIG5ld0Fyci5sZW5ndGggPT09IDIgJiYgbmV3QXJyWzFdICE9PSAxOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-9-b-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1iLTExIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMC8xNS40LjQuMjAtOS1iLTExLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZpbHRlciAtIGRlbGV0aW5nIHByb3BlcnR5IG9mIHByb3RvdHlwZSBjYXVzZXMgcHJvdG90eXBlIGluZGV4IHByb3BlcnR5IG5vdCB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCiAgICAgICAgdmFyIGFyciA9IFswLCAsIDJdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVsxXSA9IDE7DQogICAgICAgICAgICB2YXIgbmV3QXJyID0gYXJyLmZpbHRlcihjYWxsYmFja2ZuKTsNCiAgICAgICAgICAgIHJldHVybiBuZXdBcnIubGVuZ3RoID09PSAyICYmIG5ld0FyclsxXSAhPT0gMTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmICFbLCAxXS5oYXNPd25Qcm9wZXJ0eSgwKSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-9-b-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1iLTEyIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMC8xNS40LjQuMjAtOS1iLTEyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZpbHRlciAtIGRlbGV0aW5nIG93biBwcm9wZXJ0eSB3aXRoIHByb3RvdHlwZSBwcm9wZXJ0eSBjYXVzZXMgcHJvdG90eXBlIGluZGV4IHByb3BlcnR5IHRvIGJlIHZpc2l0ZWQgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCiAgICAgICAgdmFyIG9iaiA9IHsgMDogMCwgMTogMTExLCAyOiAyLCBsZW5ndGg6IDEwIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgb2JqWzFdOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZVsxXSA9IDE7DQogICAgICAgICAgICB2YXIgbmV3QXJyID0gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQoNCiAgICAgICAgICAgIHJldHVybiBuZXdBcnIubGVuZ3RoID09PSAzICYmIG5ld0FyclsxXSA9PT0gMTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlWzFdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZpbHRlcikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-9-b-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1iLTEzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMC8xNS40LjQuMjAtOS1iLTEzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZpbHRlciAtIGRlbGV0aW5nIG93biBwcm9wZXJ0eSB3aXRoIHByb3RvdHlwZSBwcm9wZXJ0eSBjYXVzZXMgcHJvdG90eXBlIGluZGV4IHByb3BlcnR5IHRvIGJlIHZpc2l0ZWQgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIHZhbCA8IDMgPyB0cnVlIDogZmFsc2U7DQogICAgICAgIH0NCiAgICAgICAgdmFyIGFyciA9IFswLCAxMTEsIDJdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIGFyclsxXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVsxXSA9IDE7DQogICAgICAgICAgICB2YXIgbmV3QXJyID0gYXJyLmZpbHRlcihjYWxsYmFja2ZuKTsNCg0KICAgICAgICAgICAgcmV0dXJuIG5ld0Fyci5sZW5ndGggPT09IDMgJiYgbmV3QXJyWzFdID09PSAxOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-9-b-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1iLTE0IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMC8xNS40LjQuMjAtOS1iLTE0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZpbHRlciAtIGRlY3JlYXNpbmcgbGVuZ3RoIG9mIGFycmF5IGNhdXNlcyBpbmRleCBwcm9wZXJ0eSBub3QgdG8gYmUgdmlzaXRlZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICB9DQogICAgICAgIHZhciBhcnIgPSBbMCwgMSwgMiwgImxhc3QiXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGFyci5sZW5ndGggPSAzOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgbmV3QXJyID0gYXJyLmZpbHRlcihjYWxsYmFja2ZuKTsNCg0KDQogICAgICAgIHJldHVybiBuZXdBcnIubGVuZ3RoID09PSAzICYmIG5ld0FyclsyXSA9PT0gMjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.20-9-b-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1iLTE1IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMC8xNS40LjQuMjAtOS1iLTE1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZpbHRlciAtIGRlY3JlYXNpbmcgbGVuZ3RoIG9mIGFycmF5IHdpdGggcHJvdG90eXBlIHByb3BlcnR5IGNhdXNlcyBwcm90b3R5cGUgaW5kZXggcHJvcGVydHkgdG8gYmUgdmlzaXRlZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgYXJyID0gWzAsIDEsIDJdOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMiIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJwcm90b3R5cGUiOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjEiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIGFyci5sZW5ndGggPSAyOw0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHZhciBuZXdBcnIgPSBhcnIuZmlsdGVyKGNhbGxiYWNrZm4pOw0KDQogICAgICAgICAgICByZXR1cm4gbmV3QXJyLmxlbmd0aCA9PT0gMyAmJiBuZXdBcnJbMl0gPT09ICJwcm90b3R5cGUiOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsyXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-9-b-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1iLTE2IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMC8xNS40LjQuMjAtOS1iLTE2LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZpbHRlciAtIGRlY3JlYXNpbmcgbGVuZ3RoIG9mIGFycmF5IGRvZXMgbm90IGRlbGV0ZSBub24tY29uZmlndXJhYmxlIHByb3BlcnRpZXMiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbMCwgMSwgMl07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjIiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gInVuY29uZmlndXJhYmxlIjsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgYXJyLmxlbmd0aCA9IDI7DQogICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBuZXdBcnIgPSBhcnIuZmlsdGVyKGNhbGxiYWNrZm4pOw0KDQogICAgICAgIHJldHVybiBuZXdBcnIubGVuZ3RoID09PSAzICYmIG5ld0FyclsyXSA9PT0gInVuY29uZmlndXJhYmxlIjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.20-9-b-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1iLTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWItMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSBhZGRlZCBwcm9wZXJ0aWVzIGluIHN0ZXAgMiBhcmUgdmlzaWJsZSBoZXJlIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0ge307DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImxlbmd0aCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIG9ialsyXSA9ICJsZW5ndGgiOw0KICAgICAgICAgICAgICAgIHJldHVybiAzOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgbmV3QXJyID0gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIG5ld0Fyci5sZW5ndGggPT09IDEgJiYgbmV3QXJyWzBdID09PSAibGVuZ3RoIjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-9-b-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1iLTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWItMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSBkZWxldGVkIHByb3BlcnRpZXMgaW4gc3RlcCAyIGFyZSB2aXNpYmxlIGhlcmUiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgb2JqID0geyAyOiA2Ljk5LCA4OiAxOSB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJsZW5ndGgiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgb2JqWzJdOw0KICAgICAgICAgICAgICAgIHJldHVybiAxMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIG5ld0FyciA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KDQogICAgICAgIHJldHVybiBuZXdBcnIubGVuZ3RoID09PSAxICYmIG5ld0FyclswXSAhPT0gNi45OTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-9-b-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1iLTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWItNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSBwcm9wZXJ0aWVzIGFkZGVkIGludG8gb3duIG9iamVjdCBhZnRlciBjdXJyZW50IHBvc2l0aW9uIGFyZSB2aXNpdGVkIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyBsZW5ndGg6IDIgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIxIiwgew0KICAgICAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA2Ljk5Ow0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIG5ld0FyciA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KDQogICAgICAgIHJldHVybiBuZXdBcnIubGVuZ3RoID09PSAyICYmIG5ld0FyclsxXSA9PT0gNi45OTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-9-b-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1iLTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWItNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSBwcm9wZXJ0aWVzIGFkZGVkIGludG8gb3duIG9iamVjdCBhZnRlciBjdXJyZW50IHBvc2l0aW9uIGFyZSB2aXNpdGVkIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFswLCAsIDJdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjEiLCB7DQogICAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDYuOTk7DQogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgbmV3QXJyID0gYXJyLmZpbHRlcihjYWxsYmFja2ZuKTsNCg0KICAgICAgICByZXR1cm4gbmV3QXJyLmxlbmd0aCA9PT0gMyAmJiBuZXdBcnJbMV0gPT09IDYuOTk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZpbHRlcikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-9-b-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1iLTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWItNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSBwcm9wZXJ0aWVzIGNhbiBiZSBhZGRlZCB0byBwcm90b3R5cGUgYWZ0ZXIgY3VycmVudCBwb3NpdGlvbiBhcmUgdmlzaXRlZCBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgb2JqID0geyBsZW5ndGg6IDIgfTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjAiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QucHJvdG90eXBlLCAiMSIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA2Ljk5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICB2YXIgbmV3QXJyID0gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQoNCiAgICAgICAgICAgIHJldHVybiBuZXdBcnIubGVuZ3RoID09PSAyICYmIEFycmF5WzFdID09PSA2Ljk5Ow0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-9-b-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1iLTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWItNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSBwcm9wZXJ0aWVzIGNhbiBiZSBhZGRlZCB0byBwcm90b3R5cGUgYWZ0ZXIgY3VycmVudCBwb3NpdGlvbiBhcmUgdmlzaXRlZCBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgYXJyID0gWzAsICwgMl07DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMSIsIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA2Ljk5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICB2YXIgbmV3QXJyID0gYXJyLmZpbHRlcihjYWxsYmFja2ZuKTsNCg0KICAgICAgICAgICAgcmV0dXJuIG5ld0Fyci5sZW5ndGggPT09IDMgJiYgbmV3QXJyWzFdID09PSA2Ljk5Ow0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgIVssIDFdLmhhc093blByb3BlcnR5KDApICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.20-9-b-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1iLTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWItOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSBkZWxldGluZyBvd24gcHJvcGVydHkgY2F1c2VzIGluZGV4IHByb3BlcnR5IG5vdCB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIG9iaiA9IHsgbGVuZ3RoOiAyIH07DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgbykgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiA2Ljk5Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGRlbGV0ZSBvYmpbMV07DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBuZXdBcnIgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwob2JqLCBjYWxsYmFja2ZuKTsNCg0KICAgICAgICByZXR1cm4gbmV3QXJyLmxlbmd0aCA9PT0gMSAmJiBuZXdBcnJbMF0gPT09IDA7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZpbHRlcikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-9-b-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1iLTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWItOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSBkZWxldGluZyBvd24gcHJvcGVydHkgY2F1c2VzIGluZGV4IHByb3BlcnR5IG5vdCB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCiAgICAgICAgdmFyIGFyciA9IFsxLCAyXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAiNi45OSI7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIGFyclsxXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIG5ld0FyciA9IGFyci5maWx0ZXIoY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIG5ld0Fyci5sZW5ndGggPT09IDEgJiYgbmV3QXJyWzBdID09PSAwOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-9-c-i-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTktYy1pLTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGtWYWx1ZSA9IHt9Ow0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiAoaWR4ID09PSA1KSAmJiAodmFsID09PSBrVmFsdWUpOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgNToga1ZhbHVlLCBsZW5ndGg6IDEwMCB9Ow0KDQogICAgICAgIHZhciBuZXdBcnIgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwob2JqLCBjYWxsYmFja2ZuKTsNCg0KICAgICAgICByZXR1cm4gbmV3QXJyLmxlbmd0aCA9PT0gMSAmJiBuZXdBcnJbMF0gPT09IGtWYWx1ZTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-9-c-i-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktMTAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWMtaS0xMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gaWR4ID09PSAyICYmIHZhbCA9PT0gMTI7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gW107DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjIiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTI7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KICAgICAgICB2YXIgbmV3QXJyID0gYXJyLmZpbHRlcihjYWxsYmFja2ZuKTsNCg0KICAgICAgICByZXR1cm4gbmV3QXJyLmxlbmd0aCA9PT0gMSAmJiBuZXdBcnJbMF0gPT09IDEyOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-9-c-i-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktMTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWMtaS0xMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gaWR4ID09PSAwICYmIHZhbCA9PT0gMTE7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7IDA6IDUsIDE6IDYgfTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZC5sZW5ndGggPSAxMDsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY2hpbGQsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDExOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCiAgICAgICAgdmFyIG5ld0FyciA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChjaGlsZCwgY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIG5ld0Fyci5sZW5ndGggPT09IDEgJiYgbmV3QXJyWzBdID09PSAxMTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-9-c-i-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktMTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWMtaS0xMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIiBBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiB2YWwgPT09IDExMSAmJiBpZHggPT09IDA7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gW107DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGVbMF0gPSAxMDsNCg0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAxMTE7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgdmFyIG5ld0FyciA9IGFyci5maWx0ZXIoY2FsbGJhY2tmbik7DQoNCiAgICAgICAgICAgIHJldHVybiBuZXdBcnIubGVuZ3RoID09PSAxICYmIG5ld0FyclswXSA9PT0gMTExOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-9-c-i-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktMTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWMtaS0xMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiBpZHggPT09IDEgJiYgdmFsID09PSAxMjsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHt9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gNjsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb24oKTsNCiAgICAgICAgY2hpbGQubGVuZ3RoID0gMTA7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNoaWxkLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAxMjsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQogICAgICAgIHZhciBuZXdBcnIgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4pOw0KDQogICAgICAgIHJldHVybiBuZXdBcnIubGVuZ3RoID09PSAxICYmIG5ld0FyclswXSA9PT0gMTI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZpbHRlcikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-9-c-i-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktMTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWMtaS0xNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIiBBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiBpZHggPT09IDAgJiYgdmFsID09PSAxMTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbXTsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICIwIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gNTsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTE7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgdmFyIG5ld0FyciA9IGFyci5maWx0ZXIoY2FsbGJhY2tmbik7DQoNCiAgICAgICAgICAgIHJldHVybiBuZXdBcnIubGVuZ3RoID09PSAxICYmIG5ld0FyclswXSA9PT0gMTE7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzBdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZpbHRlcikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-9-c-i-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktMTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWMtaS0xNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gdmFsID09PSAxMSAmJiBpZHggPT09IDE7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7fTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDExOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZC5sZW5ndGggPSAyMDsNCiAgICAgICAgdmFyIG5ld0FyciA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChjaGlsZCwgY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIG5ld0Fyci5sZW5ndGggPT09IDEgJiYgbmV3QXJyWzBdID09PSAxMTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-9-c-i-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktMTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWMtaS0xNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gaWR4ID09PSAwICYmIHZhbCA9PT0gMTE7DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjAiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAxMTsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB2YXIgbmV3QXJyID0gWywgLCAsIF0uZmlsdGVyKGNhbGxiYWNrZm4pOw0KDQogICAgICAgICAgICByZXR1cm4gbmV3QXJyLmxlbmd0aCA9PT0gMSAmJiBuZXdBcnJbMF0gPT09IDExOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgIVssIDFdLmhhc093blByb3BlcnR5KDApICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.20-9-c-i-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktMTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWMtaS0xNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQgPT09IHZhbCAmJiBpZHggPT09IDE7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyBsZW5ndGg6IDIgfTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjEiLCB7DQogICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgbmV3QXJyID0gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIG5ld0Fyci5sZW5ndGggPT09IDEgJiYgbmV3QXJyWzBdID09PSB1bmRlZmluZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZpbHRlcikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-9-c-i-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktMTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWMtaS0xOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQgPT09IHZhbCAmJiBpZHggPT09IDA7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gW107DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgbmV3QXJyID0gYXJyLmZpbHRlcihjYWxsYmFja2ZuKTsNCg0KICAgICAgICByZXR1cm4gbmV3QXJyLmxlbmd0aCA9PT0gMSAmJiBuZXdBcnJbMF0gPT09IHVuZGVmaW5lZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.20-9-c-i-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktMTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWMtaS0xOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkID09PSB2YWwgJiYgaWR4ID09PSAxOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgbGVuZ3RoOiAyIH07DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIxIiwgew0KICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QucHJvdG90eXBlWzFdID0gMTA7DQogICAgICAgICAgICB2YXIgbmV3QXJyID0gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQoNCiAgICAgICAgICAgIHJldHVybiBuZXdBcnIubGVuZ3RoID09PSAxICYmIG5ld0FyclswXSA9PT0gdW5kZWZpbmVkOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-9-c-i-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTktYy1pLTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAwKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHZhbCA9PT0gMTE7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgbmV3QXJyID0gWzExXS5maWx0ZXIoY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIG5ld0Fyci5sZW5ndGggPT09IDEgJiYgbmV3QXJyWzBdID09PSAxMTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-9-c-i-20"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktMjAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWMtaS0yMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkID09PSB2YWwgJiYgaWR4ID09PSAwOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFtdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVswXSA9IDEwMDsNCiAgICAgICAgICAgIHZhciBuZXdBcnIgPSBhcnIuZmlsdGVyKGNhbGxiYWNrZm4pOw0KDQogICAgICAgICAgICByZXR1cm4gbmV3QXJyLmxlbmd0aCA9PT0gMSAmJiBuZXdBcnJbMF0gPT09IHVuZGVmaW5lZDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMF07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.20-9-c-i-21"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktMjEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWMtaS0yMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiB2YWwgPT09IHVuZGVmaW5lZCAmJiBpZHggPT09IDE7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7fTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAiMSIsIHsNCiAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQogICAgICAgIGNoaWxkLmxlbmd0aCA9IDI7DQogICAgICAgIHZhciBuZXdBcnIgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4pOw0KDQogICAgICAgIHJldHVybiBuZXdBcnIubGVuZ3RoID09PSAxICYmIG5ld0FyclswXSA9PT0gdW5kZWZpbmVkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.4.4.20-9-c-i-22"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktMjIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWMtaS0yMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQgPT09IHZhbCAmJiBpZHggPT09IDA7DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjAiLCB7DQogICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHZhciBuZXdBcnIgPSBbLCBdLmZpbHRlcihjYWxsYmFja2ZuKTsNCg0KICAgICAgICAgICAgcmV0dXJuIG5ld0Fyci5sZW5ndGggPT09IDEgJiYgbmV3QXJyWzBdID09PSB1bmRlZmluZWQ7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzBdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZpbHRlcikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiAhWywgMV0uaGFzT3duUHJvcGVydHkoMCkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-9-c-i-23"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktMjMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWMtaS0yMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSBUaGlzIG9iamVjdCBpcyB0aGUgZ2xvYmFsIG9iamVjdCB3aGljaCBjb250YWlucyBpbmRleCBwcm9wZXJ0eSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiBpZHggPT09IDAgJiYgdmFsID09PSAxMTsNCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICB2YXIgb2xkTGVuID0gZm5HbG9iYWxPYmplY3QoKS5sZW5ndGg7DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpWzBdID0gMTE7DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aCA9IDE7DQogICAgICAgICAgICB2YXIgbmV3QXJyID0gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKGZuR2xvYmFsT2JqZWN0KCksIGNhbGxiYWNrZm4pOw0KICAgICAgICAgICAgcmV0dXJuIG5ld0Fyci5sZW5ndGggPT09IDEgJiYgbmV3QXJyWzBdID09PSAxMTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBmbkdsb2JhbE9iamVjdCgpWzBdOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKS5sZW5ndGggPSBvbGRMZW47DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.4.4.20-9-c-i-25"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktMjUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWMtaS0yNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSBUaGlzIG9iamVjdCBpcyB0aGUgQXJndW1lbnRzIG9iamVjdCB3aGljaCBpbXBsZW1lbnRzIGl0cyBvd24gcHJvcGVydHkgZ2V0IG1ldGhvZCAobnVtYmVyIG9mIGFyZ3VtZW50cyBpcyBsZXNzIHRoYW4gbnVtYmVyIG9mIHBhcmFtZXRlcnMpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiB2YWwgPT09IDExICYmIGlkeCA9PT0gMDsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBmdW5jID0gZnVuY3Rpb24gKGEsIGIpIHsNCiAgICAgICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoYXJndW1lbnRzLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgfTsNCg0KICAgICAgICB2YXIgbmV3QXJyID0gZnVuYygxMSk7DQoNCiAgICAgICAgcmV0dXJuIG5ld0Fyci5sZW5ndGggPT09IDEgJiYgbmV3QXJyWzBdID09PSAxMTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-9-c-i-26"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktMjYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWMtaS0yNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSBUaGlzIG9iamVjdCBpcyB0aGUgQXJndW1lbnRzIG9iamVjdCB3aGljaCBpbXBsZW1lbnRzIGl0cyBvd24gcHJvcGVydHkgZ2V0IG1ldGhvZCAobnVtYmVyIG9mIGFyZ3VtZW50cyBlcXVhbHMgbnVtYmVyIG9mIHBhcmFtZXRlcnMpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IDExOw0KICAgICAgICAgICAgfSBlbHNlIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSA5Ow0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgZnVuYyA9IGZ1bmN0aW9uIChhLCBiKSB7DQogICAgICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKGFyZ3VtZW50cywgY2FsbGJhY2tmbik7DQogICAgICAgIH07DQogICAgICAgIHZhciBuZXdBcnIgPSBmdW5jKDExLCA5KTsNCg0KICAgICAgICByZXR1cm4gbmV3QXJyLmxlbmd0aCA9PT0gMiAmJiBuZXdBcnJbMF0gPT09IDExICYmDQogICAgICAgICAgICBuZXdBcnJbMV0gPT09IDk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZpbHRlcik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.20-9-c-i-27"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktMjciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWMtaS0yNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSBUaGlzIG9iamVjdCBpcyB0aGUgQXJndW1lbnRzIG9iamVjdCB3aGljaCBpbXBsZW1lbnRzIGl0cyBvd24gcHJvcGVydHkgZ2V0IG1ldGhvZCAobnVtYmVyIG9mIGFyZ3VtZW50cyBpcyBncmVhdGVyIHRoYW4gbnVtYmVyIG9mIHBhcmFtZXRlcnMpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09IDExOw0KICAgICAgICAgICAgfSBlbHNlIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSAxMjsNCiAgICAgICAgICAgIH0gZWxzZSBpZiAoaWR4ID09PSAyKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHZhbCA9PT0gOTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGZ1bmMgPSBmdW5jdGlvbiAoYSwgYikgew0KICAgICAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChhcmd1bWVudHMsIGNhbGxiYWNrZm4pOw0KICAgICAgICB9Ow0KICAgICAgICB2YXIgbmV3QXJyID0gZnVuYygxMSwgMTIsIDkpOw0KDQogICAgICAgIHJldHVybiBuZXdBcnIubGVuZ3RoID09PSAzICYmIG5ld0FyclswXSA9PT0gMTEgJiYNCiAgICAgICAgICAgIG5ld0FyclsxXSA9PT0gMTIgJiYgbmV3QXJyWzJdID09PSA5Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-9-c-i-28"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktMjgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWMtaS0yOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSBlbGVtZW50IGNoYW5nZWQgYnkgZ2V0dGVyIG9uIHByZXZpb3VzIGl0ZXJhdGlvbnMgaXMgb2JzZXJ2ZWQgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHByZUl0ZXJWaXNpYmxlID0gZmFsc2U7DQogICAgICAgIHZhciBhcnIgPSBbXTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiBpZHggPT09IDEgJiYgdmFsID09PSA5Ow0KICAgICAgICB9DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBwcmVJdGVyVmlzaWJsZSA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0dXJuIDExOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGlmIChwcmVJdGVyVmlzaWJsZSkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gOTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCiAgICAgICAgdmFyIG5ld0FyciA9IGFyci5maWx0ZXIoY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIG5ld0Fyci5sZW5ndGggPT09IDEgJiYgbmV3QXJyWzBdID09PSA5Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-9-c-i-29"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktMjkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWMtaS0yOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSBlbGVtZW50IGNoYW5nZWQgYnkgZ2V0dGVyIG9uIHByZXZpb3VzIGl0ZXJhdGlvbnMgaXMgb2JzZXJ2ZWQgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIHZhbCA9PT0gOSAmJiBpZHggPT09IDE7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJlSXRlclZpc2libGUgPSBmYWxzZTsNCiAgICAgICAgdmFyIG9iaiA9IHsgbGVuZ3RoOiAyIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBwcmVJdGVyVmlzaWJsZSA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0dXJuIDExOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGlmIChwcmVJdGVyVmlzaWJsZSkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gOTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTM7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCiAgICAgICAgdmFyIG5ld0FyciA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KDQogICAgICAgIHJldHVybiBuZXdBcnIubGVuZ3RoID09PSAxICYmIG5ld0FyclswXSA9PT0gOTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-9-c-i-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTktYy1pLTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGRhdGEgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gKGlkeCA9PT0gNSkgJiYgKHZhbCA9PT0gImFiYyIpOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHByb3RvID0geyAwOiAxMSwgNTogMTAwIH07DQoNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb24oKTsNCiAgICAgICAgY2hpbGRbNV0gPSAiYWJjIjsNCiAgICAgICAgY2hpbGQubGVuZ3RoID0gMTA7DQoNCiAgICAgICAgdmFyIG5ld0FyciA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChjaGlsZCwgY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIG5ld0Fyci5sZW5ndGggPT09IDEgJiYgbmV3QXJyWzBdID09PSAiYWJjIjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-9-c-i-30"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktMzAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWMtaS0zMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSB1bm5oYW5kbGVkIGV4Y2VwdGlvbnMgaGFwcGVuZWQgaW4gZ2V0dGVyIHRlcm1pbmF0ZSBpdGVyYXRpb24gb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA+IDEpIHsNCiAgICAgICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IDA6IDExLCA1OiAxMCwgMTA6IDgsIGxlbmd0aDogMjAgfTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcigidW5oYW5kbGUgZXhjZXB0aW9uIGhhcHBlbmVkIGluIGdldHRlciIpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGV4KSB7DQogICAgICAgICAgICByZXR1cm4gKGV4IGluc3RhbmNlb2YgUmFuZ2VFcnJvcikgJiYgIWFjY2Vzc2VkOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZpbHRlcikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-9-c-i-31"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktMzEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWMtaS0zMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5maWx0ZXIgLSB1bm5oYW5kbGVkIGV4Y2VwdGlvbnMgaGFwcGVuZWQgaW4gZ2V0dGVyIHRlcm1pbmF0ZSBpdGVyYXRpb24gb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA+IDEpIHsNCiAgICAgICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbXTsNCiAgICAgICAgYXJyWzVdID0gMTA7DQogICAgICAgIGFyclsxMF0gPSAxMDA7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcigidW5oYW5kbGUgZXhjZXB0aW9uIGhhcHBlbmVkIGluIGdldHRlciIpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgYXJyLmZpbHRlcihjYWxsYmFja2ZuKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZXgpIHsNCiAgICAgICAgICAgIHJldHVybiAoZXggaW5zdGFuY2VvZiBSYW5nZUVycm9yKSAmJiAhYWNjZXNzZWQ7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.20-9-c-i-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTktYy1pLTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGRhdGEgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gKGlkeCA9PT0gMCkgJiYgKHZhbCA9PT0gMTIpOw0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVswXSA9IDExOw0KICAgICAgICAgICAgdmFyIG5ld0FyciA9IFsxMl0uZmlsdGVyKGNhbGxiYWNrZm4pOw0KDQogICAgICAgICAgICByZXR1cm4gbmV3QXJyLmxlbmd0aCA9PT0gMSAmJiBuZXdBcnJbMF0gPT09IDEyOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-9-c-i-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTktYy1pLTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGRhdGEgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIGlkeCA9PT0gMCAmJiB2YWwgPT09IDExOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHByb3RvID0ge307DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiA1Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZC5sZW5ndGggPSAyOw0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY2hpbGQsICIwIiwgew0KICAgICAgICAgICAgdmFsdWU6IDExLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KICAgICAgICBjaGlsZFsxXSA9IDEyOw0KDQogICAgICAgIHZhciBuZXdBcnIgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4pOw0KDQogICAgICAgIHJldHVybiBuZXdBcnIubGVuZ3RoID09PSAxICYmIG5ld0FyclswXSA9PT0gMTE7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZpbHRlcikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-9-c-i-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktNiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTktYy1pLTYuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGRhdGEgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIHZhbCA9PT0gMTE7DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjAiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiA5Ow0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHZhciBuZXdBcnIgPSBbMTFdLmZpbHRlcihjYWxsYmFja2ZuKTsNCg0KICAgICAgICAgICAgcmV0dXJuIG5ld0Fyci5sZW5ndGggPT09IDEgJiYgbmV3QXJyWzBdID09PSAxMTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMF07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.20-9-c-i-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTktYy1pLTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgaW5oZXJpdGVkIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGtWYWx1ZSA9ICdhYmMnOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIChpZHggPT09IDUpICYmICh2YWwgPT09IGtWYWx1ZSk7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7IDU6IGtWYWx1ZSB9Ow0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQogICAgICAgIGNoaWxkLmxlbmd0aCA9IDEwOw0KDQogICAgICAgIHZhciBuZXdBcnIgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4pOw0KDQogICAgICAgIHJldHVybiBuZXdBcnIubGVuZ3RoID09PSAxICYmIG5ld0FyclswXSA9PT0ga1ZhbHVlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-9-c-i-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTktYy1pLTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgaW5oZXJpdGVkIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gKGlkeCA9PT0gMSkgJiYgKHZhbCA9PT0gMTMpOw0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVsxXSA9IDEzOw0KICAgICAgICAgICAgdmFyIG5ld0FyciA9IFssICwgLCBdLmZpbHRlcihjYWxsYmFja2ZuKTsNCg0KICAgICAgICAgICAgcmV0dXJuIG5ld0Fyci5sZW5ndGggPT09IDEgJiYgbmV3QXJyWzBdID09PSAxMzsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKSAmJiAhWywgMV0uaGFzT3duUHJvcGVydHkoMCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.20-9-c-i-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWktOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTktYy1pLTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIChpZHggPT09IDApICYmICh2YWwgPT09IDExKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IDEwOiAxMCwgbGVuZ3RoOiAyMCB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDExOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgbmV3QXJyID0gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQogICAgICAgIHJldHVybiBuZXdBcnIubGVuZ3RoID09PSAxICYmIG5ld0FyclswXSA9PT0gMTE7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZpbHRlcikgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-9-c-ii-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIwLTktYy1paS0xIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIwLzE1LjQuNC4yMC05LWMtaWktMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZpbHRlciAtIGNhbGxiYWNrZm4gY2FsbGVkIHdpdGggY29ycmVjdCBwYXJhbWV0ZXJzIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7IA0KIA0KICB2YXIgYlBhciA9IHRydWU7DQogIHZhciBiQ2FsbGVkID0gZmFsc2U7DQogIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikNCiAgew0KICAgIGJDYWxsZWQgPSB0cnVlOw0KICAgIGlmKG9ialtpZHhdICE9PSB2YWwpDQogICAgICBiUGFyID0gZmFsc2U7DQogIH0NCg0KICB2YXIgc3JjQXJyID0gWzAsMSx0cnVlLG51bGwsbmV3IE9iamVjdCgpLCJmaXZlIl07DQogIHNyY0Fycls5OTk5OTldID0gLTYuNjsNCiAgdmFyIHJlc0FyciA9IHNyY0Fyci5maWx0ZXIoY2FsbGJhY2tmbik7DQogIA0KICBpZihiQ2FsbGVkID09PSB0cnVlICYmIGJQYXIgPT09IHRydWUpDQogICAgcmV0dXJuIHRydWU7DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKTsNCiB9DQp9KTsNCg==]]></test>
<test id="15.4.4.20-9-c-ii-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWlpLTEwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMC8xNS40LjQuMjAtOS1jLWlpLTEwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZpbHRlciAtIGNhbGxiYWNrZm4gaXMgY2FsbGVkIHdpdGggMSBmb3JtYWwgcGFyYW1ldGVyIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsKSB7DQogICAgICAgICAgICByZXR1cm4gdmFsID4gMTA7DQogICAgICAgIH0NCiAgICAgICAgdmFyIG5ld0FyciA9IFsxMl0uZmlsdGVyKGNhbGxiYWNrZm4pOw0KDQogICAgICAgIHJldHVybiBuZXdBcnIubGVuZ3RoID09PSAxICYmIG5ld0FyclswXSA9PT0gMTI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZpbHRlcik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.20-9-c-ii-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWlpLTExIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMC8xNS40LjQuMjAtOS1jLWlpLTExLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZpbHRlciAtIGNhbGxiYWNrZm4gaXMgY2FsbGVkIHdpdGggMiBmb3JtYWwgcGFyYW1ldGVyIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgpIHsNCiAgICAgICAgICAgIHJldHVybiB2YWwgPiAxMCAmJiBhcmd1bWVudHNbMl1baWR4XSA9PT0gdmFsOw0KICAgICAgICB9DQogICAgICAgIHZhciBuZXdBcnIgPSBbMTFdLmZpbHRlcihjYWxsYmFja2ZuKTsNCg0KICAgICAgICByZXR1cm4gbmV3QXJyLmxlbmd0aCA9PT0gMSAmJiBuZXdBcnJbMF0gPT09IDExOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
@ -172,6 +212,7 @@
<test id="15.4.4.20-9-c-iii-24"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWlpaS0yNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTktYy1paWktMjQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gcmV0dXJuIHZhbHVlIG9mIGNhbGxiYWNrZm4gaXMgdGhlIEpTT04gb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIEpTT047DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgbmV3QXJyID0gWzExXS5maWx0ZXIoY2FsbGJhY2tmbik7DQogICAgICAgIHJldHVybiBuZXdBcnIubGVuZ3RoID09PSAxICYmIG5ld0FyclswXSA9PT0gMTE7DQoNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-9-c-iii-25"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWlpaS0yNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTktYy1paWktMjUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gcmV0dXJuIHZhbHVlIG9mIGNhbGxiYWNrZm4gaXMgYW4gRXJyb3Igb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIG5ldyBFdmFsRXJyb3IoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBuZXdBcnIgPSBbMTFdLmZpbHRlcihjYWxsYmFja2ZuKTsNCiAgICAgICAgcmV0dXJuIG5ld0Fyci5sZW5ndGggPT09IDEgJiYgbmV3QXJyWzBdID09PSAxMTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-9-c-iii-26"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWlpaS0yNiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTktYy1paWktMjYuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gcmV0dXJuIHZhbHVlIG9mIGNhbGxiYWNrZm4gaXMgdGhlIEFyZ3VtZW50cyBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gYXJndW1lbnRzOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG5ld0FyciA9IFsxMV0uZmlsdGVyKGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gbmV3QXJyLmxlbmd0aCA9PT0gMSAmJiBuZXdBcnJbMF0gPT09IDExOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-9-c-iii-28"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWlpaS0yOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTktYy1paWktMjguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gcmV0dXJuIHZhbHVlIG9mIGNhbGxiYWNrZm4gaXMgdGhlIGdsb2JhbCBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gZm5HbG9iYWxPYmplY3QoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBuZXdBcnIgPSBbMTFdLmZpbHRlcihjYWxsYmFja2ZuKTsNCiAgICAgICAgcmV0dXJuIG5ld0Fyci5sZW5ndGggPT09IDEgJiYgbmV3QXJyWzBdID09PSAxMTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.20-9-c-iii-29"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWlpaS0yOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTktYy1paWktMjkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gZmFsc2UgcHJldmVudHMgZWxlbWVudCBhZGRlZCB0byBvdXRwdXQgQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGNhbGxlZCA9IDA7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBjYWxsZWQrKzsNCiAgICAgICAgICAgIHJldHVybiB2YWwgPiAxMDsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IDA6IDExLCAxOiA4LCBsZW5ndGg6IDIwIH07DQoNCiAgICAgICAgdmFyIG5ld0FyciA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gbmV3QXJyLmxlbmd0aCA9PT0gMSAmJiBuZXdBcnJbMF0gIT09IDggJiYgY2FsbGVkID09PSAyOw0KDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmZpbHRlcik7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.20-9-c-iii-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWlpaS0zIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMC8xNS40LjQuMjAtOS1jLWlpaS0zLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmZpbHRlciAtIHJldHVybiB2YWx1ZSBvZiBjYWxsYmFja2ZuIGlzIG51bGwiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbih2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IDA6IDExLCBsZW5ndGg6IDEgfTsNCg0KICAgICAgICB2YXIgbmV3QXJyID0gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQogICAgICAgIHJldHVybiBuZXdBcnIubGVuZ3RoID09PSAwICYmIGFjY2Vzc2VkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5maWx0ZXIpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.20-9-c-iii-30"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjAtOS1jLWlpaS0zMCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjAvMTUuNC40LjIwLTktYy1paWktMzAuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuZmlsdGVyIC0gcmV0dXJuIHZhbHVlIChuZXcgQm9vbGVhbihmYWxzZSkpIG9mIGNhbGxiYWNrZm4gaXMgdHJlYXRlZCBhcyB0cnVlIHZhbHVlIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4odmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIG5ldyBCb29sZWFuKGZhbHNlKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBuZXdBcnIgPSBbMTFdLmZpbHRlcihjYWxsYmFja2ZuKTsNCiAgICAgICAgcmV0dXJuIG5ld0Fyci5sZW5ndGggPT09IDEgJiYgbmV3QXJyWzBdID09PSAxMTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuZmlsdGVyKTsNCiAgICB9DQoNCn0pOw0K]]></test>

View File

@ -2,7 +2,7 @@
<!-- adding section element if in the future we want to store information about the -->
<!-- spec structure in this file, for now the section structure is defined in the -->
<!-- sections.js file -->
<section name="Chapter - 15.4.4.21" numTests="177">
<section name="Chapter - 15.4.4.21" numTests="254">
<test id="15.4.4.21-0-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIxLTAtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtMC0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIG11c3QgZXhpc3QgYXMgYSBmdW5jdGlvbiIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgZiA9IEFycmF5LnByb3RvdHlwZS5yZWR1Y2U7DQogIGlmICh0eXBlb2YoZikgPT09ICJmdW5jdGlvbiIpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.21-0-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIxLTAtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtMC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlLmxlbmd0aCBtdXN0IGJlIDEiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgaWYgKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UubGVuZ3RoID09PSAxKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.21-1-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtMS0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtMS0xLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSBhcHBsaWVkIHRvIHVuZGVmaW5lZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbCh1bmRlZmluZWQpOyANCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIChlIGluc3RhbmNlb2YgVHlwZUVycm9yKTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
@ -34,6 +34,7 @@
<test id="15.4.4.21-2-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtMi0xMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjEvMTUuNC40LjIxLTItMTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIC0gJ2xlbmd0aCcgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LnByb3RvdHlwZSwgImxlbmd0aCIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDI7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICB2YXIgb2JqID0geyAwOiAxMiwgMTogMTEgfTsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJsZW5ndGgiLCB7DQogICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChvYmosIGNhbGxiYWNrZm4sIDEpID09PSAxICYmICFhY2Nlc3NlZDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlLmxlbmd0aDsNCiAgICAgICAgfQ0KDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-2-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtMi0xMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjEvMTUuNC40LjIxLTItMTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIGFwcGxpZWQgdG8gQXJyYXktbGlrZSBvYmplY3QgdGhhdCAnbGVuZ3RoJyBpcyBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHt9Ow0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICJsZW5ndGgiLCB7DQogICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZFswXSA9IDExOw0KICAgICAgICBjaGlsZFsxXSA9IDEyOw0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4sIDEpID09PSAxICYmICFhY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-2-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtMi0xNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjEvMTUuNC40LjIxLTItMTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIGFwcGxpZWQgdG8gdGhlIEFycmF5LWxpa2Ugb2JqZWN0IHRoYXQgJ2xlbmd0aCcgcHJvcGVydHkgZG9lc24ndCBleGlzdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IDA6IDExLCAxOiAxMiB9Ow0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwob2JqLCBjYWxsYmFja2ZuLCAxKSA9PT0gMSAmJiAhYWNjZXNzZWQ7DQoNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-2-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtMi0xNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjEvMTUuNC40LjIxLTItMTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIC0gJ2xlbmd0aCcgaXMgcHJvcGVydHkgb2YgdGhlIGdsb2JhbCBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gKG9iai5sZW5ndGggPT09IDIpOw0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIHZhciBvbGRMZW4gPSBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aDsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KClbMF0gPSAxMjsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KClbMV0gPSAxMTsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KClbMl0gPSA5Ow0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKS5sZW5ndGggPSAyOw0KICAgICAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChmbkdsb2JhbE9iamVjdCgpLCBjYWxsYmFja2ZuLCAxKSA9PT0gdHJ1ZTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBmbkdsb2JhbE9iamVjdCgpWzBdOw0KICAgICAgICAgICAgZGVsZXRlIGZuR2xvYmFsT2JqZWN0KClbMV07DQogICAgICAgICAgICBkZWxldGUgZm5HbG9iYWxPYmplY3QoKVsyXTsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KCkubGVuZ3RoID0gb2xkTGVuOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-2-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtMi0xNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjEvMTUuNC40LjIxLTItMTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIGFwcGxpZWQgdG8gdGhlIEFyZ3VtZW50cyBvYmplY3QsIHdoaWNoIGltcGxlbWVudHMgaXRzIG93biBwcm9wZXJ0eSBnZXQgbWV0aG9kIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIChvYmoubGVuZ3RoID09PSAyKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBmdW5jID0gZnVuY3Rpb24gKGEsIGIpIHsNCiAgICAgICAgICAgIGFyZ3VtZW50c1syXSA9IDk7DQogICAgICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLnJlZHVjZS5jYWxsKGFyZ3VtZW50cywgY2FsbGJhY2tmbiwgMSk7DQogICAgICAgIH07DQoNCiAgICAgICAgcmV0dXJuIGZ1bmMoMTIsIDExKSA9PT0gdHJ1ZTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-2-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtMi0xOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjEvMTUuNC40LjIxLTItMTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIGFwcGxpZWQgdG8gU3RyaW5nIG9iamVjdCwgd2hpY2ggaW1wbGVtZW50cyBpdHMgb3duIHByb3BlcnR5IGdldCBtZXRob2QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICByZXR1cm4gKG9iai5sZW5ndGggPT09IDMpOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHN0ciA9IG5ldyBTdHJpbmcoIjAxMiIpOw0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwoc3RyLCBjYWxsYmFja2ZuLCAxKSA9PT0gdHJ1ZTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-2-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtMi0xOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjEvMTUuNC40LjIxLTItMTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIGFwcGxpZWQgdG8gRnVuY3Rpb24gb2JqZWN0LCB3aGljaCBpbXBsZW1lbnRzIGl0cyBvd24gcHJvcGVydHkgZ2V0IG1ldGhvZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIHJldHVybiAob2JqLmxlbmd0aCA9PT0gMik7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgZnVuID0gZnVuY3Rpb24gKGEsIGIpIHsNCiAgICAgICAgICAgIHJldHVybiBhICsgYjsNCiAgICAgICAgfTsNCiAgICAgICAgZnVuWzBdID0gMTI7DQogICAgICAgIGZ1blsxXSA9IDExOw0KICAgICAgICBmdW5bMl0gPSA5Ow0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwoZnVuLCBjYWxsYmFja2ZuLCAxKSA9PT0gdHJ1ZTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKTsNCiAgICB9DQoNCn0pOw0K]]></test>
@ -72,6 +73,7 @@
<test id="15.4.4.21-4-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtNC0xMCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjEvMTUuNC40LjIxLTQtMTAuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIC0gdGhlIGV4Y2VwdGlvbiBpcyBub3QgdGhyb3duIGlmIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGJ5IHN0ZXAgMiIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgb2JqID0geyAwOiAxMSwgMTogMTIgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAibGVuZ3RoIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKCk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwob2JqLCB1bmRlZmluZWQpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChleCkgew0KICAgICAgICAgICAgcmV0dXJuICEoZXggaW5zdGFuY2VvZiBUeXBlRXJyb3IpOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-4-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtNC0xMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjEvMTUuNC40LjIxLTQtMTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIC0gdGhlIGV4Y2VwdGlvbiBpcyBub3QgdGhyb3duIGlmIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGJ5IHN0ZXAgMyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgb2JqID0geyAwOiAxMSwgMTogMTIgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAibGVuZ3RoIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHsNCiAgICAgICAgICAgICAgICAgICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTeW50YXhFcnJvcigpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChvYmosIHVuZGVmaW5lZCk7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGV4KSB7DQogICAgICAgICAgICByZXR1cm4gIShleCBpbnN0YW5jZW9mIFR5cGVFcnJvcik7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-4-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtNC0xMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjEvMTUuNC40LjIxLTQtMTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIC0gJ2NhbGxiYWNrZm4nIGlzIGEgZnVuY3Rpb24iLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIGN1clZhbCA+IDEwOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIFsxMSwgOV0ucmVkdWNlKGNhbGxiYWNrZm4sIDEpID09PSBmYWxzZSAmJiBhY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-4-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtNC0xNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjEvMTUuNC40LjIxLTQtMTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIC0gY2FsbGluZyB3aXRoIG5vIGNhbGxiYWNrZm4gaXMgdGhlIHNhbWUgYXMgcGFzc2luZyB1bmRlZmluZWQgZm9yIGNhbGxiYWNrZm4iLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBvYmogPSB7IDEwOiAxMCB9Ow0KICAgICAgICB2YXIgbGVuZ3RoQWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIGxvb3BBY2Nlc3NlZCA9IGZhbHNlOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJsZW5ndGgiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBsZW5ndGhBY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0dXJuIDIwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGxvb3BBY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0dXJuIDEwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZS5jYWxsKG9iaik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGV4KSB7DQogICAgICAgICAgICByZXR1cm4gKGV4IGluc3RhbmNlb2YgVHlwZUVycm9yKSAmJiBsZW5ndGhBY2Nlc3NlZCAmJiAhbG9vcEFjY2Vzc2VkOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-4-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIxLTQtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtNC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIHRocm93cyBSZWZlcmVuY2VFcnJvciBpZiBjYWxsYmFja2ZuIGlzIHVucmVmZXJlbmNlZCIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogIHZhciBhcnIgPSBuZXcgQXJyYXkoMTApOw0KICB0cnkgew0KICAgIGFyci5yZWR1Y2UoZm9vKTsgICAgDQogIH0NCiAgY2F0Y2goZSkgew0KICAgIGlmKGUgaW5zdGFuY2VvZiBSZWZlcmVuY2VFcnJvcikNCiAgICAgIHJldHVybiB0cnVlOyAgDQogIH0NCg0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.21-4-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIxLTQtMyIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtNC0zLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIHRocm93cyBUeXBlRXJyb3IgaWYgY2FsbGJhY2tmbiBpcyBudWxsIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgdmFyIGFyciA9IG5ldyBBcnJheSgxMCk7DQogIHRyeSB7DQogICAgYXJyLnJlZHVjZShudWxsKTsgICAgDQogIH0NCiAgY2F0Y2goZSkgew0KICAgIGlmKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpDQogICAgICByZXR1cm4gdHJ1ZTsgIA0KICB9DQoNCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.21-4-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIxLTQtNCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtNC00LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIHRocm93cyBUeXBlRXJyb3IgaWYgY2FsbGJhY2tmbiBpcyBib29sZWFuIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgdmFyIGFyciA9IG5ldyBBcnJheSgxMCk7DQogIHRyeSB7DQogICAgYXJyLnJlZHVjZSh0cnVlKTsgICAgDQogIH0NCiAgY2F0Y2goZSkgew0KICAgIGlmKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpDQogICAgICByZXR1cm4gdHJ1ZTsgIA0KICB9DQoNCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpOw0KIH0NCn0pOw0K]]></test>
@ -104,19 +106,43 @@
<test id="15.4.4.21-7-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIxLTctNyIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtNy03LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIHJldHVybnMgaW5pdGlhbFZhbHVlIGlmICdsZW5ndGgnIGlzIDAgYW5kIGluaXRpYWxWYWx1ZSBpcyBwcmVzZW50IChzdWJjbGFzc2VkIEFycmF5LCBsZW5ndGggb3ZlcnJpZGRlbiB3aXRoIG9iaiB3L28gdmFsdWVPZiAodG9TdHJpbmcpKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICBmb28ucHJvdG90eXBlID0gbmV3IEFycmF5KDEsIDIsIDMpOw0KICBmdW5jdGlvbiBmb28oKSB7fQ0KICB2YXIgZiA9IG5ldyBmb28oKTsNCiAgDQogIHZhciBvID0geyB0b1N0cmluZzogZnVuY3Rpb24gKCkgeyByZXR1cm4gJzAnO319Ow0KICBmLmxlbmd0aCA9IG87DQogIA0KICAvLyBvYmplY3RzIGluaGVyaXQgdGhlIGRlZmF1bHQgdmFsdWVPZiBtZXRob2Qgb2YgdGhlIE9iamVjdCBvYmplY3Q7DQogIC8vIHRoYXQgc2ltcGx5IHJldHVybnMgdGhlIGl0c2VsZi4gU2luY2UgdGhlIGRlZmF1bHQgdmFsdWVPZigpIG1ldGhvZA0KICAvLyBkb2VzIG5vdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUsIEVTIG5leHQgdHJpZXMgdG8gY29udmVydCB0aGUgb2JqZWN0DQogIC8vIHRvIGEgbnVtYmVyIGJ5IGNhbGxpbmcgaXRzIHRvU3RyaW5nKCkgbWV0aG9kIGFuZCBjb252ZXJ0aW5nIHRoZQ0KICAvLyByZXN1bHRpbmcgc3RyaW5nIHRvIGEgbnVtYmVyLg0KDQogIGZ1bmN0aW9uIGNiKCl7fQ0KICB0cnkgew0KICAgIGlmKGYucmVkdWNlKGNiLDEpID09PSAxKQ0KICAgICAgcmV0dXJuIHRydWU7DQogIH0NCiAgY2F0Y2ggKGUpIHsgIH0gIA0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.21-7-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIxLTctOCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtNy04LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIHJldHVybnMgaW5pdGlhbFZhbHVlIGlmICdsZW5ndGgnIGlzIDAgYW5kIGluaXRpYWxWYWx1ZSBpcyBwcmVzZW50IChzdWJjbGFzc2VkIEFycmF5LCBsZW5ndGggb3ZlcnJpZGRlbiB3aXRoIFtdKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICBmb28ucHJvdG90eXBlID0gbmV3IEFycmF5KDEsIDIsIDMpOw0KICBmdW5jdGlvbiBmb28oKSB7fQ0KICB2YXIgZiA9IG5ldyBmb28oKTsNCiAgDQogIGYubGVuZ3RoID0gW107DQogIA0KICAvLyBvYmplY3RzIGluaGVyaXQgdGhlIGRlZmF1bHQgdmFsdWVPZiBtZXRob2Qgb2YgdGhlIE9iamVjdCBvYmplY3Q7DQogIC8vIHRoYXQgc2ltcGx5IHJldHVybnMgdGhlIGl0c2VsZi4gU2luY2UgdGhlIGRlZmF1bHQgdmFsdWVPZigpIG1ldGhvZA0KICAvLyBkb2VzIG5vdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUsIEVTIG5leHQgdHJpZXMgdG8gY29udmVydCB0aGUgb2JqZWN0DQogIC8vIHRvIGEgbnVtYmVyIGJ5IGNhbGxpbmcgaXRzIHRvU3RyaW5nKCkgbWV0aG9kIGFuZCBjb252ZXJ0aW5nIHRoZQ0KICAvLyByZXN1bHRpbmcgc3RyaW5nIHRvIGEgbnVtYmVyLg0KICAvLw0KICAvLyBUaGUgdG9TdHJpbmcoICkgbWV0aG9kIG9uIEFycmF5IGNvbnZlcnRzIHRoZSBhcnJheSBlbGVtZW50cyB0byBzdHJpbmdzLA0KICAvLyB0aGVuIHJldHVybnMgdGhlIHJlc3VsdCBvZiBjb25jYXRlbmF0aW5nIHRoZXNlIHN0cmluZ3MsIHdpdGggY29tbWFzIGluDQogIC8vIGJldHdlZW4uIEFuIGFycmF5IHdpdGggbm8gZWxlbWVudHMgY29udmVydHMgdG8gdGhlIGVtcHR5IHN0cmluZywgd2hpY2gNCiAgLy8gY29udmVydHMgdG8gdGhlIG51bWJlciAwLiBJZiBhbiBhcnJheSBoYXMgYSBzaW5nbGUgZWxlbWVudCB0aGF0IGlzIGENCiAgLy8gbnVtYmVyIG4sIHRoZSBhcnJheSBjb252ZXJ0cyB0byBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBuLCB3aGljaCBpcw0KICAvLyB0aGVuIGNvbnZlcnRlZCBiYWNrIHRvIG4gaXRzZWxmLiBJZiBhbiBhcnJheSBjb250YWlucyBtb3JlIHRoYW4gb25lIGVsZW1lbnQsDQogIC8vIG9yIGlmIGl0cyBvbmUgZWxlbWVudCBpcyBub3QgYSBudW1iZXIsIHRoZSBhcnJheSBjb252ZXJ0cyB0byBOYU4uDQoNCiAgZnVuY3Rpb24gY2IoKXt9DQogIHRyeSB7DQogICAgaWYoZi5yZWR1Y2UoY2IsMSkgPT09IDEpDQogICAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KICBjYXRjaCAoZSkgeyAgfSAgDQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKTsNCiB9DQp9KTsNCg==]]></test>
<test id="15.4.4.21-7-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIxLTctOSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtNy05LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIHJldHVybnMgaW5pdGlhbFZhbHVlIGlmICdsZW5ndGgnIGlzIDAgYW5kIGluaXRpYWxWYWx1ZSBpcyBwcmVzZW50IChzdWJjbGFzc2VkIEFycmF5LCBsZW5ndGggb3ZlcnJpZGRlbiB3aXRoIFswXSkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgZm9vLnByb3RvdHlwZSA9IG5ldyBBcnJheSgxLCAyLCAzKTsNCiAgZnVuY3Rpb24gZm9vKCkge30NCiAgdmFyIGYgPSBuZXcgZm9vKCk7DQogIA0KICBmLmxlbmd0aCA9IFswXTsNCiAgDQogIC8vIG9iamVjdHMgaW5oZXJpdCB0aGUgZGVmYXVsdCB2YWx1ZU9mIG1ldGhvZCBvZiB0aGUgT2JqZWN0IG9iamVjdDsNCiAgLy8gdGhhdCBzaW1wbHkgcmV0dXJucyB0aGUgaXRzZWxmLiBTaW5jZSB0aGUgZGVmYXVsdCB2YWx1ZU9mKCkgbWV0aG9kDQogIC8vIGRvZXMgbm90IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZSwgRVMgbmV4dCB0cmllcyB0byBjb252ZXJ0IHRoZSBvYmplY3QNCiAgLy8gdG8gYSBudW1iZXIgYnkgY2FsbGluZyBpdHMgdG9TdHJpbmcoKSBtZXRob2QgYW5kIGNvbnZlcnRpbmcgdGhlDQogIC8vIHJlc3VsdGluZyBzdHJpbmcgdG8gYSBudW1iZXIuDQogIC8vDQogIC8vIFRoZSB0b1N0cmluZyggKSBtZXRob2Qgb24gQXJyYXkgY29udmVydHMgdGhlIGFycmF5IGVsZW1lbnRzIHRvIHN0cmluZ3MsDQogIC8vIHRoZW4gcmV0dXJucyB0aGUgcmVzdWx0IG9mIGNvbmNhdGVuYXRpbmcgdGhlc2Ugc3RyaW5ncywgd2l0aCBjb21tYXMgaW4NCiAgLy8gYmV0d2Vlbi4gQW4gYXJyYXkgd2l0aCBubyBlbGVtZW50cyBjb252ZXJ0cyB0byB0aGUgZW1wdHkgc3RyaW5nLCB3aGljaA0KICAvLyBjb252ZXJ0cyB0byB0aGUgbnVtYmVyIDAuIElmIGFuIGFycmF5IGhhcyBhIHNpbmdsZSBlbGVtZW50IHRoYXQgaXMgYQ0KICAvLyBudW1iZXIgbiwgdGhlIGFycmF5IGNvbnZlcnRzIHRvIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIG4sIHdoaWNoIGlzDQogIC8vIHRoZW4gY29udmVydGVkIGJhY2sgdG8gbiBpdHNlbGYuIElmIGFuIGFycmF5IGNvbnRhaW5zIG1vcmUgdGhhbiBvbmUgZWxlbWVudCwNCiAgLy8gb3IgaWYgaXRzIG9uZSBlbGVtZW50IGlzIG5vdCBhIG51bWJlciwgdGhlIGFycmF5IGNvbnZlcnRzIHRvIE5hTi4NCg0KICBmdW5jdGlvbiBjYigpe30NCiAgdHJ5IHsNCiAgICBpZihmLnJlZHVjZShjYiwxKSA9PT0gMSkNCiAgICAgIHJldHVybiB0cnVlOw0KICB9DQogIGNhdGNoIChlKSB7ICB9ICANCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.21-8-b-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS04LWItMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBubyBvYnNlcnZhYmxlIGVmZmVjdHMgb2NjdXIgaWYgJ2xlbicgaXMgMCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCg0KICAgICAgICB2YXIgb2JqID0geyBsZW5ndGg6IDAgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwob2JqLCBmdW5jdGlvbiAoKSB7IH0pOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChleCkgew0KICAgICAgICAgICAgcmV0dXJuICFhY2Nlc3NlZDsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-8-b-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS04LWItMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBtb2RpZmljYXRpb25zIHRvIGxlbmd0aCBkb24ndCBjaGFuZ2UgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgaW4gc3RlcCA5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgcmV0dXJuIGlkeDsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IDM6IDEyLCA0OiA5LCBsZW5ndGg6IDQgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMiIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIG9iai5sZW5ndGggPSAxMDsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwob2JqLCBjYWxsYmFja2ZuKSA9PT0gMzsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-8-b-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS04LWItMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBsb29wIGlzIGJyb2tlbiBvbmNlICdrUHJlc2VudCcgaXMgdHJ1ZSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgY2FsbGVkID0gMDsNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgdmFyIGZpcnN0Q2FsbGVkID0gMDsNCiAgICAgICAgdmFyIHNlY29uZENhbGxlZCA9IDA7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCB2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoY2FsbGVkID09PSAwKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChpZHggPT09IDEpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY2FsbGVkKys7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWywgLCBdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZmlyc3RDYWxsZWQrKzsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgc2Vjb25kQ2FsbGVkKys7DQogICAgICAgICAgICAgICAgcmV0dXJuIDk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIGFyci5yZWR1Y2UoY2FsbGJhY2tmbik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0ICYmIGZpcnN0Q2FsbGVkID09PSAxICYmIHNlY29uZENhbGxlZCA9PT0gMTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-8-b-ii-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpLTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS04LWItaWktMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBhZGRlZCBwcm9wZXJ0aWVzIGluIHN0ZXAgMiBhcmUgdmlzaWJsZSBoZXJlIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBvYmogPSB7IH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImxlbmd0aCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIG9ialsxXSA9ICJhY2N1bXVsYXRvciI7DQogICAgICAgICAgICAgICAgcmV0dXJuIDM7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwob2JqLCBmdW5jdGlvbiAoKSB7IH0pID09PSAiYWNjdW11bGF0b3IiOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-8-b-ii-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpLTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS04LWItaWktMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBkZWxldGVkIHByb3BlcnRpZXMgaW4gc3RlcCAyIGFyZSB2aXNpYmxlIGhlcmUiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMTogImFjY3VtdWxhdG9yIiwgMjogImFub3RoZXIiIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImxlbmd0aCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGRlbGV0ZSBvYmpbMV07DQogICAgICAgICAgICAgICAgcmV0dXJuIDM7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiAiYWNjdW11bGF0b3IiICE9PSBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwob2JqLCBmdW5jdGlvbiAoKSB7IH0pOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-8-b-iii-1-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS04LWItaWlpLTEtMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHByZXZWYWwgPT09IDApOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMDogMCwgMTogMSwgMjogMiwgbGVuZ3RoOiAyIH07DQogICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.4.4.21-8-b-iii-1-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTEwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOC1iLWlpaS0xLTEwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIHdoZW4gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAocHJldlZhbCA9PT0gMCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWywgMSwgMl07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgYXJyLnJlZHVjZShjYWxsYmFja2ZuKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-8-b-iii-1-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTExIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOC1iLWlpaS0xLTExLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHByZXZWYWwgPT09ICI5Iik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7IDA6IDAsIDE6IDEsIDI6IDIgfTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZC5sZW5ndGggPSAzOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjaGlsZCwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gIjkiOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-8-b-iii-1-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTEyIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOC1iLWlpaS0xLTEyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHByZXZWYWwgPT09ICI5Iik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzBdID0gMDsNCiAgICAgICAgICAgIHZhciBhcnIgPSBbLCAxLCAyXTsNCg0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAiOSI7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICBhcnIucmVkdWNlKGNhbGxiYWNrZm4pOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzBdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-8-b-iii-1-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTEzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOC1iLWlpaS0xLTEzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAocHJldlZhbCA9PT0gIjkiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHsgMTogMSwgMjogMn07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZC5sZW5ndGggPSAzOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjaGlsZCwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gIjkiOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-8-b-iii-1-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTE0IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOC1iLWlpaS0xLTE0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChwcmV2VmFsID09PSAiOSIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICIwIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHZhciBhcnIgPSBbLCAxLCAyXTsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gIjkiOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgYXJyLnJlZHVjZShjYWxsYmFja2ZuKTsNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-8-b-iii-1-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTE1IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOC1iLWlpaS0xLTE1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHByZXZWYWwgPT09IDApOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHByb3RvID0geyAxOiAxLCAyOiAyIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZC5sZW5ndGggPSAzOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChjaGlsZCwgY2FsbGJhY2tmbik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-8-b-iii-1-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTE2IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOC1iLWlpaS0xLTE2LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHByZXZWYWwgPT09IDApOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICIwIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHZhciBhcnIgPSBbLCAxLCAyXTsNCg0KICAgICAgICAgICAgYXJyLnJlZHVjZShjYWxsYmFja2ZuKTsNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgIVssIDFdLmhhc093blByb3BlcnR5KDApICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-8-b-iii-1-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTE3IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOC1iLWlpaS0xLTE3LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAocHJldlZhbCA9PT0gdW5kZWZpbmVkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IDE6IDEsIDI6IDIsIGxlbmd0aDogMyB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIwIiwgew0KICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZS5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-8-b-iii-1-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTE4IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOC1iLWlpaS0xLTE4LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAocHJldlZhbCA9PT0gdW5kZWZpbmVkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbLCAxLCAyXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIGFyci5yZWR1Y2UoY2FsbGJhY2tmbik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-8-b-iii-1-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTE5IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOC1iLWlpaS0xLTE5LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHByZXZWYWwgPT09IHVuZGVmaW5lZCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZVswXSA9IDA7DQoNCiAgICAgICAgICAgIHZhciBvYmogPSB7IDE6IDEsIDI6IDIsIGxlbmd0aDogMyB9Ow0KDQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMCIsIHsNCiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwob2JqLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMF07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-8-b-iii-1-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS04LWItaWlpLTEtMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHByZXZWYWwgPT09IDApOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFswLCAxLCAyXTsNCiAgICAgICAgYXJyLnJlZHVjZShjYWxsYmFja2ZuKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.4.4.21-8-b-iii-1-20"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTIwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOC1iLWlpaS0xLTIwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHByZXZWYWwgPT09IHVuZGVmaW5lZCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzBdID0gMDsNCiAgICAgICAgICAgIHZhciBhcnIgPSBbLCAxLCAyXTsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIGFyci5yZWR1Y2UoY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCg0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-8-b-iii-1-21"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTIxIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOC1iLWlpaS0xLTIxLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAocHJldlZhbCA9PT0gdW5kZWZpbmVkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHsgMTogMSwgMjogMiB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywgIjAiLCB7DQogICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZC5sZW5ndGggPSAzOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChjaGlsZCwgY2FsbGJhY2tmbik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.4.4.21-8-b-iii-1-22"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTIyIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOC1iLWlpaS0xLTIyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgIA0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHByZXZWYWwgPT09IHVuZGVmaW5lZCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjAiLCB7DQogICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgdmFyIGFyciA9IFssIDEsIDJdOw0KDQogICAgICAgICAgICBhcnIucmVkdWNlKGNhbGxiYWNrZm4pOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQoNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMF07DQogICAgICAgIH0NCg0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgIVssIDFdLmhhc093blByb3BlcnR5KDApICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-8-b-iii-1-23"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTIzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOC1iLWlpaS0xLTIzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIFRoaXMgb2JqZWN0IGlzIHRoZSBnbG9iYWwgb2JqZWN0IHdoaWNoIGNvbnRhaW5zIGluZGV4IHByb3BlcnR5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAocHJldlZhbCA9PT0gMCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgdmFyIG9sZExlbiA9IGZuR2xvYmFsT2JqZWN0KCkubGVuZ3RoOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKVswXSA9IDA7DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpWzFdID0gMTsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KClbMl0gPSAyOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKS5sZW5ndGggPSAzOw0KDQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwoZm5HbG9iYWxPYmplY3QoKSwgY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCg0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIGZuR2xvYmFsT2JqZWN0KClbMF07DQogICAgICAgICAgICBkZWxldGUgZm5HbG9iYWxPYmplY3QoKVsxXTsNCiAgICAgICAgICAgIGRlbGV0ZSBmbkdsb2JhbE9iamVjdCgpWzJdOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKS5sZW5ndGggPSBvbGRMZW47DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.4.4.21-8-b-iii-1-25"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTI1IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOC1iLWlpaS0xLTI1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIFRoaXMgb2JqZWN0IGlzIHRoZSBBcmd1bWVudHMgb2JqZWN0IHdoaWNoIGltcGxlbWVudHMgaXRzIG93biBwcm9wZXJ0eSBnZXQgbWV0aG9kIChudW1iZXIgb2YgYXJndW1lbnRzIGlzIGxlc3MgdGhhbiBudW1iZXIgb2YgcGFyYW1ldGVycykiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChwcmV2VmFsID09PSAwKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBmdW5jID0gZnVuY3Rpb24gKGEsIGIsIGMpIHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChhcmd1bWVudHMsIGNhbGxiYWNrZm4pOw0KICAgICAgICB9Ow0KDQogICAgICAgIGZ1bmMoMCwgMSk7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-8-b-iii-1-26"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTI2IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOC1iLWlpaS0xLTI2LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIFRoaXMgb2JqZWN0IGlzIHRoZSBBcmd1bWVudHMgb2JqZWN0IHdoaWNoIGltcGxlbWVudHMgaXRzIG93biBwcm9wZXJ0eSBnZXQgbWV0aG9kIChudW1iZXIgb2YgYXJndW1lbnRzIGVxdWFscyBudW1iZXIgb2YgcGFyYW1ldGVycykiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAyKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChwcmV2VmFsID09PSAxKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBmdW5jID0gZnVuY3Rpb24gKGEsIGIsIGMpIHsNCiAgICAgICAgICAgIGRlbGV0ZSBhcmd1bWVudHNbMF07DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwoYXJndW1lbnRzLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgfTsNCg0KICAgICAgICBmdW5jKDAsIDEsIDIpOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-8-b-iii-1-27"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTI3IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOC1iLWlpaS0xLTI3LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIFRoaXMgb2JqZWN0IGlzIHRoZSBBcmd1bWVudHMgb2JqZWN0IHdoaWNoIGltcGxlbWVudHMgaXRzIG93biBwcm9wZXJ0eSBnZXQgbWV0aG9kIChudW1iZXIgb2YgYXJndW1lbnRzIGlzIGdyZWF0ZXIgdGhhbiBudW1iZXIgb2YgcGFyYW1ldGVycykiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAzKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChwcmV2VmFsID09PSAyKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBmdW5jID0gZnVuY3Rpb24gKGEsIGIsIGMpIHsNCiAgICAgICAgICAgIGRlbGV0ZSBhcmd1bWVudHNbMF07DQogICAgICAgICAgICBkZWxldGUgYXJndW1lbnRzWzFdOw0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZS5jYWxsKGFyZ3VtZW50cywgY2FsbGJhY2tmbik7DQogICAgICAgIH07DQoNCiAgICAgICAgZnVuYygwLCAxLCAyLCAzKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-8-b-iii-1-28"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTI4IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOC1iLWlpaS0xLTI4LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGFwcGxpZWQgdG8gU3RyaW5nIG9iamVjdCwgd2hpY2ggaW1wbGVtZW50cyBpdHMgb3duIHByb3BlcnR5IGdldCBtZXRob2QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChwcmV2VmFsID09PSAiMCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHN0ciA9IG5ldyBTdHJpbmcoIjAxMiIpOw0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwoc3RyLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQoNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-8-b-iii-1-29"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTI5IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOC1iLWlpaS0xLTI5LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGFwcGxpZWQgdG8gRnVuY3Rpb24gb2JqZWN0IHdoaWNoIGltcGxlbWVudHMgaXRzIG93biBwcm9wZXJ0eSBnZXQgbWV0aG9kIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAocHJldlZhbCA9PT0gMCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0gZnVuY3Rpb24gKGEsIGIsIGMpIHsNCiAgICAgICAgICAgIHJldHVybiBhICsgYiArIGM7DQogICAgICAgIH07DQogICAgICAgIG9ialswXSA9IDA7DQogICAgICAgIG9ialsxXSA9IDE7DQogICAgICAgIG9ialsyXSA9IDI7DQogICAgICAgIG9ialszXSA9IDM7DQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZS5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-8-b-iii-1-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS04LWItaWlpLTEtMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gZGF0YSBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHByZXZWYWwgPT09ICI5Iik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7IDA6IDAsIDE6IDEsIDI6IDIsIGxlbmd0aDogMyB9Ow0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZFswXSA9ICI5IjsNCiAgICAgICAgY2hpbGRbMV0gPSAiMSI7DQogICAgICAgIGNoaWxkLmxlbmd0aCA9IDM7DQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZS5jYWxsKGNoaWxkLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQoNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.4.4.21-8-b-iii-1-30"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTMwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOC1iLWlpaS0xLTMwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGVsZW1lbnQgY2hhbmdlZCBieSBnZXR0ZXIgb24gY3VycmVudCBpdGVyYXRpb25zIGlzIG9ic2VydmVkIGluIHN1YnNlcXVlbnQgaXRlcmF0aW9ucyBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKGN1clZhbCA9PT0gMSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWywgLCAyXTsNCiAgICAgICAgdmFyIHByZUl0ZXJWaXNpYmxlID0gZmFsc2U7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBwcmVJdGVyVmlzaWJsZSA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgaWYgKHByZUl0ZXJWaXNpYmxlKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAxMDA7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBhcnIucmVkdWNlKGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-8-b-iii-1-31"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTMxIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOC1iLWlpaS0xLTMxLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGVsZW1lbnQgY2hhbmdlZCBieSBnZXR0ZXIgb24gY3VycmVudCBpdGVyYXRpb25zIGlzIG9ic2VydmVkIGluIHN1YnNlcXVlbnQgaXRlcmF0aW9ucyBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKGN1clZhbCA9PT0gMSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyBsZW5ndGg6IDIgfTsNCiAgICAgICAgdmFyIHByZUl0ZXJWaXNpYmxlID0gZmFsc2U7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBwcmVJdGVyVmlzaWJsZSA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgaWYgKHByZUl0ZXJWaXNpYmxlKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAxMDA7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwob2JqLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQoNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-8-b-iii-1-32"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTMyIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOC1iLWlpaS0xLTMyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGV4Y2VwdGlvbiBpbiBnZXR0ZXIgdGVybWluYXRlcyBpdGVyYXRpb24gb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA+PSAxKSB7DQogICAgICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAocHJldlZhbCA9PT0gMCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyAyOiAyLCAxOiAxLCBsZW5ndGg6IDMgfTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcigidW5oYW5kbGUgZXhjZXB0aW9uIGhhcHBlbmVkIGluIGdldHRlciIpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZS5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGV4KSB7DQogICAgICAgICAgICByZXR1cm4gKGV4IGluc3RhbmNlb2YgUmFuZ2VFcnJvcikgJiYgIWFjY2Vzc2VkICYmICF0ZXN0UmVzdWx0Ow0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-8-b-iii-1-33"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTMzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOC1iLWlpaS0xLTMzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGV4Y2VwdGlvbiBpbiBnZXR0ZXIgdGVybWluYXRlcyBpdGVyYXRpb24gb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA+PSAxKSB7DQogICAgICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAocHJldlZhbCA9PT0gMCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWywgMSwgMl07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcigidW5oYW5kbGUgZXhjZXB0aW9uIGhhcHBlbmVkIGluIGdldHRlciIpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgYXJyLnJlZHVjZShjYWxsYmFja2ZuKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZXgpIHsNCiAgICAgICAgICAgIHJldHVybiAoZXggaW5zdGFuY2VvZiBSYW5nZUVycm9yKSAmJiAhYWNjZXNzZWQgJiYgIXRlc3RSZXN1bHQ7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-8-b-iii-1-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS04LWItaWlpLTEtNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gZGF0YSBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHByZXZWYWwgPT09IDApOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVswXSA9ICI5IjsNCiAgICAgICAgICAgIFswLCAxLCAyXS5yZWR1Y2UoY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCg0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVswXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-8-b-iii-1-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS04LWItaWlpLTEtNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gZGF0YSBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChwcmV2VmFsID09PSAiOSIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHByb3RvID0ge307DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZC5sZW5ndGggPSAyOw0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY2hpbGQsICIwIiwgew0KICAgICAgICAgICAgdmFsdWU6ICI5IiwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCiAgICAgICAgY2hpbGRbMV0gPSAiMSI7DQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZS5jYWxsKGNoaWxkLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-8-b-iii-1-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS04LWItaWlpLTEtNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gZGF0YSBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChwcmV2VmFsID09PSAwKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMCIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICI1IjsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIFswLCAxLCAyXS5yZWR1Y2UoY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMF07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-8-b-iii-1-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS04LWItaWlpLTEtNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBpbmhlcml0ZWQgZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHByZXZWYWwgPT09IDApOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHByb3RvID0geyAwOiAwLCAxOiAxLCAyOiAyLCBsZW5ndGg6IDMgfTsNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb24oKTsNCiAgICAgICAgY2hpbGQubGVuZ3RoID0gMzsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-8-b-iii-1-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS04LWItaWlpLTEtOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBpbmhlcml0ZWQgZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHByZXZWYWwgPT09IDApOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVswXSA9IDA7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGVbMV0gPSAxOw0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzJdID0gMjsNCiAgICAgICAgICAgIFssICwgLF0ucmVkdWNlKGNhbGxiYWNrZm4pOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzBdOw0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMl07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKSAmJiAhWywgMV0uaGFzT3duUHJvcGVydHkoMCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-8-b-iii-1-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOC1iLWlpaS0xLTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS04LWItaWlpLTEtOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChwcmV2VmFsID09PSAwKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IDE6IDEsIDI6IDIsIGxlbmd0aDogMyB9Ow0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwob2JqLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-8-c-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIxLTgtYy0xIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS04LWMtMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSB0aHJvd3MgVHlwZUVycm9yIHdoZW4gQXJyYXkgaXMgZW1wdHkgYW5kIGluaXRpYWxWYWx1ZSBpcyBub3QgcHJlc2VudCIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgeyANCiANCiAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKQ0KICB7DQogIH0NCg0KICB2YXIgYXJyID0gbmV3IEFycmF5KDEwKTsNCiAgdHJ5IHsNCiAgICBhcnIucmVkdWNlKGNhbGxiYWNrZm4pOw0KICB9IA0KICBjYXRjaChlKSB7DQogICAgaWYoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikNCiAgICAgIHJldHVybiB0cnVlOyAgDQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.21-8-c-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIxLTgtYy0yIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS04LWMtMi5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSB0aHJvd3MgVHlwZUVycm9yIHdoZW4gZWxlbWVudHMgYXNzaWduZWQgdmFsdWVzIGFyZSBkZWxldGVkIGJ5IHJlZHVjaW5nIGFycmF5IGxlbmd0aCBhbmQgaW5pdGlhbFZhbHVlIGlzIG5vdCBwcmVzZW50IiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7IA0KIA0KICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopDQogIHsNCiAgfQ0KDQogIHZhciBhcnIgPSBuZXcgQXJyYXkoMTApOw0KICBhcnJbOV0gPSAxOw0KICBhcnIubGVuZ3RoID0gNTsNCiAgdHJ5IHsNCiAgICBhcnIucmVkdWNlKGNhbGxiYWNrZm4pOw0KICB9IA0KICBjYXRjaChlKSB7DQogICAgaWYoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikNCiAgICAgIHJldHVybiB0cnVlOyAgDQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.21-8-c-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIxLTgtYy0zIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS04LWMtMy5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSB0aHJvd3MgVHlwZUVycm9yIHdoZW4gZWxlbWVudHMgYXNzaWduZWQgdmFsdWVzIGFyZSBkZWxldGVkIGFuZCBpbml0aWFsVmFsdWUgaXMgbm90IHByZXNlbnQiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsgDQogDQogIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikNCiAgew0KICB9DQoNCiAgdmFyIGFyciA9IFsxLDIsMyw0LDVdOw0KICBkZWxldGUgYXJyWzBdOw0KICBkZWxldGUgYXJyWzFdOw0KICBkZWxldGUgYXJyWzJdOw0KICBkZWxldGUgYXJyWzNdOw0KICBkZWxldGUgYXJyWzRdOw0KICB0cnkgew0KICAgIGFyci5yZWR1Y2UoY2FsbGJhY2tmbik7DQogIH0gDQogIGNhdGNoKGUpIHsNCiAgICBpZihlIGluc3RhbmNlb2YgVHlwZUVycm9yKQ0KICAgICAgcmV0dXJuIHRydWU7ICANCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSk7DQogfQ0KfSk7DQo=]]></test>
@ -132,21 +158,71 @@
<test id="15.4.4.21-9-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIxLTktNCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS00LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIGRvZXNuJ3QgdmlzaXQgZGVsZXRlZCBlbGVtZW50cyB3aGVuIEFycmF5Lmxlbmd0aCBpcyBkZWNyZWFzZWQiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsgDQogDQogIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikNCiAgew0KICAgIGFyci5sZW5ndGggPSAyOw0KICAgIHJldHVybiBwcmV2VmFsICsgY3VyVmFsOw0KICB9DQoNCiAgdmFyIGFyciA9IFsxLDIsMyw0LDVdOw0KICBpZihhcnIucmVkdWNlKGNhbGxiYWNrZm4pID09PSAzICkNCiAgICByZXR1cm4gdHJ1ZTsgIA0KICANCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.21-9-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIxLTktNSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS01LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIC0gY2FsbGJhY2tmbiBub3QgY2FsbGVkIGZvciBhcnJheSB3aXRoIG9uZSBlbGVtZW50IiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7IA0KIA0KICB2YXIgY2FsbENudCA9IDA7DQogIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikNCiAgew0KICAgIGNhbGxDbnQrKzsNCiAgICByZXR1cm4gMjsNCiAgfQ0KDQogIHZhciBhcnIgPSBbMV07DQogIGlmKGFyci5yZWR1Y2UoY2FsbGJhY2tmbikgPT09IDEgJiYgY2FsbENudCA9PT0gMCApDQogICAgcmV0dXJuIHRydWU7ICAgIA0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIxLTktNiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS02LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIHZpc2l0cyBkZWxldGVkIGVsZW1lbnQgaW4gYXJyYXkgYWZ0ZXIgdGhlIGNhbGwgd2hlbiBzYW1lIGluZGV4IGlzIGFsc28gcHJlc2VudCBpbiBwcm90b3R5cGUiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsgDQogDQogIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgIA0KICB7DQogICAgZGVsZXRlIGFyclszXTsNCiAgICBkZWxldGUgYXJyWzRdOw0KICAgIHJldHVybiBwcmV2VmFsICsgY3VyVmFsOyAgICANCiAgfQ0KDQogIEFycmF5LnByb3RvdHlwZVs0XSA9IDU7DQogIHZhciBhcnIgPSBbJzEnLDIsMyw0LDVdOw0KICB2YXIgcmVzID0gYXJyLnJlZHVjZShjYWxsYmFja2ZuKTsNCiAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVs0XTsNCg0KICBpZihyZXMgPT09ICIxMjM1IiAgKSAgICAvL29uZSBlbGVtZW50IGFjdWFsbHkgZGVsZXRlZA0KICAgIHJldHVybiB0cnVlOyAgDQogIA0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNC40LjIxLTktNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjEvMTUuNC40LjIxLTktNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2Ugc3RvcHMgY2FsbGluZyBjYWxsYmFja2ZuIG9uY2UgdGhlIGFycmF5IGlzIGRlbGV0ZWQgZHVyaW5nIHRoZSBjYWxsIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGRlbGV0ZSBvLmFycjsNCiAgICAgICAgICAgIHJldHVybiBwcmV2VmFsICsgY3VyVmFsOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG8gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIG8uYXJyID0gWycxJywgMiwgMywgNCwgNV07DQogICAgICAgIHJldHVybiBvLmFyci5yZWR1Y2UoY2FsbGJhY2tmbikgPT09ICIxMjM0NSIgJiYgIW8uaGFzT3duUHJvcGVydHkoImFyciIpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.4.4.21-9-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS04IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS04LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIG5vIG9ic2VydmFibGUgZWZmZWN0cyBvY2N1ciBpZiAnbGVuJyBpcyAwIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICB2YXIgY2FsbGJhY2tBY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKCkgew0KICAgICAgICAgICAgY2FsbGJhY2tBY2Nlc3NlZCA9IHRydWU7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyBsZW5ndGg6IDAgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChvYmosIGZ1bmN0aW9uICgpIHsgfSwgImluaXRpYWxWYWx1ZSIpOw0KICAgICAgICByZXR1cm4gIWFjY2Vzc2VkICYmICFjYWxsYmFja0FjY2Vzc2VkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-9-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS05IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS05LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIG1vZGlmaWNhdGlvbnMgdG8gbGVuZ3RoIGRvbid0IGNoYW5nZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBpbiBzdGVwIDkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBjYWxsZWQgPSAwOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKGFjY3VtLCB2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBjYWxsZWQrKzsNCiAgICAgICAgICAgIHJldHVybiBhY2N1bSArIHZhbDsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbMCwgMSwgMiwgM107DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgYXJyLmxlbmd0aCA9IDI7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBuZXdBY2N1bSA9IGFyci5yZWR1Y2UoY2FsbGJhY2tmbiwgImluaXRpYWxWYWx1ZSIpOw0KDQogICAgICAgIHJldHVybiBuZXdBY2N1bSA9PT0gImluaXRpYWxWYWx1ZTAxIiAmJiBjYWxsZWQgPT09IDI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-b-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIxLTktYi0xIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWItMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSByZXR1cm5zIGluaXRpYWx2YWx1ZSB3aGVuIEFycmF5IGlzIGVtcHR5IGFuZCBpbml0aWFsVmFsdWUgaXMgcHJlc2VudCIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgeyANCiANCiAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKQ0KICB7DQogIH0NCg0KICB2YXIgYXJyID0gbmV3IEFycmF5KDEwKTsNCg0KICBpZihhcnIucmVkdWNlKGNhbGxiYWNrZm4sNSkgPT09IDUpDQogICAgICByZXR1cm4gdHJ1ZTsgIA0KDQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKTsNCiB9DQp9KTsNCg==]]></test>
<test id="15.4.4.21-9-b-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTEwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1iLTEwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGRlbGV0aW5nIHByb3BlcnR5IG9mIHByb3RvdHlwZSBpbiBzdGVwIDggY2F1c2VzIGRlbGV0ZWQgaW5kZXggcHJvcGVydHkgbm90IHRvIGJlIHZpc2l0ZWQgb24gYW4gQXJyYXktbGlrZSBPYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gdHJ1ZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKGFjY3VtLCB2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAzKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMjogMiwgbGVuZ3RoOiAyMCB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbM107DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QucHJvdG90eXBlWzNdID0gMTsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQgJiYgYWNjZXNzZWQ7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZVszXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-9-b-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTExIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1iLTExLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGRlbGV0aW5nIHByb3BlcnR5IG9mIHByb3RvdHlwZSBpbiBzdGVwIDggY2F1c2VzIGRlbGV0ZWQgaW5kZXggcHJvcGVydHkgbm90IHRvIGJlIHZpc2l0ZWQgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gdHJ1ZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKGFjY3VtLCB2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFssICwgLCAzXTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzFdOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzFdID0gMTsNCiAgICAgICAgICAgIGFyci5yZWR1Y2UoY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdCAmJiBhY2Nlc3NlZDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmICFbLCAxXS5oYXNPd25Qcm9wZXJ0eSgwKSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-b-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTEyIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1iLTEyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGRlbGV0aW5nIG93biBwcm9wZXJ0eSB3aXRoIHByb3RvdHlwZSBwcm9wZXJ0eSBpbiBzdGVwIDggY2F1c2VzIHByb3RvdHlwZSBpbmRleCBwcm9wZXJ0eSB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihhY2N1bSwgdmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSAmJiB2YWwgPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IDA6IDAsIDE6IDExMSwgNDogMTAsIGxlbmd0aDogMTAgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGRlbGV0ZSBvYmpbMV07DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QucHJvdG90eXBlWzFdID0gMTsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-9-b-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTEzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1iLTEzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGRlbGV0aW5nIG93biBwcm9wZXJ0eSB3aXRoIHByb3RvdHlwZSBwcm9wZXJ0eSBpbiBzdGVwIDggY2F1c2VzIHByb3RvdHlwZSBpbmRleCBwcm9wZXJ0eSB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihhY2N1bSwgdmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSAmJiB2YWwgPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB2YXIgYXJyID0gWzAsIDExMV07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgYXJyWzFdOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzFdID0gMTsNCiAgICAgICAgICAgIGFyci5yZWR1Y2UoY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-9-b-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTE0IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1iLTE0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGRlY3JlYXNpbmcgbGVuZ3RoIG9mIGFycmF5IGluIHN0ZXAgOCBjYXVzZXMgZGVsZXRlZCBpbmRleCBwcm9wZXJ0eSBub3QgdG8gYmUgdmlzaXRlZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSB0cnVlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4oYWNjdW0sIHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDIpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWzAsIDEsIDIsIDNdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgYXJyLmxlbmd0aCA9IDI7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIGFyci5yZWR1Y2UoY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQgJiYgYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-b-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTE1IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1iLTE1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGRlY3JlYXNpbmcgbGVuZ3RoIG9mIGFycmF5IHdpdGggcHJvdG90eXBlIHByb3BlcnR5IGluIHN0ZXAgOCBjYXVzZXMgcHJvdG90eXBlIGluZGV4IHByb3BlcnR5IHRvIGJlIHZpc2l0ZWQiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKGFjY3VtLCB2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAyICYmIHZhbCA9PT0gInByb3RvdHlwZSIpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB2YXIgYXJyID0gWzAsIDEsIDIsIDNdOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMiIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJwcm90b3R5cGUiOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIGFyci5sZW5ndGggPSAyOw0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIGFyci5yZWR1Y2UoY2FsbGJhY2tmbik7DQoNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsyXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-9-b-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTE2IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1iLTE2LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGRlY3JlYXNpbmcgbGVuZ3RoIG9mIGFycmF5IGluIHN0ZXAgOCBkb2VzIG5vdCBkZWxldGUgbm9uLWNvbmZpZ3VyYWJsZSBwcm9wZXJ0aWVzIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihhY2N1bSwgdmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMiAmJiB2YWwgPT09ICJ1bmNvbmZpZ3VyYWJsZSIpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbMCwgMSwgMiwgM107DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjIiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gInVuY29uZmlndXJhYmxlIjsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgYXJyLmxlbmd0aCA9IDI7DQogICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIGFyci5yZWR1Y2UoY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-b-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTE3IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1iLTE3LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIHByb3BlcnRpZXMgYWRkZWQgaW50byBvd24gb2JqZWN0IGFyZSB2aXNpdGVkIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihhY2N1bSwgdmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMyAmJiB2YWwgPT09IDMpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IGxlbmd0aDogNSB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjMiLCB7DQogICAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDM7DQogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwob2JqLCBjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-9-b-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTE4IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1iLTE4LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIHByb3BlcnRpZXMgYWRkZWQgaW50byBvd24gb2JqZWN0IGFyZSB2aXNpdGVkIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihhY2N1bSwgdmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSAmJiB2YWwgPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbMCwgLCAyXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgYXJyLnJlZHVjZShjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-9-b-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTE5IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1iLTE5LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIHByb3BlcnRpZXMgYWRkZWQgdG8gcHJvdG90eXBlIGFyZSB2aXNpdGVkIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihhY2N1bSwgdmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSAmJiB2YWwgPT09IDYuOTkpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IGxlbmd0aDogNiB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5wcm90b3R5cGUsICIxIiwgew0KICAgICAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA2Ljk5Ow0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChvYmosIGNhbGxiYWNrZm4sICJpbml0aWFsVmFsdWUiKTsNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-b-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWItMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBhZGRlZCBwcm9wZXJ0aWVzIGluIHN0ZXAgMiBhcmUgdmlzaWJsZSBoZXJlIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihhY2N1bSwgdmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMiAmJiB2YWwgPT09ICIyIikgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJsZW5ndGgiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBvYmpbMl0gPSAiMiI7DQogICAgICAgICAgICAgICAgcmV0dXJuIDM7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChvYmosIGNhbGxiYWNrZm4sICJpbml0aWFsVmFsdWUiKTsNCg0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-b-20"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTIwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1iLTIwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIHByb3BlcnRpZXMgY2FuIGJlIGFkZGVkIHRvIHByb3RvdHlwZSBhcmUgdmlzaXRlZCBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4oYWNjdW0sIHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEgJiYgdmFsID09PSA2Ljk5KSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWzAsICwgMl07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMSIsIHsNCiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gNi45OTsNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBhcnIucmVkdWNlKGNhbGxiYWNrZm4sICJpbml0aWFsVmFsdWUiKTsNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgIVssIDFdLmhhc093blByb3BlcnR5KDApICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-9-b-21"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTIxIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1iLTIxLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGRlbGV0aW5nIG93biBwcm9wZXJ0eSBjYXVzZXMgZGVsZXRlZCBpbmRleCBwcm9wZXJ0eSBub3QgdG8gYmUgdmlzaXRlZCBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSB0cnVlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4oYWNjdW0sIHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyA1OiAxMCwgbGVuZ3RoOiAxMCB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDYuOTk7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIG9ialsxXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZS5jYWxsKG9iaiwgY2FsbGJhY2tmbiwgImluaXRpYWxWYWx1ZSIpOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdCAmJiBhY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-b-22"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTIyIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1iLTIyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGRlbGV0aW5nIG93biBwcm9wZXJ0eSBjYXVzZXMgZGVsZXRlZCBpbmRleCBwcm9wZXJ0eSBub3QgdG8gYmUgdmlzaXRlZCBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSB0cnVlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4oYWNjdW0sIHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWzEsIDIsIDRdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuICI2Ljk5IjsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgYXJyWzFdOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBhcnIucmVkdWNlKGNhbGxiYWNrZm4sICJpbml0aWFsVmFsdWUiKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQgJiYgYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-b-23"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTIzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1iLTIzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGRlbGV0aW5nIHByb3BlcnR5IG9mIHByb3RvdHlwZSBjYXVzZXMgZGVsZXRlZCBpbmRleCBwcm9wZXJ0eSBub3QgdG8gYmUgdmlzaXRlZCBvbiBhbiBBcnJheS1saWtlIE9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSB0cnVlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4oYWNjdW0sIHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDMpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyAyOiAyLCBsZW5ndGg6IDIwIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZVszXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGVbM10gPSAxOw0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZS5jYWxsKG9iaiwgY2FsbGJhY2tmbiwgImluaXRpYWxWYWx1ZSIpOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQgJiYgYWNjZXNzZWQ7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZVszXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-9-b-24"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTI0IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1iLTI0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGRlbGV0aW5nIHByb3BlcnR5IG9mIHByb3RvdHlwZSBjYXVzZXMgZGVsZXRlZCBpbmRleCBwcm9wZXJ0eSBub3QgdG8gYmUgdmlzaXRlZCBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSB0cnVlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4oYWNjdW0sIHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWzAsICwgLCAzXTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzFdOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzFdID0gMTsNCiAgICAgICAgICAgIGFyci5yZWR1Y2UoY2FsbGJhY2tmbiwgImluaXRpYWxWYWx1ZSIpOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQgJiYgYWNjZXNzZWQ7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzFdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiAhWywgMV0uaGFzT3duUHJvcGVydHkoMCkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-9-b-25"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTI1IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1iLTI1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGRlbGV0aW5nIG93biBwcm9wZXJ0eSB3aXRoIHByb3RvdHlwZSBwcm9wZXJ0eSBjYXVzZXMgcHJvdG90eXBlIGluZGV4IHByb3BlcnR5IHRvIGJlIHZpc2l0ZWQgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKGFjY3VtLCB2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxICYmIHZhbCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMDogMCwgMTogMTExLCA0OiAxMCwgbGVuZ3RoOiAxMCB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIG9ialsxXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGVbMV0gPSAxOw0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZS5jYWxsKG9iaiwgY2FsbGJhY2tmbiwgImluaXRpYWxWYWx1ZSIpOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-9-b-26"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTI2IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1iLTI2LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGRlbGV0aW5nIG93biBwcm9wZXJ0eSB3aXRoIHByb3RvdHlwZSBwcm9wZXJ0eSBjYXVzZXMgcHJvdG90eXBlIGluZGV4IHByb3BlcnR5IHRvIGJlIHZpc2l0ZWQgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKGFjY3VtLCB2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxICYmIHZhbCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHZhciBhcnIgPSBbMCwgMTExXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGRlbGV0ZSBhcnJbMV07DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGVbMV0gPSAxOw0KICAgICAgICAgICAgYXJyLnJlZHVjZShjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-9-b-27"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTI3IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1iLTI3LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGRlY3JlYXNpbmcgbGVuZ3RoIG9mIGFycmF5IGNhdXNlcyBkZWxldGVkIGluZGV4IHByb3BlcnR5IG5vdCB0byBiZSB2aXNpdGVkIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IHRydWU7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihhY2N1bSwgdmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMikgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbMCwgMSwgMiwgM107DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBhcnIubGVuZ3RoID0gMjsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgYXJyLnJlZHVjZShjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQgJiYgYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-b-28"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTI4IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1iLTI4LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGRlY3JlYXNpbmcgbGVuZ3RoIG9mIGFycmF5IHdpdGggcHJvdG90eXBlIHByb3BlcnR5IGNhdXNlcyBwcm90b3R5cGUgaW5kZXggcHJvcGVydHkgdG8gYmUgdmlzaXRlZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4oYWNjdW0sIHZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDIgJiYgdmFsID09PSAicHJvdG90eXBlIikgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHZhciBhcnIgPSBbMCwgMSwgMiwgM107DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICIyIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gInByb3RvdHlwZSI7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgYXJyLmxlbmd0aCA9IDI7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgYXJyLnJlZHVjZShjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQoNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsyXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-9-b-29"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTI5IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1iLTI5LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGRlY3JlYXNpbmcgbGVuZ3RoIG9mIGFycmF5IGRvZXMgbm90IGRlbGV0ZSBub24tY29uZmlndXJhYmxlIHByb3BlcnRpZXMiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKGFjY3VtLCB2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAyICYmIHZhbCA9PT0gInVuY29uZmlndXJhYmxlIikgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFswLCAxLCAyLCAzXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMiIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAidW5jb25maWd1cmFibGUiOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBhcnIubGVuZ3RoID0gMjsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgYXJyLnJlZHVjZShjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-b-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWItMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBkZWxldGVkIHByb3BlcnRpZXMgaW4gc3RlcCAyIGFyZSB2aXNpYmxlIGhlcmUiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gdHJ1ZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKGFjY3VtLCB2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAyKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMjogIjIiLCAzOiAxMCB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJsZW5ndGgiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgb2JqWzJdOw0KICAgICAgICAgICAgICAgIHJldHVybiA1Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwob2JqLCBjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQoNCiAgICAgICAgcmV0dXJuIGFjY2Vzc2VkICYmIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-9-b-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWItNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBwcm9wZXJ0aWVzIGFkZGVkIGludG8gb3duIG9iamVjdCBpbiBzdGVwIDggYXJlIHZpc2l0ZWQgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKGFjY3VtLCB2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAzICYmIHZhbCA9PT0gMykgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgbGVuZ3RoOiA1IH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMyIsIHsNCiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMzsNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-b-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWItNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBwcm9wZXJ0aWVzIGFkZGVkIGludG8gb3duIG9iamVjdCBpbiBzdGVwIDggYXJlIHZpc2l0ZWQgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKGFjY3VtLCB2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxICYmIHZhbCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFswLCAsIDJdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjEiLCB7DQogICAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBhcnIucmVkdWNlKGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-9-b-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWItNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBwcm9wZXJ0aWVzIGFkZGVkIHRvIHByb3RvdHlwZSBpbiBzdGVwIDggYXJlIHZpc2l0ZWQgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKGFjY3VtLCB2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxICYmIHZhbCA9PT0gNi45OSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgbGVuZ3RoOiA2IH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LnByb3RvdHlwZSwgIjEiLCB7DQogICAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDYuOTk7DQogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZS5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlWzFdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-9-b-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWItNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBwcm9wZXJ0aWVzIGFkZGVkIHRvIHByb3RvdHlwZSBpbiBzdGVwIDggYXJlIHZpc2l0ZWQgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKGFjY3VtLCB2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxICYmIHZhbCA9PT0gNi45OSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFswLCAsIDJdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjEiLCB7DQogICAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDYuOTk7DQogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgYXJyLnJlZHVjZShjYWxsYmFja2ZuKTsNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgIVssIDFdLmhhc093blByb3BlcnR5KDApICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-9-b-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWItOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBkZWxldGluZyBvd24gcHJvcGVydHkgaW4gc3RlcCA4IGNhdXNlcyBkZWxldGVkIGluZGV4IHByb3BlcnR5IG5vdCB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IHRydWU7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihhY2N1bSwgdmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IDU6IDEwLCBsZW5ndGg6IDEwIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gNi45OTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgb2JqWzFdOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwob2JqLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQgJiYgYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-9-b-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1iLTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWItOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBkZWxldGluZyBvd24gcHJvcGVydHkgaW4gc3RlcCA4IGNhdXNlcyBkZWxldGVkIGluZGV4IHByb3BlcnR5IG5vdCB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IHRydWU7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihhY2N1bSwgdmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbMSwgMiwgNF07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgYXJyWzFdOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBhcnIucmVkdWNlKGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdCAmJiBhY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-9-c-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIxLTktYy0xIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGNhbGxiYWNrZm4gbm90IGNhbGxlZCBmb3IgaW5kZXhlcyBuZXZlciBiZWVuIGFzc2lnbmVkIHZhbHVlcyIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgeyANCiANCiAgdmFyIGNhbGxDbnQgPSAwOw0KICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopDQogIHsNCiAgICBjYWxsQ250Kys7DQogICAgcmV0dXJuIGN1clZhbDsNCiAgfQ0KDQogIHZhciBhcnIgPSBuZXcgQXJyYXkoMTApOw0KICBhcnJbMF0gPSBhcnJbMV0gPSB1bmRlZmluZWQ7IC8vZXhwbGljaXRseSBhc3NpZ25pbmcgYSB2YWx1ZQ0KICBpZiggYXJyLnJlZHVjZShjYWxsYmFja2ZuKSA9PT0gdW5kZWZpbmVkICYmIGNhbGxDbnQgPT09IDEpDQogICAgcmV0dXJuIHRydWU7ICAgIA0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-c-i-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjEvMTUuNC40LjIxLTktYy1pLTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgdmFyIGluaXRpYWxWYWx1ZSA9IDA7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAoY3VyVmFsID09PSAxKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IDA6IDAsIDE6IDEsIDI6IDIsIGxlbmd0aDogMiB9Ow0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwob2JqLCBjYWxsYmFja2ZuLCBpbml0aWFsVmFsdWUpOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.4.4.21-9-c-i-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMTAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaS0xMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgdmFyIGluaXRpYWxWYWx1ZSA9IDA7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAoY3VyVmFsID09PSAxKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbMCwgLCAyXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBhcnIucmVkdWNlKGNhbGxiYWNrZm4sIGluaXRpYWxWYWx1ZSk7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-9-c-i-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaS0xMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgdmFyIGluaXRpYWxWYWx1ZSA9IDA7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAoY3VyVmFsID09PSAiMTEiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHsgMDogMCwgMTogMSwgMjogMiB9Ow0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQogICAgICAgIGNoaWxkLmxlbmd0aCA9IDM7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNoaWxkLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAiMTEiOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4sIGluaXRpYWxWYWx1ZSk7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-9-c-i-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaS0xMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgdmFyIGluaXRpYWxWYWx1ZSA9IDA7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAoY3VyVmFsID09PSAiMTEiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGVbMV0gPSAxOw0KICAgICAgICAgICAgdmFyIGFyciA9IFswLCAsMl07DQoNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gIjExIjsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIGFyci5yZWR1Y2UoY2FsbGJhY2tmbiwgaW5pdGlhbFZhbHVlKTsNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KDQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzFdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-c-i-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaS0xMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICB2YXIgaW5pdGlhbFZhbHVlID0gMDsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChjdXJWYWwgPT09ICIxMSIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHByb3RvID0geyAwOiAwLCAyOiAyfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQogICAgICAgIGNoaWxkLmxlbmd0aCA9IDM7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNoaWxkLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAiMTEiOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4sIGluaXRpYWxWYWx1ZSk7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-9-c-i-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaS0xNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIHZhciBpbml0aWFsVmFsdWUgPSAwOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKGN1clZhbCA9PT0gIjExIik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjEiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgdmFyIGFyciA9IFswLCAsMl07DQoNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gIjExIjsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICBhcnIucmVkdWNlKGNhbGxiYWNrZm4sIGluaXRpYWxWYWx1ZSk7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCg0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-9-c-i-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaS0xNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgdmFyIGluaXRpYWxWYWx1ZSA9IDA7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAoY3VyVmFsID09PSAxKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHsgMDogMCwgMjogMiB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb24oKTsNCiAgICAgICAgY2hpbGQubGVuZ3RoID0gMzsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4sIGluaXRpYWxWYWx1ZSk7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-9-c-i-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaS0xNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgdmFyIGluaXRpYWxWYWx1ZSA9IDA7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAoY3VyVmFsID09PSAxKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMSIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICB2YXIgYXJyID0gWzAsICwgMiwgXTsNCg0KICAgICAgICAgICAgYXJyLnJlZHVjZShjYWxsYmFja2ZuLCBpbml0aWFsVmFsdWUpOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQoNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmICFbLCAxXS5oYXNPd25Qcm9wZXJ0eSgwKSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-c-i-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaS0xNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICB2YXIgaW5pdGlhbFZhbHVlID0gMDsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChjdXJWYWwgPT09IHVuZGVmaW5lZCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyAwOiAwLCAyOiAyLCBsZW5ndGg6IDMgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMSIsIHsNCiAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChvYmosIGNhbGxiYWNrZm4sIGluaXRpYWxWYWx1ZSk7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-9-c-i-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaS0xOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICB2YXIgaW5pdGlhbFZhbHVlID0gMDsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChjdXJWYWwgPT09IHVuZGVmaW5lZCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWzAsICwgMl07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjEiLCB7DQogICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBhcnIucmVkdWNlKGNhbGxiYWNrZm4sIGluaXRpYWxWYWx1ZSk7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgICAgICAgDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-c-i-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaS0xOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgdmFyIGluaXRpYWxWYWx1ZSA9IDA7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAoY3VyVmFsID09PSB1bmRlZmluZWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QucHJvdG90eXBlLCAiMSIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICB2YXIgb2JqID0geyAwOiAwLCAyOiAyLCBsZW5ndGg6IDMgfTsNCg0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjEiLCB7DQogICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZS5jYWxsKG9iaiwgY2FsbGJhY2tmbiwgaW5pdGlhbFZhbHVlKTsNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-c-i-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjEvMTUuNC40LjIxLTktYy1pLTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgdmFyIGluaXRpYWxWYWx1ZSA9IDA7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAoY3VyVmFsID09PSAxKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbMCwgMV07DQogICAgICAgIGFyci5yZWR1Y2UoY2FsbGJhY2tmbiwgaW5pdGlhbFZhbHVlKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-c-i-20"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMjAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaS0yMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgdmFyIGluaXRpYWxWYWx1ZSA9IDA7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAoY3VyVmFsID09PSB1bmRlZmluZWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICIxIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTE7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICB2YXIgYXJyID0gWzAsICwgMl07DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICBhcnIucmVkdWNlKGNhbGxiYWNrZm4sIGluaXRpYWxWYWx1ZSk7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCg0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-9-c-i-21"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMjEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaS0yMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICB2YXIgaW5pdGlhbFZhbHVlID0gMDsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChjdXJWYWwgPT09IHVuZGVmaW5lZCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7IDA6IDAsIDI6IDIgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICIxIiwgew0KICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb24oKTsNCiAgICAgICAgY2hpbGQubGVuZ3RoID0gMzsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4sIGluaXRpYWxWYWx1ZSk7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-c-i-22"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMjIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaS0yMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICB2YXIgaW5pdGlhbFZhbHVlID0gMDsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChjdXJWYWwgPT09IHVuZGVmaW5lZCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjEiLCB7DQogICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgdmFyIGFyciA9IFswLCAsIDJdOw0KDQogICAgICAgICAgICBhcnIucmVkdWNlKGNhbGxiYWNrZm4sIGluaXRpYWxWYWx1ZSk7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCg0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgIVssIDFdLmhhc093blByb3BlcnR5KDApICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-9-c-i-23"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMjMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaS0yMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBUaGlzIG9iamVjdCBpcyB0aGUgZ2xvYmFsIG9iamVjdCB3aGljaCBjb250YWlucyBpbmRleCBwcm9wZXJ0eSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICB2YXIgaW5pdGlhbFZhbHVlID0gMDsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChjdXJWYWwgPT09IDEpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIHZhciBvbGRMZW4gPSBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aDsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KClbMF0gPSAwOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKVsxXSA9IDE7DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aCA9IDI7DQoNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChmbkdsb2JhbE9iamVjdCgpLCBjYWxsYmFja2ZuLCBpbml0aWFsVmFsdWUpOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQoNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBmbkdsb2JhbE9iamVjdCgpWzBdOw0KICAgICAgICAgICAgZGVsZXRlIGZuR2xvYmFsT2JqZWN0KClbMV07DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aCA9IG9sZExlbjsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.4.4.21-9-c-i-25"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMjUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaS0yNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBUaGlzIG9iamVjdCBpcyB0aGUgQXJndW1lbnRzIG9iamVjdCB3aGljaCBpbXBsZW1lbnRzIGl0cyBvd24gcHJvcGVydHkgZ2V0IG1ldGhvZCAobnVtYmVyIG9mIGFyZ3VtZW50cyBpcyBsZXNzIHRoYW4gbnVtYmVyIG9mIHBhcmFtZXRlcnMpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIHZhciBpbml0aWFsVmFsdWUgPSAwOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKGN1clZhbCA9PT0gMSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgZnVuYyA9IGZ1bmN0aW9uIChhLCBiLCBjKSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwoYXJndW1lbnRzLCBjYWxsYmFja2ZuLCBpbml0aWFsVmFsdWUpOw0KICAgICAgICB9Ow0KDQogICAgICAgIGZ1bmMoMCwgMSk7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-c-i-26"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMjYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaS0yNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBUaGlzIG9iamVjdCBpcyB0aGUgQXJndW1lbnRzIG9iamVjdCB3aGljaCBpbXBsZW1lbnRzIGl0cyBvd24gcHJvcGVydHkgZ2V0IG1ldGhvZCAobnVtYmVyIG9mIGFyZ3VtZW50cyBlcXVhbHMgbnVtYmVyIG9mIHBhcmFtZXRlcnMpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIHZhciBpbml0aWFsVmFsdWUgPSAwOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDIpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKGN1clZhbCA9PT0gMik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgZnVuYyA9IGZ1bmN0aW9uIChhLCBiLCBjKSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwoYXJndW1lbnRzLCBjYWxsYmFja2ZuLCBpbml0aWFsVmFsdWUpOw0KICAgICAgICB9Ow0KDQogICAgICAgIGZ1bmMoMCwgMSwgMik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-c-i-27"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMjciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaS0yNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBUaGlzIG9iamVjdCBpcyB0aGUgQXJndW1lbnRzIG9iamVjdCB3aGljaCBpbXBsZW1lbnRzIGl0cyBvd24gcHJvcGVydHkgZ2V0IG1ldGhvZCAobnVtYmVyIG9mIGFyZ3VtZW50cyBpcyBncmVhdGVyIHRoYW4gbnVtYmVyIG9mIHBhcmFtZXRlcnMpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIHZhciBpbml0aWFsVmFsdWUgPSAwOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDMpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKGN1clZhbCA9PT0gMyk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgZnVuYyA9IGZ1bmN0aW9uIChhLCBiLCBjKSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwoYXJndW1lbnRzLCBjYWxsYmFja2ZuLCBpbml0aWFsVmFsdWUpOw0KICAgICAgICB9Ow0KDQogICAgICAgIGZ1bmMoMCwgMSwgMiwgMyk7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-c-i-28"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMjgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaS0yOC5qcyIsDQogICAgDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIC0gYXBwbGllZCB0byBTdHJpbmcgb2JqZWN0LCB3aGljaCBpbXBsZW1lbnRzIGl0cyBvd24gcHJvcGVydHkgZ2V0IG1ldGhvZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICB2YXIgaW5pdGlhbFZhbHVlID0gMDsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChjdXJWYWwgPT09ICIxIik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgc3RyID0gbmV3IFN0cmluZygiMDEyIik7DQogICAgIA0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwoc3RyLCBjYWxsYmFja2ZuLCBpbml0aWFsVmFsdWUpOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICAgICAgDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-9-c-i-29"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMjkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaS0yOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBhcHBsaWVkIHRvIEZ1bmN0aW9uIG9iamVjdCB3aGljaCBpbXBsZW1lbnRzIGl0cyBvd24gcHJvcGVydHkgZ2V0IG1ldGhvZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICB2YXIgaW5pdGlhbFZhbHVlID0gMDsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChjdXJWYWwgPT09IDEpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IGZ1bmN0aW9uIChhLCBiLCBjKSB7DQogICAgICAgICAgICByZXR1cm4gYSArIGIgKyBjOw0KICAgICAgICB9Ow0KICAgICAgICBvYmpbMF0gPSAwOw0KICAgICAgICBvYmpbMV0gPSAxOw0KICAgICAgICBvYmpbMl0gPSAyOw0KICAgICAgICBvYmpbM10gPSAzOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChvYmosIGNhbGxiYWNrZm4sIGluaXRpYWxWYWx1ZSk7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-c-i-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjEvMTUuNC40LjIxLTktYy1pLTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGRhdGEgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgdmFyIGluaXRpYWxWYWx1ZSA9IDA7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAoY3VyVmFsID09PSAiMTEiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHsgMDogMCwgMTogMSwgMjogMiwgbGVuZ3RoOiAyIH07DQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQogICAgICAgIGNoaWxkWzFdID0gIjExIjsNCiAgICAgICAgY2hpbGRbMl0gPSAiMjIiOw0KICAgICAgICBjaGlsZC5sZW5ndGggPSAzOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChjaGlsZCwgY2FsbGJhY2tmbiwgaW5pdGlhbFZhbHVlKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQoNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.4.4.21-9-c-i-30"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMzAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaS0zMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBlbGVtZW50IGNoYW5nZWQgYnkgZ2V0dGVyIG9uIHByZXZpb3VzIGl0ZXJhdGlvbnMgaXMgb2JzZXJ2ZWQgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgdmFyIGluaXRpYWxWYWx1ZSA9IDA7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAoY3VyVmFsID09PSAxKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbLCAsIDJdOw0KICAgICAgICB2YXIgcHJlSXRlclZpc2libGUgPSBmYWxzZTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHByZUl0ZXJWaXNpYmxlID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBpZiAocHJlSXRlclZpc2libGUpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDEwMDsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIGFyci5yZWR1Y2UoY2FsbGJhY2tmbiwgaW5pdGlhbFZhbHVlKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-c-i-31"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMzEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaS0zMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBlbGVtZW50IGNoYW5nZWQgYnkgZ2V0dGVyIG9uIHByZXZpb3VzIGl0ZXJhdGlvbnMgaXMgb2JzZXJ2ZWQgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgdmFyIGluaXRpYWxWYWx1ZSA9IDA7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAoY3VyVmFsID09PSAxKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IDI6IDIsIGxlbmd0aDogMyB9Ow0KICAgICAgICB2YXIgcHJlSXRlclZpc2libGUgPSBmYWxzZTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHByZUl0ZXJWaXNpYmxlID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBpZiAocHJlSXRlclZpc2libGUpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIxMSI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwob2JqLCBjYWxsYmFja2ZuLCBpbml0aWFsVmFsdWUpOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCg0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-9-c-i-32"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMzIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaS0zMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSB1bm5oYW5kbGVkIGV4Y2VwdGlvbnMgaGFwcGVuZWQgaW4gZ2V0dGVyIHRlcm1pbmF0ZSBpdGVyYXRpb24gb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIHZhciBpbml0aWFsVmFsdWUgPSAwOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPj0gMSkgew0KICAgICAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKGN1clZhbCA+PSAxKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IDA6IDAsIDI6IDIsIGxlbmd0aDogMyB9Ow0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCJ1bmhhbmRsZSBleGNlcHRpb24gaGFwcGVuZWQgaW4gZ2V0dGVyIik7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwob2JqLCBjYWxsYmFja2ZuLCBpbml0aWFsVmFsdWUpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChleCkgew0KICAgICAgICAgICAgcmV0dXJuIChleCBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpICYmICFhY2Nlc3NlZCAmJiAhdGVzdFJlc3VsdDsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-9-c-i-33"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktMzMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaS0zMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSB1bm5oYW5kbGVkIGV4Y2VwdGlvbnMgaGFwcGVuZWQgaW4gZ2V0dGVyIHRlcm1pbmF0ZSBpdGVyYXRpb24gb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIHZhciBpbml0aWFsVmFsdWUgPSAwOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPj0gMSkgew0KICAgICAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKGN1clZhbCA+PSAxKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbMCwgLCAyXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCJ1bmhhbmRsZSBleGNlcHRpb24gaGFwcGVuZWQgaW4gZ2V0dGVyIik7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBhcnIucmVkdWNlKGNhbGxiYWNrZm4sIGluaXRpYWxWYWx1ZSk7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGV4KSB7DQogICAgICAgICAgICByZXR1cm4gKGV4IGluc3RhbmNlb2YgUmFuZ2VFcnJvcikgJiYgIWFjY2Vzc2VkICYmICF0ZXN0UmVzdWx0Ow0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-c-i-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjEvMTUuNC40LjIxLTktYy1pLTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGRhdGEgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgdmFyIGluaXRpYWxWYWx1ZSA9IDA7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAoY3VyVmFsID09PSAxKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGVbMV0gPSAiMyI7DQogICAgICAgICAgICBbMCwgMSwgMl0ucmVkdWNlKGNhbGxiYWNrZm4sIGluaXRpYWxWYWx1ZSk7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-9-c-i-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjEvMTUuNC40LjIxLTktYy1pLTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGRhdGEgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIHZhciBpbml0aWFsVmFsdWUgPSAwOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKGN1clZhbCA9PT0gIjkiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHt9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywgIjAiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb24oKTsNCiAgICAgICAgY2hpbGQubGVuZ3RoID0gMjsNCiAgICAgICAgDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjaGlsZCwgIjAiLCB7DQogICAgICAgICAgICB2YWx1ZTogIjkiLA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIGNoaWxkWzFdID0gIjEiOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChjaGlsZCwgY2FsbGJhY2tmbiwgaW5pdGlhbFZhbHVlKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-9-c-i-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktNiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjEvMTUuNC40LjIxLTktYy1pLTYuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGRhdGEgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIHZhciBpbml0aWFsVmFsdWUgPSAwOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKGN1clZhbCA9PT0gMSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjEiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAiOSI7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgWzAsIDEsIDJdLnJlZHVjZShjYWxsYmFja2ZuLCBpbml0aWFsVmFsdWUpOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQoNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCg0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-9-c-i-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjEvMTUuNC40LjIxLTktYy1pLTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgaW5oZXJpdGVkIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgdmFyIGluaXRpYWxWYWx1ZSA9IDA7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAoY3VyVmFsID09PSAxKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHsgMDogMCwgMTogMSwgMjogMiwgbGVuZ3RoOiAzIH07DQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQogICAgICAgIGNoaWxkLmxlbmd0aCA9IDM7DQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZS5jYWxsKGNoaWxkLCBjYWxsYmFja2ZuLCBpbml0aWFsVmFsdWUpOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-9-c-i-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjEvMTUuNC40LjIxLTktYy1pLTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgaW5oZXJpdGVkIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgdmFyIGluaXRpYWxWYWx1ZSA9IDA7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAoY3VyVmFsID09PSAxKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGVbMF0gPSAwOw0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzFdID0gMTsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVsyXSA9IDI7DQogICAgICAgICAgICBbLCAsICwgXS5yZWR1Y2UoY2FsbGJhY2tmbiwgaW5pdGlhbFZhbHVlKTsNCg0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzBdOw0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMl07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKSAmJiAhWywgMV0uaGFzT3duUHJvcGVydHkoMCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-9-c-i-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWktOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjEvMTUuNC40LjIxLTktYy1pLTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlIC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIHZhciBpbml0aWFsVmFsdWUgPSAwOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKGN1clZhbCA9PT0gMSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyAwOiAwLCAyOiAyLCBsZW5ndGg6IDMgfTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZS5jYWxsKG9iaiwgY2FsbGJhY2tmbiwgaW5pdGlhbFZhbHVlKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQoNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-c-ii-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIxLTktYy1paS0xIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaWktMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGNhbGxiYWNrZm4gY2FsbGVkIHdpdGggY29ycmVjdCBwYXJhbWV0ZXJzIChpbml0aWFsdmFsdWUgbm90IHBhc3NlZCkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsgDQogDQogIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikNCiAgew0KICAgIGlmKGlkeCA+IDAgJiYgb2JqW2lkeF0gPT09IGN1clZhbCAmJiBvYmpbaWR4LTFdID09PSBwcmV2VmFsKQ0KICAgICAgcmV0dXJuIGN1clZhbDsNCiAgICBlbHNlIA0KICAgICAgcmV0dXJuIGZhbHNlOw0KICB9DQoNCiAgdmFyIGFyciA9IFswLDEsdHJ1ZSxudWxsLG5ldyBPYmplY3QoKSwiZml2ZSJdOw0KICBpZiggYXJyLnJlZHVjZShjYWxsYmFja2ZuKSA9PT0gImZpdmUiKSANCiAgICByZXR1cm4gdHJ1ZTsNCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.21-9-c-ii-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWlpLTEwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1jLWlpLTEwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGNhbGxiYWNrZm4gaXMgY2FsbGVkIHdpdGggMSBmb3JtYWwgcGFyYW1ldGVyIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciByZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsKSB7DQogICAgICAgICAgICByZXN1bHQgPSAocHJldlZhbCA9PT0gMSk7DQogICAgICAgIH0NCg0KICAgICAgICBbMTFdLnJlZHVjZShjYWxsYmFja2ZuLCAxKTsNCiAgICAgICAgcmV0dXJuIHJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-9-c-ii-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWlpLTExIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1jLWlpLTExLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIGNhbGxiYWNrZm4gaXMgY2FsbGVkIHdpdGggMiBmb3JtYWwgcGFyYW1ldGVyIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciByZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwpIHsNCiAgICAgICAgICAgIHJlc3VsdCA9IChjdXJWYWwgPiAxMCAmJiAxID09PSBwcmV2VmFsKTsNCiAgICAgICAgfQ0KDQogICAgICAgIFsxMV0ucmVkdWNlKGNhbGxiYWNrZm4sIDEpOw0KICAgICAgICByZXR1cm4gcmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
@ -175,6 +251,7 @@
<test id="15.4.4.21-9-c-ii-33"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWlpLTMzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1jLWlpLTMzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIHRoZSBKU09OIGNhbiBiZSB1c2VkIGFzIGFjY3VtdWxhdG9yIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiBwcmV2VmFsID09PSBKU09OOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMDogMTEsIGxlbmd0aDogMSB9Ow0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwob2JqLCBjYWxsYmFja2ZuLCBKU09OKSA9PT0gdHJ1ZSAmJiBhY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-9-c-ii-34"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWlpLTM0IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1jLWlpLTM0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIEVycm9yIG9iamVjdCBjYW4gYmUgdXNlZCBhcyBhY2N1bXVsYXRvciIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgb2JqRXJyb3IgPSBuZXcgUmFuZ2VFcnJvcigpOw0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiBwcmV2VmFsID09PSBvYmpFcnJvcjsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IDA6IDExLCBsZW5ndGg6IDEgfTsNCg0KICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLnJlZHVjZS5jYWxsKG9iaiwgY2FsbGJhY2tmbiwgb2JqRXJyb3IpID09PSB0cnVlICYmIGFjY2Vzc2VkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-c-ii-35"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWlpLTM1IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1jLWlpLTM1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIHRoZSBBcmd1bWVudHMgb2JqZWN0IGNhbiBiZSB1c2VkIGFzIGFjY3VtdWxhdG9yIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICB2YXIgYXJnOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIHByZXZWYWwgPT09IGFyZzsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IDA6IDExLCBsZW5ndGg6IDEgfTsNCg0KICAgICAgICAoZnVuY3Rpb24gZnVuKCkgew0KICAgICAgICAgICAgYXJnID0gYXJndW1lbnRzOw0KICAgICAgICB9KDEwLCAxMSwgMTIsIDEzKSk7DQoNCiAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChvYmosIGNhbGxiYWNrZm4sIGFyZykgPT09IHRydWUgJiYgYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.21-9-c-ii-37"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWlpLTM3IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMS8xNS40LjQuMjEtOS1jLWlpLTM3LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZSAtIHRoZSBnbG9iYWwgb2JqZWN0IGNhbiBiZSB1c2VkIGFzIGFjY3VtdWxhdG9yIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiBwcmV2VmFsID09PSBmbkdsb2JhbE9iamVjdCgpOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMDogMTEsIGxlbmd0aDogMSB9Ow0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwob2JqLCBjYWxsYmFja2ZuLCBmbkdsb2JhbE9iamVjdCgpKSA9PT0gdHJ1ZSAmJiBhY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-9-c-ii-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWlpLTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaWktNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBrIHZhbHVlcyBhcmUgcGFzc2VkIGluIGFjZW5kaW5nIG51bWVyaWMgb3JkZXIgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFyciA9IFswLCAxLCAyXTsNCiAgICAgICAgdmFyIGxhc3RJZHggPSAwOw0KICAgICAgICB2YXIgcmVzdWx0ID0gdHJ1ZTsNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICBpZiAobGFzdElkeCAhPT0gaWR4KSB7DQogICAgICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIGxhc3RJZHgrKzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIGFyci5yZWR1Y2UoY2FsbGJhY2tmbiwgMTEpOw0KICAgICAgICByZXR1cm4gcmVzdWx0ICYmIGFjY2Vzc2VkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2UpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.21-9-c-ii-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWlpLTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaWktNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSBrIHZhbHVlcyBhcmUgYWNjZXNzZWQgZHVyaW5nIGVhY2ggaXRlcmF0aW9uIGFuZCBub3QgcHJpb3IgdG8gc3RhcnRpbmcgdGhlIGxvb3Agb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHJlc3VsdCA9IHRydWU7DQogICAgICAgIHZhciBrSW5kZXggPSBbXTsNCiAgICAgICAgdmFyIGNhbGxlZCA9IDA7DQoNCiAgICAgICAgLy9CeSBiZWxvdyB3YXksIHdlIGNvdWxkIHZlcmlmeSB0aGF0IGsgd291bGQgYmUgc2V0dGVkIGFzIDAsIDEsIC4uLiwgbGVuZ3RoIC0gMSBpbiBvcmRlciwgYW5kIGVhY2ggdmFsdWUgd2lsbCBiZSBzZXR0ZWQgb25lIHRpbWUuDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgLy9FYWNoIHBvc2l0aW9uIHNob3VsZCBiZSB2aXNpdGVkIG9uZSB0aW1lLCB3aGljaCBtZWFucyBrIGlzIGFjY2Vzc2VkIG9uZSB0aW1lIGR1cmluZyBpdGVyYXRpb25zLg0KICAgICAgICAgICAgY2FsbGVkKys7DQogICAgICAgICAgICBpZiAodHlwZW9mIGtJbmRleFtpZHhdID09PSAidW5kZWZpbmVkIikgew0KICAgICAgICAgICAgICAgIC8vd2hlbiBjdXJyZW50IHBvc2l0aW9uIGlzIHZpc2l0ZWQsIGl0cyBwcmV2aW91cyBpbmRleCBzaG91bGQgaGFzIGJlZW4gdmlzaXRlZC4NCiAgICAgICAgICAgICAgICBpZiAoaWR4ICE9PSAwICYmIHR5cGVvZiBrSW5kZXhbaWR4IC0gMV0gPT09ICJ1bmRlZmluZWQiKSB7DQogICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBrSW5kZXhbaWR4XSA9IDE7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgWzExLCAxMiwgMTMsIDE0XS5yZWR1Y2UoY2FsbGJhY2tmbiwgMSk7DQoNCiAgICAgICAgcmV0dXJuIHJlc3VsdCAmJiBjYWxsZWQgPT09IDQ7DQogICAgfSwNCg0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.21-9-c-ii-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjEtOS1jLWlpLTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIxLzE1LjQuNC4yMS05LWMtaWktNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgLSB1bmhhbmRsZWQgZXhjZXB0aW9ucyBoYXBwZW5lZCBpbiBjYWxsYmFja2ZuIHRlcm1pbmF0ZSBpdGVyYXRpb24iLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID4gMCkgew0KICAgICAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkV4Y2VwdGlvbiBvY2N1cnJlZCBpbiBjYWxsYmFja2ZuIik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyAwOiAxMSwgNDogMTAsIDEwOiA4LCBsZW5ndGg6IDIwIH07DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChvYmosIGNhbGxiYWNrZm4sIDEpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChleCkgew0KICAgICAgICAgICAgcmV0dXJuIChleCBpbnN0YW5jZW9mIEVycm9yKSAmJiAhYWNjZXNzZWQ7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlKTsNCiAgICB9DQoNCn0pOw0K]]></test>

View File

@ -2,7 +2,7 @@
<!-- adding section element if in the future we want to store information about the -->
<!-- spec structure in this file, for now the section structure is defined in the -->
<!-- sections.js file -->
<section name="Chapter - 15.4.4.22" numTests="176">
<section name="Chapter - 15.4.4.22" numTests="253">
<test id="15.4.4.22-0-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIyLTAtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItMC0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgbXVzdCBleGlzdCBhcyBhIGZ1bmN0aW9uIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBmID0gQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0Ow0KICBpZiAodHlwZW9mKGYpID09PSAiZnVuY3Rpb24iKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9DQp9KTsNCg==]]></test>
<test id="15.4.4.22-0-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIyLTAtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItMC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQubGVuZ3RoIG11c3QgYmUgMSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICBpZiAoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0Lmxlbmd0aCA9PT0gMSkgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.22-1-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItMS0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItMS0xLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IGFwcGxpZWQgdG8gdW5kZWZpbmVkIHRocm93cyBhIFR5cGVFcnJvciIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodC5jYWxsKHVuZGVmaW5lZCk7IA0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KTsNCiAgICB9DQoNCn0pOw0K]]></test>
@ -34,6 +34,7 @@
<test id="15.4.4.22-2-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItMi0xMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjIvMTUuNC40LjIyLTItMTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgLSAnbGVuZ3RoJyBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICByZXR1cm4gdHlwZW9mIG9iai5sZW5ndGggPT09ICJ1bmRlZmluZWQiOw0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QucHJvdG90eXBlLCAibGVuZ3RoIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHZhciBvYmogPSB7IDA6IDEyLCAxOiAxMyB9Ow0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImxlbmd0aCIsIHsNCiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0LmNhbGwob2JqLCBjYWxsYmFja2ZuLCAxMSkgPT09IDExICYmICFhY2Nlc3NlZDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlLmxlbmd0aDsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-2-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItMi0xMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjIvMTUuNC40LjIyLTItMTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgYXBwbGllZCB0byB0aGUgQXJyYXktbGlrZSBvYmplY3QgdGhhdCAnbGVuZ3RoJyBpcyBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldCBmdW5jdGlvbiIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiBjdXJWYWwgPiAxMDsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHt9Ow0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICJsZW5ndGgiLCB7DQogICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZFswXSA9IDExOw0KICAgICAgICBjaGlsZFsxXSA9IDEyOw0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQuY2FsbChjaGlsZCwgY2FsbGJhY2tmbiwgMTExKSA9PT0gMTExICYmICFhY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-2-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItMi0xNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjIvMTUuNC40LjIyLTItMTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgYXBwbGllZCB0byB0aGUgQXJyYXktbGlrZSBvYmplY3QgdGhhdCAnbGVuZ3RoJyBwcm9wZXJ0eSBkb2Vzbid0IGV4aXN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBvYmogPSB7IDA6IDExLCAxOiAxMiB9Ow0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiBjdXJWYWwgPiAxMDsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQuY2FsbChvYmosIGNhbGxiYWNrZm4sIDExMSkgPT09IDExMSAmJiAhYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-2-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItMi0xNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjIvMTUuNC40LjIyLTItMTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgLSAnbGVuZ3RoJyBpcyBwcm9wZXJ0eSBvZiB0aGUgZ2xvYmFsIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiBvYmoubGVuZ3RoID09PSBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aDsNCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICB2YXIgb2xkTGVuID0gZm5HbG9iYWxPYmplY3QoKS5sZW5ndGg7DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpWzBdID0gMTI7DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpWzFdID0gMTE7DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpWzJdID0gOTsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KCkubGVuZ3RoID0gMjsNCiAgICAgICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQuY2FsbChmbkdsb2JhbE9iamVjdCgpLCBjYWxsYmFja2ZuLCAxMTEpICYmIGFjY2Vzc2VkOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIGZuR2xvYmFsT2JqZWN0KClbMF07DQogICAgICAgICAgICBkZWxldGUgZm5HbG9iYWxPYmplY3QoKVsxXTsNCiAgICAgICAgICAgIGRlbGV0ZSBmbkdsb2JhbE9iamVjdCgpWzJdOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKS5sZW5ndGggPSBvbGRMZW47DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-2-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItMi0xNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjIvMTUuNC40LjIyLTItMTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgYXBwbGllZCB0byB0aGUgQXJndW1lbnRzIG9iamVjdCwgd2hpY2ggaW1wbGVtZW50cyBpdHMgb3duIHByb3BlcnR5IGdldCBtZXRob2QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFyZzsNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICByZXR1cm4gb2JqLmxlbmd0aCA9PT0gMjsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBmdW5jID0gZnVuY3Rpb24gKGEsIGIpIHsNCiAgICAgICAgICAgIGFyZyA9IGFyZ3VtZW50czsNCiAgICAgICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQuY2FsbChhcmd1bWVudHMsIGNhbGxiYWNrZm4sIDExKTsNCiAgICAgICAgfTsNCg0KICAgICAgICByZXR1cm4gZnVuYygxMiwgMTEpICYmIGFjY2Vzc2VkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-2-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItMi0xOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjIvMTUuNC40LjIyLTItMTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgYXBwbGllZCB0byBTdHJpbmcgb2JqZWN0LCB3aGljaCBpbXBsZW1lbnRzIGl0cyBvd24gcHJvcGVydHkgZ2V0IG1ldGhvZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIHN0ciA9IG5ldyBTdHJpbmcoIjQzMiIpOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJlVmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICByZXR1cm4gb2JqLmxlbmd0aCA9PT0gMzsNCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBTdHJpbmcucHJvdG90eXBlWzNdID0gIjEiOw0KICAgICAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodC5jYWxsKHN0ciwgY2FsbGJhY2tmbiwgMTExKSAmJiBhY2Nlc3NlZDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBTdHJpbmcucHJvdG90eXBlWzNdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-2-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItMi0xOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjIvMTUuNC40LjIyLTItMTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgYXBwbGllZCB0byBGdW5jdGlvbiBvYmplY3QsIHdoaWNoIGltcGxlbWVudHMgaXRzIG93biBwcm9wZXJ0eSBnZXQgbWV0aG9kIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICB2YXIgZnVuID0gZnVuY3Rpb24gKGEsIGIpIHsNCiAgICAgICAgICAgIHJldHVybiBhICsgYjsNCiAgICAgICAgfTsNCiAgICAgICAgZnVuWzBdID0gMTI7DQogICAgICAgIGZ1blsxXSA9IDExOw0KICAgICAgICBmdW5bMl0gPSA5Ow0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIG9iai5sZW5ndGggPT09IDI7DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0LmNhbGwoZnVuLCBjYWxsYmFja2ZuLCAxMSkgJiYgYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KTsNCiAgICB9DQoNCn0pOw0K]]></test>
@ -72,6 +73,7 @@
<test id="15.4.4.22-4-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItNC0xMCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjIvMTUuNC40LjIyLTQtMTAuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgLSB0aGUgZXhjZXB0aW9uIGlzIG5vdCB0aHJvd24gaWYgZXhjZXB0aW9uIHdhcyB0aHJvd24gYnkgc3RlcCAyIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBvYmogPSB7IDA6IDExLCAxOiAxMiB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJsZW5ndGgiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3IoKTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodC5jYWxsKG9iaiwgdW5kZWZpbmVkKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZXgpIHsNCiAgICAgICAgICAgIHJldHVybiAhKGV4IGluc3RhbmNlb2YgVHlwZUVycm9yKTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-4-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItNC0xMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjIvMTUuNC40LjIyLTQtMTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgLSB0aGUgZXhjZXB0aW9uIGlzIG5vdCB0aHJvd24gaWYgZXhjZXB0aW9uIHdhcyB0aHJvd24gYnkgc3RlcCAzIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBvYmogPSB7IDA6IDExLCAxOiAxMiB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJsZW5ndGgiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gew0KICAgICAgICAgICAgICAgICAgICB0b1N0cmluZzogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0LmNhbGwob2JqLCB1bmRlZmluZWQpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChleCkgew0KICAgICAgICAgICAgcmV0dXJuICEoZXggaW5zdGFuY2VvZiBUeXBlRXJyb3IpOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-4-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItNC0xMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjIvMTUuNC40LjIyLTQtMTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgLSAnY2FsbGJhY2tmbicgaXMgYSBmdW5jdGlvbiIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgaW5pdGlhbFZhbHVlID0gMDsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihhY2N1bSwgdmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjdW0gKz0gdmFsOw0KICAgICAgICAgICAgcmV0dXJuIGFjY3VtOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIDIwID09PSBbMTEsIDldLnJlZHVjZVJpZ2h0KGNhbGxiYWNrZm4sIGluaXRpYWxWYWx1ZSk7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-4-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItNC0xNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjIvMTUuNC40LjIyLTQtMTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgLSBjYWxsaW5nIHdpdGggbm8gY2FsbGJhY2tmbiBpcyB0aGUgc2FtZSBhcyBwYXNzaW5nIHVuZGVmaW5lZCBmb3IgY2FsbGJhY2tmbiIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IHsgMTA6IDEwIH07DQogICAgICAgIHZhciBsZW5ndGhBY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICB2YXIgbG9vcEFjY2Vzc2VkID0gZmFsc2U7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImxlbmd0aCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGxlbmd0aEFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMjA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGxvb3BBY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0dXJuIDEwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0LmNhbGwob2JqLCB1bmRlZmluZWQpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChleCkgew0KICAgICAgICAgICAgcmV0dXJuIChleCBpbnN0YW5jZW9mIFR5cGVFcnJvcikgJiYgbGVuZ3RoQWNjZXNzZWQgJiYgIWxvb3BBY2Nlc3NlZDsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-4-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIyLTQtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItNC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgdGhyb3dzIFJlZmVyZW5jZUVycm9yIGlmIGNhbGxiYWNrZm4gaXMgdW5yZWZlcmVuY2VkIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgdmFyIGFyciA9IG5ldyBBcnJheSgxMCk7DQogIHRyeSB7DQogICAgYXJyLnJlZHVjZVJpZ2h0KGZvbyk7ICAgIA0KICB9DQogIGNhdGNoKGUpIHsNCiAgICBpZihlIGluc3RhbmNlb2YgUmVmZXJlbmNlRXJyb3IpDQogICAgICByZXR1cm4gdHJ1ZTsgIA0KICB9DQoNCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.22-4-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIyLTQtMyIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItNC0zLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgdGhyb3dzIFR5cGVFcnJvciBpZiBjYWxsYmFja2ZuIGlzIG51bGwiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICB2YXIgYXJyID0gbmV3IEFycmF5KDEwKTsNCiAgdHJ5IHsNCiAgICBhcnIucmVkdWNlUmlnaHQobnVsbCk7ICAgIA0KICB9DQogIGNhdGNoKGUpIHsNCiAgICBpZihlIGluc3RhbmNlb2YgVHlwZUVycm9yKQ0KICAgICAgcmV0dXJuIHRydWU7ICANCiAgfQ0KDQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.22-4-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIyLTQtNCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItNC00LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgdGhyb3dzIFR5cGVFcnJvciBpZiBjYWxsYmFja2ZuIGlzIGJvb2xlYW4iLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICB2YXIgYXJyID0gbmV3IEFycmF5KDEwKTsNCiAgdHJ5IHsNCiAgICBhcnIucmVkdWNlUmlnaHQodHJ1ZSk7ICAgIA0KICB9DQogIGNhdGNoKGUpIHsNCiAgICBpZihlIGluc3RhbmNlb2YgVHlwZUVycm9yKQ0KICAgICAgcmV0dXJuIHRydWU7ICANCiAgfQ0KDQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpOw0KIH0NCn0pOw0K]]></test>
@ -104,19 +106,43 @@
<test id="15.4.4.22-7-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIyLTctNyIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItNy03LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgcmV0dXJucyBpbml0aWFsVmFsdWUgaWYgJ2xlbmd0aCcgaXMgMCBhbmQgaW5pdGlhbFZhbHVlIGlzIHByZXNlbnQgKHN1YmNsYXNzZWQgQXJyYXksIGxlbmd0aCBvdmVycmlkZGVuIHdpdGggb2JqIHcvbyB2YWx1ZU9mICh0b1N0cmluZykpIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIGZvby5wcm90b3R5cGUgPSBuZXcgQXJyYXkoMSwgMiwgMyk7DQogIGZ1bmN0aW9uIGZvbygpIHt9DQogIHZhciBmID0gbmV3IGZvbygpOw0KICANCiAgdmFyIG8gPSB7IHRvU3RyaW5nOiBmdW5jdGlvbiAoKSB7IHJldHVybiAnMCc7fX07DQogIGYubGVuZ3RoID0gbzsNCiAgDQogIC8vIG9iamVjdHMgaW5oZXJpdCB0aGUgZGVmYXVsdCB2YWx1ZU9mIG1ldGhvZCBvZiB0aGUgT2JqZWN0IG9iamVjdDsNCiAgLy8gdGhhdCBzaW1wbHkgcmV0dXJucyB0aGUgaXRzZWxmLiBTaW5jZSB0aGUgZGVmYXVsdCB2YWx1ZU9mKCkgbWV0aG9kDQogIC8vIGRvZXMgbm90IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZSwgRVMgbmV4dCB0cmllcyB0byBjb252ZXJ0IHRoZSBvYmplY3QNCiAgLy8gdG8gYSBudW1iZXIgYnkgY2FsbGluZyBpdHMgdG9TdHJpbmcoKSBtZXRob2QgYW5kIGNvbnZlcnRpbmcgdGhlDQogIC8vIHJlc3VsdGluZyBzdHJpbmcgdG8gYSBudW1iZXIuDQoNCiAgZnVuY3Rpb24gY2IoKXt9DQogIHRyeSB7DQogICAgaWYoZi5yZWR1Y2VSaWdodChjYiwxKSA9PT0gMSkNCiAgICAgIHJldHVybiB0cnVlOw0KICB9DQogIGNhdGNoIChlKSB7ICB9ICANCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.22-7-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIyLTctOCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItNy04LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgcmV0dXJucyBpbml0aWFsVmFsdWUgaWYgJ2xlbmd0aCcgaXMgMCBhbmQgaW5pdGlhbFZhbHVlIGlzIHByZXNlbnQgKHN1YmNsYXNzZWQgQXJyYXksIGxlbmd0aCBvdmVycmlkZGVuIHdpdGggW10pIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIGZvby5wcm90b3R5cGUgPSBuZXcgQXJyYXkoMSwgMiwgMyk7DQogIGZ1bmN0aW9uIGZvbygpIHt9DQogIHZhciBmID0gbmV3IGZvbygpOw0KICANCiAgZi5sZW5ndGggPSBbXTsNCiAgDQogIC8vIG9iamVjdHMgaW5oZXJpdCB0aGUgZGVmYXVsdCB2YWx1ZU9mIG1ldGhvZCBvZiB0aGUgT2JqZWN0IG9iamVjdDsNCiAgLy8gdGhhdCBzaW1wbHkgcmV0dXJucyB0aGUgaXRzZWxmLiBTaW5jZSB0aGUgZGVmYXVsdCB2YWx1ZU9mKCkgbWV0aG9kDQogIC8vIGRvZXMgbm90IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZSwgRVMgbmV4dCB0cmllcyB0byBjb252ZXJ0IHRoZSBvYmplY3QNCiAgLy8gdG8gYSBudW1iZXIgYnkgY2FsbGluZyBpdHMgdG9TdHJpbmcoKSBtZXRob2QgYW5kIGNvbnZlcnRpbmcgdGhlDQogIC8vIHJlc3VsdGluZyBzdHJpbmcgdG8gYSBudW1iZXIuDQogIC8vDQogIC8vIFRoZSB0b1N0cmluZyggKSBtZXRob2Qgb24gQXJyYXkgY29udmVydHMgdGhlIGFycmF5IGVsZW1lbnRzIHRvIHN0cmluZ3MsDQogIC8vIHRoZW4gcmV0dXJucyB0aGUgcmVzdWx0IG9mIGNvbmNhdGVuYXRpbmcgdGhlc2Ugc3RyaW5ncywgd2l0aCBjb21tYXMgaW4NCiAgLy8gYmV0d2Vlbi4gQW4gYXJyYXkgd2l0aCBubyBlbGVtZW50cyBjb252ZXJ0cyB0byB0aGUgZW1wdHkgc3RyaW5nLCB3aGljaA0KICAvLyBjb252ZXJ0cyB0byB0aGUgbnVtYmVyIDAuIElmIGFuIGFycmF5IGhhcyBhIHNpbmdsZSBlbGVtZW50IHRoYXQgaXMgYQ0KICAvLyBudW1iZXIgbiwgdGhlIGFycmF5IGNvbnZlcnRzIHRvIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIG4sIHdoaWNoIGlzDQogIC8vIHRoZW4gY29udmVydGVkIGJhY2sgdG8gbiBpdHNlbGYuIElmIGFuIGFycmF5IGNvbnRhaW5zIG1vcmUgdGhhbiBvbmUgZWxlbWVudCwNCiAgLy8gb3IgaWYgaXRzIG9uZSBlbGVtZW50IGlzIG5vdCBhIG51bWJlciwgdGhlIGFycmF5IGNvbnZlcnRzIHRvIE5hTi4NCg0KICBmdW5jdGlvbiBjYigpe30NCiAgdHJ5IHsNCiAgICBpZihmLnJlZHVjZVJpZ2h0KGNiLDEpID09PSAxKQ0KICAgICAgcmV0dXJuIHRydWU7DQogIH0NCiAgY2F0Y2ggKGUpIHsgIH0gIA0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KTsNCiB9DQp9KTsNCg==]]></test>
<test id="15.4.4.22-7-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIyLTctOSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItNy05LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgcmV0dXJucyBpbml0aWFsVmFsdWUgaWYgJ2xlbmd0aCcgaXMgMCBhbmQgaW5pdGlhbFZhbHVlIGlzIHByZXNlbnQgKHN1YmNsYXNzZWQgQXJyYXksIGxlbmd0aCBvdmVycmlkZGVuIHdpdGggWzBdKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICBmb28ucHJvdG90eXBlID0gbmV3IEFycmF5KDEsIDIsIDMpOw0KICBmdW5jdGlvbiBmb28oKSB7fQ0KICB2YXIgZiA9IG5ldyBmb28oKTsNCiAgDQogIGYubGVuZ3RoID0gWzBdOw0KICANCiAgLy8gb2JqZWN0cyBpbmhlcml0IHRoZSBkZWZhdWx0IHZhbHVlT2YgbWV0aG9kIG9mIHRoZSBPYmplY3Qgb2JqZWN0Ow0KICAvLyB0aGF0IHNpbXBseSByZXR1cm5zIHRoZSBpdHNlbGYuIFNpbmNlIHRoZSBkZWZhdWx0IHZhbHVlT2YoKSBtZXRob2QNCiAgLy8gZG9lcyBub3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLCBFUyBuZXh0IHRyaWVzIHRvIGNvbnZlcnQgdGhlIG9iamVjdA0KICAvLyB0byBhIG51bWJlciBieSBjYWxsaW5nIGl0cyB0b1N0cmluZygpIG1ldGhvZCBhbmQgY29udmVydGluZyB0aGUNCiAgLy8gcmVzdWx0aW5nIHN0cmluZyB0byBhIG51bWJlci4NCiAgLy8NCiAgLy8gVGhlIHRvU3RyaW5nKCApIG1ldGhvZCBvbiBBcnJheSBjb252ZXJ0cyB0aGUgYXJyYXkgZWxlbWVudHMgdG8gc3RyaW5ncywNCiAgLy8gdGhlbiByZXR1cm5zIHRoZSByZXN1bHQgb2YgY29uY2F0ZW5hdGluZyB0aGVzZSBzdHJpbmdzLCB3aXRoIGNvbW1hcyBpbg0KICAvLyBiZXR3ZWVuLiBBbiBhcnJheSB3aXRoIG5vIGVsZW1lbnRzIGNvbnZlcnRzIHRvIHRoZSBlbXB0eSBzdHJpbmcsIHdoaWNoDQogIC8vIGNvbnZlcnRzIHRvIHRoZSBudW1iZXIgMC4gSWYgYW4gYXJyYXkgaGFzIGEgc2luZ2xlIGVsZW1lbnQgdGhhdCBpcyBhDQogIC8vIG51bWJlciBuLCB0aGUgYXJyYXkgY29udmVydHMgdG8gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2Ygbiwgd2hpY2ggaXMNCiAgLy8gdGhlbiBjb252ZXJ0ZWQgYmFjayB0byBuIGl0c2VsZi4gSWYgYW4gYXJyYXkgY29udGFpbnMgbW9yZSB0aGFuIG9uZSBlbGVtZW50LA0KICAvLyBvciBpZiBpdHMgb25lIGVsZW1lbnQgaXMgbm90IGEgbnVtYmVyLCB0aGUgYXJyYXkgY29udmVydHMgdG8gTmFOLg0KDQogIGZ1bmN0aW9uIGNiKCl7fQ0KICB0cnkgew0KICAgIGlmKGYucmVkdWNlUmlnaHQoY2IsMSkgPT09IDEpDQogICAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KICBjYXRjaCAoZSkgeyAgfSAgDQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.22-8-b-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi04LWItMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIG5vIG9ic2VydmFibGUgZWZmZWN0cyBvY2N1ciBpZiAnbGVuJyBpcyAwIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KDQogICAgICAgIHZhciBvYmogPSB7IGxlbmd0aDogMCB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgIHJldHVybiAxMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodC5jYWxsKG9iaiwgZnVuY3Rpb24gKCkgeyB9KTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZXgpIHsNCiAgICAgICAgICAgIHJldHVybiAhYWNjZXNzZWQ7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-8-b-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi04LWItMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIG1vZGlmaWNhdGlvbnMgdG8gbGVuZ3RoIGRvbid0IGNoYW5nZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBpbiBzdGVwIDkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBjYWxsZWQgPSAwOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGNhbGxlZCsrOw0KICAgICAgICAgICAgcmV0dXJuIHByZXZWYWwgKyBjdXJWYWw7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWzAsIDEsIDIsIDNdOw0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiNCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGFyci5sZW5ndGggPSAyOw0KICAgICAgICAgICAgICAgIHJldHVybiAxMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIHByZVZhbCA9IGFyci5yZWR1Y2VSaWdodChjYWxsYmFja2ZuKTsNCg0KICAgICAgICByZXR1cm4gcHJlVmFsID09PSAxMSAmJiBjYWxsZWQgPT09IDI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-8-b-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi04LWItMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtICB3aGlsZSBsb29wIGlzIGJyZWFrZW4gb25jZSAna1ByZXNlbnQnIGlzIHRydWUiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGNhbGxlZCA9IDA7DQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIHZhciBmaXJzdENhbGxlZCA9IDA7DQogICAgICAgIHZhciBzZWNvbmRDYWxsZWQgPSAwOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgdmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGNhbGxlZCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAoaWR4ID09PSAxKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNhbGxlZCsrOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFssICwgLCBdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZmlyc3RDYWxsZWQrKzsNCiAgICAgICAgICAgICAgICByZXR1cm4gOTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjIiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBzZWNvbmRDYWxsZWQrKzsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIGFyci5yZWR1Y2VSaWdodChjYWxsYmFja2ZuKTsNCg0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdCAmJiBmaXJzdENhbGxlZCA9PT0gMSAmJiBzZWNvbmRDYWxsZWQgPT09IDE7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-8-b-ii-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpLTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi04LWItaWktMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGFkZGVkIHByb3BlcnRpZXMgaW4gc3RlcCAyIGFyZSB2aXNpYmxlIGhlcmUiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgeyB9DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImxlbmd0aCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIG9ialsyXSA9ICJhY2N1bXVsYXRvciI7DQogICAgICAgICAgICAgICAgcmV0dXJuIDM7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQuY2FsbChvYmosIGNhbGxiYWNrZm4pID09PSAiYWNjdW11bGF0b3IiOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-8-b-ii-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpLTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi04LWItaWktMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGRlbGV0ZWQgcHJvcGVydGllcyBpbiBzdGVwIDIgYXJlIHZpc2libGUgaGVyZSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgb2JqID0geyAyOiAiYWNjdW11bGF0b3IiLCAzOiAiYW5vdGhlciIgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAibGVuZ3RoIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIG9ialsyXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gNTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgcmV0dXJuICJhY2N1bXVsYXRvciIgIT09IEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodC5jYWxsKG9iaiwgZnVuY3Rpb24gKCkgeyB9KTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-8-b-iii-1-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi04LWItaWlpLTEtMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAocHJldlZhbCA9PT0gMSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyAwOiAwLCAxOiAxLCBsZW5ndGg6IDIgfTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQuY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.4.4.22-8-b-iii-1-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTEwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOC1iLWlpaS0xLTEwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDIpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKGN1clZhbCA9PT0gMik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWzAsIDEsICwgM107DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjIiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMjsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgYXJyLnJlZHVjZVJpZ2h0KGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-8-b-iii-1-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTExIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOC1iLWlpaS0xLTExLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAocHJldlZhbCA9PT0gIjIwIik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7IDA6IDAsIDE6IDEsIDI6IDIgfTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZC5sZW5ndGggPSAzOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjaGlsZCwgIjIiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gIjIwIjsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0LmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-8-b-iii-1-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTEyIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOC1iLWlpaS0xLTEyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHByZXZWYWwgPT09ICIyMCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVsyXSA9IDI7DQogICAgICAgICAgICB2YXIgYXJyID0gWzAsIDFdOw0KDQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMiIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIyMCI7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICBhcnIucmVkdWNlUmlnaHQoY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCg0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsyXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-8-b-iii-1-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTEzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOC1iLWlpaS0xLTEzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIA0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHByZXZWYWwgPT09ICIyMCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHByb3RvID0geyAwOiAwLCAxOiAxIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAiMiIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAyOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZC5sZW5ndGggPSAzOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjaGlsZCwgIjIiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gIjIwIjsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0LmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-8-b-iii-1-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTE0IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOC1iLWlpaS0xLTE0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChwcmV2VmFsID09PSAiMjAiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMiIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDI7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICB2YXIgYXJyID0gWzAsIDEsICwgXTsNCg0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjIiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAiMjAiOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgYXJyLnJlZHVjZVJpZ2h0KGNhbGxiYWNrZm4pOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQoNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMl07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-8-b-iii-1-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTE1IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOC1iLWlpaS0xLTE1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAocHJldlZhbCA9PT0gMik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7IDA6IDAsIDE6IDEgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICIyIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDI7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQogICAgICAgIGNoaWxkLmxlbmd0aCA9IDM7DQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0LmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-8-b-iii-1-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTE2IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOC1iLWlpaS0xLTE2LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAocHJldlZhbCA9PT0gMik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjIiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAyOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgdmFyIGFyciA9IFswLCAxLCAsIF07DQoNCiAgICAgICAgICAgIGFyci5yZWR1Y2VSaWdodChjYWxsYmFja2ZuKTsNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KDQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzJdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmICFbLCAxXS5oYXNPd25Qcm9wZXJ0eSgwKSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-8-b-iii-1-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTE3IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOC1iLWlpaS0xLTE3LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9ICh0eXBlb2YgcHJldlZhbCA9PT0gInVuZGVmaW5lZCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMDogMCwgMTogMSwgbGVuZ3RoOiAzIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjIiLCB7DQogICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQuY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-8-b-iii-1-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTE4IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOC1iLWlpaS0xLTE4LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9ICh0eXBlb2YgcHJldlZhbCA9PT0gInVuZGVmaW5lZCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFswLCAxXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMiIsIHsNCiAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIGFyci5yZWR1Y2VSaWdodChjYWxsYmFja2ZuKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQoNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-8-b-iii-1-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTE5IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOC1iLWlpaS0xLTE5LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAodHlwZW9mIHByZXZWYWwgPT09ICJ1bmRlZmluZWQiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QucHJvdG90eXBlWzJdID0gMjsNCg0KICAgICAgICAgICAgdmFyIG9iaiA9IHsgMDogMCwgMTogMSwgbGVuZ3RoOiAzIH07DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMiIsIHsNCiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQuY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZVsyXTsNCiAgICAgICAgfQ0KDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-8-b-iii-1-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi04LWItaWlpLTEtMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAocHJldlZhbCA9PT0gMik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWzAsIDEsIDJdOw0KDQogICAgICAgIGFyci5yZWR1Y2VSaWdodChjYWxsYmFja2ZuKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.4.4.22-8-b-iii-1-20"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTIwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOC1iLWlpaS0xLTIwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgb3duIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAodHlwZW9mIHByZXZWYWwgPT09ICJ1bmRlZmluZWQiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGVbMl0gPSAyOw0KICAgICAgICAgICAgdmFyIGFyciA9IFswLCAxXTsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIyIiwgew0KICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIGFyci5yZWR1Y2VSaWdodChjYWxsYmFja2ZuKTsNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KDQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzJdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-8-b-iii-1-21"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTIxIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOC1iLWlpaS0xLTIxLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9ICh0eXBlb2YgcHJldlZhbCA9PT0gInVuZGVmaW5lZCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHByb3RvID0geyAwOiAwLCAxOiAxIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAiMiIsIHsNCiAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQogICAgICAgIGNoaWxkLmxlbmd0aCA9IDM7DQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0LmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCg0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.4.4.22-8-b-iii-1-22"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTIyIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOC1iLWlpaS0xLTIyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZWxlbWVudCB0byBiZSByZXRyaWV2ZWQgaXMgaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXQgZnVuY3Rpb24gb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9ICh0eXBlb2YgcHJldlZhbCA9PT0gInVuZGVmaW5lZCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICIyIiwgew0KICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkgeyB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHZhciBhcnIgPSBbMCwgMSwgLCBdOw0KDQogICAgICAgICAgICBhcnIucmVkdWNlUmlnaHQoY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCg0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsyXTsNCiAgICAgICAgfQ0KDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmICFbLCAxXS5oYXNPd25Qcm9wZXJ0eSgwKSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-8-b-iii-1-23"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTIzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOC1iLWlpaS0xLTIzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gVGhpcyBvYmplY3QgaXMgdGhlIGdsb2JhbCBvYmplY3Qgd2hpY2ggY29udGFpbnMgaW5kZXggcHJvcGVydHkiLA0KICAgIA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChwcmV2VmFsID09PSAyKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICB2YXIgb2xkTGVuID0gZm5HbG9iYWxPYmplY3QoKS5sZW5ndGg7DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpWzBdID0gMDsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KClbMV0gPSAxOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKVsyXSA9IDI7DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aCA9IDM7DQoNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodC5jYWxsKGZuR2xvYmFsT2JqZWN0KCksIGNhbGxiYWNrZm4pOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQoNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBmbkdsb2JhbE9iamVjdCgpWzBdOw0KICAgICAgICAgICAgZGVsZXRlIGZuR2xvYmFsT2JqZWN0KClbMV07DQogICAgICAgICAgICBkZWxldGUgZm5HbG9iYWxPYmplY3QoKVsyXTsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KCkubGVuZ3RoID0gb2xkTGVuOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.4.4.22-8-b-iii-1-25"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTI1IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOC1iLWlpaS0xLTI1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gVGhpcyBvYmplY3QgaXMgdGhlIEFyZ3VtZW50cyBvYmplY3Qgd2hpY2ggaW1wbGVtZW50cyBpdHMgb3duIHByb3BlcnR5IGdldCBtZXRob2QgKG51bWJlciBvZiBhcmd1bWVudHMgaXMgbGVzcyB0aGFuIG51bWJlciBvZiBwYXJhbWV0ZXJzKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHByZXZWYWwgPT09IDEpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGZ1bmMgPSBmdW5jdGlvbiAoYSwgYiwgYykgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0LmNhbGwoYXJndW1lbnRzLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgfTsNCg0KICAgICAgICBmdW5jKDAsIDEpOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-8-b-iii-1-26"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTI2IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOC1iLWlpaS0xLTI2LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gVGhpcyBvYmplY3QgaXMgdGhlIEFyZ3VtZW50cyBvYmplY3Qgd2hpY2ggaW1wbGVtZW50cyBpdHMgb3duIHByb3BlcnR5IGdldCBtZXRob2QgKG51bWJlciBvZiBhcmd1bWVudHMgZXF1YWxzIG51bWJlciBvZiBwYXJhbWV0ZXJzKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHByZXZWYWwgPT09IDIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGZ1bmMgPSBmdW5jdGlvbiAoYSwgYiwgYykgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0LmNhbGwoYXJndW1lbnRzLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgfTsNCg0KICAgICAgICBmdW5jKDAsIDEsIDIpOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-8-b-iii-1-27"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTI3IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOC1iLWlpaS0xLTI3LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gVGhpcyBvYmplY3QgaXMgdGhlIEFyZ3VtZW50cyBvYmplY3Qgd2hpY2ggaW1wbGVtZW50cyBpdHMgb3duIHByb3BlcnR5IGdldCBtZXRob2QgKG51bWJlciBvZiBhcmd1bWVudHMgaXMgZ3JlYXRlciB0aGFuIG51bWJlciBvZiBwYXJhbWV0ZXJzKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDIpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHByZXZWYWwgPT09IDMpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGZ1bmMgPSBmdW5jdGlvbiAoYSwgYiwgYykgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0LmNhbGwoYXJndW1lbnRzLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgfTsNCg0KICAgICAgICBmdW5jKDAsIDEsIDIsIDMpOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-8-b-iii-1-28"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTI4IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOC1iLWlpaS0xLTI4LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IGFwcGxpZWQgdG8gU3RyaW5nIG9iamVjdCwgd2hpY2ggaW1wbGVtZW50cyBpdHMgb3duIHByb3BlcnR5IGdldCBtZXRob2QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChwcmV2VmFsID09PSAiMiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHN0ciA9IG5ldyBTdHJpbmcoIjAxMiIpOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodC5jYWxsKHN0ciwgY2FsbGJhY2tmbik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-8-b-iii-1-29"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTI5IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOC1iLWlpaS0xLTI5LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IGFwcGxpZWQgdG8gRnVuY3Rpb24gb2JqZWN0IHdoaWNoIGltcGxlbWVudHMgaXRzIG93biBwcm9wZXJ0eSBnZXQgbWV0aG9kIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAocHJldlZhbCA9PT0gMik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0gZnVuY3Rpb24gKGEsIGIsIGMpIHsNCiAgICAgICAgICAgIHJldHVybiBhICsgYiArIGM7DQogICAgICAgIH07DQoNCiAgICAgICAgb2JqWzBdID0gMDsNCiAgICAgICAgb2JqWzFdID0gMTsNCiAgICAgICAgb2JqWzJdID0gMjsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQuY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCg0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-8-b-iii-1-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi04LWItaWlpLTEtMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBkYXRhIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAocHJldlZhbCA9PT0gIjIwIik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7IDA6IDAsIDE6IDEsIDI6IDIsIGxlbmd0aDogMiB9Ow0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZFsxXSA9ICIxMCI7DQogICAgICAgIGNoaWxkWzJdID0gIjIwIjsNCiAgICAgICAgY2hpbGQubGVuZ3RoID0gMzsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQuY2FsbChjaGlsZCwgY2FsbGJhY2tmbik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.4.4.22-8-b-iii-1-30"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTMwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOC1iLWlpaS0xLTMwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZWxlbWVudCBjaGFuZ2VkIGJ5IGdldHRlciBvbiBjdXJyZW50IGl0ZXJhdGlvbiBpcyBvYnNlcnZlZCBpbiBzdWJzZXF1ZW50IGl0ZXJhdGlvbnMgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAoY3VyVmFsID09PSAxICYmIHByZXZWYWwgPT09IDIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFswXTsNCiAgICAgICAgdmFyIHByZUl0ZXJWaXNpYmxlID0gZmFsc2U7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBpZiAocHJlSXRlclZpc2libGUpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIyMCI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMiIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHByZUl0ZXJWaXNpYmxlID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMjsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgYXJyLnJlZHVjZVJpZ2h0KGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-8-b-iii-1-31"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTMxIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOC1iLWlpaS0xLTMxLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZWxlbWVudCBjaGFuZ2VkIGJ5IGdldHRlciBvbiBjdXJyZW50IGl0ZXJhdGlvbiBpcyBvYnNlcnZlZCBzdWJzZXF1ZXRseSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChwcmV2VmFsID09PSAyICYmIGN1clZhbCA9PT0gMSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyAwOiAwLCBsZW5ndGg6IDMgfTsNCiAgICAgICAgdmFyIHByZUl0ZXJWaXNpYmxlID0gZmFsc2U7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBpZiAocHJlSXRlclZpc2libGUpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIyMCI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMiIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHByZUl0ZXJWaXNpYmxlID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMjsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0LmNhbGwob2JqLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-8-b-iii-1-32"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTMyIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOC1iLWlpaS0xLTMyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gRXhjZXB0aW9uIGluIGdldHRlciB0ZXJtaW5hdGUgaXRlcmF0aW9uIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPD0gMSkgew0KICAgICAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IDA6IDAsIDE6IDEsIGxlbmd0aDogMyB9Ow0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMiIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCJ1bmhhbmRsZSBleGNlcHRpb24gaGFwcGVuZWQgaW4gZ2V0dGVyIik7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQuY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChleCkgew0KICAgICAgICAgICAgcmV0dXJuIChleCBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpICYmICFhY2Nlc3NlZDsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-8-b-iii-1-33"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTMzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOC1iLWlpaS0xLTMzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gRXhjZXB0aW9uIGluIGdldHRlciB0ZXJtaW5hdGUgaXRlcmF0aW9uIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPD0gMSkgew0KICAgICAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbMCwgMV07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjIiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcigidW5oYW5kbGUgZXhjZXB0aW9uIGhhcHBlbmVkIGluIGdldHRlciIpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgYXJyLnJlZHVjZVJpZ2h0KGNhbGxiYWNrZm4pOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChleCkgew0KICAgICAgICAgICAgcmV0dXJuIChleCBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpICYmICFhY2Nlc3NlZDsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-8-b-iii-1-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi04LWItaWlpLTEtNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBkYXRhIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAocHJldlZhbCA9PT0gMik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzJdID0gIjExIjsNCiAgICAgICAgICAgIFswLCAxLCAyXS5yZWR1Y2VSaWdodChjYWxsYmFja2ZuKTsNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KDQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzJdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-8-b-iii-1-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi04LWItaWlpLTEtNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBkYXRhIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHByZXZWYWwgPT09ICIyMCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHByb3RvID0ge307DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAiMiIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAxMTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb24oKTsNCiAgICAgICAgY2hpbGQubGVuZ3RoID0gMzsNCiAgICAgICAgY2hpbGRbMF0gPSAiMCI7DQogICAgICAgIGNoaWxkWzFdID0gIjEiOw0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICIyIiwgew0KICAgICAgICAgICAgdmFsdWU6ICIyMCIsDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0LmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-8-b-iii-1-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi04LWItaWlpLTEtNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBkYXRhIHByb3BlcnR5IHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHByZXZWYWwgPT09IDIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICIyIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gIjIiOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIFswLCAxLCAyXS5yZWR1Y2VSaWdodChjYWxsYmFja2ZuKTsNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KDQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzJdOw0KICAgICAgICB9DQoNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-8-b-iii-1-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi04LWItaWlpLTEtNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIGluaGVyaXRlZCBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAocHJldlZhbCA9PT0gMik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7IDA6IDAsIDE6IDEsIDI6IDIsIGxlbmd0aDogMyB9Ow0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodC5jYWxsKGNoaWxkLCBjYWxsYmFja2ZuKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-8-b-iii-1-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi04LWItaWlpLTEtOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIGluaGVyaXRlZCBkYXRhIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAocHJldlZhbCA9PT0gMik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzBdID0gMDsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVsxXSA9IDE7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGVbMl0gPSAyOw0KICAgICAgICAgICAgWywgLCAsXS5yZWR1Y2VSaWdodChjYWxsYmFja2ZuKTsNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KDQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzBdOw0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMl07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmICFbLCAxXS5oYXNPd25Qcm9wZXJ0eSgwKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-8-b-iii-1-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOC1iLWlpaS0xLTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi04LWItaWlpLTEtOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHByZXZWYWwgPT09IDIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMDogMCwgMTogMSwgbGVuZ3RoOiAzIH07DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIyIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDI7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodC5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-8-c-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIyLTgtYy0xIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi04LWMtMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IHRocm93cyBUeXBlRXJyb3Igd2hlbiBBcnJheSBpcyBlbXB0eSBhbmQgaW5pdGlhbFZhbHVlIGlzIG5vdCBwcmVzZW50IiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7IA0KIA0KICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopDQogIHsNCiAgfQ0KDQogIHZhciBhcnIgPSBuZXcgQXJyYXkoMTApOw0KICB0cnkgew0KICAgIGFyci5yZWR1Y2VSaWdodChjYWxsYmFja2ZuKTsNCiAgfSANCiAgY2F0Y2goZSkgew0KICAgIGlmKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpDQogICAgICByZXR1cm4gdHJ1ZTsgIA0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.22-8-c-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIyLTgtYy0yIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi04LWMtMi5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IHRocm93cyBUeXBlRXJyb3Igd2hlbiBlbGVtZW50cyBhc3NpZ25lZCB2YWx1ZXMgYXJlIGRlbGV0ZWQgYnkgcmVkdWNpZ24gYXJyYXkgbGVuZ3RoIGFuZCBpbml0aWFsVmFsdWUgaXMgbm90IHByZXNlbnQiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsgDQogDQogIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikNCiAgew0KICB9DQoNCiAgdmFyIGFyciA9IG5ldyBBcnJheSgxMCk7DQogIGFycls5XSA9IDE7DQogIGFyci5sZW5ndGggPSA1Ow0KICB0cnkgew0KICAgIGFyci5yZWR1Y2VSaWdodChjYWxsYmFja2ZuKTsNCiAgfSANCiAgY2F0Y2goZSkgew0KICAgIGlmKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpDQogICAgICByZXR1cm4gdHJ1ZTsgIA0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.22-8-c-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIyLTgtYy0zIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi04LWMtMy5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IHRocm93cyBUeXBlRXJyb3Igd2hlbiBlbGVtZW50cyBhc3NpZ25lZCB2YWx1ZXMgYXJlIGRlbGV0ZWQgYW5kIGluaXRpYWxWYWx1ZSBpcyBub3QgcHJlc2VudCIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgeyANCiANCiAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKQ0KICB7DQogIH0NCg0KICB2YXIgYXJyID0gWzEsMiwzLDQsNV07DQogIGRlbGV0ZSBhcnJbMF07DQogIGRlbGV0ZSBhcnJbMV07DQogIGRlbGV0ZSBhcnJbMl07DQogIGRlbGV0ZSBhcnJbM107DQogIGRlbGV0ZSBhcnJbNF07DQogIHRyeSB7DQogICAgYXJyLnJlZHVjZVJpZ2h0KGNhbGxiYWNrZm4pOw0KICB9IA0KICBjYXRjaChlKSB7DQogICAgaWYoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikNCiAgICAgIHJldHVybiB0cnVlOyAgDQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCk7DQogfQ0KfSk7DQo=]]></test>
@ -131,21 +157,71 @@
<test id="15.4.4.22-9-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIyLTktNCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS00LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgZG9lc24ndCBjb25zaWRlciB1bnZpc2l0ZWQgZGVsZXRlZCBlbGVtZW50cyB3aGVuIEFycmF5Lmxlbmd0aCBpcyBkZWNyZWFzZWQiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsgDQogDQogIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikNCiAgew0KICAgIGFyci5sZW5ndGggPSAyOw0KICAgIHJldHVybiBwcmV2VmFsICsgY3VyVmFsOw0KICB9DQoNCiAgdmFyIGFyciA9IFsxLDIsMyw0LDVdOw0KICBpZihhcnIucmVkdWNlUmlnaHQoY2FsbGJhY2tmbikgPT09IDEyICkNCiAgICByZXR1cm4gdHJ1ZTsgIA0KICANCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIyLTktNSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS01LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgLSBjYWxsYmFja2ZuIG5vdCBjYWxsZWQgZm9yIGFycmF5IHdpdGggb25lIGVsZW1lbnQiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsgDQogDQogIHZhciBjYWxsQ250ID0gMDsNCiAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKQ0KICB7DQogICAgY2FsbENudCsrOw0KICAgIHJldHVybiAyOw0KICB9DQoNCiAgdmFyIGFyciA9IFsxXTsNCiAgaWYoYXJyLnJlZHVjZVJpZ2h0KGNhbGxiYWNrZm4pID09PSAxICYmIGNhbGxDbnQgPT09IDAgKQ0KICAgIHJldHVybiB0cnVlOyAgICANCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIyLTktNiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS02LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgdmlzaXRzIGRlbGV0ZWQgZWxlbWVudCBpbiBhcnJheSBhZnRlciB0aGUgY2FsbCB3aGVuIHNhbWUgaW5kZXggaXMgYWxzbyBwcmVzZW50IGluIHByb3RvdHlwZSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgeyANCiANCiAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSAgDQogIHsNCiAgICBkZWxldGUgYXJyWzFdOw0KICAgIGRlbGV0ZSBhcnJbMl07DQogICAgcmV0dXJuIHByZXZWYWwgKyBjdXJWYWw7ICAgIA0KICB9DQogIEFycmF5LnByb3RvdHlwZVsyXSA9IDY7DQogIHZhciBhcnIgPSBbJzEnLDIsMyw0LDVdOw0KICB2YXIgcmVzID0gYXJyLnJlZHVjZVJpZ2h0KGNhbGxiYWNrZm4pOw0KICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzJdOw0KDQogIGlmKHJlcyA9PT0gIjE1MSIgKSAgICAvL29uZSBlbGVtZW50IGRlbGV0ZWQNCiAgICByZXR1cm4gdHJ1ZTsgIA0KICANCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNC40LjIyLTktNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjIvMTUuNC40LjIyLTktNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCBub3QgYWZmZWN0IGNhbGwgd2hlbiB0aGUgYXJyYXkgaXMgZGVsZXRlZCBkdXJpbmcgdGhlIGNhbGwiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgZGVsZXRlIG8uYXJyOw0KICAgICAgICAgICAgcmV0dXJuIHByZXZWYWwgKyBjdXJWYWw7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgbyA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgby5hcnIgPSBbJzEnLCAyLCAzLCA0LCA1XTsNCiAgICAgICAgcmV0dXJuIG8uYXJyLnJlZHVjZVJpZ2h0KGNhbGxiYWNrZm4pID09PSAiMTQxIiAmJiAhby5oYXNPd25Qcm9wZXJ0eSgiYXJyIik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.4.4.22-9-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS04IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS04LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gbm8gb2JzZXJ2YWJsZSBlZmZlY3RzIG9jY3VyIGlmICdsZW4nIGlzIDAiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4oKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyBsZW5ndGg6IDAgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiNSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodC5jYWxsKG9iaiwgZnVuY3Rpb24gKCkgeyB9LCAiaW5pdGlhbFZhbHVlIik7DQogICAgICAgIHJldHVybiAhYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS05IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS05LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gbW9kaWZpY2F0aW9ucyB0byBsZW5ndGggd2lsbCBjaGFuZ2UgbnVtYmVyIG9mIGl0ZXJhdGlvbnMiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBjYWxsZWQgPSAwOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZVZhbCwgdmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgY2FsbGVkKys7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWzAsIDEsIDIsIDNdOw0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiNCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGFyci5sZW5ndGggPSAyOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBhcnIucmVkdWNlUmlnaHQoY2FsbGJhY2tmbiwgImluaXRpYWxWYWx1ZSIpOw0KDQogICAgICAgIHJldHVybiBjYWxsZWQgPT09IDM7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-9-b-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIyLTktYi0xIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWItMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IHJldHVybnMgaW5pdGlhbHZhbHVlIHdoZW4gQXJyYXkgaXMgZW1wdHkgYW5kIGluaXRpYWxWYWx1ZSBpcyBub3QgcHJlc2VudCIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgeyANCiANCiAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKQ0KICB7DQogIH0NCg0KICB2YXIgYXJyID0gbmV3IEFycmF5KDEwKTsNCiAgDQogIGlmKGFyci5yZWR1Y2VSaWdodChjYWxsYmFja2ZuLDUpID09PSA1KQ0KICAgIHJldHVybiB0cnVlOyAgDQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.22-9-b-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTEwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1iLTEwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZGVsZXRpbmcgcHJvcGVydHkgb2YgcHJvdG90eXBlIGluIHN0ZXAgOCBjYXVzZXMgZGVsZXRlZCBpbmRleCBwcm9wZXJ0eSBub3QgdG8gYmUgdmlzaXRlZCBvbiBhbiBBcnJheS1saWtlIE9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSB0cnVlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJlVmFsLCB2YWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAzKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMjogMiwgbGVuZ3RoOiAyMCB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICI1Iiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbM107DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QucHJvdG90eXBlWzNdID0gMTsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodC5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdCAmJiBhY2Nlc3NlZDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlWzNdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-b-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTExIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1iLTExLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZGVsZXRpbmcgcHJvcGVydHkgb2YgcHJvdG90eXBlIGluIHN0ZXAgOCBjYXVzZXMgZGVsZXRlZCBpbmRleCBwcm9wZXJ0eSBub3QgdG8gYmUgdmlzaXRlZCBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSB0cnVlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbMCwgLCAsIF07DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIzIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVsxXSA9IDE7DQogICAgICAgICAgICBhcnIucmVkdWNlUmlnaHQoY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdCAmJiBhY2Nlc3NlZDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgIVssIDFdLmhhc093blByb3BlcnR5KDApICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-9-b-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTEyIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1iLTEyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZGVsZXRpbmcgb3duIHByb3BlcnR5IHdpdGggcHJvdG90eXBlIHByb3BlcnR5IGluIHN0ZXAgOCBjYXVzZXMgcHJvdG90eXBlIGluZGV4IHByb3BlcnR5IHRvIGJlIHZpc2l0ZWQgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEgJiYgY3VyVmFsID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyAwOiAwLCAxOiAxMTEsIGxlbmd0aDogMTAgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiNCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGRlbGV0ZSBvYmpbMV07DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QucHJvdG90eXBlWzFdID0gMTsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodC5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlWzFdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-b-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTEzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1iLTEzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZGVsZXRpbmcgb3duIHByb3BlcnR5IHdpdGggcHJvdG90eXBlIHByb3BlcnR5IGluIHN0ZXAgOCBjYXVzZXMgcHJvdG90eXBlIGluZGV4IHByb3BlcnR5IHRvIGJlIHZpc2l0ZWQgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEgJiYgY3VyVmFsID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgdmFyIGFyciA9IFswLCAxMTFdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIyIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIGFyclsxXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVsxXSA9IDE7DQogICAgICAgICAgICBhcnIucmVkdWNlUmlnaHQoY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-9-b-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTE0IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1iLTE0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZGVjcmVhc2luZyBsZW5ndGggb2YgYXJyYXkgaW4gc3RlcCA4IGNhdXNlcyBkZWxldGVkIGluZGV4IHByb3BlcnR5IG5vdCB0byBiZSB2aXNpdGVkIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IHRydWU7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAyKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFswLCAxLCAyLCAzXTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMyIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGFyci5sZW5ndGggPSAyOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBhcnIucmVkdWNlUmlnaHQoY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQgJiYgYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-9-b-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTE1IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1iLTE1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZGVjcmVhc2luZyBsZW5ndGggb2YgYXJyYXkgd2l0aCBwcm90b3R5cGUgcHJvcGVydHkgaW4gc3RlcCA4IGNhdXNlcyBwcm90b3R5cGUgaW5kZXggcHJvcGVydHkgdG8gYmUgdmlzaXRlZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMiAmJiBjdXJWYWwgPT09ICJwcm90b3R5cGUiKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgdmFyIGFyciA9IFswLCAxLCAyLCAzXTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjIiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAicHJvdG90eXBlIjsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIzIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICBhcnIubGVuZ3RoID0gMjsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICBhcnIucmVkdWNlUmlnaHQoY2FsbGJhY2tmbik7DQoNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsyXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-b-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTE2IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1iLTE2LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZGVjcmVhc2luZyBsZW5ndGggb2YgYXJyYXkgaW4gc3RlcCA4IGRvZXMgbm90IGRlbGV0ZSBub24tY29uZmlndXJhYmxlIHByb3BlcnRpZXMiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDIgJiYgY3VyVmFsID09PSAidW5jb25maWd1cmFibGUiKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWzAsIDEsIDIsIDNdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIyIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuICJ1bmNvbmZpZ3VyYWJsZSI7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMyIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGFyci5sZW5ndGggPSAyOw0KICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBhcnIucmVkdWNlUmlnaHQoY2FsbGJhY2tmbik7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-9-b-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTE3IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1iLTE3LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gcHJvcGVydGllcyBhZGRlZCBpbnRvIG93biBvYmplY3QgYXJlIHZpc2l0ZWQgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDAgJiYgY3VyVmFsID09PSAwKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyBsZW5ndGg6IDIgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIwIiwgew0KICAgICAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0LmNhbGwob2JqLCBjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-9-b-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTE4IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1iLTE4LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gcHJvcGVydGllcyBhZGRlZCBpbnRvIG93biBvYmplY3QgYXJlIHZpc2l0ZWQgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEgJiYgY3VyVmFsID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWzAsICwgMl07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjIiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIGFyci5yZWR1Y2VSaWdodChjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-b-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTE5IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1iLTE5LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gcHJvcGVydGllcyBhZGRlZCB0byBwcm90b3R5cGUgYXJlIHZpc2l0ZWQgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEgJiYgY3VyVmFsID09PSA2Ljk5KSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyBsZW5ndGg6IDYgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMiIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QucHJvdG90eXBlLCAiMSIsIHsNCiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gNi45OTsNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQuY2FsbChvYmosIGNhbGxiYWNrZm4sICJpbml0aWFsVmFsdWUiKTsNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-9-b-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWItMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGFkZGVkIHByb3BlcnRpZXMgaW4gc3RlcCAyIGFyZSB2aXNpYmxlIGhlcmUiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDIgJiYgY3VyVmFsID09PSAiMiIpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7fTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAibGVuZ3RoIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgb2JqWzJdID0gIjIiOw0KICAgICAgICAgICAgICAgIHJldHVybiAzOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQuY2FsbChvYmosIGNhbGxiYWNrZm4sICJpbml0aWFsVmFsdWUiKTsNCg0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-9-b-20"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTIwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1iLTIwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gcHJvcGVydGllcyBhZGRlZCB0byBwcm90b3R5cGUgY2FuIGJlIHZpc2l0ZWQgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEgJiYgY3VyVmFsID09PSA2Ljk5KSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWzAsICwgMl07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjIiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMSIsIHsNCiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gNi45OTsNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBhcnIucmVkdWNlUmlnaHQoY2FsbGJhY2tmbiwgImluaXRpYWxWYWx1ZSIpOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzFdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmICFbLCAxXS5oYXNPd25Qcm9wZXJ0eSgwKSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-b-21"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTIxIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1iLTIxLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZGVsZXRpbmcgb3duIHByb3BlcnR5IGNhdXNlcyBkZWxldGVkIGluZGV4IHByb3BlcnR5IG5vdCB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IHRydWU7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMDogMTAsIGxlbmd0aDogMTAgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiA2Ljk5Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiNSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGRlbGV0ZSBvYmpbMV07DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodC5jYWxsKG9iaiwgY2FsbGJhY2tmbiwgImluaXRpYWxWYWx1ZSIpOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdCAmJiBhY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-9-b-22"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTIyIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1iLTIyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZGVsZXRpbmcgb3duIHByb3BlcnR5IGNhdXNlcyBkZWxldGVkIGluZGV4IHByb3BlcnR5IG5vdCB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IHRydWU7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFsxLCAyLCA0XTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAiNi45OSI7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIyIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIGFyclsxXTsNCiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgYXJyLnJlZHVjZVJpZ2h0KGNhbGxiYWNrZm4sICJpbml0aWFsVmFsdWUiKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQgJiYgYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-9-b-23"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTIzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1iLTIzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZGVsZXRpbmcgcHJvcGVydHkgb2YgcHJvdG90eXBlIGNhdXNlcyBkZWxldGVkIGluZGV4IHByb3BlcnR5IG5vdCB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5LWxpa2UgT2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IHRydWU7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAzKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMjogMiwgbGVuZ3RoOiAyMCB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICI1Iiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbM107DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QucHJvdG90eXBlWzNdID0gMTsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodC5jYWxsKG9iaiwgY2FsbGJhY2tmbiwgImluaXRpYWxWYWx1ZSIpOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQgJiYgYWNjZXNzZWQ7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZVszXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-9-b-24"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTI0IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1iLTI0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZGVsZXRpbmcgcHJvcGVydHkgb2YgcHJvdG90eXBlIGNhdXNlcyBkZWxldGVkIGluZGV4IHByb3BlcnR5IG5vdCB0byBiZSB2aXNpdGVkIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IHRydWU7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFswLCAsICwgXTsNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjMiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzFdOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzFdID0gMTsNCiAgICAgICAgICAgIGFyci5yZWR1Y2VSaWdodChjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdCAmJiBhY2Nlc3NlZDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgIVssIDFdLmhhc093blByb3BlcnR5KDApICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-9-b-25"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTI1IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1iLTI1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZGVsZXRpbmcgb3duIHByb3BlcnR5IHdpdGggcHJvdG90eXBlIHByb3BlcnR5IGNhdXNlcyBwcm90b3R5cGUgaW5kZXggcHJvcGVydHkgdG8gYmUgdmlzaXRlZCBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSAmJiBjdXJWYWwgPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IDA6IDAsIDE6IDExMSwgNDogMTAsIGxlbmd0aDogMTAgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiNCIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGRlbGV0ZSBvYmpbMV07DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QucHJvdG90eXBlWzFdID0gMTsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodC5jYWxsKG9iaiwgY2FsbGJhY2tmbiwgImluaXRpYWxWYWx1ZSIpOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-9-b-26"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTI2IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1iLTI2LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZGVsZXRpbmcgb3duIHByb3BlcnR5IHdpdGggcHJvdG90eXBlIHByb3BlcnR5IGNhdXNlcyBwcm90b3R5cGUgaW5kZXggcHJvcGVydHkgdG8gYmUgdmlzaXRlZCBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSAmJiBjdXJWYWwgPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB2YXIgYXJyID0gWzAsIDExMV07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjIiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgYXJyWzFdOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzFdID0gMTsNCiAgICAgICAgICAgIGFyci5yZWR1Y2VSaWdodChjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-9-b-27"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTI3IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1iLTI3LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZGVjcmVhc2luZyBsZW5ndGggb2YgYXJyYXkgY2F1c2VzIGRlbGV0ZWQgaW5kZXggcHJvcGVydHkgbm90IHRvIGJlIHZpc2l0ZWQiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gdHJ1ZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDIpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWzAsIDEsIDIsIDNdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIzIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgYXJyLmxlbmd0aCA9IDI7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIGFyci5yZWR1Y2VSaWdodChjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQgJiYgYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-9-b-28"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTI4IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1iLTI4LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZGVjcmVhc2luZyBsZW5ndGggb2YgYXJyYXkgd2l0aCBwcm90b3R5cGUgcHJvcGVydHkgY2F1c2VzIHByb3RvdHlwZSBpbmRleCBwcm9wZXJ0eSB0byBiZSB2aXNpdGVkIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAyICYmIGN1clZhbCA9PT0gInByb3RvdHlwZSIpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB2YXIgYXJyID0gWzAsIDEsIDIsIDNdOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMiIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJwcm90b3R5cGUiOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjMiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIGFyci5sZW5ndGggPSAyOw0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIGFyci5yZWR1Y2VSaWdodChjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQoNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsyXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-b-29"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTI5IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1iLTI5LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gZGVjcmVhc2luZyBsZW5ndGggb2YgYXJyYXkgZG9lcyBub3QgZGVsZXRlIG5vbi1jb25maWd1cmFibGUgcHJvcGVydGllcyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMiAmJiBjdXJWYWwgPT09ICJ1bmNvbmZpZ3VyYWJsZSIpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbMCwgMSwgMiwgM107DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjIiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gInVuY29uZmlndXJhYmxlIjsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIzIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgYXJyLmxlbmd0aCA9IDI7DQogICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIGFyci5yZWR1Y2VSaWdodChjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQoNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-9-b-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWItMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGRlbGV0ZWQgcHJvcGVydGllcyBpbiBzdGVwIDIgYXJlIHZpc2libGUgaGVyZSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSB0cnVlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJlVmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAyKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMjogIjIiLCAzOiAxMCB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJsZW5ndGgiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgb2JqWzJdOw0KICAgICAgICAgICAgICAgIHJldHVybiA1Ow0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQuY2FsbChvYmosIGNhbGxiYWNrZm4sICJpbml0aWFsVmFsdWUiKTsNCg0KICAgICAgICByZXR1cm4gYWNjZXNzZWQgJiYgdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-9-b-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWItNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIHByb3BlcnRpZXMgYWRkZWQgaW50byBvd24gb2JqZWN0IGluIHN0ZXAgOCBjYW4gYmUgdmlzaXRlZCBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJlVmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAwICYmIGN1clZhbCA9PT0gMCkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgbGVuZ3RoOiAyIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMCIsIHsNCiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodC5jYWxsKG9iaiwgY2FsbGJhY2tmbik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-9-b-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWItNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIHByb3BlcnRpZXMgYWRkZWQgaW50byBvd24gb2JqZWN0IGluIHN0ZXAgOCBjYW4gYmUgdmlzaXRlZCBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJlVmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxICYmIGN1clZhbCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFswLCAsIDJdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIyIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjEiLCB7DQogICAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBhcnIucmVkdWNlUmlnaHQoY2FsbGJhY2tmbik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-b-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWItNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIHByb3BlcnRpZXMgYWRkZWQgdG8gcHJvdG90eXBlIGluIHN0ZXAgOCB2aXNpdGVkIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmVWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEgJiYgY3VyVmFsID09PSA2Ljk5KSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyBsZW5ndGg6IDYgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMiIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QucHJvdG90eXBlLCAiMSIsIHsNCiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gNi45OTsNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQuY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-9-b-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWItNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIHByb3BlcnRpZXMgYWRkZWQgdG8gcHJvdG90eXBlIGluIHN0ZXAgOCB2aXNpdGVkIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmVWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEgJiYgY3VyVmFsID09PSA2Ljk5KSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWzAsICwgMl07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjIiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMSIsIHsNCiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gNi45OTsNCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBhcnIucmVkdWNlUmlnaHQoY2FsbGJhY2tmbik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgIVssIDFdLmhhc093blByb3BlcnR5KDApICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-9-b-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWItOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGRlbGV0aW5nIG93biBwcm9wZXJ0eSBpbiBzdGVwIDggY2F1c2VzIGRlbGV0ZWQgaW5kZXggcHJvcGVydHkgbm90IHRvIGJlIHZpc2l0ZWQgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gdHJ1ZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZVZhbCwgdmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IDA6IDEwLCBsZW5ndGg6IDEwIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gNi45OTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjUiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBkZWxldGUgb2JqWzFdOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQuY2FsbChvYmosIGNhbGxiYWNrZm4pOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdCAmJiBhY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-9-b-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1iLTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWItOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGRlbGV0aW5nIG93biBwcm9wZXJ0eSBpbiBzdGVwIDggY2F1c2VzIGRlbGV0ZWQgaW5kZXggcHJvcGVydHkgbm90IHRvIGJlIHZpc2l0ZWQgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gdHJ1ZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZVZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhcnIgPSBbMF07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gIjYuOTkiOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMiIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGRlbGV0ZSBhcnJbMV07DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIGFyci5yZWR1Y2VSaWdodChjYWxsYmFja2ZuKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQgJiYgYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-9-c-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIyLTktYy0xIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gY2FsbGJhY2tmbiBub3QgY2FsbGVkIGZvciBpbmRleGVzIG5ldmVyIGJlZW4gYXNzaWduZWQgdmFsdWVzIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7IA0KIA0KICB2YXIgY2FsbENudCA9IDA7DQogIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikNCiAgew0KICAgIGNhbGxDbnQrKzsNCiAgICByZXR1cm4gY3VyVmFsOw0KICB9DQoNCiAgdmFyIGFyciA9IG5ldyBBcnJheSgxMCk7DQogIGFyclswXSA9IGFyclsxXSA9IHVuZGVmaW5lZDsgLy9leHBsaWNpdGx5IGFzc2lnbmluZyBhIHZhbHVlDQogIGlmKCBhcnIucmVkdWNlUmlnaHQoY2FsbGJhY2tmbikgPT09IHVuZGVmaW5lZCAmJiBjYWxsQ250ID09PSAxKQ0KICAgIHJldHVybiB0cnVlOyAgICANCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-c-i-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjIvMTUuNC40LjIyLTktYy1pLTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDApIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKGN1clZhbCA9PT0gMCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyAwOiAwLCAxOiAxLCAyOiAyLCBsZW5ndGg6IDIgfTsNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0LmNhbGwob2JqLCBjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-c-i-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMTAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaS0xMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICANCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChjdXJWYWwgPT09IDEpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFswLCAsIDJdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIGFyci5yZWR1Y2VSaWdodChjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-c-i-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaS0xMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKGN1clZhbCA9PT0gIjEiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHsgMDogMCwgMTogMTEsIDI6IDIgfTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZC5sZW5ndGggPSAzOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjaGlsZCwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gIjEiOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQuY2FsbChjaGlsZCwgY2FsbGJhY2tmbiwgImluaXRpYWxWYWx1ZSIpOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-9-c-i-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaS0xMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIiBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGRhdGEgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIA0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKGN1clZhbCA9PT0gIjEiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGVbMV0gPSAxMTsNCiAgICAgICAgICAgIHZhciBhcnIgPSBbMCwgLDJdOw0KDQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIxIjsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIGFyci5yZWR1Y2VSaWdodChjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCg0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-c-i-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaS0xMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICANCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChjdXJWYWwgPT09ICIxIik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7IDA6IDAsIDI6IDJ9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQogICAgICAgIGNoaWxkLmxlbmd0aCA9IDM7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNoaWxkLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAiMSI7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodC5jYWxsKGNoaWxkLCBjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-9-c-i-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaS0xNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIiBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgYW4gaW5oZXJpdGVkIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAoY3VyVmFsID09PSAiMSIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICIxIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTE7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICB2YXIgYXJyID0gWzAsICwyXTsNCg0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjEiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAiMSI7DQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgYXJyLnJlZHVjZVJpZ2h0KGNhbGxiYWNrZm4sICJpbml0aWFsVmFsdWUiKTsNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KDQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzFdOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-9-c-i-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaS0xNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKGN1clZhbCA9PT0gMSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7IDA6IDAsIDI6IDIgfTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQogICAgICAgIGNoaWxkLmxlbmd0aCA9IDM7DQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0LmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4sICJpbml0aWFsVmFsdWUiKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-c-i-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaS0xNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKGN1clZhbCA9PT0gMSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgIjEiLCB7DQogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgdmFyIGFyciA9IFswLCAsIDJdOw0KDQogICAgICAgICAgICBhcnIucmVkdWNlUmlnaHQoY2FsbGJhY2tmbiwgImluaXRpYWxWYWx1ZSIpOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQoNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgIVssIDFdLmhhc093blByb3BlcnR5KDApICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uQXJyYXlzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-9-c-i-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaS0xNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAodHlwZW9mIGN1clZhbCA9PT0gInVuZGVmaW5lZCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMDogMCwgMjogMiwgbGVuZ3RoOiAzIH07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjEiLCB7DQogICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQuY2FsbChvYmosIGNhbGxiYWNrZm4sICJpbml0aWFsVmFsdWUiKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-c-i-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaS0xOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAodHlwZW9mIGN1clZhbCA9PT0gInVuZGVmaW5lZCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGFyciA9IFswLCAsIDJdOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIxIiwgew0KICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7IH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgYXJyLnJlZHVjZVJpZ2h0KGNhbGxiYWNrZm4sICJpbml0aWFsVmFsdWUiKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgICAgICANCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-9-c-i-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaS0xOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHR5cGVvZiBjdXJWYWwgPT09ICJ1bmRlZmluZWQiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QucHJvdG90eXBlWzFdID0gMTsNCg0KICAgICAgICAgICAgdmFyIG9iaiA9IHsgMDogMCwgMjogMiwgbGVuZ3RoOiAzIH07DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMSIsIHsNCiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQuY2FsbChvYmosIGNhbGxiYWNrZm4sICJpbml0aWFsVmFsdWUiKTsNCiAgICAgICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCg0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-9-c-i-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjIvMTUuNC40LjIyLTktYy1pLTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKGN1clZhbCA9PT0gMSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWzAsIDEsIDJdOw0KICAgICAgICBhcnIucmVkdWNlUmlnaHQoY2FsbGJhY2tmbiwgImluaXRpYWxWYWx1ZSIpOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.4.4.22-9-c-i-20"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMjAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaS0yMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIG93biBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIHRoYXQgb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHR5cGVvZiBjdXJWYWwgPT09ICJ1bmRlZmluZWQiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGVbMV0gPSAxOw0KICAgICAgICAgICAgdmFyIGFyciA9IFswLCAsMl07DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICBhcnIucmVkdWNlUmlnaHQoY2FsbGJhY2tmbiwgImluaXRpYWxWYWx1ZSIpOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQoNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25BcnJheXMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-9-c-i-21"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMjEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaS0yMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIG9uIGFuIEFycmF5LWxpa2Ugb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgIA0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHR5cGVvZiBjdXJWYWwgPT09ICJ1bmRlZmluZWQiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHsgMDogMCwgMjogMiB9Ow0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywgIjEiLCB7DQogICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZC5sZW5ndGggPSAzOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodC5jYWxsKGNoaWxkLCBjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KDQoNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-c-i-22"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMjIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaS0yMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGVsZW1lbnQgdG8gYmUgcmV0cmlldmVkIGlzIGluaGVyaXRlZCBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0IGZ1bmN0aW9uIG9uIGFuIEFycmF5IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgIA0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKHR5cGVvZiBjdXJWYWwgPT09ICJ1bmRlZmluZWQiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiMSIsIHsNCiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHsgfSwNCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICB2YXIgYXJyID0gWzAsICwgMl07DQoNCiAgICAgICAgICAgIGFyci5yZWR1Y2VSaWdodChjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCg0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmICFbLCAxXS5oYXNPd25Qcm9wZXJ0eSgwKSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-c-i-23"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMjMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaS0yMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIFRoaXMgb2JqZWN0IGlzIGFuIGdsb2JhbCBvYmplY3Qgd2hpY2ggY29udGFpbnMgaW5kZXggcHJvcGVydHkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChjdXJWYWwgPT09IDEpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIHZhciBvbGRMZW4gPSBmbkdsb2JhbE9iamVjdCgpLmxlbmd0aDsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KClbMF0gPSAwOw0KICAgICAgICAgICAgZm5HbG9iYWxPYmplY3QoKVsxXSA9IDE7DQogICAgICAgICAgICBmbkdsb2JhbE9iamVjdCgpWzJdID0gMjsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KCkubGVuZ3RoID0gMzsNCg0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0LmNhbGwoZm5HbG9iYWxPYmplY3QoKSwgY2FsbGJhY2tmbiwgImluaXRpYWxWYWx1ZSIpOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQoNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBmbkdsb2JhbE9iamVjdCgpWzBdOw0KICAgICAgICAgICAgZGVsZXRlIGZuR2xvYmFsT2JqZWN0KClbMV07DQogICAgICAgICAgICBkZWxldGUgZm5HbG9iYWxPYmplY3QoKVsyXTsNCiAgICAgICAgICAgIGZuR2xvYmFsT2JqZWN0KCkubGVuZ3RoID0gb2xkTGVuOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.4.4.22-9-c-i-25"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMjUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaS0yNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIFRoaXMgb2JqZWN0IGlzIHRoZSBBcmd1bWVudHMgb2JqZWN0IHdoaWNoIGltcGxlbWVudHMgaXRzIG93biBwcm9wZXJ0eSBnZXQgbWV0aG9kIChudW1iZXIgb2YgYXJndW1lbnRzIGlzIGxlc3MgdGhhbiBudW1iZXIgb2YgcGFyYW1ldGVycykiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChjdXJWYWwgPT09IDEpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGZ1bmMgPSBmdW5jdGlvbiAoYSwgYiwgYykgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0LmNhbGwoYXJndW1lbnRzLCBjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQogICAgICAgIH07DQoNCiAgICAgICAgZnVuYygwLCAxKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-9-c-i-26"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMjYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaS0yNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIFRoaXMgb2JqZWN0IGlzIHRoZSBBcmd1bWVudHMgb2JqZWN0IHdoaWNoIGltcGxlbWVudHMgaXRzIG93biBwcm9wZXJ0eSBnZXQgbWV0aG9kIChudW1iZXIgb2YgYXJndW1lbnRzIGVxdWFscyBudW1iZXIgb2YgcGFyYW1ldGVycykiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAyKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChjdXJWYWwgPT09IDIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGZ1bmMgPSBmdW5jdGlvbiAoYSwgYiwgYykgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0LmNhbGwoYXJndW1lbnRzLCBjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQogICAgICAgIH07DQoNCiAgICAgICAgZnVuYygwLCAxLCAyKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-9-c-i-27"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMjciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaS0yNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIFRoaXMgb2JqZWN0IGlzIHRoZSBBcmd1bWVudHMgb2JqZWN0IHdoaWNoIGltcGxlbWVudHMgaXRzIG93biBwcm9wZXJ0eSBnZXQgbWV0aG9kIChudW1iZXIgb2YgYXJndW1lbnRzIGlzIGdyZWF0ZXIgdGhhbiBudW1iZXIgb2YgcGFyYW1ldGVycykiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAzKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChjdXJWYWwgPT09IDMpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGZ1bmMgPSBmdW5jdGlvbiAoYSwgYiwgYykgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0LmNhbGwoYXJndW1lbnRzLCBjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQogICAgICAgIH07DQoNCiAgICAgICAgZnVuYygwLCAxLCAyLCAzKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-9-c-i-28"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMjgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaS0yOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCBhcHBsaWVkIHRvIFN0cmluZyBvYmplY3QsIHdoaWNoIGltcGxlbWVudHMgaXRzIG93biBwcm9wZXJ0eSBnZXQgbWV0aG9kIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgaWYgKGlkeCA9PT0gMSkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSAoY3VyVmFsID09PSAiMSIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHN0ciA9IG5ldyBTdHJpbmcoIjAxMiIpOw0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQuY2FsbChzdHIsIGNhbGxiYWNrZm4sICJpbml0aWFsVmFsdWUiKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQoNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-c-i-29"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMjkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaS0yOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCBhcHBsaWVkIHRvIEZ1bmN0aW9uIG9iamVjdCB3aGljaCBpbXBsZW1lbnRzIGl0cyBvd24gcHJvcGVydHkgZ2V0IG1ldGhvZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICB2YXIgaW5pdGlhbFZhbHVlID0gMDsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChjdXJWYWwgPT09IDEpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IGZ1bmN0aW9uIChhLCBiLCBjKSB7DQogICAgICAgICAgICByZXR1cm4gYSArIGIgKyBjOw0KICAgICAgICB9Ow0KICAgICAgICBvYmpbMF0gPSAwOw0KICAgICAgICBvYmpbMV0gPSAxOw0KICAgICAgICBvYmpbMl0gPSAyOw0KICAgICAgICBvYmpbM10gPSAzOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodC5jYWxsKG9iaiwgY2FsbGJhY2tmbiwgaW5pdGlhbFZhbHVlKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-9-c-i-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjIvMTUuNC40LjIyLTktYy1pLTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gZGF0YSBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKGN1clZhbCA9PT0gIjEiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBwcm90byA9IHsgMDogMTAsIDE6IDExLCAyOiAxMiwgbGVuZ3RoOiAyIH07DQogICAgICAgIHZhciBDb24gPSBmdW5jdGlvbiAoKSB7IH07DQogICAgICAgIENvbi5wcm90b3R5cGUgPSBwcm90bzsNCg0KICAgICAgICB2YXIgY2hpbGQgPSBuZXcgQ29uKCk7DQogICAgICAgIGNoaWxkWzFdID0gIjEiOw0KICAgICAgICBjaGlsZFsyXSA9ICIyIjsNCiAgICAgICAgY2hpbGQubGVuZ3RoID0gMzsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQuY2FsbChjaGlsZCwgY2FsbGJhY2tmbiwgImluaXRpYWxWYWx1ZSIpOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCg0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-c-i-30"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMzAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaS0zMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGVsZW1lbnQgY2hhbmdlZCBieSBnZXR0ZXIgb24gcHJldmlvdXMgaXRlcmF0aW9ucyBpcyBvYnNlcnZlZCBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKGN1clZhbCA9PT0gMSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWywgLF07DQogICAgICAgIHZhciBwcmVJdGVyVmlzaWJsZSA9IGZhbHNlOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnIsICIyIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcHJlSXRlclZpc2libGUgPSB0cnVlOw0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGlmIChwcmVJdGVyVmlzaWJsZSkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gIjExIjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIGFyci5yZWR1Y2VSaWdodChjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-c-i-31"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMzEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaS0zMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGVsZW1lbnQgY2hhbmdlZCBieSBnZXR0ZXIgb24gcHJldmlvdXMgaXRlcmF0aW9ucyBpcyBvYnNlcnZlZCBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKGN1clZhbCA9PT0gMSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyBsZW5ndGg6IDMgfTsNCiAgICAgICAgdmFyIHByZUl0ZXJWaXNpYmxlID0gZmFsc2U7DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgIjIiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBwcmVJdGVyVmlzaWJsZSA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgaWYgKHByZUl0ZXJWaXNpYmxlKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAiMTEiOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUNCiAgICAgICAgfSk7DQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0LmNhbGwob2JqLCBjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQogICAgICAgIHJldHVybiB0ZXN0UmVzdWx0Ow0KDQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-c-i-32"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMzIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaS0zMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIHVubmhhbmRsZWQgZXhjZXB0aW9ucyBoYXBwZW5lZCBpbiBnZXR0ZXIgdGVybWluYXRlIGl0ZXJhdGlvbiBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4IDw9IDEpIHsNCiAgICAgICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KDQogICAgICAgIHZhciBvYmogPSB7IDA6IDAsIDI6IDIsIGxlbmd0aDogMyB9Ow0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiMSIsIHsNCiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCJ1bmhhbmRsZSBleGNlcHRpb24gaGFwcGVuZWQgaW4gZ2V0dGVyIik7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQuY2FsbChvYmosIGNhbGxiYWNrZm4sICJpbml0aWFsVmFsdWUiKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZXgpIHsNCiAgICAgICAgICAgIHJldHVybiAoZXggaW5zdGFuY2VvZiBSYW5nZUVycm9yKSAmJiAhYWNjZXNzZWQ7DQogICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpICYmIGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5TdXBwb3J0c0FycmF5SW5kZXhHZXR0ZXJzT25PYmplY3RzKCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-9-c-i-33"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktMzMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaS0zMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIHVubmhhbmRsZWQgZXhjZXB0aW9ucyBoYXBwZW5lZCBpbiBnZXR0ZXIgdGVybWluYXRlIGl0ZXJhdGlvbiBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4IDw9IDEpIHsNCiAgICAgICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgYXJyID0gWzAsICwgMl07DQoNCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFyciwgIjEiLCB7DQogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcigidW5oYW5kbGUgZXhjZXB0aW9uIGhhcHBlbmVkIGluIGdldHRlciIpOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgYXJyLnJlZHVjZVJpZ2h0KGNhbGxiYWNrZm4sICJpbml0aWFsVmFsdWUiKTsNCiAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICB9IGNhdGNoIChleCkgew0KICAgICAgICAgICAgcmV0dXJuIChleCBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpICYmICFhY2Nlc3NlZDsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-c-i-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjIvMTUuNC40LjIyLTktYy1pLTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gZGF0YSBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKGN1clZhbCA9PT0gMSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzFdID0gIjExIjsNCiAgICAgICAgICAgIFswLCAxLCAyXS5yZWR1Y2VSaWdodChjYWxsYmFja2ZuLCAiaW5pdGlhbFZhbHVlIik7DQogICAgICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCg0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsxXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-9-c-i-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjIvMTUuNC40LjIyLTktYy1pLTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gZGF0YSBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAwKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChjdXJWYWwgPT09ICIwIik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7fTsNCg0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICIwIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDEwOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCg0KICAgICAgICB2YXIgQ29uID0gZnVuY3Rpb24gKCkgeyB9Ow0KICAgICAgICBDb24ucHJvdG90eXBlID0gcHJvdG87DQoNCiAgICAgICAgdmFyIGNoaWxkID0gbmV3IENvbigpOw0KICAgICAgICBjaGlsZC5sZW5ndGggPSAyOw0KICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY2hpbGQsICIwIiwgew0KICAgICAgICAgICAgdmFsdWU6ICIwIiwNCiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICB9KTsNCiAgICAgICAgY2hpbGRbMV0gPSAiMSI7DQoNCiAgICAgICAgQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0LmNhbGwoY2hpbGQsIGNhbGxiYWNrZm4sICJpbml0aWFsVmFsdWUiKTsNCiAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KSAmJiBmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuU3VwcG9ydHNBcnJheUluZGV4R2V0dGVyc09uT2JqZWN0cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-c-i-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktNiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjIvMTUuNC40LjIyLTktYy1pLTYuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gZGF0YSBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyBhbiBpbmhlcml0ZWQgYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChjdXJWYWwgPT09IDEpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICIxIiwgew0KICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gIjExIjsNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICBbMCwgMSwgMl0ucmVkdWNlUmlnaHQoY2FsbGJhY2tmbiwgImluaXRpYWxWYWx1ZSIpOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQoNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMV07DQogICAgICAgIH0NCg0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbkFycmF5cygpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-c-i-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjIvMTUuNC40LjIyLTktYy1pLTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBpbmhlcml0ZWQgZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheS1saWtlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKGN1clZhbCA9PT0gMSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgcHJvdG8gPSB7IDA6IDAsIDE6IDEsIDI6IDIgfTsNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb24oKTsNCiAgICAgICAgY2hpbGQubGVuZ3RoID0gMzsNCg0KICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQuY2FsbChjaGlsZCwgY2FsbGJhY2tmbiwgImluaXRpYWxWYWx1ZSIpOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-c-i-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjIvMTUuNC40LjIyLTktYy1pLTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBpbmhlcml0ZWQgZGF0YSBwcm9wZXJ0eSBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdGVzdFJlc3VsdCA9IGZhbHNlOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPT09IDEpIHsNCiAgICAgICAgICAgICAgICB0ZXN0UmVzdWx0ID0gKGN1clZhbCA9PT0gMSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlWzBdID0gMDsNCiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZVsxXSA9IDE7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGVbMl0gPSAyOw0KICAgICAgICAgICAgWywgLCAsIF0ucmVkdWNlUmlnaHQoY2FsbGJhY2tmbiwgImluaXRpYWxWYWx1ZSIpOw0KICAgICAgICAgICAgcmV0dXJuIHRlc3RSZXN1bHQ7DQoNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBBcnJheS5wcm90b3R5cGVbMF07DQogICAgICAgICAgICBkZWxldGUgQXJyYXkucHJvdG90eXBlWzFdOw0KICAgICAgICAgICAgZGVsZXRlIEFycmF5LnByb3RvdHlwZVsyXTsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgIVssIDFdLmhhc093blByb3BlcnR5KDApOw0KICAgIH0NCg0KfSk7DQo=]]></test>
<test id="15.4.4.22-9-c-i-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWktOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMjIvMTUuNC40LjIyLTktYy1pLTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgLSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZCBpcyBvd24gYWNjZXNzb3IgcHJvcGVydHkgb24gYW4gQXJyYXktbGlrZSBvYmplY3QiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBpZiAoaWR4ID09PSAxKSB7DQogICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IChjdXJWYWwgPT09IDEpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMDogMCwgMjogMiwgbGVuZ3RoOiAzIH07DQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICIxIiwgew0KICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlDQogICAgICAgIH0pOw0KDQogICAgICAgIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodC5jYWxsKG9iaiwgY2FsbGJhY2tmbiwgImluaXRpYWxWYWx1ZSIpOw0KICAgICAgICByZXR1cm4gdGVzdFJlc3VsdDsNCg0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCkgJiYgZm5FeGlzdHMoT2JqZWN0LmRlZmluZVByb3BlcnR5KSAmJiBmblN1cHBvcnRzQXJyYXlJbmRleEdldHRlcnNPbk9iamVjdHMoKTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-9-c-ii-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjIyLTktYy1paS0xIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaWktMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gY2FsbGJhY2tmbiBjYWxsZWQgd2l0aCBjb3JyZWN0IHBhcmFtZXRlcnMgKGluaXRpYWx2YWx1ZSBub3QgcGFzc2VkKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgeyANCiANCiAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKQ0KICB7DQogICAgaWYoaWR4KzEgPCBvYmoubGVuZ3RoICYmIG9ialtpZHhdID09PSBjdXJWYWwgJiYgb2JqW2lkeCsxXSA9PT0gcHJldlZhbCkNCiAgICAgIHJldHVybiBjdXJWYWw7DQogICAgZWxzZSANCiAgICAgIHJldHVybiBmYWxzZTsNCiAgfQ0KDQogIHZhciBhcnIgPSBbMCwxLHRydWUsbnVsbCxuZXcgT2JqZWN0KCksImZpdmUiXTsNCiAgaWYoIGFyci5yZWR1Y2VSaWdodChjYWxsYmFja2ZuKSA9PT0gMCkgDQogICAgcmV0dXJuIHRydWU7DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQpOw0KIH0NCn0pOw0K]]></test>
<test id="15.4.4.22-9-c-ii-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWlpLTEwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1jLWlpLTEwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gY2FsbGJhY2tmbiBpcyBjYWxsZWQgd2l0aCAxIGZvcm1hbCBwYXJhbWV0ZXIiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGNhbGxlZCA9IDA7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsKSB7DQogICAgICAgICAgICBjYWxsZWQrKzsNCiAgICAgICAgICAgIHJldHVybiBwcmV2VmFsOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIFsxMSwgMTJdLnJlZHVjZVJpZ2h0KGNhbGxiYWNrZm4sIDEwMCkgPT09IDEwMCAmJiAyID09PSBjYWxsZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-9-c-ii-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWlpLTExIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1jLWlpLTExLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gY2FsbGJhY2tmbiBpcyBjYWxsZWQgd2l0aCAyIGZvcm1hbCBwYXJhbWV0ZXIiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIHRlc3RSZXN1bHQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCkgew0KICAgICAgICAgICAgaWYgKHByZXZWYWwgPT09IDEwMCkgew0KICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIGN1clZhbCA+IDEwOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIFsxMV0ucmVkdWNlUmlnaHQoY2FsbGJhY2tmbiwgMTAwKSA9PT0gdHJ1ZSAmJiB0ZXN0UmVzdWx0Ow0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
@ -174,6 +250,7 @@
<test id="15.4.4.22-9-c-ii-33"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWlpLTMzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1jLWlpLTMzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gdGhlIEpTT04gY2FuIGJlIHVzZWQgYXMgYWNjdW11bGF0b3IiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIHByZXZWYWwgPT09IEpTT047DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyAwOiAxMSwgbGVuZ3RoOiAxIH07DQoNCiAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodC5jYWxsKG9iaiwgY2FsbGJhY2tmbiwgSlNPTikgPT09IHRydWUgJiYgYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-9-c-ii-34"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWlpLTM0IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1jLWlpLTM0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gRXJyb3IgT2JqZWN0IGNhbiBiZSB1c2VkIGFzIGFjY3VtdWxhdG9yIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBhY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICB2YXIgb2JqRXJyb3IgPSBuZXcgUmFuZ2VFcnJvcigpOw0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIHJldHVybiBwcmV2VmFsID09PSBvYmpFcnJvcjsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBvYmogPSB7IDA6IDExLCBsZW5ndGg6IDEgfTsNCiAgICAgICAgDQoNCiAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodC5jYWxsKG9iaiwgY2FsbGJhY2tmbiwgb2JqRXJyb3IpID09PSB0cnVlICYmIGFjY2Vzc2VkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-9-c-ii-35"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWlpLTM1IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1jLWlpLTM1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gdGhlIEFyZ3VtZW50cyBvYmplY3QgY2FuIGJlIHVzZWQgYXMgYWNjdW11bGF0b3IiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIHZhciBhcmc7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICByZXR1cm4gcHJldlZhbCA9PT0gYXJnOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMDogMTEsIGxlbmd0aDogMSB9Ow0KDQogICAgICAgIChmdW5jdGlvbiBmdW4oKSB7DQogICAgICAgICAgICBhcmcgPSBhcmd1bWVudHM7DQogICAgICAgIH0oMTAsIDExLCAxMiwgMTMpKTsNCg0KICAgICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0LmNhbGwob2JqLCBjYWxsYmFja2ZuLCBhcmcpID09PSB0cnVlICYmIGFjY2Vzc2VkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>
<test id="15.4.4.22-9-c-ii-37"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWlpLTM3IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4yMi8xNS40LjQuMjItOS1jLWlpLTM3LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IC0gdGhlIGdsb2JhbCBvYmplY3QgY2FuIGJlIHVzZWQgYXMgYWNjdW11bGF0b3IiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdmFyIGFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrZm4ocHJldlZhbCwgY3VyVmFsLCBpZHgsIG9iaikgew0KICAgICAgICAgICAgYWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgcmV0dXJuIHByZXZWYWwgPT09IGZuR2xvYmFsT2JqZWN0KCk7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgb2JqID0geyAwOiAxMSwgbGVuZ3RoOiAxIH07DQoNCiAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodC5jYWxsKG9iaiwgY2FsbGJhY2tmbiwgZm5HbG9iYWxPYmplY3QoKSkgPT09IHRydWUgJiYgYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-9-c-ii-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWlpLTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaWktNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGsgdmFsdWVzIGFyZSBwYXNzZWQgaW4gYWNlbmRpbmcgbnVtZXJpYyBvcmRlciIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYXJyID0gWzAsIDEsIDIsIDMsIDQsIDVdOw0KICAgICAgICB2YXIgbGFzdElkeCA9IGFyci5sZW5ndGggLSAxOw0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIHJlc3VsdCA9IHRydWU7DQoNCiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tmbihwcmV2VmFsLCBjdXJWYWwsIGlkeCwgb2JqKSB7DQogICAgICAgICAgICBhY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICBpZiAobGFzdElkeCAhPT0gaWR4KSB7DQogICAgICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIGxhc3RJZHgtLTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBhcnIucmVkdWNlUmlnaHQoY2FsbGJhY2tmbiwgMSk7DQogICAgICAgIHJldHVybiByZXN1bHQgJiYgYWNjZXNzZWQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-9-c-ii-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWlpLTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaWktNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIGsgdmFsdWVzIGFyZSBhY2Nlc3NlZCBkdXJpbmcgZWFjaCBpdGVyYXRpb24gYW5kIG5vdCBwcmlvciB0byBzdGFydGluZyB0aGUgbG9vcCBvbiBhbiBBcnJheSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIGFyciA9IFsxMSwgMTIsIDEzLCAxNF07DQogICAgICAgIHZhciBrSW5kZXggPSBbXTsNCiAgICAgICAgdmFyIHJlc3VsdCA9IHRydWU7DQogICAgICAgIHZhciBjYWxsZWQgPSAwOw0KDQogICAgICAgIC8vQnkgYmVsb3cgd2F5LCB3ZSBjb3VsZCB2ZXJpZnkgdGhhdCBrIHdvdWxkIGJlIHNldHRlZCBhcyAwLCAxLCAuLi4sIGxlbmd0aCAtIDEgaW4gb3JkZXIsIGFuZCBlYWNoIHZhbHVlIHdpbGwgYmUgc2V0dGVkIG9uZSB0aW1lLg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZVZhbCwgY3VyVmFsLCBpZHgsIG8pIHsNCiAgICAgICAgICAgIC8vRWFjaCBwb3NpdGlvbiBzaG91bGQgYmUgdmlzaXRlZCBvbmUgdGltZSwgd2hpY2ggbWVhbnMgayBpcyBhY2Nlc3NlZCBvbmUgdGltZSBkdXJpbmcgaXRlcmF0aW9ucy4NCiAgICAgICAgICAgIGNhbGxlZCsrOw0KICAgICAgICAgICAgaWYgKHR5cGVvZiBrSW5kZXhbaWR4XSA9PT0gInVuZGVmaW5lZCIpIHsNCiAgICAgICAgICAgICAgICAvL3doZW4gY3VycmVudCBwb3NpdGlvbiBpcyB2aXNpdGVkLCBpdHMgbmV4dCBpbmRleCBzaG91bGQgaGFzIGJlZW4gdmlzaXRlZC4NCiAgICAgICAgICAgICAgICBpZiAoaWR4ICE9PSBhcnIubGVuZ3RoIC0gMSAmJiB0eXBlb2Yga0luZGV4W2lkeCArIDFdID09PSAidW5kZWZpbmVkIikgew0KICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAga0luZGV4W2lkeF0gPSAxOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICByZXN1bHQgPSBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIGFyci5yZWR1Y2VSaWdodChjYWxsYmFja2ZuLCAxKTsNCiAgICAgICAgcmV0dXJuIHJlc3VsdCAmJiBjYWxsZWQgPT09IDQ7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KTsNCiAgICB9DQoNCn0pOw0K]]></test>
<test id="15.4.4.22-9-c-ii-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMjItOS1jLWlpLTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjIyLzE1LjQuNC4yMi05LWMtaWktNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCAtIHVuaGFuZGxlZCBleGNlcHRpb25zIGhhcHBlbmVkIGluIGNhbGxiYWNrZm4gdGVybWluYXRlIGl0ZXJhdGlvbiIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgYWNjZXNzZWQgPSBmYWxzZTsNCg0KICAgICAgICBmdW5jdGlvbiBjYWxsYmFja2ZuKHByZXZWYWwsIGN1clZhbCwgaWR4LCBvYmopIHsNCiAgICAgICAgICAgIGlmIChpZHggPCAxMCkgew0KICAgICAgICAgICAgICAgIGFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChpZHggPT09IDEwKSB7DQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJFeGNlcHRpb24gb2NjdXJyZWQgaW4gY2FsbGJhY2tmbiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG9iaiA9IHsgMDogMTEsIDQ6IDEwLCAxMDogOCwgbGVuZ3RoOiAyMCB9Ow0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQuY2FsbChvYmosIGNhbGxiYWNrZm4sIDEpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChleCkgew0KICAgICAgICAgICAgcmV0dXJuICFhY2Nlc3NlZDsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCk7DQogICAgfQ0KDQp9KTsNCg==]]></test>

View File

@ -2,7 +2,7 @@
<!-- adding section element if in the future we want to store information about the -->
<!-- spec structure in this file, for now the section structure is defined in the -->
<!-- sections.js file -->
<section name="Chapter - 15.5" numTests="74">
<section name="Chapter - 15.5" numTests="142">
<test id="15.5.4.20-0-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTAtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjUvMTUuNS40LzE1LjUuNC4yMC8xNS41LjQuMjAtMC0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJTdHJpbmcucHJvdG90eXBlLnRyaW0gbXVzdCBleGlzdCBhcyBhIGZ1bmN0aW9uIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBmID0gU3RyaW5nLnByb3RvdHlwZS50cmltOw0KICBpZiAodHlwZW9mKGYpID09PSAiZnVuY3Rpb24iKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-0-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTAtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjUvMTUuNS40LzE1LjUuNC4yMC8xNS41LjQuMjAtMC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJTdHJpbmcucHJvdG90eXBlLnRyaW0gbXVzdCBleGlzdCBhcyBhIGZ1bmN0aW9uIHRha2luZyAwIHBhcmFtZXRlcnMiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgaWYgKFN0cmluZy5wcm90b3R5cGUudHJpbS5sZW5ndGggPT09IDApIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-1-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTEtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjUvMTUuNS40LzE1LjUuNC4yMC8xNS41LjQuMjAtMS0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJTdHJpbmcucHJvdG90eXBlLnRyaW0gdGhyb3dzIFR5cGVFcnJvciB3aGVuIHN0cmluZyBpcyB1bmRlZmluZWQiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdHJ5DQogIHsNCiAgICBTdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbCh1bmRlZmluZWQpOyANCiAgICByZXR1cm4gZmFsc2U7IA0KICB9DQogIGNhdGNoKGUpDQogIHsNCiAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFR5cGVFcnJvcjsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiB9DQp9KTsNCg==]]></test>
@ -12,6 +12,74 @@
<test id="15.5.4.20-1-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTEtNSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjUvMTUuNS40LzE1LjUuNC4yMC8xNS41LjQuMjAtMS01LmpzIiwNCg0KZGVzY3JpcHRpb246ICJTdHJpbmcucHJvdG90eXBlLnRyaW0gd29ya3MgZm9yIGFuIE9iamVjdCIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB0cnkNCiAgew0KICAgIGlmKFN0cmluZy5wcm90b3R5cGUudHJpbS5jYWxsKHt9KT09IltvYmplY3QgT2JqZWN0XSIpDQogICAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KICBjYXRjaChlKQ0KICB7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.5.4.20-1-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTEtNiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjUvMTUuNS40LzE1LjUuNC4yMC8xNS41LjQuMjAtMS02LmpzIiwNCg0KZGVzY3JpcHRpb246ICJTdHJpbmcucHJvdG90eXBlLnRyaW0gd29ya3MgZm9yIGFuIFN0cmluZyIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB0cnkNCiAgew0KICAgIGlmKFN0cmluZy5wcm90b3R5cGUudHJpbS5jYWxsKG5ldyBTdHJpbmcoKSkgPT0gIiIpDQogICAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KICBjYXRjaChlKQ0KICB7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.5.4.20-1-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTEtNyIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjUvMTUuNS40LzE1LjUuNC4yMC8xNS41LjQuMjAtMS03LmpzIiwNCg0KZGVzY3JpcHRpb246ICJTdHJpbmcucHJvdG90eXBlLnRyaW0gd29ya3MgZm9yIGEgcHJpbWl0aXZlIHN0cmluZyIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB0cnkNCiAgew0KICAgIGlmKFN0cmluZy5wcm90b3R5cGUudHJpbS5jYWxsKCJhYmMiKSA9PT0gImFiYyIpICANCiAgICAgIHJldHVybiB0cnVlOw0KICB9DQogIGNhdGNoKGUpDQogIHsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-1-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTEtOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTEtOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSB3b3JrcyBmb3IgYSBwcmltaXRpdmUgc3RyaW5nICh2YWx1ZSBpcyAnICAgIGFiYycpICIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIHN0ck9iaiA9IFN0cmluZygiICAgIGFiYyIpOw0KICAgICAgICByZXR1cm4gImFiYyIgPT09IHN0ck9iai50cmltKCkgJiYgc3RyT2JqLnRvU3RyaW5nKCkgPT09ICIgICAgYWJjIjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.5.4.20-1-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTEtOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTEtOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSB3b3JrcyBmb3IgYSBTdHJpbmcgb2JqZWN0IHdoaWNoIHZhbHVlIGlzIHVuZGVmaW5lZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIHN0ck9iaiA9IG5ldyBTdHJpbmcodW5kZWZpbmVkKTsNCiAgICAgICAgcmV0dXJuIHN0ck9iai50cmltKCkgPT09ICJ1bmRlZmluZWQiOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.5.4.20-2-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTItMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSAtIGFyZ3VtZW50ICd0aGlzJyBpcyBhIGJvb2xlYW4gd2hvc2UgdmFsdWUgaXMgZmFsc2UiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHJldHVybiBTdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbChmYWxzZSkgPT09ICJmYWxzZSI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-2-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMTAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTEwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gYXJndW1lbnQgJ3RoaXMnIGlzIGEgbnVtYmVyIHRoYXQgY29udmVydHMgdG8gYSBzdHJpbmcgKHZhbHVlIGlzICtJbmZpbml0eSkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHJldHVybiBTdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbCgrSW5maW5pdHkpID09PSAiSW5maW5pdHkiOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.5.4.20-2-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTExLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gYXJndW1lbnQgJ3RoaXMnIGlzIGEgbnVtYmVyIHRoYXQgY29udmVydHMgdG8gYSBzdHJpbmcgKHZhbHVlIGlzIC1JbmZpbml0eSkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHJldHVybiBTdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbCgtSW5maW5pdHkpID09PSAiLUluZmluaXR5IjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.5.4.20-2-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTEyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gYXJndW1lbnQgJ3RoaXMnIGlzIGEgbnVtYmVyIHRoYXQgY29udmVydHMgdG8gYSBzdHJpbmcgKHZhbHVlIGlzIDEoZm9sbG93aW5nIDIwIHplcm9zKSkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHJldHVybiBTdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbCgxMDAwMDAwMDAwMDAwMDAwMDAwMDApID09PSAiMTAwMDAwMDAwMDAwMDAwMDAwMDAwIjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.5.4.20-2-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTEzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gYXJndW1lbnQgJ3RoaXMnIGlzIGEgbnVtYmVyIHRoYXQgY29udmVydHMgdG8gYSBzdHJpbmcgKHZhbHVlIGlzIDEoZm9sbG93aW5nIDIxIHplcm9zKSkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHJldHVybiBTdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwKSA9PT0gIjFlKzIxIjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.5.4.20-2-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTE0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gYXJndW1lbnQgJ3RoaXMnIGlzIGEgbnVtYmVyIHRoYXQgY29udmVydHMgdG8gYSBzdHJpbmcgKHZhbHVlIGlzIDEoZm9sbG93aW5nIDIyIHplcm9zKSkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHJldHVybiBTdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCkgPT09ICIxZSsyMiI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-2-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTE1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gYXJndW1lbnQgJ3RoaXMnIGlzIGEgbnVtYmVyIHRoYXQgY29udmVydHMgdG8gYSBzdHJpbmcgKHZhbHVlIGlzIDFlKzIwKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgcmV0dXJuIFN0cmluZy5wcm90b3R5cGUudHJpbS5jYWxsKDFlKzIwKSA9PT0gIjEwMDAwMDAwMDAwMDAwMDAwMDAwMCI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-2-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTE2LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gYXJndW1lbnQgJ3RoaXMnIGlzIGEgbnVtYmVyIHRoYXQgY29udmVydHMgdG8gc3RyaW5nICh2YWx1ZSBpcyAxZSsyMSkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHJldHVybiBTdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbCgxZSsyMSkgPT09ICIxZSsyMSI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-2-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTE3LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gYXJndW1lbnQgJ3RoaXMnIGlzIGEgbnVtYmVyIHRoYXQgY29udmVydHMgdG8gc3RyaW5nICh2YWx1ZSBpcyAxZSsyMikiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHJldHVybiBTdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbCgxZSsyMikgPT09ICIxZSsyMiI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-2-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTE4LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gYXJndW1lbnQgJ3RoaXMnIGlzIGEgbnVtYmVyIHRoYXQgY29udmVydHMgdG8gYSBzdHJpbmcgKHZhbHVlIGlzIDAuMDAwMDAxKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgcmV0dXJuIFN0cmluZy5wcm90b3R5cGUudHJpbS5jYWxsKDAuMDAwMDAxKSA9PT0gIjAuMDAwMDAxIjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.5.4.20-2-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTE5LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gYXJndW1lbnQgYXJndW1lbnQgJ3RoaXMnIGlzIGEgbnVtYmVyIHRoYXQgY29udmVydHMgdG8gYSBzdHJpbmcgKHZhbHVlIGlzIDAuMDAwMDAwMSkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHJldHVybiBTdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbCgwLjAwMDAwMDEpID09PSAiMWUtNyI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-2-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTItMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSAtIGFyZ3VtZW50ICd0aGlzJyBpcyBhIGJvb2xlYW4gd2hvc2UgdmFsdWUgaXMgdHJ1ZSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgcmV0dXJuIFN0cmluZy5wcm90b3R5cGUudHJpbS5jYWxsKHRydWUpID09PSAidHJ1ZSI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-2-20"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMjAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTIwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gYXJndW1lbnQgJ3RoaXMnIGlzIGEgbnVtYmVyIHRoYXQgY29udmVydHMgdG8gYSBzdHJpbmcgKHZhbHVlIGlzIDAuMDAwMDAwMDEpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICByZXR1cm4gU3RyaW5nLnByb3RvdHlwZS50cmltLmNhbGwoMC4wMDAwMDAwMSkgPT09ICIxZS04IjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.5.4.20-2-21"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMjEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTIxLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gYXJndW1lbnQgJ3RoaXMnIGlzIGEgbnVtYmVyIHRoYXQgY29udmVydHMgdG8gYSBzdHJpbmcgKHZhbHVlIGlzIDFlLTcpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICByZXR1cm4gU3RyaW5nLnByb3RvdHlwZS50cmltLmNhbGwoMWUtNykgPT09ICIxZS03IjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.5.4.20-2-22"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMjIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTIyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gYXJndW1lbnQgJ3RoaXMnIGlzIGEgbnVtYmVyIHRoYXQgY29udmVydHMgdG8gYSBzdHJpbmcgKHZhbHVlIGlzIDFlLTYpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICByZXR1cm4gU3RyaW5nLnByb3RvdHlwZS50cmltLmNhbGwoMWUtNikgPT09ICIwLjAwMDAwMSI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-2-23"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMjMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTIzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gYXJndW1lbnQgJ3RoaXMnIGlzIGEgbnVtYmVyIHRoYXQgY29udmVydHMgdG8gYSBzdHJpbmcgKHZhbHVlIGlzIDFlLTUpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICByZXR1cm4gU3RyaW5nLnByb3RvdHlwZS50cmltLmNhbGwoMWUtNSkgPT09ICIwLjAwMDAxIjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.5.4.20-2-24"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMjQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTI0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gYXJndW1lbnQgJ3RoaXMnIGlzIGFuIGludGVnZXIgdGhhdCBjb252ZXJ0cyB0byBhIHN0cmluZyAodmFsdWUgaXMgMTIzKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgcmV0dXJuIFN0cmluZy5wcm90b3R5cGUudHJpbS5jYWxsKDEyMykgPT09ICIxMjMiOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.5.4.20-2-25"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMjUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTI1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gYXJndW1lbnQgJ3RoaXMnIGlzIGEgZGVjaW1hbCB0aGF0IGNvbnZlcnRzIHRvIGEgc3RyaW5nICh2YWx1ZSBpcyAxMjMuNDU2KSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgcmV0dXJuIFN0cmluZy5wcm90b3R5cGUudHJpbS5jYWxsKDEyMy40NTYpID09PSAiMTIzLjQ1NiI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-2-26"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMjYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTI2LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gYXJndW1lbnQgJ3RoaXMnIGlzIGEgbnVtYmVyIHRoYXQgY29udmVydHMgdG8gYSBzdHJpbmcgKHZhbHVlIGlzIDEoZm9sbG93aW5nIDIwIHplcm9zKS4xMjMpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICByZXR1cm4gU3RyaW5nLnByb3RvdHlwZS50cmltLmNhbGwoMTAwMDAwMDAwMDAwMDAwMDAwMDAwLjEyMykgPT09ICIxMDAwMDAwMDAwMDAwMDAwMDAwMDAiOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.5.4.20-2-27"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMjciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTI3LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gYXJndW1lbnQgJ3RoaXMnIGlzIGEgbnVtYmVyIHRoYXQgY29udmVydHMgdG8gYSBzdHJpbmcgKHZhbHVlIGlzIDEyMy4xMjM0NTY3KSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgcmV0dXJuIFN0cmluZy5wcm90b3R5cGUudHJpbS5jYWxsKDEyMy4xMjM0NTY3KSA9PT0gIjEyMy4xMjM0NTY3IjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.5.4.20-2-28"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMjgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTI4LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gYXJndW1lbnQgJ3RoaXMnIGlzIGFuIGVtcHR5IHN0cmluZyAiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHJldHVybiBTdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbCgiIikgPT09ICIiOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.5.4.20-2-29"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMjkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTI5LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gYXJndW1lbnQgJ3RoaXMnIGlzIGEgc3RyaW5nKHZhbHVlIGlzICdBQlxuXFxjZCcpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICByZXR1cm4gU3RyaW5nLnByb3RvdHlwZS50cmltLmNhbGwoIkFCXG5cXGNkIikgPT09ICJBQlxuXFxjZCI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-2-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTItMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSAtIGFyZ3VtZW50ICd0aGlzJyBpcyBhIG51bWJlciB0aGF0IGNvbnZlcnRzIHRvIGEgc3RyaW5nICh2YWx1ZSBpcyBOYU4pIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICByZXR1cm4gU3RyaW5nLnByb3RvdHlwZS50cmltLmNhbGwoTmFOKSA9PT0gIk5hTiI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-2-30"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMzAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTMwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gYXJndW1lbnQgJ3RoaXMnIGlzIGEgc3RyaW5nKHZhbHVlIGlzICd1bmRlZmluZWQnKSAiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHJldHVybiBTdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbCgidW5kZWZpbmVkIikgPT09ICJ1bmRlZmluZWQiOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.5.4.20-2-31"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMzEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTMxLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gYXJndW1lbnQgJ3RoaXMnIGlzIGEgc3RyaW5nKHZhbHVlIGlzICdudWxsJykgIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICByZXR1cm4gU3RyaW5nLnByb3RvdHlwZS50cmltLmNhbGwoIm51bGwiKSA9PT0gIm51bGwiOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.5.4.20-2-32"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMzIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTMyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gYXJndW1lbnQgJ3RoaXMnIGlzIGEgc3RyaW5nKHZhbHVlIGlzICcxMjMjJCVhYmMnKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgcmV0dXJuIFN0cmluZy5wcm90b3R5cGUudHJpbS5jYWxsKCIxMjMjJCVhYmMiKSA9PT0gIjEyMyMkJWFiYyI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-2-33"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMzMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTMzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gYXJndW1lbnQgJ3RoaXMnIGlzIGEgc3RyaW5nKHZhbHVlIGlzICcxJykiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHJldHVybiBTdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbCgiMSIpID09PSAiMSI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-2-34"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMzQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTM0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gJ3RoaXMnIGlzIGFuIGFycmF5IHRoYXQgY29udmVydHMgdG8gYSBzdHJpbmciLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHJldHVybiAoU3RyaW5nLnByb3RvdHlwZS50cmltLmNhbGwoWzFdKSA9PT0gJzEnKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.5.4.20-2-35"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMzUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTM1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gJ3RoaXMnIGlzIGEgU3RyaW5nIE9iamVjdCB0aGF0IGNvbnZlcnRzIHRvIGEgc3RyaW5nIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICByZXR1cm4gKFN0cmluZy5wcm90b3R5cGUudHJpbS5jYWxsKG5ldyBTdHJpbmcoImFiYyIpKSA9PT0gImFiYyIpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.5.4.20-2-36"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMzYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTM2LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gJ3RoaXMnIGlzIGEgQm9vbGVhbiBPYmplY3QgdGhhdCBjb252ZXJ0cyB0byBhIHN0cmluZyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgcmV0dXJuIChTdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbChuZXcgQm9vbGVhbihmYWxzZSkpID09PSAiZmFsc2UiKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.5.4.20-2-37"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMzciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTM3LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gJ3RoaXMnIGlzIGEgTnVtYmVyIE9iamVjdCB0aGF0IGNvbnZlcnRzIHRvIGEgc3RyaW5nIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICByZXR1cm4gKFN0cmluZy5wcm90b3R5cGUudHJpbS5jYWxsKG5ldyBOdW1iZXIoMTIzKSkgPT09ICIxMjMiKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.5.4.20-2-38"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMzgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTM4LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gJ3RoaXMnIGlzIGFuIG9iamVjdCB3aGljaCBoYXMgYW4gb3duIHRvU3RyaW5nIG1ldGhvZCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IHsNCiAgICAgICAgICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuICJhYmMiOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KDQogICAgICAgIHJldHVybiAoU3RyaW5nLnByb3RvdHlwZS50cmltLmNhbGwob2JqKSA9PT0gImFiYyIpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.5.4.20-2-39"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItMzkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTM5LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gJ3RoaXMnIGlzIGFuIG9iamVjdCB3aGljaCBoYXMgYW4gb3duIHZhbHVlT2YgbWV0aG9kIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgb2JqID0gew0KICAgICAgICAgICAgdmFsdWVPZjogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAiYWJjIjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfTsNCg0KICAgICAgICByZXR1cm4gKFN0cmluZy5wcm90b3R5cGUudHJpbS5jYWxsKG9iaikgPT09ICJbb2JqZWN0IE9iamVjdF0iKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.5.4.20-2-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTItNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSAtIGFyZ3VtZW50ICd0aGlzJyBpcyBhIG51bWJlciB0aGF0IGNvbnZlcnRzIHRvIGEgc3RyaW5nICh2YWx1ZSBpcyAwKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgcmV0dXJuIFN0cmluZy5wcm90b3R5cGUudHJpbS5jYWxsKDApID09PSAiMCI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-2-40"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItNDAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTQwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gJ3RoaXMnIGlzIGFuIG9iamVjdCB0aGF0IGhhcyBhbiBvd24gdG9TdHJpbmcgbWV0aG9kIHRoYXQgcmV0dXJucyBhbiBvYmplY3QgYW5kIHZhbHVlT2YgbWV0aG9kIHRoYXQgcmV0dXJucyBhIHByaW1pdGl2ZSB2YWx1ZSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIHRvU3RyaW5nQWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIHZhbHVlT2ZBY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICB2YXIgb2JqID0gew0KICAgICAgICAgICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB0b1N0cmluZ0FjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICByZXR1cm4ge307DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgdmFsdWVPZjogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHZhbHVlT2ZBY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0dXJuICJhYmMiOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICByZXR1cm4gKFN0cmluZy5wcm90b3R5cGUudHJpbS5jYWxsKG9iaikgPT09ICJhYmMiKSAmJiB2YWx1ZU9mQWNjZXNzZWQgJiYgdG9TdHJpbmdBY2Nlc3NlZDsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.5.4.20-2-41"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItNDEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTQxLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gJ3RoaXMnIGlzIGFuIG9iamVjdCB3aGljaCBoYXMgYW4gb3duIHRvU3RyaW5nIGFuZCB2YWx1ZU9mIG1ldGhvZC4iLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciB0b1N0cmluZ0FjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIHZhciB2YWx1ZU9mQWNjZXNzZWQgPSBmYWxzZTsNCiAgICAgICAgdmFyIG9iaiA9IHsNCiAgICAgICAgICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdG9TdHJpbmdBY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0dXJuICJhYmMiOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHZhbHVlT2Y6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB2YWx1ZU9mQWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgIHJldHVybiAiY2VmIjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfTsNCiAgICAgICAgcmV0dXJuIChTdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbChvYmopID09PSAiYWJjIikgJiYgIXZhbHVlT2ZBY2Nlc3NlZCAmJiB0b1N0cmluZ0FjY2Vzc2VkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.5.4.20-2-42"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItNDIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTQyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gVHlwZUVycm9yIGV4Y2VwdGlvbiB3YXMgdGhyb3duICB3aGVuICd0aGlzJyBpcyBhbiBvYmplY3QgdGhhdCBib3RoIHRvU3RyaW5nIGFuZCB2YWx1ZU9mIHdvdWxkbid0IHJldHVybiBwcmltaXRpdmUgdmFsdWUuIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgdG9TdHJpbmdBY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICB2YXIgdmFsdWVPZkFjY2Vzc2VkID0gZmFsc2U7DQogICAgICAgIHZhciBvYmogPSB7DQogICAgICAgICAgICB0b1N0cmluZzogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHRvU3RyaW5nQWNjZXNzZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgIHJldHVybiB7fTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB2YWx1ZU9mOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdmFsdWVPZkFjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICByZXR1cm4ge307DQogICAgICAgICAgICB9DQogICAgICAgIH07DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBTdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbChvYmopOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gdmFsdWVPZkFjY2Vzc2VkICYmIHRvU3RyaW5nQWNjZXNzZWQgJiYgKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-2-43"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItNDMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTQzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gJ3RoaXMnIGlzIGFuIG9iamVjdCB3aXRoIGFuIG93biB2YWx1ZU9mIGFuZCBpbmhlcml0ZWQgdG9TdHJpbmcgbWV0aG9kcyB3aXRoIGhpbnQgc3RyaW5nLCB2ZXJpZnkgaW5oZXJpdGVkIHRvU3RyaW5nIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBmaXJzdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgdG9TdHJpbmdBY2Nlc3NlZCA9IGZhbHNlOw0KICAgICAgICB2YXIgdmFsdWVPZkFjY2Vzc2VkID0gZmFsc2U7DQoNCiAgICAgICAgdmFyIHByb3RvID0gew0KICAgICAgICAgICAgdG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB0b1N0cmluZ0FjY2Vzc2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gImFiYyI7DQogICAgICAgICAgICB9DQogICAgICAgIH07DQoNCiAgICAgICAgdmFyIENvbiA9IGZ1bmN0aW9uICgpIHsgfTsNCiAgICAgICAgQ29uLnByb3RvdHlwZSA9IHByb3RvOw0KDQogICAgICAgIHZhciBjaGlsZCA9IG5ldyBDb24oKTsNCiAgICAgICAgY2hpbGQudmFsdWVPZiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIHZhbHVlT2ZBY2Nlc3NlZCA9IHRydWU7DQogICAgICAgICAgICByZXR1cm4gImVmZyI7DQogICAgICAgIH07DQogICAgICAgIHJldHVybiAoU3RyaW5nLnByb3RvdHlwZS50cmltLmNhbGwoY2hpbGQpID09PSAiYWJjIikgJiYgdG9TdHJpbmdBY2Nlc3NlZCAmJiAhdmFsdWVPZkFjY2Vzc2VkOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.5.4.20-2-44"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItNDQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTQ0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gJ3RoaXMnIGlzIGEgc3RyaW5nIHRoYXQgY29udGFpbnMgZWFzdCBBc2lhbiBjaGFyYWN0ZXJzICh2YWx1ZSBpcyAnU0TlkpXlmZwnKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIHN0ciA9ICJTROWSleWZnCI7DQogICAgICAgIHJldHVybiBzdHIudHJpbSgpID09PSBzdHI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-2-45"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItNDUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTQ1LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gJ3RoaXMnIGlzIGEgc3RyaW5nIHRoYXQgY29udGFpbnMgd2hpdGUgc3BhY2UsIGNoYXJhY3RlciwgbnVtYmVyLCBvYmplY3QgYW5kIG51bGwgY2hhcmFjdGVycyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIHN0ciA9ICJhYmMiICsgIiAgICIgKyAxMjMgKyAiICAgIiArIHt9ICsgIiAgICAiICsgIlx1MDAwMCI7DQogICAgICAgIHZhciBzdHIxID0gIiAgICAiICsgc3RyICsgIiAgICAiOw0KICAgICAgICByZXR1cm4gc3RyMS50cmltKCkgPT09IHN0cjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.5.4.20-2-46"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItNDYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTQ2LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gJ3RoaXMnIGlzIGEgRnVuY3Rpb24gT2JqZWN0IHRoYXQgY29udmVydHMgdG8gYSBzdHJpbmciLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBmdW5PYmogPSBmdW5jdGlvbiAoKSB7IHJldHVybiBhcmd1bWVudHM7IH07DQogICAgICAgIHJldHVybiBTdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbChmdW5PYmopID09PSAiZnVuY3Rpb24gKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9IjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.5.4.20-2-47"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItNDciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTQ3LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gJ3RoaXMnIGlzIGEgb2JqZWN0IE9iamVjdCB0aGF0IGNvbnZlcnRzIHRvIGEgc3RyaW5nIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICByZXR1cm4gU3RyaW5nLnByb3RvdHlwZS50cmltLmNhbGwoe30pID09PSAiW29iamVjdCBPYmplY3RdIjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.5.4.20-2-48"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItNDgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTQ4LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gJ3RoaXMnIGlzIGEgRGF0ZSBPYmplY3QgdGhhdCBjb252ZXJ0cyB0byBhIHN0cmluZyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIGRhdGVPYmogPSBuZXcgRGF0ZSgpOw0KICAgICAgICByZXR1cm4gU3RyaW5nLnByb3RvdHlwZS50cmltLmNhbGwoZGF0ZU9iaikgPT09IGRhdGVPYmoudG9TdHJpbmcoKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.5.4.20-2-49"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItNDkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTQ5LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gJ3RoaXMnIGlzIGEgUmVnRXhwIE9iamVjdCB0aGF0IGNvbnZlcnRzIHRvIGEgc3RyaW5nIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgcmVnT2JqID0gbmV3IFJlZ0V4cCgvdGVzdC8pOw0KICAgICAgICByZXR1cm4gU3RyaW5nLnByb3RvdHlwZS50cmltLmNhbGwocmVnT2JqKSA9PT0gIi90ZXN0LyI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-2-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTItNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSAtIGFyZ3VtZW50ICd0aGlzJyBpcyBhIG51bWJlciB0aGF0IGNvbnZlcnRzIHRvIGEgc3RyaW5nICh2YWx1ZSBpcyArMCkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHJldHVybiBTdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbCgrMCkgPT09ICIwIjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.5.4.20-2-50"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItNTAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTUwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gJ3RoaXMnIGlzIGEgRXJyb3IgT2JqZWN0IHRoYXQgY29udmVydHMgdG8gYSBzdHJpbmciLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBlcnJPYmogPSBuZXcgRXJyb3IoInRlc3QiKTsNCiAgICAgICAgcmV0dXJuIFN0cmluZy5wcm90b3R5cGUudHJpbS5jYWxsKGVyck9iaikgPT09ICJFcnJvcjogdGVzdCI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-2-51"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItNTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTUxLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gJ3RoaXMnIGlzIGEgQXJndW1lbnRzIE9iamVjdCB0aGF0IGNvbnZlcnRzIHRvIGEgc3RyaW5nIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgYXJnT2JqID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9ICgxLCAyLCB0cnVlKTsNCiAgICAgICAgcmV0dXJuIFN0cmluZy5wcm90b3R5cGUudHJpbS5jYWxsKGFyZ09iaikgPT09ICJbb2JqZWN0IEFyZ3VtZW50c10iOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.5.4.20-2-52"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItNTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0yLTUyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gJ3RoaXMnIGlzIHRoZSBob3N0IG9iamVjdCAtIGZuR2xvYmFsT2JqZWN0KCkgdGhhdCBjb252ZXJ0cyB0byBhIHN0cmluZyIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgcmV0dXJuIFN0cmluZy5wcm90b3R5cGUudHJpbS5jYWxsKGZuR2xvYmFsT2JqZWN0KCkpID09PSBmbkdsb2JhbE9iamVjdCgpLnRvU3RyaW5nKCkudHJpbSgpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.5.4.20-2-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItNiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTItNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSAtIGFyZ3VtZW50ICd0aGlzJyBpcyBhIG51bWJlciB0aGF0IGNvbnZlcnRzIHRvIGEgc3RyaW5nICh2YWx1ZSBpcyAtMCkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHJldHVybiBTdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbCgtMCkgPT09ICIwIjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.5.4.20-2-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTItNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSAtIGFyZ3VtZW50ICd0aGlzJyBpcyBhIG51bWJlciB0aGF0IGNvbnZlcnRzIHRvIGEgc3RyaW5nICh2YWx1ZSBpcyBwb3NpdGl2ZSBudW1iZXIpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICByZXR1cm4gU3RyaW5nLnByb3RvdHlwZS50cmltLmNhbGwoMzApID09PSAiMzAiOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.5.4.20-2-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTItOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSAtIGFyZ3VtZW50ICd0aGlzJyBpcyBhIG51bWJlciB0aGF0IGNvbnZlcnRzIHRvIGEgc3RyaW5nICh2YWx1ZSBpcyBuZWdhdGl2ZSBudW1iZXIpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICByZXR1cm4gU3RyaW5nLnByb3RvdHlwZS50cmltLmNhbGwoLTIwKSA9PT0gIi0yMCI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-2-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTItOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTItOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSAtIGFyZ3VtZW50ICd0aGlzJyBpcyBhIG51bWJlciB0aGF0IGNvbnZlcnRzIHRvIGEgc3RyaW5nICh2YWx1ZSBpcyBJbmZpbml0eSkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHJldHVybiBTdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbChJbmZpbml0eSkgPT09ICJJbmZpbml0eSI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-3-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTMtMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTMtMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSAtICdTJyBpcyBhIHN0cmluZyB3aXRoIGFsbCBMaW5lVGVybWluYXRvciIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgbGluZVRlcm1pbmF0b3JzU3RyID0gIlx1MDAwQVx1MDAwRFx1MjAyOFx1MjAyOSI7DQogICAgICAgIHJldHVybiAobGluZVRlcm1pbmF0b3JzU3RyLnRyaW0oKSA9PT0gIiIpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.5.4.20-3-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTMtMTAiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0zLTEwLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gJ1MnIGlzIGEgc3RyaW5nIHdpdGggbnVsbCBjaGFyYWN0ZXIgKCdcdTAwMDAnKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgcmV0dXJuICJcdTAwMDAiLnRyaW0oKSA9PT0gIlx1MDAwMCI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-3-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTMtMTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0zLTExLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gJ1MnIGlzIGEgc3RyaW5nIHRoYXQgc3RhcnRzIHdpdGggbnVsbCBjaGFyYWN0ZXIiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHJldHVybiAiXDBcdTAwMDBhYmMiLnRyaW0oKSA9PT0gIlwwXHUwMDAwYWJjIjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.5.4.20-3-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTMtMTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0zLTEyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gJ1MnIGlzIGEgc3RyaW5nIHRoYXQgZW5kcyB3aXRoIG51bGwgY2hhcmFjdGVyIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICByZXR1cm4gImFiY1wwXHUwMDAwIi50cmltKCkgPT09ICJhYmNcMFx1MDAwMCI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-3-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTMtMTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0zLTEzLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gJ1MnIGlzIGEgc3RyaW5nIHRoYXQgc3RhcnRzIHdpdGggbnVsbCBjaGFyYWN0ZXIgYW5kIGVuZHMgd2l0aCBudWxsIGNoYXJhY3RlciIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgcmV0dXJuICJcMFx1MDAwMGFiY1wwXHUwMDAwIi50cmltKCkgPT09ICJcMFx1MDAwMGFiY1wwXHUwMDAwIjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.5.4.20-3-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTMtMTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNS8xNS41LjQvMTUuNS40LjIwLzE1LjUuNC4yMC0zLTE0LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiU3RyaW5nLnByb3RvdHlwZS50cmltIC0gJ1MnIGlzIGEgc3RyaW5nIHRoYXQgaGFzIG51bGwgY2hhcmFjdGVyIGluIHRoZSBtaWRkbGUiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgICAgICByZXR1cm4gImFcMFx1MDAwMGJjIi50cmltKCkgPT09ICJhXDBcdTAwMDBiYyI7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-3-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTMtMiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTMtMi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSAtICdTJyBpcyBhIHN0cmluZyB3aXRoIGFsbCBXaGl0ZVNwYWNlIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciB3aGl0ZVNwYWNlc1N0ciA9ICJcdTAwMDlcdTAwMEFcdTAwMEJcdTAwMENcdTAwMERcdTAwMjBcdTAwODVcdTAwQTBcdTE2ODBcdTE4MEVcdTIwMDBcdTIwMDFcdTIwMDJcdTIwMDNcdTIwMDRcdTIwMDVcdTIwMDZcdTIwMDdcdTIwMDhcdTIwMDlcdTIwMEFcdTIwMjhcdTIwMjlcdTIwMkZcdTIwNUZcdTMwMDBcdUZFRkYiOw0KICAgICAgICByZXR1cm4gKHdoaXRlU3BhY2VzU3RyLnRyaW0oKSA9PT0gIiIpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.5.4.20-3-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTMtMyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTMtMy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSAtICdTJyBpcyBhIHN0cmluZyB3aXRoIGFsbCB1bmlvbiBvZiBXaGl0ZVNwYWNlIGFuZCBMaW5lVGVybWluYXRvciIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIGxpbmVUZXJtaW5hdG9yc1N0ciA9ICJcdTAwMEFcdTAwMERcdTIwMjhcdTIwMjkiOw0KICAgICAgICB2YXIgd2hpdGVTcGFjZXNTdHIgPSAiXHUwMDA5XHUwMDBBXHUwMDBCXHUwMDBDXHUwMDBEXHUwMDIwXHUwMDg1XHUwMEEwXHUxNjgwXHUxODBFXHUyMDAwXHUyMDAxXHUyMDAyXHUyMDAzXHUyMDA0XHUyMDA1XHUyMDA2XHUyMDA3XHUyMDA4XHUyMDA5XHUyMDBBXHUyMDI4XHUyMDI5XHUyMDJGXHUyMDVGXHUzMDAwXHVGRUZGIjsNCiAgICAgICAgdmFyIHN0ciA9IHdoaXRlU3BhY2VzU3RyICsgbGluZVRlcm1pbmF0b3JzU3RyOw0KDQogICAgICAgIHJldHVybiAoc3RyLnRyaW0oKSA9PT0gIiIpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.5.4.20-3-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTMtNCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTMtNC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSAtICdTJyBpcyBhIHN0cmluZyBzdGFydCB3aXRoIHVuaW9uIG9mIGFsbCBMaW5lVGVybWluYXRvciBhbmQgYWxsIFdoaXRlU3BhY2UiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBsaW5lVGVybWluYXRvcnNTdHIgPSAiXHUwMDBBXHUwMDBEXHUyMDI4XHUyMDI5IjsNCiAgICAgICAgdmFyIHdoaXRlU3BhY2VzU3RyID0gIlx1MDAwOVx1MDAwQVx1MDAwQlx1MDAwQ1x1MDAwRFx1MDAyMFx1MDA4NVx1MDBBMFx1MTY4MFx1MTgwRVx1MjAwMFx1MjAwMVx1MjAwMlx1MjAwM1x1MjAwNFx1MjAwNVx1MjAwNlx1MjAwN1x1MjAwOFx1MjAwOVx1MjAwQVx1MjAyOFx1MjAyOVx1MjAyRlx1MjA1Rlx1MzAwMFx1RkVGRiI7DQogICAgICAgIHZhciBzdHIgPSB3aGl0ZVNwYWNlc1N0ciArIGxpbmVUZXJtaW5hdG9yc1N0ciArICJhYmMiOw0KDQogICAgICAgIHJldHVybiAoc3RyLnRyaW0oKSA9PT0gImFiYyIpOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.5.4.20-3-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTMtNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTMtNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSAtICdTJyBpcyBhIHN0cmluZyBlbmQgd2l0aCB1bmlvbiBvZiBhbGwgTGluZVRlcm1pbmF0b3IgYW5kIGFsbCBXaGl0ZVNwYWNlIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgbGluZVRlcm1pbmF0b3JzU3RyID0gIlx1MDAwQVx1MDAwRFx1MjAyOFx1MjAyOSI7DQogICAgICAgIHZhciB3aGl0ZVNwYWNlc1N0ciA9ICJcdTAwMDlcdTAwMEFcdTAwMEJcdTAwMENcdTAwMERcdTAwMjBcdTAwODVcdTAwQTBcdTE2ODBcdTE4MEVcdTIwMDBcdTIwMDFcdTIwMDJcdTIwMDNcdTIwMDRcdTIwMDVcdTIwMDZcdTIwMDdcdTIwMDhcdTIwMDlcdTIwMEFcdTIwMjhcdTIwMjlcdTIwMkZcdTIwNUZcdTMwMDBcdUZFRkYiOw0KICAgICAgICB2YXIgc3RyID0gImFiYyIgKyB3aGl0ZVNwYWNlc1N0ciArIGxpbmVUZXJtaW5hdG9yc1N0ciA7DQoNCiAgICAgICAgcmV0dXJuIChzdHIudHJpbSgpID09PSAiYWJjIik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-3-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTMtNiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTMtNi5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSAtICdTJyBpcyBhIHN0cmluZyBzdGFydCB3aXRoIHVuaW9uIG9mIGFsbCBMaW5lVGVybWluYXRvciBhbmQgYWxsIFdoaXRlU3BhY2UgYW5kIGVuZCB3aXRoIHVuaW9uIG9mIGFsbCBMaW5lVGVybWluYXRvciBhbmQgYWxsIFdoaXRlU3BhY2UiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBsaW5lVGVybWluYXRvcnNTdHIgPSAiXHUwMDBBXHUwMDBEXHUyMDI4XHUyMDI5IjsNCiAgICAgICAgdmFyIHdoaXRlU3BhY2VzU3RyID0gIlx1MDAwOVx1MDAwQVx1MDAwQlx1MDAwQ1x1MDAwRFx1MDAyMFx1MDA4NVx1MDBBMFx1MTY4MFx1MTgwRVx1MjAwMFx1MjAwMVx1MjAwMlx1MjAwM1x1MjAwNFx1MjAwNVx1MjAwNlx1MjAwN1x1MjAwOFx1MjAwOVx1MjAwQVx1MjAyOFx1MjAyOVx1MjAyRlx1MjA1Rlx1MzAwMFx1RkVGRiI7DQogICAgICAgIHZhciBzdHIgPSB3aGl0ZVNwYWNlc1N0ciArIGxpbmVUZXJtaW5hdG9yc1N0ciArICJhYmMiICsgd2hpdGVTcGFjZXNTdHIgKyBsaW5lVGVybWluYXRvcnNTdHI7DQoNCiAgICAgICAgcmV0dXJuIChzdHIudHJpbSgpID09PSAiYWJjIik7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-3-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTMtNyIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTMtNy5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSAtICdTJyBpcyBhIHN0cmluZyB0aGF0IHVuaW9uIG9mIExpbmVUZXJtaW5hdG9yIGFuZCBXaGl0ZVNwYWNlIGluIHRoZSBtaWRkbGUiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBsaW5lVGVybWluYXRvcnNTdHIgPSAiXHUwMDBBXHUwMDBEXHUyMDI4XHUyMDI5IjsNCiAgICAgICAgdmFyIHdoaXRlU3BhY2VzU3RyID0gIlx1MDAwOVx1MDAwQVx1MDAwQlx1MDAwQ1x1MDAwRFx1MDAyMFx1MDA4NVx1MDBBMFx1MTY4MFx1MTgwRVx1MjAwMFx1MjAwMVx1MjAwMlx1MjAwM1x1MjAwNFx1MjAwNVx1MjAwNlx1MjAwN1x1MjAwOFx1MjAwOVx1MjAwQVx1MjAyOFx1MjAyOVx1MjAyRlx1MjA1Rlx1MzAwMFx1RkVGRiI7DQogICAgICAgIHZhciBzdHIgPSAiYWIiICsgd2hpdGVTcGFjZXNTdHIgKyBsaW5lVGVybWluYXRvcnNTdHIgKyAiY2QiOw0KDQogICAgICAgIHJldHVybiAoc3RyLnRyaW0oKSA9PT0gc3RyKTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.5.4.20-3-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTMtOCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTMtOC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSAtICdTJyBpcyBhIHN0cmluZyB3aXRoIGFsbCBudWxsIGNoYXJhY3RlciIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgcmV0dXJuICJcMFx1MDAwMCIudHJpbSgpID09PSAiXDBcdTAwMDAiOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="15.5.4.20-3-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiMTUuNS40LjIwLTMtOSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTMtOS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSAtICdTJyBpcyBhIHN0cmluZyB3aXRoIG51bGwgY2hhcmFjdGVyICgnXDAnKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgICAgIHJldHVybiAiXDAiLnRyaW0oKSA9PT0gIlwwIjsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KICAgIH0NCn0pOw0K]]></test>
<test id="15.5.4.20-4-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTQtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjUvMTUuNS40LzE1LjUuNC4yMC8xNS41LjQuMjAtNC0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJTdHJpbmcucHJvdG90eXBlLnRyaW0gaGFuZGxlcyBtdWx0aWxpbmUgc3RyaW5nIHdpdGggd2hpdGVwYWNlIGFuZCBsaW5ldGVybWluYXRvcnMiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCnZhciBzID0gIlx1MDAwOWEgYlwNCmMgXHUwMDA5Ig0KDQogICAgICAgICAgICANCiAgaWYgKHMudHJpbSgpID09PSAiYSBiYyIpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiB9DQp9KTsNCg==]]></test>
<test id="15.5.4.20-4-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTQtMTAiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTQtMTAuanMiLA0KDQpkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSBoYW5kbGVzIHdoaXRlcGFjZSBhbmQgbGluZXRlcm1pbmF0b3JzIChcXHVGRUZGYWJjKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICByZXR1cm4gIlx1RkVGRmFiYyIudHJpbSgpID09PSAiYWJjIjsNCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogfQ0KfSk7DQo=]]></test>
<test id="15.5.4.20-4-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTQtMTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTQtMTEuanMiLA0KDQpkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSBoYW5kbGVzIHdoaXRlcGFjZSBhbmQgbGluZXRlcm1pbmF0b3JzIChhYmNcXHUwMDA5KSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICBpZiAoImFiY1x1MDAwOSIudHJpbSgpID09PSAiYWJjIikgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KIH0NCn0pOw0K]]></test>

View File

@ -2,7 +2,7 @@
<!-- adding section element if in the future we want to store information about the -->
<!-- spec structure in this file, for now the section structure is defined in the -->
<!-- sections.js file -->
<section name="Chapter - chapter07" numTests="129">
<section name="Chapter - chapter07" numTests="165">
<test id="7.6.1-1-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LjEtMS0xIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYuMS83LjYuMS0xLTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBbGxvdyByZXNlcnZlZCB3b3JkcyBhcyBwcm9wZXJ0eSBuYW1lcyBhdCBvYmplY3QgaW5pdGlhbGl6YXRpb24sIHZlcmlmaWVkIHdpdGggaGFzT3duUHJvcGVydHk6IG51bGwsIHRydWUsIGZhbHNlIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCl7ICAgICAgDQogICAgICAgIHZhciB0b2tlbkNvZGVzICA9IHsgDQogICAgICAgICAgICBudWxsOiAwLA0KICAgICAgICAgICAgdHJ1ZTogMSwNCiAgICAgICAgICAgIGZhbHNlOiAyDQogICAgICAgIH07DQogICAgICAgIHZhciBhcnIgPSBbDQogICAgICAgICAgICAnbnVsbCcsDQogICAgICAgICAgICAndHJ1ZScsDQogICAgICAgICAgICAnZmFsc2UnDQogICAgICAgIF07ICAgICAgICANCiAgICAgICAgZm9yKHZhciBwIGluIHRva2VuQ29kZXMpIHsNCiAgICAgICAgICAgIGZvcih2YXIgcDEgaW4gYXJyKSB7DQogICAgICAgICAgICAgICAgaWYoYXJyW3AxXSA9PT0gcCkgeyAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICBpZighdG9rZW5Db2Rlcy5oYXNPd25Qcm9wZXJ0eShhcnJbcDFdKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gdHJ1ZTsNCn0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsgcmV0dXJuIHRydWU7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="7.6.1-1-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LjEtMS0xMCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIwNy83LjYvNy42LjEvNy42LjEtMS0xMC5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFsbG93IHJlc2VydmVkIHdvcmRzIGFzIHByb3BlcnR5IG5hbWVzIGF0IG9iamVjdCBpbml0aWFsaXphdGlvbiwgdmVyaWZpZWQgd2l0aCBoYXNPd25Qcm9wZXJ0eTogaW4sIHRyeSwgY2xhc3MiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKXsgICAgICANCiAgICAgICAgdmFyIHRva2VuQ29kZXMgID0geyANCiAgICAgICAgICAgIGluOiAwLCANCiAgICAgICAgICAgIHRyeTogMSwNCiAgICAgICAgICAgIGNsYXNzOiAyDQogICAgICAgIH07DQogICAgICAgIHZhciBhcnIgPSBbDQogICAgICAgICAgICAnaW4nLCANCiAgICAgICAgICAgICd0cnknLA0KICAgICAgICAgICAgJ2NsYXNzJw0KICAgICAgICBdOyAgICAgICAgDQogICAgICAgIGZvcih2YXIgcCBpbiB0b2tlbkNvZGVzKSB7DQogICAgICAgICAgICBmb3IodmFyIHAxIGluIGFycikgew0KICAgICAgICAgICAgICAgIGlmKGFycltwMV0gPT09IHApIHsgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgaWYoIXRva2VuQ29kZXMuaGFzT3duUHJvcGVydHkoYXJyW3AxXSkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRydWU7DQp9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7IHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="7.6.1-1-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LjEtMS0xMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIwNy83LjYvNy42LjEvNy42LjEtMS0xMS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFsbG93IHJlc2VydmVkIHdvcmRzIGFzIHByb3BlcnR5IG5hbWVzIGF0IG9iamVjdCBpbml0aWFsaXphdGlvbiwgdmVyaWZpZWQgd2l0aCBoYXNPd25Qcm9wZXJ0eTogZW51bSwgZXh0ZW5kcywgc3VwZXIiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKXsgICAgICANCiAgICAgICAgdmFyIHRva2VuQ29kZXMgID0geyANCiAgICAgICAgICAgIGVudW06IDAsDQogICAgICAgICAgICBleHRlbmRzOiAxLA0KICAgICAgICAgICAgc3VwZXI6IDINCiAgICAgICAgfTsNCiAgICAgICAgdmFyIGFyciA9IFsNCiAgICAgICAgICAgICdlbnVtJywNCiAgICAgICAgICAgICdleHRlbmRzJywNCiAgICAgICAgICAgICdzdXBlcicNCiAgICAgICAgXTsgICAgICAgIA0KICAgICAgICBmb3IodmFyIHAgaW4gdG9rZW5Db2Rlcykgew0KICAgICAgICAgICAgZm9yKHZhciBwMSBpbiBhcnIpIHsNCiAgICAgICAgICAgICAgICBpZihhcnJbcDFdID09PSBwKSB7ICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIGlmKCF0b2tlbkNvZGVzLmhhc093blByb3BlcnR5KGFycltwMV0pKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHJldHVybiB0cnVlOw0KfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgeyByZXR1cm4gdHJ1ZTsNCiAgICB9DQp9KTsNCg==]]></test>
@ -131,6 +131,42 @@
<test id="7.6.1-8-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LjEtOC03IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYuMS83LjYuMS04LTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBbGxvdyByZXNlcnZlZCB3b3JkcyBhcyBwcm9wZXJ0eSBuYW1lcyBieSBzZXQgZnVuY3Rpb24gd2l0aGluIGFuIG9iamVjdCwgYWNjZXNzZWQgdmlhIGluZGV4aW5nOiB3aGlsZSwgZGVidWdnZXIsIGZ1bmN0aW9uIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgdGVzdDAgPSAwLCB0ZXN0MSA9IDEsIHRlc3QyID0gMjsNCiAgICAgICAgdmFyIHRva2VuQ29kZXMgID0gew0KICAgICAgICAgICAgc2V0IHdoaWxlKHZhbHVlKXsNCiAgICAgICAgICAgICAgICB0ZXN0MCA9IHZhbHVlOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGdldCB3aGlsZSgpew0KICAgICAgICAgICAgICAgIHJldHVybiB0ZXN0MA0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHNldCBkZWJ1Z2dlcih2YWx1ZSl7DQogICAgICAgICAgICAgICAgdGVzdDEgPSB2YWx1ZTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBnZXQgZGVidWdnZXIoKXsNCiAgICAgICAgICAgICAgICByZXR1cm4gdGVzdDE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgc2V0IGZ1bmN0aW9uKHZhbHVlKXsNCiAgICAgICAgICAgICAgICB0ZXN0MiA9IHZhbHVlOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGdldCBmdW5jdGlvbigpew0KICAgICAgICAgICAgICAgIHJldHVybiB0ZXN0MjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfTsgDQogICAgICAgIHZhciBhcnIgPSBbDQogICAgICAgICAgICAnd2hpbGUnICwNCiAgICAgICAgICAgICdkZWJ1Z2dlcicsIA0KICAgICAgICAgICAgJ2Z1bmN0aW9uJw0KICAgICAgICBdOw0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKHRva2VuQ29kZXNbYXJyW2ldXSAhPT0gaSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgeyByZXR1cm4gdHJ1ZTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="7.6.1-8-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LjEtOC04IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYuMS83LjYuMS04LTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBbGxvdyByZXNlcnZlZCB3b3JkcyBhcyBwcm9wZXJ0eSBuYW1lcyBieSBzZXQgZnVuY3Rpb24gd2l0aGluIGFuIG9iamVjdCwgYWNjZXNzZWQgdmlhIGluZGV4aW5nOiB0aGlzLCB3aXRoLCBkZWZhdWx0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgdGVzdDAgPSAwLCB0ZXN0MSA9IDEsIHRlc3QyID0gMjsNCiAgICAgICAgdmFyIHRva2VuQ29kZXMgID0gew0KICAgICAgICAgICAgc2V0IHRoaXModmFsdWUpew0KICAgICAgICAgICAgICAgIHRlc3QwID0gdmFsdWU7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgZ2V0IHRoaXMoKXsNCiAgICAgICAgICAgICAgICByZXR1cm4gdGVzdDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgc2V0IHdpdGgodmFsdWUpew0KICAgICAgICAgICAgICAgIHRlc3QxID0gdmFsdWU7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgZ2V0IHdpdGgoKXsNCiAgICAgICAgICAgICAgICByZXR1cm4gdGVzdDE7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgc2V0IGRlZmF1bHQodmFsdWUpew0KICAgICAgICAgICAgICAgIHRlc3QyID0gdmFsdWU7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgZ2V0IGRlZmF1bHQoKXsNCiAgICAgICAgICAgICAgICByZXR1cm4gdGVzdDI7DQogICAgICAgICAgICB9DQogICAgICAgIH07IA0KICAgICAgICB2YXIgYXJyID0gWw0KICAgICAgICAgICAgJ3RoaXMnLCANCiAgICAgICAgICAgICd3aXRoJywgDQogICAgICAgICAgICAnZGVmYXVsdCcNCiAgICAgICAgXTsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmICh0b2tlbkNvZGVzW2FycltpXV0gIT09IGkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsgcmV0dXJuIHRydWU7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="7.6.1-8-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LjEtOC05IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYuMS83LjYuMS04LTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBbGxvdyByZXNlcnZlZCB3b3JkcyBhcyBwcm9wZXJ0eSBuYW1lcyBieSBzZXQgZnVuY3Rpb24gd2l0aGluIGFuIG9iamVjdCwgYWNjZXNzZWQgdmlhIGluZGV4aW5nOiBpZiwgdGhyb3csIGRlbGV0ZSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIHRlc3QwID0gMCwgdGVzdDEgPSAxLCB0ZXN0MiA9IDI7DQogICAgICAgIHZhciB0b2tlbkNvZGVzICA9IHsNCiAgICAgICAgICAgIHNldCBpZih2YWx1ZSl7DQogICAgICAgICAgICAgICAgdGVzdDAgPSB2YWx1ZTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBnZXQgaWYoKXsNCiAgICAgICAgICAgICAgICByZXR1cm4gdGVzdDA7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgc2V0IHRocm93KHZhbHVlKXsNCiAgICAgICAgICAgICAgICB0ZXN0MSA9IHZhbHVlOw0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIGdldCB0aHJvdygpew0KICAgICAgICAgICAgICAgIHJldHVybiB0ZXN0MQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHNldCBkZWxldGUodmFsdWUpew0KICAgICAgICAgICAgICAgIHRlc3QyID0gdmFsdWU7DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgZ2V0IGRlbGV0ZSgpew0KICAgICAgICAgICAgICAgIHJldHVybiB0ZXN0MjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfTsgDQogICAgICAgIHZhciBhcnIgPSBbDQogICAgICAgICAgICAnaWYnLCANCiAgICAgICAgICAgICd0aHJvdycsIA0KICAgICAgICAgICAgJ2RlbGV0ZScNCiAgICAgICAgXTsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmICh0b2tlbkNvZGVzW2FycltpXV0gIT09IGkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsgcmV0dXJuIHRydWU7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="7.6-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMDcvNy42LzcuNi0xLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiNy42IC0gU3ludGF4RXJyb3IgZXhwZWN0ZWQ6IHJlc2VydmVkIHdvcmRzIHVzZWQgYXMgSWRlbnRpZmllciBOYW1lcyBpbiBVVEY4OiBcdTAwNmV1bGwgKG51bGwpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBldmFsKCJ2YXIgXHUwMDZldWxsID0gMTIzOyIpOyAgDQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7ICANCiAgICAgICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7IA0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="7.6-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTEwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMTAuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IG5cdTAwNjV3IChuZXcpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBldmFsKCJ2YXIgblx1MDA2NXcgPSAxMjM7Iik7ICANCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsgIA0KICAgICAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsgDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="7.6-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTExIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IHZhXHUwMDcyICh2YXIpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBldmFsKCJ2YXIgdmFcdTAwNzIgPSAxMjM7Iik7ICANCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsgIA0KICAgICAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsgDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="7.6-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTEyIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMTIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IFx1MDA3NFx1MDA3Mlx1MDA3OSAodHJ5KSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgZXZhbCgidmFyIFx1MDA3NFx1MDA3Mlx1MDA3OSA9IDEyMzsiKTsgIA0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOyAgDQogICAgICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgeyANCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="7.6-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTEzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMTMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IFx1MDA2M2F0Y2ggKGNhdGNoKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgZXZhbCgidmFyIFx1MDA2M2F0Y2ggPSAxMjM7Iik7ICANCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsgIA0KICAgICAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsgDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="7.6-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTE0IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMTQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IGZpbmFcdTAwNmNseSAoZmluYWxseSkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIGV2YWwoInZhciBmaW5hXHUwMDZjbHkgPSAxMjM7Iik7ICANCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsgIA0KICAgICAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsgDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="7.6-15"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTE1IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMTUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IHJldHVyXHUwMDZlIChyZXR1cm4pIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBldmFsKCJ2YXIgcmV0dXJcdTAwNmUgPSAxMjM7Iik7ICANCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsgIA0KICAgICAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsgDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="7.6-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTE2IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMTYuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IFx1MDA3Nlx1MDA2Zlx1MDA2OVx1MDA2NCAodm9pZCkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIGV2YWwoInZhciBcdTAwNzZcdTAwNmZcdTAwNjlcdTAwNjQgPSAxMjM7Iik7ICANCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsgIA0KICAgICAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsgDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="7.6-17"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTE3IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMTcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IFx1MDA2M29udGludWUgKGNvbnRpbnVlKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgZXZhbCgidmFyIFx1MDA2M29udGludWUgPSAxMjM7Iik7ICANCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsgIA0KICAgICAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsgDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="7.6-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTE4IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMTguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IGZcdTAwNmZyIChmb3IpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBldmFsKCJ2YXIgZlx1MDA2ZnIgPSAxMjM7Iik7ICANCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsgIA0KICAgICAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsgDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="7.6-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTE5IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMTkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IHN3aXRjXHUwMDY4IChzd2l0Y2gpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBldmFsKCJ2YXIgc3dpdGNcdTAwNjggPSAxMjM7Iik7ICANCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsgIA0KICAgICAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsgDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="7.6-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMDcvNy42LzcuNi0yLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiNy42IC0gU3ludGF4RXJyb3IgZXhwZWN0ZWQ6IHJlc2VydmVkIHdvcmRzIHVzZWQgYXMgSWRlbnRpZmllciBOYW1lcyBpbiBVVEY4OiB0clx1MDA3NWUgKHRydWUpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBldmFsKCJ2YXIgdHJcdTAwNzVlID0gMTIzOyIpOyAgDQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7ICANCiAgICAgICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7IA0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="7.6-20"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTIwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMjAuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IFx1MDA3N1x1MDA2OFx1MDA2OVx1MDA2Y1x1MDA2NSAod2hpbGUpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBldmFsKCJ2YXIgXHUwMDc3XHUwMDY4XHUwMDY5XHUwMDZjXHUwMDY1ID0gMTIzOyIpOyAgDQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7ICANCiAgICAgICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7IA0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="7.6-21"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTIxIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMjEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IFx1MDA2NGVidWdnZXIgKGRlYnVnZ2VyKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgZXZhbCgidmFyIFx1MDA2NGVidWdnZXIgPSAxMjM7Iik7ICANCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsgIA0KICAgICAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsgDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="7.6-22"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTIyIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMjIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IGZ1bmNcdTAwNzRpb24gKGZ1bmN0aW9uKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgZXZhbCgidmFyIGZ1bmNcdTAwNzRpb24gPSAxMjM7Iik7ICANCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsgIA0KICAgICAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsgDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="7.6-23"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTIzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMjMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IHRoaVx1MDA3MyAodGhpcykiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIGV2YWwoInZhciB0aGlcdTAwNzMgPSAxMjM7Iik7ICANCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsgIA0KICAgICAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsgDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="7.6-24"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTI0IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMjQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IFx1MDA2OVx1MDA2NiAoaWYpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBldmFsKCJ2YXIgXHUwMDY5XHUwMDY2ID0gMTIzOyIpOyAgDQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7ICANCiAgICAgICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7IA0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="7.6-25"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTI1IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMjUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IFx1MDA3N2l0aCAod2l0aCkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIGV2YWwoInZhciBcdTAwNzdpdGggPSAxMjM7Iik7ICANCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsgIA0KICAgICAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsgDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="7.6-26"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTI2IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMjYuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IGRlZlx1MDA2MXVsdCAoZGVmYXVsdCkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIGV2YWwoInZhciBkZWZcdTAwNjF1bHQgPSAxMjM7Iik7ICANCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsgIA0KICAgICAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsgDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="7.6-27"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTI3IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMjcuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IHRocm9cdTAwNzcgKHRocm93KSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgZXZhbCgidmFyIHRocm9cdTAwNzcgPSAxMjM7Iik7ICANCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsgIA0KICAgICAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsgDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="7.6-28"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTI4IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMjguanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IFx1MDA2OVx1MDA2ZSAoaW4pIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBldmFsKCJ2YXIgXHUwMDY5XHUwMDZlID0gMTIzOyIpOyAgDQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7ICANCiAgICAgICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7IA0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="7.6-29"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTI5IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMjkuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IFx1MDA2NGVsZXRlIChkZWxldGUpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBldmFsKCJ2YXIgXHUwMDY0ZWxldGUgPSAxMjM7Iik7ICANCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsgIA0KICAgICAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsgDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="7.6-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTMiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMDcvNy42LzcuNi0zLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiNy42IC0gU3ludGF4RXJyb3IgZXhwZWN0ZWQ6IHJlc2VydmVkIHdvcmRzIHVzZWQgYXMgSWRlbnRpZmllciBOYW1lcyBpbiBVVEY4OiBmYWxzXHUwMDY1IChmYWxzZSkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIGV2YWwoInZhciBmYWxzXHUwMDY1ID0gMTIzOyIpOyAgDQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7ICANCiAgICAgICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7IA0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="7.6-30"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTMwIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMzAuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IGNsYVx1MDA3M3MgKGNsYXNzKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgZXZhbCgidmFyIGNsYVx1MDA3M3MgPSAxMjM7Iik7ICANCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsgIA0KICAgICAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsgDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="7.6-31"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTMxIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMzEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IGV4dGVuZFx1MDA3MyAoZXh0ZW5kcykiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIGV2YWwoInZhciBleHRlbmRcdTAwNzMgPSAxMjM7Iik7ICANCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsgIA0KICAgICAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsgDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="7.6-32"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTMyIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMzIuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IFx1MDA2NVx1MDA2ZVx1MDA3NVx1MDA2ZCAoZW51bSkiLA0KDQogICAgdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIGV2YWwoInZhciBcdTAwNjVcdTAwNmVcdTAwNzVcdTAwNmQgPSAxMjM7Iik7ICANCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsgIA0KICAgICAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsgDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="7.6-33"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTMzIiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMzMuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IFx1MDA3M3VwZXIgKHN1cGVyKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgZXZhbCgidmFyIFx1MDA3M3VwZXIgPSAxMjM7Iik7ICANCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsgIA0KICAgICAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsgDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="7.6-34"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTM0IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMzQuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IGNvXHUwMDZlc3QgKGNvbnN0KSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgZXZhbCgidmFyIGNvXHUwMDZlc3QgPSAxMjM7Iik7ICANCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsgIA0KICAgICAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsgDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="7.6-35"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTM1IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMzUuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IGV4cG9yXHUwMDc0IChleHBvcnQpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBldmFsKCJ2YXIgZXhwb3JcdTAwNzQgPSAxMjM7Iik7ICANCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsgIA0KICAgICAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsgDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCn0pOw0K]]></test>
<test id="7.6-36"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTM2IiwNCg0KICAgIHBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjA3LzcuNi83LjYtMzYuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICI3LjYgLSBTeW50YXhFcnJvciBleHBlY3RlZDogcmVzZXJ2ZWQgd29yZHMgdXNlZCBhcyBJZGVudGlmaWVyIE5hbWVzIGluIFVURjg6IFx1MDA2OVx1MDA2ZFx1MDA3MFx1MDA2Zlx1MDA3Mlx1MDA3NCAoaW1wb3J0KSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgZXZhbCgidmFyIFx1MDA2OVx1MDA2ZFx1MDA3MFx1MDA2Zlx1MDA3Mlx1MDA3NCA9IDEyMzsiKTsgIA0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOyAgDQogICAgICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgeyANCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="7.6-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTQiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMDcvNy42LzcuNi00LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiNy42IC0gU3ludGF4RXJyb3IgZXhwZWN0ZWQ6IHJlc2VydmVkIHdvcmRzIHVzZWQgYXMgSWRlbnRpZmllciBOYW1lcyBpbiBVVEY4OiBcdTAwNjJcdTAwNzJcdTAwNjVcdTAwNjFcdTAwNmIgKGJyZWFrKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgZXZhbCgidmFyIFx1MDA2Mlx1MDA3Mlx1MDA2NVx1MDA2MVx1MDA2YiA9IDEyMzsiKTsgIA0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOyAgDQogICAgICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgeyANCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="7.6-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTUiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMDcvNy42LzcuNi01LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiNy42IC0gU3ludGF4RXJyb3IgZXhwZWN0ZWQ6IHJlc2VydmVkIHdvcmRzIHVzZWQgYXMgSWRlbnRpZmllciBOYW1lcyBpbiBVVEY4OiBcdTAwNjNhc2UgKGNhc2UpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBldmFsKCJ2YXIgXHUwMDYzYXNlID0gMTIzOyIpOyAgDQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7ICANCiAgICAgICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7IA0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="7.6-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTYiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMDcvNy42LzcuNi02LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiNy42IC0gU3ludGF4RXJyb3IgZXhwZWN0ZWQ6IHJlc2VydmVkIHdvcmRzIHVzZWQgYXMgSWRlbnRpZmllciBOYW1lcyBpbiBVVEY4OiBpbnN0YVx1MDA2ZWNlb2YgKGluc3RhbmNlb2YpIiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBldmFsKCJ2YXIgaW5zdGFcdTAwNmVjZW9mID0gMTIzOyIpOyAgDQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7ICANCiAgICAgICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7IA0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="7.6-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTciLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMDcvNy42LzcuNi03LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiNy42IC0gU3ludGF4RXJyb3IgZXhwZWN0ZWQ6IHJlc2VydmVkIHdvcmRzIHVzZWQgYXMgSWRlbnRpZmllciBOYW1lcyBpbiBVVEY4OiB0eXBlb1x1MDA2NiAodHlwZW9mKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgZXZhbCgidmFyIHR5cGVvXHUwMDY2ID0gMTIzOyIpOyAgDQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7ICANCiAgICAgICAgICAgIH0NCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7IA0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9DQp9KTsNCg==]]></test>
<test id="7.6-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTgiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMDcvNy42LzcuNi04LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiNy42IC0gU3ludGF4RXJyb3IgZXhwZWN0ZWQ6IHJlc2VydmVkIHdvcmRzIHVzZWQgYXMgSWRlbnRpZmllciBOYW1lcyBpbiBVVEY4OiBcdTAwNjRcdTAwNmYgKGRvKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgZXZhbCgidmFyIFx1MDA2NFx1MDA2ZiA9IDEyMzsiKTsgIA0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOyAgDQogICAgICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgeyANCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="7.6-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy42LTkiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMDcvNy42LzcuNi05LmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiNy42IC0gU3ludGF4RXJyb3IgZXhwZWN0ZWQ6IHJlc2VydmVkIHdvcmRzIHVzZWQgYXMgSWRlbnRpZmllciBOYW1lcyBpbiBVVEY4OiBcdTAwNjVsc2UgKGVsc2UpIChudWxsKSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgZXZhbCgidmFyIFx1MDA2NWxzZSA9IDEyMzsiKTsgIA0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOyAgDQogICAgICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgeyANCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfQ0KfSk7DQo=]]></test>
<test id="7.8.5-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KICAgIGlkOiAiNy44LjUtMSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXI3LzcuOC41LzcuOC41LTEuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJMaXRlcmFsIFJlZ0V4cCBPYmplY3RzIC0gU3ludGF4RXJyb3IgZXhjZXB0aW9uIGlzIHRocm93biBpZiB0aGUgUmVndWxhckV4cHJlc3Npb25Ob25UZXJtaW5hdG9yIHBvc2l0aW9uIG9mIGEgUmVndWxhckV4cHJlc3Npb25CYWNrc2xhc2hTZXF1ZW5jZSBpcyBhIExpbmVUZXJtaW5hdG9yLiIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoInZhciByZWdFeHAgPSAvXFxccm4vOyIpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9DQp9KTsNCg==]]></test>
</section>
</testCollection>

View File

@ -1,4 +1,4 @@
<testSuite numTests="9699" version="0.5.2" date="03/08/2011">
<testSuite numTests="10456" version="0.6" date="03/09/2011">
<testGroup>resources/scripts/testcases/07_Lexical_Conventions.xml</testGroup>
<testGroup>resources/scripts/testcases/08_Types.xml</testGroup>
<testGroup>resources/scripts/testcases/09_Type_Conversion.xml</testGroup>